0x6080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610116578063095ea7b3146101a057806318160ddd146101d857806323b872dd146101ff578063313ce56714610229578063395093511461025457806340c10f191461027857806370a082311461029c578063715018a6146102bd5780638da5cb5b146102d45780638f32d59b1461030557806395d89b411461031a578063983b2d561461032f5780639865027514610350578063a457c2d714610365578063a9059cbb14610389578063aa271e1a146103ad578063c95e0706146103ce578063dd62ed3e146103e6578063f2fde38b1461040d575b600080fd5b34801561012257600080fd5b5061012b61042e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016557818101518382015260200161014d565b50505050905090810190601f1680156101925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ac57600080fd5b506101c4600160a060020a03600435166024356104c4565b604080519115158252519081900360200190f35b3480156101e457600080fd5b506101ed6104da565b60408051918252519081900360200190f35b34801561020b57600080fd5b506101c4600160a060020a036004358116906024351660443561050b565b34801561023557600080fd5b5061023e610562565b6040805160ff9092168252519081900360200190f35b34801561026057600080fd5b506101c4600160a060020a036004351660243561056b565b34801561028457600080fd5b506101c4600160a060020a03600435166024356105a7565b3480156102a857600080fd5b506101ed600160a060020a036004351661065c565b3480156102c957600080fd5b506102d2610677565b005b3480156102e057600080fd5b506102e9610732565b60408051600160a060020a039092168252519081900360200190f35b34801561031157600080fd5b506101c4610746565b34801561032657600080fd5b5061012b61075c565b34801561033b57600080fd5b506102d2600160a060020a03600435166107bd565b34801561035c57600080fd5b506102d261084e565b34801561037157600080fd5b506101c4600160a060020a0360043516602435610859565b34801561039557600080fd5b506101c4600160a060020a0360043516602435610895565b3480156103b957600080fd5b506101c4600160a060020a03600435166108a2565b3480156103da57600080fd5b506102d26004356108bb565b3480156103f257600080fd5b506101ed600160a060020a036004358116906024351661099c565b34801561041957600080fd5b506102d2600160a060020a03600435166109c7565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b5050505050905090565b60006104d1338484610a2e565b50600192915050565b6009546007805443918290556000929103026104fd6104f7610732565b82610b9b565b610505610c90565b91505090565b6000610518848484610c96565b600160a060020a038416600090815260016020908152604080832033808552925290912054610558918691610553908663ffffffff610e5a16565b610a2e565b5060019392505050565b60055460ff1690565b336000818152600160209081526040808320600160a060020a038716845290915281205490916104d1918590610553908663ffffffff610ebc16565b6000806105b3336108a2565b151561062f576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b5060095460088054439182905590030261064a6104f7610732565b6106548484610f20565b949350505050565b600160a060020a031660009081526020819052604090205490565b61067f610746565b15156106d5576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6005546040516000916101009004600160a060020a0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b6005546101009004600160a060020a031690565b6005546101009004600160a060020a0316331490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104ba5780601f1061048f576101008083540402835291602001916104ba565b6107c6336108a2565b1515610842576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b61084b81610fb1565b50565b61085733610ff9565b565b336000818152600160209081526040808320600160a060020a038716845290915281205490916104d1918590610553908663ffffffff610e5a16565b60006104d1338484610c96565b60006108b560068363ffffffff61104116565b92915050565b6108c3610746565b1515610919576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008111610997576040805160e560020a62461bcd02815260206004820152602560248201527f4e65772076616c756520636f756c642062652067726561746572207468616e2060448201527f7a65726f2e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600955565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6109cf610746565b1515610a25576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61084b816110e9565b600160a060020a0383161515610ab3576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610b39576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a0382161515610bfb576040805160e560020a62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c0e908263ffffffff610ebc16565b600255600160a060020a038216600090815260208190526040902054610c3a908263ffffffff610ebc16565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60025490565b600160a060020a0383161515610d1c576040805160e560020a62461bcd02815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610da2576040805160e560020a62461bcd02815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260208190526040902054610dcb908263ffffffff610e5a16565b600160a060020a038085166000908152602081905260408082209390935590841681522054610e00908263ffffffff610ebc16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008083831115610eb5576040805160e560020a62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5050900390565b600082820183811015610f19576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610f2b336108a2565b1515610fa7576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b6104d18383610b9b565b610fc260068263ffffffff6111e316565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61100a60068263ffffffff61126716565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a03821615156110c9576040805160e560020a62461bcd02815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a038116151561116f576040805160e560020a62461bcd02815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6111ed8282611041565b15611242576040805160e560020a62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6112718282611041565b15156112ed576040805160e560020a62461bcd02815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a7230582016c664b42d6bc46002890d36229e48c11af19c81d7c0bb69b619e4a604a8dcc60029
0x60806040526a1866de34549d620d800000600a553480156200002057600080fd5b50604080518082018252600a81527f54686543726970746f6e000000000000000000000000000000000000000000006020808301918252835180850190945260038085527f5443540000000000000000000000000000000000000000000000000000000000918501919091528251929392601292620000a09291620004e0565b508151620000b6906004906020850190620004e0565b506005805460ff191660ff929092169190911761010060a860020a0319166101003381029190911791829055604051600160a060020a0391909204169250600091507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3620001313364010000000062000175810204565b43600781905560085567152ec4bdea3911f86009556200016f6200015d640100000000620001c7810204565b600a54640100000000620001dc810204565b62000582565b62000190600682640100000000620011e3620002fd82021704565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6005546101009004600160a060020a03165b90565b600160a060020a03821615156200025457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60025462000271908264010000000062000ebc620003a482021704565b600255600160a060020a038216600090815260208190526040902054620002a7908264010000000062000ebc620003a482021704565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b62000312828264010000000062000420810204565b156200037f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000828201838110156200041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000600160a060020a0382161515620004c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200052357805160ff191683800117855562000553565b8280016001018555821562000553579182015b828111156200055357825182559160200191906001019062000536565b506200056192915062000565565b5090565b620001d991905b808211156200056157600081556001016200056c565b61133b80620005926000396000f3006080604052600436106101115763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610116578063095ea7b3146101a057806318160ddd146101d857806323b872dd146101ff578063313ce56714610229578063395093511461025457806340c10f191461027857806370a082311461029c578063715018a6146102bd5780638da5cb5b146102d45780638f32d59b1461030557806395d89b411461031a578063983b2d561461032f5780639865027514610350578063a457c2d714610365578063a9059cbb14610389578063aa271e1a146103ad578063c95e0706146103ce578063dd62ed3e146103e6578063f2fde38b1461040d575b600080fd5b34801561012257600080fd5b5061012b61042e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016557818101518382015260200161014d565b50505050905090810190601f1680156101925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ac57600080fd5b506101c4600160a060020a03600435166024356104c4565b604080519115158252519081900360200190f35b3480156101e457600080fd5b506101ed6104da565b60408051918252519081900360200190f35b34801561020b57600080fd5b506101c4600160a060020a036004358116906024351660443561050b565b34801561023557600080fd5b5061023e610562565b6040805160ff9092168252519081900360200190f35b34801561026057600080fd5b506101c4600160a060020a036004351660243561056b565b34801561028457600080fd5b506101c4600160a060020a03600435166024356105a7565b3480156102a857600080fd5b506101ed600160a060020a036004351661065c565b3480156102c957600080fd5b506102d2610677565b005b3480156102e057600080fd5b506102e9610732565b60408051600160a060020a039092168252519081900360200190f35b34801561031157600080fd5b506101c4610746565b34801561032657600080fd5b5061012b61075c565b34801561033b57600080fd5b506102d2600160a060020a03600435166107bd565b34801561035c57600080fd5b506102d261084e565b34801561037157600080fd5b506101c4600160a060020a0360043516602435610859565b34801561039557600080fd5b506101c4600160a060020a0360043516602435610895565b3480156103b957600080fd5b506101c4600160a060020a03600435166108a2565b3480156103da57600080fd5b506102d26004356108bb565b3480156103f257600080fd5b506101ed600160a060020a036004358116906024351661099c565b34801561041957600080fd5b506102d2600160a060020a03600435166109c7565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b5050505050905090565b60006104d1338484610a2e565b50600192915050565b6009546007805443918290556000929103026104fd6104f7610732565b82610b9b565b610505610c90565b91505090565b6000610518848484610c96565b600160a060020a038416600090815260016020908152604080832033808552925290912054610558918691610553908663ffffffff610e5a16565b610a2e565b5060019392505050565b60055460ff1690565b336000818152600160209081526040808320600160a060020a038716845290915281205490916104d1918590610553908663ffffffff610ebc16565b6000806105b3336108a2565b151561062f576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b5060095460088054439182905590030261064a6104f7610732565b6106548484610f20565b949350505050565b600160a060020a031660009081526020819052604090205490565b61067f610746565b15156106d5576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6005546040516000916101009004600160a060020a0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805474ffffffffffffffffffffffffffffffffffffffff0019169055565b6005546101009004600160a060020a031690565b6005546101009004600160a060020a0316331490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104ba5780601f1061048f576101008083540402835291602001916104ba565b6107c6336108a2565b1515610842576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b61084b81610fb1565b50565b61085733610ff9565b565b336000818152600160209081526040808320600160a060020a038716845290915281205490916104d1918590610553908663ffffffff610e5a16565b60006104d1338484610c96565b60006108b560068363ffffffff61104116565b92915050565b6108c3610746565b1515610919576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008111610997576040805160e560020a62461bcd02815260206004820152602560248201527f4e65772076616c756520636f756c642062652067726561746572207468616e2060448201527f7a65726f2e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600955565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6109cf610746565b1515610a25576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61084b816110e9565b600160a060020a0383161515610ab3576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610b39576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a0382161515610bfb576040805160e560020a62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c0e908263ffffffff610ebc16565b600255600160a060020a038216600090815260208190526040902054610c3a908263ffffffff610ebc16565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60025490565b600160a060020a0383161515610d1c576040805160e560020a62461bcd02815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382161515610da2576040805160e560020a62461bcd02815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260208190526040902054610dcb908263ffffffff610e5a16565b600160a060020a038085166000908152602081905260408082209390935590841681522054610e00908263ffffffff610ebc16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008083831115610eb5576040805160e560020a62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5050900390565b600082820183811015610f19576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610f2b336108a2565b1515610fa7576040805160e560020a62461bcd02815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204d696e74657220726f6c6500000000000000000000000000000000606482015290519081900360840190fd5b6104d18383610b9b565b610fc260068263ffffffff6111e316565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61100a60068263ffffffff61126716565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000600160a060020a03821615156110c9576040805160e560020a62461bcd02815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a038116151561116f576040805160e560020a62461bcd02815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6111ed8282611041565b15611242576040805160e560020a62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6112718282611041565b15156112ed576040805160e560020a62461bcd02815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a7230582016c664b42d6bc46002890d36229e48c11af19c81d7c0bb69b619e4a604a8dcc60029