60806040526012600a62000014919062000cfb565b64174876e80062000026919062000d4b565b60035562000056606462000047600260035462000a2b60201b90919060201c565b62000aab60201b90919060201c565b60045562000086606462000077600260035462000a2b60201b90919060201c565b62000aab60201b90919060201c565b6005555f600a556001600b556001600c555f600d555f600e55600e54600c54600a54600b54600d54620000ba919062000d95565b620000c6919062000d95565b620000d2919062000d95565b620000de919062000d95565b600f556064601055606460115560646012555f601355601e6019556064601a555f601d60146101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff0219169083151502179055506103e8600260035462000147919062000d4b565b62000153919062000dfc565b601e5534801562000162575f80fd5b505f6200017462000afc60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000343573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000369919062000e98565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000413573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000439919062000e98565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049692919062000ed9565b6020604051808303815f875af1158015620004b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d9919062000e98565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507338505b4134824a43bb3166ecb76e9979b8c7472d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000a1d919062000f15565b60405180910390a36200107a565b5f80830362000a3d575f905062000aa5565b5f828462000a4c919062000d4b565b905082848262000a5d919062000dfc565b1462000aa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a979062000fb4565b60405180910390fd5b809150505b92915050565b5f62000af483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b0360201b60201c565b905092915050565b5f33905090565b5f808311829062000b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b43919062001058565b60405180910390fd5b505f838562000b5c919062000dfc565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000bf35780860481111562000bcb5762000bca62000b69565b5b600185161562000bdb5780820291505b808102905062000beb8562000b96565b945062000bab565b94509492505050565b5f8262000c0d576001905062000cdf565b8162000c1c575f905062000cdf565b816001811462000c35576002811462000c405762000c76565b600191505062000cdf565b60ff84111562000c555762000c5462000b69565b5b8360020a91508482111562000c6f5762000c6e62000b69565b5b5062000cdf565b5060208310610133831016604e8410600b841016171562000cb05782820a90508381111562000caa5762000ca962000b69565b5b62000cdf565b62000cbf848484600162000ba2565b9250905081840481111562000cd95762000cd862000b69565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000d078262000ce6565b915062000d148362000cef565b925062000d437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bfc565b905092915050565b5f62000d578262000ce6565b915062000d648362000ce6565b925082820262000d748162000ce6565b9150828204841483151762000d8e5762000d8d62000b69565b5b5092915050565b5f62000da18262000ce6565b915062000dae8362000ce6565b925082820190508082111562000dc95762000dc862000b69565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e088262000ce6565b915062000e158362000ce6565b92508262000e285762000e2762000dcf565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e628262000e37565b9050919050565b62000e748162000e56565b811462000e7f575f80fd5b50565b5f8151905062000e928162000e69565b92915050565b5f6020828403121562000eb05762000eaf62000e33565b5b5f62000ebf8482850162000e82565b91505092915050565b62000ed38162000e56565b82525050565b5f60408201905062000eee5f83018562000ec8565b62000efd602083018462000ec8565b9392505050565b62000f0f8162000ce6565b82525050565b5f60208201905062000f2a5f83018462000f04565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000f9c60218362000f30565b915062000fa98262000f40565b604082019050919050565b5f6020820190508181035f83015262000fcd8162000f8e565b9050919050565b5f81519050919050565b5f5b8381101562000ffd57808201518184015260208101905062000fe0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620010248262000fd4565b62001030818562000f30565b93506200104281856020860162000fde565b6200104d8162001008565b840191505092915050565b5f6020820190508181035f83015262001072818462001018565b905092915050565b613fcf80620010885f395ff3fe608060405260043610610207575f3560e01c8063751039fc11610117578063a9059cbb1161009f578063ded1e4381161006e578063ded1e4381461074a578063df20fd4914610786578063f2fde38b146107ae578063f4293890146107d6578063f887ea40146107ec5761020e565b8063a9059cbb14610680578063b2bdfa7b146106bc578063c0cbdea4146106e6578063dd62ed3e1461070e5761020e565b806382528791116100e657806382528791146105b0578063893d20e8146105d85780638da5cb5b1461060257806395d89b411461062c578063a8aa1b31146106565761020e565b8063751039fc1461050a57806377b54bad1461052057806378109e541461055c5780637d1db4a5146105865761020e565b8063293230b81161019a578063571ac8b011610169578063571ac8b01461042a5780635d83e1d5146104665780636ddd17131461048e57806370a08231146104b8578063715018a6146104f45761020e565b8063293230b81461038457806330c9a6a01461039a578063313ce567146103d657806355265669146104005761020e565b806318160ddd116101d657806318160ddd146102cc5780631df4ccfc146102f657806323b872dd14610320578063282c87491461035c5761020e565b80630445b6671461021257806306fdde031461023c57806308fd3d0514610266578063095ea7b3146102905761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b50610226610816565b6040516102339190613153565b60405180910390f35b348015610247575f80fd5b5061025061081c565b60405161025d91906131f6565b60405180910390f35b348015610271575f80fd5b5061027a610859565b6040516102879190613230565b60405180910390f35b34801561029b575f80fd5b506102b660048036038101906102b191906132d1565b61086c565b6040516102c39190613230565b60405180910390f35b3480156102d7575f80fd5b506102e0610959565b6040516102ed9190613153565b60405180910390f35b348015610301575f80fd5b5061030a610962565b6040516103179190613153565b60405180910390f35b34801561032b575f80fd5b506103466004803603810190610341919061330f565b610968565b6040516103539190613230565b60405180910390f35b348015610367575f80fd5b50610382600480360381019061037d919061335f565b610b5b565b005b34801561038f575f80fd5b50610398610cca565b005b3480156103a5575f80fd5b506103c060048036038101906103bb91906133e8565b610d92565b6040516103cd9190613153565b60405180910390f35b3480156103e1575f80fd5b506103ea610e02565b6040516103f7919061342e565b60405180910390f35b34801561040b575f80fd5b50610414610e0a565b6040516104219190613153565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190613447565b610e49565b60405161045d9190613230565b60405180910390f35b348015610471575f80fd5b5061048c600480360381019061048791906133e8565b610e7b565b005b348015610499575f80fd5b506104a2610f78565b6040516104af9190613230565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d99190613447565b610f8b565b6040516104eb9190613153565b60405180910390f35b3480156104ff575f80fd5b50610508610fd1565b005b348015610515575f80fd5b5061051e61111f565b005b34801561052b575f80fd5b50610546600480360381019061054191906132d1565b6111c7565b6040516105539190613230565b60405180910390f35b348015610567575f80fd5b50610570611327565b60405161057d9190613153565b60405180910390f35b348015610591575f80fd5b5061059a61132d565b6040516105a79190613153565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613472565b611333565b005b3480156105e3575f80fd5b506105ec6115cf565b6040516105f991906134f8565b60405180910390f35b34801561060d575f80fd5b506106166115dd565b60405161062391906134f8565b60405180910390f35b348015610637575f80fd5b50610640611604565b60405161064d91906131f6565b60405180910390f35b348015610661575f80fd5b5061066a611641565b60405161067791906134f8565b60405180910390f35b34801561068b575f80fd5b506106a660048036038101906106a191906132d1565b611666565b6040516106b39190613230565b60405180910390f35b3480156106c7575f80fd5b506106d061167a565b6040516106dd91906134f8565b60405180910390f35b3480156106f1575f80fd5b5061070c60048036038101906107079190613511565b61169d565b005b348015610719575f80fd5b50610734600480360381019061072f9190613561565b61174b565b6040516107419190613153565b60405180910390f35b348015610755575f80fd5b50610770600480360381019061076b919061359f565b6117cd565b60405161077d9190613230565b60405180910390f35b348015610791575f80fd5b506107ac60048036038101906107a79190613607565b6117e1565b005b3480156107b9575f80fd5b506107d460048036038101906107cf9190613447565b6118e4565b005b3480156107e1575f80fd5b506107ea611aa1565b005b3480156107f7575f80fd5b50610800611b08565b60405161080d91906136a0565b60405180910390f35b601e5481565b60606040518060400160405280600881526020017f4576657247617465000000000000000000000000000000000000000000000000815250905090565b601d60149054906101000a900460ff1681565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109479190613153565b60405180910390a36001905092915050565b5f600354905090565b600f5481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b4757610aca826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b52848484611b8f565b90509392505050565b610b636121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be690613703565b60405180910390fd5b85600a8190555084600d8190555083600b8190555082600c8190555081600e81905550610c5b82610c4d85610c3f88610c318b8d6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b6121cd90919063ffffffff16565b600f81905550806010819055506002601054610c77919061377b565b600f5410610cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb1906137f5565b60405180910390fd5b610cc261222a565b505050505050565b610cd26121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590613703565b60405180910390fd5b6001601d60146101000a81548160ff021916908315150217905550606460128190555060646011819055505f601381905550565b5f610dfb610d9e610e0a565b610ded610dde6002610dd0601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8b565b6122e290919063ffffffff16565b856122e290919063ffffffff16565b61235990919063ffffffff16565b9050919050565b5f6012905090565b5f610e44610e175f610f8b565b610e36610e2561dead610f8b565b6003546123a290919063ffffffff16565b6123a290919063ffffffff16565b905090565b5f610e74827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086c565b9050919050565b610e836121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690613703565b60405180910390fd5b6001811015610f1c575f80fd5b606481600354610f2c9190613813565b610f36919061377b565b6005819055507f1273be876d6df5e39545188e5f5d2d930e30e383f2fb2dc9dfaae2643901be51600554604051610f6d9190613153565b60405180910390a150565b601d60159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fd96121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c90613703565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111276121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613703565b60405180910390fd5b600354600481905550600354600581905550565b5f80820361124a578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120891906134f8565b602060405180830381865afa158015611223573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112479190613868565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f838360405161127b929190613893565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112df929190613893565b6020604051808303815f875af11580156112fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131f91906138ce565b905092915050565b60055481565b60045481565b61133b6121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90613703565b60405180910390fd5b8460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f06cd79b5e338fdebb51e28f829f3333e4fda9663d4732f262d97dbbacf748b1560155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516115c094939291906138f9565b60405180910390a15050505050565b5f6115d86115dd565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4556455247415445000000000000000000000000000000000000000000000000815250905090565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611672338484611b8f565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116a56121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890613703565b60405180910390fd5b816011819055508260128190555080601381905550505050565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f826117d883610d92565b11905092915050565b6117e96121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613703565b60405180910390fd5b81601d60156101000a81548160ff02191690831515021790555080601e819055507f519582fd959400ab5e398f78c2768dea99251e8e26aed5578213b059ce4cee60601e54601d60159054906101000a900460ff166040516118d892919061393c565b60405180910390a15050565b6118ec6121c6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613703565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd906139d3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611b05573d5f803e3d5ffd5b50565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b91906131f6565b60405180910390fd5b505f8385611b8291906139f1565b9050809150509392505050565b5f601f5f9054906101000a900460ff1615611bb657611baf8484846123eb565b90506121bf565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c54575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ca957601d60149054906101000a900460ff16611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613a6e565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d2c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d66575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbf5750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e18575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e71575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ec4575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f27575f611ed384610f8b565b90506005548382611ee49190613a8c565b1115611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c90613b2f565b60405180910390fd5b505b611f3184836125b5565b611f3961264f565b15611f4757611f46612721565b5b611fce826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806120ab575060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6120bf576120ba858486612d1c565b6120c1565b825b90506121138160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121b19190613153565b60405180910390a360019150505b9392505050565b5f33905090565b5f8082846121db9190613a8c565b905083811015612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221790613b97565b60405180910390fd5b8091505092915050565b7f8cc651ceed4360bdb07d4dfc17daa4a6fa17092a313d2464a582a73e9b9328006122756064612267601254600f546122e290919063ffffffff16565b61235990919063ffffffff16565b61229f6064612291601154600f546122e290919063ffffffff16565b61235990919063ffffffff16565b6122c960646122bb601354600f546122e290919063ffffffff16565b61235990919063ffffffff16565b6040516122d893929190613bb5565b60405180910390a1565b5f8083036122f2575f9050612353565b5f82846122ff9190613813565b905082848261230e919061377b565b1461234e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234590613c5a565b60405180910390fd5b809150505b92915050565b5f61239a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130da565b905092915050565b5f6123e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b2d565b905092915050565b5f612473826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2d9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125048260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125a29190613153565b60405180910390a3600190509392505050565b6004548111158061260c575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264290613cc2565b60405180910390fd5b5050565b5f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126b95750601f5f9054906101000a900460ff16155b80156126d15750601d60159054906101000a900460ff165b801561271c5750601e5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001601f5f6101000a81548160ff0219169083151502179055505f61274a601954601a546117cd565b61275657600a54612758565b5f5b90505f6127976002612789600f5461277b86601e546122e290919063ffffffff16565b61235990919063ffffffff16565b61235990919063ffffffff16565b90505f6127af82601e546123a290919063ffffffff16565b90505f600267ffffffffffffffff8111156127cd576127cc613ce0565b5b6040519080825280602002602001820160405280156127fb5781602001602082028036833780820191505090505b50905030815f8151811061281257612811613d0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061288257612881613d0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b8152600401612922959493929190613e2a565b5f604051808303815f87803b158015612939575f80fd5b505af115801561294b573d5f803e3d5ffd5b505050505f61296382476123a290919063ffffffff16565b90505f61298e61297d60028961235990919063ffffffff16565b600f546123a290919063ffffffff16565b90505f6129c960026129bb846129ad8c886122e290919063ffffffff16565b61235990919063ffffffff16565b61235990919063ffffffff16565b90505f6129f3836129e5600b54876122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612a1d84612a0f600d54886122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612a4785612a39600c54896122e290919063ffffffff16565b61235990919063ffffffff16565b90505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612a8f90613eaf565b5f6040518083038185875af1925050503d805f8114612ac9576040519150601f19603f3d011682016040523d82523d5f602084013e612ace565b606091505b5050905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612b1790613eaf565b5f6040518083038185875af1925050503d805f8114612b51576040519150601f19603f3d011682016040523d82523d5f602084013e612b56565b606091505b50508091505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ba190613eaf565b5f6040518083038185875af1925050503d805f8114612bdb576040519150601f19603f3d011682016040523d82523d5f602084013e612be0565b606091505b5050809150505f90505f8b1115612cf557601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e5f8060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612c7796959493929190613ec3565b60606040518083038185885af1158015612c93573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612cb89190613f22565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858c604051612cec929190613f72565b60405180910390a15b5050505050505050505050505f601f5f6101000a81548160ff021916908315150217905550565b5f806013549050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d81576011549050612ddc565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612ddb5760125490505b5b5f612e246064601054612def9190613813565b612e1684612e08600f548a6122e290919063ffffffff16565b6122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612e50600f54612e42600e54856122e290919063ffffffff16565b61235990919063ffffffff16565b90505f612e6682846123a290919063ffffffff16565b9050612eb88160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612f6a8260065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121cd90919063ffffffff16565b60065f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130299190613153565b60405180910390a35f8211156130ba5761304e826003546123a290919063ffffffff16565b6003819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130b19190613153565b60405180910390a35b6130cd83886123a290919063ffffffff16565b9450505050509392505050565b5f8083118290613120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311791906131f6565b60405180910390fd5b505f838561312e919061377b565b9050809150509392505050565b5f819050919050565b61314d8161313b565b82525050565b5f6020820190506131665f830184613144565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156131a3578082015181840152602081019050613188565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6131c88261316c565b6131d28185613176565b93506131e2818560208601613186565b6131eb816131ae565b840191505092915050565b5f6020820190508181035f83015261320e81846131be565b905092915050565b5f8115159050919050565b61322a81613216565b82525050565b5f6020820190506132435f830184613221565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6132768261324d565b9050919050565b6132868161326c565b8114613290575f80fd5b50565b5f813590506132a18161327d565b92915050565b6132b08161313b565b81146132ba575f80fd5b50565b5f813590506132cb816132a7565b92915050565b5f80604083850312156132e7576132e6613249565b5b5f6132f485828601613293565b9250506020613305858286016132bd565b9150509250929050565b5f805f6060848603121561332657613325613249565b5b5f61333386828701613293565b935050602061334486828701613293565b9250506040613355868287016132bd565b9150509250925092565b5f805f805f8060c0878903121561337957613378613249565b5b5f61338689828a016132bd565b965050602061339789828a016132bd565b95505060406133a889828a016132bd565b94505060606133b989828a016132bd565b93505060806133ca89828a016132bd565b92505060a06133db89828a016132bd565b9150509295509295509295565b5f602082840312156133fd576133fc613249565b5b5f61340a848285016132bd565b91505092915050565b5f60ff82169050919050565b61342881613413565b82525050565b5f6020820190506134415f83018461341f565b92915050565b5f6020828403121561345c5761345b613249565b5b5f61346984828501613293565b91505092915050565b5f805f805f60a0868803121561348b5761348a613249565b5b5f61349888828901613293565b95505060206134a988828901613293565b94505060406134ba88828901613293565b93505060606134cb88828901613293565b92505060806134dc88828901613293565b9150509295509295909350565b6134f28161326c565b82525050565b5f60208201905061350b5f8301846134e9565b92915050565b5f805f6060848603121561352857613527613249565b5b5f613535868287016132bd565b9350506020613546868287016132bd565b9250506040613557868287016132bd565b9150509250925092565b5f806040838503121561357757613576613249565b5b5f61358485828601613293565b925050602061359585828601613293565b9150509250929050565b5f80604083850312156135b5576135b4613249565b5b5f6135c2858286016132bd565b92505060206135d3858286016132bd565b9150509250929050565b6135e681613216565b81146135f0575f80fd5b50565b5f81359050613601816135dd565b92915050565b5f806040838503121561361d5761361c613249565b5b5f61362a858286016135f3565b925050602061363b858286016132bd565b9150509250929050565b5f819050919050565b5f61366861366361365e8461324d565b613645565b61324d565b9050919050565b5f6136798261364e565b9050919050565b5f61368a8261366f565b9050919050565b61369a81613680565b82525050565b5f6020820190506136b35f830184613691565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136ed602083613176565b91506136f8826136b9565b602082019050919050565b5f6020820190508181035f83015261371a816136e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137858261313b565b91506137908361313b565b9250826137a05761379f613721565b5b828204905092915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203530250000005f82015250565b5f6137df601d83613176565b91506137ea826137ab565b602082019050919050565b5f6020820190508181035f83015261380c816137d3565b9050919050565b5f61381d8261313b565b91506138288361313b565b92508282026138368161313b565b9150828204841483151761384d5761384c61374e565b5b5092915050565b5f81519050613862816132a7565b92915050565b5f6020828403121561387d5761387c613249565b5b5f61388a84828501613854565b91505092915050565b5f6040820190506138a65f8301856134e9565b6138b36020830184613144565b9392505050565b5f815190506138c8816135dd565b92915050565b5f602082840312156138e3576138e2613249565b5b5f6138f0848285016138ba565b91505092915050565b5f60808201905061390c5f8301876134e9565b61391960208301866134e9565b61392660408301856134e9565b61393360608301846134e9565b95945050505050565b5f60408201905061394f5f830185613144565b61395c6020830184613221565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139bd602683613176565b91506139c882613963565b604082019050919050565b5f6020820190508181035f8301526139ea816139b1565b9050919050565b5f6139fb8261313b565b9150613a068361313b565b9250828203905081811115613a1e57613a1d61374e565b5b92915050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f613a58601483613176565b9150613a6382613a24565b602082019050919050565b5f6020820190508181035f830152613a8581613a4c565b9050919050565b5f613a968261313b565b9150613aa18361313b565b9250828201905080821115613ab957613ab861374e565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f613b19603e83613176565b9150613b2482613abf565b604082019050919050565b5f6020820190508181035f830152613b4681613b0d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b81601b83613176565b9150613b8c82613b4d565b602082019050919050565b5f6020820190508181035f830152613bae81613b75565b9050919050565b5f606082019050613bc85f83018661341f565b613bd5602083018561341f565b613be2604083018461341f565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c44602183613176565b9150613c4f82613bea565b604082019050919050565b5f6020820190508181035f830152613c7181613c38565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613cac601183613176565b9150613cb782613c78565b602082019050919050565b5f6020820190508181035f830152613cd981613ca0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613d5d613d58613d5384613d3a565b613645565b61313b565b9050919050565b613d6d81613d43565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613da58161326c565b82525050565b5f613db68383613d9c565b60208301905092915050565b5f602082019050919050565b5f613dd882613d73565b613de28185613d7d565b9350613ded83613d8d565b805f5b83811015613e1d578151613e048882613dab565b9750613e0f83613dc2565b925050600181019050613df0565b5085935050505092915050565b5f60a082019050613e3d5f830188613144565b613e4a6020830187613d64565b8181036040830152613e5c8186613dce565b9050613e6b60608301856134e9565b613e786080830184613144565b9695505050505050565b5f81905092915050565b50565b5f613e9a5f83613e82565b9150613ea582613e8c565b5f82019050919050565b5f613eb982613e8f565b9150819050919050565b5f60c082019050613ed65f8301896134e9565b613ee36020830188613144565b613ef06040830187613d64565b613efd6060830186613d64565b613f0a60808301856134e9565b613f1760a0830184613144565b979650505050505050565b5f805f60608486031215613f3957613f38613249565b5b5f613f4686828701613854565b9350506020613f5786828701613854565b9250506040613f6886828701613854565b9150509250925092565b5f604082019050613f855f830185613144565b613f926020830184613144565b939250505056fea2646970667358221220e108c3c1e57212a5230e774569f87de76d2223e2d86017be7d716b8f977f64be64736f6c63430008140033