UNPKG

test-contracts-sovryn

Version:

Smart contracts for the Sovryn protocol and external integrations.

447 lines (446 loc) 36.5 kB
{ "_format": "hh-sol-artifact-1", "contractName": "VestingLogic", "sourceName": "contracts/governance/Vesting/VestingLogic.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "address", "name": "loanPoolToken", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint32", "name": "maxCheckpoints", "type": "uint32" } ], "name": "DividendsCollected", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newStakingContract", "type": "address" } ], "name": "MigratedToNewStakingContract", "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": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokensStaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" } ], "name": "TokensWithdrawn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "VotesDelegated", "type": "event" }, { "constant": true, "inputs": [], "name": "SOV", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "cliff", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_loanPoolToken", "type": "address" }, { "internalType": "uint32", "name": "_maxCheckpoints", "type": "uint32" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "collectDividends", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "duration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "endDate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "feeSharingProxy", "outputs": [ { "internalType": "contract IFeeSharingProxy", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "governanceWithdrawTokens", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "migrateToNewStakingContract", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "receiveApproval", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "stakeTokens", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "stakeTokensWithApproval", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "staking", "outputs": [ { "internalType": "contract Staking", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "startDate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "tokenOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "withdrawTokens", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b611a15806100796000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80636a26b57f116100ad5780638f32d59b116100715780638f32d59b1461020a5780638f4ffcb11461021f578063a3e6761014610232578063c24a0f8b1461023a578063f2fde38b1461024257610121565b80636a26b57f146101b45780637547c7a3146101bc57806378f24bc6146101cf57806381e45268146101e25780638da5cb5b146101f557610121565b806349df728c116100f457806349df728c146101695780634cf088d91461017e5780635419675f146101865780635c19a95c1461018e57806362dc2f35146101a157610121565b806308dcb360146101265780630b97bc86146101445780630fb5a6b41461015957806313d033c014610161575b600080fd5b61012e610255565b60405161013b91906117d2565b60405180910390f35b61014c610264565b60405161013b9190611871565b61014c61026a565b61014c610270565b61017c61017736600461123d565b610276565b005b61012e6102c5565b61017c6102d4565b61017c61019c36600461123d565b610455565b61017c6101af366004611339565b61056c565b61012e610679565b61017c6101ca3660046113e7565b610688565b61017c6101dd36600461123d565b610692565b61017c6101f0366004611281565b6106c7565b6101fd6106f4565b60405161013b9190611708565b610212610703565b60405161013b91906117c4565b61017c61022d3660046112bb565b610727565b6101fd61091b565b61014c61092a565b61017c61025036600461123d565b610930565b6001546001600160a01b031681565b60075481565b60065481565b60055481565b6003546001600160a01b03163314806102925750610292610703565b6102b75760405162461bcd60e51b81526004016102ae90611831565b60405180910390fd5b6102c281600061095d565b50565b6002546001600160a01b031681565b6003546001600160a01b03163314806102f057506102f0610703565b61030c5760405162461bcd60e51b81526004016102ae90611831565b600260009054906101000a90046001600160a01b03166001600160a01b0316635419675f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561035c57600080fd5b505af1158015610370573d6000803e3d6000fd5b50505050600260009054906101000a90046001600160a01b03166001600160a01b031663ae81dfe46040518163ffffffff1660e01b815260040160206040518083038186803b1580156103c257600080fd5b505afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103fa9190810190611263565b600280546001600160a01b0319166001600160a01b03928316179081905560405133927f9613f431247983a83a2b3667aa63a5174194ac89328dfadc69be44409521b3c19261044b92911690611708565b60405180910390a2565b6003546001600160a01b0316331461047f5760405162461bcd60e51b81526004016102ae90611831565b6001600160a01b0381166104a55760405162461bcd60e51b81526004016102ae90611841565b600554600754015b60085481116105275760025460405163026e402b60e01b81526001600160a01b039091169063026e402b906104e89085908590600401611766565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050506224ea00810190506104ad565b50336001600160a01b03167f734a802cc194e2139bfcc08e10336f24dfa14fd2c5ab70268d8706c055867066826040516105619190611708565b60405180910390a250565b6003546001600160a01b03163314806105885750610588610703565b6105a45760405162461bcd60e51b81526004016102ae90611831565b6001600160a01b0381166105ca5760405162461bcd60e51b81526004016102ae90611851565b6004805460405163a965b3a960e01b81526001600160a01b039091169163a965b3a9916105fd918791879187910161179c565b600060405180830381600087803b15801561061757600080fd5b505af115801561062b573d6000803e3d6000fd5b50505050336001600160a01b03167f5fa0b381cb4bdbc7063d1e5c78b90a634a6d6a12d6cb6fabe450fd4b8d1eab0184838560405161066c9392919061173e565b60405180910390a2505050565b6004546001600160a01b031681565b6102c23382610bfc565b6002546001600160a01b031633146106bc5760405162461bcd60e51b81526004016102ae90611831565b6102c281600161095d565b3330146106e65760405162461bcd60e51b81526004016102ae90611831565b6106f08282610bfc565b5050565b6000546001600160a01b031690565b600080546001600160a01b0316610718610ede565b6001600160a01b031614905090565b61072f610ee2565b6001600160a01b0316336001600160a01b03161461075f5760405162461bcd60e51b81526004016102ae90611831565b336001600160a01b038416146107875760405162461bcd60e51b81526004016102ae90611831565b60006060610793610ef1565b905060006107d685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f4992505050565b905060005b8251811015610824578281815181106107f057fe5b60200260200101516001600160e01b031916826001600160e01b031916141561081c5760019350610824565b6001016107db565b50826108425760405162461bcd60e51b81526004016102ae90611811565b600080600060201b878760405160200161085e939291906116cf565b60405160208183030381529060405280602001905161088091908101906113a4565b9093509150506001600160a01b03808316908b16146108b15760405162461bcd60e51b81526004016102ae90611821565b8881146108d05760405162461bcd60e51b81526004016102ae90611861565b61090f87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f5092505050565b50505050505050505050565b6003546001600160a01b031681565b60085481565b610938610703565b6109545760405162461bcd60e51b81526004016102ae90611831565b6102c28161102a565b6001600160a01b0382166109835760405162461bcd60e51b81526004016102ae90611851565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316639929e8866040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0c9190810190611386565b80610a145750825b15610a225750600854610a25565b50425b600554600754015b818111610bb4576002546040516367bdb42560e11b81526001600160a01b039091169063cf7b684a90610a6c9030908590600019430190600401611781565b60206040518083038186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610abc9190810190611423565b92506bffffffffffffffffffffffff831615610baa578315610b4357600254604051634005b26560e11b81526001600160a01b039091169063800b64ca90610b0c90869085908a906004016118d9565b600060405180830381600087803b158015610b2657600080fd5b505af1158015610b3a573d6000803e3d6000fd5b50505050610baa565b6002546040516336adb29160e21b81526001600160a01b039091169063dab6ca4490610b7790869085908a906004016118d9565b600060405180830381600087803b158015610b9157600080fd5b505af1158015610ba5573d6000803e3d6000fd5b505050505b6224ea0001610a2d565b50336001600160a01b03167f351b2b7a8b3659a02c6c87ac06e00099a1e5979171161a69eab5d057deb838ec85604051610bee9190611708565b60405180910390a250505050565b600754610c87576002546040516372ec979560e01b81526001600160a01b03909116906372ec979590610c33904290600401611871565b60206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c839190810190611405565b6007555b6002546006546040516372ec979560e01b81526001600160a01b03909216916372ec979591610cbd914290910190600401611871565b60206040518083038186803b158015610cd557600080fd5b505afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d0d9190810190611405565b6008556001546040516323b872dd60e01b81526000916001600160a01b0316906323b872dd90610d4590869030908790600401611716565b602060405180830381600087803b158015610d5f57600080fd5b505af1158015610d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d979190810190611386565b905080610da357600080fd5b60015460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610dd9929116908690600401611766565b602060405180830381600087803b158015610df357600080fd5b505af1158015610e07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e2b9190810190611386565b50600254600554600654600354604051632597f50f60e11b81526001600160a01b0394851694634b2fea1e94610e73948994919390926224ea0092309291169060040161187f565b600060405180830381600087803b158015610e8d57600080fd5b505af1158015610ea1573d6000803e3d6000fd5b50505050826001600160a01b03167fb539ca1e5c8d398ddf1c41c30166f33404941683be4683319b57669a93dad4ef8360405161066c9190611871565b3390565b6001546001600160a01b031690565b604080516001808252818301909252606091829190602080830190803883390190505090506381e4526860e01b81600081518110610f2b57fe5b6001600160e01b031990921660209283029190910190910152905090565b6020015190565b60006060306001600160a01b031683604051610f6c91906116f5565b6000604051808303816000865af19150503d8060008114610fa9576040519150601f19603f3d011682016040523d82523d6000602084013e610fae565b606091505b509150915081611025576044815111610fd95760405162461bcd60e51b81526004016102ae906117f1565b61100c6040518060400160405280601181526020017003932b1b2b4bb32a0b8383937bb30b61d1607d1b815250826110ab565b60405162461bcd60e51b81526004016102ae91906117e0565b505050565b6001600160a01b0381166110505760405162461bcd60e51b81526004016102ae90611801565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060808390506060839050606060448251845101036040519080825280601f01601f1916602001820160405280156110ea576020820181803883390190505b509050806000805b85518110156111435785818151811061110757fe5b602001015160f81c60f81b83838060010194508151811061112457fe5b60200101906001600160f81b031916908160001a9053506001016110f2565b5060445b84518110156111985784818151811061115c57fe5b602001015160f81c60f81b83838060010194508151811061117957fe5b60200101906001600160f81b031916908160001a905350600101611147565b50909450505050505b92915050565b80356111a18161199a565b80516111a18161199a565b80516111a1816119ae565b80516111a1816119b7565b60008083601f8401126111e557600080fd5b50813567ffffffffffffffff8111156111fd57600080fd5b60208301915083600182028301111561121557600080fd5b9250929050565b80356111a1816119b7565b80356111a1816119c0565b80516111a1816119c9565b60006020828403121561124f57600080fd5b600061125b84846111a7565b949350505050565b60006020828403121561127557600080fd5b600061125b84846111b2565b6000806040838503121561129457600080fd5b60006112a085856111a7565b92505060206112b18582860161121c565b9150509250929050565b6000806000806000608086880312156112d357600080fd5b60006112df88886111a7565b95505060206112f08882890161121c565b9450506040611301888289016111a7565b935050606086013567ffffffffffffffff81111561131e57600080fd5b61132a888289016111d3565b92509250509295509295909350565b60008060006060848603121561134e57600080fd5b600061135a86866111a7565b935050602061136b86828701611227565b925050604061137c868287016111a7565b9150509250925092565b60006020828403121561139857600080fd5b600061125b84846111bd565b6000806000606084860312156113b957600080fd5b60006113c586866111c8565b93505060206113d6868287016111b2565b925050604061137c868287016111c8565b6000602082840312156113f957600080fd5b600061125b848461121c565b60006020828403121561141757600080fd5b600061125b84846111c8565b60006020828403121561143557600080fd5b600061125b8484611232565b61144a81611906565b82525050565b61144a81611911565b61144a61146582611916565b611920565b600061147683856118f8565b9350611483838584611954565b50500190565b6000611494826118f4565b61149e81856118f8565b93506114ae818560208601611960565b9290920192915050565b61144a81611949565b60006114cc826118f4565b6114d681856118fd565b93506114e6818560208601611960565b6114ef81611990565b9093019392505050565b60006115066030836118fd565b7f72656365697665417070726f76616c3a205472616e73616374696f6e2065786581526f31baba34b7b7103932bb32b93a32b21760811b602082015260400192915050565b60006115586026836118fd565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b60006115a06015836118fd565b741b595d1a1bd9081a5cc81b9bdd08185b1b1bddd959605a1b815260200192915050565b60006115d1600f836118fd565b6e0e6cadcc8cae440dad2e6dac2e8c6d608b1b815260200192915050565b60006115fc600c836118fd565b6b1d5b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006116246019836118fd565b7f64656c656761746565206164647265737320696e76616c696400000000000000815260200192915050565b600061165d6018836118fd565b7f7265636569766572206164647265737320696e76616c69640000000000000000815260200192915050565b6000611696600f836118fd565b6e0c2dadeeadce840dad2e6dac2e8c6d608b1b815260200192915050565b61144a81611920565b61144a8161192f565b61144a81611938565b60006116db8286611459565b601c820191506116ec82848661146a565b95945050505050565b60006117018284611489565b9392505050565b602081016111a18284611441565b606081016117248286611441565b6117316020830185611441565b61125b60408301846116b4565b6060810161174c8286611441565b6117596020830185611441565b61125b60408301846116bd565b604081016117748285611441565b61170160208301846116b4565b6060810161178f8286611441565b61173160208301856116b4565b606081016117aa8286611441565b6117b760208301856116bd565b61125b6040830184611441565b602081016111a18284611450565b602081016111a182846114b8565b6020808252810161170181846114c1565b602080825281016111a1816114f9565b602080825281016111a18161154b565b602080825281016111a181611593565b602080825281016111a1816115c4565b602080825281016111a1816115ef565b602080825281016111a181611617565b602080825281016111a181611650565b602080825281016111a181611689565b602081016111a182846116b4565b60c0810161188d82896116b4565b61189a60208301886116b4565b6118a760408301876116b4565b6118b460608301866116b4565b6118c16080830185611441565b6118ce60a0830184611441565b979650505050505050565b606081016118e782866116c6565b6117b760208301856116b4565b5190565b919050565b90815260200190565b60006111a182611923565b151590565b63ffffffff191690565b90565b6001600160a01b031690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b60006111a182611906565b82818337506000910152565b60005b8381101561197b578181015183820152602001611963565b8381111561198a576000848401525b50505050565b601f01601f191690565b6119a381611906565b81146102c257600080fd5b6119a381611911565b6119a381611920565b6119a38161192f565b6119a38161193856fea365627a7a723158207d2c296b77b006db861fa1b63a1d47e03caf7a3e733b673087525ccde5abe9916c6578706572696d656e74616cf564736f6c63430005110040", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c80636a26b57f116100ad5780638f32d59b116100715780638f32d59b1461020a5780638f4ffcb11461021f578063a3e6761014610232578063c24a0f8b1461023a578063f2fde38b1461024257610121565b80636a26b57f146101b45780637547c7a3146101bc57806378f24bc6146101cf57806381e45268146101e25780638da5cb5b146101f557610121565b806349df728c116100f457806349df728c146101695780634cf088d91461017e5780635419675f146101865780635c19a95c1461018e57806362dc2f35146101a157610121565b806308dcb360146101265780630b97bc86146101445780630fb5a6b41461015957806313d033c014610161575b600080fd5b61012e610255565b60405161013b91906117d2565b60405180910390f35b61014c610264565b60405161013b9190611871565b61014c61026a565b61014c610270565b61017c61017736600461123d565b610276565b005b61012e6102c5565b61017c6102d4565b61017c61019c36600461123d565b610455565b61017c6101af366004611339565b61056c565b61012e610679565b61017c6101ca3660046113e7565b610688565b61017c6101dd36600461123d565b610692565b61017c6101f0366004611281565b6106c7565b6101fd6106f4565b60405161013b9190611708565b610212610703565b60405161013b91906117c4565b61017c61022d3660046112bb565b610727565b6101fd61091b565b61014c61092a565b61017c61025036600461123d565b610930565b6001546001600160a01b031681565b60075481565b60065481565b60055481565b6003546001600160a01b03163314806102925750610292610703565b6102b75760405162461bcd60e51b81526004016102ae90611831565b60405180910390fd5b6102c281600061095d565b50565b6002546001600160a01b031681565b6003546001600160a01b03163314806102f057506102f0610703565b61030c5760405162461bcd60e51b81526004016102ae90611831565b600260009054906101000a90046001600160a01b03166001600160a01b0316635419675f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561035c57600080fd5b505af1158015610370573d6000803e3d6000fd5b50505050600260009054906101000a90046001600160a01b03166001600160a01b031663ae81dfe46040518163ffffffff1660e01b815260040160206040518083038186803b1580156103c257600080fd5b505afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103fa9190810190611263565b600280546001600160a01b0319166001600160a01b03928316179081905560405133927f9613f431247983a83a2b3667aa63a5174194ac89328dfadc69be44409521b3c19261044b92911690611708565b60405180910390a2565b6003546001600160a01b0316331461047f5760405162461bcd60e51b81526004016102ae90611831565b6001600160a01b0381166104a55760405162461bcd60e51b81526004016102ae90611841565b600554600754015b60085481116105275760025460405163026e402b60e01b81526001600160a01b039091169063026e402b906104e89085908590600401611766565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050506224ea00810190506104ad565b50336001600160a01b03167f734a802cc194e2139bfcc08e10336f24dfa14fd2c5ab70268d8706c055867066826040516105619190611708565b60405180910390a250565b6003546001600160a01b03163314806105885750610588610703565b6105a45760405162461bcd60e51b81526004016102ae90611831565b6001600160a01b0381166105ca5760405162461bcd60e51b81526004016102ae90611851565b6004805460405163a965b3a960e01b81526001600160a01b039091169163a965b3a9916105fd918791879187910161179c565b600060405180830381600087803b15801561061757600080fd5b505af115801561062b573d6000803e3d6000fd5b50505050336001600160a01b03167f5fa0b381cb4bdbc7063d1e5c78b90a634a6d6a12d6cb6fabe450fd4b8d1eab0184838560405161066c9392919061173e565b60405180910390a2505050565b6004546001600160a01b031681565b6102c23382610bfc565b6002546001600160a01b031633146106bc5760405162461bcd60e51b81526004016102ae90611831565b6102c281600161095d565b3330146106e65760405162461bcd60e51b81526004016102ae90611831565b6106f08282610bfc565b5050565b6000546001600160a01b031690565b600080546001600160a01b0316610718610ede565b6001600160a01b031614905090565b61072f610ee2565b6001600160a01b0316336001600160a01b03161461075f5760405162461bcd60e51b81526004016102ae90611831565b336001600160a01b038416146107875760405162461bcd60e51b81526004016102ae90611831565b60006060610793610ef1565b905060006107d685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f4992505050565b905060005b8251811015610824578281815181106107f057fe5b60200260200101516001600160e01b031916826001600160e01b031916141561081c5760019350610824565b6001016107db565b50826108425760405162461bcd60e51b81526004016102ae90611811565b600080600060201b878760405160200161085e939291906116cf565b60405160208183030381529060405280602001905161088091908101906113a4565b9093509150506001600160a01b03808316908b16146108b15760405162461bcd60e51b81526004016102ae90611821565b8881146108d05760405162461bcd60e51b81526004016102ae90611861565b61090f87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f5092505050565b50505050505050505050565b6003546001600160a01b031681565b60085481565b610938610703565b6109545760405162461bcd60e51b81526004016102ae90611831565b6102c28161102a565b6001600160a01b0382166109835760405162461bcd60e51b81526004016102ae90611851565b600080600260009054906101000a90046001600160a01b03166001600160a01b0316639929e8866040518163ffffffff1660e01b815260040160206040518083038186803b1580156109d457600080fd5b505afa1580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0c9190810190611386565b80610a145750825b15610a225750600854610a25565b50425b600554600754015b818111610bb4576002546040516367bdb42560e11b81526001600160a01b039091169063cf7b684a90610a6c9030908590600019430190600401611781565b60206040518083038186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610abc9190810190611423565b92506bffffffffffffffffffffffff831615610baa578315610b4357600254604051634005b26560e11b81526001600160a01b039091169063800b64ca90610b0c90869085908a906004016118d9565b600060405180830381600087803b158015610b2657600080fd5b505af1158015610b3a573d6000803e3d6000fd5b50505050610baa565b6002546040516336adb29160e21b81526001600160a01b039091169063dab6ca4490610b7790869085908a906004016118d9565b600060405180830381600087803b158015610b9157600080fd5b505af1158015610ba5573d6000803e3d6000fd5b505050505b6224ea0001610a2d565b50336001600160a01b03167f351b2b7a8b3659a02c6c87ac06e00099a1e5979171161a69eab5d057deb838ec85604051610bee9190611708565b60405180910390a250505050565b600754610c87576002546040516372ec979560e01b81526001600160a01b03909116906372ec979590610c33904290600401611871565b60206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c839190810190611405565b6007555b6002546006546040516372ec979560e01b81526001600160a01b03909216916372ec979591610cbd914290910190600401611871565b60206040518083038186803b158015610cd557600080fd5b505afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d0d9190810190611405565b6008556001546040516323b872dd60e01b81526000916001600160a01b0316906323b872dd90610d4590869030908790600401611716565b602060405180830381600087803b158015610d5f57600080fd5b505af1158015610d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d979190810190611386565b905080610da357600080fd5b60015460025460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610dd9929116908690600401611766565b602060405180830381600087803b158015610df357600080fd5b505af1158015610e07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e2b9190810190611386565b50600254600554600654600354604051632597f50f60e11b81526001600160a01b0394851694634b2fea1e94610e73948994919390926224ea0092309291169060040161187f565b600060405180830381600087803b158015610e8d57600080fd5b505af1158015610ea1573d6000803e3d6000fd5b50505050826001600160a01b03167fb539ca1e5c8d398ddf1c41c30166f33404941683be4683319b57669a93dad4ef8360405161066c9190611871565b3390565b6001546001600160a01b031690565b604080516001808252818301909252606091829190602080830190803883390190505090506381e4526860e01b81600081518110610f2b57fe5b6001600160e01b031990921660209283029190910190910152905090565b6020015190565b60006060306001600160a01b031683604051610f6c91906116f5565b6000604051808303816000865af19150503d8060008114610fa9576040519150601f19603f3d011682016040523d82523d6000602084013e610fae565b606091505b509150915081611025576044815111610fd95760405162461bcd60e51b81526004016102ae906117f1565b61100c6040518060400160405280601181526020017003932b1b2b4bb32a0b8383937bb30b61d1607d1b815250826110ab565b60405162461bcd60e51b81526004016102ae91906117e0565b505050565b6001600160a01b0381166110505760405162461bcd60e51b81526004016102ae90611801565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060808390506060839050606060448251845101036040519080825280601f01601f1916602001820160405280156110ea576020820181803883390190505b509050806000805b85518110156111435785818151811061110757fe5b602001015160f81c60f81b83838060010194508151811061112457fe5b60200101906001600160f81b031916908160001a9053506001016110f2565b5060445b84518110156111985784818151811061115c57fe5b602001015160f81c60f81b83838060010194508151811061117957fe5b60200101906001600160f81b031916908160001a905350600101611147565b50909450505050505b92915050565b80356111a18161199a565b80516111a18161199a565b80516111a1816119ae565b80516111a1816119b7565b60008083601f8401126111e557600080fd5b50813567ffffffffffffffff8111156111fd57600080fd5b60208301915083600182028301111561121557600080fd5b9250929050565b80356111a1816119b7565b80356111a1816119c0565b80516111a1816119c9565b60006020828403121561124f57600080fd5b600061125b84846111a7565b949350505050565b60006020828403121561127557600080fd5b600061125b84846111b2565b6000806040838503121561129457600080fd5b60006112a085856111a7565b92505060206112b18582860161121c565b9150509250929050565b6000806000806000608086880312156112d357600080fd5b60006112df88886111a7565b95505060206112f08882890161121c565b9450506040611301888289016111a7565b935050606086013567ffffffffffffffff81111561131e57600080fd5b61132a888289016111d3565b92509250509295509295909350565b60008060006060848603121561134e57600080fd5b600061135a86866111a7565b935050602061136b86828701611227565b925050604061137c868287016111a7565b9150509250925092565b60006020828403121561139857600080fd5b600061125b84846111bd565b6000806000606084860312156113b957600080fd5b60006113c586866111c8565b93505060206113d6868287016111b2565b925050604061137c868287016111c8565b6000602082840312156113f957600080fd5b600061125b848461121c565b60006020828403121561141757600080fd5b600061125b84846111c8565b60006020828403121561143557600080fd5b600061125b8484611232565b61144a81611906565b82525050565b61144a81611911565b61144a61146582611916565b611920565b600061147683856118f8565b9350611483838584611954565b50500190565b6000611494826118f4565b61149e81856118f8565b93506114ae818560208601611960565b9290920192915050565b61144a81611949565b60006114cc826118f4565b6114d681856118fd565b93506114e6818560208601611960565b6114ef81611990565b9093019392505050565b60006115066030836118fd565b7f72656365697665417070726f76616c3a205472616e73616374696f6e2065786581526f31baba34b7b7103932bb32b93a32b21760811b602082015260400192915050565b60006115586026836118fd565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b60006115a06015836118fd565b741b595d1a1bd9081a5cc81b9bdd08185b1b1bddd959605a1b815260200192915050565b60006115d1600f836118fd565b6e0e6cadcc8cae440dad2e6dac2e8c6d608b1b815260200192915050565b60006115fc600c836118fd565b6b1d5b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006116246019836118fd565b7f64656c656761746565206164647265737320696e76616c696400000000000000815260200192915050565b600061165d6018836118fd565b7f7265636569766572206164647265737320696e76616c69640000000000000000815260200192915050565b6000611696600f836118fd565b6e0c2dadeeadce840dad2e6dac2e8c6d608b1b815260200192915050565b61144a81611920565b61144a8161192f565b61144a81611938565b60006116db8286611459565b601c820191506116ec82848661146a565b95945050505050565b60006117018284611489565b9392505050565b602081016111a18284611441565b606081016117248286611441565b6117316020830185611441565b61125b60408301846116b4565b6060810161174c8286611441565b6117596020830185611441565b61125b60408301846116bd565b604081016117748285611441565b61170160208301846116b4565b6060810161178f8286611441565b61173160208301856116b4565b606081016117aa8286611441565b6117b760208301856116bd565b61125b6040830184611441565b602081016111a18284611450565b602081016111a182846114b8565b6020808252810161170181846114c1565b602080825281016111a1816114f9565b602080825281016111a18161154b565b602080825281016111a181611593565b602080825281016111a1816115c4565b602080825281016111a1816115ef565b602080825281016111a181611617565b602080825281016111a181611650565b602080825281016111a181611689565b602081016111a182846116b4565b60c0810161188d82896116b4565b61189a60208301886116b4565b6118a760408301876116b4565b6118b460608301866116b4565b6118c16080830185611441565b6118ce60a0830184611441565b979650505050505050565b606081016118e782866116c6565b6117b760208301856116b4565b5190565b919050565b90815260200190565b60006111a182611923565b151590565b63ffffffff191690565b90565b6001600160a01b031690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b60006111a182611906565b82818337506000910152565b60005b8381101561197b578181015183820152602001611963565b8381111561198a576000848401525b50505050565b601f01601f191690565b6119a381611906565b81146102c257600080fd5b6119a381611911565b6119a381611920565b6119a38161192f565b6119a38161193856fea365627a7a723158207d2c296b77b006db861fa1b63a1d47e03caf7a3e733b673087525ccde5abe9916c6578706572696d656e74616cf564736f6c63430005110040", "linkReferences": {}, "deployedLinkReferences": {} }