60806040523480156200001157600080fd5b506040516200142238038062001422833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604081810190526008808252675461757472696e6f60c01b60208301908152919450859350601292506200011e916000916200027c565b508151620001349060019060208501906200027c565b506002805460ff191660ff9290921691909117610100600160a81b031916610100330217905550620001679050620001e3565b60ff16600a0a61012c026003556200017e620001ed565b336000818152600660205260408120929092556004829055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001cb6001600160e01b03620001ed16565b60408051918252519081900360200190a3506200031e565b60025460ff165b90565b60006200021060045460020a6003546200021560201b62000dda1790919060201c565b905090565b600082620002265750600062000276565b828202828482816200023457fe5b0414620002735760405162461bcd60e51b8152600401808060200182810382526021815260200180620014016021913960400191505060405180910390fd5b90505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002bf57805160ff1916838001178555620002ef565b82800160010185558215620002ef579182015b82811115620002ef578251825591602001919060010190620002d2565b50620002fd92915062000301565b5090565b620001ea91905b80821115620002fd576000815560010162000308565b6110d3806200032e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635aa6e675116100b257806395d89b4111610081578063a9059cbb11610066578063a9059cbb146103bc578063ab033ea9146103f5578063dd62ed3e1461042a5761011b565b806395d89b411461037b578063a457c2d7146103835761011b565b80635aa6e675146102cb578063685a7fbf146102fc57806370a082311461031c57806373e07d0d1461034f5761011b565b8063313ce567116100ee578063313ce567146102475780633781b6af14610265578063395093511461028a5780634c880e22146102c35761011b565b806306fdde0314610120578063095ea7b31461019d57806318160ddd146101ea57806323b872dd14610204575b600080fd5b610128610465565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016257818101518382015260200161014a565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d6600480360360408110156101b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610519565b604080519115158252519081900360200190f35b6101f261058d565b60408051918252519081900360200190f35b6101d66004803603606081101561021a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356105ae565b61024f610724565b6040805160ff9092168252519081900360200190f35b61026d61072d565b6040805167ffffffffffffffff9092168252519081900360200190f35b6101d6600480360360408110156102a057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561073d565b6101f26107f0565b6102d36107f6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f26004803603602081101561031257600080fd5b503560ff16610817565b6101f26004803603602081101561033257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109ee565b610357610a2c565b6040518082600281111561036757fe5b60ff16815260200191505060405180910390f35b610128610a41565b6101d66004803603604081101561039957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610abf565b6101d6600480360360408110156103d257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610be2565b6104286004803603602081101561040b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ccb565b005b6101f26004803603604081101561044057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610da2565b60008054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561050f5780601f106104e45761010080835404028352916020019161050f565b820191906000526020600020905b8154815290600101906020018083116104f257829003601f168201915b5050505050905090565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60006105a960045460020a600354610dda90919063ffffffff16565b905090565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602090815260408083203384529091528120546105ef908363ffffffff610e5416565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260076020908152604080832033845290915281209190915560045461063a90849060020a63ffffffff610e9616565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260066020526040902054909150610673908263ffffffff610e5416565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526006602052604080822093909355908616815220546106b5908263ffffffff610ed816565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526006602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b60025460ff1690565b60055467ffffffffffffffff1690565b33600090815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616845290915281205461077e908363ffffffff610ed816565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60045490565b600254610100900473ffffffffffffffffffffffffffffffffffffffff1681565b600254600090610100900473ffffffffffffffffffffffffffffffffffffffff1633146108a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f676f7665726e616e636521000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008260028111156108b357fe5b14156108d5576004546108cd90600163ffffffff610ed816565b6004556108ef565b60018260028111156108e357fe5b14156108ef5760006004555b600580548391907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff166801000000000000000083600281111561092e57fe5b0217905550600580547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff16179055600061097161058d565b60055460405167ffffffffffffffff82168082529293507f1a0563c607268e0c306ff7a2d7637986dfc8cbce5e454d969c3d530321a26bc8929168010000000000000000900460ff16908490602081018360028111156109cd57fe5b60ff168152602001828152602001935050505060405180910390a192915050565b60045473ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260408120549091610587919060020a63ffffffff610dda16565b60055468010000000000000000900460ff1690565b60018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100878916150201909516949094049384018190048102820181019092528281526060939092909183018282801561050f5780601f106104e45761010080835404028352916020019161050f565b33600090815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054808310610b2d5733600090815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452909152812055610b6f565b610b3d818463ffffffff610e5416565b33600090815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff891684529091529020555b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600080610bfd60045460020a84610e9690919063ffffffff16565b33600090815260066020526040902054909150610c20908263ffffffff610e5416565b336000908152600660205260408082209290925573ffffffffffffffffffffffffffffffffffffffff861681522054610c5f908263ffffffff610ed816565b73ffffffffffffffffffffffffffffffffffffffff85166000818152600660209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b600254610100900473ffffffffffffffffffffffffffffffffffffffff163314610d5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f676f7665726e616e636521000000000000000000000000000000000000000000604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205490565b600082610de957506000610587565b82820282848281610df657fe5b0414610e4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061107d6021913960400191505060405180910390fd5b9392505050565b6000610e4d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f4c565b6000610e4d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ffd565b600082820183811015610e4d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115610ff5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611066576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315610fba578181015183820152602001610fa2565b50600083858161107257fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b18f71c51b525c5ad4720372ab0bfaaf1ed63675a685c616889e5e8082e085b164736f6c63430006060033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000035441550000000000000000000000000000000000000000000000000000000000