0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063895583221161008c5780639b19251a116100665780639b19251a1461021d578063bac8c50614610240578063ef06982b14610263578063f2fde38b1461028f57600080fd5b806389558322146101e65780638da5cb5b146101f95780639554444c1461020a57600080fd5b806365865b94116100c857806365865b941461019757806366105d85146101ac578063715018a6146101cb578063803ae06a146101d357600080fd5b806305b2d094146100ef5780633af32abf1461012a57806359ab74b314610156575b600080fd5b6101156100fd366004610747565b60ff9081166000908152600260205260409020541690565b60405190151581526020015b60405180910390f35b610115610138366004610769565b6001600160a01b031660009081526003602052604090205460ff1690565b61017f610164366004610747565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610121565b6101aa6101a5366004610792565b6102a2565b005b6005546101b99060ff1681565b60405160ff9091168152602001610121565b6101aa6102c0565b6101156101e13660046107d2565b6102d4565b6101aa6101f43660046107d2565b6103bb565b6000546001600160a01b031661017f565b6101aa610218366004610894565b6105b1565b61011561022b366004610769565b60036020526000908152604090205460ff1681565b61011561024e366004610747565b60026020526000908152604090205460ff1681565b61017f610271366004610747565b60ff166000908152600460205260409020546001600160a01b031690565b6101aa61029d366004610769565b6105de565b6102aa610657565b60ff909116600090815260016020526040902055565b6102c8610657565b6102d260006106b1565b565b3360009081526003602052604081205460ff16151560010361033d5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c657420616c72656164792077686974656c697374656400000000000060448201526064015b60405180910390fd5b60ff80841660009081526002602052604090205416156103975760405162461bcd60e51b8152602060048201526015602482015274115b9a59db5848185b1c9958591e481cdbdb1d9959605a1b6044820152606401610334565b60ff83166000908152600160205260409020546103b383610701565b149392505050565b3360009081526003602052604090205460ff16151560010361041f5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c657420616c72656164792077686974656c69737465640000000000006044820152606401610334565b60ff80831660009081526002602052604090205416156104795760405162461bcd60e51b8152602060048201526015602482015274115b9a59db5848185b1c9958591e481cdbdb1d9959605a1b6044820152606401610334565b60ff821660009081526001602052604090205461049582610701565b146104d15760405162461bcd60e51b815260206004820152600c60248201526b2bb937b7339030b739bbb2b960a11b6044820152606401610334565b3360009081526003602090815260408083208054600160ff19918216811790925560ff878116865260029094529190932080549091168317905560055461051a929116906108d0565b6005805460ff191660ff92831617905582166000818152600460205260408082208054336001600160a01b03199091168117909155905190917f892639826f1c983fc3cb297f7d5cbcd1acf6c1896c561bc58437cb9967eea29591a360055460ff166016036105ad576040517ff82713905c98235fa7a8cba3291c36637e543629471a779af872eccf0e1e79b590600090a15b5050565b6105b9610657565b60ff919091166000908152600260205260409020805460ff1916911515919091179055565b6105e6610657565b6001600160a01b03811661064b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610334565b610654816106b1565b50565b6000546001600160a01b031633146102d25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610334565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016107149190610903565b604051602081830303815290604052805190602001209050919050565b803560ff8116811461074257600080fd5b919050565b60006020828403121561075957600080fd5b61076282610731565b9392505050565b60006020828403121561077b57600080fd5b81356001600160a01b038116811461076257600080fd5b600080604083850312156107a557600080fd5b6107ae83610731565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156107e557600080fd5b6107ee83610731565b9150602083013567ffffffffffffffff8082111561080b57600080fd5b818501915085601f83011261081f57600080fd5b813581811115610831576108316107bc565b604051601f8201601f19908116603f01168101908382118183101715610859576108596107bc565b8160405282815288602084870101111561087257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080604083850312156108a757600080fd5b6108b083610731565b9150602083013580151581146108c557600080fd5b809150509250929050565b600060ff821660ff84168060ff038211156108fb57634e487b7160e01b600052601160045260246000fd5b019392505050565b6000825160005b81811015610924576020818601810151858301520161090a565b81811115610933576000828501525b50919091019291505056fea2646970667358221220eeeb4b97724043d2d3f920c2a333658b5d0007465dbd8fbe586b7d14aa722a4464736f6c634300080f0033
0x608060405234801561001057600080fd5b5061001a336105f5565b6005805460ff1916905560016020527f2c83f0e0903e5f6884aec36f31586824f6650d1c6d1cdcc8cc00b876e877fcd17fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f557fc83aaeece4682cb3458dea3f6ffadded90648ca2ad36465b02c2722e720d9b877fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f557f6f5a8914fd76c466f1d7710bd4b2e801d01bd7a123263a2974e9ea7e97f2ee577f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b557f0fd7e2a7edc02192ca6cd428cd06e1150a1f2f45801ea4bb9cd9276dfc43a8f47fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643557f27536be0ba1cee82a924a1fd47bccd1dd265c783ad6f060d17fc87df523205327fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c557fa4bd90cf66356e062897cfd99660b8fafd89b1fcc76374479c74bea1ee4209607f8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a557f43e9aee86b980e8ac03b68eb63a949ed358cea0fc06e4026d838cfaeda73f1917fdc686ec4a0ff239c70e7c7c36e8f853eced3bc8618f48d2b816da2a74311237e557fcc4cafde437e0388c3343c30824b5d3a34e378c33f04ce5f1c5646a3c5606f157f4db623e5c4870b62d3fc9b4e8f893a1a77627d75ab45d9ff7e56ba19564af99b557f9bd12e5f92e104b478fd6110b1f4cf4ed16a1e8f2f706b83931db8766bf2d1497f74a5fbcb419ab7dbacbb2c92a4e163730f0da5c72b911deecf4f05a6b327d0a4557f522c0d3e724ac25c1d63569b6593dcab675197779876fd402f3f02faac41beae7f2a32391a76c35a36352b711f9152c0d0a340cd686850c8ef25fbb11c71b89e7b557fa75ea3377c31d506a3a912873f1cfa042430d92ed7944fd68cd9ed5aebe54c4c7ffc80cd5fe514767bc6e66ec558e68a5429ea70b50fa6caa3b53fc9278e918632557f31666b75bbed6d08aa258c14aa7983841c3d39b134914aff8e65f0f76dc8dbae7f23bf72df16f8335be9a3eddfb5ef1c739b12847d13a384ec83f578699d38eb89557f346d8091515a01e9e1bcb28268befac08c03cd7c71d5146fb7176bf09f3e9c117f86b3fa87ee245373978e0d2d334dbde866c9b8b039036b87c5eb2fd89bcb6bab557f9e1ac5154e316d8c02044cc13565c57bdf1479e6192d501ed1aad6f1483a32f17f57aaafa65c4e563d39fff90096a5fa76d42117f53d87ef870784e64d63a8a16b557f42c100b2326b80acba5bf5a6823f8a7239e6edc96a4343ffaee426a0d1b4a7857f12bd632ff333b55931f9f8bda8b4ed27e86687f88c95871969d72474fb428c14557f88508108044483908bb0222f2600cd9f4e21156fe1ecb8b93e71b90ac08b1ffb7f755311b9e2cee471a91b161ccc5deed933d844b5af2b885543cc3c04eb640983557f7a66b2f34d68864a9cfe529b930b7f4d7acc09c5b8b9f61f3c95e5d6fb9823bf7fc8d233a0ebef7c9a17d2b0b17eea62cca39002a128ccf419119b4a1a1f1e7428557f20d91956bdc2681957e73940c4a11e475669410f2827196289cc12899dbdc0237f40165e7164257b249280bf839a50283d248062ed7b0e6d8820cb6c506bfcf7d3557f6dd901120fc4186518c09d3138c24bcbe8dea4c75843b72dd7fdda4da81e72cb7f41cb80f82badddd72e38fda86a7cbba38fafd9735ef98c7795abbbaf2b149562557f26d66b75ae581bb8b3da5d56be37b0d0b4caed2d6907b9129953f5d85e656da87f467a5c61216cad3003bc3395c339807c735d5c3d989ca4bc0ef2a37e14ce2679557f9b22f3ad63e08c58fbae17a355b3a44a802f6486be5e5f420fdc544b68c288337f4e788733fe0bff9af5f3e3a353367490c603293e53707fe7e4e0071b9ed497d65560166000527fbbb74c1591a33ea43e3a16464a60d9617484abb2543de42f6cb6751eb77501567f2b00120b81607971383f6f5676c1551d6bb27be3f263689fd3630e1a5be1401855610645565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610974806106546000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063895583221161008c5780639b19251a116100665780639b19251a1461021d578063bac8c50614610240578063ef06982b14610263578063f2fde38b1461028f57600080fd5b806389558322146101e65780638da5cb5b146101f95780639554444c1461020a57600080fd5b806365865b94116100c857806365865b941461019757806366105d85146101ac578063715018a6146101cb578063803ae06a146101d357600080fd5b806305b2d094146100ef5780633af32abf1461012a57806359ab74b314610156575b600080fd5b6101156100fd366004610747565b60ff9081166000908152600260205260409020541690565b60405190151581526020015b60405180910390f35b610115610138366004610769565b6001600160a01b031660009081526003602052604090205460ff1690565b61017f610164366004610747565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610121565b6101aa6101a5366004610792565b6102a2565b005b6005546101b99060ff1681565b60405160ff9091168152602001610121565b6101aa6102c0565b6101156101e13660046107d2565b6102d4565b6101aa6101f43660046107d2565b6103bb565b6000546001600160a01b031661017f565b6101aa610218366004610894565b6105b1565b61011561022b366004610769565b60036020526000908152604090205460ff1681565b61011561024e366004610747565b60026020526000908152604090205460ff1681565b61017f610271366004610747565b60ff166000908152600460205260409020546001600160a01b031690565b6101aa61029d366004610769565b6105de565b6102aa610657565b60ff909116600090815260016020526040902055565b6102c8610657565b6102d260006106b1565b565b3360009081526003602052604081205460ff16151560010361033d5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c657420616c72656164792077686974656c697374656400000000000060448201526064015b60405180910390fd5b60ff80841660009081526002602052604090205416156103975760405162461bcd60e51b8152602060048201526015602482015274115b9a59db5848185b1c9958591e481cdbdb1d9959605a1b6044820152606401610334565b60ff83166000908152600160205260409020546103b383610701565b149392505050565b3360009081526003602052604090205460ff16151560010361041f5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c657420616c72656164792077686974656c69737465640000000000006044820152606401610334565b60ff80831660009081526002602052604090205416156104795760405162461bcd60e51b8152602060048201526015602482015274115b9a59db5848185b1c9958591e481cdbdb1d9959605a1b6044820152606401610334565b60ff821660009081526001602052604090205461049582610701565b146104d15760405162461bcd60e51b815260206004820152600c60248201526b2bb937b7339030b739bbb2b960a11b6044820152606401610334565b3360009081526003602090815260408083208054600160ff19918216811790925560ff878116865260029094529190932080549091168317905560055461051a929116906108d0565b6005805460ff191660ff92831617905582166000818152600460205260408082208054336001600160a01b03199091168117909155905190917f892639826f1c983fc3cb297f7d5cbcd1acf6c1896c561bc58437cb9967eea29591a360055460ff166016036105ad576040517ff82713905c98235fa7a8cba3291c36637e543629471a779af872eccf0e1e79b590600090a15b5050565b6105b9610657565b60ff919091166000908152600260205260409020805460ff1916911515919091179055565b6105e6610657565b6001600160a01b03811661064b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610334565b610654816106b1565b50565b6000546001600160a01b031633146102d25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610334565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016107149190610903565b604051602081830303815290604052805190602001209050919050565b803560ff8116811461074257600080fd5b919050565b60006020828403121561075957600080fd5b61076282610731565b9392505050565b60006020828403121561077b57600080fd5b81356001600160a01b038116811461076257600080fd5b600080604083850312156107a557600080fd5b6107ae83610731565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156107e557600080fd5b6107ee83610731565b9150602083013567ffffffffffffffff8082111561080b57600080fd5b818501915085601f83011261081f57600080fd5b813581811115610831576108316107bc565b604051601f8201601f19908116603f01168101908382118183101715610859576108596107bc565b8160405282815288602084870101111561087257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080604083850312156108a757600080fd5b6108b083610731565b9150602083013580151581146108c557600080fd5b809150509250929050565b600060ff821660ff84168060ff038211156108fb57634e487b7160e01b600052601160045260246000fd5b019392505050565b6000825160005b81811015610924576020818601810151858301520161090a565b81811115610933576000828501525b50919091019291505056fea2646970667358221220eeeb4b97724043d2d3f920c2a333658b5d0007465dbd8fbe586b7d14aa722a4464736f6c634300080f0033