{
  "_format": "hh-sol-artifact-1",
  "contractName": "MockYieldSource",
  "sourceName": "@pooltogether/yield-source-interface/contracts/test/MockYieldSource.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "_decimals",
          "type": "uint8"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "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": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "balanceOfToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "depositToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "redeemToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "shares",
          "type": "uint256"
        }
      ],
      "name": "sharesToTokens",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "supplyTokenTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "internalType": "contract ERC20Mintable",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        }
      ],
      "name": "tokensToShares",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "yield",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040516200259738038062002597833981016040819052620000349162000264565b60405180604001604052806005815260200164165251531160da1b8152506040518060400160405280600381526020016216531160ea1b81525060128260039080519060200190620000889291906200011f565b5081516200009e9060049060208501906200011f565b506005805460ff191660ff929092169190911790555050604051839083908390620000c990620001ae565b620000d79392919062000317565b604051809103906000f080158015620000f4573d6000803e3d6000fd5b50603380546001600160a01b0319166001600160a01b039290921691909117905550620003da915050565b8280546200012d9062000387565b90600052602060002090601f0160209004810192826200015157600085556200019c565b82601f106200016c57805160ff19168380011785556200019c565b828001600101855582156200019c579182015b828111156200019c5782518255916020019190600101906200017f565b50620001aa929150620001bc565b5090565b610fb680620015e183390190565b5b80821115620001aa5760008155600101620001bd565b600082601f830112620001e557600080fd5b81516001600160401b0380821115620002025762000202620003c4565b604051601f8301601f19908116603f011681019082821181831017156200022d576200022d620003c4565b816040528381528660208588010111156200024757600080fd5b6200025a84602083016020890162000354565b9695505050505050565b6000806000606084860312156200027a57600080fd5b83516001600160401b03808211156200029257600080fd5b620002a087838801620001d3565b94506020860151915080821115620002b757600080fd5b50620002c686828701620001d3565b925050604084015160ff81168114620002de57600080fd5b809150509250925092565b600081518084526200030381602086016020860162000354565b601f01601f19169290920160200192915050565b6060815260006200032c6060830186620002e9565b8281036020840152620003408186620002e9565b91505060ff83166040830152949350505050565b60005b838110156200037157818101518382015260200162000357565b8381111562000381576000848401525b50505050565b600181811c908216806200039c57607f821691505b60208210811415620003be57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6111f780620003ea6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c8063765287ef116100cd578063b99152d011610081578063dd62ed3e11610066578063dd62ed3e146102c1578063f3044ac7146102fa578063fc0c546a1461030d57600080fd5b8063b99152d014610289578063c89039c51461029c57600080fd5b806395d89b41116100b257806395d89b411461025b578063a457c2d714610263578063a9059cbb1461027657600080fd5b8063765287ef1461023357806387a6eeef1461024857600080fd5b806323b872dd11610124578063313ce56711610109578063313ce567146101e257806339509351146101f757806370a082311461020a57600080fd5b806323b872dd146101bc57806327def4fd146101cf57600080fd5b8063013054c21461015657806306fdde031461017c578063095ea7b31461019157806318160ddd146101b4575b600080fd5b610169610164366004611020565b610320565b6040519081526020015b60405180910390f35b6101846103dd565b6040516101739190611075565b6101a461019f366004610fd4565b61046f565b6040519015158152602001610173565b600254610169565b6101a46101ca366004610f98565b610485565b6101696101dd366004611020565b610549565b60055460405160ff9091168152602001610173565b6101a4610205366004610fd4565b610618565b610169610218366004610f4a565b6001600160a01b031660009081526020819052604090205490565b610246610241366004611020565b610654565b005b610246610256366004611052565b6106f5565b6101846107b4565b6101a4610271366004610fd4565b6107c3565b6101a4610284366004610fd4565b610874565b610169610297366004610f4a565b610881565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610173565b6101696102cf366004610f65565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610169610308366004611020565b6108a9565b6033546102a9906001600160a01b031681565b60008061032c836108a9565b9050610338338261095a565b6033546040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561039d57600080fd5b505af11580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190610ffe565b509192915050565b6060600380546103ec90611176565b80601f016020809104026020016040519081016040528092919081815260200182805461041890611176565b80156104655780601f1061043a57610100808354040283529160200191610465565b820191906000526020600020905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b600061047c338484610adf565b50600192915050565b6000610492848484610c37565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156105315760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61053e8533858403610adf565b506001949350505050565b60008061055560025490565b905080610563575090919050565b6033546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015282916001600160a01b0316906370a082319060240160206040518083038186803b1580156105bf57600080fd5b505afa1580156105d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190611039565b6106019085611122565b61060b9190611100565b9392505050565b50919050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161047c91859061064f9086906110e8565b610adf565b6033546040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390526001600160a01b03909116906340c10f1990604401602060405180830381600087803b1580156106b957600080fd5b505af11580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610ffe565b5050565b6000610700836108a9565b6033546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529192506001600160a01b0316906323b872dd90606401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a49190610ffe565b506107af8282610e4f565b505050565b6060600480546103ec90611176565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561085d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610528565b61086a3385858403610adf565b5060019392505050565b600061047c338484610c37565b6001600160a01b0381166000908152602081905260408120546108a390610549565b92915050565b6033546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009182916001600160a01b03909116906370a082319060240160206040518083038186803b15801561090a57600080fd5b505afa15801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109429190611039565b905080610950575090919050565b806105f760025490565b6001600160a01b0382166109d65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b03821660009081526020819052604090205481811015610a655760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a9490849061115f565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6001600160a01b038316610b5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b038216610d2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b03831660009081526020819052604090205481811015610dbe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610df59084906110e8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e4191815260200190565b60405180910390a350505050565b6001600160a01b038216610ea55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610528565b8060026000828254610eb791906110e8565b90915550506001600160a01b03821660009081526020819052604081208054839290610ee49084906110e8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80356001600160a01b0381168114610f4557600080fd5b919050565b600060208284031215610f5c57600080fd5b61060b82610f2e565b60008060408385031215610f7857600080fd5b610f8183610f2e565b9150610f8f60208401610f2e565b90509250929050565b600080600060608486031215610fad57600080fd5b610fb684610f2e565b9250610fc460208501610f2e565b9150604084013590509250925092565b60008060408385031215610fe757600080fd5b610ff083610f2e565b946020939093013593505050565b60006020828403121561101057600080fd5b8151801515811461060b57600080fd5b60006020828403121561103257600080fd5b5035919050565b60006020828403121561104b57600080fd5b5051919050565b6000806040838503121561106557600080fd5b82359150610f8f60208401610f2e565b600060208083528351808285015260005b818110156110a257858101830151858201604001528201611086565b818111156110b4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156110fb576110fb6111ab565b500190565b60008261111d57634e487b7160e01b600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561115a5761115a6111ab565b500290565b600082821015611171576111716111ab565b500390565b600181811c9082168061118a57607f821691505b6020821081141561061257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fdfea2646970667358221220b0d0be68a96eb65dff25f8029835bce2abb1d1a48ef76bf55bb9abf97a1df9ac64736f6c6343000806003360806040523480156200001157600080fd5b5060405162000fb638038062000fb68339810160408190526200003491620001e3565b82828282600390805190602001906200004f92919062000086565b5081516200006590600490602085019062000086565b506005805460ff191660ff9290921691909117905550620002bb9350505050565b828054620000949062000268565b90600052602060002090601f016020900481019282620000b8576000855562000103565b82601f10620000d357805160ff191683800117855562000103565b8280016001018555821562000103579182015b8281111562000103578251825591602001919060010190620000e6565b506200011192915062000115565b5090565b5b8082111562000111576000815560010162000116565b600082601f8301126200013e57600080fd5b81516001600160401b03808211156200015b576200015b620002a5565b604051601f8301601f19908116603f01168101908282118183101715620001865762000186620002a5565b81604052838152602092508683858801011115620001a357600080fd5b600091505b83821015620001c75785820183015181830184015290820190620001a8565b83821115620001d95760008385830101525b9695505050505050565b600080600060608486031215620001f957600080fd5b83516001600160401b03808211156200021157600080fd5b6200021f878388016200012c565b945060208601519150808211156200023657600080fd5b5062000245868287016200012c565b925050604084015160ff811681146200025d57600080fd5b809150509250925092565b600181811c908216806200027d57607f821691505b602082108114156200029f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610ceb80620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101d6578063a457c2d7146101e9578063a9059cbb146101fc578063dd62ed3e1461020f57600080fd5b806340c10f191461019257806370a08231146101a557806395d89b41146101ce57600080fd5b80631c9c7903116100c85780631c9c79031461014257806323b872dd14610157578063313ce5671461016a578063395093511461017f57600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610248565b6040516101049190610b90565b60405180910390f35b61012061011b366004610b66565b6102da565b6040519015158152602001610104565b6002545b604051908152602001610104565b610155610150366004610b2a565b6102f0565b005b610120610165366004610b2a565b610300565b60055460405160ff9091168152602001610104565b61012061018d366004610b66565b6103c4565b6101206101a0366004610b66565b610400565b6101346101b3366004610ad5565b6001600160a01b031660009081526020819052604090205490565b6100f761040c565b6101206101e4366004610b66565b61041b565b6101206101f7366004610b66565b610427565b61012061020a366004610b66565b6104d8565b61013461021d366004610af7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461025790610c32565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610c32565b80156102d05780601f106102a5576101008083540402835291602001916102d0565b820191906000526020600020905b8154815290600101906020018083116102b357829003601f168201915b5050505050905090565b60006102e73384846104e5565b50600192915050565b6102fb83838361063d565b505050565b600061030d84848461063d565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103ac5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103b985338584036104e5565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102e79185906103fb908690610c03565b6104e5565b60006102e78383610855565b60606004805461025790610c32565b60006102e78383610934565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016103a3565b6104ce33858584036104e5565b5060019392505050565b60006102e733848461063d565b6001600160a01b0383166105605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103a3565b6001600160a01b0382166105dc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103a3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166106b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103a3565b6001600160a01b0382166107355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103a3565b6001600160a01b038316600090815260208190526040902054818110156107c45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103a3565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906107fb908490610c03565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161084791815260200190565b60405180910390a350505050565b6001600160a01b0382166108ab5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103a3565b80600260008282546108bd9190610c03565b90915550506001600160a01b038216600090815260208190526040812080548392906108ea908490610c03565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0382166109b05760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016103a3565b6001600160a01b03821660009081526020819052604090205481811015610a3f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016103a3565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a6e908490610c1b565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b80356001600160a01b0381168114610ad057600080fd5b919050565b600060208284031215610ae757600080fd5b610af082610ab9565b9392505050565b60008060408385031215610b0a57600080fd5b610b1383610ab9565b9150610b2160208401610ab9565b90509250929050565b600080600060608486031215610b3f57600080fd5b610b4884610ab9565b9250610b5660208501610ab9565b9150604084013590509250925092565b60008060408385031215610b7957600080fd5b610b8283610ab9565b946020939093013593505050565b600060208083528351808285015260005b81811015610bbd57858101830151858201604001528201610ba1565b81811115610bcf576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60008219821115610c1657610c16610c86565b500190565b600082821015610c2d57610c2d610c86565b500390565b600181811c90821680610c4657607f821691505b60208210811415610c80577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212200d8946b5eb130740744d8a31937c9971ac977e9fddfc4c96a792b9ef1e4e0a5c64736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101515760003560e01c8063765287ef116100cd578063b99152d011610081578063dd62ed3e11610066578063dd62ed3e146102c1578063f3044ac7146102fa578063fc0c546a1461030d57600080fd5b8063b99152d014610289578063c89039c51461029c57600080fd5b806395d89b41116100b257806395d89b411461025b578063a457c2d714610263578063a9059cbb1461027657600080fd5b8063765287ef1461023357806387a6eeef1461024857600080fd5b806323b872dd11610124578063313ce56711610109578063313ce567146101e257806339509351146101f757806370a082311461020a57600080fd5b806323b872dd146101bc57806327def4fd146101cf57600080fd5b8063013054c21461015657806306fdde031461017c578063095ea7b31461019157806318160ddd146101b4575b600080fd5b610169610164366004611020565b610320565b6040519081526020015b60405180910390f35b6101846103dd565b6040516101739190611075565b6101a461019f366004610fd4565b61046f565b6040519015158152602001610173565b600254610169565b6101a46101ca366004610f98565b610485565b6101696101dd366004611020565b610549565b60055460405160ff9091168152602001610173565b6101a4610205366004610fd4565b610618565b610169610218366004610f4a565b6001600160a01b031660009081526020819052604090205490565b610246610241366004611020565b610654565b005b610246610256366004611052565b6106f5565b6101846107b4565b6101a4610271366004610fd4565b6107c3565b6101a4610284366004610fd4565b610874565b610169610297366004610f4a565b610881565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610173565b6101696102cf366004610f65565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610169610308366004611020565b6108a9565b6033546102a9906001600160a01b031681565b60008061032c836108a9565b9050610338338261095a565b6033546040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018590526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561039d57600080fd5b505af11580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190610ffe565b509192915050565b6060600380546103ec90611176565b80601f016020809104026020016040519081016040528092919081815260200182805461041890611176565b80156104655780601f1061043a57610100808354040283529160200191610465565b820191906000526020600020905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b600061047c338484610adf565b50600192915050565b6000610492848484610c37565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156105315760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61053e8533858403610adf565b506001949350505050565b60008061055560025490565b905080610563575090919050565b6033546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015282916001600160a01b0316906370a082319060240160206040518083038186803b1580156105bf57600080fd5b505afa1580156105d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f79190611039565b6106019085611122565b61060b9190611100565b9392505050565b50919050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161047c91859061064f9086906110e8565b610adf565b6033546040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390526001600160a01b03909116906340c10f1990604401602060405180830381600087803b1580156106b957600080fd5b505af11580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610ffe565b5050565b6000610700836108a9565b6033546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529192506001600160a01b0316906323b872dd90606401602060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a49190610ffe565b506107af8282610e4f565b505050565b6060600480546103ec90611176565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561085d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610528565b61086a3385858403610adf565b5060019392505050565b600061047c338484610c37565b6001600160a01b0381166000908152602081905260408120546108a390610549565b92915050565b6033546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009182916001600160a01b03909116906370a082319060240160206040518083038186803b15801561090a57600080fd5b505afa15801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109429190611039565b905080610950575090919050565b806105f760025490565b6001600160a01b0382166109d65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b03821660009081526020819052604090205481811015610a655760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610a9490849061115f565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6001600160a01b038316610b5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cb35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b038216610d2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b03831660009081526020819052604090205481811015610dbe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610528565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610df59084906110e8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e4191815260200190565b60405180910390a350505050565b6001600160a01b038216610ea55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610528565b8060026000828254610eb791906110e8565b90915550506001600160a01b03821660009081526020819052604081208054839290610ee49084906110e8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80356001600160a01b0381168114610f4557600080fd5b919050565b600060208284031215610f5c57600080fd5b61060b82610f2e565b60008060408385031215610f7857600080fd5b610f8183610f2e565b9150610f8f60208401610f2e565b90509250929050565b600080600060608486031215610fad57600080fd5b610fb684610f2e565b9250610fc460208501610f2e565b9150604084013590509250925092565b60008060408385031215610fe757600080fd5b610ff083610f2e565b946020939093013593505050565b60006020828403121561101057600080fd5b8151801515811461060b57600080fd5b60006020828403121561103257600080fd5b5035919050565b60006020828403121561104b57600080fd5b5051919050565b6000806040838503121561106557600080fd5b82359150610f8f60208401610f2e565b600060208083528351808285015260005b818110156110a257858101830151858201604001528201611086565b818111156110b4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156110fb576110fb6111ab565b500190565b60008261111d57634e487b7160e01b600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561115a5761115a6111ab565b500290565b600082821015611171576111716111ab565b500390565b600181811c9082168061118a57607f821691505b6020821081141561061257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fdfea2646970667358221220b0d0be68a96eb65dff25f8029835bce2abb1d1a48ef76bf55bb9abf97a1df9ac64736f6c63430008060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
