diff --git a/.gitignore b/.gitignore index 99be7c3d..7bc9f666 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,7 @@ schema_output.log .docker/service-cid deploy/post-deploy.sh Cargo-component.lock + +# Deploy +config/network_deploy_*.json +config/networks.development.json diff --git a/README_PROD.md b/README_PROD.md index ac24e11e..035c0134 100644 --- a/README_PROD.md +++ b/README_PROD.md @@ -1,5 +1,15 @@ ## Production +### Deploy new network + +Add a new network to `config/networks.production.json` with all the correct metadata set, but leave the contracts and schemas blank as they will be filled in by the deployment script. + +Then deploy the contracts which will deploy and fill in the missing values: + +```bash +pnpm deploy:contracts +``` + ### Build service.json ```bash @@ -19,6 +29,7 @@ pnpm deploy:upload-service cd infra/wavs-1 sh start.sh ``` + ⚠️ If you get `0x3dda1739` in the aggregator, make sure to run this because there is no operator: ```bash diff --git a/config/components.json b/config/components.json index 9865fda9..5b58d5a0 100644 --- a/config/components.json +++ b/config/components.json @@ -6,12 +6,12 @@ "package_version": "0.9.1", "trigger": { "event": { - "contract_json_path": "merkler.merkle_snapshot", + "contract_json_path": "${networks[]}.contracts.merkleSnapshot", "event": "MerklerTrigger(uint64)" } }, "submit": { - "contract_json_path": "merkler.merkle_snapshot" + "contract_json_path": "${networks[]}.contracts.merkleSnapshot" }, "config": { "file": "trust_graph" @@ -29,7 +29,7 @@ } }, "submit": { - "contract_json_path": "merkler.merkle_snapshot" + "contract_json_path": "${networks[]}.contracts.merkleSnapshot" }, "config": { "file": "trust_graph" @@ -47,7 +47,7 @@ } }, "submit": { - "contract_json_path": "merkler.merkle_snapshot" + "contract_json_path": "${networks[]}.contracts.merkleSnapshot" }, "config": { "file": "trust_graph" @@ -64,7 +64,7 @@ } }, "submit": { - "contract_json_path": "merkler.merkle_snapshot" + "contract_json_path": "${networks[]}.contracts.merkleSnapshot" }, "env_variables": [] }, @@ -74,7 +74,7 @@ "package_version": "0.9.1", "trigger": { "event": { - "contract_json_path": "eas.contracts.indexer_resolver", + "contract_json_path": "${networks[]}.contracts.easIndexerResolver", "event": "AttestationAttested(address,bytes32)" } }, @@ -91,7 +91,7 @@ "package_version": "0.9.1", "trigger": { "event": { - "contract_json_path": "eas.contracts.indexer_resolver", + "contract_json_path": "${networks[]}.contracts.easIndexerResolver", "event": "AttestationRevoked(address,bytes32)" } }, @@ -103,12 +103,13 @@ } }, { + "disabled": true, "filename": "wavs_indexer.wasm", "package_name": "wavs-indexer", "package_version": "0.9.1", "trigger": { "event": { - "contract_json_path": "eas.contracts.payable_indexer_resolver", + "contract_json_path": "eas.payable_indexer_resolver", "event": "AttestationAttested(address,bytes32)" } }, @@ -120,12 +121,13 @@ } }, { + "disabled": true, "filename": "wavs_indexer.wasm", "package_name": "wavs-indexer", "package_version": "0.9.1", "trigger": { "event": { - "contract_json_path": "eas.contracts.payable_indexer_resolver", + "contract_json_path": "eas.payable_indexer_resolver", "event": "AttestationRevoked(address,bytes32)" } }, @@ -137,12 +139,13 @@ } }, { + "disabled": true, "filename": "wavs_indexer.wasm", "package_name": "wavs-indexer", "package_version": "0.9.1", "trigger": { "event": { - "contract_json_path": "eas.contracts.attester_indexer_resolver", + "contract_json_path": "eas.attester_indexer_resolver", "event": "AttestationAttested(address,bytes32)" } }, @@ -154,12 +157,13 @@ } }, { + "disabled": true, "filename": "wavs_indexer.wasm", "package_name": "wavs-indexer", "package_version": "0.9.1", "trigger": { "event": { - "contract_json_path": "eas.contracts.attester_indexer_resolver", + "contract_json_path": "eas.attester_indexer_resolver", "event": "AttestationRevoked(address,bytes32)" } }, diff --git a/config/networks.development.template.json b/config/networks.development.template.json new file mode 100644 index 00000000..22718b68 --- /dev/null +++ b/config/networks.development.template.json @@ -0,0 +1,158 @@ +[ + { + "id": "test-network-1", + "name": "Test Network 1", + "link": { + "prefix": "Learn more:", + "label": "Click Me", + "href": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + }, + "about": "This is a test network.", + "callToAction": { + "label": "Click Me", + "href": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + }, + "criteria": "The attestations in this network are weighted endorsements.", + "contracts": { + "merkleSnapshot": "", + "easIndexerResolver": "", + "merkleFundDistributor": "" + }, + "schemas": [ + { + "description": "Weighted endorsement", + "key": "vouching", + "name": "Vouch", + "resolver": "", + "revocable": true, + "schema": "string comment,uint256 confidence", + "uid": "", + "fields": [ + { + "name": "comment", + "type": "string" + }, + { + "name": "confidence", + "type": "uint256" + } + ] + } + ], + "pagerank": { + "enabled": true, + "pointsPool": 10000, + "trustMultiplier": 3.0, + "trustShare": 1.0, + "trustDecay": 0.8, + "minWeight": 0, + "maxWeight": 100, + "trustedSeeds": [] + }, + "validatedThreshold": 100 + }, + { + "id": "test-network-2", + "name": "Test Network 2", + "link": { + "prefix": "Learn more:", + "label": "Click Me", + "href": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + }, + "about": "This is a test network.", + "callToAction": { + "label": "Click Me", + "href": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + }, + "criteria": "The attestations in this network are weighted endorsements.", + "contracts": { + "merkleSnapshot": "", + "easIndexerResolver": "", + "merkleFundDistributor": "" + }, + "schemas": [ + { + "description": "Weighted endorsement", + "key": "vouching", + "name": "Vouch", + "resolver": "", + "revocable": true, + "schema": "string comment,uint256 confidence", + "uid": "", + "fields": [ + { + "name": "comment", + "type": "string" + }, + { + "name": "confidence", + "type": "uint256" + } + ] + } + ], + "pagerank": { + "enabled": true, + "pointsPool": 10000, + "trustMultiplier": 3.0, + "trustShare": 1.0, + "trustDecay": 0.8, + "minWeight": 0, + "maxWeight": 100, + "trustedSeeds": [] + }, + "validatedThreshold": 100 + }, + { + "id": "test-network-3", + "name": "Test Network 3", + "link": { + "prefix": "Learn more:", + "label": "Click Me", + "href": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + }, + "about": "This is a test network.", + "callToAction": { + "label": "Click Me", + "href": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + }, + "criteria": "The attestations in this network are weighted endorsements.", + "contracts": { + "merkleSnapshot": "", + "easIndexerResolver": "", + "merkleFundDistributor": "" + }, + "schemas": [ + { + "description": "Weighted endorsement", + "key": "vouching", + "name": "Vouch", + "resolver": "", + "revocable": true, + "schema": "string comment,uint256 confidence", + "uid": "", + "fields": [ + { + "name": "comment", + "type": "string" + }, + { + "name": "confidence", + "type": "uint256" + } + ] + } + ], + "pagerank": { + "enabled": true, + "pointsPool": 10000, + "trustMultiplier": 3.0, + "trustShare": 1.0, + "trustDecay": 0.8, + "minWeight": 0, + "maxWeight": 100, + "trustedSeeds": [] + }, + "validatedThreshold": 100 + } +] diff --git a/config/networks.production.json b/config/networks.production.json new file mode 100644 index 00000000..a9cee1ec --- /dev/null +++ b/config/networks.production.json @@ -0,0 +1,57 @@ +[ + { + "id": "localism-fund", + "name": "Localism Fund", + "link": { + "prefix": "Learn more:", + "label": "localism.fund", + "href": "https://www.localism.fund" + }, + "about": "The **Localism Fund Expert Network** is a curated, peer-attested collective of practitioners advancing the intersection of **localism and Ethereum-based coordination**. Experts in the network bring proven experience across Grant-making, Web3 / Ethereum Tooling, or Localism.", + "callToAction": { + "label": "Apply as Expert", + "href": "https://www.localism.fund/expert-network" + }, + "criteria": "Localism Fund Experts should meet the following criteria:\n\n- **Application** — Has completed the application form and appears in the [**Expert Network Database**](https://www.localism.fund/expert-network-db).\n- **Expertise** — Demonstrates relevant experience in at least one of the following areas: Grant-making, Web3 / Ethereum Tooling, Localism.\n- **Professional Alignment** — Commits to upholding the [**OpenCivics Ethical Standards**](https://wiki.opencivics.co/OpenCivics+Network/Membership/Ethical+Standards).\n\nBy attesting, you're **vouching** that this person meets the above criteria, and using the slider to signal your **confidence in**:\n\n- **Accuracy & Evidence**: Their _self-assessment is accurate, evidenced, and credible_ — with experience, expertise, and intentions that are verifiable through your direct experience with them or the evidence they've provided.\n- **Fit & Alignment**: Their _experience, expertise, unique insight, and credibility_ in one or more relevant domains, as well as _professional alignment_ — including good-faith collaboration, honesty, feedback & accountability, efficacy over ego, and inclusion & listening.\n\nEveryone helps **decentralize trust** by making honest, careful attestations.", + "schemas": [ + { + "uid": "0xe980be2010432b0e887d12c0d50a6ab61d6ad3a9a64448ff2829b8f117a134ac", + "key": "vouching", + "name": "Vouch", + "description": "Weighted endorsement", + "resolver": "0xF0278E089aA3361796e9B9d30C30Ee427747225E", + "revocable": true, + "schema": "string comment,uint256 confidence", + "fields": [ + { + "name": "comment", + "type": "string" + }, + { + "name": "confidence", + "type": "uint256" + } + ] + } + ], + "pagerank": { + "enabled": true, + "pointsPool": 10000, + "trustMultiplier": 3.0, + "trustShare": 1.0, + "trustDecay": 0.8, + "minWeight": 0, + "maxWeight": 100, + "trustedSeeds": [ + "0x7d03C5c37f77Fd01211334B9115CA108C84E8f3B", + "0x733Fe4b4D26168532c668231d725C46C315c14b1", + "0x59DDA36bD196Ec849838CE2163E6821f946b37Dc" + ] + }, + "contracts": { + "merkleSnapshot": "0x6d5339Fd17235803AE68e04d0b820bdd987427AC", + "easIndexerResolver": "0xF0278E089aA3361796e9B9d30C30Ee427747225E" + }, + "validatedThreshold": 75 + } +] diff --git a/config/trust_graph.template.json b/config/trust_graph.template.json index 8caafad7..2a8cc166 100644 --- a/config/trust_graph.template.json +++ b/config/trust_graph.template.json @@ -1,17 +1,17 @@ { "events_dir": "./events", - "eas_address": "${get(eas.contracts.eas)}", + "eas_address": "${get(eas.eas)}", "indexer_address": "${get(wavs_indexer)}", "chain_name": "${getEnv(triggerChain)}", - "vouching_schema_uid": "${get(eas.schemas.vouching.uid)}", + "vouching_schema_uid": "${get(${networks[]}.schemas.0.uid)}", "vouching_schema_abi": "(string,uint256)", "vouching_schema_abi_weight_index": "1", - "pagerank_enabled": "true", - "pagerank_points_pool": "10000", - "pagerank_trusted_seeds": "0x7d03C5c37f77Fd01211334B9115CA108C84E8f3B,0x733Fe4b4D26168532c668231d725C46C315c14b1,0x59DDA36bD196Ec849838CE2163E6821f946b37Dc", - "pagerank_trust_multiplier": "3.0", - "pagerank_trust_share": "1.0", - "pagerank_trust_decay": "0.8", - "pagerank_min_weight": "0", - "pagerank_max_weight": "100" + "pagerank_enabled": "${get(${networks[]}.pagerank.enabled)}", + "pagerank_points_pool": "${get(${networks[]}.pagerank.pointsPool)}", + "pagerank_trusted_seeds": "${join(${networks[]}.pagerank.trustedSeeds)}", + "pagerank_trust_multiplier": "${get(${networks[]}.pagerank.trustMultiplier)}", + "pagerank_trust_share": "${get(${networks[]}.pagerank.trustShare)}", + "pagerank_trust_decay": "${get(${networks[]}.pagerank.trustDecay)}", + "pagerank_min_weight": "${get(${networks[]}.pagerank.minWeight)}", + "pagerank_max_weight": "${get(${networks[]}.pagerank.maxWeight)}" } diff --git a/deploy/build-service.ts b/deploy/build-service.ts index ebc99f53..6f940e28 100644 --- a/deploy/build-service.ts +++ b/deploy/build-service.ts @@ -26,7 +26,14 @@ import { import { WAVS_DOCKER_IMAGE } from './constants' import { initProgram } from './env' import { ComponentsConfigFile } from './types' -import { exec, execSilently, keccak256, readJson, readJsonKey } from './utils' +import { + exec, + execSilently, + expandArrayUnwraps, + keccak256, + readJson, + readJsonKey, +} from './utils' const program = new Command('build-service') .description('Build the service.json') @@ -78,6 +85,16 @@ const main = async () => { aggregator_components: [aggregatorComponent], } = readJson(componentConfigFile) + // Read deployment summary to expand array unwraps + const deploymentSummary = readJson>( + '.docker/deployment_summary.json' + ) + + // Expand components that use array[] unwrap syntax + const expandedComponents = components.flatMap((component) => + expandArrayUnwraps(component, deploymentSummary) + ) + const BASE_CMD = [ 'docker', 'run', @@ -101,14 +118,20 @@ const main = async () => { await execSilently(...BASE_CMD, 'init', '--name', 'en0va') - for (const component of components) { + for (const component of expandedComponents) { if (component.disabled) { continue } + const arrayUnwrapInfo = component._arrayUnwraps + ? ` (${Object.entries(component._arrayUnwraps) + .map(([k, v]) => `${k}[${v}]`) + .join(', ')})` + : '' + console.log( chalk.greenBright( - `\nBuilding workflow for component: ${component.filename}` + `\nBuilding workflow for component: ${component.filename}${arrayUnwrapInfo}` ) ) @@ -249,11 +272,14 @@ const main = async () => { workflowId, 'config', ...('file' in component.config - ? processComponentConfigFile(component.config.file, { env }) + ? processComponentConfigFile(component.config.file, { + env, + arrayUnwraps: component._arrayUnwraps, + }) : processComponentConfigValues( component.config.values, component.filename, - { env } + { env, arrayUnwraps: component._arrayUnwraps } ) ).flatMap(([key, value]) => ['--values', `${key}=${value}`]) ) @@ -267,7 +293,10 @@ const main = async () => { '--id', workflowId, 'env', - ...component.env_variables.flatMap((envVar) => ['--values', envVar]) + ...component.env_variables.flatMap((envVar: string) => [ + '--values', + envVar, + ]) ) } @@ -336,6 +365,7 @@ const main = async () => { extraValues: { [env.submitChain]: submitAddress, }, + arrayUnwraps: component._arrayUnwraps, }) : processComponentConfigValues( aggregatorComponent.config.values, @@ -343,6 +373,7 @@ const main = async () => { { env, extraValues: { [env.submitChain]: submitAddress }, + arrayUnwraps: component._arrayUnwraps, } ) : [[env.submitChain, submitAddress]] diff --git a/deploy/config.ts b/deploy/config.ts index 94c6c60e..4cd2b5d0 100644 --- a/deploy/config.ts +++ b/deploy/config.ts @@ -52,10 +52,30 @@ export const processComponentConfigValues = ( key, typeof value === 'string' ? value + // Replace array[] patterns with array.{index} based on arrayUnwraps context. + .replaceAll(/\${(\w+)\[\]}/g, (_, arrayKey) => { + const index = options.arrayUnwraps?.[arrayKey] + if (index === undefined) { + throw new Error( + `Array unwrap "${arrayKey}[]" used in component "${name}" config value "${key}" but no index provided` + ) + } + return `${arrayKey}.${index}` + }) // Replace all ${get(json.path.to.key)} patterns with the value of the key from the deployment summary JSON file. .replaceAll(/\${get\(([^)]+)\)}/g, (_, p1) => readJsonKey('.docker/deployment_summary.json', p1) ) + // Replace all ${join(json.path.to.array)} patterns with comma-separated values from the deployment summary JSON file. + .replaceAll(/\${join\(([^)]+)\)}/g, (_, p1) => { + const arr = readJsonKey('.docker/deployment_summary.json', p1) + if (!Array.isArray(arr)) { + throw new Error( + `join() expects an array but got ${typeof arr} for path "${p1}" in component "${name}" config value "${key}"` + ) + } + return arr.join(',') + }) // Replace all ${getEnv(field)} patterns with the value of the field from the deployment environment. .replaceAll(/\${getEnv\(([^)]+)\)}/g, (_, p1) => { if (!(p1 in options.env)) { diff --git a/deploy/deploy-contracts.ts b/deploy/deploy-contracts.ts index 141b2d26..044fc6fc 100644 --- a/deploy/deploy-contracts.ts +++ b/deploy/deploy-contracts.ts @@ -45,6 +45,12 @@ const main = async () => { } = context for (const contract of env.deployContracts) { + const skip = await contract.skip?.(context) + if (skip) { + console.log(chalk.yellowBright(`🚫 ${contract.name} skipped`)) + continue + } + console.log(chalk.blueBright(`🚀 Deploying ${contract.name}...`)) await execFull({ @@ -67,6 +73,11 @@ const main = async () => { }, shell: true, }) + + if (contract.postRun) { + await contract.postRun(context) + } + console.log(chalk.yellowBright(`✅ ${contract.name} deployed`)) } diff --git a/deploy/env.ts b/deploy/env.ts index 6e0c50bb..5ed30c67 100644 --- a/deploy/env.ts +++ b/deploy/env.ts @@ -8,10 +8,14 @@ import { EnvName, EnvOverrides, IEnv, + Network, + NetworkDeploy, ProgramContext, } from './types' import { + isNetworkComplete, loadDotenv, + readJson, readJsonIfFileExists, readJsonKey, readJsonKeyIfFileExists, @@ -34,6 +38,7 @@ abstract class EnvBase implements IEnv { gateway: string } aggregatorTimerDelaySeconds: number + networksConfigFile: string deployContracts: ContractDeployment[] constructor(options: OmitFunctions) { @@ -44,6 +49,7 @@ abstract class EnvBase implements IEnv { this.submitChain = options.submitChain this.ipfs = options.ipfs this.aggregatorTimerDelaySeconds = options.aggregatorTimerDelaySeconds + this.networksConfigFile = options.networksConfigFile this.deployContracts = options.deployContracts } @@ -98,10 +104,124 @@ abstract class EnvBase implements IEnv { 'wavs_indexer' ), eas: readJsonIfFileExists('.docker/eas_deploy.json'), - merkler: readJsonIfFileExists('.docker/merkler_deploy.json'), + networks: readJsonIfFileExists(this.networksConfigFile), zodiac_safes: readJsonIfFileExists('.docker/zodiac_safes_deploy.json'), } } + + /** + * Update networks config file with deployed contracts and schemas from + * network_deploy_*.json files. + * + * If env is `dev`, contracts, schemas, and trusted seeds will be updated. + * + * If env is `prod`, contracts and schemas will be set if missing. Trusted seeds will not be touched. + * + * @param env - The environment to use for updating the networks config file. + */ + updateNetworksConfigWithDeployments = (env: 'dev' | 'prod'): void => { + // Read existing networks config or initialize empty array + let networks: Network[] = [] + if (fs.existsSync(this.networksConfigFile)) { + networks = readJson(this.networksConfigFile) + } + + // Find all network_deploy_ENV_*.json files + const deployFilesRegex = new RegExp(`^network_deploy_${env}_(\\d+)\.json$`) + const deployFiles = fs + .readdirSync('config') + .filter((file) => file.match(deployFilesRegex)) + .sort() + + for (const deployFile of deployFiles) { + // Extract index from filename (e.g., "network_deploy_dev_0.json" -> 0) + const match = deployFile.match(deployFilesRegex) + if (!match) { + continue + } + const index = parseInt(match[1], 10) + + if (networks.length <= index) { + throw new Error( + `Cannot update network at index ${index} because there are only ${networks.length.toLocaleString()} networks configured.` + ) + } + + const deployData = readJson( + path.join('config', deployFile) + ) + + const network: Network = { + ...networks[index], + contracts: { + merkleSnapshot: deployData.contracts.merkle_snapshot, + easIndexerResolver: deployData.contracts.eas_indexer_resolver, + merkleFundDistributor: deployData.contracts.fund_distributor, + }, + schemas: Object.values(deployData.schemas).flatMap((data) => { + // Ignore placeholder "_" key from forge serialization. + if (data === '_') { + return [] + } + + const fields = data.schema.split(',').map((field) => { + const [type, name] = field.split(' ') + return { + name, + type, + } + }) + + return { + ...data, + fields, + } + }), + } + + const networkToUpdate = networks[index] + + if (env === 'dev') { + // Replace contracts, schemas, and trusted seeds for development. + networkToUpdate.contracts = network.contracts + networkToUpdate.schemas = network.schemas + networkToUpdate.pagerank.trustedSeeds = [deployData.deployer] + } else if (env === 'prod') { + // Add or update missing contracts and schemas for production. + Object.entries(network.contracts).forEach(([key, value]) => { + if (!networkToUpdate.contracts[key as keyof Network['contracts']]) { + networkToUpdate.contracts[key as keyof Network['contracts']] = value + } + }) + network.schemas.forEach((schema) => { + const existingSchemaIndex = networkToUpdate.schemas.findIndex( + (s) => s.key === schema.key + ) + if ( + existingSchemaIndex !== -1 && + !networkToUpdate.schemas[existingSchemaIndex].uid + ) { + networkToUpdate.schemas[existingSchemaIndex] = schema + } else { + networkToUpdate.schemas.push(schema) + } + }) + } + + // Verify the network is complete after updating. + if (!isNetworkComplete(networkToUpdate)) { + throw new Error( + `Network at index ${index} is not complete after updating from ${deployFile}. Please make sure everything is configured correctly in ${this.networksConfigFile}.` + ) + } + } + + // Write updated networks config. + fs.writeFileSync( + this.networksConfigFile, + JSON.stringify(networks, null, 2) + '\n' + ) + } } export class DevEnv extends EnvBase { @@ -109,6 +229,20 @@ export class DevEnv extends EnvBase { rpcUrl = 'http://127.0.0.1:8545', ipfsGateway = 'http://127.0.0.1:8080/ipfs/', }: EnvOverrides) { + const networksConfigFile = 'config/networks.development.json' + const networksConfigTemplateFile = networksConfigFile.replace( + '.json', + '.template.json' + ) + if (!fs.existsSync(networksConfigTemplateFile)) { + throw new Error( + `Networks config template file ${networksConfigTemplateFile} does not exist` + ) + } + + // Get the number of networks from the template file. + const numNetworks = readJson(networksConfigTemplateFile).length + super({ rpcUrl, registry: 'http://localhost:8090', @@ -120,6 +254,7 @@ export class DevEnv extends EnvBase { gateway: ipfsGateway, }, aggregatorTimerDelaySeconds: 0, + networksConfigFile, deployContracts: [ { name: 'EAS', @@ -128,10 +263,23 @@ export class DevEnv extends EnvBase { args: (ctx) => [ctx.options.serviceManagerAddress], }, { - name: 'Merkler', - script: 'script/DeployMerkler.s.sol:DeployScript', - sig: 'run(string,bool)', - args: (ctx) => [ctx.options.serviceManagerAddress, true], + name: 'Network', + script: 'script/DeployNetwork.s.sol:DeployScript', + sig: 'run(string,string,string,bool,string,uint256,uint256)', + args: (ctx) => [ + ctx.options.serviceManagerAddress, + readJsonKey('.docker/eas_deploy.json', 'eas'), + readJsonKey('.docker/eas_deploy.json', 'schema_registrar'), + true, + 'dev', + 0, + numNetworks, + ], + postRun: () => { + // Replace the networks config file with the template. + fs.copyFileSync(networksConfigTemplateFile, this.networksConfigFile) + this.updateNetworksConfigWithDeployments('dev') + }, }, { name: 'Safes and Zodiac Modules', @@ -140,7 +288,10 @@ export class DevEnv extends EnvBase { args: (ctx) => [ ctx.options.serviceManagerAddress, // Use existing merkle snapshot contract. - readJsonKey('.docker/merkler_deploy.json', 'merkle_snapshot'), + readJsonKey( + 'config/network_deploy_dev_0.json', + 'contracts.merkle_snapshot' + ), ], }, { @@ -160,7 +311,10 @@ export class DevEnv extends EnvBase { } const formData = new FormData() - formData.append('file', new Blob([fs.readFileSync(filePath)])) + formData.append( + 'file', + new Blob([new Uint8Array(fs.readFileSync(filePath))]) + ) const response = await fetch(this.ipfs.pinApi, { method: 'POST', @@ -202,6 +356,15 @@ export class ProdEnv extends EnvBase { rpcUrl = 'https://optimism-rpc.publicnode.com', ipfsGateway = 'https://gateway.pinata.cloud/ipfs/', }: EnvOverrides) { + const networksConfigFile = 'config/networks.production.json' + if (!fs.existsSync(networksConfigFile)) { + throw new Error( + `Networks config file ${networksConfigFile} does not exist` + ) + } + + const networks = readJson(networksConfigFile) + super({ rpcUrl, registry: 'https://wa.dev', @@ -215,24 +378,52 @@ export class ProdEnv extends EnvBase { }, // optimism wait ~1 block aggregatorTimerDelaySeconds: 3, + networksConfigFile, deployContracts: [ { name: 'EAS', script: 'script/DeployEAS.s.sol:DeployEAS', sig: 'run(string)', args: (ctx) => [ctx.options.serviceManagerAddress], + // Skip if EAS is already deployed. + skip: () => + readJsonKeyIfFileExists('.docker/eas_deploy.json', 'eas') !== + undefined, }, - { - name: 'Merkler', - script: 'script/DeployMerkler.s.sol:DeployScript', - sig: 'run(string,bool)', - args: (ctx) => [ctx.options.serviceManagerAddress, false], - }, + ...networks.map( + (network, index): ContractDeployment => ({ + name: `Network: ${network.name}`, + script: 'script/DeployNetwork.s.sol:DeployScript', + sig: 'run(string,string,string,bool,string,uint256,uint256)', + args: (ctx) => [ + ctx.options.serviceManagerAddress, + readJsonKey('.docker/eas_deploy.json', 'eas'), + readJsonKey('.docker/eas_deploy.json', 'schema_registrar'), + false, + 'prod', + index, + 1, + ], + // After the last network is deployed, update the networks config file. + postRun: + index === networks.length - 1 + ? () => this.updateNetworksConfigWithDeployments('prod') + : undefined, + // Skip if network is already complete. + skip: () => isNetworkComplete(network), + }) + ), { name: 'Indexer', script: 'script/DeployWavsIndexer.s.sol:DeployWavsIndexer', sig: 'run(string)', args: (ctx) => [ctx.options.serviceManagerAddress], + // Skip if indexer is already deployed. + skip: () => + readJsonKeyIfFileExists( + '.docker/wavs_indexer_deploy.json', + 'wavs_indexer' + ) !== undefined, }, ], }) @@ -249,7 +440,10 @@ export class ProdEnv extends EnvBase { } const formData = new FormData() - formData.append('file', new Blob([fs.readFileSync(filePath)])) + formData.append( + 'file', + new Blob([new Uint8Array(fs.readFileSync(filePath))]) + ) formData.append('network', 'public') formData.append('name', `service-${Date.now()}.json`) diff --git a/deploy/templates/operator.start.sh b/deploy/templates/operator.start.sh index eb7d8385..d80ae943 100644 --- a/deploy/templates/operator.start.sh +++ b/deploy/templates/operator.start.sh @@ -23,6 +23,6 @@ if [ "$1" = "log" ]; then docker logs -f ${INSTANCE} else # otherwise give WAVS a chance to start up & health check - echo "Giving WAVS 3 seconds to start up & health check..." + echo "Giving WAVS operator 3 seconds to start up & health check..." sleep 3 fi diff --git a/deploy/types.ts b/deploy/types.ts index e5233084..e4f5ffdf 100644 --- a/deploy/types.ts +++ b/deploy/types.ts @@ -1,4 +1,5 @@ import { DotenvParseOutput } from 'dotenv' +import { Hex } from 'viem' export type ComponentsConfigFile = { components: { @@ -61,6 +62,8 @@ export type ContractDeployment = { script: string sig: string args: (ctx: ProgramContext) => string[] + skip?: (ctx: ProgramContext) => boolean | Promise + postRun?: (ctx: ProgramContext) => void | Promise } export type EnvName = 'dev' | 'prod' @@ -76,6 +79,7 @@ export type IEnv = { gateway: string } aggregatorTimerDelaySeconds: number + networksConfigFile: string deployContracts: ContractDeployment[] uploadToIpfs: (file: string, apiKey?: string) => Promise generateDeploymentSummary: (serviceManagerAddress: string) => object @@ -100,4 +104,69 @@ export type ProgramContext = { export type ProcessConfigOptions = { env: IEnv extraValues?: Record + arrayUnwraps?: Record // e.g., { "networks": 0 } +} + +export type ExpandedComponent = ComponentsConfigFile['components'][number] & { + _arrayUnwraps?: Record +} + +export type NetworkDeploy = { + deployer: Hex + contracts: { + merkle_snapshot: Hex + eas_indexer_resolver: Hex + fund_distributor?: Hex + } + schemas: { + [key: string]: + | { + uid: Hex + key: string + name: string + description: string + resolver: Hex + revocable: boolean + schema: string + } + // Used as placeholder for forge serialization. + | '_' + } +} + +export type Network = { + id: string + name: string + link?: { + prefix: string + label: string + href: string + } + about: string + callToAction?: { + label: string + href: string + } + criteria: string + contracts: { + merkleSnapshot: Hex + easIndexerResolver: Hex + merkleFundDistributor?: Hex + } + schemas: NetworkSchema[] + pagerank: { + trustedSeeds: Hex[] + } + validatedThreshold: number +} + +export type NetworkSchema = { + uid: Hex + key: string + name: string + description: string + resolver: Hex + revocable: boolean + schema: string + fields: { name: string; type: string }[] } diff --git a/deploy/utils.ts b/deploy/utils.ts index 6c16f7dd..13117f64 100644 --- a/deploy/utils.ts +++ b/deploy/utils.ts @@ -6,6 +6,9 @@ import { keccak_256 } from '@noble/hashes/sha3.js' import chalk, { ChalkInstance } from 'chalk' import dotenv, { DotenvParseOutput } from 'dotenv' import { get } from 'lodash' +import { isAddress } from 'viem' + +import { ComponentsConfigFile, ExpandedComponent, Network } from './types' /** * Loads the environment variables from the .env file, creating from the @@ -214,3 +217,73 @@ export const keccak256 = (str: string): string => */ export const sleep = (seconds: number) => new Promise((resolve) => setTimeout(resolve, seconds * 1_000)) + +/** + * Detect array unwrap patterns (e.g., "networks[]") in a component. + * Returns unique array keys that use the [] syntax. + */ +const detectArrayUnwraps = (component: object): string[] => { + const matches = JSON.stringify(component).matchAll(/\${(\w+)\[\]}/g) + return [...new Set([...matches].map((m) => m[1]))] +} + +/** + * Expand a component for all elements of arrays using the [] unwrap syntax. + * For example, a component with "networks[].contracts.x" will be expanded + * once for each network in the deployment summary. + */ +export const expandArrayUnwraps = ( + component: ComponentsConfigFile['components'][number], + deploymentSummary: Record +): ExpandedComponent[] => { + if (component.disabled) { + return [component] + } + + const arrayKeys = detectArrayUnwraps(component) + if (arrayKeys.length === 0) { + return [component] + } + + // For now, support single array unwrap (can extend to multiple later) + if (arrayKeys.length > 1) { + throw new Error( + `Multiple array unwraps not supported yet: ${arrayKeys.join(', ')}` + ) + } + + const arrayKey = arrayKeys[0] + const array = deploymentSummary[arrayKey] as unknown[] + + if (!Array.isArray(array)) { + throw new Error( + `Array unwrap "${arrayKey}[]" used but "${arrayKey}" is not an array in deployment summary` + ) + } + + return array.map((_, index) => ({ + ...JSON.parse( + JSON.stringify(component).replaceAll( + `\${${arrayKey}[]}`, + `${arrayKey}.${index}` + ) + ), + _arrayUnwraps: { [arrayKey]: index }, + })) +} + +/** + * Whether or not a network is completely configured. + */ +export const isNetworkComplete = (network: Network): boolean => { + return ( + !!network.contracts.merkleSnapshot && + isAddress(network.contracts.merkleSnapshot) && + !!network.contracts.easIndexerResolver && + isAddress(network.contracts.easIndexerResolver) && + network.schemas.length > 0 && + network.schemas.every( + (schema) => !!schema.uid && schema.uid.startsWith('0x') + ) + ) +} diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index e0c77adb..5f24976f 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -30,9 +30,9 @@ services: volumes: - ponder-db-data:/var/lib/postgresql/data ports: - - "6432:5432" + - '6432:5432' healthcheck: - test: ["CMD-SHELL", "pg_isready -d ponder -U ponder"] + test: ['CMD-SHELL', 'pg_isready -d ponder -U ponder'] interval: 1s timeout: 3s retries: 5 @@ -45,18 +45,23 @@ services: network_mode: host volumes: - .:/app - command: sh -c "npm install -g pnpm && CI=true pnpm install --ignore-scripts && pnpm run db:migrate && pnpm run start --schema v0.9.4 --views-schema trust-graph" + command: sh -c "npm install -g pnpm && CI=true pnpm install --ignore-scripts && pnpm run db:migrate && pnpm run start --schema v0.9.5 --views-schema trust-graph" depends_on: - ponder-db ports: - - "65421:65421" + - '65421:65421' healthcheck: - test: ["CMD-SHELL", "wget -q --spider http://localhost:65421/health || exit 1"] + test: + [ + 'CMD-SHELL', + 'wget -q --spider http://localhost:65421/health || exit 1', + ] interval: 10s timeout: 5s retries: 10 start_period: 10s environment: + NODE_ENV: production DATABASE_URL: postgresql://ponder:ponder@localhost:6432/ponder restart: unless-stopped @@ -72,14 +77,19 @@ services: ponder: condition: service_healthy ports: - - "65422:65422" + - '65422:65422' healthcheck: - test: ["CMD-SHELL", "wget -q --spider http://localhost:65422/health || exit 1"] + test: + [ + 'CMD-SHELL', + 'wget -q --spider http://localhost:65422/health || exit 1', + ] interval: 10s timeout: 5s retries: 10 start_period: 10s environment: + NODE_ENV: production DATABASE_URL: postgresql://ponder:ponder@localhost:6432/ponder restart: unless-stopped diff --git a/frontend/.gitignore b/frontend/.gitignore index 21f1eb14..811589ad 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -9,6 +9,7 @@ # production /build +lib/contracts.ts # debug npm-debug.log* @@ -28,4 +29,6 @@ yarn-error.log* next-env.d.ts # active config +config.development.json config.json +networks.json diff --git a/frontend/abis/EAS.json b/frontend/abis/EAS.json index 9a4d0855..e97490f3 100644 --- a/frontend/abis/EAS.json +++ b/frontend/abis/EAS.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"registry","type":"address","internalType":"contract ISchemaRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"request","type":"tuple","internalType":"struct AttestationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct AttestationRequestData","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"attestByDelegation","inputs":[{"name":"delegatedRequest","type":"tuple","internalType":"struct DelegatedAttestationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct AttestationRequestData","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signature","type":"tuple","internalType":"struct Signature","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"attester","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getAttestTypeHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getAttestation","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getDomainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRevokeOffchain","inputs":[{"name":"revoker","type":"address","internalType":"address"},{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRevokeTypeHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getSchemaRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISchemaRegistry"}],"stateMutability":"view"},{"type":"function","name":"getTimestamp","inputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"newNonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAttestationValid","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"multiAttest","inputs":[{"name":"multiRequests","type":"tuple[]","internalType":"struct MultiAttestationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct AttestationRequestData[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"multiAttestByDelegation","inputs":[{"name":"multiDelegatedRequests","type":"tuple[]","internalType":"struct MultiDelegatedAttestationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct AttestationRequestData[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signatures","type":"tuple[]","internalType":"struct Signature[]","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"attester","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"multiRequests","type":"tuple[]","internalType":"struct MultiRevocationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct RevocationRequestData[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"multiRevokeByDelegation","inputs":[{"name":"multiDelegatedRequests","type":"tuple[]","internalType":"struct MultiDelegatedRevocationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct RevocationRequestData[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signatures","type":"tuple[]","internalType":"struct Signature[]","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"revoker","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"multiRevokeOffchain","inputs":[{"name":"data","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"multiTimestamp","inputs":[{"name":"data","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"revoke","inputs":[{"name":"request","type":"tuple","internalType":"struct RevocationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct RevocationRequestData","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeByDelegation","inputs":[{"name":"delegatedRequest","type":"tuple","internalType":"struct DelegatedRevocationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct RevocationRequestData","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signature","type":"tuple","internalType":"struct Signature","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"revoker","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeOffchain","inputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"timestamp","inputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Attested","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schemaUID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"NonceIncreased","inputs":[{"name":"oldNonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newNonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Revoked","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schemaUID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RevokedOffchain","inputs":[{"name":"revoker","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"timestamp","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Timestamped","inputs":[{"name":"data","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"timestamp","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AccessDenied","inputs":[]},{"type":"error","name":"AlreadyRevoked","inputs":[]},{"type":"error","name":"AlreadyRevokedOffchain","inputs":[]},{"type":"error","name":"AlreadyTimestamped","inputs":[]},{"type":"error","name":"DeadlineExpired","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientValue","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidAttestations","inputs":[]},{"type":"error","name":"InvalidExpirationTime","inputs":[]},{"type":"error","name":"InvalidLength","inputs":[]},{"type":"error","name":"InvalidNonce","inputs":[]},{"type":"error","name":"InvalidOffset","inputs":[]},{"type":"error","name":"InvalidRegistry","inputs":[]},{"type":"error","name":"InvalidRevocation","inputs":[]},{"type":"error","name":"InvalidRevocations","inputs":[]},{"type":"error","name":"InvalidSchema","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidVerifier","inputs":[]},{"type":"error","name":"Irrevocable","inputs":[]},{"type":"error","name":"NotFound","inputs":[]},{"type":"error","name":"NotPayable","inputs":[]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"WrongSchema","inputs":[]}],"bytecode":{"object":"0x6101e0806040523461032c57602081613e5080380380916100208285610330565b83398101031261032c57516001600160a01b0381169081810361032c576040519161004c604084610330565b60038352602083016245415360e81b81526040519061006c604083610330565b600582526020820190640312e332e360dc1b82526001608052600360a0525f60c05261009786610353565b610180526100a4836104d5565b6101a05285519020918261014052519020806101605246610100526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261011060c082610330565b51902060e052306101205282516001600160401b03811161031857600254600181811c9116801561030e575b60208210146102fa57601f8111610297575b506020601f821160011461023457819293945f92610229575b50508160011b915f199060031b1c1916176002555b1561021a576101c052604051613842908161060e82396080518161081d015260a05181610848015260c05181610873015260e05181612e7901526101005181612f3601526101205181612e4301526101405181612ec801526101605181612eee015261018051816106d101526101a051816106fd01526101c0518181816101cd01528181611ad201528181611d01015281816120b0015261268a0152f35b6311a1e69760e01b5f5260045ffd5b015190505f80610167565b601f1982169060025f52805f20915f5b81811061027f57509583600195969710610267575b505050811b0160025561017c565b01515f1960f88460031b161c191690555f8080610259565b9192602060018192868b015181550194019201610244565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106102f0575b601f0160051c01905b8181106102e5575061014e565b5f81556001016102d8565b90915081906102cf565b634e487b7160e01b5f52602260045260245ffd5b90607f169061013c565b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b0382119082101761031857604052565b908151602081105f146103cd575090601f81511161038d57602081519101516020821061037e571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610318575f54600181811c911680156104cb575b60208210146102fa57601f8111610499575b50602092601f821160011461043a57928192935f9261042f575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f80610417565b601f198216935f8052805f20915f5b8681106104815750836001959610610469575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061045c565b91926020600181928685015181550194019201610449565b5f8052601f60205f20910160051c810190601f830160051c015b8181106104c057506103fd565b5f81556001016104b3565b90607f16906103eb565b908151602081105f14610500575090601f81511161038d57602081519101516020821061037e571790565b6001600160401b03811161031857600154600181811c91168015610603575b60208210146102fa57601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c19161760015560ff90565b015190505f8061054b565b601f1982169360015f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60015f52601f60205f20910160051c810190601f830160051c015b8181106105f85750610531565b5f81556001016105eb565b90607f169061051f56fe6101206040526004361015610012575f80fd5b5f3560e01c80630eabf66014610d9357806312b11a1714610d5957806313893f6114610cea57806317d7de7c14610c205780632d0335ab14610be85780633c04271514610af857806344adc90e14610a1a57806346926267146109da5780634cb7e9e5146109295780634d0030701461090057806354fd4d50146107fe57806379f7573a1461078657806384b0196e146106b957806395411525146104c6578063a3112a641461047b578063a6d4dbc7146103a4578063b469318d14610357578063b83010d31461031d578063cf190f34146102f3578063d45c4435146102c0578063e30bb5631461028c578063e71ff3651461021e578063ed24911d146101fc578063f10b5cc8146101b85763f17325e71461012d575f80fd5b60203660031901126101b4576004356001600160401b0381116101b45780600401604060031983360301126101b45760206101a481936101ab936101866101726114e1565b92610181602436920184611546565b611425565b61018f836112ff565b52610199826112ff565b503491339135612067565b01516112ff565b51604051908152f35b5f80fd5b346101b4575f3660031901126101b4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b4575f3660031901126101b4576020610216612e40565b604051908152f35b346101b45760203660031901126101b4576004356001600160401b0381116101b45761024e903690600401610f94565b906001600160401b034216915f5b81811061026e57602084604051908152f35b80610286856102806001948688611341565b35612c61565b0161025c565b346101b45760203660031901126101b45760206102b66004355f52600460205260405f2054151590565b6040519015158152f35b346101b45760203660031901126101b4576004355f52600560205260206001600160401b0360405f205416604051908152f35b346101b45760203660031901126101b45760206001600160401b0342166102168160043533611ea2565b346101b4575f3660031901126101b45760206040517fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e758152f35b346101b45760403660031901126101b4576001600160a01b03610378610fe8565b165f52600660205260405f206024355f5260205260206001600160401b0360405f205416604051908152f35b6101003660031901126101b4576040516103bd81611142565b6004358082526103cc36611216565b602083015260603660631901126101b4576040516103e98161118c565b60643560ff811681036101b4578152608435602082015260a43560408083019190915283015260c4356001600160a01b03811681036101b45780606084015260e4356001600160401b03811681036101b4578361044d91608061047996015261182b565b61045561167a565b61045e36611216565b610467826112ff565b52610471816112ff565b503492611ab5565b005b346101b45760203660031901126101b45761049461172d565b506004355f5260046020526104c26104ae60405f20611777565b60405191829160208352602083019061107e565b0390f35b60203660031901126101b4576004356001600160401b0381116101b4576104f1903690600401610f94565b6104fa8161156f565b5f9290915f198101913491855b818110610527576104c261051b8888612bf9565b60405191829182611012565b61053681838598969798611120565b9661054460208901896115da565b929091831580156106a1575b6106925789965f98959895604089019560608a019a60808b359b0135996001600160401b038b16809b1415995b83811015610624578f906105a08b61059a8360051b8d018d611546565b936116f8565b821015610610578f6105b28e9161155b565b906101b4578f908f906105ef61060a946105de600198604051966105d588611142565b87523690611425565b6020860152369060608802016112ad565b6040840152858060a01b031660608301526080820152611f26565b0161057d565b634e487b7160e01b5f52603260045260245ffd5b509a8d9e50839a50610660949c93929199506001985061065a6106699698889f6106529060209a149661155b565b93369161160f565b9061263a565b95865190611320565b94018051610677898961130c565b52610682888861130c565b5051510196949592939201610507565b63251f56a160e21b5f5260045ffd5b506106af60408b018b6116f8565b9050841415610550565b346101b4575f3660031901126101b4576107586106f57f000000000000000000000000000000000000000000000000000000000000000061345b565b6104c26107217f00000000000000000000000000000000000000000000000000000000000000006134ba565b610766604051916107336020846111de565b5f83525f368137604051958695600f60f81b875260e0602088015260e0870190610fc4565b908582036040870152610fc4565b904660608501523060808501525f60a085015283820360c085015261104b565b346101b45760203660031901126101b457600435335f52600360205260405f205490818111156107ef577f57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb791604091335f52600360205280835f205582519182526020820152a1005b633ab3447f60e11b5f5260045ffd5b346101b4575f3660031901126101b4576104c260206108ec60016108417f0000000000000000000000000000000000000000000000000000000000000000612cd3565b818461086c7f0000000000000000000000000000000000000000000000000000000000000000612cd3565b81806108977f0000000000000000000000000000000000000000000000000000000000000000612cd3565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826111de565b604051918291602083526020830190610fc4565b346101b45760203660031901126101b45760206001600160401b03421661021681600435612c61565b60203660031901126101b4576004356001600160401b0381116101b457610954903690600401610f94565b5f19810191905f90345b81831061096757005b6109728383866115b8565b6020810135601e19823603018112156101b4578101918235926001600160401b0384116101b457602001928060061b360384136101b457600193826109cc926109d2956109c58c8b14943393369161123e565b9035611ce0565b90611320565b92019161095e565b60603660031901126101b4576104796109f161167a565b6109fa36611216565b610a03826112ff565b52610a0d816112ff565b5034903390600435611ab5565b60203660031901126101b4576004356001600160401b0381116101b457610a45903690600401610f94565b90610a4f8261156f565b915f9134905f925f198101905b808510610a70576104c261051b8789612bf9565b9091929394610a808683866115b8565b906020820191610a9083826115da565b90501561069257610ad0610ac789898885610ac0610ab260019a6020996115da565b93909514943393369161160f565b903561263a565b97885190611320565b96018051610ade898b61130c565b52610ae9888a61130c565b50515101950193929190610a5c565b60203660031901126101b4576004356001600160401b0381116101b457806004019060e060031982360301126101b457604051610b3481611142565b82359283825260248301938435946001600160401b0386116101b457610be06101ab95610bc76101a495610bb460209a98610b768c9a60043691880101611425565b8a820152610b8736604487016112ad565b6040820152610baa60c460a4870196610b9f88610ffe565b6060850152016112eb565b6080820152611f26565b610181610bbf6114e1565b953692611546565b610bd0846112ff565b52610bda836112ff565b5061155b565b903492612067565b346101b45760203660031901126101b4576001600160a01b03610c09610fe8565b165f526003602052602060405f2054604051908152f35b346101b4575f3660031901126101b4576040515f600254610c4081611351565b8084529060018116908115610cc65750600114610c68575b6104c2836108ec818503826111de565b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610cac575090915081016020016108ec610c58565b919260018160209254838588010152019101909291610c94565b60ff191660208086019190915291151560051b840190910191506108ec9050610c58565b346101b45760203660031901126101b4576004356001600160401b0381116101b457610d1a903690600401610f94565b906001600160401b034216915f5b818110610d3a57602084604051908152f35b80610d5385610d4c6001948688611341565b3533611ea2565b01610d28565b346101b4575f3660031901126101b45760206040517ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768152f35b60203660031901126101b4576004356001600160401b0381116101b457610dbe903690600401610f94565b5f198101915f91345b818410610dd057005b610ddb848385611120565b60a0813603126101b457604051610df181611142565b8135815260208201356001600160401b0381116101b457820136601f820112156101b457610e2690369060208135910161123e565b906020810191825260408301356001600160401b0381116101b457830136601f820112156101b457803590610e5a826111ff565b91610e6860405193846111de565b808352602060608185019202830101913683116101b457602001905b828210610f7a5750505060408201818152610eb46080610ea660608801610ffe565b9660608601978852016112eb565b936080840194855251938451928315908115610f6e575b50610692575f5b838110610f0b57505091519351600195610f039590946109cc94508a8c14935085926001600160a01b031691611ce0565b930192610dc7565b600190610f688651610f1d838a61130c565b51610f2984885161130c565b51858060a01b038c5116906001600160401b038851169260405194610f4d86611142565b8552602085015260408401526060830152608082015261182b565b01610ed2565b9050518314158c610ecb565b6020606091610f8936856112ad565b815201910190610e84565b9181601f840112156101b4578235916001600160401b0383116101b4576020808501948460051b0101116101b457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101b457565b35906001600160a01b03821682036101b457565b60206040818301928281528451809452019201905f5b8181106110355750505090565b8251845260209384019390920191600101611028565b90602080835192838152019201905f5b8181106110685750505090565b825184526020938401939092019160010161105b565b9061014061012061111d9380518452602081015160208501526001600160401b0360408201511660408501526001600160401b0360608201511660608501526001600160401b03608082015116608085015260a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e08501526101008101511515610100850152015191816101208201520190610fc4565b90565b91908110156106105760051b81013590609e19813603018212156101b4570190565b60a081019081106001600160401b0382111761115d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761115d57604052565b606081019081106001600160401b0382111761115d57604052565b60c081019081106001600160401b0382111761115d57604052565b61014081019081106001600160401b0382111761115d57604052565b90601f801991011681019081106001600160401b0382111761115d57604052565b6001600160401b03811161115d5760051b60200190565b60409060231901126101b4576040519061122f82611171565b60243582526044356020830152565b92919261124a826111ff565b9361125860405195866111de565b602085848152019260061b8201918183116101b457925b82841061127c5750505050565b6040848303126101b4576020604091825161129681611171565b86358152828701358382015281520193019261126f565b91908260609103126101b4576040516112c58161118c565b8092803560ff811681036101b45760409182918452602081013560208501520135910152565b35906001600160401b03821682036101b457565b8051156106105760200190565b80518210156106105760209160051b010190565b9190820391821161132d57565b634e487b7160e01b5f52601160045260245ffd5b91908110156106105760051b0190565b90600182811c9216801561137f575b602083101461136b57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611360565b5f929181549161139883611351565b80835292600181169081156113ed57506001146113b457505050565b5f9081526020812093945091925b8383106113d3575060209250010190565b6001816020929493945483858701015201910191906113c2565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b03811161115d57601f01601f191660200190565b919060c0838203126101b4576040519061143e826111a7565b819361144981610ffe565b8352611457602082016112eb565b6020840152604081013580151581036101b45760408401526060810135606084015260808101356001600160401b0381116101b45781019082601f830112156101b4578135926114a68461140a565b906114b460405192836111de565b848252602085850101116101b4575f60208560a09682889701838601378301015260808501520135910152565b604080519091906114f283826111de565b6001815291601f1901825f5b82811061150a57505050565b602090604051611519816111a7565b5f81525f838201525f60408201525f6060820152606060808201525f60a0820152828285010152016114fe565b90359060be19813603018212156101b4570190565b356001600160a01b03811681036101b45790565b90611579826111ff565b61158660405191826111de565b8281528092611597601f19916111ff565b01905f5b8281106115a757505050565b80606060208093850101520161159b565b91908110156106105760051b81013590603e19813603018212156101b4570190565b903590601e19813603018212156101b457018035906001600160401b0382116101b457602001918160051b360383136101b457565b92919061161b816111ff565b9361162960405195866111de565b602085838152019160051b8101918383116101b45781905b83821061164f575050505050565b81356001600160401b0381116101b45760209161166f8784938701611425565b815201910190611641565b6040805190919061168b83826111de565b6001815291601f1901825f5b8281106116a357505050565b6020906040516116b281611171565b5f81525f8382015282828501015201611697565b906116d0826111ff565b6116dd60405191826111de565b82815280926116ee601f19916111ff565b0190602036910137565b903590601e19813603018212156101b457018035906001600160401b0382116101b4576020019160608202360383136101b457565b6040519061173a826111c2565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201520152565b906006610120604051611789816111c2565b611819819580548352600181015460208401526001600160401b0360028201548181166040860152818160401c16606086015260801c166080840152600381015460a084015260018060a01b0360048201541660c084015260ff600582015460018060a01b03811660e086015260a01c1615156101008401526118126040518096819301611389565b03846111de565b0152565b5f19811461132d5760010190565b608081016001600160401b038151168015159081611973575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160208251920151845f5260036020526001600160401b0360405f20928354936118968561181d565b90555116926040519460208601967fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e75885260408701526060860152608085015260a084015260c083015260e082015260e081526118f5610100826111de565b519020612f5c565b9051602083810151604080860151955181519384019290925282019490945260f89390931b6001600160f81b0319166060840152604183526001600160a01b03166119496061846111de565b612f82565b1561195557565b638baa579f60e01b5f5260045ffd5b631ab7da6b60e01b5f5260045ffd5b90506001600160401b034216115f611844565b519081151582036101b457565b6020818303126101b4578051906001600160401b0382116101b45701906080828203126101b45760405191608083018381106001600160401b0382111761115d576040528051835260208101516001600160a01b03811681036101b4576020840152611a0160408201611986565b60408401526060810151906001600160401b0382116101b4570181601f820112156101b457805190611a328261140a565b92611a4060405194856111de565b828452602083830101116101b457815f9260208093018386015e83010152606082015290565b90611a70826111ff565b611a7d60405191826111de565b8281528092611a8e601f19916111ff565b01905f5b828110611a9e57505050565b602090611aa961172d565b82828501015201611a92565b6040516351753e3760e11b81526004810182905290915f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215611cd5575f92611cb1575b50815115611c93578051611b1d81611a66565b93611b27826116c6565b95426001600160401b0316935f5b848110611b50575050505050509161111d93916001936130ca565b611b5a818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c6657825467ffffffffffffffff60801b191660808b901b67ffffffffffffffff60801b16179092556001938792908c90611c01908690611bfb90611777565b611777565b9261130c565b52611c0c848d61130c565b506020810151611c1c858f61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208d60c0611c53888a8060a01b039361130c565b510151169251604051908152a401611b35565b63905e710760e01b5f5260045ffd5b63157bd4c360e01b5f5260045ffd5b634ca8886760e01b5f5260045ffd5b635f9bd90760e11b5f5260045ffd5b63c5723b5160e01b5f5260045ffd5b611cce9192503d805f833e611cc681836111de565b810190611993565b905f611b0a565b6040513d5f823e3d90fd5b6040516351753e3760e11b8152600481018290529195949392915f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611cd5575f91611e88575b50805115611c93578651611d4c81611a66565b92611d56826116c6565b945f996001600160401b0342169a5b848110611d7c57505050505061111d9596506130ca565b611d86818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c66578f600195611bf6611e19928b96908154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b611e23858d61130c565b52611e2e848c61130c565b506020810151611e3e858e61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208c60c0611e75888a8060a01b039361130c565b510151169251604051908152a401611d65565b611e9c91503d805f833e611cc681836111de565b5f611d39565b60018060a01b031691825f52600660205260405f2090825f52816020526001600160401b0360405f205416611f17576001600160401b0391835f5260205260405f20828216831982541617905516917f92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a22295f80a4565b63ec9d6eeb60e01b5f5260045ffd5b608081016001600160401b03815116801515908161203b575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160018060a01b03825116916001600160401b03602082015116906040810151151560608201519060a060808401516020815191012093015193885f5260036020526001600160401b0360405f2096875497611fc38961181d565b90555116966040519860208a019a7ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768c5260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015261016081526118f5610180826111de565b90506001600160401b034216115f611f3f565b6040519061205b82611171565b60606020835f81520152565b919260e05261207461204e565b5080519061208061204e565b6101005261208d826116c6565b61010051602001526040516351753e3760e11b8152600481018490525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611cd5575f60805261261e575b506080515115611c935790916120fe83611a66565b60a05261210a836116c6565b60c0525f915b83831061213e575050505050612132600160e05160c05160a0516080516132b4565b61010051526101005190565b61214e838297939495969761130c565b519160208301956001600160401b03875116801515908161260a575b506125fb576040608051015115806125ee575b611c75576001600160401b0360608501519751169660018060a01b0385511660408601511515906080870151926040519a6121b78c6111c2565b5f8c528960208d01526001600160401b03421660408d015260608c01525f60808c015260a08b015260c08a015260018060a01b038a1660e08a01526101008901526101208801525f5b6020880151886122d06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156122f4575060010163ffffffff16612200565b905097969094959197939293808252805f52600460205260405f209180518355602081015160018401556123a2600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d57899461242c6006840154611351565b601f8111612596575b50602090601f831160011461252857600692915f918361251d575b50508160011b915f199060031b1c1916179101555b6060850151806124f9575b50936001946124818560a05161130c565b5261248e8460a05161130c565b5060a08101516124a08560c05161130c565b52816124b385602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a401919290612110565b6125109193505f52600460205260405f2054151590565b15611ca25786915f612470565b015190505f80612450565b90600684015f52805f20915f5b601f198516811061257b5750918391600193600695601f19811610612563575b505050811b01910155612465565b01515f1960f88460031b161c191690555f8080612555565b8183015184558d985060019093019260209283019201612535565b90919293949550600684015f5260205f20601f840160051c8101602085106125e7575b908c979695949392915b601f830160051c820181106125d9575050612435565b5f81558d98506001016125c3565b50806125b9565b506040840151151561217d565b6308e8b93760e01b5f5260045ffd5b90506001600160401b03421610155f61216a565b612631903d805f833e611cc681836111de565b6080525f6120e9565b919293909360c05260e05261264d61204e565b5082519061265961204e565b61010052612666826116c6565b61010051602001526040516351753e3760e11b815260048101829052935f856024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa948515611cd5575f95612bdd575b50845115611c9357906126d483611a66565b6080526126e0836116c6565b60a0525f915b83831061270b5750505050506121329060e0519060c0519060a05190608051906132b4565b90929491939561271b858361130c565b519260208401966001600160401b038851168015159081612bc9575b506125fb5760408201511580612bbc575b611c7557606085015197518551604080880151608089015191519b9193901515926001600160a01b031691906001600160401b03168a60208e61278a816111c2565b5f815201528c60406001600160401b03421691015260608d01525f60808d015260a08c015260c08b015260018060a01b038b1660e08b01526101008a01526101208901525f5b6020890151896128a06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156128c4575060010163ffffffff166127d0565b9050989691979095949298808252805f52600460205260405f20918051835560208101516001840155612971600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d5788946129fb6006840154611351565b601f8111612b64575b50602090601f8311600114612af657600692915f9183612aeb575b50508160011b915f199060031b1c1916179101555b606085015180612ac7575b5093600194612a508560805161130c565b52612a5d8460805161130c565b5060a0810151612a6f8560a05161130c565b5281612a8285602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a40191906126e6565b612ade9193505f52600460205260405f2054151590565b15611ca25785915f612a3f565b015190505f80612a1f565b90600684015f52805f20915f5b601f1985168110612b495750918391600193600695601f19811610612b31575b505050811b01910155612a34565b01515f1960f88460031b161c191690555f8080612b23565b8183015184558c985060019093019260209283019201612b03565b90919293949550600684015f5260205f20601f840160051c810160208510612bb5575b908b979695949392915b601f830160051c82018110612ba7575050612a04565b5f81558c9850600101612b91565b5080612b87565b5060408501511515612748565b90506001600160401b03421610155f612737565b612bf29195503d805f833e611cc681836111de565b935f6126c2565b90612c03906116c6565b905f8151915f5b838110612c18575050505090565b612c22818361130c565b5180515f915b818310612c3a57505050600101612c0a565b90919460018091612c4b888561130c565b51612c56828c61130c565b520195019190612c28565b90815f5260056020526001600160401b0360405f205416612cc4576001600160401b0390825f52600560205260405f20828216831982541617905516907f5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f5f80a3565b6317133ca360e11b5f5260045ffd5b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015612e1d575b806d04ee2d6d415b85acef8100000000600a921015612e02575b662386f26fc10000811015612dee575b6305f5e100811015612ddd575b612710811015612dce575b6064811015612dc0575b1015612db5575b600a60216001840193612d5a8561140a565b94612d6860405196876111de565b808652612d77601f199161140a565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015612db057600a9091612d82565b505090565b600190910190612d48565b606460029104930192612d41565b61271060049104930192612d37565b6305f5e10060089104930192612d2c565b662386f26fc1000060109104930192612d1f565b6d04ee2d6d415b85acef810000000060209104930192612d0f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104612cf5565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612f33575b15612e9b577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612f2d60c0826111de565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612e72565b604290612f67612e40565b906040519161190160f01b8352600283015260228201522090565b9190823b612fd15790612f9491613520565b506004811015612fbd57159182612faa57505090565b6001600160a01b03918216911614919050565b634e487b7160e01b5f52602160045260245ffd5b915f9261300761301585946040519283916020830195630b135d3f60e11b87526024840152604060448401526064830190610fc4565b03601f1981018352826111de565b51915afa6130216134f1565b8161304f575b81613030575090565b90506020818051810103126101b45760200151630b135d3f60e11b1490565b905060208151101590613027565b929160408401936040815282518095526060810194602060608260051b8401019401905f5b81811061309f5750505061111d939450602081840391015261104b565b9091946020806130bb600193605f19888203018c52895161107e565b97019801910196919096613082565b9391908051946001861461328e57602001516001600160a01b031690811561324f57604051636723702360e11b81525f9690602081600481875afa908115611cd5575f91613215575b50905f915b8183106131b9575050509160209161314793876040518096819582946388e5b2d960e01b84526004840161305d565b03925af1908115611cd5575f9161317f575b501561317057613167575090565b61111d9061372e565b63bf2f3a8b60e01b5f5260045ffd5b90506020813d6020116131b1575b8161319a602093836111de565b810103126101b4576131ab90611986565b5f613159565b3d915061318d565b909197966131c7898761130c565b51801561320a5782156131fb578181116131ec5780600192039801985b019190613118565b63044044a560e21b5f5260045ffd5b631574f9f360e01b5f5260045ffd5b5096976001906131e4565b90506020813d602011613247575b81613230602093836111de565b810103126101b45761324190611986565b5f613113565b3d9150613223565b50505f939192935b8281106132775750505061326a57505f90565b6132739061372e565b5f90565b613281818361130c565b516131fb57600101613257565b9061111d9550916132ad6132a66001949695966112ff565b51916112ff565b519161355a565b9391908051946001861461344457602001516001600160a01b031690811561341257604051636723702360e11b81525f9690602081600481875afa908115611cd5575f916133d8575b50905f915b81831061339a575050509160209161333193876040518096819582946348ed85bf60e11b84526004840161305d565b03925af1908115611cd5575f91613360575b501561335157613167575090565b63e8bee83960e01b5f5260045ffd5b90506020813d602011613392575b8161337b602093836111de565b810103126101b45761338c90611986565b5f613343565b3d915061336e565b909197966133a8898761130c565b5180156133cd5782156131fb578181116131ec5780600192039801985b019190613302565b5096976001906133c5565b90506020813d60201161340a575b816133f3602093836111de565b810103126101b45761340490611986565b5f6132fd565b3d91506133e6565b50505f939192935b82811061342d5750505061326a57505f90565b613437818361130c565b516131fb5760010161341a565b9061111d9550916132ad6132a65f949695966112ff565b60ff81146134a15760ff811690601f8211613492576040519161347f6040846111de565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b5060405161111d816134b3815f611389565b03826111de565b60ff81146134de5760ff811690601f8211613492576040519161347f6040846111de565b5060405161111d816134b3816001611389565b3d1561351b573d906135028261140a565b9161351060405193846111de565b82523d5f602084013e565b606090565b8151919060418303613550576135499250602082015190606060408401519301515f1a9061378a565b9192909190565b50505f9160029190565b6020015191949290916001600160a01b031690811561371c57908592918361369f575b602092919015613618576135ae9160405194858094819363e49617e160e01b8352876004840152602483019061107e565b03925af1908115611cd5575f916135de575b50156135cf575b613167575090565b63ccf3bb2760e01b5f5260045ffd5b90506020813d602011613610575b816135f9602093836111de565b810103126101b45761360a90611986565b5f6135c0565b3d91506135ec565b61363f9160405194858094819363e60c350560e01b8352876004840152602483019061107e565b03925af1908115611cd5575f91613665575b506135c75763bd8ba84d60e01b5f5260045ffd5b90506020813d602011613697575b81613680602093836111de565b810103126101b45761369190611986565b5f613651565b3d9150613673565b9491909250604051636723702360e11b8152602081600481875afa908115611cd5575f916136e2575b50156131fb578186116131ec57908590039385929061357d565b90506020813d602011613714575b816136fd602093836111de565b810103126101b45761370e90611986565b5f6136c8565b3d91506136f0565b50505090916131fb5761326a57505f90565b806137365750565b804710613774575f80808093335af161374d6134f1565b90156137565750565b80511561376557602081519101fd5b63d6bda27560e01b5f5260045ffd5b4763cf47918160e01b5f5260045260245260445ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613801579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611cd5575f516001600160a01b038116156137f757905f905f90565b505f906001905f90565b5050505f916003919056fea26469706673582212208cc861b4579c51c13c468b3db33645465d6d0e2bf519925c4d9dc36bb8b6261e64736f6c634300081b0033","sourceMap":"976:28530:1:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;976:28530:1;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;976:28530:1;;2476:1;759:14:6;;976:28530:1;783:14:6;;-1:-1:-1;807:14:6;;3501:45:59;;;:::i;:::-;3493:53;;3567:51;;;:::i;:::-;3556:62;;976:28530:1;;3642:22:59;;3628:36;;;;976:28530:1;3691:25:59;;3674:42;;;3744:13;3727:30;;976:28530:1;;4304:80:59;976:28530:1;4304:80:59;;2079:95;;;;976:28530:1;2079:95:59;;;;;;;3744:13;759:14:6;2079:95:59;;;4378:4;783:14:6;2079:95:59;;;783:14:6;4304:80:59;;;807:14:6;4304:80:59;;:::i;:::-;976:28530:1;4294:91:59;;3767:48;;4378:4;3825:27;;976:28530:1;;-1:-1:-1;;;;;976:28530:1;;;;2163:12:7;976:28530:1;2476:1;976:28530;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;2476:1;976:28530;;;;;;;;;;;2163:12:7;976:28530:1;;2531:31;2527:86;;2623:26;;976:28530;;;;;;;;759:14:6;976:28530:1;;;;;783:14:6;976:28530:1;;;;;807:14:6;976:28530:1;;;;;3767:48:59;976:28530:1;;;;;3727:30:59;976:28530:1;;;;;3825:27:59;976:28530:1;;;;;3628:36:59;976:28530:1;;;;;3674:42:59;976:28530:1;;;;;3493:53:59;976:28530:1;;;;;3556:62:59;976:28530:1;;;;;2623:26;976:28530;;;;;;;;;;;;;;;;;;;;;;;;;;2527:86;2585:17;;;-1:-1:-1;2585:17:1;;-1:-1:-1;2585:17:1;976:28530;;;;-1:-1:-1;976:28530:1;;;;;;;;;;2163:12:7;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;;2163:12:7;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;;;;;2163:12:7;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;2476:1;976:28530;;;;;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;976:28530:1;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;-1:-1:-1;;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;:::o;2887:340:54:-;;976:28530:1;;3032:2:54;3010:24;;3006:215;3032:2;;;976:28530:1;;1854:2:54;976:28530:1;;1840:16:54;1836:72;;3032:2;976:28530:1;;;;2079:95:59;3032:2:54;976:28530:1;;;;1949:36:54;3050:27;:::o;976:28530:1:-;;;;3032:2:54;976:28530:1;;;;;1949:36:54;3050:27;:::o;1836:72::-;976:28530:1;3032:2:54;976:28530:1;;;1879:18:54;;;;;;;;;;;;976:28530:1;;;;;;;;;;;;;;;;2482:1;976:28530;;;;;;1854:2:54;976:28530:1;-1:-1:-1;;976:28530:1;;;1879:18:54;;;;3006:215;-1:-1:-1;;;;;976:28530:1;;;;2482:1;976:28530;;;;;;;;;;;3006:215:54;3032:2;976:28530:1;;;;;;;;;;3006:215:54;976:28530:1;3032:2:54;976:28530:1;;;;;;;;;;;;2482:1;976:28530;;;;;;;;;;;;;;;;;;;2482:1;976:28530;1390:66:54;3168:42;:::o;976:28530:1:-;;;;-1:-1:-1;976:28530:1;;;;;;;;;;2482:1;976:28530;;;2482:1;976:28530;;2482:1;976:28530;;;;;;;;;;;;;;;;;;;;;2482:1;976:28530;1390:66:54;3168:42;:::o;976:28530:1:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:54;976:28530:1;;;;;;;;;;;;;;;;;2482:1;976:28530;;;3032:2:54;2482:1:1;976:28530;;;;;;;;;;;;;;;;;;;;;;;;2482:1;976:28530;;;;;;;;;;;;;2887:340:54;;976:28530:1;;3032:2:54;3010:24;;3006:215;3032:2;;;976:28530:1;;1854:2:54;976:28530:1;;1840:16:54;1836:72;;3032:2;976:28530:1;;;;2079:95:59;3032:2:54;976:28530:1;;;;1949:36:54;3050:27;:::o;3006:215::-;-1:-1:-1;;;;;976:28530:1;;;;2476:1;976:28530;2476:1;976:28530;;;;;;;;;3006:215:54;3032:2;976:28530:1;;;;;;;;;;3006:215:54;976:28530:1;3032:2:54;976:28530:1;;;;;;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;2476:1;976:28530;1390:66:54;3168:42;:::o;976:28530:1:-;;;;-1:-1:-1;976:28530:1;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;2476:1;976:28530;1390:66:54;3168:42;:::o;976:28530:1:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:54;2476:1:1;976:28530;;;;;;;;;;;;;;;;2476:1;976:28530;;;3032:2:54;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6101206040526004361015610012575f80fd5b5f3560e01c80630eabf66014610d9357806312b11a1714610d5957806313893f6114610cea57806317d7de7c14610c205780632d0335ab14610be85780633c04271514610af857806344adc90e14610a1a57806346926267146109da5780634cb7e9e5146109295780634d0030701461090057806354fd4d50146107fe57806379f7573a1461078657806384b0196e146106b957806395411525146104c6578063a3112a641461047b578063a6d4dbc7146103a4578063b469318d14610357578063b83010d31461031d578063cf190f34146102f3578063d45c4435146102c0578063e30bb5631461028c578063e71ff3651461021e578063ed24911d146101fc578063f10b5cc8146101b85763f17325e71461012d575f80fd5b60203660031901126101b4576004356001600160401b0381116101b45780600401604060031983360301126101b45760206101a481936101ab936101866101726114e1565b92610181602436920184611546565b611425565b61018f836112ff565b52610199826112ff565b503491339135612067565b01516112ff565b51604051908152f35b5f80fd5b346101b4575f3660031901126101b4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b4575f3660031901126101b4576020610216612e40565b604051908152f35b346101b45760203660031901126101b4576004356001600160401b0381116101b45761024e903690600401610f94565b906001600160401b034216915f5b81811061026e57602084604051908152f35b80610286856102806001948688611341565b35612c61565b0161025c565b346101b45760203660031901126101b45760206102b66004355f52600460205260405f2054151590565b6040519015158152f35b346101b45760203660031901126101b4576004355f52600560205260206001600160401b0360405f205416604051908152f35b346101b45760203660031901126101b45760206001600160401b0342166102168160043533611ea2565b346101b4575f3660031901126101b45760206040517fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e758152f35b346101b45760403660031901126101b4576001600160a01b03610378610fe8565b165f52600660205260405f206024355f5260205260206001600160401b0360405f205416604051908152f35b6101003660031901126101b4576040516103bd81611142565b6004358082526103cc36611216565b602083015260603660631901126101b4576040516103e98161118c565b60643560ff811681036101b4578152608435602082015260a43560408083019190915283015260c4356001600160a01b03811681036101b45780606084015260e4356001600160401b03811681036101b4578361044d91608061047996015261182b565b61045561167a565b61045e36611216565b610467826112ff565b52610471816112ff565b503492611ab5565b005b346101b45760203660031901126101b45761049461172d565b506004355f5260046020526104c26104ae60405f20611777565b60405191829160208352602083019061107e565b0390f35b60203660031901126101b4576004356001600160401b0381116101b4576104f1903690600401610f94565b6104fa8161156f565b5f9290915f198101913491855b818110610527576104c261051b8888612bf9565b60405191829182611012565b61053681838598969798611120565b9661054460208901896115da565b929091831580156106a1575b6106925789965f98959895604089019560608a019a60808b359b0135996001600160401b038b16809b1415995b83811015610624578f906105a08b61059a8360051b8d018d611546565b936116f8565b821015610610578f6105b28e9161155b565b906101b4578f908f906105ef61060a946105de600198604051966105d588611142565b87523690611425565b6020860152369060608802016112ad565b6040840152858060a01b031660608301526080820152611f26565b0161057d565b634e487b7160e01b5f52603260045260245ffd5b509a8d9e50839a50610660949c93929199506001985061065a6106699698889f6106529060209a149661155b565b93369161160f565b9061263a565b95865190611320565b94018051610677898961130c565b52610682888861130c565b5051510196949592939201610507565b63251f56a160e21b5f5260045ffd5b506106af60408b018b6116f8565b9050841415610550565b346101b4575f3660031901126101b4576107586106f57f000000000000000000000000000000000000000000000000000000000000000061345b565b6104c26107217f00000000000000000000000000000000000000000000000000000000000000006134ba565b610766604051916107336020846111de565b5f83525f368137604051958695600f60f81b875260e0602088015260e0870190610fc4565b908582036040870152610fc4565b904660608501523060808501525f60a085015283820360c085015261104b565b346101b45760203660031901126101b457600435335f52600360205260405f205490818111156107ef577f57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb791604091335f52600360205280835f205582519182526020820152a1005b633ab3447f60e11b5f5260045ffd5b346101b4575f3660031901126101b4576104c260206108ec60016108417f0000000000000000000000000000000000000000000000000000000000000000612cd3565b818461086c7f0000000000000000000000000000000000000000000000000000000000000000612cd3565b81806108977f0000000000000000000000000000000000000000000000000000000000000000612cd3565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826111de565b604051918291602083526020830190610fc4565b346101b45760203660031901126101b45760206001600160401b03421661021681600435612c61565b60203660031901126101b4576004356001600160401b0381116101b457610954903690600401610f94565b5f19810191905f90345b81831061096757005b6109728383866115b8565b6020810135601e19823603018112156101b4578101918235926001600160401b0384116101b457602001928060061b360384136101b457600193826109cc926109d2956109c58c8b14943393369161123e565b9035611ce0565b90611320565b92019161095e565b60603660031901126101b4576104796109f161167a565b6109fa36611216565b610a03826112ff565b52610a0d816112ff565b5034903390600435611ab5565b60203660031901126101b4576004356001600160401b0381116101b457610a45903690600401610f94565b90610a4f8261156f565b915f9134905f925f198101905b808510610a70576104c261051b8789612bf9565b9091929394610a808683866115b8565b906020820191610a9083826115da565b90501561069257610ad0610ac789898885610ac0610ab260019a6020996115da565b93909514943393369161160f565b903561263a565b97885190611320565b96018051610ade898b61130c565b52610ae9888a61130c565b50515101950193929190610a5c565b60203660031901126101b4576004356001600160401b0381116101b457806004019060e060031982360301126101b457604051610b3481611142565b82359283825260248301938435946001600160401b0386116101b457610be06101ab95610bc76101a495610bb460209a98610b768c9a60043691880101611425565b8a820152610b8736604487016112ad565b6040820152610baa60c460a4870196610b9f88610ffe565b6060850152016112eb565b6080820152611f26565b610181610bbf6114e1565b953692611546565b610bd0846112ff565b52610bda836112ff565b5061155b565b903492612067565b346101b45760203660031901126101b4576001600160a01b03610c09610fe8565b165f526003602052602060405f2054604051908152f35b346101b4575f3660031901126101b4576040515f600254610c4081611351565b8084529060018116908115610cc65750600114610c68575b6104c2836108ec818503826111de565b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610cac575090915081016020016108ec610c58565b919260018160209254838588010152019101909291610c94565b60ff191660208086019190915291151560051b840190910191506108ec9050610c58565b346101b45760203660031901126101b4576004356001600160401b0381116101b457610d1a903690600401610f94565b906001600160401b034216915f5b818110610d3a57602084604051908152f35b80610d5385610d4c6001948688611341565b3533611ea2565b01610d28565b346101b4575f3660031901126101b45760206040517ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768152f35b60203660031901126101b4576004356001600160401b0381116101b457610dbe903690600401610f94565b5f198101915f91345b818410610dd057005b610ddb848385611120565b60a0813603126101b457604051610df181611142565b8135815260208201356001600160401b0381116101b457820136601f820112156101b457610e2690369060208135910161123e565b906020810191825260408301356001600160401b0381116101b457830136601f820112156101b457803590610e5a826111ff565b91610e6860405193846111de565b808352602060608185019202830101913683116101b457602001905b828210610f7a5750505060408201818152610eb46080610ea660608801610ffe565b9660608601978852016112eb565b936080840194855251938451928315908115610f6e575b50610692575f5b838110610f0b57505091519351600195610f039590946109cc94508a8c14935085926001600160a01b031691611ce0565b930192610dc7565b600190610f688651610f1d838a61130c565b51610f2984885161130c565b51858060a01b038c5116906001600160401b038851169260405194610f4d86611142565b8552602085015260408401526060830152608082015261182b565b01610ed2565b9050518314158c610ecb565b6020606091610f8936856112ad565b815201910190610e84565b9181601f840112156101b4578235916001600160401b0383116101b4576020808501948460051b0101116101b457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101b457565b35906001600160a01b03821682036101b457565b60206040818301928281528451809452019201905f5b8181106110355750505090565b8251845260209384019390920191600101611028565b90602080835192838152019201905f5b8181106110685750505090565b825184526020938401939092019160010161105b565b9061014061012061111d9380518452602081015160208501526001600160401b0360408201511660408501526001600160401b0360608201511660608501526001600160401b03608082015116608085015260a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e08501526101008101511515610100850152015191816101208201520190610fc4565b90565b91908110156106105760051b81013590609e19813603018212156101b4570190565b60a081019081106001600160401b0382111761115d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761115d57604052565b606081019081106001600160401b0382111761115d57604052565b60c081019081106001600160401b0382111761115d57604052565b61014081019081106001600160401b0382111761115d57604052565b90601f801991011681019081106001600160401b0382111761115d57604052565b6001600160401b03811161115d5760051b60200190565b60409060231901126101b4576040519061122f82611171565b60243582526044356020830152565b92919261124a826111ff565b9361125860405195866111de565b602085848152019260061b8201918183116101b457925b82841061127c5750505050565b6040848303126101b4576020604091825161129681611171565b86358152828701358382015281520193019261126f565b91908260609103126101b4576040516112c58161118c565b8092803560ff811681036101b45760409182918452602081013560208501520135910152565b35906001600160401b03821682036101b457565b8051156106105760200190565b80518210156106105760209160051b010190565b9190820391821161132d57565b634e487b7160e01b5f52601160045260245ffd5b91908110156106105760051b0190565b90600182811c9216801561137f575b602083101461136b57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611360565b5f929181549161139883611351565b80835292600181169081156113ed57506001146113b457505050565b5f9081526020812093945091925b8383106113d3575060209250010190565b6001816020929493945483858701015201910191906113c2565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b03811161115d57601f01601f191660200190565b919060c0838203126101b4576040519061143e826111a7565b819361144981610ffe565b8352611457602082016112eb565b6020840152604081013580151581036101b45760408401526060810135606084015260808101356001600160401b0381116101b45781019082601f830112156101b4578135926114a68461140a565b906114b460405192836111de565b848252602085850101116101b4575f60208560a09682889701838601378301015260808501520135910152565b604080519091906114f283826111de565b6001815291601f1901825f5b82811061150a57505050565b602090604051611519816111a7565b5f81525f838201525f60408201525f6060820152606060808201525f60a0820152828285010152016114fe565b90359060be19813603018212156101b4570190565b356001600160a01b03811681036101b45790565b90611579826111ff565b61158660405191826111de565b8281528092611597601f19916111ff565b01905f5b8281106115a757505050565b80606060208093850101520161159b565b91908110156106105760051b81013590603e19813603018212156101b4570190565b903590601e19813603018212156101b457018035906001600160401b0382116101b457602001918160051b360383136101b457565b92919061161b816111ff565b9361162960405195866111de565b602085838152019160051b8101918383116101b45781905b83821061164f575050505050565b81356001600160401b0381116101b45760209161166f8784938701611425565b815201910190611641565b6040805190919061168b83826111de565b6001815291601f1901825f5b8281106116a357505050565b6020906040516116b281611171565b5f81525f8382015282828501015201611697565b906116d0826111ff565b6116dd60405191826111de565b82815280926116ee601f19916111ff565b0190602036910137565b903590601e19813603018212156101b457018035906001600160401b0382116101b4576020019160608202360383136101b457565b6040519061173a826111c2565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201520152565b906006610120604051611789816111c2565b611819819580548352600181015460208401526001600160401b0360028201548181166040860152818160401c16606086015260801c166080840152600381015460a084015260018060a01b0360048201541660c084015260ff600582015460018060a01b03811660e086015260a01c1615156101008401526118126040518096819301611389565b03846111de565b0152565b5f19811461132d5760010190565b608081016001600160401b038151168015159081611973575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160208251920151845f5260036020526001600160401b0360405f20928354936118968561181d565b90555116926040519460208601967fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e75885260408701526060860152608085015260a084015260c083015260e082015260e081526118f5610100826111de565b519020612f5c565b9051602083810151604080860151955181519384019290925282019490945260f89390931b6001600160f81b0319166060840152604183526001600160a01b03166119496061846111de565b612f82565b1561195557565b638baa579f60e01b5f5260045ffd5b631ab7da6b60e01b5f5260045ffd5b90506001600160401b034216115f611844565b519081151582036101b457565b6020818303126101b4578051906001600160401b0382116101b45701906080828203126101b45760405191608083018381106001600160401b0382111761115d576040528051835260208101516001600160a01b03811681036101b4576020840152611a0160408201611986565b60408401526060810151906001600160401b0382116101b4570181601f820112156101b457805190611a328261140a565b92611a4060405194856111de565b828452602083830101116101b457815f9260208093018386015e83010152606082015290565b90611a70826111ff565b611a7d60405191826111de565b8281528092611a8e601f19916111ff565b01905f5b828110611a9e57505050565b602090611aa961172d565b82828501015201611a92565b6040516351753e3760e11b81526004810182905290915f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215611cd5575f92611cb1575b50815115611c93578051611b1d81611a66565b93611b27826116c6565b95426001600160401b0316935f5b848110611b50575050505050509161111d93916001936130ca565b611b5a818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c6657825467ffffffffffffffff60801b191660808b901b67ffffffffffffffff60801b16179092556001938792908c90611c01908690611bfb90611777565b611777565b9261130c565b52611c0c848d61130c565b506020810151611c1c858f61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208d60c0611c53888a8060a01b039361130c565b510151169251604051908152a401611b35565b63905e710760e01b5f5260045ffd5b63157bd4c360e01b5f5260045ffd5b634ca8886760e01b5f5260045ffd5b635f9bd90760e11b5f5260045ffd5b63c5723b5160e01b5f5260045ffd5b611cce9192503d805f833e611cc681836111de565b810190611993565b905f611b0a565b6040513d5f823e3d90fd5b6040516351753e3760e11b8152600481018290529195949392915f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611cd5575f91611e88575b50805115611c93578651611d4c81611a66565b92611d56826116c6565b945f996001600160401b0342169a5b848110611d7c57505050505061111d9596506130ca565b611d86818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c66578f600195611bf6611e19928b96908154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b611e23858d61130c565b52611e2e848c61130c565b506020810151611e3e858e61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208c60c0611e75888a8060a01b039361130c565b510151169251604051908152a401611d65565b611e9c91503d805f833e611cc681836111de565b5f611d39565b60018060a01b031691825f52600660205260405f2090825f52816020526001600160401b0360405f205416611f17576001600160401b0391835f5260205260405f20828216831982541617905516917f92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a22295f80a4565b63ec9d6eeb60e01b5f5260045ffd5b608081016001600160401b03815116801515908161203b575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160018060a01b03825116916001600160401b03602082015116906040810151151560608201519060a060808401516020815191012093015193885f5260036020526001600160401b0360405f2096875497611fc38961181d565b90555116966040519860208a019a7ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768c5260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015261016081526118f5610180826111de565b90506001600160401b034216115f611f3f565b6040519061205b82611171565b60606020835f81520152565b919260e05261207461204e565b5080519061208061204e565b6101005261208d826116c6565b61010051602001526040516351753e3760e11b8152600481018490525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611cd5575f60805261261e575b506080515115611c935790916120fe83611a66565b60a05261210a836116c6565b60c0525f915b83831061213e575050505050612132600160e05160c05160a0516080516132b4565b61010051526101005190565b61214e838297939495969761130c565b519160208301956001600160401b03875116801515908161260a575b506125fb576040608051015115806125ee575b611c75576001600160401b0360608501519751169660018060a01b0385511660408601511515906080870151926040519a6121b78c6111c2565b5f8c528960208d01526001600160401b03421660408d015260608c01525f60808c015260a08b015260c08a015260018060a01b038a1660e08a01526101008901526101208801525f5b6020880151886122d06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156122f4575060010163ffffffff16612200565b905097969094959197939293808252805f52600460205260405f209180518355602081015160018401556123a2600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d57899461242c6006840154611351565b601f8111612596575b50602090601f831160011461252857600692915f918361251d575b50508160011b915f199060031b1c1916179101555b6060850151806124f9575b50936001946124818560a05161130c565b5261248e8460a05161130c565b5060a08101516124a08560c05161130c565b52816124b385602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a401919290612110565b6125109193505f52600460205260405f2054151590565b15611ca25786915f612470565b015190505f80612450565b90600684015f52805f20915f5b601f198516811061257b5750918391600193600695601f19811610612563575b505050811b01910155612465565b01515f1960f88460031b161c191690555f8080612555565b8183015184558d985060019093019260209283019201612535565b90919293949550600684015f5260205f20601f840160051c8101602085106125e7575b908c979695949392915b601f830160051c820181106125d9575050612435565b5f81558d98506001016125c3565b50806125b9565b506040840151151561217d565b6308e8b93760e01b5f5260045ffd5b90506001600160401b03421610155f61216a565b612631903d805f833e611cc681836111de565b6080525f6120e9565b919293909360c05260e05261264d61204e565b5082519061265961204e565b61010052612666826116c6565b61010051602001526040516351753e3760e11b815260048101829052935f856024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa948515611cd5575f95612bdd575b50845115611c9357906126d483611a66565b6080526126e0836116c6565b60a0525f915b83831061270b5750505050506121329060e0519060c0519060a05190608051906132b4565b90929491939561271b858361130c565b519260208401966001600160401b038851168015159081612bc9575b506125fb5760408201511580612bbc575b611c7557606085015197518551604080880151608089015191519b9193901515926001600160a01b031691906001600160401b03168a60208e61278a816111c2565b5f815201528c60406001600160401b03421691015260608d01525f60808d015260a08c015260c08b015260018060a01b038b1660e08b01526101008a01526101208901525f5b6020890151896128a06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156128c4575060010163ffffffff166127d0565b9050989691979095949298808252805f52600460205260405f20918051835560208101516001840155612971600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d5788946129fb6006840154611351565b601f8111612b64575b50602090601f8311600114612af657600692915f9183612aeb575b50508160011b915f199060031b1c1916179101555b606085015180612ac7575b5093600194612a508560805161130c565b52612a5d8460805161130c565b5060a0810151612a6f8560a05161130c565b5281612a8285602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a40191906126e6565b612ade9193505f52600460205260405f2054151590565b15611ca25785915f612a3f565b015190505f80612a1f565b90600684015f52805f20915f5b601f1985168110612b495750918391600193600695601f19811610612b31575b505050811b01910155612a34565b01515f1960f88460031b161c191690555f8080612b23565b8183015184558c985060019093019260209283019201612b03565b90919293949550600684015f5260205f20601f840160051c810160208510612bb5575b908b979695949392915b601f830160051c82018110612ba7575050612a04565b5f81558c9850600101612b91565b5080612b87565b5060408501511515612748565b90506001600160401b03421610155f612737565b612bf29195503d805f833e611cc681836111de565b935f6126c2565b90612c03906116c6565b905f8151915f5b838110612c18575050505090565b612c22818361130c565b5180515f915b818310612c3a57505050600101612c0a565b90919460018091612c4b888561130c565b51612c56828c61130c565b520195019190612c28565b90815f5260056020526001600160401b0360405f205416612cc4576001600160401b0390825f52600560205260405f20828216831982541617905516907f5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f5f80a3565b6317133ca360e11b5f5260045ffd5b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015612e1d575b806d04ee2d6d415b85acef8100000000600a921015612e02575b662386f26fc10000811015612dee575b6305f5e100811015612ddd575b612710811015612dce575b6064811015612dc0575b1015612db5575b600a60216001840193612d5a8561140a565b94612d6860405196876111de565b808652612d77601f199161140a565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015612db057600a9091612d82565b505090565b600190910190612d48565b606460029104930192612d41565b61271060049104930192612d37565b6305f5e10060089104930192612d2c565b662386f26fc1000060109104930192612d1f565b6d04ee2d6d415b85acef810000000060209104930192612d0f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104612cf5565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612f33575b15612e9b577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612f2d60c0826111de565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612e72565b604290612f67612e40565b906040519161190160f01b8352600283015260228201522090565b9190823b612fd15790612f9491613520565b506004811015612fbd57159182612faa57505090565b6001600160a01b03918216911614919050565b634e487b7160e01b5f52602160045260245ffd5b915f9261300761301585946040519283916020830195630b135d3f60e11b87526024840152604060448401526064830190610fc4565b03601f1981018352826111de565b51915afa6130216134f1565b8161304f575b81613030575090565b90506020818051810103126101b45760200151630b135d3f60e11b1490565b905060208151101590613027565b929160408401936040815282518095526060810194602060608260051b8401019401905f5b81811061309f5750505061111d939450602081840391015261104b565b9091946020806130bb600193605f19888203018c52895161107e565b97019801910196919096613082565b9391908051946001861461328e57602001516001600160a01b031690811561324f57604051636723702360e11b81525f9690602081600481875afa908115611cd5575f91613215575b50905f915b8183106131b9575050509160209161314793876040518096819582946388e5b2d960e01b84526004840161305d565b03925af1908115611cd5575f9161317f575b501561317057613167575090565b61111d9061372e565b63bf2f3a8b60e01b5f5260045ffd5b90506020813d6020116131b1575b8161319a602093836111de565b810103126101b4576131ab90611986565b5f613159565b3d915061318d565b909197966131c7898761130c565b51801561320a5782156131fb578181116131ec5780600192039801985b019190613118565b63044044a560e21b5f5260045ffd5b631574f9f360e01b5f5260045ffd5b5096976001906131e4565b90506020813d602011613247575b81613230602093836111de565b810103126101b45761324190611986565b5f613113565b3d9150613223565b50505f939192935b8281106132775750505061326a57505f90565b6132739061372e565b5f90565b613281818361130c565b516131fb57600101613257565b9061111d9550916132ad6132a66001949695966112ff565b51916112ff565b519161355a565b9391908051946001861461344457602001516001600160a01b031690811561341257604051636723702360e11b81525f9690602081600481875afa908115611cd5575f916133d8575b50905f915b81831061339a575050509160209161333193876040518096819582946348ed85bf60e11b84526004840161305d565b03925af1908115611cd5575f91613360575b501561335157613167575090565b63e8bee83960e01b5f5260045ffd5b90506020813d602011613392575b8161337b602093836111de565b810103126101b45761338c90611986565b5f613343565b3d915061336e565b909197966133a8898761130c565b5180156133cd5782156131fb578181116131ec5780600192039801985b019190613302565b5096976001906133c5565b90506020813d60201161340a575b816133f3602093836111de565b810103126101b45761340490611986565b5f6132fd565b3d91506133e6565b50505f939192935b82811061342d5750505061326a57505f90565b613437818361130c565b516131fb5760010161341a565b9061111d9550916132ad6132a65f949695966112ff565b60ff81146134a15760ff811690601f8211613492576040519161347f6040846111de565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b5060405161111d816134b3815f611389565b03826111de565b60ff81146134de5760ff811690601f8211613492576040519161347f6040846111de565b5060405161111d816134b3816001611389565b3d1561351b573d906135028261140a565b9161351060405193846111de565b82523d5f602084013e565b606090565b8151919060418303613550576135499250602082015190606060408401519301515f1a9061378a565b9192909190565b50505f9160029190565b6020015191949290916001600160a01b031690811561371c57908592918361369f575b602092919015613618576135ae9160405194858094819363e49617e160e01b8352876004840152602483019061107e565b03925af1908115611cd5575f916135de575b50156135cf575b613167575090565b63ccf3bb2760e01b5f5260045ffd5b90506020813d602011613610575b816135f9602093836111de565b810103126101b45761360a90611986565b5f6135c0565b3d91506135ec565b61363f9160405194858094819363e60c350560e01b8352876004840152602483019061107e565b03925af1908115611cd5575f91613665575b506135c75763bd8ba84d60e01b5f5260045ffd5b90506020813d602011613697575b81613680602093836111de565b810103126101b45761369190611986565b5f613651565b3d9150613673565b9491909250604051636723702360e11b8152602081600481875afa908115611cd5575f916136e2575b50156131fb578186116131ec57908590039385929061357d565b90506020813d602011613714575b816136fd602093836111de565b810103126101b45761370e90611986565b5f6136c8565b3d91506136f0565b50505090916131fb5761326a57505f90565b806137365750565b804710613774575f80808093335af161374d6134f1565b90156137565750565b80511561376557602081519101fd5b63d6bda27560e01b5f5260045ffd5b4763cf47918160e01b5f5260045260245260445ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613801579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611cd5575f516001600160a01b038116156137f757905f905f90565b505f906001905f90565b5050505f916003919056fea26469706673582212208cc861b4579c51c13c468b3db33645465d6d0e2bf519925c4d9dc36bb8b6261e64736f6c634300081b0033","sourceMap":"976:28530:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;3044:58;2963:31;;3044:66;2963:31;976:28530;2963:31;;:::i;:::-;976:28530;3014:12;;976:28530;3014:12;;;;:::i;:::-;976:28530;:::i;:::-;3004:22;;;:::i;:::-;;;;;:::i;:::-;;3086:9;3074:10;;976:28530;;3044:58;:::i;:::-;:63;;:66;:::i;:::-;976:28530;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;2773:15;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;2475:20:7;;:::i;:::-;976:28530:1;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;6500:15:7;-1:-1:-1;;;;;6500:15:7;976:28530:1;14628:13;976:28530;14643:10;;;;;;976:28530;;;;;;;;14655:19;14701:7;14710:4;14701:7;;1489:1:0;14701:7:1;;;;:::i;:::-;976:28530;14710:4;:::i;:::-;976:28530;14628:13;;976:28530;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;-1:-1:-1;976:28530:1;15013:3;976:28530;;;-1:-1:-1;976:28530:1;;15013:25;;14928:117;;976:28530;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;15160:11;976:28530;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;-1:-1:-1;;;;;6500:15:7;976:28530:1;14064:4;976:28530;;;14046:10;14064:4;:::i;976:28530::-;;;;;;-1:-1:-1;;976:28530:1;;;;;;;1451:66:7;976:28530:1;;;;;;;;;-1:-1:-1;;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;;:::i;:::-;;;;15321:20;976:28530;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;9575:31;976:28530;;9737:81;976:28530;;;9575:31;:::i;:::-;9655:30;;:::i;:::-;976:28530;;;:::i;:::-;9695:31;;;:::i;:::-;;;;;:::i;:::-;;9802:9;9737:81;;:::i;:::-;976:28530;;;;;;;-1:-1:-1;;976:28530:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;6363:23;;;:::i;:::-;976:28530;;6396:25;;-1:-1:-1;;976:28530:1;;;6860:9;;976:28530;6900:10;;;;;;976:28530;9106:36;;;;:::i;:::-;976:28530;;;;;;;:::i;6912:19::-;7393:25;;;;;;;;;:::i;:::-;7473:26;;976:28530;7473:26;;;;:::i;:::-;7614:15;;;;;:72;;;;6912:19;7610:133;;7877:13;;976:28530;7877:13;;;8148:32;976:28530;8148:32;;8219:30;;;;976:28530;8285:30;976:28530;;8285:30;;976:28530;;-1:-1:-1;;;;;976:28530:1;;;;;;7872:499;7908:19;7892:14;;;;;;976:28530;;8148:32;976:28530;;;;;;;;;:::i;:::-;8148:32;;:::i;:::-;976:28530;;;;;8219:30;;;;;:::i;:::-;976:28530;;;;;;;;7982:356;976:28530;;7297:1;976:28530;;;;;;;:::i;:::-;;;;;;:::i;:::-;;7982:356;;976:28530;;;8219:30;976:28530;;;;:::i;:::-;;7982:356;;976:28530;;;;;;;8219:30;7982:356;;976:28530;8285:30;7982:356;;976:28530;7982:356;:::i;:::-;976:28530;7877:13;;976:28530;;;;;;;;;;;;7892:14;;;;;;;;;8475:191;7892:14;;;;;;;7297:1;7892:14;;976:28530;8793:31;7892:14;;;;8568:30;7892:14;976:28530;7892:14;7283:15;8568:30;;:::i;:::-;976:28530;;;;:::i;:::-;8475:191;;:::i;:::-;976:28530;;;8793:31;;:::i;:::-;8906:8;;;;8891:23;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;8973:8:1;976:28530;;;6885:13;;;;;976:28530;6885:13;;7610:133;12704:15;;;976:28530;7713:15;976:28530;;7713:15;7614:72;7647:32;;976:28530;7647:32;;;;:::i;:::-;7633:53;;;;;7614:72;;976:28530;;;;;;-1:-1:-1;;976:28530:1;;;;;6183:41:59;:5;:41;:::i;:::-;976:28530:1;6638:47:59;:8;:47;:::i;:::-;976:28530:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5674:13:59;;976:28530:1;;;;5709:4:59;976:28530:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;976:28530:1;;;;;;3647:10:7;976:28530:1;;3639:7:7;976:28530:1;;;;;;3672:20:7;;;;;3668:72;;3796:58;3647:10;976:28530:1;3647:10:7;;976:28530:1;;3639:7:7;976:28530:1;;;;;;;;;;;;;;;;3796:58:7;976:28530:1;3668:72:7;3715:14;;;976:28530:1;3715:14:7;976:28530:1;;3715:14:7;976:28530:1;;;;;;-1:-1:-1;;976:28530:1;;;;;1055:104:6;;976:28530:1;1072:24:6;1089:6;1072:24;:::i;:::-;1120:6;;1103:24;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;976:28530:1;;;;;;;;;;;;1055:104:6;;;976:28530:1;;;;-1:-1:-1;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;1055:104:6;;;;;;;;;;:::i;:::-;976:28530:1;;;;;1055:104:6;976:28530:1;;1055:104:6;976:28530:1;;;;:::i;:::-;;;;;;-1:-1:-1;;976:28530:1;;;;;-1:-1:-1;;;;;6500:15:7;976:28530:1;13859:4;976:28530;;;13859:4;:::i;976:28530::-;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;-1:-1:-1;;976:28530:1;;;10381:9;976:28530;;10381:9;10468:10;;;;;;976:28530;10480:19;10942:16;;;;;:::i;:::-;976:28530;11132:17;;976:28530;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;10865:1;10851:15;;11103:81;10851:15;11085:99;10851:15;976:28530;10851:15;;;11151:10;;976:28530;;;;:::i;:::-;;;11103:81;:::i;:::-;11085:99;;:::i;:::-;10480:19;976:28530;10453:13;;;976:28530;;;-1:-1:-1;;976:28530:1;;;;9370:58;9297:30;;:::i;:::-;976:28530;;;:::i;:::-;9337:22;;;:::i;:::-;;;;;:::i;:::-;;9412:9;9400:10;;976:28530;;;9370:58;:::i;976:28530::-;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;3964:23;;;;:::i;:::-;3997:25;976:28530;4461:9;;4486:13;976:28530;;;;;;4481:1287;4501:10;;;;;;976:28530;5861:36;;;;:::i;4513:19::-;5034:16;;;;;;;;;;:::i;:::-;5114:17;976:28530;5114:17;;;;;;;:::i;:::-;:29;;;5110:90;;5548:31;5246:175;5308:17;;;;976:28530;5308:17;4898:1;5308:17;976:28530;5308:17;;:::i;:::-;4884:15;;;;5343:10;;976:28530;;;;:::i;:::-;;;5246:175;:::i;:::-;976:28530;;;5548:31;;:::i;:::-;5661:8;;;;5646:23;;;;:::i;:::-;;;;;;:::i;:::-;;5728:8;976:28530;;4513:19;976:28530;4486:13;;;;;;976:28530;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;3500:25;3461:90;976:28530;;3461:82;976:28530;3290:31;976:28530;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;3290:31;:::i;:::-;3422:21;3371:31;;:::i;:::-;976:28530;;3422:21;;:::i;976:28530::-;3412:31;;;:::i;:::-;;;;;:::i;:::-;;3500:25;:::i;:::-;3527:9;;3461:82;;:::i;976:28530::-;;;;;;-1:-1:-1;;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;;:::i;:::-;;;;2728:7:7;976:28530:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;3381:5:7;976:28530:1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3381:5:7;976:28530:1;;;;;;;-1:-1:-1;976:28530:1;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;6500:15:7;-1:-1:-1;;;;;6500:15:7;976:28530:1;14294:13;976:28530;14309:10;;;;;;976:28530;;;;;;;;14321:19;14384:7;14393:4;14384:7;;1489:1:0;14384:7:1;;;;:::i;:::-;976:28530;14372:10;14393:4;:::i;:::-;976:28530;14294:13;;976:28530;;;;;;-1:-1:-1;;976:28530:1;;;;;;;1124:66:7;976:28530:1;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;-1:-1:-1;;976:28530:1;;;;;11801:9;11897:10;;;;;;976:28530;11909:19;12387:25;;;;;:::i;:::-;976:28530;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;12464:26;976:28530;;;12605:15;;;:72;;;;;976:28530;12601:133;;;976:28530;12883:14;;;;;;-1:-1:-1;;976:28530:1;;;;12294:1;;13485:208;;976:28530;;13503:190;;-1:-1:-1;12280:15:1;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;;;;;976:28530:1;;13503:190;:::i;13485:208::-;11909:19;976:28530;11882:13;;;12899:19;12294:1;976:28530;12973:353;976:28530;;13094:7;;;;:::i;:::-;;13138:35;:32;;;:35;:::i;:::-;;976:28530;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;:::i;:::-;;;;12973:353;;976:28530;;12973:353;;976:28530;;12973:353;;976:28530;;12973:353;;976:28530;12973:353;:::i;:::-;976:28530;12868:13;;12605:72;976:28530;;;12624:53;;;12605:72;;;976:28530;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;;976:28530:1;;;;:::o;:::-;;;;-1:-1:-1;;;;;976:28530:1;;;;;;:::o;:::-;;;-1:-1:-1;;;;;976:28530:1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;-1:-1:-1;976:28530:1;;;;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;1055:104:6;;976:28530:1;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;-1:-1:-1;;;;;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;9347:12;976:28530;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;976:28530:1;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;976:28530:1;;;;;;-1:-1:-1;;976:28530:1;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;3400:1;976:28530;;;-1:-1:-1;;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;1055:104:6;976:28530:1;1055:104:6;;976:28530:1;;:::i;:::-;;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;9325:1;976:28530;;;-1:-1:-1;;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;1055:104:6;976:28530:1;1055:104:6;;976:28530:1;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;240:1:0:-;-1:-1:-1;;240:1:0;;;;;;;:::o;5278:988:7:-;5367:16;;;-1:-1:-1;;;;;976:28530:1;;;5367:38:7;;;:68;;;;5278:988;5363:123;;;5532:12;5626:367;5532:12;6021:178;5532:12;;;5583:17;;;;;5752:15;;;;976:28530:1;;;;;;;;;;;;5532:12:7;976:28530:1;;5855:10:7;;976:28530:1;;-1:-1:-1;976:28530:1;5887:7:7;5532:12;976:28530:1;-1:-1:-1;;;;;5583:17:7;-1:-1:-1;976:28530:1;;;;5887:26:7;;;;:::i;:::-;976:28530:1;;;;;5583:17:7;976:28530:1;5683:286:7;5532:12;5683:286;;976:28530:1;1451:66:7;976:28530:1;;5583:17:7;240:1:0;;976:28530:1;5752:15:7;240:1:0;;976:28530:1;5367:16:7;240:1:0;;976:28530:1;240:1:0;;;976:28530:1;240:1:0;;;976:28530:1;240:1:0;;;976:28530:1;240:1:0;5683:286:7;;;;;;:::i;:::-;976:28530:1;5656:327:7;;5626:367;:::i;:::-;976:28530:1;;5532:12:7;6147:11;;;976:28530:1;5583:17:7;6160:11;;;976:28530:1;240:1:0;;976:28530:1;;6130:55:7;;;976:28530:1;;;;240:1:0;;976:28530:1;;;;240:1:0;;;;;-1:-1:-1;;;;;;240:1:0;;;;;6130:55:7;;;-1:-1:-1;;;;;976:28530:1;6130:55:7;240:1:0;976:28530:1;6130:55:7;:::i;:::-;6021:178;:::i;:::-;6020:179;6003:257;;5278:988::o;6003:257::-;6231:18;;;-1:-1:-1;6231:18:7;;-1:-1:-1;6231:18:7;5363:123;5458:17;;;-1:-1:-1;5458:17:7;;-1:-1:-1;5458:17:7;5367:68;6500:15;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;5367:68:7;;;976:28530:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;1055:104:6;976:28530:1;1055:104:6;;976:28530:1;;:::i;:::-;;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;19220:2157;976:28530;;-1:-1:-1;;;19537:36:1;;;;;976:28530;;;19220:2157;;-1:-1:-1;976:28530:1;19537:36;976:28530;19537:15;-1:-1:-1;;;;;976:28530:1;19537:36;;;;;;;-1:-1:-1;19537:36:1;;;19220:2157;976:28530;;;19587:29;19583:82;;976:28530;;19749:25;;;:::i;:::-;19810:21;;;;:::i;:::-;19847:13;6500:15:7;-1:-1:-1;;;;;976:28530:1;;-1:-1:-1;19862:10:1;;;;;;21286:84;;;;;;;;;;9325:1;21286:84;;:::i;19874:19::-;19948:7;;;;:::i;:::-;;976:28530;;;-1:-1:-1;976:28530:1;19537:36;976:28530;;;-1:-1:-1;976:28530:1;;;;20125:28;20121:84;;20295:18;9325:1;20295:18;;976:28530;20295:31;20291:92;;20476:20;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;;;20476:31;;;20472:91;;976:28530;;;;20773:22;20769:81;;20950:26;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;20946:93;;976:28530;;-1:-1:-1;;;;976:28530:1;;;;;-1:-1:-1;;;976:28530:1;;;;;9325:1;;21052:36;;-1:-1:-1;21052:36:1;;21103:29;;21052:36;;976:28530;;;:::i;21052:36::-;976:28530;:::i;:::-;21103:29;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;21158:13;;976:28530;21146:25;21158:13;;21146:25;:::i;:::-;976:28530;21191:67;976:28530;;21199:25;:15;976:28530;;;;;;21199:15;;:::i;:::-;;:25;976:28530;;;;;;;;;21191:67;976:28530;19847:13;;20946:93;21008:16;;;-1:-1:-1;21008:16:1;19537:36;-1:-1:-1;21008:16:1;20769:81;20822:13;;;-1:-1:-1;20822:13:1;19537:36;-1:-1:-1;20822:13:1;20472:91;20534:14;;;-1:-1:-1;20534:14:1;19537:36;-1:-1:-1;20534:14:1;20291:92;19639:15;;;-1:-1:-1;20353:15:1;19537:36;-1:-1:-1;20353:15:1;20121:84;20180:10;;;-1:-1:-1;20180:10:1;19537:36;-1:-1:-1;20180:10:1;19537:36;;;;;;;-1:-1:-1;19537:36:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;976:28530;;;-1:-1:-1;976:28530:1;;;;;19220:2157;976:28530;;-1:-1:-1;;;19537:36:1;;;;;976:28530;;;19220:2157;;;;;;-1:-1:-1;976:28530:1;19537:36;976:28530;19537:15;-1:-1:-1;;;;;976:28530:1;19537:36;;;;;;;-1:-1:-1;19537:36:1;;;19220:2157;976:28530;;;19587:29;19583:82;;976:28530;;19749:25;;;:::i;:::-;19810:21;;;;:::i;:::-;19847:13;-1:-1:-1;6500:15:7;-1:-1:-1;;;;;6500:15:7;976:28530:1;19842:1427;19862:10;;;;;;21286:84;;;;;;;;;;:::i;19874:19::-;19948:7;;;;:::i;:::-;;976:28530;;;-1:-1:-1;976:28530:1;19537:36;976:28530;;;-1:-1:-1;976:28530:1;;;;20125:28;20121:84;;20295:18;1489:1:0;20295:18:1;;976:28530;20295:31;20291:92;;20476:20;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;;;20476:31;;;20472:91;;976:28530;;;;20773:22;20769:81;;20950:26;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;20946:93;;21052:36;1489:1:0;21052:36:1;;976:28530;21052:36;;;976:28530;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;21103:29;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;21158:13;;976:28530;21146:25;21158:13;;21146:25;:::i;:::-;976:28530;21191:67;976:28530;;21199:25;:15;976:28530;;;;;;21199:15;;:::i;:::-;;:25;976:28530;;;;;;;;;21191:67;976:28530;19847:13;;19537:36;;;;;;-1:-1:-1;19537:36:1;;;;;;:::i;:::-;;;;28242:368;976:28530;;;;;;;;-1:-1:-1;976:28530:1;28393:20;976:28530;;;-1:-1:-1;976:28530:1;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;-1:-1:-1;976:28530:1;;;28433:84;;-1:-1:-1;;;;;976:28530:1;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;28567:36;;-1:-1:-1;28567:36:1;;28242:368::o;28433:84::-;28482:24;;;-1:-1:-1;28482:24:1;;-1:-1:-1;28482:24:1;3995:1151:7;4085:16;;;-1:-1:-1;;;;;976:28530:1;;;4085:38:7;;;:68;;;;3995:1151;4081:123;;;4251:12;4345:527;4251:12;4900:179;4251:12;;;4302:17;;;;;4471:16;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;4581:19:7;-1:-1:-1;;;;;4251:12:7;4581:19;;976:28530:1;;4622:14:7;4302:17;4622:14;;976:28530:1;;;4471:16:7;4658:11;;976:28530:1;4701:9:7;4733:10;4085:16;4701:9;;;4251:12;976:28530:1;;;;4691:20:7;4733:10;;976:28530:1;;;-1:-1:-1;976:28530:1;4765:7:7;4251:12;976:28530:1;-1:-1:-1;;;;;4302:17:7;-1:-1:-1;976:28530:1;;;;4765:27:7;;;;:::i;:::-;976:28530:1;;;;;4302:17:7;976:28530:1;4402:446:7;4251:12;4402:446;;976:28530:1;1124:66:7;976:28530:1;;4302:17:7;976:28530:1;;;4471:16:7;976:28530:1;;;4085:16:7;976:28530:1;;;4733:10:7;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4402:446:7;;;;;;:::i;4085:68::-;6500:15;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;4085:68:7;;;976:28530:1;;;;;;;:::i;:::-;;;;-1:-1:-1;976:28530:1;;;;:::o;15846:2898::-;;;;;976:28530;;:::i;:::-;;;;;;;:::i;:::-;16112:29;;16162:21;;;:::i;:::-;16151:8;;;;:32;976:28530;;-1:-1:-1;;;16309:36:1;;;;;976:28530;;;-1:-1:-1;976:28530:1;16309:36;976:28530;16309:15;-1:-1:-1;;;;;976:28530:1;16309:36;;;;;;-1:-1:-1;16309:36:1;;;;15846:2898;16359:16;;;976:28530;16359:29;16355:82;;16483:25;;;;;:::i;:::-;;;16544:21;;;:::i;:::-;;;-1:-1:-1;16576:2029:1;16596:10;;;;;;18631:85;;;;;;3400:1;18631:85;;;;;;;;;:::i;:::-;976:28530;;;18727:10;;15846:2898;:::o;16608:19::-;16683:7;;;;;;;;;;:::i;:::-;;16804:22;16151:8;16804:22;;976:28530;-1:-1:-1;;;;;976:28530:1;;;16804:44;;;:81;;;;16608:19;16800:150;;;976:28530;17073:22;;;976:28530;;17072:44;;;16608:19;17068:103;;-1:-1:-1;;;;;17323:14:1;;;976:28530;;;;;;;;;;;;;;17570:17;;976:28530;;;17611:12;;;;;976:28530;;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;;17218:420;16151:8;17218:420;;976:28530;-1:-1:-1;;;;;6500:15:7;976:28530:1;;17218:420;;976:28530;17323:14;17218:420;;976:28530;-1:-1:-1;17611:12:1;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;;;;;;;;;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;-1:-1:-1;17818:247:1;16151:8;17218:420;;976:28530;17218:420;26697:392;16309:36;976:28530;17218:420;;;976:28530;16151:8;976:28530;17218:420;;976:28530;17218:420;976:28530;17218:420;;976:28530;17218:420;17323:14;17218:420;;976:28530;17218:420;;;976:28530;;;17218:420;;;;;976:28530;17218:420;;27029:16;976:28530;;;26697:392;;;;;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;240:1:0;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26697:392;;;;;;;;;;;:::i;:::-;976:28530;26670:433;;976:28530;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;17903:25;17899:77;;-1:-1:-1;3400:1:1;976:28530;;;17818:247;;17899:77;17952:5;;;;;;;;;;;;976:28530;;;;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;;;;;16151:8;17218:420;;976:28530;3400:1;976:28530;;;;;;;-1:-1:-1;;;;;17218:420:1;976:28530;17218:420;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;;;;;;17323:14;17218:420;;976:28530;-1:-1:-1;;;976:28530:1;;;;;;;-1:-1:-1;;;976:28530:1;;;;;-1:-1:-1;;;;;17611:12:1;17218:420;;976:28530;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;17218:420;;;;976:28530;;;;;17218:420;;;976:28530;16309:36;976:28530;;;;-1:-1:-1;;;;;;976:28530:1;-1:-1:-1;;;;;976:28530:1;;;;;;;17218:420;;976:28530;;;;;;17218:420;;;976:28530;-1:-1:-1;;;;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;976:28530:1;;;;17218:420;;;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;:::i;:::-;;;;;;17818:247;976:28530;16151:8;976:28530;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;3400:1;976:28530;;;;;;;;;;;;;;;17323:14;;;976:28530;18155:27;18151:256;;976:28530;18421:29;;3400:1;18421:29;;;;;;:::i;:::-;;;;;;;:::i;:::-;;17218:420;18476:13;;976:28530;18464:25;;;;;:::i;:::-;976:28530;16151:8;18504:17;16151:8;;;;;18504;:17;:::i;:::-;976:28530;;;;;;;;;;;;;;18541:53;16151:8;976:28530;;;;;;;18541:53;;976:28530;16581:13;;;;;18151:256;18299:34;;;;-1:-1:-1;976:28530:1;15013:3;976:28530;;;-1:-1:-1;976:28530:1;;15013:25;;14928:117;;18299:34;18298:35;18294:99;;18151:256;;;;;976:28530;;;;-1:-1:-1;976:28530:1;;;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;-1:-1:-1;;976:28530:1;;;;;;1055:104:6;;;;3400:1:1;1055:104:6;976:28530:1;1055:104:6;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;240:1:0;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3400:1:1;976:28530;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;16151:8;-1:-1:-1;976:28530:1;;;;;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;3400:1:1;976:28530;;;;;;;;17072:44;17099:17;976:28530;17099:17;;976:28530;;;17072:44;;16800:150;16912:23;;;-1:-1:-1;16912:23:1;16309:36;-1:-1:-1;16912:23:1;16804:81;6500:15:7;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;16852:33:1;16804:81;;;16309:36;;;;;-1:-1:-1;16309:36:1;;;;;;:::i;:::-;;;;;;15846:2898;;;;;;;;;;976:28530;;:::i;:::-;;;;;;;:::i;:::-;16112:29;;16162:21;;;:::i;:::-;16151:8;;;;:32;976:28530;;-1:-1:-1;;;16309:36:1;;;;;976:28530;;;;-1:-1:-1;976:28530:1;16309:36;976:28530;16309:15;-1:-1:-1;;;;;976:28530:1;16309:36;;;;;;;-1:-1:-1;16309:36:1;;;15846:2898;976:28530;;;16359:29;16355:82;;16483:25;;;;:::i;:::-;;;16544:21;;;:::i;:::-;;;-1:-1:-1;16576:2029:1;16596:10;;;;;;18631:85;;;;;;;;;;;;;;;;;;;;:::i;16608:19::-;16683:7;;;;;;;;;;:::i;:::-;;16804:22;16151:8;16804:22;;976:28530;-1:-1:-1;;;;;976:28530:1;;;16804:44;;;:81;;;;16608:19;16800:150;;;976:28530;17073:22;;976:28530;;17072:44;;;16608:19;17068:103;;17323:14;;;976:28530;;;;;;17570:17;;;976:28530;17611:12;;;;976:28530;;;17611:12;;976:28530;;;;-1:-1:-1;;;;;976:28530:1;;;-1:-1:-1;;;;;976:28530:1;;16151:8;976:28530;;;;:::i;:::-;-1:-1:-1;976:28530:1;;17218:420;976:28530;6500:15:7;976:28530:1;-1:-1:-1;;;;;6500:15:7;976:28530:1;17218:420;;976:28530;17323:14;17218:420;;976:28530;-1:-1:-1;17611:12:1;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;;;;;;;;;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;-1:-1:-1;17818:247:1;16151:8;17218:420;;976:28530;17218:420;26697:392;16309:36;976:28530;17218:420;;;976:28530;16151:8;976:28530;17218:420;;976:28530;17218:420;976:28530;17218:420;;976:28530;17218:420;17323:14;17218:420;;976:28530;17218:420;;;976:28530;;;17218:420;;;;;976:28530;17218:420;;27029:16;976:28530;;;26697:392;;;;;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;240:1:0;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26697:392;;;;;;;;;;;:::i;:::-;976:28530;26670:433;;976:28530;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;17903:25;17899:77;;-1:-1:-1;1489:1:0;976:28530:1;;;17818:247;;17899:77;17952:5;;;;;;;;;;;976:28530;;;;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;;;;;16151:8;17218:420;;976:28530;1489:1:0;976:28530:1;;;;;;;-1:-1:-1;;;;;17218:420:1;976:28530;17218:420;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;;;;;;17323:14;17218:420;;976:28530;-1:-1:-1;;;976:28530:1;;;;;;;-1:-1:-1;;;976:28530:1;;;;;-1:-1:-1;;;;;17611:12:1;17218:420;;976:28530;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;17218:420;;;;976:28530;;;;;17218:420;;;976:28530;16309:36;976:28530;;;;-1:-1:-1;;;;;;976:28530:1;-1:-1:-1;;;;;976:28530:1;;;;;;;17218:420;;976:28530;;;;;;17218:420;;;976:28530;-1:-1:-1;;;;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;976:28530:1;;;;17218:420;;;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;:::i;:::-;;;;;;17818:247;976:28530;16151:8;976:28530;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;1489:1:0;976:28530:1;;;;;;;;;;;;;;;17323:14;;;976:28530;18155:27;18151:256;;976:28530;18421:29;;1489:1:0;18421:29:1;;;;;;:::i;:::-;;;;;;;:::i;:::-;;17218:420;18476:13;;976:28530;18464:25;;;;;:::i;:::-;976:28530;16151:8;18504:17;16151:8;;;;;18504;:17;:::i;:::-;976:28530;;;;;;;;;;;;;;18541:53;16151:8;976:28530;;;;;;;18541:53;;976:28530;16581:13;;;;18151:256;18299:34;;;;-1:-1:-1;976:28530:1;15013:3;976:28530;;;-1:-1:-1;976:28530:1;;15013:25;;14928:117;;18299:34;18298:35;18294:99;;18151:256;;;;;976:28530;;;;-1:-1:-1;976:28530:1;;;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;-1:-1:-1;;976:28530:1;;;;;;1055:104:6;;;;1489:1:0;1055:104:6;976:28530:1;1055:104:6;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;240:1:0;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1489:1:0;976:28530:1;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;16151:8;-1:-1:-1;976:28530:1;;;;;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;1489:1:0;976:28530:1;;;;;;;;17072:44;17099:17;976:28530;17099:17;;976:28530;;;17072:44;;16804:81;6500:15:7;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;16852:33:1;16804:81;;;16309:36;;;;;;;-1:-1:-1;16309:36:1;;;;;;:::i;:::-;;;;;28803:701;;28944:23;28803:701;28944:23;:::i;:::-;28978:24;29001:1;976:28530;;29066:13;29001:1;29081:17;;;;;;29486:11;;;;28803:701;:::o;29100:19::-;29166:11;;;;:::i;:::-;;976:28530;;29001:1;29251:215;29271:21;;;;;;29100:19;;;1489:1:0;976:28530:1;29066:13;;29294:19;29354:14;;;1489:1:0;29354:14:1;;;;;;:::i;:::-;976:28530;29333:35;;;;:::i;:::-;976:28530;;29294:19;976:28530;29256:13;;;;27816:225;;976:28530;-1:-1:-1;976:28530:1;27885:11;976:28530;;-1:-1:-1;;;;;976:28530:1;-1:-1:-1;976:28530:1;;;27881:80;;-1:-1:-1;;;;;976:28530:1;;-1:-1:-1;976:28530:1;27885:11;976:28530;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;28011:23;;-1:-1:-1;28011:23:1;;27816:225::o;27881:80::-;27930:20;;;-1:-1:-1;27930:20:1;;-1:-1:-1;27930:20:1;1308:634:57;1430:17;-1:-1:-1;29282:17:66;-1:-1:-1;;;29282:17:66;;;29278:103;;1308:634:57;29398:17:66;29407:8;29978:7;29398:17;;;29394:103;;1308:634:57;29523:8:66;29514:17;;;29510:103;;1308:634:57;29639:7:66;29630:16;;;29626:100;;1308:634:57;29752:7:66;29743:16;;;29739:100;;1308:634:57;29865:7:66;29856:16;;;29852:100;;1308:634:57;29969:16:66;;29965:66;;1308:634:57;29978:7:66;1545:94:57;1450:1;976:28530:1;;1488:18:57;976:28530:1;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;1055:104:6;;976:28530:1;;:::i;:::-;;;;;;;1545:94:57;;;1652:247;-1:-1:-1;;976:28530:1;;-1:-1:-1;;;1706:111:57;;;;976:28530:1;1706:111:57;976:28530:1;1867:10:57;;1863:21;;29978:7:66;1652:247:57;;;;1863:21;1879:5;;1308:634;:::o;29965:66:66:-;30015:1;976:28530:1;;;;29965:66:66;;29852:100;29865:7;29936:1;976:28530:1;;;;29852:100:66;;;29739;29752:7;29823:1;976:28530:1;;;;29739:100:66;;;29626;29639:7;29710:1;976:28530:1;;;;29626:100:66;;;29510:103;29523:8;29596:2;976:28530:1;;;;29510:103:66;;;29394;29407:8;29480:2;976:28530:1;;;;29394:103:66;;;29278;-1:-1:-1;29364:2:66;;-1:-1:-1;;;;976:28530:1;;29278:103:66;;3945:262:59;4029:4;4038:11;-1:-1:-1;;;;;976:28530:1;4021:28:59;;:63;;3945:262;4017:184;;;4107:22;4100:29;:::o;4017:184::-;976:28530:1;;4304:80:59;;;976:28530:1;2079:95:59;976:28530:1;;4326:11:59;976:28530:1;2079:95:59;;976:28530:1;4339:14:59;2079:95;;;976:28530:1;4355:13:59;2079:95;;;976:28530:1;4029:4:59;2079:95;;;976:28530:1;2079:95:59;4304:80;;;;;;:::i;:::-;976:28530:1;4294:91:59;;4160:30;:::o;4021:63::-;4070:14;;4053:13;:31;4021:63;;5017:176;3993:249:62;5017:176:59;5153:20;;:::i;:::-;3993:249:62;;;;-1:-1:-1;;;3993:249:62;;;;;;;;;;;5017:176:59;:::o;1494:429:63:-;;;1620:18;;;;1707:33;;;;:::i;:::-;976:28530:1;;;;;;;1761:33:63;:56;;;;1754:63;;;:::o;1761:56::-;-1:-1:-1;;;;;976:28530:1;;;;;1798:19:63;;1754:63;-1:-1:-1;1754:63:63:o;976:28530:1:-;;;;;;;;;;;;1616:301:63;976:28530:1;;;;2558:60:63;976:28530:1;;;;2558:60:63;;;;;;;;;;;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;2558:60:63;1055:104:6;;2558:60:63;;;;;;:::i;:::-;2527:101;;;;;;:::i;:::-;2646:42;;;1616:301;2646:134;;;1848:58;;:::o;2646:134::-;976:28530:1;;2558:60:63;976:28530:1;;;2704:29:63;;976:28530:1;;;;2558:60:63;2704:29;976:28530:1;-1:-1:-1;;;2704:76:63;;1848:58::o;2646:42::-;976:28530:1;;2558:60:63;976:28530:1;;2669:19:63;;2646:42;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;24099:2238;;;;976:28530;;24417:11;1489:1:0;24417:11:1;;24413:146;;24596:21;;976:28530;-1:-1:-1;;;;;976:28530:1;;24631:31;;24627:406;;976:28530;;-1:-1:-1;;;25104:20:1;;976:28530;;;24596:21;976:28530;25104:20;976:28530;25104:20;;;;;;;;976:28530;25104:20;;;24099:2238;25140:13;;976:28530;25135:777;25155:10;;;;;;976:28530;;;;24596:21;976:28530;25959:67;976:28530;;;;;;;;;;;;;25959:67;;25104:20;25959:67;;;:::i;:::-;;;;;;;;;;976:28530;25959:67;;;25135:777;25958:68;;25954:134;;26241:58;;26309:21;24099:2238;:::o;26241:58::-;26273:14;;;:::i;25954:134::-;26053:20;;;976:28530;26053:20;25104;976:28530;26053:20;25959:67;;;24596:21;25959:67;;24596:21;25959:67;;;;;;24596:21;25959:67;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;25959:67;;;;;;-1:-1:-1;25959:67:1;;25167:19;25218:9;;;;;;;;:::i;:::-;976:28530;25340:10;;25336:57;;25411:18;;25407:76;;25591:22;;;25587:87;;976:28530;1489:1:0;976:28530:1;;;;25167:19;25140:13;976:28530;25140:13;;;;25587:87;25640:19;;;976:28530;25640:19;25104:20;976:28530;25640:19;25407:76;24875:12;;;976:28530;25456:12;25104:20;976:28530;25456:12;25336:57;25370:8;;;1489:1:0;25370:8:1;;;25104:20;;;24596:21;25104:20;;24596:21;25104:20;;;;;;24596:21;25104:20;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;25104:20;;;;;;-1:-1:-1;25104:20:1;;24627:406;24760:13;;976:28530;24760:13;;;;24775:10;;;;;;24934:66;;;;;25014:8;976:28530;25014:8;:::o;24934:66::-;24970:14;;;:::i;:::-;976:28530;25014:8;:::o;24787:19::-;24830:9;;;;:::i;:::-;976:28530;24826:80;;1489:1:0;976:28530:1;24760:13;;24413:146;24485:15;24451:97;24485:15;;;24502:9;24485:15;1489:1:0;24485:15:1;;;;;:::i;:::-;;24502:9;;:::i;:::-;976:28530;24451:97;;:::i;24099:2238::-;;;;976:28530;;24417:11;24427:1;24417:11;;24413:146;;24596:21;;976:28530;-1:-1:-1;;;;;976:28530:1;;24631:31;;24627:406;;976:28530;;-1:-1:-1;;;25104:20:1;;-1:-1:-1;;976:28530:1;24596:21;976:28530;25104:20;976:28530;25104:20;;;;;;;;-1:-1:-1;25104:20:1;;;24099:2238;25140:13;;-1:-1:-1;25135:777:1;25155:10;;;;;;25922:309;;;;24596:21;25922:309;26109:67;25922:309;976:28530;;;;;;;;;;;;26109:67;;25104:20;26109:67;;;:::i;:::-;;;;;;;;;;25922:309;26109:67;;;25135:777;26108:68;;26104:127;;26241:58;;26309:21;24099:2238;:::o;26104:127::-;26199:21;;;25922:309;26199:21;25104:20;25922:309;26199:21;26109:67;;;24596:21;26109:67;;24596:21;26109:67;;;;;;24596:21;26109:67;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;26109:67;;;;;;-1:-1:-1;26109:67:1;;25167:19;25218:9;;;;;;;;:::i;:::-;976:28530;25340:10;;25336:57;;25411:18;;25407:76;;25591:22;;;25587:87;;976:28530;24427:1;976:28530;;;;25167:19;25140:13;976:28530;25140:13;;;;25336:57;25370:8;;;24427:1;25370:8;;;25104:20;;;24596:21;25104:20;;24596:21;25104:20;;;;;;24596:21;25104:20;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;25104:20;;;;;;-1:-1:-1;25104:20:1;;24627:406;24760:13;;-1:-1:-1;24760:13:1;;;;24775:10;;;;;;24934:66;;;;;25014:8;-1:-1:-1;25014:8:1;:::o;24787:19::-;24830:9;;;;:::i;:::-;976:28530;24826:80;;24427:1;976:28530;24760:13;;24413:146;24485:15;24451:97;24485:15;;;24502:9;24485:15;-1:-1:-1;24485:15:1;;;;;:::i;3368:267:54:-;1390:66;3491:46;;1390:66;;;2625:40;;2679:11;2688:2;2679:11;;2675:69;;976:28530:1;;;;;;;:::i;:::-;2311:2:54;976:28530:1;;;;;;;1055:104:6;976:28530:1;;;2324:106:54;;;3553:22;:::o;2675:69::-;2713:20;;;976:28530:1;2713:20:54;;976:28530:1;2713:20:54;3487:142;976:28530:1;;;1390:66:54;;;;976:28530:1;1390:66:54;:::i;:::-;;;;:::i;3368:267::-;1390:66;3491:46;;1390:66;;;2625:40;;2679:11;2688:2;2679:11;;2675:69;;976:28530:1;;;;;;;:::i;3487:142:54:-;976:28530:1;;;1390:66:54;;;;6668:16:59;1390:66:54;:::i;976:28530:1:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;976:28530:1;;;;:::o;:::-;;;:::o;2129:778:58:-;976:28530:1;;;2129:778:58;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:58;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;21968:1538:1:-;22249:21;;976:28530;21968:1538;;;;;-1:-1:-1;;;;;976:28530:1;;22284:31;;22280:309;;22693:10;;;;;22689:449;;21968:1538;22249:21;;23148:261;;;;;976:28530;;;;;;;;;;;;;23185:44;;;;;;976:28530;;;;;;:::i;:::-;23185:44;;;;;;;;;976:28530;23185:44;;;23148:261;23184:45;;23180:110;;23148:261;23419:58;;23487:12;21968:1538;:::o;23180:110::-;23256:19;;;976:28530;23256:19;23185:44;976:28530;23256:19;23185:44;;;22249:21;23185:44;;22249:21;23185:44;;;;;;22249:21;23185:44;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;23185:44;;;;;;-1:-1:-1;23185:44:1;;23148:261;976:28530;;;;;;;;;;;;;23311:44;;;;;;976:28530;;;;;;:::i;:::-;23311:44;;;;;;;;;976:28530;23311:44;;;23148:261;23310:45;23148:261;23306:103;23378:20;;;976:28530;23378:20;23311:44;976:28530;23378:20;23311:44;;;22249:21;23311:44;;22249:21;23311:44;;;;;;22249:21;23311:44;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;23311:44;;;;;;-1:-1:-1;23311:44:1;;22689:449;976:28530;;;;;;;;;;22724:20;;22249:21;22724:20;;;;;;;;;;;976:28530;22724:20;;;22689:449;22723:21;;22719:79;;22906:22;;;22902:87;;976:28530;;;;;;;;22689:449;;22724:20;;;22249:21;22724:20;;22249:21;22724:20;;;;;;22249:21;22724:20;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;22724:20;;;;;;-1:-1:-1;22724:20:1;;22280:309;22412:10;;;;;22408:68;;22490:66;;22570:8;976:28530;22570:8;:::o;27265:415::-;27328:18;27324:350;;27265:415;:::o;27324:350::-;1375:21:44;;:30;1371:125;;27345:1:1;27626:10;;;;;1548:33:44;;;;:::i;:::-;1595:8;;1591:58;;27265:415:1;:::o;1591:58:44:-;976:28530:1;;5690:21:44;:17;;5815:105;;;;;;5686:301;5957:19;;;27345:1:1;5957:19:44;;27345:1:1;5957:19:44;1371:125;1455:21;1428:57;;;27345:1:1;1428:57:44;;976:28530:1;;;;27345:1;1428:57:44;5203:1551:58;;;6283:66;6270:79;;6266:164;;976:28530:1;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;6541:24:58;;;;;;;;;-1:-1:-1;6541:24:58;-1:-1:-1;;;;;976:28530:1;;6579:20:58;6575:113;;6698:49;-1:-1:-1;6698:49:58;-1:-1:-1;5203:1551:58;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:58;6541:24;6615:62;-1:-1:-1;6615:62:58;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o","linkReferences":{},"immutableReferences":{"11515":[{"start":11897,"length":32}],"11517":[{"start":12086,"length":32}],"11519":[{"start":11843,"length":32}],"11521":[{"start":11976,"length":32}],"11523":[{"start":12014,"length":32}],"11526":[{"start":1745,"length":32}],"11529":[{"start":1789,"length":32}],"150":[{"start":461,"length":32},{"start":6866,"length":32},{"start":7425,"length":32},{"start":8368,"length":32},{"start":9866,"length":32}],"2532":[{"start":2077,"length":32}],"2534":[{"start":2120,"length":32}],"2536":[{"start":2163,"length":32}]}},"methodIdentifiers":{"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))":"f17325e7","attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))":"3c042715","eip712Domain()":"84b0196e","getAttestTypeHash()":"12b11a17","getAttestation(bytes32)":"a3112a64","getDomainSeparator()":"ed24911d","getName()":"17d7de7c","getNonce(address)":"2d0335ab","getRevokeOffchain(address,bytes32)":"b469318d","getRevokeTypeHash()":"b83010d3","getSchemaRegistry()":"f10b5cc8","getTimestamp(bytes32)":"d45c4435","increaseNonce(uint256)":"79f7573a","isAttestationValid(bytes32)":"e30bb563","multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])":"44adc90e","multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":"95411525","multiRevoke((bytes32,(bytes32,uint256)[])[])":"4cb7e9e5","multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":"0eabf660","multiRevokeOffchain(bytes32[])":"13893f61","multiTimestamp(bytes32[])":"e71ff365","revoke((bytes32,(bytes32,uint256)))":"46926267","revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))":"a6d4dbc7","revokeOffchain(bytes32)":"cf190f34","timestamp(bytes32)":"4d003070","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISchemaRegistry\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRevoked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRevokedOffchain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyTimestamped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeadlineExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidExpirationTime\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOffset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRevocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRevocations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSchema\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Irrevocable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongSchema\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schemaUID\",\"type\":\"bytes32\"}],\"name\":\"Attested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newNonce\",\"type\":\"uint256\"}],\"name\":\"NonceIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schemaUID\",\"type\":\"bytes32\"}],\"name\":\"Revoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"RevokedOffchain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"Timestamped\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct AttestationRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature\",\"name\":\"signature\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct DelegatedAttestationRequest\",\"name\":\"delegatedRequest\",\"type\":\"tuple\"}],\"name\":\"attestByDelegation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getAttestation\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"getRevokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRevokeTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSchemaRegistry\",\"outputs\":[{\"internalType\":\"contract ISchemaRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newNonce\",\"type\":\"uint256\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"isAttestationValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct MultiAttestationRequest[]\",\"name\":\"multiRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct MultiDelegatedAttestationRequest[]\",\"name\":\"multiDelegatedRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiAttestByDelegation\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct MultiRevocationRequest[]\",\"name\":\"multiRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiRevoke\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct MultiDelegatedRevocationRequest[]\",\"name\":\"multiDelegatedRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiRevokeByDelegation\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"multiRevokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"multiTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct RevocationRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData\",\"name\":\"data\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature\",\"name\":\"signature\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct DelegatedRevocationRequest\",\"name\":\"delegatedRequest\",\"type\":\"tuple\"}],\"name\":\"revokeByDelegation\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"revokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"timestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"events\":{\"Attested(address,address,bytes32,bytes32)\":{\"params\":{\"attester\":\"The attesting account.\",\"recipient\":\"The recipient of the attestation.\",\"schemaUID\":\"The UID of the schema.\",\"uid\":\"The UID of the new attestation.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"NonceIncreased(uint256,uint256)\":{\"params\":{\"newNonce\":\"The new value.\",\"oldNonce\":\"The previous nonce.\"}},\"Revoked(address,address,bytes32,bytes32)\":{\"params\":{\"attester\":\"The attesting account.\",\"recipient\":\"The recipient of the attestation.\",\"schemaUID\":\"The UID of the schema.\",\"uid\":\"The UID the revoked attestation.\"}},\"RevokedOffchain(address,bytes32,uint64)\":{\"params\":{\"data\":\"The data.\",\"revoker\":\"The address of the revoker.\",\"timestamp\":\"The timestamp.\"}},\"Timestamped(bytes32,uint64)\":{\"params\":{\"data\":\"The data.\",\"timestamp\":\"The timestamp.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))\":{\"params\":{\"request\":\"The arguments of the attestation request.\"},\"returns\":{\"_0\":\"The UID of the new attestation. Example: attest({ schema: \\\"0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0\\\", data: { recipient: \\\"0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf\\\", expirationTime: 0, revocable: true, refUID: \\\"0x0000000000000000000000000000000000000000000000000000000000000000\\\", data: \\\"0xF00D\\\", value: 0 } })\"}},\"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"params\":{\"delegatedRequest\":\"The arguments of the delegated attestation request.\"},\"returns\":{\"_0\":\"The UID of the new attestation. Example: attestByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, signature: { v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e', deadline: 1673891048 })\"}},\"constructor\":{\"details\":\"Creates a new EAS instance.\",\"params\":{\"registry\":\"The address of the global schema registry.\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"getAttestTypeHash()\":{\"returns\":{\"_0\":\"The EIP712 type hash for the attest function.\"}},\"getAttestation(bytes32)\":{\"params\":{\"uid\":\"The UID of the attestation to retrieve.\"},\"returns\":{\"_0\":\"The attestation data members.\"}},\"getDomainSeparator()\":{\"returns\":{\"_0\":\"The domain separator used in the encoding of the signatures for attest, and revoke.\"}},\"getName()\":{\"returns\":{\"_0\":\"The EIP712 name.\"}},\"getNonce(address)\":{\"params\":{\"account\":\"The requested account.\"},\"returns\":{\"_0\":\"The current nonce.\"}},\"getRevokeOffchain(address,bytes32)\":{\"params\":{\"data\":\"The data to query.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"getRevokeTypeHash()\":{\"returns\":{\"_0\":\"The EIP712 type hash for the revoke function.\"}},\"getSchemaRegistry()\":{\"returns\":{\"_0\":\"The address of the global schema registry.\"}},\"getTimestamp(bytes32)\":{\"params\":{\"data\":\"The data to query.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"increaseNonce(uint256)\":{\"params\":{\"newNonce\":\"The (higher) new value.\"}},\"isAttestationValid(bytes32)\":{\"params\":{\"uid\":\"The UID of the attestation to retrieve.\"},\"returns\":{\"_0\":\"Whether an attestation exists.\"}},\"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])\":{\"params\":{\"multiRequests\":\"The arguments of the multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization.\"},\"returns\":{\"_0\":\"The UIDs of the new attestations. Example: multiAttest([{ schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 1000 }, { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 0, revocable: false, refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174', data: '0x00', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: true, refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f', data: '0x12345678', value: 0 }, }])\"}},\"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"params\":{\"multiDelegatedRequests\":\"The arguments of the delegated multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization.\"},\"returns\":{\"_0\":\"The UIDs of the new attestations. Example: multiAttestByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, { recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: false, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x00', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4', deadline: 1673891048 }])\"}},\"multiRevoke((bytes32,(bytes32,uint256)[])[])\":{\"params\":{\"multiRequests\":\"The arguments of the multi revocation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevoke([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019', value: 0 }, }])\"}},\"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"params\":{\"multiDelegatedRequests\":\"The arguments of the delegated multi revocation attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevokeByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 }])\"}},\"multiRevokeOffchain(bytes32[])\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was revoked with.\"}},\"multiTimestamp(bytes32[])\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"revoke((bytes32,(bytes32,uint256)))\":{\"params\":{\"request\":\"The arguments of the revocation request. Example: revoke({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d', value: 0 } })\"}},\"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"params\":{\"delegatedRequest\":\"The arguments of the delegated revocation request. Example: revokeByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba', value: 0 }, signature: { v: 27, r: '0xb593...7142', s: '0x0f5b...2cce' }, revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 })\"}},\"revokeOffchain(bytes32)\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was revoked with.\"}},\"timestamp(bytes32)\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"EAS\",\"version\":1},\"userdoc\":{\"events\":{\"Attested(address,address,bytes32,bytes32)\":{\"notice\":\"Emitted when an attestation has been made.\"},\"NonceIncreased(uint256,uint256)\":{\"notice\":\"Emitted when users invalidate nonces by increasing their nonces to (higher) new values.\"},\"Revoked(address,address,bytes32,bytes32)\":{\"notice\":\"Emitted when an attestation has been revoked.\"},\"RevokedOffchain(address,bytes32,uint64)\":{\"notice\":\"Emitted when a data has been revoked.\"},\"Timestamped(bytes32,uint64)\":{\"notice\":\"Emitted when a data has been timestamped.\"}},\"kind\":\"user\",\"methods\":{\"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))\":{\"notice\":\"Attests to a specific schema.\"},\"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"notice\":\"Attests to a specific schema via the provided ECDSA signature.\"},\"getAttestTypeHash()\":{\"notice\":\"Returns the EIP712 type hash for the attest function.\"},\"getAttestation(bytes32)\":{\"notice\":\"Returns an existing attestation by UID.\"},\"getDomainSeparator()\":{\"notice\":\"Returns the domain separator used in the encoding of the signatures for attest, and revoke.\"},\"getName()\":{\"notice\":\"Returns the EIP712 name.\"},\"getNonce(address)\":{\"notice\":\"Returns the current nonce per-account.\"},\"getRevokeOffchain(address,bytes32)\":{\"notice\":\"Returns the timestamp that the specified data was timestamped with.\"},\"getRevokeTypeHash()\":{\"notice\":\"Returns the EIP712 type hash for the revoke function.\"},\"getSchemaRegistry()\":{\"notice\":\"Returns the address of the global schema registry.\"},\"getTimestamp(bytes32)\":{\"notice\":\"Returns the timestamp that the specified data was timestamped with.\"},\"increaseNonce(uint256)\":{\"notice\":\"Provides users an option to invalidate nonces by increasing their nonces to (higher) new values.\"},\"isAttestationValid(bytes32)\":{\"notice\":\"Checks whether an attestation exists.\"},\"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])\":{\"notice\":\"Attests to multiple schemas.\"},\"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"notice\":\"Attests to multiple schemas using via provided ECDSA signatures.\"},\"multiRevoke((bytes32,(bytes32,uint256)[])[])\":{\"notice\":\"Revokes existing attestations to multiple schemas.\"},\"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"notice\":\"Revokes existing attestations to multiple schemas via provided ECDSA signatures.\"},\"multiRevokeOffchain(bytes32[])\":{\"notice\":\"Revokes the specified multiple bytes32 data.\"},\"multiTimestamp(bytes32[])\":{\"notice\":\"Timestamps the specified multiple bytes32 data.\"},\"revoke((bytes32,(bytes32,uint256)))\":{\"notice\":\"Revokes an existing attestation to a specific schema.\"},\"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"notice\":\"Revokes an existing attestation to a specific schema via the provided ECDSA signature.\"},\"revokeOffchain(bytes32)\":{\"notice\":\"Revokes the specified bytes32 data.\"},\"timestamp(bytes32)\":{\"notice\":\"Timestamps the specified bytes32 data.\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"The Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol\":\"EAS\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol\":{\"keccak256\":\"0x60d59e039e6ec40887e8a946f516b55997d689212c44a89f434119535dd9a3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5234ba00beaf7a43005c0759e883c6878eecc4d0efeb42c10be8c9e8b17ba21\",\"dweb:/ipfs/QmPdUaubX2Yr9kMSyyYxkY3ueHiGzPfqTq5ubzbmQiQA6B\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol\":{\"keccak256\":\"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880\",\"dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/eip1271/EIP1271Verifier.sol\":{\"keccak256\":\"0x590977110db1256cc00416bdf74eb8264a0eda358ccded303610369a2930b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef015b3bee8859e6658c0eac6471d05f2991a5f4b6b5c2aa5571bbdab622d6e9\",\"dweb:/ipfs/QmUHriGkixE62c5qWjyM9DWZFykDcjQ7T6Tbfi3DPD38ym\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x66c7ec42c6c43712be2107a50ab4529379bc76a632b425babec698d9da921ac6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dce2778f0b638adfc5ba29c2c618c855fe725fa74a16846386aa1d56a834aa04\",\"dweb:/ipfs/QmPV9oWnzQdi58od266j62xvviavLNHqKLZfm6k2K1qy9E\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC7913.sol\":{\"keccak256\":\"0xe5a126930df1d54e4a6dd5fea09010c4a7db0ea974c6c17a1e6082879f5a032b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f58f5a90328536a6c68289916bfa4ed653d871319c7b2a416ab3f6263c4f2f5\",\"dweb:/ipfs/Qmaa9DmgUA16Urz5fuF4RbFz2NaVpNLV41ddwykSdasFUd\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"node_modules/@openzeppelin/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x1613f93e376ab96791fd29f79da754e253c3d766831bc8c42f50545662f49065\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e88ee314d50d0f323616f88d0ccf5e4110dbdec2775d8d42523bcc8b76ed36eb\",\"dweb:/ipfs/QmQ18ygHRrDdz4AEZXy5PASUHvJk1SNWWKM3TyC1xvDedP\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x1fcf8cceb1a67e6c8512267e780933c4a3f63ef44756e6c818fda79be51c8402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://617d7d57f6f9cd449068b4d23daf485676d083aae648e038d05eb3a13291de35\",\"dweb:/ipfs/QmPADWPiGaSzZDFNpFEUx4ZPqhzPkYncBpHyTfAGcfsqzy\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x17fc4574e07105b0180ef61f1b3cacd1820a3d37f29a4af1018d0a253c6399b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be46b3e1362dbcadbbb45ec92cdea849dceccea3e2795237f00c123aeae44746\",\"dweb:/ipfs/QmSpyB8mud6xKiZaQnVtEPrxtTHGtyBgjs1PCYk4f2gesd\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x0f39d23ae345355f0913470b15d00c0434754302077ac97cdc038b5c000fc5cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5ebc3233ff506c43e0f9960d2459403f878bbb63b7c71c318f16839564919ac\",\"dweb:/ipfs/QmbctngFd6aQkHVqZeFAL3iHfw4X7wNgfsgUxX8t26U2m4\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ISchemaRegistry","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessDenied"},{"inputs":[],"type":"error","name":"AlreadyRevoked"},{"inputs":[],"type":"error","name":"AlreadyRevokedOffchain"},{"inputs":[],"type":"error","name":"AlreadyTimestamped"},{"inputs":[],"type":"error","name":"DeadlineExpired"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[],"type":"error","name":"InvalidAttestations"},{"inputs":[],"type":"error","name":"InvalidExpirationTime"},{"inputs":[],"type":"error","name":"InvalidLength"},{"inputs":[],"type":"error","name":"InvalidNonce"},{"inputs":[],"type":"error","name":"InvalidOffset"},{"inputs":[],"type":"error","name":"InvalidRegistry"},{"inputs":[],"type":"error","name":"InvalidRevocation"},{"inputs":[],"type":"error","name":"InvalidRevocations"},{"inputs":[],"type":"error","name":"InvalidSchema"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidVerifier"},{"inputs":[],"type":"error","name":"Irrevocable"},{"inputs":[],"type":"error","name":"NotFound"},{"inputs":[],"type":"error","name":"NotPayable"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"error","name":"WrongSchema"},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schemaUID","type":"bytes32","indexed":true}],"type":"event","name":"Attested","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldNonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"newNonce","type":"uint256","indexed":false}],"type":"event","name":"NonceIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schemaUID","type":"bytes32","indexed":true}],"type":"event","name":"Revoked","anonymous":false},{"inputs":[{"internalType":"address","name":"revoker","type":"address","indexed":true},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":true},{"internalType":"uint64","name":"timestamp","type":"uint64","indexed":true}],"type":"event","name":"RevokedOffchain","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32","indexed":true},{"internalType":"uint64","name":"timestamp","type":"uint64","indexed":true}],"type":"event","name":"Timestamped","anonymous":false},{"inputs":[{"internalType":"struct AttestationRequest","name":"request","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData","name":"data","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct DelegatedAttestationRequest","name":"delegatedRequest","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData","name":"data","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature","name":"signature","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"attester","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"attestByDelegation","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getAttestTypeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"struct Attestation","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDomainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"revoker","type":"address"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRevokeOffchain","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getRevokeTypeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSchemaRegistry","outputs":[{"internalType":"contract ISchemaRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTimestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"newNonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isAttestationValid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultiAttestationRequest[]","name":"multiRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct MultiDelegatedAttestationRequest[]","name":"multiDelegatedRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature[]","name":"signatures","type":"tuple[]","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"attester","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"multiAttestByDelegation","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct MultiRevocationRequest[]","name":"multiRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"multiRevoke"},{"inputs":[{"internalType":"struct MultiDelegatedRevocationRequest[]","name":"multiDelegatedRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature[]","name":"signatures","type":"tuple[]","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"revoker","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"multiRevokeByDelegation"},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"multiRevokeOffchain","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"multiTimestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct RevocationRequest","name":"request","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData","name":"data","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"revoke"},{"inputs":[{"internalType":"struct DelegatedRevocationRequest","name":"delegatedRequest","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData","name":"data","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature","name":"signature","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"revoker","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"revokeByDelegation"},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"revokeOffchain","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))":{"params":{"request":"The arguments of the attestation request."},"returns":{"_0":"The UID of the new attestation. Example: attest({ schema: \"0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0\", data: { recipient: \"0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf\", expirationTime: 0, revocable: true, refUID: \"0x0000000000000000000000000000000000000000000000000000000000000000\", data: \"0xF00D\", value: 0 } })"}},"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))":{"params":{"delegatedRequest":"The arguments of the delegated attestation request."},"returns":{"_0":"The UID of the new attestation. Example: attestByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, signature: { v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e', deadline: 1673891048 })"}},"constructor":{"details":"Creates a new EAS instance.","params":{"registry":"The address of the global schema registry."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"getAttestTypeHash()":{"returns":{"_0":"The EIP712 type hash for the attest function."}},"getAttestation(bytes32)":{"params":{"uid":"The UID of the attestation to retrieve."},"returns":{"_0":"The attestation data members."}},"getDomainSeparator()":{"returns":{"_0":"The domain separator used in the encoding of the signatures for attest, and revoke."}},"getName()":{"returns":{"_0":"The EIP712 name."}},"getNonce(address)":{"params":{"account":"The requested account."},"returns":{"_0":"The current nonce."}},"getRevokeOffchain(address,bytes32)":{"params":{"data":"The data to query."},"returns":{"_0":"The timestamp the data was timestamped with."}},"getRevokeTypeHash()":{"returns":{"_0":"The EIP712 type hash for the revoke function."}},"getSchemaRegistry()":{"returns":{"_0":"The address of the global schema registry."}},"getTimestamp(bytes32)":{"params":{"data":"The data to query."},"returns":{"_0":"The timestamp the data was timestamped with."}},"increaseNonce(uint256)":{"params":{"newNonce":"The (higher) new value."}},"isAttestationValid(bytes32)":{"params":{"uid":"The UID of the attestation to retrieve."},"returns":{"_0":"Whether an attestation exists."}},"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])":{"params":{"multiRequests":"The arguments of the multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization."},"returns":{"_0":"The UIDs of the new attestations. Example: multiAttest([{ schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 1000 }, { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 0, revocable: false, refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174', data: '0x00', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: true, refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f', data: '0x12345678', value: 0 }, }])"}},"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"params":{"multiDelegatedRequests":"The arguments of the delegated multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization."},"returns":{"_0":"The UIDs of the new attestations. Example: multiAttestByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, { recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: false, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x00', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4', deadline: 1673891048 }])"}},"multiRevoke((bytes32,(bytes32,uint256)[])[])":{"params":{"multiRequests":"The arguments of the multi revocation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevoke([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019', value: 0 }, }])"}},"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"params":{"multiDelegatedRequests":"The arguments of the delegated multi revocation attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevokeByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 }])"}},"multiRevokeOffchain(bytes32[])":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was revoked with."}},"multiTimestamp(bytes32[])":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was timestamped with."}},"revoke((bytes32,(bytes32,uint256)))":{"params":{"request":"The arguments of the revocation request. Example: revoke({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d', value: 0 } })"}},"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))":{"params":{"delegatedRequest":"The arguments of the delegated revocation request. Example: revokeByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba', value: 0 }, signature: { v: 27, r: '0xb593...7142', s: '0x0f5b...2cce' }, revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 })"}},"revokeOffchain(bytes32)":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was revoked with."}},"timestamp(bytes32)":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was timestamped with."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))":{"notice":"Attests to a specific schema."},"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))":{"notice":"Attests to a specific schema via the provided ECDSA signature."},"getAttestTypeHash()":{"notice":"Returns the EIP712 type hash for the attest function."},"getAttestation(bytes32)":{"notice":"Returns an existing attestation by UID."},"getDomainSeparator()":{"notice":"Returns the domain separator used in the encoding of the signatures for attest, and revoke."},"getName()":{"notice":"Returns the EIP712 name."},"getNonce(address)":{"notice":"Returns the current nonce per-account."},"getRevokeOffchain(address,bytes32)":{"notice":"Returns the timestamp that the specified data was timestamped with."},"getRevokeTypeHash()":{"notice":"Returns the EIP712 type hash for the revoke function."},"getSchemaRegistry()":{"notice":"Returns the address of the global schema registry."},"getTimestamp(bytes32)":{"notice":"Returns the timestamp that the specified data was timestamped with."},"increaseNonce(uint256)":{"notice":"Provides users an option to invalidate nonces by increasing their nonces to (higher) new values."},"isAttestationValid(bytes32)":{"notice":"Checks whether an attestation exists."},"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])":{"notice":"Attests to multiple schemas."},"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"notice":"Attests to multiple schemas using via provided ECDSA signatures."},"multiRevoke((bytes32,(bytes32,uint256)[])[])":{"notice":"Revokes existing attestations to multiple schemas."},"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"notice":"Revokes existing attestations to multiple schemas via provided ECDSA signatures."},"multiRevokeOffchain(bytes32[])":{"notice":"Revokes the specified multiple bytes32 data."},"multiTimestamp(bytes32[])":{"notice":"Timestamps the specified multiple bytes32 data."},"revoke((bytes32,(bytes32,uint256)))":{"notice":"Revokes an existing attestation to a specific schema."},"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))":{"notice":"Revokes an existing attestation to a specific schema via the provided ECDSA signature."},"revokeOffchain(bytes32)":{"notice":"Revokes the specified bytes32 data."},"timestamp(bytes32)":{"notice":"Timestamps the specified bytes32 data."},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol":"EAS"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol":{"keccak256":"0x60d59e039e6ec40887e8a946f516b55997d689212c44a89f434119535dd9a3c4","urls":["bzz-raw://b5234ba00beaf7a43005c0759e883c6878eecc4d0efeb42c10be8c9e8b17ba21","dweb:/ipfs/QmPdUaubX2Yr9kMSyyYxkY3ueHiGzPfqTq5ubzbmQiQA6B"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol":{"keccak256":"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12","urls":["bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880","dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/eip1271/EIP1271Verifier.sol":{"keccak256":"0x590977110db1256cc00416bdf74eb8264a0eda358ccded303610369a2930b614","urls":["bzz-raw://ef015b3bee8859e6658c0eac6471d05f2991a5f4b6b5c2aa5571bbdab622d6e9","dweb:/ipfs/QmUHriGkixE62c5qWjyM9DWZFykDcjQ7T6Tbfi3DPD38ym"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol":{"keccak256":"0x66c7ec42c6c43712be2107a50ab4529379bc76a632b425babec698d9da921ac6","urls":["bzz-raw://dce2778f0b638adfc5ba29c2c618c855fe725fa74a16846386aa1d56a834aa04","dweb:/ipfs/QmPV9oWnzQdi58od266j62xvviavLNHqKLZfm6k2K1qy9E"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC7913.sol":{"keccak256":"0xe5a126930df1d54e4a6dd5fea09010c4a7db0ea974c6c17a1e6082879f5a032b","urls":["bzz-raw://2f58f5a90328536a6c68289916bfa4ed653d871319c7b2a416ab3f6263c4f2f5","dweb:/ipfs/Qmaa9DmgUA16Urz5fuF4RbFz2NaVpNLV41ddwykSdasFUd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Bytes.sol":{"keccak256":"0x1613f93e376ab96791fd29f79da754e253c3d766831bc8c42f50545662f49065","urls":["bzz-raw://e88ee314d50d0f323616f88d0ccf5e4110dbdec2775d8d42523bcc8b76ed36eb","dweb:/ipfs/QmQ18ygHRrDdz4AEZXy5PASUHvJk1SNWWKM3TyC1xvDedP"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ShortStrings.sol":{"keccak256":"0x1fcf8cceb1a67e6c8512267e780933c4a3f63ef44756e6c818fda79be51c8402","urls":["bzz-raw://617d7d57f6f9cd449068b4d23daf485676d083aae648e038d05eb3a13291de35","dweb:/ipfs/QmPADWPiGaSzZDFNpFEUx4ZPqhzPkYncBpHyTfAGcfsqzy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x17fc4574e07105b0180ef61f1b3cacd1820a3d37f29a4af1018d0a253c6399b5","urls":["bzz-raw://be46b3e1362dbcadbbb45ec92cdea849dceccea3e2795237f00c123aeae44746","dweb:/ipfs/QmSpyB8mud6xKiZaQnVtEPrxtTHGtyBgjs1PCYk4f2gesd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x0f39d23ae345355f0913470b15d00c0434754302077ac97cdc038b5c000fc5cc","urls":["bzz-raw://d5ebc3233ff506c43e0f9960d2459403f878bbb63b7c71c318f16839564919ac","dweb:/ipfs/QmbctngFd6aQkHVqZeFAL3iHfw4X7wNgfsgUxX8t26U2m4"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":1} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"registry","type":"address","internalType":"contract ISchemaRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"attest","inputs":[{"name":"request","type":"tuple","internalType":"struct AttestationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct AttestationRequestData","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"attestByDelegation","inputs":[{"name":"delegatedRequest","type":"tuple","internalType":"struct DelegatedAttestationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct AttestationRequestData","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signature","type":"tuple","internalType":"struct Signature","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"attester","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getAttestTypeHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getAttestation","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getDomainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRevokeOffchain","inputs":[{"name":"revoker","type":"address","internalType":"address"},{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRevokeTypeHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getSchemaRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISchemaRegistry"}],"stateMutability":"view"},{"type":"function","name":"getTimestamp","inputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"newNonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAttestationValid","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"multiAttest","inputs":[{"name":"multiRequests","type":"tuple[]","internalType":"struct MultiAttestationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct AttestationRequestData[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"multiAttestByDelegation","inputs":[{"name":"multiDelegatedRequests","type":"tuple[]","internalType":"struct MultiDelegatedAttestationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct AttestationRequestData[]","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signatures","type":"tuple[]","internalType":"struct Signature[]","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"attester","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"multiRequests","type":"tuple[]","internalType":"struct MultiRevocationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct RevocationRequestData[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"multiRevokeByDelegation","inputs":[{"name":"multiDelegatedRequests","type":"tuple[]","internalType":"struct MultiDelegatedRevocationRequest[]","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple[]","internalType":"struct RevocationRequestData[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signatures","type":"tuple[]","internalType":"struct Signature[]","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"revoker","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"multiRevokeOffchain","inputs":[{"name":"data","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"multiTimestamp","inputs":[{"name":"data","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"revoke","inputs":[{"name":"request","type":"tuple","internalType":"struct RevocationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct RevocationRequestData","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeByDelegation","inputs":[{"name":"delegatedRequest","type":"tuple","internalType":"struct DelegatedRevocationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct RevocationRequestData","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"name":"signature","type":"tuple","internalType":"struct Signature","components":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"name":"revoker","type":"address","internalType":"address"},{"name":"deadline","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeOffchain","inputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"timestamp","inputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Attested","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schemaUID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"NonceIncreased","inputs":[{"name":"oldNonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newNonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Revoked","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schemaUID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RevokedOffchain","inputs":[{"name":"revoker","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"timestamp","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Timestamped","inputs":[{"name":"data","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"timestamp","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AccessDenied","inputs":[]},{"type":"error","name":"AlreadyRevoked","inputs":[]},{"type":"error","name":"AlreadyRevokedOffchain","inputs":[]},{"type":"error","name":"AlreadyTimestamped","inputs":[]},{"type":"error","name":"DeadlineExpired","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientValue","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidAttestations","inputs":[]},{"type":"error","name":"InvalidExpirationTime","inputs":[]},{"type":"error","name":"InvalidLength","inputs":[]},{"type":"error","name":"InvalidNonce","inputs":[]},{"type":"error","name":"InvalidOffset","inputs":[]},{"type":"error","name":"InvalidRegistry","inputs":[]},{"type":"error","name":"InvalidRevocation","inputs":[]},{"type":"error","name":"InvalidRevocations","inputs":[]},{"type":"error","name":"InvalidSchema","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidVerifier","inputs":[]},{"type":"error","name":"Irrevocable","inputs":[]},{"type":"error","name":"NotFound","inputs":[]},{"type":"error","name":"NotPayable","inputs":[]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"WrongSchema","inputs":[]}],"bytecode":{"object":"0x6101e0806040523461032c57602081613e5080380380916100208285610330565b83398101031261032c57516001600160a01b0381169081810361032c576040519161004c604084610330565b60038352602083016245415360e81b81526040519061006c604083610330565b600582526020820190640312e332e360dc1b82526001608052600360a0525f60c05261009786610353565b610180526100a4836104d5565b6101a05285519020918261014052519020806101605246610100526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261011060c082610330565b51902060e052306101205282516001600160401b03811161031857600254600181811c9116801561030e575b60208210146102fa57601f8111610297575b506020601f821160011461023457819293945f92610229575b50508160011b915f199060031b1c1916176002555b1561021a576101c052604051613842908161060e82396080518161081d015260a05181610848015260c05181610873015260e05181612e7901526101005181612f3601526101205181612e4301526101405181612ec801526101605181612eee015261018051816106d101526101a051816106fd01526101c0518181816101cd01528181611ad201528181611d01015281816120b0015261268a0152f35b6311a1e69760e01b5f5260045ffd5b015190505f80610167565b601f1982169060025f52805f20915f5b81811061027f57509583600195969710610267575b505050811b0160025561017c565b01515f1960f88460031b161c191690555f8080610259565b9192602060018192868b015181550194019201610244565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106102f0575b601f0160051c01905b8181106102e5575061014e565b5f81556001016102d8565b90915081906102cf565b634e487b7160e01b5f52602260045260245ffd5b90607f169061013c565b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b0382119082101761031857604052565b908151602081105f146103cd575090601f81511161038d57602081519101516020821061037e571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610318575f54600181811c911680156104cb575b60208210146102fa57601f8111610499575b50602092601f821160011461043a57928192935f9261042f575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f80610417565b601f198216935f8052805f20915f5b8681106104815750836001959610610469575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061045c565b91926020600181928685015181550194019201610449565b5f8052601f60205f20910160051c810190601f830160051c015b8181106104c057506103fd565b5f81556001016104b3565b90607f16906103eb565b908151602081105f14610500575090601f81511161038d57602081519101516020821061037e571790565b6001600160401b03811161031857600154600181811c91168015610603575b60208210146102fa57601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c19161760015560ff90565b015190505f8061054b565b601f1982169360015f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60015f52601f60205f20910160051c810190601f830160051c015b8181106105f85750610531565b5f81556001016105eb565b90607f169061051f56fe6101206040526004361015610012575f80fd5b5f3560e01c80630eabf66014610d9357806312b11a1714610d5957806313893f6114610cea57806317d7de7c14610c205780632d0335ab14610be85780633c04271514610af857806344adc90e14610a1a57806346926267146109da5780634cb7e9e5146109295780634d0030701461090057806354fd4d50146107fe57806379f7573a1461078657806384b0196e146106b957806395411525146104c6578063a3112a641461047b578063a6d4dbc7146103a4578063b469318d14610357578063b83010d31461031d578063cf190f34146102f3578063d45c4435146102c0578063e30bb5631461028c578063e71ff3651461021e578063ed24911d146101fc578063f10b5cc8146101b85763f17325e71461012d575f80fd5b60203660031901126101b4576004356001600160401b0381116101b45780600401604060031983360301126101b45760206101a481936101ab936101866101726114e1565b92610181602436920184611546565b611425565b61018f836112ff565b52610199826112ff565b503491339135612067565b01516112ff565b51604051908152f35b5f80fd5b346101b4575f3660031901126101b4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b4575f3660031901126101b4576020610216612e40565b604051908152f35b346101b45760203660031901126101b4576004356001600160401b0381116101b45761024e903690600401610f94565b906001600160401b034216915f5b81811061026e57602084604051908152f35b80610286856102806001948688611341565b35612c61565b0161025c565b346101b45760203660031901126101b45760206102b66004355f52600460205260405f2054151590565b6040519015158152f35b346101b45760203660031901126101b4576004355f52600560205260206001600160401b0360405f205416604051908152f35b346101b45760203660031901126101b45760206001600160401b0342166102168160043533611ea2565b346101b4575f3660031901126101b45760206040517fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e758152f35b346101b45760403660031901126101b4576001600160a01b03610378610fe8565b165f52600660205260405f206024355f5260205260206001600160401b0360405f205416604051908152f35b6101003660031901126101b4576040516103bd81611142565b6004358082526103cc36611216565b602083015260603660631901126101b4576040516103e98161118c565b60643560ff811681036101b4578152608435602082015260a43560408083019190915283015260c4356001600160a01b03811681036101b45780606084015260e4356001600160401b03811681036101b4578361044d91608061047996015261182b565b61045561167a565b61045e36611216565b610467826112ff565b52610471816112ff565b503492611ab5565b005b346101b45760203660031901126101b45761049461172d565b506004355f5260046020526104c26104ae60405f20611777565b60405191829160208352602083019061107e565b0390f35b60203660031901126101b4576004356001600160401b0381116101b4576104f1903690600401610f94565b6104fa8161156f565b5f9290915f198101913491855b818110610527576104c261051b8888612bf9565b60405191829182611012565b61053681838598969798611120565b9661054460208901896115da565b929091831580156106a1575b6106925789965f98959895604089019560608a019a60808b359b0135996001600160401b038b16809b1415995b83811015610624578f906105a08b61059a8360051b8d018d611546565b936116f8565b821015610610578f6105b28e9161155b565b906101b4578f908f906105ef61060a946105de600198604051966105d588611142565b87523690611425565b6020860152369060608802016112ad565b6040840152858060a01b031660608301526080820152611f26565b0161057d565b634e487b7160e01b5f52603260045260245ffd5b509a8d9e50839a50610660949c93929199506001985061065a6106699698889f6106529060209a149661155b565b93369161160f565b9061263a565b95865190611320565b94018051610677898961130c565b52610682888861130c565b5051510196949592939201610507565b63251f56a160e21b5f5260045ffd5b506106af60408b018b6116f8565b9050841415610550565b346101b4575f3660031901126101b4576107586106f57f000000000000000000000000000000000000000000000000000000000000000061345b565b6104c26107217f00000000000000000000000000000000000000000000000000000000000000006134ba565b610766604051916107336020846111de565b5f83525f368137604051958695600f60f81b875260e0602088015260e0870190610fc4565b908582036040870152610fc4565b904660608501523060808501525f60a085015283820360c085015261104b565b346101b45760203660031901126101b457600435335f52600360205260405f205490818111156107ef577f57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb791604091335f52600360205280835f205582519182526020820152a1005b633ab3447f60e11b5f5260045ffd5b346101b4575f3660031901126101b4576104c260206108ec60016108417f0000000000000000000000000000000000000000000000000000000000000000612cd3565b818461086c7f0000000000000000000000000000000000000000000000000000000000000000612cd3565b81806108977f0000000000000000000000000000000000000000000000000000000000000000612cd3565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826111de565b604051918291602083526020830190610fc4565b346101b45760203660031901126101b45760206001600160401b03421661021681600435612c61565b60203660031901126101b4576004356001600160401b0381116101b457610954903690600401610f94565b5f19810191905f90345b81831061096757005b6109728383866115b8565b6020810135601e19823603018112156101b4578101918235926001600160401b0384116101b457602001928060061b360384136101b457600193826109cc926109d2956109c58c8b14943393369161123e565b9035611ce0565b90611320565b92019161095e565b60603660031901126101b4576104796109f161167a565b6109fa36611216565b610a03826112ff565b52610a0d816112ff565b5034903390600435611ab5565b60203660031901126101b4576004356001600160401b0381116101b457610a45903690600401610f94565b90610a4f8261156f565b915f9134905f925f198101905b808510610a70576104c261051b8789612bf9565b9091929394610a808683866115b8565b906020820191610a9083826115da565b90501561069257610ad0610ac789898885610ac0610ab260019a6020996115da565b93909514943393369161160f565b903561263a565b97885190611320565b96018051610ade898b61130c565b52610ae9888a61130c565b50515101950193929190610a5c565b60203660031901126101b4576004356001600160401b0381116101b457806004019060e060031982360301126101b457604051610b3481611142565b82359283825260248301938435946001600160401b0386116101b457610be06101ab95610bc76101a495610bb460209a98610b768c9a60043691880101611425565b8a820152610b8736604487016112ad565b6040820152610baa60c460a4870196610b9f88610ffe565b6060850152016112eb565b6080820152611f26565b610181610bbf6114e1565b953692611546565b610bd0846112ff565b52610bda836112ff565b5061155b565b903492612067565b346101b45760203660031901126101b4576001600160a01b03610c09610fe8565b165f526003602052602060405f2054604051908152f35b346101b4575f3660031901126101b4576040515f600254610c4081611351565b8084529060018116908115610cc65750600114610c68575b6104c2836108ec818503826111de565b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610cac575090915081016020016108ec610c58565b919260018160209254838588010152019101909291610c94565b60ff191660208086019190915291151560051b840190910191506108ec9050610c58565b346101b45760203660031901126101b4576004356001600160401b0381116101b457610d1a903690600401610f94565b906001600160401b034216915f5b818110610d3a57602084604051908152f35b80610d5385610d4c6001948688611341565b3533611ea2565b01610d28565b346101b4575f3660031901126101b45760206040517ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768152f35b60203660031901126101b4576004356001600160401b0381116101b457610dbe903690600401610f94565b5f198101915f91345b818410610dd057005b610ddb848385611120565b60a0813603126101b457604051610df181611142565b8135815260208201356001600160401b0381116101b457820136601f820112156101b457610e2690369060208135910161123e565b906020810191825260408301356001600160401b0381116101b457830136601f820112156101b457803590610e5a826111ff565b91610e6860405193846111de565b808352602060608185019202830101913683116101b457602001905b828210610f7a5750505060408201818152610eb46080610ea660608801610ffe565b9660608601978852016112eb565b936080840194855251938451928315908115610f6e575b50610692575f5b838110610f0b57505091519351600195610f039590946109cc94508a8c14935085926001600160a01b031691611ce0565b930192610dc7565b600190610f688651610f1d838a61130c565b51610f2984885161130c565b51858060a01b038c5116906001600160401b038851169260405194610f4d86611142565b8552602085015260408401526060830152608082015261182b565b01610ed2565b9050518314158c610ecb565b6020606091610f8936856112ad565b815201910190610e84565b9181601f840112156101b4578235916001600160401b0383116101b4576020808501948460051b0101116101b457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101b457565b35906001600160a01b03821682036101b457565b60206040818301928281528451809452019201905f5b8181106110355750505090565b8251845260209384019390920191600101611028565b90602080835192838152019201905f5b8181106110685750505090565b825184526020938401939092019160010161105b565b9061014061012061111d9380518452602081015160208501526001600160401b0360408201511660408501526001600160401b0360608201511660608501526001600160401b03608082015116608085015260a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e08501526101008101511515610100850152015191816101208201520190610fc4565b90565b91908110156106105760051b81013590609e19813603018212156101b4570190565b60a081019081106001600160401b0382111761115d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761115d57604052565b606081019081106001600160401b0382111761115d57604052565b60c081019081106001600160401b0382111761115d57604052565b61014081019081106001600160401b0382111761115d57604052565b90601f801991011681019081106001600160401b0382111761115d57604052565b6001600160401b03811161115d5760051b60200190565b60409060231901126101b4576040519061122f82611171565b60243582526044356020830152565b92919261124a826111ff565b9361125860405195866111de565b602085848152019260061b8201918183116101b457925b82841061127c5750505050565b6040848303126101b4576020604091825161129681611171565b86358152828701358382015281520193019261126f565b91908260609103126101b4576040516112c58161118c565b8092803560ff811681036101b45760409182918452602081013560208501520135910152565b35906001600160401b03821682036101b457565b8051156106105760200190565b80518210156106105760209160051b010190565b9190820391821161132d57565b634e487b7160e01b5f52601160045260245ffd5b91908110156106105760051b0190565b90600182811c9216801561137f575b602083101461136b57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611360565b5f929181549161139883611351565b80835292600181169081156113ed57506001146113b457505050565b5f9081526020812093945091925b8383106113d3575060209250010190565b6001816020929493945483858701015201910191906113c2565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b03811161115d57601f01601f191660200190565b919060c0838203126101b4576040519061143e826111a7565b819361144981610ffe565b8352611457602082016112eb565b6020840152604081013580151581036101b45760408401526060810135606084015260808101356001600160401b0381116101b45781019082601f830112156101b4578135926114a68461140a565b906114b460405192836111de565b848252602085850101116101b4575f60208560a09682889701838601378301015260808501520135910152565b604080519091906114f283826111de565b6001815291601f1901825f5b82811061150a57505050565b602090604051611519816111a7565b5f81525f838201525f60408201525f6060820152606060808201525f60a0820152828285010152016114fe565b90359060be19813603018212156101b4570190565b356001600160a01b03811681036101b45790565b90611579826111ff565b61158660405191826111de565b8281528092611597601f19916111ff565b01905f5b8281106115a757505050565b80606060208093850101520161159b565b91908110156106105760051b81013590603e19813603018212156101b4570190565b903590601e19813603018212156101b457018035906001600160401b0382116101b457602001918160051b360383136101b457565b92919061161b816111ff565b9361162960405195866111de565b602085838152019160051b8101918383116101b45781905b83821061164f575050505050565b81356001600160401b0381116101b45760209161166f8784938701611425565b815201910190611641565b6040805190919061168b83826111de565b6001815291601f1901825f5b8281106116a357505050565b6020906040516116b281611171565b5f81525f8382015282828501015201611697565b906116d0826111ff565b6116dd60405191826111de565b82815280926116ee601f19916111ff565b0190602036910137565b903590601e19813603018212156101b457018035906001600160401b0382116101b4576020019160608202360383136101b457565b6040519061173a826111c2565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201520152565b906006610120604051611789816111c2565b611819819580548352600181015460208401526001600160401b0360028201548181166040860152818160401c16606086015260801c166080840152600381015460a084015260018060a01b0360048201541660c084015260ff600582015460018060a01b03811660e086015260a01c1615156101008401526118126040518096819301611389565b03846111de565b0152565b5f19811461132d5760010190565b608081016001600160401b038151168015159081611973575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160208251920151845f5260036020526001600160401b0360405f20928354936118968561181d565b90555116926040519460208601967fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e75885260408701526060860152608085015260a084015260c083015260e082015260e081526118f5610100826111de565b519020612f5c565b9051602083810151604080860151955181519384019290925282019490945260f89390931b6001600160f81b0319166060840152604183526001600160a01b03166119496061846111de565b612f82565b1561195557565b638baa579f60e01b5f5260045ffd5b631ab7da6b60e01b5f5260045ffd5b90506001600160401b034216115f611844565b519081151582036101b457565b6020818303126101b4578051906001600160401b0382116101b45701906080828203126101b45760405191608083018381106001600160401b0382111761115d576040528051835260208101516001600160a01b03811681036101b4576020840152611a0160408201611986565b60408401526060810151906001600160401b0382116101b4570181601f820112156101b457805190611a328261140a565b92611a4060405194856111de565b828452602083830101116101b457815f9260208093018386015e83010152606082015290565b90611a70826111ff565b611a7d60405191826111de565b8281528092611a8e601f19916111ff565b01905f5b828110611a9e57505050565b602090611aa961172d565b82828501015201611a92565b6040516351753e3760e11b81526004810182905290915f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215611cd5575f92611cb1575b50815115611c93578051611b1d81611a66565b93611b27826116c6565b95426001600160401b0316935f5b848110611b50575050505050509161111d93916001936130ca565b611b5a818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c6657825467ffffffffffffffff60801b191660808b901b67ffffffffffffffff60801b16179092556001938792908c90611c01908690611bfb90611777565b611777565b9261130c565b52611c0c848d61130c565b506020810151611c1c858f61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208d60c0611c53888a8060a01b039361130c565b510151169251604051908152a401611b35565b63905e710760e01b5f5260045ffd5b63157bd4c360e01b5f5260045ffd5b634ca8886760e01b5f5260045ffd5b635f9bd90760e11b5f5260045ffd5b63c5723b5160e01b5f5260045ffd5b611cce9192503d805f833e611cc681836111de565b810190611993565b905f611b0a565b6040513d5f823e3d90fd5b6040516351753e3760e11b8152600481018290529195949392915f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611cd5575f91611e88575b50805115611c93578651611d4c81611a66565b92611d56826116c6565b945f996001600160401b0342169a5b848110611d7c57505050505061111d9596506130ca565b611d86818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c66578f600195611bf6611e19928b96908154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b611e23858d61130c565b52611e2e848c61130c565b506020810151611e3e858e61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208c60c0611e75888a8060a01b039361130c565b510151169251604051908152a401611d65565b611e9c91503d805f833e611cc681836111de565b5f611d39565b60018060a01b031691825f52600660205260405f2090825f52816020526001600160401b0360405f205416611f17576001600160401b0391835f5260205260405f20828216831982541617905516917f92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a22295f80a4565b63ec9d6eeb60e01b5f5260045ffd5b608081016001600160401b03815116801515908161203b575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160018060a01b03825116916001600160401b03602082015116906040810151151560608201519060a060808401516020815191012093015193885f5260036020526001600160401b0360405f2096875497611fc38961181d565b90555116966040519860208a019a7ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768c5260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015261016081526118f5610180826111de565b90506001600160401b034216115f611f3f565b6040519061205b82611171565b60606020835f81520152565b919260e05261207461204e565b5080519061208061204e565b6101005261208d826116c6565b61010051602001526040516351753e3760e11b8152600481018490525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611cd5575f60805261261e575b506080515115611c935790916120fe83611a66565b60a05261210a836116c6565b60c0525f915b83831061213e575050505050612132600160e05160c05160a0516080516132b4565b61010051526101005190565b61214e838297939495969761130c565b519160208301956001600160401b03875116801515908161260a575b506125fb576040608051015115806125ee575b611c75576001600160401b0360608501519751169660018060a01b0385511660408601511515906080870151926040519a6121b78c6111c2565b5f8c528960208d01526001600160401b03421660408d015260608c01525f60808c015260a08b015260c08a015260018060a01b038a1660e08a01526101008901526101208801525f5b6020880151886122d06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156122f4575060010163ffffffff16612200565b905097969094959197939293808252805f52600460205260405f209180518355602081015160018401556123a2600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d57899461242c6006840154611351565b601f8111612596575b50602090601f831160011461252857600692915f918361251d575b50508160011b915f199060031b1c1916179101555b6060850151806124f9575b50936001946124818560a05161130c565b5261248e8460a05161130c565b5060a08101516124a08560c05161130c565b52816124b385602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a401919290612110565b6125109193505f52600460205260405f2054151590565b15611ca25786915f612470565b015190505f80612450565b90600684015f52805f20915f5b601f198516811061257b5750918391600193600695601f19811610612563575b505050811b01910155612465565b01515f1960f88460031b161c191690555f8080612555565b8183015184558d985060019093019260209283019201612535565b90919293949550600684015f5260205f20601f840160051c8101602085106125e7575b908c979695949392915b601f830160051c820181106125d9575050612435565b5f81558d98506001016125c3565b50806125b9565b506040840151151561217d565b6308e8b93760e01b5f5260045ffd5b90506001600160401b03421610155f61216a565b612631903d805f833e611cc681836111de565b6080525f6120e9565b919293909360c05260e05261264d61204e565b5082519061265961204e565b61010052612666826116c6565b61010051602001526040516351753e3760e11b815260048101829052935f856024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa948515611cd5575f95612bdd575b50845115611c9357906126d483611a66565b6080526126e0836116c6565b60a0525f915b83831061270b5750505050506121329060e0519060c0519060a05190608051906132b4565b90929491939561271b858361130c565b519260208401966001600160401b038851168015159081612bc9575b506125fb5760408201511580612bbc575b611c7557606085015197518551604080880151608089015191519b9193901515926001600160a01b031691906001600160401b03168a60208e61278a816111c2565b5f815201528c60406001600160401b03421691015260608d01525f60808d015260a08c015260c08b015260018060a01b038b1660e08b01526101008a01526101208901525f5b6020890151896128a06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156128c4575060010163ffffffff166127d0565b9050989691979095949298808252805f52600460205260405f20918051835560208101516001840155612971600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d5788946129fb6006840154611351565b601f8111612b64575b50602090601f8311600114612af657600692915f9183612aeb575b50508160011b915f199060031b1c1916179101555b606085015180612ac7575b5093600194612a508560805161130c565b52612a5d8460805161130c565b5060a0810151612a6f8560a05161130c565b5281612a8285602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a40191906126e6565b612ade9193505f52600460205260405f2054151590565b15611ca25785915f612a3f565b015190505f80612a1f565b90600684015f52805f20915f5b601f1985168110612b495750918391600193600695601f19811610612b31575b505050811b01910155612a34565b01515f1960f88460031b161c191690555f8080612b23565b8183015184558c985060019093019260209283019201612b03565b90919293949550600684015f5260205f20601f840160051c810160208510612bb5575b908b979695949392915b601f830160051c82018110612ba7575050612a04565b5f81558c9850600101612b91565b5080612b87565b5060408501511515612748565b90506001600160401b03421610155f612737565b612bf29195503d805f833e611cc681836111de565b935f6126c2565b90612c03906116c6565b905f8151915f5b838110612c18575050505090565b612c22818361130c565b5180515f915b818310612c3a57505050600101612c0a565b90919460018091612c4b888561130c565b51612c56828c61130c565b520195019190612c28565b90815f5260056020526001600160401b0360405f205416612cc4576001600160401b0390825f52600560205260405f20828216831982541617905516907f5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f5f80a3565b6317133ca360e11b5f5260045ffd5b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015612e1d575b806d04ee2d6d415b85acef8100000000600a921015612e02575b662386f26fc10000811015612dee575b6305f5e100811015612ddd575b612710811015612dce575b6064811015612dc0575b1015612db5575b600a60216001840193612d5a8561140a565b94612d6860405196876111de565b808652612d77601f199161140a565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015612db057600a9091612d82565b505090565b600190910190612d48565b606460029104930192612d41565b61271060049104930192612d37565b6305f5e10060089104930192612d2c565b662386f26fc1000060109104930192612d1f565b6d04ee2d6d415b85acef810000000060209104930192612d0f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104612cf5565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612f33575b15612e9b577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612f2d60c0826111de565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612e72565b604290612f67612e40565b906040519161190160f01b8352600283015260228201522090565b9190823b612fd15790612f9491613520565b506004811015612fbd57159182612faa57505090565b6001600160a01b03918216911614919050565b634e487b7160e01b5f52602160045260245ffd5b915f9261300761301585946040519283916020830195630b135d3f60e11b87526024840152604060448401526064830190610fc4565b03601f1981018352826111de565b51915afa6130216134f1565b8161304f575b81613030575090565b90506020818051810103126101b45760200151630b135d3f60e11b1490565b905060208151101590613027565b929160408401936040815282518095526060810194602060608260051b8401019401905f5b81811061309f5750505061111d939450602081840391015261104b565b9091946020806130bb600193605f19888203018c52895161107e565b97019801910196919096613082565b9391908051946001861461328e57602001516001600160a01b031690811561324f57604051636723702360e11b81525f9690602081600481875afa908115611cd5575f91613215575b50905f915b8183106131b9575050509160209161314793876040518096819582946388e5b2d960e01b84526004840161305d565b03925af1908115611cd5575f9161317f575b501561317057613167575090565b61111d9061372e565b63bf2f3a8b60e01b5f5260045ffd5b90506020813d6020116131b1575b8161319a602093836111de565b810103126101b4576131ab90611986565b5f613159565b3d915061318d565b909197966131c7898761130c565b51801561320a5782156131fb578181116131ec5780600192039801985b019190613118565b63044044a560e21b5f5260045ffd5b631574f9f360e01b5f5260045ffd5b5096976001906131e4565b90506020813d602011613247575b81613230602093836111de565b810103126101b45761324190611986565b5f613113565b3d9150613223565b50505f939192935b8281106132775750505061326a57505f90565b6132739061372e565b5f90565b613281818361130c565b516131fb57600101613257565b9061111d9550916132ad6132a66001949695966112ff565b51916112ff565b519161355a565b9391908051946001861461344457602001516001600160a01b031690811561341257604051636723702360e11b81525f9690602081600481875afa908115611cd5575f916133d8575b50905f915b81831061339a575050509160209161333193876040518096819582946348ed85bf60e11b84526004840161305d565b03925af1908115611cd5575f91613360575b501561335157613167575090565b63e8bee83960e01b5f5260045ffd5b90506020813d602011613392575b8161337b602093836111de565b810103126101b45761338c90611986565b5f613343565b3d915061336e565b909197966133a8898761130c565b5180156133cd5782156131fb578181116131ec5780600192039801985b019190613302565b5096976001906133c5565b90506020813d60201161340a575b816133f3602093836111de565b810103126101b45761340490611986565b5f6132fd565b3d91506133e6565b50505f939192935b82811061342d5750505061326a57505f90565b613437818361130c565b516131fb5760010161341a565b9061111d9550916132ad6132a65f949695966112ff565b60ff81146134a15760ff811690601f8211613492576040519161347f6040846111de565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b5060405161111d816134b3815f611389565b03826111de565b60ff81146134de5760ff811690601f8211613492576040519161347f6040846111de565b5060405161111d816134b3816001611389565b3d1561351b573d906135028261140a565b9161351060405193846111de565b82523d5f602084013e565b606090565b8151919060418303613550576135499250602082015190606060408401519301515f1a9061378a565b9192909190565b50505f9160029190565b6020015191949290916001600160a01b031690811561371c57908592918361369f575b602092919015613618576135ae9160405194858094819363e49617e160e01b8352876004840152602483019061107e565b03925af1908115611cd5575f916135de575b50156135cf575b613167575090565b63ccf3bb2760e01b5f5260045ffd5b90506020813d602011613610575b816135f9602093836111de565b810103126101b45761360a90611986565b5f6135c0565b3d91506135ec565b61363f9160405194858094819363e60c350560e01b8352876004840152602483019061107e565b03925af1908115611cd5575f91613665575b506135c75763bd8ba84d60e01b5f5260045ffd5b90506020813d602011613697575b81613680602093836111de565b810103126101b45761369190611986565b5f613651565b3d9150613673565b9491909250604051636723702360e11b8152602081600481875afa908115611cd5575f916136e2575b50156131fb578186116131ec57908590039385929061357d565b90506020813d602011613714575b816136fd602093836111de565b810103126101b45761370e90611986565b5f6136c8565b3d91506136f0565b50505090916131fb5761326a57505f90565b806137365750565b804710613774575f80808093335af161374d6134f1565b90156137565750565b80511561376557602081519101fd5b63d6bda27560e01b5f5260045ffd5b4763cf47918160e01b5f5260045260245260445ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613801579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611cd5575f516001600160a01b038116156137f757905f905f90565b505f906001905f90565b5050505f916003919056fea26469706673582212208cc861b4579c51c13c468b3db33645465d6d0e2bf519925c4d9dc36bb8b6261e64736f6c634300081b0033","sourceMap":"976:28530:1:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;976:28530:1;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;976:28530:1;;2476:1;759:14:6;;976:28530:1;783:14:6;;-1:-1:-1;807:14:6;;3501:45:61;;;:::i;:::-;3493:53;;3567:51;;;:::i;:::-;3556:62;;976:28530:1;;3642:22:61;;3628:36;;;;976:28530:1;3691:25:61;;3674:42;;;3744:13;3727:30;;976:28530:1;;4304:80:61;976:28530:1;4304:80:61;;2079:95;;;;976:28530:1;2079:95:61;;;;;;;3744:13;759:14:6;2079:95:61;;;4378:4;783:14:6;2079:95:61;;;783:14:6;4304:80:61;;;807:14:6;4304:80:61;;:::i;:::-;976:28530:1;4294:91:61;;3767:48;;4378:4;3825:27;;976:28530:1;;-1:-1:-1;;;;;976:28530:1;;;;2163:12:7;976:28530:1;2476:1;976:28530;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;2476:1;976:28530;;;;;;;;;;;2163:12:7;976:28530:1;;2531:31;2527:86;;2623:26;;976:28530;;;;;;;;759:14:6;976:28530:1;;;;;783:14:6;976:28530:1;;;;;807:14:6;976:28530:1;;;;;3767:48:61;976:28530:1;;;;;3727:30:61;976:28530:1;;;;;3825:27:61;976:28530:1;;;;;3628:36:61;976:28530:1;;;;;3674:42:61;976:28530:1;;;;;3493:53:61;976:28530:1;;;;;3556:62:61;976:28530:1;;;;;2623:26;976:28530;;;;;;;;;;;;;;;;;;;;;;;;;;2527:86;2585:17;;;-1:-1:-1;2585:17:1;;-1:-1:-1;2585:17:1;976:28530;;;;-1:-1:-1;976:28530:1;;;;;;;;;;2163:12:7;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;;2163:12:7;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;;;;;2163:12:7;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;2476:1;976:28530;;;;;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;976:28530:1;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;-1:-1:-1;;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;:::o;2887:340:56:-;;976:28530:1;;3032:2:56;3010:24;;3006:215;3032:2;;;976:28530:1;;1854:2:56;976:28530:1;;1840:16:56;1836:72;;3032:2;976:28530:1;;;;2079:95:61;3032:2:56;976:28530:1;;;;1949:36:56;3050:27;:::o;976:28530:1:-;;;;3032:2:56;976:28530:1;;;;;1949:36:56;3050:27;:::o;1836:72::-;976:28530:1;3032:2:56;976:28530:1;;;1879:18:56;;;;;;;;;;;;976:28530:1;;;;;;;;;;;;;;;;2482:1;976:28530;;;;;;1854:2:56;976:28530:1;-1:-1:-1;;976:28530:1;;;1879:18:56;;;;3006:215;-1:-1:-1;;;;;976:28530:1;;;;2482:1;976:28530;;;;;;;;;;;3006:215:56;3032:2;976:28530:1;;;;;;;;;;3006:215:56;976:28530:1;3032:2:56;976:28530:1;;;;;;;;;;;;2482:1;976:28530;;;;;;;;;;;;;;;;;;;2482:1;976:28530;1390:66:56;3168:42;:::o;976:28530:1:-;;;;-1:-1:-1;976:28530:1;;;;;;;;;;2482:1;976:28530;;;2482:1;976:28530;;2482:1;976:28530;;;;;;;;;;;;;;;;;;;;;2482:1;976:28530;1390:66:56;3168:42;:::o;976:28530:1:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:56;976:28530:1;;;;;;;;;;;;;;;;;2482:1;976:28530;;;3032:2:56;2482:1:1;976:28530;;;;;;;;;;;;;;;;;;;;;;;;2482:1;976:28530;;;;;;;;;;;;;2887:340:56;;976:28530:1;;3032:2:56;3010:24;;3006:215;3032:2;;;976:28530:1;;1854:2:56;976:28530:1;;1840:16:56;1836:72;;3032:2;976:28530:1;;;;2079:95:61;3032:2:56;976:28530:1;;;;1949:36:56;3050:27;:::o;3006:215::-;-1:-1:-1;;;;;976:28530:1;;;;2476:1;976:28530;2476:1;976:28530;;;;;;;;;3006:215:56;3032:2;976:28530:1;;;;;;;;;;3006:215:56;976:28530:1;3032:2:56;976:28530:1;;;;;;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;2476:1;976:28530;1390:66:56;3168:42;:::o;976:28530:1:-;;;;-1:-1:-1;976:28530:1;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;;;;2476:1;976:28530;1390:66:56;3168:42;:::o;976:28530:1:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:56;2476:1:1;976:28530;;;;;;;;;;;;;;;;2476:1;976:28530;;;3032:2:56;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2476:1;976:28530;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6101206040526004361015610012575f80fd5b5f3560e01c80630eabf66014610d9357806312b11a1714610d5957806313893f6114610cea57806317d7de7c14610c205780632d0335ab14610be85780633c04271514610af857806344adc90e14610a1a57806346926267146109da5780634cb7e9e5146109295780634d0030701461090057806354fd4d50146107fe57806379f7573a1461078657806384b0196e146106b957806395411525146104c6578063a3112a641461047b578063a6d4dbc7146103a4578063b469318d14610357578063b83010d31461031d578063cf190f34146102f3578063d45c4435146102c0578063e30bb5631461028c578063e71ff3651461021e578063ed24911d146101fc578063f10b5cc8146101b85763f17325e71461012d575f80fd5b60203660031901126101b4576004356001600160401b0381116101b45780600401604060031983360301126101b45760206101a481936101ab936101866101726114e1565b92610181602436920184611546565b611425565b61018f836112ff565b52610199826112ff565b503491339135612067565b01516112ff565b51604051908152f35b5f80fd5b346101b4575f3660031901126101b4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101b4575f3660031901126101b4576020610216612e40565b604051908152f35b346101b45760203660031901126101b4576004356001600160401b0381116101b45761024e903690600401610f94565b906001600160401b034216915f5b81811061026e57602084604051908152f35b80610286856102806001948688611341565b35612c61565b0161025c565b346101b45760203660031901126101b45760206102b66004355f52600460205260405f2054151590565b6040519015158152f35b346101b45760203660031901126101b4576004355f52600560205260206001600160401b0360405f205416604051908152f35b346101b45760203660031901126101b45760206001600160401b0342166102168160043533611ea2565b346101b4575f3660031901126101b45760206040517fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e758152f35b346101b45760403660031901126101b4576001600160a01b03610378610fe8565b165f52600660205260405f206024355f5260205260206001600160401b0360405f205416604051908152f35b6101003660031901126101b4576040516103bd81611142565b6004358082526103cc36611216565b602083015260603660631901126101b4576040516103e98161118c565b60643560ff811681036101b4578152608435602082015260a43560408083019190915283015260c4356001600160a01b03811681036101b45780606084015260e4356001600160401b03811681036101b4578361044d91608061047996015261182b565b61045561167a565b61045e36611216565b610467826112ff565b52610471816112ff565b503492611ab5565b005b346101b45760203660031901126101b45761049461172d565b506004355f5260046020526104c26104ae60405f20611777565b60405191829160208352602083019061107e565b0390f35b60203660031901126101b4576004356001600160401b0381116101b4576104f1903690600401610f94565b6104fa8161156f565b5f9290915f198101913491855b818110610527576104c261051b8888612bf9565b60405191829182611012565b61053681838598969798611120565b9661054460208901896115da565b929091831580156106a1575b6106925789965f98959895604089019560608a019a60808b359b0135996001600160401b038b16809b1415995b83811015610624578f906105a08b61059a8360051b8d018d611546565b936116f8565b821015610610578f6105b28e9161155b565b906101b4578f908f906105ef61060a946105de600198604051966105d588611142565b87523690611425565b6020860152369060608802016112ad565b6040840152858060a01b031660608301526080820152611f26565b0161057d565b634e487b7160e01b5f52603260045260245ffd5b509a8d9e50839a50610660949c93929199506001985061065a6106699698889f6106529060209a149661155b565b93369161160f565b9061263a565b95865190611320565b94018051610677898961130c565b52610682888861130c565b5051510196949592939201610507565b63251f56a160e21b5f5260045ffd5b506106af60408b018b6116f8565b9050841415610550565b346101b4575f3660031901126101b4576107586106f57f000000000000000000000000000000000000000000000000000000000000000061345b565b6104c26107217f00000000000000000000000000000000000000000000000000000000000000006134ba565b610766604051916107336020846111de565b5f83525f368137604051958695600f60f81b875260e0602088015260e0870190610fc4565b908582036040870152610fc4565b904660608501523060808501525f60a085015283820360c085015261104b565b346101b45760203660031901126101b457600435335f52600360205260405f205490818111156107ef577f57b09af877df9068fd60a69d7b21f5576b8b38955812d6ae4ac52942f1e38fb791604091335f52600360205280835f205582519182526020820152a1005b633ab3447f60e11b5f5260045ffd5b346101b4575f3660031901126101b4576104c260206108ec60016108417f0000000000000000000000000000000000000000000000000000000000000000612cd3565b818461086c7f0000000000000000000000000000000000000000000000000000000000000000612cd3565b81806108977f0000000000000000000000000000000000000000000000000000000000000000612cd3565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826111de565b604051918291602083526020830190610fc4565b346101b45760203660031901126101b45760206001600160401b03421661021681600435612c61565b60203660031901126101b4576004356001600160401b0381116101b457610954903690600401610f94565b5f19810191905f90345b81831061096757005b6109728383866115b8565b6020810135601e19823603018112156101b4578101918235926001600160401b0384116101b457602001928060061b360384136101b457600193826109cc926109d2956109c58c8b14943393369161123e565b9035611ce0565b90611320565b92019161095e565b60603660031901126101b4576104796109f161167a565b6109fa36611216565b610a03826112ff565b52610a0d816112ff565b5034903390600435611ab5565b60203660031901126101b4576004356001600160401b0381116101b457610a45903690600401610f94565b90610a4f8261156f565b915f9134905f925f198101905b808510610a70576104c261051b8789612bf9565b9091929394610a808683866115b8565b906020820191610a9083826115da565b90501561069257610ad0610ac789898885610ac0610ab260019a6020996115da565b93909514943393369161160f565b903561263a565b97885190611320565b96018051610ade898b61130c565b52610ae9888a61130c565b50515101950193929190610a5c565b60203660031901126101b4576004356001600160401b0381116101b457806004019060e060031982360301126101b457604051610b3481611142565b82359283825260248301938435946001600160401b0386116101b457610be06101ab95610bc76101a495610bb460209a98610b768c9a60043691880101611425565b8a820152610b8736604487016112ad565b6040820152610baa60c460a4870196610b9f88610ffe565b6060850152016112eb565b6080820152611f26565b610181610bbf6114e1565b953692611546565b610bd0846112ff565b52610bda836112ff565b5061155b565b903492612067565b346101b45760203660031901126101b4576001600160a01b03610c09610fe8565b165f526003602052602060405f2054604051908152f35b346101b4575f3660031901126101b4576040515f600254610c4081611351565b8084529060018116908115610cc65750600114610c68575b6104c2836108ec818503826111de565b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610cac575090915081016020016108ec610c58565b919260018160209254838588010152019101909291610c94565b60ff191660208086019190915291151560051b840190910191506108ec9050610c58565b346101b45760203660031901126101b4576004356001600160401b0381116101b457610d1a903690600401610f94565b906001600160401b034216915f5b818110610d3a57602084604051908152f35b80610d5385610d4c6001948688611341565b3533611ea2565b01610d28565b346101b4575f3660031901126101b45760206040517ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768152f35b60203660031901126101b4576004356001600160401b0381116101b457610dbe903690600401610f94565b5f198101915f91345b818410610dd057005b610ddb848385611120565b60a0813603126101b457604051610df181611142565b8135815260208201356001600160401b0381116101b457820136601f820112156101b457610e2690369060208135910161123e565b906020810191825260408301356001600160401b0381116101b457830136601f820112156101b457803590610e5a826111ff565b91610e6860405193846111de565b808352602060608185019202830101913683116101b457602001905b828210610f7a5750505060408201818152610eb46080610ea660608801610ffe565b9660608601978852016112eb565b936080840194855251938451928315908115610f6e575b50610692575f5b838110610f0b57505091519351600195610f039590946109cc94508a8c14935085926001600160a01b031691611ce0565b930192610dc7565b600190610f688651610f1d838a61130c565b51610f2984885161130c565b51858060a01b038c5116906001600160401b038851169260405194610f4d86611142565b8552602085015260408401526060830152608082015261182b565b01610ed2565b9050518314158c610ecb565b6020606091610f8936856112ad565b815201910190610e84565b9181601f840112156101b4578235916001600160401b0383116101b4576020808501948460051b0101116101b457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101b457565b35906001600160a01b03821682036101b457565b60206040818301928281528451809452019201905f5b8181106110355750505090565b8251845260209384019390920191600101611028565b90602080835192838152019201905f5b8181106110685750505090565b825184526020938401939092019160010161105b565b9061014061012061111d9380518452602081015160208501526001600160401b0360408201511660408501526001600160401b0360608201511660608501526001600160401b03608082015116608085015260a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e08501526101008101511515610100850152015191816101208201520190610fc4565b90565b91908110156106105760051b81013590609e19813603018212156101b4570190565b60a081019081106001600160401b0382111761115d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761115d57604052565b606081019081106001600160401b0382111761115d57604052565b60c081019081106001600160401b0382111761115d57604052565b61014081019081106001600160401b0382111761115d57604052565b90601f801991011681019081106001600160401b0382111761115d57604052565b6001600160401b03811161115d5760051b60200190565b60409060231901126101b4576040519061122f82611171565b60243582526044356020830152565b92919261124a826111ff565b9361125860405195866111de565b602085848152019260061b8201918183116101b457925b82841061127c5750505050565b6040848303126101b4576020604091825161129681611171565b86358152828701358382015281520193019261126f565b91908260609103126101b4576040516112c58161118c565b8092803560ff811681036101b45760409182918452602081013560208501520135910152565b35906001600160401b03821682036101b457565b8051156106105760200190565b80518210156106105760209160051b010190565b9190820391821161132d57565b634e487b7160e01b5f52601160045260245ffd5b91908110156106105760051b0190565b90600182811c9216801561137f575b602083101461136b57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611360565b5f929181549161139883611351565b80835292600181169081156113ed57506001146113b457505050565b5f9081526020812093945091925b8383106113d3575060209250010190565b6001816020929493945483858701015201910191906113c2565b915050602093945060ff929192191683830152151560051b010190565b6001600160401b03811161115d57601f01601f191660200190565b919060c0838203126101b4576040519061143e826111a7565b819361144981610ffe565b8352611457602082016112eb565b6020840152604081013580151581036101b45760408401526060810135606084015260808101356001600160401b0381116101b45781019082601f830112156101b4578135926114a68461140a565b906114b460405192836111de565b848252602085850101116101b4575f60208560a09682889701838601378301015260808501520135910152565b604080519091906114f283826111de565b6001815291601f1901825f5b82811061150a57505050565b602090604051611519816111a7565b5f81525f838201525f60408201525f6060820152606060808201525f60a0820152828285010152016114fe565b90359060be19813603018212156101b4570190565b356001600160a01b03811681036101b45790565b90611579826111ff565b61158660405191826111de565b8281528092611597601f19916111ff565b01905f5b8281106115a757505050565b80606060208093850101520161159b565b91908110156106105760051b81013590603e19813603018212156101b4570190565b903590601e19813603018212156101b457018035906001600160401b0382116101b457602001918160051b360383136101b457565b92919061161b816111ff565b9361162960405195866111de565b602085838152019160051b8101918383116101b45781905b83821061164f575050505050565b81356001600160401b0381116101b45760209161166f8784938701611425565b815201910190611641565b6040805190919061168b83826111de565b6001815291601f1901825f5b8281106116a357505050565b6020906040516116b281611171565b5f81525f8382015282828501015201611697565b906116d0826111ff565b6116dd60405191826111de565b82815280926116ee601f19916111ff565b0190602036910137565b903590601e19813603018212156101b457018035906001600160401b0382116101b4576020019160608202360383136101b457565b6040519061173a826111c2565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e08201525f6101008201520152565b906006610120604051611789816111c2565b611819819580548352600181015460208401526001600160401b0360028201548181166040860152818160401c16606086015260801c166080840152600381015460a084015260018060a01b0360048201541660c084015260ff600582015460018060a01b03811660e086015260a01c1615156101008401526118126040518096819301611389565b03846111de565b0152565b5f19811461132d5760010190565b608081016001600160401b038151168015159081611973575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160208251920151845f5260036020526001600160401b0360405f20928354936118968561181d565b90555116926040519460208601967fb5d556f07587ec0f08cf386545cc4362c702a001650c2058002615ee5c9d1e75885260408701526060860152608085015260a084015260c083015260e082015260e081526118f5610100826111de565b519020612f5c565b9051602083810151604080860151955181519384019290925282019490945260f89390931b6001600160f81b0319166060840152604183526001600160a01b03166119496061846111de565b612f82565b1561195557565b638baa579f60e01b5f5260045ffd5b631ab7da6b60e01b5f5260045ffd5b90506001600160401b034216115f611844565b519081151582036101b457565b6020818303126101b4578051906001600160401b0382116101b45701906080828203126101b45760405191608083018381106001600160401b0382111761115d576040528051835260208101516001600160a01b03811681036101b4576020840152611a0160408201611986565b60408401526060810151906001600160401b0382116101b4570181601f820112156101b457805190611a328261140a565b92611a4060405194856111de565b828452602083830101116101b457815f9260208093018386015e83010152606082015290565b90611a70826111ff565b611a7d60405191826111de565b8281528092611a8e601f19916111ff565b01905f5b828110611a9e57505050565b602090611aa961172d565b82828501015201611a92565b6040516351753e3760e11b81526004810182905290915f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa918215611cd5575f92611cb1575b50815115611c93578051611b1d81611a66565b93611b27826116c6565b95426001600160401b0316935f5b848110611b50575050505050509161111d93916001936130ca565b611b5a818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c6657825467ffffffffffffffff60801b191660808b901b67ffffffffffffffff60801b16179092556001938792908c90611c01908690611bfb90611777565b611777565b9261130c565b52611c0c848d61130c565b506020810151611c1c858f61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208d60c0611c53888a8060a01b039361130c565b510151169251604051908152a401611b35565b63905e710760e01b5f5260045ffd5b63157bd4c360e01b5f5260045ffd5b634ca8886760e01b5f5260045ffd5b635f9bd90760e11b5f5260045ffd5b63c5723b5160e01b5f5260045ffd5b611cce9192503d805f833e611cc681836111de565b810190611993565b905f611b0a565b6040513d5f823e3d90fd5b6040516351753e3760e11b8152600481018290529195949392915f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611cd5575f91611e88575b50805115611c93578651611d4c81611a66565b92611d56826116c6565b945f996001600160401b0342169a5b848110611d7c57505050505061111d9596506130ca565b611d86818361130c565b519081515f52600460205260405f2091825415611ca25785600184015403611c935760058301546001600160a01b0386811691908116829003611c845760a01c60ff1615611c755760028401916001600160401b03835460801c16611c66578f600195611bf6611e19928b96908154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b611e23858d61130c565b52611e2e848c61130c565b506020810151611e3e858e61130c565b527ff930a6e2523c9cc298691873087a740550b8fc85a0680830414c148ed927f61560208c60c0611e75888a8060a01b039361130c565b510151169251604051908152a401611d65565b611e9c91503d805f833e611cc681836111de565b5f611d39565b60018060a01b031691825f52600660205260405f2090825f52816020526001600160401b0360405f205416611f17576001600160401b0391835f5260205260405f20828216831982541617905516917f92a1f7a41a7c585a8b09e25b195e225b1d43248daca46b0faf9e0792777a22295f80a4565b63ec9d6eeb60e01b5f5260045ffd5b608081016001600160401b03815116801515908161203b575b5061196457816118fd602061194e94015191604081015193606082019360018060a01b0385511692519160018060a01b03825116916001600160401b03602082015116906040810151151560608201519060a060808401516020815191012093015193885f5260036020526001600160401b0360405f2096875497611fc38961181d565b90555116966040519860208a019a7ffeb2925a02bae3dae48d424a0437a2b6ac939aa9230ddc55a1a76f065d9880768c5260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015261016081526118f5610180826111de565b90506001600160401b034216115f611f3f565b6040519061205b82611171565b60606020835f81520152565b919260e05261207461204e565b5080519061208061204e565b6101005261208d826116c6565b61010051602001526040516351753e3760e11b8152600481018490525f816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015611cd5575f60805261261e575b506080515115611c935790916120fe83611a66565b60a05261210a836116c6565b60c0525f915b83831061213e575050505050612132600160e05160c05160a0516080516132b4565b61010051526101005190565b61214e838297939495969761130c565b519160208301956001600160401b03875116801515908161260a575b506125fb576040608051015115806125ee575b611c75576001600160401b0360608501519751169660018060a01b0385511660408601511515906080870151926040519a6121b78c6111c2565b5f8c528960208d01526001600160401b03421660408d015260608c01525f60808c015260a08b015260c08a015260018060a01b038a1660e08a01526101008901526101208801525f5b6020880151886122d06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156122f4575060010163ffffffff16612200565b905097969094959197939293808252805f52600460205260405f209180518355602081015160018401556123a2600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d57899461242c6006840154611351565b601f8111612596575b50602090601f831160011461252857600692915f918361251d575b50508160011b915f199060031b1c1916179101555b6060850151806124f9575b50936001946124818560a05161130c565b5261248e8460a05161130c565b5060a08101516124a08560c05161130c565b52816124b385602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a401919290612110565b6125109193505f52600460205260405f2054151590565b15611ca25786915f612470565b015190505f80612450565b90600684015f52805f20915f5b601f198516811061257b5750918391600193600695601f19811610612563575b505050811b01910155612465565b01515f1960f88460031b161c191690555f8080612555565b8183015184558d985060019093019260209283019201612535565b90919293949550600684015f5260205f20601f840160051c8101602085106125e7575b908c979695949392915b601f830160051c820181106125d9575050612435565b5f81558d98506001016125c3565b50806125b9565b506040840151151561217d565b6308e8b93760e01b5f5260045ffd5b90506001600160401b03421610155f61216a565b612631903d805f833e611cc681836111de565b6080525f6120e9565b919293909360c05260e05261264d61204e565b5082519061265961204e565b61010052612666826116c6565b61010051602001526040516351753e3760e11b815260048101829052935f856024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa948515611cd5575f95612bdd575b50845115611c9357906126d483611a66565b6080526126e0836116c6565b60a0525f915b83831061270b5750505050506121329060e0519060c0519060a05190608051906132b4565b90929491939561271b858361130c565b519260208401966001600160401b038851168015159081612bc9575b506125fb5760408201511580612bbc575b611c7557606085015197518551604080880151608089015191519b9193901515926001600160a01b031691906001600160401b03168a60208e61278a816111c2565b5f815201528c60406001600160401b03421691015260608d01525f60808d015260a08c015260c08b015260018060a01b038b1660e08b01526101008a01526101208901525f5b6020890151896128a06004609960c0840151602060e086015195604081015190606081015161010082015115159061012060a0840151930151936040519a8b978789019d8e526001600160601b03199060601b1660408901526001600160601b03199060601b1660548801526001600160401b0360c01b9060c01b1660688701526001600160401b0360c01b9060c01b16607086015260f81b607885015260798401528051918291018484015e810163ffffffff60e01b8860e01b16838201520301601b198101845201826111de565b519020805f52600460205260405f2054156128c4575060010163ffffffff166127d0565b9050989691979095949298808252805f52600460205260405f20918051835560208101516001840155612971600284016001600160401b0380604085015116166001600160401b0319825416178155606083015167ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b19161781556001600160401b036080840151168154906001600160401b0360801b9060801b16906001600160401b0360801b1916179055565b60a081810151600385015560c08201516004850180546001600160a01b0319166001600160a01b0392831617905560e08301516005860180546101008601516001600160a81b0319909116929093169190911791151590921b60ff60a01b1617905561012081015180519093906001600160401b03811161115d5788946129fb6006840154611351565b601f8111612b64575b50602090601f8311600114612af657600692915f9183612aeb575b50508160011b915f199060031b1c1916179101555b606085015180612ac7575b5093600194612a508560805161130c565b52612a5d8460805161130c565b5060a0810151612a6f8560a05161130c565b5281612a8285602061010051015161130c565b52848060a01b039051166040519182527f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b356020868060a01b038b1693a40191906126e6565b612ade9193505f52600460205260405f2054151590565b15611ca25785915f612a3f565b015190505f80612a1f565b90600684015f52805f20915f5b601f1985168110612b495750918391600193600695601f19811610612b31575b505050811b01910155612a34565b01515f1960f88460031b161c191690555f8080612b23565b8183015184558c985060019093019260209283019201612b03565b90919293949550600684015f5260205f20601f840160051c810160208510612bb5575b908b979695949392915b601f830160051c82018110612ba7575050612a04565b5f81558c9850600101612b91565b5080612b87565b5060408501511515612748565b90506001600160401b03421610155f612737565b612bf29195503d805f833e611cc681836111de565b935f6126c2565b90612c03906116c6565b905f8151915f5b838110612c18575050505090565b612c22818361130c565b5180515f915b818310612c3a57505050600101612c0a565b90919460018091612c4b888561130c565b51612c56828c61130c565b520195019190612c28565b90815f5260056020526001600160401b0360405f205416612cc4576001600160401b0390825f52600560205260405f20828216831982541617905516907f5aafceeb1c7ad58e4a84898bdee37c02c0fc46e7d24e6b60e8209449f183459f5f80a3565b6317133ca360e11b5f5260045ffd5b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015612e1d575b806d04ee2d6d415b85acef8100000000600a921015612e02575b662386f26fc10000811015612dee575b6305f5e100811015612ddd575b612710811015612dce575b6064811015612dc0575b1015612db5575b600a60216001840193612d5a8561140a565b94612d6860405196876111de565b808652612d77601f199161140a565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015612db057600a9091612d82565b505090565b600190910190612d48565b606460029104930192612d41565b61271060049104930192612d37565b6305f5e10060089104930192612d2c565b662386f26fc1000060109104930192612d1f565b6d04ee2d6d415b85acef810000000060209104930192612d0f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104612cf5565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612f33575b15612e9b577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612f2d60c0826111de565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612e72565b604290612f67612e40565b906040519161190160f01b8352600283015260228201522090565b9190823b612fd15790612f9491613520565b506004811015612fbd57159182612faa57505090565b6001600160a01b03918216911614919050565b634e487b7160e01b5f52602160045260245ffd5b915f9261300761301585946040519283916020830195630b135d3f60e11b87526024840152604060448401526064830190610fc4565b03601f1981018352826111de565b51915afa6130216134f1565b8161304f575b81613030575090565b90506020818051810103126101b45760200151630b135d3f60e11b1490565b905060208151101590613027565b929160408401936040815282518095526060810194602060608260051b8401019401905f5b81811061309f5750505061111d939450602081840391015261104b565b9091946020806130bb600193605f19888203018c52895161107e565b97019801910196919096613082565b9391908051946001861461328e57602001516001600160a01b031690811561324f57604051636723702360e11b81525f9690602081600481875afa908115611cd5575f91613215575b50905f915b8183106131b9575050509160209161314793876040518096819582946388e5b2d960e01b84526004840161305d565b03925af1908115611cd5575f9161317f575b501561317057613167575090565b61111d9061372e565b63bf2f3a8b60e01b5f5260045ffd5b90506020813d6020116131b1575b8161319a602093836111de565b810103126101b4576131ab90611986565b5f613159565b3d915061318d565b909197966131c7898761130c565b51801561320a5782156131fb578181116131ec5780600192039801985b019190613118565b63044044a560e21b5f5260045ffd5b631574f9f360e01b5f5260045ffd5b5096976001906131e4565b90506020813d602011613247575b81613230602093836111de565b810103126101b45761324190611986565b5f613113565b3d9150613223565b50505f939192935b8281106132775750505061326a57505f90565b6132739061372e565b5f90565b613281818361130c565b516131fb57600101613257565b9061111d9550916132ad6132a66001949695966112ff565b51916112ff565b519161355a565b9391908051946001861461344457602001516001600160a01b031690811561341257604051636723702360e11b81525f9690602081600481875afa908115611cd5575f916133d8575b50905f915b81831061339a575050509160209161333193876040518096819582946348ed85bf60e11b84526004840161305d565b03925af1908115611cd5575f91613360575b501561335157613167575090565b63e8bee83960e01b5f5260045ffd5b90506020813d602011613392575b8161337b602093836111de565b810103126101b45761338c90611986565b5f613343565b3d915061336e565b909197966133a8898761130c565b5180156133cd5782156131fb578181116131ec5780600192039801985b019190613302565b5096976001906133c5565b90506020813d60201161340a575b816133f3602093836111de565b810103126101b45761340490611986565b5f6132fd565b3d91506133e6565b50505f939192935b82811061342d5750505061326a57505f90565b613437818361130c565b516131fb5760010161341a565b9061111d9550916132ad6132a65f949695966112ff565b60ff81146134a15760ff811690601f8211613492576040519161347f6040846111de565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b5060405161111d816134b3815f611389565b03826111de565b60ff81146134de5760ff811690601f8211613492576040519161347f6040846111de565b5060405161111d816134b3816001611389565b3d1561351b573d906135028261140a565b9161351060405193846111de565b82523d5f602084013e565b606090565b8151919060418303613550576135499250602082015190606060408401519301515f1a9061378a565b9192909190565b50505f9160029190565b6020015191949290916001600160a01b031690811561371c57908592918361369f575b602092919015613618576135ae9160405194858094819363e49617e160e01b8352876004840152602483019061107e565b03925af1908115611cd5575f916135de575b50156135cf575b613167575090565b63ccf3bb2760e01b5f5260045ffd5b90506020813d602011613610575b816135f9602093836111de565b810103126101b45761360a90611986565b5f6135c0565b3d91506135ec565b61363f9160405194858094819363e60c350560e01b8352876004840152602483019061107e565b03925af1908115611cd5575f91613665575b506135c75763bd8ba84d60e01b5f5260045ffd5b90506020813d602011613697575b81613680602093836111de565b810103126101b45761369190611986565b5f613651565b3d9150613673565b9491909250604051636723702360e11b8152602081600481875afa908115611cd5575f916136e2575b50156131fb578186116131ec57908590039385929061357d565b90506020813d602011613714575b816136fd602093836111de565b810103126101b45761370e90611986565b5f6136c8565b3d91506136f0565b50505090916131fb5761326a57505f90565b806137365750565b804710613774575f80808093335af161374d6134f1565b90156137565750565b80511561376557602081519101fd5b63d6bda27560e01b5f5260045ffd5b4763cf47918160e01b5f5260045260245260445ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613801579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611cd5575f516001600160a01b038116156137f757905f905f90565b505f906001905f90565b5050505f916003919056fea26469706673582212208cc861b4579c51c13c468b3db33645465d6d0e2bf519925c4d9dc36bb8b6261e64736f6c634300081b0033","sourceMap":"976:28530:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;3044:58;2963:31;;3044:66;2963:31;976:28530;2963:31;;:::i;:::-;976:28530;3014:12;;976:28530;3014:12;;;;:::i;:::-;976:28530;:::i;:::-;3004:22;;;:::i;:::-;;;;;:::i;:::-;;3086:9;3074:10;;976:28530;;3044:58;:::i;:::-;:63;;:66;:::i;:::-;976:28530;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;2773:15;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;2475:20:7;;:::i;:::-;976:28530:1;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;6500:15:7;-1:-1:-1;;;;;6500:15:7;976:28530:1;14628:13;976:28530;14643:10;;;;;;976:28530;;;;;;;;14655:19;14701:7;14710:4;14701:7;;1489:1:0;14701:7:1;;;;:::i;:::-;976:28530;14710:4;:::i;:::-;976:28530;14628:13;;976:28530;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;-1:-1:-1;976:28530:1;15013:3;976:28530;;;-1:-1:-1;976:28530:1;;15013:25;;14928:117;;976:28530;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;15160:11;976:28530;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;-1:-1:-1;;;;;6500:15:7;976:28530:1;14064:4;976:28530;;;14046:10;14064:4;:::i;976:28530::-;;;;;;-1:-1:-1;;976:28530:1;;;;;;;1451:66:7;976:28530:1;;;;;;;;;-1:-1:-1;;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;;:::i;:::-;;;;15321:20;976:28530;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;9575:31;976:28530;;9737:81;976:28530;;;9575:31;:::i;:::-;9655:30;;:::i;:::-;976:28530;;;:::i;:::-;9695:31;;;:::i;:::-;;;;;:::i;:::-;;9802:9;9737:81;;:::i;:::-;976:28530;;;;;;;-1:-1:-1;;976:28530:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;6363:23;;;:::i;:::-;976:28530;;6396:25;;-1:-1:-1;;976:28530:1;;;6860:9;;976:28530;6900:10;;;;;;976:28530;9106:36;;;;:::i;:::-;976:28530;;;;;;;:::i;6912:19::-;7393:25;;;;;;;;;:::i;:::-;7473:26;;976:28530;7473:26;;;;:::i;:::-;7614:15;;;;;:72;;;;6912:19;7610:133;;7877:13;;976:28530;7877:13;;;8148:32;976:28530;8148:32;;8219:30;;;;976:28530;8285:30;976:28530;;8285:30;;976:28530;;-1:-1:-1;;;;;976:28530:1;;;;;;7872:499;7908:19;7892:14;;;;;;976:28530;;8148:32;976:28530;;;;;;;;;:::i;:::-;8148:32;;:::i;:::-;976:28530;;;;;8219:30;;;;;:::i;:::-;976:28530;;;;;;;;7982:356;976:28530;;7297:1;976:28530;;;;;;;:::i;:::-;;;;;;:::i;:::-;;7982:356;;976:28530;;;8219:30;976:28530;;;;:::i;:::-;;7982:356;;976:28530;;;;;;;8219:30;7982:356;;976:28530;8285:30;7982:356;;976:28530;7982:356;:::i;:::-;976:28530;7877:13;;976:28530;;;;;;;;;;;;7892:14;;;;;;;;;8475:191;7892:14;;;;;;;7297:1;7892:14;;976:28530;8793:31;7892:14;;;;8568:30;7892:14;976:28530;7892:14;7283:15;8568:30;;:::i;:::-;976:28530;;;;:::i;:::-;8475:191;;:::i;:::-;976:28530;;;8793:31;;:::i;:::-;8906:8;;;;8891:23;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;8973:8:1;976:28530;;;6885:13;;;;;976:28530;6885:13;;7610:133;12704:15;;;976:28530;7713:15;976:28530;;7713:15;7614:72;7647:32;;976:28530;7647:32;;;;:::i;:::-;7633:53;;;;;7614:72;;976:28530;;;;;;-1:-1:-1;;976:28530:1;;;;;6183:41:61;:5;:41;:::i;:::-;976:28530:1;6638:47:61;:8;:47;:::i;:::-;976:28530:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5674:13:61;;976:28530:1;;;;5709:4:61;976:28530:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;976:28530:1;;;;;;3647:10:7;976:28530:1;;3639:7:7;976:28530:1;;;;;;3672:20:7;;;;;3668:72;;3796:58;3647:10;976:28530:1;3647:10:7;;976:28530:1;;3639:7:7;976:28530:1;;;;;;;;;;;;;;;;3796:58:7;976:28530:1;3668:72:7;3715:14;;;976:28530:1;3715:14:7;976:28530:1;;3715:14:7;976:28530:1;;;;;;-1:-1:-1;;976:28530:1;;;;;1055:104:6;;976:28530:1;1072:24:6;1089:6;1072:24;:::i;:::-;1120:6;;1103:24;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;976:28530:1;;;;;;;;;;;;1055:104:6;;;976:28530:1;;;;-1:-1:-1;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;1055:104:6;;;;;;;;;;:::i;:::-;976:28530:1;;;;;1055:104:6;976:28530:1;;1055:104:6;976:28530:1;;;;:::i;:::-;;;;;;-1:-1:-1;;976:28530:1;;;;;-1:-1:-1;;;;;6500:15:7;976:28530:1;13859:4;976:28530;;;13859:4;:::i;976:28530::-;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;-1:-1:-1;;976:28530:1;;;10381:9;976:28530;;10381:9;10468:10;;;;;;976:28530;10480:19;10942:16;;;;;:::i;:::-;976:28530;11132:17;;976:28530;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;10865:1;10851:15;;11103:81;10851:15;11085:99;10851:15;976:28530;10851:15;;;11151:10;;976:28530;;;;:::i;:::-;;;11103:81;:::i;:::-;11085:99;;:::i;:::-;10480:19;976:28530;10453:13;;;976:28530;;;-1:-1:-1;;976:28530:1;;;;9370:58;9297:30;;:::i;:::-;976:28530;;;:::i;:::-;9337:22;;;:::i;:::-;;;;;:::i;:::-;;9412:9;9400:10;;976:28530;;;9370:58;:::i;976:28530::-;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;3964:23;;;;:::i;:::-;3997:25;976:28530;4461:9;;4486:13;976:28530;;;;;;4481:1287;4501:10;;;;;;976:28530;5861:36;;;;:::i;4513:19::-;5034:16;;;;;;;;;;:::i;:::-;5114:17;976:28530;5114:17;;;;;;;:::i;:::-;:29;;;5110:90;;5548:31;5246:175;5308:17;;;;976:28530;5308:17;4898:1;5308:17;976:28530;5308:17;;:::i;:::-;4884:15;;;;5343:10;;976:28530;;;;:::i;:::-;;;5246:175;:::i;:::-;976:28530;;;5548:31;;:::i;:::-;5661:8;;;;5646:23;;;;:::i;:::-;;;;;;:::i;:::-;;5728:8;976:28530;;4513:19;976:28530;4486:13;;;;;;976:28530;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;3500:25;3461:90;976:28530;;3461:82;976:28530;3290:31;976:28530;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;3290:31;:::i;:::-;3422:21;3371:31;;:::i;:::-;976:28530;;3422:21;;:::i;976:28530::-;3412:31;;;:::i;:::-;;;;;:::i;:::-;;3500:25;:::i;:::-;3527:9;;3461:82;;:::i;976:28530::-;;;;;;-1:-1:-1;;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;;:::i;:::-;;;;2728:7:7;976:28530:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;3381:5:7;976:28530:1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3381:5:7;976:28530:1;;;;;;;-1:-1:-1;976:28530:1;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;6500:15:7;-1:-1:-1;;;;;6500:15:7;976:28530:1;14294:13;976:28530;14309:10;;;;;;976:28530;;;;;;;;14321:19;14384:7;14393:4;14384:7;;1489:1:0;14384:7:1;;;;:::i;:::-;976:28530;14372:10;14393:4;:::i;:::-;976:28530;14294:13;;976:28530;;;;;;-1:-1:-1;;976:28530:1;;;;;;;1124:66:7;976:28530:1;;;;;;-1:-1:-1;;976:28530:1;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;-1:-1:-1;;976:28530:1;;;;;11801:9;11897:10;;;;;;976:28530;11909:19;12387:25;;;;;:::i;:::-;976:28530;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;12464:26;976:28530;;;12605:15;;;:72;;;;;976:28530;12601:133;;;976:28530;12883:14;;;;;;-1:-1:-1;;976:28530:1;;;;12294:1;;13485:208;;976:28530;;13503:190;;-1:-1:-1;12280:15:1;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;;;;;976:28530:1;;13503:190;:::i;13485:208::-;11909:19;976:28530;11882:13;;;12899:19;12294:1;976:28530;12973:353;976:28530;;13094:7;;;;:::i;:::-;;13138:35;:32;;;:35;:::i;:::-;;976:28530;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;:::i;:::-;;;;12973:353;;976:28530;;12973:353;;976:28530;;12973:353;;976:28530;;12973:353;;976:28530;12973:353;:::i;:::-;976:28530;12868:13;;12605:72;976:28530;;;12624:53;;;12605:72;;;976:28530;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;;976:28530:1;;;;:::o;:::-;;;;-1:-1:-1;;;;;976:28530:1;;;;;;:::o;:::-;;;-1:-1:-1;;;;;976:28530:1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;-1:-1:-1;976:28530:1;;;;;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;1055:104:6;;976:28530:1;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;-1:-1:-1;;;;;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;9347:12;976:28530;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;976:28530:1;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;976:28530:1;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;976:28530:1;;;;;;-1:-1:-1;;976:28530:1;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;3400:1;976:28530;;;-1:-1:-1;;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;976:28530:1;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;1055:104:6;976:28530:1;1055:104:6;;976:28530:1;;:::i;:::-;;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;9325:1;976:28530;;;-1:-1:-1;;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;1055:104:6;976:28530:1;1055:104:6;;976:28530:1;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::o;240:1:0:-;-1:-1:-1;;240:1:0;;;;;;;:::o;5278:988:7:-;5367:16;;;-1:-1:-1;;;;;976:28530:1;;;5367:38:7;;;:68;;;;5278:988;5363:123;;;5532:12;5626:367;5532:12;6021:178;5532:12;;;5583:17;;;;;5752:15;;;;976:28530:1;;;;;;;;;;;;5532:12:7;976:28530:1;;5855:10:7;;976:28530:1;;-1:-1:-1;976:28530:1;5887:7:7;5532:12;976:28530:1;-1:-1:-1;;;;;5583:17:7;-1:-1:-1;976:28530:1;;;;5887:26:7;;;;:::i;:::-;976:28530:1;;;;;5583:17:7;976:28530:1;5683:286:7;5532:12;5683:286;;976:28530:1;1451:66:7;976:28530:1;;5583:17:7;240:1:0;;976:28530:1;5752:15:7;240:1:0;;976:28530:1;5367:16:7;240:1:0;;976:28530:1;240:1:0;;;976:28530:1;240:1:0;;;976:28530:1;240:1:0;;;976:28530:1;240:1:0;5683:286:7;;;;;;:::i;:::-;976:28530:1;5656:327:7;;5626:367;:::i;:::-;976:28530:1;;5532:12:7;6147:11;;;976:28530:1;5583:17:7;6160:11;;;976:28530:1;240:1:0;;976:28530:1;;6130:55:7;;;976:28530:1;;;;240:1:0;;976:28530:1;;;;240:1:0;;;;;-1:-1:-1;;;;;;240:1:0;;;;;6130:55:7;;;-1:-1:-1;;;;;976:28530:1;6130:55:7;240:1:0;976:28530:1;6130:55:7;:::i;:::-;6021:178;:::i;:::-;6020:179;6003:257;;5278:988::o;6003:257::-;6231:18;;;-1:-1:-1;6231:18:7;;-1:-1:-1;6231:18:7;5363:123;5458:17;;;-1:-1:-1;5458:17:7;;-1:-1:-1;5458:17:7;5367:68;6500:15;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;5367:68:7;;;976:28530:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;1055:104:6;976:28530:1;1055:104:6;;976:28530:1;;:::i;:::-;;;-1:-1:-1;976:28530:1;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;19220:2157;976:28530;;-1:-1:-1;;;19537:36:1;;;;;976:28530;;;19220:2157;;-1:-1:-1;976:28530:1;19537:36;976:28530;19537:15;-1:-1:-1;;;;;976:28530:1;19537:36;;;;;;;-1:-1:-1;19537:36:1;;;19220:2157;976:28530;;;19587:29;19583:82;;976:28530;;19749:25;;;:::i;:::-;19810:21;;;;:::i;:::-;19847:13;6500:15:7;-1:-1:-1;;;;;976:28530:1;;-1:-1:-1;19862:10:1;;;;;;21286:84;;;;;;;;;;9325:1;21286:84;;:::i;19874:19::-;19948:7;;;;:::i;:::-;;976:28530;;;-1:-1:-1;976:28530:1;19537:36;976:28530;;;-1:-1:-1;976:28530:1;;;;20125:28;20121:84;;20295:18;9325:1;20295:18;;976:28530;20295:31;20291:92;;20476:20;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;;;20476:31;;;20472:91;;976:28530;;;;20773:22;20769:81;;20950:26;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;20946:93;;976:28530;;-1:-1:-1;;;;976:28530:1;;;;;-1:-1:-1;;;976:28530:1;;;;;9325:1;;21052:36;;-1:-1:-1;21052:36:1;;21103:29;;21052:36;;976:28530;;;:::i;21052:36::-;976:28530;:::i;:::-;21103:29;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;21158:13;;976:28530;21146:25;21158:13;;21146:25;:::i;:::-;976:28530;21191:67;976:28530;;21199:25;:15;976:28530;;;;;;21199:15;;:::i;:::-;;:25;976:28530;;;;;;;;;21191:67;976:28530;19847:13;;20946:93;21008:16;;;-1:-1:-1;21008:16:1;19537:36;-1:-1:-1;21008:16:1;20769:81;20822:13;;;-1:-1:-1;20822:13:1;19537:36;-1:-1:-1;20822:13:1;20472:91;20534:14;;;-1:-1:-1;20534:14:1;19537:36;-1:-1:-1;20534:14:1;20291:92;19639:15;;;-1:-1:-1;20353:15:1;19537:36;-1:-1:-1;20353:15:1;20121:84;20180:10;;;-1:-1:-1;20180:10:1;19537:36;-1:-1:-1;20180:10:1;19537:36;;;;;;;-1:-1:-1;19537:36:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;976:28530;;;-1:-1:-1;976:28530:1;;;;;19220:2157;976:28530;;-1:-1:-1;;;19537:36:1;;;;;976:28530;;;19220:2157;;;;;;-1:-1:-1;976:28530:1;19537:36;976:28530;19537:15;-1:-1:-1;;;;;976:28530:1;19537:36;;;;;;;-1:-1:-1;19537:36:1;;;19220:2157;976:28530;;;19587:29;19583:82;;976:28530;;19749:25;;;:::i;:::-;19810:21;;;;:::i;:::-;19847:13;-1:-1:-1;6500:15:7;-1:-1:-1;;;;;6500:15:7;976:28530:1;19842:1427;19862:10;;;;;;21286:84;;;;;;;;;;:::i;19874:19::-;19948:7;;;;:::i;:::-;;976:28530;;;-1:-1:-1;976:28530:1;19537:36;976:28530;;;-1:-1:-1;976:28530:1;;;;20125:28;20121:84;;20295:18;1489:1:0;20295:18:1;;976:28530;20295:31;20291:92;;20476:20;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;;;20476:31;;;20472:91;;976:28530;;;;20773:22;20769:81;;20950:26;;;976:28530;-1:-1:-1;;;;;976:28530:1;;;;;20946:93;;21052:36;1489:1:0;21052:36:1;;976:28530;21052:36;;;976:28530;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;21103:29;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;21158:13;;976:28530;21146:25;21158:13;;21146:25;:::i;:::-;976:28530;21191:67;976:28530;;21199:25;:15;976:28530;;;;;;21199:15;;:::i;:::-;;:25;976:28530;;;;;;;;;21191:67;976:28530;19847:13;;19537:36;;;;;;-1:-1:-1;19537:36:1;;;;;;:::i;:::-;;;;28242:368;976:28530;;;;;;;;-1:-1:-1;976:28530:1;28393:20;976:28530;;;-1:-1:-1;976:28530:1;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;;;;;976:28530:1;-1:-1:-1;976:28530:1;;;28433:84;;-1:-1:-1;;;;;976:28530:1;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;28567:36;;-1:-1:-1;28567:36:1;;28242:368::o;28433:84::-;28482:24;;;-1:-1:-1;28482:24:1;;-1:-1:-1;28482:24:1;3995:1151:7;4085:16;;;-1:-1:-1;;;;;976:28530:1;;;4085:38:7;;;:68;;;;3995:1151;4081:123;;;4251:12;4345:527;4251:12;4900:179;4251:12;;;4302:17;;;;;4471:16;;;;976:28530:1;;;;;;;;;;;;;;;;;;;;4581:19:7;-1:-1:-1;;;;;4251:12:7;4581:19;;976:28530:1;;4622:14:7;4302:17;4622:14;;976:28530:1;;;4471:16:7;4658:11;;976:28530:1;4701:9:7;4733:10;4085:16;4701:9;;;4251:12;976:28530:1;;;;4691:20:7;4733:10;;976:28530:1;;;-1:-1:-1;976:28530:1;4765:7:7;4251:12;976:28530:1;-1:-1:-1;;;;;4302:17:7;-1:-1:-1;976:28530:1;;;;4765:27:7;;;;:::i;:::-;976:28530:1;;;;;4302:17:7;976:28530:1;4402:446:7;4251:12;4402:446;;976:28530:1;1124:66:7;976:28530:1;;4302:17:7;976:28530:1;;;4471:16:7;976:28530:1;;;4085:16:7;976:28530:1;;;4733:10:7;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4402:446:7;;;;;;:::i;4085:68::-;6500:15;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;4085:68:7;;;976:28530:1;;;;;;;:::i;:::-;;;;-1:-1:-1;976:28530:1;;;;:::o;15846:2898::-;;;;;976:28530;;:::i;:::-;;;;;;;:::i;:::-;16112:29;;16162:21;;;:::i;:::-;16151:8;;;;:32;976:28530;;-1:-1:-1;;;16309:36:1;;;;;976:28530;;;-1:-1:-1;976:28530:1;16309:36;976:28530;16309:15;-1:-1:-1;;;;;976:28530:1;16309:36;;;;;;-1:-1:-1;16309:36:1;;;;15846:2898;16359:16;;;976:28530;16359:29;16355:82;;16483:25;;;;;:::i;:::-;;;16544:21;;;:::i;:::-;;;-1:-1:-1;16576:2029:1;16596:10;;;;;;18631:85;;;;;;3400:1;18631:85;;;;;;;;;:::i;:::-;976:28530;;;18727:10;;15846:2898;:::o;16608:19::-;16683:7;;;;;;;;;;:::i;:::-;;16804:22;16151:8;16804:22;;976:28530;-1:-1:-1;;;;;976:28530:1;;;16804:44;;;:81;;;;16608:19;16800:150;;;976:28530;17073:22;;;976:28530;;17072:44;;;16608:19;17068:103;;-1:-1:-1;;;;;17323:14:1;;;976:28530;;;;;;;;;;;;;;17570:17;;976:28530;;;17611:12;;;;;976:28530;;;;;;;:::i;:::-;-1:-1:-1;976:28530:1;;17218:420;16151:8;17218:420;;976:28530;-1:-1:-1;;;;;6500:15:7;976:28530:1;;17218:420;;976:28530;17323:14;17218:420;;976:28530;-1:-1:-1;17611:12:1;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;;;;;;;;;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;-1:-1:-1;17818:247:1;16151:8;17218:420;;976:28530;17218:420;26697:392;16309:36;976:28530;17218:420;;;976:28530;16151:8;976:28530;17218:420;;976:28530;17218:420;976:28530;17218:420;;976:28530;17218:420;17323:14;17218:420;;976:28530;17218:420;;;976:28530;;;17218:420;;;;;976:28530;17218:420;;27029:16;976:28530;;;26697:392;;;;;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;240:1:0;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26697:392;;;;;;;;;;;:::i;:::-;976:28530;26670:433;;976:28530;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;17903:25;17899:77;;-1:-1:-1;3400:1:1;976:28530;;;17818:247;;17899:77;17952:5;;;;;;;;;;;;976:28530;;;;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;;;;;16151:8;17218:420;;976:28530;3400:1;976:28530;;;;;;;-1:-1:-1;;;;;17218:420:1;976:28530;17218:420;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;;;;;;17323:14;17218:420;;976:28530;-1:-1:-1;;;976:28530:1;;;;;;;-1:-1:-1;;;976:28530:1;;;;;-1:-1:-1;;;;;17611:12:1;17218:420;;976:28530;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;17218:420;;;;976:28530;;;;;17218:420;;;976:28530;16309:36;976:28530;;;;-1:-1:-1;;;;;;976:28530:1;-1:-1:-1;;;;;976:28530:1;;;;;;;17218:420;;976:28530;;;;;;17218:420;;;976:28530;-1:-1:-1;;;;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;976:28530:1;;;;17218:420;;;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;:::i;:::-;;;;;;17818:247;976:28530;16151:8;976:28530;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;3400:1;976:28530;;;;;;;;;;;;;;;17323:14;;;976:28530;18155:27;18151:256;;976:28530;18421:29;;3400:1;18421:29;;;;;;:::i;:::-;;;;;;;:::i;:::-;;17218:420;18476:13;;976:28530;18464:25;;;;;:::i;:::-;976:28530;16151:8;18504:17;16151:8;;;;;18504;:17;:::i;:::-;976:28530;;;;;;;;;;;;;;18541:53;16151:8;976:28530;;;;;;;18541:53;;976:28530;16581:13;;;;;18151:256;18299:34;;;;-1:-1:-1;976:28530:1;15013:3;976:28530;;;-1:-1:-1;976:28530:1;;15013:25;;14928:117;;18299:34;18298:35;18294:99;;18151:256;;;;;976:28530;;;;-1:-1:-1;976:28530:1;;;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;-1:-1:-1;;976:28530:1;;;;;;1055:104:6;;;;3400:1:1;1055:104:6;976:28530:1;1055:104:6;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;240:1:0;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3400:1:1;976:28530;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;16151:8;-1:-1:-1;976:28530:1;;;;;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;3400:1:1;976:28530;;;;;;;;17072:44;17099:17;976:28530;17099:17;;976:28530;;;17072:44;;16800:150;16912:23;;;-1:-1:-1;16912:23:1;16309:36;-1:-1:-1;16912:23:1;16804:81;6500:15:7;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;16852:33:1;16804:81;;;16309:36;;;;;-1:-1:-1;16309:36:1;;;;;;:::i;:::-;;;;;;15846:2898;;;;;;;;;;976:28530;;:::i;:::-;;;;;;;:::i;:::-;16112:29;;16162:21;;;:::i;:::-;16151:8;;;;:32;976:28530;;-1:-1:-1;;;16309:36:1;;;;;976:28530;;;;-1:-1:-1;976:28530:1;16309:36;976:28530;16309:15;-1:-1:-1;;;;;976:28530:1;16309:36;;;;;;;-1:-1:-1;16309:36:1;;;15846:2898;976:28530;;;16359:29;16355:82;;16483:25;;;;:::i;:::-;;;16544:21;;;:::i;:::-;;;-1:-1:-1;16576:2029:1;16596:10;;;;;;18631:85;;;;;;;;;;;;;;;;;;;;:::i;16608:19::-;16683:7;;;;;;;;;;:::i;:::-;;16804:22;16151:8;16804:22;;976:28530;-1:-1:-1;;;;;976:28530:1;;;16804:44;;;:81;;;;16608:19;16800:150;;;976:28530;17073:22;;976:28530;;17072:44;;;16608:19;17068:103;;17323:14;;;976:28530;;;;;;17570:17;;;976:28530;17611:12;;;;976:28530;;;17611:12;;976:28530;;;;-1:-1:-1;;;;;976:28530:1;;;-1:-1:-1;;;;;976:28530:1;;16151:8;976:28530;;;;:::i;:::-;-1:-1:-1;976:28530:1;;17218:420;976:28530;6500:15:7;976:28530:1;-1:-1:-1;;;;;6500:15:7;976:28530:1;17218:420;;976:28530;17323:14;17218:420;;976:28530;-1:-1:-1;17611:12:1;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;;;;;;;;;17218:420;;976:28530;17218:420;;;976:28530;17218:420;;;976:28530;-1:-1:-1;17818:247:1;16151:8;17218:420;;976:28530;17218:420;26697:392;16309:36;976:28530;17218:420;;;976:28530;16151:8;976:28530;17218:420;;976:28530;17218:420;976:28530;17218:420;;976:28530;17218:420;17323:14;17218:420;;976:28530;17218:420;;;976:28530;;;17218:420;;;;;976:28530;17218:420;;27029:16;976:28530;;;26697:392;;;;;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;17323:14;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;17218:420;976:28530;;;;;;240:1:0;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26697:392;;;;;;;;;;;:::i;:::-;976:28530;26670:433;;976:28530;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;17903:25;17899:77;;-1:-1:-1;1489:1:0;976:28530:1;;;17818:247;;17899:77;17952:5;;;;;;;;;;;976:28530;;;;-1:-1:-1;976:28530:1;16309:36;16151:8;976:28530;;-1:-1:-1;976:28530:1;;;;;;16151:8;17218:420;;976:28530;1489:1:0;976:28530:1;;;;;;;-1:-1:-1;;;;;17218:420:1;976:28530;17218:420;;976:28530;;;-1:-1:-1;;;;;976:28530:1;;;;;;;17323:14;17218:420;;976:28530;-1:-1:-1;;;976:28530:1;;;;;;;-1:-1:-1;;;976:28530:1;;;;;-1:-1:-1;;;;;17611:12:1;17218:420;;976:28530;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;17218:420;;;;976:28530;;;;;17218:420;;;976:28530;16309:36;976:28530;;;;-1:-1:-1;;;;;;976:28530:1;-1:-1:-1;;;;;976:28530:1;;;;;;;17218:420;;976:28530;;;;;;17218:420;;;976:28530;-1:-1:-1;;;;;;976:28530:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;976:28530:1;;;;17218:420;;;976:28530;;;;;;-1:-1:-1;;;;;976:28530:1;;;;;;;;;;;;:::i;:::-;;;;;;17818:247;976:28530;16151:8;976:28530;;;;;;;;;;;-1:-1:-1;;976:28530:1;;;;;;;1489:1:0;976:28530:1;;;;;;;;;;;;;;;17323:14;;;976:28530;18155:27;18151:256;;976:28530;18421:29;;1489:1:0;18421:29:1;;;;;;:::i;:::-;;;;;;;:::i;:::-;;17218:420;18476:13;;976:28530;18464:25;;;;;:::i;:::-;976:28530;16151:8;18504:17;16151:8;;;;;18504;:17;:::i;:::-;976:28530;;;;;;;;;;;;;;18541:53;16151:8;976:28530;;;;;;;18541:53;;976:28530;16581:13;;;;18151:256;18299:34;;;;-1:-1:-1;976:28530:1;15013:3;976:28530;;;-1:-1:-1;976:28530:1;;15013:25;;14928:117;;18299:34;18298:35;18294:99;;18151:256;;;;;976:28530;;;;-1:-1:-1;976:28530:1;;;;;;;;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;;-1:-1:-1;976:28530:1;-1:-1:-1;;976:28530:1;;;;;;1055:104:6;;;;1489:1:0;1055:104:6;976:28530:1;1055:104:6;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;240:1:0;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1489:1:0;976:28530:1;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;16151:8;-1:-1:-1;976:28530:1;;;;;;;;16151:8;976:28530;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;976:28530:1;;;;-1:-1:-1;1489:1:0;976:28530:1;;;;;;;;17072:44;17099:17;976:28530;17099:17;;976:28530;;;17072:44;;16804:81;6500:15:7;;-1:-1:-1;;;;;6500:15:7;976:28530:1;-1:-1:-1;16852:33:1;16804:81;;;16309:36;;;;;;;-1:-1:-1;16309:36:1;;;;;;:::i;:::-;;;;;28803:701;;28944:23;28803:701;28944:23;:::i;:::-;28978:24;29001:1;976:28530;;29066:13;29001:1;29081:17;;;;;;29486:11;;;;28803:701;:::o;29100:19::-;29166:11;;;;:::i;:::-;;976:28530;;29001:1;29251:215;29271:21;;;;;;29100:19;;;1489:1:0;976:28530:1;29066:13;;29294:19;29354:14;;;1489:1:0;29354:14:1;;;;;;:::i;:::-;976:28530;29333:35;;;;:::i;:::-;976:28530;;29294:19;976:28530;29256:13;;;;27816:225;;976:28530;-1:-1:-1;976:28530:1;27885:11;976:28530;;-1:-1:-1;;;;;976:28530:1;-1:-1:-1;976:28530:1;;;27881:80;;-1:-1:-1;;;;;976:28530:1;;-1:-1:-1;976:28530:1;27885:11;976:28530;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;28011:23;;-1:-1:-1;28011:23:1;;27816:225::o;27881:80::-;27930:20;;;-1:-1:-1;27930:20:1;;-1:-1:-1;27930:20:1;1308:634:59;1430:17;-1:-1:-1;29282:17:67;-1:-1:-1;;;29282:17:67;;;29278:103;;1308:634:59;29398:17:67;29407:8;29978:7;29398:17;;;29394:103;;1308:634:59;29523:8:67;29514:17;;;29510:103;;1308:634:59;29639:7:67;29630:16;;;29626:100;;1308:634:59;29752:7:67;29743:16;;;29739:100;;1308:634:59;29865:7:67;29856:16;;;29852:100;;1308:634:59;29969:16:67;;29965:66;;1308:634:59;29978:7:67;1545:94:59;1450:1;976:28530:1;;1488:18:59;976:28530:1;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;1055:104:6;;976:28530:1;;:::i;:::-;;;;;;;1545:94:59;;;1652:247;-1:-1:-1;;976:28530:1;;-1:-1:-1;;;1706:111:59;;;;976:28530:1;1706:111:59;976:28530:1;1867:10:59;;1863:21;;29978:7:67;1652:247:59;;;;1863:21;1879:5;;1308:634;:::o;29965:66:67:-;30015:1;976:28530:1;;;;29965:66:67;;29852:100;29865:7;29936:1;976:28530:1;;;;29852:100:67;;;29739;29752:7;29823:1;976:28530:1;;;;29739:100:67;;;29626;29639:7;29710:1;976:28530:1;;;;29626:100:67;;;29510:103;29523:8;29596:2;976:28530:1;;;;29510:103:67;;;29394;29407:8;29480:2;976:28530:1;;;;29394:103:67;;;29278;-1:-1:-1;29364:2:67;;-1:-1:-1;;;;976:28530:1;;29278:103:67;;3945:262:61;4029:4;4038:11;-1:-1:-1;;;;;976:28530:1;4021:28:61;;:63;;3945:262;4017:184;;;4107:22;4100:29;:::o;4017:184::-;976:28530:1;;4304:80:61;;;976:28530:1;2079:95:61;976:28530:1;;4326:11:61;976:28530:1;2079:95:61;;976:28530:1;4339:14:61;2079:95;;;976:28530:1;4355:13:61;2079:95;;;976:28530:1;4029:4:61;2079:95;;;976:28530:1;2079:95:61;4304:80;;;;;;:::i;:::-;976:28530:1;4294:91:61;;4160:30;:::o;4021:63::-;4070:14;;4053:13;:31;4021:63;;5017:176;3993:249:64;5017:176:61;5153:20;;:::i;:::-;3993:249:64;;;;-1:-1:-1;;;3993:249:64;;;;;;;;;;;5017:176:61;:::o;1494:429:65:-;;;1620:18;;;;1707:33;;;;:::i;:::-;976:28530:1;;;;;;;1761:33:65;:56;;;;1754:63;;;:::o;1761:56::-;-1:-1:-1;;;;;976:28530:1;;;;;1798:19:65;;1754:63;-1:-1:-1;1754:63:65:o;976:28530:1:-;;;;;;;;;;;;1616:301:65;976:28530:1;;;;2558:60:65;976:28530:1;;;;2558:60:65;;;;;;;;;;;;;;;976:28530:1;;;;;;;;;;;:::i;:::-;2558:60:65;1055:104:6;;2558:60:65;;;;;;:::i;:::-;2527:101;;;;;;:::i;:::-;2646:42;;;1616:301;2646:134;;;1848:58;;:::o;2646:134::-;976:28530:1;;2558:60:65;976:28530:1;;;2704:29:65;;976:28530:1;;;;2558:60:65;2704:29;976:28530:1;-1:-1:-1;;;2704:76:65;;1848:58::o;2646:42::-;976:28530:1;;2558:60:65;976:28530:1;;2669:19:65;;2646:42;;;976:28530:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;24099:2238;;;;976:28530;;24417:11;1489:1:0;24417:11:1;;24413:146;;24596:21;;976:28530;-1:-1:-1;;;;;976:28530:1;;24631:31;;24627:406;;976:28530;;-1:-1:-1;;;25104:20:1;;976:28530;;;24596:21;976:28530;25104:20;976:28530;25104:20;;;;;;;;976:28530;25104:20;;;24099:2238;25140:13;;976:28530;25135:777;25155:10;;;;;;976:28530;;;;24596:21;976:28530;25959:67;976:28530;;;;;;;;;;;;;25959:67;;25104:20;25959:67;;;:::i;:::-;;;;;;;;;;976:28530;25959:67;;;25135:777;25958:68;;25954:134;;26241:58;;26309:21;24099:2238;:::o;26241:58::-;26273:14;;;:::i;25954:134::-;26053:20;;;976:28530;26053:20;25104;976:28530;26053:20;25959:67;;;24596:21;25959:67;;24596:21;25959:67;;;;;;24596:21;25959:67;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;25959:67;;;;;;-1:-1:-1;25959:67:1;;25167:19;25218:9;;;;;;;;:::i;:::-;976:28530;25340:10;;25336:57;;25411:18;;25407:76;;25591:22;;;25587:87;;976:28530;1489:1:0;976:28530:1;;;;25167:19;25140:13;976:28530;25140:13;;;;25587:87;25640:19;;;976:28530;25640:19;25104:20;976:28530;25640:19;25407:76;24875:12;;;976:28530;25456:12;25104:20;976:28530;25456:12;25336:57;25370:8;;;1489:1:0;25370:8:1;;;25104:20;;;24596:21;25104:20;;24596:21;25104:20;;;;;;24596:21;25104:20;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;25104:20;;;;;;-1:-1:-1;25104:20:1;;24627:406;24760:13;;976:28530;24760:13;;;;24775:10;;;;;;24934:66;;;;;25014:8;976:28530;25014:8;:::o;24934:66::-;24970:14;;;:::i;:::-;976:28530;25014:8;:::o;24787:19::-;24830:9;;;;:::i;:::-;976:28530;24826:80;;1489:1:0;976:28530:1;24760:13;;24413:146;24485:15;24451:97;24485:15;;;24502:9;24485:15;1489:1:0;24485:15:1;;;;;:::i;:::-;;24502:9;;:::i;:::-;976:28530;24451:97;;:::i;24099:2238::-;;;;976:28530;;24417:11;24427:1;24417:11;;24413:146;;24596:21;;976:28530;-1:-1:-1;;;;;976:28530:1;;24631:31;;24627:406;;976:28530;;-1:-1:-1;;;25104:20:1;;-1:-1:-1;;976:28530:1;24596:21;976:28530;25104:20;976:28530;25104:20;;;;;;;;-1:-1:-1;25104:20:1;;;24099:2238;25140:13;;-1:-1:-1;25135:777:1;25155:10;;;;;;25922:309;;;;24596:21;25922:309;26109:67;25922:309;976:28530;;;;;;;;;;;;26109:67;;25104:20;26109:67;;;:::i;:::-;;;;;;;;;;25922:309;26109:67;;;25135:777;26108:68;;26104:127;;26241:58;;26309:21;24099:2238;:::o;26104:127::-;26199:21;;;25922:309;26199:21;25104:20;25922:309;26199:21;26109:67;;;24596:21;26109:67;;24596:21;26109:67;;;;;;24596:21;26109:67;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;26109:67;;;;;;-1:-1:-1;26109:67:1;;25167:19;25218:9;;;;;;;;:::i;:::-;976:28530;25340:10;;25336:57;;25411:18;;25407:76;;25591:22;;;25587:87;;976:28530;24427:1;976:28530;;;;25167:19;25140:13;976:28530;25140:13;;;;25336:57;25370:8;;;24427:1;25370:8;;;25104:20;;;24596:21;25104:20;;24596:21;25104:20;;;;;;24596:21;25104:20;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;25104:20;;;;;;-1:-1:-1;25104:20:1;;24627:406;24760:13;;-1:-1:-1;24760:13:1;;;;24775:10;;;;;;24934:66;;;;;25014:8;-1:-1:-1;25014:8:1;:::o;24787:19::-;24830:9;;;;:::i;:::-;976:28530;24826:80;;24427:1;976:28530;24760:13;;24413:146;24485:15;24451:97;24485:15;;;24502:9;24485:15;-1:-1:-1;24485:15:1;;;;;:::i;3368:267:56:-;1390:66;3491:46;;1390:66;;;2625:40;;2679:11;2688:2;2679:11;;2675:69;;976:28530:1;;;;;;;:::i;:::-;2311:2:56;976:28530:1;;;;;;;1055:104:6;976:28530:1;;;2324:106:56;;;3553:22;:::o;2675:69::-;2713:20;;;976:28530:1;2713:20:56;;976:28530:1;2713:20:56;3487:142;976:28530:1;;;1390:66:56;;;;976:28530:1;1390:66:56;:::i;:::-;;;;:::i;3368:267::-;1390:66;3491:46;;1390:66;;;2625:40;;2679:11;2688:2;2679:11;;2675:69;;976:28530:1;;;;;;;:::i;3487:142:56:-;976:28530:1;;;1390:66:56;;;;6668:16:61;1390:66:56;:::i;976:28530:1:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;976:28530:1;;;;:::o;:::-;;;:::o;2129:778:60:-;976:28530:1;;;2129:778:60;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:60;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;21968:1538:1:-;22249:21;;976:28530;21968:1538;;;;;-1:-1:-1;;;;;976:28530:1;;22284:31;;22280:309;;22693:10;;;;;22689:449;;21968:1538;22249:21;;23148:261;;;;;976:28530;;;;;;;;;;;;;23185:44;;;;;;976:28530;;;;;;:::i;:::-;23185:44;;;;;;;;;976:28530;23185:44;;;23148:261;23184:45;;23180:110;;23148:261;23419:58;;23487:12;21968:1538;:::o;23180:110::-;23256:19;;;976:28530;23256:19;23185:44;976:28530;23256:19;23185:44;;;22249:21;23185:44;;22249:21;23185:44;;;;;;22249:21;23185:44;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;23185:44;;;;;;-1:-1:-1;23185:44:1;;23148:261;976:28530;;;;;;;;;;;;;23311:44;;;;;;976:28530;;;;;;:::i;:::-;23311:44;;;;;;;;;976:28530;23311:44;;;23148:261;23310:45;23148:261;23306:103;23378:20;;;976:28530;23378:20;23311:44;976:28530;23378:20;23311:44;;;22249:21;23311:44;;22249:21;23311:44;;;;;;22249:21;23311:44;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;23311:44;;;;;;-1:-1:-1;23311:44:1;;22689:449;976:28530;;;;;;;;;;22724:20;;22249:21;22724:20;;;;;;;;;;;976:28530;22724:20;;;22689:449;22723:21;;22719:79;;22906:22;;;22902:87;;976:28530;;;;;;;;22689:449;;22724:20;;;22249:21;22724:20;;22249:21;22724:20;;;;;;22249:21;22724:20;;;:::i;:::-;;;976:28530;;;;;;;:::i;:::-;22724:20;;;;;;-1:-1:-1;22724:20:1;;22280:309;22412:10;;;;;22408:68;;22490:66;;22570:8;976:28530;22570:8;:::o;27265:415::-;27328:18;27324:350;;27265:415;:::o;27324:350::-;1375:21:47;;:30;1371:125;;27345:1:1;27626:10;;;;;1548:33:47;;;;:::i;:::-;1595:8;;1591:58;;27265:415:1;:::o;1591:58:47:-;976:28530:1;;5690:21:47;:17;;5815:105;;;;;;5686:301;5957:19;;;27345:1:1;5957:19:47;;27345:1:1;5957:19:47;1371:125;1455:21;1428:57;;;27345:1:1;1428:57:47;;976:28530:1;;;;27345:1;1428:57:47;5203:1551:60;;;6283:66;6270:79;;6266:164;;976:28530:1;;;;;;-1:-1:-1;976:28530:1;;;;;;;;;;;;;;;;;;;6541:24:60;;;;;;;;;-1:-1:-1;6541:24:60;-1:-1:-1;;;;;976:28530:1;;6579:20:60;6575:113;;6698:49;-1:-1:-1;6698:49:60;-1:-1:-1;5203:1551:60;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:60;6541:24;6615:62;-1:-1:-1;6615:62:60;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o","linkReferences":{},"immutableReferences":{"12165":[{"start":11897,"length":32}],"12167":[{"start":12086,"length":32}],"12169":[{"start":11843,"length":32}],"12171":[{"start":11976,"length":32}],"12173":[{"start":12014,"length":32}],"12176":[{"start":1745,"length":32}],"12179":[{"start":1789,"length":32}],"150":[{"start":461,"length":32},{"start":6866,"length":32},{"start":7425,"length":32},{"start":8368,"length":32},{"start":9866,"length":32}],"2532":[{"start":2077,"length":32}],"2534":[{"start":2120,"length":32}],"2536":[{"start":2163,"length":32}]}},"methodIdentifiers":{"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))":"f17325e7","attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))":"3c042715","eip712Domain()":"84b0196e","getAttestTypeHash()":"12b11a17","getAttestation(bytes32)":"a3112a64","getDomainSeparator()":"ed24911d","getName()":"17d7de7c","getNonce(address)":"2d0335ab","getRevokeOffchain(address,bytes32)":"b469318d","getRevokeTypeHash()":"b83010d3","getSchemaRegistry()":"f10b5cc8","getTimestamp(bytes32)":"d45c4435","increaseNonce(uint256)":"79f7573a","isAttestationValid(bytes32)":"e30bb563","multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])":"44adc90e","multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":"95411525","multiRevoke((bytes32,(bytes32,uint256)[])[])":"4cb7e9e5","multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":"0eabf660","multiRevokeOffchain(bytes32[])":"13893f61","multiTimestamp(bytes32[])":"e71ff365","revoke((bytes32,(bytes32,uint256)))":"46926267","revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))":"a6d4dbc7","revokeOffchain(bytes32)":"cf190f34","timestamp(bytes32)":"4d003070","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISchemaRegistry\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRevoked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRevokedOffchain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyTimestamped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeadlineExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidExpirationTime\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOffset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRevocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRevocations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSchema\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Irrevocable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongSchema\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schemaUID\",\"type\":\"bytes32\"}],\"name\":\"Attested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newNonce\",\"type\":\"uint256\"}],\"name\":\"NonceIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schemaUID\",\"type\":\"bytes32\"}],\"name\":\"Revoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"RevokedOffchain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"Timestamped\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct AttestationRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature\",\"name\":\"signature\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct DelegatedAttestationRequest\",\"name\":\"delegatedRequest\",\"type\":\"tuple\"}],\"name\":\"attestByDelegation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getAttestation\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"getRevokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRevokeTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSchemaRegistry\",\"outputs\":[{\"internalType\":\"contract ISchemaRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newNonce\",\"type\":\"uint256\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"isAttestationValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct MultiAttestationRequest[]\",\"name\":\"multiRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct MultiDelegatedAttestationRequest[]\",\"name\":\"multiDelegatedRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiAttestByDelegation\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct MultiRevocationRequest[]\",\"name\":\"multiRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiRevoke\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData[]\",\"name\":\"data\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature[]\",\"name\":\"signatures\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct MultiDelegatedRevocationRequest[]\",\"name\":\"multiDelegatedRequests\",\"type\":\"tuple[]\"}],\"name\":\"multiRevokeByDelegation\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"multiRevokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"multiTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct RevocationRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct RevocationRequestData\",\"name\":\"data\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct Signature\",\"name\":\"signature\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"revoker\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"internalType\":\"struct DelegatedRevocationRequest\",\"name\":\"delegatedRequest\",\"type\":\"tuple\"}],\"name\":\"revokeByDelegation\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"revokeOffchain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"timestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"events\":{\"Attested(address,address,bytes32,bytes32)\":{\"params\":{\"attester\":\"The attesting account.\",\"recipient\":\"The recipient of the attestation.\",\"schemaUID\":\"The UID of the schema.\",\"uid\":\"The UID of the new attestation.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"NonceIncreased(uint256,uint256)\":{\"params\":{\"newNonce\":\"The new value.\",\"oldNonce\":\"The previous nonce.\"}},\"Revoked(address,address,bytes32,bytes32)\":{\"params\":{\"attester\":\"The attesting account.\",\"recipient\":\"The recipient of the attestation.\",\"schemaUID\":\"The UID of the schema.\",\"uid\":\"The UID the revoked attestation.\"}},\"RevokedOffchain(address,bytes32,uint64)\":{\"params\":{\"data\":\"The data.\",\"revoker\":\"The address of the revoker.\",\"timestamp\":\"The timestamp.\"}},\"Timestamped(bytes32,uint64)\":{\"params\":{\"data\":\"The data.\",\"timestamp\":\"The timestamp.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))\":{\"params\":{\"request\":\"The arguments of the attestation request.\"},\"returns\":{\"_0\":\"The UID of the new attestation. Example: attest({ schema: \\\"0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0\\\", data: { recipient: \\\"0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf\\\", expirationTime: 0, revocable: true, refUID: \\\"0x0000000000000000000000000000000000000000000000000000000000000000\\\", data: \\\"0xF00D\\\", value: 0 } })\"}},\"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"params\":{\"delegatedRequest\":\"The arguments of the delegated attestation request.\"},\"returns\":{\"_0\":\"The UID of the new attestation. Example: attestByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, signature: { v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e', deadline: 1673891048 })\"}},\"constructor\":{\"details\":\"Creates a new EAS instance.\",\"params\":{\"registry\":\"The address of the global schema registry.\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"getAttestTypeHash()\":{\"returns\":{\"_0\":\"The EIP712 type hash for the attest function.\"}},\"getAttestation(bytes32)\":{\"params\":{\"uid\":\"The UID of the attestation to retrieve.\"},\"returns\":{\"_0\":\"The attestation data members.\"}},\"getDomainSeparator()\":{\"returns\":{\"_0\":\"The domain separator used in the encoding of the signatures for attest, and revoke.\"}},\"getName()\":{\"returns\":{\"_0\":\"The EIP712 name.\"}},\"getNonce(address)\":{\"params\":{\"account\":\"The requested account.\"},\"returns\":{\"_0\":\"The current nonce.\"}},\"getRevokeOffchain(address,bytes32)\":{\"params\":{\"data\":\"The data to query.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"getRevokeTypeHash()\":{\"returns\":{\"_0\":\"The EIP712 type hash for the revoke function.\"}},\"getSchemaRegistry()\":{\"returns\":{\"_0\":\"The address of the global schema registry.\"}},\"getTimestamp(bytes32)\":{\"params\":{\"data\":\"The data to query.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"increaseNonce(uint256)\":{\"params\":{\"newNonce\":\"The (higher) new value.\"}},\"isAttestationValid(bytes32)\":{\"params\":{\"uid\":\"The UID of the attestation to retrieve.\"},\"returns\":{\"_0\":\"Whether an attestation exists.\"}},\"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])\":{\"params\":{\"multiRequests\":\"The arguments of the multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization.\"},\"returns\":{\"_0\":\"The UIDs of the new attestations. Example: multiAttest([{ schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 1000 }, { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 0, revocable: false, refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174', data: '0x00', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: true, refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f', data: '0x12345678', value: 0 }, }])\"}},\"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"params\":{\"multiDelegatedRequests\":\"The arguments of the delegated multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization.\"},\"returns\":{\"_0\":\"The UIDs of the new attestations. Example: multiAttestByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, { recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: false, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x00', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4', deadline: 1673891048 }])\"}},\"multiRevoke((bytes32,(bytes32,uint256)[])[])\":{\"params\":{\"multiRequests\":\"The arguments of the multi revocation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevoke([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019', value: 0 }, }])\"}},\"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"params\":{\"multiDelegatedRequests\":\"The arguments of the delegated multi revocation attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevokeByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 }])\"}},\"multiRevokeOffchain(bytes32[])\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was revoked with.\"}},\"multiTimestamp(bytes32[])\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"revoke((bytes32,(bytes32,uint256)))\":{\"params\":{\"request\":\"The arguments of the revocation request. Example: revoke({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d', value: 0 } })\"}},\"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"params\":{\"delegatedRequest\":\"The arguments of the delegated revocation request. Example: revokeByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba', value: 0 }, signature: { v: 27, r: '0xb593...7142', s: '0x0f5b...2cce' }, revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 })\"}},\"revokeOffchain(bytes32)\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was revoked with.\"}},\"timestamp(bytes32)\":{\"params\":{\"data\":\"The data to timestamp.\"},\"returns\":{\"_0\":\"The timestamp the data was timestamped with.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"EAS\",\"version\":1},\"userdoc\":{\"events\":{\"Attested(address,address,bytes32,bytes32)\":{\"notice\":\"Emitted when an attestation has been made.\"},\"NonceIncreased(uint256,uint256)\":{\"notice\":\"Emitted when users invalidate nonces by increasing their nonces to (higher) new values.\"},\"Revoked(address,address,bytes32,bytes32)\":{\"notice\":\"Emitted when an attestation has been revoked.\"},\"RevokedOffchain(address,bytes32,uint64)\":{\"notice\":\"Emitted when a data has been revoked.\"},\"Timestamped(bytes32,uint64)\":{\"notice\":\"Emitted when a data has been timestamped.\"}},\"kind\":\"user\",\"methods\":{\"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))\":{\"notice\":\"Attests to a specific schema.\"},\"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"notice\":\"Attests to a specific schema via the provided ECDSA signature.\"},\"getAttestTypeHash()\":{\"notice\":\"Returns the EIP712 type hash for the attest function.\"},\"getAttestation(bytes32)\":{\"notice\":\"Returns an existing attestation by UID.\"},\"getDomainSeparator()\":{\"notice\":\"Returns the domain separator used in the encoding of the signatures for attest, and revoke.\"},\"getName()\":{\"notice\":\"Returns the EIP712 name.\"},\"getNonce(address)\":{\"notice\":\"Returns the current nonce per-account.\"},\"getRevokeOffchain(address,bytes32)\":{\"notice\":\"Returns the timestamp that the specified data was timestamped with.\"},\"getRevokeTypeHash()\":{\"notice\":\"Returns the EIP712 type hash for the revoke function.\"},\"getSchemaRegistry()\":{\"notice\":\"Returns the address of the global schema registry.\"},\"getTimestamp(bytes32)\":{\"notice\":\"Returns the timestamp that the specified data was timestamped with.\"},\"increaseNonce(uint256)\":{\"notice\":\"Provides users an option to invalidate nonces by increasing their nonces to (higher) new values.\"},\"isAttestationValid(bytes32)\":{\"notice\":\"Checks whether an attestation exists.\"},\"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])\":{\"notice\":\"Attests to multiple schemas.\"},\"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"notice\":\"Attests to multiple schemas using via provided ECDSA signatures.\"},\"multiRevoke((bytes32,(bytes32,uint256)[])[])\":{\"notice\":\"Revokes existing attestations to multiple schemas.\"},\"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])\":{\"notice\":\"Revokes existing attestations to multiple schemas via provided ECDSA signatures.\"},\"multiRevokeOffchain(bytes32[])\":{\"notice\":\"Revokes the specified multiple bytes32 data.\"},\"multiTimestamp(bytes32[])\":{\"notice\":\"Timestamps the specified multiple bytes32 data.\"},\"revoke((bytes32,(bytes32,uint256)))\":{\"notice\":\"Revokes an existing attestation to a specific schema.\"},\"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))\":{\"notice\":\"Revokes an existing attestation to a specific schema via the provided ECDSA signature.\"},\"revokeOffchain(bytes32)\":{\"notice\":\"Revokes the specified bytes32 data.\"},\"timestamp(bytes32)\":{\"notice\":\"Timestamps the specified bytes32 data.\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"The Ethereum Attestation Service protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol\":\"EAS\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol\":{\"keccak256\":\"0x60d59e039e6ec40887e8a946f516b55997d689212c44a89f434119535dd9a3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5234ba00beaf7a43005c0759e883c6878eecc4d0efeb42c10be8c9e8b17ba21\",\"dweb:/ipfs/QmPdUaubX2Yr9kMSyyYxkY3ueHiGzPfqTq5ubzbmQiQA6B\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol\":{\"keccak256\":\"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880\",\"dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/eip1271/EIP1271Verifier.sol\":{\"keccak256\":\"0x590977110db1256cc00416bdf74eb8264a0eda358ccded303610369a2930b614\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef015b3bee8859e6658c0eac6471d05f2991a5f4b6b5c2aa5571bbdab622d6e9\",\"dweb:/ipfs/QmUHriGkixE62c5qWjyM9DWZFykDcjQ7T6Tbfi3DPD38ym\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x66c7ec42c6c43712be2107a50ab4529379bc76a632b425babec698d9da921ac6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dce2778f0b638adfc5ba29c2c618c855fe725fa74a16846386aa1d56a834aa04\",\"dweb:/ipfs/QmPV9oWnzQdi58od266j62xvviavLNHqKLZfm6k2K1qy9E\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC7913.sol\":{\"keccak256\":\"0xe5a126930df1d54e4a6dd5fea09010c4a7db0ea974c6c17a1e6082879f5a032b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f58f5a90328536a6c68289916bfa4ed653d871319c7b2a416ab3f6263c4f2f5\",\"dweb:/ipfs/Qmaa9DmgUA16Urz5fuF4RbFz2NaVpNLV41ddwykSdasFUd\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"node_modules/@openzeppelin/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x1613f93e376ab96791fd29f79da754e253c3d766831bc8c42f50545662f49065\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e88ee314d50d0f323616f88d0ccf5e4110dbdec2775d8d42523bcc8b76ed36eb\",\"dweb:/ipfs/QmQ18ygHRrDdz4AEZXy5PASUHvJk1SNWWKM3TyC1xvDedP\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x1fcf8cceb1a67e6c8512267e780933c4a3f63ef44756e6c818fda79be51c8402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://617d7d57f6f9cd449068b4d23daf485676d083aae648e038d05eb3a13291de35\",\"dweb:/ipfs/QmPADWPiGaSzZDFNpFEUx4ZPqhzPkYncBpHyTfAGcfsqzy\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x17fc4574e07105b0180ef61f1b3cacd1820a3d37f29a4af1018d0a253c6399b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be46b3e1362dbcadbbb45ec92cdea849dceccea3e2795237f00c123aeae44746\",\"dweb:/ipfs/QmSpyB8mud6xKiZaQnVtEPrxtTHGtyBgjs1PCYk4f2gesd\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x0f39d23ae345355f0913470b15d00c0434754302077ac97cdc038b5c000fc5cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5ebc3233ff506c43e0f9960d2459403f878bbb63b7c71c318f16839564919ac\",\"dweb:/ipfs/QmbctngFd6aQkHVqZeFAL3iHfw4X7wNgfsgUxX8t26U2m4\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ISchemaRegistry","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessDenied"},{"inputs":[],"type":"error","name":"AlreadyRevoked"},{"inputs":[],"type":"error","name":"AlreadyRevokedOffchain"},{"inputs":[],"type":"error","name":"AlreadyTimestamped"},{"inputs":[],"type":"error","name":"DeadlineExpired"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[],"type":"error","name":"InvalidAttestations"},{"inputs":[],"type":"error","name":"InvalidExpirationTime"},{"inputs":[],"type":"error","name":"InvalidLength"},{"inputs":[],"type":"error","name":"InvalidNonce"},{"inputs":[],"type":"error","name":"InvalidOffset"},{"inputs":[],"type":"error","name":"InvalidRegistry"},{"inputs":[],"type":"error","name":"InvalidRevocation"},{"inputs":[],"type":"error","name":"InvalidRevocations"},{"inputs":[],"type":"error","name":"InvalidSchema"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidVerifier"},{"inputs":[],"type":"error","name":"Irrevocable"},{"inputs":[],"type":"error","name":"NotFound"},{"inputs":[],"type":"error","name":"NotPayable"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"error","name":"WrongSchema"},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schemaUID","type":"bytes32","indexed":true}],"type":"event","name":"Attested","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldNonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"newNonce","type":"uint256","indexed":false}],"type":"event","name":"NonceIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schemaUID","type":"bytes32","indexed":true}],"type":"event","name":"Revoked","anonymous":false},{"inputs":[{"internalType":"address","name":"revoker","type":"address","indexed":true},{"internalType":"bytes32","name":"data","type":"bytes32","indexed":true},{"internalType":"uint64","name":"timestamp","type":"uint64","indexed":true}],"type":"event","name":"RevokedOffchain","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32","indexed":true},{"internalType":"uint64","name":"timestamp","type":"uint64","indexed":true}],"type":"event","name":"Timestamped","anonymous":false},{"inputs":[{"internalType":"struct AttestationRequest","name":"request","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData","name":"data","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct DelegatedAttestationRequest","name":"delegatedRequest","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData","name":"data","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature","name":"signature","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"attester","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"attestByDelegation","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getAttestTypeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"struct Attestation","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDomainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"revoker","type":"address"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRevokeOffchain","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getRevokeTypeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSchemaRegistry","outputs":[{"internalType":"contract ISchemaRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTimestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"newNonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isAttestationValid","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MultiAttestationRequest[]","name":"multiRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct MultiDelegatedAttestationRequest[]","name":"multiDelegatedRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature[]","name":"signatures","type":"tuple[]","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"attester","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"multiAttestByDelegation","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct MultiRevocationRequest[]","name":"multiRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"multiRevoke"},{"inputs":[{"internalType":"struct MultiDelegatedRevocationRequest[]","name":"multiDelegatedRequests","type":"tuple[]","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData[]","name":"data","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature[]","name":"signatures","type":"tuple[]","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"revoker","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"multiRevokeByDelegation"},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"multiRevokeOffchain","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"multiTimestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct RevocationRequest","name":"request","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData","name":"data","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}],"stateMutability":"payable","type":"function","name":"revoke"},{"inputs":[{"internalType":"struct DelegatedRevocationRequest","name":"delegatedRequest","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct RevocationRequestData","name":"data","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}]},{"internalType":"struct Signature","name":"signature","type":"tuple","components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"internalType":"address","name":"revoker","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"}]}],"stateMutability":"payable","type":"function","name":"revokeByDelegation"},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"revokeOffchain","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))":{"params":{"request":"The arguments of the attestation request."},"returns":{"_0":"The UID of the new attestation. Example: attest({ schema: \"0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0\", data: { recipient: \"0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf\", expirationTime: 0, revocable: true, refUID: \"0x0000000000000000000000000000000000000000000000000000000000000000\", data: \"0xF00D\", value: 0 } })"}},"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))":{"params":{"delegatedRequest":"The arguments of the delegated attestation request."},"returns":{"_0":"The UID of the new attestation. Example: attestByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, signature: { v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e', deadline: 1673891048 })"}},"constructor":{"details":"Creates a new EAS instance.","params":{"registry":"The address of the global schema registry."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"getAttestTypeHash()":{"returns":{"_0":"The EIP712 type hash for the attest function."}},"getAttestation(bytes32)":{"params":{"uid":"The UID of the attestation to retrieve."},"returns":{"_0":"The attestation data members."}},"getDomainSeparator()":{"returns":{"_0":"The domain separator used in the encoding of the signatures for attest, and revoke."}},"getName()":{"returns":{"_0":"The EIP712 name."}},"getNonce(address)":{"params":{"account":"The requested account."},"returns":{"_0":"The current nonce."}},"getRevokeOffchain(address,bytes32)":{"params":{"data":"The data to query."},"returns":{"_0":"The timestamp the data was timestamped with."}},"getRevokeTypeHash()":{"returns":{"_0":"The EIP712 type hash for the revoke function."}},"getSchemaRegistry()":{"returns":{"_0":"The address of the global schema registry."}},"getTimestamp(bytes32)":{"params":{"data":"The data to query."},"returns":{"_0":"The timestamp the data was timestamped with."}},"increaseNonce(uint256)":{"params":{"newNonce":"The (higher) new value."}},"isAttestationValid(bytes32)":{"params":{"uid":"The UID of the attestation to retrieve."},"returns":{"_0":"Whether an attestation exists."}},"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])":{"params":{"multiRequests":"The arguments of the multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization."},"returns":{"_0":"The UIDs of the new attestations. Example: multiAttest([{ schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 1000 }, { recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 0, revocable: false, refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174', data: '0x00', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: true, refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f', data: '0x12345678', value: 0 }, }])"}},"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"params":{"multiDelegatedRequests":"The arguments of the delegated multi attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization."},"returns":{"_0":"The UIDs of the new attestations. Example: multiAttestByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', expirationTime: 1673891048, revocable: true, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x1234', value: 0 }, { recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf', expirationTime: 0, revocable: false, refUID: '0x0000000000000000000000000000000000000000000000000000000000000000', data: '0x00', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4', deadline: 1673891048 }])"}},"multiRevoke((bytes32,(bytes32,uint256)[])[])":{"params":{"multiRequests":"The arguments of the multi revocation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevoke([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], }, { schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425', data: [{ uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019', value: 0 }, }])"}},"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"params":{"multiDelegatedRequests":"The arguments of the delegated multi revocation attestation requests. The requests should be grouped by distinct schema ids to benefit from the best batching optimization. Example: multiRevokeByDelegation([{ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: [{ uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25', value: 1000 }, { uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade', value: 0 }], signatures: [{ v: 28, r: '0x148c...b25b', s: '0x5a72...be22' }, { v: 28, r: '0x487s...67bb', s: '0x12ad...2366' }], revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 }])"}},"multiRevokeOffchain(bytes32[])":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was revoked with."}},"multiTimestamp(bytes32[])":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was timestamped with."}},"revoke((bytes32,(bytes32,uint256)))":{"params":{"request":"The arguments of the revocation request. Example: revoke({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d', value: 0 } })"}},"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))":{"params":{"delegatedRequest":"The arguments of the delegated revocation request. Example: revokeByDelegation({ schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc', data: { uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba', value: 0 }, signature: { v: 27, r: '0xb593...7142', s: '0x0f5b...2cce' }, revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992', deadline: 1673891048 })"}},"revokeOffchain(bytes32)":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was revoked with."}},"timestamp(bytes32)":{"params":{"data":"The data to timestamp."},"returns":{"_0":"The timestamp the data was timestamped with."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))":{"notice":"Attests to a specific schema."},"attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))":{"notice":"Attests to a specific schema via the provided ECDSA signature."},"getAttestTypeHash()":{"notice":"Returns the EIP712 type hash for the attest function."},"getAttestation(bytes32)":{"notice":"Returns an existing attestation by UID."},"getDomainSeparator()":{"notice":"Returns the domain separator used in the encoding of the signatures for attest, and revoke."},"getName()":{"notice":"Returns the EIP712 name."},"getNonce(address)":{"notice":"Returns the current nonce per-account."},"getRevokeOffchain(address,bytes32)":{"notice":"Returns the timestamp that the specified data was timestamped with."},"getRevokeTypeHash()":{"notice":"Returns the EIP712 type hash for the revoke function."},"getSchemaRegistry()":{"notice":"Returns the address of the global schema registry."},"getTimestamp(bytes32)":{"notice":"Returns the timestamp that the specified data was timestamped with."},"increaseNonce(uint256)":{"notice":"Provides users an option to invalidate nonces by increasing their nonces to (higher) new values."},"isAttestationValid(bytes32)":{"notice":"Checks whether an attestation exists."},"multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])":{"notice":"Attests to multiple schemas."},"multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"notice":"Attests to multiple schemas using via provided ECDSA signatures."},"multiRevoke((bytes32,(bytes32,uint256)[])[])":{"notice":"Revokes existing attestations to multiple schemas."},"multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])":{"notice":"Revokes existing attestations to multiple schemas via provided ECDSA signatures."},"multiRevokeOffchain(bytes32[])":{"notice":"Revokes the specified multiple bytes32 data."},"multiTimestamp(bytes32[])":{"notice":"Timestamps the specified multiple bytes32 data."},"revoke((bytes32,(bytes32,uint256)))":{"notice":"Revokes an existing attestation to a specific schema."},"revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))":{"notice":"Revokes an existing attestation to a specific schema via the provided ECDSA signature."},"revokeOffchain(bytes32)":{"notice":"Revokes the specified bytes32 data."},"timestamp(bytes32)":{"notice":"Timestamps the specified bytes32 data."},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol":"EAS"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol":{"keccak256":"0x60d59e039e6ec40887e8a946f516b55997d689212c44a89f434119535dd9a3c4","urls":["bzz-raw://b5234ba00beaf7a43005c0759e883c6878eecc4d0efeb42c10be8c9e8b17ba21","dweb:/ipfs/QmPdUaubX2Yr9kMSyyYxkY3ueHiGzPfqTq5ubzbmQiQA6B"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol":{"keccak256":"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12","urls":["bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880","dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/eip1271/EIP1271Verifier.sol":{"keccak256":"0x590977110db1256cc00416bdf74eb8264a0eda358ccded303610369a2930b614","urls":["bzz-raw://ef015b3bee8859e6658c0eac6471d05f2991a5f4b6b5c2aa5571bbdab622d6e9","dweb:/ipfs/QmUHriGkixE62c5qWjyM9DWZFykDcjQ7T6Tbfi3DPD38ym"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol":{"keccak256":"0x66c7ec42c6c43712be2107a50ab4529379bc76a632b425babec698d9da921ac6","urls":["bzz-raw://dce2778f0b638adfc5ba29c2c618c855fe725fa74a16846386aa1d56a834aa04","dweb:/ipfs/QmPV9oWnzQdi58od266j62xvviavLNHqKLZfm6k2K1qy9E"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC7913.sol":{"keccak256":"0xe5a126930df1d54e4a6dd5fea09010c4a7db0ea974c6c17a1e6082879f5a032b","urls":["bzz-raw://2f58f5a90328536a6c68289916bfa4ed653d871319c7b2a416ab3f6263c4f2f5","dweb:/ipfs/Qmaa9DmgUA16Urz5fuF4RbFz2NaVpNLV41ddwykSdasFUd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Bytes.sol":{"keccak256":"0x1613f93e376ab96791fd29f79da754e253c3d766831bc8c42f50545662f49065","urls":["bzz-raw://e88ee314d50d0f323616f88d0ccf5e4110dbdec2775d8d42523bcc8b76ed36eb","dweb:/ipfs/QmQ18ygHRrDdz4AEZXy5PASUHvJk1SNWWKM3TyC1xvDedP"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ShortStrings.sol":{"keccak256":"0x1fcf8cceb1a67e6c8512267e780933c4a3f63ef44756e6c818fda79be51c8402","urls":["bzz-raw://617d7d57f6f9cd449068b4d23daf485676d083aae648e038d05eb3a13291de35","dweb:/ipfs/QmPADWPiGaSzZDFNpFEUx4ZPqhzPkYncBpHyTfAGcfsqzy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x17fc4574e07105b0180ef61f1b3cacd1820a3d37f29a4af1018d0a253c6399b5","urls":["bzz-raw://be46b3e1362dbcadbbb45ec92cdea849dceccea3e2795237f00c123aeae44746","dweb:/ipfs/QmSpyB8mud6xKiZaQnVtEPrxtTHGtyBgjs1PCYk4f2gesd"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x0f39d23ae345355f0913470b15d00c0434754302077ac97cdc038b5c000fc5cc","urls":["bzz-raw://d5ebc3233ff506c43e0f9960d2459403f878bbb63b7c71c318f16839564919ac","dweb:/ipfs/QmbctngFd6aQkHVqZeFAL3iHfw4X7wNgfsgUxX8t26U2m4"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":1} \ No newline at end of file diff --git a/frontend/abis/EASAttestTrigger.json b/frontend/abis/EASAttestTrigger.json index 9eb421ab..f6172878 100644 --- a/frontend/abis/EASAttestTrigger.json +++ b/frontend/abis/EASAttestTrigger.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addAgentTrigger","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"triggerRequestAttestation","inputs":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"triggerRequestRawAttestation","inputs":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AttestationRequested","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"AttestedEvent","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schema_uid","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"NewTrigger","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608080604052346015576101cb908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081630edc58b114610096575080635e05153c1461003d5763a74a482f1461003d575f80fd5b34610092577fe78f5f2148eb9d3b0d5eca1c6babc65797c90fe099e3638697aa19c98acd80c961008d61006f36610127565b6040516001600160a01b03909316959394339493928392908361016e565b0390a4005b5f80fd5b34610092576020366003190112610092576004359067ffffffffffffffff821161009257806100f46100ed7f86eacd23610d81706516de1ed0476c87772fdf939c7c771fbbd7f0230d619e689436906004016100f9565b908361016e565b0390a1005b9181601f840112156100925782359167ffffffffffffffff8311610092576020838186019501011161009257565b606060031982011261009257600435916024356001600160a01b038116810361009257916044359067ffffffffffffffff82116100925761016a916004016100f9565b9091565b90918060409360208452816020850152848401375f828201840152601f01601f191601019056fea26469706673582212206dfb6c32703bb84e00cb41e9631b2a13f1226fe3e787b171277a2d93841db02864736f6c634300081b0033","sourceMap":"231:1922:90:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081630edc58b114610096575080635e05153c1461003d5763a74a482f1461003d575f80fd5b34610092577fe78f5f2148eb9d3b0d5eca1c6babc65797c90fe099e3638697aa19c98acd80c961008d61006f36610127565b6040516001600160a01b03909316959394339493928392908361016e565b0390a4005b5f80fd5b34610092576020366003190112610092576004359067ffffffffffffffff821161009257806100f46100ed7f86eacd23610d81706516de1ed0476c87772fdf939c7c771fbbd7f0230d619e689436906004016100f9565b908361016e565b0390a1005b9181601f840112156100925782359167ffffffffffffffff8311610092576020838186019501011161009257565b606060031982011261009257600435916024356001600160a01b038116810361009257916044359067ffffffffffffffff82116100925761016a916004016100f9565b9091565b90918060409360208452816020850152848401375f828201840152601f01601f191601019056fea26469706673582212206dfb6c32703bb84e00cb41e9631b2a13f1226fe3e787b171277a2d93841db02864736f6c634300081b0033","sourceMap":"231:1922:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1410:64;;231:1922;;;:::i;:::-;;;-1:-1:-1;;;;;231:1922:90;;;;;;1431:10;;231:1922;;;;;;1410:64;:::i;:::-;;;;231:1922;;;;;;;;;;;-1:-1:-1;;231:1922:90;;;;;;;;;;;;;2121:23;231:1922;2121:23;231:1922;;;;;;:::i;:::-;2121:23;;;:::i;:::-;;;;231:1922;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;231:1922:90;;;;;;;;;;-1:-1:-1;;;;;231:1922:90;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;231:1922:90;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addAgentTrigger(string)":"0edc58b1","triggerRequestAttestation(bytes32,address,string)":"a74a482f","triggerRequestRawAttestation(bytes32,address,bytes)":"5e05153c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"AttestationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schema_uid\",\"type\":\"bytes32\"}],\"name\":\"AttestedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"NewTrigger\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"addAgentTrigger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"triggerRequestAttestation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"triggerRequestRawAttestation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract allows direct attestation data submission to WAVS for testing\",\"events\":{\"AttestationRequested(address,bytes32,address,bytes)\":{\"params\":{\"creator\":\"Address requesting the attestation\",\"data\":\"Attestation data\",\"recipient\":\"Recipient of the attestation\",\"schema\":\"Schema UID for the attestation\"}},\"NewTrigger(bytes)\":{\"params\":{\"data\":\"Agent trigger data as bytes\"}}},\"kind\":\"dev\",\"methods\":{\"addAgentTrigger(string)\":{\"params\":{\"data\":\"The agent trigger data as string\"}},\"triggerRequestAttestation(bytes32,address,string)\":{\"params\":{\"data\":\"The attestation data as string\",\"recipient\":\"The recipient address (use zero address for no specific recipient)\",\"schema\":\"The schema UID for the attestation\"}},\"triggerRequestRawAttestation(bytes32,address,bytes)\":{\"params\":{\"data\":\"Raw attestation data (will use component defaults)\"}}},\"title\":\"EASAttestTrigger\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationRequested(address,bytes32,address,bytes)\":{\"notice\":\"Event for direct attestation requests (no wrapper events)\"},\"AttestedEvent(address,address,bytes32,bytes32)\":{\"notice\":\"EAS Attested event that WAVS component expects\"},\"NewTrigger(bytes)\":{\"notice\":\"Event for new agent triggers\"}},\"kind\":\"user\",\"methods\":{\"addAgentTrigger(string)\":{\"notice\":\"Creates an agent trigger with string data\"},\"triggerRequestAttestation(bytes32,address,string)\":{\"notice\":\"Creates an attestation trigger with JSON data\"},\"triggerRequestRawAttestation(bytes32,address,bytes)\":{\"notice\":\"Creates an attestation trigger with raw bytes data\"}},\"notice\":\"Simplified trigger contract for WAVS EAS testing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/EASAttestTrigger.sol\":\"EASAttestTrigger\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"src/contracts/eas/EASAttestTrigger.sol\":{\"keccak256\":\"0xefe3787c513c3602e3c3214293dc4c7464670d450e5439608c3da13975f47894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11b84c98e4571456b01d4fd9353d2fb9863ee39f641de66017e5a66ecd9623d3\",\"dweb:/ipfs/QmVzaVEZ8iyS4thHCwM7Nb67HUCPtEVrvynJLcCTVrgp8k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"bytes32","name":"schema","type":"bytes32","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"AttestationRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schema_uid","type":"bytes32","indexed":true}],"type":"event","name":"AttestedEvent","anonymous":false},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"NewTrigger","anonymous":false},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addAgentTrigger"},{"inputs":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"triggerRequestAttestation"},{"inputs":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"triggerRequestRawAttestation"}],"devdoc":{"kind":"dev","methods":{"addAgentTrigger(string)":{"params":{"data":"The agent trigger data as string"}},"triggerRequestAttestation(bytes32,address,string)":{"params":{"data":"The attestation data as string","recipient":"The recipient address (use zero address for no specific recipient)","schema":"The schema UID for the attestation"}},"triggerRequestRawAttestation(bytes32,address,bytes)":{"params":{"data":"Raw attestation data (will use component defaults)"}}},"version":1},"userdoc":{"kind":"user","methods":{"addAgentTrigger(string)":{"notice":"Creates an agent trigger with string data"},"triggerRequestAttestation(bytes32,address,string)":{"notice":"Creates an attestation trigger with JSON data"},"triggerRequestRawAttestation(bytes32,address,bytes)":{"notice":"Creates an attestation trigger with raw bytes data"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/EASAttestTrigger.sol":"EASAttestTrigger"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/contracts/eas/EASAttestTrigger.sol":{"keccak256":"0xefe3787c513c3602e3c3214293dc4c7464670d450e5439608c3da13975f47894","urls":["bzz-raw://11b84c98e4571456b01d4fd9353d2fb9863ee39f641de66017e5a66ecd9623d3","dweb:/ipfs/QmVzaVEZ8iyS4thHCwM7Nb67HUCPtEVrvynJLcCTVrgp8k"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file +{"abi":[{"type":"function","name":"addAgentTrigger","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"triggerRequestAttestation","inputs":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"triggerRequestRawAttestation","inputs":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AttestationRequested","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"AttestedEvent","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schema_uid","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"NewTrigger","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x608080604052346015576101cb908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081630edc58b114610096575080635e05153c1461003d5763a74a482f1461003d575f80fd5b34610092577fe78f5f2148eb9d3b0d5eca1c6babc65797c90fe099e3638697aa19c98acd80c961008d61006f36610127565b6040516001600160a01b03909316959394339493928392908361016e565b0390a4005b5f80fd5b34610092576020366003190112610092576004359067ffffffffffffffff821161009257806100f46100ed7f86eacd23610d81706516de1ed0476c87772fdf939c7c771fbbd7f0230d619e689436906004016100f9565b908361016e565b0390a1005b9181601f840112156100925782359167ffffffffffffffff8311610092576020838186019501011161009257565b606060031982011261009257600435916024356001600160a01b038116810361009257916044359067ffffffffffffffff82116100925761016a916004016100f9565b9091565b90918060409360208452816020850152848401375f828201840152601f01601f191601019056fea26469706673582212206dfb6c32703bb84e00cb41e9631b2a13f1226fe3e787b171277a2d93841db02864736f6c634300081b0033","sourceMap":"231:1922:120:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c9081630edc58b114610096575080635e05153c1461003d5763a74a482f1461003d575f80fd5b34610092577fe78f5f2148eb9d3b0d5eca1c6babc65797c90fe099e3638697aa19c98acd80c961008d61006f36610127565b6040516001600160a01b03909316959394339493928392908361016e565b0390a4005b5f80fd5b34610092576020366003190112610092576004359067ffffffffffffffff821161009257806100f46100ed7f86eacd23610d81706516de1ed0476c87772fdf939c7c771fbbd7f0230d619e689436906004016100f9565b908361016e565b0390a1005b9181601f840112156100925782359167ffffffffffffffff8311610092576020838186019501011161009257565b606060031982011261009257600435916024356001600160a01b038116810361009257916044359067ffffffffffffffff82116100925761016a916004016100f9565b9091565b90918060409360208452816020850152848401375f828201840152601f01601f191601019056fea26469706673582212206dfb6c32703bb84e00cb41e9631b2a13f1226fe3e787b171277a2d93841db02864736f6c634300081b0033","sourceMap":"231:1922:120:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1410:64;;231:1922;;;:::i;:::-;;;-1:-1:-1;;;;;231:1922:120;;;;;;1431:10;;231:1922;;;;;;1410:64;:::i;:::-;;;;231:1922;;;;;;;;;;;-1:-1:-1;;231:1922:120;;;;;;;;;;;;;2121:23;231:1922;2121:23;231:1922;;;;;;:::i;:::-;2121:23;;;:::i;:::-;;;;231:1922;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;231:1922:120;;;;;;;;;;-1:-1:-1;;;;;231:1922:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;231:1922:120;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addAgentTrigger(string)":"0edc58b1","triggerRequestAttestation(bytes32,address,string)":"a74a482f","triggerRequestRawAttestation(bytes32,address,bytes)":"5e05153c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"AttestationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schema_uid\",\"type\":\"bytes32\"}],\"name\":\"AttestedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"NewTrigger\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"addAgentTrigger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"triggerRequestAttestation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"triggerRequestRawAttestation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract allows direct attestation data submission to WAVS for testing\",\"events\":{\"AttestationRequested(address,bytes32,address,bytes)\":{\"params\":{\"creator\":\"Address requesting the attestation\",\"data\":\"Attestation data\",\"recipient\":\"Recipient of the attestation\",\"schema\":\"Schema UID for the attestation\"}},\"NewTrigger(bytes)\":{\"params\":{\"data\":\"Agent trigger data as bytes\"}}},\"kind\":\"dev\",\"methods\":{\"addAgentTrigger(string)\":{\"params\":{\"data\":\"The agent trigger data as string\"}},\"triggerRequestAttestation(bytes32,address,string)\":{\"params\":{\"data\":\"The attestation data as string\",\"recipient\":\"The recipient address (use zero address for no specific recipient)\",\"schema\":\"The schema UID for the attestation\"}},\"triggerRequestRawAttestation(bytes32,address,bytes)\":{\"params\":{\"data\":\"Raw attestation data (will use component defaults)\"}}},\"title\":\"EASAttestTrigger\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationRequested(address,bytes32,address,bytes)\":{\"notice\":\"Event for direct attestation requests (no wrapper events)\"},\"AttestedEvent(address,address,bytes32,bytes32)\":{\"notice\":\"EAS Attested event that WAVS component expects\"},\"NewTrigger(bytes)\":{\"notice\":\"Event for new agent triggers\"}},\"kind\":\"user\",\"methods\":{\"addAgentTrigger(string)\":{\"notice\":\"Creates an agent trigger with string data\"},\"triggerRequestAttestation(bytes32,address,string)\":{\"notice\":\"Creates an attestation trigger with JSON data\"},\"triggerRequestRawAttestation(bytes32,address,bytes)\":{\"notice\":\"Creates an attestation trigger with raw bytes data\"}},\"notice\":\"Simplified trigger contract for WAVS EAS testing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/EASAttestTrigger.sol\":\"EASAttestTrigger\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"src/contracts/eas/EASAttestTrigger.sol\":{\"keccak256\":\"0xefe3787c513c3602e3c3214293dc4c7464670d450e5439608c3da13975f47894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11b84c98e4571456b01d4fd9353d2fb9863ee39f641de66017e5a66ecd9623d3\",\"dweb:/ipfs/QmVzaVEZ8iyS4thHCwM7Nb67HUCPtEVrvynJLcCTVrgp8k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"bytes32","name":"schema","type":"bytes32","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"AttestationRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schema_uid","type":"bytes32","indexed":true}],"type":"event","name":"AttestedEvent","anonymous":false},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"NewTrigger","anonymous":false},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addAgentTrigger"},{"inputs":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"triggerRequestAttestation"},{"inputs":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"triggerRequestRawAttestation"}],"devdoc":{"kind":"dev","methods":{"addAgentTrigger(string)":{"params":{"data":"The agent trigger data as string"}},"triggerRequestAttestation(bytes32,address,string)":{"params":{"data":"The attestation data as string","recipient":"The recipient address (use zero address for no specific recipient)","schema":"The schema UID for the attestation"}},"triggerRequestRawAttestation(bytes32,address,bytes)":{"params":{"data":"Raw attestation data (will use component defaults)"}}},"version":1},"userdoc":{"kind":"user","methods":{"addAgentTrigger(string)":{"notice":"Creates an agent trigger with string data"},"triggerRequestAttestation(bytes32,address,string)":{"notice":"Creates an attestation trigger with JSON data"},"triggerRequestRawAttestation(bytes32,address,bytes)":{"notice":"Creates an attestation trigger with raw bytes data"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/EASAttestTrigger.sol":"EASAttestTrigger"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/contracts/eas/EASAttestTrigger.sol":{"keccak256":"0xefe3787c513c3602e3c3214293dc4c7464670d450e5439608c3da13975f47894","urls":["bzz-raw://11b84c98e4571456b01d4fd9353d2fb9863ee39f641de66017e5a66ecd9623d3","dweb:/ipfs/QmVzaVEZ8iyS4thHCwM7Nb67HUCPtEVrvynJLcCTVrgp8k"],"license":"MIT"}},"version":1},"id":120} \ No newline at end of file diff --git a/frontend/abis/EASIndexerResolver.json b/frontend/abis/EASIndexerResolver.json index d8906a82..5172c1b0 100644 --- a/frontend/abis/EASIndexerResolver.json +++ b/frontend/abis/EASIndexerResolver.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"eas","type":"address","internalType":"contract IEAS"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"attest","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isPayable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"multiAttest","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AttestationAttested","inputs":[{"name":"eas","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AttestationRevoked","inputs":[{"name":"eas","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Attested","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schemaUID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"AccessDenied","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[]},{"type":"error","name":"InvalidEAS","inputs":[]},{"type":"error","name":"InvalidLength","inputs":[]},{"type":"error","name":"NotPayable","inputs":[]}],"bytecode":{"object":"0x610100346100b757601f61080b38819003918201601f19168301916001600160401b038311848410176100bb578084926020946040528339810103126100b757516001600160a01b0381168082036100b7576001608052600360a0525f60c052156100a85760e05260405161073b90816100d082396080518161011e015260a05181610150015260c0518161017b015260e0518181816105b1015281816105f301526106b40152f35b6341bc07ff60e11b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610027575b3615610018575f80fd5b631574f9f360e01b5f5260045ffd5b5f3560e01c806354fd4d501461010957806388e5b2d9146100ea57806391db0b7e146100cb578063ce46e046146100ad578063e49617e1146100925763e60c35050361000e57602061008861007b366102a5565b6100836105af565b610658565b6040519015158152f35b60206100886100a0366102a5565b6100a86105af565b6105f0565b346100c7575f3660031901126100c75760206040515f8152f35b5f80fd5b60206100886100d936610253565b926100e59291926105af565b6103d3565b60206100886100f836610253565b926101049291926105af565b610357565b346100c7575f3660031901126100c7576101427f0000000000000000000000000000000000000000000000000000000000000000610442565b604060206101f760016101747f0000000000000000000000000000000000000000000000000000000000000000610442565b818461019f7f0000000000000000000000000000000000000000000000000000000000000000610442565b818851978895818088019c8d815192839201905e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826102da565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b9181601f840112156100c75782359167ffffffffffffffff83116100c7576020808501948460051b0101116100c757565b60406003198201126100c75760043567ffffffffffffffff81116100c7578161027e91600401610222565b929092916024359067ffffffffffffffff82116100c7576102a191600401610222565b9091565b60206003198201126100c7576004359067ffffffffffffffff82116100c7576101409082900360031901126100c75760040190565b90601f8019910116810190811067ffffffffffffffff8211176102fc57604052565b634e487b7160e01b5f52604160045260245ffd5b91908110156103205760051b0190565b634e487b7160e01b5f52603260045260245ffd5b91908110156103205760051b8101359061013e19813603018212156100c7570190565b929091928183036103c4575f91345b84841061037857505050505050600190565b610383848388610310565b358181116103b5576103996100a8868887610334565b156103aa5760019103930192610366565b505050505050505f90565b63044044a560e21b5f5260045ffd5b63251f56a160e21b5f5260045ffd5b929091928183036103c4575f91345b8484106103f457505050505050600190565b6103ff848388610310565b358181116103b557610415610083868887610334565b156103aa57600191039301926103e2565b67ffffffffffffffff81116102fc57601f01601f191660200190565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b82101561058c575b806d04ee2d6d415b85acef8100000000600a921015610571575b662386f26fc1000081101561055d575b6305f5e10081101561054c575b61271081101561053d575b606481101561052f575b1015610524575b600a602160018401936104c985610426565b946104d760405196876102da565b8086526104e6601f1991610426565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561051f57600a90916104f1565b505090565b6001909101906104b7565b6064600291049301926104b0565b612710600491049301926104a6565b6305f5e1006008910493019261049b565b662386f26fc100006010910493019261048e565b6d04ee2d6d415b85acef81000000006020910493019261047e565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104610464565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036105e157565b634ca8886760e01b5f5260045ffd5b357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f75704b363e47b899933f7e712423ef31995da77a16c4c133d2246f3551612a245f80a3600190565b356001600160a01b03811681036100c75790565b61066460c08201610644565b61067060e08301610644565b604051833580825293602090810135936001600160a01b039384169316917f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b359190a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fc77a88cf6d59852e2e863edef5571c5b57b0667f97ad8389efb84510394105f05f80a360019056fea26469706673582212200f343e09ad3cd2ccfe8bc64369700753f10154438b2741d7ce3f5cbdd908b1ec64736f6c634300081b0033","sourceMap":"482:1216:95:-:0;;;;;;;;;;;;;-1:-1:-1;;482:1216:95;;;;-1:-1:-1;;;;;482:1216:95;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;482:1216:95;;;;;;;685:1:9;759:14:6;;688:1:9;783:14:6;;-1:-1:-1;807:14:6;;708:26:9;704:76;;790:10;;482:1216:95;;;;;;;;759:14:6;482:1216:95;;;;;783:14:6;482:1216:95;;;;;807:14:6;482:1216:95;;;;;790:10:9;482:1216:95;;;;;;;;;;;;;;;;704:76:9;757:12;;;-1:-1:-1;757:12:9;;-1:-1:-1;757:12:9;482:1216:95;-1:-1:-1;482:1216:95;;;;;;-1:-1:-1;482:1216:95;;;;;-1:-1:-1;482:1216:95","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610027575b3615610018575f80fd5b631574f9f360e01b5f5260045ffd5b5f3560e01c806354fd4d501461010957806388e5b2d9146100ea57806391db0b7e146100cb578063ce46e046146100ad578063e49617e1146100925763e60c35050361000e57602061008861007b366102a5565b6100836105af565b610658565b6040519015158152f35b60206100886100a0366102a5565b6100a86105af565b6105f0565b346100c7575f3660031901126100c75760206040515f8152f35b5f80fd5b60206100886100d936610253565b926100e59291926105af565b6103d3565b60206100886100f836610253565b926101049291926105af565b610357565b346100c7575f3660031901126100c7576101427f0000000000000000000000000000000000000000000000000000000000000000610442565b604060206101f760016101747f0000000000000000000000000000000000000000000000000000000000000000610442565b818461019f7f0000000000000000000000000000000000000000000000000000000000000000610442565b818851978895818088019c8d815192839201905e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826102da565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b9181601f840112156100c75782359167ffffffffffffffff83116100c7576020808501948460051b0101116100c757565b60406003198201126100c75760043567ffffffffffffffff81116100c7578161027e91600401610222565b929092916024359067ffffffffffffffff82116100c7576102a191600401610222565b9091565b60206003198201126100c7576004359067ffffffffffffffff82116100c7576101409082900360031901126100c75760040190565b90601f8019910116810190811067ffffffffffffffff8211176102fc57604052565b634e487b7160e01b5f52604160045260245ffd5b91908110156103205760051b0190565b634e487b7160e01b5f52603260045260245ffd5b91908110156103205760051b8101359061013e19813603018212156100c7570190565b929091928183036103c4575f91345b84841061037857505050505050600190565b610383848388610310565b358181116103b5576103996100a8868887610334565b156103aa5760019103930192610366565b505050505050505f90565b63044044a560e21b5f5260045ffd5b63251f56a160e21b5f5260045ffd5b929091928183036103c4575f91345b8484106103f457505050505050600190565b6103ff848388610310565b358181116103b557610415610083868887610334565b156103aa57600191039301926103e2565b67ffffffffffffffff81116102fc57601f01601f191660200190565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b82101561058c575b806d04ee2d6d415b85acef8100000000600a921015610571575b662386f26fc1000081101561055d575b6305f5e10081101561054c575b61271081101561053d575b606481101561052f575b1015610524575b600a602160018401936104c985610426565b946104d760405196876102da565b8086526104e6601f1991610426565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561051f57600a90916104f1565b505090565b6001909101906104b7565b6064600291049301926104b0565b612710600491049301926104a6565b6305f5e1006008910493019261049b565b662386f26fc100006010910493019261048e565b6d04ee2d6d415b85acef81000000006020910493019261047e565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104610464565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036105e157565b634ca8886760e01b5f5260045ffd5b357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f75704b363e47b899933f7e712423ef31995da77a16c4c133d2246f3551612a245f80a3600190565b356001600160a01b03811681036100c75790565b61066460c08201610644565b61067060e08301610644565b604051833580825293602090810135936001600160a01b039384169316917f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b359190a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fc77a88cf6d59852e2e863edef5571c5b57b0667f97ad8389efb84510394105f05f80a360019056fea26469706673582212200f343e09ad3cd2ccfe8bc64369700753f10154438b2741d7ce3f5cbdd908b1ec64736f6c634300081b0033","sourceMap":"482:1216:95:-:0;;;;;;;;;-1:-1:-1;482:1216:95;;;;;;;;1183:12:9;;;1054:5;1183:12;482:1216:95;1054:5:9;1183:12;482:1216:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1354:39:9;482:1216:95;;;:::i;:::-;881:58:9;;:::i;:::-;1354:39;:::i;:::-;482:1216:95;;;;;;;;;;3045:39:9;482:1216:95;;;:::i;:::-;881:58:9;;:::i;:::-;3045:39;:::i;482:1216:95:-;;;;;;-1:-1:-1;;482:1216:95;;;;;;;;;;;;;;;;;1442:1461:9;482:1216:95;;;:::i;:::-;881:58:9;;;;;;:::i;:::-;1442:1461;:::i;482:1216:95:-;;3133:1460:9;482:1216:95;;;:::i;:::-;881:58:9;;;;;;:::i;:::-;3133:1460;:::i;482:1216:95:-;;;;;;-1:-1:-1;;482:1216:95;;;;1072:24:6;1089:6;1072:24;:::i;:::-;482:1216:95;1055:104:6;;482:1216:95;1103:24:6;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;482:1216:95;;;1055:104:6;;;;;;;482:1216:95;;;;;;;;;;;;;-1:-1:-1;;;482:1216:95;;;;;;;;;;;;;;;;;-1:-1:-1;;;482:1216:95;;;;;;;;;;;;;;;;;;;;;1055:104:6;;;;;;;;;;:::i;:::-;482:1216:95;;;;;1055:104:6;482:1216:95;;;;;;1055:104:6;482:1216:95;;;;;;;;;;;;;;;;-1:-1:-1;;482:1216:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;482:1216:95;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;-1:-1:-1;;482:1216:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;482:1216:95;;;;;;;:::o;:::-;;;1055:104:6;;482:1216:95;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;482:1216:95;;;;;-1:-1:-1;482:1216:95;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3133:1460:9:-;;;;;3340:23;;;3336:76;;3881:1;;3844:9;3884:10;;;;;;4575:11;;;;;;1489:1:0;3133:1460:9;:::o;3896:19::-;4037:9;;;;;:::i;:::-;482:1216:95;4064:22:9;;;4060:87;;4274:33;4284:15;;;;;:::i;4274:33::-;;4270:84;;1489:1:0;482:1216:95;;3896:19:9;482:1216:95;3869:13:9;;;4270:84;4327:12;;;;;;;3881:1;4327:12;:::o;4060:87::-;4113:19;;;3881:1;4113:19;;3881:1;4113:19;3336:76;3386:15;;;;;;;;1442:1461;;;;;1649:23;;;1645:76;;2190:1;;2153:9;2193:10;;;;;;2885:11;;;;;;1489:1:0;1442:1461:9;:::o;2205:19::-;2346:9;;;;;:::i;:::-;482:1216:95;2373:22:9;;;2369:87;;2584:33;2594:15;;;;;:::i;2584:33::-;;2580:84;;1489:1:0;482:1216:95;;2205:19:9;482:1216:95;2178:13:9;;;482:1216:95;;;;;;;;-1:-1:-1;;482:1216:95;;;;:::o;1308:634:57:-;1430:17;-1:-1:-1;29282:17:66;-1:-1:-1;;;29282:17:66;;;29278:103;;1308:634:57;29398:17:66;29407:8;29978:7;29398:17;;;29394:103;;1308:634:57;29523:8:66;29514:17;;;29510:103;;1308:634:57;29639:7:66;29630:16;;;29626:100;;1308:634:57;29752:7:66;29743:16;;;29739:100;;1308:634:57;29865:7:66;29856:16;;;29852:100;;1308:634:57;29969:16:66;;29965:66;;1308:634:57;29978:7:66;1545:94:57;1450:1;482:1216:95;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;1055:104:6;;482:1216:95;;:::i;:::-;;;;;;;1545:94:57;;;1652:247;-1:-1:-1;;482:1216:95;;-1:-1:-1;;;1706:111:57;;;;482:1216:95;1706:111:57;482:1216:95;1867:10:57;;1863:21;;29978:7:66;1652:247:57;;;;1863:21;1879:5;;1308:634;:::o;29965:66:66:-;30015:1;482:1216:95;;;;29965:66:66;;29852:100;29865:7;29936:1;482:1216:95;;;;29852:100:66;;;29739;29752:7;29823:1;482:1216:95;;;;29739:100:66;;;29626;29639:7;29710:1;482:1216:95;;;;29626:100:66;;;29510:103;29523:8;29596:2;482:1216:95;;;;29510:103:66;;;29394;29407:8;29480:2;482:1216:95;;;;29394:103:66;;;29278;-1:-1:-1;29364:2:66;;-1:-1:-1;;;;482:1216:95;;29278:103:66;;6040:128:9;6109:4;-1:-1:-1;;;;;482:1216:95;6087:10:9;:27;6083:79;;6040:128::o;6083:79::-;6137:14;;;;;;;;1432:264:95;482:1216;1645:4;-1:-1:-1;;;;;482:1216:95;1618:50;-1:-1:-1;;1618:50:95;482:1216;1432:264;:::o;482:1216::-;;-1:-1:-1;;;;;482:1216:95;;;;;;;:::o;871:451::-;1079:21;;;;;:::i;:::-;1102:20;;;;;:::i;:::-;482:1216;;;;;;;;1141:18;;;;482:1216;;-1:-1:-1;;;;;482:1216:95;;;;;;1065:95;;1141:18;1065:95;1270:4;-1:-1:-1;;;;;482:1216:95;1242:51;-1:-1:-1;;1242:51:95;482:1216;871:451;:::o","linkReferences":{},"immutableReferences":{"2532":[{"start":286,"length":32}],"2534":[{"start":336,"length":32}],"2536":[{"start":379,"length":32}],"3008":[{"start":1457,"length":32},{"start":1523,"length":32},{"start":1716,"length":32}]}},"methodIdentifiers":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e60c3505","isPayable()":"ce46e046","multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"91db0b7e","multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"88e5b2d9","revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e49617e1","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEAS\",\"name\":\"eas\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEAS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPayable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"eas\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"AttestationAttested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"eas\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"AttestationRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schemaUID\",\"type\":\"bytes32\"}],\"name\":\"Attested\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPayable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiRevoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"AttestationAttested(address,bytes32)\":{\"params\":{\"eas\":\"The EAS contract instance.\",\"uid\":\"The UID of the attested attestation.\"}},\"AttestationRevoked(address,bytes32)\":{\"params\":{\"eas\":\"The EAS contract instance.\",\"uid\":\"The UID of the revoked attestation.\"}},\"Attested(address,address,bytes32,bytes32)\":{\"params\":{\"attester\":\"The attesting account.\",\"recipient\":\"The recipient of the attestation.\",\"schemaUID\":\"The UID of the schema.\",\"uid\":\"The UID of the new attestation.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The new attestation.\"},\"returns\":{\"_0\":\"Whether the attestation is valid.\"}},\"constructor\":{\"params\":{\"eas\":\"The EAS contract instance.\"}},\"isPayable()\":{\"returns\":{\"_0\":\"Whether the resolver supports ETH transfers.\"}},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The new attestations.\",\"values\":\"Explicit ETH amounts which were sent with each attestation.\"},\"returns\":{\"_0\":\"Whether all the attestations are valid.\"}},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The existing attestations to be revoked.\",\"values\":\"Explicit ETH amounts which were sent with each revocation.\"},\"returns\":{\"_0\":\"Whether the attestations can be revoked.\"}},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The existing attestation to be revoked.\"},\"returns\":{\"_0\":\"Whether the attestation can be revoked.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"EASIndexerResolver\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationAttested(address,bytes32)\":{\"notice\":\"Emitted when an attestation is attested.\"},\"AttestationRevoked(address,bytes32)\":{\"notice\":\"Emitted when an attestation is revoked.\"},\"Attested(address,address,bytes32,bytes32)\":{\"notice\":\"Emitted when an attestation has been made.\"}},\"kind\":\"user\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation and verifies whether it's valid.\"},\"constructor\":{\"notice\":\"Creates a new EASIndexerResolver instance.\"},\"isPayable()\":{\"notice\":\"Checks if the resolver can be sent ETH.\"},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes multiple attestations and verifies whether they are valid.\"},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes revocation of multiple attestation and verifies they can be revoked.\"},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation revocation and verifies if it can be revoked.\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"A schema resolver that automatically indexes attestations upon creation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/resolvers/EASIndexerResolver.sol\":\"EASIndexerResolver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol\":{\"keccak256\":\"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880\",\"dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/SchemaResolver.sol\":{\"keccak256\":\"0x385d8c0edbdc96af15cf8f22333183162561cbf7d3fb0df95287741e59899983\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff7e8a17f69dcb7ddc937446e868d34baea61bbe249a8f5d8be486ab93001828\",\"dweb:/ipfs/QmUz9i7ViNK9kUWHeJRtE44HmpbxBDGJBjyec2aPD6Nn3Q\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/contracts/eas/resolvers/EASIndexerResolver.sol\":{\"keccak256\":\"0xec1e8bcfd93d6b0db11d489c4ed66e25bbba0ea9e0acd3849b975b54fe3c71d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0c60aa6c9ea233331c23818f1625893441a49c3725b4060054bed2e7d5c1679\",\"dweb:/ipfs/QmZwkkB83ruCeLAPHmxhXHAXmsLMSbnYLW7nKu9J6oGKGc\"]},\"src/interfaces/IIndexedEvents.sol\":{\"keccak256\":\"0x453559fe8cd32113442cb90f8ce9038bdc414a44dfe3db35c606d7452f3347e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7c97090ad9477119cb5c8f5acd133e75824a1f26f36b84ad75338c08527911\",\"dweb:/ipfs/QmWtX3Ni9jDMf6JnbpcoBxWec9KNfu58qmK6eeBRVJYJZT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IEAS","name":"eas","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessDenied"},{"inputs":[],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"InvalidEAS"},{"inputs":[],"type":"error","name":"InvalidLength"},{"inputs":[],"type":"error","name":"NotPayable"},{"inputs":[{"internalType":"address","name":"eas","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true}],"type":"event","name":"AttestationAttested","anonymous":false},{"inputs":[{"internalType":"address","name":"eas","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true}],"type":"event","name":"AttestationRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schemaUID","type":"bytes32","indexed":true}],"type":"event","name":"Attested","anonymous":false},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPayable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiRevoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"revoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"constructor":{"params":{"eas":"The EAS contract instance."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"constructor":{"notice":"Creates a new EASIndexerResolver instance."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/resolvers/EASIndexerResolver.sol":"EASIndexerResolver"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol":{"keccak256":"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12","urls":["bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880","dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/SchemaResolver.sol":{"keccak256":"0x385d8c0edbdc96af15cf8f22333183162561cbf7d3fb0df95287741e59899983","urls":["bzz-raw://ff7e8a17f69dcb7ddc937446e868d34baea61bbe249a8f5d8be486ab93001828","dweb:/ipfs/QmUz9i7ViNK9kUWHeJRtE44HmpbxBDGJBjyec2aPD6Nn3Q"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/contracts/eas/resolvers/EASIndexerResolver.sol":{"keccak256":"0xec1e8bcfd93d6b0db11d489c4ed66e25bbba0ea9e0acd3849b975b54fe3c71d1","urls":["bzz-raw://f0c60aa6c9ea233331c23818f1625893441a49c3725b4060054bed2e7d5c1679","dweb:/ipfs/QmZwkkB83ruCeLAPHmxhXHAXmsLMSbnYLW7nKu9J6oGKGc"],"license":"MIT"},"src/interfaces/IIndexedEvents.sol":{"keccak256":"0x453559fe8cd32113442cb90f8ce9038bdc414a44dfe3db35c606d7452f3347e5","urls":["bzz-raw://ea7c97090ad9477119cb5c8f5acd133e75824a1f26f36b84ad75338c08527911","dweb:/ipfs/QmWtX3Ni9jDMf6JnbpcoBxWec9KNfu58qmK6eeBRVJYJZT"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"eas","type":"address","internalType":"contract IEAS"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"attest","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isPayable","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"multiAttest","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"multiRevoke","inputs":[{"name":"attestations","type":"tuple[]","internalType":"struct Attestation[]","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"attestation","type":"tuple","internalType":"struct Attestation","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"time","type":"uint64","internalType":"uint64"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocationTime","type":"uint64","internalType":"uint64"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"attester","type":"address","internalType":"address"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"AttestationAttested","inputs":[{"name":"eas","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AttestationRevoked","inputs":[{"name":"eas","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Attested","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"attester","type":"address","indexed":true,"internalType":"address"},{"name":"uid","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"schemaUID","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"AccessDenied","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[]},{"type":"error","name":"InvalidEAS","inputs":[]},{"type":"error","name":"InvalidLength","inputs":[]},{"type":"error","name":"NotPayable","inputs":[]}],"bytecode":{"object":"0x610100346100b757601f61080b38819003918201601f19168301916001600160401b038311848410176100bb578084926020946040528339810103126100b757516001600160a01b0381168082036100b7576001608052600360a0525f60c052156100a85760e05260405161073b90816100d082396080518161011e015260a05181610150015260c0518161017b015260e0518181816105b1015281816105f301526106b40152f35b6341bc07ff60e11b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610027575b3615610018575f80fd5b631574f9f360e01b5f5260045ffd5b5f3560e01c806354fd4d501461010957806388e5b2d9146100ea57806391db0b7e146100cb578063ce46e046146100ad578063e49617e1146100925763e60c35050361000e57602061008861007b366102a5565b6100836105af565b610658565b6040519015158152f35b60206100886100a0366102a5565b6100a86105af565b6105f0565b346100c7575f3660031901126100c75760206040515f8152f35b5f80fd5b60206100886100d936610253565b926100e59291926105af565b6103d3565b60206100886100f836610253565b926101049291926105af565b610357565b346100c7575f3660031901126100c7576101427f0000000000000000000000000000000000000000000000000000000000000000610442565b604060206101f760016101747f0000000000000000000000000000000000000000000000000000000000000000610442565b818461019f7f0000000000000000000000000000000000000000000000000000000000000000610442565b818851978895818088019c8d815192839201905e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826102da565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b9181601f840112156100c75782359167ffffffffffffffff83116100c7576020808501948460051b0101116100c757565b60406003198201126100c75760043567ffffffffffffffff81116100c7578161027e91600401610222565b929092916024359067ffffffffffffffff82116100c7576102a191600401610222565b9091565b60206003198201126100c7576004359067ffffffffffffffff82116100c7576101409082900360031901126100c75760040190565b90601f8019910116810190811067ffffffffffffffff8211176102fc57604052565b634e487b7160e01b5f52604160045260245ffd5b91908110156103205760051b0190565b634e487b7160e01b5f52603260045260245ffd5b91908110156103205760051b8101359061013e19813603018212156100c7570190565b929091928183036103c4575f91345b84841061037857505050505050600190565b610383848388610310565b358181116103b5576103996100a8868887610334565b156103aa5760019103930192610366565b505050505050505f90565b63044044a560e21b5f5260045ffd5b63251f56a160e21b5f5260045ffd5b929091928183036103c4575f91345b8484106103f457505050505050600190565b6103ff848388610310565b358181116103b557610415610083868887610334565b156103aa57600191039301926103e2565b67ffffffffffffffff81116102fc57601f01601f191660200190565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b82101561058c575b806d04ee2d6d415b85acef8100000000600a921015610571575b662386f26fc1000081101561055d575b6305f5e10081101561054c575b61271081101561053d575b606481101561052f575b1015610524575b600a602160018401936104c985610426565b946104d760405196876102da565b8086526104e6601f1991610426565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561051f57600a90916104f1565b505090565b6001909101906104b7565b6064600291049301926104b0565b612710600491049301926104a6565b6305f5e1006008910493019261049b565b662386f26fc100006010910493019261048e565b6d04ee2d6d415b85acef81000000006020910493019261047e565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104610464565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036105e157565b634ca8886760e01b5f5260045ffd5b357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f75704b363e47b899933f7e712423ef31995da77a16c4c133d2246f3551612a245f80a3600190565b356001600160a01b03811681036100c75790565b61066460c08201610644565b61067060e08301610644565b604051833580825293602090810135936001600160a01b039384169316917f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b359190a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fc77a88cf6d59852e2e863edef5571c5b57b0667f97ad8389efb84510394105f05f80a360019056fea26469706673582212200f343e09ad3cd2ccfe8bc64369700753f10154438b2741d7ce3f5cbdd908b1ec64736f6c634300081b0033","sourceMap":"482:1216:90:-:0;;;;;;;;;;;;;-1:-1:-1;;482:1216:90;;;;-1:-1:-1;;;;;482:1216:90;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;482:1216:90;;;;;;;685:1:6;759:14:4;;688:1:6;783:14:4;;-1:-1:-1;807:14:4;;708:26:6;704:76;;790:10;;482:1216:90;;;;;;;;759:14:4;482:1216:90;;;;;783:14:4;482:1216:90;;;;;807:14:4;482:1216:90;;;;;790:10:6;482:1216:90;;;;;;;;;;;;;;;;704:76:6;757:12;;;-1:-1:-1;757:12:6;;-1:-1:-1;757:12:6;482:1216:90;-1:-1:-1;482:1216:90;;;;;;-1:-1:-1;482:1216:90;;;;;-1:-1:-1;482:1216:90","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610027575b3615610018575f80fd5b631574f9f360e01b5f5260045ffd5b5f3560e01c806354fd4d501461010957806388e5b2d9146100ea57806391db0b7e146100cb578063ce46e046146100ad578063e49617e1146100925763e60c35050361000e57602061008861007b366102a5565b6100836105af565b610658565b6040519015158152f35b60206100886100a0366102a5565b6100a86105af565b6105f0565b346100c7575f3660031901126100c75760206040515f8152f35b5f80fd5b60206100886100d936610253565b926100e59291926105af565b6103d3565b60206100886100f836610253565b926101049291926105af565b610357565b346100c7575f3660031901126100c7576101427f0000000000000000000000000000000000000000000000000000000000000000610442565b604060206101f760016101747f0000000000000000000000000000000000000000000000000000000000000000610442565b818461019f7f0000000000000000000000000000000000000000000000000000000000000000610442565b818851978895818088019c8d815192839201905e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826102da565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b9181601f840112156100c75782359167ffffffffffffffff83116100c7576020808501948460051b0101116100c757565b60406003198201126100c75760043567ffffffffffffffff81116100c7578161027e91600401610222565b929092916024359067ffffffffffffffff82116100c7576102a191600401610222565b9091565b60206003198201126100c7576004359067ffffffffffffffff82116100c7576101409082900360031901126100c75760040190565b90601f8019910116810190811067ffffffffffffffff8211176102fc57604052565b634e487b7160e01b5f52604160045260245ffd5b91908110156103205760051b0190565b634e487b7160e01b5f52603260045260245ffd5b91908110156103205760051b8101359061013e19813603018212156100c7570190565b929091928183036103c4575f91345b84841061037857505050505050600190565b610383848388610310565b358181116103b5576103996100a8868887610334565b156103aa5760019103930192610366565b505050505050505f90565b63044044a560e21b5f5260045ffd5b63251f56a160e21b5f5260045ffd5b929091928183036103c4575f91345b8484106103f457505050505050600190565b6103ff848388610310565b358181116103b557610415610083868887610334565b156103aa57600191039301926103e2565b67ffffffffffffffff81116102fc57601f01601f191660200190565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b82101561058c575b806d04ee2d6d415b85acef8100000000600a921015610571575b662386f26fc1000081101561055d575b6305f5e10081101561054c575b61271081101561053d575b606481101561052f575b1015610524575b600a602160018401936104c985610426565b946104d760405196876102da565b8086526104e6601f1991610426565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561051f57600a90916104f1565b505090565b6001909101906104b7565b6064600291049301926104b0565b612710600491049301926104a6565b6305f5e1006008910493019261049b565b662386f26fc100006010910493019261048e565b6d04ee2d6d415b85acef81000000006020910493019261047e565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104610464565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036105e157565b634ca8886760e01b5f5260045ffd5b357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f75704b363e47b899933f7e712423ef31995da77a16c4c133d2246f3551612a245f80a3600190565b356001600160a01b03811681036100c75790565b61066460c08201610644565b61067060e08301610644565b604051833580825293602090810135936001600160a01b039384169316917f8bf46bf4cfd674fa735a3d63ec1c9ad4153f033c290341f3a588b75685141b359190a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167fc77a88cf6d59852e2e863edef5571c5b57b0667f97ad8389efb84510394105f05f80a360019056fea26469706673582212200f343e09ad3cd2ccfe8bc64369700753f10154438b2741d7ce3f5cbdd908b1ec64736f6c634300081b0033","sourceMap":"482:1216:90:-:0;;;;;;;;;-1:-1:-1;482:1216:90;;;;;;;;1183:12:6;;;1054:5;1183:12;482:1216:90;1054:5:6;1183:12;482:1216:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1354:39:6;482:1216:90;;;:::i;:::-;881:58:6;;:::i;:::-;1354:39;:::i;:::-;482:1216:90;;;;;;;;;;3045:39:6;482:1216:90;;;:::i;:::-;881:58:6;;:::i;:::-;3045:39;:::i;482:1216:90:-;;;;;;-1:-1:-1;;482:1216:90;;;;;;;;;;;;;;;;;1442:1461:6;482:1216:90;;;:::i;:::-;881:58:6;;;;;;:::i;:::-;1442:1461;:::i;482:1216:90:-;;3133:1460:6;482:1216:90;;;:::i;:::-;881:58:6;;;;;;:::i;:::-;3133:1460;:::i;482:1216:90:-;;;;;;-1:-1:-1;;482:1216:90;;;;1072:24:4;1089:6;1072:24;:::i;:::-;482:1216:90;1055:104:4;;482:1216:90;1103:24:4;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;482:1216:90;;;1055:104:4;;;;;;;482:1216:90;;;;;;;;;;;;;-1:-1:-1;;;482:1216:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;482:1216:90;;;;;;;;;;;;;;;;;;;;;1055:104:4;;;;;;;;;;:::i;:::-;482:1216:90;;;;;1055:104:4;482:1216:90;;;;;;1055:104:4;482:1216:90;;;;;;;;;;;;;;;;-1:-1:-1;;482:1216:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;482:1216:90;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;-1:-1:-1;;482:1216:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;482:1216:90;;;;;;;:::o;:::-;;;1055:104:4;;482:1216:90;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;482:1216:90;;;;;-1:-1:-1;482:1216:90;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3133:1460:6:-;;;;;3340:23;;;3336:76;;3881:1;;3844:9;3884:10;;;;;;4575:11;;;;;;1489:1:0;3133:1460:6;:::o;3896:19::-;4037:9;;;;;:::i;:::-;482:1216:90;4064:22:6;;;4060:87;;4274:33;4284:15;;;;;:::i;4274:33::-;;4270:84;;1489:1:0;482:1216:90;;3896:19:6;482:1216:90;3869:13:6;;;4270:84;4327:12;;;;;;;3881:1;4327:12;:::o;4060:87::-;4113:19;;;3881:1;4113:19;;3881:1;4113:19;3336:76;3386:15;;;;;;;;1442:1461;;;;;1649:23;;;1645:76;;2190:1;;2153:9;2193:10;;;;;;2885:11;;;;;;1489:1:0;1442:1461:6;:::o;2205:19::-;2346:9;;;;;:::i;:::-;482:1216:90;2373:22:6;;;2369:87;;2584:33;2594:15;;;;;:::i;2584:33::-;;2580:84;;1489:1:0;482:1216:90;;2205:19:6;482:1216:90;2178:13:6;;;482:1216:90;;;;;;;;-1:-1:-1;;482:1216:90;;;;:::o;1308:634:52:-;1430:17;-1:-1:-1;29282:17:61;-1:-1:-1;;;29282:17:61;;;29278:103;;1308:634:52;29398:17:61;29407:8;29978:7;29398:17;;;29394:103;;1308:634:52;29523:8:61;29514:17;;;29510:103;;1308:634:52;29639:7:61;29630:16;;;29626:100;;1308:634:52;29752:7:61;29743:16;;;29739:100;;1308:634:52;29865:7:61;29856:16;;;29852:100;;1308:634:52;29969:16:61;;29965:66;;1308:634:52;29978:7:61;1545:94:52;1450:1;482:1216:90;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;1055:104:4;;482:1216:90;;:::i;:::-;;;;;;;1545:94:52;;;1652:247;-1:-1:-1;;482:1216:90;;-1:-1:-1;;;1706:111:52;;;;482:1216:90;1706:111:52;482:1216:90;1867:10:52;;1863:21;;29978:7:61;1652:247:52;;;;1863:21;1879:5;;1308:634;:::o;29965:66:61:-;30015:1;482:1216:90;;;;29965:66:61;;29852:100;29865:7;29936:1;482:1216:90;;;;29852:100:61;;;29739;29752:7;29823:1;482:1216:90;;;;29739:100:61;;;29626;29639:7;29710:1;482:1216:90;;;;29626:100:61;;;29510:103;29523:8;29596:2;482:1216:90;;;;29510:103:61;;;29394;29407:8;29480:2;482:1216:90;;;;29394:103:61;;;29278;-1:-1:-1;29364:2:61;;-1:-1:-1;;;;482:1216:90;;29278:103:61;;6040:128:6;6109:4;-1:-1:-1;;;;;482:1216:90;6087:10:6;:27;6083:79;;6040:128::o;6083:79::-;6137:14;;;;;;;;1432:264:90;482:1216;1645:4;-1:-1:-1;;;;;482:1216:90;1618:50;-1:-1:-1;;1618:50:90;482:1216;1432:264;:::o;482:1216::-;;-1:-1:-1;;;;;482:1216:90;;;;;;;:::o;871:451::-;1079:21;;;;;:::i;:::-;1102:20;;;;;:::i;:::-;482:1216;;;;;;;;1141:18;;;;482:1216;;-1:-1:-1;;;;;482:1216:90;;;;;;1065:95;;1141:18;1065:95;1270:4;-1:-1:-1;;;;;482:1216:90;1242:51;-1:-1:-1;;1242:51:90;482:1216;871:451;:::o","linkReferences":{},"immutableReferences":{"446":[{"start":286,"length":32}],"448":[{"start":336,"length":32}],"450":[{"start":379,"length":32}],"588":[{"start":1457,"length":32},{"start":1523,"length":32},{"start":1716,"length":32}]}},"methodIdentifiers":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e60c3505","isPayable()":"ce46e046","multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"91db0b7e","multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":"88e5b2d9","revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":"e49617e1","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEAS\",\"name\":\"eas\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEAS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPayable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"eas\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"AttestationAttested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"eas\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"AttestationRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"schemaUID\",\"type\":\"bytes32\"}],\"name\":\"Attested\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"attest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPayable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiAttest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation[]\",\"name\":\"attestations\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"multiRevoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"time\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"revocationTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Attestation\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"revoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"AttestationAttested(address,bytes32)\":{\"params\":{\"eas\":\"The EAS contract instance.\",\"uid\":\"The UID of the attested attestation.\"}},\"AttestationRevoked(address,bytes32)\":{\"params\":{\"eas\":\"The EAS contract instance.\",\"uid\":\"The UID of the revoked attestation.\"}},\"Attested(address,address,bytes32,bytes32)\":{\"params\":{\"attester\":\"The attesting account.\",\"recipient\":\"The recipient of the attestation.\",\"schemaUID\":\"The UID of the schema.\",\"uid\":\"The UID of the new attestation.\"}}},\"kind\":\"dev\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The new attestation.\"},\"returns\":{\"_0\":\"Whether the attestation is valid.\"}},\"constructor\":{\"params\":{\"eas\":\"The EAS contract instance.\"}},\"isPayable()\":{\"returns\":{\"_0\":\"Whether the resolver supports ETH transfers.\"}},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The new attestations.\",\"values\":\"Explicit ETH amounts which were sent with each attestation.\"},\"returns\":{\"_0\":\"Whether all the attestations are valid.\"}},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"params\":{\"attestations\":\"The existing attestations to be revoked.\",\"values\":\"Explicit ETH amounts which were sent with each revocation.\"},\"returns\":{\"_0\":\"Whether the attestations can be revoked.\"}},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"params\":{\"attestation\":\"The existing attestation to be revoked.\"},\"returns\":{\"_0\":\"Whether the attestation can be revoked.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"EASIndexerResolver\",\"version\":1},\"userdoc\":{\"events\":{\"AttestationAttested(address,bytes32)\":{\"notice\":\"Emitted when an attestation is attested.\"},\"AttestationRevoked(address,bytes32)\":{\"notice\":\"Emitted when an attestation is revoked.\"},\"Attested(address,address,bytes32,bytes32)\":{\"notice\":\"Emitted when an attestation has been made.\"}},\"kind\":\"user\",\"methods\":{\"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation and verifies whether it's valid.\"},\"constructor\":{\"notice\":\"Creates a new EASIndexerResolver instance.\"},\"isPayable()\":{\"notice\":\"Checks if the resolver can be sent ETH.\"},\"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes multiple attestations and verifies whether they are valid.\"},\"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])\":{\"notice\":\"Processes revocation of multiple attestation and verifies they can be revoked.\"},\"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))\":{\"notice\":\"Processes an attestation revocation and verifies if it can be revoked.\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"A schema resolver that automatically indexes attestations upon creation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/resolvers/EASIndexerResolver.sol\":\"EASIndexerResolver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol\":{\"keccak256\":\"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880\",\"dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/SchemaResolver.sol\":{\"keccak256\":\"0x385d8c0edbdc96af15cf8f22333183162561cbf7d3fb0df95287741e59899983\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff7e8a17f69dcb7ddc937446e868d34baea61bbe249a8f5d8be486ab93001828\",\"dweb:/ipfs/QmUz9i7ViNK9kUWHeJRtE44HmpbxBDGJBjyec2aPD6Nn3Q\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/contracts/eas/resolvers/EASIndexerResolver.sol\":{\"keccak256\":\"0xec1e8bcfd93d6b0db11d489c4ed66e25bbba0ea9e0acd3849b975b54fe3c71d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0c60aa6c9ea233331c23818f1625893441a49c3725b4060054bed2e7d5c1679\",\"dweb:/ipfs/QmZwkkB83ruCeLAPHmxhXHAXmsLMSbnYLW7nKu9J6oGKGc\"]},\"src/interfaces/IIndexedEvents.sol\":{\"keccak256\":\"0x453559fe8cd32113442cb90f8ce9038bdc414a44dfe3db35c606d7452f3347e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea7c97090ad9477119cb5c8f5acd133e75824a1f26f36b84ad75338c08527911\",\"dweb:/ipfs/QmWtX3Ni9jDMf6JnbpcoBxWec9KNfu58qmK6eeBRVJYJZT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IEAS","name":"eas","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessDenied"},{"inputs":[],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"InvalidEAS"},{"inputs":[],"type":"error","name":"InvalidLength"},{"inputs":[],"type":"error","name":"NotPayable"},{"inputs":[{"internalType":"address","name":"eas","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true}],"type":"event","name":"AttestationAttested","anonymous":false},{"inputs":[{"internalType":"address","name":"eas","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true}],"type":"event","name":"AttestationRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"attester","type":"address","indexed":true},{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"schemaUID","type":"bytes32","indexed":true}],"type":"event","name":"Attested","anonymous":false},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"attest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"isPayable","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiAttest","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation[]","name":"attestations","type":"tuple[]","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiRevoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Attestation","name":"attestation","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"uint64","name":"time","type":"uint64"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"uint64","name":"revocationTime","type":"uint64"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"attester","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"revoke","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The new attestation."},"returns":{"_0":"Whether the attestation is valid."}},"constructor":{"params":{"eas":"The EAS contract instance."}},"isPayable()":{"returns":{"_0":"Whether the resolver supports ETH transfers."}},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The new attestations.","values":"Explicit ETH amounts which were sent with each attestation."},"returns":{"_0":"Whether all the attestations are valid."}},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"params":{"attestations":"The existing attestations to be revoked.","values":"Explicit ETH amounts which were sent with each revocation."},"returns":{"_0":"Whether the attestations can be revoked."}},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"params":{"attestation":"The existing attestation to be revoked."},"returns":{"_0":"Whether the attestation can be revoked."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"attest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation and verifies whether it's valid."},"constructor":{"notice":"Creates a new EASIndexerResolver instance."},"isPayable()":{"notice":"Checks if the resolver can be sent ETH."},"multiAttest((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes multiple attestations and verifies whether they are valid."},"multiRevoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes)[],uint256[])":{"notice":"Processes revocation of multiple attestation and verifies they can be revoked."},"revoke((bytes32,bytes32,uint64,uint64,uint64,bytes32,address,address,bool,bytes))":{"notice":"Processes an attestation revocation and verifies if it can be revoked."},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/resolvers/EASIndexerResolver.sol":"EASIndexerResolver"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol":{"keccak256":"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12","urls":["bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880","dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/SchemaResolver.sol":{"keccak256":"0x385d8c0edbdc96af15cf8f22333183162561cbf7d3fb0df95287741e59899983","urls":["bzz-raw://ff7e8a17f69dcb7ddc937446e868d34baea61bbe249a8f5d8be486ab93001828","dweb:/ipfs/QmUz9i7ViNK9kUWHeJRtE44HmpbxBDGJBjyec2aPD6Nn3Q"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/contracts/eas/resolvers/EASIndexerResolver.sol":{"keccak256":"0xec1e8bcfd93d6b0db11d489c4ed66e25bbba0ea9e0acd3849b975b54fe3c71d1","urls":["bzz-raw://f0c60aa6c9ea233331c23818f1625893441a49c3725b4060054bed2e7d5c1679","dweb:/ipfs/QmZwkkB83ruCeLAPHmxhXHAXmsLMSbnYLW7nKu9J6oGKGc"],"license":"MIT"},"src/interfaces/IIndexedEvents.sol":{"keccak256":"0x453559fe8cd32113442cb90f8ce9038bdc414a44dfe3db35c606d7452f3347e5","urls":["bzz-raw://ea7c97090ad9477119cb5c8f5acd133e75824a1f26f36b84ad75338c08527911","dweb:/ipfs/QmWtX3Ni9jDMf6JnbpcoBxWec9KNfu58qmK6eeBRVJYJZT"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file diff --git a/frontend/abis/IWavsServiceManager.json b/frontend/abis/IWavsServiceManager.json index 8e23453d..6186dec5 100644 --- a/frontend/abis/IWavsServiceManager.json +++ b/frontend/abis/IWavsServiceManager.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getAllocationManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDelegationManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getLatestOperatorForSigningKey","inputs":[{"name":"signingKeyAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOperatorWeight","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getServiceURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getStakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setServiceURI","inputs":[{"name":"_serviceURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validate","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"QuorumThresholdUpdated","inputs":[{"name":"numerator","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"denominator","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ServiceURIUpdated","inputs":[{"name":"serviceURI","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"InsufficientQuorum","inputs":[{"name":"signerWeight","type":"uint256","internalType":"uint256"},{"name":"thresholdWeight","type":"uint256","internalType":"uint256"},{"name":"totalWeight","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientQuorumZero","inputs":[]},{"type":"error","name":"InvalidQuorumParameters","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSignatureBlock","inputs":[]},{"type":"error","name":"InvalidSignatureLength","inputs":[]},{"type":"error","name":"InvalidSignatureOrder","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAllocationManager()":"a28efd6b","getDelegationManager()":"b24e5a3a","getLatestOperatorForSigningKey(address)":"ac7cbfd9","getOperatorWeight(address)":"98ec1ac9","getServiceURI()":"cc922c6a","getStakeRegistry()":"bef4c839","setServiceURI(string)":"5f11301b","validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"cd71589e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"signerWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thresholdWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"}],\"name\":\"InsufficientQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientQuorumZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidQuorumParameters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureBlock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureOrder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"QuorumThresholdUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"serviceURI\",\"type\":\"string\"}],\"name\":\"ServiceURIUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getAllocationManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signingKeyAddress\",\"type\":\"address\"}],\"name\":\"getLatestOperatorForSigningKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakeRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_serviceURI\",\"type\":\"string\"}],\"name\":\"setServiceURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"validate\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Lay3r Labs\",\"details\":\"This interface defines the functions and events for the Wavs service manager\",\"errors\":{\"InsufficientQuorum(uint256,uint256,uint256)\":[{\"params\":{\"signerWeight\":\"The weight of the signer\",\"thresholdWeight\":\"The threshold weight\",\"totalWeight\":\"The total weight\"}}]},\"events\":{\"QuorumThresholdUpdated(uint256,uint256)\":{\"params\":{\"denominator\":\"The denominator of the quorum threshold\",\"numerator\":\"The numerator of the quorum threshold\"}},\"ServiceURIUpdated(string)\":{\"params\":{\"serviceURI\":\"The service URI\"}}},\"kind\":\"dev\",\"methods\":{\"getAllocationManager()\":{\"returns\":{\"_0\":\"The allocation manager address.\"}},\"getDelegationManager()\":{\"returns\":{\"_0\":\"The delegation manager address.\"}},\"getLatestOperatorForSigningKey(address)\":{\"params\":{\"signingKeyAddress\":\"The address of the signing key.\"},\"returns\":{\"_0\":\"The latest operator address associated with the signing key, or address(0) if none.\"}},\"getOperatorWeight(address)\":{\"params\":{\"operator\":\"The address of the operator\"},\"returns\":{\"_0\":\"The current weight of the operator\"}},\"getServiceURI()\":{\"returns\":{\"_0\":\"The service URI.\"}},\"getStakeRegistry()\":{\"returns\":{\"_0\":\"The stake registry address.\"}},\"setServiceURI(string)\":{\"params\":{\"_serviceURI\":\"The service URI to update.\"}},\"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the data.\",\"signatureData\":\"The signature data.\"}}},\"title\":\"IWavsServiceManager\",\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientQuorum(uint256,uint256,uint256)\":[{\"notice\":\"The error for the insufficient quorum\"}],\"InsufficientQuorumZero()\":[{\"notice\":\"The error for the insufficient quorum zero.\"}],\"InvalidQuorumParameters()\":[{\"notice\":\"The error for the invalid quorum parameters.\"}],\"InvalidSignature()\":[{\"notice\":\"The error for the invalid signature.\"}],\"InvalidSignatureBlock()\":[{\"notice\":\"The error for the invalid signature block.\"}],\"InvalidSignatureLength()\":[{\"notice\":\"The error for the invalid signature length.\"}],\"InvalidSignatureOrder()\":[{\"notice\":\"The error for the invalid signature order.\"}]},\"events\":{\"QuorumThresholdUpdated(uint256,uint256)\":{\"notice\":\"Event emitted when the quorum threshold is updated\"},\"ServiceURIUpdated(string)\":{\"notice\":\"Event emitted when the service URI is updated\"}},\"kind\":\"user\",\"methods\":{\"getAllocationManager()\":{\"notice\":\"Returns the allocation manager address.\"},\"getDelegationManager()\":{\"notice\":\"Returns the delegation manager address.\"},\"getLatestOperatorForSigningKey(address)\":{\"notice\":\"Returns the latest operator address associated with a signing key.\"},\"getOperatorWeight(address)\":{\"notice\":\"Gets the operator's current weight\"},\"getServiceURI()\":{\"notice\":\"Returns the service URI\"},\"getStakeRegistry()\":{\"notice\":\"Returns the stake registry address.\"},\"setServiceURI(string)\":{\"notice\":\"Sets the service URI\"},\"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Validates a signed envelope\"}},\"notice\":\"Interface for the Wavs service manager\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":\"IWavsServiceManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"signerWeight","type":"uint256"},{"internalType":"uint256","name":"thresholdWeight","type":"uint256"},{"internalType":"uint256","name":"totalWeight","type":"uint256"}],"type":"error","name":"InsufficientQuorum"},{"inputs":[],"type":"error","name":"InsufficientQuorumZero"},{"inputs":[],"type":"error","name":"InvalidQuorumParameters"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSignatureBlock"},{"inputs":[],"type":"error","name":"InvalidSignatureLength"},{"inputs":[],"type":"error","name":"InvalidSignatureOrder"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256","indexed":true},{"internalType":"uint256","name":"denominator","type":"uint256","indexed":true}],"type":"event","name":"QuorumThresholdUpdated","anonymous":false},{"inputs":[{"internalType":"string","name":"serviceURI","type":"string","indexed":false}],"type":"event","name":"ServiceURIUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllocationManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDelegationManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"signingKeyAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getLatestOperatorForSigningKey","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStakeRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_serviceURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setServiceURI"},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"view","type":"function","name":"validate"}],"devdoc":{"kind":"dev","methods":{"getAllocationManager()":{"returns":{"_0":"The allocation manager address."}},"getDelegationManager()":{"returns":{"_0":"The delegation manager address."}},"getLatestOperatorForSigningKey(address)":{"params":{"signingKeyAddress":"The address of the signing key."},"returns":{"_0":"The latest operator address associated with the signing key, or address(0) if none."}},"getOperatorWeight(address)":{"params":{"operator":"The address of the operator"},"returns":{"_0":"The current weight of the operator"}},"getServiceURI()":{"returns":{"_0":"The service URI."}},"getStakeRegistry()":{"returns":{"_0":"The stake registry address."}},"setServiceURI(string)":{"params":{"_serviceURI":"The service URI to update."}},"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the data.","signatureData":"The signature data."}}},"version":1},"userdoc":{"kind":"user","methods":{"getAllocationManager()":{"notice":"Returns the allocation manager address."},"getDelegationManager()":{"notice":"Returns the delegation manager address."},"getLatestOperatorForSigningKey(address)":{"notice":"Returns the latest operator address associated with a signing key."},"getOperatorWeight(address)":{"notice":"Gets the operator's current weight"},"getServiceURI()":{"notice":"Returns the service URI"},"getStakeRegistry()":{"notice":"Returns the stake registry address."},"setServiceURI(string)":{"notice":"Sets the service URI"},"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Validates a signed envelope"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":"IWavsServiceManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"}},"version":1},"id":73} \ No newline at end of file +{"abi":[{"type":"function","name":"getAllocationManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDelegationManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getLatestOperatorForSigningKey","inputs":[{"name":"signingKeyAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOperatorWeight","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getServiceURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getStakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setServiceURI","inputs":[{"name":"_serviceURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validate","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"QuorumThresholdUpdated","inputs":[{"name":"numerator","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"denominator","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ServiceURIUpdated","inputs":[{"name":"serviceURI","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"error","name":"InsufficientQuorum","inputs":[{"name":"signerWeight","type":"uint256","internalType":"uint256"},{"name":"thresholdWeight","type":"uint256","internalType":"uint256"},{"name":"totalWeight","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientQuorumZero","inputs":[]},{"type":"error","name":"InvalidQuorumParameters","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSignatureBlock","inputs":[]},{"type":"error","name":"InvalidSignatureLength","inputs":[]},{"type":"error","name":"InvalidSignatureOrder","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAllocationManager()":"a28efd6b","getDelegationManager()":"b24e5a3a","getLatestOperatorForSigningKey(address)":"ac7cbfd9","getOperatorWeight(address)":"98ec1ac9","getServiceURI()":"cc922c6a","getStakeRegistry()":"bef4c839","setServiceURI(string)":"5f11301b","validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"cd71589e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"signerWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thresholdWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"}],\"name\":\"InsufficientQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientQuorumZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidQuorumParameters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureBlock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureOrder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"QuorumThresholdUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"serviceURI\",\"type\":\"string\"}],\"name\":\"ServiceURIUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getAllocationManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signingKeyAddress\",\"type\":\"address\"}],\"name\":\"getLatestOperatorForSigningKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakeRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_serviceURI\",\"type\":\"string\"}],\"name\":\"setServiceURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"validate\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Lay3r Labs\",\"details\":\"This interface defines the functions and events for the Wavs service manager\",\"errors\":{\"InsufficientQuorum(uint256,uint256,uint256)\":[{\"params\":{\"signerWeight\":\"The weight of the signer\",\"thresholdWeight\":\"The threshold weight\",\"totalWeight\":\"The total weight\"}}]},\"events\":{\"QuorumThresholdUpdated(uint256,uint256)\":{\"params\":{\"denominator\":\"The denominator of the quorum threshold\",\"numerator\":\"The numerator of the quorum threshold\"}},\"ServiceURIUpdated(string)\":{\"params\":{\"serviceURI\":\"The service URI\"}}},\"kind\":\"dev\",\"methods\":{\"getAllocationManager()\":{\"returns\":{\"_0\":\"The allocation manager address.\"}},\"getDelegationManager()\":{\"returns\":{\"_0\":\"The delegation manager address.\"}},\"getLatestOperatorForSigningKey(address)\":{\"params\":{\"signingKeyAddress\":\"The address of the signing key.\"},\"returns\":{\"_0\":\"The latest operator address associated with the signing key, or address(0) if none.\"}},\"getOperatorWeight(address)\":{\"params\":{\"operator\":\"The address of the operator\"},\"returns\":{\"_0\":\"The current weight of the operator\"}},\"getServiceURI()\":{\"returns\":{\"_0\":\"The service URI.\"}},\"getStakeRegistry()\":{\"returns\":{\"_0\":\"The stake registry address.\"}},\"setServiceURI(string)\":{\"params\":{\"_serviceURI\":\"The service URI to update.\"}},\"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the data.\",\"signatureData\":\"The signature data.\"}}},\"title\":\"IWavsServiceManager\",\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientQuorum(uint256,uint256,uint256)\":[{\"notice\":\"The error for the insufficient quorum\"}],\"InsufficientQuorumZero()\":[{\"notice\":\"The error for the insufficient quorum zero.\"}],\"InvalidQuorumParameters()\":[{\"notice\":\"The error for the invalid quorum parameters.\"}],\"InvalidSignature()\":[{\"notice\":\"The error for the invalid signature.\"}],\"InvalidSignatureBlock()\":[{\"notice\":\"The error for the invalid signature block.\"}],\"InvalidSignatureLength()\":[{\"notice\":\"The error for the invalid signature length.\"}],\"InvalidSignatureOrder()\":[{\"notice\":\"The error for the invalid signature order.\"}]},\"events\":{\"QuorumThresholdUpdated(uint256,uint256)\":{\"notice\":\"Event emitted when the quorum threshold is updated\"},\"ServiceURIUpdated(string)\":{\"notice\":\"Event emitted when the service URI is updated\"}},\"kind\":\"user\",\"methods\":{\"getAllocationManager()\":{\"notice\":\"Returns the allocation manager address.\"},\"getDelegationManager()\":{\"notice\":\"Returns the delegation manager address.\"},\"getLatestOperatorForSigningKey(address)\":{\"notice\":\"Returns the latest operator address associated with a signing key.\"},\"getOperatorWeight(address)\":{\"notice\":\"Gets the operator's current weight\"},\"getServiceURI()\":{\"notice\":\"Returns the service URI\"},\"getStakeRegistry()\":{\"notice\":\"Returns the stake registry address.\"},\"setServiceURI(string)\":{\"notice\":\"Sets the service URI\"},\"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Validates a signed envelope\"}},\"notice\":\"Interface for the Wavs service manager\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":\"IWavsServiceManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"signerWeight","type":"uint256"},{"internalType":"uint256","name":"thresholdWeight","type":"uint256"},{"internalType":"uint256","name":"totalWeight","type":"uint256"}],"type":"error","name":"InsufficientQuorum"},{"inputs":[],"type":"error","name":"InsufficientQuorumZero"},{"inputs":[],"type":"error","name":"InvalidQuorumParameters"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSignatureBlock"},{"inputs":[],"type":"error","name":"InvalidSignatureLength"},{"inputs":[],"type":"error","name":"InvalidSignatureOrder"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256","indexed":true},{"internalType":"uint256","name":"denominator","type":"uint256","indexed":true}],"type":"event","name":"QuorumThresholdUpdated","anonymous":false},{"inputs":[{"internalType":"string","name":"serviceURI","type":"string","indexed":false}],"type":"event","name":"ServiceURIUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllocationManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDelegationManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"signingKeyAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getLatestOperatorForSigningKey","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStakeRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"_serviceURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setServiceURI"},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"view","type":"function","name":"validate"}],"devdoc":{"kind":"dev","methods":{"getAllocationManager()":{"returns":{"_0":"The allocation manager address."}},"getDelegationManager()":{"returns":{"_0":"The delegation manager address."}},"getLatestOperatorForSigningKey(address)":{"params":{"signingKeyAddress":"The address of the signing key."},"returns":{"_0":"The latest operator address associated with the signing key, or address(0) if none."}},"getOperatorWeight(address)":{"params":{"operator":"The address of the operator"},"returns":{"_0":"The current weight of the operator"}},"getServiceURI()":{"returns":{"_0":"The service URI."}},"getStakeRegistry()":{"returns":{"_0":"The stake registry address."}},"setServiceURI(string)":{"params":{"_serviceURI":"The service URI to update."}},"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the data.","signatureData":"The signature data."}}},"version":1},"userdoc":{"kind":"user","methods":{"getAllocationManager()":{"notice":"Returns the allocation manager address."},"getDelegationManager()":{"notice":"Returns the delegation manager address."},"getLatestOperatorForSigningKey(address)":{"notice":"Returns the latest operator address associated with a signing key."},"getOperatorWeight(address)":{"notice":"Gets the operator's current weight"},"getServiceURI()":{"notice":"Returns the service URI"},"getStakeRegistry()":{"notice":"Returns the stake registry address."},"setServiceURI(string)":{"notice":"Sets the service URI"},"validate((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Validates a signed envelope"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":"IWavsServiceManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"}},"version":1},"id":68} \ No newline at end of file diff --git a/frontend/abis/MerkleFundDistributor.json b/frontend/abis/MerkleFundDistributor.json index 1c5e7659..9f48e4fc 100644 --- a/frontend/abis/MerkleFundDistributor.json +++ b/frontend/abis/MerkleFundDistributor.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"},{"name":"merkleSnapshot_","type":"address","internalType":"address"},{"name":"feeRecipient_","type":"address","internalType":"address"},{"name":"feePercentage_","type":"uint256","internalType":"uint256"},{"name":"allowlistEnabled_","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"FEE_RANGE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowlistEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"claimedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimed","inputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"distribute","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"expectedRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"distributions","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalMerkleValue","type":"uint256","internalType":"uint256"},{"name":"distributor","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amountFunded","type":"uint256","internalType":"uint256"},{"name":"amountDistributed","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"feePercentage","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAllowlist","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getAllowlistAt","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAllowlistLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAllowlistPaginated","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getDistribution","inputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IMerkleFundDistributor.DistributionState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalMerkleValue","type":"uint256","internalType":"uint256"},{"name":"distributor","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amountFunded","type":"uint256","internalType":"uint256"},{"name":"amountDistributed","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getDistributionCount","inputs":[],"outputs":[{"name":"total","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDistributions","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IMerkleFundDistributor.DistributionState[]","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalMerkleValue","type":"uint256","internalType":"uint256"},{"name":"distributor","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amountFunded","type":"uint256","internalType":"uint256"},{"name":"amountDistributed","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isAllowlisted","inputs":[{"name":"distributor","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"merkleSnapshot","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setAllowlistEnabled","inputs":[{"name":"allowlistEnabled_","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeePercentage","inputs":[{"name":"newFeePercentage","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeRecipient","inputs":[{"name":"newFeeRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMerkleSnapshot","inputs":[{"name":"newMerkleSnapshot","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateDistributorAllowance","inputs":[{"name":"distributor","type":"address","internalType":"address"},{"name":"canDistribute_","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Claimed","inputs":[{"name":"distributionIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newAmountDistributed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"distributionIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"distributor","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amountFunded","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DistributorAllowanceUpdated","inputs":[{"name":"distributor","type":"address","indexed":true,"internalType":"address"},{"name":"canDistribute","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"DistributorAllowlistUpdated","inputs":[{"name":"enabled","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeePercentageSet","inputs":[{"name":"previousFeePercentage","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newFeePercentage","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FeeRecipientSet","inputs":[{"name":"previousFeeRecipient","type":"address","indexed":true,"internalType":"address"},{"name":"newFeeRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MerkleSnapshotUpdated","inputs":[{"name":"previousContract","type":"address","indexed":true,"internalType":"address"},{"name":"newContract","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"CannotDistribute","inputs":[]},{"type":"error","name":"DistributionNotFound","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedToTransferFee","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FailedToTransferTokens","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FeePercentageTooHigh","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidMerkleState","inputs":[]},{"type":"error","name":"InvalidNativeTokenTransfer","inputs":[]},{"type":"error","name":"InvalidNativeTokenTransferAmount","inputs":[]},{"type":"error","name":"NoFundsToClaim","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotPendingOwner","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnexpectedMerkleRoot","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60803461023157601f611e4d38819003918201601f19168301916001600160401b038311848410176102355780849260a0946040528339810103126102315761004781610249565b61005360208301610249565b9161006060408201610249565b60806060830151920151928315158094036102315760015f55600280546001600160a01b031916339081179091556001600160a01b03919091169081036101ef575b506001600160a01b03841680156101e05760018054610100600160a81b03198116600897881b610100600160a81b031617909155604051951c6001600160a01b03167f290b5b697667cd09b02cb127b1373ddec2945c79dc93b89eb90ec95bbfd4a8205f80a36001600160a01b031680156101e057600480546001600160a01b0319811683179091556001600160a01b03167f15d80a013f22151bc7246e3bc132e12828cde19de98870475e3fa708401527215f80a3670de0b6b3a764000081116101d157600554816005557fa877b684a58e916e04f646f3112557d0e77a19efe4766f9438020e5821a131395f80a360ff196006541660ff8216176006557f8cfcfe73491d25685798989c7e3119522126c3438593e50e7d47bfd212b45e5f5f80a2611bef908161025e8239f35b635841c1b960e01b5f5260045ffd5b63e6c4247b60e01b5f5260045ffd5b80156101e057600380546001600160a01b031916821790557fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a8765f80a25f6100a2565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102315756fe60806040526004361015610011575f80fd5b5f3560e01c806305a3b80914611212578063120aa877146111ce578063147a7a5b1461115157806316166241146110b75780632e7ba6ef14610dfe5780633b345a8714610db95780633f4ba83a14610d4957806342c9160514610d2c5780634487d3df14610c4b5780634690484014610c2357806349891e9914610bec57806354dcb7b914610b5c5780635c975abb14610b3a57806364d042f014610b1d5780636cf9e2f214610af157806379ba509714610a735780638456cb5914610a115780638da5cb5b146109e957806394c8e4ff146109c7578063a001ecdd146109aa578063ae06c1b714610938578063c5eff3d0146108c4578063d7644ba21461085f578063e30c397814610837578063e39f06bd146102b5578063e74b981b14610238578063e7a96ca11461020e578063f2fde38b1461017e5763fbde47f614610158575f80fd5b3461017a575f36600319011261017a576020604051670de0b6b3a76400008152f35b5f80fd5b3461017a57602036600319011261017a57610197611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600380546001600160a01b031916821790557fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a8765f80a2005b63e6c4247b60e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b3461017a5761023461022861022236611280565b90611782565b604051918291826114a6565b0390f35b3461017a57602036600319011261017a57610251611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600480546001600160a01b0319811683179091556001600160a01b03167f15d80a013f22151bc7246e3bc132e12828cde19de98870475e3fa708401527215f80a3005b606036600319011261017a576102c9611254565b6024359060443560ff600654168061081b575b61080c576004926102eb611841565b6102f361185f565b6001546040516305b209d760e31b8152945f91869190829060081c6001600160a01b03165afa938415610801575f94610716575b506040840191825115801561070a575b6106fb57801515806106f0575b6106d857506103556005548261187a565b938460095494859451908460608501519160a060808701519601519360018060a01b03600454169460405197889561038c876113c7565b438752602087019342855260408801908152606088019182526080880192835260a0880193845260c0880194338652600160401b60e08a019760018060a01b03169e8f89526101008b01998a526101606101208c019b5f8d5261014081019d8e52019c8d5210156106b1576104078f6001810160095561135f565b9c909c6106c557518c555160018c01555160028b01555160038a015551805160048a019167ffffffffffffffff82116106b157610444835461138f565b601f811161066c575b50602090601f83116001146105ff57600b9a9998979695949392915f91836105f4575b50508160011b915f199060031b1c19161790555b516005890155516006880180546001600160a01b039283166001600160a01b031991821617909155915160078901805491831691841691909117905591516008880155915160098701559151600a86018054919093169116179055519101558161058757803403610578575f8080808760018060a01b03600454165af19361050a611753565b941561055257602094505b60405191825284820152827f6b4c9c70a653efa82eeee564c5938294bb39a053f240e8b1e9da72490424fcca60403393a460015f55604051908152f35b604051634322d6f760e01b815260206004820152806105746024820188611296565b0390fd5b63136a0a1960e01b5f5260045ffd5b346105e5576020936105c86040516323b872dd60e01b87820152336024820152306044820152836064820152606481526105c26084826113e4565b84611b61565b6004546105e09082906001600160a01b0316856119c3565b610515565b630390ad5760e21b5f5260045ffd5b015190505f80610470565b90601f19831691845f52815f20925f5b8181106106545750916001939185600b9e9d9c9b9a99989796941061063c575b505050811b019055610484565b01515f1960f88460031b161c191690555f808061062f565b9293602060018192878601518155019501930161060f565b835f5260205f20601f840160051c810191602085106106a7575b601f0160051c01905b81811061069c575061044d565b5f815560010161068f565b9091508190610686565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f525f60045260245ffd5b8251906305973d0b60e01b5f5260045260245260445ffd5b508083511415610344565b6352e8439560e11b5f5260045ffd5b5060a085015115610337565b9093503d805f833e61072881836113e4565b81019060208183031261017a5780519067ffffffffffffffff821161017a57019060c08282031261017a576040519160c0830183811067ffffffffffffffff8211176106b15760405280518352602081015160208401526040810151604084015260608101516060840152608081015167ffffffffffffffff811161017a5781019180601f8401121561017a5782516107c081611737565b916107ce60405193846113e4565b8183526020828601011161017a576020815f928260a097018386015e830101526080840152015160a08201529284610327565b6040513d5f823e3d90fd5b6351e624a760e01b5f5260045ffd5b50610831335f52600860205260405f2054151590565b156102dc565b3461017a575f36600319011261017a576003546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043580151580910361017a576002546001600160a01b031633036101ff5760ff196006541660ff8216176006557f8cfcfe73491d25685798989c7e3119522126c3438593e50e7d47bfd212b45e5f5f80a2005b3461017a575f36600319011261017a5760405180602060075491828152019060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688905f5b8181106109225761023485610228818703826113e4565b825484526020909301926001928301920161090b565b3461017a57602036600319011261017a57600254600435906001600160a01b031633036101ff57670de0b6b3a7640000811161099b57600554816005557fa877b684a58e916e04f646f3112557d0e77a19efe4766f9438020e5821a131395f80a3005b635841c1b960e01b5f5260045ffd5b3461017a575f36600319011261017a576020600554604051908152f35b3461017a575f36600319011261017a57602060ff600654166040519015158152f35b3461017a575f36600319011261017a576002546040516001600160a01b039091168152602090f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff57610a3b61185f565b600160ff19815416176001557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017a575f36600319011261017a576003546001600160a01b0381163303610ae25760028054336001600160a01b03198083168217909355929091166003556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b630614e5c760e21b5f5260045ffd5b3461017a575f36600319011261017a5760015460405160089190911c6001600160a01b03168152602090f35b3461017a575f36600319011261017a576020600754604051908152f35b3461017a575f36600319011261017a57602060ff600154166040519015158152f35b3461017a57602036600319011261017a57610b75611254565b6002546001600160a01b031633036101ff576001600160a01b0381169081156101f05760018054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f290b5b697667cd09b02cb127b1373ddec2945c79dc93b89eb90ec95bbfd4a8205f80a3005b3461017a57602036600319011261017a576020610c0a600435611a04565b905460405160039290921b1c6001600160a01b03168152f35b3461017a575f36600319011261017a576004546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043560095481101561017a57610c729061135f565b5080546001820154916002810154600382015491610c9260048201611406565b9260058201549360018060a01b0360068401541660018060a01b0360078501541690610d00600886015493600987015495600b60018060a01b03600a8a015416980154986040519c8d9c8d5260208d015260408c015260608b015261018060808b01526101808a0190611296565b9660a089015260c088015260e08701526101008601526101208501526101408401526101608301520390f35b3461017a575f36600319011261017a576020600954604051908152f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff5760015460ff811615610daa5760ff19166001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017a57602036600319011261017a57610dd2611500565b50610234610dea610de460043561135f565b5061159b565b6040519182916020835260208301906112ba565b3461017a57608036600319011261017a57600435610e1a61126a565b60643560443567ffffffffffffffff821161017a573660238301121561017a5781600401359267ffffffffffffffff841161017a573660248560051b8501011161017a57610e66611841565b610e6e61185f565b6009548510156110a8576001600160a01b03811680156101f057610e918661135f565b509060028201549687156110a857805f52600a60205260405f20825f5260205260405f205461109957604080516001600160a01b03861660208201908152818301889052918152610ee36060826113e4565b5190206040516020810191825260208152610eff6040826113e4565b519020975f985b888a1015610f475760248a60051b89010135908181105f14610f36575f52602052600160405f205b990198610f06565b905f52602052600160405f20610f2e565b0361108a57610f6e610f626008850154600b8601549061157a565b86600586015491611910565b93841561107b57815f52600a60205260405f20835f526020528460405f205560076009850194610f9f878754611559565b86550180549091906001600160a01b0316806110445750505f80808088875af1610fc7611753565b901561101f575060606020967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5925b60018060a01b03905416955460405191888352898301526040820152a460015f55604051908152f35b604051631fd027f560e21b815260206004820152908190610574906024830190611296565b967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5926110768860609460209b6119c3565b610ff6565b63dff46e2b60e01b5f5260045ffd5b63582f497d60e11b5f5260045ffd5b630c8d9eab60e31b5f5260045ffd5b633a35c2f960e01b5f5260045ffd5b3461017a57604036600319011261017a576110d0611254565b602435908115159182810361017a576002546001600160a01b031633036101ff5715611139576111086001600160a01b038216611b0c565b505b6001600160a01b03167f16ff14c1e52259396616f29c1de4d47a156f71aad6c16d756f3475db37187a3a5f80a3005b61114b6001600160a01b038216611a31565b5061110a565b3461017a5761116861116236611280565b90611636565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061119f57505050500390f35b919360019193955060206111be8192603f198a820301865288516112ba565b9601920192018594939192611190565b3461017a57604036600319011261017a576111e761126a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b3461017a57602036600319011261017a57602061124a6001600160a01b03611238611254565b165f52600860205260405f2054151590565b6040519015158152f35b600435906001600160a01b038216820361017a57565b602435906001600160a01b038216820361017a57565b604090600319011261017a576004359060243590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9081518152602082015160208201526040820151604082015260608201516060820152610160806112fc60808501516101806080860152610180850190611296565b9360a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e085015261010081015161010085015261012081015161012085015260018060a01b0361014082015116610140850152015191015290565b60095481101561137b5760095f52600c60205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c921680156113bd575b60208310146113a957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161139e565b610180810190811067ffffffffffffffff8211176106b157604052565b90601f8019910116810190811067ffffffffffffffff8211176106b157604052565b9060405191825f8254926114198461138f565b80845293600181169081156114845750600114611440575b5061143e925003836113e4565b565b90505f9291925260205f20905f915b81831061146857505090602061143e928201015f611431565b602091935080600191548385890101520191019091849261144f565b90506020925061143e94915060ff191682840152151560051b8201015f611431565b60206040818301928281528451809452019201905f5b8181106114c95750505090565b82516001600160a01b03168452602093840193909201916001016114bc565b67ffffffffffffffff81116106b15760051b60200190565b6040519061150d826113c7565b5f61016083828152826020820152826040820152826060820152606060808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b9190820180921161156657565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156657565b805182101561137b5760209160051b010190565b906040516115a8816113c7565b610160600b8294805484526001810154602085015260028101546040850152600381015460608501526115dd60048201611406565b6080850152600581015460a085015260068101546001600160a01b0390811660c08601526007820154811660e086015260088201546101008601526009820154610120860152600a820154166101408501520154910152565b9060095490818310156116fd5761164d9083611559565b908082116116f5575b50611661828261157a565b9161166b836114e8565b9261167960405194856113e4565b808452611688601f19916114e8565b015f5b8181106116de575050805b8281106116a35750505090565b806116d76116b260019361135f565b506116c66116c0868561157a565b9161159b565b6116d08289611587565b5286611587565b5001611696565b6020906116e9611500565b8282880101520161168b565b90505f611656565b50505060405161170e6020826113e4565b5f81525f805b81811061172057505090565b60209061172b611500565b82828601015201611714565b67ffffffffffffffff81116106b157601f01601f191660200190565b3d1561177d573d9061176482611737565b9161177260405193846113e4565b82523d5f602084013e565b606090565b906007549081831015611826576117999083611559565b9080821161181e575b506117ad828261157a565b916117b7836114e8565b926117c560405194856113e4565b8084526117d4601f19916114e8565b01366020850137805b8281106117ea5750505090565b806117f6600192611a04565b838060a01b0391549060031b1c16611817611811858461157a565b87611587565b52016117dd565b90505f6117a2565b5050506040516118376020826113e4565b5f81525f36813790565b60025f54146118505760025f55565b633ee5aeb560e01b5f5260045ffd5b60ff6001541661186b57565b63d93c066560e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146118fd5782670de0b6b3a764000011156118eb57507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b90915f1983830992808302928380861095039480860395146119a157848311156119895790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156119af570490565b634e487b7160e01b5f52601260045260245ffd5b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261143e916119ff6064836113e4565b611b61565b60075481101561137b5760075f5260205f2001905f90565b805482101561137b575f5260205f2001905f90565b5f818152600860205260409020548015611b06575f198101818111611566576007545f1981019190821161156657818103611ab8575b5050506007548015611aa4575f1901611a81816007611a1c565b8154905f199060031b1b191690556007555f5260086020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b611af0611ac9611ada936007611a1c565b90549060031b1c9283926007611a1c565b819391549060031b91821b915f19901b19161790565b90555f52600860205260405f20555f8080611a67565b50505f90565b805f52600860205260405f2054155f14611b5c57600754600160401b8110156106b157611b45611ada8260018594016007556007611a1c565b9055600754905f52600860205260405f2055600190565b505f90565b905f602091828151910182855af115610801575f513d611bb057506001600160a01b0381163b155b611b905750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611b8956fea2646970667358221220eab359e572d4446fd706042168d782a07c3566fa30b4e2d5cf6f791bb8586c0364736f6c634300081b0033","sourceMap":"1007:16578:98:-:0;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;1857:1:53;3495:18:98;1007:16578;;-1:-1:-1;;;;;;1007:16578:98;3503:10;1007:16578;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;3615:20;;3611:77;;-1:-1:-1;;;;;;;1007:16578:98;;16877:31;;16873:85;;1007:16578;;;-1:-1:-1;;;;;;1007:16578:98;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;-1:-1:-1;;;;;1007:16578:98;17074:64;-1:-1:-1;;17074:64:98;-1:-1:-1;;;;;1007:16578:98;16047:29;;16043:83;;16167:12;1007:16578;;-1:-1:-1;;;;;;1007:16578:98;;;;;;;-1:-1:-1;;;;;1007:16578:98;16234:54;-1:-1:-1;;16234:54:98;1398:4;16454:28;;16450:88;;16580:13;1398:4;1857:1:53;16580:13:98;1857:1:53;16650:57:98;-1:-1:-1;16650:57:98;;1007:16578;;17305:36;1007:16578;;;;;;17305:36;1007:16578;17356:46;-1:-1:-1;17356:46:98;;1007:16578;;;;;;;16450:88;16505:22;;;-1:-1:-1;16505:22:98;16167:12;-1:-1:-1;16505:22:98;16043:83;15776:16;;;-1:-1:-1;16099:16:98;;-1:-1:-1;16099:16:98;3611:77;15731:22;;15727:76;;15813:23;1007:16578;;-1:-1:-1;;;;;;1007:16578:98;;;;;15851:34;-1:-1:-1;;15851:34:98;3611:77;;;1007:16578;-1:-1:-1;1007:16578:98;;;;;;-1:-1:-1;1007:16578:98;;;;;-1:-1:-1;1007:16578:98;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305a3b80914611212578063120aa877146111ce578063147a7a5b1461115157806316166241146110b75780632e7ba6ef14610dfe5780633b345a8714610db95780633f4ba83a14610d4957806342c9160514610d2c5780634487d3df14610c4b5780634690484014610c2357806349891e9914610bec57806354dcb7b914610b5c5780635c975abb14610b3a57806364d042f014610b1d5780636cf9e2f214610af157806379ba509714610a735780638456cb5914610a115780638da5cb5b146109e957806394c8e4ff146109c7578063a001ecdd146109aa578063ae06c1b714610938578063c5eff3d0146108c4578063d7644ba21461085f578063e30c397814610837578063e39f06bd146102b5578063e74b981b14610238578063e7a96ca11461020e578063f2fde38b1461017e5763fbde47f614610158575f80fd5b3461017a575f36600319011261017a576020604051670de0b6b3a76400008152f35b5f80fd5b3461017a57602036600319011261017a57610197611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600380546001600160a01b031916821790557fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a8765f80a2005b63e6c4247b60e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b3461017a5761023461022861022236611280565b90611782565b604051918291826114a6565b0390f35b3461017a57602036600319011261017a57610251611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600480546001600160a01b0319811683179091556001600160a01b03167f15d80a013f22151bc7246e3bc132e12828cde19de98870475e3fa708401527215f80a3005b606036600319011261017a576102c9611254565b6024359060443560ff600654168061081b575b61080c576004926102eb611841565b6102f361185f565b6001546040516305b209d760e31b8152945f91869190829060081c6001600160a01b03165afa938415610801575f94610716575b506040840191825115801561070a575b6106fb57801515806106f0575b6106d857506103556005548261187a565b938460095494859451908460608501519160a060808701519601519360018060a01b03600454169460405197889561038c876113c7565b438752602087019342855260408801908152606088019182526080880192835260a0880193845260c0880194338652600160401b60e08a019760018060a01b03169e8f89526101008b01998a526101606101208c019b5f8d5261014081019d8e52019c8d5210156106b1576104078f6001810160095561135f565b9c909c6106c557518c555160018c01555160028b01555160038a015551805160048a019167ffffffffffffffff82116106b157610444835461138f565b601f811161066c575b50602090601f83116001146105ff57600b9a9998979695949392915f91836105f4575b50508160011b915f199060031b1c19161790555b516005890155516006880180546001600160a01b039283166001600160a01b031991821617909155915160078901805491831691841691909117905591516008880155915160098701559151600a86018054919093169116179055519101558161058757803403610578575f8080808760018060a01b03600454165af19361050a611753565b941561055257602094505b60405191825284820152827f6b4c9c70a653efa82eeee564c5938294bb39a053f240e8b1e9da72490424fcca60403393a460015f55604051908152f35b604051634322d6f760e01b815260206004820152806105746024820188611296565b0390fd5b63136a0a1960e01b5f5260045ffd5b346105e5576020936105c86040516323b872dd60e01b87820152336024820152306044820152836064820152606481526105c26084826113e4565b84611b61565b6004546105e09082906001600160a01b0316856119c3565b610515565b630390ad5760e21b5f5260045ffd5b015190505f80610470565b90601f19831691845f52815f20925f5b8181106106545750916001939185600b9e9d9c9b9a99989796941061063c575b505050811b019055610484565b01515f1960f88460031b161c191690555f808061062f565b9293602060018192878601518155019501930161060f565b835f5260205f20601f840160051c810191602085106106a7575b601f0160051c01905b81811061069c575061044d565b5f815560010161068f565b9091508190610686565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f525f60045260245ffd5b8251906305973d0b60e01b5f5260045260245260445ffd5b508083511415610344565b6352e8439560e11b5f5260045ffd5b5060a085015115610337565b9093503d805f833e61072881836113e4565b81019060208183031261017a5780519067ffffffffffffffff821161017a57019060c08282031261017a576040519160c0830183811067ffffffffffffffff8211176106b15760405280518352602081015160208401526040810151604084015260608101516060840152608081015167ffffffffffffffff811161017a5781019180601f8401121561017a5782516107c081611737565b916107ce60405193846113e4565b8183526020828601011161017a576020815f928260a097018386015e830101526080840152015160a08201529284610327565b6040513d5f823e3d90fd5b6351e624a760e01b5f5260045ffd5b50610831335f52600860205260405f2054151590565b156102dc565b3461017a575f36600319011261017a576003546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043580151580910361017a576002546001600160a01b031633036101ff5760ff196006541660ff8216176006557f8cfcfe73491d25685798989c7e3119522126c3438593e50e7d47bfd212b45e5f5f80a2005b3461017a575f36600319011261017a5760405180602060075491828152019060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688905f5b8181106109225761023485610228818703826113e4565b825484526020909301926001928301920161090b565b3461017a57602036600319011261017a57600254600435906001600160a01b031633036101ff57670de0b6b3a7640000811161099b57600554816005557fa877b684a58e916e04f646f3112557d0e77a19efe4766f9438020e5821a131395f80a3005b635841c1b960e01b5f5260045ffd5b3461017a575f36600319011261017a576020600554604051908152f35b3461017a575f36600319011261017a57602060ff600654166040519015158152f35b3461017a575f36600319011261017a576002546040516001600160a01b039091168152602090f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff57610a3b61185f565b600160ff19815416176001557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017a575f36600319011261017a576003546001600160a01b0381163303610ae25760028054336001600160a01b03198083168217909355929091166003556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b630614e5c760e21b5f5260045ffd5b3461017a575f36600319011261017a5760015460405160089190911c6001600160a01b03168152602090f35b3461017a575f36600319011261017a576020600754604051908152f35b3461017a575f36600319011261017a57602060ff600154166040519015158152f35b3461017a57602036600319011261017a57610b75611254565b6002546001600160a01b031633036101ff576001600160a01b0381169081156101f05760018054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f290b5b697667cd09b02cb127b1373ddec2945c79dc93b89eb90ec95bbfd4a8205f80a3005b3461017a57602036600319011261017a576020610c0a600435611a04565b905460405160039290921b1c6001600160a01b03168152f35b3461017a575f36600319011261017a576004546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043560095481101561017a57610c729061135f565b5080546001820154916002810154600382015491610c9260048201611406565b9260058201549360018060a01b0360068401541660018060a01b0360078501541690610d00600886015493600987015495600b60018060a01b03600a8a015416980154986040519c8d9c8d5260208d015260408c015260608b015261018060808b01526101808a0190611296565b9660a089015260c088015260e08701526101008601526101208501526101408401526101608301520390f35b3461017a575f36600319011261017a576020600954604051908152f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff5760015460ff811615610daa5760ff19166001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017a57602036600319011261017a57610dd2611500565b50610234610dea610de460043561135f565b5061159b565b6040519182916020835260208301906112ba565b3461017a57608036600319011261017a57600435610e1a61126a565b60643560443567ffffffffffffffff821161017a573660238301121561017a5781600401359267ffffffffffffffff841161017a573660248560051b8501011161017a57610e66611841565b610e6e61185f565b6009548510156110a8576001600160a01b03811680156101f057610e918661135f565b509060028201549687156110a857805f52600a60205260405f20825f5260205260405f205461109957604080516001600160a01b03861660208201908152818301889052918152610ee36060826113e4565b5190206040516020810191825260208152610eff6040826113e4565b519020975f985b888a1015610f475760248a60051b89010135908181105f14610f36575f52602052600160405f205b990198610f06565b905f52602052600160405f20610f2e565b0361108a57610f6e610f626008850154600b8601549061157a565b86600586015491611910565b93841561107b57815f52600a60205260405f20835f526020528460405f205560076009850194610f9f878754611559565b86550180549091906001600160a01b0316806110445750505f80808088875af1610fc7611753565b901561101f575060606020967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5925b60018060a01b03905416955460405191888352898301526040820152a460015f55604051908152f35b604051631fd027f560e21b815260206004820152908190610574906024830190611296565b967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5926110768860609460209b6119c3565b610ff6565b63dff46e2b60e01b5f5260045ffd5b63582f497d60e11b5f5260045ffd5b630c8d9eab60e31b5f5260045ffd5b633a35c2f960e01b5f5260045ffd5b3461017a57604036600319011261017a576110d0611254565b602435908115159182810361017a576002546001600160a01b031633036101ff5715611139576111086001600160a01b038216611b0c565b505b6001600160a01b03167f16ff14c1e52259396616f29c1de4d47a156f71aad6c16d756f3475db37187a3a5f80a3005b61114b6001600160a01b038216611a31565b5061110a565b3461017a5761116861116236611280565b90611636565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061119f57505050500390f35b919360019193955060206111be8192603f198a820301865288516112ba565b9601920192018594939192611190565b3461017a57604036600319011261017a576111e761126a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b3461017a57602036600319011261017a57602061124a6001600160a01b03611238611254565b165f52600860205260405f2054151590565b6040519015158152f35b600435906001600160a01b038216820361017a57565b602435906001600160a01b038216820361017a57565b604090600319011261017a576004359060243590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9081518152602082015160208201526040820151604082015260608201516060820152610160806112fc60808501516101806080860152610180850190611296565b9360a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e085015261010081015161010085015261012081015161012085015260018060a01b0361014082015116610140850152015191015290565b60095481101561137b5760095f52600c60205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c921680156113bd575b60208310146113a957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161139e565b610180810190811067ffffffffffffffff8211176106b157604052565b90601f8019910116810190811067ffffffffffffffff8211176106b157604052565b9060405191825f8254926114198461138f565b80845293600181169081156114845750600114611440575b5061143e925003836113e4565b565b90505f9291925260205f20905f915b81831061146857505090602061143e928201015f611431565b602091935080600191548385890101520191019091849261144f565b90506020925061143e94915060ff191682840152151560051b8201015f611431565b60206040818301928281528451809452019201905f5b8181106114c95750505090565b82516001600160a01b03168452602093840193909201916001016114bc565b67ffffffffffffffff81116106b15760051b60200190565b6040519061150d826113c7565b5f61016083828152826020820152826040820152826060820152606060808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b9190820180921161156657565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156657565b805182101561137b5760209160051b010190565b906040516115a8816113c7565b610160600b8294805484526001810154602085015260028101546040850152600381015460608501526115dd60048201611406565b6080850152600581015460a085015260068101546001600160a01b0390811660c08601526007820154811660e086015260088201546101008601526009820154610120860152600a820154166101408501520154910152565b9060095490818310156116fd5761164d9083611559565b908082116116f5575b50611661828261157a565b9161166b836114e8565b9261167960405194856113e4565b808452611688601f19916114e8565b015f5b8181106116de575050805b8281106116a35750505090565b806116d76116b260019361135f565b506116c66116c0868561157a565b9161159b565b6116d08289611587565b5286611587565b5001611696565b6020906116e9611500565b8282880101520161168b565b90505f611656565b50505060405161170e6020826113e4565b5f81525f805b81811061172057505090565b60209061172b611500565b82828601015201611714565b67ffffffffffffffff81116106b157601f01601f191660200190565b3d1561177d573d9061176482611737565b9161177260405193846113e4565b82523d5f602084013e565b606090565b906007549081831015611826576117999083611559565b9080821161181e575b506117ad828261157a565b916117b7836114e8565b926117c560405194856113e4565b8084526117d4601f19916114e8565b01366020850137805b8281106117ea5750505090565b806117f6600192611a04565b838060a01b0391549060031b1c16611817611811858461157a565b87611587565b52016117dd565b90505f6117a2565b5050506040516118376020826113e4565b5f81525f36813790565b60025f54146118505760025f55565b633ee5aeb560e01b5f5260045ffd5b60ff6001541661186b57565b63d93c066560e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146118fd5782670de0b6b3a764000011156118eb57507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b90915f1983830992808302928380861095039480860395146119a157848311156119895790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156119af570490565b634e487b7160e01b5f52601260045260245ffd5b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261143e916119ff6064836113e4565b611b61565b60075481101561137b5760075f5260205f2001905f90565b805482101561137b575f5260205f2001905f90565b5f818152600860205260409020548015611b06575f198101818111611566576007545f1981019190821161156657818103611ab8575b5050506007548015611aa4575f1901611a81816007611a1c565b8154905f199060031b1b191690556007555f5260086020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b611af0611ac9611ada936007611a1c565b90549060031b1c9283926007611a1c565b819391549060031b91821b915f19901b19161790565b90555f52600860205260405f20555f8080611a67565b50505f90565b805f52600860205260405f2054155f14611b5c57600754600160401b8110156106b157611b45611ada8260018594016007556007611a1c565b9055600754905f52600860205260405f2055600190565b505f90565b905f602091828151910182855af115610801575f513d611bb057506001600160a01b0381163b155b611b905750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611b8956fea2646970667358221220eab359e572d4446fd706042168d782a07c3566fa30b4e2d5cf6f791bb8586c0364736f6c634300081b0033","sourceMap":"1007:16578:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;;1398:4;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;:::i;:::-;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;-1:-1:-1;;;;;1007:16578:98;15731:22;;15727:76;;15813:23;1007:16578;;-1:-1:-1;;;;;;1007:16578:98;;;;;15851:34;-1:-1:-1;;15851:34:98;1007:16578;15727:76;13610:16;;;1007:16578;15776:16;1007:16578;;15776:16;2544:67;2590:10;;;1007:16578;2590:10;1007:16578;;2590:10;1007:16578;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;:::i;:::-;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;-1:-1:-1;;;;;1007:16578:98;16047:29;;16043:83;;1007:16578;;;-1:-1:-1;;;;;;1007:16578:98;;;;;;;-1:-1:-1;;;;;1007:16578:98;16234:54;-1:-1:-1;;16234:54:98;1007:16578;;;;-1:-1:-1;;1007:16578:98;;;;;;:::i;:::-;;;;;;;2738:16;1007:16578;;2738:52;;;1007:16578;2734:108;;1007:16578;2466:103:53;;;:::i;:::-;1315:72:52;;:::i;:::-;1007:16578:98;;;;-1:-1:-1;;;10447:70:98;;1007:16578;;;;;;;;;;-1:-1:-1;;;;;1007:16578:98;10447:70;;;;;;;1007:16578;10447:70;;;1007:16578;10532:16;1007:16578;10532:16;;1007:16578;;;10532:30;:61;;;;1007:16578;10528:119;;10661:26;;;:62;;;1007:16578;10657:152;;1007:16578;10876:45;10896:13;1007:16578;10876:45;;:::i;:::-;1007:16578;;10988:13;1007:16578;;;;;11223:20;;1007:16578;11223:20;;1007:16578;11274:23;11333:22;11274:23;;;;11333:22;;1007:16578;;;;;;;;;;;;;;;;;;;:::i;:::-;11099:12;1007:16578;;;11050:549;;11140:15;;1007:16578;;;11050:549;;1007:16578;;;;11050:549;;1007:16578;;;11274:23;11050:549;;1007:16578;;;11333:22;11050:549;;1007:16578;;;11050:549;;;11386:10;;1007:16578;;-1:-1:-1;;;1007:16578:98;11050:549;;1007:16578;;;;;;;;;;;11050:549;;;1007:16578;;;11050:549;;;;1007:16578;;;;11050:549;;;1007:16578;;;11050:549;1007:16578;;;;;;;;;;;;10988:13;1007:16578;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10896:13;1007:16578;;;;2738:16;1007:16578;;;;-1:-1:-1;;;;;1007:16578:98;;;-1:-1:-1;;;;;;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10988:13;1007:16578;;;;;;;;;;;;;;;;;;;;;;;17557:19;;;11803:9;;:19;11799:99;;1007:16578;;;;;;;;;;;;;11998:78;;;;;:::i;:::-;12094:8;;12090:79;;1007:16578;11703:939;;;1007:16578;;;;;;;;;11386:10;12657:138;1007:16578;11386:10;12657:138;;1007:16578;;;;;;;;;12090:79;1007:16578;;-1:-1:-1;;;12129:25:98;;1007:16578;;12129:25;;1007:16578;;;;;;;;:::i;:::-;12129:25;;;11799:99;11849:34;;;1007:16578;11849:34;1007:16578;;11849:34;11703:939;12277:9;12273:87;;1007:16578;;1745:53:43;1007:16578:98;;;;;1745:53:43;;;;11386:10:98;1007:16578;1745:53:43;;1007:16578:98;12501:4;1007:16578;;;;;;;;;;1745:53:43;;;;;;:::i;:::-;;;:::i;:::-;1007:16578:98;;12621:9;;1007:16578;;-1:-1:-1;;;;;1007:16578:98;12621:9;;:::i;:::-;11703:939;;12273:87;12317:28;;;1007:16578;12317:28;1007:16578;;12317:28;1007:16578;;;;-1:-1:-1;1007:16578:98;;;;;14280:26;;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10896:13;1007:16578;;;;;;;;;;;;10896:13;1007:16578;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;10657:152;1007:16578;;10746:52;;;;1007:16578;10746:52;1007:16578;;;;;;10746:52;10661:62;1007:16578;;;;10691:32;;10661:62;;10528:119;10616:20;;;1007:16578;10616:20;1007:16578;;10616:20;10532:61;10566:22;;;;1007:16578;10566:27;10532:61;;10447:70;;;;;;1007:16578;10447:70;;;;;;:::i;:::-;;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10447:70;;;;;1007:16578;;;;;;;;;2734:108;2813:18;;;1007:16578;2813:18;1007:16578;;2813:18;2738:52;2779:10;12473:55:70;2779:10:98;-1:-1:-1;1007:16578:98;5197:14:70;1007:16578:98;;;-1:-1:-1;1007:16578:98;;5197:26:70;;5101:129;;12473:55;2758:32:98;2738:52;;1007:16578;;;;;;-1:-1:-1;;1007:16578:98;;;;1720:27;1007:16578;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;;;;;;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;1007:16578;;17305:36;1007:16578;;;;;;17305:36;1007:16578;17356:46;1007:16578;17356:46;;1007:16578;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;;;6304:10;1007:16578;;;;;;;6304:10;1007:16578;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;2562:5;1007:16578;;;;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;1398:4;16454:28;;16450:88;;16580:13;1007:16578;;16580:13;1007:16578;16650:57;1007:16578;16650:57;;1007:16578;16450:88;16505:22;;;1007:16578;16505:22;1007:16578;;16505:22;1007:16578;;;;;;-1:-1:-1;;1007:16578:98;;;;;1901:28;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;1998:28;1007:16578;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;1618:20;1007:16578;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;1315:72:52;;:::i;:::-;2408:4;1007:16578:98;;;;;;2408:4:52;1007:16578:98;2427:20:52;1007:16578:98;;;2548:10;1007:16578;;2427:20:52;1007:16578:98;;;;;;;-1:-1:-1;;1007:16578:98;;;;7609:12;1007:16578;-1:-1:-1;;;;;1007:16578:98;;7595:10;:26;7591:81;;7705:5;1007:16578;;7595:10;-1:-1:-1;;;;;;1007:16578:98;;;;;;;;;;;;7609:12;1007:16578;-1:-1:-1;;;;;1007:16578:98;7788:42;-1:-1:-1;;7788:42:98;1007:16578;7591:81;7644:17;;;1007:16578;7644:17;1007:16578;;7644:17;1007:16578;;;;;;-1:-1:-1;;1007:16578:98;;;;;;;;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;5816:10;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;1796:7:52;1007:16578:98;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;:::i;:::-;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;-1:-1:-1;;;;;1007:16578:98;;;16877:31;;16873:85;;17001:14;1007:16578;;-1:-1:-1;;;;;;1007:16578:98;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;-1:-1:-1;;;;;1007:16578:98;17074:64;-1:-1:-1;;17074:64:98;1007:16578;;;;;;;-1:-1:-1;;1007:16578:98;;;;;5853:18:70;1007:16578:98;;5853:18:70;:::i;:::-;1007:16578:98;;;;;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;2203:40;1007:16578;2203:40;;;;;;;;:::i;:::-;1007:16578;;;;2203:40;;1007:16578;2203:40;;;;1007:16578;2203:40;;;1007:16578;2203:40;;1007:16578;2203:40;;;:::i;:::-;;;;;1007:16578;;;;;;;2203:40;;;1007:16578;;;;;;;2203:40;;;1007:16578;;2203:40;1007:16578;2203:40;;;1007:16578;2203:40;;;;1007:16578;;2203:40;1007:16578;;;;;2203:40;;;1007:16578;;2203:40;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;5301:13;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;1796:7:52;1007:16578:98;;;;2140:9:52;2136:62;;1007:16578:98;;;1796:7:52;1007:16578:98;2674:22:52;1007:16578:98;;;2548:10;1007:16578;;2674:22:52;1007:16578:98;2136:62:52;2172:15;;;1007:16578:98;2172:15:52;1007:16578:98;;2172:15:52;1007:16578:98;;;;;;-1:-1:-1;;1007:16578:98;;;;;;:::i;:::-;;;;4184:32;1007:16578;;4184:32;:::i;:::-;1007:16578;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1007:16578:98;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:103:53;;:::i;:::-;1315:72:52;;:::i;:::-;13476:13:98;1007:16578;13455:41;;;13451:101;;-1:-1:-1;;;;;1007:16578:98;;13566:21;;13562:75;;13723:54;;;:::i;:::-;13802:17;;;;;1007:16578;13833:18;;;13829:78;;1007:16578;;;14005:7;1007:16578;;;;;;-1:-1:-1;1007:16578:98;;;;-1:-1:-1;1007:16578:98;;14001:93;;1007:16578;;;-1:-1:-1;;;;;1007:16578:98;;;14280:26;;1007:16578;;;;;;;;;14280:26;;;;1007:16578;;14280:26;:::i;:::-;1007:16578;14270:37;;1007:16578;;;;;;;;;;;;;;;:::i;:::-;;14247:62;;5366:13:61;1007:16578:98;5361:134:61;5399:3;5381:16;;;;;;1007:16578:98;;;;;;;;605:59:60;:5;;;:59;:5;;;1007:16578:98;889:135:60;1007:16578:98;889:135:60;1007:16578:98;;;889:135:60;605:59;5399:3:61;1007:16578:98;5366:13:61;;;605:59:60;889:135;1007:16578:98;889:135:60;1007:16578:98;889:135:60;1007:16578:98;;;889:135:60;605:59;;5381:16:61;4761:41;14140:246:98;;14625:115;14425:62;:25;;;1007:16578;14465:22;;;1007:16578;14425:62;;:::i;:::-;14701:29;1007:16578;14701:29;;1007:16578;14625:115;;:::i;:::-;14755:18;;;14751:72;;1007:16578;;;14005:7;1007:16578;;;;;;-1:-1:-1;1007:16578:98;;;;;-1:-1:-1;1007:16578:98;;15014:18;13476:13;14894:30;;1007:16578;14894:47;1007:16578;;;14894:47;:::i;:::-;1007:16578;;15014:18;1007:16578;;15014:18;;1007:16578;-1:-1:-1;;;;;1007:16578:98;17557:19;1007:16578;;15085:77;;1007:16578;15085:77;;;;;;;;;:::i;:::-;15180:8;;15176:82;;14995:367;1007:16578;;14995:367;15377:191;14995:367;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;15377:191;1007:16578;;;;;;;;;15176:82;1007:16578;;-1:-1:-1;;;15215:28:98;;1007:16578;;15215:28;;1007:16578;;;;;;;;;;;:::i;14995:367::-;15337:13;15377:191;15337:13;;;1007:16578;15337:13;1007:16578;15337:13;;:::i;:::-;14995:367;;14751:72;14796:16;;;1007:16578;14796:16;1007:16578;;14796:16;14140:246;14355:20;;;1007:16578;14355:20;1007:16578;;14355:20;14001:93;14067:16;;;1007:16578;14067:16;1007:16578;;14067:16;13829:78;13519:22;;;1007:16578;13874:22;1007:16578;;13874:22;1007:16578;;;;;;-1:-1:-1;;1007:16578:98;;;;;;:::i;:::-;;;;;;;;;;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:98;2548:10;:19;2544:67;;9287:133;;;11511:50:70;-1:-1:-1;;;;;1007:16578:98;;11511:50:70;:::i;:::-;;9287:133:98;-1:-1:-1;;;;;1007:16578:98;9434:56;1007:16578;;9434:56;1007:16578;9287:133;11832:53:70;-1:-1:-1;;;;;1007:16578:98;;11832:53:70;:::i;:::-;;9287:133:98;;1007:16578;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;;:::i;:::-;;;;;2326:103;1007:16578;;;;;2326:103;1007:16578;;;;;;-1:-1:-1;1007:16578:98;;;;;-1:-1:-1;1007:16578:98;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;;12473:55:70;-1:-1:-1;;;;;1007:16578:98;;:::i;:::-;;-1:-1:-1;1007:16578:98;5197:14:70;1007:16578:98;;;-1:-1:-1;1007:16578:98;;5197:26:70;;5101:129;;12473:55;1007:16578:98;;;;;;;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1007:16578:98;;;;;;;;-1:-1:-1;;1007:16578:98;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;13476:13;1007:16578;;;;;;13476:13;-1:-1:-1;1007:16578:98;;;-1:-1:-1;1007:16578:98;;;;;-1:-1:-1;1007:16578:98;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;14280:26;;1007:16578;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1007:16578:98;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1007:16578:98;;;;;-1:-1:-1;1007:16578:98;;-1:-1:-1;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4425:667::-;;4579:13;1007:16578;4569:30;;;;;4565:94;;4683:14;;;;:::i;:::-;4711:26;;;;4707:83;;4425:667;4873:12;;;;;:::i;:::-;4836:59;1007:16578;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;14280:26;;1007:16578;;:::i;:::-;;-1:-1:-1;1007:16578:98;;;;;;4910:18;;;4930:7;;;;;;5072:13;;;4425:667;:::o;4910:18::-;4976:16;4955:37;4976:16;1007:16578;4976:16;;:::i;:::-;4962:10;1007:16578;4962:10;;;;:::i;:::-;1007:16578;;:::i;:::-;4955:37;;;;:::i;:::-;;;;:::i;:::-;;1007:16578;4910:18;;1007:16578;;;;;:::i;:::-;;;;;;;;;;4707:83;4753:26;;4707:83;;;4565:94;-1:-1:-1;;;1007:16578:98;;;;;;:::i;:::-;-1:-1:-1;1007:16578:98;;-1:-1:-1;;1007:16578:98;;;;;;4615:33;;;:::o;1007:16578::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:98;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1007:16578:98;;;;:::o;:::-;;;:::o;6552:614::-;;6704:10;1007:16578;6737:16;;;;;6733:70;;6827:14;;;;:::i;:::-;6855:12;;;;6851:55;;6552:614;6956:12;;;;;:::i;:::-;6942:27;1007:16578;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;14280:26;;1007:16578;;:::i;:::-;;;;;;;6984:18;7004:7;;;;;;7146:13;;;6552:614;:::o;6984:18::-;5853::70;;1007:16578:98;5853:18:70;;:::i;:::-;1007:16578:98;;;;;;;;;;;;7029:37;7036:10;;;;:::i;:::-;7029:37;;:::i;:::-;1007:16578;;6984:18;;6851:55;6883:12;;6851:55;;;6733:70;1007:16578;;;;;;;;;:::i;:::-;-1:-1:-1;1007:16578:98;;-1:-1:-1;1007:16578:98;;;6769:23;:::o;2575:307:53:-;1899:1;2702:7;1007:16578:98;2702:18:53;2698:86;;1899:1;2702:7;1007:16578:98;2575:307:53:o;2698:86::-;2743:30;;;2702:7;2743:30;;2702:7;2743:30;1878:128:52;1007:16578:98;1796:7:52;1007:16578:98;;1939:61:52;;1878:128::o;1939:61::-;1974:15;;;-1:-1:-1;1974:15:52;;-1:-1:-1;1974:15:52;7242:3683:66;;;;1007:16578:98;;-1:-1:-1;;7242:3683:66;;1412:159;;;;;;;;;;;;;;;;7498:9;;7494:365;;7969:19;1007:16578:98;7969:19:66;;7965:142;;8390:308;940:4:51;8390:308:66;;1007:16578:98;8390:308:66;;;;;;;;940:4:51;;8390:308:66;;8962:384;;9409:18;940:4:51;7242:3683:66;:::o;7965:142::-;1829:135:51;;;940:4;1829:135;;;;;7494:365:66;1007:16578:98;;;;;;;;7820:24:66;:::o;7242:3683::-;;;-1:-1:-1;;7242:3683:66;;1412:159;;;;;;;;;;;;;;;;7498:9;;7494:365;;7969:19;;;;7965:142;;8390:308;;;;940:4:51;1007:16578:98;940:4:51;8917:31:66;;8962:384;;;9800:1;940:4:51;9781:1:66;940:4:51;9780:21:66;940:4:51;;;9800:1:66;940:4:51;;;;;9800:1:66;940:4:51;;;;;9800:1:66;940:4:51;;;;;9800:1:66;940:4:51;;;;;9800:1:66;940:4:51;;;;;9800:1:66;940:4:51;;8962:384:66;;;;1007:16578:98;8962:384:66;;;8390:308;;;;;;940:4:51;8390:308:66;;8962:384;9409:18;940:4:51;7242:3683:66;:::o;7965:142::-;1829:135:51;;1007:16578:98;1829:135:51;8028:16:66;5312:5;940:4:51;;5306:42:66;1829:135:51;;;;;7494:365:66;1007:16578:98;;;;;;;;;7820:24:66;:::o;1007:16578:98:-;;;;;;;;;;;;1219:160:43;1007:16578:98;;-1:-1:-1;;;1328:43:43;;;;-1:-1:-1;;;;;1007:16578:98;;;;1328:43:43;;;1007:16578:98;;;;;;;;;1328:43:43;;;;;;1007:16578:98;;1328:43:43;:::i;:::-;;:::i;1007:16578:98:-;6090:10;1007:16578;;;;;;6090:10;-1:-1:-1;1007:16578:98;;-1:-1:-1;1007:16578:98;;;-1:-1:-1;1007:16578:98;:::o;:::-;;;;;;;;-1:-1:-1;1007:16578:98;;-1:-1:-1;1007:16578:98;;;-1:-1:-1;1007:16578:98;:::o;3071:1368:70:-;1007:16578:98;;;;3266:14:70;1007:16578:98;;;;;;3302:13:70;;;;-1:-1:-1;;1007:16578:98;;;;;;;9379:10;1007:16578;-1:-1:-1;;1007:16578:98;;;;;;;;3777:23:70;;;3773:378;;3298:1135;1007:16578:98;;;9379:10;1007:16578;;;;;-1:-1:-1;;1007:16578:98;;;9379:10;1007:16578;:::i;:::-;;;;;;;;;;;;;;9379:10;1007:16578;;;3266:14:70;1007:16578:98;;;;;;;3266:14:70;4368:11;:::o;1007:16578:98:-;;;;;;;;;;;;3773:378:70;1007:16578:98;3840:22:70;3961:23;3840:22;9379:10:98;3840:22:70;:::i;:::-;1007:16578:98;;;;;;3961:23:70;;;9379:10:98;3961:23:70;:::i;:::-;1007:16578:98;;;;;;;;;;;;;;;;;;;;;;;;;3266:14:70;1007:16578:98;;;;;;3773:378:70;;;;;3298:1135;4410:12;;1007:16578:98;4410:12:70;:::o;2497:406::-;1007:16578:98;;;5197:14:70;1007:16578:98;;;;;;5197:26:70;2576:321;2580:22;;;9321:10:98;1007:16578;-1:-1:-1;;;1007:16578:98;;;;;;;;5197:14:70;1007:16578:98;;;9321:10;1007:16578;9321:10;1007:16578;:::i;:::-;;;9321:10;1007:16578;;;;5197:14:70;1007:16578:98;;;;;;5197:14:70;2832:11;:::o;2576:321::-;2874:12;1007:16578:98;2874:12:70;:::o;8370:720:43:-;;-1:-1:-1;8507:421:43;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:43;;8942:15;;-1:-1:-1;;;;;;1007:16578:98;;8960:26:43;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:43;;;-1:-1:-1;;;;;1007:16578:98;;;;9033:40:43;1007:16578:98;;;9033:40:43;8942:68;9009:1;8994:16;;8942:68;","linkReferences":{}},"methodIdentifiers":{"FEE_RANGE()":"fbde47f6","acceptOwnership()":"79ba5097","allowlistEnabled()":"94c8e4ff","claim(uint256,address,uint256,bytes32[])":"2e7ba6ef","claimed(uint256,address)":"120aa877","distribute(address,uint256,bytes32)":"e39f06bd","distributions(uint256)":"4487d3df","feePercentage()":"a001ecdd","feeRecipient()":"46904840","getAllowlist()":"c5eff3d0","getAllowlistAt(uint256)":"49891e99","getAllowlistLength()":"64d042f0","getAllowlistPaginated(uint256,uint256)":"e7a96ca1","getDistribution(uint256)":"3b345a87","getDistributionCount()":"42c91605","getDistributions(uint256,uint256)":"147a7a5b","isAllowlisted(address)":"05a3b809","merkleSnapshot()":"6cf9e2f2","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pendingOwner()":"e30c3978","setAllowlistEnabled(bool)":"d7644ba2","setFeePercentage(uint256)":"ae06c1b7","setFeeRecipient(address)":"e74b981b","setMerkleSnapshot(address)":"54dcb7b9","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateDistributorAllowance(address,bool)":"16166241"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"merkleSnapshot_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeRecipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage_\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allowlistEnabled_\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDistribute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DistributionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FailedToTransferFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FailedToTransferTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNativeTokenTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNativeTokenTransferAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPendingOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedMerkleRoot\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newAmountDistributed\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"canDistribute\",\"type\":\"bool\"}],\"name\":\"DistributorAllowanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DistributorAllowlistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"previousFeePercentage\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newFeePercentage\",\"type\":\"uint256\"}],\"name\":\"FeePercentageSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousFeeRecipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"FeeRecipientSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"MerkleSnapshotUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FEE_RANGE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowlistEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"expectedRoot\",\"type\":\"bytes32\"}],\"name\":\"distribute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"distributions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalMerkleValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDistributed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feePercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllowlist\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAllowlistAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllowlistLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getAllowlistPaginated\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"}],\"name\":\"getDistribution\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalMerkleValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDistributed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleFundDistributor.DistributionState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDistributionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getDistributions\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalMerkleValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDistributed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleFundDistributor.DistributionState[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"}],\"name\":\"isAllowlisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleSnapshot\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"allowlistEnabled_\",\"type\":\"bool\"}],\"name\":\"setAllowlistEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeePercentage\",\"type\":\"uint256\"}],\"name\":\"setFeePercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMerkleSnapshot\",\"type\":\"address\"}],\"name\":\"setMerkleSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"canDistribute_\",\"type\":\"bool\"}],\"name\":\"updateDistributorAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: allow distributor to refund unclaimed funds? after expiration? to retrieve dust/rounding losses?TODO: restrict claim function to sender-only (instead of anyone)?\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Claimed(uint256,address,address,uint256,uint256,uint256)\":{\"params\":{\"account\":\"The address that claimed the tokens.\",\"amount\":\"The amount of token claimed.\",\"distributionIndex\":\"The index of the distribution.\",\"newAmountDistributed\":\"The new total amount of tokens distributed after the claim.\",\"token\":\"The token claimed.\",\"value\":\"The merkle tree value.\"}},\"Distributed(uint256,address,address,uint256,uint256)\":{\"params\":{\"amountFunded\":\"The amount of token funded.\",\"distributionIndex\":\"The index of the distribution.\",\"distributor\":\"The distributor address.\",\"feeAmount\":\"The amount of token retained as a fee.\",\"token\":\"The token distributed.\"}},\"DistributorAllowanceUpdated(address,bool)\":{\"params\":{\"canDistribute\":\"The distributor's ability to distribute funds.\",\"distributor\":\"The distributor address.\"}},\"DistributorAllowlistUpdated(bool)\":{\"params\":{\"enabled\":\"The distributor's allowlist status.\"}},\"FeePercentageSet(uint256,uint256)\":{\"params\":{\"newFeePercentage\":\"The new fee percentage.\",\"previousFeePercentage\":\"The previous fee percentage.\"}},\"FeeRecipientSet(address,address)\":{\"params\":{\"newFeeRecipient\":\"The new fee recipient address.\",\"previousFeeRecipient\":\"The previous fee recipient address.\"}},\"MerkleSnapshotUpdated(address,address)\":{\"params\":{\"newContract\":\"The new merkle snapshot contract address.\",\"previousContract\":\"The previous merkle snapshot contract address.\"}},\"OwnershipTransferStarted(address)\":{\"params\":{\"pendingOwner\":\"The pending owner of the contract.\"}},\"OwnershipTransferred(address,address)\":{\"params\":{\"newOwner\":\"The new owner of the contract.\",\"previousOwner\":\"The previous owner of the contract.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"Only the pending owner can accept the ownership transfer.\"},\"claim(uint256,address,uint256,bytes32[])\":{\"details\":\"Anyone can claim tokens on behalf of an account.\",\"params\":{\"account\":\"The address to claim tokens for.\",\"distributionIndex\":\"The index of the distribution to claim tokens for.\",\"proof\":\"The merkle proof that validates this claim.\",\"value\":\"The merkle tree value.\"},\"returns\":{\"claimedAmount\":\"The amount of tokens claimed.\"}},\"constructor\":{\"params\":{\"allowlistEnabled_\":\"Whether the distributor allowlist is enabled.\",\"feePercentage_\":\"The fee percentage taken from the distributed amount\",\"feeRecipient_\":\"The fee recipient address\",\"merkleSnapshot_\":\"The MerkleSnapshot contract address\",\"owner_\":\"The owner of the contract\"}},\"distribute(address,uint256,bytes32)\":{\"details\":\"Only distributors can distribute funds.\",\"params\":{\"amount\":\"The amount of token to distribute.\",\"expectedRoot\":\"The expected root of the merkle tree to add an additional layer of security (pass 0 to skip).\",\"token\":\"The token to distribute.\"},\"returns\":{\"distributionIndex\":\"The index of the distribution.\"}},\"getAllowlist()\":{\"returns\":{\"_0\":\"All allowlisted addresses.\"}},\"getAllowlistAt(uint256)\":{\"params\":{\"index\":\"The index to query.\"},\"returns\":{\"_0\":\"The address at the index.\"}},\"getAllowlistLength()\":{\"returns\":{\"_0\":\"The allowlist length.\"}},\"getAllowlistPaginated(uint256,uint256)\":{\"params\":{\"limit\":\"The number of addresses to return.\",\"offset\":\"The offset to start from.\"},\"returns\":{\"_0\":\"result The allowlisted addresses.\"}},\"getDistribution(uint256)\":{\"params\":{\"distributionIndex\":\"The index of the distribution.\"},\"returns\":{\"_0\":\"distribution The distribution.\"}},\"getDistributionCount()\":{\"returns\":{\"total\":\"The total number of distributions.\"}},\"getDistributions(uint256,uint256)\":{\"params\":{\"limit\":\"The number of distributions to return.\",\"offset\":\"The offset to start from.\"},\"returns\":{\"_0\":\"result The distributions.\"}},\"isAllowlisted(address)\":{\"params\":{\"distributor\":\"The address to check.\"},\"returns\":{\"_0\":\"True if the address is in the allowlist.\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"setAllowlistEnabled(bool)\":{\"params\":{\"allowlistEnabled_\":\"Whether the distributor allowlist is enabled.\"}},\"setFeePercentage(uint256)\":{\"params\":{\"newFeePercentage\":\"The new fee percentage.\"}},\"setFeeRecipient(address)\":{\"params\":{\"newFeeRecipient\":\"The new fee recipient address.\"}},\"setMerkleSnapshot(address)\":{\"params\":{\"newMerkleSnapshot\":\"The new merkle snapshot contract address.\"}},\"transferOwnership(address)\":{\"params\":{\"newOwner\":\"The new owner of the contract.\"}},\"updateDistributorAllowance(address,bool)\":{\"params\":{\"canDistribute_\":\"The distributor's ability to distribute funds.\",\"distributor\":\"The distributor address.\"}}},\"stateVariables\":{\"FEE_RANGE\":{\"details\":\"1e18 = 100%1e17 = 10%1e16 = 1%1e15 = 0.1%\"}},\"title\":\"MerkleFundDistributor\",\"version\":1},\"userdoc\":{\"events\":{\"Claimed(uint256,address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when tokens are claimed.\"},\"Distributed(uint256,address,address,uint256,uint256)\":{\"notice\":\"Emitted when funds are distributed.\"},\"DistributorAllowanceUpdated(address,bool)\":{\"notice\":\"Emitted when a distributor's ability to distribute funds is updated.\"},\"DistributorAllowlistUpdated(bool)\":{\"notice\":\"Emitted when the distributor allowlist is enabled/disabled.\"},\"FeePercentageSet(uint256,uint256)\":{\"notice\":\"Emitted when the fee percentage is set.\"},\"FeeRecipientSet(address,address)\":{\"notice\":\"Emitted when the fee recipient is set.\"},\"MerkleSnapshotUpdated(address,address)\":{\"notice\":\"Emitted when the merkle snapshot contract is updated.\"},\"OwnershipTransferStarted(address)\":{\"notice\":\"Emitted when owner starts 2-step ownership transfer to `pendingOwner`.\"},\"OwnershipTransferred(address,address)\":{\"notice\":\"Emitted when the owner of the contract is set.\"}},\"kind\":\"user\",\"methods\":{\"FEE_RANGE()\":{\"notice\":\"The range of the fee percentage.\"},\"acceptOwnership()\":{\"notice\":\"Accepts the ownership transfer.\"},\"allowlistEnabled()\":{\"notice\":\"Whether the distributor allowlist is enabled.\"},\"claim(uint256,address,uint256,bytes32[])\":{\"notice\":\"Claims tokens for a given distribution.\"},\"claimed(uint256,address)\":{\"notice\":\"The `amount` claimed by `account` for a given distribution.\"},\"constructor\":{\"notice\":\"Initialize the contract\"},\"distribute(address,uint256,bytes32)\":{\"notice\":\"Distributes funds.\"},\"distributions(uint256)\":{\"notice\":\"The distributions.\"},\"feePercentage()\":{\"notice\":\"The fee percentage taken from the distributed amount.\"},\"feeRecipient()\":{\"notice\":\"The fee recipient address.\"},\"getAllowlist()\":{\"notice\":\"Returns all addresses in the allowlist.\"},\"getAllowlistAt(uint256)\":{\"notice\":\"Returns the address at a given index in the allowlist.\"},\"getAllowlistLength()\":{\"notice\":\"Returns the number of addresses in the allowlist.\"},\"getAllowlistPaginated(uint256,uint256)\":{\"notice\":\"Returns paginated addresses in the allowlist.\"},\"getDistribution(uint256)\":{\"notice\":\"Gets a distribution by index.\"},\"getDistributionCount()\":{\"notice\":\"Returns the total number of distributions.\"},\"getDistributions(uint256,uint256)\":{\"notice\":\"Gets paginated distributions.\"},\"isAllowlisted(address)\":{\"notice\":\"Checks if an address is in the allowlist.\"},\"merkleSnapshot()\":{\"notice\":\"Address of the MerkleSnapshot contract to query for merkle state\"},\"owner()\":{\"notice\":\"The address that can update the distribution parameters.\"},\"pause()\":{\"notice\":\"Pauses the contract.\"},\"pendingOwner()\":{\"notice\":\"The pending owner address (for 2-step ownership transfer).\"},\"setAllowlistEnabled(bool)\":{\"notice\":\"Sets the `allowlistEnabled` of the contract to `allowlistEnabled_`.\"},\"setFeePercentage(uint256)\":{\"notice\":\"Sets the `feePercentage` of the contract to `newFeePercentage`.\"},\"setFeeRecipient(address)\":{\"notice\":\"Sets the `feeRecipient` of the contract to `newFeeRecipient`.\"},\"setMerkleSnapshot(address)\":{\"notice\":\"Sets the `merkleSnapshot` of the contract to `newMerkleSnapshot`.\"},\"transferOwnership(address)\":{\"notice\":\"Starts 2-step ownership transfer to `newOwner`.\"},\"unpause()\":{\"notice\":\"Unpauses the contract.\"},\"updateDistributorAllowance(address,bool)\":{\"notice\":\"Updates a distributor's ability to distribute funds.\"}},\"notice\":\"A contract for distributing funds from a merkle tree.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/merkle/MerkleFundDistributor.sol\":\"MerkleFundDistributor\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"node_modules/@openzeppelin/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"src/contracts/merkle/MerkleFundDistributor.sol\":{\"keccak256\":\"0x9a8e337089f58557b4594dc3d7d71535ef3f9313e1163b2b8037d9dab7f9e3cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7900ba1c3e2bcd07d918c29535215d9f2969481ae0508ea4a43d51151336b21f\",\"dweb:/ipfs/QmdBqV9A24ZVX6okGVedNn75TQCJGR8M9ykbvWaKicWNGS\"]},\"src/interfaces/IMerkleFundDistributor.sol\":{\"keccak256\":\"0x993d16dd10e7353d3649eb96803e2139fcdeb9871e90c2ef0b1f3c055b404157\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fde5728ce681d483d6fa10383ccbbb4f5370d0980e230baa6e364a9a26a2761\",\"dweb:/ipfs/Qmd1Y4jeXKkH8SDRVPgLm29LkLP5a3tCwv2yu4yVny69XZ\"]},\"src/interfaces/merkle/IMerkleSnapshot.sol\":{\"keccak256\":\"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66\",\"dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"merkleSnapshot_","type":"address"},{"internalType":"address","name":"feeRecipient_","type":"address"},{"internalType":"uint256","name":"feePercentage_","type":"uint256"},{"internalType":"bool","name":"allowlistEnabled_","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"CannotDistribute"},{"inputs":[],"type":"error","name":"DistributionNotFound"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"type":"error","name":"FailedToTransferFee"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"type":"error","name":"FailedToTransferTokens"},{"inputs":[],"type":"error","name":"FeePercentageTooHigh"},{"inputs":[],"type":"error","name":"InvalidAddress"},{"inputs":[],"type":"error","name":"InvalidMerkleProof"},{"inputs":[],"type":"error","name":"InvalidMerkleState"},{"inputs":[],"type":"error","name":"InvalidNativeTokenTransfer"},{"inputs":[],"type":"error","name":"InvalidNativeTokenTransferAmount"},{"inputs":[],"type":"error","name":"NoFundsToClaim"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotPendingOwner"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"UnexpectedMerkleRoot"},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint256","name":"newAmountDistributed","type":"uint256","indexed":false}],"type":"event","name":"Claimed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256","indexed":true},{"internalType":"address","name":"distributor","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amountFunded","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"distributor","type":"address","indexed":true},{"internalType":"bool","name":"canDistribute","type":"bool","indexed":true}],"type":"event","name":"DistributorAllowanceUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool","indexed":true}],"type":"event","name":"DistributorAllowlistUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"previousFeePercentage","type":"uint256","indexed":true},{"internalType":"uint256","name":"newFeePercentage","type":"uint256","indexed":true}],"type":"event","name":"FeePercentageSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousFeeRecipient","type":"address","indexed":true},{"internalType":"address","name":"newFeeRecipient","type":"address","indexed":true}],"type":"event","name":"FeeRecipientSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousContract","type":"address","indexed":true},{"internalType":"address","name":"newContract","type":"address","indexed":true}],"type":"event","name":"MerkleSnapshotUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"FEE_RANGE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"allowlistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"claimedAmount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"claimed","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"expectedRoot","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"distribute","outputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"distributions","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalMerkleValue","type":"uint256"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountFunded","type":"uint256"},{"internalType":"uint256","name":"amountDistributed","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllowlist","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAllowlistAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllowlistLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAllowlistPaginated","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDistribution","outputs":[{"internalType":"struct IMerkleFundDistributor.DistributionState","name":"","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalMerkleValue","type":"uint256"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountFunded","type":"uint256"},{"internalType":"uint256","name":"amountDistributed","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDistributionCount","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDistributions","outputs":[{"internalType":"struct IMerkleFundDistributor.DistributionState[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalMerkleValue","type":"uint256"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountFunded","type":"uint256"},{"internalType":"uint256","name":"amountDistributed","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"distributor","type":"address"}],"stateMutability":"view","type":"function","name":"isAllowlisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"merkleSnapshot","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"allowlistEnabled_","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setAllowlistEnabled"},{"inputs":[{"internalType":"uint256","name":"newFeePercentage","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setFeePercentage"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeRecipient"},{"inputs":[{"internalType":"address","name":"newMerkleSnapshot","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMerkleSnapshot"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"},{"internalType":"bool","name":"canDistribute_","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"updateDistributorAllowance"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"Only the pending owner can accept the ownership transfer."},"claim(uint256,address,uint256,bytes32[])":{"details":"Anyone can claim tokens on behalf of an account.","params":{"account":"The address to claim tokens for.","distributionIndex":"The index of the distribution to claim tokens for.","proof":"The merkle proof that validates this claim.","value":"The merkle tree value."},"returns":{"claimedAmount":"The amount of tokens claimed."}},"constructor":{"params":{"allowlistEnabled_":"Whether the distributor allowlist is enabled.","feePercentage_":"The fee percentage taken from the distributed amount","feeRecipient_":"The fee recipient address","merkleSnapshot_":"The MerkleSnapshot contract address","owner_":"The owner of the contract"}},"distribute(address,uint256,bytes32)":{"details":"Only distributors can distribute funds.","params":{"amount":"The amount of token to distribute.","expectedRoot":"The expected root of the merkle tree to add an additional layer of security (pass 0 to skip).","token":"The token to distribute."},"returns":{"distributionIndex":"The index of the distribution."}},"getAllowlist()":{"returns":{"_0":"All allowlisted addresses."}},"getAllowlistAt(uint256)":{"params":{"index":"The index to query."},"returns":{"_0":"The address at the index."}},"getAllowlistLength()":{"returns":{"_0":"The allowlist length."}},"getAllowlistPaginated(uint256,uint256)":{"params":{"limit":"The number of addresses to return.","offset":"The offset to start from."},"returns":{"_0":"result The allowlisted addresses."}},"getDistribution(uint256)":{"params":{"distributionIndex":"The index of the distribution."},"returns":{"_0":"distribution The distribution."}},"getDistributionCount()":{"returns":{"total":"The total number of distributions."}},"getDistributions(uint256,uint256)":{"params":{"limit":"The number of distributions to return.","offset":"The offset to start from."},"returns":{"_0":"result The distributions."}},"isAllowlisted(address)":{"params":{"distributor":"The address to check."},"returns":{"_0":"True if the address is in the allowlist."}},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"setAllowlistEnabled(bool)":{"params":{"allowlistEnabled_":"Whether the distributor allowlist is enabled."}},"setFeePercentage(uint256)":{"params":{"newFeePercentage":"The new fee percentage."}},"setFeeRecipient(address)":{"params":{"newFeeRecipient":"The new fee recipient address."}},"setMerkleSnapshot(address)":{"params":{"newMerkleSnapshot":"The new merkle snapshot contract address."}},"transferOwnership(address)":{"params":{"newOwner":"The new owner of the contract."}},"updateDistributorAllowance(address,bool)":{"params":{"canDistribute_":"The distributor's ability to distribute funds.","distributor":"The distributor address."}}},"version":1},"userdoc":{"kind":"user","methods":{"FEE_RANGE()":{"notice":"The range of the fee percentage."},"acceptOwnership()":{"notice":"Accepts the ownership transfer."},"allowlistEnabled()":{"notice":"Whether the distributor allowlist is enabled."},"claim(uint256,address,uint256,bytes32[])":{"notice":"Claims tokens for a given distribution."},"claimed(uint256,address)":{"notice":"The `amount` claimed by `account` for a given distribution."},"constructor":{"notice":"Initialize the contract"},"distribute(address,uint256,bytes32)":{"notice":"Distributes funds."},"distributions(uint256)":{"notice":"The distributions."},"feePercentage()":{"notice":"The fee percentage taken from the distributed amount."},"feeRecipient()":{"notice":"The fee recipient address."},"getAllowlist()":{"notice":"Returns all addresses in the allowlist."},"getAllowlistAt(uint256)":{"notice":"Returns the address at a given index in the allowlist."},"getAllowlistLength()":{"notice":"Returns the number of addresses in the allowlist."},"getAllowlistPaginated(uint256,uint256)":{"notice":"Returns paginated addresses in the allowlist."},"getDistribution(uint256)":{"notice":"Gets a distribution by index."},"getDistributionCount()":{"notice":"Returns the total number of distributions."},"getDistributions(uint256,uint256)":{"notice":"Gets paginated distributions."},"isAllowlisted(address)":{"notice":"Checks if an address is in the allowlist."},"merkleSnapshot()":{"notice":"Address of the MerkleSnapshot contract to query for merkle state"},"owner()":{"notice":"The address that can update the distribution parameters."},"pause()":{"notice":"Pauses the contract."},"pendingOwner()":{"notice":"The pending owner address (for 2-step ownership transfer)."},"setAllowlistEnabled(bool)":{"notice":"Sets the `allowlistEnabled` of the contract to `allowlistEnabled_`."},"setFeePercentage(uint256)":{"notice":"Sets the `feePercentage` of the contract to `newFeePercentage`."},"setFeeRecipient(address)":{"notice":"Sets the `feeRecipient` of the contract to `newFeeRecipient`."},"setMerkleSnapshot(address)":{"notice":"Sets the `merkleSnapshot` of the contract to `newMerkleSnapshot`."},"transferOwnership(address)":{"notice":"Starts 2-step ownership transfer to `newOwner`."},"unpause()":{"notice":"Unpauses the contract."},"updateDistributorAllowance(address,bool)":{"notice":"Updates a distributor's ability to distribute funds."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/merkle/MerkleFundDistributor.sol":"MerkleFundDistributor"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134","urls":["bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6","dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"src/contracts/merkle/MerkleFundDistributor.sol":{"keccak256":"0x9a8e337089f58557b4594dc3d7d71535ef3f9313e1163b2b8037d9dab7f9e3cd","urls":["bzz-raw://7900ba1c3e2bcd07d918c29535215d9f2969481ae0508ea4a43d51151336b21f","dweb:/ipfs/QmdBqV9A24ZVX6okGVedNn75TQCJGR8M9ykbvWaKicWNGS"],"license":"MIT"},"src/interfaces/IMerkleFundDistributor.sol":{"keccak256":"0x993d16dd10e7353d3649eb96803e2139fcdeb9871e90c2ef0b1f3c055b404157","urls":["bzz-raw://6fde5728ce681d483d6fa10383ccbbb4f5370d0980e230baa6e364a9a26a2761","dweb:/ipfs/Qmd1Y4jeXKkH8SDRVPgLm29LkLP5a3tCwv2yu4yVny69XZ"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshot.sol":{"keccak256":"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0","urls":["bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66","dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"},{"name":"merkleSnapshot_","type":"address","internalType":"address"},{"name":"feeRecipient_","type":"address","internalType":"address"},{"name":"feePercentage_","type":"uint256","internalType":"uint256"},{"name":"allowlistEnabled_","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"FEE_RANGE","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowlistEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"claimedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimed","inputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"distribute","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"expectedRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"distributions","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalMerkleValue","type":"uint256","internalType":"uint256"},{"name":"distributor","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amountFunded","type":"uint256","internalType":"uint256"},{"name":"amountDistributed","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"feePercentage","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"feeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAllowlist","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getAllowlistAt","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAllowlistLength","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAllowlistPaginated","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getDistribution","inputs":[{"name":"distributionIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IMerkleFundDistributor.DistributionState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalMerkleValue","type":"uint256","internalType":"uint256"},{"name":"distributor","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amountFunded","type":"uint256","internalType":"uint256"},{"name":"amountDistributed","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getDistributionCount","inputs":[],"outputs":[{"name":"total","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDistributions","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IMerkleFundDistributor.DistributionState[]","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalMerkleValue","type":"uint256","internalType":"uint256"},{"name":"distributor","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amountFunded","type":"uint256","internalType":"uint256"},{"name":"amountDistributed","type":"uint256","internalType":"uint256"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"isAllowlisted","inputs":[{"name":"distributor","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"merkleSnapshot","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setAllowlistEnabled","inputs":[{"name":"allowlistEnabled_","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeePercentage","inputs":[{"name":"newFeePercentage","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeRecipient","inputs":[{"name":"newFeeRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMerkleSnapshot","inputs":[{"name":"newMerkleSnapshot","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateDistributorAllowance","inputs":[{"name":"distributor","type":"address","internalType":"address"},{"name":"canDistribute_","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Claimed","inputs":[{"name":"distributionIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newAmountDistributed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"distributionIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"distributor","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amountFunded","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DistributorAllowanceUpdated","inputs":[{"name":"distributor","type":"address","indexed":true,"internalType":"address"},{"name":"canDistribute","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"DistributorAllowlistUpdated","inputs":[{"name":"enabled","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeePercentageSet","inputs":[{"name":"previousFeePercentage","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newFeePercentage","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FeeRecipientSet","inputs":[{"name":"previousFeeRecipient","type":"address","indexed":true,"internalType":"address"},{"name":"newFeeRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MerkleSnapshotUpdated","inputs":[{"name":"previousContract","type":"address","indexed":true,"internalType":"address"},{"name":"newContract","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"CannotDistribute","inputs":[]},{"type":"error","name":"DistributionNotFound","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedToTransferFee","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FailedToTransferTokens","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FeePercentageTooHigh","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidMerkleState","inputs":[]},{"type":"error","name":"InvalidNativeTokenTransfer","inputs":[]},{"type":"error","name":"InvalidNativeTokenTransferAmount","inputs":[]},{"type":"error","name":"NoFundsToClaim","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotPendingOwner","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnexpectedMerkleRoot","inputs":[{"name":"expected","type":"bytes32","internalType":"bytes32"},{"name":"actual","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60803461023157601f611e4d38819003918201601f19168301916001600160401b038311848410176102355780849260a0946040528339810103126102315761004781610249565b61005360208301610249565b9161006060408201610249565b60806060830151920151928315158094036102315760015f55600280546001600160a01b031916339081179091556001600160a01b03919091169081036101ef575b506001600160a01b03841680156101e05760018054610100600160a81b03198116600897881b610100600160a81b031617909155604051951c6001600160a01b03167f290b5b697667cd09b02cb127b1373ddec2945c79dc93b89eb90ec95bbfd4a8205f80a36001600160a01b031680156101e057600480546001600160a01b0319811683179091556001600160a01b03167f15d80a013f22151bc7246e3bc132e12828cde19de98870475e3fa708401527215f80a3670de0b6b3a764000081116101d157600554816005557fa877b684a58e916e04f646f3112557d0e77a19efe4766f9438020e5821a131395f80a360ff196006541660ff8216176006557f8cfcfe73491d25685798989c7e3119522126c3438593e50e7d47bfd212b45e5f5f80a2611bef908161025e8239f35b635841c1b960e01b5f5260045ffd5b63e6c4247b60e01b5f5260045ffd5b80156101e057600380546001600160a01b031916821790557fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a8765f80a25f6100a2565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102315756fe60806040526004361015610011575f80fd5b5f3560e01c806305a3b80914611212578063120aa877146111ce578063147a7a5b1461115157806316166241146110b75780632e7ba6ef14610dfe5780633b345a8714610db95780633f4ba83a14610d4957806342c9160514610d2c5780634487d3df14610c4b5780634690484014610c2357806349891e9914610bec57806354dcb7b914610b5c5780635c975abb14610b3a57806364d042f014610b1d5780636cf9e2f214610af157806379ba509714610a735780638456cb5914610a115780638da5cb5b146109e957806394c8e4ff146109c7578063a001ecdd146109aa578063ae06c1b714610938578063c5eff3d0146108c4578063d7644ba21461085f578063e30c397814610837578063e39f06bd146102b5578063e74b981b14610238578063e7a96ca11461020e578063f2fde38b1461017e5763fbde47f614610158575f80fd5b3461017a575f36600319011261017a576020604051670de0b6b3a76400008152f35b5f80fd5b3461017a57602036600319011261017a57610197611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600380546001600160a01b031916821790557fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a8765f80a2005b63e6c4247b60e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b3461017a5761023461022861022236611280565b90611782565b604051918291826114a6565b0390f35b3461017a57602036600319011261017a57610251611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600480546001600160a01b0319811683179091556001600160a01b03167f15d80a013f22151bc7246e3bc132e12828cde19de98870475e3fa708401527215f80a3005b606036600319011261017a576102c9611254565b6024359060443560ff600654168061081b575b61080c576004926102eb611841565b6102f361185f565b6001546040516305b209d760e31b8152945f91869190829060081c6001600160a01b03165afa938415610801575f94610716575b506040840191825115801561070a575b6106fb57801515806106f0575b6106d857506103556005548261187a565b938460095494859451908460608501519160a060808701519601519360018060a01b03600454169460405197889561038c876113c7565b438752602087019342855260408801908152606088019182526080880192835260a0880193845260c0880194338652600160401b60e08a019760018060a01b03169e8f89526101008b01998a526101606101208c019b5f8d5261014081019d8e52019c8d5210156106b1576104078f6001810160095561135f565b9c909c6106c557518c555160018c01555160028b01555160038a015551805160048a019167ffffffffffffffff82116106b157610444835461138f565b601f811161066c575b50602090601f83116001146105ff57600b9a9998979695949392915f91836105f4575b50508160011b915f199060031b1c19161790555b516005890155516006880180546001600160a01b039283166001600160a01b031991821617909155915160078901805491831691841691909117905591516008880155915160098701559151600a86018054919093169116179055519101558161058757803403610578575f8080808760018060a01b03600454165af19361050a611753565b941561055257602094505b60405191825284820152827f6b4c9c70a653efa82eeee564c5938294bb39a053f240e8b1e9da72490424fcca60403393a460015f55604051908152f35b604051634322d6f760e01b815260206004820152806105746024820188611296565b0390fd5b63136a0a1960e01b5f5260045ffd5b346105e5576020936105c86040516323b872dd60e01b87820152336024820152306044820152836064820152606481526105c26084826113e4565b84611b61565b6004546105e09082906001600160a01b0316856119c3565b610515565b630390ad5760e21b5f5260045ffd5b015190505f80610470565b90601f19831691845f52815f20925f5b8181106106545750916001939185600b9e9d9c9b9a99989796941061063c575b505050811b019055610484565b01515f1960f88460031b161c191690555f808061062f565b9293602060018192878601518155019501930161060f565b835f5260205f20601f840160051c810191602085106106a7575b601f0160051c01905b81811061069c575061044d565b5f815560010161068f565b9091508190610686565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f525f60045260245ffd5b8251906305973d0b60e01b5f5260045260245260445ffd5b508083511415610344565b6352e8439560e11b5f5260045ffd5b5060a085015115610337565b9093503d805f833e61072881836113e4565b81019060208183031261017a5780519067ffffffffffffffff821161017a57019060c08282031261017a576040519160c0830183811067ffffffffffffffff8211176106b15760405280518352602081015160208401526040810151604084015260608101516060840152608081015167ffffffffffffffff811161017a5781019180601f8401121561017a5782516107c081611737565b916107ce60405193846113e4565b8183526020828601011161017a576020815f928260a097018386015e830101526080840152015160a08201529284610327565b6040513d5f823e3d90fd5b6351e624a760e01b5f5260045ffd5b50610831335f52600860205260405f2054151590565b156102dc565b3461017a575f36600319011261017a576003546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043580151580910361017a576002546001600160a01b031633036101ff5760ff196006541660ff8216176006557f8cfcfe73491d25685798989c7e3119522126c3438593e50e7d47bfd212b45e5f5f80a2005b3461017a575f36600319011261017a5760405180602060075491828152019060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688905f5b8181106109225761023485610228818703826113e4565b825484526020909301926001928301920161090b565b3461017a57602036600319011261017a57600254600435906001600160a01b031633036101ff57670de0b6b3a7640000811161099b57600554816005557fa877b684a58e916e04f646f3112557d0e77a19efe4766f9438020e5821a131395f80a3005b635841c1b960e01b5f5260045ffd5b3461017a575f36600319011261017a576020600554604051908152f35b3461017a575f36600319011261017a57602060ff600654166040519015158152f35b3461017a575f36600319011261017a576002546040516001600160a01b039091168152602090f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff57610a3b61185f565b600160ff19815416176001557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017a575f36600319011261017a576003546001600160a01b0381163303610ae25760028054336001600160a01b03198083168217909355929091166003556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b630614e5c760e21b5f5260045ffd5b3461017a575f36600319011261017a5760015460405160089190911c6001600160a01b03168152602090f35b3461017a575f36600319011261017a576020600754604051908152f35b3461017a575f36600319011261017a57602060ff600154166040519015158152f35b3461017a57602036600319011261017a57610b75611254565b6002546001600160a01b031633036101ff576001600160a01b0381169081156101f05760018054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f290b5b697667cd09b02cb127b1373ddec2945c79dc93b89eb90ec95bbfd4a8205f80a3005b3461017a57602036600319011261017a576020610c0a600435611a04565b905460405160039290921b1c6001600160a01b03168152f35b3461017a575f36600319011261017a576004546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043560095481101561017a57610c729061135f565b5080546001820154916002810154600382015491610c9260048201611406565b9260058201549360018060a01b0360068401541660018060a01b0360078501541690610d00600886015493600987015495600b60018060a01b03600a8a015416980154986040519c8d9c8d5260208d015260408c015260608b015261018060808b01526101808a0190611296565b9660a089015260c088015260e08701526101008601526101208501526101408401526101608301520390f35b3461017a575f36600319011261017a576020600954604051908152f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff5760015460ff811615610daa5760ff19166001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017a57602036600319011261017a57610dd2611500565b50610234610dea610de460043561135f565b5061159b565b6040519182916020835260208301906112ba565b3461017a57608036600319011261017a57600435610e1a61126a565b60643560443567ffffffffffffffff821161017a573660238301121561017a5781600401359267ffffffffffffffff841161017a573660248560051b8501011161017a57610e66611841565b610e6e61185f565b6009548510156110a8576001600160a01b03811680156101f057610e918661135f565b509060028201549687156110a857805f52600a60205260405f20825f5260205260405f205461109957604080516001600160a01b03861660208201908152818301889052918152610ee36060826113e4565b5190206040516020810191825260208152610eff6040826113e4565b519020975f985b888a1015610f475760248a60051b89010135908181105f14610f36575f52602052600160405f205b990198610f06565b905f52602052600160405f20610f2e565b0361108a57610f6e610f626008850154600b8601549061157a565b86600586015491611910565b93841561107b57815f52600a60205260405f20835f526020528460405f205560076009850194610f9f878754611559565b86550180549091906001600160a01b0316806110445750505f80808088875af1610fc7611753565b901561101f575060606020967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5925b60018060a01b03905416955460405191888352898301526040820152a460015f55604051908152f35b604051631fd027f560e21b815260206004820152908190610574906024830190611296565b967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5926110768860609460209b6119c3565b610ff6565b63dff46e2b60e01b5f5260045ffd5b63582f497d60e11b5f5260045ffd5b630c8d9eab60e31b5f5260045ffd5b633a35c2f960e01b5f5260045ffd5b3461017a57604036600319011261017a576110d0611254565b602435908115159182810361017a576002546001600160a01b031633036101ff5715611139576111086001600160a01b038216611b0c565b505b6001600160a01b03167f16ff14c1e52259396616f29c1de4d47a156f71aad6c16d756f3475db37187a3a5f80a3005b61114b6001600160a01b038216611a31565b5061110a565b3461017a5761116861116236611280565b90611636565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061119f57505050500390f35b919360019193955060206111be8192603f198a820301865288516112ba565b9601920192018594939192611190565b3461017a57604036600319011261017a576111e761126a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b3461017a57602036600319011261017a57602061124a6001600160a01b03611238611254565b165f52600860205260405f2054151590565b6040519015158152f35b600435906001600160a01b038216820361017a57565b602435906001600160a01b038216820361017a57565b604090600319011261017a576004359060243590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9081518152602082015160208201526040820151604082015260608201516060820152610160806112fc60808501516101806080860152610180850190611296565b9360a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e085015261010081015161010085015261012081015161012085015260018060a01b0361014082015116610140850152015191015290565b60095481101561137b5760095f52600c60205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c921680156113bd575b60208310146113a957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161139e565b610180810190811067ffffffffffffffff8211176106b157604052565b90601f8019910116810190811067ffffffffffffffff8211176106b157604052565b9060405191825f8254926114198461138f565b80845293600181169081156114845750600114611440575b5061143e925003836113e4565b565b90505f9291925260205f20905f915b81831061146857505090602061143e928201015f611431565b602091935080600191548385890101520191019091849261144f565b90506020925061143e94915060ff191682840152151560051b8201015f611431565b60206040818301928281528451809452019201905f5b8181106114c95750505090565b82516001600160a01b03168452602093840193909201916001016114bc565b67ffffffffffffffff81116106b15760051b60200190565b6040519061150d826113c7565b5f61016083828152826020820152826040820152826060820152606060808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b9190820180921161156657565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156657565b805182101561137b5760209160051b010190565b906040516115a8816113c7565b610160600b8294805484526001810154602085015260028101546040850152600381015460608501526115dd60048201611406565b6080850152600581015460a085015260068101546001600160a01b0390811660c08601526007820154811660e086015260088201546101008601526009820154610120860152600a820154166101408501520154910152565b9060095490818310156116fd5761164d9083611559565b908082116116f5575b50611661828261157a565b9161166b836114e8565b9261167960405194856113e4565b808452611688601f19916114e8565b015f5b8181106116de575050805b8281106116a35750505090565b806116d76116b260019361135f565b506116c66116c0868561157a565b9161159b565b6116d08289611587565b5286611587565b5001611696565b6020906116e9611500565b8282880101520161168b565b90505f611656565b50505060405161170e6020826113e4565b5f81525f805b81811061172057505090565b60209061172b611500565b82828601015201611714565b67ffffffffffffffff81116106b157601f01601f191660200190565b3d1561177d573d9061176482611737565b9161177260405193846113e4565b82523d5f602084013e565b606090565b906007549081831015611826576117999083611559565b9080821161181e575b506117ad828261157a565b916117b7836114e8565b926117c560405194856113e4565b8084526117d4601f19916114e8565b01366020850137805b8281106117ea5750505090565b806117f6600192611a04565b838060a01b0391549060031b1c16611817611811858461157a565b87611587565b52016117dd565b90505f6117a2565b5050506040516118376020826113e4565b5f81525f36813790565b60025f54146118505760025f55565b633ee5aeb560e01b5f5260045ffd5b60ff6001541661186b57565b63d93c066560e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146118fd5782670de0b6b3a764000011156118eb57507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b90915f1983830992808302928380861095039480860395146119a157848311156119895790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156119af570490565b634e487b7160e01b5f52601260045260245ffd5b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261143e916119ff6064836113e4565b611b61565b60075481101561137b5760075f5260205f2001905f90565b805482101561137b575f5260205f2001905f90565b5f818152600860205260409020548015611b06575f198101818111611566576007545f1981019190821161156657818103611ab8575b5050506007548015611aa4575f1901611a81816007611a1c565b8154905f199060031b1b191690556007555f5260086020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b611af0611ac9611ada936007611a1c565b90549060031b1c9283926007611a1c565b819391549060031b91821b915f19901b19161790565b90555f52600860205260405f20555f8080611a67565b50505f90565b805f52600860205260405f2054155f14611b5c57600754600160401b8110156106b157611b45611ada8260018594016007556007611a1c565b9055600754905f52600860205260405f2055600190565b505f90565b905f602091828151910182855af115610801575f513d611bb057506001600160a01b0381163b155b611b905750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611b8956fea2646970667358221220eab359e572d4446fd706042168d782a07c3566fa30b4e2d5cf6f791bb8586c0364736f6c634300081b0033","sourceMap":"1007:16578:93:-:0;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;1857:1:48;3495:18:93;1007:16578;;-1:-1:-1;;;;;;1007:16578:93;3503:10;1007:16578;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;3615:20;;3611:77;;-1:-1:-1;;;;;;;1007:16578:93;;16877:31;;16873:85;;1007:16578;;;-1:-1:-1;;;;;;1007:16578:93;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;-1:-1:-1;;;;;1007:16578:93;17074:64;-1:-1:-1;;17074:64:93;-1:-1:-1;;;;;1007:16578:93;16047:29;;16043:83;;16167:12;1007:16578;;-1:-1:-1;;;;;;1007:16578:93;;;;;;;-1:-1:-1;;;;;1007:16578:93;16234:54;-1:-1:-1;;16234:54:93;1398:4;16454:28;;16450:88;;16580:13;1398:4;1857:1:48;16580:13:93;1857:1:48;16650:57:93;-1:-1:-1;16650:57:93;;1007:16578;;17305:36;1007:16578;;;;;;17305:36;1007:16578;17356:46;-1:-1:-1;17356:46:93;;1007:16578;;;;;;;16450:88;16505:22;;;-1:-1:-1;16505:22:93;16167:12;-1:-1:-1;16505:22:93;16043:83;15776:16;;;-1:-1:-1;16099:16:93;;-1:-1:-1;16099:16:93;3611:77;15731:22;;15727:76;;15813:23;1007:16578;;-1:-1:-1;;;;;;1007:16578:93;;;;;15851:34;-1:-1:-1;;15851:34:93;3611:77;;;1007:16578;-1:-1:-1;1007:16578:93;;;;;;-1:-1:-1;1007:16578:93;;;;;-1:-1:-1;1007:16578:93;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305a3b80914611212578063120aa877146111ce578063147a7a5b1461115157806316166241146110b75780632e7ba6ef14610dfe5780633b345a8714610db95780633f4ba83a14610d4957806342c9160514610d2c5780634487d3df14610c4b5780634690484014610c2357806349891e9914610bec57806354dcb7b914610b5c5780635c975abb14610b3a57806364d042f014610b1d5780636cf9e2f214610af157806379ba509714610a735780638456cb5914610a115780638da5cb5b146109e957806394c8e4ff146109c7578063a001ecdd146109aa578063ae06c1b714610938578063c5eff3d0146108c4578063d7644ba21461085f578063e30c397814610837578063e39f06bd146102b5578063e74b981b14610238578063e7a96ca11461020e578063f2fde38b1461017e5763fbde47f614610158575f80fd5b3461017a575f36600319011261017a576020604051670de0b6b3a76400008152f35b5f80fd5b3461017a57602036600319011261017a57610197611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600380546001600160a01b031916821790557fd9be0e8e07417e00f2521db636cb53e316fd288f5051f16d2aa2bf0c3938a8765f80a2005b63e6c4247b60e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b3461017a5761023461022861022236611280565b90611782565b604051918291826114a6565b0390f35b3461017a57602036600319011261017a57610251611254565b6002546001600160a01b031633036101ff576001600160a01b031680156101f057600480546001600160a01b0319811683179091556001600160a01b03167f15d80a013f22151bc7246e3bc132e12828cde19de98870475e3fa708401527215f80a3005b606036600319011261017a576102c9611254565b6024359060443560ff600654168061081b575b61080c576004926102eb611841565b6102f361185f565b6001546040516305b209d760e31b8152945f91869190829060081c6001600160a01b03165afa938415610801575f94610716575b506040840191825115801561070a575b6106fb57801515806106f0575b6106d857506103556005548261187a565b938460095494859451908460608501519160a060808701519601519360018060a01b03600454169460405197889561038c876113c7565b438752602087019342855260408801908152606088019182526080880192835260a0880193845260c0880194338652600160401b60e08a019760018060a01b03169e8f89526101008b01998a526101606101208c019b5f8d5261014081019d8e52019c8d5210156106b1576104078f6001810160095561135f565b9c909c6106c557518c555160018c01555160028b01555160038a015551805160048a019167ffffffffffffffff82116106b157610444835461138f565b601f811161066c575b50602090601f83116001146105ff57600b9a9998979695949392915f91836105f4575b50508160011b915f199060031b1c19161790555b516005890155516006880180546001600160a01b039283166001600160a01b031991821617909155915160078901805491831691841691909117905591516008880155915160098701559151600a86018054919093169116179055519101558161058757803403610578575f8080808760018060a01b03600454165af19361050a611753565b941561055257602094505b60405191825284820152827f6b4c9c70a653efa82eeee564c5938294bb39a053f240e8b1e9da72490424fcca60403393a460015f55604051908152f35b604051634322d6f760e01b815260206004820152806105746024820188611296565b0390fd5b63136a0a1960e01b5f5260045ffd5b346105e5576020936105c86040516323b872dd60e01b87820152336024820152306044820152836064820152606481526105c26084826113e4565b84611b61565b6004546105e09082906001600160a01b0316856119c3565b610515565b630390ad5760e21b5f5260045ffd5b015190505f80610470565b90601f19831691845f52815f20925f5b8181106106545750916001939185600b9e9d9c9b9a99989796941061063c575b505050811b019055610484565b01515f1960f88460031b161c191690555f808061062f565b9293602060018192878601518155019501930161060f565b835f5260205f20601f840160051c810191602085106106a7575b601f0160051c01905b81811061069c575061044d565b5f815560010161068f565b9091508190610686565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f525f60045260245ffd5b8251906305973d0b60e01b5f5260045260245260445ffd5b508083511415610344565b6352e8439560e11b5f5260045ffd5b5060a085015115610337565b9093503d805f833e61072881836113e4565b81019060208183031261017a5780519067ffffffffffffffff821161017a57019060c08282031261017a576040519160c0830183811067ffffffffffffffff8211176106b15760405280518352602081015160208401526040810151604084015260608101516060840152608081015167ffffffffffffffff811161017a5781019180601f8401121561017a5782516107c081611737565b916107ce60405193846113e4565b8183526020828601011161017a576020815f928260a097018386015e830101526080840152015160a08201529284610327565b6040513d5f823e3d90fd5b6351e624a760e01b5f5260045ffd5b50610831335f52600860205260405f2054151590565b156102dc565b3461017a575f36600319011261017a576003546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043580151580910361017a576002546001600160a01b031633036101ff5760ff196006541660ff8216176006557f8cfcfe73491d25685798989c7e3119522126c3438593e50e7d47bfd212b45e5f5f80a2005b3461017a575f36600319011261017a5760405180602060075491828152019060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688905f5b8181106109225761023485610228818703826113e4565b825484526020909301926001928301920161090b565b3461017a57602036600319011261017a57600254600435906001600160a01b031633036101ff57670de0b6b3a7640000811161099b57600554816005557fa877b684a58e916e04f646f3112557d0e77a19efe4766f9438020e5821a131395f80a3005b635841c1b960e01b5f5260045ffd5b3461017a575f36600319011261017a576020600554604051908152f35b3461017a575f36600319011261017a57602060ff600654166040519015158152f35b3461017a575f36600319011261017a576002546040516001600160a01b039091168152602090f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff57610a3b61185f565b600160ff19815416176001557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461017a575f36600319011261017a576003546001600160a01b0381163303610ae25760028054336001600160a01b03198083168217909355929091166003556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b630614e5c760e21b5f5260045ffd5b3461017a575f36600319011261017a5760015460405160089190911c6001600160a01b03168152602090f35b3461017a575f36600319011261017a576020600754604051908152f35b3461017a575f36600319011261017a57602060ff600154166040519015158152f35b3461017a57602036600319011261017a57610b75611254565b6002546001600160a01b031633036101ff576001600160a01b0381169081156101f05760018054610100600160a81b03198116600893841b610100600160a81b031617909155901c6001600160a01b03167f290b5b697667cd09b02cb127b1373ddec2945c79dc93b89eb90ec95bbfd4a8205f80a3005b3461017a57602036600319011261017a576020610c0a600435611a04565b905460405160039290921b1c6001600160a01b03168152f35b3461017a575f36600319011261017a576004546040516001600160a01b039091168152602090f35b3461017a57602036600319011261017a5760043560095481101561017a57610c729061135f565b5080546001820154916002810154600382015491610c9260048201611406565b9260058201549360018060a01b0360068401541660018060a01b0360078501541690610d00600886015493600987015495600b60018060a01b03600a8a015416980154986040519c8d9c8d5260208d015260408c015260608b015261018060808b01526101808a0190611296565b9660a089015260c088015260e08701526101008601526101208501526101408401526101608301520390f35b3461017a575f36600319011261017a576020600954604051908152f35b3461017a575f36600319011261017a576002546001600160a01b031633036101ff5760015460ff811615610daa5760ff19166001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461017a57602036600319011261017a57610dd2611500565b50610234610dea610de460043561135f565b5061159b565b6040519182916020835260208301906112ba565b3461017a57608036600319011261017a57600435610e1a61126a565b60643560443567ffffffffffffffff821161017a573660238301121561017a5781600401359267ffffffffffffffff841161017a573660248560051b8501011161017a57610e66611841565b610e6e61185f565b6009548510156110a8576001600160a01b03811680156101f057610e918661135f565b509060028201549687156110a857805f52600a60205260405f20825f5260205260405f205461109957604080516001600160a01b03861660208201908152818301889052918152610ee36060826113e4565b5190206040516020810191825260208152610eff6040826113e4565b519020975f985b888a1015610f475760248a60051b89010135908181105f14610f36575f52602052600160405f205b990198610f06565b905f52602052600160405f20610f2e565b0361108a57610f6e610f626008850154600b8601549061157a565b86600586015491611910565b93841561107b57815f52600a60205260405f20835f526020528460405f205560076009850194610f9f878754611559565b86550180549091906001600160a01b0316806110445750505f80808088875af1610fc7611753565b901561101f575060606020967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5925b60018060a01b03905416955460405191888352898301526040820152a460015f55604051908152f35b604051631fd027f560e21b815260206004820152908190610574906024830190611296565b967f6136a6298c86cc8d4fd3717b16d543676c6fb93443967e03ef4daf52a6beabd5926110768860609460209b6119c3565b610ff6565b63dff46e2b60e01b5f5260045ffd5b63582f497d60e11b5f5260045ffd5b630c8d9eab60e31b5f5260045ffd5b633a35c2f960e01b5f5260045ffd5b3461017a57604036600319011261017a576110d0611254565b602435908115159182810361017a576002546001600160a01b031633036101ff5715611139576111086001600160a01b038216611b0c565b505b6001600160a01b03167f16ff14c1e52259396616f29c1de4d47a156f71aad6c16d756f3475db37187a3a5f80a3005b61114b6001600160a01b038216611a31565b5061110a565b3461017a5761116861116236611280565b90611636565b6040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061119f57505050500390f35b919360019193955060206111be8192603f198a820301865288516112ba565b9601920192018594939192611190565b3461017a57604036600319011261017a576111e761126a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b3461017a57602036600319011261017a57602061124a6001600160a01b03611238611254565b165f52600860205260405f2054151590565b6040519015158152f35b600435906001600160a01b038216820361017a57565b602435906001600160a01b038216820361017a57565b604090600319011261017a576004359060243590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9081518152602082015160208201526040820151604082015260608201516060820152610160806112fc60808501516101806080860152610180850190611296565b9360a081015160a085015260018060a01b0360c08201511660c085015260018060a01b0360e08201511660e085015261010081015161010085015261012081015161012085015260018060a01b0361014082015116610140850152015191015290565b60095481101561137b5760095f52600c60205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b90600182811c921680156113bd575b60208310146113a957565b634e487b7160e01b5f52602260045260245ffd5b91607f169161139e565b610180810190811067ffffffffffffffff8211176106b157604052565b90601f8019910116810190811067ffffffffffffffff8211176106b157604052565b9060405191825f8254926114198461138f565b80845293600181169081156114845750600114611440575b5061143e925003836113e4565b565b90505f9291925260205f20905f915b81831061146857505090602061143e928201015f611431565b602091935080600191548385890101520191019091849261144f565b90506020925061143e94915060ff191682840152151560051b8201015f611431565b60206040818301928281528451809452019201905f5b8181106114c95750505090565b82516001600160a01b03168452602093840193909201916001016114bc565b67ffffffffffffffff81116106b15760051b60200190565b6040519061150d826113c7565b5f61016083828152826020820152826040820152826060820152606060808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b9190820180921161156657565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156657565b805182101561137b5760209160051b010190565b906040516115a8816113c7565b610160600b8294805484526001810154602085015260028101546040850152600381015460608501526115dd60048201611406565b6080850152600581015460a085015260068101546001600160a01b0390811660c08601526007820154811660e086015260088201546101008601526009820154610120860152600a820154166101408501520154910152565b9060095490818310156116fd5761164d9083611559565b908082116116f5575b50611661828261157a565b9161166b836114e8565b9261167960405194856113e4565b808452611688601f19916114e8565b015f5b8181106116de575050805b8281106116a35750505090565b806116d76116b260019361135f565b506116c66116c0868561157a565b9161159b565b6116d08289611587565b5286611587565b5001611696565b6020906116e9611500565b8282880101520161168b565b90505f611656565b50505060405161170e6020826113e4565b5f81525f805b81811061172057505090565b60209061172b611500565b82828601015201611714565b67ffffffffffffffff81116106b157601f01601f191660200190565b3d1561177d573d9061176482611737565b9161177260405193846113e4565b82523d5f602084013e565b606090565b906007549081831015611826576117999083611559565b9080821161181e575b506117ad828261157a565b916117b7836114e8565b926117c560405194856113e4565b8084526117d4601f19916114e8565b01366020850137805b8281106117ea5750505090565b806117f6600192611a04565b838060a01b0391549060031b1c16611817611811858461157a565b87611587565b52016117dd565b90505f6117a2565b5050506040516118376020826113e4565b5f81525f36813790565b60025f54146118505760025f55565b633ee5aeb560e01b5f5260045ffd5b60ff6001541661186b57565b63d93c066560e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146118fd5782670de0b6b3a764000011156118eb57507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b90915f1983830992808302928380861095039480860395146119a157848311156119895790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156119af570490565b634e487b7160e01b5f52601260045260245ffd5b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261143e916119ff6064836113e4565b611b61565b60075481101561137b5760075f5260205f2001905f90565b805482101561137b575f5260205f2001905f90565b5f818152600860205260409020548015611b06575f198101818111611566576007545f1981019190821161156657818103611ab8575b5050506007548015611aa4575f1901611a81816007611a1c565b8154905f199060031b1b191690556007555f5260086020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b611af0611ac9611ada936007611a1c565b90549060031b1c9283926007611a1c565b819391549060031b91821b915f19901b19161790565b90555f52600860205260405f20555f8080611a67565b50505f90565b805f52600860205260405f2054155f14611b5c57600754600160401b8110156106b157611b45611ada8260018594016007556007611a1c565b9055600754905f52600860205260405f2055600190565b505f90565b905f602091828151910182855af115610801575f513d611bb057506001600160a01b0381163b155b611b905750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611b8956fea2646970667358221220eab359e572d4446fd706042168d782a07c3566fa30b4e2d5cf6f791bb8586c0364736f6c634300081b0033","sourceMap":"1007:16578:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;;1398:4;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;:::i;:::-;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;-1:-1:-1;;;;;1007:16578:93;15731:22;;15727:76;;15813:23;1007:16578;;-1:-1:-1;;;;;;1007:16578:93;;;;;15851:34;-1:-1:-1;;15851:34:93;1007:16578;15727:76;13610:16;;;1007:16578;15776:16;1007:16578;;15776:16;2544:67;2590:10;;;1007:16578;2590:10;1007:16578;;2590:10;1007:16578;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;:::i;:::-;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;-1:-1:-1;;;;;1007:16578:93;16047:29;;16043:83;;1007:16578;;;-1:-1:-1;;;;;;1007:16578:93;;;;;;;-1:-1:-1;;;;;1007:16578:93;16234:54;-1:-1:-1;;16234:54:93;1007:16578;;;;-1:-1:-1;;1007:16578:93;;;;;;:::i;:::-;;;;;;;2738:16;1007:16578;;2738:52;;;1007:16578;2734:108;;1007:16578;2466:103:48;;;:::i;:::-;1315:72:47;;:::i;:::-;1007:16578:93;;;;-1:-1:-1;;;10447:70:93;;1007:16578;;;;;;;;;;-1:-1:-1;;;;;1007:16578:93;10447:70;;;;;;;1007:16578;10447:70;;;1007:16578;10532:16;1007:16578;10532:16;;1007:16578;;;10532:30;:61;;;;1007:16578;10528:119;;10661:26;;;:62;;;1007:16578;10657:152;;1007:16578;10876:45;10896:13;1007:16578;10876:45;;:::i;:::-;1007:16578;;10988:13;1007:16578;;;;;11223:20;;1007:16578;11223:20;;1007:16578;11274:23;11333:22;11274:23;;;;11333:22;;1007:16578;;;;;;;;;;;;;;;;;;;:::i;:::-;11099:12;1007:16578;;;11050:549;;11140:15;;1007:16578;;;11050:549;;1007:16578;;;;11050:549;;1007:16578;;;11274:23;11050:549;;1007:16578;;;11333:22;11050:549;;1007:16578;;;11050:549;;;11386:10;;1007:16578;;-1:-1:-1;;;1007:16578:93;11050:549;;1007:16578;;;;;;;;;;;11050:549;;;1007:16578;;;11050:549;;;;1007:16578;;;;11050:549;;;1007:16578;;;11050:549;1007:16578;;;;;;;;;;;;10988:13;1007:16578;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10896:13;1007:16578;;;;2738:16;1007:16578;;;;-1:-1:-1;;;;;1007:16578:93;;;-1:-1:-1;;;;;;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10988:13;1007:16578;;;;;;;;;;;;;;;;;;;;;;;17557:19;;;11803:9;;:19;11799:99;;1007:16578;;;;;;;;;;;;;11998:78;;;;;:::i;:::-;12094:8;;12090:79;;1007:16578;11703:939;;;1007:16578;;;;;;;;;11386:10;12657:138;1007:16578;11386:10;12657:138;;1007:16578;;;;;;;;;12090:79;1007:16578;;-1:-1:-1;;;12129:25:93;;1007:16578;;12129:25;;1007:16578;;;;;;;;:::i;:::-;12129:25;;;11799:99;11849:34;;;1007:16578;11849:34;1007:16578;;11849:34;11703:939;12277:9;12273:87;;1007:16578;;1745:53:40;1007:16578:93;;;;;1745:53:40;;;;11386:10:93;1007:16578;1745:53:40;;1007:16578:93;12501:4;1007:16578;;;;;;;;;;1745:53:40;;;;;;:::i;:::-;;;:::i;:::-;1007:16578:93;;12621:9;;1007:16578;;-1:-1:-1;;;;;1007:16578:93;12621:9;;:::i;:::-;11703:939;;12273:87;12317:28;;;1007:16578;12317:28;1007:16578;;12317:28;1007:16578;;;;-1:-1:-1;1007:16578:93;;;;;14280:26;;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10896:13;1007:16578;;;;;;;;;;;;10896:13;1007:16578;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;10657:152;1007:16578;;10746:52;;;;1007:16578;10746:52;1007:16578;;;;;;10746:52;10661:62;1007:16578;;;;10691:32;;10661:62;;10528:119;10616:20;;;1007:16578;10616:20;1007:16578;;10616:20;10532:61;10566:22;;;;1007:16578;10566:27;10532:61;;10447:70;;;;;;1007:16578;10447:70;;;;;;:::i;:::-;;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10447:70;;;;;1007:16578;;;;;;;;;2734:108;2813:18;;;1007:16578;2813:18;1007:16578;;2813:18;2738:52;2779:10;12473:55:65;2779:10:93;-1:-1:-1;1007:16578:93;5197:14:65;1007:16578:93;;;-1:-1:-1;1007:16578:93;;5197:26:65;;5101:129;;12473:55;2758:32:93;2738:52;;1007:16578;;;;;;-1:-1:-1;;1007:16578:93;;;;1720:27;1007:16578;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;;;;;;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;1007:16578;;17305:36;1007:16578;;;;;;17305:36;1007:16578;17356:46;1007:16578;17356:46;;1007:16578;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;;;6304:10;1007:16578;;;;;;;6304:10;1007:16578;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;2562:5;1007:16578;;;;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;1398:4;16454:28;;16450:88;;16580:13;1007:16578;;16580:13;1007:16578;16650:57;1007:16578;16650:57;;1007:16578;16450:88;16505:22;;;1007:16578;16505:22;1007:16578;;16505:22;1007:16578;;;;;;-1:-1:-1;;1007:16578:93;;;;;1901:28;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;1998:28;1007:16578;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;1618:20;1007:16578;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;1315:72:47;;:::i;:::-;2408:4;1007:16578:93;;;;;;2408:4:47;1007:16578:93;2427:20:47;1007:16578:93;;;2548:10;1007:16578;;2427:20:47;1007:16578:93;;;;;;;-1:-1:-1;;1007:16578:93;;;;7609:12;1007:16578;-1:-1:-1;;;;;1007:16578:93;;7595:10;:26;7591:81;;7705:5;1007:16578;;7595:10;-1:-1:-1;;;;;;1007:16578:93;;;;;;;;;;;;7609:12;1007:16578;-1:-1:-1;;;;;1007:16578:93;7788:42;-1:-1:-1;;7788:42:93;1007:16578;7591:81;7644:17;;;1007:16578;7644:17;1007:16578;;7644:17;1007:16578;;;;;;-1:-1:-1;;1007:16578:93;;;;;;;;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;5816:10;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;1796:7:47;1007:16578:93;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;:::i;:::-;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;-1:-1:-1;;;;;1007:16578:93;;;16877:31;;16873:85;;17001:14;1007:16578;;-1:-1:-1;;;;;;1007:16578:93;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;-1:-1:-1;;;;;1007:16578:93;17074:64;-1:-1:-1;;17074:64:93;1007:16578;;;;;;;-1:-1:-1;;1007:16578:93;;;;;5853:18:65;1007:16578:93;;5853:18:65;:::i;:::-;1007:16578:93;;;;;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;2203:40;1007:16578;2203:40;;;;;;;;:::i;:::-;1007:16578;;;;2203:40;;1007:16578;2203:40;;;;1007:16578;2203:40;;;1007:16578;2203:40;;1007:16578;2203:40;;;:::i;:::-;;;;;1007:16578;;;;;;;2203:40;;;1007:16578;;;;;;;2203:40;;;1007:16578;;2203:40;1007:16578;2203:40;;;1007:16578;2203:40;;;;1007:16578;;2203:40;1007:16578;;;;;2203:40;;;1007:16578;;2203:40;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;5301:13;1007:16578;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;1796:7:47;1007:16578:93;;;;2140:9:47;2136:62;;1007:16578:93;;;1796:7:47;1007:16578:93;2674:22:47;1007:16578:93;;;2548:10;1007:16578;;2674:22:47;1007:16578:93;2136:62:47;2172:15;;;1007:16578:93;2172:15:47;1007:16578:93;;2172:15:47;1007:16578:93;;;;;;-1:-1:-1;;1007:16578:93;;;;;;:::i;:::-;;;;4184:32;1007:16578;;4184:32;:::i;:::-;1007:16578;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1007:16578:93;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:103:48;;:::i;:::-;1315:72:47;;:::i;:::-;13476:13:93;1007:16578;13455:41;;;13451:101;;-1:-1:-1;;;;;1007:16578:93;;13566:21;;13562:75;;13723:54;;;:::i;:::-;13802:17;;;;;1007:16578;13833:18;;;13829:78;;1007:16578;;;14005:7;1007:16578;;;;;;-1:-1:-1;1007:16578:93;;;;-1:-1:-1;1007:16578:93;;14001:93;;1007:16578;;;-1:-1:-1;;;;;1007:16578:93;;;14280:26;;1007:16578;;;;;;;;;14280:26;;;;1007:16578;;14280:26;:::i;:::-;1007:16578;14270:37;;1007:16578;;;;;;;;;;;;;;;:::i;:::-;;14247:62;;5366:13:56;1007:16578:93;5361:134:56;5399:3;5381:16;;;;;;1007:16578:93;;;;;;;;605:59:55;:5;;;:59;:5;;;1007:16578:93;889:135:55;1007:16578:93;889:135:55;1007:16578:93;;;889:135:55;605:59;5399:3:56;1007:16578:93;5366:13:56;;;605:59:55;889:135;1007:16578:93;889:135:55;1007:16578:93;889:135:55;1007:16578:93;;;889:135:55;605:59;;5381:16:56;4761:41;14140:246:93;;14625:115;14425:62;:25;;;1007:16578;14465:22;;;1007:16578;14425:62;;:::i;:::-;14701:29;1007:16578;14701:29;;1007:16578;14625:115;;:::i;:::-;14755:18;;;14751:72;;1007:16578;;;14005:7;1007:16578;;;;;;-1:-1:-1;1007:16578:93;;;;;-1:-1:-1;1007:16578:93;;15014:18;13476:13;14894:30;;1007:16578;14894:47;1007:16578;;;14894:47;:::i;:::-;1007:16578;;15014:18;1007:16578;;15014:18;;1007:16578;-1:-1:-1;;;;;1007:16578:93;17557:19;1007:16578;;15085:77;;1007:16578;15085:77;;;;;;;;;:::i;:::-;15180:8;;15176:82;;14995:367;1007:16578;;14995:367;15377:191;14995:367;;1007:16578;;;;;;;;;;;;;;;;;;;;;;;;15377:191;1007:16578;;;;;;;;;15176:82;1007:16578;;-1:-1:-1;;;15215:28:93;;1007:16578;;15215:28;;1007:16578;;;;;;;;;;;:::i;14995:367::-;15337:13;15377:191;15337:13;;;1007:16578;15337:13;1007:16578;15337:13;;:::i;:::-;14995:367;;14751:72;14796:16;;;1007:16578;14796:16;1007:16578;;14796:16;14140:246;14355:20;;;1007:16578;14355:20;1007:16578;;14355:20;14001:93;14067:16;;;1007:16578;14067:16;1007:16578;;14067:16;13829:78;13519:22;;;1007:16578;13874:22;1007:16578;;13874:22;1007:16578;;;;;;-1:-1:-1;;1007:16578:93;;;;;;:::i;:::-;;;;;;;;;;;;;2562:5;1007:16578;-1:-1:-1;;;;;1007:16578:93;2548:10;:19;2544:67;;9287:133;;;11511:50:65;-1:-1:-1;;;;;1007:16578:93;;11511:50:65;:::i;:::-;;9287:133:93;-1:-1:-1;;;;;1007:16578:93;9434:56;1007:16578;;9434:56;1007:16578;9287:133;11832:53:65;-1:-1:-1;;;;;1007:16578:93;;11832:53:65;:::i;:::-;;9287:133:93;;1007:16578;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;;:::i;:::-;;;;;2326:103;1007:16578;;;;;2326:103;1007:16578;;;;;;-1:-1:-1;1007:16578:93;;;;;-1:-1:-1;1007:16578:93;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;;12473:55:65;-1:-1:-1;;;;;1007:16578:93;;:::i;:::-;;-1:-1:-1;1007:16578:93;5197:14:65;1007:16578:93;;;-1:-1:-1;1007:16578:93;;5197:26:65;;5101:129;;12473:55;1007:16578:93;;;;;;;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1007:16578:93;;;;;;;;-1:-1:-1;;1007:16578:93;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;13476:13;1007:16578;;;;;;13476:13;-1:-1:-1;1007:16578:93;;;-1:-1:-1;1007:16578:93;;;;;-1:-1:-1;1007:16578:93;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;14280:26;;1007:16578;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1007:16578:93;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1007:16578:93;;;;;-1:-1:-1;1007:16578:93;;-1:-1:-1;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4425:667::-;;4579:13;1007:16578;4569:30;;;;;4565:94;;4683:14;;;;:::i;:::-;4711:26;;;;4707:83;;4425:667;4873:12;;;;;:::i;:::-;4836:59;1007:16578;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;14280:26;;1007:16578;;:::i;:::-;;-1:-1:-1;1007:16578:93;;;;;;4910:18;;;4930:7;;;;;;5072:13;;;4425:667;:::o;4910:18::-;4976:16;4955:37;4976:16;1007:16578;4976:16;;:::i;:::-;4962:10;1007:16578;4962:10;;;;:::i;:::-;1007:16578;;:::i;:::-;4955:37;;;;:::i;:::-;;;;:::i;:::-;;1007:16578;4910:18;;1007:16578;;;;;:::i;:::-;;;;;;;;;;4707:83;4753:26;;4707:83;;;4565:94;-1:-1:-1;;;1007:16578:93;;;;;;:::i;:::-;-1:-1:-1;1007:16578:93;;-1:-1:-1;;1007:16578:93;;;;;;4615:33;;;:::o;1007:16578::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1007:16578:93;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1007:16578:93;;;;:::o;:::-;;;:::o;6552:614::-;;6704:10;1007:16578;6737:16;;;;;6733:70;;6827:14;;;;:::i;:::-;6855:12;;;;6851:55;;6552:614;6956:12;;;;;:::i;:::-;6942:27;1007:16578;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;14280:26;;1007:16578;;:::i;:::-;;;;;;;6984:18;7004:7;;;;;;7146:13;;;6552:614;:::o;6984:18::-;5853::65;;1007:16578:93;5853:18:65;;:::i;:::-;1007:16578:93;;;;;;;;;;;;7029:37;7036:10;;;;:::i;:::-;7029:37;;:::i;:::-;1007:16578;;6984:18;;6851:55;6883:12;;6851:55;;;6733:70;1007:16578;;;;;;;;;:::i;:::-;-1:-1:-1;1007:16578:93;;-1:-1:-1;1007:16578:93;;;6769:23;:::o;2575:307:48:-;1899:1;2702:7;1007:16578:93;2702:18:48;2698:86;;1899:1;2702:7;1007:16578:93;2575:307:48:o;2698:86::-;2743:30;;;2702:7;2743:30;;2702:7;2743:30;1878:128:47;1007:16578:93;1796:7:47;1007:16578:93;;1939:61:47;;1878:128::o;1939:61::-;1974:15;;;-1:-1:-1;1974:15:47;;-1:-1:-1;1974:15:47;7242:3683:61;;;;1007:16578:93;;-1:-1:-1;;7242:3683:61;;1412:159;;;;;;;;;;;;;;;;7498:9;;7494:365;;7969:19;1007:16578:93;7969:19:61;;7965:142;;8390:308;940:4:46;8390:308:61;;1007:16578:93;8390:308:61;;;;;;;;940:4:46;;8390:308:61;;8962:384;;9409:18;940:4:46;7242:3683:61;:::o;7965:142::-;1829:135:46;;;940:4;1829:135;;;;;7494:365:61;1007:16578:93;;;;;;;;7820:24:61;:::o;7242:3683::-;;;-1:-1:-1;;7242:3683:61;;1412:159;;;;;;;;;;;;;;;;7498:9;;7494:365;;7969:19;;;;7965:142;;8390:308;;;;940:4:46;1007:16578:93;940:4:46;8917:31:61;;8962:384;;;9800:1;940:4:46;9781:1:61;940:4:46;9780:21:61;940:4:46;;;9800:1:61;940:4:46;;;;;9800:1:61;940:4:46;;;;;9800:1:61;940:4:46;;;;;9800:1:61;940:4:46;;;;;9800:1:61;940:4:46;;;;;9800:1:61;940:4:46;;8962:384:61;;;;1007:16578:93;8962:384:61;;;8390:308;;;;;;940:4:46;8390:308:61;;8962:384;9409:18;940:4:46;7242:3683:61;:::o;7965:142::-;1829:135:46;;1007:16578:93;1829:135:46;8028:16:61;5312:5;940:4:46;;5306:42:61;1829:135:46;;;;;7494:365:61;1007:16578:93;;;;;;;;;7820:24:61;:::o;1007:16578:93:-;;;;;;;;;;;;1219:160:40;1007:16578:93;;-1:-1:-1;;;1328:43:40;;;;-1:-1:-1;;;;;1007:16578:93;;;;1328:43:40;;;1007:16578:93;;;;;;;;;1328:43:40;;;;;;1007:16578:93;;1328:43:40;:::i;:::-;;:::i;1007:16578:93:-;6090:10;1007:16578;;;;;;6090:10;-1:-1:-1;1007:16578:93;;-1:-1:-1;1007:16578:93;;;-1:-1:-1;1007:16578:93;:::o;:::-;;;;;;;;-1:-1:-1;1007:16578:93;;-1:-1:-1;1007:16578:93;;;-1:-1:-1;1007:16578:93;:::o;3071:1368:65:-;1007:16578:93;;;;3266:14:65;1007:16578:93;;;;;;3302:13:65;;;;-1:-1:-1;;1007:16578:93;;;;;;;9379:10;1007:16578;-1:-1:-1;;1007:16578:93;;;;;;;;3777:23:65;;;3773:378;;3298:1135;1007:16578:93;;;9379:10;1007:16578;;;;;-1:-1:-1;;1007:16578:93;;;9379:10;1007:16578;:::i;:::-;;;;;;;;;;;;;;9379:10;1007:16578;;;3266:14:65;1007:16578:93;;;;;;;3266:14:65;4368:11;:::o;1007:16578:93:-;;;;;;;;;;;;3773:378:65;1007:16578:93;3840:22:65;3961:23;3840:22;9379:10:93;3840:22:65;:::i;:::-;1007:16578:93;;;;;;3961:23:65;;;9379:10:93;3961:23:65;:::i;:::-;1007:16578:93;;;;;;;;;;;;;;;;;;;;;;;;;3266:14:65;1007:16578:93;;;;;;3773:378:65;;;;;3298:1135;4410:12;;1007:16578:93;4410:12:65;:::o;2497:406::-;1007:16578:93;;;5197:14:65;1007:16578:93;;;;;;5197:26:65;2576:321;2580:22;;;9321:10:93;1007:16578;-1:-1:-1;;;1007:16578:93;;;;;;;;5197:14:65;1007:16578:93;;;9321:10;1007:16578;9321:10;1007:16578;:::i;:::-;;;9321:10;1007:16578;;;;5197:14:65;1007:16578:93;;;;;;5197:14:65;2832:11;:::o;2576:321::-;2874:12;1007:16578:93;2874:12:65;:::o;8370:720:40:-;;-1:-1:-1;8507:421:40;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:40;;8942:15;;-1:-1:-1;;;;;;1007:16578:93;;8960:26:40;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:40;;;-1:-1:-1;;;;;1007:16578:93;;;;9033:40:40;1007:16578:93;;;9033:40:40;8942:68;9009:1;8994:16;;8942:68;","linkReferences":{}},"methodIdentifiers":{"FEE_RANGE()":"fbde47f6","acceptOwnership()":"79ba5097","allowlistEnabled()":"94c8e4ff","claim(uint256,address,uint256,bytes32[])":"2e7ba6ef","claimed(uint256,address)":"120aa877","distribute(address,uint256,bytes32)":"e39f06bd","distributions(uint256)":"4487d3df","feePercentage()":"a001ecdd","feeRecipient()":"46904840","getAllowlist()":"c5eff3d0","getAllowlistAt(uint256)":"49891e99","getAllowlistLength()":"64d042f0","getAllowlistPaginated(uint256,uint256)":"e7a96ca1","getDistribution(uint256)":"3b345a87","getDistributionCount()":"42c91605","getDistributions(uint256,uint256)":"147a7a5b","isAllowlisted(address)":"05a3b809","merkleSnapshot()":"6cf9e2f2","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pendingOwner()":"e30c3978","setAllowlistEnabled(bool)":"d7644ba2","setFeePercentage(uint256)":"ae06c1b7","setFeeRecipient(address)":"e74b981b","setMerkleSnapshot(address)":"54dcb7b9","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateDistributorAllowance(address,bool)":"16166241"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"merkleSnapshot_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeRecipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feePercentage_\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allowlistEnabled_\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDistribute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DistributionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FailedToTransferFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"FailedToTransferTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeePercentageTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNativeTokenTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNativeTokenTransferAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPendingOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedMerkleRoot\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newAmountDistributed\",\"type\":\"uint256\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"canDistribute\",\"type\":\"bool\"}],\"name\":\"DistributorAllowanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DistributorAllowlistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"previousFeePercentage\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newFeePercentage\",\"type\":\"uint256\"}],\"name\":\"FeePercentageSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousFeeRecipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"FeeRecipientSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"MerkleSnapshotUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FEE_RANGE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowlistEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"expectedRoot\",\"type\":\"bytes32\"}],\"name\":\"distribute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"distributions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalMerkleValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDistributed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feePercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllowlist\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getAllowlistAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllowlistLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getAllowlistPaginated\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"distributionIndex\",\"type\":\"uint256\"}],\"name\":\"getDistribution\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalMerkleValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDistributed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleFundDistributor.DistributionState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDistributionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getDistributions\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalMerkleValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountFunded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDistributed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleFundDistributor.DistributionState[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"}],\"name\":\"isAllowlisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleSnapshot\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"allowlistEnabled_\",\"type\":\"bool\"}],\"name\":\"setAllowlistEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeePercentage\",\"type\":\"uint256\"}],\"name\":\"setFeePercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMerkleSnapshot\",\"type\":\"address\"}],\"name\":\"setMerkleSnapshot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"distributor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"canDistribute_\",\"type\":\"bool\"}],\"name\":\"updateDistributorAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: allow distributor to refund unclaimed funds? after expiration? to retrieve dust/rounding losses?TODO: restrict claim function to sender-only (instead of anyone)?\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Claimed(uint256,address,address,uint256,uint256,uint256)\":{\"params\":{\"account\":\"The address that claimed the tokens.\",\"amount\":\"The amount of token claimed.\",\"distributionIndex\":\"The index of the distribution.\",\"newAmountDistributed\":\"The new total amount of tokens distributed after the claim.\",\"token\":\"The token claimed.\",\"value\":\"The merkle tree value.\"}},\"Distributed(uint256,address,address,uint256,uint256)\":{\"params\":{\"amountFunded\":\"The amount of token funded.\",\"distributionIndex\":\"The index of the distribution.\",\"distributor\":\"The distributor address.\",\"feeAmount\":\"The amount of token retained as a fee.\",\"token\":\"The token distributed.\"}},\"DistributorAllowanceUpdated(address,bool)\":{\"params\":{\"canDistribute\":\"The distributor's ability to distribute funds.\",\"distributor\":\"The distributor address.\"}},\"DistributorAllowlistUpdated(bool)\":{\"params\":{\"enabled\":\"The distributor's allowlist status.\"}},\"FeePercentageSet(uint256,uint256)\":{\"params\":{\"newFeePercentage\":\"The new fee percentage.\",\"previousFeePercentage\":\"The previous fee percentage.\"}},\"FeeRecipientSet(address,address)\":{\"params\":{\"newFeeRecipient\":\"The new fee recipient address.\",\"previousFeeRecipient\":\"The previous fee recipient address.\"}},\"MerkleSnapshotUpdated(address,address)\":{\"params\":{\"newContract\":\"The new merkle snapshot contract address.\",\"previousContract\":\"The previous merkle snapshot contract address.\"}},\"OwnershipTransferStarted(address)\":{\"params\":{\"pendingOwner\":\"The pending owner of the contract.\"}},\"OwnershipTransferred(address,address)\":{\"params\":{\"newOwner\":\"The new owner of the contract.\",\"previousOwner\":\"The previous owner of the contract.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"Only the pending owner can accept the ownership transfer.\"},\"claim(uint256,address,uint256,bytes32[])\":{\"details\":\"Anyone can claim tokens on behalf of an account.\",\"params\":{\"account\":\"The address to claim tokens for.\",\"distributionIndex\":\"The index of the distribution to claim tokens for.\",\"proof\":\"The merkle proof that validates this claim.\",\"value\":\"The merkle tree value.\"},\"returns\":{\"claimedAmount\":\"The amount of tokens claimed.\"}},\"constructor\":{\"params\":{\"allowlistEnabled_\":\"Whether the distributor allowlist is enabled.\",\"feePercentage_\":\"The fee percentage taken from the distributed amount\",\"feeRecipient_\":\"The fee recipient address\",\"merkleSnapshot_\":\"The MerkleSnapshot contract address\",\"owner_\":\"The owner of the contract\"}},\"distribute(address,uint256,bytes32)\":{\"details\":\"Only distributors can distribute funds.\",\"params\":{\"amount\":\"The amount of token to distribute.\",\"expectedRoot\":\"The expected root of the merkle tree to add an additional layer of security (pass 0 to skip).\",\"token\":\"The token to distribute.\"},\"returns\":{\"distributionIndex\":\"The index of the distribution.\"}},\"getAllowlist()\":{\"returns\":{\"_0\":\"All allowlisted addresses.\"}},\"getAllowlistAt(uint256)\":{\"params\":{\"index\":\"The index to query.\"},\"returns\":{\"_0\":\"The address at the index.\"}},\"getAllowlistLength()\":{\"returns\":{\"_0\":\"The allowlist length.\"}},\"getAllowlistPaginated(uint256,uint256)\":{\"params\":{\"limit\":\"The number of addresses to return.\",\"offset\":\"The offset to start from.\"},\"returns\":{\"_0\":\"result The allowlisted addresses.\"}},\"getDistribution(uint256)\":{\"params\":{\"distributionIndex\":\"The index of the distribution.\"},\"returns\":{\"_0\":\"distribution The distribution.\"}},\"getDistributionCount()\":{\"returns\":{\"total\":\"The total number of distributions.\"}},\"getDistributions(uint256,uint256)\":{\"params\":{\"limit\":\"The number of distributions to return.\",\"offset\":\"The offset to start from.\"},\"returns\":{\"_0\":\"result The distributions.\"}},\"isAllowlisted(address)\":{\"params\":{\"distributor\":\"The address to check.\"},\"returns\":{\"_0\":\"True if the address is in the allowlist.\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"setAllowlistEnabled(bool)\":{\"params\":{\"allowlistEnabled_\":\"Whether the distributor allowlist is enabled.\"}},\"setFeePercentage(uint256)\":{\"params\":{\"newFeePercentage\":\"The new fee percentage.\"}},\"setFeeRecipient(address)\":{\"params\":{\"newFeeRecipient\":\"The new fee recipient address.\"}},\"setMerkleSnapshot(address)\":{\"params\":{\"newMerkleSnapshot\":\"The new merkle snapshot contract address.\"}},\"transferOwnership(address)\":{\"params\":{\"newOwner\":\"The new owner of the contract.\"}},\"updateDistributorAllowance(address,bool)\":{\"params\":{\"canDistribute_\":\"The distributor's ability to distribute funds.\",\"distributor\":\"The distributor address.\"}}},\"stateVariables\":{\"FEE_RANGE\":{\"details\":\"1e18 = 100%1e17 = 10%1e16 = 1%1e15 = 0.1%\"}},\"title\":\"MerkleFundDistributor\",\"version\":1},\"userdoc\":{\"events\":{\"Claimed(uint256,address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when tokens are claimed.\"},\"Distributed(uint256,address,address,uint256,uint256)\":{\"notice\":\"Emitted when funds are distributed.\"},\"DistributorAllowanceUpdated(address,bool)\":{\"notice\":\"Emitted when a distributor's ability to distribute funds is updated.\"},\"DistributorAllowlistUpdated(bool)\":{\"notice\":\"Emitted when the distributor allowlist is enabled/disabled.\"},\"FeePercentageSet(uint256,uint256)\":{\"notice\":\"Emitted when the fee percentage is set.\"},\"FeeRecipientSet(address,address)\":{\"notice\":\"Emitted when the fee recipient is set.\"},\"MerkleSnapshotUpdated(address,address)\":{\"notice\":\"Emitted when the merkle snapshot contract is updated.\"},\"OwnershipTransferStarted(address)\":{\"notice\":\"Emitted when owner starts 2-step ownership transfer to `pendingOwner`.\"},\"OwnershipTransferred(address,address)\":{\"notice\":\"Emitted when the owner of the contract is set.\"}},\"kind\":\"user\",\"methods\":{\"FEE_RANGE()\":{\"notice\":\"The range of the fee percentage.\"},\"acceptOwnership()\":{\"notice\":\"Accepts the ownership transfer.\"},\"allowlistEnabled()\":{\"notice\":\"Whether the distributor allowlist is enabled.\"},\"claim(uint256,address,uint256,bytes32[])\":{\"notice\":\"Claims tokens for a given distribution.\"},\"claimed(uint256,address)\":{\"notice\":\"The `amount` claimed by `account` for a given distribution.\"},\"constructor\":{\"notice\":\"Initialize the contract\"},\"distribute(address,uint256,bytes32)\":{\"notice\":\"Distributes funds.\"},\"distributions(uint256)\":{\"notice\":\"The distributions.\"},\"feePercentage()\":{\"notice\":\"The fee percentage taken from the distributed amount.\"},\"feeRecipient()\":{\"notice\":\"The fee recipient address.\"},\"getAllowlist()\":{\"notice\":\"Returns all addresses in the allowlist.\"},\"getAllowlistAt(uint256)\":{\"notice\":\"Returns the address at a given index in the allowlist.\"},\"getAllowlistLength()\":{\"notice\":\"Returns the number of addresses in the allowlist.\"},\"getAllowlistPaginated(uint256,uint256)\":{\"notice\":\"Returns paginated addresses in the allowlist.\"},\"getDistribution(uint256)\":{\"notice\":\"Gets a distribution by index.\"},\"getDistributionCount()\":{\"notice\":\"Returns the total number of distributions.\"},\"getDistributions(uint256,uint256)\":{\"notice\":\"Gets paginated distributions.\"},\"isAllowlisted(address)\":{\"notice\":\"Checks if an address is in the allowlist.\"},\"merkleSnapshot()\":{\"notice\":\"Address of the MerkleSnapshot contract to query for merkle state\"},\"owner()\":{\"notice\":\"The address that can update the distribution parameters.\"},\"pause()\":{\"notice\":\"Pauses the contract.\"},\"pendingOwner()\":{\"notice\":\"The pending owner address (for 2-step ownership transfer).\"},\"setAllowlistEnabled(bool)\":{\"notice\":\"Sets the `allowlistEnabled` of the contract to `allowlistEnabled_`.\"},\"setFeePercentage(uint256)\":{\"notice\":\"Sets the `feePercentage` of the contract to `newFeePercentage`.\"},\"setFeeRecipient(address)\":{\"notice\":\"Sets the `feeRecipient` of the contract to `newFeeRecipient`.\"},\"setMerkleSnapshot(address)\":{\"notice\":\"Sets the `merkleSnapshot` of the contract to `newMerkleSnapshot`.\"},\"transferOwnership(address)\":{\"notice\":\"Starts 2-step ownership transfer to `newOwner`.\"},\"unpause()\":{\"notice\":\"Unpauses the contract.\"},\"updateDistributorAllowance(address,bool)\":{\"notice\":\"Updates a distributor's ability to distribute funds.\"}},\"notice\":\"A contract for distributing funds from a merkle tree.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/merkle/MerkleFundDistributor.sol\":\"MerkleFundDistributor\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"node_modules/@openzeppelin/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c\",\"dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"src/contracts/merkle/MerkleFundDistributor.sol\":{\"keccak256\":\"0x9a8e337089f58557b4594dc3d7d71535ef3f9313e1163b2b8037d9dab7f9e3cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7900ba1c3e2bcd07d918c29535215d9f2969481ae0508ea4a43d51151336b21f\",\"dweb:/ipfs/QmdBqV9A24ZVX6okGVedNn75TQCJGR8M9ykbvWaKicWNGS\"]},\"src/interfaces/IMerkleFundDistributor.sol\":{\"keccak256\":\"0x993d16dd10e7353d3649eb96803e2139fcdeb9871e90c2ef0b1f3c055b404157\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fde5728ce681d483d6fa10383ccbbb4f5370d0980e230baa6e364a9a26a2761\",\"dweb:/ipfs/Qmd1Y4jeXKkH8SDRVPgLm29LkLP5a3tCwv2yu4yVny69XZ\"]},\"src/interfaces/merkle/IMerkleSnapshot.sol\":{\"keccak256\":\"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66\",\"dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"merkleSnapshot_","type":"address"},{"internalType":"address","name":"feeRecipient_","type":"address"},{"internalType":"uint256","name":"feePercentage_","type":"uint256"},{"internalType":"bool","name":"allowlistEnabled_","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"CannotDistribute"},{"inputs":[],"type":"error","name":"DistributionNotFound"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"type":"error","name":"FailedToTransferFee"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"type":"error","name":"FailedToTransferTokens"},{"inputs":[],"type":"error","name":"FeePercentageTooHigh"},{"inputs":[],"type":"error","name":"InvalidAddress"},{"inputs":[],"type":"error","name":"InvalidMerkleProof"},{"inputs":[],"type":"error","name":"InvalidMerkleState"},{"inputs":[],"type":"error","name":"InvalidNativeTokenTransfer"},{"inputs":[],"type":"error","name":"InvalidNativeTokenTransferAmount"},{"inputs":[],"type":"error","name":"NoFundsToClaim"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotPendingOwner"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"actual","type":"bytes32"}],"type":"error","name":"UnexpectedMerkleRoot"},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint256","name":"newAmountDistributed","type":"uint256","indexed":false}],"type":"event","name":"Claimed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256","indexed":true},{"internalType":"address","name":"distributor","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amountFunded","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"distributor","type":"address","indexed":true},{"internalType":"bool","name":"canDistribute","type":"bool","indexed":true}],"type":"event","name":"DistributorAllowanceUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool","indexed":true}],"type":"event","name":"DistributorAllowlistUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"previousFeePercentage","type":"uint256","indexed":true},{"internalType":"uint256","name":"newFeePercentage","type":"uint256","indexed":true}],"type":"event","name":"FeePercentageSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousFeeRecipient","type":"address","indexed":true},{"internalType":"address","name":"newFeeRecipient","type":"address","indexed":true}],"type":"event","name":"FeeRecipientSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousContract","type":"address","indexed":true},{"internalType":"address","name":"newContract","type":"address","indexed":true}],"type":"event","name":"MerkleSnapshotUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"FEE_RANGE","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"allowlistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"claimedAmount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"claimed","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"expectedRoot","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"distribute","outputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"distributions","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalMerkleValue","type":"uint256"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountFunded","type":"uint256"},{"internalType":"uint256","name":"amountDistributed","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllowlist","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAllowlistAt","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllowlistLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAllowlistPaginated","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"distributionIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDistribution","outputs":[{"internalType":"struct IMerkleFundDistributor.DistributionState","name":"","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalMerkleValue","type":"uint256"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountFunded","type":"uint256"},{"internalType":"uint256","name":"amountDistributed","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDistributionCount","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDistributions","outputs":[{"internalType":"struct IMerkleFundDistributor.DistributionState[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalMerkleValue","type":"uint256"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountFunded","type":"uint256"},{"internalType":"uint256","name":"amountDistributed","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"distributor","type":"address"}],"stateMutability":"view","type":"function","name":"isAllowlisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"merkleSnapshot","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"allowlistEnabled_","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setAllowlistEnabled"},{"inputs":[{"internalType":"uint256","name":"newFeePercentage","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setFeePercentage"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeRecipient"},{"inputs":[{"internalType":"address","name":"newMerkleSnapshot","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMerkleSnapshot"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"},{"internalType":"bool","name":"canDistribute_","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"updateDistributorAllowance"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"Only the pending owner can accept the ownership transfer."},"claim(uint256,address,uint256,bytes32[])":{"details":"Anyone can claim tokens on behalf of an account.","params":{"account":"The address to claim tokens for.","distributionIndex":"The index of the distribution to claim tokens for.","proof":"The merkle proof that validates this claim.","value":"The merkle tree value."},"returns":{"claimedAmount":"The amount of tokens claimed."}},"constructor":{"params":{"allowlistEnabled_":"Whether the distributor allowlist is enabled.","feePercentage_":"The fee percentage taken from the distributed amount","feeRecipient_":"The fee recipient address","merkleSnapshot_":"The MerkleSnapshot contract address","owner_":"The owner of the contract"}},"distribute(address,uint256,bytes32)":{"details":"Only distributors can distribute funds.","params":{"amount":"The amount of token to distribute.","expectedRoot":"The expected root of the merkle tree to add an additional layer of security (pass 0 to skip).","token":"The token to distribute."},"returns":{"distributionIndex":"The index of the distribution."}},"getAllowlist()":{"returns":{"_0":"All allowlisted addresses."}},"getAllowlistAt(uint256)":{"params":{"index":"The index to query."},"returns":{"_0":"The address at the index."}},"getAllowlistLength()":{"returns":{"_0":"The allowlist length."}},"getAllowlistPaginated(uint256,uint256)":{"params":{"limit":"The number of addresses to return.","offset":"The offset to start from."},"returns":{"_0":"result The allowlisted addresses."}},"getDistribution(uint256)":{"params":{"distributionIndex":"The index of the distribution."},"returns":{"_0":"distribution The distribution."}},"getDistributionCount()":{"returns":{"total":"The total number of distributions."}},"getDistributions(uint256,uint256)":{"params":{"limit":"The number of distributions to return.","offset":"The offset to start from."},"returns":{"_0":"result The distributions."}},"isAllowlisted(address)":{"params":{"distributor":"The address to check."},"returns":{"_0":"True if the address is in the allowlist."}},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"setAllowlistEnabled(bool)":{"params":{"allowlistEnabled_":"Whether the distributor allowlist is enabled."}},"setFeePercentage(uint256)":{"params":{"newFeePercentage":"The new fee percentage."}},"setFeeRecipient(address)":{"params":{"newFeeRecipient":"The new fee recipient address."}},"setMerkleSnapshot(address)":{"params":{"newMerkleSnapshot":"The new merkle snapshot contract address."}},"transferOwnership(address)":{"params":{"newOwner":"The new owner of the contract."}},"updateDistributorAllowance(address,bool)":{"params":{"canDistribute_":"The distributor's ability to distribute funds.","distributor":"The distributor address."}}},"version":1},"userdoc":{"kind":"user","methods":{"FEE_RANGE()":{"notice":"The range of the fee percentage."},"acceptOwnership()":{"notice":"Accepts the ownership transfer."},"allowlistEnabled()":{"notice":"Whether the distributor allowlist is enabled."},"claim(uint256,address,uint256,bytes32[])":{"notice":"Claims tokens for a given distribution."},"claimed(uint256,address)":{"notice":"The `amount` claimed by `account` for a given distribution."},"constructor":{"notice":"Initialize the contract"},"distribute(address,uint256,bytes32)":{"notice":"Distributes funds."},"distributions(uint256)":{"notice":"The distributions."},"feePercentage()":{"notice":"The fee percentage taken from the distributed amount."},"feeRecipient()":{"notice":"The fee recipient address."},"getAllowlist()":{"notice":"Returns all addresses in the allowlist."},"getAllowlistAt(uint256)":{"notice":"Returns the address at a given index in the allowlist."},"getAllowlistLength()":{"notice":"Returns the number of addresses in the allowlist."},"getAllowlistPaginated(uint256,uint256)":{"notice":"Returns paginated addresses in the allowlist."},"getDistribution(uint256)":{"notice":"Gets a distribution by index."},"getDistributionCount()":{"notice":"Returns the total number of distributions."},"getDistributions(uint256,uint256)":{"notice":"Gets paginated distributions."},"isAllowlisted(address)":{"notice":"Checks if an address is in the allowlist."},"merkleSnapshot()":{"notice":"Address of the MerkleSnapshot contract to query for merkle state"},"owner()":{"notice":"The address that can update the distribution parameters."},"pause()":{"notice":"Pauses the contract."},"pendingOwner()":{"notice":"The pending owner address (for 2-step ownership transfer)."},"setAllowlistEnabled(bool)":{"notice":"Sets the `allowlistEnabled` of the contract to `allowlistEnabled_`."},"setFeePercentage(uint256)":{"notice":"Sets the `feePercentage` of the contract to `newFeePercentage`."},"setFeeRecipient(address)":{"notice":"Sets the `feeRecipient` of the contract to `newFeeRecipient`."},"setMerkleSnapshot(address)":{"notice":"Sets the `merkleSnapshot` of the contract to `newMerkleSnapshot`."},"transferOwnership(address)":{"notice":"Starts 2-step ownership transfer to `newOwner`."},"unpause()":{"notice":"Unpauses the contract."},"updateDistributorAllowance(address,bool)":{"notice":"Updates a distributor's ability to distribute funds."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/merkle/MerkleFundDistributor.sol":"MerkleFundDistributor"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Pausable.sol":{"keccak256":"0xdb484371dfbb848cb6f5d70464e9ac9b2900e4164ead76bbce4fef0b44bcc68f","urls":["bzz-raw://f9d6f6f6600a2bec622f699081b58350873b5e63ce05464d17d674a290bb8a7c","dweb:/ipfs/QmQKVzSQY1PM3Bid4QhgVVZyx6B4Jx7XgaQzLKHj38vJz8"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134","urls":["bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6","dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"src/contracts/merkle/MerkleFundDistributor.sol":{"keccak256":"0x9a8e337089f58557b4594dc3d7d71535ef3f9313e1163b2b8037d9dab7f9e3cd","urls":["bzz-raw://7900ba1c3e2bcd07d918c29535215d9f2969481ae0508ea4a43d51151336b21f","dweb:/ipfs/QmdBqV9A24ZVX6okGVedNn75TQCJGR8M9ykbvWaKicWNGS"],"license":"MIT"},"src/interfaces/IMerkleFundDistributor.sol":{"keccak256":"0x993d16dd10e7353d3649eb96803e2139fcdeb9871e90c2ef0b1f3c055b404157","urls":["bzz-raw://6fde5728ce681d483d6fa10383ccbbb4f5370d0980e230baa6e364a9a26a2761","dweb:/ipfs/Qmd1Y4jeXKkH8SDRVPgLm29LkLP5a3tCwv2yu4yVny69XZ"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshot.sol":{"keccak256":"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0","urls":["bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66","dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file diff --git a/frontend/abis/MerkleGovModule.json b/frontend/abis/MerkleGovModule.json index a445c9b6..d6b6aa5e 100644 --- a/frontend/abis/MerkleGovModule.json +++ b/frontend/abis/MerkleGovModule.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_avatar","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_merkleSnapshot","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"QUORUM_RANGE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"avatar","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cancel","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"castVote","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"voteType","type":"uint8","internalType":"enum MerkleGovModule.VoteType"},{"name":"votingPower","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentMerkleRoot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"execute","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActions","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct MerkleGovModule.ProposalAction[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Operation"},{"name":"description","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getProposal","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proposal","type":"tuple","internalType":"struct MerkleGovModule.Proposal","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"proposer","type":"address","internalType":"address"},{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"startBlock","type":"uint256","internalType":"uint256"},{"name":"endBlock","type":"uint256","internalType":"uint256"},{"name":"yesVotes","type":"uint256","internalType":"uint256"},{"name":"noVotes","type":"uint256","internalType":"uint256"},{"name":"abstainVotes","type":"uint256","internalType":"uint256"},{"name":"executed","type":"bool","internalType":"bool"},{"name":"cancelled","type":"bool","internalType":"bool"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"totalVotingPower","type":"uint256","internalType":"uint256"}]},{"name":"proposalState","type":"uint8","internalType":"enum MerkleGovModule.ProposalState"},{"name":"actions","type":"tuple[]","internalType":"struct MerkleGovModule.ProposalAction[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Operation"},{"name":"description","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"hasVoted","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipfsHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ipfsHashCid","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"merkleSnapshotContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onMerkleUpdate","inputs":[{"name":"state_","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalActions","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Operation"},{"name":"description","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"proposer","type":"address","internalType":"address"},{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"startBlock","type":"uint256","internalType":"uint256"},{"name":"endBlock","type":"uint256","internalType":"uint256"},{"name":"yesVotes","type":"uint256","internalType":"uint256"},{"name":"noVotes","type":"uint256","internalType":"uint256"},{"name":"abstainVotes","type":"uint256","internalType":"uint256"},{"name":"executed","type":"bool","internalType":"bool"},{"name":"cancelled","type":"bool","internalType":"bool"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"totalVotingPower","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"propose","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"operations","type":"uint8[]","internalType":"enum Operation[]"},{"name":"actionDescriptions","type":"string[]","internalType":"string[]"},{"name":"votingPower","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proposeWithVote","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"operations","type":"uint8[]","internalType":"enum Operation[]"},{"name":"actionDescriptions","type":"string[]","internalType":"string[]"},{"name":"votingPower","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"voteType","type":"uint8","internalType":"enum MerkleGovModule.VoteType"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quorum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAvatar","inputs":[{"name":"_avatar","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMerkleSnapshotContract","inputs":[{"name":"newContract","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorum","inputs":[{"name":"newQuorum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTarget","inputs":[{"name":"_target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[{"name":"initializeParams","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingDelay","inputs":[{"name":"newDelay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingPeriod","inputs":[{"name":"newPeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"state","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum MerkleGovModule.ProposalState"}],"stateMutability":"view"},{"type":"function","name":"target","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalVotingPower","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"votes","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum MerkleGovModule.VoteType"}],"stateMutability":"view"},{"type":"function","name":"votingDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"votingPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AvatarSet","inputs":[{"name":"previousAvatar","type":"address","indexed":true,"internalType":"address"},{"name":"newAvatar","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"MerkleRootUpdated","inputs":[{"name":"root","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","indexed":false,"internalType":"string"},{"name":"totalValue","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MerkleSnapshotContractUpdated","inputs":[{"name":"previousContract","type":"address","indexed":true,"internalType":"address"},{"name":"newContract","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalCancelled","inputs":[{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"proposer","type":"address","indexed":true,"internalType":"address"},{"name":"title","type":"string","indexed":false,"internalType":"string"},{"name":"description","type":"string","indexed":false,"internalType":"string"},{"name":"startBlock","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"endBlock","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"merkleRoot","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"totalVotingPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalExecuted","inputs":[{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumUpdated","inputs":[{"name":"newQuorum","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TargetSet","inputs":[{"name":"previousTarget","type":"address","indexed":true,"internalType":"address"},{"name":"newTarget","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"voter","type":"address","indexed":true,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"voteType","type":"uint8","indexed":false,"internalType":"enum MerkleGovModule.VoteType"},{"name":"votingPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VotingDelayUpdated","inputs":[{"name":"newDelay","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VotingPeriodUpdated","inputs":[{"name":"newPeriod","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadyVoted","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidProposalData","inputs":[]},{"type":"error","name":"InvalidQuorum","inputs":[]},{"type":"error","name":"InvalidTotalVotingPower","inputs":[]},{"type":"error","name":"InvalidVotingPeriod","inputs":[]},{"type":"error","name":"NoMerkleRootSet","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OnlyMerkleSnapshot","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ProposalAlreadyCancelled","inputs":[]},{"type":"error","name":"ProposalAlreadyExecuted","inputs":[]},{"type":"error","name":"ProposalNotFound","inputs":[]},{"type":"error","name":"ProposalNotPassed","inputs":[]},{"type":"error","name":"VotingClosed","inputs":[]}],"bytecode":{"object":"0x6080806040523461049a57608081612f1e803803809161001f82856104bb565b83398101031261049a57610032816104de565b9061003f602082016104de565b906100586060610051604084016104de565b92016104de565b916001600c5561c4e0600d55668e1bc9bf040000600e55600f5460ff81166104ad5760ff1916600117600f557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b0396871690811790925560405195167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35f80546001600160a01b03199081166001600160a01b0393841617909155600180549091169282169290921790915516801561049e57600280546001600160a01b0319811683179091556305b209d760e31b8352915f81600481855afa5f91816103b3575b5061027757503d15610270573d610167816104f2565b9061017560405192836104bb565b81523d5f602083013e5b805190600482148061021c575b156102175750505f6003555f6004556101a660055461050d565b601f81116101f6575b505f6005555f6006555b604051916001600160a01b03167fb8ed9bab5ad5186bb6cda3bac43ff4b637c4494961d1ee2a6a0c6408de71211b5f80a36129c2908161055c8239f35b6102119060055f52601f60205f20910160051c810190610545565b5f6101af565b602001fd5b5060208101516001600160e01b031981169060048410610250575b506001600160e01b031916633b02b60f60e11b1461018c565b6001600160e01b0319600485900360031b81901b9091161690505f610237565b606061017f565b604081015160035560608101516004556080810151805190939291906001600160401b03811161039f576102ac60055461050d565b601f8111610363575b506020601f82116001146102fb57819060a09495965f926102f0575b50508160011b915f199060031b1c1916176005555b01516006556101b9565b015190505f806102d1565b601f1982169560055f52815f20965f5b81811061034b57509160a095969791846001959410610333575b505050811b016005556102e6565b01515f1960f88460031b161c191690555f8080610325565b8383015189556001909801976020938401930161030b565b61038f9060055f5260205f20601f840160051c81019160208510610395575b601f0160051c0190610545565b5f6102b5565b9091508190610382565b634e487b7160e01b5f52604160045260245ffd5b9091503d805f833e6103c581836104bb565b81019060208183031261049a578051906001600160401b03821161049a57019060c08282031261049a576040519160c083016001600160401b0381118482101761039f5760405280518352602081015160208401526040810151604084015260608101516060840152608081015160018060401b03811161049a5781019180601f8401121561049a578251610459816104f2565b9161046760405193846104bb565b8183526020828601011161049a576020815f928260a097018386015e830101526080840152015160a0820152905f610151565b5f80fd5b63e6c4247b60e01b5f5260045ffd5b62dc149f60e41b5f5260045ffd5b601f909101601f19168101906001600160401b0382119082101761039f57604052565b51906001600160a01b038216820361049a57565b6001600160401b03811161039f57601f01601f191660200190565b90600182811c9216801561053b575b602083101461052757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161051c565b818110610550575050565b5f815560010161054556fe60806040526004361015610011575f80fd5b5f3560e01c8063013cf08b146115a357806302a251a314611586578063086cfca81461151f5780631703a018146115025780631acc1ab0146114d9578063328dd98214611401578063343fc9e7146112df5780633932abb1146112c25780633e4f49e61461129757806340e58ee5146111b1578063438596321461116857806356b9e4c5146110ba5780635aef7de614611093578063671b37931461107657806370b0f6601461102a578063715018a614610fc3578063748aca8e14610e7e578063776d1a0114610e155780638da5cb5b14610de15780639cb5bd9e14610d035780639ea9719014610ce6578063a01ff54e14610c22578063a120455c14610c00578063a4f9edbf14610b23578063a96ab06d14610afb578063bbdce969146108ad578063c1ba4e5914610833578063c623674f14610816578063c7f758a81461052e578063d23254b4146104e0578063d4b83992146104b8578063da35c6641461049b578063ea0217cf14610439578063f2fde38b146103eb5763fe0d94c11461019a575f80fd5b34610311576020366003190112610311576004356101b781611c2d565b60068110156103d7576003036103c857805f526008602052600960405f2001600160ff19825416179055805f52600960205260405f2080546101f881611941565b91610206604051938461171f565b81835260208301905f5260205f205f915b83831061034f5785855f5b8151811015610328576102ba60206001600160a01b036102428486611d93565b515116816102508587611d93565b5101519060406102608688611d93565b510151915f61027b6060610274898b611d93565b5101611da7565b9260018060a01b0360015416936102c56040519889978896879563468721a760e01b8752600487015260248601526080604486015260848501906117e0565b916064840190611830565b03925af1801561031d576102dd575b50600101610222565b6020813d8211610315575b816102f56020938361171f565b81010312610311575190811515820361031157905060016102d4565b5f80fd5b3d91506102e8565b6040513d5f823e3d90fd5b827f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f5f80a2005b60056020600192604051610362816116cd565b848060a01b0386541681528486015483820152604051610390816103898160028b01611b72565b038261171f565b60408201526103a960ff60038801541660608301611c00565b6103b560048701611740565b6080820152815201920192019190610217565b63c8c93ba360e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b3461031157602036600319011261031157610404611804565b61040c611db4565b6001600160a01b038116156104265761042490612786565b005b631e4fbdf760e01b5f525f60045260245ffd5b3461031157602036600319011261031157600435610455611db4565b801561048c576020817f651c77f42613a075437aa794c44471e3abc3a661956a67aaee165bb7396974aa92600d55604051908152a1005b6305a612e360e01b5f5260045ffd5b34610311575f366003190112610311576020600754604051908152f35b34610311575f366003190112610311576001546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576104f961181a565b6004355f52600b60205260405f209060018060a01b03165f52602052602060ff60405f20541661052c6040518092611bf3565bf35b34610311576020366003190112610311576004355f61018060405161055281611703565b828152826020820152606060408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015201528015801561080b575b6107fc57805f52600860205260405f20604051916105c483611703565b8154835260018201546001600160a01b031660208401908152916105ea60028201611740565b6040850190815291846105ff60038401611740565b92606082019384526004810154936080830194855260058201549060a08401918252600683015460c08501908152600784015460e08601908152600885015491610100870192835260098601549461012088019460ff87161515865261014089019660081c60ff1615158752600a880154976101608a01988952600b0154986101800198895261068e8a611c2d565b995f52600960205260405f209b8c546106a681611941565b9d6040519e8f906106b7908261171f565b828152602001905f5260205f205f915b83831061078a57505050506040519e8f9e8f9160608352516060830152600160a01b600190039051169060800152518d60a081016101a090526102000161070d916117e0565b90518d8203605f190160c08f015261072591906117e0565b995160e08d0152516101008c0152516101208b0152516101408a0152516101608901525115156101808801525115156101a0870152516101c0860152516101e08501526020840161077591611b38565b82810360408401526107869161183d565b0390f35b6005602060019260405161079d816116cd565b848060a01b03865416815284860154838201526040516107c4816103898160028b01611b72565b60408201526107dd60ff60038801541660608301611c00565b6107e960048701611740565b60808201528152019201920191906106c7565b63635e873760e01b5f5260045ffd5b5060075481116105a7565b34610311575f366003190112610311576020600454604051908152f35b346103115760203660031901126103115760043561084f611db4565b8015801561089c575b61088d576020817ff18f88786aae85a652aadb99a82462616489a33370c9bcc7b245906812ef7cd192600e55604051908152a1005b63d173577960e01b5f5260045ffd5b50670de0b6b3a76400008111610858565b34610311576020366003190112610311576004356001600160401b0381116103115760c06003198236030112610311576040516108e9816116e8565b8160040135815260248201356020820152604081016044830135815260608201916064840135835260848401356001600160401b0381116103115760a061093860a492600436918901016118fd565b926080810193845201940135845260018060a01b03600254163303610aec57835115610add57815160035582516004558051938451946001600160401b038611610ac9576109908661098b600554611695565b611d18565b602090601f8711600114610a245795806109e2927f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa7697985f92610a19575b50508160011b915f199060031b1c19161790565b6005555b519182600655519351905191610a0e60405193849384526060602085015260608401906117e0565b9060408301520390a2005b0151905088806109ce565b90601f1987169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b818110610ab157509160019391897f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa76999a9410610a99575b505050811b016005556109e6565b01515f1960f88460031b161c19169055878080610a8b565b92936020600181928786015181550195019301610a53565b634e487b7160e01b5f52604160045260245ffd5b630558bb2560e21b5f5260045ffd5b63173d355360e11b5f5260045ffd5b34610311575f366003190112610311576002546040516001600160a01b039091168152602090f35b34610311576020366003190112610311576004356001600160401b03811161031157610b539036906004016118fd565b600f5460ff8116610bf25760019060ff191617600f556080818051810103126103115780610b8660206104249301611cee565b90610b9360408201611cee565b610bbd610bae6080610ba760608601611cee565b9401611cee565b936001600160a01b0316612786565b5f80546001600160a01b03199081166001600160a01b0393841617909155600180549091169282169290921790915516611de7565b62dc149f60e41b5f5260045ffd5b34610311575f366003190112610311576020604051670de0b6b3a76400008152f35b3461031157608036600319011261031157600435602435600381101561031157604435906064356001600160401b03811161031157610c65903690600401611b08565b845f95929552600860205260405f2090610c7e83611c2d565b60068110156103d757600103610cd7575f838152600a6020908152604080832033845290915290205460ff16610cc85761042495600a610cc193015486336128c3565b33906127da565b637c9a1cf960e01b5f5260045ffd5b63335b65a560e11b5f5260045ffd5b34610311575f366003190112610311576020600354604051908152f35b34610311575f366003190112610311576040515f600554610d2381611695565b8084529060018116908115610dbd5750600114610d5f575b61078683610d4b8185038261171f565b6040519182916020835260208301906117e0565b60055f9081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b808210610da357509091508101602001610d4b610d3b565b919260018160209254838588010152019101909291610d8b565b60ff191660208086019190915291151560051b84019091019150610d4b9050610d3b565b34610311575f366003190112610311575f51602061296d5f395f51905f52546040516001600160a01b039091168152602090f35b3461031157602036600319011261031157610e2e611804565b610e36611db4565b600180546001600160a01b039283166001600160a01b0319821681179092559091167f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d65f80a3005b3461031157610140366003190112610311576004356001600160401b03811161031157610eaf9036906004016118fd565b6024356001600160401b03811161031157610ece9036906004016118fd565b6044356001600160401b03811161031157610eed903690600401611958565b6064356001600160401b03811161031157610f0c9036906004016119c6565b926084356001600160401b03811161031157610f2c903690600401611a23565b9260a4356001600160401b03811161031157610f4c903690600401611aa1565b60c4356001600160401b03811161031157610f6b903690600401611a23565b9060e43593610104356001600160401b03811161031157610f90903690600401611b08565b939092610124359860038a10156103115760209a610fbb99610fb3988a9661212c565b9233846127da565b604051908152f35b34610311575f36600319011261031157610fdb611db4565b5f51602061296d5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610311576020366003190112610311577fba76433d63148cc0d7df02d39ab5cddf8737df279d4af4c7bce819a2ef719e956020600435611069611db4565b80600c55604051908152a1005b34610311575f366003190112610311576020600654604051908152f35b34610311575f366003190112610311575f546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576024356004355f52600960205260405f20908154811015610311576110ef91611b45565b5060018060a01b03815416610786600183015492604051611117816103898160028601611b72565b61115b611150611131600460ff6003870154169501611740565b926040519788978852602088015260a0604088015260a08701906117e0565b926060860190611830565b83820360808501526117e0565b346103115760403660031901126103115761118161181a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610311576020366003190112610311576004358015801561128c575b6107fc57805f52600860205260405f2060018060a01b035f51602061296d5f395f51905f52541633141580611278575b61126957600901805460ff811661125a5760ff8160081c1661124b5761ff0019166101001790557f416e669c63d9a3a5e36ee7cc7e2104b8db28ccd286aa18966e98fa230c73b08c5f80a2005b63029684ff60e61b5f5260045ffd5b6351618d5360e01b5f5260045ffd5b63ea8e4eb560e01b5f5260045ffd5b505f546001600160a01b03163314156111fe565b5060075481116111ce565b346103115760203660031901126103115760206112b5600435611c2d565b61052c6040518092611b38565b34610311575f366003190112610311576020600c54604051908152f35b3461031157610120366003190112610311576004356001600160401b038111610311576113109036906004016118fd565b6024356001600160401b0381116103115761132f9036906004016118fd565b906044356001600160401b0381116103115761134f903690600401611958565b6064356001600160401b0381116103115761136e9036906004016119c6565b926084356001600160401b0381116103115761138e903690600401611a23565b9260a4356001600160401b038111610311576113ae903690600401611aa1565b60c4356001600160401b038111610311576113cd903690600401611a23565b9061010435956001600160401b038711610311576020976113f5610fbb983690600401611b08565b97909660e4359661212c565b34610311576020366003190112610311576004355f52600960205260405f20805461142b81611941565b91611439604051938461171f565b81835260208301905f5260205f205f915b83831061146757604051602080825281906107869082018861183d565b6005602060019260405161147a816116cd565b848060a01b03865416815284860154838201526040516114a1816103898160028b01611b72565b60408201526114ba60ff60038801541660608301611c00565b6114c660048701611740565b608082015281520192019201919061144a565b34610311576020366003190112610311576104246114f5611804565b6114fd611db4565b611de7565b34610311575f366003190112610311576020600e54604051908152f35b3461031157602036600319011261031157611538611804565b611540611db4565b5f80546001600160a01b039283166001600160a01b03198216811783559216907f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce3429080a3005b34610311575f366003190112610311576020600d54604051908152f35b34610311576020366003190112610311576004355f908152600860205260409020805460018201546001600160a01b0316916115e160028201611740565b6115ed60038301611740565b9160048101549260058201546006830154600784015490600885015492600986015494600a87015496600b0154976040519b8c9b8c5260208c015260408b016101a090526101a08b0161163f916117e0565b8a810360608c0152611650916117e0565b9760808a015260a089015260c088015260e087015261010086015260ff8116151561012086015260081c60ff1615156101408501526101608401526101808301520390f35b90600182811c921680156116c3575b60208310146116af57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916116a4565b60a081019081106001600160401b03821117610ac957604052565b60c081019081106001600160401b03821117610ac957604052565b6101a081019081106001600160401b03821117610ac957604052565b90601f801991011681019081106001600160401b03821117610ac957604052565b9060405191825f82549261175384611695565b80845293600181169081156117be575060011461177a575b506117789250038361171f565b565b90505f9291925260205f20905f915b8183106117a2575050906020611778928201015f61176b565b6020919350806001915483858901015201910190918492611789565b90506020925061177894915060ff191682840152151560051b8201015f61176b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361031157565b602435906001600160a01b038216820361031157565b9060028210156103d75752565b9080602083519182815201916020808360051b8301019401925f915b83831061186857505050505090565b90919293946020806118d3600193601f19868203018752895190858060a01b038251168152838201518482015260806118b0604084015160a0604085015260a08401906117e0565b926118c360608201516060850190611830565b01519060808184039101526117e0565b97019301930191939290611859565b6001600160401b038111610ac957601f01601f191660200190565b81601f8201121561031157602081359101611917826118e2565b92611925604051948561171f565b8284528282011161031157815f92602092838601378301015290565b6001600160401b038111610ac95760051b60200190565b9080601f830112156103115781359061197082611941565b9261197e604051948561171f565b82845260208085019360051b82010191821161031157602001915b8183106119a65750505090565b82356001600160a01b038116810361031157815260209283019201611999565b9080601f830112156103115781356119dd81611941565b926119eb604051948561171f565b81845260208085019260051b82010192831161031157602001905b828210611a135750505090565b8135815260209182019101611a06565b9080601f83011215610311578135611a3a81611941565b92611a48604051948561171f565b81845260208085019260051b820101918383116103115760208201905b838210611a7457505050505090565b81356001600160401b03811161031157602091611a96878480948801016118fd565b815201910190611a65565b9080601f8301121561031157813590611ab982611941565b92611ac7604051948561171f565b82845260208085019360051b82010191821161031157602001915b818310611aef5750505090565b8235600281101561031157815260209283019201611ae2565b9181601f84011215610311578235916001600160401b038311610311576020808501948460051b01011161031157565b9060068210156103d75752565b8054821015611b5e575f52600560205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b5f9291815491611b8183611695565b8083529260018116908115611bd65750600114611b9d57505050565b5f9081526020812093945091925b838310611bbc575060209250010190565b600181602092949394548385870101520191019190611bab565b915050602093945060ff929192191683830152151560051b010190565b9060038210156103d75752565b60028210156103d75752565b91908201809211611c1957565b634e487b7160e01b5f52601160045260245ffd5b80158015611ce3575b6107fc575f52600860205260405f20600981015460ff8160081c16611cdc5760ff16611cd65760048101544310611cd1576005810154431115611ccb57600681015490600781015490611ca8600b611c9c611c918587611c0c565b600885015490611c0c565b920154600e54906126f0565b11159182611cc1575b5050611cbc57600290565b600390565b1190505f80611cb1565b50600190565b505f90565b50600490565b5050600590565b506007548111611c36565b51906001600160a01b038216820361031157565b818110611d0d575050565b5f8155600101611d02565b90601f8211611d25575050565b6117789160055f5260205f20906020601f840160051c83019310611d51575b601f0160051c0190611d02565b9091508190611d44565b9190601f8111611d6a57505050565b611778925f5260205f20906020601f840160051c83019310611d5157601f0160051c0190611d02565b8051821015611b5e5760209160051b010190565b5160028110156103d75790565b5f51602061296d5f395f51905f52546001600160a01b03163303611dd457565b63118cdaa760e01b5f523360045260245ffd5b6001600160a01b0316801561211d57600280546001600160a01b0319811683179091556040516305b209d760e31b81525f81600481865afa5f9181612045575b50611f3f57503d15611f38573d611e3d816118e2565b90611e4b604051928361171f565b81523d5f602083013e5b8051906004821480611ee4575b15611edf5750505f6003555f600455611e7c600554611695565b601f8111611ebe575b505f6005555f6006555b6001600160a01b03167fb8ed9bab5ad5186bb6cda3bac43ff4b637c4494961d1ee2a6a0c6408de71211b5f80a3565b611ed99060055f52601f60205f20910160051c810190611d02565b5f611e85565b602001fd5b5060208101516001600160e01b031981169060048410611f18575b506001600160e01b031916633b02b60f60e11b14611e62565b6001600160e01b0319600485900360031b81901b9091161690505f611eff565b6060611e55565b6040810151600355606081015160045560808101518051906001600160401b038211610ac957611f748261098b600554611695565b602090601f8311600114611fbf579180611fa69260a095945f92611fb45750508160011b915f199060031b1c19161790565b6005555b0151600655611e8f565b015190505f806109ce565b90601f1983169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b81811061202d575091600193918560a097969410612015575b505050811b01600555611faa565b01515f1960f88460031b161c191690555f8080612007565b92936020600181928786015181550195019301611fee565b9091503d805f833e612057818361171f565b810190602081830312610311578051906001600160401b03821161031157019060c082820312610311576040519161208e836116e8565b8051835260208101516020840152604081015160408401526060810151606084015260808101516001600160401b0381116103115781019180601f840112156103115782516120dc816118e2565b916120ea604051938461171f565b81835260208286010111610311576020815f928260a097018386015e830101526080840152015160a0820152905f611e27565b63e6c4247b60e01b5f5260045ffd5b989092999396919760035480156126e15789518c518114908115916126d5575b81156126c9575b81156126bd575b506126ae5761216993336128c3565b600754915f198314611c1957600183810160078190555f81815260086020526040902081815591820180546001600160a01b0319163317905589519199909391906001600160401b038211610ac9576121d2828c60026121cb81830154611695565b9101611d5b565b602090601f83116001146126455761220092915f9183611fb45750508160011b915f199060031b1c19161790565b60028a01555b8051906001600160401b038211610ac9576122318261222860038d0154611695565b60038d01611d5b565b602090601f83116001146125d85761225f92915f9183611fb45750508160011b915f199060031b1c19161790565b60038901555b612283612274600c5443611c0c565b8060048b0155600d5490611c0c565b6005890155600354600a890155600654600b8901555f5b875181101561254a57600184015f9081526009602052604090206001600160a01b036122c6838b611d93565b5116906122d3838d611d93565b516123236122e1858c611d93565b516122f46122ef878c611d93565b611da7565b906122ff878d611d93565b51936040519661230e886116cd565b87526020870152604086015260608501611c00565b6080830152805468010000000000000000811015610ac95761234a91600182018155611b45565b91909161253757805182546001600160a01b0319166001600160a01b0391909116178255602081015160018301556040810151805160028401916001600160401b038211610ac9576123a6826123a08554611695565b85611d5b565b602090601f83116001146124d4576123d492915f9183611fb45750508160011b915f199060031b1c19161790565b90555b6060810151906003830160028310156103d75760809260ff8019835416911617905501518051906001600160401b038211610ac9576124268261241d6004860154611695565b60048601611d5b565b602090601f83116001146124655782600195949360049361245b935f92611fb45750508160011b915f199060031b1c19161790565b9101555b0161229a565b90600484015f52805f20915f5b601f19851681106124bc575092600492600196959492879383601f198116106124a4575b505050811b0191015561245f565b01515f1960f88460031b161c191690555f8080612496565b91926020600181928685015181550194019201612472565b90601f19831691845f52815f20925f5b81811061251f5750908460019594939210612507575b505050811b0190556123d7565b01515f1960f88460031b161c191690555f80806124fa565b929360206001819287860151815501950193016124e4565b634e487b7160e01b5f525f60045260245ffd5b509694509650935050507f7fbe432f55ce68ee893ba06ce1304fa7bd8435642ff4654d6ac718361e68532c6004820154916005810154600a820154600b830154916125b76040519460c0865260036125a860c0880160028401611b72565b91878303602089015201611b72565b9560408501526060840152608083015260a0820152806001339501930390a3565b919060038b015f52805f20905f935b601f198416851061262a576001945083601f19811610612612575b505050811b016003890155612265565b01515f1960f88460031b161c191690555f8080612602565b818101518355602094850194600190930192909101906125e7565b90601f1983169160028d015f52815f20925f5b818110612696575090846001959493921061267e575b505050811b0160028a0155612206565b01515f1960f88460031b161c191690555f808061266e565b92936020600181928786015181550195019301612658565b632fc149b760e11b5f5260045ffd5b9050885114155f61215a565b88518114159150612153565b8a51811415915061214c565b63a34e98db60e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146127735782670de0b6b3a7640000111561276157507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b5f51602061296d5f395f51905f5280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b5f818152600860209081526040808320600a83528184206001600160a01b038716808652908452828520805460ff19166001179055858552600b8452828520908552909252909120919490929060038510156103d7577f2c9deb38f462962eadbd85a9d3a4120503ee091f1582eaaa10aa8c6797651d299360409360ff1981541660ff8816179055600186145f1461289b5760060161287a828254611c0c565b90555b61288983518096611bf3565b60208501526001600160a01b031692a3565b856128b5576007016128ae828254611c0c565b905561287d565b6008016128ae828254611c0c565b604080516001600160a01b03909216602083019081528282019390935281529192916128f060608261171f565b519020604051602081019182526020815261290c60408261171f565b519020915f925b84841015612951578360051b830135908181105f14612940575f52602052600160405f205b930192612913565b905f52602052600160405f20612938565b92509250500361295d57565b63582f497d60e11b5f5260045ffdfe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a2646970667358221220ba80e9dcb766e657c2f3c15e544794f510abb3ef8904877ac042cec236fd64ce64736f6c634300081b0033","sourceMap":"811:21142:103:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;4970:1;;811:21142;5017:5;;811:21142;5077:4;;811:21142;5673:12;811:21142;;;;5669:45;;-1:-1:-1;;811:21142:103;4970:1;811:21142;5673:12;811:21142;1280:65:14;811:21142:103;;-1:-1:-1;;;;;;811:21142:103;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;3975:40:14;-1:-1:-1;;3975:40:14;-1:-1:-1;811:21142:103;;-1:-1:-1;;;;;;811:21142:103;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;20565:25;;20561:54;;20653:22;811:21142;;-1:-1:-1;;;;;;811:21142:103;;;;;;;-1:-1:-1;;;20885:45:103;;811:21142;-1:-1:-1;811:21142:103;20885:45;811:21142;;20885:45;;-1:-1:-1;;20885:45:103;;;-1:-1:-1;;20881:989:103;;-1:-1:-1;811:21142:103;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;811:21142:103;;;;;;;21433:18;20885:45;21433:18;;:95;;;811:21142;21412:448;;;811:21142;;-1:-1:-1;21561:30:103;811:21142;-1:-1:-1;20885:45:103;811:21142;;21648:16;811:21142;;:::i;:::-;;;;;;21412:448;811:21142;-1:-1:-1;21648:16:103;811:21142;-1:-1:-1;21682:20:103;811:21142;20881:989;811:21142;;;-1:-1:-1;;;;;811:21142:103;21884:60;-1:-1:-1;;21884:60:103;811:21142;;;;;;;;;;21648:16;-1:-1:-1;811:21142:103;;;-1:-1:-1;811:21142:103;;;21648:16;811:21142;;;;;:::i;:::-;;;;21412:448;811:21142;21741:105;;21433:95;-1:-1:-1;811:21142:103;;;;-1:-1:-1;;;;;;811:21142:103;;;20885:45;811:21142;;;;21433:95;-1:-1:-1;;;;;;;811:21142:103;-1:-1:-1;;;21471:57:103;21433:95;;811:21142;-1:-1:-1;;;;;;20885:45:103;811:21142;;;;;;;;;;;;;-1:-1:-1;811:21142:103;;;;;;;20881:989;811:21142;21044:16;;811:21142;21024:36;811:21142;;21085:20;;811:21142;20885:45;811:21142;;21133:23;;;811:21142;;21133:23;;21044:16;;;-1:-1:-1;;;;;811:21142:103;;;;;21119:37;811:21142;;:::i;:::-;;;;;;20881:989;811:21142;;;;;;;;;;;21189:22;811:21142;;;-1:-1:-1;811:21142:103;;;;;;;4970:1;811:21142;;;;;21024:36;811:21142;;;;;21119:37;811:21142;;21189:22;811:21142;21170:41;811:21142;20881:989;;811:21142;;;;-1:-1:-1;811:21142:103;;;;;;;;;;21119:37;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;;;21189:22;811:21142;;;;;4970:1;811:21142;;;;;;;;;;;;21119:37;811:21142;;;;;;;;;;21024:36;811:21142;;;;;;;;;;;;;;;;;;;4970:1;811:21142;;;;;;;;;;;;;;;21119:37;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;21119:37;811:21142;;;;;;;;;;;;21119:37;811:21142;;;;:::i;:::-;;;;;;;-1:-1:-1;811:21142:103;;;;;;;;-1:-1:-1;811:21142:103;;20885:45;811:21142;;-1:-1:-1;811:21142:103;20885:45;;;;;;-1:-1:-1;20885:45:103;;;;;;:::i;:::-;;;811:21142;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;20885:45;;;;811:21142;-1:-1:-1;811:21142:103;;20561:54;20599:16;;;-1:-1:-1;20599:16:103;;-1:-1:-1;20599:16:103;5669:45;5694:20;;;-1:-1:-1;5694:20:103;;-1:-1:-1;5694:20:103;811:21142;;;;;-1:-1:-1;;811:21142:103;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;:::o;:::-;-1:-1:-1;;;;;811:21142:103;;;;;;-1:-1:-1;;811:21142:103;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063013cf08b146115a357806302a251a314611586578063086cfca81461151f5780631703a018146115025780631acc1ab0146114d9578063328dd98214611401578063343fc9e7146112df5780633932abb1146112c25780633e4f49e61461129757806340e58ee5146111b1578063438596321461116857806356b9e4c5146110ba5780635aef7de614611093578063671b37931461107657806370b0f6601461102a578063715018a614610fc3578063748aca8e14610e7e578063776d1a0114610e155780638da5cb5b14610de15780639cb5bd9e14610d035780639ea9719014610ce6578063a01ff54e14610c22578063a120455c14610c00578063a4f9edbf14610b23578063a96ab06d14610afb578063bbdce969146108ad578063c1ba4e5914610833578063c623674f14610816578063c7f758a81461052e578063d23254b4146104e0578063d4b83992146104b8578063da35c6641461049b578063ea0217cf14610439578063f2fde38b146103eb5763fe0d94c11461019a575f80fd5b34610311576020366003190112610311576004356101b781611c2d565b60068110156103d7576003036103c857805f526008602052600960405f2001600160ff19825416179055805f52600960205260405f2080546101f881611941565b91610206604051938461171f565b81835260208301905f5260205f205f915b83831061034f5785855f5b8151811015610328576102ba60206001600160a01b036102428486611d93565b515116816102508587611d93565b5101519060406102608688611d93565b510151915f61027b6060610274898b611d93565b5101611da7565b9260018060a01b0360015416936102c56040519889978896879563468721a760e01b8752600487015260248601526080604486015260848501906117e0565b916064840190611830565b03925af1801561031d576102dd575b50600101610222565b6020813d8211610315575b816102f56020938361171f565b81010312610311575190811515820361031157905060016102d4565b5f80fd5b3d91506102e8565b6040513d5f823e3d90fd5b827f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f5f80a2005b60056020600192604051610362816116cd565b848060a01b0386541681528486015483820152604051610390816103898160028b01611b72565b038261171f565b60408201526103a960ff60038801541660608301611c00565b6103b560048701611740565b6080820152815201920192019190610217565b63c8c93ba360e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b3461031157602036600319011261031157610404611804565b61040c611db4565b6001600160a01b038116156104265761042490612786565b005b631e4fbdf760e01b5f525f60045260245ffd5b3461031157602036600319011261031157600435610455611db4565b801561048c576020817f651c77f42613a075437aa794c44471e3abc3a661956a67aaee165bb7396974aa92600d55604051908152a1005b6305a612e360e01b5f5260045ffd5b34610311575f366003190112610311576020600754604051908152f35b34610311575f366003190112610311576001546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576104f961181a565b6004355f52600b60205260405f209060018060a01b03165f52602052602060ff60405f20541661052c6040518092611bf3565bf35b34610311576020366003190112610311576004355f61018060405161055281611703565b828152826020820152606060408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015201528015801561080b575b6107fc57805f52600860205260405f20604051916105c483611703565b8154835260018201546001600160a01b031660208401908152916105ea60028201611740565b6040850190815291846105ff60038401611740565b92606082019384526004810154936080830194855260058201549060a08401918252600683015460c08501908152600784015460e08601908152600885015491610100870192835260098601549461012088019460ff87161515865261014089019660081c60ff1615158752600a880154976101608a01988952600b0154986101800198895261068e8a611c2d565b995f52600960205260405f209b8c546106a681611941565b9d6040519e8f906106b7908261171f565b828152602001905f5260205f205f915b83831061078a57505050506040519e8f9e8f9160608352516060830152600160a01b600190039051169060800152518d60a081016101a090526102000161070d916117e0565b90518d8203605f190160c08f015261072591906117e0565b995160e08d0152516101008c0152516101208b0152516101408a0152516101608901525115156101808801525115156101a0870152516101c0860152516101e08501526020840161077591611b38565b82810360408401526107869161183d565b0390f35b6005602060019260405161079d816116cd565b848060a01b03865416815284860154838201526040516107c4816103898160028b01611b72565b60408201526107dd60ff60038801541660608301611c00565b6107e960048701611740565b60808201528152019201920191906106c7565b63635e873760e01b5f5260045ffd5b5060075481116105a7565b34610311575f366003190112610311576020600454604051908152f35b346103115760203660031901126103115760043561084f611db4565b8015801561089c575b61088d576020817ff18f88786aae85a652aadb99a82462616489a33370c9bcc7b245906812ef7cd192600e55604051908152a1005b63d173577960e01b5f5260045ffd5b50670de0b6b3a76400008111610858565b34610311576020366003190112610311576004356001600160401b0381116103115760c06003198236030112610311576040516108e9816116e8565b8160040135815260248201356020820152604081016044830135815260608201916064840135835260848401356001600160401b0381116103115760a061093860a492600436918901016118fd565b926080810193845201940135845260018060a01b03600254163303610aec57835115610add57815160035582516004558051938451946001600160401b038611610ac9576109908661098b600554611695565b611d18565b602090601f8711600114610a245795806109e2927f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa7697985f92610a19575b50508160011b915f199060031b1c19161790565b6005555b519182600655519351905191610a0e60405193849384526060602085015260608401906117e0565b9060408301520390a2005b0151905088806109ce565b90601f1987169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b818110610ab157509160019391897f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa76999a9410610a99575b505050811b016005556109e6565b01515f1960f88460031b161c19169055878080610a8b565b92936020600181928786015181550195019301610a53565b634e487b7160e01b5f52604160045260245ffd5b630558bb2560e21b5f5260045ffd5b63173d355360e11b5f5260045ffd5b34610311575f366003190112610311576002546040516001600160a01b039091168152602090f35b34610311576020366003190112610311576004356001600160401b03811161031157610b539036906004016118fd565b600f5460ff8116610bf25760019060ff191617600f556080818051810103126103115780610b8660206104249301611cee565b90610b9360408201611cee565b610bbd610bae6080610ba760608601611cee565b9401611cee565b936001600160a01b0316612786565b5f80546001600160a01b03199081166001600160a01b0393841617909155600180549091169282169290921790915516611de7565b62dc149f60e41b5f5260045ffd5b34610311575f366003190112610311576020604051670de0b6b3a76400008152f35b3461031157608036600319011261031157600435602435600381101561031157604435906064356001600160401b03811161031157610c65903690600401611b08565b845f95929552600860205260405f2090610c7e83611c2d565b60068110156103d757600103610cd7575f838152600a6020908152604080832033845290915290205460ff16610cc85761042495600a610cc193015486336128c3565b33906127da565b637c9a1cf960e01b5f5260045ffd5b63335b65a560e11b5f5260045ffd5b34610311575f366003190112610311576020600354604051908152f35b34610311575f366003190112610311576040515f600554610d2381611695565b8084529060018116908115610dbd5750600114610d5f575b61078683610d4b8185038261171f565b6040519182916020835260208301906117e0565b60055f9081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b808210610da357509091508101602001610d4b610d3b565b919260018160209254838588010152019101909291610d8b565b60ff191660208086019190915291151560051b84019091019150610d4b9050610d3b565b34610311575f366003190112610311575f51602061296d5f395f51905f52546040516001600160a01b039091168152602090f35b3461031157602036600319011261031157610e2e611804565b610e36611db4565b600180546001600160a01b039283166001600160a01b0319821681179092559091167f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d65f80a3005b3461031157610140366003190112610311576004356001600160401b03811161031157610eaf9036906004016118fd565b6024356001600160401b03811161031157610ece9036906004016118fd565b6044356001600160401b03811161031157610eed903690600401611958565b6064356001600160401b03811161031157610f0c9036906004016119c6565b926084356001600160401b03811161031157610f2c903690600401611a23565b9260a4356001600160401b03811161031157610f4c903690600401611aa1565b60c4356001600160401b03811161031157610f6b903690600401611a23565b9060e43593610104356001600160401b03811161031157610f90903690600401611b08565b939092610124359860038a10156103115760209a610fbb99610fb3988a9661212c565b9233846127da565b604051908152f35b34610311575f36600319011261031157610fdb611db4565b5f51602061296d5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610311576020366003190112610311577fba76433d63148cc0d7df02d39ab5cddf8737df279d4af4c7bce819a2ef719e956020600435611069611db4565b80600c55604051908152a1005b34610311575f366003190112610311576020600654604051908152f35b34610311575f366003190112610311575f546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576024356004355f52600960205260405f20908154811015610311576110ef91611b45565b5060018060a01b03815416610786600183015492604051611117816103898160028601611b72565b61115b611150611131600460ff6003870154169501611740565b926040519788978852602088015260a0604088015260a08701906117e0565b926060860190611830565b83820360808501526117e0565b346103115760403660031901126103115761118161181a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610311576020366003190112610311576004358015801561128c575b6107fc57805f52600860205260405f2060018060a01b035f51602061296d5f395f51905f52541633141580611278575b61126957600901805460ff811661125a5760ff8160081c1661124b5761ff0019166101001790557f416e669c63d9a3a5e36ee7cc7e2104b8db28ccd286aa18966e98fa230c73b08c5f80a2005b63029684ff60e61b5f5260045ffd5b6351618d5360e01b5f5260045ffd5b63ea8e4eb560e01b5f5260045ffd5b505f546001600160a01b03163314156111fe565b5060075481116111ce565b346103115760203660031901126103115760206112b5600435611c2d565b61052c6040518092611b38565b34610311575f366003190112610311576020600c54604051908152f35b3461031157610120366003190112610311576004356001600160401b038111610311576113109036906004016118fd565b6024356001600160401b0381116103115761132f9036906004016118fd565b906044356001600160401b0381116103115761134f903690600401611958565b6064356001600160401b0381116103115761136e9036906004016119c6565b926084356001600160401b0381116103115761138e903690600401611a23565b9260a4356001600160401b038111610311576113ae903690600401611aa1565b60c4356001600160401b038111610311576113cd903690600401611a23565b9061010435956001600160401b038711610311576020976113f5610fbb983690600401611b08565b97909660e4359661212c565b34610311576020366003190112610311576004355f52600960205260405f20805461142b81611941565b91611439604051938461171f565b81835260208301905f5260205f205f915b83831061146757604051602080825281906107869082018861183d565b6005602060019260405161147a816116cd565b848060a01b03865416815284860154838201526040516114a1816103898160028b01611b72565b60408201526114ba60ff60038801541660608301611c00565b6114c660048701611740565b608082015281520192019201919061144a565b34610311576020366003190112610311576104246114f5611804565b6114fd611db4565b611de7565b34610311575f366003190112610311576020600e54604051908152f35b3461031157602036600319011261031157611538611804565b611540611db4565b5f80546001600160a01b039283166001600160a01b03198216811783559216907f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce3429080a3005b34610311575f366003190112610311576020600d54604051908152f35b34610311576020366003190112610311576004355f908152600860205260409020805460018201546001600160a01b0316916115e160028201611740565b6115ed60038301611740565b9160048101549260058201546006830154600784015490600885015492600986015494600a87015496600b0154976040519b8c9b8c5260208c015260408b016101a090526101a08b0161163f916117e0565b8a810360608c0152611650916117e0565b9760808a015260a089015260c088015260e087015261010086015260ff8116151561012086015260081c60ff1615156101408501526101608401526101808301520390f35b90600182811c921680156116c3575b60208310146116af57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916116a4565b60a081019081106001600160401b03821117610ac957604052565b60c081019081106001600160401b03821117610ac957604052565b6101a081019081106001600160401b03821117610ac957604052565b90601f801991011681019081106001600160401b03821117610ac957604052565b9060405191825f82549261175384611695565b80845293600181169081156117be575060011461177a575b506117789250038361171f565b565b90505f9291925260205f20905f915b8183106117a2575050906020611778928201015f61176b565b6020919350806001915483858901015201910190918492611789565b90506020925061177894915060ff191682840152151560051b8201015f61176b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361031157565b602435906001600160a01b038216820361031157565b9060028210156103d75752565b9080602083519182815201916020808360051b8301019401925f915b83831061186857505050505090565b90919293946020806118d3600193601f19868203018752895190858060a01b038251168152838201518482015260806118b0604084015160a0604085015260a08401906117e0565b926118c360608201516060850190611830565b01519060808184039101526117e0565b97019301930191939290611859565b6001600160401b038111610ac957601f01601f191660200190565b81601f8201121561031157602081359101611917826118e2565b92611925604051948561171f565b8284528282011161031157815f92602092838601378301015290565b6001600160401b038111610ac95760051b60200190565b9080601f830112156103115781359061197082611941565b9261197e604051948561171f565b82845260208085019360051b82010191821161031157602001915b8183106119a65750505090565b82356001600160a01b038116810361031157815260209283019201611999565b9080601f830112156103115781356119dd81611941565b926119eb604051948561171f565b81845260208085019260051b82010192831161031157602001905b828210611a135750505090565b8135815260209182019101611a06565b9080601f83011215610311578135611a3a81611941565b92611a48604051948561171f565b81845260208085019260051b820101918383116103115760208201905b838210611a7457505050505090565b81356001600160401b03811161031157602091611a96878480948801016118fd565b815201910190611a65565b9080601f8301121561031157813590611ab982611941565b92611ac7604051948561171f565b82845260208085019360051b82010191821161031157602001915b818310611aef5750505090565b8235600281101561031157815260209283019201611ae2565b9181601f84011215610311578235916001600160401b038311610311576020808501948460051b01011161031157565b9060068210156103d75752565b8054821015611b5e575f52600560205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b5f9291815491611b8183611695565b8083529260018116908115611bd65750600114611b9d57505050565b5f9081526020812093945091925b838310611bbc575060209250010190565b600181602092949394548385870101520191019190611bab565b915050602093945060ff929192191683830152151560051b010190565b9060038210156103d75752565b60028210156103d75752565b91908201809211611c1957565b634e487b7160e01b5f52601160045260245ffd5b80158015611ce3575b6107fc575f52600860205260405f20600981015460ff8160081c16611cdc5760ff16611cd65760048101544310611cd1576005810154431115611ccb57600681015490600781015490611ca8600b611c9c611c918587611c0c565b600885015490611c0c565b920154600e54906126f0565b11159182611cc1575b5050611cbc57600290565b600390565b1190505f80611cb1565b50600190565b505f90565b50600490565b5050600590565b506007548111611c36565b51906001600160a01b038216820361031157565b818110611d0d575050565b5f8155600101611d02565b90601f8211611d25575050565b6117789160055f5260205f20906020601f840160051c83019310611d51575b601f0160051c0190611d02565b9091508190611d44565b9190601f8111611d6a57505050565b611778925f5260205f20906020601f840160051c83019310611d5157601f0160051c0190611d02565b8051821015611b5e5760209160051b010190565b5160028110156103d75790565b5f51602061296d5f395f51905f52546001600160a01b03163303611dd457565b63118cdaa760e01b5f523360045260245ffd5b6001600160a01b0316801561211d57600280546001600160a01b0319811683179091556040516305b209d760e31b81525f81600481865afa5f9181612045575b50611f3f57503d15611f38573d611e3d816118e2565b90611e4b604051928361171f565b81523d5f602083013e5b8051906004821480611ee4575b15611edf5750505f6003555f600455611e7c600554611695565b601f8111611ebe575b505f6005555f6006555b6001600160a01b03167fb8ed9bab5ad5186bb6cda3bac43ff4b637c4494961d1ee2a6a0c6408de71211b5f80a3565b611ed99060055f52601f60205f20910160051c810190611d02565b5f611e85565b602001fd5b5060208101516001600160e01b031981169060048410611f18575b506001600160e01b031916633b02b60f60e11b14611e62565b6001600160e01b0319600485900360031b81901b9091161690505f611eff565b6060611e55565b6040810151600355606081015160045560808101518051906001600160401b038211610ac957611f748261098b600554611695565b602090601f8311600114611fbf579180611fa69260a095945f92611fb45750508160011b915f199060031b1c19161790565b6005555b0151600655611e8f565b015190505f806109ce565b90601f1983169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b81811061202d575091600193918560a097969410612015575b505050811b01600555611faa565b01515f1960f88460031b161c191690555f8080612007565b92936020600181928786015181550195019301611fee565b9091503d805f833e612057818361171f565b810190602081830312610311578051906001600160401b03821161031157019060c082820312610311576040519161208e836116e8565b8051835260208101516020840152604081015160408401526060810151606084015260808101516001600160401b0381116103115781019180601f840112156103115782516120dc816118e2565b916120ea604051938461171f565b81835260208286010111610311576020815f928260a097018386015e830101526080840152015160a0820152905f611e27565b63e6c4247b60e01b5f5260045ffd5b989092999396919760035480156126e15789518c518114908115916126d5575b81156126c9575b81156126bd575b506126ae5761216993336128c3565b600754915f198314611c1957600183810160078190555f81815260086020526040902081815591820180546001600160a01b0319163317905589519199909391906001600160401b038211610ac9576121d2828c60026121cb81830154611695565b9101611d5b565b602090601f83116001146126455761220092915f9183611fb45750508160011b915f199060031b1c19161790565b60028a01555b8051906001600160401b038211610ac9576122318261222860038d0154611695565b60038d01611d5b565b602090601f83116001146125d85761225f92915f9183611fb45750508160011b915f199060031b1c19161790565b60038901555b612283612274600c5443611c0c565b8060048b0155600d5490611c0c565b6005890155600354600a890155600654600b8901555f5b875181101561254a57600184015f9081526009602052604090206001600160a01b036122c6838b611d93565b5116906122d3838d611d93565b516123236122e1858c611d93565b516122f46122ef878c611d93565b611da7565b906122ff878d611d93565b51936040519661230e886116cd565b87526020870152604086015260608501611c00565b6080830152805468010000000000000000811015610ac95761234a91600182018155611b45565b91909161253757805182546001600160a01b0319166001600160a01b0391909116178255602081015160018301556040810151805160028401916001600160401b038211610ac9576123a6826123a08554611695565b85611d5b565b602090601f83116001146124d4576123d492915f9183611fb45750508160011b915f199060031b1c19161790565b90555b6060810151906003830160028310156103d75760809260ff8019835416911617905501518051906001600160401b038211610ac9576124268261241d6004860154611695565b60048601611d5b565b602090601f83116001146124655782600195949360049361245b935f92611fb45750508160011b915f199060031b1c19161790565b9101555b0161229a565b90600484015f52805f20915f5b601f19851681106124bc575092600492600196959492879383601f198116106124a4575b505050811b0191015561245f565b01515f1960f88460031b161c191690555f8080612496565b91926020600181928685015181550194019201612472565b90601f19831691845f52815f20925f5b81811061251f5750908460019594939210612507575b505050811b0190556123d7565b01515f1960f88460031b161c191690555f80806124fa565b929360206001819287860151815501950193016124e4565b634e487b7160e01b5f525f60045260245ffd5b509694509650935050507f7fbe432f55ce68ee893ba06ce1304fa7bd8435642ff4654d6ac718361e68532c6004820154916005810154600a820154600b830154916125b76040519460c0865260036125a860c0880160028401611b72565b91878303602089015201611b72565b9560408501526060840152608083015260a0820152806001339501930390a3565b919060038b015f52805f20905f935b601f198416851061262a576001945083601f19811610612612575b505050811b016003890155612265565b01515f1960f88460031b161c191690555f8080612602565b818101518355602094850194600190930192909101906125e7565b90601f1983169160028d015f52815f20925f5b818110612696575090846001959493921061267e575b505050811b0160028a0155612206565b01515f1960f88460031b161c191690555f808061266e565b92936020600181928786015181550195019301612658565b632fc149b760e11b5f5260045ffd5b9050885114155f61215a565b88518114159150612153565b8a51811415915061214c565b63a34e98db60e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146127735782670de0b6b3a7640000111561276157507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b5f51602061296d5f395f51905f5280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b5f818152600860209081526040808320600a83528184206001600160a01b038716808652908452828520805460ff19166001179055858552600b8452828520908552909252909120919490929060038510156103d7577f2c9deb38f462962eadbd85a9d3a4120503ee091f1582eaaa10aa8c6797651d299360409360ff1981541660ff8816179055600186145f1461289b5760060161287a828254611c0c565b90555b61288983518096611bf3565b60208501526001600160a01b031692a3565b856128b5576007016128ae828254611c0c565b905561287d565b6008016128ae828254611c0c565b604080516001600160a01b03909216602083019081528282019390935281529192916128f060608261171f565b519020604051602081019182526020815261290c60408261171f565b519020915f925b84841015612951578360051b830135908181105f14612940575f52602052600160405f205b930192612913565b905f52602052600160405f20612938565b92509250500361295d57565b63582f497d60e11b5f5260045ffdfe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a2646970667358221220ba80e9dcb766e657c2f3c15e544794f510abb3ef8904877ac042cec236fd64ce64736f6c634300081b0033","sourceMap":"811:21142:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;10400:17;;;:::i;:::-;811:21142;;;;;;10421:20;10400:41;10396:85;;811:21142;;;10520:9;811:21142;;10551:17;811:21142;;;10551:17;811:21142;;;;;;;;;;;;10551:17;811:21142;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10662:13;;811:21142;10697:3;811:21142;;10677:18;;;;;811:21142;;-1:-1:-1;;;;;10738:10:103;;;;:::i;:::-;;811:21142;;10773:10;;;;;:::i;:::-;;:16;811:21142;10807:10;811:21142;10807:10;;;;:::i;:::-;;:15;;10840:10;811:21142;10840:20;811:21142;10840:10;;;;:::i;:::-;;:20;;:::i;:::-;811:21142;;;;;;;;;;;;;;;;;;;;;;;1908:69:10;;811:21142:103;1908:69:10;;811:21142:103;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;1908:69:10;;;;;;;;;;10697:3:103;;811:21142;;10662:13;;1908:69:10;811:21142:103;1908:69:10;;;;;;;;;811:21142:103;1908:69:10;;;:::i;:::-;;;811:21142:103;;;;;;;;;;;;;1908:69:10;-1:-1:-1;811:21142:103;1908:69:10;;811:21142:103;;;;1908:69:10;;;-1:-1:-1;1908:69:10;;;811:21142:103;;;;;;;;;10677:18;;10900:28;811:21142;10900:28;;811:21142;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;10421:20;811:21142;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10396:85;10462:19;;;811:21142;10462:19;811:21142;;10462:19;811:21142;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;:::i;:::-;2303:62:14;;:::i;:::-;-1:-1:-1;;;;;811:21142:103;;3489:22:14;3485:91;;3604:8;;;:::i;:::-;811:21142:103;3485:91:14;3534:31;;;811:21142:103;3534:31:14;811:21142:103;;;;;3534:31:14;811:21142:103;;;;;;-1:-1:-1;;811:21142:103;;;;;;2303:62:14;;:::i;:::-;14863:14:103;;14859:48;;811:21142;;14956:30;811:21142;14917:24;811:21142;;;;;;14956:30;811:21142;14859:48;14886:21;;;811:21142;14886:21;811:21142;;14886:21;811:21142;;;;;;-1:-1:-1;;811:21142:103;;;;;4358:28;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;:::i;:::-;;;;;4810:86;811:21142;;;;;4810:86;811:21142;;;;;;-1:-1:-1;811:21142:103;;;;;;-1:-1:-1;811:21142:103;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13555:15;;:45;;;;811:21142;13551:88;;811:21142;;;13661:9;811:21142;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13661:9;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13661:9;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;13708:17;;;:::i;:::-;811:21142;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13551:88;11209:18;;;811:21142;13621:18;811:21142;;13621:18;13555:45;811:21142;13587:13;811:21142;13574:26;;13555:45;;811:21142;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;2303:62:14;;:::i;:::-;14418:14:103;;:42;;;;811:21142;14414:70;;811:21142;;14527:24;811:21142;14494:18;811:21142;;;;;;14527:24;811:21142;14414:70;14469:15;;;811:21142;14469:15;811:21142;;14469:15;14418:42;14436:24;5259:4;14436:24;;14418:42;;811:21142;;;;;;-1:-1:-1;;811:21142:103;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15527:22;811:21142;;15513:10;:36;15509:69;;811:21142;;15592:22;15588:60;;811:21142;;15659:31;811:21142;;;;;15750:18;;811:21142;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;15736:32;811:21142;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;15829:160;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;15736:32;811:21142;;;;;15778:36;811:21142;;;;15930:18;;811:21142;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;15829:160;;;811:21142;;;;;-1:-1:-1;811:21142:103;;;;;;;;;;;15736:32;811:21142;;;;;;;;;;;;;;;;;15829:160;811:21142;;;;;;;;;;;;;15736:32;811:21142;;;;;;;;;;15659:31;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15588:60;15623:25;;;811:21142;15623:25;811:21142;;15623:25;15509:69;15558:20;;;811:21142;15558:20;811:21142;;15558:20;811:21142;;;;;;-1:-1:-1;;811:21142:103;;;;3834:37;811:21142;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;6032:12;811:21142;;;;6028:45;;6098:4;811:21142;;;;;6032:12;811:21142;;;;;6249:66;;811:21142;;;;6249:66;811:21142;;6441:15;6249:66;;811:21142;:::i;:::-;;;;;;;:::i;:::-;6345:6;811:21142;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;811:21142:103;6345:6;:::i;:::-;811:21142;;;-1:-1:-1;;;;;;811:21142:103;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;6441:15;:::i;6028:45::-;6053:20;;;811:21142;6053:20;811:21142;;6053:20;811:21142;;;;;;-1:-1:-1;;811:21142:103;;;;;;;5259:4;811:21142;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;;;;9844:9;811:21142;;;;;9879:17;;;;:::i;:::-;811:21142;;;;;;;9879:41;9875:68;;811:21142;;;;9957:8;811:21142;;;;;;;;9978:10;811:21142;;;;;;;;;;9953:59;;10219:11;10137:19;9957:8;10158:5;10137:19;;811:21142;9978:10;;10158:5;:::i;:::-;9978:10;10219:11;;:::i;9953:59::-;9998:14;;;811:21142;9998:14;811:21142;;9998:14;9875:68;9929:14;;;811:21142;9929:14;811:21142;;9929:14;811:21142;;;;;;-1:-1:-1;;811:21142:103;;;;;3944:32;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;4181:25;811:21142;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4181:25;811:21142;;;;;;;-1:-1:-1;811:21142:103;;;;;;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;4181:25;811:21142;;;;;;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;;;-1:-1:-1;;811:21142:103;;;;-1:-1:-1;;;;;;;;;;;811:21142:103;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;:::i;:::-;2303:62:14;;:::i;:::-;1294:6:10;811:21142:103;;-1:-1:-1;;;;;811:21142:103;;;-1:-1:-1;;;;;;811:21142:103;;;;;;;;;;1333:34:10;-1:-1:-1;;1333:34:10;811:21142:103;;;;;;;-1:-1:-1;;811:21142:103;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8937:226;9358:11;8937:226;;;;;;:::i;:::-;9336:10;;9358:11;;:::i;:::-;811:21142;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;2303:62:14;;:::i;:::-;-1:-1:-1;;;;;;;;;;;811:21142:103;;-1:-1:-1;;;;;;811:21142:103;;;;;;;-1:-1:-1;;;;;811:21142:103;3975:40:14;811:21142:103;;3975:40:14;811:21142:103;;;;;;;-1:-1:-1;;811:21142:103;;;;14708:28;811:21142;;;2303:62:14;;:::i;:::-;811:21142:103;14671:22;811:21142;;;;;;14708:28;811:21142;;;;;;;-1:-1:-1;;811:21142:103;;;;;4287:31;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;4520:59;811:21142;;;;;;;;4520:59;;;;;;;;:::i;:::-;811:21142;;;;;;;;;;;4520:59;;811:21142;;;;;4520:59;811:21142;4520:59;;;;811:21142;:::i;:::-;;;4520:59;811:21142;;4520:59;;;811:21142;;4520:59;;;:::i;:::-;811:21142;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;811:21142:103;;;;;;:::i;:::-;;;;;4652:85;811:21142;;;;;4652:85;811:21142;;;;;;-1:-1:-1;811:21142:103;;;;;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;11143:15;;:45;;;;811:21142;11139:88;;811:21142;;;11266:9;811:21142;;;;;;;;;;-1:-1:-1;;;;;;;;;;;811:21142:103;;11301:10;:21;;:45;;;811:21142;11297:85;;11396:17;;811:21142;;;;;11392:55;;811:21142;;11266:9;811:21142;;11457:57;;-1:-1:-1;;811:21142:103;;;;;11565:29;811:21142;;11565:29;811:21142;11457:57;11488:26;;;811:21142;11488:26;811:21142;;11488:26;11392:55;11422:25;;;811:21142;11422:25;811:21142;;11422:25;11297:85;11367:15;;;811:21142;11367:15;811:21142;;11367:15;11301:45;-1:-1:-1;811:21142:103;;-1:-1:-1;;;;;811:21142:103;11301:10;11326:20;;11301:45;;11143;811:21142;11175:13;811:21142;11162:26;;11143:45;;811:21142;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;811:21142:103;;;;;4941:30;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;7600:226;811:21142;;;;;;:::i;:::-;;;;;;7600:226;;:::i;811:21142::-;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;13941:15;811:21142;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;15159:11;811:21142;;:::i;:::-;2303:62:14;;:::i;:::-;15159:11:103;:::i;811:21142::-;;;;;;-1:-1:-1;;811:21142:103;;;;;5053:28;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;:::i;:::-;2303:62:14;;:::i;:::-;811:21142:103;;;-1:-1:-1;;;;;811:21142:103;;;-1:-1:-1;;;;;;811:21142:103;;;;;;;;;1054:34:10;;811:21142:103;1054:34:10;811:21142:103;;;;;;;-1:-1:-1;;811:21142:103;;;;;4987:35;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;4427:45;811:21142;;;;;;;;4427:45;;811:21142;-1:-1:-1;;;;;811:21142:103;;4427:45;;;;;:::i;:::-;;;;;;:::i;:::-;;811:21142;4427:45;;811:21142;4427:45;;;;811:21142;4427:45;;;811:21142;4427:45;;;811:21142;4427:45;;;;811:21142;4427:45;;;;811:21142;4427:45;;;;811:21142;4427:45;;;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4427:45;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;:::o;:::-;;;;;;-1:-1:-1;811:21142:103;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;811:21142:103;;;;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:103;;;;;;;;-1:-1:-1;;811:21142:103;;;;:::o;:::-;;;;-1:-1:-1;;;;;811:21142:103;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;811:21142:103;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;-1:-1:-1;;811:21142:103;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;811:21142:103;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;811:21142:103;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;811:21142:103;;;-1:-1:-1;811:21142:103;;;;;-1:-1:-1;811:21142:103;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;811:21142:103;;;;;;;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11882:1152;11967:15;;:45;;;;11882:1152;11963:88;;811:21142;;12090:9;811:21142;;;;;12126:18;;;811:21142;;;12090:9;811:21142;;12122:54;;811:21142;;12186:52;;12314:19;;;811:21142;12272:12;12299:34;12295:68;;12393:17;;;811:21142;12272:12;12377:33;;12373:66;;12591:17;;;811:21142;12623:16;;;;811:21142;12591:48;12711:106;12736:25;12591:84;:48;;;;:::i;:::-;12090:9;12654:21;;811:21142;12591:84;;:::i;:::-;12736:25;;811:21142;12775:6;811:21142;12711:106;;:::i;:::-;-1:-1:-1;12844:29:103;:81;;;;11882:1152;12827:161;;;;13005:22;11882:1152;:::o;12827:161::-;12957:20;12950:27;:::o;12844:81::-;12889:36;;-1:-1:-1;12844:81:103;;;;12373:66;12412:27;12419:20;12412:27;:::o;12295:68::-;12335:28;811:21142;12335:28;:::o;12186:52::-;12209:29;12216:22;12209:29;:::o;12122:54::-;12146:30;;12153:23;12146:30;:::o;11967:45::-;811:21142;11999:13;811:21142;11986:26;;11967:45;;811:21142;;;-1:-1:-1;;;;;811:21142:103;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;15736:32;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;15736:32;811:21142;;;;;;;;;;15736:32;811:21142;;;;:::i;:::-;;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;2658:162:14:-;-1:-1:-1;;;;;;;;;;;811:21142:103;-1:-1:-1;;;;;811:21142:103;966:10:16;2717:23:14;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:14;966:10:16;2763:40:14;811:21142:103;;-1:-1:-1;2763:40:14;20485:1466:103;-1:-1:-1;;;;;811:21142:103;20565:25;;20561:54;;20653:22;811:21142;;-1:-1:-1;;;;;;811:21142:103;;;;;;;;;-1:-1:-1;;;20885:45:103;;-1:-1:-1;811:21142:103;20885:45;811:21142;;20885:45;;20588:1;;20885:45;;;20485:1466;-1:-1:-1;20881:989:103;;-1:-1:-1;811:21142:103;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;20588:1;811:21142;;;;;;;21433:18;20885:45;21433:18;;:95;;;811:21142;21412:448;;;811:21142;;20588:1;21561:30;811:21142;20588:1;20885:45;811:21142;;21648:16;811:21142;;:::i;:::-;;;;;;21412:448;811:21142;20588:1;21648:16;811:21142;20588:1;21682:20;811:21142;20881:989;-1:-1:-1;;;;;811:21142:103;21884:60;20588:1;;21884:60;20485:1466::o;811:21142::-;;;21648:16;20588:1;811:21142;;;20588:1;811:21142;;;21648:16;811:21142;;;;;:::i;:::-;;;;21412:448;21741:105;;;21433:95;-1:-1:-1;811:21142:103;;;;-1:-1:-1;;;;;;811:21142:103;;;20885:45;811:21142;;;;21433:95;-1:-1:-1;;;;;;;811:21142:103;-1:-1:-1;;;21471:57:103;21433:95;;811:21142;-1:-1:-1;;;;;;20885:45:103;811:21142;;;;;;;;;;;;;-1:-1:-1;811:21142:103;;;;;;;20881:989;811:21142;21044:16;;811:21142;21024:36;811:21142;21085:20;;;811:21142;20885:45;811:21142;21133:23;;;;811:21142;;;-1:-1:-1;;;;;811:21142:103;;;;;;;21119:37;811:21142;;:::i;:::-;;;;;;;;;;;;;;21189:22;811:21142;;20588:1;811:21142;;;;;;;;;;;;;;;;;;;;;21119:37;811:21142;;21189:22;811:21142;21170:41;811:21142;20881:989;;811:21142;;;;-1:-1:-1;811:21142:103;;;;;;;;;;;21119:37;20588:1;811:21142;;;20588:1;811:21142;;;;;;;;;;;;21189:22;811:21142;;;;;;;;;;;;;21119:37;811:21142;;;;;;;;;;21024:36;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20885:45;;;;;;20588:1;20885:45;;;;;;:::i;:::-;;;811:21142;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;20588:1;811:21142;;;;;;;;;;;;;;;;;;;;;;;20885:45;;;;20561:54;20599:16;;;20588:1;20599:16;;20588:1;20599:16;16756:2017;;;;;;;;;17143:17;811:21142;17143:31;;17139:61;;811:21142;;;;17227:31;;;;;:81;;;16756:2017;17227:132;;;;16756:2017;17227:191;;;;16756:2017;17210:247;;;17576:5;17532:10;;17576:5;:::i;:::-;17606:15;811:21142;;-1:-1:-1;;811:21142:103;;;;;;;;17606:15;811:21142;;;-1:-1:-1;811:21142:103;;;17659:9;811:21142;;;;;;;;17725:17;;;811:21142;;-1:-1:-1;;;;;;811:21142:103;17532:10;811:21142;;;;;;;;;;;-1:-1:-1;;;;;811:21142:103;;;;;17765:14;;;811:21142;17765:14;;;811:21142;;:::i;:::-;17765:14;;811:21142;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;;;;;;;;;;17765:14;;;811:21142;;;;;-1:-1:-1;;;;;811:21142:103;;;;;17797:20;811:21142;17143:17;17797:20;;811:21142;;:::i;:::-;17143:17;17797:20;;811:21142;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;;;;;;;;;;17143:17;17797:20;;811:21142;;17919:34;17863:26;17878:11;811:21142;17863:12;:26;:::i;:::-;17841:19;;;;811:21142;17941:12;811:21142;17919:34;;:::i;:::-;17899:17;;;811:21142;17143:17;811:21142;17963:19;;;811:21142;18040:16;811:21142;18012:25;;;811:21142;-1:-1:-1;18132:3:103;811:21142;;18112:18;;;;;811:21142;;;-1:-1:-1;811:21142:103;;;18151:15;811:21142;;;;;-1:-1:-1;;;;;18246:10:103;;;;:::i;:::-;811:21142;;18285:9;;;;;:::i;:::-;811:21142;18201:254;18322:12;;;;:::i;:::-;;18367:13;;;;;:::i;:::-;;:::i;:::-;18415:21;;;;;:::i;:::-;;811:21142;;;;;;;:::i;:::-;;;;18201:254;;811:21142;;18201:254;;811:21142;18201:254;;;;:::i;:::-;;;;811:21142;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;;811:21142:103;-1:-1:-1;;;;;811:21142:103;;;;;;;;18201:254;;811:21142;;;;;;18201:254;;811:21142;;;17765:14;811:21142;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;18201:254;;;811:21142;;17143:17;811:21142;;17765:14;811:21142;;;;;18201:254;811:21142;;;;;;;;;;;;18201:254;811:21142;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;17841:19;811:21142;;;;:::i;:::-;17841:19;811:21142;;;:::i;:::-;;;;;;;;;;;;;;;17841:19;811:21142;;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;;;18097:13;;811:21142;;17841:19;811:21142;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;-1:-1:-1;;811:21142:103;;;;;;;;17841:19;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:103;-1:-1:-1;17841:19:103;811:21142;;-1:-1:-1;811:21142:103;18112:18;;;;;;;;;;;18495:271;17841:19;;;811:21142;17899:17;;;;811:21142;17963:19;;;811:21142;18012:25;;;811:21142;;;;;;;;;17143:17;811:21142;;;;17765:14;;;811:21142;:::i;:::-;;;;;;;;;17797:20;811:21142;:::i;:::-;;;;;;18201:254;811:21142;;;18201:254;811:21142;;;;;;;17532:10;811:21142;17532:10;811:21142;;18495:271;;;;16756:2017::o;811:21142::-;17797:20;;17143:17;17797:20;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;-1:-1:-1;;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;17143:17;17797:20;;811:21142;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17765:14;;;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;-1:-1:-1;811:21142:103;;;;;;;;;;;;;;;;;;;;;;;;17765:14;;;811:21142;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17210:247;17436:21;;;-1:-1:-1;17436:21:103;;-1:-1:-1;17436:21:103;17227:191;811:21142;;;;17375:43;;17227:191;;;:132;811:21142;;17324:35;;;;-1:-1:-1;17227:132:103;;:81;811:21142;;17274:34;;;;-1:-1:-1;17227:81:103;;17139:61;17183:17;;;-1:-1:-1;17183:17:103;;-1:-1:-1;17183:17:103;7242:3683:66;;;;811:21142:103;;-1:-1:-1;;7242:3683:66;;1412:159;;;;;;;;;;;;;;;;7498:9;;7494:365;;7969:19;5259:4:103;7969:19:66;;7965:142;;8390:308;940:4:51;8390:308:66;;5259:4:103;8390:308:66;;;;;;;;940:4:51;;8390:308:66;;8962:384;;9409:18;940:4:51;7242:3683:66;:::o;7965:142::-;1829:135:51;;;940:4;1829:135;;;;;7494:365:66;811:21142:103;;;5259:4;811:21142;;;;7820:24:66;:::o;3774:248:14:-;-1:-1:-1;;;;;;;;;;;811:21142:103;;-1:-1:-1;;;;;811:21142:103;;;-1:-1:-1;;;;;;811:21142:103;;;;;;;;;;3975:40:14;-1:-1:-1;;3975:40:14;3774:248::o;19043:618:103:-;-1:-1:-1;811:21142:103;;;19222:9;811:21142;;;;;;;;19254:8;811:21142;;;;;-1:-1:-1;;;;;811:21142:103;;;;;;;;;;;;;-1:-1:-1;;811:21142:103;;;;;;;;19298:5;811:21142;;;;;;;;;;;;;;19043:618;;811:21142;;;;;;;;;19604:50;811:21142;;;;;;;;;;;;;;19284:4;19348:24;;19344:245;19284:4;;;19388:17;;:32;811:21142;;;19388:32;:::i;:::-;811:21142;;19344:245;811:21142;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;811:21142:103;;19604:50;19043:618::o;19344:245::-;19441:23;;;19480:16;;:31;811:21142;;;19480:31;:::i;:::-;811:21142;;19344:245;;19437:152;19222:9;19542:21;:36;811:21142;;;19542:36;:::i;19932:447::-;811:21142;;;-1:-1:-1;;;;;811:21142:103;;;20221:32;;;811:21142;;;;;;;;;;20221:32;;19932:447;;;20221:32;;811:21142;20221:32;:::i;:::-;811:21142;20211:43;;811:21142;;20221:32;811:21142;;;;;20221:32;811:21142;;;;;;:::i;:::-;;20175:90;;5366:13:61;-1:-1:-1;5361:134:61;5399:3;5381:16;;;;;;811:21142:103;;;;;;605:59:60;:5;;;:59;:5;;;-1:-1:-1;889:135:60;20221:32:103;889:135:60;811:21142:103;;-1:-1:-1;889:135:60;605:59;5399:3:61;811:21142:103;5366:13:61;;;605:59:60;889:135;-1:-1:-1;889:135:60;20221:32:103;889:135:60;811:21142:103;;-1:-1:-1;889:135:60;605:59;;5381:16:61;;;;;;4761:41;20275:97:103;;19932:447::o;20275:97::-;20352:20;;;-1:-1:-1;20352:20:103;;-1:-1:-1;20352:20:103","linkReferences":{}},"methodIdentifiers":{"QUORUM_RANGE()":"a120455c","avatar()":"5aef7de6","cancel(uint256)":"40e58ee5","castVote(uint256,uint8,uint256,bytes32[])":"a01ff54e","currentMerkleRoot()":"9ea97190","execute(uint256)":"fe0d94c1","getActions(uint256)":"328dd982","getProposal(uint256)":"c7f758a8","hasVoted(uint256,address)":"43859632","ipfsHash()":"c623674f","ipfsHashCid()":"9cb5bd9e","merkleSnapshotContract()":"a96ab06d","onMerkleUpdate((uint256,uint256,bytes32,bytes32,string,uint256))":"bbdce969","owner()":"8da5cb5b","proposalActions(uint256,uint256)":"56b9e4c5","proposalCount()":"da35c664","proposals(uint256)":"013cf08b","propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])":"343fc9e7","proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)":"748aca8e","quorum()":"1703a018","renounceOwnership()":"715018a6","setAvatar(address)":"086cfca8","setMerkleSnapshotContract(address)":"1acc1ab0","setQuorum(uint256)":"c1ba4e59","setTarget(address)":"776d1a01","setUp(bytes)":"a4f9edbf","setVotingDelay(uint256)":"70b0f660","setVotingPeriod(uint256)":"ea0217cf","state(uint256)":"3e4f49e6","target()":"d4b83992","totalVotingPower()":"671b3793","transferOwnership(address)":"f2fde38b","votes(uint256,address)":"d23254b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_merkleSnapshot\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProposalData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTotalVotingPower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVotingPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoMerkleRootSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyMerkleSnapshot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalAlreadyCancelled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VotingClosed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousAvatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAvatar\",\"type\":\"address\"}],\"name\":\"AvatarSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"name\":\"MerkleRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"MerkleSnapshotContractUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotingPower\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"QuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousTarget\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newTarget\",\"type\":\"address\"}],\"name\":\"TargetSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"voteType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"QUORUM_RANGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"voteType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"castVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getActions\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct MerkleGovModule.ProposalAction[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cancelled\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalVotingPower\",\"type\":\"uint256\"}],\"internalType\":\"struct MerkleGovModule.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"internalType\":\"enum MerkleGovModule.ProposalState\",\"name\":\"proposalState\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct MerkleGovModule.ProposalAction[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipfsHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipfsHashCid\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleSnapshotContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"state_\",\"type\":\"tuple\"}],\"name\":\"onMerkleUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalActions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cancelled\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalVotingPower\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"enum Operation[]\",\"name\":\"operations\",\"type\":\"uint8[]\"},{\"internalType\":\"string[]\",\"name\":\"actionDescriptions\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"enum Operation[]\",\"name\":\"operations\",\"type\":\"uint8[]\"},{\"internalType\":\"string[]\",\"name\":\"actionDescriptions\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"voteType\",\"type\":\"uint8\"}],\"name\":\"proposeWithVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"setAvatar\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"setMerkleSnapshotContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"setQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"setTarget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initializeParams\",\"type\":\"bytes\"}],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum MerkleGovModule.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalVotingPower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AvatarSet(address,address)\":{\"details\":\"Emitted each time the avatar is set.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"TargetSet(address,address)\":{\"details\":\"Emitted each time the Target is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(uint256)\":{\"details\":\"Only the owner or avatar can cancel a proposal\",\"params\":{\"proposalId\":\"The proposal to cancel\"}},\"castVote(uint256,uint8,uint256,bytes32[])\":{\"params\":{\"proof\":\"Merkle proof for voting power\",\"proposalId\":\"The proposal to vote on\",\"voteType\":\"The type of vote (No, Yes, Abstain)\",\"votingPower\":\"The claimed voting power\"}},\"execute(uint256)\":{\"params\":{\"proposalId\":\"The proposal to execute\"}},\"getProposal(uint256)\":{\"params\":{\"proposalId\":\"The proposal ID to query\"},\"returns\":{\"actions\":\"The proposal actions\",\"proposal\":\"The proposal data\",\"proposalState\":\"The current state of the proposal\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])\":{\"params\":{\"actionDescriptions\":\"Array of action descriptions\",\"calldatas\":\"Array of encoded function calls\",\"description\":\"The description of the proposal\",\"operations\":\"Array of operation types\",\"proof\":\"Merkle proof for membership verification\",\"targets\":\"Array of target addresses\",\"title\":\"The title of the proposal\",\"values\":\"Array of ETH values\",\"votingPower\":\"The claimed voting power (for merkle proof verification)\"}},\"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)\":{\"params\":{\"actionDescriptions\":\"Array of action descriptions\",\"calldatas\":\"Array of encoded function calls\",\"description\":\"The description of the proposal\",\"operations\":\"Array of operation types\",\"proof\":\"Merkle proof for membership verification\",\"targets\":\"Array of target addresses\",\"title\":\"The title of the proposal\",\"values\":\"Array of ETH values\",\"voteType\":\"The type of vote to cast (No, Yes, Abstain)\",\"votingPower\":\"The claimed voting power (for merkle proof verification)\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setAvatar(address)\":{\"details\":\"Sets the avatar to a new avatar (`newAvatar`).\"},\"setTarget(address)\":{\"details\":\"Sets the target to a new target (`newTarget`).\"},\"state(uint256)\":{\"details\":\"Reverts if proposal does not exist\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"MerkleGovModule - Zodiac module for merkle-based governance\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"QUORUM_RANGE()\":{\"notice\":\"The divisor for quorum calculations (quorum = QUORUM_RANGE = 100% quorum)\"},\"cancel(uint256)\":{\"notice\":\"Cancel a proposal\"},\"castVote(uint256,uint8,uint256,bytes32[])\":{\"notice\":\"Cast a vote with merkle proof verification\"},\"currentMerkleRoot()\":{\"notice\":\"Current merkle root for voting power verification\"},\"execute(uint256)\":{\"notice\":\"Execute a successful proposal\"},\"getActions(uint256)\":{\"notice\":\"Get proposal actions\"},\"getProposal(uint256)\":{\"notice\":\"Get a proposal with its state and actions\"},\"hasVoted(uint256,address)\":{\"notice\":\"Tracks whether an address has voted on a proposal\"},\"ipfsHash()\":{\"notice\":\"IPFS hash for current merkle root metadata\"},\"ipfsHashCid()\":{\"notice\":\"The optional ipfs hash CID containing metadata about the root (e.g. the merkle tree itself).\"},\"merkleSnapshotContract()\":{\"notice\":\"Address of the MerkleSnapshot contract that can update merkle state\"},\"proposalActions(uint256,uint256)\":{\"notice\":\"Proposal actions mapping\"},\"proposalCount()\":{\"notice\":\"Proposal counter\"},\"proposals(uint256)\":{\"notice\":\"Proposals mapping\"},\"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])\":{\"notice\":\"Create a new proposal\"},\"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)\":{\"notice\":\"Create a new proposal and cast the proposer's vote in one transaction\"},\"setAvatar(address)\":{\"notice\":\"Can only be called by the current owner.\"},\"setMerkleSnapshotContract(address)\":{\"notice\":\"Update merkle snapshot contract\"},\"setQuorum(uint256)\":{\"notice\":\"Update quorum requirement\"},\"setTarget(address)\":{\"notice\":\"Can only be called by the current owner.\"},\"setUp(bytes)\":{\"notice\":\"Sets up the module for factory deployment\"},\"setVotingDelay(uint256)\":{\"notice\":\"Update voting delay\"},\"setVotingPeriod(uint256)\":{\"notice\":\"Update voting period\"},\"state(uint256)\":{\"notice\":\"Get the state of a proposal\"},\"totalVotingPower()\":{\"notice\":\"Total voting power across all accounts in the merkle tree\"},\"votes(uint256,address)\":{\"notice\":\"Tracks the vote type for each voter on a proposal\"},\"votingDelay()\":{\"notice\":\"Governance parameters\"}},\"notice\":\"Combines merkle voting verification with Zodiac's execution capabilities TODO: should the onlyOwner modifier be onlyAvatar instead? voting config (quorum, delay, period) should be set by the DAO probably, not owner.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/zodiac/MerkleGovModule.sol\":\"MerkleGovModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@gnosis-guild/zodiac-core/contracts/core/Module.sol\":{\"keccak256\":\"0x5715324a9d499b9c400c04d19158ed81268403d3d706da0d739ca237023d8688\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://2906e09c70063ce6548b9cd8c4116eb5c159975941afd9401abfe15ac4d559b3\",\"dweb:/ipfs/QmX5mE4UrTSL4VDX6vwteKxJu1hmwSbn26UYuDgeeRJmK7\"]},\"node_modules/@gnosis-guild/zodiac-core/contracts/core/Operation.sol\":{\"keccak256\":\"0x9e8abf6a9d9e1226e16be3148d83af3b2741cf359c8b95628b499db508f0107f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8ee9cc34c1d64d95601c88d3e620bf7d596ab4a75da3adbc947035456dafcd24\",\"dweb:/ipfs/QmY5Bh47AKdPVZfNzg2f5UfwuCn8YvHjZpWS5tGL4KDpFT\"]},\"node_modules/@gnosis-guild/zodiac-core/contracts/factory/FactoryFriendly.sol\":{\"keccak256\":\"0xdc17580aaefd994be56dced6c9765695807eeb996b05cbd1516171ca0784d83d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://58402770f94d469903388ef93aca179f53638d64c76d961b8d86d3042212f0fd\",\"dweb:/ipfs/QmZFunrkQsX3765bpbRporGc7ZBysKdR3yryvzPuEKszNY\"]},\"node_modules/@gnosis-guild/zodiac-core/contracts/interfaces/IAvatar.sol\":{\"keccak256\":\"0x1baad04c3c64495d82187c3930282ad9c9ca0d7b3c6c432ac5374605c8c2d1e9\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://23c4c066bd6fdf338ecf39b034a7cbbe409530ce22686171fb7ab9c8c3c754c7\",\"dweb:/ipfs/QmbyLP7xWLp9efCqMpVDSRLMZDpQwrnVKjML2nZZTR8hdb\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"src/contracts/zodiac/MerkleGovModule.sol\":{\"keccak256\":\"0x8e4b6645f999d0ae17ec59e554778f6f7b9444a5c0746801f19c2ee524e6a262\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282362897e316711e31f6b86ace18c03cd0606e680dd8f8b5a576883b17a6085\",\"dweb:/ipfs/QmXE3m9h9CTArTyE7M6PfDGeLuWjsR7XV3c9BjjiBBZinT\"]},\"src/interfaces/merkle/IMerkleSnapshot.sol\":{\"keccak256\":\"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66\",\"dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7\"]},\"src/interfaces/merkle/IMerkleSnapshotHook.sol\":{\"keccak256\":\"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0\",\"dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_avatar","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_merkleSnapshot","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadyVoted"},{"inputs":[],"type":"error","name":"InvalidAddress"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidMerkleProof"},{"inputs":[],"type":"error","name":"InvalidProposalData"},{"inputs":[],"type":"error","name":"InvalidQuorum"},{"inputs":[],"type":"error","name":"InvalidTotalVotingPower"},{"inputs":[],"type":"error","name":"InvalidVotingPeriod"},{"inputs":[],"type":"error","name":"NoMerkleRootSet"},{"inputs":[],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"OnlyMerkleSnapshot"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ProposalAlreadyCancelled"},{"inputs":[],"type":"error","name":"ProposalAlreadyExecuted"},{"inputs":[],"type":"error","name":"ProposalNotFound"},{"inputs":[],"type":"error","name":"ProposalNotPassed"},{"inputs":[],"type":"error","name":"VotingClosed"},{"inputs":[{"internalType":"address","name":"previousAvatar","type":"address","indexed":true},{"internalType":"address","name":"newAvatar","type":"address","indexed":true}],"type":"event","name":"AvatarSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32","indexed":false},{"internalType":"string","name":"ipfsHashCid","type":"string","indexed":false},{"internalType":"uint256","name":"totalValue","type":"uint256","indexed":false}],"type":"event","name":"MerkleRootUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousContract","type":"address","indexed":true},{"internalType":"address","name":"newContract","type":"address","indexed":true}],"type":"event","name":"MerkleSnapshotContractUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true}],"type":"event","name":"ProposalCancelled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":true},{"internalType":"string","name":"title","type":"string","indexed":false},{"internalType":"string","name":"description","type":"string","indexed":false},{"internalType":"uint256","name":"startBlock","type":"uint256","indexed":false},{"internalType":"uint256","name":"endBlock","type":"uint256","indexed":false},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32","indexed":false},{"internalType":"uint256","name":"totalVotingPower","type":"uint256","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true}],"type":"event","name":"ProposalExecuted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newQuorum","type":"uint256","indexed":false}],"type":"event","name":"QuorumUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousTarget","type":"address","indexed":true},{"internalType":"address","name":"newTarget","type":"address","indexed":true}],"type":"event","name":"TargetSet","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":true},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true},{"internalType":"enum MerkleGovModule.VoteType","name":"voteType","type":"uint8","indexed":false},{"internalType":"uint256","name":"votingPower","type":"uint256","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256","indexed":false}],"type":"event","name":"VotingDelayUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newPeriod","type":"uint256","indexed":false}],"type":"event","name":"VotingPeriodUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"QUORUM_RANGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"avatar","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancel"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"enum MerkleGovModule.VoteType","name":"voteType","type":"uint8"},{"internalType":"uint256","name":"votingPower","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"castVote"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentMerkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getActions","outputs":[{"internalType":"struct MerkleGovModule.ProposalAction[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Operation","name":"operation","type":"uint8"},{"internalType":"string","name":"description","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposal","outputs":[{"internalType":"struct MerkleGovModule.Proposal","name":"proposal","type":"tuple","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"yesVotes","type":"uint256"},{"internalType":"uint256","name":"noVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"cancelled","type":"bool"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"totalVotingPower","type":"uint256"}]},{"internalType":"enum MerkleGovModule.ProposalState","name":"proposalState","type":"uint8"},{"internalType":"struct MerkleGovModule.ProposalAction[]","name":"actions","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Operation","name":"operation","type":"uint8"},{"internalType":"string","name":"description","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipfsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipfsHashCid","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"merkleSnapshotContract","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"state_","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"onMerkleUpdate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposalActions","outputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Operation","name":"operation","type":"uint8"},{"internalType":"string","name":"description","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"yesVotes","type":"uint256"},{"internalType":"uint256","name":"noVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"cancelled","type":"bool"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"totalVotingPower","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"enum Operation[]","name":"operations","type":"uint8[]"},{"internalType":"string[]","name":"actionDescriptions","type":"string[]"},{"internalType":"uint256","name":"votingPower","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"propose","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"enum Operation[]","name":"operations","type":"uint8[]"},{"internalType":"string[]","name":"actionDescriptions","type":"string[]"},{"internalType":"uint256","name":"votingPower","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"enum MerkleGovModule.VoteType","name":"voteType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"proposeWithVote","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_avatar","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAvatar"},{"inputs":[{"internalType":"address","name":"newContract","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMerkleSnapshotContract"},{"inputs":[{"internalType":"uint256","name":"newQuorum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorum"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTarget"},{"inputs":[{"internalType":"bytes","name":"initializeParams","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingDelay"},{"inputs":[{"internalType":"uint256","name":"newPeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingPeriod"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"state","outputs":[{"internalType":"enum MerkleGovModule.ProposalState","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"target","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalVotingPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"stateMutability":"view","type":"function","name":"votes","outputs":[{"internalType":"enum MerkleGovModule.VoteType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"cancel(uint256)":{"details":"Only the owner or avatar can cancel a proposal","params":{"proposalId":"The proposal to cancel"}},"castVote(uint256,uint8,uint256,bytes32[])":{"params":{"proof":"Merkle proof for voting power","proposalId":"The proposal to vote on","voteType":"The type of vote (No, Yes, Abstain)","votingPower":"The claimed voting power"}},"execute(uint256)":{"params":{"proposalId":"The proposal to execute"}},"getProposal(uint256)":{"params":{"proposalId":"The proposal ID to query"},"returns":{"actions":"The proposal actions","proposal":"The proposal data","proposalState":"The current state of the proposal"}},"owner()":{"details":"Returns the address of the current owner."},"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])":{"params":{"actionDescriptions":"Array of action descriptions","calldatas":"Array of encoded function calls","description":"The description of the proposal","operations":"Array of operation types","proof":"Merkle proof for membership verification","targets":"Array of target addresses","title":"The title of the proposal","values":"Array of ETH values","votingPower":"The claimed voting power (for merkle proof verification)"}},"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)":{"params":{"actionDescriptions":"Array of action descriptions","calldatas":"Array of encoded function calls","description":"The description of the proposal","operations":"Array of operation types","proof":"Merkle proof for membership verification","targets":"Array of target addresses","title":"The title of the proposal","values":"Array of ETH values","voteType":"The type of vote to cast (No, Yes, Abstain)","votingPower":"The claimed voting power (for merkle proof verification)"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setAvatar(address)":{"details":"Sets the avatar to a new avatar (`newAvatar`)."},"setTarget(address)":{"details":"Sets the target to a new target (`newTarget`)."},"state(uint256)":{"details":"Reverts if proposal does not exist"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"QUORUM_RANGE()":{"notice":"The divisor for quorum calculations (quorum = QUORUM_RANGE = 100% quorum)"},"cancel(uint256)":{"notice":"Cancel a proposal"},"castVote(uint256,uint8,uint256,bytes32[])":{"notice":"Cast a vote with merkle proof verification"},"currentMerkleRoot()":{"notice":"Current merkle root for voting power verification"},"execute(uint256)":{"notice":"Execute a successful proposal"},"getActions(uint256)":{"notice":"Get proposal actions"},"getProposal(uint256)":{"notice":"Get a proposal with its state and actions"},"hasVoted(uint256,address)":{"notice":"Tracks whether an address has voted on a proposal"},"ipfsHash()":{"notice":"IPFS hash for current merkle root metadata"},"ipfsHashCid()":{"notice":"The optional ipfs hash CID containing metadata about the root (e.g. the merkle tree itself)."},"merkleSnapshotContract()":{"notice":"Address of the MerkleSnapshot contract that can update merkle state"},"proposalActions(uint256,uint256)":{"notice":"Proposal actions mapping"},"proposalCount()":{"notice":"Proposal counter"},"proposals(uint256)":{"notice":"Proposals mapping"},"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])":{"notice":"Create a new proposal"},"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)":{"notice":"Create a new proposal and cast the proposer's vote in one transaction"},"setAvatar(address)":{"notice":"Can only be called by the current owner."},"setMerkleSnapshotContract(address)":{"notice":"Update merkle snapshot contract"},"setQuorum(uint256)":{"notice":"Update quorum requirement"},"setTarget(address)":{"notice":"Can only be called by the current owner."},"setUp(bytes)":{"notice":"Sets up the module for factory deployment"},"setVotingDelay(uint256)":{"notice":"Update voting delay"},"setVotingPeriod(uint256)":{"notice":"Update voting period"},"state(uint256)":{"notice":"Get the state of a proposal"},"totalVotingPower()":{"notice":"Total voting power across all accounts in the merkle tree"},"votes(uint256,address)":{"notice":"Tracks the vote type for each voter on a proposal"},"votingDelay()":{"notice":"Governance parameters"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/zodiac/MerkleGovModule.sol":"MerkleGovModule"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@gnosis-guild/zodiac-core/contracts/core/Module.sol":{"keccak256":"0x5715324a9d499b9c400c04d19158ed81268403d3d706da0d739ca237023d8688","urls":["bzz-raw://2906e09c70063ce6548b9cd8c4116eb5c159975941afd9401abfe15ac4d559b3","dweb:/ipfs/QmX5mE4UrTSL4VDX6vwteKxJu1hmwSbn26UYuDgeeRJmK7"],"license":"LGPL-3.0-only"},"node_modules/@gnosis-guild/zodiac-core/contracts/core/Operation.sol":{"keccak256":"0x9e8abf6a9d9e1226e16be3148d83af3b2741cf359c8b95628b499db508f0107f","urls":["bzz-raw://8ee9cc34c1d64d95601c88d3e620bf7d596ab4a75da3adbc947035456dafcd24","dweb:/ipfs/QmY5Bh47AKdPVZfNzg2f5UfwuCn8YvHjZpWS5tGL4KDpFT"],"license":"LGPL-3.0-only"},"node_modules/@gnosis-guild/zodiac-core/contracts/factory/FactoryFriendly.sol":{"keccak256":"0xdc17580aaefd994be56dced6c9765695807eeb996b05cbd1516171ca0784d83d","urls":["bzz-raw://58402770f94d469903388ef93aca179f53638d64c76d961b8d86d3042212f0fd","dweb:/ipfs/QmZFunrkQsX3765bpbRporGc7ZBysKdR3yryvzPuEKszNY"],"license":"LGPL-3.0-only"},"node_modules/@gnosis-guild/zodiac-core/contracts/interfaces/IAvatar.sol":{"keccak256":"0x1baad04c3c64495d82187c3930282ad9c9ca0d7b3c6c432ac5374605c8c2d1e9","urls":["bzz-raw://23c4c066bd6fdf338ecf39b034a7cbbe409530ce22686171fb7ab9c8c3c754c7","dweb:/ipfs/QmbyLP7xWLp9efCqMpVDSRLMZDpQwrnVKjML2nZZTR8hdb"],"license":"LGPL-3.0-only"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134","urls":["bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6","dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"src/contracts/zodiac/MerkleGovModule.sol":{"keccak256":"0x8e4b6645f999d0ae17ec59e554778f6f7b9444a5c0746801f19c2ee524e6a262","urls":["bzz-raw://282362897e316711e31f6b86ace18c03cd0606e680dd8f8b5a576883b17a6085","dweb:/ipfs/QmXE3m9h9CTArTyE7M6PfDGeLuWjsR7XV3c9BjjiBBZinT"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshot.sol":{"keccak256":"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0","urls":["bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66","dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshotHook.sol":{"keccak256":"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c","urls":["bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0","dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS"],"license":"MIT"}},"version":1},"id":103} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_avatar","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_merkleSnapshot","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"QUORUM_RANGE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"avatar","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cancel","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"castVote","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"voteType","type":"uint8","internalType":"enum MerkleGovModule.VoteType"},{"name":"votingPower","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"currentMerkleRoot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"execute","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActions","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct MerkleGovModule.ProposalAction[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Operation"},{"name":"description","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getProposal","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proposal","type":"tuple","internalType":"struct MerkleGovModule.Proposal","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"proposer","type":"address","internalType":"address"},{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"startBlock","type":"uint256","internalType":"uint256"},{"name":"endBlock","type":"uint256","internalType":"uint256"},{"name":"yesVotes","type":"uint256","internalType":"uint256"},{"name":"noVotes","type":"uint256","internalType":"uint256"},{"name":"abstainVotes","type":"uint256","internalType":"uint256"},{"name":"executed","type":"bool","internalType":"bool"},{"name":"cancelled","type":"bool","internalType":"bool"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"totalVotingPower","type":"uint256","internalType":"uint256"}]},{"name":"proposalState","type":"uint8","internalType":"enum MerkleGovModule.ProposalState"},{"name":"actions","type":"tuple[]","internalType":"struct MerkleGovModule.ProposalAction[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Operation"},{"name":"description","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"hasVoted","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipfsHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ipfsHashCid","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"merkleSnapshotContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onMerkleUpdate","inputs":[{"name":"state_","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposalActions","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"operation","type":"uint8","internalType":"enum Operation"},{"name":"description","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"proposalCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"proposer","type":"address","internalType":"address"},{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"startBlock","type":"uint256","internalType":"uint256"},{"name":"endBlock","type":"uint256","internalType":"uint256"},{"name":"yesVotes","type":"uint256","internalType":"uint256"},{"name":"noVotes","type":"uint256","internalType":"uint256"},{"name":"abstainVotes","type":"uint256","internalType":"uint256"},{"name":"executed","type":"bool","internalType":"bool"},{"name":"cancelled","type":"bool","internalType":"bool"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"totalVotingPower","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"propose","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"operations","type":"uint8[]","internalType":"enum Operation[]"},{"name":"actionDescriptions","type":"string[]","internalType":"string[]"},{"name":"votingPower","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proposeWithVote","inputs":[{"name":"title","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"targets","type":"address[]","internalType":"address[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"calldatas","type":"bytes[]","internalType":"bytes[]"},{"name":"operations","type":"uint8[]","internalType":"enum Operation[]"},{"name":"actionDescriptions","type":"string[]","internalType":"string[]"},{"name":"votingPower","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"voteType","type":"uint8","internalType":"enum MerkleGovModule.VoteType"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quorum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAvatar","inputs":[{"name":"_avatar","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMerkleSnapshotContract","inputs":[{"name":"newContract","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setQuorum","inputs":[{"name":"newQuorum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTarget","inputs":[{"name":"_target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[{"name":"initializeParams","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingDelay","inputs":[{"name":"newDelay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVotingPeriod","inputs":[{"name":"newPeriod","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"state","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum MerkleGovModule.ProposalState"}],"stateMutability":"view"},{"type":"function","name":"target","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalVotingPower","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"votes","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum MerkleGovModule.VoteType"}],"stateMutability":"view"},{"type":"function","name":"votingDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"votingPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AvatarSet","inputs":[{"name":"previousAvatar","type":"address","indexed":true,"internalType":"address"},{"name":"newAvatar","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"MerkleRootUpdated","inputs":[{"name":"root","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","indexed":false,"internalType":"string"},{"name":"totalValue","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MerkleSnapshotContractUpdated","inputs":[{"name":"previousContract","type":"address","indexed":true,"internalType":"address"},{"name":"newContract","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProposalCancelled","inputs":[{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"proposer","type":"address","indexed":true,"internalType":"address"},{"name":"title","type":"string","indexed":false,"internalType":"string"},{"name":"description","type":"string","indexed":false,"internalType":"string"},{"name":"startBlock","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"endBlock","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"merkleRoot","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"totalVotingPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalExecuted","inputs":[{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumUpdated","inputs":[{"name":"newQuorum","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TargetSet","inputs":[{"name":"previousTarget","type":"address","indexed":true,"internalType":"address"},{"name":"newTarget","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VoteCast","inputs":[{"name":"voter","type":"address","indexed":true,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"voteType","type":"uint8","indexed":false,"internalType":"enum MerkleGovModule.VoteType"},{"name":"votingPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VotingDelayUpdated","inputs":[{"name":"newDelay","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VotingPeriodUpdated","inputs":[{"name":"newPeriod","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadyVoted","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidProposalData","inputs":[]},{"type":"error","name":"InvalidQuorum","inputs":[]},{"type":"error","name":"InvalidTotalVotingPower","inputs":[]},{"type":"error","name":"InvalidVotingPeriod","inputs":[]},{"type":"error","name":"NoMerkleRootSet","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OnlyMerkleSnapshot","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ProposalAlreadyCancelled","inputs":[]},{"type":"error","name":"ProposalAlreadyExecuted","inputs":[]},{"type":"error","name":"ProposalNotFound","inputs":[]},{"type":"error","name":"ProposalNotPassed","inputs":[]},{"type":"error","name":"VotingClosed","inputs":[]}],"bytecode":{"object":"0x6080806040523461049a57608081612f1e803803809161001f82856104bb565b83398101031261049a57610032816104de565b9061003f602082016104de565b906100586060610051604084016104de565b92016104de565b916001600c5561c4e0600d55668e1bc9bf040000600e55600f5460ff81166104ad5760ff1916600117600f557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b0396871690811790925560405195167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35f80546001600160a01b03199081166001600160a01b0393841617909155600180549091169282169290921790915516801561049e57600280546001600160a01b0319811683179091556305b209d760e31b8352915f81600481855afa5f91816103b3575b5061027757503d15610270573d610167816104f2565b9061017560405192836104bb565b81523d5f602083013e5b805190600482148061021c575b156102175750505f6003555f6004556101a660055461050d565b601f81116101f6575b505f6005555f6006555b604051916001600160a01b03167fb8ed9bab5ad5186bb6cda3bac43ff4b637c4494961d1ee2a6a0c6408de71211b5f80a36129c2908161055c8239f35b6102119060055f52601f60205f20910160051c810190610545565b5f6101af565b602001fd5b5060208101516001600160e01b031981169060048410610250575b506001600160e01b031916633b02b60f60e11b1461018c565b6001600160e01b0319600485900360031b81901b9091161690505f610237565b606061017f565b604081015160035560608101516004556080810151805190939291906001600160401b03811161039f576102ac60055461050d565b601f8111610363575b506020601f82116001146102fb57819060a09495965f926102f0575b50508160011b915f199060031b1c1916176005555b01516006556101b9565b015190505f806102d1565b601f1982169560055f52815f20965f5b81811061034b57509160a095969791846001959410610333575b505050811b016005556102e6565b01515f1960f88460031b161c191690555f8080610325565b8383015189556001909801976020938401930161030b565b61038f9060055f5260205f20601f840160051c81019160208510610395575b601f0160051c0190610545565b5f6102b5565b9091508190610382565b634e487b7160e01b5f52604160045260245ffd5b9091503d805f833e6103c581836104bb565b81019060208183031261049a578051906001600160401b03821161049a57019060c08282031261049a576040519160c083016001600160401b0381118482101761039f5760405280518352602081015160208401526040810151604084015260608101516060840152608081015160018060401b03811161049a5781019180601f8401121561049a578251610459816104f2565b9161046760405193846104bb565b8183526020828601011161049a576020815f928260a097018386015e830101526080840152015160a0820152905f610151565b5f80fd5b63e6c4247b60e01b5f5260045ffd5b62dc149f60e41b5f5260045ffd5b601f909101601f19168101906001600160401b0382119082101761039f57604052565b51906001600160a01b038216820361049a57565b6001600160401b03811161039f57601f01601f191660200190565b90600182811c9216801561053b575b602083101461052757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161051c565b818110610550575050565b5f815560010161054556fe60806040526004361015610011575f80fd5b5f3560e01c8063013cf08b146115a357806302a251a314611586578063086cfca81461151f5780631703a018146115025780631acc1ab0146114d9578063328dd98214611401578063343fc9e7146112df5780633932abb1146112c25780633e4f49e61461129757806340e58ee5146111b1578063438596321461116857806356b9e4c5146110ba5780635aef7de614611093578063671b37931461107657806370b0f6601461102a578063715018a614610fc3578063748aca8e14610e7e578063776d1a0114610e155780638da5cb5b14610de15780639cb5bd9e14610d035780639ea9719014610ce6578063a01ff54e14610c22578063a120455c14610c00578063a4f9edbf14610b23578063a96ab06d14610afb578063bbdce969146108ad578063c1ba4e5914610833578063c623674f14610816578063c7f758a81461052e578063d23254b4146104e0578063d4b83992146104b8578063da35c6641461049b578063ea0217cf14610439578063f2fde38b146103eb5763fe0d94c11461019a575f80fd5b34610311576020366003190112610311576004356101b781611c2d565b60068110156103d7576003036103c857805f526008602052600960405f2001600160ff19825416179055805f52600960205260405f2080546101f881611941565b91610206604051938461171f565b81835260208301905f5260205f205f915b83831061034f5785855f5b8151811015610328576102ba60206001600160a01b036102428486611d93565b515116816102508587611d93565b5101519060406102608688611d93565b510151915f61027b6060610274898b611d93565b5101611da7565b9260018060a01b0360015416936102c56040519889978896879563468721a760e01b8752600487015260248601526080604486015260848501906117e0565b916064840190611830565b03925af1801561031d576102dd575b50600101610222565b6020813d8211610315575b816102f56020938361171f565b81010312610311575190811515820361031157905060016102d4565b5f80fd5b3d91506102e8565b6040513d5f823e3d90fd5b827f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f5f80a2005b60056020600192604051610362816116cd565b848060a01b0386541681528486015483820152604051610390816103898160028b01611b72565b038261171f565b60408201526103a960ff60038801541660608301611c00565b6103b560048701611740565b6080820152815201920192019190610217565b63c8c93ba360e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b3461031157602036600319011261031157610404611804565b61040c611db4565b6001600160a01b038116156104265761042490612786565b005b631e4fbdf760e01b5f525f60045260245ffd5b3461031157602036600319011261031157600435610455611db4565b801561048c576020817f651c77f42613a075437aa794c44471e3abc3a661956a67aaee165bb7396974aa92600d55604051908152a1005b6305a612e360e01b5f5260045ffd5b34610311575f366003190112610311576020600754604051908152f35b34610311575f366003190112610311576001546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576104f961181a565b6004355f52600b60205260405f209060018060a01b03165f52602052602060ff60405f20541661052c6040518092611bf3565bf35b34610311576020366003190112610311576004355f61018060405161055281611703565b828152826020820152606060408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015201528015801561080b575b6107fc57805f52600860205260405f20604051916105c483611703565b8154835260018201546001600160a01b031660208401908152916105ea60028201611740565b6040850190815291846105ff60038401611740565b92606082019384526004810154936080830194855260058201549060a08401918252600683015460c08501908152600784015460e08601908152600885015491610100870192835260098601549461012088019460ff87161515865261014089019660081c60ff1615158752600a880154976101608a01988952600b0154986101800198895261068e8a611c2d565b995f52600960205260405f209b8c546106a681611941565b9d6040519e8f906106b7908261171f565b828152602001905f5260205f205f915b83831061078a57505050506040519e8f9e8f9160608352516060830152600160a01b600190039051169060800152518d60a081016101a090526102000161070d916117e0565b90518d8203605f190160c08f015261072591906117e0565b995160e08d0152516101008c0152516101208b0152516101408a0152516101608901525115156101808801525115156101a0870152516101c0860152516101e08501526020840161077591611b38565b82810360408401526107869161183d565b0390f35b6005602060019260405161079d816116cd565b848060a01b03865416815284860154838201526040516107c4816103898160028b01611b72565b60408201526107dd60ff60038801541660608301611c00565b6107e960048701611740565b60808201528152019201920191906106c7565b63635e873760e01b5f5260045ffd5b5060075481116105a7565b34610311575f366003190112610311576020600454604051908152f35b346103115760203660031901126103115760043561084f611db4565b8015801561089c575b61088d576020817ff18f88786aae85a652aadb99a82462616489a33370c9bcc7b245906812ef7cd192600e55604051908152a1005b63d173577960e01b5f5260045ffd5b50670de0b6b3a76400008111610858565b34610311576020366003190112610311576004356001600160401b0381116103115760c06003198236030112610311576040516108e9816116e8565b8160040135815260248201356020820152604081016044830135815260608201916064840135835260848401356001600160401b0381116103115760a061093860a492600436918901016118fd565b926080810193845201940135845260018060a01b03600254163303610aec57835115610add57815160035582516004558051938451946001600160401b038611610ac9576109908661098b600554611695565b611d18565b602090601f8711600114610a245795806109e2927f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa7697985f92610a19575b50508160011b915f199060031b1c19161790565b6005555b519182600655519351905191610a0e60405193849384526060602085015260608401906117e0565b9060408301520390a2005b0151905088806109ce565b90601f1987169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b818110610ab157509160019391897f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa76999a9410610a99575b505050811b016005556109e6565b01515f1960f88460031b161c19169055878080610a8b565b92936020600181928786015181550195019301610a53565b634e487b7160e01b5f52604160045260245ffd5b630558bb2560e21b5f5260045ffd5b63173d355360e11b5f5260045ffd5b34610311575f366003190112610311576002546040516001600160a01b039091168152602090f35b34610311576020366003190112610311576004356001600160401b03811161031157610b539036906004016118fd565b600f5460ff8116610bf25760019060ff191617600f556080818051810103126103115780610b8660206104249301611cee565b90610b9360408201611cee565b610bbd610bae6080610ba760608601611cee565b9401611cee565b936001600160a01b0316612786565b5f80546001600160a01b03199081166001600160a01b0393841617909155600180549091169282169290921790915516611de7565b62dc149f60e41b5f5260045ffd5b34610311575f366003190112610311576020604051670de0b6b3a76400008152f35b3461031157608036600319011261031157600435602435600381101561031157604435906064356001600160401b03811161031157610c65903690600401611b08565b845f95929552600860205260405f2090610c7e83611c2d565b60068110156103d757600103610cd7575f838152600a6020908152604080832033845290915290205460ff16610cc85761042495600a610cc193015486336128c3565b33906127da565b637c9a1cf960e01b5f5260045ffd5b63335b65a560e11b5f5260045ffd5b34610311575f366003190112610311576020600354604051908152f35b34610311575f366003190112610311576040515f600554610d2381611695565b8084529060018116908115610dbd5750600114610d5f575b61078683610d4b8185038261171f565b6040519182916020835260208301906117e0565b60055f9081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b808210610da357509091508101602001610d4b610d3b565b919260018160209254838588010152019101909291610d8b565b60ff191660208086019190915291151560051b84019091019150610d4b9050610d3b565b34610311575f366003190112610311575f51602061296d5f395f51905f52546040516001600160a01b039091168152602090f35b3461031157602036600319011261031157610e2e611804565b610e36611db4565b600180546001600160a01b039283166001600160a01b0319821681179092559091167f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d65f80a3005b3461031157610140366003190112610311576004356001600160401b03811161031157610eaf9036906004016118fd565b6024356001600160401b03811161031157610ece9036906004016118fd565b6044356001600160401b03811161031157610eed903690600401611958565b6064356001600160401b03811161031157610f0c9036906004016119c6565b926084356001600160401b03811161031157610f2c903690600401611a23565b9260a4356001600160401b03811161031157610f4c903690600401611aa1565b60c4356001600160401b03811161031157610f6b903690600401611a23565b9060e43593610104356001600160401b03811161031157610f90903690600401611b08565b939092610124359860038a10156103115760209a610fbb99610fb3988a9661212c565b9233846127da565b604051908152f35b34610311575f36600319011261031157610fdb611db4565b5f51602061296d5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610311576020366003190112610311577fba76433d63148cc0d7df02d39ab5cddf8737df279d4af4c7bce819a2ef719e956020600435611069611db4565b80600c55604051908152a1005b34610311575f366003190112610311576020600654604051908152f35b34610311575f366003190112610311575f546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576024356004355f52600960205260405f20908154811015610311576110ef91611b45565b5060018060a01b03815416610786600183015492604051611117816103898160028601611b72565b61115b611150611131600460ff6003870154169501611740565b926040519788978852602088015260a0604088015260a08701906117e0565b926060860190611830565b83820360808501526117e0565b346103115760403660031901126103115761118161181a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610311576020366003190112610311576004358015801561128c575b6107fc57805f52600860205260405f2060018060a01b035f51602061296d5f395f51905f52541633141580611278575b61126957600901805460ff811661125a5760ff8160081c1661124b5761ff0019166101001790557f416e669c63d9a3a5e36ee7cc7e2104b8db28ccd286aa18966e98fa230c73b08c5f80a2005b63029684ff60e61b5f5260045ffd5b6351618d5360e01b5f5260045ffd5b63ea8e4eb560e01b5f5260045ffd5b505f546001600160a01b03163314156111fe565b5060075481116111ce565b346103115760203660031901126103115760206112b5600435611c2d565b61052c6040518092611b38565b34610311575f366003190112610311576020600c54604051908152f35b3461031157610120366003190112610311576004356001600160401b038111610311576113109036906004016118fd565b6024356001600160401b0381116103115761132f9036906004016118fd565b906044356001600160401b0381116103115761134f903690600401611958565b6064356001600160401b0381116103115761136e9036906004016119c6565b926084356001600160401b0381116103115761138e903690600401611a23565b9260a4356001600160401b038111610311576113ae903690600401611aa1565b60c4356001600160401b038111610311576113cd903690600401611a23565b9061010435956001600160401b038711610311576020976113f5610fbb983690600401611b08565b97909660e4359661212c565b34610311576020366003190112610311576004355f52600960205260405f20805461142b81611941565b91611439604051938461171f565b81835260208301905f5260205f205f915b83831061146757604051602080825281906107869082018861183d565b6005602060019260405161147a816116cd565b848060a01b03865416815284860154838201526040516114a1816103898160028b01611b72565b60408201526114ba60ff60038801541660608301611c00565b6114c660048701611740565b608082015281520192019201919061144a565b34610311576020366003190112610311576104246114f5611804565b6114fd611db4565b611de7565b34610311575f366003190112610311576020600e54604051908152f35b3461031157602036600319011261031157611538611804565b611540611db4565b5f80546001600160a01b039283166001600160a01b03198216811783559216907f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce3429080a3005b34610311575f366003190112610311576020600d54604051908152f35b34610311576020366003190112610311576004355f908152600860205260409020805460018201546001600160a01b0316916115e160028201611740565b6115ed60038301611740565b9160048101549260058201546006830154600784015490600885015492600986015494600a87015496600b0154976040519b8c9b8c5260208c015260408b016101a090526101a08b0161163f916117e0565b8a810360608c0152611650916117e0565b9760808a015260a089015260c088015260e087015261010086015260ff8116151561012086015260081c60ff1615156101408501526101608401526101808301520390f35b90600182811c921680156116c3575b60208310146116af57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916116a4565b60a081019081106001600160401b03821117610ac957604052565b60c081019081106001600160401b03821117610ac957604052565b6101a081019081106001600160401b03821117610ac957604052565b90601f801991011681019081106001600160401b03821117610ac957604052565b9060405191825f82549261175384611695565b80845293600181169081156117be575060011461177a575b506117789250038361171f565b565b90505f9291925260205f20905f915b8183106117a2575050906020611778928201015f61176b565b6020919350806001915483858901015201910190918492611789565b90506020925061177894915060ff191682840152151560051b8201015f61176b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361031157565b602435906001600160a01b038216820361031157565b9060028210156103d75752565b9080602083519182815201916020808360051b8301019401925f915b83831061186857505050505090565b90919293946020806118d3600193601f19868203018752895190858060a01b038251168152838201518482015260806118b0604084015160a0604085015260a08401906117e0565b926118c360608201516060850190611830565b01519060808184039101526117e0565b97019301930191939290611859565b6001600160401b038111610ac957601f01601f191660200190565b81601f8201121561031157602081359101611917826118e2565b92611925604051948561171f565b8284528282011161031157815f92602092838601378301015290565b6001600160401b038111610ac95760051b60200190565b9080601f830112156103115781359061197082611941565b9261197e604051948561171f565b82845260208085019360051b82010191821161031157602001915b8183106119a65750505090565b82356001600160a01b038116810361031157815260209283019201611999565b9080601f830112156103115781356119dd81611941565b926119eb604051948561171f565b81845260208085019260051b82010192831161031157602001905b828210611a135750505090565b8135815260209182019101611a06565b9080601f83011215610311578135611a3a81611941565b92611a48604051948561171f565b81845260208085019260051b820101918383116103115760208201905b838210611a7457505050505090565b81356001600160401b03811161031157602091611a96878480948801016118fd565b815201910190611a65565b9080601f8301121561031157813590611ab982611941565b92611ac7604051948561171f565b82845260208085019360051b82010191821161031157602001915b818310611aef5750505090565b8235600281101561031157815260209283019201611ae2565b9181601f84011215610311578235916001600160401b038311610311576020808501948460051b01011161031157565b9060068210156103d75752565b8054821015611b5e575f52600560205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b5f9291815491611b8183611695565b8083529260018116908115611bd65750600114611b9d57505050565b5f9081526020812093945091925b838310611bbc575060209250010190565b600181602092949394548385870101520191019190611bab565b915050602093945060ff929192191683830152151560051b010190565b9060038210156103d75752565b60028210156103d75752565b91908201809211611c1957565b634e487b7160e01b5f52601160045260245ffd5b80158015611ce3575b6107fc575f52600860205260405f20600981015460ff8160081c16611cdc5760ff16611cd65760048101544310611cd1576005810154431115611ccb57600681015490600781015490611ca8600b611c9c611c918587611c0c565b600885015490611c0c565b920154600e54906126f0565b11159182611cc1575b5050611cbc57600290565b600390565b1190505f80611cb1565b50600190565b505f90565b50600490565b5050600590565b506007548111611c36565b51906001600160a01b038216820361031157565b818110611d0d575050565b5f8155600101611d02565b90601f8211611d25575050565b6117789160055f5260205f20906020601f840160051c83019310611d51575b601f0160051c0190611d02565b9091508190611d44565b9190601f8111611d6a57505050565b611778925f5260205f20906020601f840160051c83019310611d5157601f0160051c0190611d02565b8051821015611b5e5760209160051b010190565b5160028110156103d75790565b5f51602061296d5f395f51905f52546001600160a01b03163303611dd457565b63118cdaa760e01b5f523360045260245ffd5b6001600160a01b0316801561211d57600280546001600160a01b0319811683179091556040516305b209d760e31b81525f81600481865afa5f9181612045575b50611f3f57503d15611f38573d611e3d816118e2565b90611e4b604051928361171f565b81523d5f602083013e5b8051906004821480611ee4575b15611edf5750505f6003555f600455611e7c600554611695565b601f8111611ebe575b505f6005555f6006555b6001600160a01b03167fb8ed9bab5ad5186bb6cda3bac43ff4b637c4494961d1ee2a6a0c6408de71211b5f80a3565b611ed99060055f52601f60205f20910160051c810190611d02565b5f611e85565b602001fd5b5060208101516001600160e01b031981169060048410611f18575b506001600160e01b031916633b02b60f60e11b14611e62565b6001600160e01b0319600485900360031b81901b9091161690505f611eff565b6060611e55565b6040810151600355606081015160045560808101518051906001600160401b038211610ac957611f748261098b600554611695565b602090601f8311600114611fbf579180611fa69260a095945f92611fb45750508160011b915f199060031b1c19161790565b6005555b0151600655611e8f565b015190505f806109ce565b90601f1983169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b81811061202d575091600193918560a097969410612015575b505050811b01600555611faa565b01515f1960f88460031b161c191690555f8080612007565b92936020600181928786015181550195019301611fee565b9091503d805f833e612057818361171f565b810190602081830312610311578051906001600160401b03821161031157019060c082820312610311576040519161208e836116e8565b8051835260208101516020840152604081015160408401526060810151606084015260808101516001600160401b0381116103115781019180601f840112156103115782516120dc816118e2565b916120ea604051938461171f565b81835260208286010111610311576020815f928260a097018386015e830101526080840152015160a0820152905f611e27565b63e6c4247b60e01b5f5260045ffd5b989092999396919760035480156126e15789518c518114908115916126d5575b81156126c9575b81156126bd575b506126ae5761216993336128c3565b600754915f198314611c1957600183810160078190555f81815260086020526040902081815591820180546001600160a01b0319163317905589519199909391906001600160401b038211610ac9576121d2828c60026121cb81830154611695565b9101611d5b565b602090601f83116001146126455761220092915f9183611fb45750508160011b915f199060031b1c19161790565b60028a01555b8051906001600160401b038211610ac9576122318261222860038d0154611695565b60038d01611d5b565b602090601f83116001146125d85761225f92915f9183611fb45750508160011b915f199060031b1c19161790565b60038901555b612283612274600c5443611c0c565b8060048b0155600d5490611c0c565b6005890155600354600a890155600654600b8901555f5b875181101561254a57600184015f9081526009602052604090206001600160a01b036122c6838b611d93565b5116906122d3838d611d93565b516123236122e1858c611d93565b516122f46122ef878c611d93565b611da7565b906122ff878d611d93565b51936040519661230e886116cd565b87526020870152604086015260608501611c00565b6080830152805468010000000000000000811015610ac95761234a91600182018155611b45565b91909161253757805182546001600160a01b0319166001600160a01b0391909116178255602081015160018301556040810151805160028401916001600160401b038211610ac9576123a6826123a08554611695565b85611d5b565b602090601f83116001146124d4576123d492915f9183611fb45750508160011b915f199060031b1c19161790565b90555b6060810151906003830160028310156103d75760809260ff8019835416911617905501518051906001600160401b038211610ac9576124268261241d6004860154611695565b60048601611d5b565b602090601f83116001146124655782600195949360049361245b935f92611fb45750508160011b915f199060031b1c19161790565b9101555b0161229a565b90600484015f52805f20915f5b601f19851681106124bc575092600492600196959492879383601f198116106124a4575b505050811b0191015561245f565b01515f1960f88460031b161c191690555f8080612496565b91926020600181928685015181550194019201612472565b90601f19831691845f52815f20925f5b81811061251f5750908460019594939210612507575b505050811b0190556123d7565b01515f1960f88460031b161c191690555f80806124fa565b929360206001819287860151815501950193016124e4565b634e487b7160e01b5f525f60045260245ffd5b509694509650935050507f7fbe432f55ce68ee893ba06ce1304fa7bd8435642ff4654d6ac718361e68532c6004820154916005810154600a820154600b830154916125b76040519460c0865260036125a860c0880160028401611b72565b91878303602089015201611b72565b9560408501526060840152608083015260a0820152806001339501930390a3565b919060038b015f52805f20905f935b601f198416851061262a576001945083601f19811610612612575b505050811b016003890155612265565b01515f1960f88460031b161c191690555f8080612602565b818101518355602094850194600190930192909101906125e7565b90601f1983169160028d015f52815f20925f5b818110612696575090846001959493921061267e575b505050811b0160028a0155612206565b01515f1960f88460031b161c191690555f808061266e565b92936020600181928786015181550195019301612658565b632fc149b760e11b5f5260045ffd5b9050885114155f61215a565b88518114159150612153565b8a51811415915061214c565b63a34e98db60e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146127735782670de0b6b3a7640000111561276157507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b5f51602061296d5f395f51905f5280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b5f818152600860209081526040808320600a83528184206001600160a01b038716808652908452828520805460ff19166001179055858552600b8452828520908552909252909120919490929060038510156103d7577f2c9deb38f462962eadbd85a9d3a4120503ee091f1582eaaa10aa8c6797651d299360409360ff1981541660ff8816179055600186145f1461289b5760060161287a828254611c0c565b90555b61288983518096611bf3565b60208501526001600160a01b031692a3565b856128b5576007016128ae828254611c0c565b905561287d565b6008016128ae828254611c0c565b604080516001600160a01b03909216602083019081528282019390935281529192916128f060608261171f565b519020604051602081019182526020815261290c60408261171f565b519020915f925b84841015612951578360051b830135908181105f14612940575f52602052600160405f205b930192612913565b905f52602052600160405f20612938565b92509250500361295d57565b63582f497d60e11b5f5260045ffdfe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a2646970667358221220ba80e9dcb766e657c2f3c15e544794f510abb3ef8904877ac042cec236fd64ce64736f6c634300081b0033","sourceMap":"811:21142:98:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;4970:1;;811:21142;5017:5;;811:21142;5077:4;;811:21142;5673:12;811:21142;;;;5669:45;;-1:-1:-1;;811:21142:98;4970:1;811:21142;5673:12;811:21142;1280:65:11;811:21142:98;;-1:-1:-1;;;;;;811:21142:98;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;3975:40:11;-1:-1:-1;;3975:40:11;-1:-1:-1;811:21142:98;;-1:-1:-1;;;;;;811:21142:98;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;20565:25;;20561:54;;20653:22;811:21142;;-1:-1:-1;;;;;;811:21142:98;;;;;;;-1:-1:-1;;;20885:45:98;;811:21142;-1:-1:-1;811:21142:98;20885:45;811:21142;;20885:45;;-1:-1:-1;;20885:45:98;;;-1:-1:-1;;20881:989:98;;-1:-1:-1;811:21142:98;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;811:21142:98;;;;;;;21433:18;20885:45;21433:18;;:95;;;811:21142;21412:448;;;811:21142;;-1:-1:-1;21561:30:98;811:21142;-1:-1:-1;20885:45:98;811:21142;;21648:16;811:21142;;:::i;:::-;;;;;;21412:448;811:21142;-1:-1:-1;21648:16:98;811:21142;-1:-1:-1;21682:20:98;811:21142;20881:989;811:21142;;;-1:-1:-1;;;;;811:21142:98;21884:60;-1:-1:-1;;21884:60:98;811:21142;;;;;;;;;;21648:16;-1:-1:-1;811:21142:98;;;-1:-1:-1;811:21142:98;;;21648:16;811:21142;;;;;:::i;:::-;;;;21412:448;811:21142;21741:105;;21433:95;-1:-1:-1;811:21142:98;;;;-1:-1:-1;;;;;;811:21142:98;;;20885:45;811:21142;;;;21433:95;-1:-1:-1;;;;;;;811:21142:98;-1:-1:-1;;;21471:57:98;21433:95;;811:21142;-1:-1:-1;;;;;;20885:45:98;811:21142;;;;;;;;;;;;;-1:-1:-1;811:21142:98;;;;;;;20881:989;811:21142;21044:16;;811:21142;21024:36;811:21142;;21085:20;;811:21142;20885:45;811:21142;;21133:23;;;811:21142;;21133:23;;21044:16;;;-1:-1:-1;;;;;811:21142:98;;;;;21119:37;811:21142;;:::i;:::-;;;;;;20881:989;811:21142;;;;;;;;;;;21189:22;811:21142;;;-1:-1:-1;811:21142:98;;;;;;;4970:1;811:21142;;;;;21024:36;811:21142;;;;;21119:37;811:21142;;21189:22;811:21142;21170:41;811:21142;20881:989;;811:21142;;;;-1:-1:-1;811:21142:98;;;;;;;;;;21119:37;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;;;21189:22;811:21142;;;;;4970:1;811:21142;;;;;;;;;;;;21119:37;811:21142;;;;;;;;;;21024:36;811:21142;;;;;;;;;;;;;;;;;;;4970:1;811:21142;;;;;;;;;;;;;;;21119:37;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;21119:37;811:21142;;;;;;;;;;;;21119:37;811:21142;;;;:::i;:::-;;;;;;;-1:-1:-1;811:21142:98;;;;;;;;-1:-1:-1;811:21142:98;;20885:45;811:21142;;-1:-1:-1;811:21142:98;20885:45;;;;;;-1:-1:-1;20885:45:98;;;;;;:::i;:::-;;;811:21142;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;20885:45;;;;811:21142;-1:-1:-1;811:21142:98;;20561:54;20599:16;;;-1:-1:-1;20599:16:98;;-1:-1:-1;20599:16:98;5669:45;5694:20;;;-1:-1:-1;5694:20:98;;-1:-1:-1;5694:20:98;811:21142;;;;;-1:-1:-1;;811:21142:98;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;:::o;:::-;-1:-1:-1;;;;;811:21142:98;;;;;;-1:-1:-1;;811:21142:98;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063013cf08b146115a357806302a251a314611586578063086cfca81461151f5780631703a018146115025780631acc1ab0146114d9578063328dd98214611401578063343fc9e7146112df5780633932abb1146112c25780633e4f49e61461129757806340e58ee5146111b1578063438596321461116857806356b9e4c5146110ba5780635aef7de614611093578063671b37931461107657806370b0f6601461102a578063715018a614610fc3578063748aca8e14610e7e578063776d1a0114610e155780638da5cb5b14610de15780639cb5bd9e14610d035780639ea9719014610ce6578063a01ff54e14610c22578063a120455c14610c00578063a4f9edbf14610b23578063a96ab06d14610afb578063bbdce969146108ad578063c1ba4e5914610833578063c623674f14610816578063c7f758a81461052e578063d23254b4146104e0578063d4b83992146104b8578063da35c6641461049b578063ea0217cf14610439578063f2fde38b146103eb5763fe0d94c11461019a575f80fd5b34610311576020366003190112610311576004356101b781611c2d565b60068110156103d7576003036103c857805f526008602052600960405f2001600160ff19825416179055805f52600960205260405f2080546101f881611941565b91610206604051938461171f565b81835260208301905f5260205f205f915b83831061034f5785855f5b8151811015610328576102ba60206001600160a01b036102428486611d93565b515116816102508587611d93565b5101519060406102608688611d93565b510151915f61027b6060610274898b611d93565b5101611da7565b9260018060a01b0360015416936102c56040519889978896879563468721a760e01b8752600487015260248601526080604486015260848501906117e0565b916064840190611830565b03925af1801561031d576102dd575b50600101610222565b6020813d8211610315575b816102f56020938361171f565b81010312610311575190811515820361031157905060016102d4565b5f80fd5b3d91506102e8565b6040513d5f823e3d90fd5b827f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f5f80a2005b60056020600192604051610362816116cd565b848060a01b0386541681528486015483820152604051610390816103898160028b01611b72565b038261171f565b60408201526103a960ff60038801541660608301611c00565b6103b560048701611740565b6080820152815201920192019190610217565b63c8c93ba360e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b3461031157602036600319011261031157610404611804565b61040c611db4565b6001600160a01b038116156104265761042490612786565b005b631e4fbdf760e01b5f525f60045260245ffd5b3461031157602036600319011261031157600435610455611db4565b801561048c576020817f651c77f42613a075437aa794c44471e3abc3a661956a67aaee165bb7396974aa92600d55604051908152a1005b6305a612e360e01b5f5260045ffd5b34610311575f366003190112610311576020600754604051908152f35b34610311575f366003190112610311576001546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576104f961181a565b6004355f52600b60205260405f209060018060a01b03165f52602052602060ff60405f20541661052c6040518092611bf3565bf35b34610311576020366003190112610311576004355f61018060405161055281611703565b828152826020820152606060408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015201528015801561080b575b6107fc57805f52600860205260405f20604051916105c483611703565b8154835260018201546001600160a01b031660208401908152916105ea60028201611740565b6040850190815291846105ff60038401611740565b92606082019384526004810154936080830194855260058201549060a08401918252600683015460c08501908152600784015460e08601908152600885015491610100870192835260098601549461012088019460ff87161515865261014089019660081c60ff1615158752600a880154976101608a01988952600b0154986101800198895261068e8a611c2d565b995f52600960205260405f209b8c546106a681611941565b9d6040519e8f906106b7908261171f565b828152602001905f5260205f205f915b83831061078a57505050506040519e8f9e8f9160608352516060830152600160a01b600190039051169060800152518d60a081016101a090526102000161070d916117e0565b90518d8203605f190160c08f015261072591906117e0565b995160e08d0152516101008c0152516101208b0152516101408a0152516101608901525115156101808801525115156101a0870152516101c0860152516101e08501526020840161077591611b38565b82810360408401526107869161183d565b0390f35b6005602060019260405161079d816116cd565b848060a01b03865416815284860154838201526040516107c4816103898160028b01611b72565b60408201526107dd60ff60038801541660608301611c00565b6107e960048701611740565b60808201528152019201920191906106c7565b63635e873760e01b5f5260045ffd5b5060075481116105a7565b34610311575f366003190112610311576020600454604051908152f35b346103115760203660031901126103115760043561084f611db4565b8015801561089c575b61088d576020817ff18f88786aae85a652aadb99a82462616489a33370c9bcc7b245906812ef7cd192600e55604051908152a1005b63d173577960e01b5f5260045ffd5b50670de0b6b3a76400008111610858565b34610311576020366003190112610311576004356001600160401b0381116103115760c06003198236030112610311576040516108e9816116e8565b8160040135815260248201356020820152604081016044830135815260608201916064840135835260848401356001600160401b0381116103115760a061093860a492600436918901016118fd565b926080810193845201940135845260018060a01b03600254163303610aec57835115610add57815160035582516004558051938451946001600160401b038611610ac9576109908661098b600554611695565b611d18565b602090601f8711600114610a245795806109e2927f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa7697985f92610a19575b50508160011b915f199060031b1c19161790565b6005555b519182600655519351905191610a0e60405193849384526060602085015260608401906117e0565b9060408301520390a2005b0151905088806109ce565b90601f1987169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b818110610ab157509160019391897f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa76999a9410610a99575b505050811b016005556109e6565b01515f1960f88460031b161c19169055878080610a8b565b92936020600181928786015181550195019301610a53565b634e487b7160e01b5f52604160045260245ffd5b630558bb2560e21b5f5260045ffd5b63173d355360e11b5f5260045ffd5b34610311575f366003190112610311576002546040516001600160a01b039091168152602090f35b34610311576020366003190112610311576004356001600160401b03811161031157610b539036906004016118fd565b600f5460ff8116610bf25760019060ff191617600f556080818051810103126103115780610b8660206104249301611cee565b90610b9360408201611cee565b610bbd610bae6080610ba760608601611cee565b9401611cee565b936001600160a01b0316612786565b5f80546001600160a01b03199081166001600160a01b0393841617909155600180549091169282169290921790915516611de7565b62dc149f60e41b5f5260045ffd5b34610311575f366003190112610311576020604051670de0b6b3a76400008152f35b3461031157608036600319011261031157600435602435600381101561031157604435906064356001600160401b03811161031157610c65903690600401611b08565b845f95929552600860205260405f2090610c7e83611c2d565b60068110156103d757600103610cd7575f838152600a6020908152604080832033845290915290205460ff16610cc85761042495600a610cc193015486336128c3565b33906127da565b637c9a1cf960e01b5f5260045ffd5b63335b65a560e11b5f5260045ffd5b34610311575f366003190112610311576020600354604051908152f35b34610311575f366003190112610311576040515f600554610d2381611695565b8084529060018116908115610dbd5750600114610d5f575b61078683610d4b8185038261171f565b6040519182916020835260208301906117e0565b60055f9081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b808210610da357509091508101602001610d4b610d3b565b919260018160209254838588010152019101909291610d8b565b60ff191660208086019190915291151560051b84019091019150610d4b9050610d3b565b34610311575f366003190112610311575f51602061296d5f395f51905f52546040516001600160a01b039091168152602090f35b3461031157602036600319011261031157610e2e611804565b610e36611db4565b600180546001600160a01b039283166001600160a01b0319821681179092559091167f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d65f80a3005b3461031157610140366003190112610311576004356001600160401b03811161031157610eaf9036906004016118fd565b6024356001600160401b03811161031157610ece9036906004016118fd565b6044356001600160401b03811161031157610eed903690600401611958565b6064356001600160401b03811161031157610f0c9036906004016119c6565b926084356001600160401b03811161031157610f2c903690600401611a23565b9260a4356001600160401b03811161031157610f4c903690600401611aa1565b60c4356001600160401b03811161031157610f6b903690600401611a23565b9060e43593610104356001600160401b03811161031157610f90903690600401611b08565b939092610124359860038a10156103115760209a610fbb99610fb3988a9661212c565b9233846127da565b604051908152f35b34610311575f36600319011261031157610fdb611db4565b5f51602061296d5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610311576020366003190112610311577fba76433d63148cc0d7df02d39ab5cddf8737df279d4af4c7bce819a2ef719e956020600435611069611db4565b80600c55604051908152a1005b34610311575f366003190112610311576020600654604051908152f35b34610311575f366003190112610311575f546040516001600160a01b039091168152602090f35b34610311576040366003190112610311576024356004355f52600960205260405f20908154811015610311576110ef91611b45565b5060018060a01b03815416610786600183015492604051611117816103898160028601611b72565b61115b611150611131600460ff6003870154169501611740565b926040519788978852602088015260a0604088015260a08701906117e0565b926060860190611830565b83820360808501526117e0565b346103115760403660031901126103115761118161181a565b6004355f52600a60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610311576020366003190112610311576004358015801561128c575b6107fc57805f52600860205260405f2060018060a01b035f51602061296d5f395f51905f52541633141580611278575b61126957600901805460ff811661125a5760ff8160081c1661124b5761ff0019166101001790557f416e669c63d9a3a5e36ee7cc7e2104b8db28ccd286aa18966e98fa230c73b08c5f80a2005b63029684ff60e61b5f5260045ffd5b6351618d5360e01b5f5260045ffd5b63ea8e4eb560e01b5f5260045ffd5b505f546001600160a01b03163314156111fe565b5060075481116111ce565b346103115760203660031901126103115760206112b5600435611c2d565b61052c6040518092611b38565b34610311575f366003190112610311576020600c54604051908152f35b3461031157610120366003190112610311576004356001600160401b038111610311576113109036906004016118fd565b6024356001600160401b0381116103115761132f9036906004016118fd565b906044356001600160401b0381116103115761134f903690600401611958565b6064356001600160401b0381116103115761136e9036906004016119c6565b926084356001600160401b0381116103115761138e903690600401611a23565b9260a4356001600160401b038111610311576113ae903690600401611aa1565b60c4356001600160401b038111610311576113cd903690600401611a23565b9061010435956001600160401b038711610311576020976113f5610fbb983690600401611b08565b97909660e4359661212c565b34610311576020366003190112610311576004355f52600960205260405f20805461142b81611941565b91611439604051938461171f565b81835260208301905f5260205f205f915b83831061146757604051602080825281906107869082018861183d565b6005602060019260405161147a816116cd565b848060a01b03865416815284860154838201526040516114a1816103898160028b01611b72565b60408201526114ba60ff60038801541660608301611c00565b6114c660048701611740565b608082015281520192019201919061144a565b34610311576020366003190112610311576104246114f5611804565b6114fd611db4565b611de7565b34610311575f366003190112610311576020600e54604051908152f35b3461031157602036600319011261031157611538611804565b611540611db4565b5f80546001600160a01b039283166001600160a01b03198216811783559216907f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce3429080a3005b34610311575f366003190112610311576020600d54604051908152f35b34610311576020366003190112610311576004355f908152600860205260409020805460018201546001600160a01b0316916115e160028201611740565b6115ed60038301611740565b9160048101549260058201546006830154600784015490600885015492600986015494600a87015496600b0154976040519b8c9b8c5260208c015260408b016101a090526101a08b0161163f916117e0565b8a810360608c0152611650916117e0565b9760808a015260a089015260c088015260e087015261010086015260ff8116151561012086015260081c60ff1615156101408501526101608401526101808301520390f35b90600182811c921680156116c3575b60208310146116af57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916116a4565b60a081019081106001600160401b03821117610ac957604052565b60c081019081106001600160401b03821117610ac957604052565b6101a081019081106001600160401b03821117610ac957604052565b90601f801991011681019081106001600160401b03821117610ac957604052565b9060405191825f82549261175384611695565b80845293600181169081156117be575060011461177a575b506117789250038361171f565b565b90505f9291925260205f20905f915b8183106117a2575050906020611778928201015f61176b565b6020919350806001915483858901015201910190918492611789565b90506020925061177894915060ff191682840152151560051b8201015f61176b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361031157565b602435906001600160a01b038216820361031157565b9060028210156103d75752565b9080602083519182815201916020808360051b8301019401925f915b83831061186857505050505090565b90919293946020806118d3600193601f19868203018752895190858060a01b038251168152838201518482015260806118b0604084015160a0604085015260a08401906117e0565b926118c360608201516060850190611830565b01519060808184039101526117e0565b97019301930191939290611859565b6001600160401b038111610ac957601f01601f191660200190565b81601f8201121561031157602081359101611917826118e2565b92611925604051948561171f565b8284528282011161031157815f92602092838601378301015290565b6001600160401b038111610ac95760051b60200190565b9080601f830112156103115781359061197082611941565b9261197e604051948561171f565b82845260208085019360051b82010191821161031157602001915b8183106119a65750505090565b82356001600160a01b038116810361031157815260209283019201611999565b9080601f830112156103115781356119dd81611941565b926119eb604051948561171f565b81845260208085019260051b82010192831161031157602001905b828210611a135750505090565b8135815260209182019101611a06565b9080601f83011215610311578135611a3a81611941565b92611a48604051948561171f565b81845260208085019260051b820101918383116103115760208201905b838210611a7457505050505090565b81356001600160401b03811161031157602091611a96878480948801016118fd565b815201910190611a65565b9080601f8301121561031157813590611ab982611941565b92611ac7604051948561171f565b82845260208085019360051b82010191821161031157602001915b818310611aef5750505090565b8235600281101561031157815260209283019201611ae2565b9181601f84011215610311578235916001600160401b038311610311576020808501948460051b01011161031157565b9060068210156103d75752565b8054821015611b5e575f52600560205f20910201905f90565b634e487b7160e01b5f52603260045260245ffd5b5f9291815491611b8183611695565b8083529260018116908115611bd65750600114611b9d57505050565b5f9081526020812093945091925b838310611bbc575060209250010190565b600181602092949394548385870101520191019190611bab565b915050602093945060ff929192191683830152151560051b010190565b9060038210156103d75752565b60028210156103d75752565b91908201809211611c1957565b634e487b7160e01b5f52601160045260245ffd5b80158015611ce3575b6107fc575f52600860205260405f20600981015460ff8160081c16611cdc5760ff16611cd65760048101544310611cd1576005810154431115611ccb57600681015490600781015490611ca8600b611c9c611c918587611c0c565b600885015490611c0c565b920154600e54906126f0565b11159182611cc1575b5050611cbc57600290565b600390565b1190505f80611cb1565b50600190565b505f90565b50600490565b5050600590565b506007548111611c36565b51906001600160a01b038216820361031157565b818110611d0d575050565b5f8155600101611d02565b90601f8211611d25575050565b6117789160055f5260205f20906020601f840160051c83019310611d51575b601f0160051c0190611d02565b9091508190611d44565b9190601f8111611d6a57505050565b611778925f5260205f20906020601f840160051c83019310611d5157601f0160051c0190611d02565b8051821015611b5e5760209160051b010190565b5160028110156103d75790565b5f51602061296d5f395f51905f52546001600160a01b03163303611dd457565b63118cdaa760e01b5f523360045260245ffd5b6001600160a01b0316801561211d57600280546001600160a01b0319811683179091556040516305b209d760e31b81525f81600481865afa5f9181612045575b50611f3f57503d15611f38573d611e3d816118e2565b90611e4b604051928361171f565b81523d5f602083013e5b8051906004821480611ee4575b15611edf5750505f6003555f600455611e7c600554611695565b601f8111611ebe575b505f6005555f6006555b6001600160a01b03167fb8ed9bab5ad5186bb6cda3bac43ff4b637c4494961d1ee2a6a0c6408de71211b5f80a3565b611ed99060055f52601f60205f20910160051c810190611d02565b5f611e85565b602001fd5b5060208101516001600160e01b031981169060048410611f18575b506001600160e01b031916633b02b60f60e11b14611e62565b6001600160e01b0319600485900360031b81901b9091161690505f611eff565b6060611e55565b6040810151600355606081015160045560808101518051906001600160401b038211610ac957611f748261098b600554611695565b602090601f8311600114611fbf579180611fa69260a095945f92611fb45750508160011b915f199060031b1c19161790565b6005555b0151600655611e8f565b015190505f806109ce565b90601f1983169160055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0925f5b81811061202d575091600193918560a097969410612015575b505050811b01600555611faa565b01515f1960f88460031b161c191690555f8080612007565b92936020600181928786015181550195019301611fee565b9091503d805f833e612057818361171f565b810190602081830312610311578051906001600160401b03821161031157019060c082820312610311576040519161208e836116e8565b8051835260208101516020840152604081015160408401526060810151606084015260808101516001600160401b0381116103115781019180601f840112156103115782516120dc816118e2565b916120ea604051938461171f565b81835260208286010111610311576020815f928260a097018386015e830101526080840152015160a0820152905f611e27565b63e6c4247b60e01b5f5260045ffd5b989092999396919760035480156126e15789518c518114908115916126d5575b81156126c9575b81156126bd575b506126ae5761216993336128c3565b600754915f198314611c1957600183810160078190555f81815260086020526040902081815591820180546001600160a01b0319163317905589519199909391906001600160401b038211610ac9576121d2828c60026121cb81830154611695565b9101611d5b565b602090601f83116001146126455761220092915f9183611fb45750508160011b915f199060031b1c19161790565b60028a01555b8051906001600160401b038211610ac9576122318261222860038d0154611695565b60038d01611d5b565b602090601f83116001146125d85761225f92915f9183611fb45750508160011b915f199060031b1c19161790565b60038901555b612283612274600c5443611c0c565b8060048b0155600d5490611c0c565b6005890155600354600a890155600654600b8901555f5b875181101561254a57600184015f9081526009602052604090206001600160a01b036122c6838b611d93565b5116906122d3838d611d93565b516123236122e1858c611d93565b516122f46122ef878c611d93565b611da7565b906122ff878d611d93565b51936040519661230e886116cd565b87526020870152604086015260608501611c00565b6080830152805468010000000000000000811015610ac95761234a91600182018155611b45565b91909161253757805182546001600160a01b0319166001600160a01b0391909116178255602081015160018301556040810151805160028401916001600160401b038211610ac9576123a6826123a08554611695565b85611d5b565b602090601f83116001146124d4576123d492915f9183611fb45750508160011b915f199060031b1c19161790565b90555b6060810151906003830160028310156103d75760809260ff8019835416911617905501518051906001600160401b038211610ac9576124268261241d6004860154611695565b60048601611d5b565b602090601f83116001146124655782600195949360049361245b935f92611fb45750508160011b915f199060031b1c19161790565b9101555b0161229a565b90600484015f52805f20915f5b601f19851681106124bc575092600492600196959492879383601f198116106124a4575b505050811b0191015561245f565b01515f1960f88460031b161c191690555f8080612496565b91926020600181928685015181550194019201612472565b90601f19831691845f52815f20925f5b81811061251f5750908460019594939210612507575b505050811b0190556123d7565b01515f1960f88460031b161c191690555f80806124fa565b929360206001819287860151815501950193016124e4565b634e487b7160e01b5f525f60045260245ffd5b509694509650935050507f7fbe432f55ce68ee893ba06ce1304fa7bd8435642ff4654d6ac718361e68532c6004820154916005810154600a820154600b830154916125b76040519460c0865260036125a860c0880160028401611b72565b91878303602089015201611b72565b9560408501526060840152608083015260a0820152806001339501930390a3565b919060038b015f52805f20905f935b601f198416851061262a576001945083601f19811610612612575b505050811b016003890155612265565b01515f1960f88460031b161c191690555f8080612602565b818101518355602094850194600190930192909101906125e7565b90601f1983169160028d015f52815f20925f5b818110612696575090846001959493921061267e575b505050811b0160028a0155612206565b01515f1960f88460031b161c191690555f808061266e565b92936020600181928786015181550195019301612658565b632fc149b760e11b5f5260045ffd5b9050885114155f61215a565b88518114159150612153565b8a51811415915061214c565b63a34e98db60e01b5f5260045ffd5b9091905f905f1984820990848102928380841093039280840393146127735782670de0b6b3a7640000111561276157507faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b634e487b71905260116020526024601cfd5b505050670de0b6b3a76400009192500490565b5f51602061296d5f395f51905f5280546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b5f818152600860209081526040808320600a83528184206001600160a01b038716808652908452828520805460ff19166001179055858552600b8452828520908552909252909120919490929060038510156103d7577f2c9deb38f462962eadbd85a9d3a4120503ee091f1582eaaa10aa8c6797651d299360409360ff1981541660ff8816179055600186145f1461289b5760060161287a828254611c0c565b90555b61288983518096611bf3565b60208501526001600160a01b031692a3565b856128b5576007016128ae828254611c0c565b905561287d565b6008016128ae828254611c0c565b604080516001600160a01b03909216602083019081528282019390935281529192916128f060608261171f565b519020604051602081019182526020815261290c60408261171f565b519020915f925b84841015612951578360051b830135908181105f14612940575f52602052600160405f205b930192612913565b905f52602052600160405f20612938565b92509250500361295d57565b63582f497d60e11b5f5260045ffdfe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a2646970667358221220ba80e9dcb766e657c2f3c15e544794f510abb3ef8904877ac042cec236fd64ce64736f6c634300081b0033","sourceMap":"811:21142:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;10400:17;;;:::i;:::-;811:21142;;;;;;10421:20;10400:41;10396:85;;811:21142;;;10520:9;811:21142;;10551:17;811:21142;;;10551:17;811:21142;;;;;;;;;;;;10551:17;811:21142;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10662:13;;811:21142;10697:3;811:21142;;10677:18;;;;;811:21142;;-1:-1:-1;;;;;10738:10:98;;;;:::i;:::-;;811:21142;;10773:10;;;;;:::i;:::-;;:16;811:21142;10807:10;811:21142;10807:10;;;;:::i;:::-;;:15;;10840:10;811:21142;10840:20;811:21142;10840:10;;;;:::i;:::-;;:20;;:::i;:::-;811:21142;;;;;;;;;;;;;;;;;;;;;;;1908:69:7;;811:21142:98;1908:69:7;;811:21142:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;1908:69:7;;;;;;;;;;10697:3:98;;811:21142;;10662:13;;1908:69:7;811:21142:98;1908:69:7;;;;;;;;;811:21142:98;1908:69:7;;;:::i;:::-;;;811:21142:98;;;;;;;;;;;;;1908:69:7;-1:-1:-1;811:21142:98;1908:69:7;;811:21142:98;;;;1908:69:7;;;-1:-1:-1;1908:69:7;;;811:21142:98;;;;;;;;;10677:18;;10900:28;811:21142;10900:28;;811:21142;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;10421:20;811:21142;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10396:85;10462:19;;;811:21142;10462:19;811:21142;;10462:19;811:21142;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;:::i;:::-;2303:62:11;;:::i;:::-;-1:-1:-1;;;;;811:21142:98;;3489:22:11;3485:91;;3604:8;;;:::i;:::-;811:21142:98;3485:91:11;3534:31;;;811:21142:98;3534:31:11;811:21142:98;;;;;3534:31:11;811:21142:98;;;;;;-1:-1:-1;;811:21142:98;;;;;;2303:62:11;;:::i;:::-;14863:14:98;;14859:48;;811:21142;;14956:30;811:21142;14917:24;811:21142;;;;;;14956:30;811:21142;14859:48;14886:21;;;811:21142;14886:21;811:21142;;14886:21;811:21142;;;;;;-1:-1:-1;;811:21142:98;;;;;4358:28;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;:::i;:::-;;;;;4810:86;811:21142;;;;;4810:86;811:21142;;;;;;-1:-1:-1;811:21142:98;;;;;;-1:-1:-1;811:21142:98;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13555:15;;:45;;;;811:21142;13551:88;;811:21142;;;13661:9;811:21142;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13661:9;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13661:9;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;13708:17;;;:::i;:::-;811:21142;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13551:88;11209:18;;;811:21142;13621:18;811:21142;;13621:18;13555:45;811:21142;13587:13;811:21142;13574:26;;13555:45;;811:21142;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;2303:62:11;;:::i;:::-;14418:14:98;;:42;;;;811:21142;14414:70;;811:21142;;14527:24;811:21142;14494:18;811:21142;;;;;;14527:24;811:21142;14414:70;14469:15;;;811:21142;14469:15;811:21142;;14469:15;14418:42;14436:24;5259:4;14436:24;;14418:42;;811:21142;;;;;;-1:-1:-1;;811:21142:98;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15527:22;811:21142;;15513:10;:36;15509:69;;811:21142;;15592:22;15588:60;;811:21142;;15659:31;811:21142;;;;;15750:18;;811:21142;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;15736:32;811:21142;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;15829:160;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;15736:32;811:21142;;;;;15778:36;811:21142;;;;15930:18;;811:21142;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;15829:160;;;811:21142;;;;;-1:-1:-1;811:21142:98;;;;;;;;;;;15736:32;811:21142;;;;;;;;;;;;;;;;;15829:160;811:21142;;;;;;;;;;;;;15736:32;811:21142;;;;;;;;;;15659:31;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15588:60;15623:25;;;811:21142;15623:25;811:21142;;15623:25;15509:69;15558:20;;;811:21142;15558:20;811:21142;;15558:20;811:21142;;;;;;-1:-1:-1;;811:21142:98;;;;3834:37;811:21142;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;6032:12;811:21142;;;;6028:45;;6098:4;811:21142;;;;;6032:12;811:21142;;;;;6249:66;;811:21142;;;;6249:66;811:21142;;6441:15;6249:66;;811:21142;:::i;:::-;;;;;;;:::i;:::-;6345:6;811:21142;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;811:21142:98;6345:6;:::i;:::-;811:21142;;;-1:-1:-1;;;;;;811:21142:98;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;6441:15;:::i;6028:45::-;6053:20;;;811:21142;6053:20;811:21142;;6053:20;811:21142;;;;;;-1:-1:-1;;811:21142:98;;;;;;;5259:4;811:21142;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;;;;9844:9;811:21142;;;;;9879:17;;;;:::i;:::-;811:21142;;;;;;;9879:41;9875:68;;811:21142;;;;9957:8;811:21142;;;;;;;;9978:10;811:21142;;;;;;;;;;9953:59;;10219:11;10137:19;9957:8;10158:5;10137:19;;811:21142;9978:10;;10158:5;:::i;:::-;9978:10;10219:11;;:::i;9953:59::-;9998:14;;;811:21142;9998:14;811:21142;;9998:14;9875:68;9929:14;;;811:21142;9929:14;811:21142;;9929:14;811:21142;;;;;;-1:-1:-1;;811:21142:98;;;;;3944:32;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;4181:25;811:21142;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4181:25;811:21142;;;;;;;-1:-1:-1;811:21142:98;;;;;;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;4181:25;811:21142;;;;;;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;;;-1:-1:-1;;811:21142:98;;;;-1:-1:-1;;;;;;;;;;;811:21142:98;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;:::i;:::-;2303:62:11;;:::i;:::-;1294:6:7;811:21142:98;;-1:-1:-1;;;;;811:21142:98;;;-1:-1:-1;;;;;;811:21142:98;;;;;;;;;;1333:34:7;-1:-1:-1;;1333:34:7;811:21142:98;;;;;;;-1:-1:-1;;811:21142:98;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8937:226;9358:11;8937:226;;;;;;:::i;:::-;9336:10;;9358:11;;:::i;:::-;811:21142;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;2303:62:11;;:::i;:::-;-1:-1:-1;;;;;;;;;;;811:21142:98;;-1:-1:-1;;;;;;811:21142:98;;;;;;;-1:-1:-1;;;;;811:21142:98;3975:40:11;811:21142:98;;3975:40:11;811:21142:98;;;;;;;-1:-1:-1;;811:21142:98;;;;14708:28;811:21142;;;2303:62:11;;:::i;:::-;811:21142:98;14671:22;811:21142;;;;;;14708:28;811:21142;;;;;;;-1:-1:-1;;811:21142:98;;;;;4287:31;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;4520:59;811:21142;;;;;;;;4520:59;;;;;;;;:::i;:::-;811:21142;;;;;;;;;;;4520:59;;811:21142;;;;;4520:59;811:21142;4520:59;;;;811:21142;:::i;:::-;;;4520:59;811:21142;;4520:59;;;811:21142;;4520:59;;;:::i;:::-;811:21142;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;811:21142:98;;;;;;:::i;:::-;;;;;4652:85;811:21142;;;;;4652:85;811:21142;;;;;;-1:-1:-1;811:21142:98;;;;;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;11143:15;;:45;;;;811:21142;11139:88;;811:21142;;;11266:9;811:21142;;;;;;;;;;-1:-1:-1;;;;;;;;;;;811:21142:98;;11301:10;:21;;:45;;;811:21142;11297:85;;11396:17;;811:21142;;;;;11392:55;;811:21142;;11266:9;811:21142;;11457:57;;-1:-1:-1;;811:21142:98;;;;;11565:29;811:21142;;11565:29;811:21142;11457:57;11488:26;;;811:21142;11488:26;811:21142;;11488:26;11392:55;11422:25;;;811:21142;11422:25;811:21142;;11422:25;11297:85;11367:15;;;811:21142;11367:15;811:21142;;11367:15;11301:45;-1:-1:-1;811:21142:98;;-1:-1:-1;;;;;811:21142:98;11301:10;11326:20;;11301:45;;11143;811:21142;11175:13;811:21142;11162:26;;11143:45;;811:21142;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;811:21142:98;;;;;4941:30;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;7600:226;811:21142;;;;;;:::i;:::-;;;;;;7600:226;;:::i;811:21142::-;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;13941:15;811:21142;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;15159:11;811:21142;;:::i;:::-;2303:62:11;;:::i;:::-;15159:11:98;:::i;811:21142::-;;;;;;-1:-1:-1;;811:21142:98;;;;;5053:28;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;:::i;:::-;2303:62:11;;:::i;:::-;811:21142:98;;;-1:-1:-1;;;;;811:21142:98;;;-1:-1:-1;;;;;;811:21142:98;;;;;;;;;1054:34:7;;811:21142:98;1054:34:7;811:21142:98;;;;;;;-1:-1:-1;;811:21142:98;;;;;4987:35;811:21142;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;4427:45;811:21142;;;;;;;;4427:45;;811:21142;-1:-1:-1;;;;;811:21142:98;;4427:45;;;;;:::i;:::-;;;;;;:::i;:::-;;811:21142;4427:45;;811:21142;4427:45;;;;811:21142;4427:45;;;811:21142;4427:45;;;811:21142;4427:45;;;;811:21142;4427:45;;;;811:21142;4427:45;;;;811:21142;4427:45;;;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4427:45;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;:::o;:::-;;;;;;-1:-1:-1;811:21142:98;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;811:21142:98;;;;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:98;;;;;;;;-1:-1:-1;;811:21142:98;;;;:::o;:::-;;;;-1:-1:-1;;;;;811:21142:98;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;811:21142:98;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;-1:-1:-1;;811:21142:98;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;811:21142:98;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;811:21142:98;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;811:21142:98;;;-1:-1:-1;811:21142:98;;;;;-1:-1:-1;811:21142:98;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;811:21142:98;;;;;;;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11882:1152;11967:15;;:45;;;;11882:1152;11963:88;;811:21142;;12090:9;811:21142;;;;;12126:18;;;811:21142;;;12090:9;811:21142;;12122:54;;811:21142;;12186:52;;12314:19;;;811:21142;12272:12;12299:34;12295:68;;12393:17;;;811:21142;12272:12;12377:33;;12373:66;;12591:17;;;811:21142;12623:16;;;;811:21142;12591:48;12711:106;12736:25;12591:84;:48;;;;:::i;:::-;12090:9;12654:21;;811:21142;12591:84;;:::i;:::-;12736:25;;811:21142;12775:6;811:21142;12711:106;;:::i;:::-;-1:-1:-1;12844:29:98;:81;;;;11882:1152;12827:161;;;;13005:22;11882:1152;:::o;12827:161::-;12957:20;12950:27;:::o;12844:81::-;12889:36;;-1:-1:-1;12844:81:98;;;;12373:66;12412:27;12419:20;12412:27;:::o;12295:68::-;12335:28;811:21142;12335:28;:::o;12186:52::-;12209:29;12216:22;12209:29;:::o;12122:54::-;12146:30;;12153:23;12146:30;:::o;11967:45::-;811:21142;11999:13;811:21142;11986:26;;11967:45;;811:21142;;;-1:-1:-1;;;;;811:21142:98;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;15736:32;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;15736:32;811:21142;;;;;;;;;;15736:32;811:21142;;;;:::i;:::-;;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;2658:162:11:-;-1:-1:-1;;;;;;;;;;;811:21142:98;-1:-1:-1;;;;;811:21142:98;966:10:13;2717:23:11;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:11;966:10:13;2763:40:11;811:21142:98;;-1:-1:-1;2763:40:11;20485:1466:98;-1:-1:-1;;;;;811:21142:98;20565:25;;20561:54;;20653:22;811:21142;;-1:-1:-1;;;;;;811:21142:98;;;;;;;;;-1:-1:-1;;;20885:45:98;;-1:-1:-1;811:21142:98;20885:45;811:21142;;20885:45;;20588:1;;20885:45;;;20485:1466;-1:-1:-1;20881:989:98;;-1:-1:-1;811:21142:98;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;20588:1;811:21142;;;;;;;21433:18;20885:45;21433:18;;:95;;;811:21142;21412:448;;;811:21142;;20588:1;21561:30;811:21142;20588:1;20885:45;811:21142;;21648:16;811:21142;;:::i;:::-;;;;;;21412:448;811:21142;20588:1;21648:16;811:21142;20588:1;21682:20;811:21142;20881:989;-1:-1:-1;;;;;811:21142:98;21884:60;20588:1;;21884:60;20485:1466::o;811:21142::-;;;21648:16;20588:1;811:21142;;;20588:1;811:21142;;;21648:16;811:21142;;;;;:::i;:::-;;;;21412:448;21741:105;;;21433:95;-1:-1:-1;811:21142:98;;;;-1:-1:-1;;;;;;811:21142:98;;;20885:45;811:21142;;;;21433:95;-1:-1:-1;;;;;;;811:21142:98;-1:-1:-1;;;21471:57:98;21433:95;;811:21142;-1:-1:-1;;;;;;20885:45:98;811:21142;;;;;;;;;;;;;-1:-1:-1;811:21142:98;;;;;;;20881:989;811:21142;21044:16;;811:21142;21024:36;811:21142;21085:20;;;811:21142;20885:45;811:21142;21133:23;;;;811:21142;;;-1:-1:-1;;;;;811:21142:98;;;;;;;21119:37;811:21142;;:::i;:::-;;;;;;;;;;;;;;21189:22;811:21142;;20588:1;811:21142;;;;;;;;;;;;;;;;;;;;;21119:37;811:21142;;21189:22;811:21142;21170:41;811:21142;20881:989;;811:21142;;;;-1:-1:-1;811:21142:98;;;;;;;;;;;21119:37;20588:1;811:21142;;;20588:1;811:21142;;;;;;;;;;;;21189:22;811:21142;;;;;;;;;;;;;21119:37;811:21142;;;;;;;;;;21024:36;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20885:45;;;;;;20588:1;20885:45;;;;;;:::i;:::-;;;811:21142;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;20588:1;811:21142;;;;;;;;;;;;;;;;;;;;;;;20885:45;;;;20561:54;20599:16;;;20588:1;20599:16;;20588:1;20599:16;16756:2017;;;;;;;;;17143:17;811:21142;17143:31;;17139:61;;811:21142;;;;17227:31;;;;;:81;;;16756:2017;17227:132;;;;16756:2017;17227:191;;;;16756:2017;17210:247;;;17576:5;17532:10;;17576:5;:::i;:::-;17606:15;811:21142;;-1:-1:-1;;811:21142:98;;;;;;;;17606:15;811:21142;;;-1:-1:-1;811:21142:98;;;17659:9;811:21142;;;;;;;;17725:17;;;811:21142;;-1:-1:-1;;;;;;811:21142:98;17532:10;811:21142;;;;;;;;;;;-1:-1:-1;;;;;811:21142:98;;;;;17765:14;;;811:21142;17765:14;;;811:21142;;:::i;:::-;17765:14;;811:21142;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;;;;;;;;;;17765:14;;;811:21142;;;;;-1:-1:-1;;;;;811:21142:98;;;;;17797:20;811:21142;17143:17;17797:20;;811:21142;;:::i;:::-;17143:17;17797:20;;811:21142;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;;;;;;;;;;17143:17;17797:20;;811:21142;;17919:34;17863:26;17878:11;811:21142;17863:12;:26;:::i;:::-;17841:19;;;;811:21142;17941:12;811:21142;17919:34;;:::i;:::-;17899:17;;;811:21142;17143:17;811:21142;17963:19;;;811:21142;18040:16;811:21142;18012:25;;;811:21142;-1:-1:-1;18132:3:98;811:21142;;18112:18;;;;;811:21142;;;-1:-1:-1;811:21142:98;;;18151:15;811:21142;;;;;-1:-1:-1;;;;;18246:10:98;;;;:::i;:::-;811:21142;;18285:9;;;;;:::i;:::-;811:21142;18201:254;18322:12;;;;:::i;:::-;;18367:13;;;;;:::i;:::-;;:::i;:::-;18415:21;;;;;:::i;:::-;;811:21142;;;;;;;:::i;:::-;;;;18201:254;;811:21142;;18201:254;;811:21142;18201:254;;;;:::i;:::-;;;;811:21142;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;;811:21142:98;-1:-1:-1;;;;;811:21142:98;;;;;;;;18201:254;;811:21142;;;;;;18201:254;;811:21142;;;17765:14;811:21142;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;18201:254;;;811:21142;;17143:17;811:21142;;17765:14;811:21142;;;;;18201:254;811:21142;;;;;;;;;;;;18201:254;811:21142;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;17841:19;811:21142;;;;:::i;:::-;17841:19;811:21142;;;:::i;:::-;;;;;;;;;;;;;;;17841:19;811:21142;;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;;;18097:13;;811:21142;;17841:19;811:21142;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;-1:-1:-1;;811:21142:98;;;;;;;;17841:19;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:21142:98;-1:-1:-1;17841:19:98;811:21142;;-1:-1:-1;811:21142:98;18112:18;;;;;;;;;;;18495:271;17841:19;;;811:21142;17899:17;;;;811:21142;17963:19;;;811:21142;18012:25;;;811:21142;;;;;;;;;17143:17;811:21142;;;;17765:14;;;811:21142;:::i;:::-;;;;;;;;;17797:20;811:21142;:::i;:::-;;;;;;18201:254;811:21142;;;18201:254;811:21142;;;;;;;17532:10;811:21142;17532:10;811:21142;;18495:271;;;;16756:2017::o;811:21142::-;17797:20;;17143:17;17797:20;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;-1:-1:-1;;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;17143:17;17797:20;;811:21142;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17765:14;;;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;-1:-1:-1;811:21142:98;;;;;;;;;;;;;;;;;;;;;;;;17765:14;;;811:21142;;;;;;;;;;17143:17;811:21142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17210:247;17436:21;;;-1:-1:-1;17436:21:98;;-1:-1:-1;17436:21:98;17227:191;811:21142;;;;17375:43;;17227:191;;;:132;811:21142;;17324:35;;;;-1:-1:-1;17227:132:98;;:81;811:21142;;17274:34;;;;-1:-1:-1;17227:81:98;;17139:61;17183:17;;;-1:-1:-1;17183:17:98;;-1:-1:-1;17183:17:98;7242:3683:61;;;;811:21142:98;;-1:-1:-1;;7242:3683:61;;1412:159;;;;;;;;;;;;;;;;7498:9;;7494:365;;7969:19;5259:4:98;7969:19:61;;7965:142;;8390:308;940:4:46;8390:308:61;;5259:4:98;8390:308:61;;;;;;;;940:4:46;;8390:308:61;;8962:384;;9409:18;940:4:46;7242:3683:61;:::o;7965:142::-;1829:135:46;;;940:4;1829:135;;;;;7494:365:61;811:21142:98;;;5259:4;811:21142;;;;7820:24:61;:::o;3774:248:11:-;-1:-1:-1;;;;;;;;;;;811:21142:98;;-1:-1:-1;;;;;811:21142:98;;;-1:-1:-1;;;;;;811:21142:98;;;;;;;;;;3975:40:11;-1:-1:-1;;3975:40:11;3774:248::o;19043:618:98:-;-1:-1:-1;811:21142:98;;;19222:9;811:21142;;;;;;;;19254:8;811:21142;;;;;-1:-1:-1;;;;;811:21142:98;;;;;;;;;;;;;-1:-1:-1;;811:21142:98;;;;;;;;19298:5;811:21142;;;;;;;;;;;;;;19043:618;;811:21142;;;;;;;;;19604:50;811:21142;;;;;;;;;;;;;;19284:4;19348:24;;19344:245;19284:4;;;19388:17;;:32;811:21142;;;19388:32;:::i;:::-;811:21142;;19344:245;811:21142;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;811:21142:98;;19604:50;19043:618::o;19344:245::-;19441:23;;;19480:16;;:31;811:21142;;;19480:31;:::i;:::-;811:21142;;19344:245;;19437:152;19222:9;19542:21;:36;811:21142;;;19542:36;:::i;19932:447::-;811:21142;;;-1:-1:-1;;;;;811:21142:98;;;20221:32;;;811:21142;;;;;;;;;;20221:32;;19932:447;;;20221:32;;811:21142;20221:32;:::i;:::-;811:21142;20211:43;;811:21142;;20221:32;811:21142;;;;;20221:32;811:21142;;;;;;:::i;:::-;;20175:90;;5366:13:56;-1:-1:-1;5361:134:56;5399:3;5381:16;;;;;;811:21142:98;;;;;;605:59:55;:5;;;:59;:5;;;-1:-1:-1;889:135:55;20221:32:98;889:135:55;811:21142:98;;-1:-1:-1;889:135:55;605:59;5399:3:56;811:21142:98;5366:13:56;;;605:59:55;889:135;-1:-1:-1;889:135:55;20221:32:98;889:135:55;811:21142:98;;-1:-1:-1;889:135:55;605:59;;5381:16:56;;;;;;4761:41;20275:97:98;;19932:447::o;20275:97::-;20352:20;;;-1:-1:-1;20352:20:98;;-1:-1:-1;20352:20:98","linkReferences":{}},"methodIdentifiers":{"QUORUM_RANGE()":"a120455c","avatar()":"5aef7de6","cancel(uint256)":"40e58ee5","castVote(uint256,uint8,uint256,bytes32[])":"a01ff54e","currentMerkleRoot()":"9ea97190","execute(uint256)":"fe0d94c1","getActions(uint256)":"328dd982","getProposal(uint256)":"c7f758a8","hasVoted(uint256,address)":"43859632","ipfsHash()":"c623674f","ipfsHashCid()":"9cb5bd9e","merkleSnapshotContract()":"a96ab06d","onMerkleUpdate((uint256,uint256,bytes32,bytes32,string,uint256))":"bbdce969","owner()":"8da5cb5b","proposalActions(uint256,uint256)":"56b9e4c5","proposalCount()":"da35c664","proposals(uint256)":"013cf08b","propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])":"343fc9e7","proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)":"748aca8e","quorum()":"1703a018","renounceOwnership()":"715018a6","setAvatar(address)":"086cfca8","setMerkleSnapshotContract(address)":"1acc1ab0","setQuorum(uint256)":"c1ba4e59","setTarget(address)":"776d1a01","setUp(bytes)":"a4f9edbf","setVotingDelay(uint256)":"70b0f660","setVotingPeriod(uint256)":"ea0217cf","state(uint256)":"3e4f49e6","target()":"d4b83992","totalVotingPower()":"671b3793","transferOwnership(address)":"f2fde38b","votes(uint256,address)":"d23254b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_merkleSnapshot\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProposalData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTotalVotingPower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVotingPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoMerkleRootSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyMerkleSnapshot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalAlreadyCancelled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VotingClosed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousAvatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAvatar\",\"type\":\"address\"}],\"name\":\"AvatarSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"name\":\"MerkleRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"MerkleSnapshotContractUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVotingPower\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"QuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousTarget\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newTarget\",\"type\":\"address\"}],\"name\":\"TargetSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"voteType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"QUORUM_RANGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"voteType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"castVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getActions\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct MerkleGovModule.ProposalAction[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cancelled\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalVotingPower\",\"type\":\"uint256\"}],\"internalType\":\"struct MerkleGovModule.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"internalType\":\"enum MerkleGovModule.ProposalState\",\"name\":\"proposalState\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct MerkleGovModule.ProposalAction[]\",\"name\":\"actions\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipfsHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipfsHashCid\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleSnapshotContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"state_\",\"type\":\"tuple\"}],\"name\":\"onMerkleUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalActions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"enum Operation\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cancelled\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalVotingPower\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"enum Operation[]\",\"name\":\"operations\",\"type\":\"uint8[]\"},{\"internalType\":\"string[]\",\"name\":\"actionDescriptions\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"enum Operation[]\",\"name\":\"operations\",\"type\":\"uint8[]\"},{\"internalType\":\"string[]\",\"name\":\"actionDescriptions\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"votingPower\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"voteType\",\"type\":\"uint8\"}],\"name\":\"proposeWithVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"setAvatar\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"setMerkleSnapshotContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorum\",\"type\":\"uint256\"}],\"name\":\"setQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"setTarget\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initializeParams\",\"type\":\"bytes\"}],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum MerkleGovModule.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalVotingPower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"enum MerkleGovModule.VoteType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AvatarSet(address,address)\":{\"details\":\"Emitted each time the avatar is set.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"TargetSet(address,address)\":{\"details\":\"Emitted each time the Target is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(uint256)\":{\"details\":\"Only the owner or avatar can cancel a proposal\",\"params\":{\"proposalId\":\"The proposal to cancel\"}},\"castVote(uint256,uint8,uint256,bytes32[])\":{\"params\":{\"proof\":\"Merkle proof for voting power\",\"proposalId\":\"The proposal to vote on\",\"voteType\":\"The type of vote (No, Yes, Abstain)\",\"votingPower\":\"The claimed voting power\"}},\"execute(uint256)\":{\"params\":{\"proposalId\":\"The proposal to execute\"}},\"getProposal(uint256)\":{\"params\":{\"proposalId\":\"The proposal ID to query\"},\"returns\":{\"actions\":\"The proposal actions\",\"proposal\":\"The proposal data\",\"proposalState\":\"The current state of the proposal\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])\":{\"params\":{\"actionDescriptions\":\"Array of action descriptions\",\"calldatas\":\"Array of encoded function calls\",\"description\":\"The description of the proposal\",\"operations\":\"Array of operation types\",\"proof\":\"Merkle proof for membership verification\",\"targets\":\"Array of target addresses\",\"title\":\"The title of the proposal\",\"values\":\"Array of ETH values\",\"votingPower\":\"The claimed voting power (for merkle proof verification)\"}},\"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)\":{\"params\":{\"actionDescriptions\":\"Array of action descriptions\",\"calldatas\":\"Array of encoded function calls\",\"description\":\"The description of the proposal\",\"operations\":\"Array of operation types\",\"proof\":\"Merkle proof for membership verification\",\"targets\":\"Array of target addresses\",\"title\":\"The title of the proposal\",\"values\":\"Array of ETH values\",\"voteType\":\"The type of vote to cast (No, Yes, Abstain)\",\"votingPower\":\"The claimed voting power (for merkle proof verification)\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setAvatar(address)\":{\"details\":\"Sets the avatar to a new avatar (`newAvatar`).\"},\"setTarget(address)\":{\"details\":\"Sets the target to a new target (`newTarget`).\"},\"state(uint256)\":{\"details\":\"Reverts if proposal does not exist\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"MerkleGovModule - Zodiac module for merkle-based governance\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"QUORUM_RANGE()\":{\"notice\":\"The divisor for quorum calculations (quorum = QUORUM_RANGE = 100% quorum)\"},\"cancel(uint256)\":{\"notice\":\"Cancel a proposal\"},\"castVote(uint256,uint8,uint256,bytes32[])\":{\"notice\":\"Cast a vote with merkle proof verification\"},\"currentMerkleRoot()\":{\"notice\":\"Current merkle root for voting power verification\"},\"execute(uint256)\":{\"notice\":\"Execute a successful proposal\"},\"getActions(uint256)\":{\"notice\":\"Get proposal actions\"},\"getProposal(uint256)\":{\"notice\":\"Get a proposal with its state and actions\"},\"hasVoted(uint256,address)\":{\"notice\":\"Tracks whether an address has voted on a proposal\"},\"ipfsHash()\":{\"notice\":\"IPFS hash for current merkle root metadata\"},\"ipfsHashCid()\":{\"notice\":\"The optional ipfs hash CID containing metadata about the root (e.g. the merkle tree itself).\"},\"merkleSnapshotContract()\":{\"notice\":\"Address of the MerkleSnapshot contract that can update merkle state\"},\"proposalActions(uint256,uint256)\":{\"notice\":\"Proposal actions mapping\"},\"proposalCount()\":{\"notice\":\"Proposal counter\"},\"proposals(uint256)\":{\"notice\":\"Proposals mapping\"},\"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])\":{\"notice\":\"Create a new proposal\"},\"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)\":{\"notice\":\"Create a new proposal and cast the proposer's vote in one transaction\"},\"setAvatar(address)\":{\"notice\":\"Can only be called by the current owner.\"},\"setMerkleSnapshotContract(address)\":{\"notice\":\"Update merkle snapshot contract\"},\"setQuorum(uint256)\":{\"notice\":\"Update quorum requirement\"},\"setTarget(address)\":{\"notice\":\"Can only be called by the current owner.\"},\"setUp(bytes)\":{\"notice\":\"Sets up the module for factory deployment\"},\"setVotingDelay(uint256)\":{\"notice\":\"Update voting delay\"},\"setVotingPeriod(uint256)\":{\"notice\":\"Update voting period\"},\"state(uint256)\":{\"notice\":\"Get the state of a proposal\"},\"totalVotingPower()\":{\"notice\":\"Total voting power across all accounts in the merkle tree\"},\"votes(uint256,address)\":{\"notice\":\"Tracks the vote type for each voter on a proposal\"},\"votingDelay()\":{\"notice\":\"Governance parameters\"}},\"notice\":\"Combines merkle voting verification with Zodiac's execution capabilities TODO: should the onlyOwner modifier be onlyAvatar instead? voting config (quorum, delay, period) should be set by the DAO probably, not owner.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/zodiac/MerkleGovModule.sol\":\"MerkleGovModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@gnosis-guild/zodiac-core/contracts/core/Module.sol\":{\"keccak256\":\"0x5715324a9d499b9c400c04d19158ed81268403d3d706da0d739ca237023d8688\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://2906e09c70063ce6548b9cd8c4116eb5c159975941afd9401abfe15ac4d559b3\",\"dweb:/ipfs/QmX5mE4UrTSL4VDX6vwteKxJu1hmwSbn26UYuDgeeRJmK7\"]},\"node_modules/@gnosis-guild/zodiac-core/contracts/core/Operation.sol\":{\"keccak256\":\"0x9e8abf6a9d9e1226e16be3148d83af3b2741cf359c8b95628b499db508f0107f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8ee9cc34c1d64d95601c88d3e620bf7d596ab4a75da3adbc947035456dafcd24\",\"dweb:/ipfs/QmY5Bh47AKdPVZfNzg2f5UfwuCn8YvHjZpWS5tGL4KDpFT\"]},\"node_modules/@gnosis-guild/zodiac-core/contracts/factory/FactoryFriendly.sol\":{\"keccak256\":\"0xdc17580aaefd994be56dced6c9765695807eeb996b05cbd1516171ca0784d83d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://58402770f94d469903388ef93aca179f53638d64c76d961b8d86d3042212f0fd\",\"dweb:/ipfs/QmZFunrkQsX3765bpbRporGc7ZBysKdR3yryvzPuEKszNY\"]},\"node_modules/@gnosis-guild/zodiac-core/contracts/interfaces/IAvatar.sol\":{\"keccak256\":\"0x1baad04c3c64495d82187c3930282ad9c9ca0d7b3c6c432ac5374605c8c2d1e9\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://23c4c066bd6fdf338ecf39b034a7cbbe409530ce22686171fb7ab9c8c3c754c7\",\"dweb:/ipfs/QmbyLP7xWLp9efCqMpVDSRLMZDpQwrnVKjML2nZZTR8hdb\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"src/contracts/zodiac/MerkleGovModule.sol\":{\"keccak256\":\"0x8e4b6645f999d0ae17ec59e554778f6f7b9444a5c0746801f19c2ee524e6a262\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282362897e316711e31f6b86ace18c03cd0606e680dd8f8b5a576883b17a6085\",\"dweb:/ipfs/QmXE3m9h9CTArTyE7M6PfDGeLuWjsR7XV3c9BjjiBBZinT\"]},\"src/interfaces/merkle/IMerkleSnapshot.sol\":{\"keccak256\":\"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66\",\"dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7\"]},\"src/interfaces/merkle/IMerkleSnapshotHook.sol\":{\"keccak256\":\"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0\",\"dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_avatar","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_merkleSnapshot","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadyVoted"},{"inputs":[],"type":"error","name":"InvalidAddress"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidMerkleProof"},{"inputs":[],"type":"error","name":"InvalidProposalData"},{"inputs":[],"type":"error","name":"InvalidQuorum"},{"inputs":[],"type":"error","name":"InvalidTotalVotingPower"},{"inputs":[],"type":"error","name":"InvalidVotingPeriod"},{"inputs":[],"type":"error","name":"NoMerkleRootSet"},{"inputs":[],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"OnlyMerkleSnapshot"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ProposalAlreadyCancelled"},{"inputs":[],"type":"error","name":"ProposalAlreadyExecuted"},{"inputs":[],"type":"error","name":"ProposalNotFound"},{"inputs":[],"type":"error","name":"ProposalNotPassed"},{"inputs":[],"type":"error","name":"VotingClosed"},{"inputs":[{"internalType":"address","name":"previousAvatar","type":"address","indexed":true},{"internalType":"address","name":"newAvatar","type":"address","indexed":true}],"type":"event","name":"AvatarSet","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32","indexed":false},{"internalType":"string","name":"ipfsHashCid","type":"string","indexed":false},{"internalType":"uint256","name":"totalValue","type":"uint256","indexed":false}],"type":"event","name":"MerkleRootUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousContract","type":"address","indexed":true},{"internalType":"address","name":"newContract","type":"address","indexed":true}],"type":"event","name":"MerkleSnapshotContractUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true}],"type":"event","name":"ProposalCancelled","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true},{"internalType":"address","name":"proposer","type":"address","indexed":true},{"internalType":"string","name":"title","type":"string","indexed":false},{"internalType":"string","name":"description","type":"string","indexed":false},{"internalType":"uint256","name":"startBlock","type":"uint256","indexed":false},{"internalType":"uint256","name":"endBlock","type":"uint256","indexed":false},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32","indexed":false},{"internalType":"uint256","name":"totalVotingPower","type":"uint256","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true}],"type":"event","name":"ProposalExecuted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newQuorum","type":"uint256","indexed":false}],"type":"event","name":"QuorumUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousTarget","type":"address","indexed":true},{"internalType":"address","name":"newTarget","type":"address","indexed":true}],"type":"event","name":"TargetSet","anonymous":false},{"inputs":[{"internalType":"address","name":"voter","type":"address","indexed":true},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":true},{"internalType":"enum MerkleGovModule.VoteType","name":"voteType","type":"uint8","indexed":false},{"internalType":"uint256","name":"votingPower","type":"uint256","indexed":false}],"type":"event","name":"VoteCast","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256","indexed":false}],"type":"event","name":"VotingDelayUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"newPeriod","type":"uint256","indexed":false}],"type":"event","name":"VotingPeriodUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"QUORUM_RANGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"avatar","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancel"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"enum MerkleGovModule.VoteType","name":"voteType","type":"uint8"},{"internalType":"uint256","name":"votingPower","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"castVote"},{"inputs":[],"stateMutability":"view","type":"function","name":"currentMerkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getActions","outputs":[{"internalType":"struct MerkleGovModule.ProposalAction[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Operation","name":"operation","type":"uint8"},{"internalType":"string","name":"description","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposal","outputs":[{"internalType":"struct MerkleGovModule.Proposal","name":"proposal","type":"tuple","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"yesVotes","type":"uint256"},{"internalType":"uint256","name":"noVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"cancelled","type":"bool"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"totalVotingPower","type":"uint256"}]},{"internalType":"enum MerkleGovModule.ProposalState","name":"proposalState","type":"uint8"},{"internalType":"struct MerkleGovModule.ProposalAction[]","name":"actions","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Operation","name":"operation","type":"uint8"},{"internalType":"string","name":"description","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"stateMutability":"view","type":"function","name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipfsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipfsHashCid","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"merkleSnapshotContract","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"state_","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"onMerkleUpdate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposalActions","outputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Operation","name":"operation","type":"uint8"},{"internalType":"string","name":"description","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"yesVotes","type":"uint256"},{"internalType":"uint256","name":"noVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"cancelled","type":"bool"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint256","name":"totalVotingPower","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"enum Operation[]","name":"operations","type":"uint8[]"},{"internalType":"string[]","name":"actionDescriptions","type":"string[]"},{"internalType":"uint256","name":"votingPower","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"propose","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"enum Operation[]","name":"operations","type":"uint8[]"},{"internalType":"string[]","name":"actionDescriptions","type":"string[]"},{"internalType":"uint256","name":"votingPower","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"enum MerkleGovModule.VoteType","name":"voteType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"proposeWithVote","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_avatar","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAvatar"},{"inputs":[{"internalType":"address","name":"newContract","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMerkleSnapshotContract"},{"inputs":[{"internalType":"uint256","name":"newQuorum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setQuorum"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTarget"},{"inputs":[{"internalType":"bytes","name":"initializeParams","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingDelay"},{"inputs":[{"internalType":"uint256","name":"newPeriod","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setVotingPeriod"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"state","outputs":[{"internalType":"enum MerkleGovModule.ProposalState","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"target","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalVotingPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"stateMutability":"view","type":"function","name":"votes","outputs":[{"internalType":"enum MerkleGovModule.VoteType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"cancel(uint256)":{"details":"Only the owner or avatar can cancel a proposal","params":{"proposalId":"The proposal to cancel"}},"castVote(uint256,uint8,uint256,bytes32[])":{"params":{"proof":"Merkle proof for voting power","proposalId":"The proposal to vote on","voteType":"The type of vote (No, Yes, Abstain)","votingPower":"The claimed voting power"}},"execute(uint256)":{"params":{"proposalId":"The proposal to execute"}},"getProposal(uint256)":{"params":{"proposalId":"The proposal ID to query"},"returns":{"actions":"The proposal actions","proposal":"The proposal data","proposalState":"The current state of the proposal"}},"owner()":{"details":"Returns the address of the current owner."},"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])":{"params":{"actionDescriptions":"Array of action descriptions","calldatas":"Array of encoded function calls","description":"The description of the proposal","operations":"Array of operation types","proof":"Merkle proof for membership verification","targets":"Array of target addresses","title":"The title of the proposal","values":"Array of ETH values","votingPower":"The claimed voting power (for merkle proof verification)"}},"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)":{"params":{"actionDescriptions":"Array of action descriptions","calldatas":"Array of encoded function calls","description":"The description of the proposal","operations":"Array of operation types","proof":"Merkle proof for membership verification","targets":"Array of target addresses","title":"The title of the proposal","values":"Array of ETH values","voteType":"The type of vote to cast (No, Yes, Abstain)","votingPower":"The claimed voting power (for merkle proof verification)"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setAvatar(address)":{"details":"Sets the avatar to a new avatar (`newAvatar`)."},"setTarget(address)":{"details":"Sets the target to a new target (`newTarget`)."},"state(uint256)":{"details":"Reverts if proposal does not exist"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"QUORUM_RANGE()":{"notice":"The divisor for quorum calculations (quorum = QUORUM_RANGE = 100% quorum)"},"cancel(uint256)":{"notice":"Cancel a proposal"},"castVote(uint256,uint8,uint256,bytes32[])":{"notice":"Cast a vote with merkle proof verification"},"currentMerkleRoot()":{"notice":"Current merkle root for voting power verification"},"execute(uint256)":{"notice":"Execute a successful proposal"},"getActions(uint256)":{"notice":"Get proposal actions"},"getProposal(uint256)":{"notice":"Get a proposal with its state and actions"},"hasVoted(uint256,address)":{"notice":"Tracks whether an address has voted on a proposal"},"ipfsHash()":{"notice":"IPFS hash for current merkle root metadata"},"ipfsHashCid()":{"notice":"The optional ipfs hash CID containing metadata about the root (e.g. the merkle tree itself)."},"merkleSnapshotContract()":{"notice":"Address of the MerkleSnapshot contract that can update merkle state"},"proposalActions(uint256,uint256)":{"notice":"Proposal actions mapping"},"proposalCount()":{"notice":"Proposal counter"},"proposals(uint256)":{"notice":"Proposals mapping"},"propose(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[])":{"notice":"Create a new proposal"},"proposeWithVote(string,string,address[],uint256[],bytes[],uint8[],string[],uint256,bytes32[],uint8)":{"notice":"Create a new proposal and cast the proposer's vote in one transaction"},"setAvatar(address)":{"notice":"Can only be called by the current owner."},"setMerkleSnapshotContract(address)":{"notice":"Update merkle snapshot contract"},"setQuorum(uint256)":{"notice":"Update quorum requirement"},"setTarget(address)":{"notice":"Can only be called by the current owner."},"setUp(bytes)":{"notice":"Sets up the module for factory deployment"},"setVotingDelay(uint256)":{"notice":"Update voting delay"},"setVotingPeriod(uint256)":{"notice":"Update voting period"},"state(uint256)":{"notice":"Get the state of a proposal"},"totalVotingPower()":{"notice":"Total voting power across all accounts in the merkle tree"},"votes(uint256,address)":{"notice":"Tracks the vote type for each voter on a proposal"},"votingDelay()":{"notice":"Governance parameters"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/zodiac/MerkleGovModule.sol":"MerkleGovModule"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@gnosis-guild/zodiac-core/contracts/core/Module.sol":{"keccak256":"0x5715324a9d499b9c400c04d19158ed81268403d3d706da0d739ca237023d8688","urls":["bzz-raw://2906e09c70063ce6548b9cd8c4116eb5c159975941afd9401abfe15ac4d559b3","dweb:/ipfs/QmX5mE4UrTSL4VDX6vwteKxJu1hmwSbn26UYuDgeeRJmK7"],"license":"LGPL-3.0-only"},"node_modules/@gnosis-guild/zodiac-core/contracts/core/Operation.sol":{"keccak256":"0x9e8abf6a9d9e1226e16be3148d83af3b2741cf359c8b95628b499db508f0107f","urls":["bzz-raw://8ee9cc34c1d64d95601c88d3e620bf7d596ab4a75da3adbc947035456dafcd24","dweb:/ipfs/QmY5Bh47AKdPVZfNzg2f5UfwuCn8YvHjZpWS5tGL4KDpFT"],"license":"LGPL-3.0-only"},"node_modules/@gnosis-guild/zodiac-core/contracts/factory/FactoryFriendly.sol":{"keccak256":"0xdc17580aaefd994be56dced6c9765695807eeb996b05cbd1516171ca0784d83d","urls":["bzz-raw://58402770f94d469903388ef93aca179f53638d64c76d961b8d86d3042212f0fd","dweb:/ipfs/QmZFunrkQsX3765bpbRporGc7ZBysKdR3yryvzPuEKszNY"],"license":"LGPL-3.0-only"},"node_modules/@gnosis-guild/zodiac-core/contracts/interfaces/IAvatar.sol":{"keccak256":"0x1baad04c3c64495d82187c3930282ad9c9ca0d7b3c6c432ac5374605c8c2d1e9","urls":["bzz-raw://23c4c066bd6fdf338ecf39b034a7cbbe409530ce22686171fb7ab9c8c3c754c7","dweb:/ipfs/QmbyLP7xWLp9efCqMpVDSRLMZDpQwrnVKjML2nZZTR8hdb"],"license":"LGPL-3.0-only"},"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134","urls":["bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6","dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"src/contracts/zodiac/MerkleGovModule.sol":{"keccak256":"0x8e4b6645f999d0ae17ec59e554778f6f7b9444a5c0746801f19c2ee524e6a262","urls":["bzz-raw://282362897e316711e31f6b86ace18c03cd0606e680dd8f8b5a576883b17a6085","dweb:/ipfs/QmXE3m9h9CTArTyE7M6PfDGeLuWjsR7XV3c9BjjiBBZinT"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshot.sol":{"keccak256":"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0","urls":["bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66","dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshotHook.sol":{"keccak256":"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c","urls":["bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0","dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file diff --git a/frontend/abis/MerkleSnapshot.json b/frontend/abis/MerkleSnapshot.json index 9bd332c0..4778e48b 100644 --- a/frontend/abis/MerkleSnapshot.json +++ b/frontend/abis/MerkleSnapshot.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"serviceManager","type":"address","internalType":"contract IWavsServiceManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"ENVELOPE_EXPIRATION_TIME","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addHook","inputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blockToStateIndex","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueue","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"eventId","type":"bytes20","internalType":"bytes20"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueueEnd","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueueSize","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueueStart","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopesSeen","inputs":[{"name":"eventId","type":"bytes20","internalType":"bytes20"}],"outputs":[{"name":"expiresAt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getHooks","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IMerkleSnapshotHook[]"}],"stateMutability":"view"},{"type":"function","name":"getLatestState","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getStateAtBlock","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"state","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getStateAtIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"state","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getStateBlocks","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result_","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getStateCount","inputs":[],"outputs":[{"name":"count","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStates","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result_","type":"tuple[]","internalType":"struct IMerkleSnapshot.MerkleState[]","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"handleSignedEnvelope","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hookCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"hookIndex","inputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"outputs":[{"name":"hookIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"hooks","inputs":[{"name":"hookIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"stateMutability":"view"},{"type":"function","name":"lastCronTimestampSeen","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nextHookIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nextTriggerId","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"removeHook","inputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stateBlocks","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"states","inputs":[{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"trigger","inputs":[],"outputs":[{"name":"triggerId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"verifyMyProof","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyMyProofAtBlock","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyMyProofAtStateIndex","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyProof","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyProofAtBlock","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyProofAtStateIndex","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"MerkleRootUpdated","inputs":[{"name":"root","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","indexed":false,"internalType":"string"},{"name":"totalValue","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MerklerTrigger","inputs":[{"name":"triggerId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"NewTrigger","inputs":[{"name":"_triggerInfo","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"PrunedExpiredEnvelopes","inputs":[{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"EnvelopeAlreadySeen","inputs":[]},{"type":"error","name":"EnvelopeExpired","inputs":[]},{"type":"error","name":"HookAlreadyAdded","inputs":[]},{"type":"error","name":"HookNotAdded","inputs":[]},{"type":"error","name":"NoMerkleStateAtBlock","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"firstBlock","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoMerkleStateAtIndex","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"total","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoMerkleStates","inputs":[]}],"bytecode":{"object":"0x608034609157601f611bf738819003918201601f19168301916001600160401b03831184841017609557808492602094604052833981010312609157516001600160a01b038116908190036091575f600281905560035560048054600b80546001600160401b03191660011790556001600160e01b031916909117600160a01b179055604051611b4d90816100aa8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908163017a910514610b9457508063025d26be14610b5957806307971de714610b335780630d98919214610a5957806329b9fbf914610a225780632d904eb814610a0757806335951f7f146109eb57806342227fa4146109c257806344cb266f1461099d5780634dda0b4314610975578063550004e5146109505780635cd2525e146108435780635e0f9e371461081a578063658f09c5146107f85780636c819c4d146107bc57806376886d841461068e5780637b4e04e8146105a05780637fec8d3814610522578063864c17d7146104f057806396ee965b146104c6578063a52e9526146104a4578063a828a40a1461047b578063b2fd74c91461045e578063b42bc9fe1461043f578063c267d5b514610419578063c8411d1a146103e2578063c97b7f80146103c5578063daa05015146103a8578063df92c13714610370578063e5adf3ab1461029a578063f3af613414610256578063f616ec85146101ed5763f969ff3314610187575f80fd5b346101e95760403660031901126101e9576004356001600160401b0381116101e957606060031982360301126101e957602435906001600160401b0382116101e957606060031983360301126101e9576101e791600401906004016111aa565b005b5f80fd5b346101e95760603660031901126101e9576004356001600160a01b03811681036101e9576044356001600160401b0381116101e95760209161023661024c923690600401610dbf565b91602435906040610245610f6e565b0151611979565b6040519015158152f35b346101e95760403660031901126101e9576024356001600160401b0381116101e95761024c61028b6020923690600401610dbf565b90600435336040610245610f6e565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f20541561036157805f52600a60205260405f20545f52600960205260405f2080546001600160601b0360a01b1690555f52600a6020525f6040812055600b546001600160401b038160401c16801561034d576fffffffffffffffff0000000000000000199091165f1990910160401b67ffffffffffffffff60401b1617600b55005b634e487b7160e01b5f52601160045260245ffd5b633cea835f60e11b5f5260045ffd5b346101e95760203660031901126101e9576004356007548110156101e957610399602091610e70565b90549060031b1c604051908152f35b346101e9575f3660031901126101e9576020600754604051908152f35b346101e9575f3660031901126101e9576020600254604051908152f35b346101e95760203660031901126101e95761041561040160043561108d565b604051918291602083526020830190610d77565b0390f35b346101e9575f3660031901126101e95760206001600160401b0360055416604051908152f35b346101e95760203660031901126101e957610415610401600435610fdb565b346101e9575f3660031901126101e9576020600354604051908152f35b346101e9575f3660031901126101e957602061049c60035460025490610ea9565b604051908152f35b346101e957602061024c6104b736610e39565b6040610245949294339261108d565b346101e95760203660031901126101e9576004355f526008602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f526009602052602060018060a01b0360405f205416604051908152f35b346101e9575f3660031901126101e95760206004546001600160401b038160a01c16906001600160401b0360a01b61055983610fbe565b60a01b16906001600160401b0360a01b1916176004557f26c7819cd977f19b3fcfc03aa705e25e2aefa99133ba83b6eaf04841b669297c82604051838152a1604051908152f35b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f205461067f576001600160401b03600b54165f52600960205260405f20816001600160601b0360a01b8254161790556001600160401b03600b5416905f52600a60205260405f2055600b546001600160401b0361062f818316610fbe565b1667ffffffffffffffff60401b61065e67ffffffffffffffff198416831760401c6001600160401b0316610fbe565b60401b16916fffffffffffffffffffffffffffffffff19161717600b555f80f35b6323f8ed6f60e11b5f5260045ffd5b346101e9576106a761069f36610d61565b819291610e9c565b6007548082116107b4575b506106bd8282610ea9565b916106c783610eb6565b926106d56040519485610d02565b8084526106e4601f1991610eb6565b015f5b81811061079d575050805b82811061076057836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061073157505050500390f35b919360019193955060206107508192603f198a82030186528851610d77565b9601920192018594939192610722565b806001915f52600660205261079660405f2061078561077f8685610ea9565b91610f12565b61078f8289610ecd565b5286610ecd565b50016106f2565b6020906107a8610ee1565b828288010152016106e7565b9050826106b2565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e9575f52600a602052602060405f2054604051908152f35b346101e957602061024c61080b36610e39565b60406102459492943392610fdb565b346101e9575f3660031901126101e95760206001600160401b03600b5460401c16604051908152f35b346101e9575f3660031901126101e957600b546001600160401b038160401c169061088661087083610eb6565b9261087e6040519485610d02565b808452610eb6565b602083019190601f19013683376001600160401b031660015f5b8282106108f4578385604051918291602083019060208452518091526040830191905f5b8181106108d2575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108c4565b5f828152600960205260409020546001600160a01b031615610947575f8281526009602052604090205460019161093e916001600160a01b03166109388289610ecd565b52610fb0565b915b01906108a0565b90600190610940565b346101e957602061024c604061024561096836610def565b9591949095939293610fdb565b346101e9575f3660031901126101e9576004546040516001600160a01b039091168152602090f35b346101e957602061024c60406102456109b536610def565b959194909593929361108d565b346101e9575f3660031901126101e95760206001600160401b0360045460a01c16604051908152f35b346101e9575f3660031901126101e957602060405161012c8152f35b346101e9575f3660031901126101e957610415610401610f6e565b346101e95760203660031901126101e9576004355f526001602052602060405f205460601b604051906001600160601b0319168152f35b346101e957610a6a61069f36610d61565b90600754808311610b2b575b50610a818183610ea9565b91610aa4610a8e84610eb6565b93610a9c6040519586610d02565b808552610eb6565b602084019290601f1901368437805b828110610afe578385604051918291602083019060208452518091526040830191905f5b818110610ae5575050500390f35b8251845285945060209384019390920191600101610ad7565b80610b0a600192610e70565b90549060031b1c610b24610b1e8584610ea9565b88610ecd565b5201610ab3565b915082610a76565b346101e9575f3660031901126101e95760206001600160401b03600b5416604051908152f35b346101e95760203660031901126101e9576004356001600160601b031981168091036101e9575f525f602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f52600660205260405f20805490610c106001820154936002830154926005600382015491610be584610bde8160048501610c52565b0385610d02565b015493604051968796875260208701526040860152606085015260c0608085015260c0840190610d23565b9060a08301520390f35b90600182811c92168015610c48575b6020831014610c3457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610c29565b5f9291815491610c6183610c1a565b8083529260018116908115610cb65750600114610c7d57505050565b5f9081526020812093945091925b838310610c9c575060209250010190565b600181602092949394548385870101520191019190610c8b565b915050602093945060ff929192191683830152151560051b010190565b60c081019081106001600160401b03821117610cee57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117610cee57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b35906bffffffffffffffffffffffff19821682036101e957565b60409060031901126101e9576004359060243590565b908151815260208201516020820152604082015160408201526060820151606082015260a080610db6608085015160c0608086015260c0850190610d23565b93015191015290565b9181601f840112156101e9578235916001600160401b0383116101e9576020808501948460051b0101116101e957565b60806003198201126101e9576004356001600160a01b03811681036101e9579160243591604435906001600160401b0382116101e957610e3191600401610dbf565b909160643590565b9060606003198301126101e95760043591602435906001600160401b0382116101e957610e6891600401610dbf565b909160443590565b600754811015610e885760075f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9190820180921161034d57565b9190820391821161034d57565b6001600160401b038111610cee5760051b60200190565b8051821015610e885760209160051b010190565b60405190610eee82610cd3565b5f60a083828152826020820152826040820152826060820152606060808201520152565b90604051610f1f81610cd3565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152604051610f6281610f5b8160048601610c52565b0382610d02565b60808501520154910152565b610f76610ee1565b506007548015610fa1575f19810190811161034d575f526006602052610f9e60405f20610f12565b90565b633b02b60f60e11b5f5260045ffd5b5f19811461034d5760010190565b6001600160401b03166001600160401b03811461034d5760010190565b610fe3610ee1565b5060075415610fa157805f52600860205260405f20548161100382610e70565b90549060031b1c14611078575061101981611a0b565b91901561103457505f526006602052610f9e60405f20610f12565b60075415610e88577fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688546347329a5b60e01b5f908152600492909252602452604490fd5b90505f526006602052610f9e60405f20610f12565b611095610ee1565b50600754808210156110b557505f526006602052610f9e60405f20610f12565b9063254df73b60e11b5f5260045260245260445ffd5b35906001600160a01b0319821682036101e957565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e95781360383136101e957565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e9578160051b360383136101e957565b9291926001600160401b038211610cee576040519161118e601f8201601f191660200184610d02565b8294818452818301116101e9578281602093845f960137010152565b6004545f936001600160a01b0390911692833b156101e9576040516366b8ac4f60e11b8152604060048201526001600160601b03196111e885610d47565b16604482015260208401946001600160a01b0319611205876110cb565b166064830152604085019261122e61121d85886110e0565b6060608487015260a4860191611111565b83810360031901602485015291606083019161124a8180611131565b606086529384905260808501935f905b808210611943575050506112716020820182611131565b8585036020870152808552602085019460208260051b82010195835f925b84841061190b575050505050506040013563ffffffff81168091036101e957848093819260405f97015203915afa8015611900576118eb575b503591803603601e1981018412156118e757838201938435916001600160401b03831161168e57602086019383360385136118e357602087850181810196909591898703126118be5780356001600160401b0381116118c25789019560c090879003126118be576040519861133c8a610cd3565b60208701358a5260208a01956040880135875260408b019b60608901358d5260608c019960808a01358b5260a08a01356001600160401b0381116118df576020908b010181601f820112156118df5760609181602061139d93359101611165565b9c608081019d8e5260c060a082019b01358b525197126118db5760405195606087018781106001600160401b038211176118c657916113eb6113f2926001600160401b039594604052610d47565b88526110cb565b6020870152116118c257601f36910112156118be57611412913691611165565b6040820152428211156118af576001600160601b031981511689528860205260408920546118a05751906001600160601b03198216895288602052604089205560035488526001602052604088209060601c6001600160601b0360a01b825416179055611480600354610fb0565b9081600355518061181e5750508451938251948151835160075497881580156117e6575b156117d25788438c5260086020528060408d2055680100000000000000008110156117be578060016114d99201600755610e70565b81549060031b9043821b915f19901b19161790555b604051936114fb85610cd3565b4385526020850142815260408601918252606086019283526080860194855260a086019384528a8d52600660205260408d20955186555160018601555160028501555160038401556004830191519182516001600160401b0381116117be576115648254610c1a565b601f8111611774575b5060208c601f831160011461170c579060059583611701575b50508160011b915f199060031b1c19161790555b5191015560015b6001600160401b03600b54168110156116a957808852600960205260408820546001600160a01b0316156116a157808852600960209081526040808a2054888b526006909252892089916001600160a01b0316803b1561169d5782918291604051809481809463bbdce96960e01b8252602060048301528054602483015260018101546044830152600281015460648301526003810154608483015260c060a4830152600561165660e4840160048401610c52565b91015460c483015203925af1801561169257611679575b50506001905b016115a1565b8161168391610d02565b61168e57875f61166d565b8780fd5b6040513d84823e3d90fd5b8280fd5b600190611673565b509194909295507f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa769350519351905191516116f66040519384938452606060208501526060840190610d23565b9060408301520390a2565b015190505f80611586565b91929394601f198416858452828420935b81811061175c575091600193918560059897969410611744575b505050811b01905561159a565b01515f1960f88460031b161c191690555f8080611737565b9293602060018192878601518155019501930161171d565b828d5260208d20601f830160051c810191602084106117b4575b601f0160051c01908d905b8281106117a757505061156d565b6001918155018d90611799565b909150819061178e565b634e487b7160e01b8c52604160045260248cfd5b438b52600860205260408b205498506114ee565b505f19890189811161180a576117fb90610e70565b4391549060031b1c14156114a4565b634e487b7160e01b8c52601160045260248cfd5b9396945094505050611834819360025490610ea9565b809111611898575b50905b808210611875575b5060207f9ab3d70475df098666ddecfedc7d84969049ae8e9f088b5657bf0db3900324c291604051908152a1565b9061187e611aa7565b156118925761188c90610fb0565b9061183f565b90611847565b91505f61183c565b633a181deb60e11b8952600489fd5b63fd427c0960e01b8952600489fd5b8a80fd5b8b80fd5b50634e487b7160e01b8f52604160045260248ffd5b8d80fd5b8f80fd5b8880fd5b8580fd5b6118f89195505f90610d02565b5f935f6112c8565b6040513d5f823e3d90fd5b909192939497602080611933600193601f1986820301885261192d8d886110e0565b90611111565b9a0194019401929493919061128f565b91949091908535906001600160a01b03821682036101e9576001600160a01b03909116815260209081019501916001019061125a565b929160405190602082019260018060a01b031683526040820152604081526119a2606082610d02565b51902060405160208101918252602081526119be604082610d02565b519020915f925b84841015611a03578360051b830135908181105f146119f2575f52602052600160405f205b9301926119c5565b905f52602052600160405f206119ea565b149392505050565b6007545f9291839182915b818310611a24575050509190565b9092919394611a338486610e9c565b60011c92611a4084610e70565b90549060031b1c958387145f14611a6a575050505050505f52600860205260405f20549060019190565b83879495969897105f14611a9c575050505f52600860205260405f20549360019283810180911161034d575b91611a16565b919650939150611a96565b6002545f5260016020526001600160601b031960405f205460601b16805f525f60205260405f20544210611b12575f525f6020525f60408120556002545f52600160205260405f2080546001600160601b0360a01b169055611b0a600254610fb0565b600255600190565b505f9056fea2646970667358221220ca45ac4d03b5e0b6136e0a99c7eb00282a274df4d46f99eebadb3dde371b130d64736f6c634300081b0033","sourceMap":"873:14317:99:-:0;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;-1:-1:-1;1247:1:100;873:14317:99;;;1363:1:100;873:14317:99;1166:1;873:14317;;2214:1;873:14317;;-1:-1:-1;;;;;;873:14317:99;1166:1;873:14317;;;-1:-1:-1;;;;;;873:14317:99;;;;-1:-1:-1;;;873:14317:99;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;;;;-1:-1:-1;873:14317:99;;;;;-1:-1:-1;873:14317:99","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908163017a910514610b9457508063025d26be14610b5957806307971de714610b335780630d98919214610a5957806329b9fbf914610a225780632d904eb814610a0757806335951f7f146109eb57806342227fa4146109c257806344cb266f1461099d5780634dda0b4314610975578063550004e5146109505780635cd2525e146108435780635e0f9e371461081a578063658f09c5146107f85780636c819c4d146107bc57806376886d841461068e5780637b4e04e8146105a05780637fec8d3814610522578063864c17d7146104f057806396ee965b146104c6578063a52e9526146104a4578063a828a40a1461047b578063b2fd74c91461045e578063b42bc9fe1461043f578063c267d5b514610419578063c8411d1a146103e2578063c97b7f80146103c5578063daa05015146103a8578063df92c13714610370578063e5adf3ab1461029a578063f3af613414610256578063f616ec85146101ed5763f969ff3314610187575f80fd5b346101e95760403660031901126101e9576004356001600160401b0381116101e957606060031982360301126101e957602435906001600160401b0382116101e957606060031983360301126101e9576101e791600401906004016111aa565b005b5f80fd5b346101e95760603660031901126101e9576004356001600160a01b03811681036101e9576044356001600160401b0381116101e95760209161023661024c923690600401610dbf565b91602435906040610245610f6e565b0151611979565b6040519015158152f35b346101e95760403660031901126101e9576024356001600160401b0381116101e95761024c61028b6020923690600401610dbf565b90600435336040610245610f6e565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f20541561036157805f52600a60205260405f20545f52600960205260405f2080546001600160601b0360a01b1690555f52600a6020525f6040812055600b546001600160401b038160401c16801561034d576fffffffffffffffff0000000000000000199091165f1990910160401b67ffffffffffffffff60401b1617600b55005b634e487b7160e01b5f52601160045260245ffd5b633cea835f60e11b5f5260045ffd5b346101e95760203660031901126101e9576004356007548110156101e957610399602091610e70565b90549060031b1c604051908152f35b346101e9575f3660031901126101e9576020600754604051908152f35b346101e9575f3660031901126101e9576020600254604051908152f35b346101e95760203660031901126101e95761041561040160043561108d565b604051918291602083526020830190610d77565b0390f35b346101e9575f3660031901126101e95760206001600160401b0360055416604051908152f35b346101e95760203660031901126101e957610415610401600435610fdb565b346101e9575f3660031901126101e9576020600354604051908152f35b346101e9575f3660031901126101e957602061049c60035460025490610ea9565b604051908152f35b346101e957602061024c6104b736610e39565b6040610245949294339261108d565b346101e95760203660031901126101e9576004355f526008602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f526009602052602060018060a01b0360405f205416604051908152f35b346101e9575f3660031901126101e95760206004546001600160401b038160a01c16906001600160401b0360a01b61055983610fbe565b60a01b16906001600160401b0360a01b1916176004557f26c7819cd977f19b3fcfc03aa705e25e2aefa99133ba83b6eaf04841b669297c82604051838152a1604051908152f35b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f205461067f576001600160401b03600b54165f52600960205260405f20816001600160601b0360a01b8254161790556001600160401b03600b5416905f52600a60205260405f2055600b546001600160401b0361062f818316610fbe565b1667ffffffffffffffff60401b61065e67ffffffffffffffff198416831760401c6001600160401b0316610fbe565b60401b16916fffffffffffffffffffffffffffffffff19161717600b555f80f35b6323f8ed6f60e11b5f5260045ffd5b346101e9576106a761069f36610d61565b819291610e9c565b6007548082116107b4575b506106bd8282610ea9565b916106c783610eb6565b926106d56040519485610d02565b8084526106e4601f1991610eb6565b015f5b81811061079d575050805b82811061076057836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061073157505050500390f35b919360019193955060206107508192603f198a82030186528851610d77565b9601920192018594939192610722565b806001915f52600660205261079660405f2061078561077f8685610ea9565b91610f12565b61078f8289610ecd565b5286610ecd565b50016106f2565b6020906107a8610ee1565b828288010152016106e7565b9050826106b2565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e9575f52600a602052602060405f2054604051908152f35b346101e957602061024c61080b36610e39565b60406102459492943392610fdb565b346101e9575f3660031901126101e95760206001600160401b03600b5460401c16604051908152f35b346101e9575f3660031901126101e957600b546001600160401b038160401c169061088661087083610eb6565b9261087e6040519485610d02565b808452610eb6565b602083019190601f19013683376001600160401b031660015f5b8282106108f4578385604051918291602083019060208452518091526040830191905f5b8181106108d2575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108c4565b5f828152600960205260409020546001600160a01b031615610947575f8281526009602052604090205460019161093e916001600160a01b03166109388289610ecd565b52610fb0565b915b01906108a0565b90600190610940565b346101e957602061024c604061024561096836610def565b9591949095939293610fdb565b346101e9575f3660031901126101e9576004546040516001600160a01b039091168152602090f35b346101e957602061024c60406102456109b536610def565b959194909593929361108d565b346101e9575f3660031901126101e95760206001600160401b0360045460a01c16604051908152f35b346101e9575f3660031901126101e957602060405161012c8152f35b346101e9575f3660031901126101e957610415610401610f6e565b346101e95760203660031901126101e9576004355f526001602052602060405f205460601b604051906001600160601b0319168152f35b346101e957610a6a61069f36610d61565b90600754808311610b2b575b50610a818183610ea9565b91610aa4610a8e84610eb6565b93610a9c6040519586610d02565b808552610eb6565b602084019290601f1901368437805b828110610afe578385604051918291602083019060208452518091526040830191905f5b818110610ae5575050500390f35b8251845285945060209384019390920191600101610ad7565b80610b0a600192610e70565b90549060031b1c610b24610b1e8584610ea9565b88610ecd565b5201610ab3565b915082610a76565b346101e9575f3660031901126101e95760206001600160401b03600b5416604051908152f35b346101e95760203660031901126101e9576004356001600160601b031981168091036101e9575f525f602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f52600660205260405f20805490610c106001820154936002830154926005600382015491610be584610bde8160048501610c52565b0385610d02565b015493604051968796875260208701526040860152606085015260c0608085015260c0840190610d23565b9060a08301520390f35b90600182811c92168015610c48575b6020831014610c3457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610c29565b5f9291815491610c6183610c1a565b8083529260018116908115610cb65750600114610c7d57505050565b5f9081526020812093945091925b838310610c9c575060209250010190565b600181602092949394548385870101520191019190610c8b565b915050602093945060ff929192191683830152151560051b010190565b60c081019081106001600160401b03821117610cee57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117610cee57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b35906bffffffffffffffffffffffff19821682036101e957565b60409060031901126101e9576004359060243590565b908151815260208201516020820152604082015160408201526060820151606082015260a080610db6608085015160c0608086015260c0850190610d23565b93015191015290565b9181601f840112156101e9578235916001600160401b0383116101e9576020808501948460051b0101116101e957565b60806003198201126101e9576004356001600160a01b03811681036101e9579160243591604435906001600160401b0382116101e957610e3191600401610dbf565b909160643590565b9060606003198301126101e95760043591602435906001600160401b0382116101e957610e6891600401610dbf565b909160443590565b600754811015610e885760075f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9190820180921161034d57565b9190820391821161034d57565b6001600160401b038111610cee5760051b60200190565b8051821015610e885760209160051b010190565b60405190610eee82610cd3565b5f60a083828152826020820152826040820152826060820152606060808201520152565b90604051610f1f81610cd3565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152604051610f6281610f5b8160048601610c52565b0382610d02565b60808501520154910152565b610f76610ee1565b506007548015610fa1575f19810190811161034d575f526006602052610f9e60405f20610f12565b90565b633b02b60f60e11b5f5260045ffd5b5f19811461034d5760010190565b6001600160401b03166001600160401b03811461034d5760010190565b610fe3610ee1565b5060075415610fa157805f52600860205260405f20548161100382610e70565b90549060031b1c14611078575061101981611a0b565b91901561103457505f526006602052610f9e60405f20610f12565b60075415610e88577fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688546347329a5b60e01b5f908152600492909252602452604490fd5b90505f526006602052610f9e60405f20610f12565b611095610ee1565b50600754808210156110b557505f526006602052610f9e60405f20610f12565b9063254df73b60e11b5f5260045260245260445ffd5b35906001600160a01b0319821682036101e957565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e95781360383136101e957565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e9578160051b360383136101e957565b9291926001600160401b038211610cee576040519161118e601f8201601f191660200184610d02565b8294818452818301116101e9578281602093845f960137010152565b6004545f936001600160a01b0390911692833b156101e9576040516366b8ac4f60e11b8152604060048201526001600160601b03196111e885610d47565b16604482015260208401946001600160a01b0319611205876110cb565b166064830152604085019261122e61121d85886110e0565b6060608487015260a4860191611111565b83810360031901602485015291606083019161124a8180611131565b606086529384905260808501935f905b808210611943575050506112716020820182611131565b8585036020870152808552602085019460208260051b82010195835f925b84841061190b575050505050506040013563ffffffff81168091036101e957848093819260405f97015203915afa8015611900576118eb575b503591803603601e1981018412156118e757838201938435916001600160401b03831161168e57602086019383360385136118e357602087850181810196909591898703126118be5780356001600160401b0381116118c25789019560c090879003126118be576040519861133c8a610cd3565b60208701358a5260208a01956040880135875260408b019b60608901358d5260608c019960808a01358b5260a08a01356001600160401b0381116118df576020908b010181601f820112156118df5760609181602061139d93359101611165565b9c608081019d8e5260c060a082019b01358b525197126118db5760405195606087018781106001600160401b038211176118c657916113eb6113f2926001600160401b039594604052610d47565b88526110cb565b6020870152116118c257601f36910112156118be57611412913691611165565b6040820152428211156118af576001600160601b031981511689528860205260408920546118a05751906001600160601b03198216895288602052604089205560035488526001602052604088209060601c6001600160601b0360a01b825416179055611480600354610fb0565b9081600355518061181e5750508451938251948151835160075497881580156117e6575b156117d25788438c5260086020528060408d2055680100000000000000008110156117be578060016114d99201600755610e70565b81549060031b9043821b915f19901b19161790555b604051936114fb85610cd3565b4385526020850142815260408601918252606086019283526080860194855260a086019384528a8d52600660205260408d20955186555160018601555160028501555160038401556004830191519182516001600160401b0381116117be576115648254610c1a565b601f8111611774575b5060208c601f831160011461170c579060059583611701575b50508160011b915f199060031b1c19161790555b5191015560015b6001600160401b03600b54168110156116a957808852600960205260408820546001600160a01b0316156116a157808852600960209081526040808a2054888b526006909252892089916001600160a01b0316803b1561169d5782918291604051809481809463bbdce96960e01b8252602060048301528054602483015260018101546044830152600281015460648301526003810154608483015260c060a4830152600561165660e4840160048401610c52565b91015460c483015203925af1801561169257611679575b50506001905b016115a1565b8161168391610d02565b61168e57875f61166d565b8780fd5b6040513d84823e3d90fd5b8280fd5b600190611673565b509194909295507f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa769350519351905191516116f66040519384938452606060208501526060840190610d23565b9060408301520390a2565b015190505f80611586565b91929394601f198416858452828420935b81811061175c575091600193918560059897969410611744575b505050811b01905561159a565b01515f1960f88460031b161c191690555f8080611737565b9293602060018192878601518155019501930161171d565b828d5260208d20601f830160051c810191602084106117b4575b601f0160051c01908d905b8281106117a757505061156d565b6001918155018d90611799565b909150819061178e565b634e487b7160e01b8c52604160045260248cfd5b438b52600860205260408b205498506114ee565b505f19890189811161180a576117fb90610e70565b4391549060031b1c14156114a4565b634e487b7160e01b8c52601160045260248cfd5b9396945094505050611834819360025490610ea9565b809111611898575b50905b808210611875575b5060207f9ab3d70475df098666ddecfedc7d84969049ae8e9f088b5657bf0db3900324c291604051908152a1565b9061187e611aa7565b156118925761188c90610fb0565b9061183f565b90611847565b91505f61183c565b633a181deb60e11b8952600489fd5b63fd427c0960e01b8952600489fd5b8a80fd5b8b80fd5b50634e487b7160e01b8f52604160045260248ffd5b8d80fd5b8f80fd5b8880fd5b8580fd5b6118f89195505f90610d02565b5f935f6112c8565b6040513d5f823e3d90fd5b909192939497602080611933600193601f1986820301885261192d8d886110e0565b90611111565b9a0194019401929493919061128f565b91949091908535906001600160a01b03821682036101e9576001600160a01b03909116815260209081019501916001019061125a565b929160405190602082019260018060a01b031683526040820152604081526119a2606082610d02565b51902060405160208101918252602081526119be604082610d02565b519020915f925b84841015611a03578360051b830135908181105f146119f2575f52602052600160405f205b9301926119c5565b905f52602052600160405f206119ea565b149392505050565b6007545f9291839182915b818310611a24575050509190565b9092919394611a338486610e9c565b60011c92611a4084610e70565b90549060031b1c958387145f14611a6a575050505050505f52600860205260405f20549060019190565b83879495969897105f14611a9c575050505f52600860205260405f20549360019283810180911161034d575b91611a16565b919650939150611a96565b6002545f5260016020526001600160601b031960405f205460601b16805f525f60205260405f20544210611b12575f525f6020525f60408120556002545f52600160205260405f2080546001600160601b0360a01b169055611b0a600254610fb0565b600255600190565b505f9056fea2646970667358221220ca45ac4d03b5e0b6136e0a99c7eb00282a274df4d46f99eebadb3dde371b130d64736f6c634300081b0033","sourceMap":"873:14317:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;5306:58;873:14317;;;;;;:::i;:::-;;;;5319:16;873:14317;5319:16;;:::i;:::-;:21;873:14317;5306:58;:::i;:::-;873:14317;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;5306:58;873:14317;;;;;;;;:::i;:::-;;;;5722:10;873:14317;5319:16;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;13053:9;873:14317;;;;;;13053:20;13049:72;;873:14317;;;13053:9;873:14317;;;;;;;;13138:5;873:14317;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;13053:9;873:14317;;;;;;;13202:11;873:14317;-1:-1:-1;;;;;873:14317:99;;;;;;;;-1:-1:-1;;873:14317:99;;;-1:-1:-1;;873:14317:99;;;;;-1:-1:-1;;;873:14317:99;;13202:11;873:14317;;;;;;;;;;;;;;13049:72;13096:14;;;873:14317;13096:14;873:14317;;13096:14;873:14317;;;;;;-1:-1:-1;;873:14317:99;;;;;;1531:28;873:14317;1531:28;;;;;;873:14317;1531:28;;:::i;:::-;873:14317;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;11154:11;873:14317;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;1201:47:100;873:14317:99;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;-1:-1:-1;;;;;1219:35:99;873:14317;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:99;;;;;1319:45:100;873:14317:99;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;4619:57:100;:26;873:14317:99;4648:28:100;873:14317:99;4619:57:100;;:::i;:::-;873:14317:99;;;;;;;;;;;7514:47;873:14317;;;:::i;:::-;;7470:27;8047:10;;;;7470:27;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;1694:75;873:14317;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;1856:67;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;-1:-1:-1;;;;;873:14317:99;;2601:15;;;:::i;:::-;873:14317;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;2667:25;873:14317;;;;;;2667:25;873:14317;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;12745:9;873:14317;;;;;;12741:76;;-1:-1:-1;;;;;12833:13:99;873:14317;;;;12827:5;873:14317;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;-1:-1:-1;;;;;12833:13:99;873:14317;;;;;12745:9;873:14317;;;;;;12833:13;873:14317;-1:-1:-1;;;;;12905:15:99;873:14317;;;12905:15;:::i;:::-;873:14317;-1:-1:-1;;;12930:11:99;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;12930:11;:::i;:::-;873:14317;;;;;;;;;12833:13;873:14317;;;;12741:76;12788:18;;;873:14317;12788:18;873:14317;;12788:18;873:14317;;;;12185:14;873:14317;;;:::i;:::-;12185:14;;;;:::i;:::-;12219:11;873:14317;12213:24;;;12209:79;;873:14317;12346:12;;;;;:::i;:::-;873:14317;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;12374:18;;;12394:7;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;12403:3;873:14317;;;;;12443:6;873:14317;;12422:30;873:14317;;;;12429:10;;;;:::i;:::-;873:14317;;:::i;:::-;12422:30;;;;:::i;:::-;;;;:::i;:::-;;873:14317;12374:18;;873:14317;;;;;:::i;:::-;;;;;;;;;;12209:79;12253:24;;12209:79;;;873:14317;;;;;;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;2000:71;873:14317;;;;;;;;;;;;;;;;;;6348:47;873:14317;;;:::i;:::-;;6303:28;6883:10;;;;6303:28;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:99;;;;;-1:-1:-1;;;;;2258:23:99;873:14317;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;13417:9;873:14317;-1:-1:-1;;;;;873:14317:99;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:99;;;;-1:-1:-1;;;;;873:14317:99;13496:1;873:14317;13499:17;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;-1:-1:-1;873:14317:99;;;;;;;;;13496:1;873:14317;;;13518:3;873:14317;;;;13549:5;873:14317;;;;;;-1:-1:-1;;;;;873:14317:99;13541:31;13537:78;;873:14317;;;;13549:5;873:14317;;;;;;13496:1;;13672:13;;-1:-1:-1;;;;;873:14317:99;13628:30;873:14317;13628:30;;:::i;:::-;873:14317;13672:13;:::i;:::-;13518:3;13484:13;873:14317;13484:13;;;13537:78;13592:8;13496:1;13592:8;;;873:14317;;;;;6348:47;873:14317;6303:28;873:14317;;;:::i;:::-;6303:28;;;;;;;;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;7514:47;873:14317;7470:27;873:14317;;;:::i;:::-;7470:27;;;;;;;;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:99;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;761:9:100;873:14317:99;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;11552:14;873:14317;;;:::i;11552:14::-;873:14317;11586:11;873:14317;11580:24;;;11576:79;;873:14317;11705:12;;;;;:::i;:::-;873:14317;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:99;;;;11733:18;11753:7;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;;;;;;;;;;;11762:3;11802:14;;873:14317;11802:14;;:::i;:::-;873:14317;;;;;;11781:35;11788:10;;;;:::i;:::-;11781:35;;:::i;:::-;873:14317;;11733:18;;11576:79;11620:24;-1:-1:-1;11576:79:99;;;873:14317;;;;;;-1:-1:-1;;873:14317:99;;;;;-1:-1:-1;;;;;2184:31:99;873:14317;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;1318:62;873:14317;;;;;;;1318:62;873:14317;;1318:62;;873:14317;1318:62;;;;873:14317;1318:62;;;;;873:14317;1318:62;873:14317;1318:62;873:14317;1318:62;873:14317;1318:62;;873:14317;:::i;:::-;;;;:::i;:::-;1318:62;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;873:14317:99;;;;;;;;-1:-1:-1;873:14317:99;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;:::o;:::-;;;;-1:-1:-1;873:14317:99;;;;;-1:-1:-1;873:14317:99;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;;;;;;-1:-1:-1;;873:14317:99;;;;:::o;:::-;;;-1:-1:-1;;873:14317:99;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;873:14317:99;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;-1:-1:-1;;873:14317:99;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;11586:11;873:14317;;;;;;11586:11;-1:-1:-1;873:14317:99;;-1:-1:-1;873:14317:99;;;-1:-1:-1;873:14317:99;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;873:14317:99;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;:::o;8133:207::-;873:14317;;:::i;:::-;;8214:11;873:14317;8214:23;;8210:77;;-1:-1:-1;;873:14317:99;;;;;;;8236:1;873:14317;8303:6;873:14317;;;;8236:1;873:14317;;:::i;:::-;8133:207;:::o;8210:77::-;8260:16;;;8236:1;8260:16;;8236:1;8260:16;873:14317;-1:-1:-1;;873:14317:99;;;;;;;:::o;:::-;-1:-1:-1;;;;;873:14317:99;-1:-1:-1;;;;;873:14317:99;;;;;;;:::o;8540:955::-;873:14317;;:::i;:::-;;8661:11;873:14317;8661:23;8657:77;;873:14317;8683:1;873:14317;9027:17;873:14317;;;8683:1;873:14317;;9071:24;;;;:::i;:::-;873:14317;;;;;;9071:39;9067:96;;9286:65;;;;:::i;:::-;9365:6;;;9361:93;;873:14317;8683:1;873:14317;9470:6;873:14317;;;;8683:1;873:14317;;:::i;9361:93::-;8661:11;873:14317;;;;;;-1:-1:-1;;;8683:1:99;9394:49;;;;873:14317;;;;;;;;9394:49;9067:96;873:14317;;8683:1;873:14317;9133:6;873:14317;;;;8683:1;873:14317;;:::i;9650:259::-;873:14317;;:::i;:::-;;9774:11;873:14317;9765:27;;;;9761:112;;873:14317;-1:-1:-1;873:14317:99;9889:6;873:14317;;;;-1:-1:-1;873:14317:99;;:::i;9761:112::-;9815:47;;;;-1:-1:-1;9815:47:99;;873:14317;;;;-1:-1:-1;9815:47:99;873:14317;;;-1:-1:-1;;;;;;873:14317:99;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;;;;;;-1:-1:-1;;873:14317:99;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;;;;:::o;13954:998::-;14091:15;873:14317;-1:-1:-1;;;;;;;873:14317:99;;;;14091:49;;;;;873:14317;;;;;14091:49;;873:14317;14091:15;:49;;873:14317;-1:-1:-1;;;;;873:14317:99;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;;873:14317:99;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;873:14317:99;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;873:14317:99;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;14091:49;;;;;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;14214:82;;;;;;;;;;873:14317;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1764:15:100;1752:27;;1750:30;1746:85;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;1890:94:100;;873:14317:99;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;2484:26:100;873:14317:99;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;2531:28:100;2484:26;873:14317:99;2531:28:100;:::i;:::-;873:14317:99;;2484:26:100;873:14317:99;;14477:19;14473:109;;873:14317;;;;;;;14708:21;;;873:14317;;3290:11;873:14317;3290:23;;;:90;;;;873:14317;3273:425;;;3405:31;3179:12;873:14317;;3450:17;873:14317;;;;;;;;;;;;;;;;;;3290:11;873:14317;;:::i;:::-;;;;2484:26:100;873:14317:99;3179:12;;873:14317;;;;;;;;;;;;3273:425;873:14317;;;;;;:::i;:::-;3179:12;873:14317;;;3729:232;;1764:15:100;873:14317:99;;;3729:232;;873:14317;;;;3729:232;;873:14317;;;;3729:232;;873:14317;;;;3729:232;;873:14317;;;;;;3708:6;873:14317;;;;;;;;;;;;;;;;;;;;2484:26:100;873:14317:99;;;14091:15;873:14317;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;:::i;:::-;;;;;;3273:425;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;2484:26:100;873:14317:99;;;;;;;;;;;;;4038:3;-1:-1:-1;;;;;4023:13:99;873:14317;;4019:17;;;;;873:14317;;;4069:5;873:14317;;;;;;-1:-1:-1;;;;;873:14317:99;4061:31;4057:78;;873:14317;;;4069:5;873:14317;;;;;;;;;;;;3708:6;873:14317;;;;;;;-1:-1:-1;;;;;873:14317:99;4148:43;;;;;873:14317;;;;;;;;;;;;;;4148:43;;873:14317;14091:15;4148:43;;873:14317;;;;;;;;;;;;;;;;;;;;;;;2484:26:100;873:14317:99;;;;;;;;;;;;;;;;;14091:15;873:14317;;;:::i;:::-;;;;;;;;4148:43;;;;;;;;;;4038:3;;;873:14317;4038:3;4004:13;873:14317;4004:13;;4148:43;;;;;:::i;:::-;873:14317;;4148:43;;;;873:14317;;;;4148:43;873:14317;;;;;;;;;4148:43;873:14317;;;4057:78;873:14317;4112:8;;;4019:17;;;;;;;;14789:156;4019:17;;873:14317;;;14880:21;;873:14317;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;14789:156;;;13954:998::o;873:14317::-;;;;-1:-1:-1;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2484:26:100;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:99;;;;;-1:-1:-1;;;873:14317:99;;;14091:15;873:14317;;;;3273:425;3179:12;873:14317;;3656:17;873:14317;;;;;;;-1:-1:-1;3273:425:99;;3290:90;-1:-1:-1;;;873:14317:99;;;;;;;3329:35;;;:::i;:::-;3179:12;873:14317;;;2484:26:100;873:14317:99;;3329:51;;3290:90;;873:14317;-1:-1:-1;;;873:14317:99;;;14091:15;873:14317;;;;14473:109;14512:39;;;;;;;;4619:57:100;14512:39:99;873:14317;4648:28:100;873:14317:99;4619:57:100;;:::i;:::-;3902:10;;;3898:51;;14473:109:99;4064:18:100;4092:223;4099:12;;;;;;4092:223;873:14317:99;;4330:30:100;873:14317:99;;;;;;4330:30:100;14565:7:99:o;4092:223:100:-;4152:31;;;:::i;:::-;;;;4238:8;;;:::i;:::-;4197:108;4092:223;;4197:108;4285:5;;;3898:51;3928:10;-1:-1:-1;3898:51:100;;;1890:94;-1:-1:-1;;;1952:21:100;;14091:15:99;1952:21:100;;1746:85;-1:-1:-1;;;1803:17:100;;14091:15:99;1803:17:100;;873:14317:99;;;;;;;;;-1:-1:-1;;;;873:14317:99;;;14091:15;873:14317;;;;;;;;;;;;;;;;;;;;14091:49;;;;;-1:-1:-1;14091:49:99;;:::i;:::-;-1:-1:-1;14091:49:99;;;;;873:14317;;;-1:-1:-1;873:14317:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;4504:376;;;873:14317;;4773:26;;;;873:14317;;;;;;;;;;;;;;4773:26;;;;;;:::i;:::-;873:14317;4763:37;;873:14317;;4773:26;873:14317;;;;;4773:26;873:14317;;;;;;:::i;:::-;;4727:84;;5366:13:61;-1:-1:-1;5361:134:61;5399:3;5381:16;;;;;;873:14317:99;;;;;;605:59:60;:5;;;:59;:5;;;-1:-1:-1;889:135:60;4773:26:99;889:135:60;873:14317:99;;-1:-1:-1;889:135:60;605:59;5399:3:61;873:14317:99;5366:13:61;;;605:59:60;889:135;-1:-1:-1;889:135:60;4773:26:99;889:135:60;873:14317:99;;-1:-1:-1;889:135:60;605:59;;5381:16:61;4761:41;;4504:376:99;-1:-1:-1;;;4504:376:99:o;10143:837::-;10320:11;873:14317;10293:1;;10143:837;10293:1;;;;10418:12;;;;;;10945:28;;;;10143:837;:::o;10411:524::-;10461:12;;;;;;;;;:::i;:::-;873:14317;;10511:16;;;;:::i;:::-;873:14317;;;;;;10546:23;;;;10542:383;10546:23;;;873:14317;;;;;;10293:1;873:14317;10661:17;873:14317;;;10293:1;873:14317;;10647:42;873:14317;10647:42;;:::o;10542:383::-;10714:22;;;;;;;;10710:215;10714:22;;;873:14317;;;10293:1;873:14317;10765:17;873:14317;;;10293:1;873:14317;;10810:18;873:14317;;;;;;;;;;10710:215;10411:524;;;10710:215;10899:11;;-1:-1:-1;10899:11:99;;-1:-1:-1;10710:215:99;;2760:598:100;2877:28;873:14317:99;;;2853:23:100;873:14317:99;;-1:-1:-1;;;;;873:14317:99;;;;;;;;;;;;;;;;;;3053:15:100;-1:-1:-1;3037:70:100;;873:14317:99;;;;;;;;;;2877:28:100;873:14317:99;;;2853:23:100;873:14317:99;;;;;;;-1:-1:-1;;;;;873:14317:99;;;;;3299:30:100;2877:28;873:14317:99;3299:30:100;:::i;:::-;2877:28;873:14317:99;2853:23:100;2760:598;:::o;3037:70::-;3084:12;873:14317:99;3084:12:100;:::o","linkReferences":{}},"methodIdentifiers":{"ENVELOPE_EXPIRATION_TIME()":"35951f7f","addHook(address)":"7b4e04e8","blockToStateIndex(uint256)":"96ee965b","envelopeExpirationQueue(uint256)":"29b9fbf9","envelopeExpirationQueueEnd()":"b2fd74c9","envelopeExpirationQueueSize()":"a828a40a","envelopeExpirationQueueStart()":"c97b7f80","envelopesSeen(bytes20)":"025d26be","getHooks()":"5cd2525e","getLatestState()":"2d904eb8","getServiceManager()":"4dda0b43","getStateAtBlock(uint256)":"b42bc9fe","getStateAtIndex(uint256)":"c8411d1a","getStateBlocks(uint256,uint256)":"0d989192","getStateCount()":"daa05015","getStates(uint256,uint256)":"76886d84","handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"f969ff33","hookCount()":"5e0f9e37","hookIndex(address)":"6c819c4d","hooks(uint256)":"864c17d7","lastCronTimestampSeen()":"c267d5b5","nextHookIndex()":"07971de7","nextTriggerId()":"42227fa4","removeHook(address)":"e5adf3ab","stateBlocks(uint256)":"df92c137","states(uint256)":"017a9105","trigger()":"7fec8d38","verifyMyProof(uint256,bytes32[])":"f3af6134","verifyMyProofAtBlock(uint256,bytes32[],uint256)":"658f09c5","verifyMyProofAtStateIndex(uint256,bytes32[],uint256)":"a52e9526","verifyProof(address,uint256,bytes32[])":"f616ec85","verifyProofAtBlock(address,uint256,bytes32[],uint256)":"550004e5","verifyProofAtStateIndex(address,uint256,bytes32[],uint256)":"44cb266f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IWavsServiceManager\",\"name\":\"serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnvelopeAlreadySeen\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnvelopeExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HookAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HookNotAdded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"firstBlock\",\"type\":\"uint256\"}],\"name\":\"NoMerkleStateAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"name\":\"NoMerkleStateAtIndex\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoMerkleStates\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"name\":\"MerkleRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"triggerId\",\"type\":\"uint64\"}],\"name\":\"MerklerTrigger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_triggerInfo\",\"type\":\"bytes\"}],\"name\":\"NewTrigger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"PrunedExpiredEnvelopes\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ENVELOPE_EXPIRATION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"addHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"blockToStateIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"envelopeExpirationQueue\",\"outputs\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"envelopeExpirationQueueEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"envelopeExpirationQueueSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"envelopeExpirationQueueStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"}],\"name\":\"envelopesSeen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"expiresAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHooks\",\"outputs\":[{\"internalType\":\"contract IMerkleSnapshotHook[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getStateAtBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"state\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStateAtIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"state\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getStateBlocks\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"result_\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getStates\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState[]\",\"name\":\"result_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"handleSignedEnvelope\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hookCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"hookIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"hookIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"hookIndex\",\"type\":\"uint256\"}],\"name\":\"hooks\",\"outputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCronTimestampSeen\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextHookIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTriggerId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"removeHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stateBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"name\":\"states\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trigger\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"triggerId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyMyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"verifyMyProofAtBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"name\":\"verifyMyProofAtStateIndex\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"verifyProofAtBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"name\":\"verifyProofAtStateIndex\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements IWavsServiceHandler for merkle root updates via WAVS\",\"events\":{\"MerklerTrigger(uint64)\":{\"params\":{\"triggerId\":\"Unique identifier for the trigger\"}},\"NewTrigger(bytes)\":{\"params\":{\"_triggerInfo\":\"Encoded TriggerInfo struct\"}},\"PrunedExpiredEnvelopes(uint256)\":{\"params\":{\"count\":\"The count of the pruned expired envelopes.\"}}},\"kind\":\"dev\",\"methods\":{\"envelopeExpirationQueueSize()\":{\"returns\":{\"_0\":\"The size of the envelope expiration queue.\"}},\"getLatestState()\":{\"returns\":{\"_0\":\"state The latest merkle state.\"}},\"getServiceManager()\":{\"returns\":{\"_0\":\"address The address of the service manager\"}},\"getStateAtBlock(uint256)\":{\"params\":{\"blockNumber\":\"The target block number\"},\"returns\":{\"state\":\"The merkle state at (or before) the specified block\"}},\"getStateAtIndex(uint256)\":{\"params\":{\"index\":\"The state index\"},\"returns\":{\"state\":\"The merkle state at the specified index\"}},\"getStateBlocks(uint256,uint256)\":{\"params\":{\"limit\":\"The number of blocks to return\",\"offset\":\"The offset to start from\"},\"returns\":{\"result_\":\"Array of block numbers with states\"}},\"getStateCount()\":{\"returns\":{\"count\":\"The number of states\"}},\"getStates(uint256,uint256)\":{\"params\":{\"limit\":\"The number of blocks to return\",\"offset\":\"The offset to start from\"},\"returns\":{\"result_\":\"Array of states\"}},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the data.\",\"signatureData\":\"The signature data.\"}},\"trigger()\":{\"returns\":{\"triggerId\":\"The ID of the trigger\"}},\"verifyMyProof(uint256,bytes32[])\":{\"params\":{\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyMyProofAtBlock(uint256,bytes32[],uint256)\":{\"params\":{\"blockNumber\":\"The maximum block number to consider\",\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)\":{\"params\":{\"proof\":\"The merkle proof\",\"stateIndex\":\"The state index to verify against\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyProof(address,uint256,bytes32[])\":{\"params\":{\"account\":\"The account to verify the proof for\",\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyProofAtBlock(address,uint256,bytes32[],uint256)\":{\"params\":{\"account\":\"The account to verify the proof for\",\"blockNumber\":\"The maximum block number to consider\",\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)\":{\"params\":{\"account\":\"The account to verify the proof for\",\"proof\":\"The merkle proof\",\"stateIndex\":\"The state index to verify against\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}}},\"stateVariables\":{\"blockToStateIndex\":{\"details\":\"Only one state per block is allowed\"},\"stateBlocks\":{\"details\":\"Used for efficient binary search of historical states\"}},\"title\":\"MerkleSnapshot - Merkle tree snapshotter that can be used by other contracts to verify merkle proofs and access history\",\"version\":1},\"userdoc\":{\"errors\":{\"EnvelopeAlreadySeen()\":[{\"notice\":\"The error for the envelope already seen.\"}],\"EnvelopeExpired()\":[{\"notice\":\"The error for the envelope expired.\"}]},\"events\":{\"MerklerTrigger(uint64)\":{\"notice\":\"Event emitted when a new trigger is created\"},\"NewTrigger(bytes)\":{\"notice\":\"Event emitted when a new trigger is created\"},\"PrunedExpiredEnvelopes(uint256)\":{\"notice\":\"The event for the pruned expired envelopes.\"}},\"kind\":\"user\",\"methods\":{\"ENVELOPE_EXPIRATION_TIME()\":{\"notice\":\"The expiration time for an envelope.\"},\"addHook(address)\":{\"notice\":\"Add a hook\"},\"blockToStateIndex(uint256)\":{\"notice\":\"Mapping from block number to state index for efficient lookups\"},\"envelopeExpirationQueue(uint256)\":{\"notice\":\"The eventIds in a queue, with start and end indexes tracked, to allow efficient iteration and pruning of expired envelopes.\"},\"envelopeExpirationQueueEnd()\":{\"notice\":\"The end index of the envelope expiration queue.\"},\"envelopeExpirationQueueSize()\":{\"notice\":\"Get the size of the envelope expiration queue.\"},\"envelopeExpirationQueueStart()\":{\"notice\":\"The start index of the envelope expiration queue.\"},\"envelopesSeen(bytes20)\":{\"notice\":\"The expiration time for each envelope we've seen.\"},\"getHooks()\":{\"notice\":\"List all hooks\"},\"getLatestState()\":{\"notice\":\"Get the latest merkle state.\"},\"getServiceManager()\":{\"notice\":\"Get the service manager address\"},\"getStateAtBlock(uint256)\":{\"notice\":\"Get the state at (or before) a specific block number\"},\"getStateAtIndex(uint256)\":{\"notice\":\"Get the state at a specific index\"},\"getStateBlocks(uint256,uint256)\":{\"notice\":\"Get paginated block numbers that have states\"},\"getStateCount()\":{\"notice\":\"Get the total number of states\"},\"getStates(uint256,uint256)\":{\"notice\":\"Get paginated states\"},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Handles a signed envelope\"},\"hookCount()\":{\"notice\":\"The number of hooks.\"},\"hookIndex(address)\":{\"notice\":\"Mapping from hook to hook index for efficient removal.\"},\"hooks(uint256)\":{\"notice\":\"Array of contracts to execute when the merkle state is updated.\"},\"lastCronTimestampSeen()\":{\"notice\":\"The last cron timestamp seen\"},\"nextHookIndex()\":{\"notice\":\"The next hook index to use. Start at 1 since 0 is the default value in the mappings above.\"},\"nextTriggerId()\":{\"notice\":\"The next trigger ID\"},\"removeHook(address)\":{\"notice\":\"Remove a hook\"},\"stateBlocks(uint256)\":{\"notice\":\"Array of block numbers where states were created (ascending)\"},\"states(uint256)\":{\"notice\":\"Historical merkle states, keyed by index\"},\"trigger()\":{\"notice\":\"Trigger the Merkler AVS\"},\"verifyMyProof(uint256,bytes32[])\":{\"notice\":\"Verify a merkle proof for the sender with the latest state\"},\"verifyMyProofAtBlock(uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof for the sender against the state at a specific block number\"},\"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof for the sender against the state at a specific index\"},\"verifyProof(address,uint256,bytes32[])\":{\"notice\":\"Verify a merkle proof for a given account with the latest state\"},\"verifyProofAtBlock(address,uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof against the state at a specific block number\"},\"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof against the state at a specific index\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/merkle/MerkleSnapshot.sol\":\"MerkleSnapshot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]},\"src/contracts/merkle/MerkleSnapshot.sol\":{\"keccak256\":\"0xab9cf5b1c688eb13af9ec5bb3177c976cee81336501afaf796391b56afe8611b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e681637be2c090daee5e877a340f8627fd092cfe22d9a918a3d0f5319b222c1c\",\"dweb:/ipfs/QmcErJ3ZhxoEgGPnEYVsZrt2WcpzEnKAZCVeeq6gC75fYW\"]},\"src/contracts/merkle/UniqueEnvelope.sol\":{\"keccak256\":\"0x4eff46f355d81294f6399dbb95bc00f63a059cf6fde4c6346c98b942391b8fa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990d599caf498b04428dda9a737ea61b3a5cb81e9757ef9075e8de62a0761bfa\",\"dweb:/ipfs/QmRa7WKvGFp1KahdmoHHV8TJNtttjXEX9krGfnJntxFZon\"]},\"src/interfaces/ITypes.sol\":{\"keccak256\":\"0xc3e91188c15a0a33910a88623963d6ddb53635e40aa01734115d604dc9c15fc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9cbf856fd64753794a8eda32a7a83e2649d6f0566c80cb62b1af8887a2e4375\",\"dweb:/ipfs/Qmb2iqJcicWeRE2efnST89gugKrTk8RMXgZv517XEd4QYW\"]},\"src/interfaces/merkle/IMerkleSnapshot.sol\":{\"keccak256\":\"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66\",\"dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7\"]},\"src/interfaces/merkle/IMerkleSnapshotHook.sol\":{\"keccak256\":\"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0\",\"dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS\"]},\"src/interfaces/merkle/IMerkler.sol\":{\"keccak256\":\"0xf0cb64da76ac0d1ba83f2e2010a84095b12bbf05754cce61718a5772e4c5e3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9894dee81928fd0c9468b29496cc1d77bb406a3ac1552368beda0bd5f1441854\",\"dweb:/ipfs/QmNW68PZYzrjCub2XXjAeWwEimUwsuxBEfAntkBUDtZphu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IWavsServiceManager","name":"serviceManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnvelopeAlreadySeen"},{"inputs":[],"type":"error","name":"EnvelopeExpired"},{"inputs":[],"type":"error","name":"HookAlreadyAdded"},{"inputs":[],"type":"error","name":"HookNotAdded"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"firstBlock","type":"uint256"}],"type":"error","name":"NoMerkleStateAtBlock"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"type":"error","name":"NoMerkleStateAtIndex"},{"inputs":[],"type":"error","name":"NoMerkleStates"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32","indexed":false},{"internalType":"string","name":"ipfsHashCid","type":"string","indexed":false},{"internalType":"uint256","name":"totalValue","type":"uint256","indexed":false}],"type":"event","name":"MerkleRootUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"triggerId","type":"uint64","indexed":false}],"type":"event","name":"MerklerTrigger","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_triggerInfo","type":"bytes","indexed":false}],"type":"event","name":"NewTrigger","anonymous":false},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256","indexed":false}],"type":"event","name":"PrunedExpiredEnvelopes","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ENVELOPE_EXPIRATION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addHook"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"blockToStateIndex","outputs":[{"internalType":"uint256","name":"stateIndex","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"envelopeExpirationQueue","outputs":[{"internalType":"bytes20","name":"eventId","type":"bytes20"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"envelopeExpirationQueueEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"envelopeExpirationQueueSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"envelopeExpirationQueueStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes20","name":"eventId","type":"bytes20"}],"stateMutability":"view","type":"function","name":"envelopesSeen","outputs":[{"internalType":"uint256","name":"expiresAt","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getHooks","outputs":[{"internalType":"contract IMerkleSnapshotHook[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestState","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStateAtBlock","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"state","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStateAtIndex","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"state","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStateBlocks","outputs":[{"internalType":"uint256[]","name":"result_","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateCount","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStates","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState[]","name":"result_","type":"tuple[]","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"handleSignedEnvelope"},{"inputs":[],"stateMutability":"view","type":"function","name":"hookCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}],"stateMutability":"view","type":"function","name":"hookIndex","outputs":[{"internalType":"uint256","name":"hookIndex","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"hookIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"hooks","outputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCronTimestampSeen","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextHookIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextTriggerId","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeHook"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stateBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"stateIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"states","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"trigger","outputs":[{"internalType":"uint64","name":"triggerId","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"verifyMyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyMyProofAtBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"stateIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyMyProofAtStateIndex","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyProofAtBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"stateIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyProofAtStateIndex","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"envelopeExpirationQueueSize()":{"returns":{"_0":"The size of the envelope expiration queue."}},"getLatestState()":{"returns":{"_0":"state The latest merkle state."}},"getServiceManager()":{"returns":{"_0":"address The address of the service manager"}},"getStateAtBlock(uint256)":{"params":{"blockNumber":"The target block number"},"returns":{"state":"The merkle state at (or before) the specified block"}},"getStateAtIndex(uint256)":{"params":{"index":"The state index"},"returns":{"state":"The merkle state at the specified index"}},"getStateBlocks(uint256,uint256)":{"params":{"limit":"The number of blocks to return","offset":"The offset to start from"},"returns":{"result_":"Array of block numbers with states"}},"getStateCount()":{"returns":{"count":"The number of states"}},"getStates(uint256,uint256)":{"params":{"limit":"The number of blocks to return","offset":"The offset to start from"},"returns":{"result_":"Array of states"}},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the data.","signatureData":"The signature data."}},"trigger()":{"returns":{"triggerId":"The ID of the trigger"}},"verifyMyProof(uint256,bytes32[])":{"params":{"proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyMyProofAtBlock(uint256,bytes32[],uint256)":{"params":{"blockNumber":"The maximum block number to consider","proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)":{"params":{"proof":"The merkle proof","stateIndex":"The state index to verify against","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyProof(address,uint256,bytes32[])":{"params":{"account":"The account to verify the proof for","proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyProofAtBlock(address,uint256,bytes32[],uint256)":{"params":{"account":"The account to verify the proof for","blockNumber":"The maximum block number to consider","proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)":{"params":{"account":"The account to verify the proof for","proof":"The merkle proof","stateIndex":"The state index to verify against","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}}},"version":1},"userdoc":{"kind":"user","methods":{"ENVELOPE_EXPIRATION_TIME()":{"notice":"The expiration time for an envelope."},"addHook(address)":{"notice":"Add a hook"},"blockToStateIndex(uint256)":{"notice":"Mapping from block number to state index for efficient lookups"},"envelopeExpirationQueue(uint256)":{"notice":"The eventIds in a queue, with start and end indexes tracked, to allow efficient iteration and pruning of expired envelopes."},"envelopeExpirationQueueEnd()":{"notice":"The end index of the envelope expiration queue."},"envelopeExpirationQueueSize()":{"notice":"Get the size of the envelope expiration queue."},"envelopeExpirationQueueStart()":{"notice":"The start index of the envelope expiration queue."},"envelopesSeen(bytes20)":{"notice":"The expiration time for each envelope we've seen."},"getHooks()":{"notice":"List all hooks"},"getLatestState()":{"notice":"Get the latest merkle state."},"getServiceManager()":{"notice":"Get the service manager address"},"getStateAtBlock(uint256)":{"notice":"Get the state at (or before) a specific block number"},"getStateAtIndex(uint256)":{"notice":"Get the state at a specific index"},"getStateBlocks(uint256,uint256)":{"notice":"Get paginated block numbers that have states"},"getStateCount()":{"notice":"Get the total number of states"},"getStates(uint256,uint256)":{"notice":"Get paginated states"},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Handles a signed envelope"},"hookCount()":{"notice":"The number of hooks."},"hookIndex(address)":{"notice":"Mapping from hook to hook index for efficient removal."},"hooks(uint256)":{"notice":"Array of contracts to execute when the merkle state is updated."},"lastCronTimestampSeen()":{"notice":"The last cron timestamp seen"},"nextHookIndex()":{"notice":"The next hook index to use. Start at 1 since 0 is the default value in the mappings above."},"nextTriggerId()":{"notice":"The next trigger ID"},"removeHook(address)":{"notice":"Remove a hook"},"stateBlocks(uint256)":{"notice":"Array of block numbers where states were created (ascending)"},"states(uint256)":{"notice":"Historical merkle states, keyed by index"},"trigger()":{"notice":"Trigger the Merkler AVS"},"verifyMyProof(uint256,bytes32[])":{"notice":"Verify a merkle proof for the sender with the latest state"},"verifyMyProofAtBlock(uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof for the sender against the state at a specific block number"},"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof for the sender against the state at a specific index"},"verifyProof(address,uint256,bytes32[])":{"notice":"Verify a merkle proof for a given account with the latest state"},"verifyProofAtBlock(address,uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof against the state at a specific block number"},"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof against the state at a specific index"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/merkle/MerkleSnapshot.sol":"MerkleSnapshot"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134","urls":["bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6","dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"},"src/contracts/merkle/MerkleSnapshot.sol":{"keccak256":"0xab9cf5b1c688eb13af9ec5bb3177c976cee81336501afaf796391b56afe8611b","urls":["bzz-raw://e681637be2c090daee5e877a340f8627fd092cfe22d9a918a3d0f5319b222c1c","dweb:/ipfs/QmcErJ3ZhxoEgGPnEYVsZrt2WcpzEnKAZCVeeq6gC75fYW"],"license":"MIT"},"src/contracts/merkle/UniqueEnvelope.sol":{"keccak256":"0x4eff46f355d81294f6399dbb95bc00f63a059cf6fde4c6346c98b942391b8fa9","urls":["bzz-raw://990d599caf498b04428dda9a737ea61b3a5cb81e9757ef9075e8de62a0761bfa","dweb:/ipfs/QmRa7WKvGFp1KahdmoHHV8TJNtttjXEX9krGfnJntxFZon"],"license":"MIT"},"src/interfaces/ITypes.sol":{"keccak256":"0xc3e91188c15a0a33910a88623963d6ddb53635e40aa01734115d604dc9c15fc4","urls":["bzz-raw://a9cbf856fd64753794a8eda32a7a83e2649d6f0566c80cb62b1af8887a2e4375","dweb:/ipfs/Qmb2iqJcicWeRE2efnST89gugKrTk8RMXgZv517XEd4QYW"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshot.sol":{"keccak256":"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0","urls":["bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66","dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshotHook.sol":{"keccak256":"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c","urls":["bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0","dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS"],"license":"MIT"},"src/interfaces/merkle/IMerkler.sol":{"keccak256":"0xf0cb64da76ac0d1ba83f2e2010a84095b12bbf05754cce61718a5772e4c5e3ad","urls":["bzz-raw://9894dee81928fd0c9468b29496cc1d77bb406a3ac1552368beda0bd5f1441854","dweb:/ipfs/QmNW68PZYzrjCub2XXjAeWwEimUwsuxBEfAntkBUDtZphu"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"serviceManager","type":"address","internalType":"contract IWavsServiceManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"ENVELOPE_EXPIRATION_TIME","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addHook","inputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blockToStateIndex","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueue","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"eventId","type":"bytes20","internalType":"bytes20"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueueEnd","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueueSize","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopeExpirationQueueStart","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envelopesSeen","inputs":[{"name":"eventId","type":"bytes20","internalType":"bytes20"}],"outputs":[{"name":"expiresAt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getHooks","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IMerkleSnapshotHook[]"}],"stateMutability":"view"},{"type":"function","name":"getLatestState","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getStateAtBlock","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"state","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getStateAtIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"state","type":"tuple","internalType":"struct IMerkleSnapshot.MerkleState","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getStateBlocks","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result_","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getStateCount","inputs":[],"outputs":[{"name":"count","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStates","inputs":[{"name":"offset","type":"uint256","internalType":"uint256"},{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result_","type":"tuple[]","internalType":"struct IMerkleSnapshot.MerkleState[]","components":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"handleSignedEnvelope","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hookCount","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"hookIndex","inputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"outputs":[{"name":"hookIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"hooks","inputs":[{"name":"hookIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"stateMutability":"view"},{"type":"function","name":"lastCronTimestampSeen","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nextHookIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"nextTriggerId","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"removeHook","inputs":[{"name":"hook","type":"address","internalType":"contract IMerkleSnapshotHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stateBlocks","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"states","inputs":[{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","internalType":"string"},{"name":"totalValue","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"trigger","inputs":[],"outputs":[{"name":"triggerId","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"verifyMyProof","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyMyProofAtBlock","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyMyProofAtStateIndex","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyProof","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyProofAtBlock","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyProofAtStateIndex","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"stateIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"MerkleRootUpdated","inputs":[{"name":"root","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"ipfsHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"ipfsHashCid","type":"string","indexed":false,"internalType":"string"},{"name":"totalValue","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MerklerTrigger","inputs":[{"name":"triggerId","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"NewTrigger","inputs":[{"name":"_triggerInfo","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"PrunedExpiredEnvelopes","inputs":[{"name":"count","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"EnvelopeAlreadySeen","inputs":[]},{"type":"error","name":"EnvelopeExpired","inputs":[]},{"type":"error","name":"HookAlreadyAdded","inputs":[]},{"type":"error","name":"HookNotAdded","inputs":[]},{"type":"error","name":"NoMerkleStateAtBlock","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"firstBlock","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoMerkleStateAtIndex","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"total","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoMerkleStates","inputs":[]}],"bytecode":{"object":"0x608034609157601f611bf738819003918201601f19168301916001600160401b03831184841017609557808492602094604052833981010312609157516001600160a01b038116908190036091575f600281905560035560048054600b80546001600160401b03191660011790556001600160e01b031916909117600160a01b179055604051611b4d90816100aa8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908163017a910514610b9457508063025d26be14610b5957806307971de714610b335780630d98919214610a5957806329b9fbf914610a225780632d904eb814610a0757806335951f7f146109eb57806342227fa4146109c257806344cb266f1461099d5780634dda0b4314610975578063550004e5146109505780635cd2525e146108435780635e0f9e371461081a578063658f09c5146107f85780636c819c4d146107bc57806376886d841461068e5780637b4e04e8146105a05780637fec8d3814610522578063864c17d7146104f057806396ee965b146104c6578063a52e9526146104a4578063a828a40a1461047b578063b2fd74c91461045e578063b42bc9fe1461043f578063c267d5b514610419578063c8411d1a146103e2578063c97b7f80146103c5578063daa05015146103a8578063df92c13714610370578063e5adf3ab1461029a578063f3af613414610256578063f616ec85146101ed5763f969ff3314610187575f80fd5b346101e95760403660031901126101e9576004356001600160401b0381116101e957606060031982360301126101e957602435906001600160401b0382116101e957606060031983360301126101e9576101e791600401906004016111aa565b005b5f80fd5b346101e95760603660031901126101e9576004356001600160a01b03811681036101e9576044356001600160401b0381116101e95760209161023661024c923690600401610dbf565b91602435906040610245610f6e565b0151611979565b6040519015158152f35b346101e95760403660031901126101e9576024356001600160401b0381116101e95761024c61028b6020923690600401610dbf565b90600435336040610245610f6e565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f20541561036157805f52600a60205260405f20545f52600960205260405f2080546001600160601b0360a01b1690555f52600a6020525f6040812055600b546001600160401b038160401c16801561034d576fffffffffffffffff0000000000000000199091165f1990910160401b67ffffffffffffffff60401b1617600b55005b634e487b7160e01b5f52601160045260245ffd5b633cea835f60e11b5f5260045ffd5b346101e95760203660031901126101e9576004356007548110156101e957610399602091610e70565b90549060031b1c604051908152f35b346101e9575f3660031901126101e9576020600754604051908152f35b346101e9575f3660031901126101e9576020600254604051908152f35b346101e95760203660031901126101e95761041561040160043561108d565b604051918291602083526020830190610d77565b0390f35b346101e9575f3660031901126101e95760206001600160401b0360055416604051908152f35b346101e95760203660031901126101e957610415610401600435610fdb565b346101e9575f3660031901126101e9576020600354604051908152f35b346101e9575f3660031901126101e957602061049c60035460025490610ea9565b604051908152f35b346101e957602061024c6104b736610e39565b6040610245949294339261108d565b346101e95760203660031901126101e9576004355f526008602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f526009602052602060018060a01b0360405f205416604051908152f35b346101e9575f3660031901126101e95760206004546001600160401b038160a01c16906001600160401b0360a01b61055983610fbe565b60a01b16906001600160401b0360a01b1916176004557f26c7819cd977f19b3fcfc03aa705e25e2aefa99133ba83b6eaf04841b669297c82604051838152a1604051908152f35b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f205461067f576001600160401b03600b54165f52600960205260405f20816001600160601b0360a01b8254161790556001600160401b03600b5416905f52600a60205260405f2055600b546001600160401b0361062f818316610fbe565b1667ffffffffffffffff60401b61065e67ffffffffffffffff198416831760401c6001600160401b0316610fbe565b60401b16916fffffffffffffffffffffffffffffffff19161717600b555f80f35b6323f8ed6f60e11b5f5260045ffd5b346101e9576106a761069f36610d61565b819291610e9c565b6007548082116107b4575b506106bd8282610ea9565b916106c783610eb6565b926106d56040519485610d02565b8084526106e4601f1991610eb6565b015f5b81811061079d575050805b82811061076057836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061073157505050500390f35b919360019193955060206107508192603f198a82030186528851610d77565b9601920192018594939192610722565b806001915f52600660205261079660405f2061078561077f8685610ea9565b91610f12565b61078f8289610ecd565b5286610ecd565b50016106f2565b6020906107a8610ee1565b828288010152016106e7565b9050826106b2565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e9575f52600a602052602060405f2054604051908152f35b346101e957602061024c61080b36610e39565b60406102459492943392610fdb565b346101e9575f3660031901126101e95760206001600160401b03600b5460401c16604051908152f35b346101e9575f3660031901126101e957600b546001600160401b038160401c169061088661087083610eb6565b9261087e6040519485610d02565b808452610eb6565b602083019190601f19013683376001600160401b031660015f5b8282106108f4578385604051918291602083019060208452518091526040830191905f5b8181106108d2575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108c4565b5f828152600960205260409020546001600160a01b031615610947575f8281526009602052604090205460019161093e916001600160a01b03166109388289610ecd565b52610fb0565b915b01906108a0565b90600190610940565b346101e957602061024c604061024561096836610def565b9591949095939293610fdb565b346101e9575f3660031901126101e9576004546040516001600160a01b039091168152602090f35b346101e957602061024c60406102456109b536610def565b959194909593929361108d565b346101e9575f3660031901126101e95760206001600160401b0360045460a01c16604051908152f35b346101e9575f3660031901126101e957602060405161012c8152f35b346101e9575f3660031901126101e957610415610401610f6e565b346101e95760203660031901126101e9576004355f526001602052602060405f205460601b604051906001600160601b0319168152f35b346101e957610a6a61069f36610d61565b90600754808311610b2b575b50610a818183610ea9565b91610aa4610a8e84610eb6565b93610a9c6040519586610d02565b808552610eb6565b602084019290601f1901368437805b828110610afe578385604051918291602083019060208452518091526040830191905f5b818110610ae5575050500390f35b8251845285945060209384019390920191600101610ad7565b80610b0a600192610e70565b90549060031b1c610b24610b1e8584610ea9565b88610ecd565b5201610ab3565b915082610a76565b346101e9575f3660031901126101e95760206001600160401b03600b5416604051908152f35b346101e95760203660031901126101e9576004356001600160601b031981168091036101e9575f525f602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f52600660205260405f20805490610c106001820154936002830154926005600382015491610be584610bde8160048501610c52565b0385610d02565b015493604051968796875260208701526040860152606085015260c0608085015260c0840190610d23565b9060a08301520390f35b90600182811c92168015610c48575b6020831014610c3457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610c29565b5f9291815491610c6183610c1a565b8083529260018116908115610cb65750600114610c7d57505050565b5f9081526020812093945091925b838310610c9c575060209250010190565b600181602092949394548385870101520191019190610c8b565b915050602093945060ff929192191683830152151560051b010190565b60c081019081106001600160401b03821117610cee57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117610cee57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b35906bffffffffffffffffffffffff19821682036101e957565b60409060031901126101e9576004359060243590565b908151815260208201516020820152604082015160408201526060820151606082015260a080610db6608085015160c0608086015260c0850190610d23565b93015191015290565b9181601f840112156101e9578235916001600160401b0383116101e9576020808501948460051b0101116101e957565b60806003198201126101e9576004356001600160a01b03811681036101e9579160243591604435906001600160401b0382116101e957610e3191600401610dbf565b909160643590565b9060606003198301126101e95760043591602435906001600160401b0382116101e957610e6891600401610dbf565b909160443590565b600754811015610e885760075f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9190820180921161034d57565b9190820391821161034d57565b6001600160401b038111610cee5760051b60200190565b8051821015610e885760209160051b010190565b60405190610eee82610cd3565b5f60a083828152826020820152826040820152826060820152606060808201520152565b90604051610f1f81610cd3565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152604051610f6281610f5b8160048601610c52565b0382610d02565b60808501520154910152565b610f76610ee1565b506007548015610fa1575f19810190811161034d575f526006602052610f9e60405f20610f12565b90565b633b02b60f60e11b5f5260045ffd5b5f19811461034d5760010190565b6001600160401b03166001600160401b03811461034d5760010190565b610fe3610ee1565b5060075415610fa157805f52600860205260405f20548161100382610e70565b90549060031b1c14611078575061101981611a0b565b91901561103457505f526006602052610f9e60405f20610f12565b60075415610e88577fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688546347329a5b60e01b5f908152600492909252602452604490fd5b90505f526006602052610f9e60405f20610f12565b611095610ee1565b50600754808210156110b557505f526006602052610f9e60405f20610f12565b9063254df73b60e11b5f5260045260245260445ffd5b35906001600160a01b0319821682036101e957565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e95781360383136101e957565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e9578160051b360383136101e957565b9291926001600160401b038211610cee576040519161118e601f8201601f191660200184610d02565b8294818452818301116101e9578281602093845f960137010152565b6004545f936001600160a01b0390911692833b156101e9576040516366b8ac4f60e11b8152604060048201526001600160601b03196111e885610d47565b16604482015260208401946001600160a01b0319611205876110cb565b166064830152604085019261122e61121d85886110e0565b6060608487015260a4860191611111565b83810360031901602485015291606083019161124a8180611131565b606086529384905260808501935f905b808210611943575050506112716020820182611131565b8585036020870152808552602085019460208260051b82010195835f925b84841061190b575050505050506040013563ffffffff81168091036101e957848093819260405f97015203915afa8015611900576118eb575b503591803603601e1981018412156118e757838201938435916001600160401b03831161168e57602086019383360385136118e357602087850181810196909591898703126118be5780356001600160401b0381116118c25789019560c090879003126118be576040519861133c8a610cd3565b60208701358a5260208a01956040880135875260408b019b60608901358d5260608c019960808a01358b5260a08a01356001600160401b0381116118df576020908b010181601f820112156118df5760609181602061139d93359101611165565b9c608081019d8e5260c060a082019b01358b525197126118db5760405195606087018781106001600160401b038211176118c657916113eb6113f2926001600160401b039594604052610d47565b88526110cb565b6020870152116118c257601f36910112156118be57611412913691611165565b6040820152428211156118af576001600160601b031981511689528860205260408920546118a05751906001600160601b03198216895288602052604089205560035488526001602052604088209060601c6001600160601b0360a01b825416179055611480600354610fb0565b9081600355518061181e5750508451938251948151835160075497881580156117e6575b156117d25788438c5260086020528060408d2055680100000000000000008110156117be578060016114d99201600755610e70565b81549060031b9043821b915f19901b19161790555b604051936114fb85610cd3565b4385526020850142815260408601918252606086019283526080860194855260a086019384528a8d52600660205260408d20955186555160018601555160028501555160038401556004830191519182516001600160401b0381116117be576115648254610c1a565b601f8111611774575b5060208c601f831160011461170c579060059583611701575b50508160011b915f199060031b1c19161790555b5191015560015b6001600160401b03600b54168110156116a957808852600960205260408820546001600160a01b0316156116a157808852600960209081526040808a2054888b526006909252892089916001600160a01b0316803b1561169d5782918291604051809481809463bbdce96960e01b8252602060048301528054602483015260018101546044830152600281015460648301526003810154608483015260c060a4830152600561165660e4840160048401610c52565b91015460c483015203925af1801561169257611679575b50506001905b016115a1565b8161168391610d02565b61168e57875f61166d565b8780fd5b6040513d84823e3d90fd5b8280fd5b600190611673565b509194909295507f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa769350519351905191516116f66040519384938452606060208501526060840190610d23565b9060408301520390a2565b015190505f80611586565b91929394601f198416858452828420935b81811061175c575091600193918560059897969410611744575b505050811b01905561159a565b01515f1960f88460031b161c191690555f8080611737565b9293602060018192878601518155019501930161171d565b828d5260208d20601f830160051c810191602084106117b4575b601f0160051c01908d905b8281106117a757505061156d565b6001918155018d90611799565b909150819061178e565b634e487b7160e01b8c52604160045260248cfd5b438b52600860205260408b205498506114ee565b505f19890189811161180a576117fb90610e70565b4391549060031b1c14156114a4565b634e487b7160e01b8c52601160045260248cfd5b9396945094505050611834819360025490610ea9565b809111611898575b50905b808210611875575b5060207f9ab3d70475df098666ddecfedc7d84969049ae8e9f088b5657bf0db3900324c291604051908152a1565b9061187e611aa7565b156118925761188c90610fb0565b9061183f565b90611847565b91505f61183c565b633a181deb60e11b8952600489fd5b63fd427c0960e01b8952600489fd5b8a80fd5b8b80fd5b50634e487b7160e01b8f52604160045260248ffd5b8d80fd5b8f80fd5b8880fd5b8580fd5b6118f89195505f90610d02565b5f935f6112c8565b6040513d5f823e3d90fd5b909192939497602080611933600193601f1986820301885261192d8d886110e0565b90611111565b9a0194019401929493919061128f565b91949091908535906001600160a01b03821682036101e9576001600160a01b03909116815260209081019501916001019061125a565b929160405190602082019260018060a01b031683526040820152604081526119a2606082610d02565b51902060405160208101918252602081526119be604082610d02565b519020915f925b84841015611a03578360051b830135908181105f146119f2575f52602052600160405f205b9301926119c5565b905f52602052600160405f206119ea565b149392505050565b6007545f9291839182915b818310611a24575050509190565b9092919394611a338486610e9c565b60011c92611a4084610e70565b90549060031b1c958387145f14611a6a575050505050505f52600860205260405f20549060019190565b83879495969897105f14611a9c575050505f52600860205260405f20549360019283810180911161034d575b91611a16565b919650939150611a96565b6002545f5260016020526001600160601b031960405f205460601b16805f525f60205260405f20544210611b12575f525f6020525f60408120556002545f52600160205260405f2080546001600160601b0360a01b169055611b0a600254610fb0565b600255600190565b505f9056fea2646970667358221220ca45ac4d03b5e0b6136e0a99c7eb00282a274df4d46f99eebadb3dde371b130d64736f6c634300081b0033","sourceMap":"873:14317:94:-:0;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;-1:-1:-1;1247:1:95;873:14317:94;;;1363:1:95;873:14317:94;1166:1;873:14317;;2214:1;873:14317;;-1:-1:-1;;;;;;873:14317:94;1166:1;873:14317;;;-1:-1:-1;;;;;;873:14317:94;;;;-1:-1:-1;;;873:14317:94;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;;;;-1:-1:-1;873:14317:94;;;;;-1:-1:-1;873:14317:94","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908163017a910514610b9457508063025d26be14610b5957806307971de714610b335780630d98919214610a5957806329b9fbf914610a225780632d904eb814610a0757806335951f7f146109eb57806342227fa4146109c257806344cb266f1461099d5780634dda0b4314610975578063550004e5146109505780635cd2525e146108435780635e0f9e371461081a578063658f09c5146107f85780636c819c4d146107bc57806376886d841461068e5780637b4e04e8146105a05780637fec8d3814610522578063864c17d7146104f057806396ee965b146104c6578063a52e9526146104a4578063a828a40a1461047b578063b2fd74c91461045e578063b42bc9fe1461043f578063c267d5b514610419578063c8411d1a146103e2578063c97b7f80146103c5578063daa05015146103a8578063df92c13714610370578063e5adf3ab1461029a578063f3af613414610256578063f616ec85146101ed5763f969ff3314610187575f80fd5b346101e95760403660031901126101e9576004356001600160401b0381116101e957606060031982360301126101e957602435906001600160401b0382116101e957606060031983360301126101e9576101e791600401906004016111aa565b005b5f80fd5b346101e95760603660031901126101e9576004356001600160a01b03811681036101e9576044356001600160401b0381116101e95760209161023661024c923690600401610dbf565b91602435906040610245610f6e565b0151611979565b6040519015158152f35b346101e95760403660031901126101e9576024356001600160401b0381116101e95761024c61028b6020923690600401610dbf565b90600435336040610245610f6e565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f20541561036157805f52600a60205260405f20545f52600960205260405f2080546001600160601b0360a01b1690555f52600a6020525f6040812055600b546001600160401b038160401c16801561034d576fffffffffffffffff0000000000000000199091165f1990910160401b67ffffffffffffffff60401b1617600b55005b634e487b7160e01b5f52601160045260245ffd5b633cea835f60e11b5f5260045ffd5b346101e95760203660031901126101e9576004356007548110156101e957610399602091610e70565b90549060031b1c604051908152f35b346101e9575f3660031901126101e9576020600754604051908152f35b346101e9575f3660031901126101e9576020600254604051908152f35b346101e95760203660031901126101e95761041561040160043561108d565b604051918291602083526020830190610d77565b0390f35b346101e9575f3660031901126101e95760206001600160401b0360055416604051908152f35b346101e95760203660031901126101e957610415610401600435610fdb565b346101e9575f3660031901126101e9576020600354604051908152f35b346101e9575f3660031901126101e957602061049c60035460025490610ea9565b604051908152f35b346101e957602061024c6104b736610e39565b6040610245949294339261108d565b346101e95760203660031901126101e9576004355f526008602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f526009602052602060018060a01b0360405f205416604051908152f35b346101e9575f3660031901126101e95760206004546001600160401b038160a01c16906001600160401b0360a01b61055983610fbe565b60a01b16906001600160401b0360a01b1916176004557f26c7819cd977f19b3fcfc03aa705e25e2aefa99133ba83b6eaf04841b669297c82604051838152a1604051908152f35b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e957805f52600a60205260405f205461067f576001600160401b03600b54165f52600960205260405f20816001600160601b0360a01b8254161790556001600160401b03600b5416905f52600a60205260405f2055600b546001600160401b0361062f818316610fbe565b1667ffffffffffffffff60401b61065e67ffffffffffffffff198416831760401c6001600160401b0316610fbe565b60401b16916fffffffffffffffffffffffffffffffff19161717600b555f80f35b6323f8ed6f60e11b5f5260045ffd5b346101e9576106a761069f36610d61565b819291610e9c565b6007548082116107b4575b506106bd8282610ea9565b916106c783610eb6565b926106d56040519485610d02565b8084526106e4601f1991610eb6565b015f5b81811061079d575050805b82811061076057836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061073157505050500390f35b919360019193955060206107508192603f198a82030186528851610d77565b9601920192018594939192610722565b806001915f52600660205261079660405f2061078561077f8685610ea9565b91610f12565b61078f8289610ecd565b5286610ecd565b50016106f2565b6020906107a8610ee1565b828288010152016106e7565b9050826106b2565b346101e95760203660031901126101e9576004356001600160a01b038116908190036101e9575f52600a602052602060405f2054604051908152f35b346101e957602061024c61080b36610e39565b60406102459492943392610fdb565b346101e9575f3660031901126101e95760206001600160401b03600b5460401c16604051908152f35b346101e9575f3660031901126101e957600b546001600160401b038160401c169061088661087083610eb6565b9261087e6040519485610d02565b808452610eb6565b602083019190601f19013683376001600160401b031660015f5b8282106108f4578385604051918291602083019060208452518091526040830191905f5b8181106108d2575050500390f35b82516001600160a01b03168452859450602093840193909201916001016108c4565b5f828152600960205260409020546001600160a01b031615610947575f8281526009602052604090205460019161093e916001600160a01b03166109388289610ecd565b52610fb0565b915b01906108a0565b90600190610940565b346101e957602061024c604061024561096836610def565b9591949095939293610fdb565b346101e9575f3660031901126101e9576004546040516001600160a01b039091168152602090f35b346101e957602061024c60406102456109b536610def565b959194909593929361108d565b346101e9575f3660031901126101e95760206001600160401b0360045460a01c16604051908152f35b346101e9575f3660031901126101e957602060405161012c8152f35b346101e9575f3660031901126101e957610415610401610f6e565b346101e95760203660031901126101e9576004355f526001602052602060405f205460601b604051906001600160601b0319168152f35b346101e957610a6a61069f36610d61565b90600754808311610b2b575b50610a818183610ea9565b91610aa4610a8e84610eb6565b93610a9c6040519586610d02565b808552610eb6565b602084019290601f1901368437805b828110610afe578385604051918291602083019060208452518091526040830191905f5b818110610ae5575050500390f35b8251845285945060209384019390920191600101610ad7565b80610b0a600192610e70565b90549060031b1c610b24610b1e8584610ea9565b88610ecd565b5201610ab3565b915082610a76565b346101e9575f3660031901126101e95760206001600160401b03600b5416604051908152f35b346101e95760203660031901126101e9576004356001600160601b031981168091036101e9575f525f602052602060405f2054604051908152f35b346101e95760203660031901126101e9576004355f52600660205260405f20805490610c106001820154936002830154926005600382015491610be584610bde8160048501610c52565b0385610d02565b015493604051968796875260208701526040860152606085015260c0608085015260c0840190610d23565b9060a08301520390f35b90600182811c92168015610c48575b6020831014610c3457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610c29565b5f9291815491610c6183610c1a565b8083529260018116908115610cb65750600114610c7d57505050565b5f9081526020812093945091925b838310610c9c575060209250010190565b600181602092949394548385870101520191019190610c8b565b915050602093945060ff929192191683830152151560051b010190565b60c081019081106001600160401b03821117610cee57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117610cee57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b35906bffffffffffffffffffffffff19821682036101e957565b60409060031901126101e9576004359060243590565b908151815260208201516020820152604082015160408201526060820151606082015260a080610db6608085015160c0608086015260c0850190610d23565b93015191015290565b9181601f840112156101e9578235916001600160401b0383116101e9576020808501948460051b0101116101e957565b60806003198201126101e9576004356001600160a01b03811681036101e9579160243591604435906001600160401b0382116101e957610e3191600401610dbf565b909160643590565b9060606003198301126101e95760043591602435906001600160401b0382116101e957610e6891600401610dbf565b909160443590565b600754811015610e885760075f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9190820180921161034d57565b9190820391821161034d57565b6001600160401b038111610cee5760051b60200190565b8051821015610e885760209160051b010190565b60405190610eee82610cd3565b5f60a083828152826020820152826040820152826060820152606060808201520152565b90604051610f1f81610cd3565b60a06005829480548452600181015460208501526002810154604085015260038101546060850152604051610f6281610f5b8160048601610c52565b0382610d02565b60808501520154910152565b610f76610ee1565b506007548015610fa1575f19810190811161034d575f526006602052610f9e60405f20610f12565b90565b633b02b60f60e11b5f5260045ffd5b5f19811461034d5760010190565b6001600160401b03166001600160401b03811461034d5760010190565b610fe3610ee1565b5060075415610fa157805f52600860205260405f20548161100382610e70565b90549060031b1c14611078575061101981611a0b565b91901561103457505f526006602052610f9e60405f20610f12565b60075415610e88577fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688546347329a5b60e01b5f908152600492909252602452604490fd5b90505f526006602052610f9e60405f20610f12565b611095610ee1565b50600754808210156110b557505f526006602052610f9e60405f20610f12565b9063254df73b60e11b5f5260045260245260445ffd5b35906001600160a01b0319821682036101e957565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e95781360383136101e957565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156101e95701602081359101916001600160401b0382116101e9578160051b360383136101e957565b9291926001600160401b038211610cee576040519161118e601f8201601f191660200184610d02565b8294818452818301116101e9578281602093845f960137010152565b6004545f936001600160a01b0390911692833b156101e9576040516366b8ac4f60e11b8152604060048201526001600160601b03196111e885610d47565b16604482015260208401946001600160a01b0319611205876110cb565b166064830152604085019261122e61121d85886110e0565b6060608487015260a4860191611111565b83810360031901602485015291606083019161124a8180611131565b606086529384905260808501935f905b808210611943575050506112716020820182611131565b8585036020870152808552602085019460208260051b82010195835f925b84841061190b575050505050506040013563ffffffff81168091036101e957848093819260405f97015203915afa8015611900576118eb575b503591803603601e1981018412156118e757838201938435916001600160401b03831161168e57602086019383360385136118e357602087850181810196909591898703126118be5780356001600160401b0381116118c25789019560c090879003126118be576040519861133c8a610cd3565b60208701358a5260208a01956040880135875260408b019b60608901358d5260608c019960808a01358b5260a08a01356001600160401b0381116118df576020908b010181601f820112156118df5760609181602061139d93359101611165565b9c608081019d8e5260c060a082019b01358b525197126118db5760405195606087018781106001600160401b038211176118c657916113eb6113f2926001600160401b039594604052610d47565b88526110cb565b6020870152116118c257601f36910112156118be57611412913691611165565b6040820152428211156118af576001600160601b031981511689528860205260408920546118a05751906001600160601b03198216895288602052604089205560035488526001602052604088209060601c6001600160601b0360a01b825416179055611480600354610fb0565b9081600355518061181e5750508451938251948151835160075497881580156117e6575b156117d25788438c5260086020528060408d2055680100000000000000008110156117be578060016114d99201600755610e70565b81549060031b9043821b915f19901b19161790555b604051936114fb85610cd3565b4385526020850142815260408601918252606086019283526080860194855260a086019384528a8d52600660205260408d20955186555160018601555160028501555160038401556004830191519182516001600160401b0381116117be576115648254610c1a565b601f8111611774575b5060208c601f831160011461170c579060059583611701575b50508160011b915f199060031b1c19161790555b5191015560015b6001600160401b03600b54168110156116a957808852600960205260408820546001600160a01b0316156116a157808852600960209081526040808a2054888b526006909252892089916001600160a01b0316803b1561169d5782918291604051809481809463bbdce96960e01b8252602060048301528054602483015260018101546044830152600281015460648301526003810154608483015260c060a4830152600561165660e4840160048401610c52565b91015460c483015203925af1801561169257611679575b50506001905b016115a1565b8161168391610d02565b61168e57875f61166d565b8780fd5b6040513d84823e3d90fd5b8280fd5b600190611673565b509194909295507f60469a1323c9c22c5b6bde126cfa19042e701ef43149c572808ee3969da7aa769350519351905191516116f66040519384938452606060208501526060840190610d23565b9060408301520390a2565b015190505f80611586565b91929394601f198416858452828420935b81811061175c575091600193918560059897969410611744575b505050811b01905561159a565b01515f1960f88460031b161c191690555f8080611737565b9293602060018192878601518155019501930161171d565b828d5260208d20601f830160051c810191602084106117b4575b601f0160051c01908d905b8281106117a757505061156d565b6001918155018d90611799565b909150819061178e565b634e487b7160e01b8c52604160045260248cfd5b438b52600860205260408b205498506114ee565b505f19890189811161180a576117fb90610e70565b4391549060031b1c14156114a4565b634e487b7160e01b8c52601160045260248cfd5b9396945094505050611834819360025490610ea9565b809111611898575b50905b808210611875575b5060207f9ab3d70475df098666ddecfedc7d84969049ae8e9f088b5657bf0db3900324c291604051908152a1565b9061187e611aa7565b156118925761188c90610fb0565b9061183f565b90611847565b91505f61183c565b633a181deb60e11b8952600489fd5b63fd427c0960e01b8952600489fd5b8a80fd5b8b80fd5b50634e487b7160e01b8f52604160045260248ffd5b8d80fd5b8f80fd5b8880fd5b8580fd5b6118f89195505f90610d02565b5f935f6112c8565b6040513d5f823e3d90fd5b909192939497602080611933600193601f1986820301885261192d8d886110e0565b90611111565b9a0194019401929493919061128f565b91949091908535906001600160a01b03821682036101e9576001600160a01b03909116815260209081019501916001019061125a565b929160405190602082019260018060a01b031683526040820152604081526119a2606082610d02565b51902060405160208101918252602081526119be604082610d02565b519020915f925b84841015611a03578360051b830135908181105f146119f2575f52602052600160405f205b9301926119c5565b905f52602052600160405f206119ea565b149392505050565b6007545f9291839182915b818310611a24575050509190565b9092919394611a338486610e9c565b60011c92611a4084610e70565b90549060031b1c958387145f14611a6a575050505050505f52600860205260405f20549060019190565b83879495969897105f14611a9c575050505f52600860205260405f20549360019283810180911161034d575b91611a16565b919650939150611a96565b6002545f5260016020526001600160601b031960405f205460601b16805f525f60205260405f20544210611b12575f525f6020525f60408120556002545f52600160205260405f2080546001600160601b0360a01b169055611b0a600254610fb0565b600255600190565b505f9056fea2646970667358221220ca45ac4d03b5e0b6136e0a99c7eb00282a274df4d46f99eebadb3dde371b130d64736f6c634300081b0033","sourceMap":"873:14317:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;5306:58;873:14317;;;;;;:::i;:::-;;;;5319:16;873:14317;5319:16;;:::i;:::-;:21;873:14317;5306:58;:::i;:::-;873:14317;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;5306:58;873:14317;;;;;;;;:::i;:::-;;;;5722:10;873:14317;5319:16;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;13053:9;873:14317;;;;;;13053:20;13049:72;;873:14317;;;13053:9;873:14317;;;;;;;;13138:5;873:14317;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;13053:9;873:14317;;;;;;;13202:11;873:14317;-1:-1:-1;;;;;873:14317:94;;;;;;;;-1:-1:-1;;873:14317:94;;;-1:-1:-1;;873:14317:94;;;;;-1:-1:-1;;;873:14317:94;;13202:11;873:14317;;;;;;;;;;;;;;13049:72;13096:14;;;873:14317;13096:14;873:14317;;13096:14;873:14317;;;;;;-1:-1:-1;;873:14317:94;;;;;;1531:28;873:14317;1531:28;;;;;;873:14317;1531:28;;:::i;:::-;873:14317;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;11154:11;873:14317;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;1201:47:95;873:14317:94;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;-1:-1:-1;;;;;1219:35:94;873:14317;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:94;;;;;1319:45:95;873:14317:94;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;4619:57:95;:26;873:14317:94;4648:28:95;873:14317:94;4619:57:95;;:::i;:::-;873:14317:94;;;;;;;;;;;7514:47;873:14317;;;:::i;:::-;;7470:27;8047:10;;;;7470:27;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;1694:75;873:14317;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;1856:67;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;-1:-1:-1;;;;;873:14317:94;;2601:15;;;:::i;:::-;873:14317;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;2667:25;873:14317;;;;;;2667:25;873:14317;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;12745:9;873:14317;;;;;;12741:76;;-1:-1:-1;;;;;12833:13:94;873:14317;;;;12827:5;873:14317;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;-1:-1:-1;;;;;12833:13:94;873:14317;;;;;12745:9;873:14317;;;;;;12833:13;873:14317;-1:-1:-1;;;;;12905:15:94;873:14317;;;12905:15;:::i;:::-;873:14317;-1:-1:-1;;;12930:11:94;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;12930:11;:::i;:::-;873:14317;;;;;;;;;12833:13;873:14317;;;;12741:76;12788:18;;;873:14317;12788:18;873:14317;;12788:18;873:14317;;;;12185:14;873:14317;;;:::i;:::-;12185:14;;;;:::i;:::-;12219:11;873:14317;12213:24;;;12209:79;;873:14317;12346:12;;;;;:::i;:::-;873:14317;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;12374:18;;;12394:7;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;12403:3;873:14317;;;;;12443:6;873:14317;;12422:30;873:14317;;;;12429:10;;;;:::i;:::-;873:14317;;:::i;:::-;12422:30;;;;:::i;:::-;;;;:::i;:::-;;873:14317;12374:18;;873:14317;;;;;:::i;:::-;;;;;;;;;;12209:79;12253:24;;12209:79;;;873:14317;;;;;;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;2000:71;873:14317;;;;;;;;;;;;;;;;;;6348:47;873:14317;;;:::i;:::-;;6303:28;6883:10;;;;6303:28;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:94;;;;;-1:-1:-1;;;;;2258:23:94;873:14317;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;13417:9;873:14317;-1:-1:-1;;;;;873:14317:94;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:94;;;;-1:-1:-1;;;;;873:14317:94;13496:1;873:14317;13499:17;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;-1:-1:-1;873:14317:94;;;;;;;;;13496:1;873:14317;;;13518:3;873:14317;;;;13549:5;873:14317;;;;;;-1:-1:-1;;;;;873:14317:94;13541:31;13537:78;;873:14317;;;;13549:5;873:14317;;;;;;13496:1;;13672:13;;-1:-1:-1;;;;;873:14317:94;13628:30;873:14317;13628:30;;:::i;:::-;873:14317;13672:13;:::i;:::-;13518:3;13484:13;873:14317;13484:13;;;13537:78;13592:8;13496:1;13592:8;;;873:14317;;;;;6348:47;873:14317;6303:28;873:14317;;;:::i;:::-;6303:28;;;;;;;;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;7514:47;873:14317;7470:27;873:14317;;;:::i;:::-;7470:27;;;;;;;;;:::i;873:14317::-;;;;;;-1:-1:-1;;873:14317:94;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;761:9:95;873:14317:94;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;11552:14;873:14317;;;:::i;11552:14::-;873:14317;11586:11;873:14317;11580:24;;;11576:79;;873:14317;11705:12;;;;;:::i;:::-;873:14317;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;873:14317:94;;;;11733:18;11753:7;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;;;;;;;;;;;11762:3;11802:14;;873:14317;11802:14;;:::i;:::-;873:14317;;;;;;11781:35;11788:10;;;;:::i;:::-;11781:35;;:::i;:::-;873:14317;;11733:18;;11576:79;11620:24;-1:-1:-1;11576:79:94;;;873:14317;;;;;;-1:-1:-1;;873:14317:94;;;;;-1:-1:-1;;;;;2184:31:94;873:14317;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;1318:62;873:14317;;;;;;;1318:62;873:14317;;1318:62;;873:14317;1318:62;;;;873:14317;1318:62;;;;;873:14317;1318:62;873:14317;1318:62;873:14317;1318:62;873:14317;1318:62;;873:14317;:::i;:::-;;;;:::i;:::-;1318:62;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;873:14317:94;;;;;;;;-1:-1:-1;873:14317:94;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;:::o;:::-;;;;-1:-1:-1;873:14317:94;;;;;-1:-1:-1;873:14317:94;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;;;;;;-1:-1:-1;;873:14317:94;;;;:::o;:::-;;;-1:-1:-1;;873:14317:94;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;873:14317:94;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;-1:-1:-1;;873:14317:94;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;11586:11;873:14317;;;;;;11586:11;-1:-1:-1;873:14317:94;;-1:-1:-1;873:14317:94;;;-1:-1:-1;873:14317:94;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;873:14317:94;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;:::o;8133:207::-;873:14317;;:::i;:::-;;8214:11;873:14317;8214:23;;8210:77;;-1:-1:-1;;873:14317:94;;;;;;;8236:1;873:14317;8303:6;873:14317;;;;8236:1;873:14317;;:::i;:::-;8133:207;:::o;8210:77::-;8260:16;;;8236:1;8260:16;;8236:1;8260:16;873:14317;-1:-1:-1;;873:14317:94;;;;;;;:::o;:::-;-1:-1:-1;;;;;873:14317:94;-1:-1:-1;;;;;873:14317:94;;;;;;;:::o;8540:955::-;873:14317;;:::i;:::-;;8661:11;873:14317;8661:23;8657:77;;873:14317;8683:1;873:14317;9027:17;873:14317;;;8683:1;873:14317;;9071:24;;;;:::i;:::-;873:14317;;;;;;9071:39;9067:96;;9286:65;;;;:::i;:::-;9365:6;;;9361:93;;873:14317;8683:1;873:14317;9470:6;873:14317;;;;8683:1;873:14317;;:::i;9361:93::-;8661:11;873:14317;;;;;;-1:-1:-1;;;8683:1:94;9394:49;;;;873:14317;;;;;;;;9394:49;9067:96;873:14317;;8683:1;873:14317;9133:6;873:14317;;;;8683:1;873:14317;;:::i;9650:259::-;873:14317;;:::i;:::-;;9774:11;873:14317;9765:27;;;;9761:112;;873:14317;-1:-1:-1;873:14317:94;9889:6;873:14317;;;;-1:-1:-1;873:14317:94;;:::i;9761:112::-;9815:47;;;;-1:-1:-1;9815:47:94;;873:14317;;;;-1:-1:-1;9815:47:94;873:14317;;;-1:-1:-1;;;;;;873:14317:94;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;;;;;;-1:-1:-1;;873:14317:94;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;;;;:::o;13954:998::-;14091:15;873:14317;-1:-1:-1;;;;;;;873:14317:94;;;;14091:49;;;;;873:14317;;;;;14091:49;;873:14317;14091:15;:49;;873:14317;-1:-1:-1;;;;;873:14317:94;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;;873:14317:94;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;873:14317:94;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;873:14317:94;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;14091:49;;;;;;;;;;873:14317;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;14214:82;;;;;;;;;;873:14317;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1764:15:95;1752:27;;1750:30;1746:85;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;1890:94:95;;873:14317:94;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;2484:26:95;873:14317:94;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;2531:28:95;2484:26;873:14317:94;2531:28:95;:::i;:::-;873:14317:94;;2484:26:95;873:14317:94;;14477:19;14473:109;;873:14317;;;;;;;14708:21;;;873:14317;;3290:11;873:14317;3290:23;;;:90;;;;873:14317;3273:425;;;3405:31;3179:12;873:14317;;3450:17;873:14317;;;;;;;;;;;;;;;;;;3290:11;873:14317;;:::i;:::-;;;;2484:26:95;873:14317:94;3179:12;;873:14317;;;;;;;;;;;;3273:425;873:14317;;;;;;:::i;:::-;3179:12;873:14317;;;3729:232;;1764:15:95;873:14317:94;;;3729:232;;873:14317;;;;3729:232;;873:14317;;;;3729:232;;873:14317;;;;3729:232;;873:14317;;;;;;3708:6;873:14317;;;;;;;;;;;;;;;;;;;;2484:26:95;873:14317:94;;;14091:15;873:14317;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;:::i;:::-;;;;;;3273:425;873:14317;;;;;;;;;;;;;;;;;;;;;;;;;;2484:26:95;873:14317:94;;;;;;;;;;;;;4038:3;-1:-1:-1;;;;;4023:13:94;873:14317;;4019:17;;;;;873:14317;;;4069:5;873:14317;;;;;;-1:-1:-1;;;;;873:14317:94;4061:31;4057:78;;873:14317;;;4069:5;873:14317;;;;;;;;;;;;3708:6;873:14317;;;;;;;-1:-1:-1;;;;;873:14317:94;4148:43;;;;;873:14317;;;;;;;;;;;;;;4148:43;;873:14317;14091:15;4148:43;;873:14317;;;;;;;;;;;;;;;;;;;;;;;2484:26:95;873:14317:94;;;;;;;;;;;;;;;;;14091:15;873:14317;;;:::i;:::-;;;;;;;;4148:43;;;;;;;;;;4038:3;;;873:14317;4038:3;4004:13;873:14317;4004:13;;4148:43;;;;;:::i;:::-;873:14317;;4148:43;;;;873:14317;;;;4148:43;873:14317;;;;;;;;;4148:43;873:14317;;;4057:78;873:14317;4112:8;;;4019:17;;;;;;;;14789:156;4019:17;;873:14317;;;14880:21;;873:14317;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;14789:156;;;13954:998::o;873:14317::-;;;;-1:-1:-1;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2484:26:95;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;873:14317:94;;;;;-1:-1:-1;;;873:14317:94;;;14091:15;873:14317;;;;3273:425;3179:12;873:14317;;3656:17;873:14317;;;;;;;-1:-1:-1;3273:425:94;;3290:90;-1:-1:-1;;;873:14317:94;;;;;;;3329:35;;;:::i;:::-;3179:12;873:14317;;;2484:26:95;873:14317:94;;3329:51;;3290:90;;873:14317;-1:-1:-1;;;873:14317:94;;;14091:15;873:14317;;;;14473:109;14512:39;;;;;;;;4619:57:95;14512:39:94;873:14317;4648:28:95;873:14317:94;4619:57:95;;:::i;:::-;3902:10;;;3898:51;;14473:109:94;4064:18:95;4092:223;4099:12;;;;;;4092:223;873:14317:94;;4330:30:95;873:14317:94;;;;;;4330:30:95;14565:7:94:o;4092:223:95:-;4152:31;;;:::i;:::-;;;;4238:8;;;:::i;:::-;4197:108;4092:223;;4197:108;4285:5;;;3898:51;3928:10;-1:-1:-1;3898:51:95;;;1890:94;-1:-1:-1;;;1952:21:95;;14091:15:94;1952:21:95;;1746:85;-1:-1:-1;;;1803:17:95;;14091:15:94;1803:17:95;;873:14317:94;;;;;;;;;-1:-1:-1;;;;873:14317:94;;;14091:15;873:14317;;;;;;;;;;;;;;;;;;;;14091:49;;;;;-1:-1:-1;14091:49:94;;:::i;:::-;-1:-1:-1;14091:49:94;;;;;873:14317;;;-1:-1:-1;873:14317:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;4504:376;;;873:14317;;4773:26;;;;873:14317;;;;;;;;;;;;;;4773:26;;;;;;:::i;:::-;873:14317;4763:37;;873:14317;;4773:26;873:14317;;;;;4773:26;873:14317;;;;;;:::i;:::-;;4727:84;;5366:13:56;-1:-1:-1;5361:134:56;5399:3;5381:16;;;;;;873:14317:94;;;;;;605:59:55;:5;;;:59;:5;;;-1:-1:-1;889:135:55;4773:26:94;889:135:55;873:14317:94;;-1:-1:-1;889:135:55;605:59;5399:3:56;873:14317:94;5366:13:56;;;605:59:55;889:135;-1:-1:-1;889:135:55;4773:26:94;889:135:55;873:14317:94;;-1:-1:-1;889:135:55;605:59;;5381:16:56;4761:41;;4504:376:94;-1:-1:-1;;;4504:376:94:o;10143:837::-;10320:11;873:14317;10293:1;;10143:837;10293:1;;;;10418:12;;;;;;10945:28;;;;10143:837;:::o;10411:524::-;10461:12;;;;;;;;;:::i;:::-;873:14317;;10511:16;;;;:::i;:::-;873:14317;;;;;;10546:23;;;;10542:383;10546:23;;;873:14317;;;;;;10293:1;873:14317;10661:17;873:14317;;;10293:1;873:14317;;10647:42;873:14317;10647:42;;:::o;10542:383::-;10714:22;;;;;;;;10710:215;10714:22;;;873:14317;;;10293:1;873:14317;10765:17;873:14317;;;10293:1;873:14317;;10810:18;873:14317;;;;;;;;;;10710:215;10411:524;;;10710:215;10899:11;;-1:-1:-1;10899:11:94;;-1:-1:-1;10710:215:94;;2760:598:95;2877:28;873:14317:94;;;2853:23:95;873:14317:94;;-1:-1:-1;;;;;873:14317:94;;;;;;;;;;;;;;;;;;3053:15:95;-1:-1:-1;3037:70:95;;873:14317:94;;;;;;;;;;2877:28:95;873:14317:94;;;2853:23:95;873:14317:94;;;;;;;-1:-1:-1;;;;;873:14317:94;;;;;3299:30:95;2877:28;873:14317:94;3299:30:95;:::i;:::-;2877:28;873:14317:94;2853:23:95;2760:598;:::o;3037:70::-;3084:12;873:14317:94;3084:12:95;:::o","linkReferences":{}},"methodIdentifiers":{"ENVELOPE_EXPIRATION_TIME()":"35951f7f","addHook(address)":"7b4e04e8","blockToStateIndex(uint256)":"96ee965b","envelopeExpirationQueue(uint256)":"29b9fbf9","envelopeExpirationQueueEnd()":"b2fd74c9","envelopeExpirationQueueSize()":"a828a40a","envelopeExpirationQueueStart()":"c97b7f80","envelopesSeen(bytes20)":"025d26be","getHooks()":"5cd2525e","getLatestState()":"2d904eb8","getServiceManager()":"4dda0b43","getStateAtBlock(uint256)":"b42bc9fe","getStateAtIndex(uint256)":"c8411d1a","getStateBlocks(uint256,uint256)":"0d989192","getStateCount()":"daa05015","getStates(uint256,uint256)":"76886d84","handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"f969ff33","hookCount()":"5e0f9e37","hookIndex(address)":"6c819c4d","hooks(uint256)":"864c17d7","lastCronTimestampSeen()":"c267d5b5","nextHookIndex()":"07971de7","nextTriggerId()":"42227fa4","removeHook(address)":"e5adf3ab","stateBlocks(uint256)":"df92c137","states(uint256)":"017a9105","trigger()":"7fec8d38","verifyMyProof(uint256,bytes32[])":"f3af6134","verifyMyProofAtBlock(uint256,bytes32[],uint256)":"658f09c5","verifyMyProofAtStateIndex(uint256,bytes32[],uint256)":"a52e9526","verifyProof(address,uint256,bytes32[])":"f616ec85","verifyProofAtBlock(address,uint256,bytes32[],uint256)":"550004e5","verifyProofAtStateIndex(address,uint256,bytes32[],uint256)":"44cb266f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IWavsServiceManager\",\"name\":\"serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EnvelopeAlreadySeen\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnvelopeExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HookAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HookNotAdded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"firstBlock\",\"type\":\"uint256\"}],\"name\":\"NoMerkleStateAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"name\":\"NoMerkleStateAtIndex\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoMerkleStates\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"name\":\"MerkleRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"triggerId\",\"type\":\"uint64\"}],\"name\":\"MerklerTrigger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_triggerInfo\",\"type\":\"bytes\"}],\"name\":\"NewTrigger\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"PrunedExpiredEnvelopes\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ENVELOPE_EXPIRATION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"addHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"blockToStateIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"envelopeExpirationQueue\",\"outputs\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"envelopeExpirationQueueEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"envelopeExpirationQueueSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"envelopeExpirationQueueStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"}],\"name\":\"envelopesSeen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"expiresAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHooks\",\"outputs\":[{\"internalType\":\"contract IMerkleSnapshotHook[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getStateAtBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"state\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStateAtIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState\",\"name\":\"state\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getStateBlocks\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"result_\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getStates\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IMerkleSnapshot.MerkleState[]\",\"name\":\"result_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"handleSignedEnvelope\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hookCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"hookIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"hookIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"hookIndex\",\"type\":\"uint256\"}],\"name\":\"hooks\",\"outputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastCronTimestampSeen\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextHookIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTriggerId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMerkleSnapshotHook\",\"name\":\"hook\",\"type\":\"address\"}],\"name\":\"removeHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stateBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"name\":\"states\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ipfsHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"ipfsHashCid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trigger\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"triggerId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyMyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"verifyMyProofAtBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"name\":\"verifyMyProofAtStateIndex\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"verifyProofAtBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"stateIndex\",\"type\":\"uint256\"}],\"name\":\"verifyProofAtStateIndex\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements IWavsServiceHandler for merkle root updates via WAVS\",\"events\":{\"MerklerTrigger(uint64)\":{\"params\":{\"triggerId\":\"Unique identifier for the trigger\"}},\"NewTrigger(bytes)\":{\"params\":{\"_triggerInfo\":\"Encoded TriggerInfo struct\"}},\"PrunedExpiredEnvelopes(uint256)\":{\"params\":{\"count\":\"The count of the pruned expired envelopes.\"}}},\"kind\":\"dev\",\"methods\":{\"envelopeExpirationQueueSize()\":{\"returns\":{\"_0\":\"The size of the envelope expiration queue.\"}},\"getLatestState()\":{\"returns\":{\"_0\":\"state The latest merkle state.\"}},\"getServiceManager()\":{\"returns\":{\"_0\":\"address The address of the service manager\"}},\"getStateAtBlock(uint256)\":{\"params\":{\"blockNumber\":\"The target block number\"},\"returns\":{\"state\":\"The merkle state at (or before) the specified block\"}},\"getStateAtIndex(uint256)\":{\"params\":{\"index\":\"The state index\"},\"returns\":{\"state\":\"The merkle state at the specified index\"}},\"getStateBlocks(uint256,uint256)\":{\"params\":{\"limit\":\"The number of blocks to return\",\"offset\":\"The offset to start from\"},\"returns\":{\"result_\":\"Array of block numbers with states\"}},\"getStateCount()\":{\"returns\":{\"count\":\"The number of states\"}},\"getStates(uint256,uint256)\":{\"params\":{\"limit\":\"The number of blocks to return\",\"offset\":\"The offset to start from\"},\"returns\":{\"result_\":\"Array of states\"}},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the data.\",\"signatureData\":\"The signature data.\"}},\"trigger()\":{\"returns\":{\"triggerId\":\"The ID of the trigger\"}},\"verifyMyProof(uint256,bytes32[])\":{\"params\":{\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyMyProofAtBlock(uint256,bytes32[],uint256)\":{\"params\":{\"blockNumber\":\"The maximum block number to consider\",\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)\":{\"params\":{\"proof\":\"The merkle proof\",\"stateIndex\":\"The state index to verify against\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyProof(address,uint256,bytes32[])\":{\"params\":{\"account\":\"The account to verify the proof for\",\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyProofAtBlock(address,uint256,bytes32[],uint256)\":{\"params\":{\"account\":\"The account to verify the proof for\",\"blockNumber\":\"The maximum block number to consider\",\"proof\":\"The merkle proof\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}},\"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)\":{\"params\":{\"account\":\"The account to verify the proof for\",\"proof\":\"The merkle proof\",\"stateIndex\":\"The state index to verify against\",\"value\":\"The value to verify\"},\"returns\":{\"_0\":\"valid Whether the proof is valid\"}}},\"stateVariables\":{\"blockToStateIndex\":{\"details\":\"Only one state per block is allowed\"},\"stateBlocks\":{\"details\":\"Used for efficient binary search of historical states\"}},\"title\":\"MerkleSnapshot - Merkle tree snapshotter that can be used by other contracts to verify merkle proofs and access history\",\"version\":1},\"userdoc\":{\"errors\":{\"EnvelopeAlreadySeen()\":[{\"notice\":\"The error for the envelope already seen.\"}],\"EnvelopeExpired()\":[{\"notice\":\"The error for the envelope expired.\"}]},\"events\":{\"MerklerTrigger(uint64)\":{\"notice\":\"Event emitted when a new trigger is created\"},\"NewTrigger(bytes)\":{\"notice\":\"Event emitted when a new trigger is created\"},\"PrunedExpiredEnvelopes(uint256)\":{\"notice\":\"The event for the pruned expired envelopes.\"}},\"kind\":\"user\",\"methods\":{\"ENVELOPE_EXPIRATION_TIME()\":{\"notice\":\"The expiration time for an envelope.\"},\"addHook(address)\":{\"notice\":\"Add a hook\"},\"blockToStateIndex(uint256)\":{\"notice\":\"Mapping from block number to state index for efficient lookups\"},\"envelopeExpirationQueue(uint256)\":{\"notice\":\"The eventIds in a queue, with start and end indexes tracked, to allow efficient iteration and pruning of expired envelopes.\"},\"envelopeExpirationQueueEnd()\":{\"notice\":\"The end index of the envelope expiration queue.\"},\"envelopeExpirationQueueSize()\":{\"notice\":\"Get the size of the envelope expiration queue.\"},\"envelopeExpirationQueueStart()\":{\"notice\":\"The start index of the envelope expiration queue.\"},\"envelopesSeen(bytes20)\":{\"notice\":\"The expiration time for each envelope we've seen.\"},\"getHooks()\":{\"notice\":\"List all hooks\"},\"getLatestState()\":{\"notice\":\"Get the latest merkle state.\"},\"getServiceManager()\":{\"notice\":\"Get the service manager address\"},\"getStateAtBlock(uint256)\":{\"notice\":\"Get the state at (or before) a specific block number\"},\"getStateAtIndex(uint256)\":{\"notice\":\"Get the state at a specific index\"},\"getStateBlocks(uint256,uint256)\":{\"notice\":\"Get paginated block numbers that have states\"},\"getStateCount()\":{\"notice\":\"Get the total number of states\"},\"getStates(uint256,uint256)\":{\"notice\":\"Get paginated states\"},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Handles a signed envelope\"},\"hookCount()\":{\"notice\":\"The number of hooks.\"},\"hookIndex(address)\":{\"notice\":\"Mapping from hook to hook index for efficient removal.\"},\"hooks(uint256)\":{\"notice\":\"Array of contracts to execute when the merkle state is updated.\"},\"lastCronTimestampSeen()\":{\"notice\":\"The last cron timestamp seen\"},\"nextHookIndex()\":{\"notice\":\"The next hook index to use. Start at 1 since 0 is the default value in the mappings above.\"},\"nextTriggerId()\":{\"notice\":\"The next trigger ID\"},\"removeHook(address)\":{\"notice\":\"Remove a hook\"},\"stateBlocks(uint256)\":{\"notice\":\"Array of block numbers where states were created (ascending)\"},\"states(uint256)\":{\"notice\":\"Historical merkle states, keyed by index\"},\"trigger()\":{\"notice\":\"Trigger the Merkler AVS\"},\"verifyMyProof(uint256,bytes32[])\":{\"notice\":\"Verify a merkle proof for the sender with the latest state\"},\"verifyMyProofAtBlock(uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof for the sender against the state at a specific block number\"},\"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof for the sender against the state at a specific index\"},\"verifyProof(address,uint256,bytes32[])\":{\"notice\":\"Verify a merkle proof for a given account with the latest state\"},\"verifyProofAtBlock(address,uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof against the state at a specific block number\"},\"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)\":{\"notice\":\"Verify a merkle proof against the state at a specific index\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/merkle/MerkleSnapshot.sol\":\"MerkleSnapshot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6\",\"dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]},\"src/contracts/merkle/MerkleSnapshot.sol\":{\"keccak256\":\"0xab9cf5b1c688eb13af9ec5bb3177c976cee81336501afaf796391b56afe8611b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e681637be2c090daee5e877a340f8627fd092cfe22d9a918a3d0f5319b222c1c\",\"dweb:/ipfs/QmcErJ3ZhxoEgGPnEYVsZrt2WcpzEnKAZCVeeq6gC75fYW\"]},\"src/contracts/merkle/UniqueEnvelope.sol\":{\"keccak256\":\"0x4eff46f355d81294f6399dbb95bc00f63a059cf6fde4c6346c98b942391b8fa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990d599caf498b04428dda9a737ea61b3a5cb81e9757ef9075e8de62a0761bfa\",\"dweb:/ipfs/QmRa7WKvGFp1KahdmoHHV8TJNtttjXEX9krGfnJntxFZon\"]},\"src/interfaces/ITypes.sol\":{\"keccak256\":\"0xc3e91188c15a0a33910a88623963d6ddb53635e40aa01734115d604dc9c15fc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9cbf856fd64753794a8eda32a7a83e2649d6f0566c80cb62b1af8887a2e4375\",\"dweb:/ipfs/Qmb2iqJcicWeRE2efnST89gugKrTk8RMXgZv517XEd4QYW\"]},\"src/interfaces/merkle/IMerkleSnapshot.sol\":{\"keccak256\":\"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66\",\"dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7\"]},\"src/interfaces/merkle/IMerkleSnapshotHook.sol\":{\"keccak256\":\"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0\",\"dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS\"]},\"src/interfaces/merkle/IMerkler.sol\":{\"keccak256\":\"0xf0cb64da76ac0d1ba83f2e2010a84095b12bbf05754cce61718a5772e4c5e3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9894dee81928fd0c9468b29496cc1d77bb406a3ac1552368beda0bd5f1441854\",\"dweb:/ipfs/QmNW68PZYzrjCub2XXjAeWwEimUwsuxBEfAntkBUDtZphu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IWavsServiceManager","name":"serviceManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EnvelopeAlreadySeen"},{"inputs":[],"type":"error","name":"EnvelopeExpired"},{"inputs":[],"type":"error","name":"HookAlreadyAdded"},{"inputs":[],"type":"error","name":"HookNotAdded"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"firstBlock","type":"uint256"}],"type":"error","name":"NoMerkleStateAtBlock"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"type":"error","name":"NoMerkleStateAtIndex"},{"inputs":[],"type":"error","name":"NoMerkleStates"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32","indexed":false},{"internalType":"string","name":"ipfsHashCid","type":"string","indexed":false},{"internalType":"uint256","name":"totalValue","type":"uint256","indexed":false}],"type":"event","name":"MerkleRootUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"triggerId","type":"uint64","indexed":false}],"type":"event","name":"MerklerTrigger","anonymous":false},{"inputs":[{"internalType":"bytes","name":"_triggerInfo","type":"bytes","indexed":false}],"type":"event","name":"NewTrigger","anonymous":false},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256","indexed":false}],"type":"event","name":"PrunedExpiredEnvelopes","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ENVELOPE_EXPIRATION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addHook"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"blockToStateIndex","outputs":[{"internalType":"uint256","name":"stateIndex","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"envelopeExpirationQueue","outputs":[{"internalType":"bytes20","name":"eventId","type":"bytes20"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"envelopeExpirationQueueEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"envelopeExpirationQueueSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"envelopeExpirationQueueStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes20","name":"eventId","type":"bytes20"}],"stateMutability":"view","type":"function","name":"envelopesSeen","outputs":[{"internalType":"uint256","name":"expiresAt","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getHooks","outputs":[{"internalType":"contract IMerkleSnapshotHook[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestState","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStateAtBlock","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"state","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStateAtIndex","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState","name":"state","type":"tuple","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStateBlocks","outputs":[{"internalType":"uint256[]","name":"result_","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStateCount","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStates","outputs":[{"internalType":"struct IMerkleSnapshot.MerkleState[]","name":"result_","type":"tuple[]","components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]}]},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"handleSignedEnvelope"},{"inputs":[],"stateMutability":"view","type":"function","name":"hookCount","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}],"stateMutability":"view","type":"function","name":"hookIndex","outputs":[{"internalType":"uint256","name":"hookIndex","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"hookIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"hooks","outputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCronTimestampSeen","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextHookIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextTriggerId","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"contract IMerkleSnapshotHook","name":"hook","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeHook"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"stateBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"stateIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"states","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"bytes32","name":"ipfsHash","type":"bytes32"},{"internalType":"string","name":"ipfsHashCid","type":"string"},{"internalType":"uint256","name":"totalValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"trigger","outputs":[{"internalType":"uint64","name":"triggerId","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"verifyMyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyMyProofAtBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"stateIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyMyProofAtStateIndex","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"verifyProof","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyProofAtBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"stateIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"verifyProofAtStateIndex","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"envelopeExpirationQueueSize()":{"returns":{"_0":"The size of the envelope expiration queue."}},"getLatestState()":{"returns":{"_0":"state The latest merkle state."}},"getServiceManager()":{"returns":{"_0":"address The address of the service manager"}},"getStateAtBlock(uint256)":{"params":{"blockNumber":"The target block number"},"returns":{"state":"The merkle state at (or before) the specified block"}},"getStateAtIndex(uint256)":{"params":{"index":"The state index"},"returns":{"state":"The merkle state at the specified index"}},"getStateBlocks(uint256,uint256)":{"params":{"limit":"The number of blocks to return","offset":"The offset to start from"},"returns":{"result_":"Array of block numbers with states"}},"getStateCount()":{"returns":{"count":"The number of states"}},"getStates(uint256,uint256)":{"params":{"limit":"The number of blocks to return","offset":"The offset to start from"},"returns":{"result_":"Array of states"}},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the data.","signatureData":"The signature data."}},"trigger()":{"returns":{"triggerId":"The ID of the trigger"}},"verifyMyProof(uint256,bytes32[])":{"params":{"proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyMyProofAtBlock(uint256,bytes32[],uint256)":{"params":{"blockNumber":"The maximum block number to consider","proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)":{"params":{"proof":"The merkle proof","stateIndex":"The state index to verify against","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyProof(address,uint256,bytes32[])":{"params":{"account":"The account to verify the proof for","proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyProofAtBlock(address,uint256,bytes32[],uint256)":{"params":{"account":"The account to verify the proof for","blockNumber":"The maximum block number to consider","proof":"The merkle proof","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}},"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)":{"params":{"account":"The account to verify the proof for","proof":"The merkle proof","stateIndex":"The state index to verify against","value":"The value to verify"},"returns":{"_0":"valid Whether the proof is valid"}}},"version":1},"userdoc":{"kind":"user","methods":{"ENVELOPE_EXPIRATION_TIME()":{"notice":"The expiration time for an envelope."},"addHook(address)":{"notice":"Add a hook"},"blockToStateIndex(uint256)":{"notice":"Mapping from block number to state index for efficient lookups"},"envelopeExpirationQueue(uint256)":{"notice":"The eventIds in a queue, with start and end indexes tracked, to allow efficient iteration and pruning of expired envelopes."},"envelopeExpirationQueueEnd()":{"notice":"The end index of the envelope expiration queue."},"envelopeExpirationQueueSize()":{"notice":"Get the size of the envelope expiration queue."},"envelopeExpirationQueueStart()":{"notice":"The start index of the envelope expiration queue."},"envelopesSeen(bytes20)":{"notice":"The expiration time for each envelope we've seen."},"getHooks()":{"notice":"List all hooks"},"getLatestState()":{"notice":"Get the latest merkle state."},"getServiceManager()":{"notice":"Get the service manager address"},"getStateAtBlock(uint256)":{"notice":"Get the state at (or before) a specific block number"},"getStateAtIndex(uint256)":{"notice":"Get the state at a specific index"},"getStateBlocks(uint256,uint256)":{"notice":"Get paginated block numbers that have states"},"getStateCount()":{"notice":"Get the total number of states"},"getStates(uint256,uint256)":{"notice":"Get paginated states"},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Handles a signed envelope"},"hookCount()":{"notice":"The number of hooks."},"hookIndex(address)":{"notice":"Mapping from hook to hook index for efficient removal."},"hooks(uint256)":{"notice":"Array of contracts to execute when the merkle state is updated."},"lastCronTimestampSeen()":{"notice":"The last cron timestamp seen"},"nextHookIndex()":{"notice":"The next hook index to use. Start at 1 since 0 is the default value in the mappings above."},"nextTriggerId()":{"notice":"The next trigger ID"},"removeHook(address)":{"notice":"Remove a hook"},"stateBlocks(uint256)":{"notice":"Array of block numbers where states were created (ascending)"},"states(uint256)":{"notice":"Historical merkle states, keyed by index"},"trigger()":{"notice":"Trigger the Merkler AVS"},"verifyMyProof(uint256,bytes32[])":{"notice":"Verify a merkle proof for the sender with the latest state"},"verifyMyProofAtBlock(uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof for the sender against the state at a specific block number"},"verifyMyProofAtStateIndex(uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof for the sender against the state at a specific index"},"verifyProof(address,uint256,bytes32[])":{"notice":"Verify a merkle proof for a given account with the latest state"},"verifyProofAtBlock(address,uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof against the state at a specific block number"},"verifyProofAtStateIndex(address,uint256,bytes32[],uint256)":{"notice":"Verify a merkle proof against the state at a specific index"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/merkle/MerkleSnapshot.sol":"MerkleSnapshot"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x36a0c409c437a753cac9b92b75f93b0fbe92803bf2c8ff1517e54b247f166134","urls":["bzz-raw://0f91ba472de411aa557cdbf6560c40750d87bd11c9060bc04d2ba7119af9d5a6","dweb:/ipfs/QmQjtYo2i7dDvzCEzZ67bDoNSG4RrwMoxPWuqFmX5Xzpuw"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"},"src/contracts/merkle/MerkleSnapshot.sol":{"keccak256":"0xab9cf5b1c688eb13af9ec5bb3177c976cee81336501afaf796391b56afe8611b","urls":["bzz-raw://e681637be2c090daee5e877a340f8627fd092cfe22d9a918a3d0f5319b222c1c","dweb:/ipfs/QmcErJ3ZhxoEgGPnEYVsZrt2WcpzEnKAZCVeeq6gC75fYW"],"license":"MIT"},"src/contracts/merkle/UniqueEnvelope.sol":{"keccak256":"0x4eff46f355d81294f6399dbb95bc00f63a059cf6fde4c6346c98b942391b8fa9","urls":["bzz-raw://990d599caf498b04428dda9a737ea61b3a5cb81e9757ef9075e8de62a0761bfa","dweb:/ipfs/QmRa7WKvGFp1KahdmoHHV8TJNtttjXEX9krGfnJntxFZon"],"license":"MIT"},"src/interfaces/ITypes.sol":{"keccak256":"0xc3e91188c15a0a33910a88623963d6ddb53635e40aa01734115d604dc9c15fc4","urls":["bzz-raw://a9cbf856fd64753794a8eda32a7a83e2649d6f0566c80cb62b1af8887a2e4375","dweb:/ipfs/Qmb2iqJcicWeRE2efnST89gugKrTk8RMXgZv517XEd4QYW"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshot.sol":{"keccak256":"0x11b66a9d777ddeb4bb030e8aae5a3d0345300561013870b162c30030502f73f0","urls":["bzz-raw://18371ff3afca1395007f92e012cd32137c6c843dd93b1894dddd61110a711a66","dweb:/ipfs/QmNMJRtWvoNKWf7qq2oQFv7eQMfk1zMsXm2pMqykQsxcJ7"],"license":"MIT"},"src/interfaces/merkle/IMerkleSnapshotHook.sol":{"keccak256":"0xaa8ce14d216f5ac1cfd9c2570166e93e2196e01c6ec0bcf9836aa5dfc503e95c","urls":["bzz-raw://88dc554be8d33b0e36f2cd0f0e9bf05fdf0de9db641044d7d7d4e2cb042b64b0","dweb:/ipfs/QmNwP6dzMDH3H8Wa7gQUEwFguESg4prKuatLjkMCe45xsS"],"license":"MIT"},"src/interfaces/merkle/IMerkler.sol":{"keccak256":"0xf0cb64da76ac0d1ba83f2e2010a84095b12bbf05754cce61718a5772e4c5e3ad","urls":["bzz-raw://9894dee81928fd0c9468b29496cc1d77bb406a3ac1552368beda0bd5f1441854","dweb:/ipfs/QmNW68PZYzrjCub2XXjAeWwEimUwsuxBEfAntkBUDtZphu"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file diff --git a/frontend/abis/SchemaRegistrar.json b/frontend/abis/SchemaRegistrar.json index 28b23bae..a773ecc8 100644 --- a/frontend/abis/SchemaRegistrar.json +++ b/frontend/abis/SchemaRegistrar.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"schemaRegistry","type":"address","internalType":"contract ISchemaRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"error","name":"InvalidResolver","inputs":[]},{"type":"error","name":"InvalidSchema","inputs":[]},{"type":"error","name":"InvalidSchemaRegistry","inputs":[]}],"bytecode":{"object":"0x60a034607a57601f6102a638819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b038116808203607a5715606b57608052604051610213908161009382396080518161011c0152f35b639db62cd960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c6360d7a27814610025575f80fd5b34610181576060366003190112610181576004359067ffffffffffffffff8211610181573660238301121561018157816004013567ffffffffffffffff81116101a75761007c601f8201601f1916602001836101bb565b8082526020820192366024838301011161018157815f926024602093018637830101526024356001600160a01b03811690819003610181576044359283151580940361018157825115610198576020926084916040519586948593630c1af44f60e31b8552606060048601525180938160648701528686015e5f85848601015260248401526044830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561018d575f90610156575b602090604051908152f35b506020813d602011610185575b81610170602093836101bb565b81010312610181576020905161014b565b5f80fd5b3d9150610163565b6040513d5f823e3d90fd5b635f9bd90760e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176101a75760405256fea26469706673582212201347e79763a48820e39fa6996c49af2312dfaca8e36ca7cb9cdc5a9977561f2a64736f6c634300081b0033","sourceMap":"349:1106:92:-:0;;;;;;;;;;;;;-1:-1:-1;;349:1106:92;;;;-1:-1:-1;;;;;349:1106:92;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;349:1106:92;;;;;;;763:37;759:98;;867:32;;349:1106;;;;;;;;867:32;349:1106;;;;;;759:98;823:23;;;-1:-1:-1;823:23:92;;-1:-1:-1;823:23:92;349:1106;-1:-1:-1;349:1106:92;;;;;;-1:-1:-1;349:1106:92;;;;;-1:-1:-1;349:1106:92","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c6360d7a27814610025575f80fd5b34610181576060366003190112610181576004359067ffffffffffffffff8211610181573660238301121561018157816004013567ffffffffffffffff81116101a75761007c601f8201601f1916602001836101bb565b8082526020820192366024838301011161018157815f926024602093018637830101526024356001600160a01b03811690819003610181576044359283151580940361018157825115610198576020926084916040519586948593630c1af44f60e31b8552606060048601525180938160648701528686015e5f85848601015260248401526044830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561018d575f90610156575b602090604051908152f35b506020813d602011610185575b81610170602093836101bb565b81010312610181576020905161014b565b5f80fd5b3d9150610163565b6040513d5f823e3d90fd5b635f9bd90760e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176101a75760405256fea26469706673582212201347e79763a48820e39fa6996c49af2312dfaca8e36ca7cb9cdc5a9977561f2a64736f6c634300081b0033","sourceMap":"349:1106:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;349:1106:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;349:1106:92;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;349:1106:92;;;;;;;;;;;;;;;;;;;;;1302:25;1298:78;;349:1106;;;;;;;;;;;;;;1393:53;;349:1106;;1393:53;;349:1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1393:53;;349:1106;;;;;;;1393:15;349:1106;1393:53;;;;;;349:1106;1393:53;;;349:1106;;;;;;;;;1393:53;;349:1106;1393:53;;349:1106;1393:53;;;;;;349:1106;1393:53;;;:::i;:::-;;;349:1106;;;;;;;1393:53;;349:1106;;;;1393:53;;;-1:-1:-1;1393:53:92;;;349:1106;;;;;;;;;1298:78;1350:15;;;349:1106;1350:15;349:1106;;1350:15;349:1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{},"immutableReferences":{"56629":[{"start":284,"length":32}]}},"methodIdentifiers":{"register(string,address,bool)":"60d7a278"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISchemaRegistry\",\"name\":\"schemaRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSchema\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSchemaRegistry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"schemaRegistry\":\"The address of the global EAS contract.\"}},\"register(string,address,bool)\":{\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"title\":\"SchemaRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Creates a new Attester instance.\"},\"register(string,address,bool)\":{\"notice\":\"Submits and reserves a new schema\"}},\"notice\":\"Schema Registration Example\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/SchemaRegistrar.sol\":\"SchemaRegistrar\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"src/contracts/eas/SchemaRegistrar.sol\":{\"keccak256\":\"0x5f50276482b77182f7a13aca38cfbd10d9d15c56a31167e0a379e1278d16bef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://deb80fcfe50e1d1529d657a7f6cff17206938d1f4ba9869f65e0ec19f6624e25\",\"dweb:/ipfs/QmaJkmvucZy4ey5Y6QW3HFkQmt77D9FK7YEU3FmmnbGtd2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ISchemaRegistry","name":"schemaRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidResolver"},{"inputs":[],"type":"error","name":"InvalidSchema"},{"inputs":[],"type":"error","name":"InvalidSchemaRegistry"},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"schemaRegistry":"The address of the global EAS contract."}},"register(string,address,bool)":{"params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Creates a new Attester instance."},"register(string,address,bool)":{"notice":"Submits and reserves a new schema"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/SchemaRegistrar.sol":"SchemaRegistrar"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"src/contracts/eas/SchemaRegistrar.sol":{"keccak256":"0x5f50276482b77182f7a13aca38cfbd10d9d15c56a31167e0a379e1278d16bef7","urls":["bzz-raw://deb80fcfe50e1d1529d657a7f6cff17206938d1f4ba9869f65e0ec19f6624e25","dweb:/ipfs/QmaJkmvucZy4ey5Y6QW3HFkQmt77D9FK7YEU3FmmnbGtd2"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"schemaRegistry","type":"address","internalType":"contract ISchemaRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"error","name":"InvalidResolver","inputs":[]},{"type":"error","name":"InvalidSchema","inputs":[]},{"type":"error","name":"InvalidSchemaRegistry","inputs":[]}],"bytecode":{"object":"0x60a034607a57601f6102a638819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b038116808203607a5715606b57608052604051610213908161009382396080518161011c0152f35b639db62cd960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c6360d7a27814610025575f80fd5b34610181576060366003190112610181576004359067ffffffffffffffff8211610181573660238301121561018157816004013567ffffffffffffffff81116101a75761007c601f8201601f1916602001836101bb565b8082526020820192366024838301011161018157815f926024602093018637830101526024356001600160a01b03811690819003610181576044359283151580940361018157825115610198576020926084916040519586948593630c1af44f60e31b8552606060048601525180938160648701528686015e5f85848601015260248401526044830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561018d575f90610156575b602090604051908152f35b506020813d602011610185575b81610170602093836101bb565b81010312610181576020905161014b565b5f80fd5b3d9150610163565b6040513d5f823e3d90fd5b635f9bd90760e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176101a75760405256fea26469706673582212201347e79763a48820e39fa6996c49af2312dfaca8e36ca7cb9cdc5a9977561f2a64736f6c634300081b0033","sourceMap":"349:1106:87:-:0;;;;;;;;;;;;;-1:-1:-1;;349:1106:87;;;;-1:-1:-1;;;;;349:1106:87;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;349:1106:87;;;;;;;763:37;759:98;;867:32;;349:1106;;;;;;;;867:32;349:1106;;;;;;759:98;823:23;;;-1:-1:-1;823:23:87;;-1:-1:-1;823:23:87;349:1106;-1:-1:-1;349:1106:87;;;;;;-1:-1:-1;349:1106:87;;;;;-1:-1:-1;349:1106:87","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c6360d7a27814610025575f80fd5b34610181576060366003190112610181576004359067ffffffffffffffff8211610181573660238301121561018157816004013567ffffffffffffffff81116101a75761007c601f8201601f1916602001836101bb565b8082526020820192366024838301011161018157815f926024602093018637830101526024356001600160a01b03811690819003610181576044359283151580940361018157825115610198576020926084916040519586948593630c1af44f60e31b8552606060048601525180938160648701528686015e5f85848601015260248401526044830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561018d575f90610156575b602090604051908152f35b506020813d602011610185575b81610170602093836101bb565b81010312610181576020905161014b565b5f80fd5b3d9150610163565b6040513d5f823e3d90fd5b635f9bd90760e11b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176101a75760405256fea26469706673582212201347e79763a48820e39fa6996c49af2312dfaca8e36ca7cb9cdc5a9977561f2a64736f6c634300081b0033","sourceMap":"349:1106:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;349:1106:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;349:1106:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;349:1106:87;;;;;;;;;;;;;;;;;;;;;1302:25;1298:78;;349:1106;;;;;;;;;;;;;;1393:53;;349:1106;;1393:53;;349:1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1393:53;;349:1106;;;;;;;1393:15;349:1106;1393:53;;;;;;349:1106;1393:53;;;349:1106;;;;;;;;;1393:53;;349:1106;1393:53;;349:1106;1393:53;;;;;;349:1106;1393:53;;;:::i;:::-;;;349:1106;;;;;;;1393:53;;349:1106;;;;1393:53;;;-1:-1:-1;1393:53:87;;;349:1106;;;;;;;;;1298:78;1350:15;;;349:1106;1350:15;349:1106;;1350:15;349:1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{},"immutableReferences":{"53648":[{"start":284,"length":32}]}},"methodIdentifiers":{"register(string,address,bool)":"60d7a278"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ISchemaRegistry\",\"name\":\"schemaRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidResolver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSchema\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSchemaRegistry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"schemaRegistry\":\"The address of the global EAS contract.\"}},\"register(string,address,bool)\":{\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}}},\"title\":\"SchemaRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Creates a new Attester instance.\"},\"register(string,address,bool)\":{\"notice\":\"Submits and reserves a new schema\"}},\"notice\":\"Schema Registration Example\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/SchemaRegistrar.sol\":\"SchemaRegistrar\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"src/contracts/eas/SchemaRegistrar.sol\":{\"keccak256\":\"0x5f50276482b77182f7a13aca38cfbd10d9d15c56a31167e0a379e1278d16bef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://deb80fcfe50e1d1529d657a7f6cff17206938d1f4ba9869f65e0ec19f6624e25\",\"dweb:/ipfs/QmaJkmvucZy4ey5Y6QW3HFkQmt77D9FK7YEU3FmmnbGtd2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ISchemaRegistry","name":"schemaRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidResolver"},{"inputs":[],"type":"error","name":"InvalidSchema"},{"inputs":[],"type":"error","name":"InvalidSchemaRegistry"},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"schemaRegistry":"The address of the global EAS contract."}},"register(string,address,bool)":{"params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Creates a new Attester instance."},"register(string,address,bool)":{"notice":"Submits and reserves a new schema"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/SchemaRegistrar.sol":"SchemaRegistrar"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"src/contracts/eas/SchemaRegistrar.sol":{"keccak256":"0x5f50276482b77182f7a13aca38cfbd10d9d15c56a31167e0a379e1278d16bef7","urls":["bzz-raw://deb80fcfe50e1d1529d657a7f6cff17206938d1f4ba9869f65e0ec19f6624e25","dweb:/ipfs/QmaJkmvucZy4ey5Y6QW3HFkQmt77D9FK7YEU3FmmnbGtd2"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file diff --git a/frontend/abis/SchemaRegistry.json b/frontend/abis/SchemaRegistry.json index 9c6177f1..caad022e 100644 --- a/frontend/abis/SchemaRegistry.json +++ b/frontend/abis/SchemaRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"error","name":"AlreadyExists","inputs":[]}],"bytecode":{"object":"0x60e08060405234603e576001608052600360a0525f60c0526107d29081610043823960805181610458015260a05181610483015260c051816104ae0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806354fd4d501461043957806360d7a278146101625763a2ea7c6e1461003a575f80fd5b3461015e57602036600319011261015e5760608060405161005a8161059d565b5f81525f60208201525f604082015201526004355f525f60205260405f206002604051916100878361059d565b8054835260ff600182015460018060a01b038116602086015260a01c161515604084015201906040515f928054906100be826105f7565b808452916001811690811561013657506001146100fc575b50506100e7816100f89403826105b9565b60608201526040519182918261055b565b0390f35b9093505f5260205f205f905b8482106101205750810160200192506100e7816100d6565b6001816020925483858701015201910190610108565b6100f8965084925060209150926100e79360ff191682840152151560051b82010194506100d6565b5f80fd5b3461015e57606036600319011261015e5760043567ffffffffffffffff811161015e573660238201121561015e57806004013567ffffffffffffffff811161015e57366024828401011161015e576024356001600160a01b038116919082900361015e576044359182151580930361015e57604051916101e18361059d565b5f835260208301918252604083019384525f60206101fe836105db565b9261020c60405194856105b9565b80845280602483860199018937830101526060830194818652610275601560208551938851151594604051958692848401985180918a5e8301916bffffffffffffffffffffffff199060601b168483015260f81b60348201520301600a198101845201826105b9565b51902092835f525f60205260405f205461042a57600291848452845f525f60205260405f209184518355600183019160018060a01b0390511682549160ff60a01b9051151560a01b16916affffffffffffffffffffff60a81b161717905501925192835167ffffffffffffffff8111610416576102f282546105f7565b601f81116103d1575b50806020958690601f831160011461036f575f92610364575b50508160011b915f199060031b1c19161790555b817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e6040518061035933958261055b565b0390a3604051908152f35b015190508680610314565b5f8581528281209350601f198516905b8181106103ba57509084600195949392106103a2575b505050811b019055610328565b01515f1960f88460031b161c19169055868080610395565b92938960018192878601518155019501930161037f565b825f5260205f20601f830160051c8101916020841061040c575b601f0160051c01905b81811061040157506102fb565b5f81556001016103f4565b90915081906103eb565b634e487b7160e01b5f52604160045260245ffd5b63119b4fd360e11b5f5260045ffd5b3461015e575f36600319011261015e576100f86020610527600161047c7f000000000000000000000000000000000000000000000000000000000000000061062f565b81846104a77f000000000000000000000000000000000000000000000000000000000000000061062f565b81806104d27f000000000000000000000000000000000000000000000000000000000000000061062f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826105b9565b6040519182916020835260208301905b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a0606061059a936020845280516020850152600180841b03602082015116604085015260408101511515828501520151916080808201520190610537565b90565b6080810190811067ffffffffffffffff82111761041657604052565b90601f8019910116810190811067ffffffffffffffff82111761041657604052565b67ffffffffffffffff811161041657601f01601f191660200190565b90600182811c92168015610625575b602083101461061157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610606565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015610779575b806d04ee2d6d415b85acef8100000000600a92101561075e575b662386f26fc1000081101561074a575b6305f5e100811015610739575b61271081101561072a575b606481101561071c575b1015610711575b600a602160018401936106b6856105db565b946106c460405196876105b9565b8086526106d3601f19916105db565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561070c57600a90916106de565b505090565b6001909101906106a4565b60646002910493019261069d565b61271060049104930192610693565b6305f5e10060089104930192610688565b662386f26fc100006010910493019261067b565b6d04ee2d6d415b85acef81000000006020910493019261066b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b810461065156fea26469706673582212207e9791d000dff8ca280438e3079b84bff450493f61d3f413cf457f8469c7021d64736f6c634300081b0033","sourceMap":"344:1436:5:-:0;;;;;;;640:1;759:14:6;;643:1:5;783:14:6;;646:1:5;807:14:6;;344:1436:5;;;;;;759:14:6;344:1436:5;;;;;783:14:6;344:1436:5;;;;;807:14:6;344:1436:5;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806354fd4d501461043957806360d7a278146101625763a2ea7c6e1461003a575f80fd5b3461015e57602036600319011261015e5760608060405161005a8161059d565b5f81525f60208201525f604082015201526004355f525f60205260405f206002604051916100878361059d565b8054835260ff600182015460018060a01b038116602086015260a01c161515604084015201906040515f928054906100be826105f7565b808452916001811690811561013657506001146100fc575b50506100e7816100f89403826105b9565b60608201526040519182918261055b565b0390f35b9093505f5260205f205f905b8482106101205750810160200192506100e7816100d6565b6001816020925483858701015201910190610108565b6100f8965084925060209150926100e79360ff191682840152151560051b82010194506100d6565b5f80fd5b3461015e57606036600319011261015e5760043567ffffffffffffffff811161015e573660238201121561015e57806004013567ffffffffffffffff811161015e57366024828401011161015e576024356001600160a01b038116919082900361015e576044359182151580930361015e57604051916101e18361059d565b5f835260208301918252604083019384525f60206101fe836105db565b9261020c60405194856105b9565b80845280602483860199018937830101526060830194818652610275601560208551938851151594604051958692848401985180918a5e8301916bffffffffffffffffffffffff199060601b168483015260f81b60348201520301600a198101845201826105b9565b51902092835f525f60205260405f205461042a57600291848452845f525f60205260405f209184518355600183019160018060a01b0390511682549160ff60a01b9051151560a01b16916affffffffffffffffffffff60a81b161717905501925192835167ffffffffffffffff8111610416576102f282546105f7565b601f81116103d1575b50806020958690601f831160011461036f575f92610364575b50508160011b915f199060031b1c19161790555b817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e6040518061035933958261055b565b0390a3604051908152f35b015190508680610314565b5f8581528281209350601f198516905b8181106103ba57509084600195949392106103a2575b505050811b019055610328565b01515f1960f88460031b161c19169055868080610395565b92938960018192878601518155019501930161037f565b825f5260205f20601f830160051c8101916020841061040c575b601f0160051c01905b81811061040157506102fb565b5f81556001016103f4565b90915081906103eb565b634e487b7160e01b5f52604160045260245ffd5b63119b4fd360e11b5f5260045ffd5b3461015e575f36600319011261015e576100f86020610527600161047c7f000000000000000000000000000000000000000000000000000000000000000061062f565b81846104a77f000000000000000000000000000000000000000000000000000000000000000061062f565b81806104d27f000000000000000000000000000000000000000000000000000000000000000061062f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826105b9565b6040519182916020835260208301905b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a0606061059a936020845280516020850152600180841b03602082015116604085015260408101511515828501520151916080808201520190610537565b90565b6080810190811067ffffffffffffffff82111761041657604052565b90601f8019910116810190811067ffffffffffffffff82111761041657604052565b67ffffffffffffffff811161041657601f01601f191660200190565b90600182811c92168015610625575b602083101461061157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610606565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015610779575b806d04ee2d6d415b85acef8100000000600a92101561075e575b662386f26fc1000081101561074a575b6305f5e100811015610739575b61271081101561072a575b606481101561071c575b1015610711575b600a602160018401936106b6856105db565b946106c460405196876105b9565b8086526106d3601f19916105db565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561070c57600a90916106de565b505090565b6001909101906106a4565b60646002910493019261069d565b61271060049104930192610693565b6305f5e10060089104930192610688565b662386f26fc100006010910493019261067b565b6d04ee2d6d415b85acef81000000006020910493019261066b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b810461065156fea26469706673582212207e9791d000dff8ca280438e3079b84bff450493f61d3f413cf457f8469c7021d64736f6c634300081b0033","sourceMap":"344:1436:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;344:1436:5;;;;;;;;138:1:0;;;:::i;:::-;344:1436:5;;;;;;;;;;;;;;;;;;138:1:0;344:1436:5;;138:1:0;344:1436:5;;138:1:0;344:1436:5;;;138:1:0;;;;:::i;:::-;;;;;344:1436:5;;;;;;;;;;;;;;;138:1:0;344:1436:5;;;;;;;;138:1:0;344:1436:5;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;138:1:0;344:1436:5;;;;;;;:::i;:::-;;;;;138:1:0;;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;;;;;;;;-1:-1:-1;344:1436:5;;;;;-1:-1:-1;344:1436:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;138:1:0;344:1436:5;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;344:1436:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;344:1436:5;;;;;;;;;;;;;;;;;;;;;;138:1:0;;;;:::i;:::-;344:1436:5;138:1:0;;344:1436:5;849:146;;138:1:0;;;344:1436:5;849:146;;138:1:0;;;344:1436:5;;138:1:0;;;:::i;:::-;344:1436:5;138:1:0;344:1436:5;;138:1:0;;;:::i;:::-;;;;;344:1436:5;138:1:0;;;;344:1436:5;138:1:0;;;;;;344:1436:5;849:146;;138:1:0;;;;1686:84:5;344:1436;;138:1:0;;;;;344:1436:5;;;;;1686:84;;;;;;344:1436;;;;;;;;;;;;;;;;;;;;;;;;;1686:84;;;;;;;;;;;:::i;:::-;344:1436;1676:95;;138:1:0;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;;138:1:0;;1051:84:5;;138:1:0;;;;;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;;138:1:0;;;;;;;;;344:1436:5;;;;;;138:1:0;;344:1436:5;138:1:0;;;;;;;;344:1436:5;;138:1:0;;;;;;;;;;;;;344:1436:5;;;;;;138:1:0;;;;;;;;:::i;:::-;344:1436:5;138:1:0;;;;344:1436:5;138:1:0;;344:1436:5;138:1:0;;;344:1436:5;138:1:0;;;344:1436:5;;;;138:1:0;;;;;;;;;;;;;;;;;;;;;;344:1436:5;1222:41;344:1436;;1238:10;1222:41;1238:10;1222:41;;;:::i;:::-;;;;344:1436;;;;;;138:1:0;;;;-1:-1:-1;138:1:0;;;;;344:1436:5;138:1:0;;;;;;;-1:-1:-1;;;138:1:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:1436:5;138:1:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;138:1:0;;;;;;;344:1436:5;138:1:0;;;;;344:1436:5;138:1:0;;;;;;;;;;;;;;;344:1436:5;138:1:0;;;;;;;;;-1:-1:-1;138:1:0;;;;;344:1436:5;;;;;;;;;;;1051:84;1109:15;;;344:1436;1109:15;344:1436;;1109:15;344:1436;;;;;;-1:-1:-1;;344:1436:5;;;;;1055:104:6;;344:1436:5;1072:24:6;1089:6;1072:24;:::i;:::-;1120:6;;1103:24;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;344:1436:5;;;;;;;;;;;;1055:104:6;;;344:1436:5;;;;-1:-1:-1;;;344:1436:5;;;;;;;;;;;;;;;;;-1:-1:-1;;;344:1436:5;;;;;;;;;;;;;;;;;;;;;1055:104:6;;;;;;;;;;:::i;:::-;344:1436:5;;;;;1055:104:6;344:1436:5;;1055:104:6;344:1436:5;;;;;;;;;;;;;;;;;;;;-1:-1:-1;344:1436:5;;;;;;;;-1:-1:-1;;344:1436:5;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;138:1:0;344:1436:5;;;;;;;;;;;;;:::o;:::-;;;1055:104:6;;344:1436:5;;;;;;;;;;;;;;;;:::o;138:1:0:-;;;;;;344:1436:5;;-1:-1:-1;;344:1436:5;138:1:0;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;344:1436:5;;;138:1:0;;;;;;;;;;;;;;;1308:634:57;1430:17;-1:-1:-1;29282:17:66;-1:-1:-1;;;29282:17:66;;;29278:103;;1308:634:57;29398:17:66;29407:8;29978:7;29398:17;;;29394:103;;1308:634:57;29523:8:66;29514:17;;;29510:103;;1308:634:57;29639:7:66;29630:16;;;29626:100;;1308:634:57;29752:7:66;29743:16;;;29739:100;;1308:634:57;29865:7:66;29856:16;;;29852:100;;1308:634:57;29969:16:66;;29965:66;;1308:634:57;29978:7:66;1545:94:57;1450:1;344:1436:5;;;;;;:::i;:::-;;138:1:0;344:1436:5;;138:1:0;;;:::i;:::-;344:1436:5;;;;1055:104:6;;344:1436:5;;:::i;:::-;;;;;;;1545:94:57;;;1652:247;-1:-1:-1;;344:1436:5;;-1:-1:-1;;;1706:111:57;;;;344:1436:5;1706:111:57;344:1436:5;1867:10:57;;1863:21;;29978:7:66;1652:247:57;;;;1863:21;1879:5;;1308:634;:::o;29965:66:66:-;30015:1;344:1436:5;;;;29965:66:66;;29852:100;29865:7;29936:1;344:1436:5;;;;29852:100:66;;;29739;29752:7;29823:1;344:1436:5;;;;29739:100:66;;;29626;29639:7;29710:1;344:1436:5;;;;29626:100:66;;;29510:103;29523:8;29596:2;344:1436:5;;;;29510:103:66;;;29394;29407:8;29480:2;344:1436:5;;;;29394:103:66;;;29278;-1:-1:-1;29364:2:66;;-1:-1:-1;;;;344:1436:5;;29278:103:66;","linkReferences":{},"immutableReferences":{"2532":[{"start":1112,"length":32}],"2534":[{"start":1155,"length":32}],"2536":[{"start":1198,"length":32}]}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Creates a new SchemaRegistry instance.\"},\"getSchema(bytes32)\":{\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"SchemaRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"notice\":\"Emitted when a new schema has been registered\"}},\"kind\":\"user\",\"methods\":{\"getSchema(bytes32)\":{\"notice\":\"Returns an existing schema by UID\"},\"register(string,address,bool)\":{\"notice\":\"Submits and reserves a new schema\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"The global schema registry.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol\":\"SchemaRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol\":{\"keccak256\":\"0x03ba24da8053a6ace797cd2683971b4f4a55909adbb3928c57d9864b71ff0a56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14ef01ae0216b9f2eaa794f2bb49705c2d2df6d65e667d8a47d13a2fd3201d79\",\"dweb:/ipfs/QmYALhY8KaD5AhgHiUxZWxpMuD4eznae9dLr9594kZFSgm\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyExists"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Creates a new SchemaRegistry instance."},"getSchema(bytes32)":{"params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"getSchema(bytes32)":{"notice":"Returns an existing schema by UID"},"register(string,address,bool)":{"notice":"Submits and reserves a new schema"},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol":"SchemaRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol":{"keccak256":"0x03ba24da8053a6ace797cd2683971b4f4a55909adbb3928c57d9864b71ff0a56","urls":["bzz-raw://14ef01ae0216b9f2eaa794f2bb49705c2d2df6d65e667d8a47d13a2fd3201d79","dweb:/ipfs/QmYALhY8KaD5AhgHiUxZWxpMuD4eznae9dLr9594kZFSgm"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getSchema","inputs":[{"name":"uid","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"register","inputs":[{"name":"schema","type":"string","internalType":"string"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Registered","inputs":[{"name":"uid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"registerer","type":"address","indexed":true,"internalType":"address"},{"name":"schema","type":"tuple","indexed":false,"internalType":"struct SchemaRecord","components":[{"name":"uid","type":"bytes32","internalType":"bytes32"},{"name":"resolver","type":"address","internalType":"contract ISchemaResolver"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"schema","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"error","name":"AlreadyExists","inputs":[]}],"bytecode":{"object":"0x60e08060405234603e576001608052600360a0525f60c0526107d29081610043823960805181610458015260a05181610483015260c051816104ae0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806354fd4d501461043957806360d7a278146101625763a2ea7c6e1461003a575f80fd5b3461015e57602036600319011261015e5760608060405161005a8161059d565b5f81525f60208201525f604082015201526004355f525f60205260405f206002604051916100878361059d565b8054835260ff600182015460018060a01b038116602086015260a01c161515604084015201906040515f928054906100be826105f7565b808452916001811690811561013657506001146100fc575b50506100e7816100f89403826105b9565b60608201526040519182918261055b565b0390f35b9093505f5260205f205f905b8482106101205750810160200192506100e7816100d6565b6001816020925483858701015201910190610108565b6100f8965084925060209150926100e79360ff191682840152151560051b82010194506100d6565b5f80fd5b3461015e57606036600319011261015e5760043567ffffffffffffffff811161015e573660238201121561015e57806004013567ffffffffffffffff811161015e57366024828401011161015e576024356001600160a01b038116919082900361015e576044359182151580930361015e57604051916101e18361059d565b5f835260208301918252604083019384525f60206101fe836105db565b9261020c60405194856105b9565b80845280602483860199018937830101526060830194818652610275601560208551938851151594604051958692848401985180918a5e8301916bffffffffffffffffffffffff199060601b168483015260f81b60348201520301600a198101845201826105b9565b51902092835f525f60205260405f205461042a57600291848452845f525f60205260405f209184518355600183019160018060a01b0390511682549160ff60a01b9051151560a01b16916affffffffffffffffffffff60a81b161717905501925192835167ffffffffffffffff8111610416576102f282546105f7565b601f81116103d1575b50806020958690601f831160011461036f575f92610364575b50508160011b915f199060031b1c19161790555b817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e6040518061035933958261055b565b0390a3604051908152f35b015190508680610314565b5f8581528281209350601f198516905b8181106103ba57509084600195949392106103a2575b505050811b019055610328565b01515f1960f88460031b161c19169055868080610395565b92938960018192878601518155019501930161037f565b825f5260205f20601f830160051c8101916020841061040c575b601f0160051c01905b81811061040157506102fb565b5f81556001016103f4565b90915081906103eb565b634e487b7160e01b5f52604160045260245ffd5b63119b4fd360e11b5f5260045ffd5b3461015e575f36600319011261015e576100f86020610527600161047c7f000000000000000000000000000000000000000000000000000000000000000061062f565b81846104a77f000000000000000000000000000000000000000000000000000000000000000061062f565b81806104d27f000000000000000000000000000000000000000000000000000000000000000061062f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826105b9565b6040519182916020835260208301905b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a0606061059a936020845280516020850152600180841b03602082015116604085015260408101511515828501520151916080808201520190610537565b90565b6080810190811067ffffffffffffffff82111761041657604052565b90601f8019910116810190811067ffffffffffffffff82111761041657604052565b67ffffffffffffffff811161041657601f01601f191660200190565b90600182811c92168015610625575b602083101461061157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610606565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015610779575b806d04ee2d6d415b85acef8100000000600a92101561075e575b662386f26fc1000081101561074a575b6305f5e100811015610739575b61271081101561072a575b606481101561071c575b1015610711575b600a602160018401936106b6856105db565b946106c460405196876105b9565b8086526106d3601f19916105db565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561070c57600a90916106de565b505090565b6001909101906106a4565b60646002910493019261069d565b61271060049104930192610693565b6305f5e10060089104930192610688565b662386f26fc100006010910493019261067b565b6d04ee2d6d415b85acef81000000006020910493019261066b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b810461065156fea26469706673582212207e9791d000dff8ca280438e3079b84bff450493f61d3f413cf457f8469c7021d64736f6c634300081b0033","sourceMap":"344:1436:5:-:0;;;;;;;640:1;759:14:6;;643:1:5;783:14:6;;646:1:5;807:14:6;;344:1436:5;;;;;;759:14:6;344:1436:5;;;;;783:14:6;344:1436:5;;;;;807:14:6;344:1436:5;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806354fd4d501461043957806360d7a278146101625763a2ea7c6e1461003a575f80fd5b3461015e57602036600319011261015e5760608060405161005a8161059d565b5f81525f60208201525f604082015201526004355f525f60205260405f206002604051916100878361059d565b8054835260ff600182015460018060a01b038116602086015260a01c161515604084015201906040515f928054906100be826105f7565b808452916001811690811561013657506001146100fc575b50506100e7816100f89403826105b9565b60608201526040519182918261055b565b0390f35b9093505f5260205f205f905b8482106101205750810160200192506100e7816100d6565b6001816020925483858701015201910190610108565b6100f8965084925060209150926100e79360ff191682840152151560051b82010194506100d6565b5f80fd5b3461015e57606036600319011261015e5760043567ffffffffffffffff811161015e573660238201121561015e57806004013567ffffffffffffffff811161015e57366024828401011161015e576024356001600160a01b038116919082900361015e576044359182151580930361015e57604051916101e18361059d565b5f835260208301918252604083019384525f60206101fe836105db565b9261020c60405194856105b9565b80845280602483860199018937830101526060830194818652610275601560208551938851151594604051958692848401985180918a5e8301916bffffffffffffffffffffffff199060601b168483015260f81b60348201520301600a198101845201826105b9565b51902092835f525f60205260405f205461042a57600291848452845f525f60205260405f209184518355600183019160018060a01b0390511682549160ff60a01b9051151560a01b16916affffffffffffffffffffff60a81b161717905501925192835167ffffffffffffffff8111610416576102f282546105f7565b601f81116103d1575b50806020958690601f831160011461036f575f92610364575b50508160011b915f199060031b1c19161790555b817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e6040518061035933958261055b565b0390a3604051908152f35b015190508680610314565b5f8581528281209350601f198516905b8181106103ba57509084600195949392106103a2575b505050811b019055610328565b01515f1960f88460031b161c19169055868080610395565b92938960018192878601518155019501930161037f565b825f5260205f20601f830160051c8101916020841061040c575b601f0160051c01905b81811061040157506102fb565b5f81556001016103f4565b90915081906103eb565b634e487b7160e01b5f52604160045260245ffd5b63119b4fd360e11b5f5260045ffd5b3461015e575f36600319011261015e576100f86020610527600161047c7f000000000000000000000000000000000000000000000000000000000000000061062f565b81846104a77f000000000000000000000000000000000000000000000000000000000000000061062f565b81806104d27f000000000000000000000000000000000000000000000000000000000000000061062f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826105b9565b6040519182916020835260208301905b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a0606061059a936020845280516020850152600180841b03602082015116604085015260408101511515828501520151916080808201520190610537565b90565b6080810190811067ffffffffffffffff82111761041657604052565b90601f8019910116810190811067ffffffffffffffff82111761041657604052565b67ffffffffffffffff811161041657601f01601f191660200190565b90600182811c92168015610625575b602083101461061157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610606565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015610779575b806d04ee2d6d415b85acef8100000000600a92101561075e575b662386f26fc1000081101561074a575b6305f5e100811015610739575b61271081101561072a575b606481101561071c575b1015610711575b600a602160018401936106b6856105db565b946106c460405196876105b9565b8086526106d3601f19916105db565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304801561070c57600a90916106de565b505090565b6001909101906106a4565b60646002910493019261069d565b61271060049104930192610693565b6305f5e10060089104930192610688565b662386f26fc100006010910493019261067b565b6d04ee2d6d415b85acef81000000006020910493019261066b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b810461065156fea26469706673582212207e9791d000dff8ca280438e3079b84bff450493f61d3f413cf457f8469c7021d64736f6c634300081b0033","sourceMap":"344:1436:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;344:1436:5;;;;;;;;138:1:0;;;:::i;:::-;344:1436:5;;;;;;;;;;;;;;;;;;138:1:0;344:1436:5;;138:1:0;344:1436:5;;138:1:0;344:1436:5;;;138:1:0;;;;:::i;:::-;;;;;344:1436:5;;;;;;;;;;;;;;;138:1:0;344:1436:5;;;;;;;;138:1:0;344:1436:5;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;138:1:0;344:1436:5;;;;;;;:::i;:::-;;;;;138:1:0;;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;;;;;;;;-1:-1:-1;344:1436:5;;;;;-1:-1:-1;344:1436:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;138:1:0;344:1436:5;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;344:1436:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;344:1436:5;;;;;;;;;;;;;;;;;;;;;;138:1:0;;;;:::i;:::-;344:1436:5;138:1:0;;344:1436:5;849:146;;138:1:0;;;344:1436:5;849:146;;138:1:0;;;344:1436:5;;138:1:0;;;:::i;:::-;344:1436:5;138:1:0;344:1436:5;;138:1:0;;;:::i;:::-;;;;;344:1436:5;138:1:0;;;;344:1436:5;138:1:0;;;;;;344:1436:5;849:146;;138:1:0;;;;1686:84:5;344:1436;;138:1:0;;;;;344:1436:5;;;;;1686:84;;;;;;344:1436;;;;;;;;;;;;;;;;;;;;;;;;;1686:84;;;;;;;;;;;:::i;:::-;344:1436;1676:95;;138:1:0;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;;138:1:0;;1051:84:5;;138:1:0;;;;;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;;138:1:0;;;;;;;;;344:1436:5;;;;;;138:1:0;;344:1436:5;138:1:0;;;;;;;;344:1436:5;;138:1:0;;;;;;;;;;;;;344:1436:5;;;;;;138:1:0;;;;;;;;:::i;:::-;344:1436:5;138:1:0;;;;344:1436:5;138:1:0;;344:1436:5;138:1:0;;;344:1436:5;138:1:0;;;344:1436:5;;;;138:1:0;;;;;;;;;;;;;;;;;;;;;;344:1436:5;1222:41;344:1436;;1238:10;1222:41;1238:10;1222:41;;;:::i;:::-;;;;344:1436;;;;;;138:1:0;;;;-1:-1:-1;138:1:0;;;;;344:1436:5;138:1:0;;;;;;;-1:-1:-1;;;138:1:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:1436:5;138:1:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:1436:5;138:1:0;344:1436:5;;138:1:0;344:1436:5;138:1:0;;;;;;;344:1436:5;138:1:0;;;;;344:1436:5;138:1:0;;;;;;;;;;;;;;;344:1436:5;138:1:0;;;;;;;;;-1:-1:-1;138:1:0;;;;;344:1436:5;;;;;;;;;;;1051:84;1109:15;;;344:1436;1109:15;344:1436;;1109:15;344:1436;;;;;;-1:-1:-1;;344:1436:5;;;;;1055:104:6;;344:1436:5;1072:24:6;1089:6;1072:24;:::i;:::-;1120:6;;1103:24;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;344:1436:5;;;;;;;;;;;;1055:104:6;;;344:1436:5;;;;-1:-1:-1;;;344:1436:5;;;;;;;;;;;;;;;;;-1:-1:-1;;;344:1436:5;;;;;;;;;;;;;;;;;;;;;1055:104:6;;;;;;;;;;:::i;:::-;344:1436:5;;;;;1055:104:6;344:1436:5;;1055:104:6;344:1436:5;;;;;;;;;;;;;;;;;;;;-1:-1:-1;344:1436:5;;;;;;;;-1:-1:-1;;344:1436:5;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;138:1:0;344:1436:5;;;;;;;;;;;;;:::o;:::-;;;1055:104:6;;344:1436:5;;;;;;;;;;;;;;;;:::o;138:1:0:-;;;;;;344:1436:5;;-1:-1:-1;;344:1436:5;138:1:0;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;344:1436:5;;;138:1:0;;;;;;;;;;;;;;;1308:634:59;1430:17;-1:-1:-1;29282:17:67;-1:-1:-1;;;29282:17:67;;;29278:103;;1308:634:59;29398:17:67;29407:8;29978:7;29398:17;;;29394:103;;1308:634:59;29523:8:67;29514:17;;;29510:103;;1308:634:59;29639:7:67;29630:16;;;29626:100;;1308:634:59;29752:7:67;29743:16;;;29739:100;;1308:634:59;29865:7:67;29856:16;;;29852:100;;1308:634:59;29969:16:67;;29965:66;;1308:634:59;29978:7:67;1545:94:59;1450:1;344:1436:5;;;;;;:::i;:::-;;138:1:0;344:1436:5;;138:1:0;;;:::i;:::-;344:1436:5;;;;1055:104:6;;344:1436:5;;:::i;:::-;;;;;;;1545:94:59;;;1652:247;-1:-1:-1;;344:1436:5;;-1:-1:-1;;;1706:111:59;;;;344:1436:5;1706:111:59;344:1436:5;1867:10:59;;1863:21;;29978:7:67;1652:247:59;;;;1863:21;1879:5;;1308:634;:::o;29965:66:67:-;30015:1;344:1436:5;;;;29965:66:67;;29852:100;29865:7;29936:1;344:1436:5;;;;29852:100:67;;;29739;29752:7;29823:1;344:1436:5;;;;29739:100:67;;;29626;29639:7;29710:1;344:1436:5;;;;29626:100:67;;;29510:103;29523:8;29596:2;344:1436:5;;;;29510:103:67;;;29394;29407:8;29480:2;344:1436:5;;;;29394:103:67;;;29278;-1:-1:-1;29364:2:67;;-1:-1:-1;;;;344:1436:5;;29278:103:67;","linkReferences":{},"immutableReferences":{"2532":[{"start":1112,"length":32}],"2534":[{"start":1155,"length":32}],"2536":[{"start":1198,"length":32}]}},"methodIdentifiers":{"getSchema(bytes32)":"a2ea7c6e","register(string,address,bool)":"60d7a278","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registerer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct SchemaRecord\",\"name\":\"schema\",\"type\":\"tuple\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"}],\"name\":\"getSchema\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"uid\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"internalType\":\"struct SchemaRecord\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"contract ISchemaResolver\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"params\":{\"registerer\":\"The address of the account used to register the schema.\",\"schema\":\"The schema data.\",\"uid\":\"The schema UID.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Creates a new SchemaRegistry instance.\"},\"getSchema(bytes32)\":{\"params\":{\"uid\":\"The UID of the schema to retrieve.\"},\"returns\":{\"_0\":\"The schema data members.\"}},\"register(string,address,bool)\":{\"params\":{\"resolver\":\"An optional schema resolver.\",\"revocable\":\"Whether the schema allows revocations explicitly.\",\"schema\":\"The schema data schema.\"},\"returns\":{\"_0\":\"The UID of the new schema.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"SchemaRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"Registered(bytes32,address,(bytes32,address,bool,string))\":{\"notice\":\"Emitted when a new schema has been registered\"}},\"kind\":\"user\",\"methods\":{\"getSchema(bytes32)\":{\"notice\":\"Returns an existing schema by UID\"},\"register(string,address,bool)\":{\"notice\":\"Submits and reserves a new schema\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"The global schema registry.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol\":\"SchemaRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol\":{\"keccak256\":\"0x03ba24da8053a6ace797cd2683971b4f4a55909adbb3928c57d9864b71ff0a56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14ef01ae0216b9f2eaa794f2bb49705c2d2df6d65e667d8a47d13a2fd3201d79\",\"dweb:/ipfs/QmYALhY8KaD5AhgHiUxZWxpMuD4eznae9dLr9594kZFSgm\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyExists"},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32","indexed":true},{"internalType":"address","name":"registerer","type":"address","indexed":true},{"internalType":"struct SchemaRecord","name":"schema","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}],"indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"uid","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSchema","outputs":[{"internalType":"struct SchemaRecord","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"uid","type":"bytes32"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"string","name":"schema","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"schema","type":"string"},{"internalType":"contract ISchemaResolver","name":"resolver","type":"address"},{"internalType":"bool","name":"revocable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"register","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Creates a new SchemaRegistry instance."},"getSchema(bytes32)":{"params":{"uid":"The UID of the schema to retrieve."},"returns":{"_0":"The schema data members."}},"register(string,address,bool)":{"params":{"resolver":"An optional schema resolver.","revocable":"Whether the schema allows revocations explicitly.","schema":"The schema data schema."},"returns":{"_0":"The UID of the new schema."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"getSchema(bytes32)":{"notice":"Returns an existing schema by UID"},"register(string,address,bool)":{"notice":"Submits and reserves a new schema"},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol":"SchemaRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/SchemaRegistry.sol":{"keccak256":"0x03ba24da8053a6ace797cd2683971b4f4a55909adbb3928c57d9864b71ff0a56","urls":["bzz-raw://14ef01ae0216b9f2eaa794f2bb49705c2d2df6d65e667d8a47d13a2fd3201d79","dweb:/ipfs/QmYALhY8KaD5AhgHiUxZWxpMuD4eznae9dLr9594kZFSgm"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/frontend/abis/WavsAttester.json b/frontend/abis/WavsAttester.json index 2d4d5d97..16558846 100644 --- a/frontend/abis/WavsAttester.json +++ b/frontend/abis/WavsAttester.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"eas","type":"address","internalType":"contract IEAS"},{"name":"serviceManager","type":"address","internalType":"contract IWavsServiceManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"decodeAttestData","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct AttestationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct AttestationRequestData","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"pure"},{"type":"function","name":"decodeAttestationPayload","inputs":[{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct WavsAttester.AttestationPayload","components":[{"name":"operationType","type":"uint8","internalType":"enum WavsAttester.OperationType"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"stateMutability":"pure"},{"type":"function","name":"envelopesSeen","inputs":[{"name":"eventId","type":"bytes20","internalType":"bytes20"}],"outputs":[{"name":"seen","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"handleSignedEnvelope","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DebuggingAttestCalled","inputs":[{"name":"schema","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"dataLength","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DebuggingEnvelopeReceived","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"payloadLength","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DebuggingPayloadDecoded","inputs":[{"name":"operationType","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"dataLength","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"DataDecodingFailed","inputs":[]},{"type":"error","name":"EnvelopeAlreadySeen","inputs":[]},{"type":"error","name":"InvalidEAS","inputs":[]},{"type":"error","name":"InvalidInput","inputs":[]},{"type":"error","name":"InvalidOperationType","inputs":[]},{"type":"error","name":"InvalidServiceManager","inputs":[]},{"type":"error","name":"PayloadDecodingFailed","inputs":[]}],"bytecode":{"object":"0x60c0346100d357601f61173738819003918201601f19168301916001600160401b038311848410176100d75780849260409485528339810103126100d35780516001600160a01b038116918282036100d35760200151916001600160a01b038316908184036100d357156100c457156100b55760805260a05260405161164b90816100ec82396080518181816103fc015281816104cb015281816107390152610c12015260a05181818161010c01526110e00152f35b63c172d20d60e01b5f5260045ffd5b6341bc07ff60e11b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c908163025d26be1461117c575080634a216dfd1461110f5780634dda0b43146110cb578063a2be485814610fbe5763f969ff3314610055575f80fd5b34610f58576040366003190112610f58576004356001600160401b038111610f58578060040160606003198336030112610f5857602435916001600160401b038311610f5857826004019260606003198236030112610f585760448201937ffd39b2c951b44160da2f98e621c4a6b23f44c84369c0a56d55e3bea5b46c62836100de86866114a8565b6100e888886114a8565b90506101016040519384936040855260408501916114da565b9060208301520390a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610f5857604051936366b8ac4f60e11b8552604060048601528535906001600160601b03198216809203610f5857602491604487015201356001600160601b0360a01b8116809103610f585760648501526101a661019587876114fa565b6060608488015260a48701916114da565b8481036003190160248601529260608401926101c2818061152b565b606087529485905260808601945f905b808210610f94575050506101ea90602483019061152b565b8585036020870152808552602085019460208260051b82010195835f925b848410610f5c575050505050506044013563ffffffff8116809103610f5857848093819260405f97015203915afa8015610f4d57610f38575b506bffffffffffffffffffffffff196102598261155f565b1683528260205260ff604084205416610f29576102ab6102ce9284926001600160601b03196102878261155f565b1684528360205260408420600160ff198254161790556102a561148f565b506114a8565b604051631457c90b60e31b815260206004820152938492839260248401916114da565b0381305afa829181610eab575b506102ef57634f64bf9960e11b8252600482fd5b8051906004821015610e83577f06e6774badbd7bd95530bc9e7f593f19a2e1515e6ab3245ecb9978f056028d6b6040602083019384515160ff8351921682526020820152a180516004811015610e975761049457508161036c915160405180938192634a216dfd60e01b8352602060048401526024830190611285565b0381305afa829181610470575b5061038d576360f64c0760e11b8252600482fd5b6020817fe0a2fc834214a484d7756937616355e9dfc7466a3279e76ca5c2b34834f449c060606103f7945184840151608060018060a01b038251169101515190604051928352868301526040820152a16040518093819263f17325e760e01b835260048301611304565b0381857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610434575080f35b6020813d60201161045d575b8161044d60209383611203565b81010312610459575080f35b5080fd5b3d9150610440565b6040513d84823e3d90fd5b61048d9192503d8085833e6104858183611203565b8101906113b3565b905f610379565b91908251926004841015610e835760018394145f1461057c57505160408180518101031261057957602081015160409182015191517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926104fd826111b9565b815283602082015260405191610512836111b9565b825260208201908152823b156105765760648492836020956040519687958694634692626760e01b86525160048601525180516024860152015160448401525af180156104655761056257505080f35b8161056c91611203565b6105735780f35b80fd5b50505b50fd5b80919250516004811015610e9757600203610b1257505180518101606082602083019203126107ae5760208201516001600160401b0381116107aa578160206105c792850101611590565b9160408101516001600160401b038111610a7e5781019082603f83011215610a7e576020820151916105f883611579565b926106066040519485611203565b8084526020808086019260051b8401010191858311610a7a5760408101915b838310610a8657505050506060810151906001600160401b038211610a82570182603f82011215610a7e5760208101519061065f82611579565b9361066d6040519586611203565b8285526020808087019460051b8401010191818311610a7a5760408101935b8385106109c8575050505050825190811580156109bd575b80156109b2575b6109a3576106b882611579565b936106c66040519586611203565b828552601f196106d584611579565b01865b81811061098c575050855b838110610842575050505050816040518092632256e48760e11b8252602482016020600484015281518091526044830190602060448260051b86010193019185905b8282106107b25750505090829003905081837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610771575080f35b3d8083833e6107808183611203565b81016020828203126107ae5781516001600160401b0381116107aa576107a69201611590565b5080f35b8380fd5b8280fd5b9295509290935060431986820301825284519060206040820192805183520151916040602083015282518091526060820190602060608260051b8501019401928a5b828110610817575050505050602080600192960192019201928593879593610725565b9091929394602080610835600193605f1987820301895289516112a9565b97019501939291016107f4565b61084c81836115ed565b5161085782856115ed565b5161086283886115ed565b5161086b61148f565b5080519081158015610981575b6109725761088582611579565b926108936040519485611203565b828452601f196108a284611579565b018c5b81811061095b5750508b5b8381106108f057505050509060019291604051916108cd836111b9565b825260208201526108de82896115ed565b526108e981886115ed565b50016106e3565b6001908d6001600160a01b0361090683866115ed565b51169061091383876115ed565b5160405192610921846111e8565b8352816020840152846040840152816060840152608083015260a082015261094982886115ed565b5261095481876115ed565b50016108b0565b602090610966611328565b828289010152016108a5565b63b4fa3fb360e01b8b5260048bfd5b508251821415610878565b60209061099761148f565b82828a010152016106d8565b63b4fa3fb360e01b8552600485fd5b5082518214156106ab565b5080518214156106a4565b84516001600160401b038111610a765760209083010183603f82011215610a76576020810151906109f882611579565b91610a066040519384611203565b8083526020808085019260051b8401010191868311610a725760408101915b838310610a3f57505050908252506020948501940161068c565b82516001600160401b038111610a6e57602091610a638a848080958801010161136d565b815201920191610a25565b8e80fd5b8c80fd5b8980fd5b8780fd5b8480fd5b8580fd5b82516001600160401b038111610a765760209083010187603f82011215610a7657602081015190610ab682611579565b91610ac46040519384611203565b8083526020808085019260051b84010101918a8311610a7257604001905b828210610afa57505050815260209283019201610625565b60208091610b0784611359565b815201910190610ae2565b516004811015610e8357600303610e745751908151820191604081602085019403126104595760208101516001600160401b0381116107ae57836020610b5a92840101611590565b906040810151906001600160401b0382116107aa57019280603f850112156107ae57602084015193610b8b85611579565b94610b996040519687611203565b8086526020808088019260051b8401010191838311610a825760408101915b838310610e45575050505050805180158015610e3a575b610e2b57610bdc81611579565b93610bea6040519586611203565b818552601f19610bf983611579565b01845b818110610e14575050835b828110610d125750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316915050803b156104595760405190634cb7e9e560e01b825260248201936020600484015280518095526044830194602060448260051b86010192019085965b818810610ca0575050508394508391838381809403925af180156104655761056257505080f35b9091926043198682030182528351602060608160408501938051865201519360408382015284518094520192019088905b808210610cf05750505060208060019295019201970196919091610c79565b9091926020604060019282875180518352015183820152019401920190610cd1565b610d1c81836115ed565b5180518015610e0557610d2e81611579565b91610d3c6040519384611203565b818352601f19610d4b83611579565b01885b818110610de2575050875b828110610da35750505090600191610d7182876115ed565b519060405191610d80836111b9565b82526020820152610d9182896115ed565b52610d9c81886115ed565b5001610c07565b80610db0600192846115ed565b5160405190610dbe826111b9565b81528a6020820152610dd082876115ed565b52610ddb81866115ed565b5001610d59565b602090604051610df1816111b9565b8b81528b8382015282828801015201610d4e565b63b4fa3fb360e01b8752600487fd5b602090610e1f61148f565b82828a01015201610bfc565b63b4fa3fb360e01b8352600483fd5b508351811415610bcf565b82516001600160401b038111610a7a57602091610e69878480809588010101611590565b815201920191610bb8565b630ead561960e11b8252600482fd5b634e487b7160e01b83526021600452602483fd5b634e487b7160e01b84526021600452602484fd5b9091503d8084833e610ebd8183611203565b8101906020818303126107aa578051906001600160401b038211610a7e57016040818303126107aa5760405191610ef3836111b9565b81516004811015610a8257835260208201516001600160401b038111610a8257610f1d920161136d565b6020820152905f6102db565b633a181deb60e11b8352600483fd5b610f459193505f90611203565b5f915f610241565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080610f84600193601f19868203018852610f7e8d886114fa565b906114da565b9a01940194019294939190610208565b90919586359060018060a01b038216809203610f58576020816001938293520197019201906101d2565b34610f58576020366003190112610f58576004356001600160401b038111610f585736602382011215610f585780600401356001600160401b038111610f585781016024810191368311610f585761101461148f565b50602081830312610f58576024810135906001600160401b038211610f5857019060409082900312610f58576040519161104d836111b9565b60248201356004811015610f585783526044820135916001600160401b038311610f585761107e920160240161123f565b6020820190815260405191602083525160048110156110b75782916110b3916020840152516040808401526060830190611285565b0390f35b634e487b7160e01b5f52602160045260245ffd5b34610f58575f366003190112610f58576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610f58576020366003190112610f58576004356001600160401b038111610f58576111706111456110b392369060040161123f565b604051611151816111b9565b5f8152602061115e611328565b910152602080825183010191016113b3565b60405191829182611304565b34610f58576020366003190112610f5857600435906001600160601b03198216809203610f58576020915f525f825260ff60405f20541615158152f35b604081019081106001600160401b038211176111d457604052565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b038211176111d457604052565b90601f801991011681019081106001600160401b038211176111d457604052565b6001600160401b0381116111d457601f01601f191660200190565b81601f82011215610f585780359061125682611224565b926112646040519485611203565b82845260208383010111610f5857815f926020809301838601378301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060018060a01b0382511681526001600160401b0360208301511660208201526040820151151560408201526060820151606082015260a0806112fb608085015160c0608086015260c0850190611285565b93015191015290565b606060206113259381845280518285015201519160408082015201906112a9565b90565b60405190611335826111e8565b5f60a083828152826020820152826040820152826060820152606060808201520152565b51906001600160a01b0382168203610f5857565b81601f82011215610f585780519061138482611224565b926113926040519485611203565b82845260208383010111610f5857815f9260208093018386015e8301015290565b602081830312610f58578051906001600160401b038211610f58570190604082820312610f5857604051916113e7836111b9565b805183526020810151906001600160401b038211610f5857019060c082820312610f585760405191611418836111e8565b61142181611359565b835260208101516001600160401b0381168103610f5857602084015260408101518015158103610f585760408401526060810151606084015260808101516001600160401b038111610f585760a09261147b91830161136d565b6080840152015160a0820152602082015290565b6040519061149c826111b9565b60606020835f81520152565b903590601e1981360301821215610f5857018035906001600160401b038211610f5857602001918136038313610f5857565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578136038313610f5857565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578160051b36038313610f5857565b356bffffffffffffffffffffffff1981168103610f585790565b6001600160401b0381116111d45760051b60200190565b9080601f83011215610f585781516115a781611579565b926115b56040519485611203565b81845260208085019260051b820101928311610f5857602001905b8282106115dd5750505090565b81518152602091820191016115d0565b80518210156116015760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220c6e040b4160c8b146319b09f87fc0e1f0cc0274ea8709b4bbd89b1c69187949f64736f6c634300081b0033","sourceMap":"720:8768:93:-:0;;;;;;;;;;;;;-1:-1:-1;;720:8768:93;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;1966:26;1962:76;;2051:37;2047:98;;2155:9;;2174:32;;720:8768;;;;;;;;2155:9;720:8768;;;;;;;;;;;;;;;;;;;;2174:32;720:8768;;;;;;;;;;;2047:98;2111:23;;;-1:-1:-1;2111:23:93;;-1:-1:-1;2111:23:93;1962:76;2015:12;;;-1:-1:-1;2015:12:93;;-1:-1:-1;2015:12:93;720:8768;-1:-1:-1;720:8768:93;;;;;;-1:-1:-1;720:8768:93;;;;;-1:-1:-1;720:8768:93","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c908163025d26be1461117c575080634a216dfd1461110f5780634dda0b43146110cb578063a2be485814610fbe5763f969ff3314610055575f80fd5b34610f58576040366003190112610f58576004356001600160401b038111610f58578060040160606003198336030112610f5857602435916001600160401b038311610f5857826004019260606003198236030112610f585760448201937ffd39b2c951b44160da2f98e621c4a6b23f44c84369c0a56d55e3bea5b46c62836100de86866114a8565b6100e888886114a8565b90506101016040519384936040855260408501916114da565b9060208301520390a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610f5857604051936366b8ac4f60e11b8552604060048601528535906001600160601b03198216809203610f5857602491604487015201356001600160601b0360a01b8116809103610f585760648501526101a661019587876114fa565b6060608488015260a48701916114da565b8481036003190160248601529260608401926101c2818061152b565b606087529485905260808601945f905b808210610f94575050506101ea90602483019061152b565b8585036020870152808552602085019460208260051b82010195835f925b848410610f5c575050505050506044013563ffffffff8116809103610f5857848093819260405f97015203915afa8015610f4d57610f38575b506bffffffffffffffffffffffff196102598261155f565b1683528260205260ff604084205416610f29576102ab6102ce9284926001600160601b03196102878261155f565b1684528360205260408420600160ff198254161790556102a561148f565b506114a8565b604051631457c90b60e31b815260206004820152938492839260248401916114da565b0381305afa829181610eab575b506102ef57634f64bf9960e11b8252600482fd5b8051906004821015610e83577f06e6774badbd7bd95530bc9e7f593f19a2e1515e6ab3245ecb9978f056028d6b6040602083019384515160ff8351921682526020820152a180516004811015610e975761049457508161036c915160405180938192634a216dfd60e01b8352602060048401526024830190611285565b0381305afa829181610470575b5061038d576360f64c0760e11b8252600482fd5b6020817fe0a2fc834214a484d7756937616355e9dfc7466a3279e76ca5c2b34834f449c060606103f7945184840151608060018060a01b038251169101515190604051928352868301526040820152a16040518093819263f17325e760e01b835260048301611304565b0381857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610434575080f35b6020813d60201161045d575b8161044d60209383611203565b81010312610459575080f35b5080fd5b3d9150610440565b6040513d84823e3d90fd5b61048d9192503d8085833e6104858183611203565b8101906113b3565b905f610379565b91908251926004841015610e835760018394145f1461057c57505160408180518101031261057957602081015160409182015191517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926104fd826111b9565b815283602082015260405191610512836111b9565b825260208201908152823b156105765760648492836020956040519687958694634692626760e01b86525160048601525180516024860152015160448401525af180156104655761056257505080f35b8161056c91611203565b6105735780f35b80fd5b50505b50fd5b80919250516004811015610e9757600203610b1257505180518101606082602083019203126107ae5760208201516001600160401b0381116107aa578160206105c792850101611590565b9160408101516001600160401b038111610a7e5781019082603f83011215610a7e576020820151916105f883611579565b926106066040519485611203565b8084526020808086019260051b8401010191858311610a7a5760408101915b838310610a8657505050506060810151906001600160401b038211610a82570182603f82011215610a7e5760208101519061065f82611579565b9361066d6040519586611203565b8285526020808087019460051b8401010191818311610a7a5760408101935b8385106109c8575050505050825190811580156109bd575b80156109b2575b6109a3576106b882611579565b936106c66040519586611203565b828552601f196106d584611579565b01865b81811061098c575050855b838110610842575050505050816040518092632256e48760e11b8252602482016020600484015281518091526044830190602060448260051b86010193019185905b8282106107b25750505090829003905081837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610771575080f35b3d8083833e6107808183611203565b81016020828203126107ae5781516001600160401b0381116107aa576107a69201611590565b5080f35b8380fd5b8280fd5b9295509290935060431986820301825284519060206040820192805183520151916040602083015282518091526060820190602060608260051b8501019401928a5b828110610817575050505050602080600192960192019201928593879593610725565b9091929394602080610835600193605f1987820301895289516112a9565b97019501939291016107f4565b61084c81836115ed565b5161085782856115ed565b5161086283886115ed565b5161086b61148f565b5080519081158015610981575b6109725761088582611579565b926108936040519485611203565b828452601f196108a284611579565b018c5b81811061095b5750508b5b8381106108f057505050509060019291604051916108cd836111b9565b825260208201526108de82896115ed565b526108e981886115ed565b50016106e3565b6001908d6001600160a01b0361090683866115ed565b51169061091383876115ed565b5160405192610921846111e8565b8352816020840152846040840152816060840152608083015260a082015261094982886115ed565b5261095481876115ed565b50016108b0565b602090610966611328565b828289010152016108a5565b63b4fa3fb360e01b8b5260048bfd5b508251821415610878565b60209061099761148f565b82828a010152016106d8565b63b4fa3fb360e01b8552600485fd5b5082518214156106ab565b5080518214156106a4565b84516001600160401b038111610a765760209083010183603f82011215610a76576020810151906109f882611579565b91610a066040519384611203565b8083526020808085019260051b8401010191868311610a725760408101915b838310610a3f57505050908252506020948501940161068c565b82516001600160401b038111610a6e57602091610a638a848080958801010161136d565b815201920191610a25565b8e80fd5b8c80fd5b8980fd5b8780fd5b8480fd5b8580fd5b82516001600160401b038111610a765760209083010187603f82011215610a7657602081015190610ab682611579565b91610ac46040519384611203565b8083526020808085019260051b84010101918a8311610a7257604001905b828210610afa57505050815260209283019201610625565b60208091610b0784611359565b815201910190610ae2565b516004811015610e8357600303610e745751908151820191604081602085019403126104595760208101516001600160401b0381116107ae57836020610b5a92840101611590565b906040810151906001600160401b0382116107aa57019280603f850112156107ae57602084015193610b8b85611579565b94610b996040519687611203565b8086526020808088019260051b8401010191838311610a825760408101915b838310610e45575050505050805180158015610e3a575b610e2b57610bdc81611579565b93610bea6040519586611203565b818552601f19610bf983611579565b01845b818110610e14575050835b828110610d125750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316915050803b156104595760405190634cb7e9e560e01b825260248201936020600484015280518095526044830194602060448260051b86010192019085965b818810610ca0575050508394508391838381809403925af180156104655761056257505080f35b9091926043198682030182528351602060608160408501938051865201519360408382015284518094520192019088905b808210610cf05750505060208060019295019201970196919091610c79565b9091926020604060019282875180518352015183820152019401920190610cd1565b610d1c81836115ed565b5180518015610e0557610d2e81611579565b91610d3c6040519384611203565b818352601f19610d4b83611579565b01885b818110610de2575050875b828110610da35750505090600191610d7182876115ed565b519060405191610d80836111b9565b82526020820152610d9182896115ed565b52610d9c81886115ed565b5001610c07565b80610db0600192846115ed565b5160405190610dbe826111b9565b81528a6020820152610dd082876115ed565b52610ddb81866115ed565b5001610d59565b602090604051610df1816111b9565b8b81528b8382015282828801015201610d4e565b63b4fa3fb360e01b8752600487fd5b602090610e1f61148f565b82828a01015201610bfc565b63b4fa3fb360e01b8352600483fd5b508351811415610bcf565b82516001600160401b038111610a7a57602091610e69878480809588010101611590565b815201920191610bb8565b630ead561960e11b8252600482fd5b634e487b7160e01b83526021600452602483fd5b634e487b7160e01b84526021600452602484fd5b9091503d8084833e610ebd8183611203565b8101906020818303126107aa578051906001600160401b038211610a7e57016040818303126107aa5760405191610ef3836111b9565b81516004811015610a8257835260208201516001600160401b038111610a8257610f1d920161136d565b6020820152905f6102db565b633a181deb60e11b8352600483fd5b610f459193505f90611203565b5f915f610241565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080610f84600193601f19868203018852610f7e8d886114fa565b906114da565b9a01940194019294939190610208565b90919586359060018060a01b038216809203610f58576020816001938293520197019201906101d2565b34610f58576020366003190112610f58576004356001600160401b038111610f585736602382011215610f585780600401356001600160401b038111610f585781016024810191368311610f585761101461148f565b50602081830312610f58576024810135906001600160401b038211610f5857019060409082900312610f58576040519161104d836111b9565b60248201356004811015610f585783526044820135916001600160401b038311610f585761107e920160240161123f565b6020820190815260405191602083525160048110156110b75782916110b3916020840152516040808401526060830190611285565b0390f35b634e487b7160e01b5f52602160045260245ffd5b34610f58575f366003190112610f58576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610f58576020366003190112610f58576004356001600160401b038111610f58576111706111456110b392369060040161123f565b604051611151816111b9565b5f8152602061115e611328565b910152602080825183010191016113b3565b60405191829182611304565b34610f58576020366003190112610f5857600435906001600160601b03198216809203610f58576020915f525f825260ff60405f20541615158152f35b604081019081106001600160401b038211176111d457604052565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b038211176111d457604052565b90601f801991011681019081106001600160401b038211176111d457604052565b6001600160401b0381116111d457601f01601f191660200190565b81601f82011215610f585780359061125682611224565b926112646040519485611203565b82845260208383010111610f5857815f926020809301838601378301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060018060a01b0382511681526001600160401b0360208301511660208201526040820151151560408201526060820151606082015260a0806112fb608085015160c0608086015260c0850190611285565b93015191015290565b606060206113259381845280518285015201519160408082015201906112a9565b90565b60405190611335826111e8565b5f60a083828152826020820152826040820152826060820152606060808201520152565b51906001600160a01b0382168203610f5857565b81601f82011215610f585780519061138482611224565b926113926040519485611203565b82845260208383010111610f5857815f9260208093018386015e8301015290565b602081830312610f58578051906001600160401b038211610f58570190604082820312610f5857604051916113e7836111b9565b805183526020810151906001600160401b038211610f5857019060c082820312610f585760405191611418836111e8565b61142181611359565b835260208101516001600160401b0381168103610f5857602084015260408101518015158103610f585760408401526060810151606084015260808101516001600160401b038111610f585760a09261147b91830161136d565b6080840152015160a0820152602082015290565b6040519061149c826111b9565b60606020835f81520152565b903590601e1981360301821215610f5857018035906001600160401b038211610f5857602001918136038313610f5857565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578136038313610f5857565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578160051b36038313610f5857565b356bffffffffffffffffffffffff1981168103610f585790565b6001600160401b0381116111d45760051b60200190565b9080601f83011215610f585781516115a781611579565b926115b56040519485611203565b81845260208085019260051b820101928311610f5857602001905b8282106115dd5750505090565b81518152602091820191016115d0565b80518210156116015760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220c6e040b4160c8b146319b09f87fc0e1f0cc0274ea8709b4bbd89b1c69187949f64736f6c634300081b0033","sourceMap":"720:8768:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;720:8768:93;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;2638:16;;;;2612:68;2638:16;;;;:::i;:::-;2656;;;;:::i;:::-;720:8768;;;;;;;;;;;;;;;;:::i;:::-;;;;;;2612:68;;;2762:15;-1:-1:-1;;;;;720:8768:93;2762:49;;;;;720:8768;;;;;;2762:49;;720:8768;;2762:49;;720:8768;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;2638:16;720:8768;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:93;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2638:16;720:8768;;;;;;;;;;;;;;;;;;;;2762:49;;;;;;;;;;720:8768;-1:-1:-1;;;2875:16:93;;;:::i;:::-;720:8768;;;;;;;;;;;;2857:90;;3144:16;720:8768;;;;-1:-1:-1;;;;;720:8768:93;2971:16;;;:::i;:::-;720:8768;;;;;;;;;;;;;;;;;;;;:::i;:::-;3144:16;;:::i;:::-;720:8768;;-1:-1:-1;;;3114:47:93;;720:8768;;3114:47;;720:8768;;;;;;;;;;;:::i;:::-;3114:47;:4;;:47;;;;;;;720:8768;-1:-1:-1;3110:214:93;;-1:-1:-1;;;3290:23:93;;720:8768;3290:23;;3110:214;720:8768;;;;;;;;;3339:74;720:8768;;3393:12;;;;;720:8768;;;;;;;;;;;;3339:74;720:8768;;;;;;;;3494:45;;3581:12;;720:8768;3581:12;;720:8768;;;;;;;;;3559:35;;720:8768;;3559:35;;720:8768;;;;;;:::i;:::-;3559:35;3114:4;;3559:35;;;;;;;3490:1211;-1:-1:-1;3555:310:93;;-1:-1:-1;;;3830:20:93;;720:8768;3830:20;;3555:310;720:8768;;3662:87;720:8768;5475:19;720:8768;;3700:12;;;;720:8768;;;;;;;;;3724:17;;;720:8768;;;;;;;;;;;;;;;3662:87;720:8768;;;;;;;;;5475:19;;720:8768;5475:19;;;:::i;:::-;;720:8768;;5475:3;-1:-1:-1;;;;;720:8768:93;5475:19;;;;;;;;3555:310;720:8768;;5475:19;720:8768;5475:19;;720:8768;5475:19;;;;;;720:8768;5475:19;;;:::i;:::-;;;720:8768;;;;-1:-1:-1;720:8768:93;;;;;;5475:19;;;-1:-1:-1;5475:19:93;;;720:8768;;;;;;;;;3559:35;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3490:1211;720:8768;;;;;;;;;;;;;;3885:45;3881:820;720:8768;;;3989:12;;720:8768;;;;3978:44;;720:8768;;;;;3978:44;;720:8768;;;;;;;;5746:3;-1:-1:-1;;;;;720:8768:93;;;;;:::i;:::-;;;5798:43;720:8768;5798:43;;720:8768;;;;;;;:::i;:::-;;;;5757:86;;720:8768;;;5746:98;;;;;720:8768;;;;;;;;;;;;;;;;5746:98;;720:8768;;5746:98;;720:8768;;;;;;;;;;2638:16;720:8768;;;5746:98;;;;;;;;3881:820;;720:8768;;5746:98;;;;;:::i;:::-;720:8768;;;;;;;5746:98;720:8768;;;;;3881:820;720:8768;;;;;;;;;;;4102:26;4077:51;4102:26;;4260:12;;720:8768;;4249:61;;720:8768;4249:61;720:8768;4249:61;;720:8768;;;;;;4249:61;;720:8768;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6409:17;;;:54;;;;720:8768;6409:91;;;;720:8768;6405:143;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:93;;;:::i;:::-;;;;;;;;;6666:13;;;6681:16;;;;;;720:8768;;;;;;;;;;;;;6836:30;;720:8768;;;;;6836:30;;720:8768;;;;;;2638:16;720:8768;;;;2638:16;720:8768;;;;;;;;;;;;;;;;;-1:-1:-1;;;6836:30:93;;;;;-1:-1:-1;6836:30:93;720:8768;6836:3;-1:-1:-1;;;;;720:8768:93;6836:30;;;;;;;;4073:628;720:8768;;6836:30;;;;;;;;;;:::i;:::-;;;720:8768;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;:::i;:::-;3555:310;720:8768;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;6699:3;6767:10;;;;:::i;:::-;720:8768;6779:13;;;;:::i;:::-;;6794;;;;:::i;:::-;;720:8768;;:::i;:::-;;;;7426:15;;;:56;;;;6699:3;7422:108;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:93;;;:::i;:::-;;;;;;;;;7635:13;;;7650:14;;;;;;720:8768;;;;;;;;;;;;;;:::i;:::-;;;;7997:53;;720:8768;6718:90;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;6666:13;;7666:3;720:8768;;;-1:-1:-1;;;;;7747:19:93;720:8768;7747:19;;:::i;:::-;720:8768;;7910:18;;;;;:::i;:::-;;720:8768;;;;;;:::i;:::-;138:1:0;;7695:274:93;720:8768;7695:274;;138:1:0;7695:274:93;720:8768;7695:274;;138:1:0;7695:274:93;720:8768;7695:274;;720:8768;;7695:274;;720:8768;7695:274;;;720:8768;7685:284;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;7635:13;;720:8768;;;;;:::i;:::-;;;;;;;;;;7422:108;-1:-1:-1;;;7505:14:93;;720:8768;8505:14;7505;7426:56;720:8768;;;7445:37;;;7426:56;;720:8768;;;;;:::i;:::-;;;;;;;;;;6405:143;-1:-1:-1;;;6523:14:93;;720:8768;8505:14;6523;6409:91;720:8768;;;6467:33;;;6409:91;;:54;720:8768;;;6430:33;;;6409:54;;720:8768;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;720:8768:93;;;-1:-1:-1;720:8768:93;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;720:8768:93;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;4073:628;720:8768;;;;;;;4415:26;4390:51;4415:26;;4544:12;720:8768;;;4533:50;;;720:8768;4533:50;720:8768;4533:50;;720:8768;;;;;;4533:50;;720:8768;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8428:17;;:54;;;;720:8768;8424:106;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:93;;;:::i;:::-;;;;;;;;;8646:13;;;8661:16;;;;;;-1:-1:-1;;9213:3:93;-1:-1:-1;;;;;720:8768:93;;-1:-1:-1;;9213:30:93;;;;;720:8768;;;;;;9213:30;;720:8768;;;9213:30;720:8768;;9213:30;;720:8768;;;;;;2638:16;720:8768;;;;2638:16;720:8768;;;;;;;;;;;;;;;;;9213:30;;;;;;;;;;;;;;;;;;;;;;;4386:315;;720:8768;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8679:3;8722:13;;;;:::i;:::-;;720:8768;;8799:14;;8795:74;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:93;;;:::i;:::-;;;;;;;;;8978:13;;;8993;;;;;;9168:10;;;;720:8768;9168:10;;;;;:::i;:::-;720:8768;;;;;;;;:::i;:::-;;;;9136:56;;720:8768;9117:75;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;8646:13;;9008:3;9069:7;;720:8768;9069:7;;;:::i;:::-;720:8768;;;;;;;:::i;:::-;;;9041:47;720:8768;9041:47;;720:8768;9031:57;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;8978:13;;720:8768;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8795:74;-1:-1:-1;;;8840:14:93;;720:8768;8505:14;8840;720:8768;;;;;:::i;:::-;;;;;;;;;;8424:106;-1:-1:-1;;;8505:14:93;;720:8768;8505:14;;8428:54;720:8768;;;8449:33;;;8428:54;;720:8768;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;4386:315;-1:-1:-1;;;4668:22:93;;720:8768;4668:22;;720:8768;-1:-1:-1;;;720:8768:93;;;;;;;;;-1:-1:-1;;;720:8768:93;;;;;;;;3114:47;;;;;;;;;;;;;:::i;:::-;;;720:8768;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;:::i;:::-;;;;;3114:47;;;;2857:90;-1:-1:-1;;;2915:21:93;;720:8768;2915:21;;2762:49;;;;;720:8768;2762:49;;:::i;:::-;720:8768;2762:49;;;;;720:8768;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;720:8768:93;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;720:8768:93;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;720:8768:93;;;;;;9463:15;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;-1:-1:-1;;720:8768:93;;;;;;-1:-1:-1;;;;;720:8768:93;;;;5125:38;720:8768;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5125:38;;;;;;:::i;:::-;720:8768;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;720:8768:93;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;:::o;:::-;;;;-1:-1:-1;720:8768:93;;;;;-1:-1:-1;720:8768:93;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;:::o;:::-;-1:-1:-1;;;;;720:8768:93;;;;;;-1:-1:-1;;720:8768:93;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;720:8768:93;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;720:8768:93;;;;;;;;-1:-1:-1;;720:8768:93;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;720:8768:93;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;720:8768:93;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;720:8768:93;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;720:8768:93;;;;;;;;-1:-1:-1;;720:8768:93;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:93;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;720:8768:93;;;;;;;:::o;:::-;-1:-1:-1;;;;;720:8768:93;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"56757":[{"start":1020,"length":32},{"start":1227,"length":32},{"start":1849,"length":32},{"start":3090,"length":32}],"56760":[{"start":268,"length":32},{"start":4320,"length":32}]}},"methodIdentifiers":{"decodeAttestData(bytes)":"4a216dfd","decodeAttestationPayload(bytes)":"a2be4858","envelopesSeen(bytes20)":"025d26be","getServiceManager()":"4dda0b43","handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"f969ff33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEAS\",\"name\":\"eas\",\"type\":\"address\"},{\"internalType\":\"contract IWavsServiceManager\",\"name\":\"serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DataDecodingFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnvelopeAlreadySeen\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEAS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOperationType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidServiceManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PayloadDecodingFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"DebuggingAttestCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payloadLength\",\"type\":\"uint256\"}],\"name\":\"DebuggingEnvelopeReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"DebuggingPayloadDecoded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"decodeAttestData\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct AttestationRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"decodeAttestationPayload\",\"outputs\":[{\"components\":[{\"internalType\":\"enum WavsAttester.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct WavsAttester.AttestationPayload\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"}],\"name\":\"envelopesSeen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"seen\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"handleSignedEnvelope\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"eas\":\"The address of the global EAS contract.\",\"serviceManager\":\"The address of the WAVS service manager.\"}},\"getServiceManager()\":{\"returns\":{\"_0\":\"address The address of the service manager\"}},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the attestation payload\",\"signatureData\":\"The signature data for validation\"}}},\"title\":\"WavsAttester\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Creates a new WavsAttester instance.\"},\"decodeAttestData(bytes)\":{\"notice\":\"Helper function for decoding attest data\"},\"decodeAttestationPayload(bytes)\":{\"notice\":\"Helper function for decoding AttestationPayload\"},\"getServiceManager()\":{\"notice\":\"Get the service manager address\"},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Handles signed envelope from WAVS and routes to appropriate attestation operation\"}},\"notice\":\"Ethereum Attestation Service - Example that integrates with WAVS\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/WavsAttester.sol\":\"WavsAttester\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol\":{\"keccak256\":\"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880\",\"dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]},\"src/contracts/eas/WavsAttester.sol\":{\"keccak256\":\"0x2251e7631dd57111de9f540007322022e7c7e0ec7e193bb62cb3ab1f79e56cd9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6318f2ba752f88c97ddd3ab81cf3c6dc923bfa6bca21e39abf220e9a19b97d03\",\"dweb:/ipfs/QmcqZEZZVH14z4FF1MwxW1QjrRLDD3LC3qC5BR7ncNfTQ8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IEAS","name":"eas","type":"address"},{"internalType":"contract IWavsServiceManager","name":"serviceManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"DataDecodingFailed"},{"inputs":[],"type":"error","name":"EnvelopeAlreadySeen"},{"inputs":[],"type":"error","name":"InvalidEAS"},{"inputs":[],"type":"error","name":"InvalidInput"},{"inputs":[],"type":"error","name":"InvalidOperationType"},{"inputs":[],"type":"error","name":"InvalidServiceManager"},{"inputs":[],"type":"error","name":"PayloadDecodingFailed"},{"inputs":[{"internalType":"bytes32","name":"schema","type":"bytes32","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"dataLength","type":"uint256","indexed":false}],"type":"event","name":"DebuggingAttestCalled","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint256","name":"payloadLength","type":"uint256","indexed":false}],"type":"event","name":"DebuggingEnvelopeReceived","anonymous":false},{"inputs":[{"internalType":"uint8","name":"operationType","type":"uint8","indexed":false},{"internalType":"uint256","name":"dataLength","type":"uint256","indexed":false}],"type":"event","name":"DebuggingPayloadDecoded","anonymous":false},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeAttestData","outputs":[{"internalType":"struct AttestationRequest","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData","name":"data","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}]},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeAttestationPayload","outputs":[{"internalType":"struct WavsAttester.AttestationPayload","name":"","type":"tuple","components":[{"internalType":"enum WavsAttester.OperationType","name":"operationType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}]}]},{"inputs":[{"internalType":"bytes20","name":"eventId","type":"bytes20"}],"stateMutability":"view","type":"function","name":"envelopesSeen","outputs":[{"internalType":"bool","name":"seen","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"handleSignedEnvelope"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"eas":"The address of the global EAS contract.","serviceManager":"The address of the WAVS service manager."}},"getServiceManager()":{"returns":{"_0":"address The address of the service manager"}},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the attestation payload","signatureData":"The signature data for validation"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Creates a new WavsAttester instance."},"decodeAttestData(bytes)":{"notice":"Helper function for decoding attest data"},"decodeAttestationPayload(bytes)":{"notice":"Helper function for decoding AttestationPayload"},"getServiceManager()":{"notice":"Get the service manager address"},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Handles signed envelope from WAVS and routes to appropriate attestation operation"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/WavsAttester.sol":"WavsAttester"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol":{"keccak256":"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12","urls":["bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880","dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"},"src/contracts/eas/WavsAttester.sol":{"keccak256":"0x2251e7631dd57111de9f540007322022e7c7e0ec7e193bb62cb3ab1f79e56cd9","urls":["bzz-raw://6318f2ba752f88c97ddd3ab81cf3c6dc923bfa6bca21e39abf220e9a19b97d03","dweb:/ipfs/QmcqZEZZVH14z4FF1MwxW1QjrRLDD3LC3qC5BR7ncNfTQ8"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"eas","type":"address","internalType":"contract IEAS"},{"name":"serviceManager","type":"address","internalType":"contract IWavsServiceManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"decodeAttestData","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct AttestationRequest","components":[{"name":"schema","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"tuple","internalType":"struct AttestationRequestData","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"expirationTime","type":"uint64","internalType":"uint64"},{"name":"revocable","type":"bool","internalType":"bool"},{"name":"refUID","type":"bytes32","internalType":"bytes32"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"pure"},{"type":"function","name":"decodeAttestationPayload","inputs":[{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct WavsAttester.AttestationPayload","components":[{"name":"operationType","type":"uint8","internalType":"enum WavsAttester.OperationType"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"stateMutability":"pure"},{"type":"function","name":"envelopesSeen","inputs":[{"name":"eventId","type":"bytes20","internalType":"bytes20"}],"outputs":[{"name":"seen","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"handleSignedEnvelope","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DebuggingAttestCalled","inputs":[{"name":"schema","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"dataLength","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DebuggingEnvelopeReceived","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"payloadLength","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DebuggingPayloadDecoded","inputs":[{"name":"operationType","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"dataLength","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"DataDecodingFailed","inputs":[]},{"type":"error","name":"EnvelopeAlreadySeen","inputs":[]},{"type":"error","name":"InvalidEAS","inputs":[]},{"type":"error","name":"InvalidInput","inputs":[]},{"type":"error","name":"InvalidOperationType","inputs":[]},{"type":"error","name":"InvalidServiceManager","inputs":[]},{"type":"error","name":"PayloadDecodingFailed","inputs":[]}],"bytecode":{"object":"0x60c0346100d357601f61173738819003918201601f19168301916001600160401b038311848410176100d75780849260409485528339810103126100d35780516001600160a01b038116918282036100d35760200151916001600160a01b038316908184036100d357156100c457156100b55760805260a05260405161164b90816100ec82396080518181816103fc015281816104cb015281816107390152610c12015260a05181818161010c01526110e00152f35b63c172d20d60e01b5f5260045ffd5b6341bc07ff60e11b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c908163025d26be1461117c575080634a216dfd1461110f5780634dda0b43146110cb578063a2be485814610fbe5763f969ff3314610055575f80fd5b34610f58576040366003190112610f58576004356001600160401b038111610f58578060040160606003198336030112610f5857602435916001600160401b038311610f5857826004019260606003198236030112610f585760448201937ffd39b2c951b44160da2f98e621c4a6b23f44c84369c0a56d55e3bea5b46c62836100de86866114a8565b6100e888886114a8565b90506101016040519384936040855260408501916114da565b9060208301520390a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610f5857604051936366b8ac4f60e11b8552604060048601528535906001600160601b03198216809203610f5857602491604487015201356001600160601b0360a01b8116809103610f585760648501526101a661019587876114fa565b6060608488015260a48701916114da565b8481036003190160248601529260608401926101c2818061152b565b606087529485905260808601945f905b808210610f94575050506101ea90602483019061152b565b8585036020870152808552602085019460208260051b82010195835f925b848410610f5c575050505050506044013563ffffffff8116809103610f5857848093819260405f97015203915afa8015610f4d57610f38575b506bffffffffffffffffffffffff196102598261155f565b1683528260205260ff604084205416610f29576102ab6102ce9284926001600160601b03196102878261155f565b1684528360205260408420600160ff198254161790556102a561148f565b506114a8565b604051631457c90b60e31b815260206004820152938492839260248401916114da565b0381305afa829181610eab575b506102ef57634f64bf9960e11b8252600482fd5b8051906004821015610e83577f06e6774badbd7bd95530bc9e7f593f19a2e1515e6ab3245ecb9978f056028d6b6040602083019384515160ff8351921682526020820152a180516004811015610e975761049457508161036c915160405180938192634a216dfd60e01b8352602060048401526024830190611285565b0381305afa829181610470575b5061038d576360f64c0760e11b8252600482fd5b6020817fe0a2fc834214a484d7756937616355e9dfc7466a3279e76ca5c2b34834f449c060606103f7945184840151608060018060a01b038251169101515190604051928352868301526040820152a16040518093819263f17325e760e01b835260048301611304565b0381857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610434575080f35b6020813d60201161045d575b8161044d60209383611203565b81010312610459575080f35b5080fd5b3d9150610440565b6040513d84823e3d90fd5b61048d9192503d8085833e6104858183611203565b8101906113b3565b905f610379565b91908251926004841015610e835760018394145f1461057c57505160408180518101031261057957602081015160409182015191517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926104fd826111b9565b815283602082015260405191610512836111b9565b825260208201908152823b156105765760648492836020956040519687958694634692626760e01b86525160048601525180516024860152015160448401525af180156104655761056257505080f35b8161056c91611203565b6105735780f35b80fd5b50505b50fd5b80919250516004811015610e9757600203610b1257505180518101606082602083019203126107ae5760208201516001600160401b0381116107aa578160206105c792850101611590565b9160408101516001600160401b038111610a7e5781019082603f83011215610a7e576020820151916105f883611579565b926106066040519485611203565b8084526020808086019260051b8401010191858311610a7a5760408101915b838310610a8657505050506060810151906001600160401b038211610a82570182603f82011215610a7e5760208101519061065f82611579565b9361066d6040519586611203565b8285526020808087019460051b8401010191818311610a7a5760408101935b8385106109c8575050505050825190811580156109bd575b80156109b2575b6109a3576106b882611579565b936106c66040519586611203565b828552601f196106d584611579565b01865b81811061098c575050855b838110610842575050505050816040518092632256e48760e11b8252602482016020600484015281518091526044830190602060448260051b86010193019185905b8282106107b25750505090829003905081837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610771575080f35b3d8083833e6107808183611203565b81016020828203126107ae5781516001600160401b0381116107aa576107a69201611590565b5080f35b8380fd5b8280fd5b9295509290935060431986820301825284519060206040820192805183520151916040602083015282518091526060820190602060608260051b8501019401928a5b828110610817575050505050602080600192960192019201928593879593610725565b9091929394602080610835600193605f1987820301895289516112a9565b97019501939291016107f4565b61084c81836115ed565b5161085782856115ed565b5161086283886115ed565b5161086b61148f565b5080519081158015610981575b6109725761088582611579565b926108936040519485611203565b828452601f196108a284611579565b018c5b81811061095b5750508b5b8381106108f057505050509060019291604051916108cd836111b9565b825260208201526108de82896115ed565b526108e981886115ed565b50016106e3565b6001908d6001600160a01b0361090683866115ed565b51169061091383876115ed565b5160405192610921846111e8565b8352816020840152846040840152816060840152608083015260a082015261094982886115ed565b5261095481876115ed565b50016108b0565b602090610966611328565b828289010152016108a5565b63b4fa3fb360e01b8b5260048bfd5b508251821415610878565b60209061099761148f565b82828a010152016106d8565b63b4fa3fb360e01b8552600485fd5b5082518214156106ab565b5080518214156106a4565b84516001600160401b038111610a765760209083010183603f82011215610a76576020810151906109f882611579565b91610a066040519384611203565b8083526020808085019260051b8401010191868311610a725760408101915b838310610a3f57505050908252506020948501940161068c565b82516001600160401b038111610a6e57602091610a638a848080958801010161136d565b815201920191610a25565b8e80fd5b8c80fd5b8980fd5b8780fd5b8480fd5b8580fd5b82516001600160401b038111610a765760209083010187603f82011215610a7657602081015190610ab682611579565b91610ac46040519384611203565b8083526020808085019260051b84010101918a8311610a7257604001905b828210610afa57505050815260209283019201610625565b60208091610b0784611359565b815201910190610ae2565b516004811015610e8357600303610e745751908151820191604081602085019403126104595760208101516001600160401b0381116107ae57836020610b5a92840101611590565b906040810151906001600160401b0382116107aa57019280603f850112156107ae57602084015193610b8b85611579565b94610b996040519687611203565b8086526020808088019260051b8401010191838311610a825760408101915b838310610e45575050505050805180158015610e3a575b610e2b57610bdc81611579565b93610bea6040519586611203565b818552601f19610bf983611579565b01845b818110610e14575050835b828110610d125750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316915050803b156104595760405190634cb7e9e560e01b825260248201936020600484015280518095526044830194602060448260051b86010192019085965b818810610ca0575050508394508391838381809403925af180156104655761056257505080f35b9091926043198682030182528351602060608160408501938051865201519360408382015284518094520192019088905b808210610cf05750505060208060019295019201970196919091610c79565b9091926020604060019282875180518352015183820152019401920190610cd1565b610d1c81836115ed565b5180518015610e0557610d2e81611579565b91610d3c6040519384611203565b818352601f19610d4b83611579565b01885b818110610de2575050875b828110610da35750505090600191610d7182876115ed565b519060405191610d80836111b9565b82526020820152610d9182896115ed565b52610d9c81886115ed565b5001610c07565b80610db0600192846115ed565b5160405190610dbe826111b9565b81528a6020820152610dd082876115ed565b52610ddb81866115ed565b5001610d59565b602090604051610df1816111b9565b8b81528b8382015282828801015201610d4e565b63b4fa3fb360e01b8752600487fd5b602090610e1f61148f565b82828a01015201610bfc565b63b4fa3fb360e01b8352600483fd5b508351811415610bcf565b82516001600160401b038111610a7a57602091610e69878480809588010101611590565b815201920191610bb8565b630ead561960e11b8252600482fd5b634e487b7160e01b83526021600452602483fd5b634e487b7160e01b84526021600452602484fd5b9091503d8084833e610ebd8183611203565b8101906020818303126107aa578051906001600160401b038211610a7e57016040818303126107aa5760405191610ef3836111b9565b81516004811015610a8257835260208201516001600160401b038111610a8257610f1d920161136d565b6020820152905f6102db565b633a181deb60e11b8352600483fd5b610f459193505f90611203565b5f915f610241565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080610f84600193601f19868203018852610f7e8d886114fa565b906114da565b9a01940194019294939190610208565b90919586359060018060a01b038216809203610f58576020816001938293520197019201906101d2565b34610f58576020366003190112610f58576004356001600160401b038111610f585736602382011215610f585780600401356001600160401b038111610f585781016024810191368311610f585761101461148f565b50602081830312610f58576024810135906001600160401b038211610f5857019060409082900312610f58576040519161104d836111b9565b60248201356004811015610f585783526044820135916001600160401b038311610f585761107e920160240161123f565b6020820190815260405191602083525160048110156110b75782916110b3916020840152516040808401526060830190611285565b0390f35b634e487b7160e01b5f52602160045260245ffd5b34610f58575f366003190112610f58576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610f58576020366003190112610f58576004356001600160401b038111610f58576111706111456110b392369060040161123f565b604051611151816111b9565b5f8152602061115e611328565b910152602080825183010191016113b3565b60405191829182611304565b34610f58576020366003190112610f5857600435906001600160601b03198216809203610f58576020915f525f825260ff60405f20541615158152f35b604081019081106001600160401b038211176111d457604052565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b038211176111d457604052565b90601f801991011681019081106001600160401b038211176111d457604052565b6001600160401b0381116111d457601f01601f191660200190565b81601f82011215610f585780359061125682611224565b926112646040519485611203565b82845260208383010111610f5857815f926020809301838601378301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060018060a01b0382511681526001600160401b0360208301511660208201526040820151151560408201526060820151606082015260a0806112fb608085015160c0608086015260c0850190611285565b93015191015290565b606060206113259381845280518285015201519160408082015201906112a9565b90565b60405190611335826111e8565b5f60a083828152826020820152826040820152826060820152606060808201520152565b51906001600160a01b0382168203610f5857565b81601f82011215610f585780519061138482611224565b926113926040519485611203565b82845260208383010111610f5857815f9260208093018386015e8301015290565b602081830312610f58578051906001600160401b038211610f58570190604082820312610f5857604051916113e7836111b9565b805183526020810151906001600160401b038211610f5857019060c082820312610f585760405191611418836111e8565b61142181611359565b835260208101516001600160401b0381168103610f5857602084015260408101518015158103610f585760408401526060810151606084015260808101516001600160401b038111610f585760a09261147b91830161136d565b6080840152015160a0820152602082015290565b6040519061149c826111b9565b60606020835f81520152565b903590601e1981360301821215610f5857018035906001600160401b038211610f5857602001918136038313610f5857565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578136038313610f5857565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578160051b36038313610f5857565b356bffffffffffffffffffffffff1981168103610f585790565b6001600160401b0381116111d45760051b60200190565b9080601f83011215610f585781516115a781611579565b926115b56040519485611203565b81845260208085019260051b820101928311610f5857602001905b8282106115dd5750505090565b81518152602091820191016115d0565b80518210156116015760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220c6e040b4160c8b146319b09f87fc0e1f0cc0274ea8709b4bbd89b1c69187949f64736f6c634300081b0033","sourceMap":"720:8768:123:-:0;;;;;;;;;;;;;-1:-1:-1;;720:8768:123;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;1966:26;1962:76;;2051:37;2047:98;;2155:9;;2174:32;;720:8768;;;;;;;;2155:9;720:8768;;;;;;;;;;;;;;;;;;;;2174:32;720:8768;;;;;;;;;;;2047:98;2111:23;;;-1:-1:-1;2111:23:123;;-1:-1:-1;2111:23:123;1962:76;2015:12;;;-1:-1:-1;2015:12:123;;-1:-1:-1;2015:12:123;720:8768;-1:-1:-1;720:8768:123;;;;;;-1:-1:-1;720:8768:123;;;;;-1:-1:-1;720:8768:123","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c908163025d26be1461117c575080634a216dfd1461110f5780634dda0b43146110cb578063a2be485814610fbe5763f969ff3314610055575f80fd5b34610f58576040366003190112610f58576004356001600160401b038111610f58578060040160606003198336030112610f5857602435916001600160401b038311610f5857826004019260606003198236030112610f585760448201937ffd39b2c951b44160da2f98e621c4a6b23f44c84369c0a56d55e3bea5b46c62836100de86866114a8565b6100e888886114a8565b90506101016040519384936040855260408501916114da565b9060208301520390a17f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610f5857604051936366b8ac4f60e11b8552604060048601528535906001600160601b03198216809203610f5857602491604487015201356001600160601b0360a01b8116809103610f585760648501526101a661019587876114fa565b6060608488015260a48701916114da565b8481036003190160248601529260608401926101c2818061152b565b606087529485905260808601945f905b808210610f94575050506101ea90602483019061152b565b8585036020870152808552602085019460208260051b82010195835f925b848410610f5c575050505050506044013563ffffffff8116809103610f5857848093819260405f97015203915afa8015610f4d57610f38575b506bffffffffffffffffffffffff196102598261155f565b1683528260205260ff604084205416610f29576102ab6102ce9284926001600160601b03196102878261155f565b1684528360205260408420600160ff198254161790556102a561148f565b506114a8565b604051631457c90b60e31b815260206004820152938492839260248401916114da565b0381305afa829181610eab575b506102ef57634f64bf9960e11b8252600482fd5b8051906004821015610e83577f06e6774badbd7bd95530bc9e7f593f19a2e1515e6ab3245ecb9978f056028d6b6040602083019384515160ff8351921682526020820152a180516004811015610e975761049457508161036c915160405180938192634a216dfd60e01b8352602060048401526024830190611285565b0381305afa829181610470575b5061038d576360f64c0760e11b8252600482fd5b6020817fe0a2fc834214a484d7756937616355e9dfc7466a3279e76ca5c2b34834f449c060606103f7945184840151608060018060a01b038251169101515190604051928352868301526040820152a16040518093819263f17325e760e01b835260048301611304565b0381857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610434575080f35b6020813d60201161045d575b8161044d60209383611203565b81010312610459575080f35b5080fd5b3d9150610440565b6040513d84823e3d90fd5b61048d9192503d8085833e6104858183611203565b8101906113b3565b905f610379565b91908251926004841015610e835760018394145f1461057c57505160408180518101031261057957602081015160409182015191517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926104fd826111b9565b815283602082015260405191610512836111b9565b825260208201908152823b156105765760648492836020956040519687958694634692626760e01b86525160048601525180516024860152015160448401525af180156104655761056257505080f35b8161056c91611203565b6105735780f35b80fd5b50505b50fd5b80919250516004811015610e9757600203610b1257505180518101606082602083019203126107ae5760208201516001600160401b0381116107aa578160206105c792850101611590565b9160408101516001600160401b038111610a7e5781019082603f83011215610a7e576020820151916105f883611579565b926106066040519485611203565b8084526020808086019260051b8401010191858311610a7a5760408101915b838310610a8657505050506060810151906001600160401b038211610a82570182603f82011215610a7e5760208101519061065f82611579565b9361066d6040519586611203565b8285526020808087019460051b8401010191818311610a7a5760408101935b8385106109c8575050505050825190811580156109bd575b80156109b2575b6109a3576106b882611579565b936106c66040519586611203565b828552601f196106d584611579565b01865b81811061098c575050855b838110610842575050505050816040518092632256e48760e11b8252602482016020600484015281518091526044830190602060448260051b86010193019185905b8282106107b25750505090829003905081837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561046557610771575080f35b3d8083833e6107808183611203565b81016020828203126107ae5781516001600160401b0381116107aa576107a69201611590565b5080f35b8380fd5b8280fd5b9295509290935060431986820301825284519060206040820192805183520151916040602083015282518091526060820190602060608260051b8501019401928a5b828110610817575050505050602080600192960192019201928593879593610725565b9091929394602080610835600193605f1987820301895289516112a9565b97019501939291016107f4565b61084c81836115ed565b5161085782856115ed565b5161086283886115ed565b5161086b61148f565b5080519081158015610981575b6109725761088582611579565b926108936040519485611203565b828452601f196108a284611579565b018c5b81811061095b5750508b5b8381106108f057505050509060019291604051916108cd836111b9565b825260208201526108de82896115ed565b526108e981886115ed565b50016106e3565b6001908d6001600160a01b0361090683866115ed565b51169061091383876115ed565b5160405192610921846111e8565b8352816020840152846040840152816060840152608083015260a082015261094982886115ed565b5261095481876115ed565b50016108b0565b602090610966611328565b828289010152016108a5565b63b4fa3fb360e01b8b5260048bfd5b508251821415610878565b60209061099761148f565b82828a010152016106d8565b63b4fa3fb360e01b8552600485fd5b5082518214156106ab565b5080518214156106a4565b84516001600160401b038111610a765760209083010183603f82011215610a76576020810151906109f882611579565b91610a066040519384611203565b8083526020808085019260051b8401010191868311610a725760408101915b838310610a3f57505050908252506020948501940161068c565b82516001600160401b038111610a6e57602091610a638a848080958801010161136d565b815201920191610a25565b8e80fd5b8c80fd5b8980fd5b8780fd5b8480fd5b8580fd5b82516001600160401b038111610a765760209083010187603f82011215610a7657602081015190610ab682611579565b91610ac46040519384611203565b8083526020808085019260051b84010101918a8311610a7257604001905b828210610afa57505050815260209283019201610625565b60208091610b0784611359565b815201910190610ae2565b516004811015610e8357600303610e745751908151820191604081602085019403126104595760208101516001600160401b0381116107ae57836020610b5a92840101611590565b906040810151906001600160401b0382116107aa57019280603f850112156107ae57602084015193610b8b85611579565b94610b996040519687611203565b8086526020808088019260051b8401010191838311610a825760408101915b838310610e45575050505050805180158015610e3a575b610e2b57610bdc81611579565b93610bea6040519586611203565b818552601f19610bf983611579565b01845b818110610e14575050835b828110610d125750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316915050803b156104595760405190634cb7e9e560e01b825260248201936020600484015280518095526044830194602060448260051b86010192019085965b818810610ca0575050508394508391838381809403925af180156104655761056257505080f35b9091926043198682030182528351602060608160408501938051865201519360408382015284518094520192019088905b808210610cf05750505060208060019295019201970196919091610c79565b9091926020604060019282875180518352015183820152019401920190610cd1565b610d1c81836115ed565b5180518015610e0557610d2e81611579565b91610d3c6040519384611203565b818352601f19610d4b83611579565b01885b818110610de2575050875b828110610da35750505090600191610d7182876115ed565b519060405191610d80836111b9565b82526020820152610d9182896115ed565b52610d9c81886115ed565b5001610c07565b80610db0600192846115ed565b5160405190610dbe826111b9565b81528a6020820152610dd082876115ed565b52610ddb81866115ed565b5001610d59565b602090604051610df1816111b9565b8b81528b8382015282828801015201610d4e565b63b4fa3fb360e01b8752600487fd5b602090610e1f61148f565b82828a01015201610bfc565b63b4fa3fb360e01b8352600483fd5b508351811415610bcf565b82516001600160401b038111610a7a57602091610e69878480809588010101611590565b815201920191610bb8565b630ead561960e11b8252600482fd5b634e487b7160e01b83526021600452602483fd5b634e487b7160e01b84526021600452602484fd5b9091503d8084833e610ebd8183611203565b8101906020818303126107aa578051906001600160401b038211610a7e57016040818303126107aa5760405191610ef3836111b9565b81516004811015610a8257835260208201516001600160401b038111610a8257610f1d920161136d565b6020820152905f6102db565b633a181deb60e11b8352600483fd5b610f459193505f90611203565b5f915f610241565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080610f84600193601f19868203018852610f7e8d886114fa565b906114da565b9a01940194019294939190610208565b90919586359060018060a01b038216809203610f58576020816001938293520197019201906101d2565b34610f58576020366003190112610f58576004356001600160401b038111610f585736602382011215610f585780600401356001600160401b038111610f585781016024810191368311610f585761101461148f565b50602081830312610f58576024810135906001600160401b038211610f5857019060409082900312610f58576040519161104d836111b9565b60248201356004811015610f585783526044820135916001600160401b038311610f585761107e920160240161123f565b6020820190815260405191602083525160048110156110b75782916110b3916020840152516040808401526060830190611285565b0390f35b634e487b7160e01b5f52602160045260245ffd5b34610f58575f366003190112610f58576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610f58576020366003190112610f58576004356001600160401b038111610f58576111706111456110b392369060040161123f565b604051611151816111b9565b5f8152602061115e611328565b910152602080825183010191016113b3565b60405191829182611304565b34610f58576020366003190112610f5857600435906001600160601b03198216809203610f58576020915f525f825260ff60405f20541615158152f35b604081019081106001600160401b038211176111d457604052565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b038211176111d457604052565b90601f801991011681019081106001600160401b038211176111d457604052565b6001600160401b0381116111d457601f01601f191660200190565b81601f82011215610f585780359061125682611224565b926112646040519485611203565b82845260208383010111610f5857815f926020809301838601378301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060018060a01b0382511681526001600160401b0360208301511660208201526040820151151560408201526060820151606082015260a0806112fb608085015160c0608086015260c0850190611285565b93015191015290565b606060206113259381845280518285015201519160408082015201906112a9565b90565b60405190611335826111e8565b5f60a083828152826020820152826040820152826060820152606060808201520152565b51906001600160a01b0382168203610f5857565b81601f82011215610f585780519061138482611224565b926113926040519485611203565b82845260208383010111610f5857815f9260208093018386015e8301015290565b602081830312610f58578051906001600160401b038211610f58570190604082820312610f5857604051916113e7836111b9565b805183526020810151906001600160401b038211610f5857019060c082820312610f585760405191611418836111e8565b61142181611359565b835260208101516001600160401b0381168103610f5857602084015260408101518015158103610f585760408401526060810151606084015260808101516001600160401b038111610f585760a09261147b91830161136d565b6080840152015160a0820152602082015290565b6040519061149c826111b9565b60606020835f81520152565b903590601e1981360301821215610f5857018035906001600160401b038211610f5857602001918136038313610f5857565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578136038313610f5857565b9035601e1982360301811215610f585701602081359101916001600160401b038211610f58578160051b36038313610f5857565b356bffffffffffffffffffffffff1981168103610f585790565b6001600160401b0381116111d45760051b60200190565b9080601f83011215610f585781516115a781611579565b926115b56040519485611203565b81845260208085019260051b820101928311610f5857602001905b8282106115dd5750505090565b81518152602091820191016115d0565b80518210156116015760209160051b010190565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220c6e040b4160c8b146319b09f87fc0e1f0cc0274ea8709b4bbd89b1c69187949f64736f6c634300081b0033","sourceMap":"720:8768:123:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;720:8768:123;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;2638:16;;;;2612:68;2638:16;;;;:::i;:::-;2656;;;;:::i;:::-;720:8768;;;;;;;;;;;;;;;;:::i;:::-;;;;;;2612:68;;;2762:15;-1:-1:-1;;;;;720:8768:123;2762:49;;;;;720:8768;;;;;;2762:49;;720:8768;;2762:49;;720:8768;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;2638:16;720:8768;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:123;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2638:16;720:8768;;;;;;;;;;;;;;;;;;;;2762:49;;;;;;;;;;720:8768;-1:-1:-1;;;2875:16:123;;;:::i;:::-;720:8768;;;;;;;;;;;;2857:90;;3144:16;720:8768;;;;-1:-1:-1;;;;;720:8768:123;2971:16;;;:::i;:::-;720:8768;;;;;;;;;;;;;;;;;;;;:::i;:::-;3144:16;;:::i;:::-;720:8768;;-1:-1:-1;;;3114:47:123;;720:8768;;3114:47;;720:8768;;;;;;;;;;;:::i;:::-;3114:47;:4;;:47;;;;;;;720:8768;-1:-1:-1;3110:214:123;;-1:-1:-1;;;3290:23:123;;720:8768;3290:23;;3110:214;720:8768;;;;;;;;;3339:74;720:8768;;3393:12;;;;;720:8768;;;;;;;;;;;;3339:74;720:8768;;;;;;;;3494:45;;3581:12;;720:8768;3581:12;;720:8768;;;;;;;;;3559:35;;720:8768;;3559:35;;720:8768;;;;;;:::i;:::-;3559:35;3114:4;;3559:35;;;;;;;3490:1211;-1:-1:-1;3555:310:123;;-1:-1:-1;;;3830:20:123;;720:8768;3830:20;;3555:310;720:8768;;3662:87;720:8768;5475:19;720:8768;;3700:12;;;;720:8768;;;;;;;;;3724:17;;;720:8768;;;;;;;;;;;;;;;3662:87;720:8768;;;;;;;;;5475:19;;720:8768;5475:19;;;:::i;:::-;;720:8768;;5475:3;-1:-1:-1;;;;;720:8768:123;5475:19;;;;;;;;3555:310;720:8768;;5475:19;720:8768;5475:19;;720:8768;5475:19;;;;;;720:8768;5475:19;;;:::i;:::-;;;720:8768;;;;-1:-1:-1;720:8768:123;;;;;;5475:19;;;-1:-1:-1;5475:19:123;;;720:8768;;;;;;;;;3559:35;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3490:1211;720:8768;;;;;;;;;;;;;;3885:45;3881:820;720:8768;;;3989:12;;720:8768;;;;3978:44;;720:8768;;;;;3978:44;;720:8768;;;;;;;;5746:3;-1:-1:-1;;;;;720:8768:123;;;;;:::i;:::-;;;5798:43;720:8768;5798:43;;720:8768;;;;;;;:::i;:::-;;;;5757:86;;720:8768;;;5746:98;;;;;720:8768;;;;;;;;;;;;;;;;5746:98;;720:8768;;5746:98;;720:8768;;;;;;;;;;2638:16;720:8768;;;5746:98;;;;;;;;3881:820;;720:8768;;5746:98;;;;;:::i;:::-;720:8768;;;;;;;5746:98;720:8768;;;;;3881:820;720:8768;;;;;;;;;;;4102:26;4077:51;4102:26;;4260:12;;720:8768;;4249:61;;720:8768;4249:61;720:8768;4249:61;;720:8768;;;;;;4249:61;;720:8768;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6409:17;;;:54;;;;720:8768;6409:91;;;;720:8768;6405:143;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:123;;;:::i;:::-;;;;;;;;;6666:13;;;6681:16;;;;;;720:8768;;;;;;;;;;;;;6836:30;;720:8768;;;;;6836:30;;720:8768;;;;;;2638:16;720:8768;;;;2638:16;720:8768;;;;;;;;;;;;;;;;;-1:-1:-1;;;6836:30:123;;;;;-1:-1:-1;6836:30:123;720:8768;6836:3;-1:-1:-1;;;;;720:8768:123;6836:30;;;;;;;;4073:628;720:8768;;6836:30;;;;;;;;;;:::i;:::-;;;720:8768;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;:::i;:::-;3555:310;720:8768;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;6699:3;6767:10;;;;:::i;:::-;720:8768;6779:13;;;;:::i;:::-;;6794;;;;:::i;:::-;;720:8768;;:::i;:::-;;;;7426:15;;;:56;;;;6699:3;7422:108;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:123;;;:::i;:::-;;;;;;;;;7635:13;;;7650:14;;;;;;720:8768;;;;;;;;;;;;;;:::i;:::-;;;;7997:53;;720:8768;6718:90;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;6666:13;;7666:3;720:8768;;;-1:-1:-1;;;;;7747:19:123;720:8768;7747:19;;:::i;:::-;720:8768;;7910:18;;;;;:::i;:::-;;720:8768;;;;;;:::i;:::-;138:1:0;;7695:274:123;720:8768;7695:274;;138:1:0;7695:274:123;720:8768;7695:274;;138:1:0;7695:274:123;720:8768;7695:274;;720:8768;;7695:274;;720:8768;7695:274;;;720:8768;7685:284;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;7635:13;;720:8768;;;;;:::i;:::-;;;;;;;;;;7422:108;-1:-1:-1;;;7505:14:123;;720:8768;8505:14;7505;7426:56;720:8768;;;7445:37;;;7426:56;;720:8768;;;;;:::i;:::-;;;;;;;;;;6405:143;-1:-1:-1;;;6523:14:123;;720:8768;8505:14;6523;6409:91;720:8768;;;6467:33;;;6409:91;;:54;720:8768;;;6430:33;;;6409:54;;720:8768;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;720:8768:123;;;-1:-1:-1;720:8768:123;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;720:8768:123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;4073:628;720:8768;;;;;;;4415:26;4390:51;4415:26;;4544:12;720:8768;;;4533:50;;;720:8768;4533:50;720:8768;4533:50;;720:8768;;;;;;4533:50;;720:8768;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8428:17;;:54;;;;720:8768;8424:106;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:123;;;:::i;:::-;;;;;;;;;8646:13;;;8661:16;;;;;;-1:-1:-1;;9213:3:123;-1:-1:-1;;;;;720:8768:123;;-1:-1:-1;;9213:30:123;;;;;720:8768;;;;;;9213:30;;720:8768;;;9213:30;720:8768;;9213:30;;720:8768;;;;;;2638:16;720:8768;;;;2638:16;720:8768;;;;;;;;;;;;;;;;;9213:30;;;;;;;;;;;;;;;;;;;;;;;4386:315;;720:8768;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8679:3;8722:13;;;;:::i;:::-;;720:8768;;8799:14;;8795:74;;720:8768;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;720:8768:123;;;:::i;:::-;;;;;;;;;8978:13;;;8993;;;;;;9168:10;;;;720:8768;9168:10;;;;;:::i;:::-;720:8768;;;;;;;;:::i;:::-;;;;9136:56;;720:8768;9117:75;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;8646:13;;9008:3;9069:7;;720:8768;9069:7;;;:::i;:::-;720:8768;;;;;;;:::i;:::-;;;9041:47;720:8768;9041:47;;720:8768;9031:57;;;;:::i;:::-;;;;;;:::i;:::-;;720:8768;8978:13;;720:8768;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8795:74;-1:-1:-1;;;8840:14:123;;720:8768;8505:14;8840;720:8768;;;;;:::i;:::-;;;;;;;;;;8424:106;-1:-1:-1;;;8505:14:123;;720:8768;8505:14;;8428:54;720:8768;;;8449:33;;;8428:54;;720:8768;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;4386:315;-1:-1:-1;;;4668:22:123;;720:8768;4668:22;;720:8768;-1:-1:-1;;;720:8768:123;;;;;;;;;-1:-1:-1;;;720:8768:123;;;;;;;;3114:47;;;;;;;;;;;;;:::i;:::-;;;720:8768;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;:::i;:::-;;;;;3114:47;;;;2857:90;-1:-1:-1;;;2915:21:123;;720:8768;2915:21;;2762:49;;;;;720:8768;2762:49;;:::i;:::-;720:8768;2762:49;;;;;720:8768;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;720:8768:123;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;720:8768:123;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;720:8768:123;;;;;;9463:15;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;-1:-1:-1;;720:8768:123;;;;;;-1:-1:-1;;;;;720:8768:123;;;;5125:38;720:8768;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5125:38;;;;;;:::i;:::-;720:8768;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;720:8768:123;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;:::o;:::-;;;;-1:-1:-1;720:8768:123;;;;;-1:-1:-1;720:8768:123;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;:::o;:::-;-1:-1:-1;;;;;720:8768:123;;;;;;-1:-1:-1;;720:8768:123;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;720:8768:123;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;720:8768:123;;;;;;;;-1:-1:-1;;720:8768:123;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;720:8768:123;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;720:8768:123;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;720:8768:123;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;720:8768:123;;;;;;;;-1:-1:-1;;720:8768:123;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:8768:123;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;720:8768:123;;;;;;;:::o;:::-;-1:-1:-1;;;;;720:8768:123;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"67771":[{"start":1020,"length":32},{"start":1227,"length":32},{"start":1849,"length":32},{"start":3090,"length":32}],"67774":[{"start":268,"length":32},{"start":4320,"length":32}]}},"methodIdentifiers":{"decodeAttestData(bytes)":"4a216dfd","decodeAttestationPayload(bytes)":"a2be4858","envelopesSeen(bytes20)":"025d26be","getServiceManager()":"4dda0b43","handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"f969ff33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEAS\",\"name\":\"eas\",\"type\":\"address\"},{\"internalType\":\"contract IWavsServiceManager\",\"name\":\"serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DataDecodingFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnvelopeAlreadySeen\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEAS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOperationType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidServiceManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PayloadDecodingFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"DebuggingAttestCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payloadLength\",\"type\":\"uint256\"}],\"name\":\"DebuggingEnvelopeReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"DebuggingPayloadDecoded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"decodeAttestData\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"schema\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expirationTime\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"revocable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"refUID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct AttestationRequestData\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct AttestationRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"decodeAttestationPayload\",\"outputs\":[{\"components\":[{\"internalType\":\"enum WavsAttester.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct WavsAttester.AttestationPayload\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"}],\"name\":\"envelopesSeen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"seen\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"handleSignedEnvelope\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"eas\":\"The address of the global EAS contract.\",\"serviceManager\":\"The address of the WAVS service manager.\"}},\"getServiceManager()\":{\"returns\":{\"_0\":\"address The address of the service manager\"}},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the attestation payload\",\"signatureData\":\"The signature data for validation\"}}},\"title\":\"WavsAttester\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Creates a new WavsAttester instance.\"},\"decodeAttestData(bytes)\":{\"notice\":\"Helper function for decoding attest data\"},\"decodeAttestationPayload(bytes)\":{\"notice\":\"Helper function for decoding AttestationPayload\"},\"getServiceManager()\":{\"notice\":\"Get the service manager address\"},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Handles signed envelope from WAVS and routes to appropriate attestation operation\"}},\"notice\":\"Ethereum Attestation Service - Example that integrates with WAVS\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/eas/WavsAttester.sol\":\"WavsAttester\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol\":{\"keccak256\":\"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880\",\"dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol\":{\"keccak256\":\"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158\",\"dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol\":{\"keccak256\":\"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f\",\"dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]},\"src/contracts/eas/WavsAttester.sol\":{\"keccak256\":\"0x2251e7631dd57111de9f540007322022e7c7e0ec7e193bb62cb3ab1f79e56cd9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6318f2ba752f88c97ddd3ab81cf3c6dc923bfa6bca21e39abf220e9a19b97d03\",\"dweb:/ipfs/QmcqZEZZVH14z4FF1MwxW1QjrRLDD3LC3qC5BR7ncNfTQ8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IEAS","name":"eas","type":"address"},{"internalType":"contract IWavsServiceManager","name":"serviceManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"DataDecodingFailed"},{"inputs":[],"type":"error","name":"EnvelopeAlreadySeen"},{"inputs":[],"type":"error","name":"InvalidEAS"},{"inputs":[],"type":"error","name":"InvalidInput"},{"inputs":[],"type":"error","name":"InvalidOperationType"},{"inputs":[],"type":"error","name":"InvalidServiceManager"},{"inputs":[],"type":"error","name":"PayloadDecodingFailed"},{"inputs":[{"internalType":"bytes32","name":"schema","type":"bytes32","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"dataLength","type":"uint256","indexed":false}],"type":"event","name":"DebuggingAttestCalled","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint256","name":"payloadLength","type":"uint256","indexed":false}],"type":"event","name":"DebuggingEnvelopeReceived","anonymous":false},{"inputs":[{"internalType":"uint8","name":"operationType","type":"uint8","indexed":false},{"internalType":"uint256","name":"dataLength","type":"uint256","indexed":false}],"type":"event","name":"DebuggingPayloadDecoded","anonymous":false},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeAttestData","outputs":[{"internalType":"struct AttestationRequest","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"schema","type":"bytes32"},{"internalType":"struct AttestationRequestData","name":"data","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint64","name":"expirationTime","type":"uint64"},{"internalType":"bool","name":"revocable","type":"bool"},{"internalType":"bytes32","name":"refUID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}]}]}]},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeAttestationPayload","outputs":[{"internalType":"struct WavsAttester.AttestationPayload","name":"","type":"tuple","components":[{"internalType":"enum WavsAttester.OperationType","name":"operationType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}]}]},{"inputs":[{"internalType":"bytes20","name":"eventId","type":"bytes20"}],"stateMutability":"view","type":"function","name":"envelopesSeen","outputs":[{"internalType":"bool","name":"seen","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"handleSignedEnvelope"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"eas":"The address of the global EAS contract.","serviceManager":"The address of the WAVS service manager."}},"getServiceManager()":{"returns":{"_0":"address The address of the service manager"}},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the attestation payload","signatureData":"The signature data for validation"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Creates a new WavsAttester instance."},"decodeAttestData(bytes)":{"notice":"Helper function for decoding attest data"},"decodeAttestationPayload(bytes)":{"notice":"Helper function for decoding AttestationPayload"},"getServiceManager()":{"notice":"Get the service manager address"},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Handles signed envelope from WAVS and routes to appropriate attestation operation"}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/eas/WavsAttester.sol":"WavsAttester"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol":{"keccak256":"0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12","urls":["bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880","dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol":{"keccak256":"0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754","urls":["bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158","dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol":{"keccak256":"0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb","urls":["bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f","dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"},"src/contracts/eas/WavsAttester.sol":{"keccak256":"0x2251e7631dd57111de9f540007322022e7c7e0ec7e193bb62cb3ab1f79e56cd9","urls":["bzz-raw://6318f2ba752f88c97ddd3ab81cf3c6dc923bfa6bca21e39abf220e9a19b97d03","dweb:/ipfs/QmcqZEZZVH14z4FF1MwxW1QjrRLDD3LC3qC5BR7ncNfTQ8"],"license":"MIT"}},"version":1},"id":123} \ No newline at end of file diff --git a/frontend/abis/WavsIndexer.json b/frontend/abis/WavsIndexer.json index b76575ed..ab2a75bc 100644 --- a/frontend/abis/WavsIndexer.json +++ b/frontend/abis/WavsIndexer.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"serviceManager","type":"address","internalType":"contract IWavsServiceManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"decodeIndexingPayload","inputs":[{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IWavsIndexer.IndexingPayload","components":[{"name":"toAdd","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]},{"name":"toDelete","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"pure"},{"type":"function","name":"eventExists","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"eventExistsAndDeleted","inputs":[{"name":"eventId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"events","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddress","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddressAndTag","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddressAndType","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddressAndTypeAndTag","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainId","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContract","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndAddress","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndType","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndTypeAndTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByType","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByTypeAndTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getEvent","inputs":[{"name":"eventId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IWavsIndexer.IndexedEvent","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddress","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddressAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddressAndType","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddressAndTypeAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByChainId","inputs":[{"name":"chainId","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContract","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndAddress","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndType","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndTypeAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByTag","inputs":[{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByType","inputs":[{"name":"eventType","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByTypeAndTag","inputs":[{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddress","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddressAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddressAndType","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddressAndTypeAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByChainId","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContract","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndAddress","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"addr","type":"address","internalType":"address"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndType","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndTypeAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByTag","inputs":[{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByType","inputs":[{"name":"eventType","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByTypeAndTag","inputs":[{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"handleSignedEnvelope","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEvents","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"EventDeleted","inputs":[{"name":"eventId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"EventIndexed","inputs":[{"name":"eventId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"relevantContract","type":"address","indexed":true,"internalType":"address"},{"name":"eventType","type":"string","indexed":true,"internalType":"string"},{"name":"relevantAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"tags","type":"string[]","indexed":false,"internalType":"string[]"}],"anonymous":false},{"type":"error","name":"CannotCreateDeletedEvent","inputs":[]},{"type":"error","name":"EventAlreadyDeleted","inputs":[]},{"type":"error","name":"EventAlreadyExists","inputs":[]},{"type":"error","name":"EventDoesNotExist","inputs":[]},{"type":"error","name":"ExpectedEventIdZero","inputs":[]},{"type":"error","name":"InvalidOffset","inputs":[]},{"type":"error","name":"InvalidServiceManager","inputs":[]},{"type":"error","name":"NoEvents","inputs":[]},{"type":"error","name":"PayloadDecodingFailed","inputs":[]}],"bytecode":{"object":"0x60e0346100b157601f613e4b38819003918201601f19168301916001600160401b038311848410176100b5578084926020946040528339810103126100b157516001600160a01b038116908190036100b15760016080525f60a0525f60c05280156100a257601080546001600160a01b031916919091179055604051613d8190816100ca823960805181612532015260a0518161255d015260c051816125880152f35b63c172d20d60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301bc644114612fcb575080630c9fdf2814612f395780631060595714612ee2578063118e58bd14612eb35780631eaf27b114612e2d5780631fb294da14612d775780632195030214612cfa5780632410d64114612c455780632a2f991214612bfb5780632e58202814612bbb578063309c2ccc146127c55780633a363314146127995780633aa19a9f146126f95780634dda0b43146126d157806350f5fa8414612666578063511c20ba1461261557806354fd4d5014612513578063550edfe21461248d57806360742b14146124165780636cf1df2c146123c557806380bec78014612318578063832d2fe6146122d8578063850b9db6146121a85780638835aec11461215f5780638981482f146120895780638a1761e31461203f5780638a73363014611fff5780638c172fa214611e265780638d6685d214611daf578063928f9df514611d115780639d4e06ac14611c73578063b5a0827c14611ba4578063b682a1b614611b54578063ba87068614611b37578063baf19b2314611a3f578063bfdc4a6114611917578063c3014d5814611891578063d428fbe31461183a578063da358da2146117e9578063dac1fe5514611727578063e80fb963146116b1578063e8c7936914611671578063ea9f2c86146115d8578063ec880f6f14611597578063f969ff331461035b578063f99417bf146102bb578063fabbcab3146102695763fbea4e6d1461022e575f80fd5b34610266576020366003190112610266576020906040906001600160a01b036102556132a9565b168152600483522054604051908152f35b80fd5b5034610266576020908161027c366135a3565b9390604051928184925191829101835e810160068152030190209081548310156102665760206102ac848461344e565b90549060031b1c604051908152f35b5034610266576080366003190112610266576004356001600160401b038111610357576102ec9036906004016133eb565b906102f56132bf565b6102fd6132d5565b9060208060643595604051928184925191829101835e810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f209081548310156102665760206102ac848461344e565b5080fd5b503461153557604036600319011261153557600435906001600160401b03821161153557816004019180360390606060031983011261153557602435936001600160401b038511611535578460040160606003198736030112611535576010546001600160a01b031695863b1561153557604051916366b8ac4f60e11b8352604060048401528335976001600160601b031989168099036115355788604485015260248601356001600160601b0360a01b811680910361153557606485015261043c61042b60448801809761378e565b6060608488015260a48701916137bf565b84810360031901602486015292606084019261045881806137df565b606087529485905260808601945f5b8181106115715750505061047f9060248301906137df565b8585036020870152808552602085019460208260051b82010195835f925b848410611539575050505050506044013563ffffffff811680910361153557848093819260405f97015203915afa801561152a57611515575b506104df613707565b5035916022190182121561151157016004810135906001600160401b0382116115115760240190803603821361151157604051630c270b3360e21b81526020600482015291839183918291610539916024840191906137bf565b0381305afa82918161117a575b5061055a57634f64bf9960e11b8252600482fd5b91825151158061116d575b61115e57825190815161062e575b505090602001518051610584575080f35b815b815181101561062957610599818361386b565b51808452600160205260ff6040852054161561061a578084528360205260ff600a6040862001541661060b579081600192855284602052600a60408620018360ff198254161790557f719d22d3e1041df06461e5bfd381fed6f93905f93013b8526a3e94e2f418868e8580a201610586565b63890be21360e01b8452600484fd5b634833ae7360e11b8452600484fd5b505080f35b9290825b815184101561114f576040519260208401938685526001600160601b0360a01b8660a01b1660348201526020815261066b6040826133af565b519351936020811061113a575b50610683858461386b565b5191825161112b57848352848152600160205260ff60408220541661111c57610140830192835161110d57858252816020526040822096815188556001880195602083019687518051906001600160401b0382116110f9576106ef826106e9855461364e565b85613cd2565b602090601f83116001146110975761071e9291889183610d8b575b50508160011b915f199060031b1c19161790565b90555b6002890194604084019560018060a01b038751166001600160601b0360a01b825416179055606084015160038b015560048a016001600160801b036080860151166001600160801b031982541617905560058a019660a085019788518051906001600160401b0382116110215761079c826106e9855461364e565b602090601f8311600114611035576107ca92918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60068b0160c08601518051906001600160401b038211611021576107f5826106e9855461364e565b602090601f8311600114610fbf5761082392918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60078b019a60e086019b8c5190815191600160401b8311610dfc578154838355808410610f45575b50602001908952602089209089905b838210610e5c575050505060088101956101008101968751908151916001600160401b038311610e4857600160401b8311610e48576020908b835485855585818110610e2d575b50505001908a5260208a208a5b838110610e1057505050506101200151805160098301916001600160401b038211610dfc576108e4826106e9855461364e565b602090601f8311600114610d9657918061091792600a9695948d92610d8b5750508160011b915f199060031b1c19161790565b90555b019051151560ff80198354169116179055888552600160205260408520600160ff19825416179055600f545f198114610d7757600101600f55610979896020808b51604051928184925191829101835e81016002815203019020613d17565b6020808951604051928184925191829101835e60039082019081520301902086516001600160a01b03165f908152602091909152604090206109bc908a90613d17565b6109e2896020808a51604051928184925191829101835e81016005815203019020613d17565b6020808951604051928184925191829101835e8101600b81520301902060018060a01b0387511660018060a01b03165f52602052610a2d89610a2860405f208a5161342f565b613d17565b845b8a518051821015610b4457610a45828c9261386b565b51816040518083518060208601835e81016006815203602001902090610a6a91613d17565b818a51604051818192516020819201835e810160088152036020019020610a91908361342f565b90610a9b91613d17565b8a51604051818192516020819201835e600c9082019081520360209081019091208a516001600160a01b03165f9081529152604090208290610add908361342f565b90610ae791613d17565b8a51604051818192516020819201835e600e9082019081520360209081019091208a516001600160a01b03165f9081529152604090208a51610b29919061342f565b610b329161342f565b90610b3c91613d17565b600101610a2f565b505099989690939485995b845180518c1015610c63576001600160a01b0390610b6e908d9061386b565b5116958688526004602052610b868b60408a20613d17565b8688526009602052610ba08b610a2860408b208c5161342f565b6020808551604051928184925191829101835e60079082019081520301902083516001600160a01b039081165f90815260209283526040808220928b168252919092529020610bf0908c90613d17565b875b8a5151811015610c555780610c4f8d610a288e610c338f968f8f986040828b60019c610c489552600a602052610c398a610a28858520610c338a8d5161386b565b5161342f565b8152600d60205220905161342f565b925161386b565b01610bf2565b506001909b019a9550610b4f565b5096939a9950602091509791949796939660018060a01b0390511692519951935199604051918183925191829101835e81018981520390209260405190604082016040835281518091526020606084019201908a905b808210610d555750505081810360208301528a5180825260208201906020808260051b8501019d01928b5b828110610d28575050505050807f277b4e9514cb36d052849f3dc84cee333641d03c0e9afde019ebeff0fcf640489160019798999a9b0390a4019293919093610632565b909192939d8e601f198483030186525190610d42916130e4565b9d60209081019401929190600101610ce4565b82516001600160a01b0316845260209384019390920191600190910190610cb9565b634e487b7160e01b86526011600452602486fd5b015190505f8061070a565b838b52818b209190601f1984168c5b818110610de45750916001939185600a9897969410610dcc575b505050811b01905561091a565b01515f1960f88460031b161c191690555f8080610dbf565b92936020600181928786015181550195019301610da5565b634e487b7160e01b8a52604160045260248afd5b82516001600160a01b0316818301556020909201916001016108b1565b848387610e409552209182019101613cbc565b8b5f856108a4565b634e487b7160e01b8b52604160045260248bfd5b80518051906001600160401b038211610f3157610e8382610e7d875461364e565b87613cd2565b6020908d601f8411600114610ec9578360019592946020948796610eba9492610d8b5750508160011b915f199060031b1c19161790565b86555b0193019101909161085d565b9190601f198416878452828420935b818110610f195750936020936001969387969383889510610f01575b505050811b018655610ebd565b01515f1960f88460031b161c191690555f8080610ef4565b92936020600181928786015181550195019301610ed8565b634e487b7160e01b8d52604160045260248dfd5b828b528360208c2091820191015b818110610f60575061084e565b808c610f6e6001935461364e565b80610f7c575b505001610f53565b601f81118414610f935750508c81555b8c5f610f74565b83601f60208486610fae965220920160051c82019101613cbc565b808d528c6020812081835555610f8c565b838a52818a209190601f1984168b5b8181106110095750908460019594939210610ff1575b505050811b019055610826565b01515f1960f88460031b161c191690555f8080610fe4565b92936020600181928786015181550195019301610fce565b634e487b7160e01b89526041600452602489fd5b838a52818a209190601f1984168b5b81811061107f5750908460019594939210611067575b505050811b0190556107cd565b01515f1960f88460031b161c191690555f808061105a565b92936020600181928786015181550195019301611044565b8388528188209190601f198416895b8181106110e157509084600195949392106110c9575b505050811b019055610721565b01515f1960f88460031b161c191690555f80806110bc565b929360206001819287860151815501950193016110a6565b634e487b7160e01b87526041600452602487fd5b633060486160e21b8252600482fd5b63232cdbe760e11b8152600490fd5b63315d06e960e11b8152600490fd5b5f949194199060200360031b1b16925f610678565b9350506020915091905f610573565b63773943d760e11b8252600482fd5b5060208301515115610565565b9091503d8084833e61118c81836133af565b81019060208183031261150d578051906001600160401b0382116112a357019060408282031261150d57604051916111c383613364565b80516001600160401b0381116112a757810182601f820112156112a7578051906111ec82613720565b916111fa60405193846133af565b80835260208084019160051b830101918583116115095760208101915b8383106112ab575050505083526020810151906001600160401b0382116112a757019080601f830112156112a357815161125081613720565b9261125e60405194856133af565b81845260208085019260051b82010192831161129f57602001905b82821061128f575050506020820152905f610546565b8151815260209182019101611279565b8680fd5b8480fd5b8580fd5b82516001600160401b038111611505578201610160818903601f19011261150557604051906112d982613393565b6020810151825260408101516001600160401b0381116114b15789602061130292840101613813565b602083015261131360608201613857565b60408301526080810151606083015260a08101516001600160801b03811681036114b157608083015260c08101516001600160401b0381116114b15789602061135e92840101613813565b60a083015260e08101516001600160401b0381116114b15789602061138592840101613813565b60c08301526101008101516001600160401b0381116114b15760209082010189601f820112156114b1578051906113bb82613720565b916113c960405193846133af565b80835260208084019160051b830101918c83116114cd5760208101915b8383106114d1575050505060e08301526101208101516001600160401b0381116114b15760209082010189601f820112156114b15780519061142782613720565b9161143560405193846133af565b80835260208084019160051b830101918c83116114cd57602001905b8282106114b5575050506101008301526101408101516001600160401b0381116114b157906114888a602061016094840101613813565b610120840152015180151581036114ad57610140820152815260209283019201611217565b8b80fd5b8c80fd5b602080916114c284613857565b815201910190611451565b8f80fd5b82516001600160401b0381116114ff576020918f6114f490848094870101613813565b8152019201916113e6565b50508f80fd5b8a80fd5b8880fd5b8380fd5b8280fd5b6115229194505f906133af565b5f925f6104d6565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080611561600193601f1986820301885261155b8d8861378e565b906137bf565b9a0194019401929493919061049d565b909195602080600192838060a01b036115898b6132eb565b168152019701929101610467565b34611535576115c36115a83661351a565b929160018060a01b03165f52600960205260405f209061342f565b8054821015611535576020916102ac9161344e565b346115355760206115e836613560565b949093836040949394519384928337810160058152030190206040519081602082549182815201915f5260205f20905f5b81811061165b5761165761164361163e8a8a8a8a611639818c03826133af565b61387f565b613946565b604051918291602083526020830190613251565b0390f35b8254845260209093019260019283019201611619565b3461153557602080611682366135a3565b9290604051928184925191829101835e810160028152030190208054821015611535576020916102ac9161344e565b34611535576060366003190112611535576004356001600160401b038111611535576116e19036906004016133eb565b6024356001600160401b038111611535576117036115c39136906004016133eb565b604051835160443594602091839181908401835e810160088152030190209061342f565b346115355760a0366003190112611535576117406132a9565b6024356001600160401b038111611535576117616020913690600401613099565b919061176b6130c6565b9360018060a01b03165f526009825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106117d35761165761164361163e88886117c6818a03826133af565b606435906044359061387f565b82548452602090930192600192830192016117a8565b34611535576020366003190112611535576004356001600160401b03811161153557602061181c81923690600401613099565b91908260405193849283378101600681520301902054604051908152f35b34611535576020808061184c366132ff565b9590938360409493945193849283378101600b8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b34611535576060366003190112611535576004356001600160401b038111611535576118c1903690600401613099565b6118c96132bf565b9060206118d46132d5565b93826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b34611535576020366003190112611535576004355f525f602052602060405f20805490611a3260405191611959836119528160018501613686565b03846133af565b611a2460018060a01b03600283015416611a166003840154916001600160801b036004860154166040519061199c826119958160058b01613686565b03836133af565b604051946119b8866119b18160068c01613686565b03876133af565b6119f960ff600a6040519a6119db8c6119d48160098501613686565b038d6133af565b0154169a6101206040519e8f9e8f90815201526101208d01906130e4565b9360408c015260608b015260808a015288820360a08a01526130e4565b9086820360c08801526130e4565b9084820360e08601526130e4565b9015156101008301520390f35b346115355760c036600319011261153557611a586132a9565b6024356001600160401b03811161153557611a77903690600401613099565b90604435906001600160401b03821161153557602092611a9c84933690600401613099565b949092611aa76130d5565b9660018060a01b03165f52600d825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611b215761165761164361163e8888611b14818a03826133af565b608435906064359061387f565b8254845260209093019260019283019201611af6565b34611535575f366003190112611535576020600f54604051908152f35b3461153557602036600319011261153557600435805f52600160205260ff60405f20541680611b8b575b6020906040519015158152f35b505f525f602052602060ff600a60405f20015416611b7e565b346115355760c0366003190112611535576004356001600160401b03811161153557611bd4903690600401613099565b611bdc6132bf565b611be46132d5565b916020611bef6130d5565b94826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110611c5d5761165761164361163e8888611b14818a03826133af565b8254845260209093019260019283019201611c3f565b3461153557602080611c84366135d4565b9894929591968260409992995193849283378101600c8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611cfb5761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611cdb565b3461153557602080611d22366135d4565b9894929591968260409992995193849283378101600b8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611d995761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611d79565b34611535576020611dbf36613560565b949093836040949394519384928337810160068152030190206040519081602082549182815201915f5260205f20905f5b818110611e105761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611df0565b3461153557602036600319011261153557600435611e42613737565b50805f52600160205260ff60405f20541615611ff0575f525f60205260405f20604051611e6e81613393565b81548152604051611e8d81611e868160018701613686565b03826133af565b602082015260028201546001600160a01b03166040808301919091526003830154606083015260048301546001600160801b0316608083015251611ed881611e868160058701613686565b60a0820152604051611ef181611e868160068701613686565b60c0820152600782018054611f0581613720565b91611f1360405193846133af565b81835260208301905f5260205f205f915b838310611fcb575050505060e0820152600882016040519081602082549182815201915f5260205f20905f5b818110611fac576116578660ff600a8a89611f6d818b03826133af565b610100850152604051611f8781611e868160098601613686565b6101208501520154161515610140820152604051918291602083526020830190613108565b82546001600160a01b0316845260209093019260019283019201611f50565b600160208192604051611fe281611e868189613686565b815201920192019190611f24565b634833ae7360e11b5f5260045ffd5b3461153557602080612010366135a3565b9290604051928184925191829101835e810160058152030190208054821015611535576020916102ac9161344e565b346115355760206115c38161205336613477565b959192604094919451928184925191829101835e8101600b8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576080366003190112611535576004356001600160401b038111611535576120b9903690600401613099565b6120c16132bf565b906044356001600160401b038111611535576120e1903690600401613099565b6064949194356001600160401b038111611535576020958695869561210b87943690600401613099565b9890968260405193849283378101600e8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576040366003190112611535576121786132a9565b6001600160a01b03165f90815260046020526040902080546024359190821015611535576020916102ac9161344e565b346115355760e0366003190112611535576004356001600160401b038111611535576121d8903690600401613099565b906121e16132bf565b916044356001600160401b03811161153557612201903690600401613099565b6064356001600160401b03811161153557612220903690600401613099565b94909260c43596871515880361153557856020809794819560405193849283378101600e8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106122c25761165761164361163e88886122b5818a03826133af565b60a435906084359061387f565b8254845260209093019260019283019201612297565b34611535576020806122e9366134db565b929160018060a01b03165f52600a825260405f2083604051948593843782019081520301902054604051908152f35b346115355760a0366003190112611535576123316132a9565b6024356001600160401b038111611535576123536123799136906004016133eb565b61235b6130c6565b6001600160a01b039093165f908152600a602052604090209061342f565b6040519081602082549182815201915f5260205f20905f5b8181106123af5761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612391565b34611535576020366003190112611535576004356001600160401b0381116115355760206123f881923690600401613099565b91908260405193849283378101600581520301902054604051908152f35b3461153557602061242636613560565b949093836040949394519384928337810160028152030190206040519081602082549182815201915f5260205f20905f5b8181106124775761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201612457565b34611535576080366003190112611535576124a66132a9565b6024356001600160401b038111611535576124c59036906004016133eb565b604435906001600160401b0382116115355761250d6124eb6115c39336906004016133eb565b6001600160a01b039094165f908152600d60205260409020606435949261342f565b9061342f565b34611535575f36600319011261153557611657602061260160016125567f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81846125817f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81806125ac7f0000000000000000000000000000000000000000000000000000000000000000613b4f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826133af565b6040519182916020835260208301906130e4565b34611535576020366003190112611535576004356001600160401b03811161153557602061264881923690600401613099565b91908260405193849283378101600281520301902054604051908152f35b34611535576040366003190112611535576004356001600160401b03811161153557612696903690600401613099565b60206126a06132bf565b92826040519384928337810160038152030190209060018060a01b03165f52602052602060405f2054604051908152f35b34611535575f366003190112611535576010546040516001600160a01b039091168152602090f35b34611535576060366003190112611535576127126132a9565b6024356001600160401b03811161153557612731903690600401613099565b91604435906001600160401b038211611535576020938461275781943690600401613099565b95909360018060a01b03165f52600d825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576115c36127aa3661351a565b929160018060a01b03165f52600a60205260405f209061342f565b34611535576020366003190112611535576004356001600160401b038111611535576127f5903690600401613099565b6127fd613707565b50810190602081830312611535578035906001600160401b038211611535570190604082820312611535576040519161283583613364565b80356001600160401b03811161153557810182601f820112156115355780359061285e82613720565b9161286c60405193846133af565b80835260208084019160051b830101918583116115355760208101915b83831061296f575050505083526020810135906001600160401b03821161153557019080601f830112156115355781356128c281613720565b926128d060405194856133af565b81845260208085019260051b82010192831161153557602001905b82821061295f5761291a8585602082019081526040519283926020845251604060208501526060840190613251565b905190601f19838203016040840152602080835192838152019201905f5b818110612946575050500390f35b8251845285945060209384019390920191600101612938565b81358152602091820191016128eb565b82356001600160401b03811161153557820190610160828903601f190112611535576040519161299e83613393565b6020810135835260408101356001600160401b038111611535578960206129c7928401016133eb565b60208401526129d8606082016132eb565b60408401526080810135606084015260a08101356001600160801b038116810361153557608084015260c08101356001600160401b03811161153557896020612a23928401016133eb565b60a084015260e08101356001600160401b03811161153557896020612a4a928401016133eb565b60c08401526101008101356001600160401b0381116115355760209082010189601f82011215611535578035612a7f81613720565b91612a8d60405193846133af565b81835260208084019260051b820101918c83116115355760208201905b838210612b8d575050505060e08401526101208101356001600160401b0381116115355760209082010189601f8201121561153557803590612aeb82613720565b91612af960405193846133af565b80835260208084019160051b830101918c831161153557602001905b828210612b7557505050610100840152610140810135906001600160401b03821161153557612b4c8a6020610160948401016133eb565b610120850152013590811515820361153557826020939261014085940152815201920191612889565b60208091612b82846132eb565b815201910190612b15565b81356001600160401b038111611535576020918f612bb0908480948801016133eb565b815201910190612aaa565b3461153557602080612bcc366134db565b929160018060a01b03165f526009825260405f2083604051948593843782019081520301902054604051908152f35b346115355760206115c381612c0f36613477565b959192604094919451928184925191829101835e8101600c8152030190209060018060a01b03165f5260205260405f209061342f565b346115355760a0366003190112611535576004356001600160401b03811161153557612c75903690600401613099565b612c7d6132bf565b906020612c886130c6565b93826040519384928337810160038152030190209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110612ce45761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612cc6565b34611535576060366003190112611535576004356001600160401b03811161153557612d2a9036906004016133eb565b612d326132bf565b604051825160443593602091839181908401835e810160038152030190209060018060a01b03165f5260205260405f208054821015611535576020916102ac9161344e565b346115355760a0366003190112611535576004356001600160401b03811161153557612da79036906004016133eb565b612daf6132bf565b6044356001600160401b03811161153557612dce9036906004016133eb565b906064356001600160401b038111611535576115c392612df561250d9236906004016133eb565b9260208060843597604051928184925191829101835e8101600e8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576040366003190112611535576004356001600160401b03811161153557612e5d903690600401613099565b6024356001600160401b038111611535576020928392612e8284933690600401613099565b9490928260405193849283378101600881520301902083604051948593843782019081520301902054604051908152f35b34611535576020366003190112611535576004355f526001602052602060ff60405f2054166040519015158152f35b346115355760208080612ef4366132ff565b9590938360409493945193849283378101600c8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b3461153557608036600319011261153557612f526132a9565b6064359081151582036115355760018060a01b03165f52600460205260405f206040519081602082549182815201915f5260205f20905f5b818110612fb55761165761164361163e8888612fa8818a03826133af565b604435906024359061387f565b8254845260209093019260019283019201612f8a565b346115355760a0366003190112611535576004356001600160401b03811161153557612ffb903690600401613099565b602492919235906001600160401b0382116115355782602061302281943690600401613099565b9590938061302e6130c6565b988337810160088152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106130835761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201613065565b9181601f84011215611535578235916001600160401b038311611535576020838186019501011161153557565b60843590811515820361153557565b60a43590811515820361153557565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b908151815261318161316f61312e602085015161016060208601526101608501906130e4565b60018060a01b036040860151166040850152606085015160608501526001600160801b03608086015116608085015260a085015184820360a08601526130e4565b60c084015183820360c08501526130e4565b60e08301519082810360e0840152815180825260208201916020808360051b8301019401925f915b83831061322457505050505061010083015190828103610100840152602080835192838152019201905f5b818110613205575050506101406131fa81926101208601518582036101208701526130e4565b930151151591015290565b82516001600160a01b03168452602093840193909201916001016131d4565b9091929394602080613242600193601f1986820301875289516130e4565b970193019301919392906131a9565b9080602083519182815201916020808360051b8301019401925f915b83831061327c57505050505090565b909192939460208061329a600193601f198682030187528951613108565b9701930193019193929061326d565b600435906001600160a01b038216820361153557565b602435906001600160a01b038216820361153557565b604435906001600160a01b038216820361153557565b35906001600160a01b038216820361153557565b906060600319830112611535576004356001600160401b038111611535578261332a91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761336091600401613099565b9091565b604081019081106001600160401b0382111761337f57604052565b634e487b7160e01b5f52604160045260245ffd5b61016081019081106001600160401b0382111761337f57604052565b90601f801991011681019081106001600160401b0382111761337f57604052565b6001600160401b03811161337f57601f01601f191660200190565b81601f8201121561153557602081359101613405826133d0565b9261341360405194856133af565b8284528282011161153557815f92602092838601378301015290565b6040518151909260209284929081908501845e82019081520301902090565b8054821015613463575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6080600319820112611535576004356001600160401b03811161153557816134a1916004016133eb565b916024356001600160a01b03811681036115355791604435906001600160401b038211611535576134d4916004016133eb565b9060643590565b906040600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b0382116115355761336091600401613099565b906060600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b03821161153557613559916004016133eb565b9060443590565b608060031982011261153557600435906001600160401b0382116115355761358a91600401613099565b9091602435906044359060643580151581036115355790565b604060031982011261153557600435906001600160401b038211611535576135cd916004016133eb565b9060243590565b9060c0600319830112611535576004356001600160401b03811161153557826135ff91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761363591600401613099565b9091606435906084359060a43580151581036115355790565b90600182811c9216801561367c575b602083101461366857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161365d565b5f92918154916136958361364e565b80835292600181169081156136ea57506001146136b157505050565b5f9081526020812093945091925b8383106136d0575060209250010190565b6001816020929493945483858701015201910191906136bf565b915050602093945060ff929192191683830152151560051b010190565b6040519061371482613364565b60606020838281520152565b6001600160401b03811161337f5760051b60200190565b6040519061374482613393565b5f6101408382815260606020820152826040820152826060820152826080820152606060a0820152606060c0820152606060e0820152606061010082015260606101208201520152565b9035601e19823603018112156115355701602081359101916001600160401b03821161153557813603831361153557565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156115355701602081359101916001600160401b038211611535578160051b3603831361153557565b81601f820112156115355760208151910161382d826133d0565b9261383b60405194856133af565b8284528282011161153557815f926020928386015e8301015290565b51906001600160a01b038216820361153557565b80518210156134635760209160051b010190565b9081518015613929578082101561391b578382018110613911575b6138a384613720565b946138b160405196876133af565b848652601f196138c086613720565b013660208801375f5b8581106138d95750505050505090565b6001908215613906576138f485820185035f19015b8761386b565b516138ff828a61386b565b52016138c9565b6138f48186016138ee565b818103935061389a565b62ed0ab960e11b5f5260045ffd5b505050505060405161393c6020826133af565b5f81525f36813790565b90815161395281613720565b9061396060405192836133af565b80825261396f601f1991613720565b015f5b818110613b385750505f5b8351811015613b3357613990818561386b565b515f525f60205260405f20604051906139a882613393565b805482526040516139c081611e868160018601613686565b602083015260028101546001600160a01b03166040808401919091526003820154606084015260048201546001600160801b0316608084015251613a0b81611e868160058601613686565b60a0830152604051613a2481611e868160068601613686565b60c0830152600781018054613a3881613720565b91613a4660405193846133af565b81835260208301905f5260205f20905f905b838210613b0e575050505060e0830152600881016040519081602082549182815201915f5260205f20905f905b808210613aec57505050600194939282613aa560ff94600a9403826133af565b610100850152604051613abf81611e868160098601613686565b6101208501520154161515610140820152613ada828561386b565b52613ae5818461386b565b500161397d565b82546001600160a01b0316845260209093019260019283019290910190613a85565b600160208192604051613b2581611e86818a613686565b815201930191019091613a58565b509150565b602090613b43613737565b82828601015201613972565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613c99575b806d04ee2d6d415b85acef8100000000600a921015613c7e575b662386f26fc10000811015613c6a575b6305f5e100811015613c59575b612710811015613c4a575b6064811015613c3c575b1015613c31575b600a60216001840193613bd6856133d0565b94613be460405196876133af565b808652613bf3601f19916133d0565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015613c2c57600a9091613bfe565b505090565b600190910190613bc4565b606460029104930192613bbd565b61271060049104930192613bb3565b6305f5e10060089104930192613ba8565b662386f26fc1000060109104930192613b9b565b6d04ee2d6d415b85acef810000000060209104930192613b8b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613b71565b818110613cc7575050565b5f8155600101613cbc565b9190601f8111613ce157505050565b613d0b925f5260205f20906020601f840160051c83019310613d0d575b601f0160051c0190613cbc565b565b9091508190613cfe565b8054600160401b81101561337f57613d349160018201815561344e565b819291549060031b91821b915f19901b191617905556fea26469706673582212200dcd11dd9c0889f6269f03425a6fabc2d6a5ddeb54a7b2de7311f51ea199868364736f6c634300081b0033","sourceMap":"697:23375:102:-:0;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;2489:1;759:14:6;;-1:-1:-1;783:14:6;;-1:-1:-1;807:14:6;;2512:37:102;;2508:98;;2615:32;697:23375;;-1:-1:-1;;;;;;697:23375:102;;;;;;;;;;;;;;;759:14:6;697:23375:102;;;;;783:14:6;697:23375:102;;;;;807:14:6;697:23375:102;;;;;;2508:98;2572:23;;;-1:-1:-1;2572:23:102;;-1:-1:-1;2572:23:102;697:23375;-1:-1:-1;697:23375:102;;;;;;-1:-1:-1;697:23375:102;;;;;-1:-1:-1;697:23375:102","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301bc644114612fcb575080630c9fdf2814612f395780631060595714612ee2578063118e58bd14612eb35780631eaf27b114612e2d5780631fb294da14612d775780632195030214612cfa5780632410d64114612c455780632a2f991214612bfb5780632e58202814612bbb578063309c2ccc146127c55780633a363314146127995780633aa19a9f146126f95780634dda0b43146126d157806350f5fa8414612666578063511c20ba1461261557806354fd4d5014612513578063550edfe21461248d57806360742b14146124165780636cf1df2c146123c557806380bec78014612318578063832d2fe6146122d8578063850b9db6146121a85780638835aec11461215f5780638981482f146120895780638a1761e31461203f5780638a73363014611fff5780638c172fa214611e265780638d6685d214611daf578063928f9df514611d115780639d4e06ac14611c73578063b5a0827c14611ba4578063b682a1b614611b54578063ba87068614611b37578063baf19b2314611a3f578063bfdc4a6114611917578063c3014d5814611891578063d428fbe31461183a578063da358da2146117e9578063dac1fe5514611727578063e80fb963146116b1578063e8c7936914611671578063ea9f2c86146115d8578063ec880f6f14611597578063f969ff331461035b578063f99417bf146102bb578063fabbcab3146102695763fbea4e6d1461022e575f80fd5b34610266576020366003190112610266576020906040906001600160a01b036102556132a9565b168152600483522054604051908152f35b80fd5b5034610266576020908161027c366135a3565b9390604051928184925191829101835e810160068152030190209081548310156102665760206102ac848461344e565b90549060031b1c604051908152f35b5034610266576080366003190112610266576004356001600160401b038111610357576102ec9036906004016133eb565b906102f56132bf565b6102fd6132d5565b9060208060643595604051928184925191829101835e810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f209081548310156102665760206102ac848461344e565b5080fd5b503461153557604036600319011261153557600435906001600160401b03821161153557816004019180360390606060031983011261153557602435936001600160401b038511611535578460040160606003198736030112611535576010546001600160a01b031695863b1561153557604051916366b8ac4f60e11b8352604060048401528335976001600160601b031989168099036115355788604485015260248601356001600160601b0360a01b811680910361153557606485015261043c61042b60448801809761378e565b6060608488015260a48701916137bf565b84810360031901602486015292606084019261045881806137df565b606087529485905260808601945f5b8181106115715750505061047f9060248301906137df565b8585036020870152808552602085019460208260051b82010195835f925b848410611539575050505050506044013563ffffffff811680910361153557848093819260405f97015203915afa801561152a57611515575b506104df613707565b5035916022190182121561151157016004810135906001600160401b0382116115115760240190803603821361151157604051630c270b3360e21b81526020600482015291839183918291610539916024840191906137bf565b0381305afa82918161117a575b5061055a57634f64bf9960e11b8252600482fd5b91825151158061116d575b61115e57825190815161062e575b505090602001518051610584575080f35b815b815181101561062957610599818361386b565b51808452600160205260ff6040852054161561061a578084528360205260ff600a6040862001541661060b579081600192855284602052600a60408620018360ff198254161790557f719d22d3e1041df06461e5bfd381fed6f93905f93013b8526a3e94e2f418868e8580a201610586565b63890be21360e01b8452600484fd5b634833ae7360e11b8452600484fd5b505080f35b9290825b815184101561114f576040519260208401938685526001600160601b0360a01b8660a01b1660348201526020815261066b6040826133af565b519351936020811061113a575b50610683858461386b565b5191825161112b57848352848152600160205260ff60408220541661111c57610140830192835161110d57858252816020526040822096815188556001880195602083019687518051906001600160401b0382116110f9576106ef826106e9855461364e565b85613cd2565b602090601f83116001146110975761071e9291889183610d8b575b50508160011b915f199060031b1c19161790565b90555b6002890194604084019560018060a01b038751166001600160601b0360a01b825416179055606084015160038b015560048a016001600160801b036080860151166001600160801b031982541617905560058a019660a085019788518051906001600160401b0382116110215761079c826106e9855461364e565b602090601f8311600114611035576107ca92918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60068b0160c08601518051906001600160401b038211611021576107f5826106e9855461364e565b602090601f8311600114610fbf5761082392918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60078b019a60e086019b8c5190815191600160401b8311610dfc578154838355808410610f45575b50602001908952602089209089905b838210610e5c575050505060088101956101008101968751908151916001600160401b038311610e4857600160401b8311610e48576020908b835485855585818110610e2d575b50505001908a5260208a208a5b838110610e1057505050506101200151805160098301916001600160401b038211610dfc576108e4826106e9855461364e565b602090601f8311600114610d9657918061091792600a9695948d92610d8b5750508160011b915f199060031b1c19161790565b90555b019051151560ff80198354169116179055888552600160205260408520600160ff19825416179055600f545f198114610d7757600101600f55610979896020808b51604051928184925191829101835e81016002815203019020613d17565b6020808951604051928184925191829101835e60039082019081520301902086516001600160a01b03165f908152602091909152604090206109bc908a90613d17565b6109e2896020808a51604051928184925191829101835e81016005815203019020613d17565b6020808951604051928184925191829101835e8101600b81520301902060018060a01b0387511660018060a01b03165f52602052610a2d89610a2860405f208a5161342f565b613d17565b845b8a518051821015610b4457610a45828c9261386b565b51816040518083518060208601835e81016006815203602001902090610a6a91613d17565b818a51604051818192516020819201835e810160088152036020019020610a91908361342f565b90610a9b91613d17565b8a51604051818192516020819201835e600c9082019081520360209081019091208a516001600160a01b03165f9081529152604090208290610add908361342f565b90610ae791613d17565b8a51604051818192516020819201835e600e9082019081520360209081019091208a516001600160a01b03165f9081529152604090208a51610b29919061342f565b610b329161342f565b90610b3c91613d17565b600101610a2f565b505099989690939485995b845180518c1015610c63576001600160a01b0390610b6e908d9061386b565b5116958688526004602052610b868b60408a20613d17565b8688526009602052610ba08b610a2860408b208c5161342f565b6020808551604051928184925191829101835e60079082019081520301902083516001600160a01b039081165f90815260209283526040808220928b168252919092529020610bf0908c90613d17565b875b8a5151811015610c555780610c4f8d610a288e610c338f968f8f986040828b60019c610c489552600a602052610c398a610a28858520610c338a8d5161386b565b5161342f565b8152600d60205220905161342f565b925161386b565b01610bf2565b506001909b019a9550610b4f565b5096939a9950602091509791949796939660018060a01b0390511692519951935199604051918183925191829101835e81018981520390209260405190604082016040835281518091526020606084019201908a905b808210610d555750505081810360208301528a5180825260208201906020808260051b8501019d01928b5b828110610d28575050505050807f277b4e9514cb36d052849f3dc84cee333641d03c0e9afde019ebeff0fcf640489160019798999a9b0390a4019293919093610632565b909192939d8e601f198483030186525190610d42916130e4565b9d60209081019401929190600101610ce4565b82516001600160a01b0316845260209384019390920191600190910190610cb9565b634e487b7160e01b86526011600452602486fd5b015190505f8061070a565b838b52818b209190601f1984168c5b818110610de45750916001939185600a9897969410610dcc575b505050811b01905561091a565b01515f1960f88460031b161c191690555f8080610dbf565b92936020600181928786015181550195019301610da5565b634e487b7160e01b8a52604160045260248afd5b82516001600160a01b0316818301556020909201916001016108b1565b848387610e409552209182019101613cbc565b8b5f856108a4565b634e487b7160e01b8b52604160045260248bfd5b80518051906001600160401b038211610f3157610e8382610e7d875461364e565b87613cd2565b6020908d601f8411600114610ec9578360019592946020948796610eba9492610d8b5750508160011b915f199060031b1c19161790565b86555b0193019101909161085d565b9190601f198416878452828420935b818110610f195750936020936001969387969383889510610f01575b505050811b018655610ebd565b01515f1960f88460031b161c191690555f8080610ef4565b92936020600181928786015181550195019301610ed8565b634e487b7160e01b8d52604160045260248dfd5b828b528360208c2091820191015b818110610f60575061084e565b808c610f6e6001935461364e565b80610f7c575b505001610f53565b601f81118414610f935750508c81555b8c5f610f74565b83601f60208486610fae965220920160051c82019101613cbc565b808d528c6020812081835555610f8c565b838a52818a209190601f1984168b5b8181106110095750908460019594939210610ff1575b505050811b019055610826565b01515f1960f88460031b161c191690555f8080610fe4565b92936020600181928786015181550195019301610fce565b634e487b7160e01b89526041600452602489fd5b838a52818a209190601f1984168b5b81811061107f5750908460019594939210611067575b505050811b0190556107cd565b01515f1960f88460031b161c191690555f808061105a565b92936020600181928786015181550195019301611044565b8388528188209190601f198416895b8181106110e157509084600195949392106110c9575b505050811b019055610721565b01515f1960f88460031b161c191690555f80806110bc565b929360206001819287860151815501950193016110a6565b634e487b7160e01b87526041600452602487fd5b633060486160e21b8252600482fd5b63232cdbe760e11b8152600490fd5b63315d06e960e11b8152600490fd5b5f949194199060200360031b1b16925f610678565b9350506020915091905f610573565b63773943d760e11b8252600482fd5b5060208301515115610565565b9091503d8084833e61118c81836133af565b81019060208183031261150d578051906001600160401b0382116112a357019060408282031261150d57604051916111c383613364565b80516001600160401b0381116112a757810182601f820112156112a7578051906111ec82613720565b916111fa60405193846133af565b80835260208084019160051b830101918583116115095760208101915b8383106112ab575050505083526020810151906001600160401b0382116112a757019080601f830112156112a357815161125081613720565b9261125e60405194856133af565b81845260208085019260051b82010192831161129f57602001905b82821061128f575050506020820152905f610546565b8151815260209182019101611279565b8680fd5b8480fd5b8580fd5b82516001600160401b038111611505578201610160818903601f19011261150557604051906112d982613393565b6020810151825260408101516001600160401b0381116114b15789602061130292840101613813565b602083015261131360608201613857565b60408301526080810151606083015260a08101516001600160801b03811681036114b157608083015260c08101516001600160401b0381116114b15789602061135e92840101613813565b60a083015260e08101516001600160401b0381116114b15789602061138592840101613813565b60c08301526101008101516001600160401b0381116114b15760209082010189601f820112156114b1578051906113bb82613720565b916113c960405193846133af565b80835260208084019160051b830101918c83116114cd5760208101915b8383106114d1575050505060e08301526101208101516001600160401b0381116114b15760209082010189601f820112156114b15780519061142782613720565b9161143560405193846133af565b80835260208084019160051b830101918c83116114cd57602001905b8282106114b5575050506101008301526101408101516001600160401b0381116114b157906114888a602061016094840101613813565b610120840152015180151581036114ad57610140820152815260209283019201611217565b8b80fd5b8c80fd5b602080916114c284613857565b815201910190611451565b8f80fd5b82516001600160401b0381116114ff576020918f6114f490848094870101613813565b8152019201916113e6565b50508f80fd5b8a80fd5b8880fd5b8380fd5b8280fd5b6115229194505f906133af565b5f925f6104d6565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080611561600193601f1986820301885261155b8d8861378e565b906137bf565b9a0194019401929493919061049d565b909195602080600192838060a01b036115898b6132eb565b168152019701929101610467565b34611535576115c36115a83661351a565b929160018060a01b03165f52600960205260405f209061342f565b8054821015611535576020916102ac9161344e565b346115355760206115e836613560565b949093836040949394519384928337810160058152030190206040519081602082549182815201915f5260205f20905f5b81811061165b5761165761164361163e8a8a8a8a611639818c03826133af565b61387f565b613946565b604051918291602083526020830190613251565b0390f35b8254845260209093019260019283019201611619565b3461153557602080611682366135a3565b9290604051928184925191829101835e810160028152030190208054821015611535576020916102ac9161344e565b34611535576060366003190112611535576004356001600160401b038111611535576116e19036906004016133eb565b6024356001600160401b038111611535576117036115c39136906004016133eb565b604051835160443594602091839181908401835e810160088152030190209061342f565b346115355760a0366003190112611535576117406132a9565b6024356001600160401b038111611535576117616020913690600401613099565b919061176b6130c6565b9360018060a01b03165f526009825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106117d35761165761164361163e88886117c6818a03826133af565b606435906044359061387f565b82548452602090930192600192830192016117a8565b34611535576020366003190112611535576004356001600160401b03811161153557602061181c81923690600401613099565b91908260405193849283378101600681520301902054604051908152f35b34611535576020808061184c366132ff565b9590938360409493945193849283378101600b8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b34611535576060366003190112611535576004356001600160401b038111611535576118c1903690600401613099565b6118c96132bf565b9060206118d46132d5565b93826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b34611535576020366003190112611535576004355f525f602052602060405f20805490611a3260405191611959836119528160018501613686565b03846133af565b611a2460018060a01b03600283015416611a166003840154916001600160801b036004860154166040519061199c826119958160058b01613686565b03836133af565b604051946119b8866119b18160068c01613686565b03876133af565b6119f960ff600a6040519a6119db8c6119d48160098501613686565b038d6133af565b0154169a6101206040519e8f9e8f90815201526101208d01906130e4565b9360408c015260608b015260808a015288820360a08a01526130e4565b9086820360c08801526130e4565b9084820360e08601526130e4565b9015156101008301520390f35b346115355760c036600319011261153557611a586132a9565b6024356001600160401b03811161153557611a77903690600401613099565b90604435906001600160401b03821161153557602092611a9c84933690600401613099565b949092611aa76130d5565b9660018060a01b03165f52600d825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611b215761165761164361163e8888611b14818a03826133af565b608435906064359061387f565b8254845260209093019260019283019201611af6565b34611535575f366003190112611535576020600f54604051908152f35b3461153557602036600319011261153557600435805f52600160205260ff60405f20541680611b8b575b6020906040519015158152f35b505f525f602052602060ff600a60405f20015416611b7e565b346115355760c0366003190112611535576004356001600160401b03811161153557611bd4903690600401613099565b611bdc6132bf565b611be46132d5565b916020611bef6130d5565b94826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110611c5d5761165761164361163e8888611b14818a03826133af565b8254845260209093019260019283019201611c3f565b3461153557602080611c84366135d4565b9894929591968260409992995193849283378101600c8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611cfb5761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611cdb565b3461153557602080611d22366135d4565b9894929591968260409992995193849283378101600b8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611d995761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611d79565b34611535576020611dbf36613560565b949093836040949394519384928337810160068152030190206040519081602082549182815201915f5260205f20905f5b818110611e105761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611df0565b3461153557602036600319011261153557600435611e42613737565b50805f52600160205260ff60405f20541615611ff0575f525f60205260405f20604051611e6e81613393565b81548152604051611e8d81611e868160018701613686565b03826133af565b602082015260028201546001600160a01b03166040808301919091526003830154606083015260048301546001600160801b0316608083015251611ed881611e868160058701613686565b60a0820152604051611ef181611e868160068701613686565b60c0820152600782018054611f0581613720565b91611f1360405193846133af565b81835260208301905f5260205f205f915b838310611fcb575050505060e0820152600882016040519081602082549182815201915f5260205f20905f5b818110611fac576116578660ff600a8a89611f6d818b03826133af565b610100850152604051611f8781611e868160098601613686565b6101208501520154161515610140820152604051918291602083526020830190613108565b82546001600160a01b0316845260209093019260019283019201611f50565b600160208192604051611fe281611e868189613686565b815201920192019190611f24565b634833ae7360e11b5f5260045ffd5b3461153557602080612010366135a3565b9290604051928184925191829101835e810160058152030190208054821015611535576020916102ac9161344e565b346115355760206115c38161205336613477565b959192604094919451928184925191829101835e8101600b8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576080366003190112611535576004356001600160401b038111611535576120b9903690600401613099565b6120c16132bf565b906044356001600160401b038111611535576120e1903690600401613099565b6064949194356001600160401b038111611535576020958695869561210b87943690600401613099565b9890968260405193849283378101600e8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576040366003190112611535576121786132a9565b6001600160a01b03165f90815260046020526040902080546024359190821015611535576020916102ac9161344e565b346115355760e0366003190112611535576004356001600160401b038111611535576121d8903690600401613099565b906121e16132bf565b916044356001600160401b03811161153557612201903690600401613099565b6064356001600160401b03811161153557612220903690600401613099565b94909260c43596871515880361153557856020809794819560405193849283378101600e8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106122c25761165761164361163e88886122b5818a03826133af565b60a435906084359061387f565b8254845260209093019260019283019201612297565b34611535576020806122e9366134db565b929160018060a01b03165f52600a825260405f2083604051948593843782019081520301902054604051908152f35b346115355760a0366003190112611535576123316132a9565b6024356001600160401b038111611535576123536123799136906004016133eb565b61235b6130c6565b6001600160a01b039093165f908152600a602052604090209061342f565b6040519081602082549182815201915f5260205f20905f5b8181106123af5761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612391565b34611535576020366003190112611535576004356001600160401b0381116115355760206123f881923690600401613099565b91908260405193849283378101600581520301902054604051908152f35b3461153557602061242636613560565b949093836040949394519384928337810160028152030190206040519081602082549182815201915f5260205f20905f5b8181106124775761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201612457565b34611535576080366003190112611535576124a66132a9565b6024356001600160401b038111611535576124c59036906004016133eb565b604435906001600160401b0382116115355761250d6124eb6115c39336906004016133eb565b6001600160a01b039094165f908152600d60205260409020606435949261342f565b9061342f565b34611535575f36600319011261153557611657602061260160016125567f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81846125817f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81806125ac7f0000000000000000000000000000000000000000000000000000000000000000613b4f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826133af565b6040519182916020835260208301906130e4565b34611535576020366003190112611535576004356001600160401b03811161153557602061264881923690600401613099565b91908260405193849283378101600281520301902054604051908152f35b34611535576040366003190112611535576004356001600160401b03811161153557612696903690600401613099565b60206126a06132bf565b92826040519384928337810160038152030190209060018060a01b03165f52602052602060405f2054604051908152f35b34611535575f366003190112611535576010546040516001600160a01b039091168152602090f35b34611535576060366003190112611535576127126132a9565b6024356001600160401b03811161153557612731903690600401613099565b91604435906001600160401b038211611535576020938461275781943690600401613099565b95909360018060a01b03165f52600d825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576115c36127aa3661351a565b929160018060a01b03165f52600a60205260405f209061342f565b34611535576020366003190112611535576004356001600160401b038111611535576127f5903690600401613099565b6127fd613707565b50810190602081830312611535578035906001600160401b038211611535570190604082820312611535576040519161283583613364565b80356001600160401b03811161153557810182601f820112156115355780359061285e82613720565b9161286c60405193846133af565b80835260208084019160051b830101918583116115355760208101915b83831061296f575050505083526020810135906001600160401b03821161153557019080601f830112156115355781356128c281613720565b926128d060405194856133af565b81845260208085019260051b82010192831161153557602001905b82821061295f5761291a8585602082019081526040519283926020845251604060208501526060840190613251565b905190601f19838203016040840152602080835192838152019201905f5b818110612946575050500390f35b8251845285945060209384019390920191600101612938565b81358152602091820191016128eb565b82356001600160401b03811161153557820190610160828903601f190112611535576040519161299e83613393565b6020810135835260408101356001600160401b038111611535578960206129c7928401016133eb565b60208401526129d8606082016132eb565b60408401526080810135606084015260a08101356001600160801b038116810361153557608084015260c08101356001600160401b03811161153557896020612a23928401016133eb565b60a084015260e08101356001600160401b03811161153557896020612a4a928401016133eb565b60c08401526101008101356001600160401b0381116115355760209082010189601f82011215611535578035612a7f81613720565b91612a8d60405193846133af565b81835260208084019260051b820101918c83116115355760208201905b838210612b8d575050505060e08401526101208101356001600160401b0381116115355760209082010189601f8201121561153557803590612aeb82613720565b91612af960405193846133af565b80835260208084019160051b830101918c831161153557602001905b828210612b7557505050610100840152610140810135906001600160401b03821161153557612b4c8a6020610160948401016133eb565b610120850152013590811515820361153557826020939261014085940152815201920191612889565b60208091612b82846132eb565b815201910190612b15565b81356001600160401b038111611535576020918f612bb0908480948801016133eb565b815201910190612aaa565b3461153557602080612bcc366134db565b929160018060a01b03165f526009825260405f2083604051948593843782019081520301902054604051908152f35b346115355760206115c381612c0f36613477565b959192604094919451928184925191829101835e8101600c8152030190209060018060a01b03165f5260205260405f209061342f565b346115355760a0366003190112611535576004356001600160401b03811161153557612c75903690600401613099565b612c7d6132bf565b906020612c886130c6565b93826040519384928337810160038152030190209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110612ce45761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612cc6565b34611535576060366003190112611535576004356001600160401b03811161153557612d2a9036906004016133eb565b612d326132bf565b604051825160443593602091839181908401835e810160038152030190209060018060a01b03165f5260205260405f208054821015611535576020916102ac9161344e565b346115355760a0366003190112611535576004356001600160401b03811161153557612da79036906004016133eb565b612daf6132bf565b6044356001600160401b03811161153557612dce9036906004016133eb565b906064356001600160401b038111611535576115c392612df561250d9236906004016133eb565b9260208060843597604051928184925191829101835e8101600e8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576040366003190112611535576004356001600160401b03811161153557612e5d903690600401613099565b6024356001600160401b038111611535576020928392612e8284933690600401613099565b9490928260405193849283378101600881520301902083604051948593843782019081520301902054604051908152f35b34611535576020366003190112611535576004355f526001602052602060ff60405f2054166040519015158152f35b346115355760208080612ef4366132ff565b9590938360409493945193849283378101600c8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b3461153557608036600319011261153557612f526132a9565b6064359081151582036115355760018060a01b03165f52600460205260405f206040519081602082549182815201915f5260205f20905f5b818110612fb55761165761164361163e8888612fa8818a03826133af565b604435906024359061387f565b8254845260209093019260019283019201612f8a565b346115355760a0366003190112611535576004356001600160401b03811161153557612ffb903690600401613099565b602492919235906001600160401b0382116115355782602061302281943690600401613099565b9590938061302e6130c6565b988337810160088152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106130835761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201613065565b9181601f84011215611535578235916001600160401b038311611535576020838186019501011161153557565b60843590811515820361153557565b60a43590811515820361153557565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b908151815261318161316f61312e602085015161016060208601526101608501906130e4565b60018060a01b036040860151166040850152606085015160608501526001600160801b03608086015116608085015260a085015184820360a08601526130e4565b60c084015183820360c08501526130e4565b60e08301519082810360e0840152815180825260208201916020808360051b8301019401925f915b83831061322457505050505061010083015190828103610100840152602080835192838152019201905f5b818110613205575050506101406131fa81926101208601518582036101208701526130e4565b930151151591015290565b82516001600160a01b03168452602093840193909201916001016131d4565b9091929394602080613242600193601f1986820301875289516130e4565b970193019301919392906131a9565b9080602083519182815201916020808360051b8301019401925f915b83831061327c57505050505090565b909192939460208061329a600193601f198682030187528951613108565b9701930193019193929061326d565b600435906001600160a01b038216820361153557565b602435906001600160a01b038216820361153557565b604435906001600160a01b038216820361153557565b35906001600160a01b038216820361153557565b906060600319830112611535576004356001600160401b038111611535578261332a91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761336091600401613099565b9091565b604081019081106001600160401b0382111761337f57604052565b634e487b7160e01b5f52604160045260245ffd5b61016081019081106001600160401b0382111761337f57604052565b90601f801991011681019081106001600160401b0382111761337f57604052565b6001600160401b03811161337f57601f01601f191660200190565b81601f8201121561153557602081359101613405826133d0565b9261341360405194856133af565b8284528282011161153557815f92602092838601378301015290565b6040518151909260209284929081908501845e82019081520301902090565b8054821015613463575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6080600319820112611535576004356001600160401b03811161153557816134a1916004016133eb565b916024356001600160a01b03811681036115355791604435906001600160401b038211611535576134d4916004016133eb565b9060643590565b906040600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b0382116115355761336091600401613099565b906060600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b03821161153557613559916004016133eb565b9060443590565b608060031982011261153557600435906001600160401b0382116115355761358a91600401613099565b9091602435906044359060643580151581036115355790565b604060031982011261153557600435906001600160401b038211611535576135cd916004016133eb565b9060243590565b9060c0600319830112611535576004356001600160401b03811161153557826135ff91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761363591600401613099565b9091606435906084359060a43580151581036115355790565b90600182811c9216801561367c575b602083101461366857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161365d565b5f92918154916136958361364e565b80835292600181169081156136ea57506001146136b157505050565b5f9081526020812093945091925b8383106136d0575060209250010190565b6001816020929493945483858701015201910191906136bf565b915050602093945060ff929192191683830152151560051b010190565b6040519061371482613364565b60606020838281520152565b6001600160401b03811161337f5760051b60200190565b6040519061374482613393565b5f6101408382815260606020820152826040820152826060820152826080820152606060a0820152606060c0820152606060e0820152606061010082015260606101208201520152565b9035601e19823603018112156115355701602081359101916001600160401b03821161153557813603831361153557565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156115355701602081359101916001600160401b038211611535578160051b3603831361153557565b81601f820112156115355760208151910161382d826133d0565b9261383b60405194856133af565b8284528282011161153557815f926020928386015e8301015290565b51906001600160a01b038216820361153557565b80518210156134635760209160051b010190565b9081518015613929578082101561391b578382018110613911575b6138a384613720565b946138b160405196876133af565b848652601f196138c086613720565b013660208801375f5b8581106138d95750505050505090565b6001908215613906576138f485820185035f19015b8761386b565b516138ff828a61386b565b52016138c9565b6138f48186016138ee565b818103935061389a565b62ed0ab960e11b5f5260045ffd5b505050505060405161393c6020826133af565b5f81525f36813790565b90815161395281613720565b9061396060405192836133af565b80825261396f601f1991613720565b015f5b818110613b385750505f5b8351811015613b3357613990818561386b565b515f525f60205260405f20604051906139a882613393565b805482526040516139c081611e868160018601613686565b602083015260028101546001600160a01b03166040808401919091526003820154606084015260048201546001600160801b0316608084015251613a0b81611e868160058601613686565b60a0830152604051613a2481611e868160068601613686565b60c0830152600781018054613a3881613720565b91613a4660405193846133af565b81835260208301905f5260205f20905f905b838210613b0e575050505060e0830152600881016040519081602082549182815201915f5260205f20905f905b808210613aec57505050600194939282613aa560ff94600a9403826133af565b610100850152604051613abf81611e868160098601613686565b6101208501520154161515610140820152613ada828561386b565b52613ae5818461386b565b500161397d565b82546001600160a01b0316845260209093019260019283019290910190613a85565b600160208192604051613b2581611e86818a613686565b815201930191019091613a58565b509150565b602090613b43613737565b82828601015201613972565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613c99575b806d04ee2d6d415b85acef8100000000600a921015613c7e575b662386f26fc10000811015613c6a575b6305f5e100811015613c59575b612710811015613c4a575b6064811015613c3c575b1015613c31575b600a60216001840193613bd6856133d0565b94613be460405196876133af565b808652613bf3601f19916133d0565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015613c2c57600a9091613bfe565b505090565b600190910190613bc4565b606460029104930192613bbd565b61271060049104930192613bb3565b6305f5e10060089104930192613ba8565b662386f26fc1000060109104930192613b9b565b6d04ee2d6d415b85acef810000000060209104930192613b8b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613b71565b818110613cc7575050565b5f8155600101613cbc565b9190601f8111613ce157505050565b613d0b925f5260205f20906020601f840160051c83019310613d0d575b601f0160051c0190613cbc565b565b9091508190613cfe565b8054600160401b81101561337f57613d349160018201815561344e565b819291549060031b91821b915f19901b191617905556fea26469706673582212200dcd11dd9c0889f6269f03425a6fabc2d6a5ddeb54a7b2de7311f51ea199868364736f6c634300081b0033","sourceMap":"697:23375:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;-1:-1:-1;;;;;697:23375:102;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1213:47;697:23375;;;;;;;;;1213:47;;;;;697:23375;1213:47;;;;:::i;:::-;697:23375;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1337:112;697:23375;;;;;;1337:112;697:23375;;;;;;-1:-1:-1;697:23375:102;;;;-1:-1:-1;697:23375:102;1337:112;697:23375;;;;;;-1:-1:-1;697:23375:102;;;;-1:-1:-1;697:23375:102;;;;1337:112;;;;;697:23375;1337:112;;;;:::i;697:23375::-;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;3014:15;697:23375;-1:-1:-1;;;;;697:23375:102;;3014:49;;;;;697:23375;;;;;;3014:49;;697:23375;;3014:49;;697:23375;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3014:49;;;;;;;;;;697:23375;3113:30;697:23375;;:::i;:::-;-1:-1:-1;697:23375:102;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;-1:-1:-1;;;3157:44:102;;697:23375;;3157:44;;697:23375;;;;;;;;;;;;;;;;:::i;:::-;3157:44;:4;;:44;;;;;;;697:23375;-1:-1:-1;3153:208:102;;-1:-1:-1;;;3327:23:102;;697:23375;3327:23;;3153:208;;3375:13;;697:23375;3375:25;:57;;;3153:208;3371:105;;3532:13;;697:23375;;;3528:105;;3153:208;3646:16;;;697:23375;3646:16;;697:23375;;3642:94;;697:23375;;;3642:94;7159:13;7196:19;697:23375;;7174:20;;;;;7244:12;;;;:::i;:::-;697:23375;;;;;;;;;;;;;7469:21;7465:78;;697:23375;;;;;;;7557:23;697:23375;;;7557:23;697:23375;;7553:82;;697:23375;;;;;;;;;7557:23;697:23375;;;7672:23;697:23375;;;;;;;;;7718:21;;;;697:23375;7159:13;;7553:82;-1:-1:-1;;;7603:21:102;;697:23375;7603:21;;7465:78;-1:-1:-1;;;7513:19:102;;697:23375;8406:19;7513;7174:20;;;697:23375;;3528:105;697:23375;;6670:13;6705:19;697:23375;;6685:18;;;;;697:23375;;6823:49;697:23375;6823:49;;697:23375;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;6823:49;;;697:23375;6823:49;;:::i;:::-;697:23375;;;;;;;;;6705:19;6940:10;;;;;:::i;:::-;;697:23375;;;4246:87;;697:23375;;;;;;;;;;;;;;;4428:78;;4520:14;;;697:23375;;;4516:78;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;697:23375:102;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4702:13;697:23375;;;;;;;;;4702:13;697:23375;4726:45;4742:14;697:23375;4742:14;;;697:23375;;;;;;;;;;;;;;;;;;;;;;4726:45;:::i;:::-;697:23375;4808:14;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;-1:-1:-1;697:23375:102;;;;;;;;;;;4781:81;;697:23375;;4781:81;:::i;:::-;4872:44;4885:16;697:23375;4885:16;;;697:23375;;;;;;;;;;;;;;;;;;;;;;4872:44;:::i;:::-;697:23375;4960:14;;;697:23375;;;;;;;;;;;;;;;4926:33;697:23375;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:102;;;4926:106;697:23375;;;-1:-1:-1;697:23375:102;5001:16;;697:23375;:::i;:::-;4926:106;:::i;:::-;5073:13;5112:19;5092:11;;697:23375;;5088:22;;;;;5167:14;;;;;:::i;:::-;;697:23375;;;;;;;;;;;;;;;;;;;;;;5195:30;;;;:::i;:::-;5258:16;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5239:55;;;;:::i;:::-;5341:14;;697:23375;;;;;;;;;;;;5308:32;697:23375;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;-1:-1:-1;697:23375:102;;;;;;;;;;;;;;:::i;:::-;5308:92;;;;:::i;:::-;5454:14;;697:23375;;;;;;;;;;;;5414:39;697:23375;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;-1:-1:-1;697:23375:102;;;;;;;;5495:16;;697:23375;;;;:::i;:::-;;;;:::i;:::-;5414:147;;;;:::i;:::-;697:23375;;5073:13;;5088:22;;;;;;;;;5626:13;5621:716;5678:19;5645:24;;697:23375;;5641:35;;;;;-1:-1:-1;;;;;697:23375:102;5728:27;;697:23375;;5728:27;:::i;:::-;697:23375;;;;;;;;;5769:35;697:23375;;;;5769:35;:::i;:::-;697:23375;;;;;;5818:60;697:23375;;;;;5847:16;;697:23375;:::i;5818:60::-;697:23375;5929:14;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;-1:-1:-1;697:23375:102;;;;;;;;;;;;;;;;;;;;;;5892:97;;697:23375;;5892:97;:::i;:::-;6077:13;6116:19;6096:11;;697:23375;6092:22;;;;;697:23375;6230:82;697:23375;;;6283:14;697:23375;;;;;;;;;;;;;;;;6155:57;697:23375;;;;;6183:14;:11;;;:14;:::i;:::-;;697:23375;:::i;6155:57::-;697:23375;;6230:28;697:23375;;;6265:16;;697:23375;:::i;:::-;6283:11;;:14;:::i;6230:82::-;697:23375;6077:13;;6092:22;-1:-1:-1;697:23375:102;;;;;6092:22;-1:-1:-1;5626:13:102;;5641:35;;;;;;;697:23375;5641:35;;;;;;;;;697:23375;;;;;;;;6399:16;;6417:24;;6443:11;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6352:103;;;;;;;;697:23375;6352:103;;;;;;;;697:23375;6670:13;;;;;;;697:23375;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;4516:78;-1:-1:-1;;;4557:26:102;;697:23375;4557:26;;4428:78;-1:-1:-1;;;4475:20:102;;697:23375;;4475:20;4246:87;-1:-1:-1;;;4301:21:102;;697:23375;;4301:21;697:23375;;;;;;;;;;;;;;;;;6685:18;;;;697:23375;6685:18;;3528:105;;;;;3371;-1:-1:-1;;;3455:10:102;;697:23375;3455:10;;3375:57;3404:16;697:23375;3404:16;;;697:23375;3404:28;3375:57;;3157:44;;;;;;;;;;;;;:::i;:::-;;;697:23375;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3157:44;;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3014:49;;;;;697:23375;3014:49;;:::i;:::-;697:23375;3014:49;;;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1534:78;697:23375;;;;;;;:::i;:::-;;;1534:78;;;;;697:23375;1534:78;;;;:::i;697:23375::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11085:12;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11156:25;11074:64;697:23375;;;;;;;;;;:::i;:::-;11074:64;:::i;:::-;11156:25;:::i;:::-;697:23375;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;956:51;697:23375;;;;;;;;956:51;;;;;697:23375;956:51;;;;:::i;697:23375::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1455:73;697:23375;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;14130:22;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14217:25;14119:80;697:23375;;;;;;;;:::i;:::-;;;;;;14119:80;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19744:11;697:23375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;21141:33;697:23375;;;;;;21141:53;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;20029:36;697:23375;;;;;;20029:56;697:23375;;;;;;;;;;;;;20029:62;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;;;;;;;;798:46;697:23375;798:46;697:23375;798:46;697:23375;798:46;;697:23375;:::i;:::-;;;;:::i;:::-;;;;;;;798:46;;;697:23375;;;798:46;;;697:23375;798:46;-1:-1:-1;;;;;697:23375:102;798:46;;697:23375;;;;798:46;697:23375;798:46;697:23375;798:46;;;;697:23375;:::i;:::-;;;;:::i;:::-;;;798:46;697:23375;798:46;697:23375;798:46;;;;697:23375;:::i;:::-;;;;:::i;:::-;;;798:46;697:23375;;798:46;697:23375;798:46;697:23375;798:46;;;;697:23375;:::i;:::-;;;;:::i;:::-;798:46;697:23375;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;17539:28;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17637:25;17528:91;697:23375;;;;;;;;:::i;:::-;;;;;;17528:91;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;2208:26;697:23375;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;;;;;8083:47;;;697:23375;;;;;;;;;;;8083:47;697:23375;;;;;;;;8107:23;697:23375;;;8107:23;697:23375;;8083:47;;697:23375;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;12570:36;697:23375;;;;;;12570:56;697:23375;;;;;;;;;;;;;12570:62;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12680:25;12559:103;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;16654:32;697:23375;;;;;;16654:52;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16759:25;16643:98;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;15753:33;697:23375;;;;;;15753:53;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15865:25;15742:105;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11711:11;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11775:25;11700:57;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8362:21;8358:78;;697:23375;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;8358:78;8406:19;;;697:23375;8406:19;697:23375;;8406:19;697:23375;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1159:48;697:23375;;;;;;;;1159:48;;;;;697:23375;1159:48;;;;:::i;697:23375::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1701:108;697:23375;;;;;;1701:108;697:23375;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;22177:39;697:23375;;;;;;22177:59;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;:::i;:::-;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;1101:52;;;;;697:23375;1101:52;;;;:::i;697:23375::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18529:39;697:23375;;;;;;18529:59;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18661:25;18505:138;697:23375;;;;;;;;:::i;:::-;;;;;;18505:138;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;20833:21;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;697:23375:102;;;;;;;14863:21;697:23375;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14943:25;14852:73;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19552:12;697:23375;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;9019:15;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9091:25;9008:65;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;697:23375:102;;;;;;;1928:103;697:23375;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:102;;;;;1055:104:6;;697:23375:102;1072:24:6;1089:6;1072:24;:::i;:::-;1120:6;;1103:24;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;697:23375:102;;;;;;;;;;;;1055:104:6;;;697:23375:102;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;1055:104:6;;697:23375:102;;1055:104:6;;;;;;:::i;:::-;697:23375:102;;;;;1055:104:6;697:23375:102;;1055:104:6;697:23375:102;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18911:15;697:23375;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;19137:26;697:23375;;;;;;19137:46;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;24047:15;697:23375;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;21808:28;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1618:77;697:23375;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;3928:38;;697:23375;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;20585:22;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1815:107;697:23375;;;;;;1815:107;697:23375;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;9785:26;697:23375;;;;;;9785:46;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9879:25;9774:87;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1013:82;697:23375;;;;;;1013:82;697:23375;;;;;;;;;;;;;;;1013:82;;;;;697:23375;1013:82;;;;:::i;697:23375::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2037:141;697:23375;;;;;;2037:141;697:23375;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;20334:18;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;21473:32;697:23375;;;;;;21473:52;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10509:25;10429:62;697:23375;;;;;;;;:::i;:::-;;;;;;10429:62;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;13361:18;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13443:25;13350:75;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;-1:-1:-1;;697:23375:102;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;697:23375:102;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;697:23375:102;;;;;;:::o;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;:::o;:::-;;;-1:-1:-1;;697:23375:102;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;:::o;:::-;;;;-1:-1:-1;697:23375:102;;;;;-1:-1:-1;697:23375:102;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;:::o;:::-;-1:-1:-1;;;;;697:23375:102;;;;;;-1:-1:-1;;697:23375:102;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;697:23375:102;;-1:-1:-1;697:23375:102;;;-1:-1:-1;697:23375:102;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;697:23375:102;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;-1:-1:-1;;697:23375:102;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::i;:::-;;;-1:-1:-1;;697:23375:102;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;;697:23375:102;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;697:23375:102;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;-1:-1:-1;;697:23375:102;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;697:23375:102;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;697:23375:102;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;-1:-1:-1;;697:23375:102;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;697:23375:102;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;697:23375:102;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;22392:771::-;;697:23375;;22610:15;;22606:69;;22689:19;;;;22685:72;;22791:20;697:23375;;22829:27;;22825:90;;22392:771;697:23375;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;697:23375:102;;;:::i;:::-;;;;;;;22624:1;23005:7;;;;;;23136:10;;;;;;22392:771;:::o;23014:3::-;697:23375;;23051:55;;;;23046:61;697:23375;;;;;-1:-1:-1;;697:23375:102;23051:55;23046:61;;:::i;:::-;697:23375;23037:70;;;;:::i;:::-;697:23375;;22990:13;;23051:55;23046:61;697:23375;;;23051:55;;22825:90;697:23375;;;;-1:-1:-1;22825:90:102;;22685:72;22731:15;;;22624:1;22731:15;;22624:1;22731:15;22606:69;697:23375;;;;;;;;;;;:::i;:::-;22624:1;697:23375;;22624:1;697:23375;;;22641:23;:::o;23228:333::-;;697:23375;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;697:23375:102;;;;;;23418:13;;-1:-1:-1;23454:19:102;697:23375;;23433:19;;;;;23508:11;;;;:::i;:::-;697:23375;-1:-1:-1;697:23375:102;-1:-1:-1;697:23375:102;;;-1:-1:-1;697:23375:102;;;;;;;:::i;:::-;;;;;;;;;;;1489:1:0;697:23375:102;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;697:23375:102;;-1:-1:-1;697:23375:102;;-1:-1:-1;697:23375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:102;;-1:-1:-1;697:23375:102;;-1:-1:-1;697:23375:102;;;;;;;;;;1489:1:0;697:23375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;23489:31;;;;:::i;:::-;;;;;;:::i;:::-;;697:23375;23418:13;;697:23375;;;-1:-1:-1;;;;;697:23375:102;;;;;;;;1489:1:0;697:23375:102;;;;;;;;;;;1489:1:0;697:23375:102;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;23433:19;-1:-1:-1;23433:19:102;-1:-1:-1;23228:333:102:o;697:23375::-;;;;;:::i;:::-;;;;;;;;;;1308:634:57;1430:17;-1:-1:-1;29282:17:66;-1:-1:-1;;;29282:17:66;;;29278:103;;1308:634:57;29398:17:66;29407:8;29978:7;29398:17;;;29394:103;;1308:634:57;29523:8:66;29514:17;;;29510:103;;1308:634:57;29639:7:66;29630:16;;;29626:100;;1308:634:57;29752:7:66;29743:16;;;29739:100;;1308:634:57;29865:7:66;29856:16;;;29852:100;;1308:634:57;29969:16:66;;29965:66;;1308:634:57;29978:7:66;1545:94:57;1450:1;697:23375:102;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1545:94:57;;;1652:247;-1:-1:-1;;697:23375:102;;-1:-1:-1;;;1706:111:57;;;;697:23375:102;1706:111:57;697:23375:102;1867:10:57;;1863:21;;29978:7:66;1652:247:57;;;;1863:21;1879:5;;1308:634;:::o;29965:66:66:-;30015:1;697:23375:102;;;;29965:66:66;;29852:100;29865:7;29936:1;697:23375:102;;;;29852:100:66;;;29739;29752:7;29823:1;697:23375:102;;;;29739:100:66;;;29626;29639:7;29710:1;697:23375:102;;;;29626:100:66;;;29510:103;29523:8;29596:2;697:23375:102;;;;29510:103:66;;;29394;29407:8;29480:2;697:23375:102;;;;29394:103:66;;;29278;-1:-1:-1;29364:2:66;;-1:-1:-1;;;;697:23375:102;;29278:103:66;;697:23375:102;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;697:23375:102;;-1:-1:-1;697:23375:102;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;697:23375:102;;;;;;;-1:-1:-1;;;697:23375:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{},"immutableReferences":{"2532":[{"start":9522,"length":32}],"2534":[{"start":9565,"length":32}],"2536":[{"start":9608,"length":32}]}},"methodIdentifiers":{"decodeIndexingPayload(bytes)":"309c2ccc","eventExists(bytes32)":"118e58bd","eventExistsAndDeleted(bytes32)":"b682a1b6","events(bytes32)":"bfdc4a61","eventsByAddress(address,uint256)":"8835aec1","eventsByAddressAndTag(address,string,uint256)":"3a363314","eventsByAddressAndType(address,string,uint256)":"ec880f6f","eventsByAddressAndTypeAndTag(address,string,string,uint256)":"550edfe2","eventsByChainId(string,uint256)":"e8c79369","eventsByChainIdAndContract(string,address,uint256)":"21950302","eventsByChainIdAndContractAndAddress(string,address,address,uint256)":"f99417bf","eventsByChainIdAndContractAndTag(string,address,string,uint256)":"2a2f9912","eventsByChainIdAndContractAndType(string,address,string,uint256)":"8a1761e3","eventsByChainIdAndContractAndTypeAndTag(string,address,string,string,uint256)":"1fb294da","eventsByTag(string,uint256)":"fabbcab3","eventsByType(string,uint256)":"8a733630","eventsByTypeAndTag(string,string,uint256)":"e80fb963","getEvent(bytes32)":"8c172fa2","getEventCountByAddress(address)":"fbea4e6d","getEventCountByAddressAndTag(address,string)":"832d2fe6","getEventCountByAddressAndType(address,string)":"2e582028","getEventCountByAddressAndTypeAndTag(address,string,string)":"3aa19a9f","getEventCountByChainId(string)":"511c20ba","getEventCountByContract(string,address)":"50f5fa84","getEventCountByContractAndAddress(string,address,address)":"c3014d58","getEventCountByContractAndTag(string,address,string)":"10605957","getEventCountByContractAndType(string,address,string)":"d428fbe3","getEventCountByContractAndTypeAndTag(string,address,string,string)":"8981482f","getEventCountByTag(string)":"da358da2","getEventCountByType(string)":"6cf1df2c","getEventCountByTypeAndTag(string,string)":"1eaf27b1","getEventsByAddress(address,uint256,uint256,bool)":"0c9fdf28","getEventsByAddressAndTag(address,string,uint256,uint256,bool)":"80bec780","getEventsByAddressAndType(address,string,uint256,uint256,bool)":"dac1fe55","getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)":"baf19b23","getEventsByChainId(string,uint256,uint256,bool)":"60742b14","getEventsByContract(string,address,uint256,uint256,bool)":"2410d641","getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)":"b5a0827c","getEventsByContractAndTag(string,address,string,uint256,uint256,bool)":"9d4e06ac","getEventsByContractAndType(string,address,string,uint256,uint256,bool)":"928f9df5","getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)":"850b9db6","getEventsByTag(string,uint256,uint256,bool)":"8d6685d2","getEventsByType(string,uint256,uint256,bool)":"ea9f2c86","getEventsByTypeAndTag(string,string,uint256,uint256,bool)":"01bc6441","getServiceManager()":"4dda0b43","handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"f969ff33","totalEvents()":"ba870686","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IWavsServiceManager\",\"name\":\"serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotCreateDeletedEvent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventAlreadyDeleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedEventIdZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOffset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidServiceManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEvents\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PayloadDecodingFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"}],\"name\":\"EventDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"}],\"name\":\"EventIndexed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"decodeIndexingPayload\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"toAdd\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"toDelete\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct IWavsIndexer.IndexingPayload\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"eventExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"}],\"name\":\"eventExistsAndDeleted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"events\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddressAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddressAndType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddressAndTypeAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContract\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndTypeAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByTypeAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"}],\"name\":\"getEvent\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEventCountByAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByAddressAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"}],\"name\":\"getEventCountByAddressAndType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByAddressAndTypeAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"}],\"name\":\"getEventCountByChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"}],\"name\":\"getEventCountByContract\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEventCountByContractAndAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByContractAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"}],\"name\":\"getEventCountByContractAndType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByContractAndTypeAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"}],\"name\":\"getEventCountByType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByTypeAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddress\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddressAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddressAndType\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddressAndTypeAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByChainId\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContract\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndAddress\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndType\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndTypeAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByType\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByTypeAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"handleSignedEnvelope\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEvents\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Integrates with WAVS to receive indexed data from off-chain components\",\"events\":{\"EventDeleted(bytes32)\":{\"params\":{\"eventId\":\"The unique identifier of the deleted event\"}},\"EventIndexed(bytes32,address,string,address[],string[])\":{\"params\":{\"eventId\":\"The unique identifier of the indexed event\",\"eventType\":\"The type/signature of the event\",\"relevantAddresses\":\"Addresses relevant to this event\",\"relevantContract\":\"The relevant contract for the event\",\"tags\":\"Searchable tags for this event\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"serviceManager\":\"The WAVS service manager contract\"}},\"eventExistsAndDeleted(bytes32)\":{\"params\":{\"eventId\":\"The ID of the event to check\"},\"returns\":{\"_0\":\"true if the event exists and is deleted, false otherwise\"}},\"getEvent(bytes32)\":{\"params\":{\"eventId\":\"The ID of the event to get\"},\"returns\":{\"_0\":\"The event\"}},\"getEventsByAddress(address,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByAddressAndTag(address,string,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByAddressAndType(address,string,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByChainId(string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContract(string,address,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndType(string,address,string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByTag(string,uint256,uint256,bool)\":{\"params\":{\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByType(string,uint256,uint256,bool)\":{\"params\":{\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByTypeAndTag(string,string,uint256,uint256,bool)\":{\"params\":{\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the data.\",\"signatureData\":\"The signature data.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"WavsIndexer\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidServiceManager()\":[{\"notice\":\"================================================ ERRORS ================================================\"}]},\"events\":{\"EventDeleted(bytes32)\":{\"notice\":\"Emitted when an event has been deleted\"},\"EventIndexed(bytes32,address,string,address[],string[])\":{\"notice\":\"Emitted when an event has been indexed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Creates a new WavsIndexer instance\"},\"decodeIndexingPayload(bytes)\":{\"notice\":\"Helper function for decoding IndexingPayload\"},\"eventExistsAndDeleted(bytes32)\":{\"notice\":\"Checks whether an event exists and is deleted\"},\"getEvent(bytes32)\":{\"notice\":\"Gets an event by ID\"},\"getEventCountByAddress(address)\":{\"notice\":\"Gets total number of events by contract\"},\"getEventCountByAddressAndTag(address,string)\":{\"notice\":\"Gets total number of events for an address and tag\"},\"getEventCountByAddressAndType(address,string)\":{\"notice\":\"Gets total number of events for an address and type\"},\"getEventCountByAddressAndTypeAndTag(address,string,string)\":{\"notice\":\"Gets total number of events for an address, type, and tag\"},\"getEventCountByChainId(string)\":{\"notice\":\"Gets total number of events by chain ID\"},\"getEventCountByContract(string,address)\":{\"notice\":\"Gets total number of events by contract\"},\"getEventCountByContractAndAddress(string,address,address)\":{\"notice\":\"Gets total number of events for a contract and address\"},\"getEventCountByContractAndTag(string,address,string)\":{\"notice\":\"Gets total number of events for a contract and tag\"},\"getEventCountByContractAndType(string,address,string)\":{\"notice\":\"Gets total number of events for a contract and type\"},\"getEventCountByContractAndTypeAndTag(string,address,string,string)\":{\"notice\":\"Gets total number of events for a contract, type, and tag\"},\"getEventCountByTag(string)\":{\"notice\":\"Gets total number of events by tag\"},\"getEventCountByType(string)\":{\"notice\":\"Gets total number of events by type\"},\"getEventCountByTypeAndTag(string,string)\":{\"notice\":\"Gets total number of events for a type and tag\"},\"getEventsByAddress(address,uint256,uint256,bool)\":{\"notice\":\"Gets events by address\"},\"getEventsByAddressAndTag(address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by address and tag combination\"},\"getEventsByAddressAndType(address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by address and type combination\"},\"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by address, type, and tag combination\"},\"getEventsByChainId(string,uint256,uint256,bool)\":{\"notice\":\"Gets events by chain ID\"},\"getEventsByContract(string,address,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract\"},\"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract and address combination\"},\"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract and tag combination\"},\"getEventsByContractAndType(string,address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract and type combination\"},\"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract, type, and tag combination\"},\"getEventsByTag(string,uint256,uint256,bool)\":{\"notice\":\"Gets events by tag\"},\"getEventsByType(string,uint256,uint256,bool)\":{\"notice\":\"Gets events by type\"},\"getEventsByTypeAndTag(string,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by type and tag combination\"},\"getServiceManager()\":{\"notice\":\"Gets the service manager address\"},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Handles signed envelope from WAVS containing indexing data\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"An indexing service for arbitrary blockchain events and data running on WAVS\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/wavs/WavsIndexer.sol\":\"WavsIndexer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]},\"src/contracts/wavs/WavsIndexer.sol\":{\"keccak256\":\"0xe9b16bc43ed80690e9fc201d62479db9612da0051e66147797f6ef4614430615\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d368a3d09bed2bebd6bd399793d41f5a5132c65e43846a882fee42cb5db12484\",\"dweb:/ipfs/QmYa5JWpaxjftQdXwwBFE1yL4htmivcK6cLj8YGA9KBpcZ\"]},\"src/interfaces/IWavsIndexer.sol\":{\"keccak256\":\"0x03b8cb934c668ed6a21f0111294f16dff402654ea3a4cc1c12a25409cd62798e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aace429ad2249603c218ca2c1768e81f7a66f43779e58d3de6d6a4e921c7261a\",\"dweb:/ipfs/QmdhN2QWAFWNc8Yg1NjbPTvS5U6XHdiBxXvjRoPN3CeTDq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IWavsServiceManager","name":"serviceManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CannotCreateDeletedEvent"},{"inputs":[],"type":"error","name":"EventAlreadyDeleted"},{"inputs":[],"type":"error","name":"EventAlreadyExists"},{"inputs":[],"type":"error","name":"EventDoesNotExist"},{"inputs":[],"type":"error","name":"ExpectedEventIdZero"},{"inputs":[],"type":"error","name":"InvalidOffset"},{"inputs":[],"type":"error","name":"InvalidServiceManager"},{"inputs":[],"type":"error","name":"NoEvents"},{"inputs":[],"type":"error","name":"PayloadDecodingFailed"},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32","indexed":true}],"type":"event","name":"EventDeleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32","indexed":true},{"internalType":"address","name":"relevantContract","type":"address","indexed":true},{"internalType":"string","name":"eventType","type":"string","indexed":true},{"internalType":"address[]","name":"relevantAddresses","type":"address[]","indexed":false},{"internalType":"string[]","name":"tags","type":"string[]","indexed":false}],"type":"event","name":"EventIndexed","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeIndexingPayload","outputs":[{"internalType":"struct IWavsIndexer.IndexingPayload","name":"","type":"tuple","components":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"toAdd","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]},{"internalType":"bytes32[]","name":"toDelete","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"eventExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"eventExistsAndDeleted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"events","outputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddress","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddressAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddressAndType","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddressAndTypeAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContract","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndAddress","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndType","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndTypeAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByType","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByTypeAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getEvent","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEventCountByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByAddressAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByAddressAndType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByAddressAndTypeAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"}],"stateMutability":"view","type":"function","name":"getEventCountByContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndTypeAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByTypeAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddress","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddressAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddressAndType","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddressAndTypeAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByChainId","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContract","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndAddress","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndType","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndTypeAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByType","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByTypeAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"handleSignedEnvelope"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEvents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"serviceManager":"The WAVS service manager contract"}},"eventExistsAndDeleted(bytes32)":{"params":{"eventId":"The ID of the event to check"},"returns":{"_0":"true if the event exists and is deleted, false otherwise"}},"getEvent(bytes32)":{"params":{"eventId":"The ID of the event to get"},"returns":{"_0":"The event"}},"getEventsByAddress(address,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByAddressAndTag(address,string,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByAddressAndType(address,string,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByChainId(string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContract(string,address,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndType(string,address,string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByTag(string,uint256,uint256,bool)":{"params":{"length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByType(string,uint256,uint256,bool)":{"params":{"eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByTypeAndTag(string,string,uint256,uint256,bool)":{"params":{"eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the data.","signatureData":"The signature data."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Creates a new WavsIndexer instance"},"decodeIndexingPayload(bytes)":{"notice":"Helper function for decoding IndexingPayload"},"eventExistsAndDeleted(bytes32)":{"notice":"Checks whether an event exists and is deleted"},"getEvent(bytes32)":{"notice":"Gets an event by ID"},"getEventCountByAddress(address)":{"notice":"Gets total number of events by contract"},"getEventCountByAddressAndTag(address,string)":{"notice":"Gets total number of events for an address and tag"},"getEventCountByAddressAndType(address,string)":{"notice":"Gets total number of events for an address and type"},"getEventCountByAddressAndTypeAndTag(address,string,string)":{"notice":"Gets total number of events for an address, type, and tag"},"getEventCountByChainId(string)":{"notice":"Gets total number of events by chain ID"},"getEventCountByContract(string,address)":{"notice":"Gets total number of events by contract"},"getEventCountByContractAndAddress(string,address,address)":{"notice":"Gets total number of events for a contract and address"},"getEventCountByContractAndTag(string,address,string)":{"notice":"Gets total number of events for a contract and tag"},"getEventCountByContractAndType(string,address,string)":{"notice":"Gets total number of events for a contract and type"},"getEventCountByContractAndTypeAndTag(string,address,string,string)":{"notice":"Gets total number of events for a contract, type, and tag"},"getEventCountByTag(string)":{"notice":"Gets total number of events by tag"},"getEventCountByType(string)":{"notice":"Gets total number of events by type"},"getEventCountByTypeAndTag(string,string)":{"notice":"Gets total number of events for a type and tag"},"getEventsByAddress(address,uint256,uint256,bool)":{"notice":"Gets events by address"},"getEventsByAddressAndTag(address,string,uint256,uint256,bool)":{"notice":"Gets events by address and tag combination"},"getEventsByAddressAndType(address,string,uint256,uint256,bool)":{"notice":"Gets events by address and type combination"},"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)":{"notice":"Gets events by address, type, and tag combination"},"getEventsByChainId(string,uint256,uint256,bool)":{"notice":"Gets events by chain ID"},"getEventsByContract(string,address,uint256,uint256,bool)":{"notice":"Gets events by contract"},"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)":{"notice":"Gets events by contract and address combination"},"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)":{"notice":"Gets events by contract and tag combination"},"getEventsByContractAndType(string,address,string,uint256,uint256,bool)":{"notice":"Gets events by contract and type combination"},"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)":{"notice":"Gets events by contract, type, and tag combination"},"getEventsByTag(string,uint256,uint256,bool)":{"notice":"Gets events by tag"},"getEventsByType(string,uint256,uint256,bool)":{"notice":"Gets events by type"},"getEventsByTypeAndTag(string,string,uint256,uint256,bool)":{"notice":"Gets events by type and tag combination"},"getServiceManager()":{"notice":"Gets the service manager address"},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Handles signed envelope from WAVS containing indexing data"},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/wavs/WavsIndexer.sol":"WavsIndexer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"},"src/contracts/wavs/WavsIndexer.sol":{"keccak256":"0xe9b16bc43ed80690e9fc201d62479db9612da0051e66147797f6ef4614430615","urls":["bzz-raw://d368a3d09bed2bebd6bd399793d41f5a5132c65e43846a882fee42cb5db12484","dweb:/ipfs/QmYa5JWpaxjftQdXwwBFE1yL4htmivcK6cLj8YGA9KBpcZ"],"license":"MIT"},"src/interfaces/IWavsIndexer.sol":{"keccak256":"0x03b8cb934c668ed6a21f0111294f16dff402654ea3a4cc1c12a25409cd62798e","urls":["bzz-raw://aace429ad2249603c218ca2c1768e81f7a66f43779e58d3de6d6a4e921c7261a","dweb:/ipfs/QmdhN2QWAFWNc8Yg1NjbPTvS5U6XHdiBxXvjRoPN3CeTDq"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"serviceManager","type":"address","internalType":"contract IWavsServiceManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"decodeIndexingPayload","inputs":[{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IWavsIndexer.IndexingPayload","components":[{"name":"toAdd","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]},{"name":"toDelete","type":"bytes32[]","internalType":"bytes32[]"}]}],"stateMutability":"pure"},{"type":"function","name":"eventExists","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"eventExistsAndDeleted","inputs":[{"name":"eventId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"events","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddress","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddressAndTag","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddressAndType","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByAddressAndTypeAndTag","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainId","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContract","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndAddress","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndType","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByChainIdAndContractAndTypeAndTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByType","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eventsByTypeAndTag","inputs":[{"name":"","type":"string","internalType":"string"},{"name":"","type":"string","internalType":"string"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getEvent","inputs":[{"name":"eventId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IWavsIndexer.IndexedEvent","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddress","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddressAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddressAndType","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByAddressAndTypeAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByChainId","inputs":[{"name":"chainId","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContract","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndAddress","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndType","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByContractAndTypeAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByTag","inputs":[{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByType","inputs":[{"name":"eventType","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventCountByTypeAndTag","inputs":[{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddress","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddressAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddressAndType","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByAddressAndTypeAndTag","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByChainId","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContract","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndAddress","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"addr","type":"address","internalType":"address"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndType","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByContractAndTypeAndTag","inputs":[{"name":"chainId","type":"string","internalType":"string"},{"name":"contract_","type":"address","internalType":"address"},{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByTag","inputs":[{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByType","inputs":[{"name":"eventType","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getEventsByTypeAndTag","inputs":[{"name":"eventType","type":"string","internalType":"string"},{"name":"tag","type":"string","internalType":"string"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"reverseOrder","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IWavsIndexer.IndexedEvent[]","components":[{"name":"eventId","type":"bytes32","internalType":"bytes32"},{"name":"chainId","type":"string","internalType":"string"},{"name":"relevantContract","type":"address","internalType":"address"},{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint128","internalType":"uint128"},{"name":"eventType","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"tags","type":"string[]","internalType":"string[]"},{"name":"relevantAddresses","type":"address[]","internalType":"address[]"},{"name":"metadata","type":"bytes","internalType":"bytes"},{"name":"deleted","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getServiceManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"handleSignedEnvelope","inputs":[{"name":"envelope","type":"tuple","internalType":"struct IWavsServiceHandler.Envelope","components":[{"name":"eventId","type":"bytes20","internalType":"bytes20"},{"name":"ordering","type":"bytes12","internalType":"bytes12"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"signatureData","type":"tuple","internalType":"struct IWavsServiceHandler.SignatureData","components":[{"name":"signers","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"},{"name":"referenceBlock","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEvents","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"EventDeleted","inputs":[{"name":"eventId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"EventIndexed","inputs":[{"name":"eventId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"relevantContract","type":"address","indexed":true,"internalType":"address"},{"name":"eventType","type":"string","indexed":true,"internalType":"string"},{"name":"relevantAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"tags","type":"string[]","indexed":false,"internalType":"string[]"}],"anonymous":false},{"type":"error","name":"CannotCreateDeletedEvent","inputs":[]},{"type":"error","name":"EventAlreadyDeleted","inputs":[]},{"type":"error","name":"EventAlreadyExists","inputs":[]},{"type":"error","name":"EventDoesNotExist","inputs":[]},{"type":"error","name":"ExpectedEventIdZero","inputs":[]},{"type":"error","name":"InvalidOffset","inputs":[]},{"type":"error","name":"InvalidServiceManager","inputs":[]},{"type":"error","name":"NoEvents","inputs":[]},{"type":"error","name":"PayloadDecodingFailed","inputs":[]}],"bytecode":{"object":"0x60e0346100b157601f613e4b38819003918201601f19168301916001600160401b038311848410176100b5578084926020946040528339810103126100b157516001600160a01b038116908190036100b15760016080525f60a0525f60c05280156100a257601080546001600160a01b031916919091179055604051613d8190816100ca823960805181612532015260a0518161255d015260c051816125880152f35b63c172d20d60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301bc644114612fcb575080630c9fdf2814612f395780631060595714612ee2578063118e58bd14612eb35780631eaf27b114612e2d5780631fb294da14612d775780632195030214612cfa5780632410d64114612c455780632a2f991214612bfb5780632e58202814612bbb578063309c2ccc146127c55780633a363314146127995780633aa19a9f146126f95780634dda0b43146126d157806350f5fa8414612666578063511c20ba1461261557806354fd4d5014612513578063550edfe21461248d57806360742b14146124165780636cf1df2c146123c557806380bec78014612318578063832d2fe6146122d8578063850b9db6146121a85780638835aec11461215f5780638981482f146120895780638a1761e31461203f5780638a73363014611fff5780638c172fa214611e265780638d6685d214611daf578063928f9df514611d115780639d4e06ac14611c73578063b5a0827c14611ba4578063b682a1b614611b54578063ba87068614611b37578063baf19b2314611a3f578063bfdc4a6114611917578063c3014d5814611891578063d428fbe31461183a578063da358da2146117e9578063dac1fe5514611727578063e80fb963146116b1578063e8c7936914611671578063ea9f2c86146115d8578063ec880f6f14611597578063f969ff331461035b578063f99417bf146102bb578063fabbcab3146102695763fbea4e6d1461022e575f80fd5b34610266576020366003190112610266576020906040906001600160a01b036102556132a9565b168152600483522054604051908152f35b80fd5b5034610266576020908161027c366135a3565b9390604051928184925191829101835e810160068152030190209081548310156102665760206102ac848461344e565b90549060031b1c604051908152f35b5034610266576080366003190112610266576004356001600160401b038111610357576102ec9036906004016133eb565b906102f56132bf565b6102fd6132d5565b9060208060643595604051928184925191829101835e810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f209081548310156102665760206102ac848461344e565b5080fd5b503461153557604036600319011261153557600435906001600160401b03821161153557816004019180360390606060031983011261153557602435936001600160401b038511611535578460040160606003198736030112611535576010546001600160a01b031695863b1561153557604051916366b8ac4f60e11b8352604060048401528335976001600160601b031989168099036115355788604485015260248601356001600160601b0360a01b811680910361153557606485015261043c61042b60448801809761378e565b6060608488015260a48701916137bf565b84810360031901602486015292606084019261045881806137df565b606087529485905260808601945f5b8181106115715750505061047f9060248301906137df565b8585036020870152808552602085019460208260051b82010195835f925b848410611539575050505050506044013563ffffffff811680910361153557848093819260405f97015203915afa801561152a57611515575b506104df613707565b5035916022190182121561151157016004810135906001600160401b0382116115115760240190803603821361151157604051630c270b3360e21b81526020600482015291839183918291610539916024840191906137bf565b0381305afa82918161117a575b5061055a57634f64bf9960e11b8252600482fd5b91825151158061116d575b61115e57825190815161062e575b505090602001518051610584575080f35b815b815181101561062957610599818361386b565b51808452600160205260ff6040852054161561061a578084528360205260ff600a6040862001541661060b579081600192855284602052600a60408620018360ff198254161790557f719d22d3e1041df06461e5bfd381fed6f93905f93013b8526a3e94e2f418868e8580a201610586565b63890be21360e01b8452600484fd5b634833ae7360e11b8452600484fd5b505080f35b9290825b815184101561114f576040519260208401938685526001600160601b0360a01b8660a01b1660348201526020815261066b6040826133af565b519351936020811061113a575b50610683858461386b565b5191825161112b57848352848152600160205260ff60408220541661111c57610140830192835161110d57858252816020526040822096815188556001880195602083019687518051906001600160401b0382116110f9576106ef826106e9855461364e565b85613cd2565b602090601f83116001146110975761071e9291889183610d8b575b50508160011b915f199060031b1c19161790565b90555b6002890194604084019560018060a01b038751166001600160601b0360a01b825416179055606084015160038b015560048a016001600160801b036080860151166001600160801b031982541617905560058a019660a085019788518051906001600160401b0382116110215761079c826106e9855461364e565b602090601f8311600114611035576107ca92918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60068b0160c08601518051906001600160401b038211611021576107f5826106e9855461364e565b602090601f8311600114610fbf5761082392918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60078b019a60e086019b8c5190815191600160401b8311610dfc578154838355808410610f45575b50602001908952602089209089905b838210610e5c575050505060088101956101008101968751908151916001600160401b038311610e4857600160401b8311610e48576020908b835485855585818110610e2d575b50505001908a5260208a208a5b838110610e1057505050506101200151805160098301916001600160401b038211610dfc576108e4826106e9855461364e565b602090601f8311600114610d9657918061091792600a9695948d92610d8b5750508160011b915f199060031b1c19161790565b90555b019051151560ff80198354169116179055888552600160205260408520600160ff19825416179055600f545f198114610d7757600101600f55610979896020808b51604051928184925191829101835e81016002815203019020613d17565b6020808951604051928184925191829101835e60039082019081520301902086516001600160a01b03165f908152602091909152604090206109bc908a90613d17565b6109e2896020808a51604051928184925191829101835e81016005815203019020613d17565b6020808951604051928184925191829101835e8101600b81520301902060018060a01b0387511660018060a01b03165f52602052610a2d89610a2860405f208a5161342f565b613d17565b845b8a518051821015610b4457610a45828c9261386b565b51816040518083518060208601835e81016006815203602001902090610a6a91613d17565b818a51604051818192516020819201835e810160088152036020019020610a91908361342f565b90610a9b91613d17565b8a51604051818192516020819201835e600c9082019081520360209081019091208a516001600160a01b03165f9081529152604090208290610add908361342f565b90610ae791613d17565b8a51604051818192516020819201835e600e9082019081520360209081019091208a516001600160a01b03165f9081529152604090208a51610b29919061342f565b610b329161342f565b90610b3c91613d17565b600101610a2f565b505099989690939485995b845180518c1015610c63576001600160a01b0390610b6e908d9061386b565b5116958688526004602052610b868b60408a20613d17565b8688526009602052610ba08b610a2860408b208c5161342f565b6020808551604051928184925191829101835e60079082019081520301902083516001600160a01b039081165f90815260209283526040808220928b168252919092529020610bf0908c90613d17565b875b8a5151811015610c555780610c4f8d610a288e610c338f968f8f986040828b60019c610c489552600a602052610c398a610a28858520610c338a8d5161386b565b5161342f565b8152600d60205220905161342f565b925161386b565b01610bf2565b506001909b019a9550610b4f565b5096939a9950602091509791949796939660018060a01b0390511692519951935199604051918183925191829101835e81018981520390209260405190604082016040835281518091526020606084019201908a905b808210610d555750505081810360208301528a5180825260208201906020808260051b8501019d01928b5b828110610d28575050505050807f277b4e9514cb36d052849f3dc84cee333641d03c0e9afde019ebeff0fcf640489160019798999a9b0390a4019293919093610632565b909192939d8e601f198483030186525190610d42916130e4565b9d60209081019401929190600101610ce4565b82516001600160a01b0316845260209384019390920191600190910190610cb9565b634e487b7160e01b86526011600452602486fd5b015190505f8061070a565b838b52818b209190601f1984168c5b818110610de45750916001939185600a9897969410610dcc575b505050811b01905561091a565b01515f1960f88460031b161c191690555f8080610dbf565b92936020600181928786015181550195019301610da5565b634e487b7160e01b8a52604160045260248afd5b82516001600160a01b0316818301556020909201916001016108b1565b848387610e409552209182019101613cbc565b8b5f856108a4565b634e487b7160e01b8b52604160045260248bfd5b80518051906001600160401b038211610f3157610e8382610e7d875461364e565b87613cd2565b6020908d601f8411600114610ec9578360019592946020948796610eba9492610d8b5750508160011b915f199060031b1c19161790565b86555b0193019101909161085d565b9190601f198416878452828420935b818110610f195750936020936001969387969383889510610f01575b505050811b018655610ebd565b01515f1960f88460031b161c191690555f8080610ef4565b92936020600181928786015181550195019301610ed8565b634e487b7160e01b8d52604160045260248dfd5b828b528360208c2091820191015b818110610f60575061084e565b808c610f6e6001935461364e565b80610f7c575b505001610f53565b601f81118414610f935750508c81555b8c5f610f74565b83601f60208486610fae965220920160051c82019101613cbc565b808d528c6020812081835555610f8c565b838a52818a209190601f1984168b5b8181106110095750908460019594939210610ff1575b505050811b019055610826565b01515f1960f88460031b161c191690555f8080610fe4565b92936020600181928786015181550195019301610fce565b634e487b7160e01b89526041600452602489fd5b838a52818a209190601f1984168b5b81811061107f5750908460019594939210611067575b505050811b0190556107cd565b01515f1960f88460031b161c191690555f808061105a565b92936020600181928786015181550195019301611044565b8388528188209190601f198416895b8181106110e157509084600195949392106110c9575b505050811b019055610721565b01515f1960f88460031b161c191690555f80806110bc565b929360206001819287860151815501950193016110a6565b634e487b7160e01b87526041600452602487fd5b633060486160e21b8252600482fd5b63232cdbe760e11b8152600490fd5b63315d06e960e11b8152600490fd5b5f949194199060200360031b1b16925f610678565b9350506020915091905f610573565b63773943d760e11b8252600482fd5b5060208301515115610565565b9091503d8084833e61118c81836133af565b81019060208183031261150d578051906001600160401b0382116112a357019060408282031261150d57604051916111c383613364565b80516001600160401b0381116112a757810182601f820112156112a7578051906111ec82613720565b916111fa60405193846133af565b80835260208084019160051b830101918583116115095760208101915b8383106112ab575050505083526020810151906001600160401b0382116112a757019080601f830112156112a357815161125081613720565b9261125e60405194856133af565b81845260208085019260051b82010192831161129f57602001905b82821061128f575050506020820152905f610546565b8151815260209182019101611279565b8680fd5b8480fd5b8580fd5b82516001600160401b038111611505578201610160818903601f19011261150557604051906112d982613393565b6020810151825260408101516001600160401b0381116114b15789602061130292840101613813565b602083015261131360608201613857565b60408301526080810151606083015260a08101516001600160801b03811681036114b157608083015260c08101516001600160401b0381116114b15789602061135e92840101613813565b60a083015260e08101516001600160401b0381116114b15789602061138592840101613813565b60c08301526101008101516001600160401b0381116114b15760209082010189601f820112156114b1578051906113bb82613720565b916113c960405193846133af565b80835260208084019160051b830101918c83116114cd5760208101915b8383106114d1575050505060e08301526101208101516001600160401b0381116114b15760209082010189601f820112156114b15780519061142782613720565b9161143560405193846133af565b80835260208084019160051b830101918c83116114cd57602001905b8282106114b5575050506101008301526101408101516001600160401b0381116114b157906114888a602061016094840101613813565b610120840152015180151581036114ad57610140820152815260209283019201611217565b8b80fd5b8c80fd5b602080916114c284613857565b815201910190611451565b8f80fd5b82516001600160401b0381116114ff576020918f6114f490848094870101613813565b8152019201916113e6565b50508f80fd5b8a80fd5b8880fd5b8380fd5b8280fd5b6115229194505f906133af565b5f925f6104d6565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080611561600193601f1986820301885261155b8d8861378e565b906137bf565b9a0194019401929493919061049d565b909195602080600192838060a01b036115898b6132eb565b168152019701929101610467565b34611535576115c36115a83661351a565b929160018060a01b03165f52600960205260405f209061342f565b8054821015611535576020916102ac9161344e565b346115355760206115e836613560565b949093836040949394519384928337810160058152030190206040519081602082549182815201915f5260205f20905f5b81811061165b5761165761164361163e8a8a8a8a611639818c03826133af565b61387f565b613946565b604051918291602083526020830190613251565b0390f35b8254845260209093019260019283019201611619565b3461153557602080611682366135a3565b9290604051928184925191829101835e810160028152030190208054821015611535576020916102ac9161344e565b34611535576060366003190112611535576004356001600160401b038111611535576116e19036906004016133eb565b6024356001600160401b038111611535576117036115c39136906004016133eb565b604051835160443594602091839181908401835e810160088152030190209061342f565b346115355760a0366003190112611535576117406132a9565b6024356001600160401b038111611535576117616020913690600401613099565b919061176b6130c6565b9360018060a01b03165f526009825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106117d35761165761164361163e88886117c6818a03826133af565b606435906044359061387f565b82548452602090930192600192830192016117a8565b34611535576020366003190112611535576004356001600160401b03811161153557602061181c81923690600401613099565b91908260405193849283378101600681520301902054604051908152f35b34611535576020808061184c366132ff565b9590938360409493945193849283378101600b8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b34611535576060366003190112611535576004356001600160401b038111611535576118c1903690600401613099565b6118c96132bf565b9060206118d46132d5565b93826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b34611535576020366003190112611535576004355f525f602052602060405f20805490611a3260405191611959836119528160018501613686565b03846133af565b611a2460018060a01b03600283015416611a166003840154916001600160801b036004860154166040519061199c826119958160058b01613686565b03836133af565b604051946119b8866119b18160068c01613686565b03876133af565b6119f960ff600a6040519a6119db8c6119d48160098501613686565b038d6133af565b0154169a6101206040519e8f9e8f90815201526101208d01906130e4565b9360408c015260608b015260808a015288820360a08a01526130e4565b9086820360c08801526130e4565b9084820360e08601526130e4565b9015156101008301520390f35b346115355760c036600319011261153557611a586132a9565b6024356001600160401b03811161153557611a77903690600401613099565b90604435906001600160401b03821161153557602092611a9c84933690600401613099565b949092611aa76130d5565b9660018060a01b03165f52600d825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611b215761165761164361163e8888611b14818a03826133af565b608435906064359061387f565b8254845260209093019260019283019201611af6565b34611535575f366003190112611535576020600f54604051908152f35b3461153557602036600319011261153557600435805f52600160205260ff60405f20541680611b8b575b6020906040519015158152f35b505f525f602052602060ff600a60405f20015416611b7e565b346115355760c0366003190112611535576004356001600160401b03811161153557611bd4903690600401613099565b611bdc6132bf565b611be46132d5565b916020611bef6130d5565b94826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110611c5d5761165761164361163e8888611b14818a03826133af565b8254845260209093019260019283019201611c3f565b3461153557602080611c84366135d4565b9894929591968260409992995193849283378101600c8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611cfb5761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611cdb565b3461153557602080611d22366135d4565b9894929591968260409992995193849283378101600b8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611d995761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611d79565b34611535576020611dbf36613560565b949093836040949394519384928337810160068152030190206040519081602082549182815201915f5260205f20905f5b818110611e105761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611df0565b3461153557602036600319011261153557600435611e42613737565b50805f52600160205260ff60405f20541615611ff0575f525f60205260405f20604051611e6e81613393565b81548152604051611e8d81611e868160018701613686565b03826133af565b602082015260028201546001600160a01b03166040808301919091526003830154606083015260048301546001600160801b0316608083015251611ed881611e868160058701613686565b60a0820152604051611ef181611e868160068701613686565b60c0820152600782018054611f0581613720565b91611f1360405193846133af565b81835260208301905f5260205f205f915b838310611fcb575050505060e0820152600882016040519081602082549182815201915f5260205f20905f5b818110611fac576116578660ff600a8a89611f6d818b03826133af565b610100850152604051611f8781611e868160098601613686565b6101208501520154161515610140820152604051918291602083526020830190613108565b82546001600160a01b0316845260209093019260019283019201611f50565b600160208192604051611fe281611e868189613686565b815201920192019190611f24565b634833ae7360e11b5f5260045ffd5b3461153557602080612010366135a3565b9290604051928184925191829101835e810160058152030190208054821015611535576020916102ac9161344e565b346115355760206115c38161205336613477565b959192604094919451928184925191829101835e8101600b8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576080366003190112611535576004356001600160401b038111611535576120b9903690600401613099565b6120c16132bf565b906044356001600160401b038111611535576120e1903690600401613099565b6064949194356001600160401b038111611535576020958695869561210b87943690600401613099565b9890968260405193849283378101600e8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576040366003190112611535576121786132a9565b6001600160a01b03165f90815260046020526040902080546024359190821015611535576020916102ac9161344e565b346115355760e0366003190112611535576004356001600160401b038111611535576121d8903690600401613099565b906121e16132bf565b916044356001600160401b03811161153557612201903690600401613099565b6064356001600160401b03811161153557612220903690600401613099565b94909260c43596871515880361153557856020809794819560405193849283378101600e8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106122c25761165761164361163e88886122b5818a03826133af565b60a435906084359061387f565b8254845260209093019260019283019201612297565b34611535576020806122e9366134db565b929160018060a01b03165f52600a825260405f2083604051948593843782019081520301902054604051908152f35b346115355760a0366003190112611535576123316132a9565b6024356001600160401b038111611535576123536123799136906004016133eb565b61235b6130c6565b6001600160a01b039093165f908152600a602052604090209061342f565b6040519081602082549182815201915f5260205f20905f5b8181106123af5761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612391565b34611535576020366003190112611535576004356001600160401b0381116115355760206123f881923690600401613099565b91908260405193849283378101600581520301902054604051908152f35b3461153557602061242636613560565b949093836040949394519384928337810160028152030190206040519081602082549182815201915f5260205f20905f5b8181106124775761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201612457565b34611535576080366003190112611535576124a66132a9565b6024356001600160401b038111611535576124c59036906004016133eb565b604435906001600160401b0382116115355761250d6124eb6115c39336906004016133eb565b6001600160a01b039094165f908152600d60205260409020606435949261342f565b9061342f565b34611535575f36600319011261153557611657602061260160016125567f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81846125817f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81806125ac7f0000000000000000000000000000000000000000000000000000000000000000613b4f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826133af565b6040519182916020835260208301906130e4565b34611535576020366003190112611535576004356001600160401b03811161153557602061264881923690600401613099565b91908260405193849283378101600281520301902054604051908152f35b34611535576040366003190112611535576004356001600160401b03811161153557612696903690600401613099565b60206126a06132bf565b92826040519384928337810160038152030190209060018060a01b03165f52602052602060405f2054604051908152f35b34611535575f366003190112611535576010546040516001600160a01b039091168152602090f35b34611535576060366003190112611535576127126132a9565b6024356001600160401b03811161153557612731903690600401613099565b91604435906001600160401b038211611535576020938461275781943690600401613099565b95909360018060a01b03165f52600d825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576115c36127aa3661351a565b929160018060a01b03165f52600a60205260405f209061342f565b34611535576020366003190112611535576004356001600160401b038111611535576127f5903690600401613099565b6127fd613707565b50810190602081830312611535578035906001600160401b038211611535570190604082820312611535576040519161283583613364565b80356001600160401b03811161153557810182601f820112156115355780359061285e82613720565b9161286c60405193846133af565b80835260208084019160051b830101918583116115355760208101915b83831061296f575050505083526020810135906001600160401b03821161153557019080601f830112156115355781356128c281613720565b926128d060405194856133af565b81845260208085019260051b82010192831161153557602001905b82821061295f5761291a8585602082019081526040519283926020845251604060208501526060840190613251565b905190601f19838203016040840152602080835192838152019201905f5b818110612946575050500390f35b8251845285945060209384019390920191600101612938565b81358152602091820191016128eb565b82356001600160401b03811161153557820190610160828903601f190112611535576040519161299e83613393565b6020810135835260408101356001600160401b038111611535578960206129c7928401016133eb565b60208401526129d8606082016132eb565b60408401526080810135606084015260a08101356001600160801b038116810361153557608084015260c08101356001600160401b03811161153557896020612a23928401016133eb565b60a084015260e08101356001600160401b03811161153557896020612a4a928401016133eb565b60c08401526101008101356001600160401b0381116115355760209082010189601f82011215611535578035612a7f81613720565b91612a8d60405193846133af565b81835260208084019260051b820101918c83116115355760208201905b838210612b8d575050505060e08401526101208101356001600160401b0381116115355760209082010189601f8201121561153557803590612aeb82613720565b91612af960405193846133af565b80835260208084019160051b830101918c831161153557602001905b828210612b7557505050610100840152610140810135906001600160401b03821161153557612b4c8a6020610160948401016133eb565b610120850152013590811515820361153557826020939261014085940152815201920191612889565b60208091612b82846132eb565b815201910190612b15565b81356001600160401b038111611535576020918f612bb0908480948801016133eb565b815201910190612aaa565b3461153557602080612bcc366134db565b929160018060a01b03165f526009825260405f2083604051948593843782019081520301902054604051908152f35b346115355760206115c381612c0f36613477565b959192604094919451928184925191829101835e8101600c8152030190209060018060a01b03165f5260205260405f209061342f565b346115355760a0366003190112611535576004356001600160401b03811161153557612c75903690600401613099565b612c7d6132bf565b906020612c886130c6565b93826040519384928337810160038152030190209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110612ce45761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612cc6565b34611535576060366003190112611535576004356001600160401b03811161153557612d2a9036906004016133eb565b612d326132bf565b604051825160443593602091839181908401835e810160038152030190209060018060a01b03165f5260205260405f208054821015611535576020916102ac9161344e565b346115355760a0366003190112611535576004356001600160401b03811161153557612da79036906004016133eb565b612daf6132bf565b6044356001600160401b03811161153557612dce9036906004016133eb565b906064356001600160401b038111611535576115c392612df561250d9236906004016133eb565b9260208060843597604051928184925191829101835e8101600e8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576040366003190112611535576004356001600160401b03811161153557612e5d903690600401613099565b6024356001600160401b038111611535576020928392612e8284933690600401613099565b9490928260405193849283378101600881520301902083604051948593843782019081520301902054604051908152f35b34611535576020366003190112611535576004355f526001602052602060ff60405f2054166040519015158152f35b346115355760208080612ef4366132ff565b9590938360409493945193849283378101600c8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b3461153557608036600319011261153557612f526132a9565b6064359081151582036115355760018060a01b03165f52600460205260405f206040519081602082549182815201915f5260205f20905f5b818110612fb55761165761164361163e8888612fa8818a03826133af565b604435906024359061387f565b8254845260209093019260019283019201612f8a565b346115355760a0366003190112611535576004356001600160401b03811161153557612ffb903690600401613099565b602492919235906001600160401b0382116115355782602061302281943690600401613099565b9590938061302e6130c6565b988337810160088152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106130835761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201613065565b9181601f84011215611535578235916001600160401b038311611535576020838186019501011161153557565b60843590811515820361153557565b60a43590811515820361153557565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b908151815261318161316f61312e602085015161016060208601526101608501906130e4565b60018060a01b036040860151166040850152606085015160608501526001600160801b03608086015116608085015260a085015184820360a08601526130e4565b60c084015183820360c08501526130e4565b60e08301519082810360e0840152815180825260208201916020808360051b8301019401925f915b83831061322457505050505061010083015190828103610100840152602080835192838152019201905f5b818110613205575050506101406131fa81926101208601518582036101208701526130e4565b930151151591015290565b82516001600160a01b03168452602093840193909201916001016131d4565b9091929394602080613242600193601f1986820301875289516130e4565b970193019301919392906131a9565b9080602083519182815201916020808360051b8301019401925f915b83831061327c57505050505090565b909192939460208061329a600193601f198682030187528951613108565b9701930193019193929061326d565b600435906001600160a01b038216820361153557565b602435906001600160a01b038216820361153557565b604435906001600160a01b038216820361153557565b35906001600160a01b038216820361153557565b906060600319830112611535576004356001600160401b038111611535578261332a91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761336091600401613099565b9091565b604081019081106001600160401b0382111761337f57604052565b634e487b7160e01b5f52604160045260245ffd5b61016081019081106001600160401b0382111761337f57604052565b90601f801991011681019081106001600160401b0382111761337f57604052565b6001600160401b03811161337f57601f01601f191660200190565b81601f8201121561153557602081359101613405826133d0565b9261341360405194856133af565b8284528282011161153557815f92602092838601378301015290565b6040518151909260209284929081908501845e82019081520301902090565b8054821015613463575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6080600319820112611535576004356001600160401b03811161153557816134a1916004016133eb565b916024356001600160a01b03811681036115355791604435906001600160401b038211611535576134d4916004016133eb565b9060643590565b906040600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b0382116115355761336091600401613099565b906060600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b03821161153557613559916004016133eb565b9060443590565b608060031982011261153557600435906001600160401b0382116115355761358a91600401613099565b9091602435906044359060643580151581036115355790565b604060031982011261153557600435906001600160401b038211611535576135cd916004016133eb565b9060243590565b9060c0600319830112611535576004356001600160401b03811161153557826135ff91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761363591600401613099565b9091606435906084359060a43580151581036115355790565b90600182811c9216801561367c575b602083101461366857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161365d565b5f92918154916136958361364e565b80835292600181169081156136ea57506001146136b157505050565b5f9081526020812093945091925b8383106136d0575060209250010190565b6001816020929493945483858701015201910191906136bf565b915050602093945060ff929192191683830152151560051b010190565b6040519061371482613364565b60606020838281520152565b6001600160401b03811161337f5760051b60200190565b6040519061374482613393565b5f6101408382815260606020820152826040820152826060820152826080820152606060a0820152606060c0820152606060e0820152606061010082015260606101208201520152565b9035601e19823603018112156115355701602081359101916001600160401b03821161153557813603831361153557565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156115355701602081359101916001600160401b038211611535578160051b3603831361153557565b81601f820112156115355760208151910161382d826133d0565b9261383b60405194856133af565b8284528282011161153557815f926020928386015e8301015290565b51906001600160a01b038216820361153557565b80518210156134635760209160051b010190565b9081518015613929578082101561391b578382018110613911575b6138a384613720565b946138b160405196876133af565b848652601f196138c086613720565b013660208801375f5b8581106138d95750505050505090565b6001908215613906576138f485820185035f19015b8761386b565b516138ff828a61386b565b52016138c9565b6138f48186016138ee565b818103935061389a565b62ed0ab960e11b5f5260045ffd5b505050505060405161393c6020826133af565b5f81525f36813790565b90815161395281613720565b9061396060405192836133af565b80825261396f601f1991613720565b015f5b818110613b385750505f5b8351811015613b3357613990818561386b565b515f525f60205260405f20604051906139a882613393565b805482526040516139c081611e868160018601613686565b602083015260028101546001600160a01b03166040808401919091526003820154606084015260048201546001600160801b0316608084015251613a0b81611e868160058601613686565b60a0830152604051613a2481611e868160068601613686565b60c0830152600781018054613a3881613720565b91613a4660405193846133af565b81835260208301905f5260205f20905f905b838210613b0e575050505060e0830152600881016040519081602082549182815201915f5260205f20905f905b808210613aec57505050600194939282613aa560ff94600a9403826133af565b610100850152604051613abf81611e868160098601613686565b6101208501520154161515610140820152613ada828561386b565b52613ae5818461386b565b500161397d565b82546001600160a01b0316845260209093019260019283019290910190613a85565b600160208192604051613b2581611e86818a613686565b815201930191019091613a58565b509150565b602090613b43613737565b82828601015201613972565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613c99575b806d04ee2d6d415b85acef8100000000600a921015613c7e575b662386f26fc10000811015613c6a575b6305f5e100811015613c59575b612710811015613c4a575b6064811015613c3c575b1015613c31575b600a60216001840193613bd6856133d0565b94613be460405196876133af565b808652613bf3601f19916133d0565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015613c2c57600a9091613bfe565b505090565b600190910190613bc4565b606460029104930192613bbd565b61271060049104930192613bb3565b6305f5e10060089104930192613ba8565b662386f26fc1000060109104930192613b9b565b6d04ee2d6d415b85acef810000000060209104930192613b8b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613b71565b818110613cc7575050565b5f8155600101613cbc565b9190601f8111613ce157505050565b613d0b925f5260205f20906020601f840160051c83019310613d0d575b601f0160051c0190613cbc565b565b9091508190613cfe565b8054600160401b81101561337f57613d349160018201815561344e565b819291549060031b91821b915f19901b191617905556fea26469706673582212200dcd11dd9c0889f6269f03425a6fabc2d6a5ddeb54a7b2de7311f51ea199868364736f6c634300081b0033","sourceMap":"697:23375:97:-:0;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;2489:1;759:14:4;;-1:-1:-1;783:14:4;;-1:-1:-1;807:14:4;;2512:37:97;;2508:98;;2615:32;697:23375;;-1:-1:-1;;;;;;697:23375:97;;;;;;;;;;;;;;;759:14:4;697:23375:97;;;;;783:14:4;697:23375:97;;;;;807:14:4;697:23375:97;;;;;;2508:98;2572:23;;;-1:-1:-1;2572:23:97;;-1:-1:-1;2572:23:97;697:23375;-1:-1:-1;697:23375:97;;;;;;-1:-1:-1;697:23375:97;;;;;-1:-1:-1;697:23375:97","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301bc644114612fcb575080630c9fdf2814612f395780631060595714612ee2578063118e58bd14612eb35780631eaf27b114612e2d5780631fb294da14612d775780632195030214612cfa5780632410d64114612c455780632a2f991214612bfb5780632e58202814612bbb578063309c2ccc146127c55780633a363314146127995780633aa19a9f146126f95780634dda0b43146126d157806350f5fa8414612666578063511c20ba1461261557806354fd4d5014612513578063550edfe21461248d57806360742b14146124165780636cf1df2c146123c557806380bec78014612318578063832d2fe6146122d8578063850b9db6146121a85780638835aec11461215f5780638981482f146120895780638a1761e31461203f5780638a73363014611fff5780638c172fa214611e265780638d6685d214611daf578063928f9df514611d115780639d4e06ac14611c73578063b5a0827c14611ba4578063b682a1b614611b54578063ba87068614611b37578063baf19b2314611a3f578063bfdc4a6114611917578063c3014d5814611891578063d428fbe31461183a578063da358da2146117e9578063dac1fe5514611727578063e80fb963146116b1578063e8c7936914611671578063ea9f2c86146115d8578063ec880f6f14611597578063f969ff331461035b578063f99417bf146102bb578063fabbcab3146102695763fbea4e6d1461022e575f80fd5b34610266576020366003190112610266576020906040906001600160a01b036102556132a9565b168152600483522054604051908152f35b80fd5b5034610266576020908161027c366135a3565b9390604051928184925191829101835e810160068152030190209081548310156102665760206102ac848461344e565b90549060031b1c604051908152f35b5034610266576080366003190112610266576004356001600160401b038111610357576102ec9036906004016133eb565b906102f56132bf565b6102fd6132d5565b9060208060643595604051928184925191829101835e810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f209081548310156102665760206102ac848461344e565b5080fd5b503461153557604036600319011261153557600435906001600160401b03821161153557816004019180360390606060031983011261153557602435936001600160401b038511611535578460040160606003198736030112611535576010546001600160a01b031695863b1561153557604051916366b8ac4f60e11b8352604060048401528335976001600160601b031989168099036115355788604485015260248601356001600160601b0360a01b811680910361153557606485015261043c61042b60448801809761378e565b6060608488015260a48701916137bf565b84810360031901602486015292606084019261045881806137df565b606087529485905260808601945f5b8181106115715750505061047f9060248301906137df565b8585036020870152808552602085019460208260051b82010195835f925b848410611539575050505050506044013563ffffffff811680910361153557848093819260405f97015203915afa801561152a57611515575b506104df613707565b5035916022190182121561151157016004810135906001600160401b0382116115115760240190803603821361151157604051630c270b3360e21b81526020600482015291839183918291610539916024840191906137bf565b0381305afa82918161117a575b5061055a57634f64bf9960e11b8252600482fd5b91825151158061116d575b61115e57825190815161062e575b505090602001518051610584575080f35b815b815181101561062957610599818361386b565b51808452600160205260ff6040852054161561061a578084528360205260ff600a6040862001541661060b579081600192855284602052600a60408620018360ff198254161790557f719d22d3e1041df06461e5bfd381fed6f93905f93013b8526a3e94e2f418868e8580a201610586565b63890be21360e01b8452600484fd5b634833ae7360e11b8452600484fd5b505080f35b9290825b815184101561114f576040519260208401938685526001600160601b0360a01b8660a01b1660348201526020815261066b6040826133af565b519351936020811061113a575b50610683858461386b565b5191825161112b57848352848152600160205260ff60408220541661111c57610140830192835161110d57858252816020526040822096815188556001880195602083019687518051906001600160401b0382116110f9576106ef826106e9855461364e565b85613cd2565b602090601f83116001146110975761071e9291889183610d8b575b50508160011b915f199060031b1c19161790565b90555b6002890194604084019560018060a01b038751166001600160601b0360a01b825416179055606084015160038b015560048a016001600160801b036080860151166001600160801b031982541617905560058a019660a085019788518051906001600160401b0382116110215761079c826106e9855461364e565b602090601f8311600114611035576107ca92918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60068b0160c08601518051906001600160401b038211611021576107f5826106e9855461364e565b602090601f8311600114610fbf5761082392918a9183610d8b5750508160011b915f199060031b1c19161790565b90555b60078b019a60e086019b8c5190815191600160401b8311610dfc578154838355808410610f45575b50602001908952602089209089905b838210610e5c575050505060088101956101008101968751908151916001600160401b038311610e4857600160401b8311610e48576020908b835485855585818110610e2d575b50505001908a5260208a208a5b838110610e1057505050506101200151805160098301916001600160401b038211610dfc576108e4826106e9855461364e565b602090601f8311600114610d9657918061091792600a9695948d92610d8b5750508160011b915f199060031b1c19161790565b90555b019051151560ff80198354169116179055888552600160205260408520600160ff19825416179055600f545f198114610d7757600101600f55610979896020808b51604051928184925191829101835e81016002815203019020613d17565b6020808951604051928184925191829101835e60039082019081520301902086516001600160a01b03165f908152602091909152604090206109bc908a90613d17565b6109e2896020808a51604051928184925191829101835e81016005815203019020613d17565b6020808951604051928184925191829101835e8101600b81520301902060018060a01b0387511660018060a01b03165f52602052610a2d89610a2860405f208a5161342f565b613d17565b845b8a518051821015610b4457610a45828c9261386b565b51816040518083518060208601835e81016006815203602001902090610a6a91613d17565b818a51604051818192516020819201835e810160088152036020019020610a91908361342f565b90610a9b91613d17565b8a51604051818192516020819201835e600c9082019081520360209081019091208a516001600160a01b03165f9081529152604090208290610add908361342f565b90610ae791613d17565b8a51604051818192516020819201835e600e9082019081520360209081019091208a516001600160a01b03165f9081529152604090208a51610b29919061342f565b610b329161342f565b90610b3c91613d17565b600101610a2f565b505099989690939485995b845180518c1015610c63576001600160a01b0390610b6e908d9061386b565b5116958688526004602052610b868b60408a20613d17565b8688526009602052610ba08b610a2860408b208c5161342f565b6020808551604051928184925191829101835e60079082019081520301902083516001600160a01b039081165f90815260209283526040808220928b168252919092529020610bf0908c90613d17565b875b8a5151811015610c555780610c4f8d610a288e610c338f968f8f986040828b60019c610c489552600a602052610c398a610a28858520610c338a8d5161386b565b5161342f565b8152600d60205220905161342f565b925161386b565b01610bf2565b506001909b019a9550610b4f565b5096939a9950602091509791949796939660018060a01b0390511692519951935199604051918183925191829101835e81018981520390209260405190604082016040835281518091526020606084019201908a905b808210610d555750505081810360208301528a5180825260208201906020808260051b8501019d01928b5b828110610d28575050505050807f277b4e9514cb36d052849f3dc84cee333641d03c0e9afde019ebeff0fcf640489160019798999a9b0390a4019293919093610632565b909192939d8e601f198483030186525190610d42916130e4565b9d60209081019401929190600101610ce4565b82516001600160a01b0316845260209384019390920191600190910190610cb9565b634e487b7160e01b86526011600452602486fd5b015190505f8061070a565b838b52818b209190601f1984168c5b818110610de45750916001939185600a9897969410610dcc575b505050811b01905561091a565b01515f1960f88460031b161c191690555f8080610dbf565b92936020600181928786015181550195019301610da5565b634e487b7160e01b8a52604160045260248afd5b82516001600160a01b0316818301556020909201916001016108b1565b848387610e409552209182019101613cbc565b8b5f856108a4565b634e487b7160e01b8b52604160045260248bfd5b80518051906001600160401b038211610f3157610e8382610e7d875461364e565b87613cd2565b6020908d601f8411600114610ec9578360019592946020948796610eba9492610d8b5750508160011b915f199060031b1c19161790565b86555b0193019101909161085d565b9190601f198416878452828420935b818110610f195750936020936001969387969383889510610f01575b505050811b018655610ebd565b01515f1960f88460031b161c191690555f8080610ef4565b92936020600181928786015181550195019301610ed8565b634e487b7160e01b8d52604160045260248dfd5b828b528360208c2091820191015b818110610f60575061084e565b808c610f6e6001935461364e565b80610f7c575b505001610f53565b601f81118414610f935750508c81555b8c5f610f74565b83601f60208486610fae965220920160051c82019101613cbc565b808d528c6020812081835555610f8c565b838a52818a209190601f1984168b5b8181106110095750908460019594939210610ff1575b505050811b019055610826565b01515f1960f88460031b161c191690555f8080610fe4565b92936020600181928786015181550195019301610fce565b634e487b7160e01b89526041600452602489fd5b838a52818a209190601f1984168b5b81811061107f5750908460019594939210611067575b505050811b0190556107cd565b01515f1960f88460031b161c191690555f808061105a565b92936020600181928786015181550195019301611044565b8388528188209190601f198416895b8181106110e157509084600195949392106110c9575b505050811b019055610721565b01515f1960f88460031b161c191690555f80806110bc565b929360206001819287860151815501950193016110a6565b634e487b7160e01b87526041600452602487fd5b633060486160e21b8252600482fd5b63232cdbe760e11b8152600490fd5b63315d06e960e11b8152600490fd5b5f949194199060200360031b1b16925f610678565b9350506020915091905f610573565b63773943d760e11b8252600482fd5b5060208301515115610565565b9091503d8084833e61118c81836133af565b81019060208183031261150d578051906001600160401b0382116112a357019060408282031261150d57604051916111c383613364565b80516001600160401b0381116112a757810182601f820112156112a7578051906111ec82613720565b916111fa60405193846133af565b80835260208084019160051b830101918583116115095760208101915b8383106112ab575050505083526020810151906001600160401b0382116112a757019080601f830112156112a357815161125081613720565b9261125e60405194856133af565b81845260208085019260051b82010192831161129f57602001905b82821061128f575050506020820152905f610546565b8151815260209182019101611279565b8680fd5b8480fd5b8580fd5b82516001600160401b038111611505578201610160818903601f19011261150557604051906112d982613393565b6020810151825260408101516001600160401b0381116114b15789602061130292840101613813565b602083015261131360608201613857565b60408301526080810151606083015260a08101516001600160801b03811681036114b157608083015260c08101516001600160401b0381116114b15789602061135e92840101613813565b60a083015260e08101516001600160401b0381116114b15789602061138592840101613813565b60c08301526101008101516001600160401b0381116114b15760209082010189601f820112156114b1578051906113bb82613720565b916113c960405193846133af565b80835260208084019160051b830101918c83116114cd5760208101915b8383106114d1575050505060e08301526101208101516001600160401b0381116114b15760209082010189601f820112156114b15780519061142782613720565b9161143560405193846133af565b80835260208084019160051b830101918c83116114cd57602001905b8282106114b5575050506101008301526101408101516001600160401b0381116114b157906114888a602061016094840101613813565b610120840152015180151581036114ad57610140820152815260209283019201611217565b8b80fd5b8c80fd5b602080916114c284613857565b815201910190611451565b8f80fd5b82516001600160401b0381116114ff576020918f6114f490848094870101613813565b8152019201916113e6565b50508f80fd5b8a80fd5b8880fd5b8380fd5b8280fd5b6115229194505f906133af565b5f925f6104d6565b6040513d5f823e3d90fd5b5f80fd5b909192939497602080611561600193601f1986820301885261155b8d8861378e565b906137bf565b9a0194019401929493919061049d565b909195602080600192838060a01b036115898b6132eb565b168152019701929101610467565b34611535576115c36115a83661351a565b929160018060a01b03165f52600960205260405f209061342f565b8054821015611535576020916102ac9161344e565b346115355760206115e836613560565b949093836040949394519384928337810160058152030190206040519081602082549182815201915f5260205f20905f5b81811061165b5761165761164361163e8a8a8a8a611639818c03826133af565b61387f565b613946565b604051918291602083526020830190613251565b0390f35b8254845260209093019260019283019201611619565b3461153557602080611682366135a3565b9290604051928184925191829101835e810160028152030190208054821015611535576020916102ac9161344e565b34611535576060366003190112611535576004356001600160401b038111611535576116e19036906004016133eb565b6024356001600160401b038111611535576117036115c39136906004016133eb565b604051835160443594602091839181908401835e810160088152030190209061342f565b346115355760a0366003190112611535576117406132a9565b6024356001600160401b038111611535576117616020913690600401613099565b919061176b6130c6565b9360018060a01b03165f526009825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106117d35761165761164361163e88886117c6818a03826133af565b606435906044359061387f565b82548452602090930192600192830192016117a8565b34611535576020366003190112611535576004356001600160401b03811161153557602061181c81923690600401613099565b91908260405193849283378101600681520301902054604051908152f35b34611535576020808061184c366132ff565b9590938360409493945193849283378101600b8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b34611535576060366003190112611535576004356001600160401b038111611535576118c1903690600401613099565b6118c96132bf565b9060206118d46132d5565b93826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f52602052602060405f2054604051908152f35b34611535576020366003190112611535576004355f525f602052602060405f20805490611a3260405191611959836119528160018501613686565b03846133af565b611a2460018060a01b03600283015416611a166003840154916001600160801b036004860154166040519061199c826119958160058b01613686565b03836133af565b604051946119b8866119b18160068c01613686565b03876133af565b6119f960ff600a6040519a6119db8c6119d48160098501613686565b038d6133af565b0154169a6101206040519e8f9e8f90815201526101208d01906130e4565b9360408c015260608b015260808a015288820360a08a01526130e4565b9086820360c08801526130e4565b9084820360e08601526130e4565b9015156101008301520390f35b346115355760c036600319011261153557611a586132a9565b6024356001600160401b03811161153557611a77903690600401613099565b90604435906001600160401b03821161153557602092611a9c84933690600401613099565b949092611aa76130d5565b9660018060a01b03165f52600d825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611b215761165761164361163e8888611b14818a03826133af565b608435906064359061387f565b8254845260209093019260019283019201611af6565b34611535575f366003190112611535576020600f54604051908152f35b3461153557602036600319011261153557600435805f52600160205260ff60405f20541680611b8b575b6020906040519015158152f35b505f525f602052602060ff600a60405f20015416611b7e565b346115355760c0366003190112611535576004356001600160401b03811161153557611bd4903690600401613099565b611bdc6132bf565b611be46132d5565b916020611bef6130d5565b94826040519384928337810160078152030190209060018060a01b03165f5260205260405f209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110611c5d5761165761164361163e8888611b14818a03826133af565b8254845260209093019260019283019201611c3f565b3461153557602080611c84366135d4565b9894929591968260409992995193849283378101600c8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611cfb5761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611cdb565b3461153557602080611d22366135d4565b9894929591968260409992995193849283378101600b8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b818110611d995761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611d79565b34611535576020611dbf36613560565b949093836040949394519384928337810160068152030190206040519081602082549182815201915f5260205f20905f5b818110611e105761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201611df0565b3461153557602036600319011261153557600435611e42613737565b50805f52600160205260ff60405f20541615611ff0575f525f60205260405f20604051611e6e81613393565b81548152604051611e8d81611e868160018701613686565b03826133af565b602082015260028201546001600160a01b03166040808301919091526003830154606083015260048301546001600160801b0316608083015251611ed881611e868160058701613686565b60a0820152604051611ef181611e868160068701613686565b60c0820152600782018054611f0581613720565b91611f1360405193846133af565b81835260208301905f5260205f205f915b838310611fcb575050505060e0820152600882016040519081602082549182815201915f5260205f20905f5b818110611fac576116578660ff600a8a89611f6d818b03826133af565b610100850152604051611f8781611e868160098601613686565b6101208501520154161515610140820152604051918291602083526020830190613108565b82546001600160a01b0316845260209093019260019283019201611f50565b600160208192604051611fe281611e868189613686565b815201920192019190611f24565b634833ae7360e11b5f5260045ffd5b3461153557602080612010366135a3565b9290604051928184925191829101835e810160058152030190208054821015611535576020916102ac9161344e565b346115355760206115c38161205336613477565b959192604094919451928184925191829101835e8101600b8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576080366003190112611535576004356001600160401b038111611535576120b9903690600401613099565b6120c16132bf565b906044356001600160401b038111611535576120e1903690600401613099565b6064949194356001600160401b038111611535576020958695869561210b87943690600401613099565b9890968260405193849283378101600e8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576040366003190112611535576121786132a9565b6001600160a01b03165f90815260046020526040902080546024359190821015611535576020916102ac9161344e565b346115355760e0366003190112611535576004356001600160401b038111611535576121d8903690600401613099565b906121e16132bf565b916044356001600160401b03811161153557612201903690600401613099565b6064356001600160401b03811161153557612220903690600401613099565b94909260c43596871515880361153557856020809794819560405193849283378101600e8152030190209060018060a01b03165f52825260405f208360405194859384378201908152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106122c25761165761164361163e88886122b5818a03826133af565b60a435906084359061387f565b8254845260209093019260019283019201612297565b34611535576020806122e9366134db565b929160018060a01b03165f52600a825260405f2083604051948593843782019081520301902054604051908152f35b346115355760a0366003190112611535576123316132a9565b6024356001600160401b038111611535576123536123799136906004016133eb565b61235b6130c6565b6001600160a01b039093165f908152600a602052604090209061342f565b6040519081602082549182815201915f5260205f20905f5b8181106123af5761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612391565b34611535576020366003190112611535576004356001600160401b0381116115355760206123f881923690600401613099565b91908260405193849283378101600581520301902054604051908152f35b3461153557602061242636613560565b949093836040949394519384928337810160028152030190206040519081602082549182815201915f5260205f20905f5b8181106124775761165761164361163e8a8a8a8a611639818c03826133af565b8254845260209093019260019283019201612457565b34611535576080366003190112611535576124a66132a9565b6024356001600160401b038111611535576124c59036906004016133eb565b604435906001600160401b0382116115355761250d6124eb6115c39336906004016133eb565b6001600160a01b039094165f908152600d60205260409020606435949261342f565b9061342f565b34611535575f36600319011261153557611657602061260160016125567f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81846125817f0000000000000000000000000000000000000000000000000000000000000000613b4f565b81806125ac7f0000000000000000000000000000000000000000000000000000000000000000613b4f565b9260405199878b985191829101848a015e870190601760f91b83830152805192839101602183015e010190601760f91b84830152805192839101600283015e01015f838201520301601f1981018352826133af565b6040519182916020835260208301906130e4565b34611535576020366003190112611535576004356001600160401b03811161153557602061264881923690600401613099565b91908260405193849283378101600281520301902054604051908152f35b34611535576040366003190112611535576004356001600160401b03811161153557612696903690600401613099565b60206126a06132bf565b92826040519384928337810160038152030190209060018060a01b03165f52602052602060405f2054604051908152f35b34611535575f366003190112611535576010546040516001600160a01b039091168152602090f35b34611535576060366003190112611535576127126132a9565b6024356001600160401b03811161153557612731903690600401613099565b91604435906001600160401b038211611535576020938461275781943690600401613099565b95909360018060a01b03165f52600d825260405f2083604051948593843782019081520301902083604051948593843782019081520301902054604051908152f35b34611535576115c36127aa3661351a565b929160018060a01b03165f52600a60205260405f209061342f565b34611535576020366003190112611535576004356001600160401b038111611535576127f5903690600401613099565b6127fd613707565b50810190602081830312611535578035906001600160401b038211611535570190604082820312611535576040519161283583613364565b80356001600160401b03811161153557810182601f820112156115355780359061285e82613720565b9161286c60405193846133af565b80835260208084019160051b830101918583116115355760208101915b83831061296f575050505083526020810135906001600160401b03821161153557019080601f830112156115355781356128c281613720565b926128d060405194856133af565b81845260208085019260051b82010192831161153557602001905b82821061295f5761291a8585602082019081526040519283926020845251604060208501526060840190613251565b905190601f19838203016040840152602080835192838152019201905f5b818110612946575050500390f35b8251845285945060209384019390920191600101612938565b81358152602091820191016128eb565b82356001600160401b03811161153557820190610160828903601f190112611535576040519161299e83613393565b6020810135835260408101356001600160401b038111611535578960206129c7928401016133eb565b60208401526129d8606082016132eb565b60408401526080810135606084015260a08101356001600160801b038116810361153557608084015260c08101356001600160401b03811161153557896020612a23928401016133eb565b60a084015260e08101356001600160401b03811161153557896020612a4a928401016133eb565b60c08401526101008101356001600160401b0381116115355760209082010189601f82011215611535578035612a7f81613720565b91612a8d60405193846133af565b81835260208084019260051b820101918c83116115355760208201905b838210612b8d575050505060e08401526101208101356001600160401b0381116115355760209082010189601f8201121561153557803590612aeb82613720565b91612af960405193846133af565b80835260208084019160051b830101918c831161153557602001905b828210612b7557505050610100840152610140810135906001600160401b03821161153557612b4c8a6020610160948401016133eb565b610120850152013590811515820361153557826020939261014085940152815201920191612889565b60208091612b82846132eb565b815201910190612b15565b81356001600160401b038111611535576020918f612bb0908480948801016133eb565b815201910190612aaa565b3461153557602080612bcc366134db565b929160018060a01b03165f526009825260405f2083604051948593843782019081520301902054604051908152f35b346115355760206115c381612c0f36613477565b959192604094919451928184925191829101835e8101600c8152030190209060018060a01b03165f5260205260405f209061342f565b346115355760a0366003190112611535576004356001600160401b03811161153557612c75903690600401613099565b612c7d6132bf565b906020612c886130c6565b93826040519384928337810160038152030190209060018060a01b03165f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110612ce45761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201612cc6565b34611535576060366003190112611535576004356001600160401b03811161153557612d2a9036906004016133eb565b612d326132bf565b604051825160443593602091839181908401835e810160038152030190209060018060a01b03165f5260205260405f208054821015611535576020916102ac9161344e565b346115355760a0366003190112611535576004356001600160401b03811161153557612da79036906004016133eb565b612daf6132bf565b6044356001600160401b03811161153557612dce9036906004016133eb565b906064356001600160401b038111611535576115c392612df561250d9236906004016133eb565b9260208060843597604051928184925191829101835e8101600e8152030190209060018060a01b03165f5260205260405f209061342f565b34611535576040366003190112611535576004356001600160401b03811161153557612e5d903690600401613099565b6024356001600160401b038111611535576020928392612e8284933690600401613099565b9490928260405193849283378101600881520301902083604051948593843782019081520301902054604051908152f35b34611535576020366003190112611535576004355f526001602052602060ff60405f2054166040519015158152f35b346115355760208080612ef4366132ff565b9590938360409493945193849283378101600c8152030190209060018060a01b03165f52825260405f2083604051948593843782019081520301902054604051908152f35b3461153557608036600319011261153557612f526132a9565b6064359081151582036115355760018060a01b03165f52600460205260405f206040519081602082549182815201915f5260205f20905f5b818110612fb55761165761164361163e8888612fa8818a03826133af565b604435906024359061387f565b8254845260209093019260019283019201612f8a565b346115355760a0366003190112611535576004356001600160401b03811161153557612ffb903690600401613099565b602492919235906001600160401b0382116115355782602061302281943690600401613099565b9590938061302e6130c6565b988337810160088152030190208360405194859384378201908152030190206040519081602082549182815201915f5260205f20905f5b8181106130835761165761164361163e88886117c6818a03826133af565b8254845260209093019260019283019201613065565b9181601f84011215611535578235916001600160401b038311611535576020838186019501011161153557565b60843590811515820361153557565b60a43590811515820361153557565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b908151815261318161316f61312e602085015161016060208601526101608501906130e4565b60018060a01b036040860151166040850152606085015160608501526001600160801b03608086015116608085015260a085015184820360a08601526130e4565b60c084015183820360c08501526130e4565b60e08301519082810360e0840152815180825260208201916020808360051b8301019401925f915b83831061322457505050505061010083015190828103610100840152602080835192838152019201905f5b818110613205575050506101406131fa81926101208601518582036101208701526130e4565b930151151591015290565b82516001600160a01b03168452602093840193909201916001016131d4565b9091929394602080613242600193601f1986820301875289516130e4565b970193019301919392906131a9565b9080602083519182815201916020808360051b8301019401925f915b83831061327c57505050505090565b909192939460208061329a600193601f198682030187528951613108565b9701930193019193929061326d565b600435906001600160a01b038216820361153557565b602435906001600160a01b038216820361153557565b604435906001600160a01b038216820361153557565b35906001600160a01b038216820361153557565b906060600319830112611535576004356001600160401b038111611535578261332a91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761336091600401613099565b9091565b604081019081106001600160401b0382111761337f57604052565b634e487b7160e01b5f52604160045260245ffd5b61016081019081106001600160401b0382111761337f57604052565b90601f801991011681019081106001600160401b0382111761337f57604052565b6001600160401b03811161337f57601f01601f191660200190565b81601f8201121561153557602081359101613405826133d0565b9261341360405194856133af565b8284528282011161153557815f92602092838601378301015290565b6040518151909260209284929081908501845e82019081520301902090565b8054821015613463575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6080600319820112611535576004356001600160401b03811161153557816134a1916004016133eb565b916024356001600160a01b03811681036115355791604435906001600160401b038211611535576134d4916004016133eb565b9060643590565b906040600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b0382116115355761336091600401613099565b906060600319830112611535576004356001600160a01b03811681036115355791602435906001600160401b03821161153557613559916004016133eb565b9060443590565b608060031982011261153557600435906001600160401b0382116115355761358a91600401613099565b9091602435906044359060643580151581036115355790565b604060031982011261153557600435906001600160401b038211611535576135cd916004016133eb565b9060243590565b9060c0600319830112611535576004356001600160401b03811161153557826135ff91600401613099565b909290916024356001600160a01b03811681036115355791604435906001600160401b0382116115355761363591600401613099565b9091606435906084359060a43580151581036115355790565b90600182811c9216801561367c575b602083101461366857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161365d565b5f92918154916136958361364e565b80835292600181169081156136ea57506001146136b157505050565b5f9081526020812093945091925b8383106136d0575060209250010190565b6001816020929493945483858701015201910191906136bf565b915050602093945060ff929192191683830152151560051b010190565b6040519061371482613364565b60606020838281520152565b6001600160401b03811161337f5760051b60200190565b6040519061374482613393565b5f6101408382815260606020820152826040820152826060820152826080820152606060a0820152606060c0820152606060e0820152606061010082015260606101208201520152565b9035601e19823603018112156115355701602081359101916001600160401b03821161153557813603831361153557565b908060209392818452848401375f828201840152601f01601f1916010190565b9035601e19823603018112156115355701602081359101916001600160401b038211611535578160051b3603831361153557565b81601f820112156115355760208151910161382d826133d0565b9261383b60405194856133af565b8284528282011161153557815f926020928386015e8301015290565b51906001600160a01b038216820361153557565b80518210156134635760209160051b010190565b9081518015613929578082101561391b578382018110613911575b6138a384613720565b946138b160405196876133af565b848652601f196138c086613720565b013660208801375f5b8581106138d95750505050505090565b6001908215613906576138f485820185035f19015b8761386b565b516138ff828a61386b565b52016138c9565b6138f48186016138ee565b818103935061389a565b62ed0ab960e11b5f5260045ffd5b505050505060405161393c6020826133af565b5f81525f36813790565b90815161395281613720565b9061396060405192836133af565b80825261396f601f1991613720565b015f5b818110613b385750505f5b8351811015613b3357613990818561386b565b515f525f60205260405f20604051906139a882613393565b805482526040516139c081611e868160018601613686565b602083015260028101546001600160a01b03166040808401919091526003820154606084015260048201546001600160801b0316608084015251613a0b81611e868160058601613686565b60a0830152604051613a2481611e868160068601613686565b60c0830152600781018054613a3881613720565b91613a4660405193846133af565b81835260208301905f5260205f20905f905b838210613b0e575050505060e0830152600881016040519081602082549182815201915f5260205f20905f905b808210613aec57505050600194939282613aa560ff94600a9403826133af565b610100850152604051613abf81611e868160098601613686565b6101208501520154161515610140820152613ada828561386b565b52613ae5818461386b565b500161397d565b82546001600160a01b0316845260209093019260019283019290910190613a85565b600160208192604051613b2581611e86818a613686565b815201930191019091613a58565b509150565b602090613b43613737565b82828601015201613972565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613c99575b806d04ee2d6d415b85acef8100000000600a921015613c7e575b662386f26fc10000811015613c6a575b6305f5e100811015613c59575b612710811015613c4a575b6064811015613c3c575b1015613c31575b600a60216001840193613bd6856133d0565b94613be460405196876133af565b808652613bf3601f19916133d0565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015613c2c57600a9091613bfe565b505090565b600190910190613bc4565b606460029104930192613bbd565b61271060049104930192613bb3565b6305f5e10060089104930192613ba8565b662386f26fc1000060109104930192613b9b565b6d04ee2d6d415b85acef810000000060209104930192613b8b565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613b71565b818110613cc7575050565b5f8155600101613cbc565b9190601f8111613ce157505050565b613d0b925f5260205f20906020601f840160051c83019310613d0d575b601f0160051c0190613cbc565b565b9091508190613cfe565b8054600160401b81101561337f57613d349160018201815561344e565b819291549060031b91821b915f19901b191617905556fea26469706673582212200dcd11dd9c0889f6269f03425a6fabc2d6a5ddeb54a7b2de7311f51ea199868364736f6c634300081b0033","sourceMap":"697:23375:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;-1:-1:-1;;;;;697:23375:97;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1213:47;697:23375;;;;;;;;;1213:47;;;;;697:23375;1213:47;;;;:::i;:::-;697:23375;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1337:112;697:23375;;;;;;1337:112;697:23375;;;;;;-1:-1:-1;697:23375:97;;;;-1:-1:-1;697:23375:97;1337:112;697:23375;;;;;;-1:-1:-1;697:23375:97;;;;-1:-1:-1;697:23375:97;;;;1337:112;;;;;697:23375;1337:112;;;;:::i;697:23375::-;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;3014:15;697:23375;-1:-1:-1;;;;;697:23375:97;;3014:49;;;;;697:23375;;;;;;3014:49;;697:23375;;3014:49;;697:23375;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3014:49;;;;;;;;;;697:23375;3113:30;697:23375;;:::i;:::-;-1:-1:-1;697:23375:97;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;-1:-1:-1;;;3157:44:97;;697:23375;;3157:44;;697:23375;;;;;;;;;;;;;;;;:::i;:::-;3157:44;:4;;:44;;;;;;;697:23375;-1:-1:-1;3153:208:97;;-1:-1:-1;;;3327:23:97;;697:23375;3327:23;;3153:208;;3375:13;;697:23375;3375:25;:57;;;3153:208;3371:105;;3532:13;;697:23375;;;3528:105;;3153:208;3646:16;;;697:23375;3646:16;;697:23375;;3642:94;;697:23375;;;3642:94;7159:13;7196:19;697:23375;;7174:20;;;;;7244:12;;;;:::i;:::-;697:23375;;;;;;;;;;;;;7469:21;7465:78;;697:23375;;;;;;;7557:23;697:23375;;;7557:23;697:23375;;7553:82;;697:23375;;;;;;;;;7557:23;697:23375;;;7672:23;697:23375;;;;;;;;;7718:21;;;;697:23375;7159:13;;7553:82;-1:-1:-1;;;7603:21:97;;697:23375;7603:21;;7465:78;-1:-1:-1;;;7513:19:97;;697:23375;8406:19;7513;7174:20;;;697:23375;;3528:105;697:23375;;6670:13;6705:19;697:23375;;6685:18;;;;;697:23375;;6823:49;697:23375;6823:49;;697:23375;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;6823:49;;;697:23375;6823:49;;:::i;:::-;697:23375;;;;;;;;;6705:19;6940:10;;;;;:::i;:::-;;697:23375;;;4246:87;;697:23375;;;;;;;;;;;;;;;4428:78;;4520:14;;;697:23375;;;4516:78;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;697:23375:97;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4702:13;697:23375;;;;;;;;;4702:13;697:23375;4726:45;4742:14;697:23375;4742:14;;;697:23375;;;;;;;;;;;;;;;;;;;;;;4726:45;:::i;:::-;697:23375;4808:14;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;-1:-1:-1;697:23375:97;;;;;;;;;;;4781:81;;697:23375;;4781:81;:::i;:::-;4872:44;4885:16;697:23375;4885:16;;;697:23375;;;;;;;;;;;;;;;;;;;;;;4872:44;:::i;:::-;697:23375;4960:14;;;697:23375;;;;;;;;;;;;;;;4926:33;697:23375;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:97;;;4926:106;697:23375;;;-1:-1:-1;697:23375:97;5001:16;;697:23375;:::i;:::-;4926:106;:::i;:::-;5073:13;5112:19;5092:11;;697:23375;;5088:22;;;;;5167:14;;;;;:::i;:::-;;697:23375;;;;;;;;;;;;;;;;;;;;;;5195:30;;;;:::i;:::-;5258:16;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5239:55;;;;:::i;:::-;5341:14;;697:23375;;;;;;;;;;;;5308:32;697:23375;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;-1:-1:-1;697:23375:97;;;;;;;;;;;;;;:::i;:::-;5308:92;;;;:::i;:::-;5454:14;;697:23375;;;;;;;;;;;;5414:39;697:23375;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;-1:-1:-1;697:23375:97;;;;;;;;5495:16;;697:23375;;;;:::i;:::-;;;;:::i;:::-;5414:147;;;;:::i;:::-;697:23375;;5073:13;;5088:22;;;;;;;;;5626:13;5621:716;5678:19;5645:24;;697:23375;;5641:35;;;;;-1:-1:-1;;;;;697:23375:97;5728:27;;697:23375;;5728:27;:::i;:::-;697:23375;;;;;;;;;5769:35;697:23375;;;;5769:35;:::i;:::-;697:23375;;;;;;5818:60;697:23375;;;;;5847:16;;697:23375;:::i;5818:60::-;697:23375;5929:14;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;-1:-1:-1;697:23375:97;;;;;;;;;;;;;;;;;;;;;;5892:97;;697:23375;;5892:97;:::i;:::-;6077:13;6116:19;6096:11;;697:23375;6092:22;;;;;697:23375;6230:82;697:23375;;;6283:14;697:23375;;;;;;;;;;;;;;;;6155:57;697:23375;;;;;6183:14;:11;;;:14;:::i;:::-;;697:23375;:::i;6155:57::-;697:23375;;6230:28;697:23375;;;6265:16;;697:23375;:::i;:::-;6283:11;;:14;:::i;6230:82::-;697:23375;6077:13;;6092:22;-1:-1:-1;697:23375:97;;;;;6092:22;-1:-1:-1;5626:13:97;;5641:35;;;;;;;697:23375;5641:35;;;;;;;;;697:23375;;;;;;;;6399:16;;6417:24;;6443:11;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6352:103;;;;;;;;697:23375;6352:103;;;;;;;;697:23375;6670:13;;;;;;;697:23375;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;4516:78;-1:-1:-1;;;4557:26:97;;697:23375;4557:26;;4428:78;-1:-1:-1;;;4475:20:97;;697:23375;;4475:20;4246:87;-1:-1:-1;;;4301:21:97;;697:23375;;4301:21;697:23375;;;;;;;;;;;;;;;;;6685:18;;;;697:23375;6685:18;;3528:105;;;;;3371;-1:-1:-1;;;3455:10:97;;697:23375;3455:10;;3375:57;3404:16;697:23375;3404:16;;;697:23375;3404:28;3375:57;;3157:44;;;;;;;;;;;;;:::i;:::-;;;697:23375;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3157:44;;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3014:49;;;;;697:23375;3014:49;;:::i;:::-;697:23375;3014:49;;;;;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1534:78;697:23375;;;;;;;:::i;:::-;;;1534:78;;;;;697:23375;1534:78;;;;:::i;697:23375::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11085:12;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11156:25;11074:64;697:23375;;;;;;;;;;:::i;:::-;11074:64;:::i;:::-;11156:25;:::i;:::-;697:23375;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;956:51;697:23375;;;;;;;;956:51;;;;;697:23375;956:51;;;;:::i;697:23375::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1455:73;697:23375;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;14130:22;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14217:25;14119:80;697:23375;;;;;;;;:::i;:::-;;;;;;14119:80;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19744:11;697:23375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;21141:33;697:23375;;;;;;21141:53;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;20029:36;697:23375;;;;;;20029:56;697:23375;;;;;;;;;;;;;20029:62;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;;;;;;;;798:46;697:23375;798:46;697:23375;798:46;697:23375;798:46;;697:23375;:::i;:::-;;;;:::i;:::-;;;;;;;798:46;;;697:23375;;;798:46;;;697:23375;798:46;-1:-1:-1;;;;;697:23375:97;798:46;;697:23375;;;;798:46;697:23375;798:46;697:23375;798:46;;;;697:23375;:::i;:::-;;;;:::i;:::-;;;798:46;697:23375;798:46;697:23375;798:46;;;;697:23375;:::i;:::-;;;;:::i;:::-;;;798:46;697:23375;;798:46;697:23375;798:46;697:23375;798:46;;;;697:23375;:::i;:::-;;;;:::i;:::-;798:46;697:23375;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;17539:28;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17637:25;17528:91;697:23375;;;;;;;;:::i;:::-;;;;;;17528:91;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;2208:26;697:23375;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;;;;;8083:47;;;697:23375;;;;;;;;;;;8083:47;697:23375;;;;;;;;8107:23;697:23375;;;8107:23;697:23375;;8083:47;;697:23375;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;12570:36;697:23375;;;;;;12570:56;697:23375;;;;;;;;;;;;;12570:62;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12680:25;12559:103;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;16654:32;697:23375;;;;;;16654:52;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16759:25;16643:98;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;15753:33;697:23375;;;;;;15753:53;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15865:25;15742:105;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11711:11;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11775:25;11700:57;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8362:21;8358:78;;697:23375;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;8358:78;8406:19;;;697:23375;8406:19;697:23375;;8406:19;697:23375;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1159:48;697:23375;;;;;;;;1159:48;;;;;697:23375;1159:48;;;;:::i;697:23375::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1701:108;697:23375;;;;;;1701:108;697:23375;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;22177:39;697:23375;;;;;;22177:59;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;:::i;:::-;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;1101:52;;;;;697:23375;1101:52;;;;:::i;697:23375::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18529:39;697:23375;;;;;;18529:59;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18661:25;18505:138;697:23375;;;;;;;;:::i;:::-;;;;;;18505:138;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;20833:21;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;697:23375:97;;;;;;;14863:21;697:23375;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14943:25;14852:73;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19552:12;697:23375;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;9019:15;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9091:25;9008:65;697:23375;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;697:23375:97;;;;;;;1928:103;697:23375;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:97;;;;;1055:104:4;;697:23375:97;1072:24:4;1089:6;1072:24;:::i;:::-;1120:6;;1103:24;1120:6;1103:24;:::i;:::-;1151:6;;1134:24;1151:6;1134:24;:::i;:::-;697:23375:97;;;;;;;;;;;;1055:104:4;;;697:23375:97;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;1055:104:4;;697:23375:97;;1055:104:4;;;;;;:::i;:::-;697:23375:97;;;;;1055:104:4;697:23375:97;;1055:104:4;697:23375:97;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18911:15;697:23375;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;19137:26;697:23375;;;;;;19137:46;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;24047:15;697:23375;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;21808:28;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1618:77;697:23375;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;3928:38;;697:23375;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;20585:22;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1815:107;697:23375;;;;;;1815:107;697:23375;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;9785:26;697:23375;;;;;;9785:46;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9879:25;9774:87;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1013:82;697:23375;;;;;;1013:82;697:23375;;;;;;;;;;;;;;;1013:82;;;;;697:23375;1013:82;;;;:::i;697:23375::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2037:141;697:23375;;;;;;2037:141;697:23375;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;20334:18;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;21473:32;697:23375;;;;;;21473:52;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10509:25;10429:62;697:23375;;;;;;;;:::i;:::-;;;;;;10429:62;;:::i;697:23375::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;13361:18;697:23375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13443:25;13350:75;697:23375;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;-1:-1:-1;;697:23375:97;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;697:23375:97;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;697:23375:97;;;;;;:::o;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;:::o;:::-;;;-1:-1:-1;;697:23375:97;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;:::o;:::-;;;;-1:-1:-1;697:23375:97;;;;;-1:-1:-1;697:23375:97;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;:::o;:::-;-1:-1:-1;;;;;697:23375:97;;;;;;-1:-1:-1;;697:23375:97;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;697:23375:97;;-1:-1:-1;697:23375:97;;;-1:-1:-1;697:23375:97;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;697:23375:97;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;-1:-1:-1;;697:23375:97;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::i;:::-;;;-1:-1:-1;;697:23375:97;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;;697:23375:97;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;697:23375:97;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;-1:-1:-1;;697:23375:97;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;697:23375:97;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;697:23375:97;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;-1:-1:-1;;697:23375:97;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;697:23375:97;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;697:23375:97;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;22392:771::-;;697:23375;;22610:15;;22606:69;;22689:19;;;;22685:72;;22791:20;697:23375;;22829:27;;22825:90;;22392:771;697:23375;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;697:23375:97;;;:::i;:::-;;;;;;;22624:1;23005:7;;;;;;23136:10;;;;;;22392:771;:::o;23014:3::-;697:23375;;23051:55;;;;23046:61;697:23375;;;;;-1:-1:-1;;697:23375:97;23051:55;23046:61;;:::i;:::-;697:23375;23037:70;;;;:::i;:::-;697:23375;;22990:13;;23051:55;23046:61;697:23375;;;23051:55;;22825:90;697:23375;;;;-1:-1:-1;22825:90:97;;22685:72;22731:15;;;22624:1;22731:15;;22624:1;22731:15;22606:69;697:23375;;;;;;;;;;;:::i;:::-;22624:1;697:23375;;22624:1;697:23375;;;22641:23;:::o;23228:333::-;;697:23375;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;697:23375:97;;;;;;23418:13;;-1:-1:-1;23454:19:97;697:23375;;23433:19;;;;;23508:11;;;;:::i;:::-;697:23375;-1:-1:-1;697:23375:97;-1:-1:-1;697:23375:97;;;-1:-1:-1;697:23375:97;;;;;;;:::i;:::-;;;;;;;;;;;1489:1:0;697:23375:97;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;697:23375:97;;-1:-1:-1;697:23375:97;;-1:-1:-1;697:23375:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:23375:97;;-1:-1:-1;697:23375:97;;-1:-1:-1;697:23375:97;;;;;;;;;;1489:1:0;697:23375:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;23489:31;;;;:::i;:::-;;;;;;:::i;:::-;;697:23375;23418:13;;697:23375;;;-1:-1:-1;;;;;697:23375:97;;;;;;;;1489:1:0;697:23375:97;;;;;;;;;;;1489:1:0;697:23375:97;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;23433:19;-1:-1:-1;23433:19:97;-1:-1:-1;23228:333:97:o;697:23375::-;;;;;:::i;:::-;;;;;;;;;;1308:634:52;1430:17;-1:-1:-1;29282:17:61;-1:-1:-1;;;29282:17:61;;;29278:103;;1308:634:52;29398:17:61;29407:8;29978:7;29398:17;;;29394:103;;1308:634:52;29523:8:61;29514:17;;;29510:103;;1308:634:52;29639:7:61;29630:16;;;29626:100;;1308:634:52;29752:7:61;29743:16;;;29739:100;;1308:634:52;29865:7:61;29856:16;;;29852:100;;1308:634:52;29969:16:61;;29965:66;;1308:634:52;29978:7:61;1545:94:52;1450:1;697:23375:97;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1545:94:52;;;1652:247;-1:-1:-1;;697:23375:97;;-1:-1:-1;;;1706:111:52;;;;697:23375:97;1706:111:52;697:23375:97;1867:10:52;;1863:21;;29978:7:61;1652:247:52;;;;1863:21;1879:5;;1308:634;:::o;29965:66:61:-;30015:1;697:23375:97;;;;29965:66:61;;29852:100;29865:7;29936:1;697:23375:97;;;;29852:100:61;;;29739;29752:7;29823:1;697:23375:97;;;;29739:100:61;;;29626;29639:7;29710:1;697:23375:97;;;;29626:100:61;;;29510:103;29523:8;29596:2;697:23375:97;;;;29510:103:61;;;29394;29407:8;29480:2;697:23375:97;;;;29394:103:61;;;29278;-1:-1:-1;29364:2:61;;-1:-1:-1;;;;697:23375:97;;29278:103:61;;697:23375:97;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;697:23375:97;;-1:-1:-1;697:23375:97;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;697:23375:97;;;;;;;-1:-1:-1;;;697:23375:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{},"immutableReferences":{"446":[{"start":9522,"length":32}],"448":[{"start":9565,"length":32}],"450":[{"start":9608,"length":32}]}},"methodIdentifiers":{"decodeIndexingPayload(bytes)":"309c2ccc","eventExists(bytes32)":"118e58bd","eventExistsAndDeleted(bytes32)":"b682a1b6","events(bytes32)":"bfdc4a61","eventsByAddress(address,uint256)":"8835aec1","eventsByAddressAndTag(address,string,uint256)":"3a363314","eventsByAddressAndType(address,string,uint256)":"ec880f6f","eventsByAddressAndTypeAndTag(address,string,string,uint256)":"550edfe2","eventsByChainId(string,uint256)":"e8c79369","eventsByChainIdAndContract(string,address,uint256)":"21950302","eventsByChainIdAndContractAndAddress(string,address,address,uint256)":"f99417bf","eventsByChainIdAndContractAndTag(string,address,string,uint256)":"2a2f9912","eventsByChainIdAndContractAndType(string,address,string,uint256)":"8a1761e3","eventsByChainIdAndContractAndTypeAndTag(string,address,string,string,uint256)":"1fb294da","eventsByTag(string,uint256)":"fabbcab3","eventsByType(string,uint256)":"8a733630","eventsByTypeAndTag(string,string,uint256)":"e80fb963","getEvent(bytes32)":"8c172fa2","getEventCountByAddress(address)":"fbea4e6d","getEventCountByAddressAndTag(address,string)":"832d2fe6","getEventCountByAddressAndType(address,string)":"2e582028","getEventCountByAddressAndTypeAndTag(address,string,string)":"3aa19a9f","getEventCountByChainId(string)":"511c20ba","getEventCountByContract(string,address)":"50f5fa84","getEventCountByContractAndAddress(string,address,address)":"c3014d58","getEventCountByContractAndTag(string,address,string)":"10605957","getEventCountByContractAndType(string,address,string)":"d428fbe3","getEventCountByContractAndTypeAndTag(string,address,string,string)":"8981482f","getEventCountByTag(string)":"da358da2","getEventCountByType(string)":"6cf1df2c","getEventCountByTypeAndTag(string,string)":"1eaf27b1","getEventsByAddress(address,uint256,uint256,bool)":"0c9fdf28","getEventsByAddressAndTag(address,string,uint256,uint256,bool)":"80bec780","getEventsByAddressAndType(address,string,uint256,uint256,bool)":"dac1fe55","getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)":"baf19b23","getEventsByChainId(string,uint256,uint256,bool)":"60742b14","getEventsByContract(string,address,uint256,uint256,bool)":"2410d641","getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)":"b5a0827c","getEventsByContractAndTag(string,address,string,uint256,uint256,bool)":"9d4e06ac","getEventsByContractAndType(string,address,string,uint256,uint256,bool)":"928f9df5","getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)":"850b9db6","getEventsByTag(string,uint256,uint256,bool)":"8d6685d2","getEventsByType(string,uint256,uint256,bool)":"ea9f2c86","getEventsByTypeAndTag(string,string,uint256,uint256,bool)":"01bc6441","getServiceManager()":"4dda0b43","handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":"f969ff33","totalEvents()":"ba870686","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IWavsServiceManager\",\"name\":\"serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotCreateDeletedEvent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventAlreadyDeleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EventDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedEventIdZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOffset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidServiceManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEvents\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PayloadDecodingFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"}],\"name\":\"EventDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"}],\"name\":\"EventIndexed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"decodeIndexingPayload\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"toAdd\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"toDelete\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct IWavsIndexer.IndexingPayload\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"eventExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"}],\"name\":\"eventExistsAndDeleted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"events\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddressAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddressAndType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByAddressAndTypeAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContract\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByChainIdAndContractAndTypeAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eventsByTypeAndTag\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"}],\"name\":\"getEvent\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEventCountByAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByAddressAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"}],\"name\":\"getEventCountByAddressAndType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByAddressAndTypeAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"}],\"name\":\"getEventCountByChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"}],\"name\":\"getEventCountByContract\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEventCountByContractAndAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByContractAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"}],\"name\":\"getEventCountByContractAndType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByContractAndTypeAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"}],\"name\":\"getEventCountByType\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"}],\"name\":\"getEventCountByTypeAndTag\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddress\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddressAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddressAndType\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByAddressAndTypeAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByChainId\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContract\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndAddress\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndType\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"contract_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByContractAndTypeAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByType\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tag\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reverseOrder\",\"type\":\"bool\"}],\"name\":\"getEventsByTypeAndTag\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"eventId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"chainId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"relevantContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"string\",\"name\":\"eventType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"relevantAddresses\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"internalType\":\"struct IWavsIndexer.IndexedEvent[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getServiceManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes20\",\"name\":\"eventId\",\"type\":\"bytes20\"},{\"internalType\":\"bytes12\",\"name\":\"ordering\",\"type\":\"bytes12\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct IWavsServiceHandler.Envelope\",\"name\":\"envelope\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlock\",\"type\":\"uint32\"}],\"internalType\":\"struct IWavsServiceHandler.SignatureData\",\"name\":\"signatureData\",\"type\":\"tuple\"}],\"name\":\"handleSignedEnvelope\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEvents\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Integrates with WAVS to receive indexed data from off-chain components\",\"events\":{\"EventDeleted(bytes32)\":{\"params\":{\"eventId\":\"The unique identifier of the deleted event\"}},\"EventIndexed(bytes32,address,string,address[],string[])\":{\"params\":{\"eventId\":\"The unique identifier of the indexed event\",\"eventType\":\"The type/signature of the event\",\"relevantAddresses\":\"Addresses relevant to this event\",\"relevantContract\":\"The relevant contract for the event\",\"tags\":\"Searchable tags for this event\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"serviceManager\":\"The WAVS service manager contract\"}},\"eventExistsAndDeleted(bytes32)\":{\"params\":{\"eventId\":\"The ID of the event to check\"},\"returns\":{\"_0\":\"true if the event exists and is deleted, false otherwise\"}},\"getEvent(bytes32)\":{\"params\":{\"eventId\":\"The ID of the event to get\"},\"returns\":{\"_0\":\"The event\"}},\"getEventsByAddress(address,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByAddressAndTag(address,string,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByAddressAndType(address,string,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByChainId(string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContract(string,address,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)\":{\"params\":{\"addr\":\"The address to filter by\",\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndType(string,address,string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)\":{\"params\":{\"chainId\":\"The chain ID of the contract to filter by\",\"contract_\":\"The contract to filter by\",\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByTag(string,uint256,uint256,bool)\":{\"params\":{\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByType(string,uint256,uint256,bool)\":{\"params\":{\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"getEventsByTypeAndTag(string,string,uint256,uint256,bool)\":{\"params\":{\"eventType\":\"The event type to filter by\",\"length\":\"The number of events to retrieve\",\"reverseOrder\":\"Whether to return in reverse chronological order\",\"start\":\"The offset to start from\",\"tag\":\"The tag to filter by\"},\"returns\":{\"_0\":\"Array of IndexedEvent structs\"}},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"params\":{\"envelope\":\"The envelope containing the data.\",\"signatureData\":\"The signature data.\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a string.\"}}},\"title\":\"WavsIndexer\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidServiceManager()\":[{\"notice\":\"================================================ ERRORS ================================================\"}]},\"events\":{\"EventDeleted(bytes32)\":{\"notice\":\"Emitted when an event has been deleted\"},\"EventIndexed(bytes32,address,string,address[],string[])\":{\"notice\":\"Emitted when an event has been indexed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Creates a new WavsIndexer instance\"},\"decodeIndexingPayload(bytes)\":{\"notice\":\"Helper function for decoding IndexingPayload\"},\"eventExistsAndDeleted(bytes32)\":{\"notice\":\"Checks whether an event exists and is deleted\"},\"getEvent(bytes32)\":{\"notice\":\"Gets an event by ID\"},\"getEventCountByAddress(address)\":{\"notice\":\"Gets total number of events by contract\"},\"getEventCountByAddressAndTag(address,string)\":{\"notice\":\"Gets total number of events for an address and tag\"},\"getEventCountByAddressAndType(address,string)\":{\"notice\":\"Gets total number of events for an address and type\"},\"getEventCountByAddressAndTypeAndTag(address,string,string)\":{\"notice\":\"Gets total number of events for an address, type, and tag\"},\"getEventCountByChainId(string)\":{\"notice\":\"Gets total number of events by chain ID\"},\"getEventCountByContract(string,address)\":{\"notice\":\"Gets total number of events by contract\"},\"getEventCountByContractAndAddress(string,address,address)\":{\"notice\":\"Gets total number of events for a contract and address\"},\"getEventCountByContractAndTag(string,address,string)\":{\"notice\":\"Gets total number of events for a contract and tag\"},\"getEventCountByContractAndType(string,address,string)\":{\"notice\":\"Gets total number of events for a contract and type\"},\"getEventCountByContractAndTypeAndTag(string,address,string,string)\":{\"notice\":\"Gets total number of events for a contract, type, and tag\"},\"getEventCountByTag(string)\":{\"notice\":\"Gets total number of events by tag\"},\"getEventCountByType(string)\":{\"notice\":\"Gets total number of events by type\"},\"getEventCountByTypeAndTag(string,string)\":{\"notice\":\"Gets total number of events for a type and tag\"},\"getEventsByAddress(address,uint256,uint256,bool)\":{\"notice\":\"Gets events by address\"},\"getEventsByAddressAndTag(address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by address and tag combination\"},\"getEventsByAddressAndType(address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by address and type combination\"},\"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by address, type, and tag combination\"},\"getEventsByChainId(string,uint256,uint256,bool)\":{\"notice\":\"Gets events by chain ID\"},\"getEventsByContract(string,address,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract\"},\"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract and address combination\"},\"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract and tag combination\"},\"getEventsByContractAndType(string,address,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract and type combination\"},\"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by contract, type, and tag combination\"},\"getEventsByTag(string,uint256,uint256,bool)\":{\"notice\":\"Gets events by tag\"},\"getEventsByType(string,uint256,uint256,bool)\":{\"notice\":\"Gets events by type\"},\"getEventsByTypeAndTag(string,string,uint256,uint256,bool)\":{\"notice\":\"Gets events by type and tag combination\"},\"getServiceManager()\":{\"notice\":\"Gets the service manager address\"},\"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))\":{\"notice\":\"Handles signed envelope from WAVS containing indexing data\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"An indexing service for arbitrary blockchain events and data running on WAVS\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/wavs/WavsIndexer.sol\":\"WavsIndexer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/\",\":@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/\",\":@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/\",\":@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/\",\":@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/\",\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@wavs/=node_modules/@wavs/solidity/contracts/\",\":common/=src/common/\",\":contracts/=src/contracts/\",\":forge-std/=node_modules/forge-std/src/\",\":interfaces/=src/interfaces/\"],\"viaIR\":true},\"sources\":{\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol\":{\"keccak256\":\"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d\",\"dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol\":{\"keccak256\":\"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0\",\"dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6\"]},\"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol\":{\"keccak256\":\"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808\",\"dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol\":{\"keccak256\":\"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a\",\"dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef\"]},\"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol\":{\"keccak256\":\"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1\",\"dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn\"]},\"src/contracts/wavs/WavsIndexer.sol\":{\"keccak256\":\"0xe9b16bc43ed80690e9fc201d62479db9612da0051e66147797f6ef4614430615\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d368a3d09bed2bebd6bd399793d41f5a5132c65e43846a882fee42cb5db12484\",\"dweb:/ipfs/QmYa5JWpaxjftQdXwwBFE1yL4htmivcK6cLj8YGA9KBpcZ\"]},\"src/interfaces/IWavsIndexer.sol\":{\"keccak256\":\"0x03b8cb934c668ed6a21f0111294f16dff402654ea3a4cc1c12a25409cd62798e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aace429ad2249603c218ca2c1768e81f7a66f43779e58d3de6d6a4e921c7261a\",\"dweb:/ipfs/QmdhN2QWAFWNc8Yg1NjbPTvS5U6XHdiBxXvjRoPN3CeTDq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IWavsServiceManager","name":"serviceManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CannotCreateDeletedEvent"},{"inputs":[],"type":"error","name":"EventAlreadyDeleted"},{"inputs":[],"type":"error","name":"EventAlreadyExists"},{"inputs":[],"type":"error","name":"EventDoesNotExist"},{"inputs":[],"type":"error","name":"ExpectedEventIdZero"},{"inputs":[],"type":"error","name":"InvalidOffset"},{"inputs":[],"type":"error","name":"InvalidServiceManager"},{"inputs":[],"type":"error","name":"NoEvents"},{"inputs":[],"type":"error","name":"PayloadDecodingFailed"},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32","indexed":true}],"type":"event","name":"EventDeleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32","indexed":true},{"internalType":"address","name":"relevantContract","type":"address","indexed":true},{"internalType":"string","name":"eventType","type":"string","indexed":true},{"internalType":"address[]","name":"relevantAddresses","type":"address[]","indexed":false},{"internalType":"string[]","name":"tags","type":"string[]","indexed":false}],"type":"event","name":"EventIndexed","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decodeIndexingPayload","outputs":[{"internalType":"struct IWavsIndexer.IndexingPayload","name":"","type":"tuple","components":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"toAdd","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]},{"internalType":"bytes32[]","name":"toDelete","type":"bytes32[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"eventExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"eventExistsAndDeleted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"events","outputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddress","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddressAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddressAndType","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByAddressAndTypeAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContract","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndAddress","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndType","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByChainIdAndContractAndTypeAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByType","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eventsByTypeAndTag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"eventId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getEvent","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEventCountByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByAddressAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByAddressAndType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByAddressAndTypeAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"}],"stateMutability":"view","type":"function","name":"getEventCountByContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByContractAndTypeAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"}],"stateMutability":"view","type":"function","name":"getEventCountByTypeAndTag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddress","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddressAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddressAndType","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByAddressAndTypeAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByChainId","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContract","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndAddress","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndType","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"contract_","type":"address"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByContractAndTypeAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByType","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"eventType","type":"string"},{"internalType":"string","name":"tag","type":"string"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"reverseOrder","type":"bool"}],"stateMutability":"view","type":"function","name":"getEventsByTypeAndTag","outputs":[{"internalType":"struct IWavsIndexer.IndexedEvent[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"eventId","type":"bytes32"},{"internalType":"string","name":"chainId","type":"string"},{"internalType":"address","name":"relevantContract","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"string","name":"eventType","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string[]","name":"tags","type":"string[]"},{"internalType":"address[]","name":"relevantAddresses","type":"address[]"},{"internalType":"bytes","name":"metadata","type":"bytes"},{"internalType":"bool","name":"deleted","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getServiceManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IWavsServiceHandler.Envelope","name":"envelope","type":"tuple","components":[{"internalType":"bytes20","name":"eventId","type":"bytes20"},{"internalType":"bytes12","name":"ordering","type":"bytes12"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"struct IWavsServiceHandler.SignatureData","name":"signatureData","type":"tuple","components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"},{"internalType":"uint32","name":"referenceBlock","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"handleSignedEnvelope"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEvents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"serviceManager":"The WAVS service manager contract"}},"eventExistsAndDeleted(bytes32)":{"params":{"eventId":"The ID of the event to check"},"returns":{"_0":"true if the event exists and is deleted, false otherwise"}},"getEvent(bytes32)":{"params":{"eventId":"The ID of the event to get"},"returns":{"_0":"The event"}},"getEventsByAddress(address,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByAddressAndTag(address,string,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByAddressAndType(address,string,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByChainId(string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContract(string,address,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)":{"params":{"addr":"The address to filter by","chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndType(string,address,string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)":{"params":{"chainId":"The chain ID of the contract to filter by","contract_":"The contract to filter by","eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByTag(string,uint256,uint256,bool)":{"params":{"length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByType(string,uint256,uint256,bool)":{"params":{"eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from"},"returns":{"_0":"Array of IndexedEvent structs"}},"getEventsByTypeAndTag(string,string,uint256,uint256,bool)":{"params":{"eventType":"The event type to filter by","length":"The number of events to retrieve","reverseOrder":"Whether to return in reverse chronological order","start":"The offset to start from","tag":"The tag to filter by"},"returns":{"_0":"Array of IndexedEvent structs"}},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"params":{"envelope":"The envelope containing the data.","signatureData":"The signature data."}},"version()":{"returns":{"_0":"Semver contract version as a string."}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Creates a new WavsIndexer instance"},"decodeIndexingPayload(bytes)":{"notice":"Helper function for decoding IndexingPayload"},"eventExistsAndDeleted(bytes32)":{"notice":"Checks whether an event exists and is deleted"},"getEvent(bytes32)":{"notice":"Gets an event by ID"},"getEventCountByAddress(address)":{"notice":"Gets total number of events by contract"},"getEventCountByAddressAndTag(address,string)":{"notice":"Gets total number of events for an address and tag"},"getEventCountByAddressAndType(address,string)":{"notice":"Gets total number of events for an address and type"},"getEventCountByAddressAndTypeAndTag(address,string,string)":{"notice":"Gets total number of events for an address, type, and tag"},"getEventCountByChainId(string)":{"notice":"Gets total number of events by chain ID"},"getEventCountByContract(string,address)":{"notice":"Gets total number of events by contract"},"getEventCountByContractAndAddress(string,address,address)":{"notice":"Gets total number of events for a contract and address"},"getEventCountByContractAndTag(string,address,string)":{"notice":"Gets total number of events for a contract and tag"},"getEventCountByContractAndType(string,address,string)":{"notice":"Gets total number of events for a contract and type"},"getEventCountByContractAndTypeAndTag(string,address,string,string)":{"notice":"Gets total number of events for a contract, type, and tag"},"getEventCountByTag(string)":{"notice":"Gets total number of events by tag"},"getEventCountByType(string)":{"notice":"Gets total number of events by type"},"getEventCountByTypeAndTag(string,string)":{"notice":"Gets total number of events for a type and tag"},"getEventsByAddress(address,uint256,uint256,bool)":{"notice":"Gets events by address"},"getEventsByAddressAndTag(address,string,uint256,uint256,bool)":{"notice":"Gets events by address and tag combination"},"getEventsByAddressAndType(address,string,uint256,uint256,bool)":{"notice":"Gets events by address and type combination"},"getEventsByAddressAndTypeAndTag(address,string,string,uint256,uint256,bool)":{"notice":"Gets events by address, type, and tag combination"},"getEventsByChainId(string,uint256,uint256,bool)":{"notice":"Gets events by chain ID"},"getEventsByContract(string,address,uint256,uint256,bool)":{"notice":"Gets events by contract"},"getEventsByContractAndAddress(string,address,address,uint256,uint256,bool)":{"notice":"Gets events by contract and address combination"},"getEventsByContractAndTag(string,address,string,uint256,uint256,bool)":{"notice":"Gets events by contract and tag combination"},"getEventsByContractAndType(string,address,string,uint256,uint256,bool)":{"notice":"Gets events by contract and type combination"},"getEventsByContractAndTypeAndTag(string,address,string,string,uint256,uint256,bool)":{"notice":"Gets events by contract, type, and tag combination"},"getEventsByTag(string,uint256,uint256,bool)":{"notice":"Gets events by tag"},"getEventsByType(string,uint256,uint256,bool)":{"notice":"Gets events by type"},"getEventsByTypeAndTag(string,string,uint256,uint256,bool)":{"notice":"Gets events by type and tag combination"},"getServiceManager()":{"notice":"Gets the service manager address"},"handleSignedEnvelope((bytes20,bytes12,bytes),(address[],bytes[],uint32))":{"notice":"Handles signed envelope from WAVS containing indexing data"},"version()":{"notice":"Returns the full semver contract version."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/eas-contracts/=node_modules/@ethereum-attestation-service/eas-contracts/","@gnosis-guild/zodiac-core/=node_modules/@gnosis-guild/zodiac-core/contracts/","@gnosis.pm/safe-contracts/=node_modules/@gnosis.pm/safe-contracts/contracts/","@lay3rlabs/poa-middleware/=node_modules/@lay3rlabs/poa-middleware/contracts/","@morpho-org/universal-rewards-distributor/=node_modules/@morpho-org/universal-rewards-distributor/src/","@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@wavs/=node_modules/@wavs/solidity/contracts/","common/=src/common/","contracts/=src/contracts/","forge-std/=node_modules/forge-std/src/","interfaces/=src/interfaces/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/wavs/WavsIndexer.sol":"WavsIndexer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol":{"keccak256":"0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685","urls":["bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d","dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol":{"keccak256":"0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18","urls":["bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0","dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"],"license":"MIT"},"node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol":{"keccak256":"0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9","urls":["bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808","dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceHandler.sol":{"keccak256":"0x427e63f26320f27f53975554ff530953d81fb51b681fca950754b576ce83a267","urls":["bzz-raw://d39520e0561d2f65a04b76c265f7ede71feab34fc0e1bd9f21b868353b9c2b0a","dweb:/ipfs/QmWgvBY8pim9hNLNFDRZyob4PvRmuxEoRSyqABkUNpDcef"],"license":"MIT"},"node_modules/@wavs/solidity/contracts/src/eigenlayer/ecdsa/interfaces/IWavsServiceManager.sol":{"keccak256":"0xc4abed1f1f462a601b8f855c6d16bcc97ac9e5eb081f82ca6bedb6420cd1c9b7","urls":["bzz-raw://27c6906e991bbbe4a589b97d3f883bfb66c6b86463f9e1ff0fb68ac9845ef3f1","dweb:/ipfs/QmYh9y385CszJ4m8TSbqLkTwzFwYyUEBX8KNwvHCjEuXWn"],"license":"UNLICENSED"},"src/contracts/wavs/WavsIndexer.sol":{"keccak256":"0xe9b16bc43ed80690e9fc201d62479db9612da0051e66147797f6ef4614430615","urls":["bzz-raw://d368a3d09bed2bebd6bd399793d41f5a5132c65e43846a882fee42cb5db12484","dweb:/ipfs/QmYa5JWpaxjftQdXwwBFE1yL4htmivcK6cLj8YGA9KBpcZ"],"license":"MIT"},"src/interfaces/IWavsIndexer.sol":{"keccak256":"0x03b8cb934c668ed6a21f0111294f16dff402654ea3a4cc1c12a25409cd62798e","urls":["bzz-raw://aace429ad2249603c218ca2c1768e81f7a66f43779e58d3de6d6a4e921c7261a","dweb:/ipfs/QmdhN2QWAFWNc8Yg1NjbPTvS5U6XHdiBxXvjRoPN3CeTDq"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file diff --git a/frontend/app/account/[address]/component.tsx b/frontend/app/account/[address]/component.tsx index 96684b94..8c8d6f15 100644 --- a/frontend/app/account/[address]/component.tsx +++ b/frontend/app/account/[address]/component.tsx @@ -1,7 +1,9 @@ 'use client' -import { useQueries } from '@tanstack/react-query' +import { usePonderQuery } from '@ponder/react' +import { useQueries, useQuery } from '@tanstack/react-query' import { + ArrowUpRight, Check, FileText, ListFilter, @@ -9,6 +11,7 @@ import { MessageSquareOff, } from 'lucide-react' import dynamic from 'next/dynamic' +import Link from 'next/link' import { useRouter } from 'next/navigation' import type React from 'react' import { Suspense, useEffect, useMemo, useState } from 'react' @@ -24,21 +27,23 @@ import { InfoTooltip } from '@/components/InfoTooltip' import { StatisticCard } from '@/components/StatisticCard' import { Column, Table } from '@/components/Table' import { Tooltip } from '@/components/Tooltip' -import { useAccountNetworkProfile } from '@/hooks/useAccountProfile' +import { NetworkProvider } from '@/contexts/NetworkContext' +import { useIntoAttestationsData } from '@/hooks/useAttestation' import { usePushBreadcrumb } from '@/hooks/usePushBreadcrumb' import { AttestationData } from '@/lib/attestation' -import { NETWORKS, Network, isTrustedSeed } from '@/lib/network' -import { cn, formatBigNumber } from '@/lib/utils' -import { ponderQueries } from '@/queries/ponder' - -interface NetworkParticipant { - network: Network - rank: number - validated: boolean - score: string - seed: boolean - attestationsGiven: number - attestationsReceived: number +import { NETWORKS } from '@/lib/config' +import { parseErrorMessage } from '@/lib/error' +import { isTrustedSeed } from '@/lib/network' +import { Network } from '@/lib/types' +import { cn, formatBigNumber, isHexEqual } from '@/lib/utils' +import { NetworkProfile, ponderQueries, ponderQueryFns } from '@/queries/ponder' + +// Pre-compute schema UID to network name mapping +const SCHEMA_TO_NETWORK: Record = {} +for (const network of NETWORKS) { + for (const schema of network.schemas) { + SCHEMA_TO_NETWORK[schema.uid.toLowerCase()] = network + } } // Uses web2gl, which is not supported on the server @@ -49,6 +54,11 @@ const NetworkGraph = dynamic( } ) +type NetworkRow = NetworkProfile & { + network: Network + seed: boolean +} + export const AccountProfilePage = ({ address, ensName, @@ -65,27 +75,35 @@ export const AccountProfilePage = ({ }) const { - isLoading, - error, - networkProfile: profileData, - networkAttestationsGiven, - networkAttestationsReceived, - allAttestationsGiven, - allAttestationsReceived, - refresh, - } = useAccountNetworkProfile(address) + isLoading: isLoadingNetworkProfiles, + error: errorNetworkProfiles, + data: networkProfiles, + refetch: refreshNetworkProfiles, + } = useQuery(ponderQueries.accountNetworkProfiles(address)) + + const { + isLoading: isLoadingAttestations, + error: errorAttestations, + data: attestations, + refetch: refreshAttestations, + } = usePonderQuery({ + queryFn: ponderQueryFns.getAttestations({ account: address }), + select: useIntoAttestationsData(), + }) + // Refresh network profiles when attestations are refreshed. useEffect(() => { - NETWORKS.forEach((network) => { - router.prefetch(`/network/${network.id}`) - }) - allAttestationsGiven.forEach((attestation) => { - router.prefetch(`/attestations/${attestation.uid}`) - }) - allAttestationsReceived.forEach((attestation) => { + refreshNetworkProfiles() + }, [attestations?.length, refreshNetworkProfiles]) + + const isLoading = isLoadingNetworkProfiles || isLoadingAttestations + const error = errorNetworkProfiles || errorAttestations + + useEffect(() => { + attestations?.forEach((attestation) => { router.prefetch(`/attestations/${attestation.uid}`) }) - }, [router, allAttestationsGiven, allAttestationsReceived]) + }, [router, attestations]) // Query for Localism Fund application URL via address and ENS name (if available), since the user may have used either one on the application. const localismFundApplicationUrl = useQueries({ @@ -97,46 +115,53 @@ export const AccountProfilePage = ({ combine: (results) => results.find((r) => !!r.data)?.data || undefined, }) - const { networksData, maxScore, averageScore, medianScore } = useMemo(() => { - const networksData = NETWORKS.map( - (network): NetworkParticipant => ({ - network, - rank: profileData?.rank || 0, - validated: profileData?.validated || false, - score: profileData?.trustScore || '...', - seed: isTrustedSeed(network, address), - attestationsReceived: profileData?.attestationsReceived || 0, - attestationsGiven: profileData?.attestationsGiven || 0, - }) - ) - .filter((network) => network.score !== '0') - .sort((a, b) => Number(b.score) - Number(a.score)) - - const maxScore = networksData.reduce( + const { networkRows, maxScore, averageScore, medianScore } = useMemo(() => { + const networkRows = + networkProfiles + ?.flatMap((networkProfile): NetworkRow | [] => { + // Find the network that this merkle snapshot contract belongs to. + const network = NETWORKS.find((network) => + isHexEqual( + networkProfile.merkleSnapshotContract, + network.contracts.merkleSnapshot + ) + ) + + if (!network || networkProfile.score === '0') { + return [] + } + + return { + network, + ...networkProfile, + seed: isTrustedSeed(network, address), + } + }) + .sort((a, b) => Number(b.score) - Number(a.score)) || [] + + const maxScore = networkRows.reduce( (max, network) => Math.max(max, Number(network.score)), 0 ) const averageScore = - networksData.length > 0 - ? networksData.reduce( - (sum, network) => sum + Number(network.score), - 0 - ) / networksData.length + networkRows.length > 0 + ? networkRows.reduce((sum, network) => sum + Number(network.score), 0) / + networkRows.length : 0 const medianScore = - networksData.length > 1 - ? Number(networksData[Math.ceil(networksData.length / 2)].score) - : Number(networksData[0]?.score || '0') + networkRows.length > 1 + ? Number(networkRows[Math.ceil(networkRows.length / 2)].score) + : Number(networkRows[0]?.score || '0') return { - networksData, + networkRows, maxScore, averageScore, medianScore, } - }, [profileData]) + }, [networkProfiles]) - const networksColumns: Column[] = [ + const networksColumns: Column[] = [ { key: 'name', header: 'NETWORK', @@ -175,18 +200,27 @@ export const AccountProfilePage = ({ tooltip: 'The number of attestations this member has received from other participants in this network.', sortable: true, - accessor: (row) => row.attestationsReceived, + accessor: (row) => row.attestationsReceived.inNetwork.length, render: (row) => - formatBigNumber(row.attestationsReceived, undefined, true), + formatBigNumber( + row.attestationsReceived.inNetwork.length, + undefined, + true + ), }, { key: 'attestationsGiven', header: 'SENT', tooltip: - 'The number of attestations this member has given to other participants, indicating their level of engagement in building network trust.', + 'The number of attestations this member has given to other participants that are counted for the network, indicating their level of engagement in building network trust.', sortable: true, - accessor: (row) => row.attestationsGiven, - render: (row) => formatBigNumber(row.attestationsGiven, undefined, true), + accessor: (row) => row.attestationsGiven.inNetwork.length, + render: (row) => + formatBigNumber( + row.attestationsGiven.inNetwork.length, + undefined, + true + ), }, { key: 'score', @@ -200,24 +234,74 @@ export const AccountProfilePage = ({ ] const [filterMode, setFilterMode] = useState<'network' | 'all'>('network') + const [selectedNetworkId, setSelectedNetworkId] = useState('all') + + const inAnyNetwork = networkRows.length > 0 + + // Get the selected network row (if any) + const selectedNetworkRow = + selectedNetworkId === 'all' + ? null + : networkRows.find((row) => row.network.id === selectedNetworkId) // If not a network participant, always show all attestations. - const onlyNetworkAttestations = !profileData?.networkParticipant + const onlyNetworkAttestations = !inAnyNetwork ? false : filterMode === 'network' // If in-network and has attestations, show the network graph. const showNetworkGraph = - !!profileData?.networkParticipant && - (!!profileData?.attestationsReceived || !!profileData?.attestationsGiven) + inAnyNetwork && + selectedNetworkId !== 'all' && + networkRows.some( + (row) => + row.attestationsReceived.inNetwork.length > 0 || + row.attestationsGiven.inNetwork.length > 0 + ) + + // Filter network rows based on selected network + const filteredNetworkRows = selectedNetworkRow + ? [selectedNetworkRow] + : networkRows + + const allAttestationsReceived = + attestations?.filter((attestation) => + isHexEqual(attestation.recipient, address) + ) || [] + + const networkAttestationsReceived = filteredNetworkRows.flatMap( + (row) => + attestations?.filter((attestation) => + row.attestationsReceived.inNetwork.includes(attestation.uid) + ) || [] + ) const attestationsReceived = onlyNetworkAttestations ? networkAttestationsReceived : allAttestationsReceived + + const outOfNetworkAttestationsReceived = + allAttestationsReceived.length - networkAttestationsReceived.length + + const allAttestationsGiven = + attestations?.filter((attestation) => + isHexEqual(attestation.attester, address) + ) || [] + + const networkAttestationsGiven = filteredNetworkRows.flatMap( + (row) => + attestations?.filter((attestation) => + row.attestationsGiven.inNetwork.includes(attestation.uid) + ) || [] + ) + const attestationsGiven = onlyNetworkAttestations ? networkAttestationsGiven : allAttestationsGiven + const outOfNetworkAttestationsGiven = + allAttestationsGiven.length - networkAttestationsGiven.length + return (
@@ -254,7 +338,6 @@ export const AccountProfilePage = ({ ? undefined : address } - // variant={localismFundApplicationUrl ? 'outline' : 'default'} />
@@ -272,23 +355,31 @@ export const AccountProfilePage = ({ {/* Error State */} {error && (
-
⚠️ {error}
-
)} {/* Account Info */} - {!isLoading && profileData && ( + {!isLoading && !error && ( <> {/* Network Status */} - {networksData.length > 0 ? ( + {networkRows.length > 0 ? ( row.network.id} @@ -322,14 +413,14 @@ export const AccountProfilePage = ({ - {networksData.length > 1 && ( + {networkRows.length > 1 && ( - + {/* Show network graph for the selected network, or first network if none selected */} + + + )} @@ -391,19 +489,35 @@ export const AccountProfilePage = ({ : 'ATTESTATIONS RECEIVED'} - setFilterMode(value)} - icon={} - /> +
+ {inAnyNetwork && networkRows.length > 1 && ( + ({ + value: row.network.id, + label: row.network.name, + })), + ]} + selected={selectedNetworkId} + onSelect={(value) => setSelectedNetworkId(value)} + /> + )} + + setFilterMode(value)} + icon={} + /> +
{isLoading && ( @@ -416,7 +530,7 @@ export const AccountProfilePage = ({ {!isLoading && attestationsReceived.length > 0 && (
- networkAttestationsReceived.length && ( + outOfNetworkAttestationsReceived > 0 && (

{formatBigNumber( - allAttestationsReceived.length - - networkAttestationsReceived.length, + outOfNetworkAttestationsReceived, undefined, true )}{' '} out-of-network attestation - {allAttestationsReceived.length - - networkAttestationsReceived.length > - 1 - ? 's' - : ''}{' '} - are hidden from view. + {outOfNetworkAttestationsReceived > 1 + ? 's are' + : ' is'}{' '} + hidden from view.

)} @@ -476,7 +586,7 @@ export const AccountProfilePage = ({ {!isLoading && attestationsGiven.length > 0 && (
networkAttestationsGiven.length && ( + outOfNetworkAttestationsGiven > 0 && (

{formatBigNumber( - allAttestationsGiven.length - - networkAttestationsGiven.length, + outOfNetworkAttestationsGiven, undefined, true )}{' '} - out-of-network attestations are hidden from view. + out-of-network attestation + {outOfNetworkAttestationsGiven > 1 ? 's are' : ' is'} hidden + from view.

)} )} - - {/* No Profile Data */} - {!isLoading && !profileData && !error && ( -
-
INVALID ACCOUNT ADDRESS
-
- ◆ PLEASE PROVIDE A VALID ETHEREUM ADDRESS ◆ -
-
- )} ) } -const commonAttestationColumns: Column[] = [ +const commonAttestationColumns = ( + pushBreadcrumb: ReturnType +): Column[] => [ + { + key: 'network', + header: 'NETWORK', + tooltip: 'The network(s) this attestation belongs to based on its schema.', + sortable: false, + render: (row) => { + const networkName = SCHEMA_TO_NETWORK[row.schema.toLowerCase()] + if (!networkName) { + return + } + return ( + { + e.stopPropagation() + pushBreadcrumb() + }} + href={`/network/${networkName.id}`} + > + + {networkName.name} + + + + ) + }, + }, { key: 'confidence', header: 'CONFIDENCE', @@ -570,7 +700,9 @@ const commonAttestationColumns: Column[] = [ }, ] -const attestationsReceivedColumns: Column[] = [ +const attestationsReceivedColumns = ( + pushBreadcrumb: ReturnType +): Column[] => [ { key: 'attester', header: 'ATTESTER', @@ -578,10 +710,12 @@ const attestationsReceivedColumns: Column[] = [ sortable: false, render: (row) => , }, - ...commonAttestationColumns, + ...commonAttestationColumns(pushBreadcrumb), ] -const attestationsGivenColumns: Column[] = [ +const attestationsGivenColumns = ( + pushBreadcrumb: ReturnType +): Column[] => [ { key: 'recipient', header: 'RECIPIENT', @@ -589,5 +723,5 @@ const attestationsGivenColumns: Column[] = [ sortable: false, render: (row) => , }, - ...commonAttestationColumns, + ...commonAttestationColumns(pushBreadcrumb), ] diff --git a/frontend/app/account/[address]/page.tsx b/frontend/app/account/[address]/page.tsx index 941f38df..632263d3 100644 --- a/frontend/app/account/[address]/page.tsx +++ b/frontend/app/account/[address]/page.tsx @@ -3,8 +3,6 @@ import { HydrationBoundary, dehydrate } from '@tanstack/react-query' import { Hex } from 'viem' import { getEnsAddressQueryOptions, getEnsNameQueryOptions } from 'wagmi/query' -import { NetworkProvider } from '@/contexts/NetworkContext' -import { LOCALISM_FUND } from '@/lib/network' import { ponderClient } from '@/lib/ponder' import { makeQueryClient } from '@/lib/query' import { mightBeEnsName } from '@/lib/utils' @@ -73,24 +71,31 @@ export default async function AccountProfilePageServer({ queryClient.prefetchQuery( getPonderQueryOptions( ponderClient, - ponderQueryFns.getAttestationsGiven(address) + ponderQueryFns.getAttestationsGiven({ address }) ) ), queryClient.prefetchQuery( getPonderQueryOptions( ponderClient, - ponderQueryFns.getAttestationsReceived(address) + ponderQueryFns.getAttestationsReceived({ address }) ) ), - ]) - ), - // Network - queryClient.prefetchQuery( - ponderQueries.latestMerkleTree(LOCALISM_FUND.contracts.merkleSnapshot) - ), - queryClient.prefetchQuery( - ponderQueries.network(LOCALISM_FUND.contracts.merkleSnapshot) + // Attestations + queryClient.prefetchQuery( + getPonderQueryOptions( + ponderClient, + ponderQueryFns.getAttestations({ + account: address, + }) + ) + ), + + // Networks + queryClient.prefetchQuery( + ponderQueries.accountNetworkProfiles(address) + ), + ]) ), ]) @@ -98,9 +103,7 @@ export default async function AccountProfilePageServer({ return ( - - - + ) } diff --git a/frontend/app/attestations/page.tsx b/frontend/app/attestations/page.tsx index 21ec3089..98af1f6d 100644 --- a/frontend/app/attestations/page.tsx +++ b/frontend/app/attestations/page.tsx @@ -7,11 +7,8 @@ import { useState } from 'react' import { Hex } from 'viem' import { AttestationCard } from '@/components/AttestationCard' -import { CreateAttestationModal } from '@/components/CreateAttestationModal' -import { NetworkProvider } from '@/contexts/NetworkContext' import { useIntoAttestationsData } from '@/hooks/useAttestation' import { usePushBreadcrumb } from '@/hooks/usePushBreadcrumb' -import { LOCALISM_FUND } from '@/lib/network' import { ponderQueryFns } from '@/queries/ponder' export default function AttestationsPage() { @@ -36,6 +33,8 @@ export default function AttestationsPage() { selectedSchema === 'all' || !selectedSchema.startsWith('0x') ? undefined : (selectedSchema as Hex), + includeRevoked: true, + includeSelfAttests: true, order: sortOrder === 'newest' ? 'desc' : 'asc', limit, }), @@ -51,9 +50,6 @@ export default function AttestationsPage() { {/* Header */}
ATTESTATIONS
- - -
{/* Filters */} diff --git a/frontend/app/component.tsx b/frontend/app/component.tsx new file mode 100644 index 00000000..69a6014c --- /dev/null +++ b/frontend/app/component.tsx @@ -0,0 +1,210 @@ +'use client' + +import { useQueries } from '@tanstack/react-query' +import { ChevronDown } from 'lucide-react' +import dynamic from 'next/dynamic' +import { useRouter } from 'next/navigation' +import { Suspense, useState } from 'react' + +import { Button, ButtonLink } from '@/components/Button' +import { Card } from '@/components/Card' +import { Markdown } from '@/components/Markdown' +import { Column, Table } from '@/components/Table' +import { NetworkProvider } from '@/contexts/NetworkContext' +import { NETWORKS } from '@/lib/config' +import { Network } from '@/lib/types' +import { cn, formatBigNumber } from '@/lib/utils' +import { ponderQueries } from '@/queries/ponder' + +const firstNetwork = NETWORKS[0] +if (!firstNetwork) { + throw new Error('No networks found') +} + +type NetworkRow = { + network: Network + memberCount: number | null + attestationCount: number | null + isLoading: boolean +} + +// Uses web2gl, which is not supported on the server +const NetworkGraph = dynamic( + () => import('@/components/NetworkGraph').then((mod) => mod.NetworkGraph), + { + ssr: false, + } +) + +export function HomePage() { + const router = useRouter() + + // Fetch network data for all networks in parallel + const networkQueries = useQueries({ + queries: NETWORKS.map((network) => + ponderQueries.network(network.contracts.merkleSnapshot) + ), + }) + + // Combine network config with fetched data + const networkRows: NetworkRow[] = NETWORKS.map((network, index) => { + const query = networkQueries[index] + return { + network, + memberCount: query?.data?.accounts?.length ?? null, + attestationCount: query?.data?.attestations?.length ?? null, + isLoading: query?.isLoading ?? true, + } + }) + + // Define table columns + const columns: Column[] = [ + { + key: 'name', + header: 'NAME', + render: (row) => {row.network.name}, + }, + { + key: 'members', + header: 'MEMBERS', + tooltip: 'The number of participants in this network with a TrustScore.', + render: (row) => + row.isLoading + ? '...' + : formatBigNumber(row.memberCount ?? 0, undefined, true), + }, + { + key: 'attestations', + header: 'ATTESTATIONS', + tooltip: 'The total number of attestations in this network.', + render: (row) => + row.isLoading + ? '...' + : formatBigNumber(row.attestationCount ?? 0, undefined, true), + }, + ] + + return ( +
+
+

+ Networks that grow at the speed of trust +

+ +

+ TrustGraph is a governance tool that makes social trust visible and + measurable. Participants give and receive attestations — digital + endorsements that build a TrustGraph. Calculated TrustScores can be + exported and used to inform governance decisions on external + platforms, creating a foundation for legitimacy based on relationships + rather than tokens. +

+ + + View Pilot Network: {firstNetwork.name} + + + {NETWORKS.length > 1 && ( +
+

ALL NETWORKS

+
row.network.id} + onRowClick={(row) => router.push(`/network/${row.network.id}`)} + rowClickTitle="View network" + /> + + )} + +

FREQUENTLY ASKED QUESTIONS

+
+ + + + +
+ + +
+
+ + + 1 ? firstNetwork.name : undefined} + /> + + +
+ + +

+ TrustGraph is currently being piloted. If you're curious about how + it works, interested in testing early prototypes, want to use it in + your network, or just want to stay in the loop, fill out this short + form. +

+ + + Open Interest Form + +
+
+ + ) +} + +const FrequentlyAskedQuestion = ({ + question, + answer, +}: { + question: string + answer: string +}) => { + const [isOpen, setIsOpen] = useState(false) + + return ( + + ) +} diff --git a/frontend/app/network/[id]/_distribute/component.tsx b/frontend/app/network/[id]/_distribute/component.tsx index 11825f0c..563744ba 100644 --- a/frontend/app/network/[id]/_distribute/component.tsx +++ b/frontend/app/network/[id]/_distribute/component.tsx @@ -31,7 +31,7 @@ import { import { StatisticCard } from '@/components/StatisticCard' import { Column, Table } from '@/components/Table' import { useNetwork } from '@/contexts/NetworkContext' -import { merkleFundDistributorAbi } from '@/lib/contracts' +import { merkleFundDistributorAbi } from '@/lib/contract-abis' import { parseErrorMessage } from '@/lib/error' import { txToast } from '@/lib/tx' import { formatBigNumber } from '@/lib/utils' @@ -60,22 +60,26 @@ export const DistributePage = () => { const [tokenAddress, setTokenAddress] = useState('') const [amount, setAmount] = useState('') + const merkleFundDistributorAddress = (network.contracts + .merkleFundDistributor || '') as Hex + // Query distributions from ponder const { data: distributions = [], isLoading: isLoadingDistributions } = usePonderQuery({ queryFn: ponderQueryFns.getFundDistributions( - network.contracts.merkleFundDistributor + merkleFundDistributorAddress ), + enabled: !!merkleFundDistributorAddress, }) // Query user's claims from ponder const { data: userClaims = [], isLoading: isLoadingUserClaims } = usePonderQuery({ queryFn: ponderQueryFns.getFundDistributionClaims({ - distributor: network.contracts.merkleFundDistributor, + distributor: merkleFundDistributorAddress as Hex, account: connectedAddress, }), - enabled: !!connectedAddress, + enabled: !!merkleFundDistributorAddress && !!connectedAddress, }) // Create a map of distributionIndex -> claimed amount for quick lookup @@ -135,9 +139,8 @@ export const DistributePage = () => { // Query distributor state from ponder const { data: distributorState } = usePonderQuery({ - queryFn: ponderQueryFns.getFundDistributor( - network.contracts.merkleFundDistributor - ), + queryFn: ponderQueryFns.getFundDistributor(merkleFundDistributorAddress), + enabled: !!merkleFundDistributorAddress, }) const allowlistEnabled = distributorState?.allowlistEnabled @@ -176,7 +179,7 @@ export const DistributePage = () => { abi: erc20Abi, functionName: 'allowance', args: connectedAddress - ? [connectedAddress, network.contracts.merkleFundDistributor] + ? [connectedAddress, merkleFundDistributorAddress] : undefined, }, ] @@ -185,7 +188,8 @@ export const DistributePage = () => { enabled: tokenType === 'erc20' && tokenAddress.length === 42 && - !!connectedAddress, + !!connectedAddress && + !!merkleFundDistributorAddress, }, }) @@ -212,7 +216,8 @@ export const DistributePage = () => { // Approve ERC20 tokens const handleApprove = async () => { - if (!connectedAddress || !publicClient) return + if (!connectedAddress || !publicClient || !merkleFundDistributorAddress) + return setError(null) setIsDistributing(true) @@ -222,7 +227,7 @@ export const DistributePage = () => { address: tokenAddress as Hex, abi: erc20Abi, functionName: 'approve', - args: [network.contracts.merkleFundDistributor, parsedAmount], + args: [merkleFundDistributorAddress, parsedAmount], account: connectedAddress, }) @@ -231,7 +236,7 @@ export const DistributePage = () => { address: tokenAddress as Hex, abi: erc20Abi, functionName: 'approve', - args: [network.contracts.merkleFundDistributor, parsedAmount], + args: [merkleFundDistributorAddress, parsedAmount], gas: (gasEstimate * 120n) / 100n, }, successMessage: 'Token approval successful!', @@ -250,7 +255,13 @@ export const DistributePage = () => { // Create a new distribution const handleDistribute = async () => { - if (!connectedAddress || !publicClient || !latestMerkleTree?.tree) return + if ( + !connectedAddress || + !publicClient || + !merkleFundDistributorAddress || + !latestMerkleTree?.tree + ) + return setError(null) setIsDistributing(true) @@ -263,7 +274,7 @@ export const DistributePage = () => { const expectedRoot = latestMerkleTree.tree.root as Hex const gasEstimate = await publicClient.estimateContractGas({ abi: merkleFundDistributorAbi, - address: network.contracts.merkleFundDistributor, + address: merkleFundDistributorAddress, functionName: 'distribute', args: [token as Hex, parsedAmount, expectedRoot], account: connectedAddress, @@ -273,7 +284,7 @@ export const DistributePage = () => { await txToast({ tx: { abi: merkleFundDistributorAbi, - address: network.contracts.merkleFundDistributor, + address: merkleFundDistributorAddress, functionName: 'distribute', args: [token as Hex, parsedAmount, expectedRoot], gas: (gasEstimate * 120n) / 100n, @@ -297,7 +308,8 @@ export const DistributePage = () => { // Claim funds from a distribution const handleClaim = async (distribution: DistributionRow) => { - if (!connectedAddress || !publicClient) return + if (!connectedAddress || !publicClient || !merkleFundDistributorAddress) + return setError(null) setIsClaiming(true) @@ -323,7 +335,7 @@ export const DistributePage = () => { const gasEstimate = await publicClient.estimateContractGas({ abi: merkleFundDistributorAbi, - address: network.contracts.merkleFundDistributor, + address: merkleFundDistributorAddress, functionName: 'claim', args: [ distribution.id, @@ -337,7 +349,7 @@ export const DistributePage = () => { await txToast({ tx: { abi: merkleFundDistributorAbi, - address: network.contracts.merkleFundDistributor, + address: merkleFundDistributorAddress, functionName: 'claim', args: [ distribution.id, @@ -360,7 +372,8 @@ export const DistributePage = () => { // Claim all available distributions const handleClaimAll = async () => { - if (!connectedAddress || !publicClient) return + if (!connectedAddress || !publicClient || !merkleFundDistributorAddress) + return // Get distributions with claimable amounts at the time of click const toClaim = distributions.filter((d) => getClaimableAmount(d) > 0n) @@ -392,7 +405,7 @@ export const DistributePage = () => { const gasEstimate = await publicClient.estimateContractGas({ abi: merkleFundDistributorAbi, - address: network.contracts.merkleFundDistributor, + address: merkleFundDistributorAddress, functionName: 'claim', args: [ distribution.id, @@ -406,7 +419,7 @@ export const DistributePage = () => { txs.push({ tx: { abi: merkleFundDistributorAbi, - address: network.contracts.merkleFundDistributor, + address: merkleFundDistributorAddress, functionName: 'claim', args: [ distribution.id, diff --git a/frontend/app/network/[id]/_distribute/page.tsx b/frontend/app/network/[id]/_distribute/page.tsx index 211f97dc..4333361d 100644 --- a/frontend/app/network/[id]/_distribute/page.tsx +++ b/frontend/app/network/[id]/_distribute/page.tsx @@ -2,7 +2,7 @@ import { HydrationBoundary, dehydrate } from '@tanstack/react-query' import { notFound } from 'next/navigation' import { NetworkProvider } from '@/contexts/NetworkContext' -import { NETWORKS } from '@/lib/network' +import { NETWORKS } from '@/lib/config' import { makeQueryClient } from '@/lib/query' import { DistributePage } from './component' diff --git a/frontend/app/network/[id]/component.tsx b/frontend/app/network/[id]/component.tsx index 5c211c83..99757887 100644 --- a/frontend/app/network/[id]/component.tsx +++ b/frontend/app/network/[id]/component.tsx @@ -8,6 +8,7 @@ import { Suspense, useState } from 'react' import { TableAddress } from '@/components/Address' import { BreadcrumbRenderer } from '@/components/BreadcrumbRenderer' import { Button, ButtonLink } from '@/components/Button' +import { Card } from '@/components/Card' import { CreateAttestationModal } from '@/components/CreateAttestationModal' import { Dropdown } from '@/components/Dropdown' import { ExportButton } from '@/components/ExportButton' @@ -17,7 +18,8 @@ import { StatisticCard } from '@/components/StatisticCard' import { Column, Table } from '@/components/Table' import { useNetwork } from '@/contexts/NetworkContext' import { usePushBreadcrumb } from '@/hooks/usePushBreadcrumb' -import { NetworkEntry, isTrustedSeed } from '@/lib/network' +import { isTrustedSeed, isValidatedInNetwork } from '@/lib/network' +import { NetworkEntry } from '@/lib/types' import { formatBigNumber } from '@/lib/utils' // Uses web2gl, which is not supported on the server @@ -42,7 +44,6 @@ export const NetworkPage = () => { averageValue, medianValue, refresh, - isValueValidated, } = useNetwork() const { name, link, about, callToAction, criteria } = network @@ -80,7 +81,11 @@ export const NetworkPage = () => { 'Indicates if this member has attained a significant TrustScore in the network.', sortable: false, render: (row) => - isValueValidated(row.value) ? : '', + isValidatedInNetwork(network, row.value) ? ( + + ) : ( + '' + ), }, { key: 'received', @@ -115,7 +120,7 @@ export const NetworkPage = () => { const filteredNetworkData = filterMode === 'validated' - ? networkData.filter((row) => isValueValidated(row.value)) + ? networkData.filter((row) => isValidatedInNetwork(network, row.value)) : networkData return ( @@ -286,7 +291,7 @@ export const NetworkPage = () => { defaultSortDirection="asc" rowClassName="text-sm" rowCellClassName={(row) => - !isValueValidated(row.value) ? 'bg-accent/40' : '' + !isValidatedInNetwork(network, row.value) ? 'bg-accent/40' : '' } defaultSortColumn="rank" onRowClick={ @@ -309,14 +314,14 @@ export const NetworkPage = () => { {/* No Data Message */} {!isLoading && (!networkData || networkData.length === 0) && !error && ( -
+
- NO NETWORK DATA AVAILABLE + NO NETWORK MEMBERS FOUND
- ◆ PARTICIPATE IN ATTESTATIONS TO APPEAR ON NETWORK ◆ + CREATE ATTESTATIONS TO START BUILDING THE NETWORK
-
+ )} diff --git a/frontend/app/network/[id]/page.tsx b/frontend/app/network/[id]/page.tsx index b1335ffd..8bb756ce 100644 --- a/frontend/app/network/[id]/page.tsx +++ b/frontend/app/network/[id]/page.tsx @@ -2,7 +2,7 @@ import { HydrationBoundary, dehydrate } from '@tanstack/react-query' import { notFound } from 'next/navigation' import { NetworkProvider } from '@/contexts/NetworkContext' -import { NETWORKS } from '@/lib/network' +import { NETWORKS } from '@/lib/config' import { makeQueryClient } from '@/lib/query' import { ponderQueries } from '@/queries/ponder' diff --git a/frontend/app/network/page.tsx b/frontend/app/network/page.tsx index 3407e9b5..a2f76c78 100644 --- a/frontend/app/network/page.tsx +++ b/frontend/app/network/page.tsx @@ -1,6 +1,6 @@ import Link from 'next/link' -import { NETWORKS } from '@/lib/network' +import { NETWORKS } from '@/lib/config' export default function NetworkListPage() { return ( diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx index bb14893a..cea5da6d 100644 --- a/frontend/app/page.tsx +++ b/frontend/app/page.tsx @@ -1,131 +1,30 @@ -'use client' +import { HydrationBoundary, dehydrate } from '@tanstack/react-query' -import { ChevronDown } from 'lucide-react' -import dynamic from 'next/dynamic' -import { Suspense, useState } from 'react' +import { NETWORKS } from '@/lib/config' +import { makeQueryClient } from '@/lib/query' +import { ponderQueries } from '@/queries/ponder' -import { Button, ButtonLink } from '@/components/Button' -import { Card } from '@/components/Card' -import { Markdown } from '@/components/Markdown' -import { NetworkProvider } from '@/contexts/NetworkContext' -import { LOCALISM_FUND } from '@/lib/network' -import { cn } from '@/lib/utils' +import { HomePage } from './component' -// Uses web2gl, which is not supported on the server -const NetworkGraph = dynamic( - () => import('@/components/NetworkGraph').then((mod) => mod.NetworkGraph), - { - ssr: false, - } -) +export const revalidate = 3_600 // 1 hour -export default function HomePage() { - return ( -
-
-

- Networks that grow at the speed of trust -

- -

- TrustGraph is a governance tool that makes social trust visible and - measurable. Participants give and receive attestations — digital - endorsements that build a TrustGraph. Calculated TrustScores can be - exported and used to inform governance decisions on external - platforms, creating a foundation for legitimacy based on relationships - rather than tokens. -

- - - View Network: Localism Fund - - -

FREQUENTLY ASKED QUESTIONS

-
- - - - -
-
+export default async function HomePageServer() { + const queryClient = makeQueryClient() -
-
- - - - - -
- - -

- TrustGraph is currently being piloted. If you're curious about how - it works, interested in testing early prototypes, want to use it in - your network, or just want to stay in the loop, fill out this short - form. -

- - - Open Interest Form - -
-
-
+ // Prefetch network data for all networks in parallel + await Promise.all( + NETWORKS.map((network) => + queryClient.prefetchQuery( + ponderQueries.network(network.contracts.merkleSnapshot) + ) + ) ) -} -const FrequentlyAskedQuestion = ({ - question, - answer, -}: { - question: string - answer: string -}) => { - const [isOpen, setIsOpen] = useState(false) + const dehydratedState = dehydrate(queryClient) return ( - + + + ) } diff --git a/frontend/components/CreateAttestationModal.tsx b/frontend/components/CreateAttestationModal.tsx index 77921d90..1625d05f 100644 --- a/frontend/components/CreateAttestationModal.tsx +++ b/frontend/components/CreateAttestationModal.tsx @@ -1,5 +1,7 @@ 'use client' +import { usePonderQuery } from '@ponder/react' +import { useQuery } from '@tanstack/react-query' import clsx from 'clsx' import { Check, LoaderCircle, X } from 'lucide-react' import type React from 'react' @@ -32,19 +34,20 @@ import { SelectTrigger, SelectValue, } from '@/components/Select' -import { useNetwork } from '@/contexts/NetworkContext' -import { useAccountNetworkProfile } from '@/hooks/useAccountProfile' -import { useAttestation } from '@/hooks/useAttestation' +import { useNetworkIfAvailable } from '@/contexts/NetworkContext' +import { useAttestation, useIntoAttestationsData } from '@/hooks/useAttestation' import { useResolveEnsName } from '@/hooks/useEns' import { AttestationData } from '@/lib/attestation' +import { NETWORKS } from '@/lib/config' import { parseErrorMessage } from '@/lib/error' -import { SCHEMAS, SchemaManager } from '@/lib/schemas' +import { SchemaManager } from '@/lib/schemas' import { formatBigNumber, formatPercentage, isHexEqual, mightBeEnsName, } from '@/lib/utils' +import { ponderQueries, ponderQueryFns } from '@/queries/ponder' import { Card } from './Card' import { CopyableText } from './CopyableText' @@ -74,7 +77,8 @@ export const CreateAttestationModal = ({ variant = 'default', className, }: CreateAttestationModalProps) => { - const { network, totalValue } = useNetwork() + const networkContext = useNetworkIfAvailable() + const [internalIsOpen, setInternalIsOpen] = useState(false) const isOpen = externalIsOpen !== undefined ? externalIsOpen : internalIsOpen const setIsOpen = (value: boolean) => { @@ -87,12 +91,26 @@ export const CreateAttestationModal = ({ const form = useForm({ defaultValues: { + networkId: networkContext?.network.id || NETWORKS[0].id || '', schema: 'vouching', recipient: defaultRecipient, data: {}, }, }) + const selectedNetworkId = form.watch('networkId') + // Use current network context if available, otherwise find the network by ID. + const currentNetwork = + networkContext?.network || + (selectedNetworkId + ? NETWORKS.find((network) => network.id === selectedNetworkId) + : undefined) + + const selectedSchemaKey = form.watch('schema') + const selectedSchemaInfo = selectedSchemaKey + ? SchemaManager.schemaForKey(selectedSchemaKey) + : undefined + const recipient = form.watch('recipient', '') const shouldResolveEnsName = mightBeEnsName(recipient) const resolvedEnsName = useResolveEnsName( @@ -109,8 +127,31 @@ export const CreateAttestationModal = ({ !resolvedEnsName.address const { address: connectedAddress = '0x', isConnected } = useAccount() - const { networkProfile, allAttestationsGiven } = - useAccountNetworkProfile(connectedAddress) + + const { data: networkMerkleTree } = useQuery( + ponderQueries.latestMerkleTree( + currentNetwork?.contracts.merkleSnapshot || '' + ) + ) + const totalValue = Number(networkMerkleTree?.tree?.totalValue || 0) + + const { data: networkProfile } = useQuery( + ponderQueries.accountNetworkProfile({ + address: connectedAddress, + snapshot: currentNetwork?.contracts.merkleSnapshot || '', + }) + ) + + const { data: attestationsGiven = [] } = usePonderQuery({ + queryFn: ponderQueryFns.getAttestationsGiven({ + address: connectedAddress, + schema: selectedSchemaInfo + ? [selectedSchemaInfo.uid] + : currentNetwork?.schemas.map((schema) => schema.uid), + }), + select: useIntoAttestationsData(), + }) + const { createAttestation, revokeAttestation, @@ -123,22 +164,23 @@ export const CreateAttestationModal = ({ } = useAttestation() const noteText = - totalValue > 0 && networkProfile && networkProfile.trustScore !== '0' + totalValue > 0 && networkProfile && networkProfile.score !== '0' ? '**Note:**\n' + [ - (networkProfile.attestationsGiven > 0 ? '- ' : '') + + (networkProfile.attestationsGiven.inNetwork.length > 0 ? '- ' : '') + `Your **TrustScore** determines how much influence your attestations carry — currently **${formatPercentage( - (Number(networkProfile.trustScore) / totalValue) * 100 + (Number(networkProfile.score) / totalValue) * 100 )} of total network trust**.`, - ...(networkProfile.attestationsGiven > 0 + ...(networkProfile.attestationsGiven.inNetwork.length > 0 ? [ `- You've made **${formatBigNumber( - networkProfile.attestationsGiven, + networkProfile.attestationsGiven.inNetwork.length, undefined, true )} attestations** — adding another will reduce each attestation's weight by **${formatPercentage( - (1 / networkProfile.attestationsGiven - - 1 / (networkProfile.attestationsGiven + 1)) * + (1 / networkProfile.attestationsGiven.inNetwork.length - + 1 / + (networkProfile.attestationsGiven.inNetwork.length + 1)) * 100 )}**.`, ] @@ -206,11 +248,6 @@ export const CreateAttestationModal = ({ } } - const selectedSchemaKey = form.watch('schema') - const selectedSchemaInfo = selectedSchemaKey - ? SchemaManager.schemaForKey(selectedSchemaKey) - : undefined - const defaultTrigger = ( - isHexEqual(attestation.recipient, recipient as Hex) && + isHexEqual(attestation.recipient, recipient) && isHexEqual(attestation.schema, selectedSchemaInfo.uid) && // At least 10 seconds old, so we don't show the one we just made. attestation.time < BigInt(Math.floor(Date.now() / 1000) - 10) @@ -307,10 +344,49 @@ export const CreateAttestationModal = ({ )} + {/* If not in a network context, show network selection */} + {!networkContext && ( + ( + + + NETWORK + + + + + )} + /> + )} +
1 && 'md:grid-cols-2' + currentNetwork && + currentNetwork.schemas.length > 1 && + 'md:grid-cols-2' )} >
@@ -389,7 +465,7 @@ export const CreateAttestationModal = ({
{/* Only show schema selection if there are multiple schemas */} - {SCHEMAS.length > 1 && ( + {currentNetwork && currentNetwork.schemas.length > 1 && (