60806040523480156200001157600080fd5b506040518060400160405280600c81526020017f4d6f6e676f6f736520322e3000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4d4f4e47322e300000000000000000000000000000000000000000000000000081525081600390816200008f919062000ad8565b508060049081620000a1919062000ad8565b5050506000620000b66200050160201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e7919062000c29565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000275919062000c29565b6040518363ffffffff1660e01b81526004016200029492919062000c6c565b6020604051808303816000875af1158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062000c29565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003b330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200050960201b60201c565b600160076000620003c9620006da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004d3336d2205063ea95de7294160800000006200070460201b60201c565b611388620004e66200085460201b60201c565b620004f2919062000cf7565b600a8190555050505062000f4b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200057b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005729062000db6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005e49062000e4e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620006cd919062000e81565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200076d9062000eee565b60405180910390fd5b80600260008282546200078a919062000f10565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007e1919062000f10565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000848919062000e81565b60405180910390a35050565b6000600254905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008e057607f821691505b602082108103620008f657620008f562000898565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000921565b6200096c868362000921565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009b9620009b3620009ad8462000984565b6200098e565b62000984565b9050919050565b6000819050919050565b620009d58362000998565b620009ed620009e482620009c0565b8484546200092e565b825550505050565b600090565b62000a04620009f5565b62000a11818484620009ca565b505050565b5b8181101562000a395762000a2d600082620009fa565b60018101905062000a17565b5050565b601f82111562000a885762000a5281620008fc565b62000a5d8462000911565b8101602085101562000a6d578190505b62000a8562000a7c8562000911565b83018262000a16565b50505b505050565b600082821c905092915050565b600062000aad6000198460080262000a8d565b1980831691505092915050565b600062000ac8838362000a9a565b9150826002028217905092915050565b62000ae3826200085e565b67ffffffffffffffff81111562000aff5762000afe62000869565b5b62000b0b8254620008c7565b62000b1882828562000a3d565b600060209050601f83116001811462000b50576000841562000b3b578287015190505b62000b47858262000aba565b86555062000bb7565b601f19841662000b6086620008fc565b60005b8281101562000b8a5784890151825560018201915060208501945060208101905062000b63565b8683101562000baa578489015162000ba6601f89168262000a9a565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf18262000bc4565b9050919050565b62000c038162000be4565b811462000c0f57600080fd5b50565b60008151905062000c238162000bf8565b92915050565b60006020828403121562000c425762000c4162000bbf565b5b600062000c528482850162000c12565b91505092915050565b62000c668162000be4565b82525050565b600060408201905062000c83600083018562000c5b565b62000c92602083018462000c5b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d048262000984565b915062000d118362000984565b92508262000d245762000d2362000c99565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000d9e60248362000d2f565b915062000dab8262000d40565b604082019050919050565b6000602082019050818103600083015262000dd18162000d8f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e3660228362000d2f565b915062000e438262000dd8565b604082019050919050565b6000602082019050818103600083015262000e698162000e27565b9050919050565b62000e7b8162000984565b82525050565b600060208201905062000e98600083018462000e70565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ed6601f8362000d2f565b915062000ee38262000e9e565b602082019050919050565b6000602082019050818103600083015262000f098162000ec7565b9050919050565b600062000f1d8262000984565b915062000f2a8362000984565b925082820190508082111562000f455762000f4462000cc8565b5b92915050565b612d088062000f5b6000396000f3fe6080604052600436106101695760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063cc1776d311610064578063cc1776d31461053a578063dd62ed3e14610565578063e2f45605146105a2578063f2fde38b146105cd57610170565b8063a9059cbb146104ab578063bb85c6d1146104e8578063c647b20e1461051157610170565b8063715018a6146103bf57806375f0a874146103d65780638a8c523c146104015780638da5cb5b1461041857806395d89b4114610443578063a457c2d71461046e57610170565b8063313ce56711610123578063313ce5671461029957806339509351146102c457806349bd5a5e146103015780634ada218b1461032c5780634f7041a51461035757806370a082311461038257610170565b8062ae3bf81461017557806306fdde031461019e578063095ea7b3146101c95780631694505e1461020657806318160ddd1461023157806323b872dd1461025c57610170565b3661017057005b600080fd5b34801561018157600080fd5b5061019c60048036038101906101979190611e73565b6105f6565b005b3480156101aa57600080fd5b506101b361078e565b6040516101c09190611f30565b60405180910390f35b3480156101d557600080fd5b506101f060048036038101906101eb9190611f88565b610820565b6040516101fd9190611fe3565b60405180910390f35b34801561021257600080fd5b5061021b61083e565b604051610228919061205d565b60405180910390f35b34801561023d57600080fd5b50610246610864565b6040516102539190612087565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e91906120a2565b61086e565b6040516102909190611fe3565b60405180910390f35b3480156102a557600080fd5b506102ae61098d565b6040516102bb9190612111565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e69190611f88565b610996565b6040516102f89190611fe3565b60405180910390f35b34801561030d57600080fd5b50610316610a42565b604051610323919061213b565b60405180910390f35b34801561033857600080fd5b50610341610a68565b60405161034e9190611fe3565b60405180910390f35b34801561036357600080fd5b5061036c610a7b565b6040516103799190612087565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a49190611e73565b610a81565b6040516103b69190612087565b60405180910390f35b3480156103cb57600080fd5b506103d4610ac9565b005b3480156103e257600080fd5b506103eb610c21565b6040516103f8919061213b565b60405180910390f35b34801561040d57600080fd5b50610416610c47565b005b34801561042457600080fd5b5061042d610d4b565b60405161043a919061213b565b60405180910390f35b34801561044f57600080fd5b50610458610d75565b6040516104659190611f30565b60405180910390f35b34801561047a57600080fd5b5061049560048036038101906104909190611f88565b610e07565b6040516104a29190611fe3565b60405180910390f35b3480156104b757600080fd5b506104d260048036038101906104cd9190611f88565b610ef2565b6040516104df9190611fe3565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190611e73565b610f10565b005b34801561051d57600080fd5b5061053860048036038101906105339190612156565b610feb565b005b34801561054657600080fd5b5061054f6110e5565b60405161055c9190612087565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190612196565b6110eb565b6040516105999190612087565b60405180910390f35b3480156105ae57600080fd5b506105b7611172565b6040516105c49190612087565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef9190611e73565b611178565b005b6105fe61133e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068490612222565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106c8919061213b565b602060405180830381865afa1580156106e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107099190612257565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610746929190612284565b6020604051808303816000875af1158015610765573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078991906122d9565b505050565b60606003805461079d90612335565b80601f01602080910402602001604051908101604052809291908181526020018280546107c990612335565b80156108165780601f106107eb57610100808354040283529160200191610816565b820191906000526020600020905b8154815290600101906020018083116107f957829003601f168201915b5050505050905090565b600061083461082d61133e565b8484611346565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108ba61133e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109765782811015610961576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610958906123d8565b60405180910390fd5b6109758561096d61133e565b858403611346565b5b61098185858561150f565b60019150509392505050565b60006012905090565b6000610a386109a361133e565b8484600160006109b161133e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a339190612427565b611346565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60019054906101000a900460ff1681565b600c5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ad161133e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790612222565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c4f61133e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590612222565b60405180910390fd5b600b60019054906101000a900460ff1615610d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d25906124a7565b60405180910390fd5b6001600b60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d8490612335565b80601f0160208091040260200160405190810160405280929190818152602001828054610db090612335565b8015610dfd5780601f10610dd257610100808354040283529160200191610dfd565b820191906000526020600020905b815481529060010190602001808311610de057829003601f168201915b5050505050905090565b60008060016000610e1661133e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90612539565b60405180910390fd5b610ee7610ede61133e565b85858403611346565b600191505092915050565b6000610f06610eff61133e565b848461150f565b6001905092915050565b610f1861133e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90612222565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ff361133e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107990612222565b60405180910390fd5b60288211158015611094575060288111155b6110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca906125a5565b60405180910390fd5b81600c8190555080600d819055505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61118061133e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612222565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590612637565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac906126c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141b9061275b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115029190612087565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611575906127ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e49061287f565b60405180910390fd5b60008111611630576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611627906128eb565b60405180910390fd5b600b60019054906101000a900460ff168061167d575061164e610d4b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b390612957565b60405180910390fd5b60006116c730610a81565b90506000600a5482101590508080156116ed5750600b60009054906101000a900460ff16155b80156117465750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561178b576001600b60006101000a81548160ff02191690831515021790555061176f8261196b565b6000600b60006101000a81548160ff0219169083151502179055505b6000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061182e5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118455750600b60009054906101000a900460ff165b156118535760009050611918565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036118b257600c549050611917565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361191157600d549050611916565b600090505b5b5b6000811115611958576000606482866119319190612977565b61193b91906129e8565b905080856119499190612a19565b9450611956873083611ba7565b505b611963868686611ba7565b505050505050565b6000810315611ba4576000600267ffffffffffffffff81111561199157611990612a4d565b5b6040519080825280602002602001820160405280156119bf5781602001602082028036833780820191505090505b50905030816000815181106119d7576119d6612a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa29190612ac0565b81600181518110611ab657611ab5612a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b76959493929190612be6565b600060405180830381600087803b158015611b9057600080fd5b505af1925050508015611ba1575060015b50505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0d906127ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7c9061287f565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0290612cb2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d9e9190612427565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e029190612087565b60405180910390a350505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e4082611e15565b9050919050565b611e5081611e35565b8114611e5b57600080fd5b50565b600081359050611e6d81611e47565b92915050565b600060208284031215611e8957611e88611e10565b5b6000611e9784828501611e5e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611eda578082015181840152602081019050611ebf565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f0282611ea0565b611f0c8185611eab565b9350611f1c818560208601611ebc565b611f2581611ee6565b840191505092915050565b60006020820190508181036000830152611f4a8184611ef7565b905092915050565b6000819050919050565b611f6581611f52565b8114611f7057600080fd5b50565b600081359050611f8281611f5c565b92915050565b60008060408385031215611f9f57611f9e611e10565b5b6000611fad85828601611e5e565b9250506020611fbe85828601611f73565b9150509250929050565b60008115159050919050565b611fdd81611fc8565b82525050565b6000602082019050611ff86000830184611fd4565b92915050565b6000819050919050565b600061202361201e61201984611e15565b611ffe565b611e15565b9050919050565b600061203582612008565b9050919050565b60006120478261202a565b9050919050565b6120578161203c565b82525050565b6000602082019050612072600083018461204e565b92915050565b61208181611f52565b82525050565b600060208201905061209c6000830184612078565b92915050565b6000806000606084860312156120bb576120ba611e10565b5b60006120c986828701611e5e565b93505060206120da86828701611e5e565b92505060406120eb86828701611f73565b9150509250925092565b600060ff82169050919050565b61210b816120f5565b82525050565b60006020820190506121266000830184612102565b92915050565b61213581611e35565b82525050565b6000602082019050612150600083018461212c565b92915050565b6000806040838503121561216d5761216c611e10565b5b600061217b85828601611f73565b925050602061218c85828601611f73565b9150509250929050565b600080604083850312156121ad576121ac611e10565b5b60006121bb85828601611e5e565b92505060206121cc85828601611e5e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061220c602083611eab565b9150612217826121d6565b602082019050919050565b6000602082019050818103600083015261223b816121ff565b9050919050565b60008151905061225181611f5c565b92915050565b60006020828403121561226d5761226c611e10565b5b600061227b84828501612242565b91505092915050565b6000604082019050612299600083018561212c565b6122a66020830184612078565b9392505050565b6122b681611fc8565b81146122c157600080fd5b50565b6000815190506122d3816122ad565b92915050565b6000602082840312156122ef576122ee611e10565b5b60006122fd848285016122c4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061234d57607f821691505b6020821081036123605761235f612306565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006123c2602883611eab565b91506123cd82612366565b604082019050919050565b600060208201905081810360008301526123f1816123b5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061243282611f52565b915061243d83611f52565b9250828201905080821115612455576124546123f8565b5b92915050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000612491601883611eab565b915061249c8261245b565b602082019050919050565b600060208201905081810360008301526124c081612484565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612523602583611eab565b915061252e826124c7565b604082019050919050565b6000602082019050818103600083015261255281612516565b9050919050565b7f43616e6e6f74207365742061626f7665203430252e0000000000000000000000600082015250565b600061258f601583611eab565b915061259a82612559565b602082019050919050565b600060208201905081810360008301526125be81612582565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612621602683611eab565b915061262c826125c5565b604082019050919050565b6000602082019050818103600083015261265081612614565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006126b3602483611eab565b91506126be82612657565b604082019050919050565b600060208201905081810360008301526126e2816126a6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612745602283611eab565b9150612750826126e9565b604082019050919050565b6000602082019050818103600083015261277481612738565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127d7602583611eab565b91506127e28261277b565b604082019050919050565b60006020820190508181036000830152612806816127ca565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612869602383611eab565b91506128748261280d565b604082019050919050565b600060208201905081810360008301526128988161285c565b9050919050565b7f43616e6e6f74207472616e73666572203020746f6b656e732e00000000000000600082015250565b60006128d5601983611eab565b91506128e08261289f565b602082019050919050565b60006020820190508181036000830152612904816128c8565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b6000612941601883611eab565b915061294c8261290b565b602082019050919050565b6000602082019050818103600083015261297081612934565b9050919050565b600061298282611f52565b915061298d83611f52565b925082820261299b81611f52565b915082820484148315176129b2576129b16123f8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129f382611f52565b91506129fe83611f52565b925082612a0e57612a0d6129b9565b5b828204905092915050565b6000612a2482611f52565b9150612a2f83611f52565b9250828203905081811115612a4757612a466123f8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612aba81611e47565b92915050565b600060208284031215612ad657612ad5611e10565b5b6000612ae484828501612aab565b91505092915050565b6000819050919050565b6000612b12612b0d612b0884612aed565b611ffe565b611f52565b9050919050565b612b2281612af7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b5d81611e35565b82525050565b6000612b6f8383612b54565b60208301905092915050565b6000602082019050919050565b6000612b9382612b28565b612b9d8185612b33565b9350612ba883612b44565b8060005b83811015612bd9578151612bc08882612b63565b9750612bcb83612b7b565b925050600181019050612bac565b5085935050505092915050565b600060a082019050612bfb6000830188612078565b612c086020830187612b19565b8181036040830152612c1a8186612b88565b9050612c29606083018561212c565b612c366080830184612078565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612c9c602683611eab565b9150612ca782612c40565b604082019050919050565b60006020820190508181036000830152612ccb81612c8f565b905091905056fea2646970667358221220608e270b42f9f90f738c7b778a9c4ba43e04c64b5313674f07a74b59d48739ed64736f6c63430008110033