60806040526001600060146101000a81548160ff021916908360ff1602179055506001600060156101000a81548160ff021916908360ff1602179055507339052977ab08e4f1aa860ee9566983227551c1dc600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000a1919062000a94565b620f4240620000b1919062000ae5565b6002556009600a620000c4919062000a94565b620f4240620000d4919062000ae5565b60035561271060016009600a620000ec919062000a94565b620f4240620000fc919062000ae5565b62000108919062000ae5565b62000114919062000b5f565b6004556103e8600980600a6200012b919062000a94565b620f42406200013b919062000ae5565b62000147919062000ae5565b62000153919062000b5f565b60055561177060045462000168919062000ae5565b6006556001600860006101000a81548160ff021916908360ff1602179055506001600860016101000a81548160ff021916908360ff1602179055506003600860026101000a81548160ff021916908360ff1602179055506003600860036101000a81548160ff021916908360ff1602179055506002600955737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260016101000a81548160ff0219169083151502179055503480156200025d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000606460026009600a620002f7919062000a94565b620f424062000307919062000ae5565b62000313919062000ae5565b6200031f919062000b5f565b9050806009600a62000332919062000a94565b620f424062000342919062000ae5565b6200034e919062000b97565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000430919062000be3565b60405180910390a380600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200057d919062000be3565b60405180910390a36001600c60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000c00565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009885780860481111562000960576200095f620008fa565b5b6001851615620009705780820291505b8081029050620009808562000929565b945062000940565b94509492505050565b600082620009a3576001905062000a76565b81620009b3576000905062000a76565b8160018114620009cc5760028114620009d75762000a0d565b600191505062000a76565b60ff841115620009ec57620009eb620008fa565b5b8360020a91508482111562000a065762000a05620008fa565b5b5062000a76565b5060208310610133831016604e8410600b841016171562000a475782820a90508381111562000a415762000a40620008fa565b5b62000a76565b62000a56848484600162000936565b9250905081840481111562000a705762000a6f620008fa565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aa18262000a7d565b915062000aae8362000a87565b925062000add7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000991565b905092915050565b600062000af28262000a7d565b915062000aff8362000a7d565b925082820262000b0f8162000a7d565b9150828204841483151762000b295762000b28620008fa565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b6c8262000a7d565b915062000b798362000a7d565b92508262000b8c5762000b8b62000b30565b5b828204905092915050565b600062000ba48262000a7d565b915062000bb18362000a7d565b925082820390508181111562000bcc5762000bcb620008fa565b5b92915050565b62000bdd8162000a7d565b82525050565b600060208201905062000bfa600083018462000bd2565b92915050565b6134de8062000c106000396000f3fe6080604052600436106100e15760003560e01c8063715018a61161007f578063a9059cbb11610059578063a9059cbb146102bb578063dd62ed3e146102f8578063e8078d9414610335578063f2fde38b1461033f576100e8565b8063715018a61461024e5780638da5cb5b1461026557806395d89b4114610290576100e8565b806323b872dd116100bb57806323b872dd14610180578063313ce567146101bd578063368f4800146101e857806370a0823114610211576100e8565b806306fdde03146100ed578063095ea7b31461011857806318160ddd14610155576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610102610368565b60405161010f91906125c3565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a919061267e565b6103a5565b60405161014c91906126d9565b60405180910390f35b34801561016157600080fd5b5061016a610497565b6040516101779190612703565b60405180910390f35b34801561018c57600080fd5b506101a760048036038101906101a2919061271e565b6104ba565b6040516101b491906126d9565b60405180910390f35b3480156101c957600080fd5b506101d26106c4565b6040516101df919061278d565b60405180910390f35b3480156101f457600080fd5b5061020f600480360381019061020a91906127e2565b6106cd565b005b34801561021d57600080fd5b5061023860048036038101906102339190612822565b610889565b6040516102459190612703565b60405180910390f35b34801561025a57600080fd5b506102636108d2565b005b34801561027157600080fd5b5061027a6109db565b604051610287919061285e565b60405180910390f35b34801561029c57600080fd5b506102a5610a04565b6040516102b291906125c3565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd919061267e565b610a41565b6040516102ef91906126d9565b60405180910390f35b34801561030457600080fd5b5061031f600480360381019061031a9190612879565b610a9e565b60405161032c9190612703565b60405180910390f35b61033d610b25565b005b34801561034b57600080fd5b50610366600480360381019061036191906128f7565b611212565b005b60606040518060400160405280600481526020017f4d696b7500000000000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104859190612703565b60405180910390a36001905092915050565b60006009600a6104a79190612a86565b620f42406104b59190612ad1565b905090565b60006104c58461131a565b610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fb90612b5f565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106b05781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461062f9190612b7f565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6106bb8484846113f5565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075290612bff565b60405180910390fd5b600060016103e88461ffff166009600a6107759190612a86565b620f42406107839190612ad1565b61078d9190612ad1565b6107979190612c4e565b6107a19190612c7f565b90506002548110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612cff565b60405180910390fd5b80600281905550600060016103e88461ffff166009600a6108099190612a86565b620f42406108179190612ad1565b6108219190612ad1565b61082b9190612c4e565b6108359190612c7f565b905060035481101561087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390612d6b565b60405180910390fd5b8060038190555050505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095790612bff565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516109d1919061285e565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d494b5500000000000000000000000000000000000000000000000000000000815250905090565b6000610a4c3361131a565b610a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8290612b5f565b60405180910390fd5b610a963384846113f5565b905092915050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612bff565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5690612dd7565b60405180910390fd5b601260009054906101000a900460ff1615610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612e43565b60405180910390fd5b6000341180610cbe5750600047115b610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490612eaf565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690612f1b565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e109190612f50565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190612f50565b6040518363ffffffff1660e01b8152600401610eda929190612f7d565b6020604051808303816000875af1158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d9190612f50565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fa8600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476000611981565b600654600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461101b9190612b7f565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190612fed565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b5050905080611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90613050565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506111f4611a6f565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129790612bff565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161130f91906130cf565b60405180910390a150565b60008060009050601260009054906101000a900460ff161561133f57600190506113ec565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156113e15750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156113eb57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c90613136565b60405180910390fd5b601260009054906101000a900460ff1661155b57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561151b5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190612b5f565b60405180910390fd5b5b601260019054906101000a900460ff161580156115c15750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156115cf576115ce611b57565b5b600954431080156115e257506007544310155b80156116375750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ab573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146116aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a1906131a2565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561171357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561176b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117bb5761177b848484611c77565b6117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b19061320e565b60405180910390fd5b5b60006117c8858585611e0e565b9050600081846117d89190612b7f565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118259190612b7f565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816006600082825461187a9190612c7f565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc9190612c7f565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161196c9190612703565b60405180910390a36001925050509392505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081156119b357600090505b6119bc846120be565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401611a2396959493929190613269565b60606040518083038185885af1158015611a41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a6691906132df565b50505050505050565b606460026009600a611a819190612a86565b620f4240611a8f9190612ad1565b611a999190612ad1565b611aa39190612c4e565b600281905550606460026009600a611abb9190612a86565b620f4240611ac99190612ad1565b611ad39190612ad1565b611add9190612c4e565b6003819055506001601260006101000a81548160ff02191690831515021790555043600781905550600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff16600754600954611b3b9190612c7f565b611b459190612c7f565b611b4f9190612c7f565b600981905550565b6001601260016101000a81548160ff021916908315150217905550600060065490506004548110158015611b975750601260009054906101000a900460ff165b15611c59576005548110611bab5760055490505b60008190506009600a611bbe9190612a86565b811115611c3e5781600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c149190612c7f565b92505081905550611c24816122a8565b8160066000828254611c369190612b7f565b925050819055505b60004790506000811115611c5657611c55816124c7565b5b50505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff168015611ce45750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d3a5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0357600254831115611d525760009050611e02565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611df7575060035483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611df59190612c7f565b115b15611e0157600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff161580611e765750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611eca5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ed857600090506120b3565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561203257600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff16600754611f5d9190612c7f565b611f679190612c7f565b4310611f9e576064600060149054906101000a900460ff1660ff1684611f8d9190612ad1565b611f979190612c4e565b905061202d565b600860009054906101000a900460ff1660ff16600754611fbe9190612c7f565b4310611ff5576064600860039054906101000a900460ff1660ff1684611fe49190612ad1565b611fee9190612c4e565b905061202c565b600754431061202b576064600860029054906101000a900460ff1660ff168461201e9190612ad1565b6120289190612c4e565b90505b5b5b6120b2565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120b1576064600060159054906101000a900460ff1660ff16846120a49190612ad1565b6120ae9190612c4e565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122a5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161229c9190612703565b60405180910390a35b50565b6122b1816120be565b6000600267ffffffffffffffff8111156122ce576122cd613332565b5b6040519080825280602002602001820160405280156122fc5781602001602082028036833780820191505090505b509050308160008151811061231457612313613361565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123df9190612f50565b816001815181106123f3576123f2613361565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161249195949392919061344e565b600060405180830381600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561252f573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256d578082015181840152602081019050612552565b60008484015250505050565b6000601f19601f8301169050919050565b600061259582612533565b61259f818561253e565b93506125af81856020860161254f565b6125b881612579565b840191505092915050565b600060208201905081810360008301526125dd818461258a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612615826125ea565b9050919050565b6126258161260a565b811461263057600080fd5b50565b6000813590506126428161261c565b92915050565b6000819050919050565b61265b81612648565b811461266657600080fd5b50565b60008135905061267881612652565b92915050565b60008060408385031215612695576126946125e5565b5b60006126a385828601612633565b92505060206126b485828601612669565b9150509250929050565b60008115159050919050565b6126d3816126be565b82525050565b60006020820190506126ee60008301846126ca565b92915050565b6126fd81612648565b82525050565b600060208201905061271860008301846126f4565b92915050565b600080600060608486031215612737576127366125e5565b5b600061274586828701612633565b935050602061275686828701612633565b925050604061276786828701612669565b9150509250925092565b600060ff82169050919050565b61278781612771565b82525050565b60006020820190506127a2600083018461277e565b92915050565b600061ffff82169050919050565b6127bf816127a8565b81146127ca57600080fd5b50565b6000813590506127dc816127b6565b92915050565b600080604083850312156127f9576127f86125e5565b5b6000612807858286016127cd565b9250506020612818858286016127cd565b9150509250929050565b600060208284031215612838576128376125e5565b5b600061284684828501612633565b91505092915050565b6128588161260a565b82525050565b6000602082019050612873600083018461284f565b92915050565b600080604083850312156128905761288f6125e5565b5b600061289e85828601612633565b92505060206128af85828601612633565b9150509250929050565b60006128c4826125ea565b9050919050565b6128d4816128b9565b81146128df57600080fd5b50565b6000813590506128f1816128cb565b92915050565b60006020828403121561290d5761290c6125e5565b5b600061291b848285016128e2565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129aa5780860481111561298657612985612924565b5b60018516156129955780820291505b80810290506129a385612953565b945061296a565b94509492505050565b6000826129c35760019050612a7f565b816129d15760009050612a7f565b81600181146129e757600281146129f157612a20565b6001915050612a7f565b60ff841115612a0357612a02612924565b5b8360020a915084821115612a1a57612a19612924565b5b50612a7f565b5060208310610133831016604e8410600b8410161715612a555782820a905083811115612a5057612a4f612924565b5b612a7f565b612a628484846001612960565b92509050818404811115612a7957612a78612924565b5b81810290505b9392505050565b6000612a9182612648565b9150612a9c83612771565b9250612ac97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b3565b905092915050565b6000612adc82612648565b9150612ae783612648565b9250828202612af581612648565b91508282048414831517612b0c57612b0b612924565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612b4960108361253e565b9150612b5482612b13565b602082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b6000612b8a82612648565b9150612b9583612648565b9250828203905081811115612bad57612bac612924565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000612be960188361253e565b9150612bf482612bb3565b602082019050919050565b60006020820190508181036000830152612c1881612bdc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c5982612648565b9150612c6483612648565b925082612c7457612c73612c1f565b5b828204905092915050565b6000612c8a82612648565b9150612c9583612648565b9250828201905080821115612cad57612cac612924565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b6000612ce9600a8361253e565b9150612cf482612cb3565b602082019050919050565b60006020820190508181036000830152612d1881612cdc565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b6000612d55600e8361253e565b9150612d6082612d1f565b602082019050919050565b60006020820190508181036000830152612d8481612d48565b9050919050565b7f4c50206372656174656400000000000000000000000000000000000000000000600082015250565b6000612dc1600a8361253e565b9150612dcc82612d8b565b602082019050919050565b60006020820190508181036000830152612df081612db4565b9050919050565b7f74726164696e67206f70656e0000000000000000000000000000000000000000600082015250565b6000612e2d600c8361253e565b9150612e3882612df7565b602082019050919050565b60006020820190508181036000830152612e5c81612e20565b9050919050565b7f4e6f2045544820696e2063612f6d736700000000000000000000000000000000600082015250565b6000612e9960108361253e565b9150612ea482612e63565b602082019050919050565b60006020820190508181036000830152612ec881612e8c565b9050919050565b7f4e6f20746f6b656e7320696e2063610000000000000000000000000000000000600082015250565b6000612f05600f8361253e565b9150612f1082612ecf565b602082019050919050565b60006020820190508181036000830152612f3481612ef8565b9050919050565b600081519050612f4a8161261c565b92915050565b600060208284031215612f6657612f656125e5565b5b6000612f7484828501612f3b565b91505092915050565b6000604082019050612f92600083018561284f565b612f9f602083018461284f565b9392505050565b600081519050919050565b600081905092915050565b6000612fc782612fa6565b612fd18185612fb1565b9350612fe181856020860161254f565b80840191505092915050565b6000612ff98284612fbc565b915081905092915050565b7f4661696c656420616464696e67206c7000000000000000000000000000000000600082015250565b600061303a60108361253e565b915061304582613004565b602082019050919050565b600060208201905081810360008301526130698161302d565b9050919050565b6000819050919050565b600061309561309061308b846125ea565b613070565b6125ea565b9050919050565b60006130a78261307a565b9050919050565b60006130b98261309c565b9050919050565b6130c9816130ae565b82525050565b60006020820190506130e460008301846130c0565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000613120601d8361253e565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b600061318c600b8361253e565b915061319782613156565b602082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006131f860118361253e565b9150613203826131c2565b602082019050919050565b60006020820190508181036000830152613227816131eb565b9050919050565b6000819050919050565b600061325361324e6132498461322e565b613070565b612648565b9050919050565b61326381613238565b82525050565b600060c08201905061327e600083018961284f565b61328b60208301886126f4565b613298604083018761325a565b6132a5606083018661325a565b6132b2608083018561284f565b6132bf60a08301846126f4565b979650505050505050565b6000815190506132d981612652565b92915050565b6000806000606084860312156132f8576132f76125e5565b5b6000613306868287016132ca565b9350506020613317868287016132ca565b9250506040613328868287016132ca565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133c58161260a565b82525050565b60006133d783836133bc565b60208301905092915050565b6000602082019050919050565b60006133fb82613390565b613405818561339b565b9350613410836133ac565b8060005b8381101561344157815161342888826133cb565b9750613433836133e3565b925050600181019050613414565b5085935050505092915050565b600060a08201905061346360008301886126f4565b613470602083018761325a565b818103604083015261348281866133f0565b9050613491606083018561284f565b61349e60808301846126f4565b969550505050505056fea2646970667358221220c7223150a1ac27587c0e2ca1d425370058609f64a20aa887062927f78354812a64736f6c63430008130033