60806040526012600a62000014919062000da8565b6402540be40062000026919062000ee5565b6002556012600a62000039919062000da8565b6311e1a3006200004a919062000ee5565b6003556012600a6200005d919062000da8565b6311e1a3006200006e919062000ee5565b60045561dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760146101000a81548160ff0219169083151502179055506001600c556004600d556005600e556005600f556000601560006101000a81548160ff0219169083151502179055506000601560016101000a81548160ff0219169083151502179055506001601760016101000a81548160ff0219169083151502179055506000601760026101000a81548160ff0219169083151502179055506107d06004600254620001fa919062000ee5565b62000206919062000d15565b6018553480156200021657600080fd5b5060006200022962000b4460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200040b57600080fd5b505afa15801562000420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000446919062000bc6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004ca57600080fd5b505afa158015620004df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000505919062000bc6565b306040518363ffffffff1660e01b81526004016200052592919062000c3b565b602060405180830381600087803b1580156200054057600080fd5b505af115801562000555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200057b919062000bc6565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507349a74310a26c42eeb5ac0dca9d81295bec516bd4601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507349a74310a26c42eeb5ac0dca9d81295bec516bd4601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000a7f600d54600c5462000b4c60201b62001a311790919060201c565b600e81905550600e54600f81905550600254600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000b36919062000c8a565b60405180910390a36200103f565b600033905090565b600080828462000b5d919062000cb8565b90508381101562000ba5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9c9062000c68565b60405180910390fd5b8091505092915050565b60008151905062000bc08162001025565b92915050565b60006020828403121562000bd957600080fd5b600062000be98482850162000baf565b91505092915050565b62000bfd8162000f46565b82525050565b600062000c12601b8362000ca7565b915062000c1f8262000ffc565b602082019050919050565b62000c358162000f7a565b82525050565b600060408201905062000c52600083018562000bf2565b62000c61602083018462000bf2565b9392505050565b6000602082019050818103600083015262000c838162000c03565b9050919050565b600060208201905062000ca1600083018462000c2a565b92915050565b600082825260208201905092915050565b600062000cc58262000f7a565b915062000cd28362000f7a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d0a5762000d0962000f91565b5b828201905092915050565b600062000d228262000f7a565b915062000d2f8362000f7a565b92508262000d425762000d4162000fc0565b5b828204905092915050565b6000808291508390505b600185111562000d9f5780860481111562000d775762000d7662000f91565b5b600185161562000d875780820291505b808102905062000d978562000fef565b945062000d57565b94509492505050565b600062000db58262000f7a565b915062000dc28362000f84565b925062000df17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000df9565b905092915050565b60008262000e0b576001905062000ede565b8162000e1b576000905062000ede565b816001811462000e34576002811462000e3f5762000e75565b600191505062000ede565b60ff84111562000e545762000e5362000f91565b5b8360020a91508482111562000e6e5762000e6d62000f91565b5b5062000ede565b5060208310610133831016604e8410600b841016171562000eaf5782820a90508381111562000ea95762000ea862000f91565b5b62000ede565b62000ebe848484600162000d4d565b9250905081840481111562000ed85762000ed762000f91565b5b81810290505b9392505050565b600062000ef28262000f7a565b915062000eff8362000f7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f3b5762000f3a62000f91565b5b828202905092915050565b600062000f538262000f5a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b620010308162000f46565b81146200103c57600080fd5b50565b613b73806200104f6000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610915578063f2fde38b1461093e578063f84ba65d14610967578063f887ea4014610990578063fe575a87146109bb578063ffb54a99146109f857610267565b8063bf56b3711461082c578063ca33e64c14610857578063ca987b0e14610882578063da00097d146108ad578063dd62ed3e146108d857610267565b80638da5cb5b116101085780638da5cb5b1461071a5780638e2eee841461074557806395d89b411461076e57806398118cb414610799578063a8aa1b31146107c4578063a9059cbb146107ef57610267565b80637d1db4a514610631578063807c2d9c1461065c578063893d20e814610687578063896648c1146106b25780638b42507f146106dd57610267565b8063313ce567116101dd5780635e562f3b116101a15780635e562f3b14610535578063658d4b7f1461055e5780636b67c4df1461058757806370a08231146105b2578063715018a6146105ef57806375f0a8741461060657610267565b8063313ce5671461043a5780633f4218e01461046557806344de2e4c146104a25780634a74bb02146104cd578063571ac8b0146104f857610267565b806318160ddd1161022457806318160ddd146103515780631df4ccfc1461037c578063220f6696146103a757806323b872dd146103d25780632b112e491461040f57610267565b80630445b6671461026c57806306fdde0314610297578063095ea7b3146102c25780630b78f9c0146102ff5780630d2959801461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a23565b60405161028e9190613594565b60405180910390f35b3480156102a357600080fd5b506102ac610a29565b6040516102b99190613452565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612fa4565b610a66565b6040516102f6919061341c565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061308a565b610b58565b005b34801561033457600080fd5b5061034f600480360381019061034a9190613038565b610c25565b005b34801561035d57600080fd5b50610366610cd7565b6040516103739190613594565b60405180910390f35b34801561038857600080fd5b50610391610ce1565b60405161039e9190613594565b60405180910390f35b3480156103b357600080fd5b506103bc610ce7565b6040516103c9919061341c565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190612f19565b610cfa565b604051610406919061341c565b60405180910390f35b34801561041b57600080fd5b50610424610efa565b6040516104319190613594565b60405180910390f35b34801561044657600080fd5b5061044f610f7c565b60405161045c9190613632565b60405180910390f35b34801561047157600080fd5b5061048c60048036038101906104879190612e8b565b610f85565b604051610499919061341c565b60405180910390f35b3480156104ae57600080fd5b506104b7610fa5565b6040516104c4919061341c565b60405180910390f35b3480156104d957600080fd5b506104e2610fb8565b6040516104ef919061341c565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612e8b565b610fcb565b60405161052c919061341c565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190613038565b610ffe565b005b34801561056a57600080fd5b5061058560048036038101906105809190612f68565b6110b0565b005b34801561059357600080fd5b5061059c6111a0565b6040516105a99190613594565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190612e8b565b6111a6565b6040516105e69190613594565b60405180910390f35b3480156105fb57600080fd5b506106046111ef565b005b34801561061257600080fd5b5061061b611342565b60405161062891906133a0565b60405180910390f35b34801561063d57600080fd5b50610646611368565b6040516106539190613594565b60405180910390f35b34801561066857600080fd5b5061067161136e565b60405161067e9190613594565b60405180910390f35b34801561069357600080fd5b5061069c611374565b6040516106a991906133a0565b60405180910390f35b3480156106be57600080fd5b506106c7611383565b6040516106d4919061341c565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190612e8b565b611396565b604051610711919061341c565b60405180910390f35b34801561072657600080fd5b5061072f6113b6565b60405161073c91906133a0565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190612fe0565b6113df565b005b34801561077a57600080fd5b5061078361153d565b6040516107909190613452565b60405180910390f35b3480156107a557600080fd5b506107ae61157a565b6040516107bb9190613594565b60405180910390f35b3480156107d057600080fd5b506107d9611580565b6040516107e691906133a0565b60405180910390f35b3480156107fb57600080fd5b5061081660048036038101906108119190612fa4565b6115a6565b604051610823919061341c565b60405180910390f35b34801561083857600080fd5b506108416115bb565b60405161084e9190613594565b60405180910390f35b34801561086357600080fd5b5061086c6115c1565b60405161087991906133a0565b60405180910390f35b34801561088e57600080fd5b506108976115e7565b6040516108a49190613594565b60405180910390f35b3480156108b957600080fd5b506108c26115ed565b6040516108cf919061341c565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa9190612edd565b611600565b60405161090c9190613594565b60405180910390f35b34801561092157600080fd5b5061093c60048036038101906109379190613061565b611687565b005b34801561094a57600080fd5b5061096560048036038101906109609190612e8b565b611726565b005b34801561097357600080fd5b5061098e60048036038101906109899190612f68565b6118e8565b005b34801561099c57600080fd5b506109a56119d8565b6040516109b29190613437565b60405180910390f35b3480156109c757600080fd5b506109e260048036038101906109dd9190612e8b565b6119fe565b6040516109ef919061341c565b60405180910390f35b348015610a0457600080fd5b50610a0d611a1e565b604051610a1a919061341c565b60405180910390f35b60185481565b60606040518060400160405280600d81526020017f4e74697479204e6574776f726b00000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b469190613594565b60405180910390a36001905092915050565b610b60611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be490613534565b60405180910390fd5b81600c8190555080600d81905550610c12600d54600c54611a3190919063ffffffff16565b600e81905550600e54600f819055505050565b610c2d611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb190613534565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b6000600254905090565b600e5481565b601760009054906101000a900460ff1681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ee657610e65826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ef1848484611afb565b90509392505050565b6000610f77610f2a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a6565b610f69610f58600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166111a6565b60025461231290919063ffffffff16565b61231290919063ffffffff16565b905090565b60006012905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600760149054906101000a900460ff1681565b601760019054906101000a900460ff1681565b6000610ff7827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a66565b9050919050565b611006611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108a90613534565b60405180910390fd5b80601560016101000a81548160ff02191690831515021790555050565b6110b8611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613534565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f7611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60045481565b600061137e6113b6565b905090565b601560019054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113e7611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90613534565b60405180910390fd5b60005b838390508110156115375781601660008686858181106114c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114d59190612e8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061153090613880565b9050611477565b50505050565b60606040518060400160405280600481526020017f4e54544800000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115b3338484611afb565b905092915050565b60145481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b601760029054906101000a900460ff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61168f611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390613534565b60405180910390fd5b8060048190555050565b61172e611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b290613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290613494565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f0611a8f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613534565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900460ff1681565b6000808284611a4091906136ad565b905083811015611a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7c906134b4565b60405180910390fd5b8091505092915050565b600033905090565b6000838311158290611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad69190613452565b60405180910390fd5b5060008385611aee919061378e565b9050809150509392505050565b6000601760009054906101000a900460ff1615611b2457611b1d84848461235c565b905061230b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bc85750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c1d57601560009054906101000a900460ff16611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c13906134f4565b60405180910390fd5b5b60035482111580611c775750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90613474565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d215750601760009054906101000a900460ff16155b8015611d395750601760019054906101000a900460ff165b8015611d865750601854600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611d9457611d9361252f565b5b611d9c612af2565b158015611df65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611e86576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e74906134d4565b60405180910390fd5b611e85612aff565b5b601560019054906101000a900460ff1615611f7f57601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f3f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7590613574565b60405180910390fd5b5b612008826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120b15750600760149054906101000a900460ff165b1561214d5760045461210b83600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b111561214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214390613554565b60405180910390fd5b5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121f35750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121fd5782612209565b612208858585612b08565b5b905061225d81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122fd9190613594565b60405180910390a360019150505b9392505050565b600061235483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a97565b905092915050565b60006123e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061247c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251c9190613594565b60405180910390a3600190509392505050565b6001601760006101000a81548160ff0219169083151502179055506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006125cc60026125be600e546125b0600c5487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b612d2b90919063ffffffff16565b905060006125e3828461231290919063ffffffff16565b90506000600267ffffffffffffffff811115612628577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126565781602001602082028036833780820191505090505b5090503081600081518110612694577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561273657600080fd5b505afa15801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e9190612eb4565b816001815181106127a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128469594939291906135af565b600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b50505050600047905060006128a96128986002600c54612d2b90919063ffffffff16565b600e5461231290919063ffffffff16565b905060006128e760026128d9846128cb600c5488612cb090919063ffffffff16565b612d2b90919063ffffffff16565b612d2b90919063ffffffff16565b9050600061291283612904600d5487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516129609061338b565b600060405180830381858888f193505050503d806000811461299e576040519150601f19603f3d011682016040523d82523d6000602084013e6129a3565b606091505b50509050600090506000881115612acc57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612a3d969594939291906133bb565b6060604051808303818588803b158015612a5657600080fd5b505af1158015612a6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a8f91906130c6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068389604051612ac3929190613609565b60405180910390a15b5050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000806014541415905090565b43601481905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b6857600e54612b6c565b600f545b90506000612b966064612b888487612cb090919063ffffffff16565b612d2b90919063ffffffff16565b9050612bea81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3190919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c8a9190613594565b60405180910390a3612ca5818561231290919063ffffffff16565b925050509392505050565b600080831415612cc35760009050612d25565b60008284612cd19190613734565b9050828482612ce09190613703565b14612d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1790613514565b60405180910390fd5b809150505b92915050565b6000612d6d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d75565b905092915050565b60008083118290612dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db39190613452565b60405180910390fd5b5060008385612dcb9190613703565b9050809150509392505050565b600081359050612de781613af8565b92915050565b600081519050612dfc81613af8565b92915050565b60008083601f840112612e1457600080fd5b8235905067ffffffffffffffff811115612e2d57600080fd5b602083019150836020820283011115612e4557600080fd5b9250929050565b600081359050612e5b81613b0f565b92915050565b600081359050612e7081613b26565b92915050565b600081519050612e8581613b26565b92915050565b600060208284031215612e9d57600080fd5b6000612eab84828501612dd8565b91505092915050565b600060208284031215612ec657600080fd5b6000612ed484828501612ded565b91505092915050565b60008060408385031215612ef057600080fd5b6000612efe85828601612dd8565b9250506020612f0f85828601612dd8565b9150509250929050565b600080600060608486031215612f2e57600080fd5b6000612f3c86828701612dd8565b9350506020612f4d86828701612dd8565b9250506040612f5e86828701612e61565b9150509250925092565b60008060408385031215612f7b57600080fd5b6000612f8985828601612dd8565b9250506020612f9a85828601612e4c565b9150509250929050565b60008060408385031215612fb757600080fd5b6000612fc585828601612dd8565b9250506020612fd685828601612e61565b9150509250929050565b600080600060408486031215612ff557600080fd5b600084013567ffffffffffffffff81111561300f57600080fd5b61301b86828701612e02565b9350935050602061302e86828701612e4c565b9150509250925092565b60006020828403121561304a57600080fd5b600061305884828501612e4c565b91505092915050565b60006020828403121561307357600080fd5b600061308184828501612e61565b91505092915050565b6000806040838503121561309d57600080fd5b60006130ab85828601612e61565b92505060206130bc85828601612e61565b9150509250929050565b6000806000606084860312156130db57600080fd5b60006130e986828701612e76565b93505060206130fa86828701612e76565b925050604061310b86828701612e76565b9150509250925092565b6000613121838361312d565b60208301905092915050565b613136816137c2565b82525050565b613145816137c2565b82525050565b60006131568261365d565b6131608185613680565b935061316b8361364d565b8060005b8381101561319c5781516131838882613115565b975061318e83613673565b92505060018101905061316f565b5085935050505092915050565b6131b2816137d4565b82525050565b6131c181613817565b82525050565b6131d08161383b565b82525050565b60006131e182613668565b6131eb818561369c565b93506131fb81856020860161384d565b61320481613927565b840191505092915050565b600061321c60118361369c565b915061322782613938565b602082019050919050565b600061323f60268361369c565b915061324a82613961565b604082019050919050565b6000613262601b8361369c565b915061326d826139b0565b602082019050919050565b600061328560168361369c565b9150613290826139d9565b602082019050919050565b60006132a860148361369c565b91506132b382613a02565b602082019050919050565b60006132cb60218361369c565b91506132d682613a2b565b604082019050919050565b60006132ee60208361369c565b91506132f982613a7a565b602082019050919050565b6000613311600083613691565b915061331c82613aa3565b600082019050919050565b600061333460148361369c565b915061333f82613aa6565b602082019050919050565b6000613357600b8361369c565b915061336282613acf565b602082019050919050565b61337681613800565b82525050565b6133858161380a565b82525050565b600061339682613304565b9150819050919050565b60006020820190506133b5600083018461313c565b92915050565b600060c0820190506133d0600083018961313c565b6133dd602083018861336d565b6133ea60408301876131c7565b6133f760608301866131c7565b613404608083018561313c565b61341160a083018461336d565b979650505050505050565b600060208201905061343160008301846131a9565b92915050565b600060208201905061344c60008301846131b8565b92915050565b6000602082019050818103600083015261346c81846131d6565b905092915050565b6000602082019050818103600083015261348d8161320f565b9050919050565b600060208201905081810360008301526134ad81613232565b9050919050565b600060208201905081810360008301526134cd81613255565b9050919050565b600060208201905081810360008301526134ed81613278565b9050919050565b6000602082019050818103600083015261350d8161329b565b9050919050565b6000602082019050818103600083015261352d816132be565b9050919050565b6000602082019050818103600083015261354d816132e1565b9050919050565b6000602082019050818103600083015261356d81613327565b9050919050565b6000602082019050818103600083015261358d8161334a565b9050919050565b60006020820190506135a9600083018461336d565b92915050565b600060a0820190506135c4600083018861336d565b6135d160208301876131c7565b81810360408301526135e3818661314b565b90506135f2606083018561313c565b6135ff608083018461336d565b9695505050505050565b600060408201905061361e600083018561336d565b61362b602083018461336d565b9392505050565b6000602082019050613647600083018461337c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006136b882613800565b91506136c383613800565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136f8576136f76138c9565b5b828201905092915050565b600061370e82613800565b915061371983613800565b925082613729576137286138f8565b5b828204905092915050565b600061373f82613800565b915061374a83613800565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613783576137826138c9565b5b828202905092915050565b600061379982613800565b91506137a483613800565b9250828210156137b7576137b66138c9565b5b828203905092915050565b60006137cd826137e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061382282613829565b9050919050565b6000613834826137e0565b9050919050565b600061384682613800565b9050919050565b60005b8381101561386b578082015181840152602081019050613850565b8381111561387a576000848401525b50505050565b600061388b82613800565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138be576138bd6138c9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5a65726f2062616c616e63652076696f6c617465642100000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f4d61782077616c6c65742076696f6c6174656421000000000000000000000000600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b613b01816137c2565b8114613b0c57600080fd5b50565b613b18816137d4565b8114613b2357600080fd5b50565b613b2f81613800565b8114613b3a57600080fd5b5056fea26469706673582212200194ead06b69fbbcd92a4ffacd9efdcafd0331993b7f3bcd236070b9dcb6417c64736f6c63430008040033