{
  "_format": "hh-sol-artifact-1",
  "contractName": "ValidatorRewardManager",
  "sourceName": "contracts/tokenPools/implementation/ValidatorRewardManager.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governance",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_addressUpdater",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_oldRewardManager",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "rewardOwner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        }
      ],
      "name": "AllowedClaimRecipientsChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "rewardOwner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "executors",
          "type": "address[]"
        }
      ],
      "name": "ClaimExecutorsChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "authorizedAmountWei",
          "type": "uint256"
        }
      ],
      "name": "DailyAuthorizedInflationSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "allowedAfterTimestamp",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "encodedCall",
          "type": "bytes"
        }
      ],
      "name": "GovernanceCallTimelocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "initialGovernance",
          "type": "address"
        }
      ],
      "name": "GovernanceInitialised",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "governanceSettings",
          "type": "address"
        }
      ],
      "name": "GovernedProductionModeEntered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amountReceivedWei",
          "type": "uint256"
        }
      ],
      "name": "InflationReceived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sentTo",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RewardClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "addresses",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "rewards",
          "type": "uint256[]"
        }
      ],
      "name": "RewardsDistributed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "TimelockedGovernanceCallCanceled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "TimelockedGovernanceCallExecuted",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "activate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "active",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardOwner",
          "type": "address"
        }
      ],
      "name": "allowedClaimRecipients",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "_selector",
          "type": "bytes4"
        }
      ],
      "name": "cancelGovernanceCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardOwner",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_rewardAmount",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_wrap",
          "type": "bool"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardOwner",
          "type": "address"
        }
      ],
      "name": "claimExecutors",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deactivate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_addresses",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_rewardAmounts",
          "type": "uint256[]"
        }
      ],
      "name": "distributeRewards",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "_selector",
          "type": "bytes4"
        }
      ],
      "name": "executeGovernanceCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAddressUpdater",
      "outputs": [
        {
          "internalType": "address",
          "name": "_addressUpdater",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getContractName",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInflationAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "getStateOfRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_totalReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_claimedReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTokenPoolSupplyData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_lockedFundsWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalInflationAuthorizedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalClaimedWei",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_totalAwardedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalClaimedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalInflationAuthorizedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalInflationReceivedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalSelfDestructReceivedWei",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_lastInflationAuthorizationReceivedTs",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_dailyAuthorizedInflation",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governance",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governanceSettings",
      "outputs": [
        {
          "internalType": "contract IGovernanceSettings",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_initialGovernance",
          "type": "address"
        }
      ],
      "name": "initialise",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "newRewardManager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oldRewardManager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "productionMode",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "receiveInflation",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardDistributor",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_recipients",
          "type": "address[]"
        }
      ],
      "name": "setAllowedClaimRecipients",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_executors",
          "type": "address[]"
        }
      ],
      "name": "setClaimExecutors",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_toAuthorizeWei",
          "type": "uint256"
        }
      ],
      "name": "setDailyAuthorizedInflation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newRewardManager",
          "type": "address"
        }
      ],
      "name": "setNewRewardManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_rewardDistributor",
          "type": "address"
        }
      ],
      "name": "setRewardDistributor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "switchToProductionMode",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "name": "timelockedCalls",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "allowedAfterTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "encodedCall",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_contractNameHashes",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_contractAddresses",
          "type": "address[]"
        }
      ],
      "name": "updateContractAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "wNat",
      "outputs": [
        {
          "internalType": "contract WNat",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523480156200001157600080fd5b5060405162002c5e38038062002c5e833981810160405260608110156200003757600080fd5b50805160208201516040909201519091908282828183806001600160a01b0381161562000069576200006981620000e7565b506001600160a01b038116620000b9576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506001600255620000ca81620001aa565b5060601b6001600160601b03191660805250620001ce9350505050565b600054600160a01b900460ff161562000147576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b60805160601c612a72620001ec60003980610f165250612a726000f3fe6080604052600436106101e35760003560e01c80639119c49411610102578063dfd14c3411610095578063f1367b7f11610064578063f1367b7f14610a24578063f5a9838314610a70578063f5f5ba7214610a85578063fbde354d14610b0f576101e3565b8063dfd14c341461099d578063e17f212e146109d0578063e2739563146109e5578063ed39d3f814610a0f576101e3565b8063acc2166a116100d1578063acc2166a1461075f578063b00c0b7614610774578063b2c12192146108a4578063d2a4ac61146108ef576101e3565b80639119c494146106365780639d6a890f146106e45780639edbf00714610717578063a1809b951461072c576101e3565b806351b42b001161017a57806362354e031161014957806362354e03146104ed57806367fc40291461050257806374e6310e1461053657806384e10a90146105e9576101e3565b806351b42b001461047a5780635267a15d1461048f5780635aa6e675146104a45780635ff27079146104b9576101e3565b80632dafdbbf116101b65780632dafdbbf1461036057806336300be2146103935780633f317fe1146103c4578063470ce08714610447576101e3565b806302fb0c5e146101e857806306201f1d146102115780630f15f4c01461021b578063143ba4f314610230575b600080fd5b3480156101f457600080fd5b506101fd610b24565b604080519115158252519081900360200190f35b610219610b2d565b005b34801561022757600080fd5b50610219610b96565b34801561023c57600080fd5b506102196004803603604081101561025357600080fd5b810190602081018135600160201b81111561026d57600080fd5b82018360208201111561027f57600080fd5b803590602001918460208302840111600160201b831117156102a057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c22945050505050565b34801561036c57600080fd5b50610375610f09565b60408051938452602084019290925282820152519081900360600190f35b34801561039f57600080fd5b506103a8610f14565b604080516001600160a01b039092168252519081900360200190f35b3480156103d057600080fd5b506103f7600480360360208110156103e757600080fd5b50356001600160a01b0316610f38565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043357818101518382015260200161041b565b505050509050019250505060405180910390f35b34801561045357600080fd5b506102196004803603602081101561046a57600080fd5b50356001600160a01b0316610fae565b34801561048657600080fd5b506102196110c4565b34801561049b57600080fd5b506103a86110d8565b3480156104b057600080fd5b506103a86110fd565b3480156104c557600080fd5b50610219600480360360208110156104dc57600080fd5b50356001600160e01b031916611192565b3480156104f957600080fd5b506103a86114e7565b34801561050e57600080fd5b506102196004803603602081101561052557600080fd5b50356001600160e01b0319166114f2565b34801561054257600080fd5b5061056a6004803603602081101561055957600080fd5b50356001600160e01b0319166115da565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105ad578181015183820152602001610595565b50505050905090810190601f1680156105da5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156105f557600080fd5b506105fe611680565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b34801561064257600080fd5b506102196004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460208302840111600160201b831117156106a657600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061169e945050505050565b3480156106f057600080fd5b506102196004803603602081101561070757600080fd5b50356001600160a01b0316611740565b34801561072357600080fd5b506103a86117f9565b34801561073857600080fd5b506102196004803603602081101561074f57600080fd5b50356001600160a01b0316611808565b34801561076b57600080fd5b506103a8611857565b34801561078057600080fd5b506102196004803603604081101561079757600080fd5b810190602081018135600160201b8111156107b157600080fd5b8201836020820111156107c357600080fd5b803590602001918460208302840111600160201b831117156107e457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561083357600080fd5b82018360208201111561084557600080fd5b803590602001918460208302840111600160201b8311171561086657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611866945050505050565b3480156108b057600080fd5b50610219600480360360808110156108c757600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515611911565b3480156108fb57600080fd5b506102196004803603602081101561091257600080fd5b810190602081018135600160201b81111561092c57600080fd5b82018360208201111561093e57600080fd5b803590602001918460208302840111600160201b8311171561095f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506119a6945050505050565b3480156109a957600080fd5b506103f7600480360360208110156109c057600080fd5b50356001600160a01b0316611a30565b3480156109dc57600080fd5b506101fd611aa4565b3480156109f157600080fd5b5061021960048036036020811015610a0857600080fd5b5035611ab4565b348015610a1b57600080fd5b506103a8611b0b565b348015610a3057600080fd5b50610a5760048036036020811015610a4757600080fd5b50356001600160a01b0316611b1a565b6040805192835260208301919091528051918290030190f35b348015610a7c57600080fd5b50610219611b42565b348015610a9157600080fd5b50610a9a611bfc565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610ad4578181015183820152602001610abc565b50505050905090810190601f168015610b015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b1b57600080fd5b506103a8611c2c565b60035460ff1681565b610b35611c3b565b6000610b3f611cba565b50600b54909150610b509034611d14565b600b55600f8190556040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a150610b94611d75565b565b610b9e611df2565b6011546001600160a01b031615801590610bc257506012546001600160a01b031615155b610c13576040805162461bcd60e51b815260206004820152601a60248201527f636f6e747261637420616464726573736573206e6f7420736574000000000000604482015290519081900360640190fd5b6003805460ff19166001179055565b610c2a611e51565b8151815160408051808201909152601781527f617272617973206c656e67746873206d69736d617463680000000000000000006020820152908214610ced5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cb2578181015183820152602001610c9a565b50505050905090810190601f168015610cdf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000805b82811015610dc457610d58848281518110610d0957fe5b602002602001015160046000888581518110610d2157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054611d1490919063ffffffff16565b60046000878481518110610d6857fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550610dba848281518110610da357fe5b602002602001015183611d1490919063ffffffff16565b9150600101610cf2565b50600854610dd29082611d14565b6008818155600a5460408051808201909152918252670e8dede40daeac6d60c31b602083015290911115610e475760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b507fe69d325558610ba73c441901deb46d7f251108348dc5dc9447e8866774c12edc8484604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610eaf578181015183820152602001610e97565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610eee578181015183820152602001610ed6565b5050505090500194505050505060405180910390a150505050565b600a54600954600092565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038116600090815260066020908152604091829020805483518184028101840190945280845260609392830182828015610fa257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f84575b50505050509050919050565b600054600160b01b900460ff1680610fd05750600054600160a81b900460ff16155b156110b657610fdd611edf565b6013546001600160a01b03161561103b576040805162461bcd60e51b815260206004820152601e60248201527f6e657720726577617264206d616e6167657220616c7265616479207365740000604482015290519081900360640190fd5b6001600160a01b038116611096576040805162461bcd60e51b815260206004820152601760248201527f6e657720726577617264206d616e61676572207a65726f000000000000000000604482015290519081900360640190fd5b601380546001600160a01b0319166001600160a01b0383161790556110c1565b6110c1600036611f14565b50565b6110cc611df2565b6003805460ff19169055565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611120576000546001600160a01b031661118d565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561116057600080fd5b505afa158015611174573d6000803e3d6000fd5b505050506040513d602081101561118a57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b1580156111d657600080fd5b505afa1580156111ea573d6000803e3d6000fd5b505050506040513d602081101561120057600080fd5b5051611243576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546112af576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611305576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561139f5780601f106113745761010080835404028352916020019161139f565b820191906000526020600020905b81548152906001019060200180831161138257829003601f168201915b5050506001600160e01b03198616600090815260016020819052604082208281559495509092506113d39150830182612957565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b6020831061141b5780518252601f1990920191602091820191016113fc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461147d576040519150601f19603f3d011682016040523d82523d6000602084013e611482565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a16114e181612097565b50505050565b60076001609c1b0181565b6114fa611df2565b6001600160e01b03198116600090815260016020526040902054611565576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906115d590830182612957565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156116765780601f1061164b57610100808354040283529160200191611676565b820191906000526020600020905b81548152906001019060200180831161165957829003601f168201915b5050505050905082565b600854600954600a54600b54600c54600d54600e5490919293949596565b3360009081526006602052604090206116b790826120b4565b7fa802dcd9d0db82c5fc0b043e16d9ab77391cff1b84415bce9e95c4a8d6fe7146338260405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611729578181015183820152602001611711565b50505050905001935050505060405180910390a150565b600054600160a01b900460ff1615611796576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6012546001600160a01b031681565b600054600160b01b900460ff168061182a5750600054600160a81b900460ff16155b156110b657611837611edf565b601080546001600160a01b0319166001600160a01b0383161790556110c1565b6010546001600160a01b031681565b61186e6110d8565b6001600160a01b0316336001600160a01b0316146118ca576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6119036118fe83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506120c7565b6121f4565b61190d8282612218565b5050565b6119196122b5565b600280541415611970576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600280558361197e8161233b565b848461198a82826123f2565b611996878787876124c7565b50506001600255506114e1611d75565b3360009081526007602052604090206119bf90826120b4565b7ff650948f1320658fded6be6217b1fe9963894116bc6b3dbc9b1c2cc8cf2cb11f338260405180836001600160a01b03168152602001806020018281038252838181518152602001915080519060200190602002808383600083811015611729578181015183820152602001611711565b6001600160a01b038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015610fa2576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610f845750505050509050919050565b600054600160a81b900460ff1681565b611abc611c3b565b600e819055600a54611ace9082611d14565b600a5542600d556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b6011546001600160a01b031690565b6001600160a01b03166000908152600460209081526040808320546005909252909120549091565b611b4a611df2565b600054600160a81b900460ff1615611ba9576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b6040805180820190915260168152752b30b634b230ba37b92932bbb0b93226b0b730b3b2b960511b602082015290565b6013546001600160a01b031681565b60115460408051808201909152600e81526d696e666c6174696f6e206f6e6c7960901b6020820152906001600160a01b031633146110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b600080611cd234600f54611d1490919063ffffffff16565b905047915080821115611d0657611cfe81611cf884600c54611d1490919063ffffffff16565b90612689565b600c55611d10565b80821015611d1057fe5b9091565b600082820183811015611d6e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b611d7d6126e6565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b815250906110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b611dfa6110fd565b6001600160a01b0316336001600160a01b031614610b94576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60105460408051808201909152601781527f726577617264206469737472696275746f72206f6e6c790000000000000000006020820152906001600160a01b031633146110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b600054600160b01b900460ff1615611f0c57333014611efa57fe5b6000805460ff60b01b19169055610b94565b610b94611df2565b611f1c611df2565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6457600080fd5b505afa158015611f78573d6000803e3d6000fd5b505050506040513d6020811015611f8e57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600160208181526040909220845181558483015180519194506120129392850192019061299b565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b3d604051818101604052816000823e82156120b0578181f35b8181fd5b6120bd82612705565b61190d828261277d565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561210b5781810151838201526020016120f3565b50505050905090810190601f1680156121385780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b86518110156121a05786818151811061216e57fe5b60200260200101518314156121985785818151811061218957fe5b602002602001015191506121a0565b600101612159565b506001600160a01b0381166121eb576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61224482826040518060400160405280600981526020016824b7333630ba34b7b760b91b8152506120c7565b601160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061229182826040518060400160405280600481526020016315d3985d60e21b8152506120c7565b601280546001600160a01b0319166001600160a01b03929092169190911790555050565b60035460408051808201909152601a81527f726577617264206d616e6167657220646561637469766174656400000000000060208201529060ff166110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b6001600160a01b03811633148061237757506001600160a01b038116600090815260066020908152604080832033845260010190915290205415155b6040518060400160405280601681526020017537b7363c9037bbb732b91037b91032bc32b1baba37b960511b8152509061190d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b336001600160a01b038316148061241a5750816001600160a01b0316816001600160a01b0316145b8061244d57506001600160a01b038083166000908152600760209081526040808320938516835260019093019052205415155b604051806040016040528060158152602001741c9958da5c1a595b9d081b9bdd08185b1b1bddd959605a1b815250906115d55760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b60408051808201909152600e81526d726563697069656e74207a65726f60901b60208201526001600160a01b0384166125415760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b5061254a611cba565b50506001600160a01b03841660009081526005602052604090205461256f9083611d14565b6001600160a01b0385166000908152600560208181526040808420859055600482529283902054918152825180840190935260088352670e8dede40daeac6d60c31b90830152909111156126045760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b506009546126129083611d14565b600955801561262a5761262583836127ae565b612634565b6126348383612822565b826001600160a01b0316846001600160a01b03167f0aa4d283470c904c551d18bb894d37e17674920f3261a7f854be501e25f421b7846040518082815260200191505060405180910390a3505047600f555050565b6000828211156126e0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061118d600954611cf8600c54600b54611d1490919063ffffffff16565b8054156110c157805460018201906000908390600019810190811061272657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055805481908061275657fe5b600082815260209020810160001990810180546001600160a01b0319169055019055612705565b60005b81518110156115d5576127a68383838151811061279957fe5b60200260200101516128ee565b600101612780565b801561190d576012546040805163b760faf960e01b81526001600160a01b0385811660048301529151919092169163b760faf991849160248082019260009290919082900301818588803b15801561280557600080fd5b505af1158015612819573d6000803e3d6000fd5b50505050505050565b801561190d576040516000906001600160a01b0384169083908381818185875af1925050503d8060008114612873576040519150601f19603f3d011682016040523d82523d6000602084013e612878565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b815250906114e15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b6001600160a01b0381166000908152600183016020526040902054156129135761190d565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b50805460018160011615610100020316600290046000825580601f1061297d57506110c1565b601f0160209004906000526020600020908101906110c19190612a27565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826129d15760008555612a17565b82601f106129ea57805160ff1916838001178555612a17565b82800160010185558215612a17579182015b82811115612a175782518255916020019190600101906129fc565b50612a23929150612a27565b5090565b5b80821115612a235760008155600101612a2856fea2646970667358221220fb0a66729bb370a990e8ce8350f7ac84bab0d609caca71659fbc6cff7ac2d79264736f6c63430007060033",
  "deployedBytecode": "0x6080604052600436106101e35760003560e01c80639119c49411610102578063dfd14c3411610095578063f1367b7f11610064578063f1367b7f14610a24578063f5a9838314610a70578063f5f5ba7214610a85578063fbde354d14610b0f576101e3565b8063dfd14c341461099d578063e17f212e146109d0578063e2739563146109e5578063ed39d3f814610a0f576101e3565b8063acc2166a116100d1578063acc2166a1461075f578063b00c0b7614610774578063b2c12192146108a4578063d2a4ac61146108ef576101e3565b80639119c494146106365780639d6a890f146106e45780639edbf00714610717578063a1809b951461072c576101e3565b806351b42b001161017a57806362354e031161014957806362354e03146104ed57806367fc40291461050257806374e6310e1461053657806384e10a90146105e9576101e3565b806351b42b001461047a5780635267a15d1461048f5780635aa6e675146104a45780635ff27079146104b9576101e3565b80632dafdbbf116101b65780632dafdbbf1461036057806336300be2146103935780633f317fe1146103c4578063470ce08714610447576101e3565b806302fb0c5e146101e857806306201f1d146102115780630f15f4c01461021b578063143ba4f314610230575b600080fd5b3480156101f457600080fd5b506101fd610b24565b604080519115158252519081900360200190f35b610219610b2d565b005b34801561022757600080fd5b50610219610b96565b34801561023c57600080fd5b506102196004803603604081101561025357600080fd5b810190602081018135600160201b81111561026d57600080fd5b82018360208201111561027f57600080fd5b803590602001918460208302840111600160201b831117156102a057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c22945050505050565b34801561036c57600080fd5b50610375610f09565b60408051938452602084019290925282820152519081900360600190f35b34801561039f57600080fd5b506103a8610f14565b604080516001600160a01b039092168252519081900360200190f35b3480156103d057600080fd5b506103f7600480360360208110156103e757600080fd5b50356001600160a01b0316610f38565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043357818101518382015260200161041b565b505050509050019250505060405180910390f35b34801561045357600080fd5b506102196004803603602081101561046a57600080fd5b50356001600160a01b0316610fae565b34801561048657600080fd5b506102196110c4565b34801561049b57600080fd5b506103a86110d8565b3480156104b057600080fd5b506103a86110fd565b3480156104c557600080fd5b50610219600480360360208110156104dc57600080fd5b50356001600160e01b031916611192565b3480156104f957600080fd5b506103a86114e7565b34801561050e57600080fd5b506102196004803603602081101561052557600080fd5b50356001600160e01b0319166114f2565b34801561054257600080fd5b5061056a6004803603602081101561055957600080fd5b50356001600160e01b0319166115da565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105ad578181015183820152602001610595565b50505050905090810190601f1680156105da5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156105f557600080fd5b506105fe611680565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b34801561064257600080fd5b506102196004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460208302840111600160201b831117156106a657600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061169e945050505050565b3480156106f057600080fd5b506102196004803603602081101561070757600080fd5b50356001600160a01b0316611740565b34801561072357600080fd5b506103a86117f9565b34801561073857600080fd5b506102196004803603602081101561074f57600080fd5b50356001600160a01b0316611808565b34801561076b57600080fd5b506103a8611857565b34801561078057600080fd5b506102196004803603604081101561079757600080fd5b810190602081018135600160201b8111156107b157600080fd5b8201836020820111156107c357600080fd5b803590602001918460208302840111600160201b831117156107e457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561083357600080fd5b82018360208201111561084557600080fd5b803590602001918460208302840111600160201b8311171561086657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611866945050505050565b3480156108b057600080fd5b50610219600480360360808110156108c757600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515611911565b3480156108fb57600080fd5b506102196004803603602081101561091257600080fd5b810190602081018135600160201b81111561092c57600080fd5b82018360208201111561093e57600080fd5b803590602001918460208302840111600160201b8311171561095f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506119a6945050505050565b3480156109a957600080fd5b506103f7600480360360208110156109c057600080fd5b50356001600160a01b0316611a30565b3480156109dc57600080fd5b506101fd611aa4565b3480156109f157600080fd5b5061021960048036036020811015610a0857600080fd5b5035611ab4565b348015610a1b57600080fd5b506103a8611b0b565b348015610a3057600080fd5b50610a5760048036036020811015610a4757600080fd5b50356001600160a01b0316611b1a565b6040805192835260208301919091528051918290030190f35b348015610a7c57600080fd5b50610219611b42565b348015610a9157600080fd5b50610a9a611bfc565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610ad4578181015183820152602001610abc565b50505050905090810190601f168015610b015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b1b57600080fd5b506103a8611c2c565b60035460ff1681565b610b35611c3b565b6000610b3f611cba565b50600b54909150610b509034611d14565b600b55600f8190556040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a150610b94611d75565b565b610b9e611df2565b6011546001600160a01b031615801590610bc257506012546001600160a01b031615155b610c13576040805162461bcd60e51b815260206004820152601a60248201527f636f6e747261637420616464726573736573206e6f7420736574000000000000604482015290519081900360640190fd5b6003805460ff19166001179055565b610c2a611e51565b8151815160408051808201909152601781527f617272617973206c656e67746873206d69736d617463680000000000000000006020820152908214610ced5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cb2578181015183820152602001610c9a565b50505050905090810190601f168015610cdf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000805b82811015610dc457610d58848281518110610d0957fe5b602002602001015160046000888581518110610d2157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054611d1490919063ffffffff16565b60046000878481518110610d6857fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550610dba848281518110610da357fe5b602002602001015183611d1490919063ffffffff16565b9150600101610cf2565b50600854610dd29082611d14565b6008818155600a5460408051808201909152918252670e8dede40daeac6d60c31b602083015290911115610e475760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b507fe69d325558610ba73c441901deb46d7f251108348dc5dc9447e8866774c12edc8484604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610eaf578181015183820152602001610e97565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610eee578181015183820152602001610ed6565b5050505090500194505050505060405180910390a150505050565b600a54600954600092565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038116600090815260066020908152604091829020805483518184028101840190945280845260609392830182828015610fa257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f84575b50505050509050919050565b600054600160b01b900460ff1680610fd05750600054600160a81b900460ff16155b156110b657610fdd611edf565b6013546001600160a01b03161561103b576040805162461bcd60e51b815260206004820152601e60248201527f6e657720726577617264206d616e6167657220616c7265616479207365740000604482015290519081900360640190fd5b6001600160a01b038116611096576040805162461bcd60e51b815260206004820152601760248201527f6e657720726577617264206d616e61676572207a65726f000000000000000000604482015290519081900360640190fd5b601380546001600160a01b0319166001600160a01b0383161790556110c1565b6110c1600036611f14565b50565b6110cc611df2565b6003805460ff19169055565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611120576000546001600160a01b031661118d565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561116057600080fd5b505afa158015611174573d6000803e3d6000fd5b505050506040513d602081101561118a57600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b1580156111d657600080fd5b505afa1580156111ea573d6000803e3d6000fd5b505050506040513d602081101561120057600080fd5b5051611243576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b03198116600090815260016020526040902080546112af576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611305576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561139f5780601f106113745761010080835404028352916020019161139f565b820191906000526020600020905b81548152906001019060200180831161138257829003601f168201915b5050506001600160e01b03198616600090815260016020819052604082208281559495509092506113d39150830182612957565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b6020831061141b5780518252601f1990920191602091820191016113fc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461147d576040519150601f19603f3d011682016040523d82523d6000602084013e611482565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a16114e181612097565b50505050565b60076001609c1b0181565b6114fa611df2565b6001600160e01b03198116600090815260016020526040902054611565576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906115d590830182612957565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156116765780601f1061164b57610100808354040283529160200191611676565b820191906000526020600020905b81548152906001019060200180831161165957829003601f168201915b5050505050905082565b600854600954600a54600b54600c54600d54600e5490919293949596565b3360009081526006602052604090206116b790826120b4565b7fa802dcd9d0db82c5fc0b043e16d9ab77391cff1b84415bce9e95c4a8d6fe7146338260405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611729578181015183820152602001611711565b50505050905001935050505060405180910390a150565b600054600160a01b900460ff1615611796576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6012546001600160a01b031681565b600054600160b01b900460ff168061182a5750600054600160a81b900460ff16155b156110b657611837611edf565b601080546001600160a01b0319166001600160a01b0383161790556110c1565b6010546001600160a01b031681565b61186e6110d8565b6001600160a01b0316336001600160a01b0316146118ca576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6119036118fe83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506120c7565b6121f4565b61190d8282612218565b5050565b6119196122b5565b600280541415611970576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600280558361197e8161233b565b848461198a82826123f2565b611996878787876124c7565b50506001600255506114e1611d75565b3360009081526007602052604090206119bf90826120b4565b7ff650948f1320658fded6be6217b1fe9963894116bc6b3dbc9b1c2cc8cf2cb11f338260405180836001600160a01b03168152602001806020018281038252838181518152602001915080519060200190602002808383600083811015611729578181015183820152602001611711565b6001600160a01b038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015610fa2576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610f845750505050509050919050565b600054600160a81b900460ff1681565b611abc611c3b565b600e819055600a54611ace9082611d14565b600a5542600d556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b6011546001600160a01b031690565b6001600160a01b03166000908152600460209081526040808320546005909252909120549091565b611b4a611df2565b600054600160a81b900460ff1615611ba9576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b6040805180820190915260168152752b30b634b230ba37b92932bbb0b93226b0b730b3b2b960511b602082015290565b6013546001600160a01b031681565b60115460408051808201909152600e81526d696e666c6174696f6e206f6e6c7960901b6020820152906001600160a01b031633146110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b600080611cd234600f54611d1490919063ffffffff16565b905047915080821115611d0657611cfe81611cf884600c54611d1490919063ffffffff16565b90612689565b600c55611d10565b80821015611d1057fe5b9091565b600082820183811015611d6e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b611d7d6126e6565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b815250906110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b611dfa6110fd565b6001600160a01b0316336001600160a01b031614610b94576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60105460408051808201909152601781527f726577617264206469737472696275746f72206f6e6c790000000000000000006020820152906001600160a01b031633146110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b600054600160b01b900460ff1615611f0c57333014611efa57fe5b6000805460ff60b01b19169055610b94565b610b94611df2565b611f1c611df2565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6457600080fd5b505afa158015611f78573d6000803e3d6000fd5b505050506040513d6020811015611f8e57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600160208181526040909220845181558483015180519194506120129392850192019061299b565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b3d604051818101604052816000823e82156120b0578181f35b8181fd5b6120bd82612705565b61190d828261277d565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561210b5781810151838201526020016120f3565b50505050905090810190601f1680156121385780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b86518110156121a05786818151811061216e57fe5b60200260200101518314156121985785818151811061218957fe5b602002602001015191506121a0565b600101612159565b506001600160a01b0381166121eb576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61224482826040518060400160405280600981526020016824b7333630ba34b7b760b91b8152506120c7565b601160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061229182826040518060400160405280600481526020016315d3985d60e21b8152506120c7565b601280546001600160a01b0319166001600160a01b03929092169190911790555050565b60035460408051808201909152601a81527f726577617264206d616e6167657220646561637469766174656400000000000060208201529060ff166110c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b6001600160a01b03811633148061237757506001600160a01b038116600090815260066020908152604080832033845260010190915290205415155b6040518060400160405280601681526020017537b7363c9037bbb732b91037b91032bc32b1baba37b960511b8152509061190d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b336001600160a01b038316148061241a5750816001600160a01b0316816001600160a01b0316145b8061244d57506001600160a01b038083166000908152600760209081526040808320938516835260019093019052205415155b604051806040016040528060158152602001741c9958da5c1a595b9d081b9bdd08185b1b1bddd959605a1b815250906115d55760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b60408051808201909152600e81526d726563697069656e74207a65726f60901b60208201526001600160a01b0384166125415760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b5061254a611cba565b50506001600160a01b03841660009081526005602052604090205461256f9083611d14565b6001600160a01b0385166000908152600560208181526040808420859055600482529283902054918152825180840190935260088352670e8dede40daeac6d60c31b90830152909111156126045760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b506009546126129083611d14565b600955801561262a5761262583836127ae565b612634565b6126348383612822565b826001600160a01b0316846001600160a01b03167f0aa4d283470c904c551d18bb894d37e17674920f3261a7f854be501e25f421b7846040518082815260200191505060405180910390a3505047600f555050565b6000828211156126e0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061118d600954611cf8600c54600b54611d1490919063ffffffff16565b8054156110c157805460018201906000908390600019810190811061272657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055805481908061275657fe5b600082815260209020810160001990810180546001600160a01b0319169055019055612705565b60005b81518110156115d5576127a68383838151811061279957fe5b60200260200101516128ee565b600101612780565b801561190d576012546040805163b760faf960e01b81526001600160a01b0385811660048301529151919092169163b760faf991849160248082019260009290919082900301818588803b15801561280557600080fd5b505af1158015612819573d6000803e3d6000fd5b50505050505050565b801561190d576040516000906001600160a01b0384169083908381818185875af1925050503d8060008114612873576040519150601f19603f3d011682016040523d82523d6000602084013e612878565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b815250906114e15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cb2578181015183820152602001610c9a565b6001600160a01b0381166000908152600183016020526040902054156129135761190d565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b50805460018160011615610100020316600290046000825580601f1061297d57506110c1565b601f0160209004906000526020600020908101906110c19190612a27565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826129d15760008555612a17565b82601f106129ea57805160ff1916838001178555612a17565b82800160010185558215612a17579182015b82811115612a175782518255916020019190600101906129fc565b50612a23929150612a27565b5090565b5b80821115612a235760008155600101612a2856fea2646970667358221220fb0a66729bb370a990e8ce8350f7ac84bab0d609caca71659fbc6cff7ac2d79264736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
