608060405234801561000f575f5ffd5b506040516115be3803806115be83398101604081905261002e916100bb565b60408051808201825260188082527f4b756d616d6f6e20467269656e6473686970204261646765000000000000000060208084018290528451808601909552918452908301529060026100818382610180565b50600361008e8282610180565b505f808055505050600980546001600160a01b0319166001600160a01b039290921691909117905561023a565b5f602082840312156100cb575f5ffd5b81516001600160a01b03811681146100e1575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061011057607f821691505b60208210810361012e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561017b57805f5260205f20601f840160051c810160208510156101595750805b601f840160051c820191505b81811015610178575f8155600101610165565b50505b505050565b81516001600160401b03811115610199576101996100e8565b6101ad816101a784546100fc565b84610134565b6020601f8211600181146101df575f83156101c85750848201515b5f19600385901b1c1916600184901b178455610178565b5f84815260208120601f198516915b8281101561020e57878501518255602094850194600190920191016101ee565b508482101561022b57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b611377806102475f395ff3fe6080604052600436106100ef575f3560e01c80636352211e11610087578063b88d4fde11610057578063b88d4fde1461026b578063c87b56dd1461027e578063de6892c81461029d578063e985e9c5146102bc575f5ffd5b80636352211e146101fa57806370a082311461021957806395d89b4114610238578063a22cb4651461024c575f5ffd5b806318160ddd116100c257806318160ddd1461019457806323b872dd146101b557806342842e0e146101c857806342966c68146101db575f5ffd5b806301ffc9a7146100f357806306fdde0314610127578063081812fc14610148578063095ea7b31461017f575b5f5ffd5b3480156100fe575f5ffd5b5061011261010d366004610f6a565b610303565b60405190151581526020015b60405180910390f35b348015610132575f5ffd5b5061013b610354565b60405161011e9190610fb3565b348015610153575f5ffd5b50610167610162366004610fc5565b6103e4565b6040516001600160a01b03909116815260200161011e565b61019261018d366004610ff2565b61041d565b005b34801561019f575f5ffd5b506001545f54035b60405190815260200161011e565b6101926101c336600461101a565b61042d565b6101926101d636600461101a565b6105e1565b3480156101e6575f5ffd5b506101926101f5366004610fc5565b610600565b348015610205575f5ffd5b50610167610214366004610fc5565b61060e565b348015610224575f5ffd5b506101a7610233366004611054565b610618565b348015610243575f5ffd5b5061013b61065c565b348015610257575f5ffd5b5061019261026636600461106d565b61066b565b610192610279366004611145565b6106d6565b348015610289575f5ffd5b5061013b610298366004610fc5565b610717565b3480156102a8575f5ffd5b506101926102b73660046111a9565b61078f565b3480156102c7575f5ffd5b506101126102d63660046111db565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205460ff1690565b5f6301ffc9a760e01b6001600160e01b03198316148061033357506380ac58cd60e01b6001600160e01b03198316145b8061034e5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6060600280546103639061120c565b80601f016020809104026020016040519081016040528092919081815260200182805461038f9061120c565b80156103da5780601f106103b1576101008083540402835291602001916103da565b820191905f5260205f20905b8154815290600101906020018083116103bd57829003601f168201915b5050505050905090565b5f6103ee826108b7565b610402576104026333d1c03960e21b6108f9565b505f908152600660205260409020546001600160a01b031690565b61042982826001610901565b5050565b6001600160a01b0383161561047d5760405162461bcd60e51b8152602060048201526011602482015270029a12a1d103737903a3930b739b332b91607d1b60448201526064015b60405180910390fd5b5f610487826109a2565b6001600160a01b0394851694909150811684146104ad576104ad62a1148160e81b6108f9565b5f82815260066020526040902080546104d88187335b6001600160a01b039081169116811491141790565b6104fa576104e686336102d6565b6104fa576104fa632ce44b5f60e11b6108f9565b8015610504575f82555b6001600160a01b038681165f9081526005602052604080822080545f19019055918716808252919020805460010190554260a01b17600160e11b175f85815260046020526040812091909155600160e11b8416900361059057600184015f81815260046020526040812054900361058e575f54811461058e575f8181526004602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4805f036105d8576105d8633a954ecd60e21b6108f9565b50505050505050565b6105fb83838360405180602001604052805f8152506106d6565b505050565b61060b816001610a31565b50565b5f61034e826109a2565b5f6001600160a01b038216610637576106376323d3ad8160e21b6108f9565b506001600160a01b03165f9081526005602052604090205467ffffffffffffffff1690565b6060600380546103639061120c565b335f8181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6106e184848461042d565b6001600160a01b0383163b15610711576106fd84848484610b68565b610711576107116368d2bf6b60e11b6108f9565b50505050565b6060610722826108b7565b61073657610736630a14c4b560e41b6108f9565b5f61073f610c47565b905080515f0361075d5760405180602001604052805f815250610788565b8061076784610c67565b60405160200161077892919061125b565b6040516020818303038152906040525b9392505050565b3233146107d15760405162461bcd60e51b815260206004820152601060248201526f10d85b1b195c925cd0dbdb9d1c9858dd60821b6044820152606401610474565b604080513360601b6bffffffffffffffffffffffff191660208083019190915282516014818403018152603490920190925280519101206009546001600160a01b031661081e8284610caa565b6001600160a01b0316146108615760405162461bcd60e51b815260206004820152600a60248201526932b93937b91039b4b3b760b11b6044820152606401610474565b600161086c33610618565b106108ac5760405162461bcd60e51b815260206004820152601060248201526f4d696e745a65726f5175616e7469747960801b6044820152606401610474565b610429336001610cd2565b5f5f548210156108f4575f5b505f82815260046020526040812054908190036108ea576108e38361126f565b92506108c3565b600160e01b161590505b919050565b805f5260045ffd5b5f61090b8361060e565b90508180156109235750336001600160a01b03821614155b156109465761093281336102d6565b610946576109466367d9dca160e11b6108f9565b5f8381526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b5f81815260046020526040902054805f03610a0f575f5482106109cf576109cf636f96cda160e11b6108f9565b5b505f19015f8181526004602052604090205480156109d057600160e01b81165f036109fa57919050565b610a0a636f96cda160e11b6108f9565b6109d0565b600160e01b81165f03610a2157919050565b6108f4636f96cda160e11b6108f9565b5f610a3b836109a2565b9050805f80610a57865f90815260066020526040902080549091565b915091508415610a8e57610a6c8184336104c3565b610a8e57610a7a83336102d6565b610a8e57610a8e632ce44b5f60e11b6108f9565b8015610a98575f82555b6001600160a01b0383165f81815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b175f87815260046020526040812091909155600160e11b85169003610b2157600186015f818152600460205260408120549003610b1f575f548114610b1f575f8181526004602052604090208590555b505b60405186905f906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050600180548101905550505050565b604051630a85bd0160e11b81525f906001600160a01b0385169063150b7a0290610b9c903390899088908890600401611290565b6020604051808303815f875af1925050508015610bd6575060408051601f3d908101601f19168201909252610bd3918101906112cc565b60015b610c29573d808015610c03576040519150601f19603f3d011682016040523d82523d5f602084013e610c08565b606091505b5080515f03610c2157610c216368d2bf6b60e11b6108f9565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60606040518060800160405280604681526020016112fc60469139905090565b606060a06040510180604052602081039150505f815280825b600183039250600a81066030018353600a900480610c805750819003601f19909101908152919050565b5f5f5f5f610cb88686610d8c565b925092509250610cc88282610dd5565b5090949350505050565b5f805490829003610ced57610ced63b562e8dd60e01b6108f9565b5f8181526004602090815260408083206001600160a01b0387164260a01b6001881460e11b17811790915580845260059092528220805468010000000000000001860201905590819003610d4a57610d4a622e076360e81b6108f9565b818301825b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa4818160010191508103610d4f57505f5550505050565b5f5f5f8351604103610dc3576020840151604085015160608601515f1a610db588828585610e8d565b955095509550505050610dce565b505081515f91506002905b9250925092565b5f826003811115610de857610de86112e7565b03610df1575050565b6001826003811115610e0557610e056112e7565b03610e235760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610e3757610e376112e7565b03610e585760405163fce698f760e01b815260048101829052602401610474565b6003826003811115610e6c57610e6c6112e7565b03610429576040516335e2f38360e21b815260048101829052602401610474565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610ec657505f91506003905082610f4b565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610f17573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610f4257505f925060019150829050610f4b565b92505f91508190505b9450945094915050565b6001600160e01b03198116811461060b575f5ffd5b5f60208284031215610f7a575f5ffd5b813561078881610f55565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107886020830184610f85565b5f60208284031215610fd5575f5ffd5b5035919050565b80356001600160a01b03811681146108f4575f5ffd5b5f5f60408385031215611003575f5ffd5b61100c83610fdc565b946020939093013593505050565b5f5f5f6060848603121561102c575f5ffd5b61103584610fdc565b925061104360208501610fdc565b929592945050506040919091013590565b5f60208284031215611064575f5ffd5b61078882610fdc565b5f5f6040838503121561107e575f5ffd5b61108783610fdc565b91506020830135801515811461109b575f5ffd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126110c9575f5ffd5b813567ffffffffffffffff8111156110e3576110e36110a6565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611112576111126110a6565b604052818152838201602001851015611129575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f60808587031215611158575f5ffd5b61116185610fdc565b935061116f60208601610fdc565b925060408501359150606085013567ffffffffffffffff811115611191575f5ffd5b61119d878288016110ba565b91505092959194509250565b5f602082840312156111b9575f5ffd5b813567ffffffffffffffff8111156111cf575f5ffd5b610c3f848285016110ba565b5f5f604083850312156111ec575f5ffd5b6111f583610fdc565b915061120360208401610fdc565b90509250929050565b600181811c9082168061122057607f821691505b60208210810361123e57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f610c3f6112698386611244565b84611244565b5f8161128957634e487b7160e01b5f52601160045260245ffd5b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906112c290830184610f85565b9695505050505050565b5f602082840312156112dc575f5ffd5b815161078881610f55565b634e487b7160e01b5f52602160045260245ffdfe68747470733a2f2f706d657461646174612e756e656d6574612e636f6d2f6d657461646174612f76312f4b756d616d6f6e5f467269656e64736869705f42616467655f76322fa26469706673582212202dcfe280e294beff87e1a85474c06725561b0f8bbc0839806f7d91d8e1f6cba964736f6c634300081c003300000000000000000000000015ef759b67ad9bd8c9bdc84abcd704798f07546c