0x608060405234801561000f575f80fd5b5060405161078638038061078683398101604081905261002e9161006b565b5f8054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556003805461ffff19169055610098565b5f6020828403121561007b575f80fd5b81516001600160a01b0381168114610091575f80fd5b9392505050565b6106e1806100a55f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c806391cca3db1161006357806391cca3db1461010d5780639dfaff2f14610137578063a6f9dae114610144578063d56d229d14610157578063e5b128981461016a575f80fd5b8063023245d71461009f578063041e0185146100b45780630fff33f5146100bc5780632b7170d0146100e35780637992145e146100f6575b5f80fd5b6100b26100ad3660046105e6565b610172565b005b6100b26102e0565b6003546100ce90610100900460ff1681565b60405190151581526020015b60405180910390f35b6100b26100f13660046105e6565b61039c565b6100ff60025481565b6040519081526020016100da565b5f5461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100da565b6003546100ce9060ff1681565b6100b26101523660046105fd565b610485565b60015461011f906001600160a01b031681565b6100b2610525565b5f546001600160a01b031633146101a45760405162461bcd60e51b815260040161019b9061062a565b60405180910390fd5b60035460ff166101c65760405162461bcd60e51b815260040161019b90610661565b6002545f036102175760405162461bcd60e51b815260206004820152601b60248201527f5769746864726177616c206973206e6f74207472696767657265640000000000604482015260640161019b565b6002544210156102695760405162461bcd60e51b815260206004820181905260248201527f4c6f636b2d757020706572696f6420686173206e6f7420656e64656420796574604482015260640161019b565b6001546040516323b872dd60e01b8152306004820152336024820152604481018390526001600160a01b03909116906323b872dd906064015f604051808303815f87803b1580156102b8575f80fd5b505af11580156102ca573d5f803e3d5ffd5b5050600380545f60025561ffff19169055505050565b5f546001600160a01b031633146103095760405162461bcd60e51b815260040161019b9061062a565b60035460ff1661032b5760405162461bcd60e51b815260040161019b90610661565b6002541561037b5760405162461bcd60e51b815260206004820152601f60248201527f5769746864726177616c20697320616c72656164792074726967676572656400604482015260640161019b565b6103884262ed4e006105d2565b6002556003805461ff001916610100179055565b5f546001600160a01b031633146103c55760405162461bcd60e51b815260040161019b9061062a565b60035460ff16156104105760405162461bcd60e51b8152602060048201526015602482015274139195081a5cc8185b1c9958591e481b1bd8dad959605a1b604482015260640161019b565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064015f604051808303815f87803b15801561045f575f80fd5b505af1158015610471573d5f803e3d5ffd5b50506003805460ff19166001179055505050565b5f546001600160a01b031633146104ae5760405162461bcd60e51b815260040161019b9061062a565b6001600160a01b0381166105045760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206e6577206f776e6572206164647265737300000000000000604482015260640161019b565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461054e5760405162461bcd60e51b815260040161019b9061062a565b60035460ff166105705760405162461bcd60e51b815260040161019b90610661565b6002545f036105c15760405162461bcd60e51b815260206004820152601b60248201527f5769746864726177616c206973206e6f74207472696767657265640000000000604482015260640161019b565b5f6002556003805461ff0019169055565b5f6105dd828461068c565b90505b92915050565b5f602082840312156105f6575f80fd5b5035919050565b5f6020828403121561060d575f80fd5b81356001600160a01b0381168114610623575f80fd5b9392505050565b6020808252601f908201527f4f6e6c79206465762063616e2063616c6c20746869732066756e6374696f6e00604082015260600190565b602080825260119082015270139195081a5cc81b9bdd081b1bd8dad959607a1b604082015260600190565b808201808211156105e057634e487b7160e01b5f52601160045260245ffdfea264697066735822122098f91418d822e3d0111788bc384d49121fc328e54c87bfc6394b1216b4bab5bb64736f6c63430008140033000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88