{
  "_format": "hh-sol-artifact-1",
  "contractName": "ExternalLocking4Reputation",
  "sourceName": "contracts/schemes/ExternalLocking4Reputation.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_locker",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_lockingId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_period",
          "type": "uint256"
        }
      ],
      "name": "Lock",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Redeem",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "Register",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_lockingId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Release",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_agreementHash",
          "type": "bytes32"
        }
      ],
      "name": "claim",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "externalLockers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "externalLockingContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getAgreementHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getBalanceFuncSignature",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_reputationReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_claimingStartTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_claimingEndTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_redeemEnableTime",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_externalLockingContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_getBalanceFuncSignature",
          "type": "string"
        },
        {
          "internalType": "bytes32",
          "name": "_agreementHash",
          "type": "bytes32"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "lockers",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "releaseTime",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lockingEndTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lockingStartTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lockingsCounter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "maxLockingPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "redeem",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "reputation",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "redeemEnableTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_agreementHash",
          "type": "bytes32"
        }
      ],
      "name": "register",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "registrar",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "reputationReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "reputationRewardLeft",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "scores",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalLocked",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalLockedLeft",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalScore",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506116ba806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063bf0df445116100b8578063dd9d2deb1161007c578063dd9d2deb14610292578063e1fa8e84146102cc578063e397cb9e146102eb578063ed1ff6d814610311578063f0167cfa14610319578063f27a55051461039657610142565b8063bf0df44514610246578063c006719f1461024e578063c3201add14610256578063c348a24b1461025e578063c8622c241461026657610142565b806376dd110f1161010a57806376dd110f1461019d5780637f33ccac146101c357806383805742146101cb57806395a2251f14610210578063a8c3301714610236578063afe0e33c1461023e57610142565b80633d1678f41461014757806355bfec881461016157806356891412146101695780635aef7de614610171578063696da92114610195575b600080fd5b61014f610438565b60408051918252519081900360200190f35b61014f61043e565b61014f610444565b61017961044a565b604080516001600160a01b039092168252519081900360200190f35b61014f610459565b61014f600480360360208110156101b357600080fd5b50356001600160a01b0316610460565b610179610472565b6101f7600480360360408110156101e157600080fd5b506001600160a01b038135169060200135610481565b6040805192835260208301919091528051918290030190f35b61014f6004803603602081101561022657600080fd5b50356001600160a01b03166104a5565b61014f61074d565b61014f610753565b61014f610759565b61014f61075f565b61014f610765565b61014f61076b565b61014f6004803603604081101561027c57600080fd5b506001600160a01b038135169060200135610771565b6102b8600480360360208110156102a857600080fd5b50356001600160a01b0316610a87565b604080519115158252519081900360200190f35b6102e9600480360360208110156102e257600080fd5b5035610a9c565b005b6102b86004803603602081101561030157600080fd5b50356001600160a01b0316610b21565b61014f610b36565b610321610b3c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561035b578181015183820152602001610343565b50505050905090810190601f1680156103885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e960048036036101008110156103ad57600080fd5b6001600160a01b03823581169260208101359260408201359260608301359260808101359260a08201359092169181019060e0810160c08201356401000000008111156103f957600080fd5b82018360208201111561040b57600080fd5b8035906020019184600183028401116401000000008311171561042d57600080fd5b919350915035610bca565b600d5481565b600c5481565b60045481565b6001546001600160a01b031681565b6000545b90565b60036020526000908152604090205481565b600e546001600160a01b031681565b60026020908152600092835260408084209091529082529020805460019091015482565b6000600d5442116104f6576040805162461bcd60e51b81526020600482015260166024820152756e6f77203e2072656465656d456e61626c6554696d6560501b604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902054610556576040805162461bcd60e51b8152602060048201526013602482015272073636f72652073686f756c64206265203e203606c1b604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040812080549082905560085490919061058b90839063ffffffff610c4b16565b90506105a260065482610cab90919063ffffffff16565b6009549093506105b8908463ffffffff610ced16565b60095560015460408051638da5cb5b60e01b815290516001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561060057600080fd5b505afa158015610614573d6000803e3d6000fd5b505050506040513d602081101561062a57600080fd5b50516001546040805163757cca5960e11b8152600481018790526001600160a01b03888116602483015292831660448201529051919092169163eaf994b29160648083019260209291908290030181600087803b15801561068a57600080fd5b505af115801561069e573d6000803e3d6000fd5b505050506040513d60208110156106b457600080fd5b5051610707576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b6040805184815290516001600160a01b038616917f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6919081900360200190a25050919050565b600a5481565b60095481565b600b5481565b60065481565b60075481565b60055481565b6001546000906001600160a01b03166107d1576040805162461bcd60e51b815260206004820152601760248201527f73686f756c6420696e697469616c697a65206669727374000000000000000000604482015290519081900360640190fd5b60006001600160a01b0384166107e8575033610858565b6001600160a01b03841660009081526011602052604090205460ff16610855576040805162461bcd60e51b815260206004820152601e60248201527f62656e65666963696172792073686f756c642062652072656769737465720000604482015290519081900360640190fd5b50825b6001600160a01b03811660009081526010602052604090205460ff16156108b05760405162461bcd60e51b81526004018080602001828103825260368152602001806115f46036913960400191505060405180910390fd5b6001600160a01b03808216600081815260106020526040808220805460ff19166001908117909155600e5482516024808201969096528351808203909601865260440192839052600f80549496606096921694919390929091829184916002600019928216156101000292909201160480156109635780601f10610941576101008083540402835291820191610963565b820191906000526020600020905b81548152906001019060200180831161094f575b505060408051918290039091206020850180516001600160e01b03166001600160e01b0319909216919091178152905184519093508392508083835b602083106109be5780518252601f19909201916020918201910161099f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610a20576040519150601f19603f3d011682016040523d82523d6000602084013e610a25565b606091505b509150915081610a665760405162461bcd60e51b81526004018080602001828103825260288152602001806114c56028913960400191505060405180910390fd5b6020810151610a7a8160018681808b610d2f565b9450505050505b92915050565b60106020526000908152604090205460ff1681565b806000548114610add5760405162461bcd60e51b81526004018080602001828103825260288152602001806115a06028913960400191505060405180910390fd5b33600081815260116020526040808220805460ff19166001179055517feeda149c76076b34d4b9d8896c2f7efc0d33d1c7b53ea3c5db490d64613f603a9190a25050565b60116020526000908152604090205460ff1681565b60085481565b600f805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b505050505081565b868611610c085760405162461bcd60e51b815260040180806020018281038252603a81526020018061164c603a913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b038616179055610c2f600f848461142c565b50610c408989898989600187611103565b505050505050505050565b600082610c5a57506000610a81565b82820282848281610c6757fe5b0414610ca45760405162461bcd60e51b81526004018080602001828103825260218152602001806115456021913960400191505060405180910390fd5b9392505050565b6000610ca483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061127c565b6000610ca483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131e565b6000816000548114610d725760405162461bcd60e51b81526004018080602001828103825260288152602001806115a06028913960400191505060405180910390fd5b60008811610dc7576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720616d6f756e742073686f756c64206265203e203000000000604482015290519081900360640190fd5b600b54871115610e085760405162461bcd60e51b815260040180806020018281038252602c8152602001806115c8602c913960400191505060405180910390fd5b60008711610e5d576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720706572696f642073686f756c64206265203e203000000000604482015290519081900360640190fd5b600a54421115610e9e5760405162461bcd60e51b81526004018080602001828103825260308152602001806115156030913960400191505060405180910390fd5b600c54421015610edf5760405162461bcd60e51b81526004018080602001828103825260288152602001806114ed6028913960400191505060405180910390fd5b600754604080513060601b602080830191909152603480830185905283518084039091018152605490920190925280519101209250610f2590600163ffffffff61137816565b6007556001600160a01b038616600090815260026020908152604080832085845290915290208881554288016001820155600454610f69908a63ffffffff61137816565b600455600554610f7f908a63ffffffff61137816565b6005556000610fb486610fa889610f9c8d8f63ffffffff610c4b16565b9063ffffffff610c4b16565b9063ffffffff610cab16565b905060008111610fff576040805162461bcd60e51b8152602060048201526011602482015270073636f7265206d757374206d65203e203607c1b604482015290519081900360640190fd5b6001600160a01b038816600090815260036020526040902054611028908263ffffffff61137816565b6001600160a01b0389166000908152600360205260409020819055600854908181028161105157fe5b0414611098576040805162461bcd60e51b81526020600482015260116024820152700e6c6dee4ca40d2e640e8dede40d0d2ced607b1b604482015290519081900360640190fd5b6006546110ab908263ffffffff61137816565b600655604080518b8152602081018b9052815186926001600160a01b038c16927fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b426929081900390910190a35050509695505050505050565b6001546001600160a01b031615611161576040805162461bcd60e51b815260206004820152601b60248201527f63616e2062652063616c6c6564206f6e6c79206f6e652074696d650000000000604482015290519081900360640190fd5b6001600160a01b0387166111b4576040805162461bcd60e51b81526020600482015260156024820152746176617461722063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b8484116111f25760405162461bcd60e51b815260040180806020018281038252603a815260200180611566603a913960400191505060405180910390fd5b838310156112315760405162461bcd60e51b815260040180806020018281038252602281526020018061162a6022913960400191505060405180910390fd5b60088690556009869055600a849055600b829055600180546001600160a01b0319166001600160a01b038916179055600c859055600d839055611273816113d2565b50505050505050565b600081836113085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112cd5781810151838201526020016112b5565b50505050905090810190601f1680156112fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161131457fe5b0495945050505050565b600081848411156113705760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cd5781810151838201526020016112b5565b505050900390565b600082820183811015610ca4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60005415611427576040805162461bcd60e51b815260206004820152601b60248201527f43616e206e6f74207365742061677265656d656e742074776963650000000000604482015290519081900360640190fd5b600055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061146d5782800160ff1982351617855561149a565b8280016001018555821561149a579182015b8281111561149a57823582559160200191906001019061147f565b506114a69291506114aa565b5090565b61045d91905b808211156114a657600081556001016114b056fe63616c6c20746f2065787465726e616c20636f6e74726163742073686f756c6420737563636565646c6f636b2073686f756c64207374617274206166746572206c6f636b696e67537461727454696d656c6f636b2073686f756c642062652077697468696e2074686520616c6c6f776564206c6f636b696e6720706572696f64536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776c6f636b696e6720656e642074696d652073686f756c642062652067726561746572207468616e206c6f636b696e672073746172742074696d6553656e646572206d7573742073656e64207468652072696768742061677265656d656e74486173686c6f636b696e6720706572696f642073686f756c64206265203c3d206d61784c6f636b696e67506572696f64636c61696d696e6720747769636520666f72207468652073616d652062656e6566696369617279206973206e6f7420616c6c6f77656472656465656d456e61626c6554696d65203e3d206c6f636b696e67456e6454696d655f636c61696d696e67456e6454696d652073686f756c642062652067726561746572207468616e205f636c61696d696e67537461727454696d65a265627a7a723158209b1fa4bdf52d7fbb2f4c921095f253342939ab528dd50a289993a48e094ecc6264736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063bf0df445116100b8578063dd9d2deb1161007c578063dd9d2deb14610292578063e1fa8e84146102cc578063e397cb9e146102eb578063ed1ff6d814610311578063f0167cfa14610319578063f27a55051461039657610142565b8063bf0df44514610246578063c006719f1461024e578063c3201add14610256578063c348a24b1461025e578063c8622c241461026657610142565b806376dd110f1161010a57806376dd110f1461019d5780637f33ccac146101c357806383805742146101cb57806395a2251f14610210578063a8c3301714610236578063afe0e33c1461023e57610142565b80633d1678f41461014757806355bfec881461016157806356891412146101695780635aef7de614610171578063696da92114610195575b600080fd5b61014f610438565b60408051918252519081900360200190f35b61014f61043e565b61014f610444565b61017961044a565b604080516001600160a01b039092168252519081900360200190f35b61014f610459565b61014f600480360360208110156101b357600080fd5b50356001600160a01b0316610460565b610179610472565b6101f7600480360360408110156101e157600080fd5b506001600160a01b038135169060200135610481565b6040805192835260208301919091528051918290030190f35b61014f6004803603602081101561022657600080fd5b50356001600160a01b03166104a5565b61014f61074d565b61014f610753565b61014f610759565b61014f61075f565b61014f610765565b61014f61076b565b61014f6004803603604081101561027c57600080fd5b506001600160a01b038135169060200135610771565b6102b8600480360360208110156102a857600080fd5b50356001600160a01b0316610a87565b604080519115158252519081900360200190f35b6102e9600480360360208110156102e257600080fd5b5035610a9c565b005b6102b86004803603602081101561030157600080fd5b50356001600160a01b0316610b21565b61014f610b36565b610321610b3c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561035b578181015183820152602001610343565b50505050905090810190601f1680156103885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e960048036036101008110156103ad57600080fd5b6001600160a01b03823581169260208101359260408201359260608301359260808101359260a08201359092169181019060e0810160c08201356401000000008111156103f957600080fd5b82018360208201111561040b57600080fd5b8035906020019184600183028401116401000000008311171561042d57600080fd5b919350915035610bca565b600d5481565b600c5481565b60045481565b6001546001600160a01b031681565b6000545b90565b60036020526000908152604090205481565b600e546001600160a01b031681565b60026020908152600092835260408084209091529082529020805460019091015482565b6000600d5442116104f6576040805162461bcd60e51b81526020600482015260166024820152756e6f77203e2072656465656d456e61626c6554696d6560501b604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902054610556576040805162461bcd60e51b8152602060048201526013602482015272073636f72652073686f756c64206265203e203606c1b604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040812080549082905560085490919061058b90839063ffffffff610c4b16565b90506105a260065482610cab90919063ffffffff16565b6009549093506105b8908463ffffffff610ced16565b60095560015460408051638da5cb5b60e01b815290516001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561060057600080fd5b505afa158015610614573d6000803e3d6000fd5b505050506040513d602081101561062a57600080fd5b50516001546040805163757cca5960e11b8152600481018790526001600160a01b03888116602483015292831660448201529051919092169163eaf994b29160648083019260209291908290030181600087803b15801561068a57600080fd5b505af115801561069e573d6000803e3d6000fd5b505050506040513d60208110156106b457600080fd5b5051610707576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b6040805184815290516001600160a01b038616917f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a6919081900360200190a25050919050565b600a5481565b60095481565b600b5481565b60065481565b60075481565b60055481565b6001546000906001600160a01b03166107d1576040805162461bcd60e51b815260206004820152601760248201527f73686f756c6420696e697469616c697a65206669727374000000000000000000604482015290519081900360640190fd5b60006001600160a01b0384166107e8575033610858565b6001600160a01b03841660009081526011602052604090205460ff16610855576040805162461bcd60e51b815260206004820152601e60248201527f62656e65666963696172792073686f756c642062652072656769737465720000604482015290519081900360640190fd5b50825b6001600160a01b03811660009081526010602052604090205460ff16156108b05760405162461bcd60e51b81526004018080602001828103825260368152602001806115f46036913960400191505060405180910390fd5b6001600160a01b03808216600081815260106020526040808220805460ff19166001908117909155600e5482516024808201969096528351808203909601865260440192839052600f80549496606096921694919390929091829184916002600019928216156101000292909201160480156109635780601f10610941576101008083540402835291820191610963565b820191906000526020600020905b81548152906001019060200180831161094f575b505060408051918290039091206020850180516001600160e01b03166001600160e01b0319909216919091178152905184519093508392508083835b602083106109be5780518252601f19909201916020918201910161099f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610a20576040519150601f19603f3d011682016040523d82523d6000602084013e610a25565b606091505b509150915081610a665760405162461bcd60e51b81526004018080602001828103825260288152602001806114c56028913960400191505060405180910390fd5b6020810151610a7a8160018681808b610d2f565b9450505050505b92915050565b60106020526000908152604090205460ff1681565b806000548114610add5760405162461bcd60e51b81526004018080602001828103825260288152602001806115a06028913960400191505060405180910390fd5b33600081815260116020526040808220805460ff19166001179055517feeda149c76076b34d4b9d8896c2f7efc0d33d1c7b53ea3c5db490d64613f603a9190a25050565b60116020526000908152604090205460ff1681565b60085481565b600f805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b505050505081565b868611610c085760405162461bcd60e51b815260040180806020018281038252603a81526020018061164c603a913960400191505060405180910390fd5b600e80546001600160a01b0319166001600160a01b038616179055610c2f600f848461142c565b50610c408989898989600187611103565b505050505050505050565b600082610c5a57506000610a81565b82820282848281610c6757fe5b0414610ca45760405162461bcd60e51b81526004018080602001828103825260218152602001806115456021913960400191505060405180910390fd5b9392505050565b6000610ca483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061127c565b6000610ca483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131e565b6000816000548114610d725760405162461bcd60e51b81526004018080602001828103825260288152602001806115a06028913960400191505060405180910390fd5b60008811610dc7576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720616d6f756e742073686f756c64206265203e203000000000604482015290519081900360640190fd5b600b54871115610e085760405162461bcd60e51b815260040180806020018281038252602c8152602001806115c8602c913960400191505060405180910390fd5b60008711610e5d576040805162461bcd60e51b815260206004820152601c60248201527f6c6f636b696e6720706572696f642073686f756c64206265203e203000000000604482015290519081900360640190fd5b600a54421115610e9e5760405162461bcd60e51b81526004018080602001828103825260308152602001806115156030913960400191505060405180910390fd5b600c54421015610edf5760405162461bcd60e51b81526004018080602001828103825260288152602001806114ed6028913960400191505060405180910390fd5b600754604080513060601b602080830191909152603480830185905283518084039091018152605490920190925280519101209250610f2590600163ffffffff61137816565b6007556001600160a01b038616600090815260026020908152604080832085845290915290208881554288016001820155600454610f69908a63ffffffff61137816565b600455600554610f7f908a63ffffffff61137816565b6005556000610fb486610fa889610f9c8d8f63ffffffff610c4b16565b9063ffffffff610c4b16565b9063ffffffff610cab16565b905060008111610fff576040805162461bcd60e51b8152602060048201526011602482015270073636f7265206d757374206d65203e203607c1b604482015290519081900360640190fd5b6001600160a01b038816600090815260036020526040902054611028908263ffffffff61137816565b6001600160a01b0389166000908152600360205260409020819055600854908181028161105157fe5b0414611098576040805162461bcd60e51b81526020600482015260116024820152700e6c6dee4ca40d2e640e8dede40d0d2ced607b1b604482015290519081900360640190fd5b6006546110ab908263ffffffff61137816565b600655604080518b8152602081018b9052815186926001600160a01b038c16927fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b426929081900390910190a35050509695505050505050565b6001546001600160a01b031615611161576040805162461bcd60e51b815260206004820152601b60248201527f63616e2062652063616c6c6564206f6e6c79206f6e652074696d650000000000604482015290519081900360640190fd5b6001600160a01b0387166111b4576040805162461bcd60e51b81526020600482015260156024820152746176617461722063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b8484116111f25760405162461bcd60e51b815260040180806020018281038252603a815260200180611566603a913960400191505060405180910390fd5b838310156112315760405162461bcd60e51b815260040180806020018281038252602281526020018061162a6022913960400191505060405180910390fd5b60088690556009869055600a849055600b829055600180546001600160a01b0319166001600160a01b038916179055600c859055600d839055611273816113d2565b50505050505050565b600081836113085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112cd5781810151838201526020016112b5565b50505050905090810190601f1680156112fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161131457fe5b0495945050505050565b600081848411156113705760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112cd5781810151838201526020016112b5565b505050900390565b600082820183811015610ca4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60005415611427576040805162461bcd60e51b815260206004820152601b60248201527f43616e206e6f74207365742061677265656d656e742074776963650000000000604482015290519081900360640190fd5b600055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061146d5782800160ff1982351617855561149a565b8280016001018555821561149a579182015b8281111561149a57823582559160200191906001019061147f565b506114a69291506114aa565b5090565b61045d91905b808211156114a657600081556001016114b056fe63616c6c20746f2065787465726e616c20636f6e74726163742073686f756c6420737563636565646c6f636b2073686f756c64207374617274206166746572206c6f636b696e67537461727454696d656c6f636b2073686f756c642062652077697468696e2074686520616c6c6f776564206c6f636b696e6720706572696f64536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776c6f636b696e6720656e642074696d652073686f756c642062652067726561746572207468616e206c6f636b696e672073746172742074696d6553656e646572206d7573742073656e64207468652072696768742061677265656d656e74486173686c6f636b696e6720706572696f642073686f756c64206265203c3d206d61784c6f636b696e67506572696f64636c61696d696e6720747769636520666f72207468652073616d652062656e6566696369617279206973206e6f7420616c6c6f77656472656465656d456e61626c6554696d65203e3d206c6f636b696e67456e6454696d655f636c61696d696e67456e6454696d652073686f756c642062652067726561746572207468616e205f636c61696d696e67537461727454696d65a265627a7a723158209b1fa4bdf52d7fbb2f4c921095f253342939ab528dd50a289993a48e094ecc6264736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}