0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556107e6806100326000396000f3fe6080604052600436106100435760003560e01c80630614117a1461004f578063950d4b05146100665780639e8c708e14610079578063a0d457841461009957600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b506100646100ac565b005b610064610074366004610551565b610130565b34801561008557600080fd5b506100646100943660046105da565b6101ed565b6100646100a7366004610648565b610374565b6000546001600160a01b03163314806100c457503330145b6100cd57600080fd5b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461011a576040519150601f19603f3d011682016040523d82523d6000602084013e61011f565b606091505b505090508061012d57600080fd5b50565b6000546001600160a01b0316331461014757600080fd5b6000846001600160a01b03168285856040516101649291906106e2565b60006040518083038185875af1925050503d80600081146101a1576040519150601f19603f3d011682016040523d82523d6000602084013e6101a6565b606091505b50509050806101e65760405162461bcd60e51b8152602060048201526007602482015266115c9c90d85b1b60ca1b60448201526064015b60405180910390fd5b5050505050565b6000546001600160a01b031633148061020557503330145b61020e57600080fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561026e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029291906106f2565b600080546040516001600160a01b0391821660248201526044810184905292935090919084169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790525161031f919061070b565b6000604051808303816000865af19150503d806000811461035c576040519150601f19603f3d011682016040523d82523d6000602084013e610361565b606091505b505090508061036f57600080fd5b505050565b6000546001600160a01b0316331461038b57600080fd5b848314801561039957508281145b6103a257600080fd5b60005b61ffff811686111561052c5782828261ffff168181106103c7576103c761073a565b9050602002013547101561041d5760405162461bcd60e51b815260206004820152600360248201527f4f4f4d000000000000000000000000000000000000000000000000000000000060448201526064016101dd565b600087878361ffff168181106104355761043561073a565b905060200201602081019061044a91906105da565b6001600160a01b031684848461ffff168181106104695761046961073a565b9050602002013587878561ffff168181106104865761048661073a565b90506020028101906104989190610769565b6040516104a69291906106e2565b60006040518083038185875af1925050503d80600081146104e3576040519150601f19603f3d011682016040523d82523d6000602084013e6104e8565b606091505b50509050806105235760405162461bcd60e51b8152602060048201526007602482015266115c9c90d85b1b60ca1b60448201526064016101dd565b506001016103a5565b50505050505050565b80356001600160a01b038116811461054c57600080fd5b919050565b6000806000806060858703121561056757600080fd5b61057085610535565b9350602085013567ffffffffffffffff8082111561058d57600080fd5b818701915087601f8301126105a157600080fd5b8135818111156105b057600080fd5b8860208285010111156105c257600080fd5b95986020929092019750949560400135945092505050565b6000602082840312156105ec57600080fd5b6105f582610535565b9392505050565b60008083601f84011261060e57600080fd5b50813567ffffffffffffffff81111561062657600080fd5b6020830191508360208260051b850101111561064157600080fd5b9250929050565b6000806000806000806060878903121561066157600080fd5b863567ffffffffffffffff8082111561067957600080fd5b6106858a838b016105fc565b9098509650602089013591508082111561069e57600080fd5b6106aa8a838b016105fc565b909650945060408901359150808211156106c357600080fd5b506106d089828a016105fc565b979a9699509497509295939492505050565b8183823760009101908152919050565b60006020828403121561070457600080fd5b5051919050565b6000825160005b8181101561072c5760208186018101518583015201610712565b506000920191825250919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808335601e1984360301811261078057600080fd5b83018035915067ffffffffffffffff82111561079b57600080fd5b60200191503681900382131561064157600080fdfea2646970667358221220af887c5c0bf272cf0bbb5ecc2d09acef1d43cdd37359650b7e7667b8ffd7744864736f6c63430008130033