{
  "_format": "hh-sol-artifact-1",
  "contractName": "ClaimingTestInterface",
  "sourceName": "src/contracts/test/ClaimingTestInterface.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_cowToken",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_communityFundsTarget",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_investorFundsTarget",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_usdcToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_usdcPrice",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_gnoToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_gnoPrice",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_wrappedNativeToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_nativeTokenPrice",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_teamController",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "CannotSendNativeToken",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ClaimingExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedNativeTokenTransfer",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidNativeTokenAmount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotSupported",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyTeamController",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isCancelable",
          "type": "bool"
        }
      ],
      "name": "AddedVesting",
      "type": "event"
    },
    {
      "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": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "addInstantlySwappableTokens",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "addToTotalSupply",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "communityFundsTarget",
      "outputs": [
        {
          "internalType": "address payable",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cowToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deploymentTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gnoPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gnoToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "instantlySwappableBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "investorFundsTarget",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "mockVest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nativeTokenPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum ClaimingInterface.ClaimType",
          "name": "claimType",
          "type": "uint8"
        },
        {
          "internalType": "address",
          "name": "payer",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nativeTokenAmount",
          "type": "uint256"
        }
      ],
      "name": "performClaimTest",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "stopClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "swap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "swapAll",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "swappedBalance",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "teamController",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "usdcPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "usdcToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdrawEth",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "wrappedNativeToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x6101e06040523480156200001257600080fd5b5060405162001bde38038062001bde8339810160408190526200003591620001c9565b604080518082018252601581527f436c61696d696e6754657374496e746572666163650000000000000000000000602080830191825283518085019094526004845263151154d560e21b908401526001600160a01b03808e1661012052808d1660e052808c1661010052808b166101405260808a90528089166101605260a08890528087166101805260c086905284166101a052426101c0528151919291620000e1916002916200010a565b508051620000f79060039060208401906200010a565b50505050505050505050505050620002d0565b828054620001189062000293565b90600052602060002090601f0160209004810192826200013c576000855562000187565b82601f106200015757805160ff191683800117855562000187565b8280016001018555821562000187579182015b82811115620001875782518255916020019190600101906200016a565b506200019592915062000199565b5090565b5b808211156200019557600081556001016200019a565b6001600160a01b0381168114620001c657600080fd5b50565b6000806000806000806000806000806101408b8d031215620001ea57600080fd5b8a51620001f781620001b0565b60208c0151909a506200020a81620001b0565b60408c01519099506200021d81620001b0565b60608c01519098506200023081620001b0565b60808c015160a08d015191985096506200024a81620001b0565b60c08c015160e08d015191965094506200026481620001b0565b6101008c01516101208d015191945092506200028081620001b0565b809150509295989b9194979a5092959850565b600181811c90821680620002a857607f821691505b60208210811415620002ca57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051611802620003dc6000396000818161057701528181610bd701528181610cb601528181610dce01528181610eb701528181610fc3015261107401526000818161034d01526109130152600081816102da0152610e450152600081816105ab0152610d500152600081816102810152610f510152600081816104440152610b6b0152600081816104c20152610f940152600081816106360152818161084501528181610d930152610e880152600081816103c801528181610e6601526112840152600081816105430152610d710152600081816105df0152610f7201526118026000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063b79b371311610095578063c61f218411610064578063c61f218414610599578063dacee347146105cd578063dd62ed3e14610601578063e4a0ddf71461062457600080fd5b8063b79b3713146104e4578063b7d1d98e14610511578063bcfffb6814610531578063bfc12c051461056557600080fd5b806395d89b41116100d157806395d89b4114610486578063a0ef91df1461049b578063a9059cbb1461023f578063b1d882eb146104b057600080fd5b806370a08231146104125780638cd8e8d21461043257806394b918de1461046657600080fd5b806323b872dd11610164578063313ce5671161013e578063313ce5671461038f578063332572c4146103b657806338c37b68146103ea5780633e9ffbea146103fd57600080fd5b806323b872dd1461032057806326f3acae1461033b57806328ce88451461036f57600080fd5b8063095ea7b3116101a0578063095ea7b31461023f57806311eac8551461026f57806317fcb39b146102c857806318160ddd146102fc57600080fd5b806306fdde03146101d257806308be6694146101fd57806308fc96141461021f57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610658565b6040516101f491906114b5565b60405180910390f35b34801561020957600080fd5b5061021d610218366004611528565b600455565b005b34801561022b57600080fd5b5061021d61023a36600461156a565b6106e6565b34801561024b57600080fd5b5061025f61025a36600461156a565b61073c565b60405190151581526020016101f4565b34801561027b57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b3480156102d457600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b34801561030857600080fd5b5061031260005481565b6040519081526020016101f4565b34801561032c57600080fd5b5061025f61025a366004611594565b34801561034757600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b34801561037b57600080fd5b5061021d61038a366004611528565b610770565b34801561039b57600080fd5b506103a4601281565b60405160ff90911681526020016101f4565b3480156103c257600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b61021d6103f83660046115d0565b610789565b34801561040957600080fd5b5061031261079d565b34801561041e57600080fd5b5061031261042d36600461162b565b6107b5565b34801561043e57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b34801561047257600080fd5b5061021d610481366004611528565b61081f565b34801561049257600080fd5b506101e7610834565b3480156104a757600080fd5b5061021d610841565b3480156104bc57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f057600080fd5b506103126104ff36600461162b565b60016020526000908152604090205481565b34801561051d57600080fd5b5061021d61052c36600461162b565b6108fb565b34801561053d57600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b34801561057157600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a557600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d957600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b34801561060d57600080fd5b5061031261061c366004611646565b600092915050565b34801561063057600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b6002805461066590611679565b80601f016020809104026020016040519081016040528092919081815260200182805461069190611679565b80156106de5780601f106106b3576101008083540402835291602001916106de565b820191906000526020600020905b8154815290600101906020018083116106c157829003601f168201915b505050505081565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260408120805483929061071b9084906116f6565b925050819055508060008082825461073391906116f6565b90915550505050565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008082825461078191906116f6565b909155505050565b61079685858585856109a1565b5050505050565b60006107a7610ad8565b90506107b281610b14565b90565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f74206e656564656420696e2074657374000000000000000000000000000060448201526000906064015b60405180910390fd5b610827610ad8565b5061083181610b14565b50565b6003805461066590611679565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d80600081146108bb576040519150601f19603f3d011682016040523d82523d6000602084013e6108c0565b606091505b5050905080610831576040517f68a36fef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461096a576040517f1f78defd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120805482919082906107339082906116f6565b60008560058111156109b5576109b561170e565b14156109cb576109c6838383610bcd565b610a6d565b60018560058111156109df576109df61170e565b14156109f1576109c683838684610cac565b6002856005811115610a0557610a0561170e565b1415610a17576109c683838684610dc4565b6003856005811115610a2b57610a2b61170e565b1415610a3d576109c683838684610ead565b6004856005811115610a5157610a5161170e565b1415610a62576109c6838383610fb9565b610a6d83838361106a565b81600080828254610a7e91906116f6565b909155505060405182815273ffffffffffffffffffffffffffffffffffffffff8416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6000610ae360045490565b33600090815260016020526040902054610afd91906116f6565b336000908152600160205260409020819055919050565b3360009081526001602052604081208054839290610b3390849061173d565b9250508190555080600080828254610b4b919061173d565b90915550610b92905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163383611115565b60405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b62375f00610bfb817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610c34576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610c6c576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604081208054859290610ca19084906116f6565b909155505050505050565b62127500610cda817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610d13576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610d4b576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f0000000000000000000000000000000000000000000000000000000000000000886111e8565b61079685856000611220565b62127500610df2817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610e2b576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610e4057610e3b848361127c565b610db8565b610db87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f0000000000000000000000000000000000000000000000000000000000000000886111e8565b62127500610edb817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610f14576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610f4c576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f0000000000000000000000000000000000000000000000000000000000000000886111e8565b62375f00610fe7817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115611020576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115611058576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61106484846001611220565b50505050565b62375f00611098817f00000000000000000000000000000000000000000000000000000000000000006116f6565b4211156110d1576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115611109576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61106484846000611220565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af1611178573d6000803e3d6000fd5b50611182846112e8565b611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5361666545524332303a206661696c6564207472616e736665720000000000006044820152606401610816565b60006111f482866113b4565b905061121873ffffffffffffffffffffffffffffffffffffffff87168585846113da565b505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85168152602081018490528215158183015290517f6b6cbd8ad8ad6104ea023304d209b58a95c97d30e75aaa341a8030c92687f0619181900360600190a1505050565b60006112a8837f00000000000000000000000000000000000000000000000000000000000000006113b4565b90508082146112e3576040517f27eb4d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611328565b7f08c379a00000000000000000000000000000000000000000000000000000000060005260206004528060245250806044525060646000fd5b3d801561136757602081146113a1576113627f5361666545524332303a20626164207472616e7366657220726573756c740000601e6112ef565b6113ae565b823b611398576113987f5361666545524332303a206e6f74206120636f6e74726163740000000000000060196112ef565b600191506113ae565b3d6000803e600051151591505b50919050565b6000670de0b6b3a76400006113c98385611754565b6113d39190611791565b9392505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af1611445573d6000803e3d6000fd5b5061144f856112e8565b610796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5361666545524332303a206661696c6564207472616e7366657246726f6d00006044820152606401610816565b600060208083528351808285015260005b818110156114e2578581018301518582016040015282016114c6565b818111156114f4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561153a57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461156557600080fd5b919050565b6000806040838503121561157d57600080fd5b61158683611541565b946020939093013593505050565b6000806000606084860312156115a957600080fd5b6115b284611541565b92506115c060208501611541565b9150604084013590509250925092565b600080600080600060a086880312156115e857600080fd5b8535600681106115f757600080fd5b945061160560208701611541565b935061161360408701611541565b94979396509394606081013594506080013592915050565b60006020828403121561163d57600080fd5b6113d382611541565b6000806040838503121561165957600080fd5b61166283611541565b915061167060208401611541565b90509250929050565b600181811c9082168061168d57607f821691505b602082108114156113ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611709576117096116c7565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008282101561174f5761174f6116c7565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561178c5761178c6116c7565b500290565b6000826117c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220fecf38a40b1c6261a62498889d426b58c141975b656f822ed26074cc4c21521f64736f6c634300080a0033",
  "deployedBytecode": "0x6080604052600436106101c65760003560e01c806370a08231116100f7578063b79b371311610095578063c61f218411610064578063c61f218414610599578063dacee347146105cd578063dd62ed3e14610601578063e4a0ddf71461062457600080fd5b8063b79b3713146104e4578063b7d1d98e14610511578063bcfffb6814610531578063bfc12c051461056557600080fd5b806395d89b41116100d157806395d89b4114610486578063a0ef91df1461049b578063a9059cbb1461023f578063b1d882eb146104b057600080fd5b806370a08231146104125780638cd8e8d21461043257806394b918de1461046657600080fd5b806323b872dd11610164578063313ce5671161013e578063313ce5671461038f578063332572c4146103b657806338c37b68146103ea5780633e9ffbea146103fd57600080fd5b806323b872dd1461032057806326f3acae1461033b57806328ce88451461036f57600080fd5b8063095ea7b3116101a0578063095ea7b31461023f57806311eac8551461026f57806317fcb39b146102c857806318160ddd146102fc57600080fd5b806306fdde03146101d257806308be6694146101fd57806308fc96141461021f57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610658565b6040516101f491906114b5565b60405180910390f35b34801561020957600080fd5b5061021d610218366004611528565b600455565b005b34801561022b57600080fd5b5061021d61023a36600461156a565b6106e6565b34801561024b57600080fd5b5061025f61025a36600461156a565b61073c565b60405190151581526020016101f4565b34801561027b57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f4565b3480156102d457600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b34801561030857600080fd5b5061031260005481565b6040519081526020016101f4565b34801561032c57600080fd5b5061025f61025a366004611594565b34801561034757600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b34801561037b57600080fd5b5061021d61038a366004611528565b610770565b34801561039b57600080fd5b506103a4601281565b60405160ff90911681526020016101f4565b3480156103c257600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b61021d6103f83660046115d0565b610789565b34801561040957600080fd5b5061031261079d565b34801561041e57600080fd5b5061031261042d36600461162b565b6107b5565b34801561043e57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b34801561047257600080fd5b5061021d610481366004611528565b61081f565b34801561049257600080fd5b506101e7610834565b3480156104a757600080fd5b5061021d610841565b3480156104bc57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f057600080fd5b506103126104ff36600461162b565b60016020526000908152604090205481565b34801561051d57600080fd5b5061021d61052c36600461162b565b6108fb565b34801561053d57600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b34801561057157600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a557600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b3480156105d957600080fd5b506103127f000000000000000000000000000000000000000000000000000000000000000081565b34801561060d57600080fd5b5061031261061c366004611646565b600092915050565b34801561063057600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b6002805461066590611679565b80601f016020809104026020016040519081016040528092919081815260200182805461069190611679565b80156106de5780601f106106b3576101008083540402835291602001916106de565b820191906000526020600020905b8154815290600101906020018083116106c157829003601f168201915b505050505081565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260408120805483929061071b9084906116f6565b925050819055508060008082825461073391906116f6565b90915550505050565b60006040517fa038794000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008082825461078191906116f6565b909155505050565b61079685858585856109a1565b5050505050565b60006107a7610ad8565b90506107b281610b14565b90565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e6f74206e656564656420696e2074657374000000000000000000000000000060448201526000906064015b60405180910390fd5b610827610ad8565b5061083181610b14565b50565b6003805461066590611679565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d80600081146108bb576040519150601f19603f3d011682016040523d82523d6000602084013e6108c0565b606091505b5050905080610831576040517f68a36fef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461096a576040517f1f78defd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120805482919082906107339082906116f6565b60008560058111156109b5576109b561170e565b14156109cb576109c6838383610bcd565b610a6d565b60018560058111156109df576109df61170e565b14156109f1576109c683838684610cac565b6002856005811115610a0557610a0561170e565b1415610a17576109c683838684610dc4565b6003856005811115610a2b57610a2b61170e565b1415610a3d576109c683838684610ead565b6004856005811115610a5157610a5161170e565b1415610a62576109c6838383610fb9565b610a6d83838361106a565b81600080828254610a7e91906116f6565b909155505060405182815273ffffffffffffffffffffffffffffffffffffffff8416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6000610ae360045490565b33600090815260016020526040902054610afd91906116f6565b336000908152600160205260409020819055919050565b3360009081526001602052604081208054839290610b3390849061173d565b9250508190555080600080828254610b4b919061173d565b90915550610b92905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163383611115565b60405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b62375f00610bfb817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610c34576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610c6c576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604081208054859290610ca19084906116f6565b909155505050505050565b62127500610cda817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610d13576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610d4b576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f0000000000000000000000000000000000000000000000000000000000000000886111e8565b61079685856000611220565b62127500610df2817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610e2b576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610e4057610e3b848361127c565b610db8565b610db87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f0000000000000000000000000000000000000000000000000000000000000000886111e8565b62127500610edb817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115610f14576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115610f4c576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db87f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000857f0000000000000000000000000000000000000000000000000000000000000000886111e8565b62375f00610fe7817f00000000000000000000000000000000000000000000000000000000000000006116f6565b421115611020576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115611058576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61106484846001611220565b50505050565b62375f00611098817f00000000000000000000000000000000000000000000000000000000000000006116f6565b4211156110d1576040517ff7704cc200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115611109576040517f79ef7d0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61106484846000611220565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af1611178573d6000803e3d6000fd5b50611182846112e8565b611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5361666545524332303a206661696c6564207472616e736665720000000000006044820152606401610816565b60006111f482866113b4565b905061121873ffffffffffffffffffffffffffffffffffffffff87168585846113da565b505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85168152602081018490528215158183015290517f6b6cbd8ad8ad6104ea023304d209b58a95c97d30e75aaa341a8030c92687f0619181900360600190a1505050565b60006112a8837f00000000000000000000000000000000000000000000000000000000000000006113b4565b90508082146112e3576040517f27eb4d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611328565b7f08c379a00000000000000000000000000000000000000000000000000000000060005260206004528060245250806044525060646000fd5b3d801561136757602081146113a1576113627f5361666545524332303a20626164207472616e7366657220726573756c740000601e6112ef565b6113ae565b823b611398576113987f5361666545524332303a206e6f74206120636f6e74726163740000000000000060196112ef565b600191506113ae565b3d6000803e600051151591505b50919050565b6000670de0b6b3a76400006113c98385611754565b6113d39190611791565b9392505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af1611445573d6000803e3d6000fd5b5061144f856112e8565b610796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5361666545524332303a206661696c6564207472616e7366657246726f6d00006044820152606401610816565b600060208083528351808285015260005b818110156114e2578581018301518582016040015282016114c6565b818111156114f4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60006020828403121561153a57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461156557600080fd5b919050565b6000806040838503121561157d57600080fd5b61158683611541565b946020939093013593505050565b6000806000606084860312156115a957600080fd5b6115b284611541565b92506115c060208501611541565b9150604084013590509250925092565b600080600080600060a086880312156115e857600080fd5b8535600681106115f757600080fd5b945061160560208701611541565b935061161360408701611541565b94979396509394606081013594506080013592915050565b60006020828403121561163d57600080fd5b6113d382611541565b6000806040838503121561165957600080fd5b61166283611541565b915061167060208401611541565b90509250929050565b600181811c9082168061168d57607f821691505b602082108114156113ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611709576117096116c7565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008282101561174f5761174f6116c7565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561178c5761178c6116c7565b500290565b6000826117c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220fecf38a40b1c6261a62498889d426b58c141975b656f822ed26074cc4c21521f64736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
