0x60806040523480156200001157600080fd5b506040516200117a3803806200117a833981810160405260a08110156200003757600080fd5b5080516020820151604083015160608401516080909401519293919290919060006200006b6001600160e01b036200024216565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038516620000fc5760405162461bcd60e51b815260040180806020018281038252602d81526020018062001122602d913960400191505060405180910390fd5b818311156200013d5760405162461bcd60e51b815260040180806020018281038252602b8152602001806200114f602b913960400191505060405180910390fd5b6000821162000193576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e56657374696e673a206475726174696f6e20697320300000000000604482015290519081900360640190fd5b42620001ae83866200024660201b6200079d1790919060201c565b11620001ec5760405162461bcd60e51b815260040180806020018281038252602f815260200180620010f3602f913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b0387161790556005805460ff1916821515179055600482905562000232848462000246602090811b6200079d17901c565b60025550505060035550620002a8565b3390565b600082820183811015620002a1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610e3b80620002b86000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063872a781011610071578063872a7810146101555780638da5cb5b146101715780639852595c14610179578063be9a65551461019f578063f2fde38b146101a7578063fa01dc06146101cd576100b4565b80630fb5a6b4146100b957806313d033c0146100d357806319165587146100db57806338af3eed14610103578063715018a61461012757806374a8f1031461012f575b600080fd5b6100c16101f3565b60408051918252519081900360200190f35b6100c16101f9565b610101600480360360208110156100f157600080fd5b50356001600160a01b03166101ff565b005b61010b610304565b604080516001600160a01b039092168252519081900360200190f35b610101610313565b6101016004803603602081101561014557600080fd5b50356001600160a01b03166103c7565b61015d610600565b604080519115158252519081900360200190f35b61010b610609565b6100c16004803603602081101561018f57600080fd5b50356001600160a01b0316610618565b6100c1610637565b610101600480360360208110156101bd57600080fd5b50356001600160a01b031661063d565b61015d600480360360208110156101e357600080fd5b50356001600160a01b0316610747565b60045490565b60025490565b600061020a82610765565b905060008111610261576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e56657374696e673a206e6f20746f6b656e73206172652064756500604482015290519081900360640190fd5b6001600160a01b03821660009081526006602052604090205461028a908263ffffffff61079d16565b6001600160a01b038084166000818152600660205260409020929092556001546102bc9291168363ffffffff6107fe16565b604080516001600160a01b03841681526020810183905281517fc7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179929181900390910190a15050565b6001546001600160a01b031690565b61031b610855565b6000546001600160a01b0390811691161461037d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6103cf610855565b6000546001600160a01b03908116911614610431576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60055460ff16610488576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e56657374696e673a2063616e6e6f74207265766f6b650000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff16156104e05760405162461bcd60e51b8152600401808060200182810382526023815260200180610de36023913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561052a57600080fd5b505afa15801561053e573d6000803e3d6000fd5b505050506040513d602081101561055457600080fd5b50519050600061056383610765565b90506000610577838363ffffffff61085916565b6001600160a01b0385166000908152600760205260409020805460ff1916600117905590506105be6105a7610609565b6001600160a01b038616908363ffffffff6107fe16565b604080516001600160a01b038616815290517f39983c6d4d174a7aee564f449d4a5c3c7ac9649d72b7793c56901183996f8af69181900360200190a150505050565b60055460ff1690565b6000546001600160a01b031690565b6001600160a01b0381166000908152600660205260409020545b919050565b60035490565b610645610855565b6000546001600160a01b039081169116146106a7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166106ec5760405162461bcd60e51b8152600401808060200182810382526026815260200180610d726026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b0381166000908152600660205260408120546107979061078b8461089b565b9063ffffffff61085916565b92915050565b6000828201838110156107f7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526108509084906109e0565b505050565b3390565b60006107f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b9e565b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156108e657600080fd5b505afa1580156108fa573d6000803e3d6000fd5b505050506040513d602081101561091057600080fd5b50516001600160a01b0384166000908152600660205260408120549192509061094090839063ffffffff61079d16565b905060025442101561095757600092505050610632565b60045460035461096c9163ffffffff61079d16565b4210158061099257506001600160a01b03841660009081526007602052604090205460ff165b156109a05791506106329050565b6109d76004546109cb6109be6003544261085990919063ffffffff16565b849063ffffffff610c3516565b9063ffffffff610c8e16565b92505050610632565b6109f2826001600160a01b0316610cd0565b610a43576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610a815780518252601f199092019160209182019101610a62565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ae3576040519150601f19603f3d011682016040523d82523d6000602084013e610ae8565b606091505b509150915081610b3f576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610b9857808060200190516020811015610b5b57600080fd5b5051610b985760405162461bcd60e51b815260040180806020018281038252602a815260200180610db9602a913960400191505060405180910390fd5b50505050565b60008184841115610c2d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bf2578181015183820152602001610bda565b50505050905090810190601f168015610c1f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082610c4457506000610797565b82820282848281610c5157fe5b04146107f75760405162461bcd60e51b8152600401808060200182810382526021815260200180610d986021913960400191505060405180910390fd5b60006107f783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d0c565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610d0457508115155b949350505050565b60008183610d5b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bf2578181015183820152602001610bda565b506000838581610d6757fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564546f6b656e56657374696e673a20746f6b656e20616c7265616479207265766f6b6564a2646970667358221220c4c636b30de938ba92cab9317aa36842591b0a73e5d92e1e15f3ed801ebd2c8964736f6c63430006020033546f6b656e56657374696e673a2066696e616c2074696d65206973206265666f72652063757272656e742074696d65546f6b656e56657374696e673a2062656e656669636961727920697320746865207a65726f2061646472657373546f6b656e56657374696e673a20636c696666206973206c6f6e676572207468616e206475726174696f6e00000000000000000000000097c080c8543051b7f10d78fba29c1d849d07dc4500000000000000000000000000000000000000000000000000000000611cddea000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000003722a60000000000000000000000000000000000000000000000000000000000000001
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063872a781011610071578063872a7810146101555780638da5cb5b146101715780639852595c14610179578063be9a65551461019f578063f2fde38b146101a7578063fa01dc06146101cd576100b4565b80630fb5a6b4146100b957806313d033c0146100d357806319165587146100db57806338af3eed14610103578063715018a61461012757806374a8f1031461012f575b600080fd5b6100c16101f3565b60408051918252519081900360200190f35b6100c16101f9565b610101600480360360208110156100f157600080fd5b50356001600160a01b03166101ff565b005b61010b610304565b604080516001600160a01b039092168252519081900360200190f35b610101610313565b6101016004803603602081101561014557600080fd5b50356001600160a01b03166103c7565b61015d610600565b604080519115158252519081900360200190f35b61010b610609565b6100c16004803603602081101561018f57600080fd5b50356001600160a01b0316610618565b6100c1610637565b610101600480360360208110156101bd57600080fd5b50356001600160a01b031661063d565b61015d600480360360208110156101e357600080fd5b50356001600160a01b0316610747565b60045490565b60025490565b600061020a82610765565b905060008111610261576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e56657374696e673a206e6f20746f6b656e73206172652064756500604482015290519081900360640190fd5b6001600160a01b03821660009081526006602052604090205461028a908263ffffffff61079d16565b6001600160a01b038084166000818152600660205260409020929092556001546102bc9291168363ffffffff6107fe16565b604080516001600160a01b03841681526020810183905281517fc7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179929181900390910190a15050565b6001546001600160a01b031690565b61031b610855565b6000546001600160a01b0390811691161461037d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6103cf610855565b6000546001600160a01b03908116911614610431576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60055460ff16610488576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e56657374696e673a2063616e6e6f74207265766f6b650000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff16156104e05760405162461bcd60e51b8152600401808060200182810382526023815260200180610de36023913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561052a57600080fd5b505afa15801561053e573d6000803e3d6000fd5b505050506040513d602081101561055457600080fd5b50519050600061056383610765565b90506000610577838363ffffffff61085916565b6001600160a01b0385166000908152600760205260409020805460ff1916600117905590506105be6105a7610609565b6001600160a01b038616908363ffffffff6107fe16565b604080516001600160a01b038616815290517f39983c6d4d174a7aee564f449d4a5c3c7ac9649d72b7793c56901183996f8af69181900360200190a150505050565b60055460ff1690565b6000546001600160a01b031690565b6001600160a01b0381166000908152600660205260409020545b919050565b60035490565b610645610855565b6000546001600160a01b039081169116146106a7576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166106ec5760405162461bcd60e51b8152600401808060200182810382526026815260200180610d726026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b0381166000908152600660205260408120546107979061078b8461089b565b9063ffffffff61085916565b92915050565b6000828201838110156107f7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526108509084906109e0565b505050565b3390565b60006107f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b9e565b604080516370a0823160e01b8152306004820152905160009182916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156108e657600080fd5b505afa1580156108fa573d6000803e3d6000fd5b505050506040513d602081101561091057600080fd5b50516001600160a01b0384166000908152600660205260408120549192509061094090839063ffffffff61079d16565b905060025442101561095757600092505050610632565b60045460035461096c9163ffffffff61079d16565b4210158061099257506001600160a01b03841660009081526007602052604090205460ff165b156109a05791506106329050565b6109d76004546109cb6109be6003544261085990919063ffffffff16565b849063ffffffff610c3516565b9063ffffffff610c8e16565b92505050610632565b6109f2826001600160a01b0316610cd0565b610a43576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310610a815780518252601f199092019160209182019101610a62565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ae3576040519150601f19603f3d011682016040523d82523d6000602084013e610ae8565b606091505b509150915081610b3f576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610b9857808060200190516020811015610b5b57600080fd5b5051610b985760405162461bcd60e51b815260040180806020018281038252602a815260200180610db9602a913960400191505060405180910390fd5b50505050565b60008184841115610c2d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bf2578181015183820152602001610bda565b50505050905090810190601f168015610c1f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082610c4457506000610797565b82820282848281610c5157fe5b04146107f75760405162461bcd60e51b8152600401808060200182810382526021815260200180610d986021913960400191505060405180910390fd5b60006107f783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d0c565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610d0457508115155b949350505050565b60008183610d5b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bf2578181015183820152602001610bda565b506000838581610d6757fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564546f6b656e56657374696e673a20746f6b656e20616c7265616479207265766f6b6564a2646970667358221220c4c636b30de938ba92cab9317aa36842591b0a73e5d92e1e15f3ed801ebd2c8964736f6c63430006020033