0x608060405234801561001057600080fd5b50600436106101375760003560e01c80634456eda2116100b85780638da5cb5b1161007c5780638da5cb5b1461039257806395d89b411461039a578063a457c2d7146103a2578063a9059cbb146103ce578063dd62ed3e146103fa578063f2fde38b1461042857610137565b80634456eda21461030c578063570ca7351461031457806370a0823114610338578063715018a61461035e57806379cc67901461036657610137565b8063313ce567116100ff578063313ce5671461027157806332cb6b0c1461028f578063395093511461029757806340c10f19146102c357806342966c68146102ef57610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806323b872dd1461021357806329605e7714610249575b600080fd5b61014461044e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b0381351690602001356104e4565b604080519115158252519081900360200190f35b610201610501565b60408051918252519081900360200190f35b6101e56004803603606081101561022957600080fd5b506001600160a01b03813581169160208101359091169060400135610507565b61026f6004803603602081101561025f57600080fd5b50356001600160a01b031661058e565b005b610279610609565b6040805160ff9092168252519081900360200190f35b610201610612565b6101e5600480360360408110156102ad57600080fd5b506001600160a01b038135169060200135610620565b6101e5600480360360408110156102d957600080fd5b506001600160a01b03813516906020013561066e565b61026f6004803603602081101561030557600080fd5b503561075e565b6101e56107b0565b61031c6107d6565b604080516001600160a01b039092168252519081900360200190f35b6102016004803603602081101561034e57600080fd5b50356001600160a01b03166107e5565b61026f610800565b61026f6004803603604081101561037c57600080fd5b506001600160a01b0381351690602001356108bf565b61031c610916565b61014461092a565b6101e5600480360360408110156103b857600080fd5b506001600160a01b03813516906020013561098b565b6101e5600480360360408110156103e457600080fd5b506001600160a01b0381351690602001356109f3565b6102016004803603604081101561041057600080fd5b506001600160a01b0381358116916020013516610a07565b61026f6004803603602081101561043e57600080fd5b50356001600160a01b0316610a32565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104da5780601f106104af576101008083540402835291602001916104da565b820191906000526020600020905b8154815290600101906020018083116104bd57829003601f168201915b5050505050905090565b60006104f86104f1610bae565b8484610bb2565b50600192915050565b60025490565b6000610514848484610c9e565b61058484610520610bae565b61057f856040518060600160405280602881526020016112a7602891396001600160a01b038a1660009081526001602052604081209061055e610bae565b6001600160a01b031681526020810191909152604001600020549190610df9565b610bb2565b5060019392505050565b610596610bae565b60055461010090046001600160a01b039081169116146105fd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61060681610e90565b50565b60055460ff1690565b6969e10de76676d080000081565b60006104f861062d610bae565b8461057f856001600061063e610bae565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610b4d565b6006546000906001600160a01b031633146106ba5760405162461bcd60e51b81526004018080602001828103825260248152602001806112f36024913960400191505060405180910390fd5b60006106c4610501565b90506969e10de76676d08000006106db8285610b4d565b111561072e576040805162461bcd60e51b815260206004820152601e60248201527f53686172653a204d696e74696e67206f766572206d617820737570706c790000604482015290519081900360640190fd5b6000610739856107e5565b90506107458585610f2d565b6000610750866107e5565b919091101595945050505050565b6006546001600160a01b031633146107a75760405162461bcd60e51b81526004018080602001828103825260248152602001806112f36024913960400191505060405180910390fd5b6106068161101d565b6006546000906001600160a01b03166107c7610bae565b6001600160a01b031614905090565b6006546001600160a01b031690565b6001600160a01b031660009081526020819052604090205490565b610808610bae565b60055461010090046001600160a01b0390811691161461086f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6006546001600160a01b031633146109085760405162461bcd60e51b81526004018080602001828103825260248152602001806112f36024913960400191505060405180910390fd5b610912828261102e565b5050565b60055461010090046001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104da5780601f106104af576101008083540402835291602001916104da565b60006104f8610998610bae565b8461057f8560405180606001604052806025815260200161138160259139600160006109c2610bae565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610df9565b60006104f8610a00610bae565b8484610c9e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a3a610bae565b60055461010090046001600160a01b03908116911614610aa1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610ae65760405162461bcd60e51b815260040180806020018281038252602681526020018061120c6026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600082820183811015610ba7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b038316610bf75760405162461bcd60e51b815260040180806020018281038252602481526020018061135d6024913960400191505060405180910390fd5b6001600160a01b038216610c3c5760405162461bcd60e51b81526004018080602001828103825260228152602001806112326022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610ce35760405162461bcd60e51b81526004018080602001828103825260258152602001806113386025913960400191505060405180910390fd5b6001600160a01b038216610d285760405162461bcd60e51b81526004018080602001828103825260238152602001806111c76023913960400191505060405180910390fd5b610d33838383611083565b610d7081604051806060016040528060268152602001611254602691396001600160a01b0386166000908152602081905260409020549190610df9565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610d9f9082610b4d565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610e885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e4d578181015183820152602001610e35565b50505050905090810190601f168015610e7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116610ed55760405162461bcd60e51b815260040180806020018281038252602d81526020018061127a602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610f88576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610f9460008383611083565b600254610fa19082610b4d565b6002556001600160a01b038216600090815260208190526040902054610fc79082610b4d565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b610606611028610bae565b82611088565b6000611065826040518060600160405280602481526020016112cf6024913961105e86611059610bae565b610a07565b9190610df9565b905061107983611073610bae565b83610bb2565b6110838383611088565b505050565b6001600160a01b0382166110cd5760405162461bcd60e51b81526004018080602001828103825260218152602001806113176021913960400191505060405180910390fd5b6110d982600083611083565b611116816040518060600160405280602281526020016111ea602291396001600160a01b0385166000908152602081905260409020549190610df9565b6001600160a01b03831660009081526020819052604090205560025461113c9082611184565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610ba783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610df956fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f7245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204d7292ef744ef7892f11aa8706b8f831e083dd1d0eb05fdd15dbb962efaee87a64736f6c634300060c0033
0x60806040523480156200001157600080fd5b506040805180820182526004808252634d49533360e01b6020808401828152855180870190965292855284015281519192916200005191600391620002c3565b50805162000067906004906020840190620002c3565b50506005805460ff191660121790555060006200008362000149565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000e362000149565b600680546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a36200014333670de0b6b3a76400006200014d565b6200035f565b3390565b6001600160a01b038216620001a9576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620001b7600083836200025c565b620001d3816002546200026160201b62000b4d1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200020691839062000b4d62000261821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b505050565b600082820183811015620002bc576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200030657805160ff191683800117855562000336565b8280016001018555821562000336579182015b828111156200033657825182559160200191906001019062000319565b506200034492915062000348565b5090565b5b8082111562000344576000815560010162000349565b6113db806200036f6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80634456eda2116100b85780638da5cb5b1161007c5780638da5cb5b1461039257806395d89b411461039a578063a457c2d7146103a2578063a9059cbb146103ce578063dd62ed3e146103fa578063f2fde38b1461042857610137565b80634456eda21461030c578063570ca7351461031457806370a0823114610338578063715018a61461035e57806379cc67901461036657610137565b8063313ce567116100ff578063313ce5671461027157806332cb6b0c1461028f578063395093511461029757806340c10f19146102c357806342966c68146102ef57610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806323b872dd1461021357806329605e7714610249575b600080fd5b61014461044e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b0381351690602001356104e4565b604080519115158252519081900360200190f35b610201610501565b60408051918252519081900360200190f35b6101e56004803603606081101561022957600080fd5b506001600160a01b03813581169160208101359091169060400135610507565b61026f6004803603602081101561025f57600080fd5b50356001600160a01b031661058e565b005b610279610609565b6040805160ff9092168252519081900360200190f35b610201610612565b6101e5600480360360408110156102ad57600080fd5b506001600160a01b038135169060200135610620565b6101e5600480360360408110156102d957600080fd5b506001600160a01b03813516906020013561066e565b61026f6004803603602081101561030557600080fd5b503561075e565b6101e56107b0565b61031c6107d6565b604080516001600160a01b039092168252519081900360200190f35b6102016004803603602081101561034e57600080fd5b50356001600160a01b03166107e5565b61026f610800565b61026f6004803603604081101561037c57600080fd5b506001600160a01b0381351690602001356108bf565b61031c610916565b61014461092a565b6101e5600480360360408110156103b857600080fd5b506001600160a01b03813516906020013561098b565b6101e5600480360360408110156103e457600080fd5b506001600160a01b0381351690602001356109f3565b6102016004803603604081101561041057600080fd5b506001600160a01b0381358116916020013516610a07565b61026f6004803603602081101561043e57600080fd5b50356001600160a01b0316610a32565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104da5780601f106104af576101008083540402835291602001916104da565b820191906000526020600020905b8154815290600101906020018083116104bd57829003601f168201915b5050505050905090565b60006104f86104f1610bae565b8484610bb2565b50600192915050565b60025490565b6000610514848484610c9e565b61058484610520610bae565b61057f856040518060600160405280602881526020016112a7602891396001600160a01b038a1660009081526001602052604081209061055e610bae565b6001600160a01b031681526020810191909152604001600020549190610df9565b610bb2565b5060019392505050565b610596610bae565b60055461010090046001600160a01b039081169116146105fd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61060681610e90565b50565b60055460ff1690565b6969e10de76676d080000081565b60006104f861062d610bae565b8461057f856001600061063e610bae565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610b4d565b6006546000906001600160a01b031633146106ba5760405162461bcd60e51b81526004018080602001828103825260248152602001806112f36024913960400191505060405180910390fd5b60006106c4610501565b90506969e10de76676d08000006106db8285610b4d565b111561072e576040805162461bcd60e51b815260206004820152601e60248201527f53686172653a204d696e74696e67206f766572206d617820737570706c790000604482015290519081900360640190fd5b6000610739856107e5565b90506107458585610f2d565b6000610750866107e5565b919091101595945050505050565b6006546001600160a01b031633146107a75760405162461bcd60e51b81526004018080602001828103825260248152602001806112f36024913960400191505060405180910390fd5b6106068161101d565b6006546000906001600160a01b03166107c7610bae565b6001600160a01b031614905090565b6006546001600160a01b031690565b6001600160a01b031660009081526020819052604090205490565b610808610bae565b60055461010090046001600160a01b0390811691161461086f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6006546001600160a01b031633146109085760405162461bcd60e51b81526004018080602001828103825260248152602001806112f36024913960400191505060405180910390fd5b610912828261102e565b5050565b60055461010090046001600160a01b031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104da5780601f106104af576101008083540402835291602001916104da565b60006104f8610998610bae565b8461057f8560405180606001604052806025815260200161138160259139600160006109c2610bae565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610df9565b60006104f8610a00610bae565b8484610c9e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a3a610bae565b60055461010090046001600160a01b03908116911614610aa1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610ae65760405162461bcd60e51b815260040180806020018281038252602681526020018061120c6026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600082820183811015610ba7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b038316610bf75760405162461bcd60e51b815260040180806020018281038252602481526020018061135d6024913960400191505060405180910390fd5b6001600160a01b038216610c3c5760405162461bcd60e51b81526004018080602001828103825260228152602001806112326022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610ce35760405162461bcd60e51b81526004018080602001828103825260258152602001806113386025913960400191505060405180910390fd5b6001600160a01b038216610d285760405162461bcd60e51b81526004018080602001828103825260238152602001806111c76023913960400191505060405180910390fd5b610d33838383611083565b610d7081604051806060016040528060268152602001611254602691396001600160a01b0386166000908152602081905260409020549190610df9565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610d9f9082610b4d565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610e885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e4d578181015183820152602001610e35565b50505050905090810190601f168015610e7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116610ed55760405162461bcd60e51b815260040180806020018281038252602d81526020018061127a602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610f88576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610f9460008383611083565b600254610fa19082610b4d565b6002556001600160a01b038216600090815260208190526040902054610fc79082610b4d565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b610606611028610bae565b82611088565b6000611065826040518060600160405280602481526020016112cf6024913961105e86611059610bae565b610a07565b9190610df9565b905061107983611073610bae565b83610bb2565b6110838383611088565b505050565b6001600160a01b0382166110cd5760405162461bcd60e51b81526004018080602001828103825260218152602001806113176021913960400191505060405180910390fd5b6110d982600083611083565b611116816040518060600160405280602281526020016111ea602291396001600160a01b0385166000908152602081905260409020549190610df9565b6001600160a01b03831660009081526020819052604090205560025461113c9082611184565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610ba783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610df956fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f7245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63656f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f7245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204d7292ef744ef7892f11aa8706b8f831e083dd1d0eb05fdd15dbb962efaee87a64736f6c634300060c0033