[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "proposer", "type": "address" }, { "indexed": false, "internalType": "enum BetlockGovernanceToken.ProposalType", "name": "proposalType", "type": "uint8" }, { "indexed": false, "internalType": "string", "name": "description", "type": "string" } ], "name": "ProposalCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "ProposalExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "RewardDistributed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokensStaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokensUnstaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "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": "weight", "type": "uint256" } ], "name": "Voted", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROPOSAL_THRESHOLD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VOTING_PERIOD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20Votes.Checkpoint", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "enum BetlockGovernanceToken.ProposalType", "name": "proposalType", "type": "uint8" }, { "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "internalType": "address", "name": "targetContract", "type": "address" } ], "name": "createProposal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "executeProposal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "getProposalDetails", "outputs": [ { "internalType": "address", "name": "proposer", "type": "address" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "uint256", "name": "forVotes", "type": "uint256" }, { "internalType": "uint256", "name": "againstVotes", "type": "uint256" }, { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "bool", "name": "executed", "type": "bool" }, { "internalType": "enum BetlockGovernanceToken.ProposalType", "name": "proposalType", "type": "uint8" }, { "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "internalType": "address", "name": "targetContract", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "getProposalVotes", "outputs": [ { "internalType": "uint256", "name": "forVotes", "type": "uint256" }, { "internalType": "uint256", "name": "againstVotes", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getStakingInfo", "outputs": [ { "internalType": "uint256", "name": "stakedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "stakingSince", "type": "uint256" }, { "internalType": "bool", "name": "canUnstake", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "address", "name": "voter", "type": "address" } ], "name": "hasVoted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proposalCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "proposals", "outputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "proposer", "type": "address" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "uint256", "name": "forVotes", "type": "uint256" }, { "internalType": "uint256", "name": "againstVotes", "type": "uint256" }, { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "bool", "name": "executed", "type": "bool" }, { "internalType": "enum BetlockGovernanceToken.ProposalType", "name": "proposalType", "type": "uint8" }, { "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "internalType": "address", "name": "targetContract", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "rescueTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "stakedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "stakingTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "unstake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "bool", "name": "support", "type": "bool" } ], "name": "vote", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101606040523462000205576200001562000277565b6200001f62000277565b906200002a6200024d565b9160209264424c4f434b60d81b848201526200004562000262565b603160f81b858201908152835190939192916001600160401b038211620001ff576200007e8262000078600354620002a7565b620002e4565b8690601f83116001146200016f57620000b89392916000918362000163575b50508160011b916000199060031b1c19161760035562000448565b620000c38362000584565b92610120938452620000d58262000697565b94610140958652815191012060e052519020916101009283524660a052620000fc62000848565b6080523060c0526200010e336200053b565b62000119336200091a565b604051916138699384620010c0853960805184612b4f015260a05184612c0a015260c05184612b19015260e05184612b9e01525183612bc40152518261143b015251816114640152f35b0151905038806200009d565b6003600052601f19831691907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9260005b8a828210620001e8575050916001939185620000b897969410620001ce575b505050811b0160035562000448565b015160001960f88460031b161c19169055388080620001bf565b6001859682939686015181550195019301620001a0565b6200020a565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117620001ff57604052565b604051906200024b8262000220565b565b604051906200025c8262000220565b60058252565b60405190620002718262000220565b60018252565b60405190620002868262000220565b60128252714265746c6f636b20476f7665726e616e636560701b6020830152565b90600182811c92168015620002d9575b6020831014620002c357565b634e487b7160e01b600052602260045260246000fd5b91607f1691620002b7565b601f8111620002f1575050565b6000906003825260208220906020601f850160051c8301941062000332575b601f0160051c01915b8281106200032657505050565b81815560010162000319565b909250829062000310565b601f81116200034a575050565b6000906004825260208220906020601f850160051c830194106200038b575b601f0160051c01915b8281106200037f57505050565b81815560010162000372565b909250829062000369565b601f8111620003a3575050565b6000906005825260208220906020601f850160051c83019410620003e4575b601f0160051c01915b828110620003d857505050565b818155600101620003cb565b9092508290620003c2565b601f8111620003fc575050565b6000906006825260208220906020601f850160051c830194106200043d575b601f0160051c01915b8281106200043157505050565b81815560010162000424565b90925082906200041b565b80519091906001600160401b038111620001ff5762000474816200046e600454620002a7565b6200033d565b602080601f8311600114620004b35750819293600092620004a7575b50508160011b916000199060031b1c191617600455565b01519050388062000490565b6004600052601f198316949091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b8782106200052257505083600195961062000508575b505050811b01600455565b015160001960f88460031b161c19169055388080620004fd565b80600185968294968601518155019501930190620004e7565b600c80546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b9081516020808210600014620005a557505090620005a290620007cb565b90565b6001600160401b038211620001ff57620005cc82620005c6600554620002a7565b62000396565b80601f83116001146200060c575081929360009262000600575b50508160011b916000199060031b1c19161760055560ff90565b015190503880620005e6565b6005600052601f198316949091907f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0926000905b8782106200067e57505083600195961062000664575b505050811b0160055560ff90565b015160001960f88460031b161c1916905538808062000656565b8060018596829496860151815501950193019062000640565b9081516020808210600014620006b557505090620005a290620007cb565b6001600160401b038211620001ff57620006dc82620006d6600654620002a7565b620003ef565b80601f83116001146200071c575081929360009262000710575b50508160011b916000199060031b1c19161760065560ff90565b015190503880620006f6565b6006600052601f198316949091907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f926000905b8782106200078e57505083600195961062000774575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000766565b8060018596829496860151815501950193019062000750565b602081519101519060208110620007bc575090565b6000199060200360031b1b1690565b601f815111620007e657620007e081620007a7565b90511790565b6040519063305a27a960e01b82528160208060048301528251908160248401526000935b8285106200082e575050604492506000838284010152601f80199101168101030190fd5b84810182015186860160440152938101938593506200080a565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811060018060401b03821117620001ff5760405251902090565b15620008bc57565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608490fd5b6001600160a01b038116908115620009e7576002549169d3c21bcecceda1000000808401809411620009e15762000954620009bb94600255565b6001600160a01b038316600090815260208190526040902090815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180620009b2819069d3c21bcecceda1000000602083019252565b0390a362000f95565b600254620009d3906001600160e01b031015620008b4565b620009dd62000b4c565b5050565b62000a2c565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b604080519192919081016001600160401b03811182821017620001ff57604052602081935463ffffffff81168352811c910152565b600b549068010000000000000000821015620001ff576001820180600b5582101562000ae557600b600052805160209182015190911b63ffffffff191663ffffffff91909116177f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910155565b634e487b7160e01b600052603260045260246000fd5b90815468010000000000000000811015620001ff576001810180845581101562000ae557600092835260209283902082519284015190931b63ffffffff191663ffffffff9290921691909117910155565b600b5490811590811562000c935762000b646200023c565b6000815260006020820152925b602084015162000b91906001600160e01b03165b6001600160e01b031690565b9362000b9d856200108e565b9315908162000c6c575b501562000c04576200024b9062000bed62000bc28562000e5d565b600b600052917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db80190565b9063ffffffff82549181199060201b169116179055565b506200024b62000c2d62000c2762000c1c4362000ec7565b65ffffffffffff1690565b62000f2f565b62000c6662000c3c8562000e5d565b62000c5662000c4a6200023c565b63ffffffff9094168452565b6001600160e01b03166020830152565b62000a77565b5163ffffffff16905063ffffffff62000c8962000c1c4362000ec7565b9116143862000ba7565b600b60005262000ccb7f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8840162000a42565b62000a42565b9262000b71565b805491821591821562000dd25762000ce96200023c565b6000815260006020820152935b602085015162000d0f906001600160e01b031662000b85565b9462000d1b86620010a6565b9415908162000dab575b501562000d525762000bed6200024b9262000d408662000e5d565b92600019019060005260206000200190565b506200024b9062000d6b62000c2762000c1c4362000ec7565b9062000da562000d7b8662000e5d565b62000d9562000d896200023c565b63ffffffff9095168552565b6001600160e01b03166020840152565b62000afb565b5163ffffffff16905063ffffffff62000dc862000c1c4362000ec7565b9116143862000d25565b62000dec62000cc560001986018360005260206000200190565b9362000cf6565b805491821591821562000e3c5762000e0a6200023c565b6000815260006020820152935b602085015162000e30906001600160e01b031662000b85565b9462000d1b866200108e565b62000e5662000cc560001986018360005260206000200190565b9362000e17565b6001600160e01b039081811162000e72571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff9081811162000edb571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff9081811162000f41571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546001600160a01b039182166000908152604081205483169290911690818314158062001085575b62000fed57505050565b8162001046575b50508062000fff5750565b6001600160a01b0381166000908152600a602052604090206000805160206200492983398151915290620010339062000df3565b60408051928352602083019190915290a2565b6200106c60408284600080516020620049298339815191529452600a6020522062000cd2565b60408051928352602083019190915290a2388062000ff4565b50600162000fe3565b69d3c21bcecceda10000008101809111620009e15790565b69d3c21bcecceda0ffffff198101908111620009e1579056fe6080604052600436101561001257600080fd5b60003560e01c8062ae3bf8146102e6578063013cf08b146102e157806306fdde03146102dc578063095ea7b3146102d75780630d61b519146102d257806318160ddd146102cd5780631a216bbd146102c857806323b872dd146102c35780632e17de78146102be578063313ce567146102b95780633644e515146102b457806339509351146102af5780633a46b1a8146102aa5780633b4d01a7146102a557806343859632146102a057806347c661401461029b5780634bf5d7e914610296578063587cde1e146102915780635c19a95c1461028c57806360217267146102875780636fcfff451461028257806370a082311461027d578063715018a6146102785780637ecebe001461027357806384b0196e1461026e5780638da5cb5b146102695780638e539e8c146102645780638f0794fe1461025f57806391ddadf41461025a57806395d89b41146102555780639ab24eb014610250578063a457c2d71461024b578063a694fc3a14610246578063a6c2660314610241578063a9059cbb1461023c578063aa4704f314610237578063b1610d7e14610232578063c3cda5201461022d578063c9d27afe14610228578063d505accf14610223578063da35c6641461021e578063db2e21bc14610219578063dd62ed3e14610214578063f1127ed81461020f5763f2fde38b1461020a57600080fd5b612010565b611f89565b611f31565b611e89565b611e6b565b611d25565b611bbe565b611a89565b611a4b565b6119ea565b6119c4565b6119a0565b6118b7565b611809565b6117a7565b611700565b6116d4565b61169a565b611541565b611518565b611420565b6113e6565b611388565b61134e565b611306565b6112cc565b6112aa565b61126f565b6111bd565b611157565b6110e3565b611039565b610e7d565b610e25565b610e02565b610de6565b610ce9565b610c1e565b610b82565b610b2c565b610879565b610848565b610767565b6106b3565b610332565b600435906001600160a01b038216820361030157565b600080fd5b606435906001600160a01b038216820361030157565b602435906001600160a01b038216820361030157565b34610301576020806003193601126103015761034c6102eb565b6103546120d9565b6001600160a01b031661036930821415613767565b6040516370a0823160e01b81523060048201528281602481855afa801561042c576103df928492600092610431575b506103a48215156137c2565b600c5460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092529092839190829060009082906044820190565b03925af190811561042c576103fd926000926103ff575b5050613729565b005b61041e9250803d10610425575b610416818361051d565b810190613804565b38806103f6565b503d61040c565b612a88565b610452919250833d8511610459575b61044a818361051d565b8101906137b3565b9038610398565b503d610440565b90600182811c92168015610490575b602083101461047a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161046f565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116104c457604052565b61049a565b6040810190811067ffffffffffffffff8211176104c457604052565b6020810190811067ffffffffffffffff8211176104c457604052565b60c0810190811067ffffffffffffffff8211176104c457604052565b90601f8019910116810190811067ffffffffffffffff8211176104c457604052565b906040519182600082549261055384610460565b9081845260019485811690816000146105c2575060011461057f575b505061057d9250038361051d565b565b9093915060005260209081600020936000915b8183106105aa57505061057d9350820101388061056f565b85548884018501529485019487945091830191610592565b91505061057d94506020925060ff191682840152151560051b820101388061056f565b919082519283825260005b848110610611575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016105f0565b6005111561062f57565b634e487b7160e01b600052602160045260246000fd5b99959197939b9a969261067c906101409a96928c5260018060a01b03809a1660208d015260408c61016091829101528c01906105e5565b9b60608b015260808a015260a089015260c0880152151560e08701526106a181610625565b61010086015261012085015216910152565b34610301576020366003190112610301576004356000908152601060205260409020805460018201546001600160a01b031690610744906106f66002850161053f565b93600381015491600482015490600583015460068401549060078501549361072c6009600888015497015460018060a01b031690565b966040519a8b9a60ff808960081c169816968c610645565b0390f35b600091031261030157565b9060206107649281815201906105e5565b90565b346103015760008060031936011261084557604051908060035461078a81610460565b8085529160019180831690811561081b57506001146107c0575b610744856107b48187038261051d565b60405191829182610753565b9250600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106108035750505081016020016107b4826107446107a4565b805460208587018101919091529093019281016107e8565b869550610744969350602092506107b494915060ff191682840152151560051b82010192936107a4565b80fd5b346103015760403660031901126103015761086e6108646102eb565b6024359033612341565b602060405160018152f35b3461030157602036600319011261030157600480359081151580610b20575b6108a190613559565b6108b5826000526010602052604060002090565b6108c460068201544211613653565b61090c600782016108e56108e06108dc835460ff1690565b1590565b61369f565b6108f7600384015485850154106136eb565b805460ff191660011781555460081c60ff1690565b61091581610625565b806109c55750906008610943610937610937600986015460018060a01b031690565b6001600160a01b031690565b920154823b1561030157610974926000928360405180968195829463f7cf0aa160e01b845283019190602083019252565b03925af1801561042c576109ac575b505b7f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f600080a2005b806109b96109bf926104b0565b80610748565b38610983565b6109ce81610625565b60018103610a4c57509060086109f3610937610937600986015460018060a01b031690565b920154823b1561030157610a249260009283604051809681958294638e67566360e01b845283019190602083019252565b03925af1801561042c57610a39575b50610985565b806109b9610a46926104b0565b38610a33565b610a5581610625565b60028103610aab5750906008610a7a610937610937600986015460018060a01b031690565b920154823b1561030157610a249260009283604051809681958294631e7ea49760e31b845283019190602083019252565b80610ab68492610625565b14610ac3575b5050610985565b60090154610adb90610937906001600160a01b031681565b90813b15610301576040516351858e2760e01b8152916000918391829084905af1801561042c57610b0d575b80610abc565b806109b9610b1a926104b0565b38610b07565b50600f54821115610898565b34610301576000366003190112610301576020600254604051908152f35b6040519061057d826104c9565b67ffffffffffffffff81116104c457601f01601f191660200190565b60243590600582101561030157565b346103015760803660031901126103015760043567ffffffffffffffff8111610301573660238201121561030157806004013590610bbf82610b57565b610bcc604051918261051d565b8281523660248484010111610301576000602084610744956024610c0e96018386013783010152610bfb610b73565b90610c04610306565b9160443591613212565b6040519081529081906020820190565b3461030157606036600319011261030157610c376102eb565b610c3f61031c565b6001600160a01b038216600090815260016020908152604080832033845290915290206044359190549260018401610c88575b610c7c9350612235565b60405160018152602090f35b828410610ca457610c9f83610c7c95033383612341565b610c72565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b34610301576020366003190112610301576004358015610da157336000908152600d60205260409020610d2090829054101561313b565b336000908152600e60205260409020610d4590610d3d9054612147565b421015613187565b336000908152600d60205260409020610d5f828254612559565b9055610d6c813330612235565b60405190815233907f9845e367b683334e5c0b12d7b81721ac518e649376fa65e3d68324e8f34f26799080602081015b0390a2005b60405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f7420756e7374616b65203020424c4f434b20746f6b656e730000006044820152606490fd5b3461030157600036600319011261030157602060405160128152f35b34610301576000366003190112610301576020610e1d612b16565b604051908152f35b3461030157604036600319011261030157610e3e6102eb565b3360009081526001602090815260408083206001600160a01b03851684529091529020546024358101809111610e785761086e9133612341565b612131565b3461030157604036600319011261030157610e966102eb565b60243590610eb565ffffffffffff610ead43612ff1565b16831061250d565b6001600160a01b03166000908152600a6020526040812080549290918360058111610f81575b50905b838210610f2c57505081610f05575050602060005b6040516001600160e01b039091168152f35b610f20610f2791602093600019019060005260206000200190565b5460201c90565b610ef3565b9092610f388185612e21565b90818363ffffffff610f5e610f54848960005260206000200190565b5463ffffffff1690565b161115610f6f575050925b90610ede565b909450610f7c9150612157565b610f69565b80610f91610f9792969396612e36565b90612559565b908263ffffffff610fb2610f54858860005260206000200190565b161115610fc25750925b38610edb565b9350610fcd90612157565b610fbc565b98949096929a99959193611003610120999560018060a01b03809a168c5260208c61014091829101528c01906105e5565b9b60408b015260608a0152608089015260a0880152151560c087015261102881610625565b60e086015261010085015216910152565b3461030157602036600319011261030157600435801515806110d7575b61105f90613559565b6000526010602052604060002060018060a01b036001820154166107446003830154926004810154926005820154906006830154906007840154916008850154936110bf60026110b8600989015460018060a01b031690565b970161053f565b97604051998a9960ff808860081c169716958b610fd2565b50600f54811115611056565b3461030157604036600319011261030157602060ff61113f60043561110661031c565b908015158061114b575b61111990613559565b60005260108452600a6040600020019060018060a01b0316600052602052604060002090565b54166040519015158152f35b50600f54811115611110565b3461030157602036600319011261030157600435801515806111b1575b61117d90613559565b6000526010602052604060002060046003820154910154906107446040519283928360209093929193604081019481520152565b50600f54811115611174565b34610301576000366003190112610301574365ffffffffffff6111df43612ff1565b160361122a576107446040516111f4816104c9565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829182610753565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606490fd5b346103015760203660031901126103015760206001600160a01b03806112936102eb565b166000526009825260406000205416604051908152f35b34610301576020366003190112610301576103fd6112c66102eb565b336125b2565b34610301576020366003190112610301576001600160a01b036112ed6102eb565b16600052600d6020526020604060002054604051908152f35b34610301576020366003190112610301576001600160a01b036113276102eb565b16600052600a6020526020611340604060002054613058565b63ffffffff60405191168152f35b34610301576020366003190112610301576001600160a01b0361136f6102eb565b1660005260006020526020604060002054604051908152f35b3461030157600080600319360112610845576113a26120d9565b600c80546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b34610301576020366003190112610301576001600160a01b036114076102eb565b1660005260076020526020604060002054604051908152f35b3461030157600080600319360112610845576114ca9061145f7f0000000000000000000000000000000000000000000000000000000000000000612c56565b6114887f0000000000000000000000000000000000000000000000000000000000000000612d22565b9160405191611496836104e5565b818352604051948594600f60f81b86526114bc60209360e08589015260e08801906105e5565b9086820360408801526105e5565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b82811061150157505050500390f35b8351855286955093810193928101926001016114f2565b3461030157600036600319011261030157600c546040516001600160a01b039091168152602090f35b346103015760203660031901126103015760043561157065ffffffffffff61156843612ff1565b16821061250d565b600b549060008260058111611633575b50905b8282106115d057828061159d575060405160008152602090f35b600b600052602090610f27907f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db801610f20565b90916115dc8184612e21565b600b600052908263ffffffff6116137f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db98501610f54565b1611156116235750915b90611583565b925061162e90612157565b61161d565b80610f9161164392959395612e36565b600b600052908263ffffffff61167a7f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db98501610f54565b16111561168a5750915b38611580565b925061169590612157565b611684565b34610301576020366003190112610301576001600160a01b036116bb6102eb565b16600052600e6020526020604060002054604051908152f35b346103015760003660031901126103015760206116f043612ff1565b65ffffffffffff60405191168152f35b346103015760008060031936011261084557604051908060045461172381610460565b8085529160019180831690811561081b575060011461174c57610744856107b48187038261051d565b9250600483527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061178f5750505081016020016107b4826107446107a4565b80546020858701810191909152909301928101611774565b34610301576020366003190112610301576001600160a01b036117c86102eb565b16600052600a6020526040600020805480156000146117ef57505060405160008152602090f35b6020916118009160001901906124bd565b5054811c610ef3565b34610301576040366003190112610301576118226102eb565b6024359033600052600160205261184f8160406000209060018060a01b0316600052602052604060002090565b549180831061186457610c7c92039033612341565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b3461030157602036600319011261030157600435801561195b573360009081526020819052604090206118ee9082905410156130ef565b6118f9813033612235565b336000908152600d60205260409020611913828254612175565b9055336000908152600e6020526040902042905560405190815233907fb539ca1e5c8d398ddf1c41c30166f33404941683be4683319b57669a93dad4ef908060208101610d9c565b60405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207374616b65203020424c4f434b20746f6b656e7300000000006044820152606490fd5b3461030157600036600319011261030157602060405168056bc75e2d631000008152f35b346103015760403660031901126103015761086e6119e06102eb565b6024359033612235565b34610301576020366003190112610301576001600160a01b03611a0b6102eb565b16600052600d602052604060002054600e60205260406000205490620151808201808311610e785760609260405192835260208301524210156040820152f35b346103015760003660031901126103015760206040516203f4808152f35b6064359060ff8216820361030157565b6084359060ff8216820361030157565b346103015760c036600319011261030157611aa26102eb565b60443590602435611ab1611a69565b92804211611b6f57611b41611b6a916103fd9560405190611b2982611b1b6020820195898b8860609194939260808201957fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835260018060a01b0316602083015260408201520152565b03601f19810184528361051d565b611b3c60a4359360843593519020612c30565b612956565b6001600160a01b0381166000908152600760205260409020805460018101909155909214612566565b6125b2565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606490fd5b8015150361030157565b3461030157604036600319011261030157602435600435611bde82611bb4565b80151580611d19575b611bf090613559565b33600052600d602052611c0960406000205415156131d3565b7f7c2de587c00d75474a0c6c6fa96fd3b45dc974cd4e8a75f712bb84c950dce1b5611cff611c41836000526010602052604060002090565b611c51600582015442101561359b565b611c6160068201544211156135dc565b611cbc611caf600a8301611c9c611c976108dc611c9033859060018060a01b0316600052602052604060002090565b5460ff1690565b613617565b3360009081526020919091526040902090565b805460ff19166001179055565b336000908152600d6020526040902054908515611d0457600301611ce1828254612175565b90555b60408051951515865260208601919091523394918291820190565b0390a3005b600401611d12828254612175565b9055611ce4565b50600f54811115611be7565b346103015760e036600319011261030157611d3e6102eb565b611d4661031c565b6044359060643592611d56611a79565b93804211611e2657611e0e611e2191611b1b6103fd97611dfb611d948760018060a01b03166000526007602052604060002090815491600183019055565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9602082019081526001600160a01b03808c1693830193909352918b166060820152608081018c905260a081019290925260c082019590955292839060e0820190565b611b3c60c4359360a43593519020612c30565b6001600160a01b03838116911614612471565b612341565b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b34610301576000366003190112610301576020600f54604051908152f35b346103015760008060031936011261084557611ea36120d9565b478015611ef35781808080611eeb9460018060a01b03600c54165af13d15611eee573d611ecf81610b57565b90611edd604051928361051d565b81528360203d92013e613729565b80f35b613729565b60405162461bcd60e51b81526020600482015260166024820152754e6f2062616c616e636520746f20776974686472617760501b6044820152606490fd5b34610301576040366003190112610301576020611f80611f4f6102eb565b611f5761031c565b6001600160a01b0391821660009081526001855260408082209290931681526020919091522090565b54604051908152f35b3461030157604036600319011261030157611fa26102eb565b63ffffffff602435818116810361030157611fec611ff291604094600060208751611fcc816104c9565b82815201526001600160a01b03166000908152600a6020528590206124bd565b506124eb565b8251815190921682526020908101516001600160e01b031690820152f35b34610301576020366003190112610301576120296102eb565b6120316120d9565b6001600160a01b0390811690811561208557600c54826bffffffffffffffffffffffff60a01b821617600c55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b600c546001600160a01b031633036120ed57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b634e487b7160e01b600052601160045260246000fd5b90620151808201809211610e7857565b9060018201809211610e7857565b906203f4808201809211610e7857565b91908201809211610e7857565b1561218957565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b156121e157565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6001600160a01b0392919083811680156122ee5761057d9483169061225b821515612182565b6001600160a01b0383166000908152602081905260409020859054612282828210156121da565b0361229f8460018060a01b03166000526000602052604060002090565b556001600160a01b0384166000908152602081815260409182902080548801905590518681527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a36130bd565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0380821692919083156124205782169384156123d057806123ba7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925946123a36123cb9560018060a01b03166000526001602052604060002090565b9060018060a01b0316600052602052604060002090565b556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b1561247857565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b80548210156124d55760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b906040516124f8816104c9565b602081935463ffffffff81168352811c910152565b1561251457565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606490fd5b91908203918211610e7857565b1561256d57565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606490fd5b6001600160a01b039081166000818152600960208181526040808420805485845291852054939092528686166001600160a01b03198216811790925561057d9692959294921692909183917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a45b6001600160a01b03808316939291168084141580612835575b612646575b50505050565b806126b4575b5082612659575b80612640565b6001600160a01b03166000908152600a602052604090207fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249161269b9161289d565b60408051928352602083019190915290a2388080612653565b80600052600a6020527fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7246040600020805480159182600014612812576126f8610b4a565b6000815260006020820152915b6020830151612724906001600160e01b03165b6001600160e01b031690565b9261272f8985613819565b941590816127ef575b501561278d576127606127779261274e86612f88565b92600019019060005260206000200190565b9063ffffffff82549181199060201b169116179055565b604080519182526020820192909252a23861264c565b506127ea906127b16127ac6127a143612ff1565b65ffffffffffff1690565b613058565b906127e56127be86612f88565b6127d56127c9610b4a565b63ffffffff9095168552565b6001600160e01b03166020840152565b61283e565b612777565b5163ffffffff16905063ffffffff6128096127a143612ff1565b91161438612738565b61282f61282a60001984018360005260206000200190565b6124eb565b91612705565b5082151561263b565b8054680100000000000000008110156104c457612860916001820181556124bd565b61288757815160209283015190921b63ffffffff191663ffffffff92909216919091179055565b634e487b7160e01b600052600060045260246000fd5b909181549182159283600014612939576128b5610b4a565b60008152600060208201525b60208101516128e3906128dc906001600160e01b0316612718565b9687613826565b94159081612916575b50156129025761276061057d9261274e86612f88565b5061057d906127b16127ac6127a143612ff1565b5163ffffffff16905063ffffffff6129306127a143612ff1565b911614386128ec565b61295161282a60001983018460005260206000200190565b6128c1565b91610764939161296593612a94565b91909161297181610625565b806129795750565b61298281610625565b600181036129cf5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b6129d881610625565b60028103612a255760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80612a31600392610625565b14612a3857565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b6040513d6000823e3d90fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311612b0a5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561042c5781516001600160a01b03811615612b04579190565b50600190565b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480612c07575b15612b71577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152612c0181610501565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612b48565b604290612c3b612b16565b906040519161190160f01b8352600283015260228201522090565b60ff8114612c675761076490612dcb565b50604051600554816000612c7a83610460565b80835292600190818116908115612d005750600114612ca1575b506107649250038261051d565b6005600090815291507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b848310612ce55750610764935050810160200138612c94565b81935090816020925483858901015201910190918492612ccc565b90506020925061076494915060ff191682840152151560051b82010138612c94565b60ff8114612d335761076490612dcb565b50604051600654816000612d4683610460565b80835292600190818116908115612d005750600114612d6c57506107649250038261051d565b6006600090815291507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b848310612db05750610764935050810160200138612c94565b81935090816020925483858901015201910190918492612d97565b60ff811690601f8211612def5760405191612de5836104c9565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b8115612e0b570490565b634e487b7160e01b600052601260045260246000fd5b90808216911860011c8101809111610e785790565b8015612f705780612f09612f02612ef8612eee612ee4612eda612ed0612ec660016107649a6000908b60801c80612f64575b508060401c80612f57575b508060201c80612f4a575b508060101c80612f3d575b508060081c80612f30575b508060041c80612f23575b508060021c80612f16575b50821c612f0f575b811c1b612ebf818b612e01565b0160011c90565b612ebf818a612e01565b612ebf8189612e01565b612ebf8188612e01565b612ebf8187612e01565b612ebf8186612e01565b612ebf8185612e01565b8092612e01565b90612f76565b8101612eb2565b6002915091019038612eaa565b6004915091019038612e9f565b6008915091019038612e94565b6010915091019038612e89565b6020915091019038612e7e565b6040915091019038612e73565b91505060809038612e68565b50600090565b9080821015612f83575090565b905090565b6001600160e01b0390818111612f9c571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff90818111613004571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff90818111613069571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b6001600160a01b0390811660009081526009602052604080822054938316825290205461057d93929082169116612622565b156130f657565b60405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420424c4f434b2062616c616e63650000000000006044820152606490fd5b1561314257565b60405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e74207374616b65642062616c616e636500000000006044820152606490fd5b1561318e57565b60405162461bcd60e51b815260206004820152601a60248201527f323468207374616b696e6720706572696f64206e6f74206d65740000000000006044820152606490fd5b156131da57565b60405162461bcd60e51b815260206004820152601060248201526f26bab9ba10313290309039ba30b5b2b960811b6044820152606490fd5b926009613302929333600052600d60205261323360406000205415156131d3565b336000908152600d602052604090206132599068056bc75e2d631000009054101561333f565b61326d6001600160a01b038416151561338b565b61328061327b600f546133d7565b600f55565b600f5490613298826000526010602052604060002090565b9182556001820180546001600160a01b031916331790556132bc876002840161343a565b4260058301556132cb42612165565b60068301556132dd8660078401613509565b60088201550180546001600160a01b0319166001600160a01b03909216919091179055565b7f8356bc5007056a642094f44da4e8e22469db3e8a36b5811c0f91f735f1491c79600f549283926133396040519283923384613528565b0390a290565b1561334657565b60405162461bcd60e51b815260206004820152601f60248201527f4d757374207374616b652031303020424c4f434b20746f2070726f706f7365006044820152606490fd5b1561339257565b60405162461bcd60e51b815260206004820152601760248201527f496e76616c69642074617267657420636f6e74726163740000000000000000006044820152606490fd5b6000198114610e785760010190565b90601f81116133f457505050565b600091825260208220906020601f850160051c83019410613430575b601f0160051c01915b82811061342557505050565b818155600101613419565b9092508290613410565b919091825167ffffffffffffffff81116104c4576134628161345c8454610460565b846133e6565b602080601f831160011461349e575081929394600092613493575b50508160011b916000199060031b1c1916179055565b01519050388061347d565b90601f198316956134b485600052602060002090565b926000905b8882106134f1575050836001959697106134d8575b505050811b019055565b015160001960f88460031b161c191690553880806134ce565b806001859682949686015181550195019301906134b9565b9061351381610625565b61ff0082549160081b169061ff001916179055565b6001600160a01b03909116815261076492916060919061354781610625565b602082015281604082015201906105e5565b1561356057565b60405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081c1c9bdc1bdcd85b081251606a1b6044820152606490fd5b156135a257565b60405162461bcd60e51b8152602060048201526012602482015271159bdd1a5b99c81b9bdd081cdd185c9d195960721b6044820152606490fd5b156135e357565b60405162461bcd60e51b815260206004820152600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b1561361e57565b60405162461bcd60e51b815260206004820152600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b1561365a57565b60405162461bcd60e51b815260206004820152601760248201527f566f74696e6720706572696f64206e6f7420656e6465640000000000000000006044820152606490fd5b156136a657565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b156136f257565b60405162461bcd60e51b815260206004820152600f60248201526e141c9bdc1bdcd85b0819985a5b1959608a1b6044820152606490fd5b1561373057565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b1561376e57565b60405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742072657363756520676f7665726e616e636520746f6b656e73006044820152606490fd5b90816020910312610301575190565b156137c957565b60405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b6044820152606490fd5b90816020910312610301575161076481611bb4565b908103908111610e785790565b908101809111610e78579056fea264697066735822122076da48d96056ea587101dab015895a6bf31a4788683c77e6e87b86f3d80cc9dc64736f6c63430008130033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724