0x6080604052604051806101a001604052806201f08f62ffffff16815260200162019d6e62ffffff16815260200162019d6e62ffffff16815260200162019d6e62ffffff168152602001611b9b62ffffff168152602001611b9b62ffffff168152602001611b9b62ffffff168152602001611b9b62ffffff168152602001611b9b62ffffff168152602001611b9b62ffffff168152602001611b9b62ffffff168152602001611b9b62ffffff168152602001611c8962ffffff16815250600190600d6100cb929190610210565b503480156100d857600080fd5b506040516110ef3803806110ef833981810160405260408110156100fb57600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006004819055506301e133804201600560006101000a81548164ffffffffff021916908364ffffffffff1602179055505050610289565b828054828255906000526020600020908101928215610253579160200282015b82811115610252578251829062ffffff16905591602001919060010190610230565b5b5090506102609190610264565b5090565b61028691905b8082111561028257600081600090555060010161026a565b5090565b90565b610e57806102986000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80637cc1f867116100665780637cc1f867146101605780638da5cb5b146101d4578063a2d7f5e31461021e578063a55f1d661461023c578063f2fde38b146102685761009e565b806308ac846f146100a3578063111157f0146100d8578063231ef706146100f65780633ccfd60b146101385780637bb476f514610142575b600080fd5b6100d6600480360360208110156100b957600080fd5b81019080803564ffffffffff1690602001909291905050506102ac565b005b6100e061032b565b6040518082815260200191505060405180910390f35b6101226004803603602081101561010c57600080fd5b8101908080359060200190929190505050610331565b6040518082815260200191505060405180910390f35b610140610352565b005b61014a6107b6565b6040518082815260200191505060405180910390f35b6101686108df565b604051808681526020018581526020018481526020018364ffffffffff1664ffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b6101dc6109be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102266109e3565b6040518082815260200191505060405180910390f35b6102446109f1565b604051808264ffffffffff1664ffffffffff16815260200191505060405180910390f35b6102aa6004803603602081101561027e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a08565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461030557600080fd5b80600560006101000a81548164ffffffffff021916908364ffffffffff16021790555050565b60045481565b6001818154811061033e57fe5b906000526020600020016000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610415576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c7920617574686f72697a656420757365722e000000000000000000000081525060200191505060405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff16637bb476f56040518163ffffffff1660e01b815260040160206040518083038186803b15801561045d57600080fd5b505afa158015610471573d6000803e3d6000fd5b505050506040513d602081101561048757600080fd5b8101908080519060200190929190505050905060008111610510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e6f20617661696c61626c6520636f696e732e0000000000000000000000000081525060200191505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156105b157600080fd5b505afa1580156105c5573d6000803e3d6000fd5b505050506040513d60208110156105db57600080fd5b8101908080519060200190929190505050905081811015610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4e6f2045434f50206c65667420666f72207769746864726177696e670000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b505050506040513d602081101561073757600080fd5b81019080805190602001909291905050505061075e82600454610ad990919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff167f16cede93355151a80c954d7f6cfff8f86f06180bc241617ebc4a0cf9cee46707836040518082815260200191505060405180910390a25050565b600080429050600560009054906101000a900464ffffffffff1664ffffffffff168110156107e85760009150506108dc565b6000600560009054906101000a900464ffffffffff1664ffffffffff1682039050600061082162278d0083610b6190919063ffffffff16565b9050600080905060008090505b8281116108885761087961086a670de0b6b3a76400006001848154811061085157fe5b9060005260206000200154610bab90919063ffffffff16565b83610ad990919063ffffffff16565b9150808060010191505061082e565b50696bac6e471d49b4a800008111156108a957696bac6e471d49b4a8000090505b6004548110156108bc57600090506108d4565b6108d160045482610c3190919063ffffffff16565b90505b809450505050505b90565b6000806000806000696bac6e471d49b4a80000945060045493503073ffffffffffffffffffffffffffffffffffffffff16637bb476f56040518163ffffffff1660e01b815260040160206040518083038186803b15801561093f57600080fd5b505afa158015610953573d6000803e3d6000fd5b505050506040513d602081101561096957600080fd5b81019080805190602001909291905050509250600560009054906101000a900464ffffffffff169150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509091929394565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b696bac6e471d49b4a8000081565b600560009054906101000a900464ffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a6157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ad657806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600080828401905083811015610b57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000610ba383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c7b565b905092915050565b600080831415610bbe5760009050610c2b565b6000828402905082848281610bcf57fe5b0414610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b809150505b92915050565b6000610c7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d41565b905092915050565b60008083118290610d27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610d3357fe5b049050809150509392505050565b6000838311158290610dee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610db3578082015181840152602081019050610d98565b50505050905090810190601f168015610de05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72305820be2d7ebcecd25ebe226a847e91d217c83bef0e505938bccb17c1f5fb34fdcf4464736f6c634300050a00320000000000000000000000000106a1122fe94a9cf151097c1fe17229ec78ffad000000000000000000000000bdefd6a67ccf5774f4bf56e55fa7037995003aee