60806040523480156200001157600080fd5b506040516200114138038062001141833981810160405260c08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b506040908152602082810151918301516060840151608090940151885193965090945091620001ce916000919089019062000275565b508451620001e490600190602088019062000275565b506002805460ff191660ff861617905560078054610100600160a81b0319166101006001600160a01b038681169190910291909117909155821660008181526004602090815260408083208590556003859055805185815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350505050505062000311565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002b857805160ff1916838001178555620002e8565b82800160010185558215620002e8579182015b82811115620002e8578251825591602001919060010190620002cb565b50620002f6929150620002fa565b5090565b5b80821115620002f65760008155600101620002fb565b610e2080620003216000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806342966c6811610097578063748365ef11610066578063748365ef146102de57806395d89b4114610302578063a9059cbb1461030a578063dd62ed3e1461033657610100565b806342966c681461028b57806351955a0e146102a857806370a08231146102b057806374601c3c146102d657610100565b806323b872dd116100d357806323b872dd14610203578063313ce56714610239578063355274ea1461025757806340c10f191461025f57610100565b806306fdde0314610105578063095ea7b314610182578063156d3a46146101c257806318160ddd146101e9575b600080fd5b61010d610364565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103fa565b604080519115158252519081900360200190f35b6101e7600480360360408110156101d857600080fd5b5080359060200135151561048a565b005b6101f1610648565b60408051918252519081900360200190f35b6101ae6004803603606081101561021957600080fd5b506001600160a01b03813581169160208101359091169060400135610685565b6102416107a7565b6040805160ff9092168252519081900360200190f35b6101f16107b0565b6101ae6004803603604081101561027557600080fd5b506001600160a01b0381351690602001356107b6565b6101ae600480360360208110156102a157600080fd5b5035610954565b6101ae6109dc565b6101f1600480360360208110156102c657600080fd5b50356001600160a01b03166109e5565b6101f1610a00565b6102e6610aea565b604080516001600160a01b039092168252519081900360200190f35b61010d610afe565b6101ae6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610b5f565b6101f16004803603604081101561034c57600080fd5b506001600160a01b0381358116916020013516610c12565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156103ef5780601f106103c4576101008083540402835291602001916103ef565b820191906000526020600020905b8154815290600101906020018083116103d257829003601f168201915b505050505090505b90565b60008160056000610409610c3d565b6001600160a01b0390811682526020808301939093526040918201600090812091881680825291909352912091909155610441610c3d565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a350600192915050565b60075461010090046001600160a01b031663c395fcb36104a8610c3d565b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156104e557600080fd5b505afa1580156104f9573d6000803e3d6000fd5b505050506040513d602081101561050f57600080fd5b505161054c5760405162461bcd60e51b8152600401808060200182810382526021815260200180610dca6021913960400191505060405180910390fd5b808061055a57506003548210155b6105ab576040805162461bcd60e51b815260206004820152601960248201527f436170206c657373207468616e20746f74616c537570706c7900000000000000604482015290519081900360640190fd5b60075460ff16156105f0576040805162461bcd60e51b815260206004820152600a60248201526921b0b810333937bd32b760b11b604482015290519081900360640190fd5b6007805460ff1916821515179081905560068390556040805184815260ff9092161515602083015280517f5ccbef86c2b45d438491635b517911230f8ef84521dd19d85290980f9d0e6d859281900390910190a15050565b600080805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5460035461068091610c41565b905090565b6001600160a01b0383166000908152600460205260408120546106a89083610c41565b6001600160a01b038516600090815260046020908152604080832093909355600590529081206106fd918491906106dd610c3d565b6001600160a01b0316815260208101919091526040016000205490610c41565b6001600160a01b03851660009081526005602052604081209061071e610c3d565b6001600160a01b03908116825260208083019390935260409182016000908120949094558616835260049091529020546107589083610c8a565b6001600160a01b038085166000818152600460209081526040918290209490945580518681529051919392881692600080516020610daa83398151915292918290030190a35060019392505050565b60025460ff1690565b60065481565b60075460009061010090046001600160a01b031663099db0176107d7610c3d565b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561081457600080fd5b505afa158015610828573d6000803e3d6000fd5b505050506040513d602081101561083e57600080fd5b505161087b5760405162461bcd60e51b815260040180806020018281038252602e815260200180610d7c602e913960400191505060405180910390fd5b60065415806108905750600654826003540111155b6108d0576040805162461bcd60e51b815260206004820152600c60248201526b10d85c08195e18d95959195960a21b604482015290519081900360640190fd5b6001600160a01b0383166000908152600460205260409020546108f39083610c8a565b6001600160a01b0384166000908152600460205260409020556003546109199083610c8a565b6003556040805183815290516001600160a01b03851691600091600080516020610daa8339815191529181900360200190a350600192915050565b600061096682600460006106dd610c3d565b60046000610972610c3d565b6001600160a01b031681526020810191909152604001600020556003546109999083610c41565b60035560006109a6610c3d565b6001600160a01b0316600080516020610daa833981519152846040518082815260200191505060405180910390a3506001919050565b60075460ff1681565b6001600160a01b031660009081526004602052604090205490565b60075460009061010090046001600160a01b031663099db017610a21610c3d565b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a5e57600080fd5b505afa158015610a72573d6000803e3d6000fd5b505050506040513d6020811015610a8857600080fd5b5051156103f75760065415610ae3576000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec54600354610adc91610ad39190610c41565b60065490610c41565b90506103f7565b5060001990565b60075461010090046001600160a01b031681565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103ef5780601f106103c4576101008083540402835291602001916103ef565b6000610b7182600460006106dd610c3d565b60046000610b7d610c3d565b6001600160a01b0390811682526020808301939093526040918201600090812094909455861683526004909152902054610bb79083610c8a565b6001600160a01b038416600081815260046020526040902091909155610bdb610c3d565b6001600160a01b0316600080516020610daa833981519152846040518082815260200191505060405180910390a350600192915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3390565b6000610c8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce4565b9392505050565b600082820183811015610c83576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115610d735760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d38578181015183820152602001610d20565b50505050905090810190601f168015610d655780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4d4f4e412e6d696e743a2053656e646572206d7573742068617665207065726d697373696f6e20746f206d696e74ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4d4f4e412e7365744361703a2053656e646572206d7573742062652061646d696ea264697066735822122002d5822b424f47668d72a080a60ffced4b12502fbb0dcac47e5f90a39a36c58464736f6c634300060c003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001200000000000000000000000003df7f2b0904a92c754178874796fa64aaf8a762000000000000000000000000eff2dd24930d5eda4720af333a55dbb1cfa4ed2d0000000000000000000000000000000000000000000000410d586a20a4c0000000000000000000000000000000000000000000000000000000000000000000044d4f4e410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084d6f6e6176616c65000000000000000000000000000000000000000000000000