0x608060405234801561001057600080fd5b50600180546001600160a01b0319163317905560408051808201909152601081526f48656c6c6f20436f7274656e736f722160801b602082015260009061005790826100fc565b506101bb565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061008757607f821691505b6020821081036100a757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100f757600081815260208120601f850160051c810160208610156100d45750805b601f850160051c820191505b818110156100f3578281556001016100e0565b5050505b505050565b81516001600160401b038111156101155761011561005d565b610129816101238454610073565b846100ad565b602080601f83116001811461015e57600084156101465750858301515b600019600386901b1c1916600185901b1785556100f3565b600085815260208120601f198616915b8281101561018d5788860151825594840194600190910190840161016e565b50858210156101ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61092f806101ca6000396000f3fe6080604052600436106100795760003560e01c80638da5cb5b1161004b5780638da5cb5b14610122578063d0e30db01461015a578063e21f37ce14610162578063f8b2cb4f1461018457005b80631923be241461008257806327e235e3146100a25780632e1a7d4d146100e25780636ff1c9bc1461010257005b3661008057005b005b34801561008e57600080fd5b5061008061009d36600461061a565b6101ba565b3480156100ae57600080fd5b506100cf6100bd3660046106e3565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156100ee57600080fd5b506100806100fd366004610707565b610260565b34801561010e57600080fd5b5061008061011d3660046106e3565b61039d565b34801561012e57600080fd5b50600154610142906001600160a01b031681565b6040516001600160a01b0390911681526020016100d9565b61008061051b565b34801561016e57600080fd5b50610177610576565b6040516100d99190610720565b34801561019057600080fd5b506100cf61019f3660046106e3565b6001600160a01b031660009081526002602052604090205490565b6001546001600160a01b031633146102195760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206f776e65722063616e20757064617465206d65737361676500000060448201526064015b60405180910390fd5b600061022582826107f7565b507f8fae638bf5c6396194a6bb16601c4035a07fa48191638ff4102f0d96f14cfefb816040516102559190610720565b60405180910390a150565b336000908152600260205260409020548111156102b65760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610210565b33600090815260026020526040812080548392906102d59084906108cd565b9091555050604051600090339083908381818185875af1925050503d806000811461031c576040519150601f19603f3d011682016040523d82523d6000602084013e610321565b606091505b50509050806103645760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610210565b60405182815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a25050565b6001546001600160a01b031633146103f75760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e2077697468647261770000000000000000006044820152606401610210565b478061043e5760405162461bcd60e51b81526020600482015260166024820152754e6f2062616c616e636520746f20776974686472617760501b6044820152606401610210565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461048b576040519150601f19603f3d011682016040523d82523d6000602084013e610490565b606091505b50509050806104d35760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610210565b826001600160a01b03167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd96958360405161050e91815260200190565b60405180910390a2505050565b336000908152600260205260408120805434929061053a9084906108e6565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546105839061076e565b80601f01602080910402602001604051908101604052809291908181526020018280546105af9061076e565b80156105fc5780601f106105d1576101008083540402835291602001916105fc565b820191906000526020600020905b8154815290600101906020018083116105df57829003601f168201915b505050505081565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561062c57600080fd5b813567ffffffffffffffff8082111561064457600080fd5b818401915084601f83011261065857600080fd5b81358181111561066a5761066a610604565b604051601f8201601f19908116603f0116810190838211818310171561069257610692610604565b816040528281528760208487010111156106ab57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6001600160a01b03811681146106e057600080fd5b50565b6000602082840312156106f557600080fd5b8135610700816106cb565b9392505050565b60006020828403121561071957600080fd5b5035919050565b600060208083528351808285015260005b8181101561074d57858101830151858201604001528201610731565b506000604082860101526040601f19601f8301168501019250505092915050565b600181811c9082168061078257607f821691505b6020821081036107a257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156107f257600081815260208120601f850160051c810160208610156107cf5750805b601f850160051c820191505b818110156107ee578281556001016107db565b5050505b505050565b815167ffffffffffffffff81111561081157610811610604565b6108258161081f845461076e565b846107a8565b602080601f83116001811461085a57600084156108425750858301515b600019600386901b1c1916600185901b1785556107ee565b600085815260208120601f198616915b828110156108895788860151825594840194600190910190840161086a565b50858210156108a75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b818103818111156108e0576108e06108b7565b92915050565b808201808211156108e0576108e06108b756fea264697066735822122082e952e70d99f337ea3002c8ccc9e4bc0477f179a170ab243b84589a3907099064736f6c63430008140033