0x608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b610c62806100796000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806390b2fa491161008c578063dc10fb0a11610066578063dc10fb0a14610178578063f2fde38b14610198578063f6419d96146101ab578063fb0000c0146101be576100cf565b806390b2fa491461013f5780639870d7fe14610152578063ac8a584a14610165576100cf565b806319f650aa146100d45780633a076e9a146100f25780636d70f7ae14610107578063715018a6146101275780638da5cb5b1461012f5780638f32d59b14610137575b600080fd5b6100dc6101d1565b6040516100e99190610b0a565b60405180910390f35b61010561010036600461084d565b6101e0565b005b61011a6101153660046107ea565b61023c565b6040516100e99190610b18565b610105610255565b6100dc6102c3565b61011a6102d2565b61010561014d3660046107ea565b6102f6565b6101056101603660046107ea565b61033c565b6101056101733660046107ea565b61036c565b61018b610186366004610889565b610399565b6040516100e99190610b26565b6101056101a63660046107ea565b6103e8565b61018b6101b9366004610810565b610415565b61018b6101cc36600461082e565b610427565b6003546001600160a01b031681565b6101eb6101156104e9565b6102105760405162461bcd60e51b815260040161020790610b54565b60405180910390fd5b806002600061022761018636879003870187610889565b81526020810191909152604001600020555050565b600061024f60018363ffffffff6104ed16565b92915050565b61025d6102d2565b6102795760405162461bcd60e51b815260040161020790610b74565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600080546001600160a01b03166102e76104e9565b6001600160a01b031614905090565b6102fe6102d2565b61031a5760405162461bcd60e51b815260040161020790610b74565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6103446102d2565b6103605760405162461bcd60e51b815260040161020790610b74565b61036981610535565b50565b6103746102d2565b6103905760405162461bcd60e51b815260040161020790610b74565b6103698161057d565b8051604080830151805160209182015160608601518051908401518488015195516000976103cb979096909101610aa0565b604051602081830303815290604052805190602001209050919050565b6103f06102d2565b61040c5760405162461bcd60e51b815260040161020790610b74565b610369816105c5565b60026020526000908152604090205481565b60008061043c61018636859003850185610889565b600081815260026020526040902054600354919250906001600160a01b0316156104e257600354604051637b20cecb60e11b81526001600160a01b039091169063f6419d9690610490908590600401610b26565b60206040518083038186803b1580156104a857600080fd5b505afa1580156104bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104e091908101906108a8565b015b9392505050565b3390565b60006001600160a01b0382166105155760405162461bcd60e51b815260040161020790610b84565b506001600160a01b03166000908152602091909152604090205460ff1690565b61054660018263ffffffff61064616565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b61058e60018263ffffffff61069216565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b0381166105eb5760405162461bcd60e51b815260040161020790610b44565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61065082826104ed565b1561066d5760405162461bcd60e51b815260040161020790610b34565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61069c82826104ed565b6106b85760405162461bcd60e51b815260040161020790610b64565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b803561024f81610bf5565b803561024f81610c09565b803561024f81610c12565b60006060828403121561070d57600080fd5b6107176060610b94565b9050600061072584846106da565b8252506020610736848483016106e5565b602083015250604061074a848285016106f0565b60408301525092915050565b6000610100828403121561076957600080fd5b50919050565b6000610100828403121561078257600080fd5b61078c6080610b94565b9050600061079a84846106da565b82525060206107ab848483016106e5565b60208301525060406107bf848285016106fb565b60408301525060a06107d3848285016106fb565b60608301525092915050565b805161024f81610c09565b6000602082840312156107fc57600080fd5b600061080884846106da565b949350505050565b60006020828403121561082257600080fd5b600061080884846106e5565b6000610100828403121561084157600080fd5b60006108088484610756565b600080610120838503121561086157600080fd5b600061086d8585610756565b92505061010061087f858286016106e5565b9150509250929050565b6000610100828403121561089c57600080fd5b6000610808848461076f565b6000602082840312156108ba57600080fd5b600061080884846107df565b6108cf81610bc4565b82525050565b6108cf6108e182610bc4565b610be3565b6108cf81610bcf565b6108cf81610bd4565b6000610905601f83610bbb565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b600061093e602683610bbb565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b6000610986603483610bbb565b7f4f70657261746f72526f6c653a2063616c6c657220646f6573206e6f74206861815273766520746865204f70657261746f7220726f6c6560601b602082015260400192915050565b60006109dc602183610bbb565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b6000610a1f602083610bbb565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000610a58602283610bbb565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6108cf610a9b82610bd4565b610bd4565b6000610aac82896108d5565b601482019150610abc82886108d5565b601482019150610acc8287610a8f565b602082019150610adc82866108d5565b601482019150610aec8285610a8f565b602082019150610afc8284610a8f565b506020019695505050505050565b6020810161024f82846108c6565b6020810161024f82846108e6565b6020810161024f82846108ef565b6020808252810161024f816108f8565b6020808252810161024f81610931565b6020808252810161024f81610979565b6020808252810161024f816109cf565b6020808252810161024f81610a12565b6020808252810161024f81610a4b565b60405181810167ffffffffffffffff81118282101715610bb357600080fd5b604052919050565b90815260200190565b600061024f82610bd7565b151590565b90565b6001600160a01b031690565b600061024f82600061024f8260601b90565b610bfe81610bc4565b811461036957600080fd5b610bfe81610bd4565b6006811061036957600080fdfea365627a7a7231582090c67c1989115cc6d87b32bb9b91b0e55dcc6a1af5022f7210e456814ab2deb96c6578706572696d656e74616cf564736f6c63430005100040