60806040526001805460ff60a81b1960ff60a01b19909116600160a01b1716600160a81b1790553480156200003357600080fd5b5060405162000f5138038062000f5183398181016040526101808110156200005a57600080fd5b81516020830151604080850151606086015160808701805193519597949692959194919392820192846401000000008211156200009657600080fd5b908301906020820185811115620000ac57600080fd5b8251640100000000811182820188101715620000c757600080fd5b82525081516020918201929091019080838360005b83811015620000f6578181015183820152602001620000dc565b50505050905090810190601f168015620001245780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200014857600080fd5b9083019060208201858111156200015e57600080fd5b82516401000000008111828201881017156200017957600080fd5b82525081516020918201929091019080838360005b83811015620001a85781810151838201526020016200018e565b50505050905090810190601f168015620001d65780820380516001836020036101000a031916815260200191505b506040818152602083015190830151606084015160809094018051929691959192846401000000008211156200020b57600080fd5b9083019060208201858111156200022157600080fd5b82516401000000008111828201881017156200023c57600080fd5b82525081516020918201929091019080838360005b838110156200026b57818101518382015260200162000251565b50505050905090810190601f168015620002995780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919050505033600160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506200046d848d8d8d8d8d8d8d8a8a604051602401808a6001600160a01b03166001600160a01b03168152602001896001600160a01b03166001600160a01b03168152602001886001600160a01b03166001600160a01b0316815260200187815260200180602001806020018660ff1660ff168152602001858152602001848152602001838103835288818151815260200191508051906020019080838360005b83811015620003985781810151838201526020016200037e565b50505050905090810190601f168015620003c65780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b83811015620003fb578181015183820152602001620003e1565b50505050905090810190601f168015620004295780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03908116630867bd9760e21b17909152909c50620004b8169a5050505050505050505050565b5062000485846000856001600160e01b036200057f16565b5050600180546001600160a01b0319166001600160a01b03949094169390931790925550620007c1975050505050505050565b606060006060846001600160a01b0316846040518082805190602001908083835b60208310620004fa5780518252601f199092019160209182019101620004d9565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146200055c576040519150601f19603f3d011682016040523d82523d6000602084013e62000561565b606091505b5091509150600082141562000577573d60208201fd5b949350505050565b620005926001600160e01b036200073716565b620005cf5760405162461bcd60e51b815260040180806020018281038252603981526020018062000f186039913960400191505060405180910390fd5b811562000611576040805160048152602481019091526020810180516001600160e01b0390811663153ab50560e01b179091526200060f91906200079716565b505b600080546001600160a01b038581166001600160a01b031983161783556040516020602482018181528651604484015286519390941694620006e89487949093849360649091019290860191908190849084905b838110156200067f57818101518382015260200162000665565b50505050905090810190601f168015620006ad5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03908116630adccee560e31b179091529093506200079716915050565b50600054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a150505050565b6001546000906001600160a01b0316331480156200075e5750600154600160a81b900460ff165b806200079257503373a731585ab05fc9f83555cf9bff8f58ee94e18f85148015620007925750600154600160a01b900460ff165b905090565b600054606090620007bb906001600160a01b0316836001600160e01b03620004b816565b92915050565b61074780620007d16000396000f3fe6080604052600436106100555760003560e01c80630933c1ed146101155780630a755ec21461023d5780632f1069ba14610266578063555bcc401461027b5780635c60da1b14610347578063f851a44014610378575b34156100925760405162461bcd60e51b81526004018080602001828103825260378152602001806106a36037913960400191505060405180910390fd5b600080546040516001600160a01b0390911690829036908083838082843760405192019450600093509091505080830381855af49150503d80600081146100f5576040519150601f19603f3d011682016040523d82523d6000602084013e6100fa565b606091505b505090506040513d6000823e818015610111573d82f35b3d82fd5b34801561012157600080fd5b506101c86004803603602081101561013857600080fd5b81019060208101813564010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184600183028401116401000000008311171561018757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061038d945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102025781810151838201526020016101ea565b50505050905090810190601f16801561022f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024957600080fd5b506102526103ac565b604080519115158252519081900360200190f35b34801561027257600080fd5b506102526103bc565b34801561028757600080fd5b506103456004803603606081101561029e57600080fd5b6001600160a01b038235169160208101351515918101906060810160408201356401000000008111156102d057600080fd5b8201836020820111156102e257600080fd5b8035906020019184600183028401116401000000008311171561030457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103cc945050505050565b005b34801561035357600080fd5b5061035c610565565b604080516001600160a01b039092168252519081900360200190f35b34801561038457600080fd5b5061035c610574565b6000546060906103a6906001600160a01b031683610583565b92915050565b600154600160a81b900460ff1681565b600154600160a01b900460ff1681565b6103d4610645565b61040f5760405162461bcd60e51b81526004018080602001828103825260398152602001806106da6039913960400191505060405180910390fd5b8115610449576040805160048152602481019091526020810180516001600160e01b031663153ab50560e01b1790526104479061038d565b505b600080546001600160a01b038581166001600160a01b0319831617835560405160206024820181815286516044840152865193909416946105169487949093849360649091019290860191908190849084905b838110156104b457818101518382015260200161049c565b50505050905090810190601f1680156104e15780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b0316630adccee560e31b179052925061038d915050565b50600054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a150505050565b6000546001600160a01b031681565b6001546001600160a01b031681565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106105c35780518252601f1990920191602091820191016105a4565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610623576040519150601f19603f3d011682016040523d82523d6000602084013e610628565b606091505b5091509150600082141561063d573d60208201fd5b949350505050565b6001546000906001600160a01b03163314801561066b5750600154600160a81b900460ff165b8061069d57503373a731585ab05fc9f83555cf9bff8f58ee94e18f8514801561069d5750600154600160a01b900460ff165b90509056fe43457263323044656c656761746f723a66616c6c6261636b3a2063616e6e6f742073656e642076616c756520746f2066616c6c6261636b43457263323044656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2043616c6c6572206d7573742062652061646d696ea265627a7a723158203c5dd39c6cdb77d0c6fc773130109b6d43ee6f47b09206c3d819f2edc3a74a3264736f6c6343000511003243457263323044656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2043616c6c6572206d7573742062652061646d696e00000000000000000000000004f2694c8fcee23e8fd0dfea1d4f5bb8c352111f000000000000000000000000814b02c1ebc9164972d888495927fe1697f0fb4c000000000000000000000000cdc0a449e011249482824effcfa05c883d36cfc700000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000080000000000000000000000004702d39c499236a43654c54783c3f24830e247dc00000000000000000000000067e70eeb9dd170f7b4a9ef620720c9069d5e706c0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b467573652d3620734f484d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000766362d734f484d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000