0x60806040526002805460ff1916905534801561001a57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018055610db78061006f6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063715018a611610071578063715018a6146101585780638da5cb5b14610160578063c24a0f8b1461017b578063d936547e14610184578063f2fde38b146101a7578063fe4b84df146101ba57600080fd5b80630b97bc86146100b957806325058c26146100d5578063392e53cd1461010057806347e7ef241461011d57806351cff8d9146101325780636247f6f214610145575b600080fd5b6100c260035481565b6040519081526020015b60405180910390f35b6100c26100e3366004610c1a565b600660209081526000928352604080842090915290825290205481565b60025461010d9060ff1681565b60405190151581526020016100cc565b61013061012b366004610c4c565b6101cd565b005b610130610140366004610c00565b6103cc565b610130610153366004610c00565b610597565b610130610656565b6000546040516001600160a01b0390911681526020016100cc565b6100c260045481565b61010d610192366004610c00565b60056020526000908152604090205460ff1681565b6101306101b5366004610c00565b6106ca565b6101306101c8366004610c95565b6107b4565b600260015414156102255760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260018190555460ff1661027c5760405162461bcd60e51b815260206004820152601860248201527f636f6e7472616374206e6f7420696e697469616c697a65640000000000000000604482015260640161021c565b6001600160a01b03821660009081526005602052604090205460ff1615156001146102e15760405162461bcd60e51b81526020600482015260156024820152741d1bdad95b881b9bdd081dda1a5d195b1a5cdd1959605a1b604482015260640161021c565b60045442106103285760405162461bcd60e51b81526020600482015260136024820152723637b1b5903832b934b7b21034b99037bb32b960691b604482015260640161021c565b610334823330846108e1565b3360009081526006602090815260408083206001600160a01b03861684529091529020546103629082610952565b3360008181526006602090815260408083206001600160a01b0388168085529083529281902094909455835142815290810185905290927fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7910160405180910390a3505060018055565b6002600154141561041f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161021c565b6002600155600454421161046d5760405162461bcd60e51b81526020600482015260156024820152740746f6b656e207374696c6c206c6f636b656420757605c1b604482015260640161021c565b3360009081526006602090815260408083206001600160a01b03851684529091529020546104dd5760405162461bcd60e51b815260206004820181905260248201527f6e6f2061737365747320776572652070726576696f75736c79206c6f636b6564604482015260640161021c565b3360008181526006602090815260408083206001600160a01b038616845290915290205461050c918391610965565b3360008181526006602090815260408083206001600160a01b03861680855290835292819020548151428152928301529192917fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc6910160405180910390a33360009081526006602090815260408083206001600160a01b039490941683529290529081205560018055565b6000546001600160a01b031633146105c15760405162461bcd60e51b815260040161021c90610cfc565b6001600160a01b0381166106095760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161021c565b6001600160a01b038116600081815260056020526040808220805460ff191660011790555133917fd2b62e9667062d126d0b980895587e67a80c07e479f90dc89db858119b4483a191a350565b6000546001600160a01b031633146106805760405162461bcd60e51b815260040161021c90610cfc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106f45760405162461bcd60e51b815260040161021c90610cfc565b6001600160a01b0381166107595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161021c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107de5760405162461bcd60e51b815260040161021c90610cfc565b60025460ff16156108315760405162461bcd60e51b815260206004820152601c60248201527f636f6e747261637420616c726561647920696e697469616c697a656400000000604482015260640161021c565b600081116108755760405162461bcd60e51b815260206004820152601160248201527036b4b71032b7323230ba329032b93937b960791b604482015260640161021c565b4260038190556108859082610952565b60048190556002805460ff1916600117905560035460405133927f0f91882b50d9330af0b1d4998e6af7f2eaee90ce7e77ea54fea089af166d021d926108d692909190918252602082015260400190565b60405180910390a250565b6040516001600160a01b038085166024830152831660448201526064810182905261094c9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261099a565b50505050565b600061095e8284610d31565b9392505050565b6040516001600160a01b03831660248201526044810182905261099590849063a9059cbb60e01b90606401610915565b505050565b60006109ef826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610a6c9092919063ffffffff16565b8051909150156109955780806020019051810190610a0d9190610c75565b6109955760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161021c565b6060610a7b8484600085610a83565b949350505050565b606082471015610ae45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161021c565b843b610b325760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161021c565b600080866001600160a01b03168587604051610b4e9190610cad565b60006040518083038185875af1925050503d8060008114610b8b576040519150601f19603f3d011682016040523d82523d6000602084013e610b90565b606091505b5091509150610ba0828286610bab565b979650505050505050565b60608315610bba57508161095e565b825115610bca5782518084602001fd5b8160405162461bcd60e51b815260040161021c9190610cc9565b80356001600160a01b0381168114610bfb57600080fd5b919050565b600060208284031215610c11578081fd5b61095e82610be4565b60008060408385031215610c2c578081fd5b610c3583610be4565b9150610c4360208401610be4565b90509250929050565b60008060408385031215610c5e578182fd5b610c6783610be4565b946020939093013593505050565b600060208284031215610c86578081fd5b8151801515811461095e578182fd5b600060208284031215610ca6578081fd5b5035919050565b60008251610cbf818460208701610d55565b9190910192915050565b6020815260008251806020840152610ce8816040850160208701610d55565b601f01601f19169190910160400192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610d5057634e487b7160e01b81526011600452602481fd5b500190565b60005b83811015610d70578181015183820152602001610d58565b8381111561094c575050600091015256fea264697066735822122093edd8ca85c8162858dce62f053f5ddf41e0586be73aba24a1774e2f2b1b1aee64736f6c63430008040033