0x60806040819052600080546001600160a01b03191633178082556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3611e62806100576000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638f32d59b116100c3578063da46098c1161007c578063da46098c1461033e578063da5868e114610374578063dd62ed3e1461039a578063e30443bc146103c8578063f2fde38b146103f4578063f7ea7a3d1461041a5761014d565b80638f32d59b14610258578063c09b7bce14610274578063c6382b26146102bc578063cbca47db146102ea578063d4b8399214610310578063d60b347f146103185761014d565b806323d01c291161011557806323d01c29146101ec5780633659cfe6146101f457806370a082311461021a578063715018a6146102405780638129fc1c146102485780638da5cb5b146102505761014d565b80630cbcae701461015257806317a68dd81461017657806318160ddd1461019e5780631b655054146101b857806321e5383a146101c0575b600080fd5b61015a610437565b604080516001600160a01b039092168252519081900360200190f35b61019c6004803603602081101561018c57600080fd5b50356001600160a01b03166104fa565b005b6101a661068f565b60408051918252519081900360200190f35b61015a610727565b61019c600480360360408110156101d657600080fd5b506001600160a01b038135169060200135610736565b61015a610b39565b61019c6004803603602081101561020a57600080fd5b50356001600160a01b0316610b48565b6101a66004803603602081101561023057600080fd5b50356001600160a01b0316610b89565b61019c610cb5565b61019c610d58565b61015a610e23565b610260610e32565b604080519115158252519081900360200190f35b61019c600480360360a081101561028a57600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160809091013516610e43565b61019c600480360360408110156102d257600080fd5b506001600160a01b03813516906020013515156111b1565b6102606004803603602081101561030057600080fd5b50356001600160a01b0316611473565b61015a611488565b6102606004803603602081101561032e57600080fd5b50356001600160a01b0316611497565b61019c6004803603606081101561035457600080fd5b506001600160a01b038135811691602081013590911690604001356114b5565b6102606004803603602081101561038a57600080fd5b50356001600160a01b031661168a565b6101a6600480360360408110156103b057600080fd5b506001600160a01b0381358116916020013516611701565b61019c600480360360408110156103de57600080fd5b506001600160a01b03813516906020013561172c565b61019c6004803603602081101561040a57600080fd5b50356001600160a01b03166119d2565b61019c6004803603602081101561043057600080fd5b5035611a34565b6004805460025460408051602080820181905281830195909552631a5b5c1b60e21b6060808301919091528251808303909101815260808201808452815191870191909120631eb13b5960e21b9091526001600160a01b03938416608483015260a482015290516000949290931692637ac4ed649260c480840193919291829003018186803b1580156104c957600080fd5b505afa1580156104dd573d6000803e3d6000fd5b505050506040513d60208110156104f357600080fd5b5051905090565b600254600160a01b900460ff16610546576040805162461bcd60e51b81526020600482018190526024820152600080516020611dea833981519152604482015290519081900360640190fd5b61054e610e32565b61059f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6004805460025460408051602080820181905281830195909552631a5b5c1b60e21b60608083019190915282518083039091018152608082018084528151919096012063da548d6b60e01b9095526001600160a01b03928316608482015260a481019490945284821660c48501525191169163da548d6b9160e480830192600092919082900301818387803b15801561063757600080fd5b505af115801561064b573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517fdd70e030202ca47dfae0ec29e36dcd28c3f6f9bd84cec5093ae726b45c3d1f459350908190036020019150a150565b600454600254604080516020808201819052600c828401526b5f746f74616c537570706c7960a01b60608084019190915283518084039091018152608083018085528151918301919091206338b2c2a960e11b9091526001600160a01b03948516608484015260a48301529151600094939093169263716585529260c480840193919291829003018186803b1580156104c957600080fd5b6002546001600160a01b031681565b600254600160a01b900460ff16610782576040805162461bcd60e51b81526020600482018190526024820152600080516020611dea833981519152604482015290519081900360640190fd5b60048054600254600654604080516369bd764960e11b815260208187018190526024820196909652631a5b5c1b60e21b604482015290516001600160a01b0394851695637ac4ed6495948516949093169263d37aec929260648082019391829003018186803b1580156107f457600080fd5b505afa158015610808573d6000803e3d6000fd5b505050506040513d602081101561081e57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152516044808301926020929190829003018186803b15801561086d57600080fd5b505afa158015610881573d6000803e3d6000fd5b505050506040513d602081101561089757600080fd5b50516001600160a01b031633146108df5760405162461bcd60e51b815260040180806020018281038252602d815260200180611dbd602d913960400191505060405180910390fd5b600554600254600654604080516369bd764960e11b815260206004820181905260096024830152685f62616c616e63657360b81b604483015291516000956001600160a01b0390811695634da61dc8959082169491169263d37aec929260648083019392829003018186803b15801561095757600080fd5b505afa15801561096b573d6000803e3d6000fd5b505050506040513d602081101561098157600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201526024810192909252918716604482015290516064808301926020929190829003018186803b1580156109d957600080fd5b505afa1580156109ed573d6000803e3d6000fd5b505050506040513d6020811015610a0357600080fd5b50519050610a17818363ffffffff611c9516565b600554600254600654604080516369bd764960e11b815260206004820181905260096024830152685f62616c616e63657360b81b604483015291519596506001600160a01b0394851695638259b08895948516949093169263d37aec9292606480840193919291829003018186803b158015610a9257600080fd5b505afa158015610aa6573d6000803e3d6000fd5b505050506040513d6020811015610abc57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03938416600482015260248101929092529187166044820152606481018590529051608480830192600092919082900301818387803b158015610b1c57600080fd5b505af1158015610b30573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b031690565b6040805162461bcd60e51b815260206004820152600e60248201526d43616e6e6f74207570677261646560901b604482015290519081900360640190fd5b50565b600554600254600654604080516369bd764960e11b815260206004820181905260096024830152685f62616c616e63657360b81b604483015291516000956001600160a01b0390811695634da61dc8959082169491169263d37aec929260648083019392829003018186803b158015610c0157600080fd5b505afa158015610c15573d6000803e3d6000fd5b505050506040513d6020811015610c2b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201526024810192909252918616604482015290516064808301926020929190829003018186803b158015610c8357600080fd5b505afa158015610c97573d6000803e3d6000fd5b505050506040513d6020811015610cad57600080fd5b505192915050565b610cbd610e32565b610d0e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001546001600160a01b031660009081526003602052604090205460ff16610dd457600180546001600160a01b03908116600090815260036020526040808220805460ff1916851790559254925192909116917f46262b692680f1907961b1c2f80ce936b0bc7d72985aec6c7d3d91dd79b113fd9190a2610e21565b6040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420696e697469616c697a65206d6f7265207468616e206f6e6365604482015290519081900360640190fd5b565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600254600160a01b900460ff1615610e8c5760405162461bcd60e51b8152600401808060200182810382526024815260200180611e0a6024913960400191505060405180910390fd5b600280546001600160a01b038084166001600160a01b031960ff60a01b19909316600160a01b178316179092556004805487841690831617815560068054868516908416179081905560058054888616941693909317909255604080516357a1688360e11b81526020818401526024810192909252631a5b5c1b60e21b604483015251919092169163af42d10691606480830192600092919082900301818387803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b5050600654604080516357a1688360e11b81526020600482015260096024820152685f62616c616e63657360b81b604482015290516001600160a01b03909216935063af42d106925060648082019260009290919082900301818387803b158015610fb857600080fd5b505af1158015610fcc573d6000803e3d6000fd5b5050600654604080516357a1688360e11b815260206004820152600b60248201526a5f616c6c6f77616e63657360a81b604482015290516001600160a01b03909216935063af42d106925060648082019260009290919082900301818387803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b5050600654604080516357a1688360e11b815260206004820152600c60248201526b5f746f74616c537570706c7960a01b604482015290516001600160a01b03909216935063af42d106925060648082019260009290919082900301818387803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b50506004805460025460408051602080820181905281830195909552631a5b5c1b60e21b60608083019190915282518083039091018152608082018084528151919096012063da548d6b60e01b9095526001600160a01b03928316608482015260a48101949094528a821660c4850152519116935063da548d6b925060e480830192600092919082900301818387803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50506040517fcef2635b5880145900d89cfed59a42dbea505e481b09176f9c1d061faefa2497925060009150a15050505050565b600254600160a01b900460ff166111fd576040805162461bcd60e51b81526020600482018190526024820152600080516020611dea833981519152604482015290519081900360640190fd5b60048054600254600654604080516369bd764960e11b815260208187018190526024820196909652631a5b5c1b60e21b604482015290516001600160a01b0394851695637ac4ed6495948516949093169263d37aec929260648082019391829003018186803b15801561126f57600080fd5b505afa158015611283573d6000803e3d6000fd5b505050506040513d602081101561129957600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152516044808301926020929190829003018186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d602081101561131257600080fd5b50516001600160a01b0316331461135a5760405162461bcd60e51b815260040180806020018281038252602d815260200180611dbd602d913960400191505060405180910390fd5b600554600254600654604080516369bd764960e11b815260206004820181905260086024830152671cddd95c1d14d95d60c21b604483015291516001600160a01b039586169563e98faee995811694169263d37aec929260648082019391829003018186803b1580156113cc57600080fd5b505afa1580156113e0573d6000803e3d6000fd5b505050506040513d60208110156113f657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201526024810192909252918616604482015284151560648201529051608480830192600092919082900301818387803b15801561145757600080fd5b505af115801561146b573d6000803e3d6000fd5b505050505050565b60036020526000908152604090205460ff1681565b6001546001600160a01b031681565b6001600160a01b031660009081526003602052604090205460ff1690565b600254600160a01b900460ff16611501576040805162461bcd60e51b81526020600482018190526024820152600080516020611dea833981519152604482015290519081900360640190fd5b60048054600254600654604080516369bd764960e11b815260208187018190526024820196909652631a5b5c1b60e21b604482015290516001600160a01b0394851695637ac4ed6495948516949093169263d37aec929260648082019391829003018186803b15801561157357600080fd5b505afa158015611587573d6000803e3d6000fd5b505050506040513d602081101561159d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152516044808301926020929190829003018186803b1580156115ec57600080fd5b505afa158015611600573d6000803e3d6000fd5b505050506040513d602081101561161657600080fd5b50516001600160a01b0316331461165e5760405162461bcd60e51b815260040180806020018281038252602d815260200180611dbd602d913960400191505060405180910390fd5b6001600160a01b0392831660009081526007602090815260408083209490951682529290925291902055565b600554600254600654604080516369bd764960e11b815260206004820181905260086024830152671cddd95c1d14d95d60c21b604483015291516000956001600160a01b0390811695639f9cb633959082169491169263d37aec929260648083019392829003018186803b158015610c0157600080fd5b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b600254600160a01b900460ff16611778576040805162461bcd60e51b81526020600482018190526024820152600080516020611dea833981519152604482015290519081900360640190fd5b60048054600254600654604080516369bd764960e11b815260208187018190526024820196909652631a5b5c1b60e21b604482015290516001600160a01b0394851695637ac4ed6495948516949093169263d37aec929260648082019391829003018186803b1580156117ea57600080fd5b505afa1580156117fe573d6000803e3d6000fd5b505050506040513d602081101561181457600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152516044808301926020929190829003018186803b15801561186357600080fd5b505afa158015611877573d6000803e3d6000fd5b505050506040513d602081101561188d57600080fd5b50516001600160a01b031633146118d55760405162461bcd60e51b815260040180806020018281038252602d815260200180611dbd602d913960400191505060405180910390fd5b600554600254600654604080516369bd764960e11b815260206004820181905260096024830152685f62616c616e63657360b81b604483015291516001600160a01b0395861695638259b08895811694169263d37aec929260648082019391829003018186803b15801561194857600080fd5b505afa15801561195c573d6000803e3d6000fd5b505050506040513d602081101561197257600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03938416600482015260248101929092529186166044820152606481018590529051608480830192600092919082900301818387803b15801561145757600080fd5b6119da610e32565b611a2b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610b8681611cf6565b600254600160a01b900460ff16611a80576040805162461bcd60e51b81526020600482018190526024820152600080516020611dea833981519152604482015290519081900360640190fd5b60048054600254600654604080516369bd764960e11b815260208187018190526024820196909652631a5b5c1b60e21b604482015290516001600160a01b0394851695637ac4ed6495948516949093169263d37aec929260648082019391829003018186803b158015611af257600080fd5b505afa158015611b06573d6000803e3d6000fd5b505050506040513d6020811015611b1c57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0390931660048401526024830191909152516044808301926020929190829003018186803b158015611b6b57600080fd5b505afa158015611b7f573d6000803e3d6000fd5b505050506040513d6020811015611b9557600080fd5b50516001600160a01b03163314611bdd5760405162461bcd60e51b815260040180806020018281038252602d815260200180611dbd602d913960400191505060405180910390fd5b600454600254604080516020808201819052600c828401526b5f746f74616c537570706c7960a01b6060808401919091528351808403909101815260808301808552815191909201206305b2f34b60e41b9091526001600160a01b03938416608483015260a482015260c4810185905290519190921691635b2f34b09160e480830192600092919082900301818387803b158015611c7a57600080fd5b505af1158015611c8e573d6000803e3d6000fd5b5050505050565b600082820183811015611cef576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038116611d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611d976026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735468652073656e646572206973206e6f742074686520696d706c656d656e746174696f6e20636f6e747261637454686520636f6e7472616374206d75737420626520636f6e737472756374656454686520636f6e74726163742077617320616c726561647920636f6e7374727563746564a265627a7a72315820a93120531aa6f413f4ac75dddaa8b25f288fabd48402df067860bae74563c1b964736f6c634300050c0032