{
  "_format": "hh-sol-artifact-1",
  "contractName": "FixedRateWithRewardListingController",
  "sourceName": "contracts/listing/listing-strategies/fixed-rate-with-reward/FixedRateWithRewardListingController.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "InvalidContractEntityInterface",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "provided",
          "type": "bytes4"
        },
        {
          "internalType": "bytes4",
          "name": "required",
          "type": "bytes4"
        }
      ],
      "name": "ListingStrategyMismatch",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "beacon",
          "type": "address"
        }
      ],
      "name": "BeaconUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "HUNDRED_PERCENT",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "listingId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "universeId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "warperAddress",
              "type": "address"
            }
          ],
          "internalType": "struct IListingTermsRegistry.Params",
          "name": "listingTermsParams",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct IListingTermsRegistry.ListingTerms",
          "name": "listingTerms",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "listingId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "warper",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "renter",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "rentalPeriod",
              "type": "uint32"
            },
            {
              "internalType": "address",
              "name": "paymentToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "listingTermsId",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "bytes4",
                  "name": "strategyId",
                  "type": "bytes4"
                },
                {
                  "internalType": "bytes",
                  "name": "strategyData",
                  "type": "bytes"
                }
              ],
              "internalType": "struct IListingTermsRegistry.ListingTerms",
              "name": "selectedConfiguratorListingTerms",
              "type": "tuple"
            }
          ],
          "internalType": "struct Rentings.Params",
          "name": "rentingParams",
          "type": "tuple"
        }
      ],
      "name": "calculateRentalFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "listerBaseFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "universeBaseFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "protocolBaseFee",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "universeTaxTerms",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ITaxTermsRegistry.TaxTerms",
          "name": "protocolTaxTerms",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "contractKey",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes4",
              "name": "strategyId",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "strategyData",
              "type": "bytes"
            }
          ],
          "internalType": "struct IListingTermsRegistry.ListingTerms",
          "name": "terms",
          "type": "tuple"
        }
      ],
      "name": "decodeStrategyParams",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "baseRate",
          "type": "uint256"
        },
        {
          "internalType": "uint16",
          "name": "rewardPercentage",
          "type": "uint16"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "contract IACL",
              "name": "acl",
              "type": "address"
            },
            {
              "internalType": "contract IMetahub",
              "name": "metahub",
              "type": "address"
            }
          ],
          "internalType": "struct FixedRateWithRewardListingController.FixedRateWithRewardListingControllerInitParams",
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "strategyId",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        }
      ],
      "name": "upgradeTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a0604052306080523480156200001557600080fd5b50600054610100900460ff1615808015620000375750600054600160ff909116105b8062000067575062000054306200014160201b620009511760201c565b15801562000067575060005460ff166001145b620000cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000f3576000805461ff0019166101001790555b80156200013a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000150565b6001600160a01b03163b151590565b6080516117966200018860003960008181610286015281816102cf0152818161036e015281816103ae015261044101526117966000f3fe6080604052600436106100915760003560e01c806359aa1db31161005957806359aa1db31461016b5780636ed93dd0146101a3578063b6a597dd146101cc578063ec21896d146101ec578063f3e4ff831461021f57600080fd5b806301ffc9a7146100965780633659cfe6146100cb578063492f4e18146100ed5780634f1ef2861461013557806352d1902d14610148575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610ef4565b610251565b60405190151581526020015b60405180910390f35b3480156100d757600080fd5b506100eb6100e6366004610f36565b61027c565b005b3480156100f957600080fd5b507f01be24860d04cdcdba8c98f1ff62f6e70c7c8a24ee18bf599bc60267cc0f8c685b6040516001600160e01b031990911681526020016100c2565b6100eb610143366004611041565b610364565b34801561015457600080fd5b5061015d610434565b6040519081526020016100c2565b34801561017757600080fd5b5061018b6101863660046110ec565b6104e7565b6040805192835261ffff9091166020830152016100c2565b3480156101af57600080fd5b506101b961271081565b60405161ffff90911681526020016100c2565b3480156101d857600080fd5b506100eb6101e7366004611141565b6104fc565b3480156101f857600080fd5b507f72c6445d28b1a5fef40b768021c2d90ae843ecdee9104579e2b64b661689a0c961011c565b34801561022b57600080fd5b5061023f61023a36600461115d565b61066a565b6040516100c296959493929190611260565b60006001600160e01b031982166359aa1db360e01b1480610276575061027682610960565b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036102cd5760405162461bcd60e51b81526004016102c4906112aa565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661031660008051602061171a833981519152546001600160a01b031690565b6001600160a01b03161461033c5760405162461bcd60e51b81526004016102c4906112f6565b61034581610985565b6040805160008082526020820190925261036191839190610a02565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103ac5760405162461bcd60e51b81526004016102c4906112aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166103f560008051602061171a833981519152546001600160a01b031690565b6001600160a01b03161461041b5760405162461bcd60e51b81526004016102c4906112f6565b61042482610985565b61043082826001610a02565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016102c4565b5060008051602061171a83398151915290565b6000806104f383610b72565b91509150915091565b600054610100900460ff161580801561051c5750600054600160ff909116105b806105365750303b158015610536575060005460ff166001145b6105995760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102c4565b6000805460ff1916600117905580156105bc576000805461ff0019166101001790555b6105c4610c01565b6105d16020830183610f36565b609880546001600160a01b0319166001600160a01b03929092169190911790556106016040830160208401610f36565b606580546001600160a01b0319166001600160a01b03929092169190911790558015610430576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600080600080610697604051806040016040528060006001600160e01b0319168152602001606081525090565b60408051808201909152600081526060602082015260006106bf6106ba8a611342565b610b72565b509050806106d360808a0160608b01611362565b63ffffffff166106e39190611393565b60655460405163e3dedd6b60e01b81526373e1d9db60e01b60048201529197506000916001600160a01b039091169063e3dedd6b90602401602060405180830381865afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c91906113b2565b905060006001600160a01b038216633e3bc74861077c60208e018e610ef4565b6040516001600160e01b031960e084901b81168252919091166004820152602401602060405180830381865afa1580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de91906113b2565b905060006001600160a01b03831663e30d2ef46107fe60208f018f610ef4565b6040516001600160e01b031960e084901b81168252919091166004820152602401602060405180830381865afa15801561083c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086091906113cf565b905060006040518060600160405280836001600160e01b03191681526020018f6020013581526020018f604001602081019061089c9190610f36565b6001600160a01b03168152509050826001600160a01b031663d4606269828e8d6040518463ffffffff1660e01b81526004016108da9392919061149b565b600060405180830381865afa1580156108f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091f919081019061160b565b929b5090995097509550876109348a8c611682565b61093e9190611682565b9a50505050505093975093979195509350565b6001600160a01b03163b151590565b60006001600160e01b0319821663bacbb19b60e01b1480610276575061027682610c6e565b6098546001600160a01b03166001600160a01b03166312d9a6ad6000336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b1580156109e757600080fd5b505afa1580156109fb573d6000803e3d6000fd5b5050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610a3a57610a3583610ca3565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a94575060408051601f3d908101601f19168201909252610a919181019061169a565b60015b610af75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016102c4565b60008051602061171a8339815191528114610b665760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016102c4565b50610a35838383610d3f565b805160009081907f01be24860d04cdcdba8c98f1ff62f6e70c7c8a24ee18bf599bc60267cc0f8c686001600160e01b0319821662df124360e11b14610bde5760405163dc5b665760e01b81526001600160e01b03198084166004830152821660248201526044016102c4565b8460200151806020019051810190610bf691906116b3565b935093505050915091565b600054610100900460ff16610c6c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102c4565b565b60006001600160e01b0319821663ec21896d60e01b148061027657506301ffc9a760e01b6001600160e01b0319831614610276565b6001600160a01b0381163b610d105760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102c4565b60008051602061171a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610d4883610d6a565b600082511180610d555750805b15610a3557610d648383610daa565b50505050565b610d7381610ca3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b610e125760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102c4565b600080846001600160a01b031684604051610e2d91906116ea565b600060405180830381855af49150503d8060008114610e68576040519150601f19603f3d011682016040523d82523d6000602084013e610e6d565b606091505b5091509150610e95828260405180606001604052806027815260200161173a60279139610e9e565b95945050505050565b60608315610ead575081610ed7565b825115610ebd5782518084602001fd5b8160405162461bcd60e51b81526004016102c49190611706565b9392505050565b6001600160e01b03198116811461036157600080fd5b600060208284031215610f0657600080fd5b8135610ed781610ede565b6001600160a01b038116811461036157600080fd5b8035610f3181610f11565b919050565b600060208284031215610f4857600080fd5b8135610ed781610f11565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f8c57610f8c610f53565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610fbb57610fbb610f53565b604052919050565b600067ffffffffffffffff821115610fdd57610fdd610f53565b50601f01601f191660200190565b600082601f830112610ffc57600080fd5b813561100f61100a82610fc3565b610f92565b81815284602083860101111561102457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561105457600080fd5b823561105f81610f11565b9150602083013567ffffffffffffffff81111561107b57600080fd5b61108785828601610feb565b9150509250929050565b6000604082840312156110a357600080fd5b6110ab610f69565b905081356110b881610ede565b8152602082013567ffffffffffffffff8111156110d457600080fd5b6110e084828501610feb565b60208301525092915050565b6000602082840312156110fe57600080fd5b813567ffffffffffffffff81111561111557600080fd5b61112184828501611091565b949350505050565b60006040828403121561113b57600080fd5b50919050565b60006040828403121561115357600080fd5b610ed78383611129565b600080600083850360a081121561117357600080fd5b606081121561118157600080fd5b50839250606084013567ffffffffffffffff808211156111a057600080fd5b6111ac87838801611129565b935060808601359150808211156111c257600080fd5b50840160e081870312156111d557600080fd5b809150509250925092565b60005b838110156111fb5781810151838201526020016111e3565b83811115610d645750506000910152565b600081518084526112248160208601602086016111e0565b601f01601f19169290920160200192915050565b63ffffffff60e01b81511682526000602082015160406020850152611121604085018261120c565b86815285602082015284604082015283606082015260c06080820152600061128b60c0830185611238565b82810360a084015261129d8185611238565b9998505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006102763683611091565b803563ffffffff81168114610f3157600080fd5b60006020828403121561137457600080fd5b610ed78261134e565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156113ad576113ad61137d565b500290565b6000602082840312156113c457600080fd5b8151610ed781610f11565b6000602082840312156113e157600080fd5b8151610ed781610ede565b60008235603e1983360301811261140257600080fd5b90910192915050565b6000813561141881610ede565b6001600160e01b0319168352602082013536839003601e1901811261143c57600080fd5b8201803567ffffffffffffffff81111561145557600080fd5b80360384131561146457600080fd5b60406020860152806040860152806020830160608701376000606082870101526060601f19601f8301168601019250505092915050565b63ffffffff60e01b8451168152602084015160208201526000604085015160018060a01b03808216604085015260a06060850152853560a0850152602086013591506114e682610f11565b90811660c08401526040850135906114fd82610f11565b1660e083015261150f6060850161134e565b63ffffffff1661010083015261152760808501610f26565b6001600160a01b031661012083015260a084013561014083015261154e60c08501856113ec565b60e061016084015261156461018084018261140b565b915050826080830152949350505050565b60006040828403121561158757600080fd5b61158f610f69565b9050815161159c81610ede565b8152602082015167ffffffffffffffff8111156115b857600080fd5b8201601f810184136115c957600080fd5b80516115d761100a82610fc3565b8181528560208385010111156115ec57600080fd5b6115fd8260208301602086016111e0565b602084015250909392505050565b6000806000806080858703121561162157600080fd5b8451935060208501519250604085015167ffffffffffffffff8082111561164757600080fd5b61165388838901611575565b9350606087015191508082111561166957600080fd5b5061167687828801611575565b91505092959194509250565b600082198211156116955761169561137d565b500190565b6000602082840312156116ac57600080fd5b5051919050565b600080604083850312156116c657600080fd5b82519150602083015161ffff811681146116df57600080fd5b809150509250929050565b600082516116fc8184602087016111e0565b9190910192915050565b602081526000610ed7602083018461120c56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d7e3f462340db204c8df364bd23b50a982f4a529ef8236b3b1fb9066e4f4119b64736f6c634300080d0033",
  "deployedBytecode": "0x6080604052600436106100915760003560e01c806359aa1db31161005957806359aa1db31461016b5780636ed93dd0146101a3578063b6a597dd146101cc578063ec21896d146101ec578063f3e4ff831461021f57600080fd5b806301ffc9a7146100965780633659cfe6146100cb578063492f4e18146100ed5780634f1ef2861461013557806352d1902d14610148575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610ef4565b610251565b60405190151581526020015b60405180910390f35b3480156100d757600080fd5b506100eb6100e6366004610f36565b61027c565b005b3480156100f957600080fd5b507f01be24860d04cdcdba8c98f1ff62f6e70c7c8a24ee18bf599bc60267cc0f8c685b6040516001600160e01b031990911681526020016100c2565b6100eb610143366004611041565b610364565b34801561015457600080fd5b5061015d610434565b6040519081526020016100c2565b34801561017757600080fd5b5061018b6101863660046110ec565b6104e7565b6040805192835261ffff9091166020830152016100c2565b3480156101af57600080fd5b506101b961271081565b60405161ffff90911681526020016100c2565b3480156101d857600080fd5b506100eb6101e7366004611141565b6104fc565b3480156101f857600080fd5b507f72c6445d28b1a5fef40b768021c2d90ae843ecdee9104579e2b64b661689a0c961011c565b34801561022b57600080fd5b5061023f61023a36600461115d565b61066a565b6040516100c296959493929190611260565b60006001600160e01b031982166359aa1db360e01b1480610276575061027682610960565b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036102cd5760405162461bcd60e51b81526004016102c4906112aa565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661031660008051602061171a833981519152546001600160a01b031690565b6001600160a01b03161461033c5760405162461bcd60e51b81526004016102c4906112f6565b61034581610985565b6040805160008082526020820190925261036191839190610a02565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103ac5760405162461bcd60e51b81526004016102c4906112aa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166103f560008051602061171a833981519152546001600160a01b031690565b6001600160a01b03161461041b5760405162461bcd60e51b81526004016102c4906112f6565b61042482610985565b61043082826001610a02565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016102c4565b5060008051602061171a83398151915290565b6000806104f383610b72565b91509150915091565b600054610100900460ff161580801561051c5750600054600160ff909116105b806105365750303b158015610536575060005460ff166001145b6105995760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102c4565b6000805460ff1916600117905580156105bc576000805461ff0019166101001790555b6105c4610c01565b6105d16020830183610f36565b609880546001600160a01b0319166001600160a01b03929092169190911790556106016040830160208401610f36565b606580546001600160a01b0319166001600160a01b03929092169190911790558015610430576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600080600080610697604051806040016040528060006001600160e01b0319168152602001606081525090565b60408051808201909152600081526060602082015260006106bf6106ba8a611342565b610b72565b509050806106d360808a0160608b01611362565b63ffffffff166106e39190611393565b60655460405163e3dedd6b60e01b81526373e1d9db60e01b60048201529197506000916001600160a01b039091169063e3dedd6b90602401602060405180830381865afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c91906113b2565b905060006001600160a01b038216633e3bc74861077c60208e018e610ef4565b6040516001600160e01b031960e084901b81168252919091166004820152602401602060405180830381865afa1580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de91906113b2565b905060006001600160a01b03831663e30d2ef46107fe60208f018f610ef4565b6040516001600160e01b031960e084901b81168252919091166004820152602401602060405180830381865afa15801561083c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086091906113cf565b905060006040518060600160405280836001600160e01b03191681526020018f6020013581526020018f604001602081019061089c9190610f36565b6001600160a01b03168152509050826001600160a01b031663d4606269828e8d6040518463ffffffff1660e01b81526004016108da9392919061149b565b600060405180830381865afa1580156108f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091f919081019061160b565b929b5090995097509550876109348a8c611682565b61093e9190611682565b9a50505050505093975093979195509350565b6001600160a01b03163b151590565b60006001600160e01b0319821663bacbb19b60e01b1480610276575061027682610c6e565b6098546001600160a01b03166001600160a01b03166312d9a6ad6000336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b1580156109e757600080fd5b505afa1580156109fb573d6000803e3d6000fd5b5050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610a3a57610a3583610ca3565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a94575060408051601f3d908101601f19168201909252610a919181019061169a565b60015b610af75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016102c4565b60008051602061171a8339815191528114610b665760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016102c4565b50610a35838383610d3f565b805160009081907f01be24860d04cdcdba8c98f1ff62f6e70c7c8a24ee18bf599bc60267cc0f8c686001600160e01b0319821662df124360e11b14610bde5760405163dc5b665760e01b81526001600160e01b03198084166004830152821660248201526044016102c4565b8460200151806020019051810190610bf691906116b3565b935093505050915091565b600054610100900460ff16610c6c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102c4565b565b60006001600160e01b0319821663ec21896d60e01b148061027657506301ffc9a760e01b6001600160e01b0319831614610276565b6001600160a01b0381163b610d105760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102c4565b60008051602061171a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610d4883610d6a565b600082511180610d555750805b15610a3557610d648383610daa565b50505050565b610d7381610ca3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b610e125760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102c4565b600080846001600160a01b031684604051610e2d91906116ea565b600060405180830381855af49150503d8060008114610e68576040519150601f19603f3d011682016040523d82523d6000602084013e610e6d565b606091505b5091509150610e95828260405180606001604052806027815260200161173a60279139610e9e565b95945050505050565b60608315610ead575081610ed7565b825115610ebd5782518084602001fd5b8160405162461bcd60e51b81526004016102c49190611706565b9392505050565b6001600160e01b03198116811461036157600080fd5b600060208284031215610f0657600080fd5b8135610ed781610ede565b6001600160a01b038116811461036157600080fd5b8035610f3181610f11565b919050565b600060208284031215610f4857600080fd5b8135610ed781610f11565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f8c57610f8c610f53565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610fbb57610fbb610f53565b604052919050565b600067ffffffffffffffff821115610fdd57610fdd610f53565b50601f01601f191660200190565b600082601f830112610ffc57600080fd5b813561100f61100a82610fc3565b610f92565b81815284602083860101111561102457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561105457600080fd5b823561105f81610f11565b9150602083013567ffffffffffffffff81111561107b57600080fd5b61108785828601610feb565b9150509250929050565b6000604082840312156110a357600080fd5b6110ab610f69565b905081356110b881610ede565b8152602082013567ffffffffffffffff8111156110d457600080fd5b6110e084828501610feb565b60208301525092915050565b6000602082840312156110fe57600080fd5b813567ffffffffffffffff81111561111557600080fd5b61112184828501611091565b949350505050565b60006040828403121561113b57600080fd5b50919050565b60006040828403121561115357600080fd5b610ed78383611129565b600080600083850360a081121561117357600080fd5b606081121561118157600080fd5b50839250606084013567ffffffffffffffff808211156111a057600080fd5b6111ac87838801611129565b935060808601359150808211156111c257600080fd5b50840160e081870312156111d557600080fd5b809150509250925092565b60005b838110156111fb5781810151838201526020016111e3565b83811115610d645750506000910152565b600081518084526112248160208601602086016111e0565b601f01601f19169290920160200192915050565b63ffffffff60e01b81511682526000602082015160406020850152611121604085018261120c565b86815285602082015284604082015283606082015260c06080820152600061128b60c0830185611238565b82810360a084015261129d8185611238565b9998505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006102763683611091565b803563ffffffff81168114610f3157600080fd5b60006020828403121561137457600080fd5b610ed78261134e565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156113ad576113ad61137d565b500290565b6000602082840312156113c457600080fd5b8151610ed781610f11565b6000602082840312156113e157600080fd5b8151610ed781610ede565b60008235603e1983360301811261140257600080fd5b90910192915050565b6000813561141881610ede565b6001600160e01b0319168352602082013536839003601e1901811261143c57600080fd5b8201803567ffffffffffffffff81111561145557600080fd5b80360384131561146457600080fd5b60406020860152806040860152806020830160608701376000606082870101526060601f19601f8301168601019250505092915050565b63ffffffff60e01b8451168152602084015160208201526000604085015160018060a01b03808216604085015260a06060850152853560a0850152602086013591506114e682610f11565b90811660c08401526040850135906114fd82610f11565b1660e083015261150f6060850161134e565b63ffffffff1661010083015261152760808501610f26565b6001600160a01b031661012083015260a084013561014083015261154e60c08501856113ec565b60e061016084015261156461018084018261140b565b915050826080830152949350505050565b60006040828403121561158757600080fd5b61158f610f69565b9050815161159c81610ede565b8152602082015167ffffffffffffffff8111156115b857600080fd5b8201601f810184136115c957600080fd5b80516115d761100a82610fc3565b8181528560208385010111156115ec57600080fd5b6115fd8260208301602086016111e0565b602084015250909392505050565b6000806000806080858703121561162157600080fd5b8451935060208501519250604085015167ffffffffffffffff8082111561164757600080fd5b61165388838901611575565b9350606087015191508082111561166957600080fd5b5061167687828801611575565b91505092959194509250565b600082198211156116955761169561137d565b500190565b6000602082840312156116ac57600080fd5b5051919050565b600080604083850312156116c657600080fd5b82519150602083015161ffff811681146116df57600080fd5b809150509250929050565b600082516116fc8184602087016111e0565b9190910192915050565b602081526000610ed7602083018461120c56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d7e3f462340db204c8df364bd23b50a982f4a529ef8236b3b1fb9066e4f4119b64736f6c634300080d0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
