0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b7c806100536000396000f3fe6080604052600436106101405760003560e01c806340c10f19116100b657806395d89b411161006f57806395d89b41146105f0578063a108857114610680578063a9059cbb146106d7578063d0febe4c1461074a578063dd62ed3e14610754578063f2fde38b146107d957610140565b806340c10f191461045c5780636c11bcd3146104b757806370a08231146104f257806379ba5097146105575780638620410b1461056e5780638da5cb5b1461059957610140565b806323b872dd1161010857806323b872dd146102e857806330d966c81461037b578063313ce567146103a657806337ac4ac3146103d75780633ccfd60b146104025780633eaaf86b1461043157610140565b806305fefda71461015257806306fdde0314610197578063095ea7b3146102275780630be12fc914610282578063162bc80c146102ad575b34801561014c57600080fd5b50600080fd5b34801561015e57600080fd5b506101956004803603604081101561017557600080fd5b81019080803590602001909291908035906020019092919050505061082a565b005b3480156101a357600080fd5b506101ac6108fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ec5780820151818401526020810190506101d1565b50505050905090810190601f1680156102195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023357600080fd5b506102806004803603604081101561024a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061093b565b005b34801561028e57600080fd5b50610297610a25565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b506102e6600480360360208110156102d057600080fd5b8101908080359060200190929190505050610a40565b005b3480156102f457600080fd5b506103616004803603606081101561030b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc9565b604051808215151515815260200191505060405180910390f35b34801561038757600080fd5b50610390610cf0565b6040518082815260200191505060405180910390f35b3480156103b257600080fd5b506103bb610cf8565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103e357600080fd5b506103ec610d01565b6040518082815260200191505060405180910390f35b34801561040e57600080fd5b50610417610d07565b604051808215151515815260200191505060405180910390f35b34801561043d57600080fd5b50610446610fa7565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b506104b56004803603604081101561047f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fad565b005b3480156104c357600080fd5b506104f0600480360360208110156104da57600080fd5b8101908080359060200190929190505050611248565b005b3480156104fe57600080fd5b506105416004803603602081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c5565b6040518082815260200191505060405180910390f35b34801561056357600080fd5b5061056c61130e565b005b34801561057a57600080fd5b506105836114ab565b6040518082815260200191505060405180910390f35b3480156105a557600080fd5b506105ae6114b1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fc57600080fd5b506106056114d6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561064557808201518184015260208101905061062a565b50505050905090810190601f1680156106725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068c57600080fd5b50610695611513565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e357600080fd5b50610730600480360360408110156106fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153c565b604051808215151515815260200191505060405180910390f35b610752611553565b005b34801561076057600080fd5b506107c36004803603604081101561077757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a9565b6040518082815260200191505060405180910390f35b3480156107e557600080fd5b50610828600480360360208110156107fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611730565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4e6f206f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600281905550806003819055505050565b60606040518060400160405280600481526020017f3850415900000000000000000000000000000000000000000000000000000000815250905090565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000670de0b6b3a764000060045481610a3a57fe5b04905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4e6f206f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900460ff1615610b85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f6e6f2072657472656e637900000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600560006101000a81548160ff021916908315150217905550610bab303383611836565b6000600560006101000a81548160ff02191690831515021790555050565b6000610c5a82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0490919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ce5848484611836565b600190509392505050565b600047905090565b60006012905090565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4e6f206f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900460ff1615610e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f6e6f2072657472656e637900000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600560006101000a81548160ff0219169083151502179055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115610f83576000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610f825780600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000915050610f89565b5b60019150505b6000600560006101000a81548160ff02191690831515021790555090565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461106f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4e6f206f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6000670de0b6b3a76400008202905061112d60008483611a8d565b61114281600454611a9290919063ffffffff16565b60048190555061119a81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000670de0b6b3a764000060025483028161125f57fe5b0490508047101561126f57600080fd5b61127a333084611836565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112c0573d6000803e3d6000fd5b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461136857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f2438506179000000000000000000000000000000000000000000000000000000815250905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611549338484611836565b6001905092915050565b600560009054906101000a900460ff16156115d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f6e6f2072657472656e637900000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600560006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180611b1b602d913960400191505060405180910390fd5b60006003543402905061168b303383611836565b506000600560006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f4e6f206f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561187057600080fd5b6118c281600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061195781600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600082821115611a7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f7375627372616374696f6e206f776572666c6f7700000000000000000000000081525060200191505060405180910390fd5b600082840390508091505092915050565b505050565b600080828401905083811015611b10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6164646974696f6e206f776572666c6f7700000000000000000000000000000081525060200191505060405180910390fd5b809150509291505056fe4e6f20636f6e7472616374206164647265737320616c6c6f77656420746f20636c61696d206169722064726f70a265627a7a72315820dac93fcb0863d12becb98f169b47821201db75d33a6edbcba7460a76792d37e364736f6c63430005110032