{
  "_format": "hh-sol-artifact-1",
  "contractName": "PrizeDistributor",
  "sourceName": "contracts/PrizeDistributor.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "contract IDrawCalculator",
          "name": "_drawCalculator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint32",
          "name": "drawId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "payout",
          "type": "uint256"
        }
      ],
      "name": "ClaimedDraw",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IDrawCalculator",
          "name": "calculator",
          "type": "address"
        }
      ],
      "name": "DrawCalculatorSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "ERC20Withdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pendingOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipOffered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "TokenSet",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "uint32[]",
          "name": "_drawIds",
          "type": "uint32[]"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "claim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getDrawCalculator",
      "outputs": [
        {
          "internalType": "contract IDrawCalculator",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "_drawId",
          "type": "uint32"
        }
      ],
      "name": "getDrawPayoutBalanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IDrawCalculator",
          "name": "_newCalculator",
          "type": "address"
        }
      ],
      "name": "setDrawCalculator",
      "outputs": [
        {
          "internalType": "contract IDrawCalculator",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_erc20Token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC20",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523480156200001157600080fd5b50604051620014b5380380620014b58339810160408190526200003491620001f9565b82620000408162000107565b506200004c8162000157565b6001600160a01b038216620000b85760405162461bcd60e51b815260206004820152602760248201527f5072697a654469737472696275746f722f746f6b656e2d6e6f742d7a65726f2d6044820152666164647265737360c81b60648201526084015b60405180910390fd5b6001600160601b0319606083901b166080526040516001600160a01b038316907fa07c91c183e42229e705a9795a1c06d76528b673788b849597364528c96eefb790600090a250505062000266565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620001af5760405162461bcd60e51b815260206004820152601e60248201527f5072697a654469737472696275746f722f63616c632d6e6f742d7a65726f00006044820152606401620000af565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fff37eafdc3779d387d79dcf458fdc36536d857426f03a53204694f8fbb0d8a6b90600090a250565b6000806000606084860312156200020f57600080fd5b83516200021c816200024d565b60208501519093506200022f816200024d565b604085015190925062000242816200024d565b809150509250925092565b6001600160a01b03811681146200026357600080fd5b50565b60805160601c61122a6200028b6000396000818160d00152610a5f015261122a6000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063715018a611610081578063bb7d4e2d1161005b578063bb7d4e2d14610198578063e30c3978146101ab578063f2fde38b146101bc57600080fd5b8063715018a61461015e5780638da5cb5b14610166578063b7f892d11461017757600080fd5b806344004cc1116100b257806344004cc11461011e578063454a8140146101415780634e71e0c81461015457600080fd5b806321df0da7146100ce5780632d680cfa1461010d575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6002546001600160a01b03166100f0565b61013161012c366004610fb9565b6101cf565b6040519015158152602001610104565b6100f061014f366004610dbf565b6103a3565b61015c61041f565b005b61015c6104ad565b6000546001600160a01b03166100f0565b61018a610185366004610e90565b610522565b604051908152602001610104565b61018a6101a6366004610ddc565b610551565b6001546001600160a01b03166100f0565b61015c6101ca366004610dbf565b610787565b6000336101e46000546001600160a01b031690565b6001600160a01b03161461023f5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064015b60405180910390fd5b6001600160a01b0383166102bb5760405162461bcd60e51b815260206004820152602b60248201527f5072697a654469737472696275746f722f726563697069656e742d6e6f742d7a60448201527f65726f2d616464726573730000000000000000000000000000000000000000006064820152608401610236565b6001600160a01b0384166103375760405162461bcd60e51b815260206004820152602760248201527f5072697a654469737472696275746f722f45524332302d6e6f742d7a65726f2d60448201527f61646472657373000000000000000000000000000000000000000000000000006064820152608401610236565b61034b6001600160a01b03851684846108c3565b826001600160a01b0316846001600160a01b03167fbfed55bdcd242e3dd0f60ddd7d1e87c67f61c34cd9527b3e6455d841b10253628460405161039091815260200190565b60405180910390a35060015b9392505050565b6000336103b86000546001600160a01b031690565b6001600160a01b03161461040e5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e657200000000000000006044820152606401610236565b61041782610948565b50805b919050565b6001546001600160a01b031633146104795760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e6572006044820152606401610236565b60015461048e906001600160a01b03166109f5565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b336104c06000546001600160a01b031690565b6001600160a01b0316146105165760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e657200000000000000006044820152606401610236565b61052060006109f5565b565b6001600160a01b038216600090815260036020908152604080832063ffffffff8516845290915281205461039c565b6002546040517faaca392e000000000000000000000000000000000000000000000000000000008152600091829182916001600160a01b03169063aaca392e906105a7908b908b908b908b908b90600401611031565b60006040518083038186803b1580156105bf57600080fd5b505afa1580156105d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105fb9190810190610ec5565b50805190915060005b8181101561076f576000898983818110610620576106206111b0565b90506020020160208101906106359190610ffa565b9050600084838151811061064b5761064b6111b0565b6020908102919091018101516001600160a01b038e16600090815260038352604080822063ffffffff8716835290935291822054909250908183116106d25760405162461bcd60e51b815260206004820152601c60248201527f5072697a654469737472696275746f722f7a65726f2d7061796f7574000000006044820152606401610236565b506001600160a01b038d16600090815260036020908152604080832063ffffffff87168452909152902082905580820361070c8189611119565b97508363ffffffff168e6001600160a01b03167fda18d31fbb73ed04b84307ef1bc6602e02c855af9f65b53ed10ba43e8d35b7dd8360405161075091815260200190565b60405180910390a350505050808061076790611161565b915050610604565b5061077a8984610a52565b5090979650505050505050565b3361079a6000546001600160a01b031690565b6001600160a01b0316146107f05760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e657200000000000000006044820152606401610236565b6001600160a01b03811661086c5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610236565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610943908490610a8a565b505050565b6001600160a01b03811661099e5760405162461bcd60e51b815260206004820152601e60248201527f5072697a654469737472696275746f722f63616c632d6e6f742d7a65726f00006044820152606401610236565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fff37eafdc3779d387d79dcf458fdc36536d857426f03a53204694f8fbb0d8a6b90600090a250565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a866001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683836108c3565b5050565b6000610adf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b6f9092919063ffffffff16565b8051909150156109435780806020019051810190610afd9190610f97565b6109435760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610236565b6060610b7e8484600085610b86565b949350505050565b606082471015610bfe5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610236565b843b610c4c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610236565b600080866001600160a01b03168587604051610c689190611015565b60006040518083038185875af1925050503d8060008114610ca5576040519150601f19603f3d011682016040523d82523d6000602084013e610caa565b606091505b5091509150610cba828286610cc5565b979650505050505050565b60608315610cd457508161039c565b825115610ce45782518084602001fd5b8160405162461bcd60e51b815260040161023691906110b5565b60008083601f840112610d1057600080fd5b50813567ffffffffffffffff811115610d2857600080fd5b602083019150836020828501011115610d4057600080fd5b9250929050565b600082601f830112610d5857600080fd5b815167ffffffffffffffff811115610d7257610d726111c6565b610d856020601f19601f840116016110e8565b818152846020838601011115610d9a57600080fd5b610b7e826020830160208701611131565b803563ffffffff8116811461041a57600080fd5b600060208284031215610dd157600080fd5b813561039c816111dc565b600080600080600060608688031215610df457600080fd5b8535610dff816111dc565b9450602086013567ffffffffffffffff80821115610e1c57600080fd5b818801915088601f830112610e3057600080fd5b813581811115610e3f57600080fd5b8960208260051b8501011115610e5457600080fd5b602083019650809550506040880135915080821115610e7257600080fd5b50610e7f88828901610cfe565b969995985093965092949392505050565b60008060408385031215610ea357600080fd5b8235610eae816111dc565b9150610ebc60208401610dab565b90509250929050565b60008060408385031215610ed857600080fd5b825167ffffffffffffffff80821115610ef057600080fd5b818501915085601f830112610f0457600080fd5b8151602082821115610f1857610f186111c6565b8160051b610f278282016110e8565b8381528281019086840183880185018c1015610f4257600080fd5b600097505b85881015610f65578051835260019790970196918401918401610f47565b509289015192975091945050505080821115610f8057600080fd5b50610f8d85828601610d47565b9150509250929050565b600060208284031215610fa957600080fd5b8151801515811461039c57600080fd5b600080600060608486031215610fce57600080fd5b8335610fd9816111dc565b92506020840135610fe9816111dc565b929592945050506040919091013590565b60006020828403121561100c57600080fd5b61039c82610dab565b60008251611027818460208701611131565b9190910192915050565b6001600160a01b038616815260606020808301829052908201859052600090869060808401835b888110156110815763ffffffff61106e85610dab565b1682529282019290820190600101611058565b5084810360408601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b60208152600082518060208401526110d4816040850160208701611131565b601f01601f19169190910160400192915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611111576111116111c6565b604052919050565b6000821982111561112c5761112c61119a565b500190565b60005b8381101561114c578181015183820152602001611134565b8381111561115b576000848401525b50505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111935761119361119a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146111f157600080fd5b5056fea264697066735822122054ea875b814e9a1a718e97bbbccdee17d6a66812561dbabd59e8ad1e5321bb0a64736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c8063715018a611610081578063bb7d4e2d1161005b578063bb7d4e2d14610198578063e30c3978146101ab578063f2fde38b146101bc57600080fd5b8063715018a61461015e5780638da5cb5b14610166578063b7f892d11461017757600080fd5b806344004cc1116100b257806344004cc11461011e578063454a8140146101415780634e71e0c81461015457600080fd5b806321df0da7146100ce5780632d680cfa1461010d575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020015b60405180910390f35b6002546001600160a01b03166100f0565b61013161012c366004610fb9565b6101cf565b6040519015158152602001610104565b6100f061014f366004610dbf565b6103a3565b61015c61041f565b005b61015c6104ad565b6000546001600160a01b03166100f0565b61018a610185366004610e90565b610522565b604051908152602001610104565b61018a6101a6366004610ddc565b610551565b6001546001600160a01b03166100f0565b61015c6101ca366004610dbf565b610787565b6000336101e46000546001600160a01b031690565b6001600160a01b03161461023f5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064015b60405180910390fd5b6001600160a01b0383166102bb5760405162461bcd60e51b815260206004820152602b60248201527f5072697a654469737472696275746f722f726563697069656e742d6e6f742d7a60448201527f65726f2d616464726573730000000000000000000000000000000000000000006064820152608401610236565b6001600160a01b0384166103375760405162461bcd60e51b815260206004820152602760248201527f5072697a654469737472696275746f722f45524332302d6e6f742d7a65726f2d60448201527f61646472657373000000000000000000000000000000000000000000000000006064820152608401610236565b61034b6001600160a01b03851684846108c3565b826001600160a01b0316846001600160a01b03167fbfed55bdcd242e3dd0f60ddd7d1e87c67f61c34cd9527b3e6455d841b10253628460405161039091815260200190565b60405180910390a35060015b9392505050565b6000336103b86000546001600160a01b031690565b6001600160a01b03161461040e5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e657200000000000000006044820152606401610236565b61041782610948565b50805b919050565b6001546001600160a01b031633146104795760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e6572006044820152606401610236565b60015461048e906001600160a01b03166109f5565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b336104c06000546001600160a01b031690565b6001600160a01b0316146105165760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e657200000000000000006044820152606401610236565b61052060006109f5565b565b6001600160a01b038216600090815260036020908152604080832063ffffffff8516845290915281205461039c565b6002546040517faaca392e000000000000000000000000000000000000000000000000000000008152600091829182916001600160a01b03169063aaca392e906105a7908b908b908b908b908b90600401611031565b60006040518083038186803b1580156105bf57600080fd5b505afa1580156105d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105fb9190810190610ec5565b50805190915060005b8181101561076f576000898983818110610620576106206111b0565b90506020020160208101906106359190610ffa565b9050600084838151811061064b5761064b6111b0565b6020908102919091018101516001600160a01b038e16600090815260038352604080822063ffffffff8716835290935291822054909250908183116106d25760405162461bcd60e51b815260206004820152601c60248201527f5072697a654469737472696275746f722f7a65726f2d7061796f7574000000006044820152606401610236565b506001600160a01b038d16600090815260036020908152604080832063ffffffff87168452909152902082905580820361070c8189611119565b97508363ffffffff168e6001600160a01b03167fda18d31fbb73ed04b84307ef1bc6602e02c855af9f65b53ed10ba43e8d35b7dd8360405161075091815260200190565b60405180910390a350505050808061076790611161565b915050610604565b5061077a8984610a52565b5090979650505050505050565b3361079a6000546001600160a01b031690565b6001600160a01b0316146107f05760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e657200000000000000006044820152606401610236565b6001600160a01b03811661086c5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610236565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610943908490610a8a565b505050565b6001600160a01b03811661099e5760405162461bcd60e51b815260206004820152601e60248201527f5072697a654469737472696275746f722f63616c632d6e6f742d7a65726f00006044820152606401610236565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fff37eafdc3779d387d79dcf458fdc36536d857426f03a53204694f8fbb0d8a6b90600090a250565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a866001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683836108c3565b5050565b6000610adf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b6f9092919063ffffffff16565b8051909150156109435780806020019051810190610afd9190610f97565b6109435760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610236565b6060610b7e8484600085610b86565b949350505050565b606082471015610bfe5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610236565b843b610c4c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610236565b600080866001600160a01b03168587604051610c689190611015565b60006040518083038185875af1925050503d8060008114610ca5576040519150601f19603f3d011682016040523d82523d6000602084013e610caa565b606091505b5091509150610cba828286610cc5565b979650505050505050565b60608315610cd457508161039c565b825115610ce45782518084602001fd5b8160405162461bcd60e51b815260040161023691906110b5565b60008083601f840112610d1057600080fd5b50813567ffffffffffffffff811115610d2857600080fd5b602083019150836020828501011115610d4057600080fd5b9250929050565b600082601f830112610d5857600080fd5b815167ffffffffffffffff811115610d7257610d726111c6565b610d856020601f19601f840116016110e8565b818152846020838601011115610d9a57600080fd5b610b7e826020830160208701611131565b803563ffffffff8116811461041a57600080fd5b600060208284031215610dd157600080fd5b813561039c816111dc565b600080600080600060608688031215610df457600080fd5b8535610dff816111dc565b9450602086013567ffffffffffffffff80821115610e1c57600080fd5b818801915088601f830112610e3057600080fd5b813581811115610e3f57600080fd5b8960208260051b8501011115610e5457600080fd5b602083019650809550506040880135915080821115610e7257600080fd5b50610e7f88828901610cfe565b969995985093965092949392505050565b60008060408385031215610ea357600080fd5b8235610eae816111dc565b9150610ebc60208401610dab565b90509250929050565b60008060408385031215610ed857600080fd5b825167ffffffffffffffff80821115610ef057600080fd5b818501915085601f830112610f0457600080fd5b8151602082821115610f1857610f186111c6565b8160051b610f278282016110e8565b8381528281019086840183880185018c1015610f4257600080fd5b600097505b85881015610f65578051835260019790970196918401918401610f47565b509289015192975091945050505080821115610f8057600080fd5b50610f8d85828601610d47565b9150509250929050565b600060208284031215610fa957600080fd5b8151801515811461039c57600080fd5b600080600060608486031215610fce57600080fd5b8335610fd9816111dc565b92506020840135610fe9816111dc565b929592945050506040919091013590565b60006020828403121561100c57600080fd5b61039c82610dab565b60008251611027818460208701611131565b9190910192915050565b6001600160a01b038616815260606020808301829052908201859052600090869060808401835b888110156110815763ffffffff61106e85610dab565b1682529282019290820190600101611058565b5084810360408601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b60208152600082518060208401526110d4816040850160208701611131565b601f01601f19169190910160400192915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611111576111116111c6565b604052919050565b6000821982111561112c5761112c61119a565b500190565b60005b8381101561114c578181015183820152602001611134565b8381111561115b576000848401525b50505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111935761119361119a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146111f157600080fd5b5056fea264697066735822122054ea875b814e9a1a718e97bbbccdee17d6a66812561dbabd59e8ad1e5321bb0a64736f6c63430008060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
