{
    "_format": "hh-sol-artifact-1",
    "contractName": "Vesting",
    "sourceName": "contracts/root/Vesting.sol",
    "abi": [
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_token",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_vtToken",
                    "type": "address"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "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": "user",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "allocation",
                    "type": "uint256"
                }
            ],
            "name": "VestingAllocated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "VestingClaimed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "lockPeriod",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "vestingPeriod",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "initialUnlockPercent",
                    "type": "uint256"
                }
            ],
            "name": "VestingPlanAdded",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_lockPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_vestingPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_initialUnlockPercent",
                    "type": "uint256"
                }
            ],
            "name": "addVestingPlan",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "allocations",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256[]",
                    "name": "_planIds",
                    "type": "uint256[]"
                },
                {
                    "internalType": "address[]",
                    "name": "_addrs",
                    "type": "address[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_allocations",
                    "type": "uint256[]"
                }
            ],
            "name": "batchAllocateVesting",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                }
            ],
            "name": "claim",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "claimFor",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                }
            ],
            "name": "claimableAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "claimed",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "plans",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "lockPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "vestingPeriod",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "initialUnlockPercent",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "plansLength",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_vestingStartDate",
                    "type": "uint256"
                }
            ],
            "name": "startVesting",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "token",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "totalAllocation",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "totalClaimed",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "planId",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "user",
                    "type": "address"
                }
            ],
            "name": "unlockedAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "vestingStartDate",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "vtToken",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "withdrawAllByAdmin",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x60806040523480156200001157600080fd5b50604051620014fb380380620014fb83398101604081905262000034916200016c565b6200003f33620000ff565b6001600160a01b038216620000895760405162461bcd60e51b815260040162000080906020808252600490820152634730303960e01b604082015260600190565b60405180910390fd5b6001600160a01b038116620000ca5760405162461bcd60e51b815260040162000080906020808252600490820152634730303960e01b604082015260600190565b600280546001600160a01b039283166001600160a01b03199182161790915560018054939092169216919091179055620001a4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200016757600080fd5b919050565b600080604083850312156200018057600080fd5b6200018b836200014f565b91506200019b602084016200014f565b90509250929050565b61134780620001b46000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806379203dc4116100ad578063d54ad2a111610071578063d54ad2a11461028f578063f2ab3a5a14610298578063f2fde38b146102ab578063f311df8e146102be578063fc0c546a146102d157600080fd5b806379203dc41461022c5780638da5cb5b1461023557806394a368d214610246578063b16206161461024e578063c0b793e71461027c57600080fd5b80632e4313c4116100f45780632e4313c4146101e2578063379607f5146101f55780633a4dc2fb14610208578063579acacc1461021b578063715018a61461022457600080fd5b806310ee3f0014610131578063120aa877146101465780631c3a964f1461018457806326837aa8146101af57806327c0cdab146101b7575b600080fd5b61014461013f3660046110a8565b6102e4565b005b6101716101543660046110a8565b600860209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6101716101923660046110a8565b600760209081526000928352604080842090915290825290205481565b600654610171565b6002546101ca906001600160a01b031681565b6040516001600160a01b03909116815260200161017b565b6101446101f0366004611120565b6102f2565b6101446102033660046111ba565b610458565b6101446102163660046111ba565b610465565b61017160035481565b61014461055c565b61017160045481565b6000546001600160a01b03166101ca565b610144610570565b61026161025c3660046111ba565b610690565b6040805193845260208401929092529082015260600161017b565b61014461028a3660046111d3565b6106c3565b61017160055481565b6101716102a63660046110a8565b610802565b6101446102b93660046111ff565b610a07565b6101716102cc3660046110a8565b610a7d565b6001546101ca906001600160a01b031681565b6102ee8282610b19565b5050565b6102fa610e11565b826103395760405162461bcd60e51b8152600401610330906020808252600490820152635630303560e01b604082015260600190565b60405180910390fd5b8281146103715760405162461bcd60e51b8152600401610330906020808252600490820152632b18181b60e11b604082015260600190565b8285146103a95760405162461bcd60e51b8152600401610330906020808252600490820152632b18181b60e11b604082015260600190565b6000805b84811015610446576104168686838181106103ca576103ca611221565b90506020020160208101906103df91906111ff565b8989848181106103f1576103f1611221565b9050602002013586868581811061040a5761040a611221565b90506020020135610e6b565b83838281811061042857610428611221565b9050602002013582019150808061043e9061124d565b9150506103ad565b50600480549091019055505050505050565b6104628133610b19565b50565b61046d610e11565b8042106104a55760405162461bcd60e51b8152600401610330906020808252600490820152635630303960e01b604082015260600190565b60038190556001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190611266565b905060045481146105535760405162461bcd60e51b8152600401610330906020808252600490820152630563031360e41b604082015260600190565b6102ee30610a07565b610564610e11565b61056e600061103c565b565b610578610e11565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190611266565b60015460405163a9059cbb60e01b8152336004820152602481018390529192506001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065b919061127f565b6104625760405162461bcd60e51b8152600401610330906020808252600490820152630ac6060760e31b604082015260600190565b600681815481106106a057600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b6106cb610e11565b60648111156107055760405162461bcd60e51b8152600401610330906020808252600490820152635630303160e01b604082015260600190565b60408051606081018252848152602081018481529181018381526006805460018082018355600083905293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f60039092029182015593517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4085015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d419093019290925590547fca5df404991e1c363c1fc3388c80b7ef8238e1c7ce3100ccf9e311af8f5e38a8916107d8916112a1565b604080519182526020820186905281018490526060810183905260800160405180910390a1505050565b600060035460001480610835575060008381526007602090815260408083206001600160a01b0386168452909152902054155b1561084257506000610a01565b60006006848154811061085757610857611221565b6000918252602080832060408051606081018252600394850290920180548084526001820154948401949094526002015490820152915491935061089a916112b8565b90508042116108ae57600092505050610a01565b60008260200151826108c091906112b8565b90508260200151600014806108d457508042115b156109255760008681526008602090815260408083206001600160a01b038916808552908352818420548a85526007845282852091855292529091205461091b91906112a1565b9350505050610a01565b600061093183426112a1565b60408086015160008a8152600760209081528382206001600160a01b038c1683529052918220549293509091606491610969916112d0565b61097391906112ef565b60008981526007602090815260408083206001600160a01b038c168452909152812054919250906109a59083906112a1565b60008a81526008602090815260408083206001600160a01b038d16845282529091205490880151919250906109da85846112d0565b6109e491906112ef565b6109ee90846112b8565b6109f891906112a1565b96505050505050505b92915050565b610a0f610e11565b6001600160a01b038116610a745760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610330565b6104628161103c565b600080610a8a8484610802565b6002546040516370a0823160e01b81526001600160a01b038681166004830152929350600092909116906370a0823190602401602060405180830381865afa158015610ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afe9190611266565b905081811015610b0e5780610b10565b815b95945050505050565b6006548210610b535760405162461bcd60e51b8152600401610330906020808252600490820152635630313360e01b604082015260600190565b60008281526007602090815260408083206001600160a01b03851684529091528120549003610bad5760405162461bcd60e51b8152600401610330906020808252600490820152635630313160e01b604082015260600190565b6000610bb98383610a7d565b905060008111610bf45760405162461bcd60e51b8152600401610330906020808252600490820152632b18189960e11b604082015260600190565b60025460405163079cc67960e41b81526001600160a01b03848116600483015260248201849052909116906379cc679090604401600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b50505060008481526008602090815260408083206001600160a01b038716845290915281208054849350909190610c8e9084906112b8565b925050819055508060056000828254610ca791906112b8565b909155505060008381526007602090815260408083206001600160a01b03861680855290835281842054878552600884528285209185529252909120541115610d1b5760405162461bcd60e51b8152600401610330906020808252600490820152632b18189960e11b604082015260600190565b60015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d92919061127f565b610dc75760405162461bcd60e51b8152600401610330906020808252600490820152630ac6060760e31b604082015260600190565b60408051848152602081018390526001600160a01b038416917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172191015b60405180910390a2505050565b6000546001600160a01b0316331461056e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610330565b6001600160a01b038316610eaa5760405162461bcd60e51b8152600401610330906020808252600490820152632b18181960e11b604082015260600190565b60008281526007602090815260408083206001600160a01b038716845290915290205415610f035760405162461bcd60e51b8152600401610330906020808252600490820152635630303360e01b604082015260600190565b60008111610f3c5760405162461bcd60e51b815260040161033090602080825260049082015263158c0c0d60e21b604082015260600190565b6006548210610f765760405162461bcd60e51b8152600401610330906020808252600490820152635630313360e01b604082015260600190565b60008281526007602090815260408083206001600160a01b03878116808652919093529281902084905560025490516340c10f1960e01b815260048101939093526024830184905216906340c10f1990604401600060405180830381600087803b158015610fe357600080fd5b505af1158015610ff7573d6000803e3d6000fd5b505060408051858152602081018590526001600160a01b03871693507f6b467f0a76daac5283d2251b6e7660fed01ea99dbd70aa7092f3318731690c9d925001610e04565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146110a357600080fd5b919050565b600080604083850312156110bb57600080fd5b823591506110cb6020840161108c565b90509250929050565b60008083601f8401126110e657600080fd5b50813567ffffffffffffffff8111156110fe57600080fd5b6020830191508360208260051b850101111561111957600080fd5b9250929050565b6000806000806000806060878903121561113957600080fd5b863567ffffffffffffffff8082111561115157600080fd5b61115d8a838b016110d4565b9098509650602089013591508082111561117657600080fd5b6111828a838b016110d4565b9096509450604089013591508082111561119b57600080fd5b506111a889828a016110d4565b979a9699509497509295939492505050565b6000602082840312156111cc57600080fd5b5035919050565b6000806000606084860312156111e857600080fd5b505081359360208301359350604090920135919050565b60006020828403121561121157600080fd5b61121a8261108c565b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161125f5761125f611237565b5060010190565b60006020828403121561127857600080fd5b5051919050565b60006020828403121561129157600080fd5b8151801515811461121a57600080fd5b6000828210156112b3576112b3611237565b500390565b600082198211156112cb576112cb611237565b500190565b60008160001904831182151516156112ea576112ea611237565b500290565b60008261130c57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e060860dfd2661bcb3a064375a8cb4f867ef910a15585137866dfb558858298264736f6c634300080f0033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806379203dc4116100ad578063d54ad2a111610071578063d54ad2a11461028f578063f2ab3a5a14610298578063f2fde38b146102ab578063f311df8e146102be578063fc0c546a146102d157600080fd5b806379203dc41461022c5780638da5cb5b1461023557806394a368d214610246578063b16206161461024e578063c0b793e71461027c57600080fd5b80632e4313c4116100f45780632e4313c4146101e2578063379607f5146101f55780633a4dc2fb14610208578063579acacc1461021b578063715018a61461022457600080fd5b806310ee3f0014610131578063120aa877146101465780631c3a964f1461018457806326837aa8146101af57806327c0cdab146101b7575b600080fd5b61014461013f3660046110a8565b6102e4565b005b6101716101543660046110a8565b600860209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6101716101923660046110a8565b600760209081526000928352604080842090915290825290205481565b600654610171565b6002546101ca906001600160a01b031681565b6040516001600160a01b03909116815260200161017b565b6101446101f0366004611120565b6102f2565b6101446102033660046111ba565b610458565b6101446102163660046111ba565b610465565b61017160035481565b61014461055c565b61017160045481565b6000546001600160a01b03166101ca565b610144610570565b61026161025c3660046111ba565b610690565b6040805193845260208401929092529082015260600161017b565b61014461028a3660046111d3565b6106c3565b61017160055481565b6101716102a63660046110a8565b610802565b6101446102b93660046111ff565b610a07565b6101716102cc3660046110a8565b610a7d565b6001546101ca906001600160a01b031681565b6102ee8282610b19565b5050565b6102fa610e11565b826103395760405162461bcd60e51b8152600401610330906020808252600490820152635630303560e01b604082015260600190565b60405180910390fd5b8281146103715760405162461bcd60e51b8152600401610330906020808252600490820152632b18181b60e11b604082015260600190565b8285146103a95760405162461bcd60e51b8152600401610330906020808252600490820152632b18181b60e11b604082015260600190565b6000805b84811015610446576104168686838181106103ca576103ca611221565b90506020020160208101906103df91906111ff565b8989848181106103f1576103f1611221565b9050602002013586868581811061040a5761040a611221565b90506020020135610e6b565b83838281811061042857610428611221565b9050602002013582019150808061043e9061124d565b9150506103ad565b50600480549091019055505050505050565b6104628133610b19565b50565b61046d610e11565b8042106104a55760405162461bcd60e51b8152600401610330906020808252600490820152635630303960e01b604082015260600190565b60038190556001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190611266565b905060045481146105535760405162461bcd60e51b8152600401610330906020808252600490820152630563031360e41b604082015260600190565b6102ee30610a07565b610564610e11565b61056e600061103c565b565b610578610e11565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190611266565b60015460405163a9059cbb60e01b8152336004820152602481018390529192506001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065b919061127f565b6104625760405162461bcd60e51b8152600401610330906020808252600490820152630ac6060760e31b604082015260600190565b600681815481106106a057600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b6106cb610e11565b60648111156107055760405162461bcd60e51b8152600401610330906020808252600490820152635630303160e01b604082015260600190565b60408051606081018252848152602081018481529181018381526006805460018082018355600083905293517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f60039092029182015593517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4085015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d419093019290925590547fca5df404991e1c363c1fc3388c80b7ef8238e1c7ce3100ccf9e311af8f5e38a8916107d8916112a1565b604080519182526020820186905281018490526060810183905260800160405180910390a1505050565b600060035460001480610835575060008381526007602090815260408083206001600160a01b0386168452909152902054155b1561084257506000610a01565b60006006848154811061085757610857611221565b6000918252602080832060408051606081018252600394850290920180548084526001820154948401949094526002015490820152915491935061089a916112b8565b90508042116108ae57600092505050610a01565b60008260200151826108c091906112b8565b90508260200151600014806108d457508042115b156109255760008681526008602090815260408083206001600160a01b038916808552908352818420548a85526007845282852091855292529091205461091b91906112a1565b9350505050610a01565b600061093183426112a1565b60408086015160008a8152600760209081528382206001600160a01b038c1683529052918220549293509091606491610969916112d0565b61097391906112ef565b60008981526007602090815260408083206001600160a01b038c168452909152812054919250906109a59083906112a1565b60008a81526008602090815260408083206001600160a01b038d16845282529091205490880151919250906109da85846112d0565b6109e491906112ef565b6109ee90846112b8565b6109f891906112a1565b96505050505050505b92915050565b610a0f610e11565b6001600160a01b038116610a745760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610330565b6104628161103c565b600080610a8a8484610802565b6002546040516370a0823160e01b81526001600160a01b038681166004830152929350600092909116906370a0823190602401602060405180830381865afa158015610ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afe9190611266565b905081811015610b0e5780610b10565b815b95945050505050565b6006548210610b535760405162461bcd60e51b8152600401610330906020808252600490820152635630313360e01b604082015260600190565b60008281526007602090815260408083206001600160a01b03851684529091528120549003610bad5760405162461bcd60e51b8152600401610330906020808252600490820152635630313160e01b604082015260600190565b6000610bb98383610a7d565b905060008111610bf45760405162461bcd60e51b8152600401610330906020808252600490820152632b18189960e11b604082015260600190565b60025460405163079cc67960e41b81526001600160a01b03848116600483015260248201849052909116906379cc679090604401600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b50505060008481526008602090815260408083206001600160a01b038716845290915281208054849350909190610c8e9084906112b8565b925050819055508060056000828254610ca791906112b8565b909155505060008381526007602090815260408083206001600160a01b03861680855290835281842054878552600884528285209185529252909120541115610d1b5760405162461bcd60e51b8152600401610330906020808252600490820152632b18189960e11b604082015260600190565b60015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d92919061127f565b610dc75760405162461bcd60e51b8152600401610330906020808252600490820152630ac6060760e31b604082015260600190565b60408051848152602081018390526001600160a01b038416917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b5172191015b60405180910390a2505050565b6000546001600160a01b0316331461056e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610330565b6001600160a01b038316610eaa5760405162461bcd60e51b8152600401610330906020808252600490820152632b18181960e11b604082015260600190565b60008281526007602090815260408083206001600160a01b038716845290915290205415610f035760405162461bcd60e51b8152600401610330906020808252600490820152635630303360e01b604082015260600190565b60008111610f3c5760405162461bcd60e51b815260040161033090602080825260049082015263158c0c0d60e21b604082015260600190565b6006548210610f765760405162461bcd60e51b8152600401610330906020808252600490820152635630313360e01b604082015260600190565b60008281526007602090815260408083206001600160a01b03878116808652919093529281902084905560025490516340c10f1960e01b815260048101939093526024830184905216906340c10f1990604401600060405180830381600087803b158015610fe357600080fd5b505af1158015610ff7573d6000803e3d6000fd5b505060408051858152602081018590526001600160a01b03871693507f6b467f0a76daac5283d2251b6e7660fed01ea99dbd70aa7092f3318731690c9d925001610e04565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146110a357600080fd5b919050565b600080604083850312156110bb57600080fd5b823591506110cb6020840161108c565b90509250929050565b60008083601f8401126110e657600080fd5b50813567ffffffffffffffff8111156110fe57600080fd5b6020830191508360208260051b850101111561111957600080fd5b9250929050565b6000806000806000806060878903121561113957600080fd5b863567ffffffffffffffff8082111561115157600080fd5b61115d8a838b016110d4565b9098509650602089013591508082111561117657600080fd5b6111828a838b016110d4565b9096509450604089013591508082111561119b57600080fd5b506111a889828a016110d4565b979a9699509497509295939492505050565b6000602082840312156111cc57600080fd5b5035919050565b6000806000606084860312156111e857600080fd5b505081359360208301359350604090920135919050565b60006020828403121561121157600080fd5b61121a8261108c565b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161125f5761125f611237565b5060010190565b60006020828403121561127857600080fd5b5051919050565b60006020828403121561129157600080fd5b8151801515811461121a57600080fd5b6000828210156112b3576112b3611237565b500390565b600082198211156112cb576112cb611237565b500190565b60008160001904831182151516156112ea576112ea611237565b500290565b60008261130c57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e060860dfd2661bcb3a064375a8cb4f867ef910a15585137866dfb558858298264736f6c634300080f0033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
