0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80636ff1c9bc11610097578063bedb86fb11610066578063bedb86fb14610376578063ce5b7a0414610395578063f39c38a0146103bb578063f7c618c1146103c3576100f5565b80636ff1c9bc146102cf5780638456cb59146102f5578063b75a572314610311578063b81b863014610337576100f5565b80633ccfd60b116100d35780633ccfd60b14610162578063464485481461016a5780634f7565d8146102a35780635aa6e675146102ab576100f5565b80630abb6035146100fa5780631f3a71ba14610122578063238efcbc1461015a575b600080fd5b6101206004803603602081101561011057600080fd5b50356001600160a01b03166103cb565b005b6101486004803603602081101561013857600080fd5b50356001600160a01b03166104ad565b60408051918252519081900360200190f35b6101206104e0565b610120610580565b6101206004803603608081101561018057600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101ab57600080fd5b8201836020820111156101bd57600080fd5b803590602001918460208302840111640100000000831117156101df57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561022f57600080fd5b82018360208201111561024157600080fd5b8035906020019184602083028401116401000000008311171561026357600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050913592506106f2915050565b61014861094c565b6102b3610952565b604080516001600160a01b039092168252519081900360200190f35b610120600480360360208110156102e557600080fd5b50356001600160a01b0316610961565b6102fd610adb565b604080519115158252519081900360200190f35b6101486004803603602081101561032757600080fd5b50356001600160a01b0316610ae4565b61035d6004803603602081101561034d57600080fd5b50356001600160a01b0316610b03565b6040805192835260208301919091528051918290030190f35b6101206004803603602081101561038c57600080fd5b50351515610b1c565b610148600480360360208110156103ab57600080fd5b50356001600160a01b0316610b78565b6102b3610b93565b6102b3610ba2565b6002546001600160a01b031633146104145760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b6001600160a01b0381166104595760405162461bcd60e51b815260040180806020018281038252603c81526020018061100d603c913960400191505060405180910390fd5b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fc9e2377236eab4280090ce8f2317332649736d92f00dcf20a8dd6684ec5e78399181900360200190a150565b6001600160a01b0381166000908152600160208190526040822090810154905482916104d99190610bb1565b9392505050565b6003546001600160a01b031633146105295760405162461bcd60e51b815260040180806020018281038252602b815260200180610fbc602b913960400191505060405180910390fd5b600354600280546001600160a01b0319166001600160a01b0390921691821790556040805182815290517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab9181900360200190a150565b3360008181526001602052604090205460055460ff16156105d25760405162461bcd60e51b815260040180806020018281038252602381526020018061107b6023913960400191505060405180910390fd5b6004544210156106135760405162461bcd60e51b815260040180806020018281038252602181526020018061114c6021913960400191505060405180910390fd5b8061061d836104ad565b101561065a5760405162461bcd60e51b815260040180806020018281038252603181526020018061109e6031913960400191505060405180910390fd5b6001600160a01b038216600090815260016020819052604090912001546106819082610c0e565b6001600160a01b0380841660009081526001602081905260408220019290925590546106af91168383610c68565b6040805182815290516001600160a01b038416917f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241919081900360200190a25050565b6002546001600160a01b0316331461073b5760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0386161790556004819055815183511461079b5760405162461bcd60e51b815260040180806020018281038252602e815260200180610f8e602e913960400191505060405180910390fd5b60005b83518110156109455760006001600160a01b03168482815181106107be57fe5b60200260200101516001600160a01b0316141561080c5760405162461bcd60e51b81526004018080602001828103825260328152602001806110496032913960400191505060405180910390fd5b600083828151811061081a57fe5b60200260200101511161085e5760405162461bcd60e51b81526004018080602001828103825260308152602001806110cf6030913960400191505060405180910390fd5b604051806040016040528084838151811061087557fe5b6020026020010151815260200160008152506001600086848151811061089757fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101559050508381815181106108e257fe5b60200260200101516001600160a01b03167fffa04f92c77aee2e6205321c105ef950e1ef73168fccac4351301fae9b7db4e884838151811061092057fe5b60200260200101516040518082815260200191505060405180910390a260010161079e565b5050505050565b60045481565b6002546001600160a01b031681565b6002546001600160a01b031633146109aa5760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b60055460ff161515600114610a06576040805162461bcd60e51b815260206004820152601e60248201527f4c6f636b6572446973747269627574696f6e3a206e6f74207061757365640000604482015290519081900360640190fd5b60008054604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610a5257600080fd5b505afa158015610a66573d6000803e3d6000fd5b505050506040513d6020811015610a7c57600080fd5b5051600054909150610a98906001600160a01b03168383610c68565b6040805182815290516001600160a01b038416917f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e1337919081900360200190a25050565b60055460ff1681565b6001600160a01b03166000908152600160208190526040909120015490565b6001602081905260009182526040909120805491015482565b6002546001600160a01b03163314610b655760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b6005805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205490565b6003546001600160a01b031681565b6000546001600160a01b031681565b600082821115610c08576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156104d9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610cba908490610cbf565b505050565b6060610d14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d709092919063ffffffff16565b805190915015610cba57808060200190516020811015610d3357600080fd5b5051610cba5760405162461bcd60e51b815260040180806020018281038252602a815260200180611122602a913960400191505060405180910390fd5b6060610d7f8484600085610d87565b949350505050565b606082471015610dc85760405162461bcd60e51b8152600401808060200182810382526026815260200180610fe76026913960400191505060405180910390fd5b610dd185610ee3565b610e22576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610e615780518252601f199092019160209182019101610e42565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610ec3576040519150601f19603f3d011682016040523d82523d6000602084013e610ec8565b606091505b5091509150610ed8828286610ee9565b979650505050505050565b3b151590565b60608315610ef85750816104d9565b825115610f085782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f52578181015183820152602001610f3a565b50505050905090810190601f168015610f7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4c6f636b6572446973747269627574696f6e3a20616c6c6f636174696f6e206c656e677468206d69736d617463684c6f636b6572446973747269627574696f6e3a206f6e6c792070656e64696e6720676f7665726e616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4c6f636b6572446973747269627574696f6e3a2070656e64696e6720676f7665726e616e636520616464726573732063616e6e6f74206265203078304c6f636b6572446973747269627574696f6e3a20726563697069656e742063616e6e6f74206265203020616464726573732e4c6f636b6572446973747269627574696f6e3a207769746864726177207061757365644c6f636b6572446973747269627574696f6e3a20696e73756666696369656e74206176616c69626c652062616c616e63654c6f636b6572446973747269627574696f6e3a2063616e6e6f7420616c6c6f63617465207a65726f20616d6f756e742e4c6f636b6572446973747269627574696f6e3a206f6e6c7920676f7665726e616e63655361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565644c6f636b6572446973747269627574696f6e3a206e6f7420737461727420796574a26469706673582212204ad41509ede1ac2c1f07ebe54c5116288ac354adeb5316b4e4c68010f0c25d0864736f6c634300060c0033
0x608060405234801561001057600080fd5b5060405161128c38038061128c8339818101604052602081101561003357600080fd5b50516001600160a01b03811661007a5760405162461bcd60e51b81526004018080602001828103825260348152602001806112586034913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b03929092169190911790556005805460ff191660011790556111a2806100b66000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636ff1c9bc11610097578063bedb86fb11610066578063bedb86fb14610376578063ce5b7a0414610395578063f39c38a0146103bb578063f7c618c1146103c3576100f5565b80636ff1c9bc146102cf5780638456cb59146102f5578063b75a572314610311578063b81b863014610337576100f5565b80633ccfd60b116100d35780633ccfd60b14610162578063464485481461016a5780634f7565d8146102a35780635aa6e675146102ab576100f5565b80630abb6035146100fa5780631f3a71ba14610122578063238efcbc1461015a575b600080fd5b6101206004803603602081101561011057600080fd5b50356001600160a01b03166103cb565b005b6101486004803603602081101561013857600080fd5b50356001600160a01b03166104ad565b60408051918252519081900360200190f35b6101206104e0565b610120610580565b6101206004803603608081101561018057600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101ab57600080fd5b8201836020820111156101bd57600080fd5b803590602001918460208302840111640100000000831117156101df57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561022f57600080fd5b82018360208201111561024157600080fd5b8035906020019184602083028401116401000000008311171561026357600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050913592506106f2915050565b61014861094c565b6102b3610952565b604080516001600160a01b039092168252519081900360200190f35b610120600480360360208110156102e557600080fd5b50356001600160a01b0316610961565b6102fd610adb565b604080519115158252519081900360200190f35b6101486004803603602081101561032757600080fd5b50356001600160a01b0316610ae4565b61035d6004803603602081101561034d57600080fd5b50356001600160a01b0316610b03565b6040805192835260208301919091528051918290030190f35b6101206004803603602081101561038c57600080fd5b50351515610b1c565b610148600480360360208110156103ab57600080fd5b50356001600160a01b0316610b78565b6102b3610b93565b6102b3610ba2565b6002546001600160a01b031633146104145760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b6001600160a01b0381166104595760405162461bcd60e51b815260040180806020018281038252603c81526020018061100d603c913960400191505060405180910390fd5b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fc9e2377236eab4280090ce8f2317332649736d92f00dcf20a8dd6684ec5e78399181900360200190a150565b6001600160a01b0381166000908152600160208190526040822090810154905482916104d99190610bb1565b9392505050565b6003546001600160a01b031633146105295760405162461bcd60e51b815260040180806020018281038252602b815260200180610fbc602b913960400191505060405180910390fd5b600354600280546001600160a01b0319166001600160a01b0390921691821790556040805182815290517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab9181900360200190a150565b3360008181526001602052604090205460055460ff16156105d25760405162461bcd60e51b815260040180806020018281038252602381526020018061107b6023913960400191505060405180910390fd5b6004544210156106135760405162461bcd60e51b815260040180806020018281038252602181526020018061114c6021913960400191505060405180910390fd5b8061061d836104ad565b101561065a5760405162461bcd60e51b815260040180806020018281038252603181526020018061109e6031913960400191505060405180910390fd5b6001600160a01b038216600090815260016020819052604090912001546106819082610c0e565b6001600160a01b0380841660009081526001602081905260408220019290925590546106af91168383610c68565b6040805182815290516001600160a01b038416917f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241919081900360200190a25050565b6002546001600160a01b0316331461073b5760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0386161790556004819055815183511461079b5760405162461bcd60e51b815260040180806020018281038252602e815260200180610f8e602e913960400191505060405180910390fd5b60005b83518110156109455760006001600160a01b03168482815181106107be57fe5b60200260200101516001600160a01b0316141561080c5760405162461bcd60e51b81526004018080602001828103825260328152602001806110496032913960400191505060405180910390fd5b600083828151811061081a57fe5b60200260200101511161085e5760405162461bcd60e51b81526004018080602001828103825260308152602001806110cf6030913960400191505060405180910390fd5b604051806040016040528084838151811061087557fe5b6020026020010151815260200160008152506001600086848151811061089757fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101559050508381815181106108e257fe5b60200260200101516001600160a01b03167fffa04f92c77aee2e6205321c105ef950e1ef73168fccac4351301fae9b7db4e884838151811061092057fe5b60200260200101516040518082815260200191505060405180910390a260010161079e565b5050505050565b60045481565b6002546001600160a01b031681565b6002546001600160a01b031633146109aa5760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b60055460ff161515600114610a06576040805162461bcd60e51b815260206004820152601e60248201527f4c6f636b6572446973747269627574696f6e3a206e6f74207061757365640000604482015290519081900360640190fd5b60008054604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610a5257600080fd5b505afa158015610a66573d6000803e3d6000fd5b505050506040513d6020811015610a7c57600080fd5b5051600054909150610a98906001600160a01b03168383610c68565b6040805182815290516001600160a01b038416917f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e1337919081900360200190a25050565b60055460ff1681565b6001600160a01b03166000908152600160208190526040909120015490565b6001602081905260009182526040909120805491015482565b6002546001600160a01b03163314610b655760405162461bcd60e51b81526004018080602001828103825260238152602001806110ff6023913960400191505060405180910390fd5b6005805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205490565b6003546001600160a01b031681565b6000546001600160a01b031681565b600082821115610c08576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156104d9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610cba908490610cbf565b505050565b6060610d14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d709092919063ffffffff16565b805190915015610cba57808060200190516020811015610d3357600080fd5b5051610cba5760405162461bcd60e51b815260040180806020018281038252602a815260200180611122602a913960400191505060405180910390fd5b6060610d7f8484600085610d87565b949350505050565b606082471015610dc85760405162461bcd60e51b8152600401808060200182810382526026815260200180610fe76026913960400191505060405180910390fd5b610dd185610ee3565b610e22576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610e615780518252601f199092019160209182019101610e42565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610ec3576040519150601f19603f3d011682016040523d82523d6000602084013e610ec8565b606091505b5091509150610ed8828286610ee9565b979650505050505050565b3b151590565b60608315610ef85750816104d9565b825115610f085782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f52578181015183820152602001610f3a565b50505050905090810190601f168015610f7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4c6f636b6572446973747269627574696f6e3a20616c6c6f636174696f6e206c656e677468206d69736d617463684c6f636b6572446973747269627574696f6e3a206f6e6c792070656e64696e6720676f7665726e616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4c6f636b6572446973747269627574696f6e3a2070656e64696e6720676f7665726e616e636520616464726573732063616e6e6f74206265203078304c6f636b6572446973747269627574696f6e3a20726563697069656e742063616e6e6f74206265203020616464726573732e4c6f636b6572446973747269627574696f6e3a207769746864726177207061757365644c6f636b6572446973747269627574696f6e3a20696e73756666696369656e74206176616c69626c652062616c616e63654c6f636b6572446973747269627574696f6e3a2063616e6e6f7420616c6c6f63617465207a65726f20616d6f756e742e4c6f636b6572446973747269627574696f6e3a206f6e6c7920676f7665726e616e63655361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565644c6f636b6572446973747269627574696f6e3a206e6f7420737461727420796574a26469706673582212204ad41509ede1ac2c1f07ebe54c5116288ac354adeb5316b4e4c68010f0c25d0864736f6c634300060c00334c6f636b6572446973747269627574696f6e3a20676f7665726e616e636520616464726573732063616e6e6f742062652030783000000000000000000000000068284083acbabcb6da84f62ea341dd8c30500eee