//
0x608060405234801561001057600080fd5b50600380546001600160a01b031916339081179091556040516000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36116bf806100606000396000f3fe608060405234801561001057600080fd5b50600436106101795760003560e01c806379ba5097116100d9578063a20baee611610087578063a20baee6146101e9578063a3f4df7e1461030b578063ae91875414610388578063c394a7fa14610390578063e30c3978146103b3578063f2fde38b146103bb578063f92d3433146103e157610179565b806379ba5097146102785780637b41bdbe146102805780637f7dde4a146102a9578063887105d3146102b15780638da5cb5b146102b95780638f32d59b146102c157806390107afe146102dd57610179565b8063525acdbb11610136578063525acdbb146102255780635733d58f1461024e578063715018a61461025657806372fe25aa146101e9578063741bef1a14610260578063794e572414610268578063795d26c31461027057610179565b806313144dba1461017e5780631bf43555146101cf5780632e86bbd8146101e95780633cc74225146101f15780633d83908a146102155780634870dd9a1461021d575b600080fd5b6101a76004803603606081101561019457600080fd5b50803590602081013590604001356103e9565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101d761096a565b60408051918252519081900360200190f35b6101d7610977565b6101f9610983565b604080516001600160a01b039092168252519081900360200190f35b6101f9610992565b6101d76109a1565b6101d76004803603606081101561023b57600080fd5b50803590602081013590604001356109a6565b6101d76109bd565b61025e6109c9565b005b6101f9610a1a565b6101d7610a29565b6101d7610a35565b61025e610b36565b6101a76004803603606081101561029657600080fd5b5080359060208101359060400135610ba5565b6101f9610ec2565b6101d7610ed1565b6101f9610f8d565b6102c9610f9c565b604080519115158252519081900360200190f35b61025e600480360360408110156102f357600080fd5b506001600160a01b0381358116916020013516610fad565b6103136110a6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034d578181015183820152602001610335565b50505050905090810190601f16801561037a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f96110cd565b6101d7600480360360408110156103a657600080fd5b50803590602001356110dc565b6101f96110f1565b61025e600480360360208110156103d157600080fd5b50356001600160a01b0316611100565b6101d76111a5565b60055460408051634d62283160e01b81529051600092839283926001600160a01b0390921691889184918491634d622831916004808301926020929190829003018186803b15801561043a57600080fd5b505afa15801561044e573d6000803e3d6000fd5b505050506040513d602081101561046457600080fd5b505190505b6001600160a01b03811615801590610509575060065460408051630d293c7160e41b81526001600160a01b038481166004830152602482018c9052915167120a871cc002000093929092169163d293c71091604480820192602092909190829003018186803b1580156104db57600080fd5b505afa1580156104ef573d6000803e3d6000fd5b505050506040513d602081101561050557600080fd5b5051105b1561059757826001600160a01b031663b72703ac826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561056457600080fd5b505afa158015610578573d6000803e3d6000fd5b505050506040513d602081101561058e57600080fd5b50519050610469565b945084866105a55760001996505b6001600160a01b038116158015906105bd5750600082115b80156105cd575060001987019615155b1561094c57600654604080516379a4316f60e11b81526001600160a01b03848116600483015291516000936106de93169163f34862de916024808301926020929190829003018186803b15801561062357600080fd5b505afa158015610637573d6000803e3d6000fd5b505050506040513d602081101561064d57600080fd5b50516006546040805163d66a255360e01b81526001600160a01b03878116600483015291516106d293929092169163d66a255391602480820192602092909190829003018186803b1580156106a157600080fd5b505afa1580156106b5573d6000803e3d6000fd5b505050506040513d60208110156106cb57600080fd5b50516111b0565b9063ffffffff6111ca16565b9050828111156108af5768056bc75e2d631000008111156108a957600061071d846107188468056bc75e2d6310000063ffffffff61122416565b611266565b60065460408051635d8c960960e01b81526001600160a01b0387811660048301529151939450600093610826939290921691635d8c960991602480820192602092909190829003018186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b5051600654604080516309019aaf60e31b81526001600160a01b0389811660048301529151919092169163480cd578916024808301926020929190829003018186803b1580156107ee57600080fd5b505afa158015610802573d6000803e3d6000fd5b505050506040513d602081101561081857600080fd5b50519063ffffffff6111ca16565b905060006108626108558d61084986670de0b6b3a764000063ffffffff61127c16565b9063ffffffff6112d516565b839063ffffffff61122416565b90506000610876858563ffffffff61122416565b9050600061088382611317565b905061088f8382611331565b9a506108a1888663ffffffff61122416565b975050505050505b5061094c565b6108bf838263ffffffff61122416565b9250836001600160a01b031663b72703ac836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561091757600080fd5b505afa15801561092b573d6000803e3d6000fd5b505050506040513d602081101561094157600080fd5b505191506105a59050565b61095c898363ffffffff61122416565b935050505093509350939050565b68056bc75e2d6310000081565b670de0b6b3a764000081565b6001546001600160a01b031681565b6006546001600160a01b031681565b60c881565b60006109b3848484611366565b90505b9392505050565b6714d1120d7b16000081565b6109d1610f9c565b610a10576040805162461bcd60e51b8152602060048201819052602482015260008051602061166a833981519152604482015290519081900360640190fd5b610a18611396565b565b6002546001600160a01b031681565b67120a871cc002000081565b6000805460408051632f5a97e560e11b8152905183926001600160a01b031691635eb52fca916004808301926020929190829003018186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d6020811015610aa457600080fd5b505160015460408051632f5a97e560e11b815290519293506000926001600160a01b0390921691635eb52fca91600480820192602092909190829003018186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d6020811015610b1b57600080fd5b50519050610b2f828263ffffffff6111ca16565b9250505090565b6000610b406113e0565b9050806001600160a01b0316610b546110f1565b6001600160a01b031614610b995760405162461bcd60e51b81526004018080602001828103825260298152602001806116206029913960400191505060405180910390fd5b610ba2816113e4565b50565b600080600080600660009054906101000a90046001600160a01b03166001600160a01b03166349eefeee6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d6020811015610c2357600080fd5b5051905080610c3c575060009250829150839050610eb9565b600560009054906101000a90046001600160a01b03166001600160a01b0316634d6228316040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8a57600080fd5b505afa158015610c9e573d6000803e3d6000fd5b505050506040513d6020811015610cb457600080fd5b50516006546040805163b0d8e18160e01b81526001600160a01b0380851660048301529151939750610d3e938b93929092169163b0d8e18191602480820192602092909190829003018186803b158015610d0d57600080fd5b505afa158015610d21573d6000803e3d6000fd5b505050506040513d6020811015610d3757600080fd5b5051611441565b925084915060015b86811015610eb657604080516020808201959095528151808203860181529082019091528051930192909220916000828481610d7e57fe5b0690506000600660009054906101000a90046001600160a01b03166001600160a01b031663d9a72444836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610ddc57600080fd5b505afa158015610df0573d6000803e3d6000fd5b505050506040513d6020811015610e0657600080fd5b50516006546040805163b0d8e18160e01b81526001600160a01b0380851660048301529151939450600093919092169163b0d8e181916024808301926020929190829003018186803b158015610e5b57600080fd5b505afa158015610e6f573d6000803e3d6000fd5b505050506040513d6020811015610e8557600080fd5b505190506000610e95828d611441565b905087811015610ea6578097508298505b505060019092019150610d469050565b50505b93509350939050565b6000546001600160a01b031681565b6000805460408051630a7b61df60e11b8152905183926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015610f1657600080fd5b505afa158015610f2a573d6000803e3d6000fd5b505050506040513d6020811015610f4057600080fd5b505160015460408051630a7b61df60e11b815290519293506000926001600160a01b03909216916314f6c3be91600480820192602092909190829003018186803b158015610af157600080fd5b6003546001600160a01b031690565b6003546001600160a01b0316331490565b610fb5610f9c565b610ff4576040805162461bcd60e51b8152602060048201819052602482015260008051602061166a833981519152604482015290519081900360640190fd5b610ffd82611470565b61100681611470565b600580546001600160a01b038085166001600160a01b03199283168117909355600680549185169190921617905560408051918252517f65f4cf077bc01e4742eb5ad98326f6e95b63548ea24b17f8d5e823111fe788009181900360200190a1604080516001600160a01b038316815290517f143219c9e69b09e07e095fcc889b43d8f46ca892bba65f08dc3a0050869a56789181900360200190a15050565b6040518060400160405280600b81526020016a48696e7448656c7065727360a81b81525081565b6005546001600160a01b031681565b60006110e88383611331565b90505b92915050565b6004546001600160a01b031690565b611108610f9c565b611147576040805162461bcd60e51b8152602060048201819052602482015260008051602061166a833981519152604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b03831690811790915561116d610f8d565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6611c37937e0800081565b60006110eb82670de0b6b3a764000063ffffffff61122416565b6000828201838110156110e8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006110e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611523565b600081831061127557816110e8565b5090919050565b60008261128b575060006110eb565b8282028284828161129857fe5b04146110e85760405162461bcd60e51b81526004018080602001828103825260218152602001806116496021913960400191505060405180910390fd5b60006110e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ba565b60006110eb82670de0b6b3a764000063ffffffff6111ca16565b6000811561135d57611356826108498568056bc75e2d6310000063ffffffff61127c16565b90506110eb565b506000196110eb565b6000821561138d57600061138484610849878663ffffffff61127c16565b91506109b69050565b506000196109b6565b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b3390565b600480546001600160a01b0319908116909155600380546001600160a01b0384811693821684179092556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000818310156114605761145b828463ffffffff61122416565b6110e8565b6110e8838363ffffffff61122416565b6001600160a01b0381166114cb576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f20616464726573730000604482015290519081900360640190fd5b803b8061151f576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015290519081900360640190fd5b5050565b600081848411156115b25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561157757818101518382015260200161155f565b50505050905090810190601f1680156115a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836116095760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561157757818101518382015260200161155f565b50600083858161161557fe5b049594505050505056fe4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122067744e49b865471f7b28d6c1a0b61847860394d919ecc83408a763c26075cdf564736f6c634300060b0033