0x608060405234801561001057600080fd5b506040516109e93803806109e983398101604081905261002f916100a7565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001805460ff909216600160a01b026001600160a81b03199092166001600160a01b039093169290921717905560006002556100f0565b600080604083850312156100b9578182fd5b82516001600160a01b03811681146100cf578283fd5b602084015190925060ff811681146100e5578182fd5b809150509250929050565b6108ea806100ff6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a6146100f65780638da5cb5b146100fe578063b9a3c84c14610123578063f2fde38b1461013657600080fd5b8063357609ce1461008d5780633bf5e3b4146100a2578063568bdb69146100bd5780636cbadbfa146100d0575b600080fd5b6100a061009b36600461069b565b610149565b005b6100aa6101a0565b6040519081526020015b60405180910390f35b6100a06100cb3660046106f2565b6101f6565b6001546100e490600160a01b900460ff1681565b60405160ff90911681526020016100b4565b6100a0610360565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100b4565b60015461010b906001600160a01b031681565b6100a061014436600461065c565b6103d4565b6101548383836104be565b6002541461019b5760405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a590814995c5d595cdd608a1b60448201526064015b60405180910390fd5b505050565b6001546040805160208101829052600860608201526723b7bb32b93737b960c11b6080820152600160a01b90920460ff169082015260009060a00160405160208183030381529060405280519060200120905090565b6000546001600160a01b031633146102205760405162461bcd60e51b8152600401610192906107ff565b600254156102705760405162461bcd60e51b815260206004820152601860248201527f52657175657374206861736820616c72656164792073657400000000000000006044820152606401610192565b61027b8383836104be565b6002556102866104f4565b6001600160a01b03166305e2ca178561029d6101a0565b6102a887878761057e565b6040518463ffffffff1660e01b81526004016102c693929190610834565b600060405180830381600087803b1580156102e057600080fd5b505af11580156102f4573d6000803e3d6000fd5b50506000600255505060405161030b90829061078d565b6040518091039020836001600160a01b03168560ff167ff0103e71ac3887a53eae4481370e365dfa399d6c3a8424073e9f4216b54b7d5e8560405161035291815260200190565b60405180910390a450505050565b6000546001600160a01b0316331461038a5760405162461bcd60e51b8152600401610192906107ff565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146103fe5760405162461bcd60e51b8152600401610192906107ff565b6001600160a01b0381166104635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610192565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008383836040516020016104d5939291906107cf565b6040516020818303038152906040528051906020012090509392505050565b6001546040516302abf57960e61b81526542726964676560d01b60048201526000916001600160a01b03169063aafd5e409060240160206040518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610579919061067f565b905090565b60606000848484604051602001610597939291906107cf565b60405160208183030381529060405290508051816040516020016105bc9291906107a9565b6040516020818303038152906040529150509392505050565b600082601f8301126105e5578081fd5b813567ffffffffffffffff8082111561060057610600610886565b604051601f8301601f19908116603f0116810190828211818310171561062857610628610886565b81604052838152866020858801011115610640578485fd5b8360208701602083013792830160200193909352509392505050565b60006020828403121561066d578081fd5b81356106788161089c565b9392505050565b600060208284031215610690578081fd5b81516106788161089c565b6000806000606084860312156106af578182fd5b83356106ba8161089c565b925060208401359150604084013567ffffffffffffffff8111156106dc578182fd5b6106e8868287016105d5565b9150509250925092565b60008060008060808587031215610707578081fd5b843560ff81168114610717578182fd5b935060208501356107278161089c565b925060408501359150606085013567ffffffffffffffff811115610749578182fd5b610755878288016105d5565b91505092959194509250565b60008151808452610779816020860160208601610856565b601f01601f19169290920160200192915050565b6000825161079f818460208701610856565b9190910192915050565b828152600082516107c1816020850160208701610856565b919091016020019392505050565b60018060a01b03841681528260208201526060604082015260006107f66060830184610761565b95945050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60ff841681528260208201526060604082015260006107f66060830184610761565b60005b83811015610871578181015183820152602001610859565b83811115610880576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146108b157600080fd5b5056fea26469706673582212208b1336abba9af6ab698a34f366d2732ad13e371db65cdad88efc469112064e9764736f6c6343000804003300000000000000000000000040f941e48a552bf496b154af6bf55725f18d77c30000000000000000000000000000000000000000000000000000000000000001