608060405234801561001057600080fd5b50610916806100206000396000f3fe6080604052600436106100225760003560e01c80637fe8e72c1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f61005436600461068c565b61006b565b61006961006461016f565b6101f6565b565b6000610077600161021a565b905080156100af57600161009f61009c8260008051602061087a83398151915261074f565b90565b805460ff19169115159190911790555b6100da60017fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5161074f565b60008051602061085a833981519152146100f6576100f6610774565b610102838360006102ee565b801561016a57600061012661009c600160008051602061087a83398151915261074f565b805460ff1916911515919091179055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600061019060008051602061085a833981519152546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f1919061078a565b905090565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b600061023861009c600160008051602061087a83398151915261074f565b5460ff1615610287578160ff16600114801561025a5750610258306103ae565b155b61027f5760405162461bcd60e51b8152600401610276906107a7565b60405180910390fd5b506000919050565b60ff82166102a761009c600160008051602061089a83398151915261074f565b54106102c55760405162461bcd60e51b8152600401610276906107a7565b60ff82166102e561009c600160008051602061089a83398151915261074f565b55506001919050565b6102f7836103bd565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a26000825111806103385750805b1561016a576103a8836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a2919061078a565b8361051e565b50505050565b6001600160a01b03163b151590565b6103c6816103ae565b6104205760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b6064820152608401610276565b61048a816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610461573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610485919061078a565b6103ae565b6104ef5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610276565b60008051602061085a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b606061054383836040518060600160405280602781526020016108ba6027913961054a565b9392505050565b6060610555846103ae565b6105b05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610276565b600080856001600160a01b0316856040516105cb919061080a565b600060405180830381855af49150503d8060008114610606576040519150601f19603f3d011682016040523d82523d6000602084013e61060b565b606091505b509150915061061b828286610625565b9695505050505050565b60608315610634575081610543565b8251156106445782518084602001fd5b8160405162461bcd60e51b81526004016102769190610826565b6001600160a01b038116811461067357600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561069f57600080fd5b82356106aa8161065e565b915060208301356001600160401b03808211156106c657600080fd5b818501915085601f8301126106da57600080fd5b8135818111156106ec576106ec610676565b604051601f8201601f19908116603f0116810190838211818310171561071457610714610676565b8160405282815288602084870101111561072d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008282101561076f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b60006020828403121561079c57600080fd5b81516105438161065e565b6020808252601f908201527f636f6e747261637420697320616c726561647920696e697469616c697a656400604082015260600190565b60005b838110156107f95781810151838201526020016107e1565b838111156103a85750506000910152565b6000825161081c8184602087016107de565b9190910192915050565b60208152600082518060208401526108458160408501602087016107de565b601f01601f1916919091016040019291505056fea3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50ba701f97ffd09be973ab0487da5ef9921c2bd0aad55202b3c0b41745a8ecda29021cb2f443fd62c4cb6b5d341f5eb8cd045222fc4183f8753d3725ac19741805416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b9160d7d2c1102ca8191ecd78f04d42a9f497feb44eb9ea5596cee55560cbe9964736f6c634300080a0033