60806040526009600a62000014919062000712565b64e8d4a5100062000026919062000763565b60015560c860025560c860035560c86004556000600a60146101000a81548160ff0219169083151502179055506000600b556000600c556107d0600d556000600e556107d0600f556107d06010556107d06011556127106012556001601360006101000a81548160ff021916908315150217905550620186a061012c600154620000b1919062000763565b620000bd9190620007f3565b601655620186a0600a600154620000d5919062000763565b620000e19190620007f3565b601755348015620000f157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060007303f7724180aa6b939894b5ca4314783b0b36b329905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c1919062000895565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f919062000895565b6040518363ffffffff1660e01b81526004016200026e929190620008d8565b6020604051808303816000875af11580156200028e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b4919062000895565b905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073c82622dd853d7d8006c600cc460ce43b4b8c666b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073c82622dd853d7d8006c600cc460ce43b4b8c666b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000568919062000916565b60405180910390a3505062000933565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060657808604811115620005de57620005dd62000578565b5b6001851615620005ee5780820291505b8081029050620005fe85620005a7565b9450620005be565b94509492505050565b600082620006215760019050620006f4565b81620006315760009050620006f4565b81600181146200064a576002811462000655576200068b565b6001915050620006f4565b60ff8411156200066a576200066962000578565b5b8360020a91508482111562000684576200068362000578565b5b50620006f4565b5060208310610133831016604e8410600b8410161715620006c55782820a905083811115620006bf57620006be62000578565b5b620006f4565b620006d48484846001620005b4565b92509050818404811115620006ee57620006ed62000578565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200071f82620006fb565b91506200072c8362000705565b92506200075b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200060f565b905092915050565b60006200077082620006fb565b91506200077d83620006fb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007b957620007b862000578565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200080082620006fb565b91506200080d83620006fb565b92508262000820576200081f620007c4565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200085d8262000830565b9050919050565b6200086f8162000850565b81146200087b57600080fd5b50565b6000815190506200088f8162000864565b92915050565b600060208284031215620008ae57620008ad6200082b565b5b6000620008be848285016200087e565b91505092915050565b620008d28162000850565b82525050565b6000604082019050620008ef6000830185620008c7565b620008fe6020830184620008c7565b9392505050565b6200091081620006fb565b82525050565b60006020820190506200092d600083018462000905565b92915050565b6134b080620009436000396000f3fe6080604052600436106101445760003560e01c806348ff2b8b116100b65780639358928b1161006f5780639358928b1461046957806395d89b4114610494578063a8aa1b31146104bf578063a9059cbb146104ea578063dd62ed3e14610527578063f2fde38b146105645761014b565b806348ff2b8b1461035957806370a082311461038257806378109e54146103bf5780637d1db4a5146103ea578063893d20e8146104155780638c41180e146104405761014b565b806323b872dd1161010857806323b872dd146102375780632e28087b146102745780632f54bf6e1461028b578063313ce567146102c857806334c5d2ce146102f35780633f4218e01461031c5761014b565b8063044019301461015057806306fdde0314610179578063095ea7b3146101a457806318160ddd146101e15780631f976b7e1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610177600480360381019061017291906124ee565b61058d565b005b34801561018557600080fd5b5061018e61068c565b60405161019b9190612620565b60405180910390f35b3480156101b057600080fd5b506101cb60048036038101906101c691906126a0565b6106c9565b6040516101d891906126fb565b60405180910390f35b3480156101ed57600080fd5b506101f66106e0565b6040516102039190612725565b60405180910390f35b34801561021857600080fd5b506102216106ea565b60405161022e9190612725565b60405180910390f35b34801561024357600080fd5b5061025e60048036038101906102599190612740565b610713565b60405161026b91906126fb565b60405180910390f35b34801561028057600080fd5b506102896107de565b005b34801561029757600080fd5b506102b260048036038101906102ad9190612793565b610843565b6040516102bf91906126fb565b60405180910390f35b3480156102d457600080fd5b506102dd61089c565b6040516102ea91906127dc565b60405180910390f35b3480156102ff57600080fd5b5061031a600480360381019061031591906127f7565b6108a5565b005b34801561032857600080fd5b50610343600480360381019061033e9190612793565b610a05565b60405161035091906126fb565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190612876565b610a25565b005b34801561038e57600080fd5b506103a960048036038101906103a49190612793565b610ac8565b6040516103b69190612725565b60405180910390f35b3480156103cb57600080fd5b506103d4610b11565b6040516103e19190612725565b60405180910390f35b3480156103f657600080fd5b506103ff610b3a565b60405161040c9190612725565b60405180910390f35b34801561042157600080fd5b5061042a610b63565b60405161043791906128c5565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612876565b610b8c565b005b34801561047557600080fd5b5061047e610c2f565b60405161048b9190612725565b60405180910390f35b3480156104a057600080fd5b506104a9610c70565b6040516104b69190612620565b60405180910390f35b3480156104cb57600080fd5b506104d4610cad565b6040516104e191906128c5565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c91906126a0565b610cd3565b60405161051e91906126fb565b60405180910390f35b34801561053357600080fd5b5061054e600480360381019061054991906128e0565b610cea565b60405161055b9190612725565b60405180910390f35b34801561057057600080fd5b5061058b6004803603810190610586919061295e565b610d71565b005b61059633610843565b6105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cc906129d7565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f81905550816010819055508060118190555061061c6005601254610e3390919063ffffffff16565b600f5411158015610644575061063e6005601254610e3390919063ffffffff16565b60105411155b610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a90612a69565b60405180910390fd5b50505050505050565b60606040518060400160405280600a81526020017f46696e616c20436f696e00000000000000000000000000000000000000000000815250905090565b60006106d6338484610e49565b6001905092915050565b6000600154905090565b60006012546003546106fa6106e0565b6107049190612ab8565b61070e9190612b41565b905090565b6000610720848484611012565b6107d384336107ce8560405180606001604052806028815260200161345360289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120b9092919063ffffffff16565b610e49565b600190509392505050565b6107e733610843565b610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d906129d7565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6108ae33610843565b6108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e4906129d7565b60405180910390fd5b6000612710846108fb6106e0565b6109059190612ab8565b61090f9190612b41565b905060006127108461091f6106e0565b6109299190612ab8565b6109339190612b41565b90506000612710846109436106e0565b61094d9190612ab8565b6109579190612b41565b9050856002819055508460038190555083600481905550600061099f6103e861099160056109836106e0565b61126090919063ffffffff16565b610e3390919063ffffffff16565b90508084101580156109b15750808310155b80156109bd5750808210155b6109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390612be4565b60405180910390fd5b50505050505050565b60076020528060005260406000206000915054906101000a900460ff1681565b610a2e33610843565b610a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a64906129d7565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610b216106e0565b610b2b9190612ab8565b610b359190612b41565b905090565b6000601254600254610b4a6106e0565b610b549190612ab8565b610b5e9190612b41565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b9533610843565b610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb906129d7565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610c6b610c3e6000610ac8565b610c5d610c4c61dead610ac8565b60015461127690919063ffffffff16565b61127690919063ffffffff16565b905090565b60606040518060400160405280600581526020017f46494e414c000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ce0338484611012565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d7a33610843565b610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db0906129d7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610e289190612c63565b60405180910390a150565b60008183610e419190612b41565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf90612cf0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612d82565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110059190612725565b60405180910390a3505050565b61101d83838361128c565b61102783836113fd565b6110328383836114fa565b61103c83836116d8565b6110478383836117a3565b6110528383836119e2565b6110a481600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006110f38484611a0b565b6110fd5781611109565b611108848484611ab9565b5b905061115d81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111fd9190612725565b60405180910390a350505050565b6000838311158290611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a9190612620565b60405180910390fd5b5082840390509392505050565b6000818361126e9190612ab8565b905092915050565b600081836112849190612da2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290612e48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612eda565b60405180910390fd5b600081116113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612f6c565b60405180910390fd5b6113b683610ac8565b8111156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612ffe565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114a15750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114f657600a60149054906101000a900460ff166114f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ec9061306a565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561159e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115f85750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611632575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d35761163f610b11565b61169182600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6190919063ffffffff16565b11156116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c9906130d6565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801561177f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561179f5760016014600082825461179791906130f6565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118eb576118006106ea565b811115806118575750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118ab5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e190613176565b60405180910390fd5b5b6118f3610b3a565b8111158061194a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061199e5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490613176565b60405180910390fd5b505050565b6119ed838383611c77565b15611a06576119fd601654611db0565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ab15750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611ac68585611fef565b1115611c56576000611afe611adb8686611fef565b611af060125486610e3390919063ffffffff16565b61126090919063ffffffff16565b9050611b5281600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6190919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf29190612725565b60405180910390a36000600e541115611c3b57611c3a3061dead611c35600e54611c2760125489610e3390919063ffffffff16565b61126090919063ffffffff16565b611012565b5b611c4e818461127690919063ffffffff16565b915050611c5a565b8190505b9392505050565b60008183611c6f91906130f6565b905092915050565b60008060175483101590506000601654611c9030610ac8565b10159050601560009054906101000a900460ff16158015611cbd5750601360009054906101000a900460ff165b8015611cd55750600a60149054906101000a900460ff165b8015611cde5750815b8015611d345750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d8d5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d9c5750600060145410155b8015611da55750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611e1e6002611e10600d54611e02600c54611df46001600b54611c6190919063ffffffff16565b611c6190919063ffffffff16565b611c6190919063ffffffff16565b61126090919063ffffffff16565b90506000611e4982611e3b600b548661126090919063ffffffff16565b610e3390919063ffffffff16565b90506000611e60828561127690919063ffffffff16565b90506000479050611e708261217e565b6000611e85824761127690919063ffffffff16565b90506000611eb0611ea1600b548861127690919063ffffffff16565b83610e3390919063ffffffff16565b90506000611ec9600b548361126090919063ffffffff16565b90506000811115611edf57611ede86826123c1565b5b6000611f09600c54611efb60028661126090919063ffffffff16565b61126090919063ffffffff16565b90506000811115611f705773c82622dd853d7d8006c600cc460ce43b4b8c666b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f6e573d6000803e3d6000fd5b505b60004790506000811115611fc85761dead73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fc6573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120925750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120b4576120ad606460125461127690919063ffffffff16565b9050612178565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612113576010549050612178565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361217257600f549050612178565b60115490505b92915050565b6000600267ffffffffffffffff81111561219b5761219a613196565b5b6040519080825280602002602001820160405280156121c95781602001602082028036833780820191505090505b50905030816000815181106121e1576121e06131c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ac9190613209565b816001815181106122c0576122bf6131c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232730600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e49565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161238b95949392919061332f565b600060405180830381600087803b1580156123a557600080fd5b505af11580156123b9573d6000803e3d6000fd5b505050505050565b6123ee30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e49565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073c82622dd853d7d8006c600cc460ce43b4b8c666b426040518863ffffffff1660e01b815260040161246996959493929190613389565b60606040518083038185885af1158015612487573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124ac91906133ff565b5050505050565b600080fd5b6000819050919050565b6124cb816124b8565b81146124d657600080fd5b50565b6000813590506124e8816124c2565b92915050565b600080600080600080600060e0888a03121561250d5761250c6124b3565b5b600061251b8a828b016124d9565b975050602061252c8a828b016124d9565b965050604061253d8a828b016124d9565b955050606061254e8a828b016124d9565b945050608061255f8a828b016124d9565b93505060a06125708a828b016124d9565b92505060c06125818a828b016124d9565b91505092959891949750929550565b600081519050919050565b600082825260208201905092915050565b60005b838110156125ca5780820151818401526020810190506125af565b60008484015250505050565b6000601f19601f8301169050919050565b60006125f282612590565b6125fc818561259b565b935061260c8185602086016125ac565b612615816125d6565b840191505092915050565b6000602082019050818103600083015261263a81846125e7565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061266d82612642565b9050919050565b61267d81612662565b811461268857600080fd5b50565b60008135905061269a81612674565b92915050565b600080604083850312156126b7576126b66124b3565b5b60006126c58582860161268b565b92505060206126d6858286016124d9565b9150509250929050565b60008115159050919050565b6126f5816126e0565b82525050565b600060208201905061271060008301846126ec565b92915050565b61271f816124b8565b82525050565b600060208201905061273a6000830184612716565b92915050565b600080600060608486031215612759576127586124b3565b5b60006127678682870161268b565b93505060206127788682870161268b565b9250506040612789868287016124d9565b9150509250925092565b6000602082840312156127a9576127a86124b3565b5b60006127b78482850161268b565b91505092915050565b600060ff82169050919050565b6127d6816127c0565b82525050565b60006020820190506127f160008301846127cd565b92915050565b6000806000606084860312156128105761280f6124b3565b5b600061281e868287016124d9565b935050602061282f868287016124d9565b9250506040612840868287016124d9565b9150509250925092565b612853816126e0565b811461285e57600080fd5b50565b6000813590506128708161284a565b92915050565b6000806040838503121561288d5761288c6124b3565b5b600061289b8582860161268b565b92505060206128ac85828601612861565b9150509250929050565b6128bf81612662565b82525050565b60006020820190506128da60008301846128b6565b92915050565b600080604083850312156128f7576128f66124b3565b5b60006129058582860161268b565b92505060206129168582860161268b565b9150509250929050565b600061292b82612642565b9050919050565b61293b81612920565b811461294657600080fd5b50565b60008135905061295881612932565b92915050565b600060208284031215612974576129736124b3565b5b600061298284828501612949565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006129c160068361259b565b91506129cc8261298b565b602082019050919050565b600060208201905081810360008301526129f0816129b4565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000612a53602c8361259b565b9150612a5e826129f7565b604082019050919050565b60006020820190508181036000830152612a8281612a46565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ac3826124b8565b9150612ace836124b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b0757612b06612a89565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b4c826124b8565b9150612b57836124b8565b925082612b6757612b66612b12565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612bce602e8361259b565b9150612bd982612b72565b604082019050919050565b60006020820190508181036000830152612bfd81612bc1565b9050919050565b6000819050919050565b6000612c29612c24612c1f84612642565b612c04565b612642565b9050919050565b6000612c3b82612c0e565b9050919050565b6000612c4d82612c30565b9050919050565b612c5d81612c42565b82525050565b6000602082019050612c786000830184612c54565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cda60248361259b565b9150612ce582612c7e565b604082019050919050565b60006020820190508181036000830152612d0981612ccd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d6c60228361259b565b9150612d7782612d10565b604082019050919050565b60006020820190508181036000830152612d9b81612d5f565b9050919050565b6000612dad826124b8565b9150612db8836124b8565b9250828203905081811115612dd057612dcf612a89565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e3260258361259b565b9150612e3d82612dd6565b604082019050919050565b60006020820190508181036000830152612e6181612e25565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ec460238361259b565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f5660298361259b565b9150612f6182612efa565b604082019050919050565b60006020820190508181036000830152612f8581612f49565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612fe860318361259b565b9150612ff382612f8c565b604082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613054600e8361259b565b915061305f8261301e565b602082019050919050565b6000602082019050818103600083015261308381613047565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006130c0601e8361259b565b91506130cb8261308a565b602082019050919050565b600060208201905081810360008301526130ef816130b3565b9050919050565b6000613101826124b8565b915061310c836124b8565b925082820190508082111561312457613123612a89565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061316060118361259b565b915061316b8261312a565b602082019050919050565b6000602082019050818103600083015261318f81613153565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061320381612674565b92915050565b60006020828403121561321f5761321e6124b3565b5b600061322d848285016131f4565b91505092915050565b6000819050919050565b600061325b61325661325184613236565b612c04565b6124b8565b9050919050565b61326b81613240565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132a681612662565b82525050565b60006132b8838361329d565b60208301905092915050565b6000602082019050919050565b60006132dc82613271565b6132e6818561327c565b93506132f18361328d565b8060005b8381101561332257815161330988826132ac565b9750613314836132c4565b9250506001810190506132f5565b5085935050505092915050565b600060a0820190506133446000830188612716565b6133516020830187613262565b818103604083015261336381866132d1565b905061337260608301856128b6565b61337f6080830184612716565b9695505050505050565b600060c08201905061339e60008301896128b6565b6133ab6020830188612716565b6133b86040830187613262565b6133c56060830186613262565b6133d260808301856128b6565b6133df60a0830184612716565b979650505050505050565b6000815190506133f9816124c2565b92915050565b600080600060608486031215613418576134176124b3565b5b6000613426868287016133ea565b9350506020613437868287016133ea565b9250506040613448868287016133ea565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d41491c288c576723cfb61e63e28b732b08dc5901912c61cdfbd2ffb669b43ab64736f6c63430008100033