0x6080604052600436106101fa575f3560e01c80638bf67ad01161010b578063bc37e1a311610099578063e717fc301161006b578063e717fc30146105fc578063f2fde38b14610611578063f5a27e8614610630578063f724a45d14610645578063fd85e5ab1461066457005b8063bc37e1a314610553578063c9d9159d14610567578063d11fcb851461058a578063dd62ed3e146105b857005b806395d89b41116100dd57806395d89b41146104cc578063a1780c18146104e0578063a20adf86146104f4578063a9059cbb14610514578063ac9358341461053357005b80638bf67ad0146104495780638da5cb5b1461046857806391d88b951461049857806391f18b7c146104ad57005b806356cd40e71161018857806370a082311161015a57806370a08231146103a957806370fbc712146103dd578063715018a6146103f25780637971fca7146104065780637aab5d9b1461042957005b806356cd40e7146103295780636264300e1461033d578063654107e814610375578063685e838e1461039457005b806318347dc5116101cc57806318347dc51461029257806323b872dd146102b1578063313ce567146102d057806334e8c679146102eb5780633797e00b1461030a57005b806306fdde0314610203578063095ea7b31461022d5780630f8540e41461025c57806318160ddd1461027057005b3661020157005b005b34801561020e575f80fd5b50610217610683565b6040516102249190611b28565b60405180910390f35b348015610238575f80fd5b5061024c610247366004611b71565b610813565b6040519015158152602001610224565b348015610267575f80fd5b5061020161082c565b34801561027b575f80fd5b50610284610849565b604051908152602001610224565b34801561029d575f80fd5b506102016102ac366004611b9b565b610869565b3480156102bc575f80fd5b5061024c6102cb366004611bbb565b61090d565b3480156102db575f80fd5b5060405160128152602001610224565b3480156102f6575f80fd5b50610201610305366004611b71565b610930565b348015610315575f80fd5b50610201610324366004611c11565b610b03565b348015610334575f80fd5b50610201610ba6565b348015610348575f80fd5b5060025461036090600160c01b900463ffffffff1681565b60405163ffffffff9091168152602001610224565b348015610380575f80fd5b5061020161038f366004611c42565b610bbd565b34801561039f575f80fd5b5061028460085481565b3480156103b4575f80fd5b506102846103c3366004611c59565b6001600160a01b03165f9081526009602052604090205490565b3480156103e8575f80fd5b5061028460065481565b3480156103fd575f80fd5b50610201610be1565b348015610411575f80fd5b5060025461036090600160a01b900463ffffffff1681565b348015610434575f80fd5b5060015461024c90600160a01b900460ff1681565b348015610454575f80fd5b50610201610463366004611c81565b610bf4565b348015610473575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610224565b3480156104a3575f80fd5b5061028460045481565b3480156104b8575f80fd5b50600d54610480906001600160a01b031681565b3480156104d7575f80fd5b50610217610c43565b3480156104eb575f80fd5b50610201610d43565b3480156104ff575f80fd5b5060015461024c90600160a81b900460ff1681565b34801561051f575f80fd5b5061024c61052e366004611b71565b610d53565b34801561053e575f80fd5b50600d5461024c90600160a01b900460ff1681565b34801561055e575f80fd5b50610201610d60565b348015610572575f80fd5b5060025461036090600160e01b900463ffffffff1681565b348015610595575f80fd5b5061024c6105a4366004611c59565b60036020525f908152604090205460ff1681565b3480156105c3575f80fd5b506102846105d2366004611cbe565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b348015610607575f80fd5b5061028460075481565b34801561061c575f80fd5b5061020161062b366004611c59565b610ec9565b34801561063b575f80fd5b5061028460055481565b348015610650575f80fd5b5061020161065f366004611c59565b610f42565b34801561066f575f80fd5b50600254610480906001600160a01b031681565b60605f60015f9054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190611d0e565b5050509150505f811361074b5760405162461bcd60e51b81526020600482015260146024820152734e656761746976652070726963652076616c756560601b60448201526064015b60405180910390fd5b805f61076361075e6305f5e10084611d82565b610f83565b90505f610785620f424061077b6305f5e10086611d95565b61075e9190611d82565b905082600b5411156107e8575f6305f5e10084600b546107a59190611da8565b6107af9190611d82565b90505f6107bb82610f83565b9050806040516020016107ce9190611dd2565b604051602081830303815290604052965050505050505090565b81816040516020016107fb929190611e14565b60405160208183030381529060405294505050505090565b5f33610820818585611013565b60019150505b92915050565b610834611136565b6001805460ff60a01b1916600160a01b179055565b5f6108566012600a611f4c565b610864906305f5e100611f5a565b905090565b610871611136565b60328210801590610883575060328110155b6108bd5760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b6044820152606401610742565b6108e06108cc6012600a611f4c565b6108da906305f5e100611f5a565b8361118f565b6006556109066108f26012600a611f4c565b610900906305f5e100611f5a565b8261118f565b6007555050565b5f3361091a8582856111ae565b61092585858561123e565b506001949350505050565b6002546001600160a01b0316336001600160a01b03161461099f5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79207461782077616c6c65742063616e20726574726965766520746f6b604482015262656e7360e81b6064820152608401610742565b5f811180156109af575060648111155b610a055760405162461bcd60e51b815260206004820152602160248201527f50657263656e74206d757374206265206265747765656e203120616e642031306044820152600360fc1b6064820152608401610742565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6d9190611f71565b90505f6064610a7c8484611f5a565b610a869190611d82565b60025460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925085169063a9059cbb906044016020604051808303815f875af1158015610ad8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afc9190611f88565b5050505050565b610b0b611136565b610bb863ffffffff831611801590610b2b5750610bb863ffffffff821611155b610b665760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610742565b6002805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610bae611136565b6001805460ff60a81b19169055565b6002546001600160a01b0316336001600160a01b031614610bdc575f80fd5b600b55565b610be9611136565b610bf25f6115e1565b565b610bfc611136565b6008929092556002805463ffffffff909216600160e01b026001600160e01b03909216919091179055600d8054911515600160a01b0260ff60a01b19909216919091179055565b60605f60015f9054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610c96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cba9190611d0e565b5050509150505f8113610d065760405162461bcd60e51b81526020600482015260146024820152734e656761746976652070726963652076616c756560601b6044820152606401610742565b805f610d1961075e6305f5e10084611d82565b905080604051602001610d2c9190611fa3565b604051602081830303815290604052935050505090565b610d4b611136565b610bf2611630565b5f3361082081858561123e565b610d68611136565b4780610dab5760405162461bcd60e51b8152602060048201526012602482015271139bc8115512081a5b8818dbdb9d1c9858dd60721b6044820152606401610742565b305f9081526009602052604090205480610dff5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b6044820152606401610742565b600c54610e179030906001600160a01b031683611013565b600c546001600160a01b031663f305d7198330845f80610e3e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ea4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610afc9190611fc1565b610ed1611136565b6001600160a01b038116610f365760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610742565b610f3f816115e1565b50565b6002546001600160a01b0316336001600160a01b031614610f61575f80fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60605f610f8f83611696565b60010190505f8167ffffffffffffffff811115610fae57610fae611fec565b6040519080825280601f01601f191660200182016040528015610fd8576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610fe257509392505050565b6001600160a01b0383166110755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610742565b6001600160a01b0382166110d65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610742565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b03163314610bf25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610742565b5f61271061119d8385611f5a565b6111a79190611d82565b9392505050565b6001600160a01b038381165f908152600a60209081526040808320938616835292905220545f198114611238578181101561122b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610742565b6112388484848403611013565b50505050565b6001600160a01b0383166112a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610742565b6001600160a01b0382166113045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610742565b5f81116113655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610742565b5f546001600160a01b038481169116148061138c57505f546001600160a01b038381169116145b8061139f57506001600160a01b03831630145b156113b4576113af83838361176d565b505050565b600154600160a01b900460ff166114035760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610742565b600d545f906001600160a01b038581169116148061142357611423611630565b801561146b576001600160a01b0384165f9081526003602052604090205460ff1661146657600254611463908490600160a01b900463ffffffff1661118f565b91505b6114a8565b6001600160a01b0385165f9081526003602052604090205460ff166114a8576002546114a5908490600160c01b900463ffffffff1661118f565b91505b818310156114ed5760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b6044820152606401610742565b6001549282900392600160a81b900460ff16156115c5576006548311156115475760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b6044820152606401610742565b600d546001600160a01b038581169116146115c5576007546001600160a01b0385165f90815260096020526040902054611582908590612000565b11156115c55760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b6044820152606401610742565b81156115d6576115d685308461176d565b610afc85858561176d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b305f908152600960205260409020546008548110801590819061165d5750600d54600160a81b900460ff16155b80156116725750600d54600160a01b900460ff165b1561169257611682600854611851565b4780156113af576113af47611a41565b5050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106116d45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611700576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061171e57662386f26fc10000830492506010015b6305f5e1008310611736576305f5e100830492506008015b612710831061174a57612710830492506004015b6064831061175c576064830492506002015b600a83106108265760010192915050565b6001600160a01b0383165f90815260096020526040902054818110156117e45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610742565b6001600160a01b038085165f8181526009602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118439086815260200190565b60405180910390a350505050565b600d805460ff60a81b1916600160a81b1790556002545f906118949083906118899063ffffffff600160e01b90910416612710612013565b63ffffffff1661118f565b90505f6118a18284611da8565b60408051600280825260608201835292935047925f9260208301908036833701905050905030815f815181106118d9576118d9612037565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611930573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611954919061204b565b8160018151811061196757611967612037565b6001600160a01b039283166020918202929092010152600c5461198d9130911687611013565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906119c59087905f90869030904290600401612066565b5f604051808303815f87803b1580156119dc575f80fd5b505af11580156119ee573d5f803e3d5ffd5b505050505f82476119ff9190611da8565b9050611a2c84611a27836002601c9054906101000a900463ffffffff1663ffffffff1661118f565b611ae9565b5050600d805460ff60a81b1916905550505050565b600254604080515f8082526020820192839052926001600160a01b0316918491611a6a916120d7565b5f6040518083038185875af1925050503d805f8114611aa4576040519150601f19603f3d011682016040523d82523d5f602084013e611aa9565b606091505b50509050806116925760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b6044820152606401610742565b600c54611b019030906001600160a01b031684611013565b600c546001600160a01b031663f305d7198230855f80610e3e5f546001600160a01b031690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610f3f575f80fd5b5f8060408385031215611b82575f80fd5b8235611b8d81611b5d565b946020939093013593505050565b5f8060408385031215611bac575f80fd5b50508035926020909101359150565b5f805f60608486031215611bcd575f80fd5b8335611bd881611b5d565b92506020840135611be881611b5d565b929592945050506040919091013590565b803563ffffffff81168114611c0c575f80fd5b919050565b5f8060408385031215611c22575f80fd5b611c2b83611bf9565b9150611c3960208401611bf9565b90509250929050565b5f60208284031215611c52575f80fd5b5035919050565b5f60208284031215611c69575f80fd5b81356111a781611b5d565b8015158114610f3f575f80fd5b5f805f60608486031215611c93575f80fd5b83359250611ca360208501611bf9565b91506040840135611cb381611c74565b809150509250925092565b5f8060408385031215611ccf575f80fd5b8235611cda81611b5d565b91506020830135611cea81611b5d565b809150509250929050565b805169ffffffffffffffffffff81168114611c0c575f80fd5b5f805f805f60a08688031215611d22575f80fd5b611d2b86611cf5565b9450602086015193506040860151925060608601519150611d4e60808701611cf5565b90509295509295909350565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82611d9057611d90611d5a565b500490565b5f82611da357611da3611d5a565b500690565b8181038181111561082657610826611d6e565b5f81518060208401855e5f93019283525090919050565b600960fa1b81525f611de76001830184611dbb565b7f20544f20414c4c2d54494d452d4849474820455448455245554d0000000000008152601a019392505050565b600960fa1b81525f611e296001830185611dbb565b601760f91b8152611e3d6001820185611dbb565b7f20414c4c2d54494d452d4849474820455448455245554d000000000000000000815260170195945050505050565b600181815b80851115611ea657815f1904821115611e8c57611e8c611d6e565b80851615611e9957918102915b93841c9390800290611e71565b509250929050565b5f82611ebc57506001610826565b81611ec857505f610826565b8160018114611ede5760028114611ee857611f04565b6001915050610826565b60ff841115611ef957611ef9611d6e565b50506001821b610826565b5060208310610133831016604e8410600b8410161715611f27575081810a610826565b611f318383611e6c565b805f1904821115611f4457611f44611d6e565b029392505050565b5f6111a760ff841683611eae565b808202811582820484141761082657610826611d6e565b5f60208284031215611f81575f80fd5b5051919050565b5f60208284031215611f98575f80fd5b81516111a781611c74565b5f611fae8284611dbb565b621554d160ea1b81526003019392505050565b5f805f60608486031215611fd3575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52604160045260245ffd5b8082018082111561082657610826611d6e565b63ffffffff82811682821603908082111561203057612030611d6e565b5092915050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561205b575f80fd5b81516111a781611b5d565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120b65784516001600160a01b031683529383019391830191600101612091565b50506001600160a01b03969096166060850152505050608001529392505050565b5f6111a78284611dbb56fea26469706673582212205b6d4abf872a4eed351f652d8135157c6a7267353a6d322c60bb9e40ee1eed1664736f6c63430008190033
0x60806040526001805460ff60a81b1916600160a81b179055600280547d01f4000009c4000007d000000000000000000000000000000000000000006001600160a01b0390911617905561070860045561005a6012600a610474565b61006790621e8480610489565b6006556100766012600a610474565b61008390621e8480610489565b6007556100926012600a610474565b61009f9062030d40610489565b600855647194b20880600b55600d805461ffff60a01b1916600160a01b1790553480156100ca575f80fd5b506100d43361032f565b60018054735f4ec3df9cbd43714fe2740f5e3616155c5b84196001600160a01b031991821617909155600c8054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610156573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017a91906104a0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e991906104a0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610233573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025791906104a0565b600d80546001600160a01b03929092166001600160a01b03199283161790556002805490911633908117909155305f90815260036020526040808220805460ff199081166001908117909255938352912080549092161790556102bc6012600a610474565b6102ca906305f5e100610489565b335f81815260096020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61030a6012600a610474565b610318906305f5e100610489565b60405190815260200160405180910390a3506104c6565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156103cc57815f19048211156103b2576103b261037e565b808516156103bf57918102915b93841c9390800290610397565b509250929050565b5f826103e25750600161046e565b816103ee57505f61046e565b8160018114610404576002811461040e5761042a565b600191505061046e565b60ff84111561041f5761041f61037e565b50506001821b61046e565b5060208310610133831016604e8410600b841016171561044d575081810a61046e565b6104578383610392565b805f190482111561046a5761046a61037e565b0290505b92915050565b5f61048260ff8416836103d4565b9392505050565b808202811582820484141761046e5761046e61037e565b5f602082840312156104b0575f80fd5b81516001600160a01b0381168114610482575f80fd5b612118806104d35f395ff3fe6080604052600436106101fa575f3560e01c80638bf67ad01161010b578063bc37e1a311610099578063e717fc301161006b578063e717fc30146105fc578063f2fde38b14610611578063f5a27e8614610630578063f724a45d14610645578063fd85e5ab1461066457005b8063bc37e1a314610553578063c9d9159d14610567578063d11fcb851461058a578063dd62ed3e146105b857005b806395d89b41116100dd57806395d89b41146104cc578063a1780c18146104e0578063a20adf86146104f4578063a9059cbb14610514578063ac9358341461053357005b80638bf67ad0146104495780638da5cb5b1461046857806391d88b951461049857806391f18b7c146104ad57005b806356cd40e71161018857806370a082311161015a57806370a08231146103a957806370fbc712146103dd578063715018a6146103f25780637971fca7146104065780637aab5d9b1461042957005b806356cd40e7146103295780636264300e1461033d578063654107e814610375578063685e838e1461039457005b806318347dc5116101cc57806318347dc51461029257806323b872dd146102b1578063313ce567146102d057806334e8c679146102eb5780633797e00b1461030a57005b806306fdde0314610203578063095ea7b31461022d5780630f8540e41461025c57806318160ddd1461027057005b3661020157005b005b34801561020e575f80fd5b50610217610683565b6040516102249190611b28565b60405180910390f35b348015610238575f80fd5b5061024c610247366004611b71565b610813565b6040519015158152602001610224565b348015610267575f80fd5b5061020161082c565b34801561027b575f80fd5b50610284610849565b604051908152602001610224565b34801561029d575f80fd5b506102016102ac366004611b9b565b610869565b3480156102bc575f80fd5b5061024c6102cb366004611bbb565b61090d565b3480156102db575f80fd5b5060405160128152602001610224565b3480156102f6575f80fd5b50610201610305366004611b71565b610930565b348015610315575f80fd5b50610201610324366004611c11565b610b03565b348015610334575f80fd5b50610201610ba6565b348015610348575f80fd5b5060025461036090600160c01b900463ffffffff1681565b60405163ffffffff9091168152602001610224565b348015610380575f80fd5b5061020161038f366004611c42565b610bbd565b34801561039f575f80fd5b5061028460085481565b3480156103b4575f80fd5b506102846103c3366004611c59565b6001600160a01b03165f9081526009602052604090205490565b3480156103e8575f80fd5b5061028460065481565b3480156103fd575f80fd5b50610201610be1565b348015610411575f80fd5b5060025461036090600160a01b900463ffffffff1681565b348015610434575f80fd5b5060015461024c90600160a01b900460ff1681565b348015610454575f80fd5b50610201610463366004611c81565b610bf4565b348015610473575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610224565b3480156104a3575f80fd5b5061028460045481565b3480156104b8575f80fd5b50600d54610480906001600160a01b031681565b3480156104d7575f80fd5b50610217610c43565b3480156104eb575f80fd5b50610201610d43565b3480156104ff575f80fd5b5060015461024c90600160a81b900460ff1681565b34801561051f575f80fd5b5061024c61052e366004611b71565b610d53565b34801561053e575f80fd5b50600d5461024c90600160a01b900460ff1681565b34801561055e575f80fd5b50610201610d60565b348015610572575f80fd5b5060025461036090600160e01b900463ffffffff1681565b348015610595575f80fd5b5061024c6105a4366004611c59565b60036020525f908152604090205460ff1681565b3480156105c3575f80fd5b506102846105d2366004611cbe565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b348015610607575f80fd5b5061028460075481565b34801561061c575f80fd5b5061020161062b366004611c59565b610ec9565b34801561063b575f80fd5b5061028460055481565b348015610650575f80fd5b5061020161065f366004611c59565b610f42565b34801561066f575f80fd5b50600254610480906001600160a01b031681565b60605f60015f9054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190611d0e565b5050509150505f811361074b5760405162461bcd60e51b81526020600482015260146024820152734e656761746976652070726963652076616c756560601b60448201526064015b60405180910390fd5b805f61076361075e6305f5e10084611d82565b610f83565b90505f610785620f424061077b6305f5e10086611d95565b61075e9190611d82565b905082600b5411156107e8575f6305f5e10084600b546107a59190611da8565b6107af9190611d82565b90505f6107bb82610f83565b9050806040516020016107ce9190611dd2565b604051602081830303815290604052965050505050505090565b81816040516020016107fb929190611e14565b60405160208183030381529060405294505050505090565b5f33610820818585611013565b60019150505b92915050565b610834611136565b6001805460ff60a01b1916600160a01b179055565b5f6108566012600a611f4c565b610864906305f5e100611f5a565b905090565b610871611136565b60328210801590610883575060328110155b6108bd5760405162461bcd60e51b815260206004820152600b60248201526a0a8dede40d8deee40dac2f60ab1b6044820152606401610742565b6108e06108cc6012600a611f4c565b6108da906305f5e100611f5a565b8361118f565b6006556109066108f26012600a611f4c565b610900906305f5e100611f5a565b8261118f565b6007555050565b5f3361091a8582856111ae565b61092585858561123e565b506001949350505050565b6002546001600160a01b0316336001600160a01b03161461099f5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79207461782077616c6c65742063616e20726574726965766520746f6b604482015262656e7360e81b6064820152608401610742565b5f811180156109af575060648111155b610a055760405162461bcd60e51b815260206004820152602160248201527f50657263656e74206d757374206265206265747765656e203120616e642031306044820152600360fc1b6064820152608401610742565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6d9190611f71565b90505f6064610a7c8484611f5a565b610a869190611d82565b60025460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925085169063a9059cbb906044016020604051808303815f875af1158015610ad8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afc9190611f88565b5050505050565b610b0b611136565b610bb863ffffffff831611801590610b2b5750610bb863ffffffff821611155b610b665760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610742565b6002805467ffffffffffffffff60a01b1916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b610bae611136565b6001805460ff60a81b19169055565b6002546001600160a01b0316336001600160a01b031614610bdc575f80fd5b600b55565b610be9611136565b610bf25f6115e1565b565b610bfc611136565b6008929092556002805463ffffffff909216600160e01b026001600160e01b03909216919091179055600d8054911515600160a01b0260ff60a01b19909216919091179055565b60605f60015f9054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610c96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cba9190611d0e565b5050509150505f8113610d065760405162461bcd60e51b81526020600482015260146024820152734e656761746976652070726963652076616c756560601b6044820152606401610742565b805f610d1961075e6305f5e10084611d82565b905080604051602001610d2c9190611fa3565b604051602081830303815290604052935050505090565b610d4b611136565b610bf2611630565b5f3361082081858561123e565b610d68611136565b4780610dab5760405162461bcd60e51b8152602060048201526012602482015271139bc8115512081a5b8818dbdb9d1c9858dd60721b6044820152606401610742565b305f9081526009602052604090205480610dff5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b6044820152606401610742565b600c54610e179030906001600160a01b031683611013565b600c546001600160a01b031663f305d7198330845f80610e3e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ea4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610afc9190611fc1565b610ed1611136565b6001600160a01b038116610f365760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610742565b610f3f816115e1565b50565b6002546001600160a01b0316336001600160a01b031614610f61575f80fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60605f610f8f83611696565b60010190505f8167ffffffffffffffff811115610fae57610fae611fec565b6040519080825280601f01601f191660200182016040528015610fd8576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610fe257509392505050565b6001600160a01b0383166110755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610742565b6001600160a01b0382166110d65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610742565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b03163314610bf25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610742565b5f61271061119d8385611f5a565b6111a79190611d82565b9392505050565b6001600160a01b038381165f908152600a60209081526040808320938616835292905220545f198114611238578181101561122b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610742565b6112388484848403611013565b50505050565b6001600160a01b0383166112a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610742565b6001600160a01b0382166113045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610742565b5f81116113655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610742565b5f546001600160a01b038481169116148061138c57505f546001600160a01b038381169116145b8061139f57506001600160a01b03831630145b156113b4576113af83838361176d565b505050565b600154600160a01b900460ff166114035760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610742565b600d545f906001600160a01b038581169116148061142357611423611630565b801561146b576001600160a01b0384165f9081526003602052604090205460ff1661146657600254611463908490600160a01b900463ffffffff1661118f565b91505b6114a8565b6001600160a01b0385165f9081526003602052604090205460ff166114a8576002546114a5908490600160c01b900463ffffffff1661118f565b91505b818310156114ed5760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b6044820152606401610742565b6001549282900392600160a81b900460ff16156115c5576006548311156115475760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b6044820152606401610742565b600d546001600160a01b038581169116146115c5576007546001600160a01b0385165f90815260096020526040902054611582908590612000565b11156115c55760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b6044820152606401610742565b81156115d6576115d685308461176d565b610afc85858561176d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b305f908152600960205260409020546008548110801590819061165d5750600d54600160a81b900460ff16155b80156116725750600d54600160a01b900460ff165b1561169257611682600854611851565b4780156113af576113af47611a41565b5050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106116d45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611700576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061171e57662386f26fc10000830492506010015b6305f5e1008310611736576305f5e100830492506008015b612710831061174a57612710830492506004015b6064831061175c576064830492506002015b600a83106108265760010192915050565b6001600160a01b0383165f90815260096020526040902054818110156117e45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610742565b6001600160a01b038085165f8181526009602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118439086815260200190565b60405180910390a350505050565b600d805460ff60a81b1916600160a81b1790556002545f906118949083906118899063ffffffff600160e01b90910416612710612013565b63ffffffff1661118f565b90505f6118a18284611da8565b60408051600280825260608201835292935047925f9260208301908036833701905050905030815f815181106118d9576118d9612037565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611930573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611954919061204b565b8160018151811061196757611967612037565b6001600160a01b039283166020918202929092010152600c5461198d9130911687611013565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906119c59087905f90869030904290600401612066565b5f604051808303815f87803b1580156119dc575f80fd5b505af11580156119ee573d5f803e3d5ffd5b505050505f82476119ff9190611da8565b9050611a2c84611a27836002601c9054906101000a900463ffffffff1663ffffffff1661118f565b611ae9565b5050600d805460ff60a81b1916905550505050565b600254604080515f8082526020820192839052926001600160a01b0316918491611a6a916120d7565b5f6040518083038185875af1925050503d805f8114611aa4576040519150601f19603f3d011682016040523d82523d5f602084013e611aa9565b606091505b50509050806116925760405162461bcd60e51b815260206004820152600c60248201526b151c985b9cd9995c91985a5b60a21b6044820152606401610742565b600c54611b019030906001600160a01b031684611013565b600c546001600160a01b031663f305d7198230855f80610e3e5f546001600160a01b031690565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610f3f575f80fd5b5f8060408385031215611b82575f80fd5b8235611b8d81611b5d565b946020939093013593505050565b5f8060408385031215611bac575f80fd5b50508035926020909101359150565b5f805f60608486031215611bcd575f80fd5b8335611bd881611b5d565b92506020840135611be881611b5d565b929592945050506040919091013590565b803563ffffffff81168114611c0c575f80fd5b919050565b5f8060408385031215611c22575f80fd5b611c2b83611bf9565b9150611c3960208401611bf9565b90509250929050565b5f60208284031215611c52575f80fd5b5035919050565b5f60208284031215611c69575f80fd5b81356111a781611b5d565b8015158114610f3f575f80fd5b5f805f60608486031215611c93575f80fd5b83359250611ca360208501611bf9565b91506040840135611cb381611c74565b809150509250925092565b5f8060408385031215611ccf575f80fd5b8235611cda81611b5d565b91506020830135611cea81611b5d565b809150509250929050565b805169ffffffffffffffffffff81168114611c0c575f80fd5b5f805f805f60a08688031215611d22575f80fd5b611d2b86611cf5565b9450602086015193506040860151925060608601519150611d4e60808701611cf5565b90509295509295909350565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82611d9057611d90611d5a565b500490565b5f82611da357611da3611d5a565b500690565b8181038181111561082657610826611d6e565b5f81518060208401855e5f93019283525090919050565b600960fa1b81525f611de76001830184611dbb565b7f20544f20414c4c2d54494d452d4849474820455448455245554d0000000000008152601a019392505050565b600960fa1b81525f611e296001830185611dbb565b601760f91b8152611e3d6001820185611dbb565b7f20414c4c2d54494d452d4849474820455448455245554d000000000000000000815260170195945050505050565b600181815b80851115611ea657815f1904821115611e8c57611e8c611d6e565b80851615611e9957918102915b93841c9390800290611e71565b509250929050565b5f82611ebc57506001610826565b81611ec857505f610826565b8160018114611ede5760028114611ee857611f04565b6001915050610826565b60ff841115611ef957611ef9611d6e565b50506001821b610826565b5060208310610133831016604e8410600b8410161715611f27575081810a610826565b611f318383611e6c565b805f1904821115611f4457611f44611d6e565b029392505050565b5f6111a760ff841683611eae565b808202811582820484141761082657610826611d6e565b5f60208284031215611f81575f80fd5b5051919050565b5f60208284031215611f98575f80fd5b81516111a781611c74565b5f611fae8284611dbb565b621554d160ea1b81526003019392505050565b5f805f60608486031215611fd3575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52604160045260245ffd5b8082018082111561082657610826611d6e565b63ffffffff82811682821603908082111561203057612030611d6e565b5092915050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561205b575f80fd5b81516111a781611b5d565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120b65784516001600160a01b031683529383019391830191600101612091565b50506001600160a01b03969096166060850152505050608001529392505050565b5f6111a78284611dbb56fea26469706673582212205b6d4abf872a4eed351f652d8135157c6a7267353a6d322c60bb9e40ee1eed1664736f6c63430008190033