0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063715018a61161005b578063715018a6146100fd5780638da5cb5b14610105578063eedc966a14610129578063f2fde38b1461014f5761007d565b8063226125a814610082578063356442b9146100a1578063604ad739146100bb575b600080fd5b61009f6004803603602081101561009857600080fd5b5035610175565b005b6100a96101ee565b60408051918252519081900360200190f35b61009f600480360360a08110156100d157600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356101f4565b61009f6102c7565b61010d61039d565b604080516001600160a01b039092168252519081900360200190f35b6100a96004803603602081101561013f57600080fd5b50356001600160a01b03166103ac565b61009f6004803603602081101561016557600080fd5b50356001600160a01b031661042d565b61017d610559565b6001600160a01b031661018e61039d565b6001600160a01b0316146101e9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600155565b60015481565b6101fc610559565b6001600160a01b031661020d61039d565b6001600160a01b031614610268576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600061028a60646102846001548561055d90919063ffffffff16565b906105bf565b90506102ab8561029a8484610626565b6001600160a01b0389169190610683565b80156102bf576102bd86858386610708565b505b505050505050565b6102cf610559565b6001600160a01b03166102e061039d565b6001600160a01b03161461033b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031690565b6000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156103fb57600080fd5b505afa15801561040f573d6000803e3d6000fd5b505050506040513d602081101561042557600080fd5b505192915050565b610435610559565b6001600160a01b031661044661039d565b6001600160a01b0316146104a1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104e65760405162461bcd60e51b8152600401808060200182810382526026815260200180610d2b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3390565b60008261056c575060006105b9565b8282028284828161057957fe5b04146105b65760405162461bcd60e51b8152600401808060200182810382526021815260200180610da76021913960400191505060405180910390fd5b90505b92915050565b6000808211610615576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161061e57fe5b049392505050565b60008282111561067d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526107039084906108e2565b505050565b600061071e6001600160a01b0386168585610993565b6000846001600160a01b0316604051806060016040528060308152602001610d51603091398051602091820120604080516001600160a01b038b1660248201526044810189905230606482015260848082018990528251808303909101815260a4909101825292830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092178252518251909182918083835b6020831061081957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107dc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461087b576040519150601f19603f3d011682016040523d82523d6000602084013e610880565b606091505b50509050806108d6576040805162461bcd60e51b815260206004820152601f60248201527f5370656e6465722d2072656365697665417070726f76616c206661696c656400604482015290519081900360640190fd5b50600195945050505050565b6060610937826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610aed9092919063ffffffff16565b8051909150156107035780806020019051602081101561095657600080fd5b50516107035760405162461bcd60e51b815260040180806020018281038252602a815260200180610dc8602a913960400191505060405180910390fd5b801580610a325750604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015610a0457600080fd5b505afa158015610a18573d6000803e3d6000fd5b505050506040513d6020811015610a2e57600080fd5b5051155b610a6d5760405162461bcd60e51b8152600401808060200182810382526036815260200180610df26036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790526107039084906108e2565b6060610afc8484600085610b06565b90505b9392505050565b606082471015610b475760405162461bcd60e51b8152600401808060200182810382526026815260200180610d816026913960400191505060405180910390fd5b610b5085610c80565b610ba1576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610bfe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610bc1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610c60576040519150601f19603f3d011682016040523d82523d6000602084013e610c65565b606091505b5091509150610c75828286610c86565b979650505050505050565b3b151590565b60608315610c95575081610aff565b825115610ca55782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cef578181015183820152602001610cd7565b50505050905090810190601f168015610d1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737372656365697665417070726f76616c28616464726573732c75696e743235362c616464726573732c75696e7432353629416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212207f7e36ef00b1e29cdf04f8608f80c186b1d63b41693ae61f8859e7e4c7088b0f64736f6c634300060c0033
0x6080604052604360015534801561001557600080fd5b50600061002061006f565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610073565b3390565b610e5d806100826000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063715018a61161005b578063715018a6146100fd5780638da5cb5b14610105578063eedc966a14610129578063f2fde38b1461014f5761007d565b8063226125a814610082578063356442b9146100a1578063604ad739146100bb575b600080fd5b61009f6004803603602081101561009857600080fd5b5035610175565b005b6100a96101ee565b60408051918252519081900360200190f35b61009f600480360360a08110156100d157600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001356101f4565b61009f6102c7565b61010d61039d565b604080516001600160a01b039092168252519081900360200190f35b6100a96004803603602081101561013f57600080fd5b50356001600160a01b03166103ac565b61009f6004803603602081101561016557600080fd5b50356001600160a01b031661042d565b61017d610559565b6001600160a01b031661018e61039d565b6001600160a01b0316146101e9576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600155565b60015481565b6101fc610559565b6001600160a01b031661020d61039d565b6001600160a01b031614610268576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600061028a60646102846001548561055d90919063ffffffff16565b906105bf565b90506102ab8561029a8484610626565b6001600160a01b0389169190610683565b80156102bf576102bd86858386610708565b505b505050505050565b6102cf610559565b6001600160a01b03166102e061039d565b6001600160a01b03161461033b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031690565b6000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156103fb57600080fd5b505afa15801561040f573d6000803e3d6000fd5b505050506040513d602081101561042557600080fd5b505192915050565b610435610559565b6001600160a01b031661044661039d565b6001600160a01b0316146104a1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104e65760405162461bcd60e51b8152600401808060200182810382526026815260200180610d2b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3390565b60008261056c575060006105b9565b8282028284828161057957fe5b04146105b65760405162461bcd60e51b8152600401808060200182810382526021815260200180610da76021913960400191505060405180910390fd5b90505b92915050565b6000808211610615576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161061e57fe5b049392505050565b60008282111561067d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526107039084906108e2565b505050565b600061071e6001600160a01b0386168585610993565b6000846001600160a01b0316604051806060016040528060308152602001610d51603091398051602091820120604080516001600160a01b038b1660248201526044810189905230606482015260848082018990528251808303909101815260a4909101825292830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092178252518251909182918083835b6020831061081957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107dc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461087b576040519150601f19603f3d011682016040523d82523d6000602084013e610880565b606091505b50509050806108d6576040805162461bcd60e51b815260206004820152601f60248201527f5370656e6465722d2072656365697665417070726f76616c206661696c656400604482015290519081900360640190fd5b50600195945050505050565b6060610937826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610aed9092919063ffffffff16565b8051909150156107035780806020019051602081101561095657600080fd5b50516107035760405162461bcd60e51b815260040180806020018281038252602a815260200180610dc8602a913960400191505060405180910390fd5b801580610a325750604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015610a0457600080fd5b505afa158015610a18573d6000803e3d6000fd5b505050506040513d6020811015610a2e57600080fd5b5051155b610a6d5760405162461bcd60e51b8152600401808060200182810382526036815260200180610df26036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790526107039084906108e2565b6060610afc8484600085610b06565b90505b9392505050565b606082471015610b475760405162461bcd60e51b8152600401808060200182810382526026815260200180610d816026913960400191505060405180910390fd5b610b5085610c80565b610ba1576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610bfe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610bc1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610c60576040519150601f19603f3d011682016040523d82523d6000602084013e610c65565b606091505b5091509150610c75828286610c86565b979650505050505050565b3b151590565b60608315610c95575081610aff565b825115610ca55782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cef578181015183820152602001610cd7565b50505050905090810190601f168015610d1c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737372656365697665417070726f76616c28616464726573732c75696e743235362c616464726573732c75696e7432353629416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212207f7e36ef00b1e29cdf04f8608f80c186b1d63b41693ae61f8859e7e4c7088b0f64736f6c634300060c0033