Files
DLE/backend/artifacts/contracts/DLE.sol/DLE.json

1912 lines
125 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "DLE",
"sourceName": "contracts/DLE.sol",
"abi": [
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "string",
"name": "location",
"type": "string"
},
{
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"internalType": "string[]",
"name": "okvedCodes",
"type": "string[]"
},
{
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "quorumPercentage",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "initialPartners",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "initialAmounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "supportedChainIds",
"type": "uint256[]"
}
],
"internalType": "struct DLE.DLEConfig",
"name": "config",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "_currentChainId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"name": "ChainAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"name": "ChainMerkleRootSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"name": "ChainRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "fromChainId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "toChainId",
"type": "uint256"
}
],
"name": "CrossChainExecutionSync",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "fromChainId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "toChainId",
"type": "uint256"
}
],
"name": "CrossChainVoteSync",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldChainId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newChainId",
"type": "uint256"
}
],
"name": "CurrentChainIdUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "deactivatedBy",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "DLEDeactivated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "name",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "location",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string[]",
"name": "okvedCodes",
"type": "string[]"
},
{
"indexed": false,
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
}
],
"name": "DLEInfoUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "name",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "location",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string[]",
"name": "okvedCodes",
"type": "string[]"
},
{
"indexed": false,
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "supportedChainIds",
"type": "uint256[]"
}
],
"name": "DLEInitialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "description",
"type": "string"
}
],
"name": "DeactivationProposalCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "executedBy",
"type": "address"
}
],
"name": "DeactivationProposalExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "support",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "votingPower",
"type": "uint256"
}
],
"name": "DeactivationProposalVoted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address[]",
"name": "partners",
"type": "address[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "InitialTokensDistributed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "moduleId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "moduleAddress",
"type": "address"
}
],
"name": "ModuleAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "moduleId",
"type": "bytes32"
}
],
"name": "ModuleRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "description",
"type": "string"
}
],
"name": "ProposalCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "operation",
"type": "bytes"
}
],
"name": "ProposalExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "support",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "votingPower",
"type": "uint256"
}
],
"name": "ProposalVoted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldQuorumPercentage",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newQuorumPercentage",
"type": "uint256"
}
],
"name": "QuorumPercentageUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "SyncCompleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "activeModules",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "addSupportedChain",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "chainMerkleRoots",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "checkChainConnection",
"outputs": [
{
"internalType": "bool",
"name": "isAvailable",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "checkDeactivationProposalResult",
"outputs": [
{
"internalType": "bool",
"name": "passed",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumReached",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "checkProposalResult",
"outputs": [
{
"internalType": "bool",
"name": "passed",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumReached",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "checkSyncReadiness",
"outputs": [
{
"internalType": "bool",
"name": "allChainsReady",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_description",
"type": "string"
},
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "_moduleAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "createAddModuleProposal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_description",
"type": "string"
},
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "createDeactivationProposal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_description",
"type": "string"
},
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_operation",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_governanceChainId",
"type": "uint256"
}
],
"name": "createProposal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_description",
"type": "string"
},
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "createRemoveModuleProposal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "currentChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deactivate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deactivationProposalCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "deactivationProposals",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "uint256",
"name": "forVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "againstVotes",
"type": "uint256"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "dleInfo",
"outputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "string",
"name": "location",
"type": "string"
},
{
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "creationTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isActive",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "executeDeactivationProposal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "executeProposal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "executedProposals",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "getChainMerkleRoot",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDLEInfo",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "string",
"name": "location",
"type": "string"
},
{
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"internalType": "string[]",
"name": "okvedCodes",
"type": "string[]"
},
{
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "creationTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isActive",
"type": "bool"
}
],
"internalType": "struct DLE.DLEInfo",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "getDeactivationProposal",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "uint256",
"name": "forVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "againstVotes",
"type": "uint256"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
}
],
"name": "getModuleAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getSupportedChainCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "getSupportedChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isActive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "isChainSupported",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isDeactivated",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
}
],
"name": "isModuleActive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "modules",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "processedProofs",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proposalCounter",
"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": "string",
"name": "description",
"type": "string"
},
{
"internalType": "uint256",
"name": "forVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "againstVotes",
"type": "uint256"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"internalType": "bytes",
"name": "operation",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "quorumPercentage",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "removeSupportedChain",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "_merkleRoot",
"type": "bytes32"
}
],
"name": "setChainMerkleRoot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "supportedChainIds",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "supportedChains",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_fromChainId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_proof",
"type": "bytes"
}
],
"name": "syncExecutionFromChain",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "syncToAllChains",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_fromChainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_forVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_againstVotes",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_proof",
"type": "bytes"
}
],
"name": "syncVoteFromChain",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_support",
"type": "bool"
}
],
"name": "vote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_support",
"type": "bool"
}
],
"name": "voteDeactivation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234620011625762005e4e80380390816200001e81620011c3565b918239604081838101031262001162578051906001600160401b03821162001162576101809283838301828401031262001162576040519384016001600160401b03811185821017620006bb57604052818301516001600160401b0381116200116257620000949082840190858501016200120e565b8452818301602001516001600160401b0381116200116257620000bf9082840190858501016200120e565b6020850152818301604001516001600160401b0381116200116257620000ed9082840190858501016200120e565b6040850152818301606001516001600160401b03811162001162576200011b9082840190858501016200120e565b60608501528183016080818101519086015260a0808201519086015260c001516001600160401b038111620011625783830101818301601f8201121562001162578051620001736200016d8262001265565b620011c3565b9160208084848152019260051b820101918486018311620011625760208201905b8382106200118f575050505060c085015281830160e08181015190860152610100808201519086015261012001516001600160401b0381116200116257818301601f8286860101011215620011625780848401015190620001f96200016d8362001265565b91602083828152019184860160208360051b838a8a01010101116200116257916020838888010101925b60208360051b828a8a01010101841062001167575050505061012085015281830161014001516001600160401b03811162001162576200026b9082840190858501016200127d565b6101408501528183016101600151926001600160401b03841162001162576020936200029d928401918401016200127d565b610160840152015181516020830151815191939092916001600160401b038111620006bb57620002cf600354620012da565b601f81116200110f575b506020601f82116001146200109f57819293949560009262001093575b50508160011b916000199060031b1c1916176003555b82516001600160401b038111620006bb576200032a600454620012da565b601f811162001040575b506020601f821160011462000fd1578192939460009262000fc5575b50508160011b916000199060031b1c1916176004555b6001600555805191602082015160408301516060840151608085015160a08601519060c08701519260e088015194604051968761014081011060018060401b036101408a011117620006bb5761014088016040528a8852602088015260408701526060860152608085015260a084015260c083015260e0820152426101008201526001610120820152835160018060401b038111620006bb576200040c600654620012da565b601f811162000f72575b506020601f821160011462000f0257819293949560009262000ef6575b50508160011b916000199060031b1c1916176006555b602081015180519093906001600160401b038111620006bb576200046f600754620012da565b601f811162000ea3575b506020601f821160011462000e3357819293949560009262000e27575b50508160011b916000199060031b1c1916176007555b604082015180519093906001600160401b038111620006bb57620004d2600854620012da565b601f811162000dd4575b506020601f821160011462000d6457819293949560009262000d58575b50508160011b916000199060031b1c1916176008555b606083015180519093906001600160401b038111620006bb5762000535600954620012da565b601f811162000d05575b506020601f821160011462000c9557819293949560009262000c89575b50508160011b916000199060031b1c1916176009555b6080810151600a5560a0810151600b5560c0810151805190680100000000000000008211620006bb57600c5482600c5580831062000bec575b50600c60009081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792916020015b82821062000aba5786866101208760e0810151600d55610100810151600e550151151560ff8019600f5416911617600f5561010082015160105560125560005b6101608201518051821015620006d15781620006369162001340565b5160005260166020526040600020600160ff19825416179055620006608161016084015162001340565b51906017549168010000000000000000831015620006bb576001830180601755831015620006a5576200069f9260176000526020600020015562001330565b6200061a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8261012081015151610140820151510362000a7557610120810151511562000a305760005b610120820151805182101562000862576001600160a01b039081906200071e90849062001340565b5116156200082e57620007378261014085015162001340565b5115620007fb576200074f8261012085015162001340565b511690620007638161014085015162001340565b51918015620007e2576002548381018111620007cc577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602085620007c6966000940160025584845283825260408420818154019055604051908152a362001330565b620006f6565b634e487b7160e01b600052601160045260246000fd5b60405163ec442f0560e01b815260006004820152602490fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b8261012081015161014082015190604051916040830160408452825180915260206060850193019060005b81811062000a1057867ff9e7aa11bcdcbb8ac33b5dba92fca799ef091e54c29270822065501d8edea1a58780620008cd8989838203602085015262001355565b0390a18051602082015160408301519260608101516080820151906200095260a0840151916200094360c0860151986200093461016060e089015198015198620009256040519b6101408d526101408d01906200138b565b908b820360208d01526200138b565b9089820360408b01526200138b565b9087820360608901526200138b565b91608086015260a085015283810360c0850152845180825260208201916020808360051b8301019701926000915b838310620009e0577f11b248463a1620b36a975da8f250009f56fb5dd0e9d5027a90a834d0ee84d6f68880620009cd8c8b8b60e08501523061010085015283820361012085015262001355565b0390a1604051614a9b9081620013b38239f35b909192939760208062000a00600193601f198682030187528c516200138b565b9a01930193019193929062000980565b82516001600160a01b03168552602094850194909201916001016200088d565b60405162461bcd60e51b815260206004820152601360248201527f4e6f20696e697469616c20706172746e657273000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601660248201527f417272617973206c656e677468206d69736d61746368000000000000000000006044820152606490fd5b80518051906001600160401b038211620006bb5762000ada8654620012da565b601f811162000baa575b50602090601f831160011462000b3557928260019493602093869560009262000b29575b5050600019600383901b1c191690841b1787555b01940191019092620005da565b01519050388062000b08565b908660005260206000209160005b601f198516811062000b91575083602093600196938796938794601f1981161062000b77575b505050811b01875562000b1c565b015160001960f88460031b161c1916905538808062000b69565b9192602060018192868501518155019401920162000b43565b62000bda90876000526020600020601f850160051c8101916020861062000be1575b601f0160051c019062001317565b3862000ae4565b909150819062000bcc565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908382015b818301811062000c29575050620005ab565b8062000c3860019254620012da565b8062000c47575b500162000c17565b601f8111831462000c5f5750600081555b3862000c3f565b60009082825262000c7f601f60208420920160051c820185830162001317565b8183555562000c58565b0151905038806200055c565b600960005260206000209060005b601f198416811062000cec575060019394959683601f1981161062000cd2575b505050811b0160095562000572565b015160001960f88460031b161c1916905538808062000cc3565b9091602060018192858b01518155019301910162000ca3565b600960005262000d51907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c8101916020851062000be157601f0160051c019062001317565b386200053f565b015190503880620004f9565b600860005260206000209060005b601f198416811062000dbb575060019394959683601f1981161062000da1575b505050811b016008556200050f565b015160001960f88460031b161c1916905538808062000d92565b9091602060018192858b01518155019301910162000d72565b600860005262000e20907ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f840160051c8101916020851062000be157601f0160051c019062001317565b38620004dc565b01519050388062000496565b600760005260206000209060005b601f198416811062000e8a575060019394959683601f1981161062000e70575b505050811b01600755620004ac565b015160001960f88460031b161c1916905538808062000e61565b9091602060018192858b01518155019301910162000e41565b600760005262000eef907fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c8101916020851062000be157601f0160051c019062001317565b3862000479565b01519050388062000433565b600660005260206000209060005b601f198416811062000f59575060019394959683601f1981161062000f3f575b505050811b0160065562000449565b015160001960f88460031b161c1916905538808062000f30565b9091602060018192858b01518155019301910162000f10565b600660005262000fbe907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c8101916020851062000be157601f0160051c019062001317565b3862000416565b01519050388062000350565b600460005260206000209060005b601f1984168110620010275750600193949583601f198116106200100d575b505050811b0160045562000366565b015160001960f88460031b161c1916905538808062000ffe565b9091602060018192858a01518155019301910162000fdf565b60046000526200108c907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c8101916020851062000be157601f0160051c019062001317565b3862000334565b015190503880620002f6565b600360005260206000209060005b601f1984168110620010f6575060019394959683601f19811610620010dc575b505050811b016003556200030c565b015160001960f88460031b161c19169055388080620010cd565b9091602060018192858b015181550193019101620010ad565b60036000526200115b907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c8101916020851062000be157601f0160051c019062001317565b38620002d9565b600080fd5b8351916001600160a01b03831683036200116257602081819482935201940193915062000223565b81516001600160401b0381116200116257602091620011b78392838a8c01918801016200120e565b81520191019062000194565b6040519190601f01601f191682016001600160401b03811183821017620006bb57604052565b60005b838110620011fd5750506000910152565b8181015183820152602001620011ec565b81601f82011215620011625780516001600160401b038111620006bb5762001240601f8201601f1916602001620011c3565b92818452602082840101116200116257620012629160208085019101620011e9565b90565b6001600160401b038111620006bb5760051b60200190565b9080601f8301121562001162578151906200129c6200016d8362001265565b9182938184526020808095019260051b82010192831162001162578301905b828210620012ca575050505090565b81518152908301908301620012bb565b90600182811c921680156200130c575b6020831014620012f657565b634e487b7160e01b600052602260045260246000fd5b91607f1691620012ea565b81811062001323575050565b6000815560010162001317565b6000198114620007cc5760010190565b8051821015620006a55760209160051b010190565b90815180825260208080930193019160005b82811062001376575050505090565b83518552938101939281019260010162001367565b90602091620013a681518092818552858086019101620011e9565b601f01601f191601019056fe60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14612bdc57508163044bc2bd1461297557816306fdde03146128a75781630933fad414612759578163095ea7b3146126ba5781630c0512e91461269c5781630c4844aa1461249c5781630d61b5191461229c5781631552d75c1461219b57816318160ddd1461217d578163204c5d1f14611f0e57816322dbefbb14610da057816322f3e2d414611ed75781632388b53114611eb957816323b872dd14611dc15781632441d76f14611d845781632519ae5c14611acb578163313ce56714611aaf5781633b60288a14611a80578163456d10c1146117ba5781634b14579314610ad45781634cf2ab32146117855781634de184f6146117685781634fa76ec91461174a57816351b42b001461159c5781635221c1f01461156d578163548d496f1461156d578163553b527a146114f3578163560cada51461141d5781635cf0e8a4146113785781635d57d260146113965781636cbadbfa146113785781636dcf811d1461135557816370a082311461131b5781637481c8e91461039c5781637ce288ea146110bb5781637e5a9b47146110a057816387188a0014610f0f57816395d89b4114610e285781639a49bdde14610e03578163a9059cbb14610dd2578163b0b6cc1a14610da0578163b359451014610b03578163b3fe8bcb14610ad4578163b5b353be14610868578163bc62f34e14610835578163c9a3c0c714610532578163c9d27afe14610417578163dd62ed3e146103c6578163e1605aa21461039c578163e49a62e91461037557508063eced3dfb146103575763f2c26a471461026857600080fd5b34610352576000366003190112610352576103076040516102938161028c81612cd6565b0382612fd7565b6040516102a38161028c81612d7a565b604051906102bb826102b481612e01565b0383612fd7565b604051916102d3836102cc81612e88565b0384612fd7565b600a5492600b54610331600d5492610323600e549561031560ff600f5416986040519c8d9c8d61012090818152019061301b565b8c810360208e01529061301b565b908a820360408c015261301b565b9088820360608a015261301b565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b34610352576000366003190112610352576020601754604051908152f35b346103525760203660031901126103525761039260209135613861565b6040519015158152f35b34610352576020366003190112610352573560005260196020526020604060002054604051908152f35b34610352576040366003190112610352576103df6130a2565b6103e76130b8565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346103525760807f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a991610449366130ce565b610454929192613597565b8260005260206015815261048e60ff60406000209461047587875414613448565b61048460058701544210613494565b85015416156134cf565b6008830192336000528382526104ac60ff604060002054161561351b565b33600052600082526104c46040600020541515613557565b33600052600082526040600020549382526040600020600160ff198254161790558260001461051d576002016104fb848254613265565b90555b6040519384523390840152151560408301526060820152a16001600555005b60030161052b848254613265565b90556104fe565b34610352576080366003190112610352576001600160401b0390803582811161035257610562903690830161305b565b6044359160643593846000526105966105916020966016885261058c60ff6040600020541661332c565b613831565b61336e565b83600052601485526105af60ff60406000205416614922565b33600052600085526105c76040600020541515613288565b601154936105d4856133b0565b601155846000526015865260406000209085825560019182810186518581116108205761060b816106058454612c9c565b846133d6565b808a601f82116001146107be576000916107b3575b50600019600383901b1c191690851b1790555b61063f60243542613265565b60058201556006810180546001600160a01b03191633179055604051633972e9fb60e21b89820152602480820193909352918252606082018481118382101761079e57906007916040520193815193841161078957506106a9836106a38654612c9c565b866133d6565b8690601f841160011461070e5792806106f895938193600080516020614a468339815191529896600094610703575b50501b916000199060031b1c19161790555b60405191829133868461341d565b0390a1604051908152f35b015192508a806106d8565b90601f9392931983169185600052886000209260005b8a82821061077557505091600080516020614a4683398151915297959391856106f89896941061075c575b505050811b0190556106ea565b015160001960f88460031b161c1916905588808061074f565b838501518655948701949384019301610724565b604190634e487b7160e01b6000525260246000fd5b604186634e487b7160e01b6000525260246000fd5b90508801518b610620565b60008481528c81208894509190601f198416908e5b8d83831061080a5750505083116107f1575b5050811b019055610633565b8a015160001960f88460031b161c191690558b806107e5565b84015185558a969094019392830192018e6107d3565b604187634e487b7160e01b6000525260246000fd5b34610352576020366003190112610352576108509035614a0a565b604080519215158352901515602083015290f35b0390f35b34610352576060366003190112610352576001600160401b0390803582811161035257610898903690830161305b565b60243592604435906108af60ff601d541615614966565b336000526020946000865260406000205415610a77576108d08115156132e0565b82600052601686526108e960ff6040600020541661332c565b601c54946108f6866133b0565b601c5585600052601b8752604060002092868455600190818501918751918211610a625761092e826109288554612c9c565b856133d6565b89601f83116001146109f45791808060079897959361097f97956000936109e9575b501b916000199060031b1c19161790555b6000600285015560006003850155830160ff19815416905542613265565b600582015560068101336bffffffffffffffffffffffff60a01b82541617905501557f88aa9f9d4bbeda6aaf596730c5108c1ea969ee4fe549c51a579330a3e73777ca604051838152604085820152806109de3394604083019061301b565b0390a2604051908152f35b8c015192508e610950565b601f92919219821690846000528b6000209160005b8d8c838310610a4f5750505091839160079998969461097f98969410610a36575b5050811b019055610961565b8b015160001960f88460031b161c191690558c80610a2a565b8401518555938601939283019201610a09565b604184634e487b7160e01b6000525260246000fd5b60405162461bcd60e51b8152808601879052603060248201527f4d75737420686f6c6420746f6b656e7320746f2063726561746520646561637460448201526f1a5d985d1a5bdb881c1c9bdc1bdcd85b60821b6064820152608490fd5b3461035257602036600319011261035257356000526014602052602060ff604060002054166040519015158152f35b34610352576080366003190112610352576001600160401b03813581811161035257610b32903690840161305b565b6024359260443583811161035257610b4d903690830161305b565b926064359433600052610b9761059160209760008952610b736040600020541515613288565b610b7e8415156132e0565b806000526016895261058c60ff6040600020541661332c565b60115494610ba4866133b0565b601155856000526015875260406000208681556001928382018751868111610d8b57610bd4816106058454612c9c565b8a601f8211600114610d185791816007959492610c2594600091610d0d575b50600019600383901b1c191690881b1790555b600060028401556000600384015587830160ff19815416905542613265565b600582015560068101336bffffffffffffffffffffffff60a01b825416179055019381519384116107895750610c5f836106a38654612c9c565b8690601f8411600114610cac5792806106f895938193600080516020614a4683398151915298966000946107035750501b916000199060031b1c191617905560405191829133868461341d565b90601f9392931983169185600052886000209260005b8a828210610cf957505091600080516020614a4683398151915297959391856106f89896941061075c57505050811b0190556106ea565b838501518655948701949384019301610cc2565b90508b01518e610bf3565b908b8792601f198316856000528c83600020936000915b838310610d7257505050918391610c25969460079998969410610d59575b5050811b019055610c06565b8d015160001960f88460031b161c191690558e80610d4d565b84015185558b969094019392830192908101908e610d2f565b604188634e487b7160e01b6000525260246000fd5b3461035257602036600319011261035257356000526013602052602060018060a01b0360406000205416604051908152f35b3461035257604036600319011261035257610df8610dee6130a2565b6024359033613187565b602060405160018152f35b3461035257602036600319011261035257610e20602091356138b4565b604051908152f35b3461035257600036600319011261035257604051906000908054610e4b81612c9c565b80855291600191808316908115610ee55750600114610e89575b61086485610e7581870382612fd7565b60405191829160208352602083019061301b565b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610ecd575050508101602001610e7582610864610e65565b80546020858701810191909152909301928101610eb2565b86955061086496935060209250610e7594915060ff191682840152151560051b8201019293610e65565b346103525760208060031936011261035257813533600052600082526040600020541561105c57806000526016825260ff60406000205416611018576012548114610fd45780600052601682526040600020600160ff1982541617905560175492600160401b841015610789575080610fc9610fb28560017fbba9d55e9fd1a441b1617724e2fdb76777d15ec77ab2b72ac15952cbe97085db97016017556130ed565b819391549060031b91821b91600019901b19161790565b9055604051908152a1005b60405162461bcd60e51b8152808401839052601860248201527f43616e6e6f74206164642063757272656e7420636861696e00000000000000006044820152606490fd5b60405162461bcd60e51b8152808401839052601760248201527f436861696e20616c726561647920737570706f727465640000000000000000006044820152606490fd5b60405162461bcd60e51b8152808401839052601d60248201527f4d75737420686f6c6420746f6b656e7320746f2061646420636861696e0000006044820152606490fd5b34610352576020366003190112610352576108509035613792565b346103525760209081600319360112610352578035906110da82613861565b156112e057906000915b6017548310156112b4576110f7836138b4565b92836000526016855261111160ff6040600020541661332c565b826000526015855260406000209361112b84865414613448565b61113481613831565b156112705760126007815496019560405188810191878352604082015260009780549061116082612c9c565b90600192838116908160001461123857506001146111e9575b50505090816111a7600080516020614a268339815191529594936111e298999a03601f198101835282612fd7565b5190208260005260198952604060002055546111da60405192839289846040919493926060820195825260208201520152565b0390a16133b0565b91906110e4565b9091995060005289600020988a60009a5b838c106112235750505081016060019750806111a7600080516020614a26833981519152611179565b8054858d01606001529a01998b9082016111fa565b60ff191660608087019190915283151590930285019092019a508392506111a79150600080516020614a268339815191529050611179565b60405162461bcd60e51b8152808401879052601860248201527f436861696e206e6f7420726561647920666f722073796e6300000000000000006044820152606490fd5b7f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b69108483604051908152a1005b60405162461bcd60e51b815290810183905260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152606490fd5b34610352576020366003190112610352576001600160a01b0361133c6130a2565b1660005260006020526020604060002054604051908152f35b3461035257600036600319011261035257602060ff601d54166040519015158152f35b34610352576000366003190112610352576020601254604051908152f35b346103525760203660031901126103525780610864600192359182600052601b6020526040600020906113cc82549485146149b2565b60028201549060ff60038401549184015416600584015491878060a01b036006860154169361141160078701549661140a604051809c819301612f0f565b038a612fd7565b6040519889988961313a565b346103525760403660031901126103525780359060243590336000526000602052604060002054156114a3577fd9f45b58f4c478517007ecbe71ec54f51403161f9b9e1d3c619204480321825a6040848481600052601660205261148760ff84600020541661332c565b81600052601960205280836000205582519182526020820152a1005b60849060206040519162461bcd60e51b8352820152602360248201527f4d75737420686f6c6420746f6b656e7320746f20736574206d65726b6c6520726044820152621bdbdd60ea1b6064820152fd5b34610352576020366003190112610352578035600052601b602052604060002090610864825491604051936115368561152f8160018501612f0f565b0386612fd7565b60028101549160ff60038301549183015416600583015491600760018060a01b03600686015416940154946040519889988961313a565b3461035257602036600319011261035257356000526016602052602060ff604060002054166040519015158152f35b346103525760003660031901126103525760ff6115bd81601d541615614966565b3360005260209160008352604060002054156116fb5760009160005b601c548110156116f35780600052601b855260406000208381018054918483161590816116e4575b50611617575b5050611612906133b0565b6115d9565b61162083614a0a565b90816116dc575b5015611607579250929350506001809260ff19161790555b15611687575060ff19600181601d541617601d55600f5416600f557f061e8db5c904686a2824142c80b23cd6cf492a0e068aa54080617ff53f2160ca604051914283523392a2005b6084916040519162461bcd60e51b8352820152602a60248201527f4e6f2076616c696420646561637469766174696f6e2070726f706f73616c20776044820152696974682071756f72756d60b01b6064820152fd5b905088611627565b60059150015442101588611601565b50509061163f565b60405162461bcd60e51b8152908101839052602260248201527f4d75737420686f6c6420746f6b656e7320746f206465616374697661746520446044820152614c4560f01b6064820152608490fd5b34610352576000366003190112610352576020601054604051908152f35b346103525760203660031901126103525761039260209135613831565b346103525760203660031901126103525735601754811015610352576117ac6020916130ed565b90546040519160031b1c8152f35b346103525760a03660031901126103525760643590602435908035906001600160401b03604435608435828111610352576117f8903690850161305b565b958460005260209160158352604060002097611816878a5414613448565b876000526016845261182f60ff6040600020541661332c565b60098901948860005285855260ff60406000205416611a4b578151156119fb57604051858101918983528a60408301528460608301528560808301526080825260a0820190828210908211176119e657916118e5916118ea9360405251902080938a600052601a885260406000208260005288526118b560ff60406000205416156135ba565b8b600052601988526118e0604060002054916118d2831515613606565b898082518301019101613669565b613725565b6136e2565b86600052601a8452604060002090600052835260406000209460ff199560018782541617905561191a8383613265565b600254106119a257506003886119659261195a60027fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb9c01918254613265565b905501918254613265565b90558460005252600160406000209182541617905561199d601254604051938493846040919493926060820195825260208201520152565b0390a1005b60405162461bcd60e51b8152908101849052601960248201527f566f7465732065786365656420746f74616c20737570706c79000000000000006044820152606490fd5b604189634e487b7160e01b6000525260246000fd5b60405162461bcd60e51b8152808801869052602360248201527f50726f6f6620726571756972656420666f722063726f73732d636861696e2073604482015262796e6360e81b6064820152608490fd5b60405162461bcd60e51b8152808801869052600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b3461035257602036600319011261035257356000526018602052602060ff604060002054166040519015158152f35b3461035257600036600319011261035257602060405160128152f35b346103525760a0366003190112610352576001600160401b0390803582811161035257611afb903690830161305b565b6064356001600160a01b03811693604435939192919085840361035257611b486084359687600052611b4161059160209960168b5261058c60ff6040600020541661332c565b15156148a3565b8460005260148652611b6260ff60406000205416156148de565b3360005260008652611b7a6040600020541515613288565b60115494611b87866133b0565b60115585600052601587526040600020868155600191828201865185811161082057611bb7816106058454612c9c565b8a601f8211600114611d195790806007949392600091611d0e575b50600019600383901b1c191690861b1790555b611bf160243542613265565b60058401556006830180546001600160a01b031916331790556040516304fa45bf60e31b8b82015260248101919091526001600160a01b03979097166044808901919091528752601f1991611c47606489612fd7565b019386519384116107895750611c61836106a38654612c9c565b8790601f8411600114611caf5750918080926106f8969594600080516020614a46833981519152986000946107035750501b916000199060031b1c191617905560405191829133868461341d565b839692949596169185600052886000209260005b8a828210611cfa57505091600080516020614a4683398151915297959391856106f89896941061075c57505050811b0190556106ea565b838501518655948701949384019301611cc3565b90508901518d611bd2565b92919085908c601f1982168460005281600020916000905b8d838310611d6c57505050958260079710611d53575b5050811b019055611be5565b8b015160001960f88460031b161c191690558d80611d47565b8901518455978801978a959093019290810190611d31565b346103525760403660031901126103525735600052601a6020526040600020602435600052602052602060ff604060002054166040519015158152f35b3461035257606036600319011261035257611dda6130a2565b611de26130b8565b6044359160018060a01b038116806000526001602052604060002033600052602052604060002054946000198610611e21575b5050610df89350613187565b848610611e8d578115611e75573315611e5d5750610df89484916000526001602052604060002033600052602052036040600020558480611e15565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b34610352576000366003190112610352576020601c54604051908152f35b346103525760003660031901126103525760ff601d54161580611f02575b6020906040519015158152f35b50600f5460ff16611ef5565b34610352576000366003190112610352576000610120604051611f3081612fa5565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051611f7681612fa5565b604051611f868161028c81612cd6565b8152604051611f988161028c81612d7a565b6020820152604051611fad8161028c81612e01565b6040820152604051611fc28161028c81612e88565b6060820152600a546080820152600b5460a0820152600c54611fe381613652565b90611ff16040519283612fd7565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b83831061215857858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526120b96120a361208d6120778551610140602087015261016086019061301b565b6020860151858203601f1901604087015261301b565b6040850151848203601f1901606086015261301b565b6060840151838203601f1901608085015261301b565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061212b578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080612149600193601f19868203018752895161301b565b970193019301919392906120fa565b60016020819260405161216f8161028c8189612f0f565b815201920192019190612022565b34610352576000366003190112610352576020600254604051908152f35b34610352576121a9366130ce565b6121b4929192613597565b82600052602090601b82526121d660ff604060002094610475878754146149b2565b60088301336000528083526121f360ff604060002054161561351b565b336000526000835261220b6040600020541515613557565b3360005260008352604060002054938260001461228757600201612230858254613265565b90555b3360005282526040600020600160ff1982541617905560405193845215159083015260408201527f90491c8ec6b93a0758ed2378c77e075515ecf22f312e5cca5160d1720ef3ff7760603392a26001600555005b600301612295858254613265565b9055612233565b34610352576020806003193601126103525781359182600052601582526040600020916122cb84845414613448565b818301928354926122df60ff8516156134cf565b6122e886613792565b909160058401544210801590612495575b156124415750600792916123139181612439575b506137ef565b6001948560ff19809616179055019261233b6040516123368161028c8189612f0f565b61398c565b604051948552604082860152600093805461235581612c9c565b9485604089015283821691826000146123f357505060011461239a575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b8385106123df57505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d28480612372565b8054868601606001529382019381016123a6565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b82010191928480612372565b90508861230d565b60405162461bcd60e51b8152908101859052602760248201527f566f74696e67206e6f7420656e64656420616e642071756f72756d206e6f74206044820152661c995858da195960ca1b6064820152608490fd5b50816122f9565b34610352576020806003193601126103525781359033600052600081526040600020541561265a5781600052601681526124dd60ff6040600020541661332c565b60125482146126175760008281526016825260408120805460ff191690555b60178054808310156125eb57908491612514846130ed565b939054600394851b1c146125335750505061252e906133b0565b6124fc565b909192600095949519918281019081116125d657610fb2612556612562926130ed565b905490871b1c926130ed565b905581549586156125c15750807f11a9d1a77f76361ed131c19b1dc5758504c51dbde2e49fc973a0ef9577ad13d596019261259c846130ed565b81939154921b1b19169055555b806000526019825260006040812055604051908152a1005b603190634e487b7160e01b6000525260246000fd5b601188634e487b7160e01b6000525260246000fd5b505050907f11a9d1a77f76361ed131c19b1dc5758504c51dbde2e49fc973a0ef9577ad13d592506125a9565b826064916040519162461bcd60e51b8352820152601b60248201527f43616e6e6f742072656d6f76652063757272656e7420636861696e00000000006044820152fd5b82816064926040519262461bcd60e51b845283015260248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f766520636861696e6044820152fd5b34610352576000366003190112610352576020601154604051908152f35b34610352576040366003190112610352576126d36130a2565b602435903315612741576001600160a01b0316918215611e5d5750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b3461035257602090816003193601126103525780359081600052601b8352604060002090612789838354146149b2565b80820190600582549361279f60ff8616156134cf565b01544210612870576127b084614a0a565b9190911561283757506127c2906137ef565b600160ff19809316179055600181601d541617601d55600f5416600f556040519081527fbd3ad027952950b28e27d2636c5535e03d64579c825a2890793333c2aec22474823392a27f061e8db5c904686a2824142c80b23cd6cf492a0e068aa54080617ff53f2160ca604051914283523392a2005b60405162461bcd60e51b81529081018690526012602482015271145d5bdc9d5b481b9bdd081c995858da195960721b6044820152606490fd5b60405162461bcd60e51b8152908101859052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346103525760003660031901126103525760405160006003546128c981612c9c565b8084529060019081811690811561294e57506001146128f3575b61086484610e7581860382612fd7565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410612936575050508101602001610e75826128e3565b8054602085870181019190915290930192810161291e565b60ff191660208087019190915292151560051b85019092019250610e7591508390506128e3565b3461035257606036600319011261035257803560243590604435926001600160401b0393848111610352576129ad903690830161305b565b83600052602090601682526129c960ff6040600020541661332c565b836000526018825260ff60406000205416612ba557805115612b5057604051828101968588528660408301526822ac22a1aaaa24a7a760b91b606083015260498252608082019082821090821117612b3b57600080516020614a2683398151915297612a8b926118e592604052519020809387600052601a86526040600020826000528652612a6060ff60406000205416156135ba565b88600052601986526118e060406000205491612a7d831515613606565b878082518301019101613669565b83600052601a82526040600020906000528152601860406000209160ff19926001848254161790558460005260158152612adc60ff604060002095612ad288885414613448565b86015416156134cf565b8460005252600160406000209182541617905581815414612b1c575b5061199d601254604051938493846040919493926060820195825260208201520152565b6007612336612b359261028c6040518094819301612f0f565b83612af8565b604185634e487b7160e01b6000525260246000fd5b60405162461bcd60e51b8152808401839052602860248201527f50726f6f6620726571756972656420666f722063726f73732d636861696e20656044820152673c32b1baba34b7b760c11b6064820152608490fd5b60405162461bcd60e51b8152808401839052601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b903461035257602036600319011261035257803560005260156020526108646040600020916007835493612c1e86612c178160018501612f0f565b0387612fd7565b60028101549260ff60038301549183015416600583015491612c5760018060a01b036006860154169461152f6040518098819301612f0f565b612c73604051998a998a526101008060208c01528a019061301b565b95604089015260608801521515608087015260a086015260c085015283820360e085015261301b565b90600182811c92168015612ccc575b6020831014612cb657565b634e487b7160e01b600052602260045260246000fd5b91607f1691612cab565b60065460009291612ce682612c9c565b80825291600190818116908115612d5d5750600114612d0457505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410612d4557505060209250010190565b80546020858501810191909152909301928101612d33565b915050602093945060ff929192191683830152151560051b010190565b60075460009291612d8a82612c9c565b80825291600190818116908115612d5d5750600114612da857505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410612de957505060209250010190565b80546020858501810191909152909301928101612dd7565b60085460009291612e1182612c9c565b80825291600190818116908115612d5d5750600114612e2f57505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b848410612e7057505060209250010190565b80546020858501810191909152909301928101612e5e565b60095460009291612e9882612c9c565b80825291600190818116908115612d5d5750600114612eb657505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b848410612ef757505060209250010190565b80546020858501810191909152909301928101612ee5565b9060009291805491612f2083612c9c565b918282526001938481169081600014612f825750600114612f42575b50505050565b90919394506000526020928360002092846000945b838610612f6e575050505001019038808080612f3c565b805485870183015294019385908201612f57565b9294505050602093945060ff191683830152151560051b01019038808080612f3c565b61014081019081106001600160401b03821117612fc157604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117612fc157604052565b60005b83811061300b5750506000910152565b8181015183820152602001612ffb565b9060209161303481518092818552858086019101612ff8565b601f01601f1916010190565b6001600160401b038111612fc157601f01601f191660200190565b81601f820112156103525780359061307282613040565b926130806040519485612fd7565b8284526020838301011161035257816000926020809301838601378301015290565b600435906001600160a01b038216820361035257565b602435906001600160a01b038216820361035257565b6040906003190112610352576004359060243580151581036103525790565b6017548110156131245760176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c150190600090565b634e487b7160e01b600052603260045260246000fd5b949161315c9060e097949a99989592875261010080602089015287019061301b565b604086019990995260608501521515608084015260a08301526001600160a01b031660c08201520152565b916001600160a01b0380841692831561324c57169283156132335760009083825281602052604082205490838210613201575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161327257565b634e487b7160e01b600052601160045260246000fd5b1561328f57565b60405162461bcd60e51b815260206004820152602360248201527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b156132e757565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b1561333357565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b1561337557565b60405162461bcd60e51b8152602060048201526013602482015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60001981146132725760010190565b8181106133ca575050565b600081556001016133bf565b9190601f81116133e557505050565b613411926000526020600020906020601f840160051c83019310613413575b601f0160051c01906133bf565b565b9091508190613404565b9081526001600160a01b0390911660208201526060604082018190526134459291019061301b565b90565b1561344f57565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b1561349b57565b60405162461bcd60e51b815260206004820152600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b156134d657565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b1561352257565b60405162461bcd60e51b815260206004820152600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b1561355e57565b60405162461bcd60e51b81526020600482015260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b6002600554146135a8576002600555565b604051633ee5aeb560e01b8152600490fd5b156135c157565b60405162461bcd60e51b815260206004820152601760248201527f50726f6f6620616c72656164792070726f6365737365640000000000000000006044820152606490fd5b1561360d57565b60405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c6520726f6f74206e6f742073657420666f7220636861696e0000006044820152606490fd5b6001600160401b038111612fc15760051b60200190565b6020908181840312610352578051906001600160401b03821161035257019180601f8401121561035257825161369e81613652565b936136ac6040519586612fd7565b818552838086019260051b820101928311610352578301905b8282106136d3575050505090565b815181529083019083016136c5565b156136e957565b60405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21026b2b935b63290383937b7b360611b6044820152606490fd5b9091906000915b8151831015613778576020808460051b8401015191600083821060001461376757506000525261376160406000205b926133b0565b9161372c565b90604092613761948352522061375b565b9150501490565b8181029291811591840414171561327257565b908160005260156020526137ad604060002092835414613448565b60036002830154920154916137c28382613265565b60646137d36002546010549061377f565b041115928391826137e5575b50509190565b11905038806137df565b156137f657565b60405162461bcd60e51b8152602060048201526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b600052601660205260ff604060002054161561385c5760196020526040600020541561385c57600190565b600090565b61387a6000918083526015602052604083205414613448565b80601754915b82811061388f57505050600190565b61389b61058c826138b4565b156138ae576138a9906133b0565b613880565b50905090565b6017548110156138d1576138c7906130ed565b90549060031b1c90565b60405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b9092919261391981613040565b916139276040519384612fd7565b829482845282820111610352576020613411930190612ff8565b51906001600160a01b038216820361035257565b9080601f830112156103525781516134459260200161390c565b919082604091031261035257602061398683613941565b92015190565b80518101604082602083019203126103525760208201516001600160e01b031981169290839003610352576040810151906001600160401b03821161035257019080603f830112156103525760208201516139e99260400161390c565b9063a9059cbb60e01b8103613a1f5750613a0f816020806134119451830101910161396f565b906001600160a01b031633613187565b6340c10f1960e01b8103613aa1575080602080613a419351830101910161396f565b6001600160a01b03909116908115613233577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082613a85600094600254613265565b60025584845283825260408420818154019055604051908152a3565b632770a7eb60e21b8103613b5c575080602080613ac39351830101910161396f565b906001600160a01b0316801561324c57600091818352826020526040832054818110613b2c57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b0384166004820152602481019190915260448101829052606490fd5b630236fce560e51b81036145a85750908151820191610100818403126103525760208101516001600160401b03811161035257613ba190602080860191840101613955565b60408201516001600160401b03811161035257613bc690602080870191850101613955565b9360608301516001600160401b03811161035257613bec90602080840191860101613955565b9060808401516001600160401b03811161035257613c1290602080840191870101613955565b9560a08501519260c08601519160e0870151966001600160401b0388116103525760208501603f898301011215610352576020888201015194613c5486613652565b95613c626040519788612fd7565b80875260208701809a6020840160408460051b83880101011161035257604081860101915b60408460051b83880101018310614571575050505050610100015195805115614535578151156144f7578251156144b257851561447657831561444157861561440e5780516001600160401b038111612fc157613ce5600654612c9c565b601f81116143bf575b50806020601f821160011461433b57600091614330575b508160011b916000199060031b1c1916176006555b81516001600160401b038111612fc157613d35600754612c9c565b601f81116142e1575b50806020601f821160011461425d57600091614252575b508160011b916000199060031b1c1916176007555b82516001600160401b038111612fc157613d85600854612c9c565b601f8111614203575b50806020601f821160011461417f57600091614174575b508160011b916000199060031b1c1916176008555b89516001600160401b038111612fc157613dd5600954612c9c565b601f8111614125575b50806020601f821160011461409e57600091614093575b508160011b916000199060031b1c1916176009555b85600a5583600b558451600160401b8111612fc157600c5481600c55808210614001575b508890600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7916000905b828210613f215750505050613e8e926103156101009a9b93610307610323948b600d556040519d8e818152019061301b565b92608087015260a086015284820360c086015251808252602082019160208260051b82010194926000915b838310613ef45750505050509180917f62d6efdb8dbca656ac38d327c1d66a4ccaeabc91c464fe5e7352b604858f5f469360e08301520390a1565b9091929395602080613f12600193601f198682030187528a5161301b565b98019301930191939290613eb9565b80518051906001600160401b038211612fc157613f4882613f428854612c9c565b886133d6565b602090601f8311600114613f94579282600194936020938695600092613f89575b5050600019600383901b1c191690841b1787555b01940191019092613e5c565b015190503880613f69565b90601f198316918760005260206000209260005b818110613fe9575092600195928592879660209610613fd0575b505050831b83018755613f7d565b015160001960f88460031b161c19169055388080613fc2565b92936020600181928786015181550195019301613fa8565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908282015b818301811061403c575050613e2e565b8061404960019254612c9c565b80614056575b500161402c565b601f8111831461406c5750600081555b3861404f565b60009082825261408a601f60208420920160051c82018583016133bf565b81835555614066565b90508b015138613df5565b600960009081527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af9250601f198416908e5b82821061410c57505090836001949392106140f3575b5050811b01600955613e0a565b8d015160001960f88460031b161c1916905538806140e6565b600184956020939584930151815501940192018e6140d0565b61416e9060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c8101916020851061341357601f0160051c01906133bf565b38613dde565b905084015138613da5565b600860009081527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39250601f198416905b8181106141eb575090836001949392106141d2575b5050811b01600855613dba565b86015160001960f88460031b161c1916905538806141c5565b9192602060018192868b0151815501940192016141b0565b61424c9060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f840160051c8101916020851061341357601f0160051c01906133bf565b38613d8e565b905083015138613d55565b600760009081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889250601f198416905b8181106142c9575090836001949392106142b0575b5050811b01600755613d6a565b85015160001960f88460031b161c1916905538806142a3565b9192602060018192868a01518155019401920161428e565b61432a9060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c8101916020851061341357601f0160051c01906133bf565b38613d3e565b905082015138613d05565b600660009081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9250601f198416905b8181106143a75750908360019493921061438e575b5050811b01600655613d1a565b84015160001960f88460031b161c191690553880614381565b9192602060018192868901518155019401920161436c565b6144089060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c8101916020851061341357601f0160051c01906133bf565b38613cee565b60405162461bcd60e51b815260206004820152600b60248201526a0496e76616c6964204b50560ac1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964204f4b544d4f60981b6044820152606490fd5b60405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210353ab934b9b234b1ba34b7b760611b6044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f4c6f636174696f6e2063616e6e6f7420626520656d70747900000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601660248201527553796d626f6c2063616e6e6f7420626520656d70747960501b6044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152734e616d652063616e6e6f7420626520656d70747960601b6044820152606490fd5b8251906001600160401b038211610352576020809161459b60409485848b0191888d010101613955565b8152019301929050613c87565b63f0f9e6b760e01b810361465f5750602081805181010312610352576020015180151580614654575b1561460f5760407fd0198ea88bf9c4ad5317b68e697944e524541fcb494d854f095b1cd88a097ab691601054908060105582519182526020820152a1565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c69642071756f72756d2070657263656e74616765000000000000006044820152606490fd5b5060648111156145d1565b632ab43f7f60e11b810361470f5750602081805181010312610352576020015180600052601660205261469960ff6040600020541661332c565b601254908181146146da577f979103c7afbf0138fe781172504ceb318ff78f9a420de8cabac8141f0121b521918160409260125582519182526020820152a1565b60405162461bcd60e51b815260206004820152600d60248201526c14d85b594818da185a5b881251609a1b6044820152606490fd5b6304fa45bf60e31b81036147dd57506040818051810103126103525760208101517ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d72722719916001600160a01b039061476790604001613941565b16906147748215156148a3565b80600052601460205261478f60ff60406000205416156148de565b600081815260136020908152604080832080546001600160a01b031916861790556014825291829020805460ff1916600117905581519283526001600160a01b0390931692820192909252a1565b633972e9fb60e21b0361486a57602081805181010312610352576020807f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba853920151806000526014825261483760ff60406000205416614922565b600081815260138352604080822080546001600160a01b03191690556014845290819020805460ff1916905551908152a1565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fd5b156148aa57565b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b156148e557565b60405162461bcd60e51b81526020600482015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152606490fd5b1561492957565b60405162461bcd60e51b8152602060048201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152606490fd5b1561496d57565b60405162461bcd60e51b815260206004820152601760248201527f444c4520616c72656164792064656163746976617465640000000000000000006044820152606490fd5b156149b957565b60405162461bcd60e51b8152602060048201526024808201527f446561637469766174696f6e2070726f706f73616c20646f6573206e6f7420656044820152631e1a5cdd60e21b6064820152608490fd5b9081600052601b6020526137ad6040600020928354146149b256fe42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e833137585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63a2646970667358221220c6e394d53611307294b6f8aac07316f9cb25a290fe9ad141368264da25827d2064736f6c63430008140033",
"deployedBytecode": "0x60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14612bdc57508163044bc2bd1461297557816306fdde03146128a75781630933fad414612759578163095ea7b3146126ba5781630c0512e91461269c5781630c4844aa1461249c5781630d61b5191461229c5781631552d75c1461219b57816318160ddd1461217d578163204c5d1f14611f0e57816322dbefbb14610da057816322f3e2d414611ed75781632388b53114611eb957816323b872dd14611dc15781632441d76f14611d845781632519ae5c14611acb578163313ce56714611aaf5781633b60288a14611a80578163456d10c1146117ba5781634b14579314610ad45781634cf2ab32146117855781634de184f6146117685781634fa76ec91461174a57816351b42b001461159c5781635221c1f01461156d578163548d496f1461156d578163553b527a146114f3578163560cada51461141d5781635cf0e8a4146113785781635d57d260146113965781636cbadbfa146113785781636dcf811d1461135557816370a082311461131b5781637481c8e91461039c5781637ce288ea146110bb5781637e5a9b47146110a057816387188a0014610f0f57816395d89b4114610e285781639a49bdde14610e03578163a9059cbb14610dd2578163b0b6cc1a14610da0578163b359451014610b03578163b3fe8bcb14610ad4578163b5b353be14610868578163bc62f34e14610835578163c9a3c0c714610532578163c9d27afe14610417578163dd62ed3e146103c6578163e1605aa21461039c578163e49a62e91461037557508063eced3dfb146103575763f2c26a471461026857600080fd5b34610352576000366003190112610352576103076040516102938161028c81612cd6565b0382612fd7565b6040516102a38161028c81612d7a565b604051906102bb826102b481612e01565b0383612fd7565b604051916102d3836102cc81612e88565b0384612fd7565b600a5492600b54610331600d5492610323600e549561031560ff600f5416986040519c8d9c8d61012090818152019061301b565b8c810360208e01529061301b565b908a820360408c015261301b565b9088820360608a015261301b565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b34610352576000366003190112610352576020601754604051908152f35b346103525760203660031901126103525761039260209135613861565b6040519015158152f35b34610352576020366003190112610352573560005260196020526020604060002054604051908152f35b34610352576040366003190112610352576103df6130a2565b6103e76130b8565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346103525760807f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a991610449366130ce565b610454929192613597565b8260005260206015815261048e60ff60406000209461047587875414613448565b61048460058701544210613494565b85015416156134cf565b6008830192336000528382526104ac60ff604060002054161561351b565b33600052600082526104c46040600020541515613557565b33600052600082526040600020549382526040600020600160ff198254161790558260001461051d576002016104fb848254613265565b90555b6040519384523390840152151560408301526060820152a16001600555005b60030161052b848254613265565b90556104fe565b34610352576080366003190112610352576001600160401b0390803582811161035257610562903690830161305b565b6044359160643593846000526105966105916020966016885261058c60ff6040600020541661332c565b613831565b61336e565b83600052601485526105af60ff60406000205416614922565b33600052600085526105c76040600020541515613288565b601154936105d4856133b0565b601155846000526015865260406000209085825560019182810186518581116108205761060b816106058454612c9c565b846133d6565b808a601f82116001146107be576000916107b3575b50600019600383901b1c191690851b1790555b61063f60243542613265565b60058201556006810180546001600160a01b03191633179055604051633972e9fb60e21b89820152602480820193909352918252606082018481118382101761079e57906007916040520193815193841161078957506106a9836106a38654612c9c565b866133d6565b8690601f841160011461070e5792806106f895938193600080516020614a468339815191529896600094610703575b50501b916000199060031b1c19161790555b60405191829133868461341d565b0390a1604051908152f35b015192508a806106d8565b90601f9392931983169185600052886000209260005b8a82821061077557505091600080516020614a4683398151915297959391856106f89896941061075c575b505050811b0190556106ea565b015160001960f88460031b161c1916905588808061074f565b838501518655948701949384019301610724565b604190634e487b7160e01b6000525260246000fd5b604186634e487b7160e01b6000525260246000fd5b90508801518b610620565b60008481528c81208894509190601f198416908e5b8d83831061080a5750505083116107f1575b5050811b019055610633565b8a015160001960f88460031b161c191690558b806107e5565b84015185558a969094019392830192018e6107d3565b604187634e487b7160e01b6000525260246000fd5b34610352576020366003190112610352576108509035614a0a565b604080519215158352901515602083015290f35b0390f35b34610352576060366003190112610352576001600160401b0390803582811161035257610898903690830161305b565b60243592604435906108af60ff601d541615614966565b336000526020946000865260406000205415610a77576108d08115156132e0565b82600052601686526108e960ff6040600020541661332c565b601c54946108f6866133b0565b601c5585600052601b8752604060002092868455600190818501918751918211610a625761092e826109288554612c9c565b856133d6565b89601f83116001146109f45791808060079897959361097f97956000936109e9575b501b916000199060031b1c19161790555b6000600285015560006003850155830160ff19815416905542613265565b600582015560068101336bffffffffffffffffffffffff60a01b82541617905501557f88aa9f9d4bbeda6aaf596730c5108c1ea969ee4fe549c51a579330a3e73777ca604051838152604085820152806109de3394604083019061301b565b0390a2604051908152f35b8c015192508e610950565b601f92919219821690846000528b6000209160005b8d8c838310610a4f5750505091839160079998969461097f98969410610a36575b5050811b019055610961565b8b015160001960f88460031b161c191690558c80610a2a565b8401518555938601939283019201610a09565b604184634e487b7160e01b6000525260246000fd5b60405162461bcd60e51b8152808601879052603060248201527f4d75737420686f6c6420746f6b656e7320746f2063726561746520646561637460448201526f1a5d985d1a5bdb881c1c9bdc1bdcd85b60821b6064820152608490fd5b3461035257602036600319011261035257356000526014602052602060ff604060002054166040519015158152f35b34610352576080366003190112610352576001600160401b03813581811161035257610b32903690840161305b565b6024359260443583811161035257610b4d903690830161305b565b926064359433600052610b9761059160209760008952610b736040600020541515613288565b610b7e8415156132e0565b806000526016895261058c60ff6040600020541661332c565b60115494610ba4866133b0565b601155856000526015875260406000208681556001928382018751868111610d8b57610bd4816106058454612c9c565b8a601f8211600114610d185791816007959492610c2594600091610d0d575b50600019600383901b1c191690881b1790555b600060028401556000600384015587830160ff19815416905542613265565b600582015560068101336bffffffffffffffffffffffff60a01b825416179055019381519384116107895750610c5f836106a38654612c9c565b8690601f8411600114610cac5792806106f895938193600080516020614a4683398151915298966000946107035750501b916000199060031b1c191617905560405191829133868461341d565b90601f9392931983169185600052886000209260005b8a828210610cf957505091600080516020614a4683398151915297959391856106f89896941061075c57505050811b0190556106ea565b838501518655948701949384019301610cc2565b90508b01518e610bf3565b908b8792601f198316856000528c83600020936000915b838310610d7257505050918391610c25969460079998969410610d59575b5050811b019055610c06565b8d015160001960f88460031b161c191690558e80610d4d565b84015185558b969094019392830192908101908e610d2f565b604188634e487b7160e01b6000525260246000fd5b3461035257602036600319011261035257356000526013602052602060018060a01b0360406000205416604051908152f35b3461035257604036600319011261035257610df8610dee6130a2565b6024359033613187565b602060405160018152f35b3461035257602036600319011261035257610e20602091356138b4565b604051908152f35b3461035257600036600319011261035257604051906000908054610e4b81612c9c565b80855291600191808316908115610ee55750600114610e89575b61086485610e7581870382612fd7565b60405191829160208352602083019061301b565b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610ecd575050508101602001610e7582610864610e65565b80546020858701810191909152909301928101610eb2565b86955061086496935060209250610e7594915060ff191682840152151560051b8201019293610e65565b346103525760208060031936011261035257813533600052600082526040600020541561105c57806000526016825260ff60406000205416611018576012548114610fd45780600052601682526040600020600160ff1982541617905560175492600160401b841015610789575080610fc9610fb28560017fbba9d55e9fd1a441b1617724e2fdb76777d15ec77ab2b72ac15952cbe97085db97016017556130ed565b819391549060031b91821b91600019901b19161790565b9055604051908152a1005b60405162461bcd60e51b8152808401839052601860248201527f43616e6e6f74206164642063757272656e7420636861696e00000000000000006044820152606490fd5b60405162461bcd60e51b8152808401839052601760248201527f436861696e20616c726561647920737570706f727465640000000000000000006044820152606490fd5b60405162461bcd60e51b8152808401839052601d60248201527f4d75737420686f6c6420746f6b656e7320746f2061646420636861696e0000006044820152606490fd5b34610352576020366003190112610352576108509035613792565b346103525760209081600319360112610352578035906110da82613861565b156112e057906000915b6017548310156112b4576110f7836138b4565b92836000526016855261111160ff6040600020541661332c565b826000526015855260406000209361112b84865414613448565b61113481613831565b156112705760126007815496019560405188810191878352604082015260009780549061116082612c9c565b90600192838116908160001461123857506001146111e9575b50505090816111a7600080516020614a268339815191529594936111e298999a03601f198101835282612fd7565b5190208260005260198952604060002055546111da60405192839289846040919493926060820195825260208201520152565b0390a16133b0565b91906110e4565b9091995060005289600020988a60009a5b838c106112235750505081016060019750806111a7600080516020614a26833981519152611179565b8054858d01606001529a01998b9082016111fa565b60ff191660608087019190915283151590930285019092019a508392506111a79150600080516020614a268339815191529050611179565b60405162461bcd60e51b8152808401879052601860248201527f436861696e206e6f7420726561647920666f722073796e6300000000000000006044820152606490fd5b7f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b69108483604051908152a1005b60405162461bcd60e51b815290810183905260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152606490fd5b34610352576020366003190112610352576001600160a01b0361133c6130a2565b1660005260006020526020604060002054604051908152f35b3461035257600036600319011261035257602060ff601d54166040519015158152f35b34610352576000366003190112610352576020601254604051908152f35b346103525760203660031901126103525780610864600192359182600052601b6020526040600020906113cc82549485146149b2565b60028201549060ff60038401549184015416600584015491878060a01b036006860154169361141160078701549661140a604051809c819301612f0f565b038a612fd7565b6040519889988961313a565b346103525760403660031901126103525780359060243590336000526000602052604060002054156114a3577fd9f45b58f4c478517007ecbe71ec54f51403161f9b9e1d3c619204480321825a6040848481600052601660205261148760ff84600020541661332c565b81600052601960205280836000205582519182526020820152a1005b60849060206040519162461bcd60e51b8352820152602360248201527f4d75737420686f6c6420746f6b656e7320746f20736574206d65726b6c6520726044820152621bdbdd60ea1b6064820152fd5b34610352576020366003190112610352578035600052601b602052604060002090610864825491604051936115368561152f8160018501612f0f565b0386612fd7565b60028101549160ff60038301549183015416600583015491600760018060a01b03600686015416940154946040519889988961313a565b3461035257602036600319011261035257356000526016602052602060ff604060002054166040519015158152f35b346103525760003660031901126103525760ff6115bd81601d541615614966565b3360005260209160008352604060002054156116fb5760009160005b601c548110156116f35780600052601b855260406000208381018054918483161590816116e4575b50611617575b5050611612906133b0565b6115d9565b61162083614a0a565b90816116dc575b5015611607579250929350506001809260ff19161790555b15611687575060ff19600181601d541617601d55600f5416600f557f061e8db5c904686a2824142c80b23cd6cf492a0e068aa54080617ff53f2160ca604051914283523392a2005b6084916040519162461bcd60e51b8352820152602a60248201527f4e6f2076616c696420646561637469766174696f6e2070726f706f73616c20776044820152696974682071756f72756d60b01b6064820152fd5b905088611627565b60059150015442101588611601565b50509061163f565b60405162461bcd60e51b8152908101839052602260248201527f4d75737420686f6c6420746f6b656e7320746f206465616374697661746520446044820152614c4560f01b6064820152608490fd5b34610352576000366003190112610352576020601054604051908152f35b346103525760203660031901126103525761039260209135613831565b346103525760203660031901126103525735601754811015610352576117ac6020916130ed565b90546040519160031b1c8152f35b346103525760a03660031901126103525760643590602435908035906001600160401b03604435608435828111610352576117f8903690850161305b565b958460005260209160158352604060002097611816878a5414613448565b876000526016845261182f60ff6040600020541661332c565b60098901948860005285855260ff60406000205416611a4b578151156119fb57604051858101918983528a60408301528460608301528560808301526080825260a0820190828210908211176119e657916118e5916118ea9360405251902080938a600052601a885260406000208260005288526118b560ff60406000205416156135ba565b8b600052601988526118e0604060002054916118d2831515613606565b898082518301019101613669565b613725565b6136e2565b86600052601a8452604060002090600052835260406000209460ff199560018782541617905561191a8383613265565b600254106119a257506003886119659261195a60027fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb9c01918254613265565b905501918254613265565b90558460005252600160406000209182541617905561199d601254604051938493846040919493926060820195825260208201520152565b0390a1005b60405162461bcd60e51b8152908101849052601960248201527f566f7465732065786365656420746f74616c20737570706c79000000000000006044820152606490fd5b604189634e487b7160e01b6000525260246000fd5b60405162461bcd60e51b8152808801869052602360248201527f50726f6f6620726571756972656420666f722063726f73732d636861696e2073604482015262796e6360e81b6064820152608490fd5b60405162461bcd60e51b8152808801869052600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b3461035257602036600319011261035257356000526018602052602060ff604060002054166040519015158152f35b3461035257600036600319011261035257602060405160128152f35b346103525760a0366003190112610352576001600160401b0390803582811161035257611afb903690830161305b565b6064356001600160a01b03811693604435939192919085840361035257611b486084359687600052611b4161059160209960168b5261058c60ff6040600020541661332c565b15156148a3565b8460005260148652611b6260ff60406000205416156148de565b3360005260008652611b7a6040600020541515613288565b60115494611b87866133b0565b60115585600052601587526040600020868155600191828201865185811161082057611bb7816106058454612c9c565b8a601f8211600114611d195790806007949392600091611d0e575b50600019600383901b1c191690861b1790555b611bf160243542613265565b60058401556006830180546001600160a01b031916331790556040516304fa45bf60e31b8b82015260248101919091526001600160a01b03979097166044808901919091528752601f1991611c47606489612fd7565b019386519384116107895750611c61836106a38654612c9c565b8790601f8411600114611caf5750918080926106f8969594600080516020614a46833981519152986000946107035750501b916000199060031b1c191617905560405191829133868461341d565b839692949596169185600052886000209260005b8a828210611cfa57505091600080516020614a4683398151915297959391856106f89896941061075c57505050811b0190556106ea565b838501518655948701949384019301611cc3565b90508901518d611bd2565b92919085908c601f1982168460005281600020916000905b8d838310611d6c57505050958260079710611d53575b5050811b019055611be5565b8b015160001960f88460031b161c191690558d80611d47565b8901518455978801978a959093019290810190611d31565b346103525760403660031901126103525735600052601a6020526040600020602435600052602052602060ff604060002054166040519015158152f35b3461035257606036600319011261035257611dda6130a2565b611de26130b8565b6044359160018060a01b038116806000526001602052604060002033600052602052604060002054946000198610611e21575b5050610df89350613187565b848610611e8d578115611e75573315611e5d5750610df89484916000526001602052604060002033600052602052036040600020558480611e15565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b34610352576000366003190112610352576020601c54604051908152f35b346103525760003660031901126103525760ff601d54161580611f02575b6020906040519015158152f35b50600f5460ff16611ef5565b34610352576000366003190112610352576000610120604051611f3081612fa5565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051611f7681612fa5565b604051611f868161028c81612cd6565b8152604051611f988161028c81612d7a565b6020820152604051611fad8161028c81612e01565b6040820152604051611fc28161028c81612e88565b6060820152600a546080820152600b5460a0820152600c54611fe381613652565b90611ff16040519283612fd7565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b83831061215857858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526120b96120a361208d6120778551610140602087015261016086019061301b565b6020860151858203601f1901604087015261301b565b6040850151848203601f1901606086015261301b565b6060840151838203601f1901608085015261301b565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061212b578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080612149600193601f19868203018752895161301b565b970193019301919392906120fa565b60016020819260405161216f8161028c8189612f0f565b815201920192019190612022565b34610352576000366003190112610352576020600254604051908152f35b34610352576121a9366130ce565b6121b4929192613597565b82600052602090601b82526121d660ff604060002094610475878754146149b2565b60088301336000528083526121f360ff604060002054161561351b565b336000526000835261220b6040600020541515613557565b3360005260008352604060002054938260001461228757600201612230858254613265565b90555b3360005282526040600020600160ff1982541617905560405193845215159083015260408201527f90491c8ec6b93a0758ed2378c77e075515ecf22f312e5cca5160d1720ef3ff7760603392a26001600555005b600301612295858254613265565b9055612233565b34610352576020806003193601126103525781359182600052601582526040600020916122cb84845414613448565b818301928354926122df60ff8516156134cf565b6122e886613792565b909160058401544210801590612495575b156124415750600792916123139181612439575b506137ef565b6001948560ff19809616179055019261233b6040516123368161028c8189612f0f565b61398c565b604051948552604082860152600093805461235581612c9c565b9485604089015283821691826000146123f357505060011461239a575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b8385106123df57505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d28480612372565b8054868601606001529382019381016123a6565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b82010191928480612372565b90508861230d565b60405162461bcd60e51b8152908101859052602760248201527f566f74696e67206e6f7420656e64656420616e642071756f72756d206e6f74206044820152661c995858da195960ca1b6064820152608490fd5b50816122f9565b34610352576020806003193601126103525781359033600052600081526040600020541561265a5781600052601681526124dd60ff6040600020541661332c565b60125482146126175760008281526016825260408120805460ff191690555b60178054808310156125eb57908491612514846130ed565b939054600394851b1c146125335750505061252e906133b0565b6124fc565b909192600095949519918281019081116125d657610fb2612556612562926130ed565b905490871b1c926130ed565b905581549586156125c15750807f11a9d1a77f76361ed131c19b1dc5758504c51dbde2e49fc973a0ef9577ad13d596019261259c846130ed565b81939154921b1b19169055555b806000526019825260006040812055604051908152a1005b603190634e487b7160e01b6000525260246000fd5b601188634e487b7160e01b6000525260246000fd5b505050907f11a9d1a77f76361ed131c19b1dc5758504c51dbde2e49fc973a0ef9577ad13d592506125a9565b826064916040519162461bcd60e51b8352820152601b60248201527f43616e6e6f742072656d6f76652063757272656e7420636861696e00000000006044820152fd5b82816064926040519262461bcd60e51b845283015260248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f766520636861696e6044820152fd5b34610352576000366003190112610352576020601154604051908152f35b34610352576040366003190112610352576126d36130a2565b602435903315612741576001600160a01b0316918215611e5d5750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b3461035257602090816003193601126103525780359081600052601b8352604060002090612789838354146149b2565b80820190600582549361279f60ff8616156134cf565b01544210612870576127b084614a0a565b9190911561283757506127c2906137ef565b600160ff19809316179055600181601d541617601d55600f5416600f556040519081527fbd3ad027952950b28e27d2636c5535e03d64579c825a2890793333c2aec22474823392a27f061e8db5c904686a2824142c80b23cd6cf492a0e068aa54080617ff53f2160ca604051914283523392a2005b60405162461bcd60e51b81529081018690526012602482015271145d5bdc9d5b481b9bdd081c995858da195960721b6044820152606490fd5b60405162461bcd60e51b8152908101859052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346103525760003660031901126103525760405160006003546128c981612c9c565b8084529060019081811690811561294e57506001146128f3575b61086484610e7581860382612fd7565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410612936575050508101602001610e75826128e3565b8054602085870181019190915290930192810161291e565b60ff191660208087019190915292151560051b85019092019250610e7591508390506128e3565b3461035257606036600319011261035257803560243590604435926001600160401b0393848111610352576129ad903690830161305b565b83600052602090601682526129c960ff6040600020541661332c565b836000526018825260ff60406000205416612ba557805115612b5057604051828101968588528660408301526822ac22a1aaaa24a7a760b91b606083015260498252608082019082821090821117612b3b57600080516020614a2683398151915297612a8b926118e592604052519020809387600052601a86526040600020826000528652612a6060ff60406000205416156135ba565b88600052601986526118e060406000205491612a7d831515613606565b878082518301019101613669565b83600052601a82526040600020906000528152601860406000209160ff19926001848254161790558460005260158152612adc60ff604060002095612ad288885414613448565b86015416156134cf565b8460005252600160406000209182541617905581815414612b1c575b5061199d601254604051938493846040919493926060820195825260208201520152565b6007612336612b359261028c6040518094819301612f0f565b83612af8565b604185634e487b7160e01b6000525260246000fd5b60405162461bcd60e51b8152808401839052602860248201527f50726f6f6620726571756972656420666f722063726f73732d636861696e20656044820152673c32b1baba34b7b760c11b6064820152608490fd5b60405162461bcd60e51b8152808401839052601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b903461035257602036600319011261035257803560005260156020526108646040600020916007835493612c1e86612c178160018501612f0f565b0387612fd7565b60028101549260ff60038301549183015416600583015491612c5760018060a01b036006860154169461152f6040518098819301612f0f565b612c73604051998a998a526101008060208c01528a019061301b565b95604089015260608801521515608087015260a086015260c085015283820360e085015261301b565b90600182811c92168015612ccc575b6020831014612cb657565b634e487b7160e01b600052602260045260246000fd5b91607f1691612cab565b60065460009291612ce682612c9c565b80825291600190818116908115612d5d5750600114612d0457505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410612d4557505060209250010190565b80546020858501810191909152909301928101612d33565b915050602093945060ff929192191683830152151560051b010190565b60075460009291612d8a82612c9c565b80825291600190818116908115612d5d5750600114612da857505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410612de957505060209250010190565b80546020858501810191909152909301928101612dd7565b60085460009291612e1182612c9c565b80825291600190818116908115612d5d5750600114612e2f57505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b848410612e7057505060209250010190565b80546020858501810191909152909301928101612e5e565b60095460009291612e9882612c9c565b80825291600190818116908115612d5d5750600114612eb657505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b848410612ef757505060209250010190565b80546020858501810191909152909301928101612ee5565b9060009291805491612f2083612c9c565b918282526001938481169081600014612f825750600114612f42575b50505050565b90919394506000526020928360002092846000945b838610612f6e575050505001019038808080612f3c565b805485870183015294019385908201612f57565b9294505050602093945060ff191683830152151560051b01019038808080612f3c565b61014081019081106001600160401b03821117612fc157604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117612fc157604052565b60005b83811061300b5750506000910152565b8181015183820152602001612ffb565b9060209161303481518092818552858086019101612ff8565b601f01601f1916010190565b6001600160401b038111612fc157601f01601f191660200190565b81601f820112156103525780359061307282613040565b926130806040519485612fd7565b8284526020838301011161035257816000926020809301838601378301015290565b600435906001600160a01b038216820361035257565b602435906001600160a01b038216820361035257565b6040906003190112610352576004359060243580151581036103525790565b6017548110156131245760176000527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c150190600090565b634e487b7160e01b600052603260045260246000fd5b949161315c9060e097949a99989592875261010080602089015287019061301b565b604086019990995260608501521515608084015260a08301526001600160a01b031660c08201520152565b916001600160a01b0380841692831561324c57169283156132335760009083825281602052604082205490838210613201575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161327257565b634e487b7160e01b600052601160045260246000fd5b1561328f57565b60405162461bcd60e51b815260206004820152602360248201527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b156132e757565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b1561333357565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b1561337557565b60405162461bcd60e51b8152602060048201526013602482015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60001981146132725760010190565b8181106133ca575050565b600081556001016133bf565b9190601f81116133e557505050565b613411926000526020600020906020601f840160051c83019310613413575b601f0160051c01906133bf565b565b9091508190613404565b9081526001600160a01b0390911660208201526060604082018190526134459291019061301b565b90565b1561344f57565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b1561349b57565b60405162461bcd60e51b815260206004820152600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b156134d657565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b1561352257565b60405162461bcd60e51b815260206004820152600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b1561355e57565b60405162461bcd60e51b81526020600482015260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b6002600554146135a8576002600555565b604051633ee5aeb560e01b8152600490fd5b156135c157565b60405162461bcd60e51b815260206004820152601760248201527f50726f6f6620616c72656164792070726f6365737365640000000000000000006044820152606490fd5b1561360d57565b60405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c6520726f6f74206e6f742073657420666f7220636861696e0000006044820152606490fd5b6001600160401b038111612fc15760051b60200190565b6020908181840312610352578051906001600160401b03821161035257019180601f8401121561035257825161369e81613652565b936136ac6040519586612fd7565b818552838086019260051b820101928311610352578301905b8282106136d3575050505090565b815181529083019083016136c5565b156136e957565b60405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21026b2b935b63290383937b7b360611b6044820152606490fd5b9091906000915b8151831015613778576020808460051b8401015191600083821060001461376757506000525261376160406000205b926133b0565b9161372c565b90604092613761948352522061375b565b9150501490565b8181029291811591840414171561327257565b908160005260156020526137ad604060002092835414613448565b60036002830154920154916137c28382613265565b60646137d36002546010549061377f565b041115928391826137e5575b50509190565b11905038806137df565b156137f657565b60405162461bcd60e51b8152602060048201526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b600052601660205260ff604060002054161561385c5760196020526040600020541561385c57600190565b600090565b61387a6000918083526015602052604083205414613448565b80601754915b82811061388f57505050600190565b61389b61058c826138b4565b156138ae576138a9906133b0565b613880565b50905090565b6017548110156138d1576138c7906130ed565b90549060031b1c90565b60405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b9092919261391981613040565b916139276040519384612fd7565b829482845282820111610352576020613411930190612ff8565b51906001600160a01b038216820361035257565b9080601f830112156103525781516134459260200161390c565b919082604091031261035257602061398683613941565b92015190565b80518101604082602083019203126103525760208201516001600160e01b031981169290839003610352576040810151906001600160401b03821161035257019080603f830112156103525760208201516139e99260400161390c565b9063a9059cbb60e01b8103613a1f5750613a0f816020806134119451830101910161396f565b906001600160a01b031633613187565b6340c10f1960e01b8103613aa1575080602080613a419351830101910161396f565b6001600160a01b03909116908115613233577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082613a85600094600254613265565b60025584845283825260408420818154019055604051908152a3565b632770a7eb60e21b8103613b5c575080602080613ac39351830101910161396f565b906001600160a01b0316801561324c57600091818352826020526040832054818110613b2c57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b0384166004820152602481019190915260448101829052606490fd5b630236fce560e51b81036145a85750908151820191610100818403126103525760208101516001600160401b03811161035257613ba190602080860191840101613955565b60408201516001600160401b03811161035257613bc690602080870191850101613955565b9360608301516001600160401b03811161035257613bec90602080840191860101613955565b9060808401516001600160401b03811161035257613c1290602080840191870101613955565b9560a08501519260c08601519160e0870151966001600160401b0388116103525760208501603f898301011215610352576020888201015194613c5486613652565b95613c626040519788612fd7565b80875260208701809a6020840160408460051b83880101011161035257604081860101915b60408460051b83880101018310614571575050505050610100015195805115614535578151156144f7578251156144b257851561447657831561444157861561440e5780516001600160401b038111612fc157613ce5600654612c9c565b601f81116143bf575b50806020601f821160011461433b57600091614330575b508160011b916000199060031b1c1916176006555b81516001600160401b038111612fc157613d35600754612c9c565b601f81116142e1575b50806020601f821160011461425d57600091614252575b508160011b916000199060031b1c1916176007555b82516001600160401b038111612fc157613d85600854612c9c565b601f8111614203575b50806020601f821160011461417f57600091614174575b508160011b916000199060031b1c1916176008555b89516001600160401b038111612fc157613dd5600954612c9c565b601f8111614125575b50806020601f821160011461409e57600091614093575b508160011b916000199060031b1c1916176009555b85600a5583600b558451600160401b8111612fc157600c5481600c55808210614001575b508890600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7916000905b828210613f215750505050613e8e926103156101009a9b93610307610323948b600d556040519d8e818152019061301b565b92608087015260a086015284820360c086015251808252602082019160208260051b82010194926000915b838310613ef45750505050509180917f62d6efdb8dbca656ac38d327c1d66a4ccaeabc91c464fe5e7352b604858f5f469360e08301520390a1565b9091929395602080613f12600193601f198682030187528a5161301b565b98019301930191939290613eb9565b80518051906001600160401b038211612fc157613f4882613f428854612c9c565b886133d6565b602090601f8311600114613f94579282600194936020938695600092613f89575b5050600019600383901b1c191690841b1787555b01940191019092613e5c565b015190503880613f69565b90601f198316918760005260206000209260005b818110613fe9575092600195928592879660209610613fd0575b505050831b83018755613f7d565b015160001960f88460031b161c19169055388080613fc2565b92936020600181928786015181550195019301613fa8565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908282015b818301811061403c575050613e2e565b8061404960019254612c9c565b80614056575b500161402c565b601f8111831461406c5750600081555b3861404f565b60009082825261408a601f60208420920160051c82018583016133bf565b81835555614066565b90508b015138613df5565b600960009081527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af9250601f198416908e5b82821061410c57505090836001949392106140f3575b5050811b01600955613e0a565b8d015160001960f88460031b161c1916905538806140e6565b600184956020939584930151815501940192018e6140d0565b61416e9060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c8101916020851061341357601f0160051c01906133bf565b38613dde565b905084015138613da5565b600860009081527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39250601f198416905b8181106141eb575090836001949392106141d2575b5050811b01600855613dba565b86015160001960f88460031b161c1916905538806141c5565b9192602060018192868b0151815501940192016141b0565b61424c9060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f840160051c8101916020851061341357601f0160051c01906133bf565b38613d8e565b905083015138613d55565b600760009081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889250601f198416905b8181106142c9575090836001949392106142b0575b5050811b01600755613d6a565b85015160001960f88460031b161c1916905538806142a3565b9192602060018192868a01518155019401920161428e565b61432a9060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c8101916020851061341357601f0160051c01906133bf565b38613d3e565b905082015138613d05565b600660009081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9250601f198416905b8181106143a75750908360019493921061438e575b5050811b01600655613d1a565b84015160001960f88460031b161c191690553880614381565b9192602060018192868901518155019401920161436c565b6144089060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c8101916020851061341357601f0160051c01906133bf565b38613cee565b60405162461bcd60e51b815260206004820152600b60248201526a0496e76616c6964204b50560ac1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964204f4b544d4f60981b6044820152606490fd5b60405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210353ab934b9b234b1ba34b7b760611b6044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f4c6f636174696f6e2063616e6e6f7420626520656d70747900000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601660248201527553796d626f6c2063616e6e6f7420626520656d70747960501b6044820152606490fd5b60405162461bcd60e51b81526020600482015260146024820152734e616d652063616e6e6f7420626520656d70747960601b6044820152606490fd5b8251906001600160401b038211610352576020809161459b60409485848b0191888d010101613955565b8152019301929050613c87565b63f0f9e6b760e01b810361465f5750602081805181010312610352576020015180151580614654575b1561460f5760407fd0198ea88bf9c4ad5317b68e697944e524541fcb494d854f095b1cd88a097ab691601054908060105582519182526020820152a1565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c69642071756f72756d2070657263656e74616765000000000000006044820152606490fd5b5060648111156145d1565b632ab43f7f60e11b810361470f5750602081805181010312610352576020015180600052601660205261469960ff6040600020541661332c565b601254908181146146da577f979103c7afbf0138fe781172504ceb318ff78f9a420de8cabac8141f0121b521918160409260125582519182526020820152a1565b60405162461bcd60e51b815260206004820152600d60248201526c14d85b594818da185a5b881251609a1b6044820152606490fd5b6304fa45bf60e31b81036147dd57506040818051810103126103525760208101517ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d72722719916001600160a01b039061476790604001613941565b16906147748215156148a3565b80600052601460205261478f60ff60406000205416156148de565b600081815260136020908152604080832080546001600160a01b031916861790556014825291829020805460ff1916600117905581519283526001600160a01b0390931692820192909252a1565b633972e9fb60e21b0361486a57602081805181010312610352576020807f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba853920151806000526014825261483760ff60406000205416614922565b600081815260138352604080822080546001600160a01b03191690556014845290819020805460ff1916905551908152a1565b60405162461bcd60e51b81526020600482015260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fd5b156148aa57565b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b156148e557565b60405162461bcd60e51b81526020600482015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152606490fd5b1561492957565b60405162461bcd60e51b8152602060048201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152606490fd5b1561496d57565b60405162461bcd60e51b815260206004820152601760248201527f444c4520616c72656164792064656163746976617465640000000000000000006044820152606490fd5b156149b957565b60405162461bcd60e51b8152602060048201526024808201527f446561637469766174696f6e2070726f706f73616c20646f6573206e6f7420656044820152631e1a5cdd60e21b6064820152608490fd5b9081600052601b6020526137ad6040600020928354146149b256fe42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e833137585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63a2646970667358221220c6e394d53611307294b6f8aac07316f9cb25a290fe9ad141368264da25827d2064736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}