0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806381c610901161007157806381c610901461013c5780638da5cb5b1461016f578063b7e39b4f14610180578063db41fe5614610193578063f2fde38b146101b3578063f3acae3a146101c657600080fd5b806306b091f9146100b957806307127168146100ce5780633e4d1105146100e15780636854171d14610107578063715018a61461012c5780638119c06514610134575b600080fd5b6100cc6100c7366004610c84565b6101d7565b005b6100cc6100dc366004610c4e565b6103a2565b6100f46100ef366004610c2d565b6103f7565b6040519081526020015b60405180910390f35b6001546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b6100cc61042e565b6100cc610464565b61015f61014a366004610c2d565b60046020526000908152604090205460ff1681565b60405190151581526020016100fe565b6000546001600160a01b0316610114565b6100cc61018e366004610cad565b6109ac565b6100f46101a1366004610c2d565b60036020526000908152604090205481565b6100cc6101c1366004610c2d565b610ab7565b6002546001600160a01b0316610114565b6000546001600160a01b0316331461020a5760405162461bcd60e51b815260040161020190610dc3565b60405180910390fd5b818161028c576040516370a0823160e01b81523060048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561024f57600080fd5b505afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102879190610d8a565b61028e565b815b9150600082116102fb5760405162461bcd60e51b815260206004820152603260248201527f6d616b65207375726520746865726520697320612062616c616e636520617661604482015271696c61626c6520746f20776974686472617760701b6064820152608401610201565b806001600160a01b031663a9059cbb61031c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401602060405180830381600087803b15801561036457600080fd5b505af1158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610d6e565b50505050565b6000546001600160a01b031633146103cc5760405162461bcd60e51b815260040161020190610dc3565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526003602052604081205460649061041e906078610f5b565b6104289190610e4d565b92915050565b6000546001600160a01b031633146104585760405162461bcd60e51b815260040161020190610dc3565b6104626000610b52565b565b3360009081526004602052604090205460ff16156104c45760405162461bcd60e51b815260206004820152601960248201527f616c7265616479207377617070656420563120666f72205632000000000000006044820152606401610201565b6001546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561050857600080fd5b505afa15801561051c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105409190610d8a565b1161058d5760405162461bcd60e51b815260206004820152601a60248201527f776520646f206e6f742073656520796f75722062616c616e63650000000000006044820152606401610201565b6000610598336103f7565b9050600081116105ea5760405162461bcd60e51b815260206004820152601d60248201527f796f7520646f206e6f74206861766520616e7920563120746f6b656e730000006044820152606401610201565b6002546040516370a0823160e01b815230600482015282916001600160a01b0316906370a082319060240160206040518083038186803b15801561062d57600080fd5b505afa158015610641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106659190610d8a565b10156106c45760405162461bcd60e51b815260206004820152602860248201527f6e6f7420656e6f756768205632206c697175696469747920746f20636f6d706c604482015267065746520737761760c41b6064820152608401610201565b33600081815260046020819052604091829020805460ff191660019081179091555491516370a0823160e01b81529081018390526001600160a01b03909116916323b872dd91309084906370a082319060240160206040518083038186803b15801561072f57600080fd5b505afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190610d8a565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b1580156107b657600080fd5b505af11580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee9190610d6e565b506002546001546040805163313ce56760e01b815290516001600160a01b039384169363a9059cbb93339391169163313ce56791600480820192602092909190829003018186803b15801561084257600080fd5b505afa158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190610da2565b61088590600a610eb0565b600260009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156108d357600080fd5b505afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b9190610da2565b61091690600a610eb0565b6109209086610f5b565b61092a9190610e4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a89190610d6e565b5050565b6000546001600160a01b031633146109d65760405162461bcd60e51b815260040161020190610dc3565b8051825114610a1b5760405162461bcd60e51b81526020600482015260116024820152706d7573742062652073616d652073697a6560781b6044820152606401610201565b60005b8251811015610ab257818181518110610a4757634e487b7160e01b600052603260045260246000fd5b602002602001015160036000858481518110610a7357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508080610aaa90610f7a565b915050610a1e565b505050565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161020190610dc3565b6001600160a01b038116610b465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610201565b610b4f81610b52565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610bb957600080fd5b919050565b600082601f830112610bce578081fd5b81356020610be3610bde83610e29565b610df8565b80838252828201915082860187848660051b8901011115610c02578586fd5b855b85811015610c2057813584529284019290840190600101610c04565b5090979650505050505050565b600060208284031215610c3e578081fd5b610c4782610ba2565b9392505050565b60008060408385031215610c60578081fd5b610c6983610ba2565b91506020830135610c7981610fc1565b809150509250929050565b60008060408385031215610c96578182fd5b610c9f83610ba2565b946020939093013593505050565b60008060408385031215610cbf578182fd5b823567ffffffffffffffff80821115610cd6578384fd5b818501915085601f830112610ce9578384fd5b81356020610cf9610bde83610e29565b8083825282820191508286018a848660051b8901011115610d18578889fd5b8896505b84871015610d4157610d2d81610ba2565b835260019690960195918301918301610d1c565b5096505086013592505080821115610d57578283fd5b50610d6485828601610bbe565b9150509250929050565b600060208284031215610d7f578081fd5b8151610c4781610fc1565b600060208284031215610d9b578081fd5b5051919050565b600060208284031215610db3578081fd5b815160ff81168114610c47578182fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2157610e21610fab565b604052919050565b600067ffffffffffffffff821115610e4357610e43610fab565b5060051b60200190565b600082610e6857634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115610ea8578160001904821115610e8e57610e8e610f95565b80851615610e9b57918102915b93841c9390800290610e72565b509250929050565b6000610c4760ff841683600082610ec957506001610428565b81610ed657506000610428565b8160018114610eec5760028114610ef657610f12565b6001915050610428565b60ff841115610f0757610f07610f95565b50506001821b610428565b5060208310610133831016604e8410600b8410161715610f35575081810a610428565b610f3f8383610e6d565b8060001904821115610f5357610f53610f95565b029392505050565b6000816000190483118215151615610f7557610f75610f95565b500290565b6000600019821415610f8e57610f8e610f95565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114610b4f57600080fdfea164736f6c6343000804000a
0x608060405234801561001057600080fd5b506040516110f23803806110f283398101604081905261002f916100d5565b61003833610069565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055610107565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100d057600080fd5b919050565b600080604083850312156100e7578182fd5b6100f0836100b9565b91506100fe602084016100b9565b90509250929050565b610fdc806101166000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806381c610901161007157806381c610901461013c5780638da5cb5b1461016f578063b7e39b4f14610180578063db41fe5614610193578063f2fde38b146101b3578063f3acae3a146101c657600080fd5b806306b091f9146100b957806307127168146100ce5780633e4d1105146100e15780636854171d14610107578063715018a61461012c5780638119c06514610134575b600080fd5b6100cc6100c7366004610c84565b6101d7565b005b6100cc6100dc366004610c4e565b6103a2565b6100f46100ef366004610c2d565b6103f7565b6040519081526020015b60405180910390f35b6001546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b6100cc61042e565b6100cc610464565b61015f61014a366004610c2d565b60046020526000908152604090205460ff1681565b60405190151581526020016100fe565b6000546001600160a01b0316610114565b6100cc61018e366004610cad565b6109ac565b6100f46101a1366004610c2d565b60036020526000908152604090205481565b6100cc6101c1366004610c2d565b610ab7565b6002546001600160a01b0316610114565b6000546001600160a01b0316331461020a5760405162461bcd60e51b815260040161020190610dc3565b60405180910390fd5b818161028c576040516370a0823160e01b81523060048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561024f57600080fd5b505afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102879190610d8a565b61028e565b815b9150600082116102fb5760405162461bcd60e51b815260206004820152603260248201527f6d616b65207375726520746865726520697320612062616c616e636520617661604482015271696c61626c6520746f20776974686472617760701b6064820152608401610201565b806001600160a01b031663a9059cbb61031c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401602060405180830381600087803b15801561036457600080fd5b505af1158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610d6e565b50505050565b6000546001600160a01b031633146103cc5760405162461bcd60e51b815260040161020190610dc3565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526003602052604081205460649061041e906078610f5b565b6104289190610e4d565b92915050565b6000546001600160a01b031633146104585760405162461bcd60e51b815260040161020190610dc3565b6104626000610b52565b565b3360009081526004602052604090205460ff16156104c45760405162461bcd60e51b815260206004820152601960248201527f616c7265616479207377617070656420563120666f72205632000000000000006044820152606401610201565b6001546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561050857600080fd5b505afa15801561051c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105409190610d8a565b1161058d5760405162461bcd60e51b815260206004820152601a60248201527f776520646f206e6f742073656520796f75722062616c616e63650000000000006044820152606401610201565b6000610598336103f7565b9050600081116105ea5760405162461bcd60e51b815260206004820152601d60248201527f796f7520646f206e6f74206861766520616e7920563120746f6b656e730000006044820152606401610201565b6002546040516370a0823160e01b815230600482015282916001600160a01b0316906370a082319060240160206040518083038186803b15801561062d57600080fd5b505afa158015610641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106659190610d8a565b10156106c45760405162461bcd60e51b815260206004820152602860248201527f6e6f7420656e6f756768205632206c697175696469747920746f20636f6d706c604482015267065746520737761760c41b6064820152608401610201565b33600081815260046020819052604091829020805460ff191660019081179091555491516370a0823160e01b81529081018390526001600160a01b03909116916323b872dd91309084906370a082319060240160206040518083038186803b15801561072f57600080fd5b505afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190610d8a565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401602060405180830381600087803b1580156107b657600080fd5b505af11580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee9190610d6e565b506002546001546040805163313ce56760e01b815290516001600160a01b039384169363a9059cbb93339391169163313ce56791600480820192602092909190829003018186803b15801561084257600080fd5b505afa158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190610da2565b61088590600a610eb0565b600260009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156108d357600080fd5b505afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b9190610da2565b61091690600a610eb0565b6109209086610f5b565b61092a9190610e4d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a89190610d6e565b5050565b6000546001600160a01b031633146109d65760405162461bcd60e51b815260040161020190610dc3565b8051825114610a1b5760405162461bcd60e51b81526020600482015260116024820152706d7573742062652073616d652073697a6560781b6044820152606401610201565b60005b8251811015610ab257818181518110610a4757634e487b7160e01b600052603260045260246000fd5b602002602001015160036000858481518110610a7357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508080610aaa90610f7a565b915050610a1e565b505050565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161020190610dc3565b6001600160a01b038116610b465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610201565b610b4f81610b52565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610bb957600080fd5b919050565b600082601f830112610bce578081fd5b81356020610be3610bde83610e29565b610df8565b80838252828201915082860187848660051b8901011115610c02578586fd5b855b85811015610c2057813584529284019290840190600101610c04565b5090979650505050505050565b600060208284031215610c3e578081fd5b610c4782610ba2565b9392505050565b60008060408385031215610c60578081fd5b610c6983610ba2565b91506020830135610c7981610fc1565b809150509250929050565b60008060408385031215610c96578182fd5b610c9f83610ba2565b946020939093013593505050565b60008060408385031215610cbf578182fd5b823567ffffffffffffffff80821115610cd6578384fd5b818501915085601f830112610ce9578384fd5b81356020610cf9610bde83610e29565b8083825282820191508286018a848660051b8901011115610d18578889fd5b8896505b84871015610d4157610d2d81610ba2565b835260019690960195918301918301610d1c565b5096505086013592505080821115610d57578283fd5b50610d6485828601610bbe565b9150509250929050565b600060208284031215610d7f578081fd5b8151610c4781610fc1565b600060208284031215610d9b578081fd5b5051919050565b600060208284031215610db3578081fd5b815160ff81168114610c47578182fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2157610e21610fab565b604052919050565b600067ffffffffffffffff821115610e4357610e43610fab565b5060051b60200190565b600082610e6857634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115610ea8578160001904821115610e8e57610e8e610f95565b80851615610e9b57918102915b93841c9390800290610e72565b509250929050565b6000610c4760ff841683600082610ec957506001610428565b81610ed657506000610428565b8160018114610eec5760028114610ef657610f12565b6001915050610428565b60ff841115610f0757610f07610f95565b50506001821b610428565b5060208310610133831016604e8410600b8410161715610f35575081810a610428565b610f3f8383610e6d565b8060001904821115610f5357610f53610f95565b029392505050565b6000816000190483118215151615610f7557610f75610f95565b500290565b6000600019821415610f8e57610f8e610f95565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114610b4f57600080fdfea164736f6c6343000804000a000000000000000000000000c5019e129b75d380d3d837b8e609dec6c8f5d044000000000000000000000000032c48b65d589c08fb2d427a2fc1a2ffc0b18ba8