60c060405273d8f66a7383d105e946d3e53a51ff6bc0ebf35092600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d8f66a7383d105e946d3e53a51ff6bc0ebf35092600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a556000600b556000600c556000600d55600d54600b54600c54620000d79190620008fd565b620000e39190620008fd565b600e55610258601055348015620000f957600080fd5b506040518060400160405280600c81526020017f52657665727365205065706500000000000000000000000000000000000000008152506040518060400160405280600481526020017f4550455000000000000000000000000000000000000000000000000000000000815250816003908162000177919062000ba8565b50806004908162000189919062000ba8565b505050620001ac620001a0620004e060201b60201c565b620004e860201b60201c565b60006c054f529ca52576bc68920000009050620001d03382620005ae60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b919062000cf9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e9919062000cf9565b6040518363ffffffff1660e01b81526004016200030892919062000d3c565b6020604051808303816000875af115801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e919062000cf9565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060016006600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600f81905550620004a3336080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620006f360201b60201c565b620004d8306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620006f360201b60201c565b505062000f4a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000620576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006179062000dca565b60405180910390fd5b8060026000828254620006349190620008fd565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006e7919062000dfd565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000765576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200075c9062000e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ce9062000f28565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620008b7919062000dfd565b60405180910390a3505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200090a82620008c4565b91506200091783620008c4565b9250828201905080821115620009325762000931620008ce565b5b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009ba57607f821691505b602082108103620009d057620009cf62000972565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009fb565b62000a468683620009fb565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a8962000a8362000a7d84620008c4565b62000a5e565b620008c4565b9050919050565b6000819050919050565b62000aa58362000a68565b62000abd62000ab48262000a90565b84845462000a08565b825550505050565b600090565b62000ad462000ac5565b62000ae181848462000a9a565b505050565b5b8181101562000b095762000afd60008262000aca565b60018101905062000ae7565b5050565b601f82111562000b585762000b2281620009d6565b62000b2d84620009eb565b8101602085101562000b3d578190505b62000b5562000b4c85620009eb565b83018262000ae6565b50505b505050565b600082821c905092915050565b600062000b7d6000198460080262000b5d565b1980831691505092915050565b600062000b98838362000b6a565b9150826002028217905092915050565b62000bb38262000938565b67ffffffffffffffff81111562000bcf5762000bce62000943565b5b62000bdb8254620009a1565b62000be882828562000b0d565b600060209050601f83116001811462000c20576000841562000c0b578287015190505b62000c17858262000b8a565b86555062000c87565b601f19841662000c3086620009d6565b60005b8281101562000c5a5784890151825560018201915060208501945060208101905062000c33565b8683101562000c7a578489015162000c76601f89168262000b6a565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cc18262000c94565b9050919050565b62000cd38162000cb4565b811462000cdf57600080fd5b50565b60008151905062000cf38162000cc8565b92915050565b60006020828403121562000d125762000d1162000c8f565b5b600062000d228482850162000ce2565b91505092915050565b62000d368162000cb4565b82525050565b600060408201905062000d53600083018562000d2b565b62000d62602083018462000d2b565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000db2601f8362000d69565b915062000dbf8262000d7a565b602082019050919050565b6000602082019050818103600083015262000de58162000da3565b9050919050565b62000df781620008c4565b82525050565b600060208201905062000e14600083018462000dec565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000e7860248362000d69565b915062000e858262000e1a565b604082019050919050565b6000602082019050818103600083015262000eab8162000e69565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f1060228362000d69565b915062000f1d8262000eb2565b604082019050919050565b6000602082019050818103600083015262000f438162000f01565b9050919050565b60805160a0516133e662000f9a60003960008181610b8601528181611828015281816118930152611927015260008181610a2e0152818161205c01528181612139015261220701526133e66000f3fe60806040526004361061023f5760003560e01c806370a082311161012e578063a9059cbb116100ab578063d3208b131161006f578063d3208b131461085a578063dd62ed3e14610885578063e6991e2d146108c2578063f2fde38b146108eb578063f476b8a41461091457610246565b8063a9059cbb14610789578063b41150c5146107c6578063c9567bf9146107ef578063ca1dd6d414610806578063ce3b9aa31461083157610246565b8063923ffc14116100f2578063923ffc14146106a457806392f42870146106cd57806395d89b41146106f6578063962dfc7514610721578063a457c2d71461074c57610246565b806370a08231146105cf578063713f9cfd1461060c578063715018a61461063757806382247ec01461064e5780638da5cb5b1461067957610246565b8063313ce567116101bc5780635b28b246116101805780635b28b246146105125780635d0044ca1461053b5780635d098b3814610564578063606208041461058d5780636b996150146105b857610246565b8063313ce5671461042b57806333f82cea14610456578063395093511461048157806349bd5a5e146104be57806349f2c4ae146104e957610246565b806318160ddd1161020357806318160ddd146103325780631f2698ab1461035d5780631f53ac021461038857806323b872dd146103b157806330ccebb5146103ee57610246565b806306fdde031461024b578063095ea7b3146102765780630e7e573f146102b357806311a63e17146102dc5780631694505e1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061093f565b60405161026d9190612366565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612426565b6109d1565b6040516102aa9190612481565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061249c565b6109f4565b005b3480156102e857600080fd5b506102f1610a06565b6040516102fe91906124d8565b60405180910390f35b34801561031357600080fd5b5061031c610a2c565b6040516103299190612552565b60405180910390f35b34801561033e57600080fd5b50610347610a50565b604051610354919061257c565b60405180910390f35b34801561036957600080fd5b50610372610a5a565b60405161037f9190612481565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612597565b610a6d565b005b3480156103bd57600080fd5b506103d860048036038101906103d391906125c4565b610ab9565b6040516103e59190612481565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190612597565b610ae8565b6040516104229190612481565b60405180910390f35b34801561043757600080fd5b50610440610b3e565b60405161044d9190612633565b60405180910390f35b34801561046257600080fd5b5061046b610b47565b604051610478919061257c565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612426565b610b4d565b6040516104b59190612481565b60405180910390f35b3480156104ca57600080fd5b506104d3610b84565b6040516104e091906124d8565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b91906126b3565b610ba8565b005b34801561051e57600080fd5b506105396004803603810190610534919061273e565b610c55565b005b34801561054757600080fd5b50610562600480360381019061055d919061249c565b610d6e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612597565b610d80565b005b34801561059957600080fd5b506105a2610dcc565b6040516105af919061257c565b60405180910390f35b3480156105c457600080fd5b506105cd610dd2565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612597565b610e23565b604051610603919061257c565b60405180910390f35b34801561061857600080fd5b50610621610e6b565b60405161062e919061257c565b60405180910390f35b34801561064357600080fd5b5061064c610e71565b005b34801561065a57600080fd5b50610663610e85565b604051610670919061257c565b60405180910390f35b34801561068557600080fd5b5061068e610e8b565b60405161069b91906124d8565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c691906126b3565b610eb5565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906126b3565b610f62565b005b34801561070257600080fd5b5061070b61100f565b6040516107189190612366565b60405180910390f35b34801561072d57600080fd5b506107366110a1565b60405161074391906124d8565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190612426565b6110c7565b6040516107809190612481565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190612426565b61113e565b6040516107bd9190612481565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190612791565b611161565b005b3480156107fb57600080fd5b506108046111a0565b005b34801561081257600080fd5b5061081b6111c5565b604051610828919061257c565b60405180910390f35b34801561083d57600080fd5b50610858600480360381019061085391906126b3565b6111cb565b005b34801561086657600080fd5b5061086f611278565b60405161087c919061257c565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a791906127e4565b61127e565b6040516108b9919061257c565b60405180910390f35b3480156108ce57600080fd5b506108e960048036038101906108e4919061249c565b611305565b005b3480156108f757600080fd5b50610912600480360381019061090d9190612597565b611317565b005b34801561092057600080fd5b5061092961139a565b604051610936919061257c565b60405180910390f35b60606003805461094e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461097a90612853565b80156109c75780601f1061099c576101008083540402835291602001916109c7565b820191906000526020600020905b8154815290600101906020018083116109aa57829003601f168201915b5050505050905090565b6000806109dc6113a0565b90506109e98185856113a8565b600191505092915050565b6109fc611571565b8060108190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b601160009054906101000a900460ff1681565b610a75611571565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ac46113a0565b9050610ad18582856115ef565b610adc85858561167b565b60019150509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012905090565b600b5481565b600080610b586113a0565b9050610b79818585610b6a858961127e565b610b7491906128b3565b6113a8565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610bb0611571565b60005b82829050811015610c5057600060076000858585818110610bd757610bd66128e7565b5b9050602002016020810190610bec9190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4890612916565b915050610bb3565b505050565b610c5d611571565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c9891906124d8565b602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612973565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84838511610d055784610d07565b835b6040518363ffffffff1660e01b8152600401610d249291906129a0565b6020604051808303816000875af1158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6791906129f5565b5050505050565b610d76611571565b80600f8190555050565b610d88611571565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b610dda611571565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e20573d6000803e3d6000fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b610e79611571565b610e836000611a89565b565b600f5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ebd611571565b60005b82829050811015610f5d57600060066000858585818110610ee457610ee36128e7565b5b9050602002016020810190610ef99190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5590612916565b915050610ec0565b505050565b610f6a611571565b60005b8282905081101561100a57600160066000858585818110610f9157610f906128e7565b5b9050602002016020810190610fa69190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061100290612916565b915050610f6d565b505050565b60606004805461101e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461104a90612853565b80156110975780601f1061106c57610100808354040283529160200191611097565b820191906000526020600020905b81548152906001019060200180831161107a57829003601f168201915b5050505050905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110d26113a0565b905060006110e0828661127e565b905083811015611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90612a94565b60405180910390fd5b61113282868684036113a8565b60019250505092915050565b6000806111496113a0565b905061115681858561167b565b600191505092915050565b611169611571565b82600d8190555081600c8190555080600b8190555080828461118b91906128b3565b61119591906128b3565b600e81905550505050565b6111a8611571565b6001601160006101000a81548160ff021916908315150217905550565b600e5481565b6111d3611571565b600082829050905060005b81811015611272576001600760008686858181106111ff576111fe6128e7565b5b90506020020160208101906112149190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506111de565b50505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611571565b80600a8190555050565b61131f611571565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590612b26565b60405180910390fd5b61139781611a89565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90612bb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90612c4a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611564919061257c565b60405180910390a3505050565b6115796113a0565b73ffffffffffffffffffffffffffffffffffffffff16611597610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612cb6565b60405180910390fd5b565b60006115fb848461127e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116755781811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90612d22565b60405180910390fd5b61167484848484036113a8565b5b50505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90612d8e565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117a95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117c05750601160019054906101000a900460ff165b156117d5576117d0838383611b4f565b611a84565b601160009054906101000a900460ff16611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612dfa565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361192557600061188430610e23565b905060006127106010546118b77f0000000000000000000000000000000000000000000000000000000000000000610e23565b6118c19190612e1a565b6118cb9190612e8b565b9050808210611901578060036118e19190612e1a565b82106118f7578060036118f49190612e1a565b91505b61190082611daf565b5b612710600e54856119129190612e1a565b61191c9190612e8b565b92505050611a57565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119fd57612710600a54836119899190612e1a565b6119939190612e8b565b9050600f5481836119a386610e23565b6119ad91906128b3565b6119b79190612ebc565b11156119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90612f62565b60405180910390fd5b611a56565b600f5482611a0a85610e23565b611a1491906128b3565b1115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90612f62565b60405180910390fd5b5b5b611a6d84848385611a689190612ebc565b611b4f565b6000811115611a8257611a81843083611b4f565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613086565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa90613118565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da1919061257c565b60405180910390a350505050565b6001601160016101000a81548160ff0219169083151502179055506000600e54905060008103611ddf5750611f84565b60006002600c54611df09190612e8b565b82611dfb9190612ebc565b90506000828285611e0c9190612e1a565b611e169190612e8b565b9050611e2181611fa2565b6000479050600083600d5483611e379190612e1a565b611e419190612e8b565b9050600084600b5484611e549190612e1a565b611e5e9190612e8b565b90506000600c541115611e9757611e968488611e7a9190612ebc565b828486611e879190612ebc565b611e919190612ebc565b6121ea565b5b6000811115611f0a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f08573d6000803e3d6000fd5b505b6000471115611f7d57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f7b573d6000803e3d6000fd5b505b5050505050505b6000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fda57611fd9613138565b5b6040519080825280602002602001820160405280156120085781602001602082028036833780820191505090505b50905030816000815181106120205761201f6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e9919061317c565b816001815181106120fd576120fc6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121999594939291906132a2565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061224f610e8b565b426040518863ffffffff1660e01b8152600401612271969594939291906132fc565b60606040518083038185885af115801561228f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b4919061335d565b5050506000601160016101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123105780820151818401526020810190506122f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612338826122d6565b61234281856122e1565b93506123528185602086016122f2565b61235b8161231c565b840191505092915050565b60006020820190508181036000830152612380818461232d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bd82612392565b9050919050565b6123cd816123b2565b81146123d857600080fd5b50565b6000813590506123ea816123c4565b92915050565b6000819050919050565b612403816123f0565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000806040838503121561243d5761243c612388565b5b600061244b858286016123db565b925050602061245c85828601612411565b9150509250929050565b60008115159050919050565b61247b81612466565b82525050565b60006020820190506124966000830184612472565b92915050565b6000602082840312156124b2576124b1612388565b5b60006124c084828501612411565b91505092915050565b6124d2816123b2565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b6000819050919050565b600061251861251361250e84612392565b6124f3565b612392565b9050919050565b600061252a826124fd565b9050919050565b600061253c8261251f565b9050919050565b61254c81612531565b82525050565b60006020820190506125676000830184612543565b92915050565b612576816123f0565b82525050565b6000602082019050612591600083018461256d565b92915050565b6000602082840312156125ad576125ac612388565b5b60006125bb848285016123db565b91505092915050565b6000806000606084860312156125dd576125dc612388565b5b60006125eb868287016123db565b93505060206125fc868287016123db565b925050604061260d86828701612411565b9150509250925092565b600060ff82169050919050565b61262d81612617565b82525050565b60006020820190506126486000830184612624565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126735761267261264e565b5b8235905067ffffffffffffffff8111156126905761268f612653565b5b6020830191508360208202830111156126ac576126ab612658565b5b9250929050565b600080602083850312156126ca576126c9612388565b5b600083013567ffffffffffffffff8111156126e8576126e761238d565b5b6126f48582860161265d565b92509250509250929050565b600061270b826123b2565b9050919050565b61271b81612700565b811461272657600080fd5b50565b60008135905061273881612712565b92915050565b60008060006060848603121561275757612756612388565b5b600061276586828701612729565b9350506020612776868287016123db565b925050604061278786828701612411565b9150509250925092565b6000806000606084860312156127aa576127a9612388565b5b60006127b886828701612411565b93505060206127c986828701612411565b92505060406127da86828701612411565b9150509250925092565b600080604083850312156127fb576127fa612388565b5b6000612809858286016123db565b925050602061281a858286016123db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061286b57607f821691505b60208210810361287e5761287d612824565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128be826123f0565b91506128c9836123f0565b92508282019050808211156128e1576128e0612884565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612921826123f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361295357612952612884565b5b600182019050919050565b60008151905061296d816123fa565b92915050565b60006020828403121561298957612988612388565b5b60006129978482850161295e565b91505092915050565b60006040820190506129b560008301856124c9565b6129c2602083018461256d565b9392505050565b6129d281612466565b81146129dd57600080fd5b50565b6000815190506129ef816129c9565b92915050565b600060208284031215612a0b57612a0a612388565b5b6000612a19848285016129e0565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a7e6025836122e1565b9150612a8982612a22565b604082019050919050565b60006020820190508181036000830152612aad81612a71565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b106026836122e1565b9150612b1b82612ab4565b604082019050919050565b60006020820190508181036000830152612b3f81612b03565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ba26024836122e1565b9150612bad82612b46565b604082019050919050565b60006020820190508181036000830152612bd181612b95565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c346022836122e1565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca06020836122e1565b9150612cab82612c6a565b602082019050919050565b60006020820190508181036000830152612ccf81612c93565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d0c601d836122e1565b9150612d1782612cd6565b602082019050919050565b60006020820190508181036000830152612d3b81612cff565b9050919050565b7f536e697065722072656a65637465640000000000000000000000000000000000600082015250565b6000612d78600f836122e1565b9150612d8382612d42565b602082019050919050565b60006020820190508181036000830152612da781612d6b565b9050919050565b7f4e6f74206f70656e207965740000000000000000000000000000000000000000600082015250565b6000612de4600c836122e1565b9150612def82612dae565b602082019050919050565b60006020820190508181036000830152612e1381612dd7565b9050919050565b6000612e25826123f0565b9150612e30836123f0565b9250828202612e3e816123f0565b91508282048414831517612e5557612e54612884565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e96826123f0565b9150612ea1836123f0565b925082612eb157612eb0612e5c565b5b828204905092915050565b6000612ec7826123f0565b9150612ed2836123f0565b9250828203905081811115612eea57612ee9612884565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473206d61782077616c6c60008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f4c6022836122e1565b9150612f5782612ef0565b604082019050919050565b60006020820190508181036000830152612f7b81612f3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fde6025836122e1565b9150612fe982612f82565b604082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130706023836122e1565b915061307b82613014565b604082019050919050565b6000602082019050818103600083015261309f81613063565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006131026026836122e1565b915061310d826130a6565b604082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613176816123c4565b92915050565b60006020828403121561319257613191612388565b5b60006131a084828501613167565b91505092915050565b6000819050919050565b60006131ce6131c96131c4846131a9565b6124f3565b6123f0565b9050919050565b6131de816131b3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613219816123b2565b82525050565b600061322b8383613210565b60208301905092915050565b6000602082019050919050565b600061324f826131e4565b61325981856131ef565b935061326483613200565b8060005b8381101561329557815161327c888261321f565b975061328783613237565b925050600181019050613268565b5085935050505092915050565b600060a0820190506132b7600083018861256d565b6132c460208301876131d5565b81810360408301526132d68186613244565b90506132e560608301856124c9565b6132f2608083018461256d565b9695505050505050565b600060c08201905061331160008301896124c9565b61331e602083018861256d565b61332b60408301876131d5565b61333860608301866131d5565b61334560808301856124c9565b61335260a083018461256d565b979650505050505050565b60008060006060848603121561337657613375612388565b5b60006133848682870161295e565b93505060206133958682870161295e565b92505060406133a68682870161295e565b915050925092509256fea2646970667358221220fc19597937dec117b31e6ad958020465459067eafffe6cfa8cc7be3a177bc82c64736f6c63430008130033