{
  "_format": "hh-sol-artifact-1",
  "contractName": "PrizeSplitStrategyHarness",
  "sourceName": "contracts/test/PrizeSplitStrategyHarness.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "contract IPrizePool",
          "name": "_prizePool",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "contract IPrizePool",
          "name": "prizePool",
          "type": "address"
        }
      ],
      "name": "Deployed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "totalPrizeCaptured",
          "type": "uint256"
        }
      ],
      "name": "Distributed",
      "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": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "prizeAwarded",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "contract IControlledToken",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "PrizeSplitAwarded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "target",
          "type": "uint256"
        }
      ],
      "name": "PrizeSplitRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "percentage",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "PrizeSplitSet",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ONE_AS_FIXED_POINT_3",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "awardPrizeSplitAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "distribute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPrizePool",
      "outputs": [
        {
          "internalType": "contract IPrizePool",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_prizeSplitIndex",
          "type": "uint256"
        }
      ],
      "name": "getPrizeSplit",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPrizeSplits",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "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": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig",
          "name": "_prizeSplit",
          "type": "tuple"
        },
        {
          "internalType": "uint8",
          "name": "_prizeSplitIndex",
          "type": "uint8"
        }
      ],
      "name": "setPrizeSplit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig[]",
          "name": "_newPrizeSplits",
          "type": "tuple[]"
        }
      ],
      "name": "setPrizeSplits",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523480156200001157600080fd5b50604051620015aa380380620015aa833981016040819052620000349162000161565b818181620000428162000111565b506001600160a01b038116620000b55760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c697453747261746567792f7072697a652d706f6f6c2d6e6f60448201526d742d7a65726f2d6164647265737360901b606482015260840160405180910390fd5b606081901b6001600160601b0319166080526040516001600160a01b0380831682528316907f09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec209060200160405180910390a250505050620001b9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156200017557600080fd5b82516200018281620001a0565b60208401519092506200019581620001a0565b809150509250929050565b6001600160a01b0381168114620001b657600080fd5b50565b60805160601c6113bd620001ed6000396000818161015201528181610b3901528181610dca0152610e9b01526113bd6000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063884bf67c1161008c578063cf713d6e11610066578063cf713d6e146101b0578063e30c3978146101eb578063e4fc6b6d146101fc578063f2fde38b1461021257600080fd5b8063884bf67c146101505780638da5cb5b1461018a578063cf1e3b591461019b57600080fd5b806345a9f187116100bd57806345a9f1871461011f5780634e71e0c814610140578063715018a61461014857600080fd5b8063056ea84f146100e4578063063a2298146100f95780631898f91d1461010c575b600080fd5b6100f76100f23660046111ce565b610225565b005b6100f7610107366004611120565b6104d4565b6100f761011a3660046110f4565b610949565b6101286103e881565b60405161ffff90911681526020015b60405180910390f35b6100f7610957565b6100f76109e5565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610137565b6000546001600160a01b0316610172565b6101a3610a5a565b604051610137919061123e565b6101c36101be36600461120c565b610ad1565b6040805182516001600160a01b0316815260209283015161ffff169281019290925201610137565b6001546001600160a01b0316610172565b610204610b34565b604051908152602001610137565b6100f76102203660046110d0565b610c28565b336102386000546001600160a01b031690565b6001600160a01b0316146102935760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064015b60405180910390fd5b60025460ff82161061030d5760405162461bcd60e51b815260206004820152602160248201527f5072697a6553706c69742f6e6f6e6578697374656e742d7072697a6573706c6960448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161028a565b81516001600160a01b03166103895760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161028a565b8160028260ff16815481106103a0576103a0611359565b60009182526020808320845192018054949091015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199094166001600160a01b0390921691909117929092179091556103f8610d64565b90506103e88111156104725760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161028a565b82600001516001600160a01b03167f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a348460200151846040516104c792919061ffff92909216825260ff16602082015260400190565b60405180910390a2505050565b336104e76000546001600160a01b031690565b6001600160a01b03161461053d5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161028a565b8060ff8111156105b55760405162461bcd60e51b815260206004820152602560248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c6974732d6c60448201527f656e677468000000000000000000000000000000000000000000000000000000606482015260840161028a565b60005b818110156108395760008484838181106105d4576105d4611359565b9050604002018036038101906105ea91906111b2565b80519091506001600160a01b03166106695760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161028a565b60025482106106ee576002805460018101825560009190915281517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091018054602084015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199091166001600160a01b03909316929092179190911790556107d4565b60006002838154811061070357610703611359565b6000918252602091829020604080518082019091529101546001600160a01b03808216808452600160a01b90920461ffff1693830193909352845191935091161415806107605750806020015161ffff16826020015161ffff1614155b156107cb57816002848154811061077957610779611359565b6000918252602091829020835191018054939092015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199093166001600160a01b03909116179190911790556107d2565b5050610827565b505b80516020808301516040805161ffff90921682529181018590526001600160a01b03909216917f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a34910160405180910390a2505b8061083181611312565b9150506105b8565b505b6002548110156108bf5760028054600019810191908061085d5761085d611343565b6000828152602081208201600019908101805475ffffffffffffffffffffffffffffffffffffffffffff1916905590910190915560405182917f99fa473fdf53414bcd014cf6e7509fc58c68f7b86174767faa6ad5100cd5bae591a25061083b565b60006108c9610d64565b90506103e88111156109435760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161028a565b50505050565b6109538282610dc6565b5050565b6001546001600160a01b031633146109b15760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e657200604482015260640161028a565b6001546109c6906001600160a01b0316610f4b565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b336109f86000546001600160a01b031690565b6001600160a01b031614610a4e5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161028a565b610a586000610f4b565b565b60606002805480602002602001604051908101604052809291908181526020016000905b82821015610ac857600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101610a7e565b50505050905090565b604080518082019091526000808252602082015260028281548110610af857610af8611359565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b900461ffff169181019190915292915050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6d8a94b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bca9190611225565b905080610bd957600091505090565b6000610be482610fa8565b90507fddc9c30275a04c48091f24199f9c405765de34d979d6847f5b9798a57232d2e5610c1182846112fb565b60405190815260200160405180910390a150919050565b33610c3b6000546001600160a01b031690565b6001600160a01b031614610c915760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161028a565b6001600160a01b038116610d0d5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161028a565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b6002546000908190815b81811015610dbe5760028181548110610d8957610d89611359565b600091825260209091200154610daa90600160a01b900461ffff16846112a2565b925080610db681611312565b915050610d6e565b509092915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c002c4d66040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2157600080fd5b505afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190611195565b6040517f5d8a776e0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f000000000000000000000000000000000000000000000000000000000000000090911690635d8a776e90604401600060405180830381600087803b158015610ee157600080fd5b505af1158015610ef5573d6000803e3d6000fd5b50505050806001600160a01b0316836001600160a01b03167f40b9722744d0ba62d8b847077d65a712335b6769aa37fff7ad7852ec299222a784604051610f3e91815260200190565b60405180910390a3505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002546000908290825b8181101561104f57600060028281548110610fcf57610fcf611359565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b900461ffff169082018190529092506103e89061101490896112dc565b61101e91906112ba565b905061102e826000015182610dc6565b61103881866112fb565b94505050808061104790611312565b915050610fb2565b50909392505050565b60006040828403121561106a57600080fd5b6040516040810181811067ffffffffffffffff8211171561109b57634e487b7160e01b600052604160045260246000fd5b60405290508082356110ac8161136f565b8152602083013561ffff811681146110c357600080fd5b6020919091015292915050565b6000602082840312156110e257600080fd5b81356110ed8161136f565b9392505050565b6000806040838503121561110757600080fd5b82356111128161136f565b946020939093013593505050565b6000806020838503121561113357600080fd5b823567ffffffffffffffff8082111561114b57600080fd5b818501915085601f83011261115f57600080fd5b81358181111561116e57600080fd5b8660208260061b850101111561118357600080fd5b60209290920196919550909350505050565b6000602082840312156111a757600080fd5b81516110ed8161136f565b6000604082840312156111c457600080fd5b6110ed8383611058565b600080606083850312156111e157600080fd5b6111eb8484611058565b9150604083013560ff8116811461120157600080fd5b809150509250929050565b60006020828403121561121e57600080fd5b5035919050565b60006020828403121561123757600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b828110156112955761128584835180516001600160a01b0316825260209081015161ffff16910152565b928401929085019060010161125b565b5091979650505050505050565b600082198211156112b5576112b561132d565b500190565b6000826112d757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112f6576112f661132d565b500290565b60008282101561130d5761130d61132d565b500390565b60006000198214156113265761132661132d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461138457600080fd5b5056fea26469706673582212203ef05d597c45756cd963db420a325beb704a96d244ce29689657149a3038d43064736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c8063884bf67c1161008c578063cf713d6e11610066578063cf713d6e146101b0578063e30c3978146101eb578063e4fc6b6d146101fc578063f2fde38b1461021257600080fd5b8063884bf67c146101505780638da5cb5b1461018a578063cf1e3b591461019b57600080fd5b806345a9f187116100bd57806345a9f1871461011f5780634e71e0c814610140578063715018a61461014857600080fd5b8063056ea84f146100e4578063063a2298146100f95780631898f91d1461010c575b600080fd5b6100f76100f23660046111ce565b610225565b005b6100f7610107366004611120565b6104d4565b6100f761011a3660046110f4565b610949565b6101286103e881565b60405161ffff90911681526020015b60405180910390f35b6100f7610957565b6100f76109e5565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610137565b6000546001600160a01b0316610172565b6101a3610a5a565b604051610137919061123e565b6101c36101be36600461120c565b610ad1565b6040805182516001600160a01b0316815260209283015161ffff169281019290925201610137565b6001546001600160a01b0316610172565b610204610b34565b604051908152602001610137565b6100f76102203660046110d0565b610c28565b336102386000546001600160a01b031690565b6001600160a01b0316146102935760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064015b60405180910390fd5b60025460ff82161061030d5760405162461bcd60e51b815260206004820152602160248201527f5072697a6553706c69742f6e6f6e6578697374656e742d7072697a6573706c6960448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161028a565b81516001600160a01b03166103895760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161028a565b8160028260ff16815481106103a0576103a0611359565b60009182526020808320845192018054949091015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199094166001600160a01b0390921691909117929092179091556103f8610d64565b90506103e88111156104725760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161028a565b82600001516001600160a01b03167f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a348460200151846040516104c792919061ffff92909216825260ff16602082015260400190565b60405180910390a2505050565b336104e76000546001600160a01b031690565b6001600160a01b03161461053d5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161028a565b8060ff8111156105b55760405162461bcd60e51b815260206004820152602560248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c6974732d6c60448201527f656e677468000000000000000000000000000000000000000000000000000000606482015260840161028a565b60005b818110156108395760008484838181106105d4576105d4611359565b9050604002018036038101906105ea91906111b2565b80519091506001600160a01b03166106695760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161028a565b60025482106106ee576002805460018101825560009190915281517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091018054602084015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199091166001600160a01b03909316929092179190911790556107d4565b60006002838154811061070357610703611359565b6000918252602091829020604080518082019091529101546001600160a01b03808216808452600160a01b90920461ffff1693830193909352845191935091161415806107605750806020015161ffff16826020015161ffff1614155b156107cb57816002848154811061077957610779611359565b6000918252602091829020835191018054939092015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199093166001600160a01b03909116179190911790556107d2565b5050610827565b505b80516020808301516040805161ffff90921682529181018590526001600160a01b03909216917f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a34910160405180910390a2505b8061083181611312565b9150506105b8565b505b6002548110156108bf5760028054600019810191908061085d5761085d611343565b6000828152602081208201600019908101805475ffffffffffffffffffffffffffffffffffffffffffff1916905590910190915560405182917f99fa473fdf53414bcd014cf6e7509fc58c68f7b86174767faa6ad5100cd5bae591a25061083b565b60006108c9610d64565b90506103e88111156109435760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161028a565b50505050565b6109538282610dc6565b5050565b6001546001600160a01b031633146109b15760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e657200604482015260640161028a565b6001546109c6906001600160a01b0316610f4b565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b336109f86000546001600160a01b031690565b6001600160a01b031614610a4e5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161028a565b610a586000610f4b565b565b60606002805480602002602001604051908101604052809291908181526020016000905b82821015610ac857600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101610a7e565b50505050905090565b604080518082019091526000808252602082015260028281548110610af857610af8611359565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b900461ffff169181019190915292915050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e6d8a94b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bca9190611225565b905080610bd957600091505090565b6000610be482610fa8565b90507fddc9c30275a04c48091f24199f9c405765de34d979d6847f5b9798a57232d2e5610c1182846112fb565b60405190815260200160405180910390a150919050565b33610c3b6000546001600160a01b031690565b6001600160a01b031614610c915760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161028a565b6001600160a01b038116610d0d5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161028a565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b6002546000908190815b81811015610dbe5760028181548110610d8957610d89611359565b600091825260209091200154610daa90600160a01b900461ffff16846112a2565b925080610db681611312565b915050610d6e565b509092915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c002c4d66040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2157600080fd5b505afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190611195565b6040517f5d8a776e0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192507f000000000000000000000000000000000000000000000000000000000000000090911690635d8a776e90604401600060405180830381600087803b158015610ee157600080fd5b505af1158015610ef5573d6000803e3d6000fd5b50505050806001600160a01b0316836001600160a01b03167f40b9722744d0ba62d8b847077d65a712335b6769aa37fff7ad7852ec299222a784604051610f3e91815260200190565b60405180910390a3505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002546000908290825b8181101561104f57600060028281548110610fcf57610fcf611359565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b900461ffff169082018190529092506103e89061101490896112dc565b61101e91906112ba565b905061102e826000015182610dc6565b61103881866112fb565b94505050808061104790611312565b915050610fb2565b50909392505050565b60006040828403121561106a57600080fd5b6040516040810181811067ffffffffffffffff8211171561109b57634e487b7160e01b600052604160045260246000fd5b60405290508082356110ac8161136f565b8152602083013561ffff811681146110c357600080fd5b6020919091015292915050565b6000602082840312156110e257600080fd5b81356110ed8161136f565b9392505050565b6000806040838503121561110757600080fd5b82356111128161136f565b946020939093013593505050565b6000806020838503121561113357600080fd5b823567ffffffffffffffff8082111561114b57600080fd5b818501915085601f83011261115f57600080fd5b81358181111561116e57600080fd5b8660208260061b850101111561118357600080fd5b60209290920196919550909350505050565b6000602082840312156111a757600080fd5b81516110ed8161136f565b6000604082840312156111c457600080fd5b6110ed8383611058565b600080606083850312156111e157600080fd5b6111eb8484611058565b9150604083013560ff8116811461120157600080fd5b809150509250929050565b60006020828403121561121e57600080fd5b5035919050565b60006020828403121561123757600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b828110156112955761128584835180516001600160a01b0316825260209081015161ffff16910152565b928401929085019060010161125b565b5091979650505050505050565b600082198211156112b5576112b561132d565b500190565b6000826112d757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112f6576112f661132d565b500290565b60008282101561130d5761130d61132d565b500390565b60006000198214156113265761132661132d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461138457600080fd5b5056fea26469706673582212203ef05d597c45756cd963db420a325beb704a96d244ce29689657149a3038d43064736f6c63430008060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
