6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a744a78363a6d89f457c6aabdff59e07fbc4fcd6600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a8055aab337db6d96944d9fc95a7493ed3150800600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f4b656963686f0000000000000000000000000000000000000000000000000000815250600a90816200018b9190620007f9565b506040518060400160405280600681526020017f4b454943484f0000000000000000000000000000000000000000000000000000815250600b9081620001d29190620007f9565b506009600c60006101000a81548160ff021916908360ff160217905550600c60009054906101000a900460ff16600a6200020d919062000a70565b629896806200021d919062000ac1565b600d5567016345785d8a0000600f55606360105560006011556001601260146101000a81548160ff0219169083151502179055503480156200025e57600080fd5b506000620002716200054e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960006200036b6200055660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200049e6200055660201b60201c565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405162000540919062000b1d565b60405180910390a362000b3a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200060157607f821691505b602082108103620006175762000616620005b9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000642565b6200068d868362000642565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006da620006d4620006ce84620006a5565b620006af565b620006a5565b9050919050565b6000819050919050565b620006f683620006b9565b6200070e6200070582620006e1565b8484546200064f565b825550505050565b600090565b6200072562000716565b62000732818484620006eb565b505050565b5b818110156200075a576200074e6000826200071b565b60018101905062000738565b5050565b601f821115620007a95762000773816200061d565b6200077e8462000632565b810160208510156200078e578190505b620007a66200079d8562000632565b83018262000737565b50505b505050565b600082821c905092915050565b6000620007ce60001984600802620007ae565b1980831691505092915050565b6000620007e98383620007bb565b9150826002028217905092915050565b62000804826200057f565b67ffffffffffffffff81111562000820576200081f6200058a565b5b6200082c8254620005e8565b620008398282856200075e565b600060209050601f8311600181146200087157600084156200085c578287015190505b620008688582620007db565b865550620008d8565b601f19841662000881866200061d565b60005b82811015620008ab5784890151825560018201915060208501945060208101905062000884565b86831015620008cb5784890151620008c7601f891682620007bb565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200096e57808604811115620009465762000945620008e0565b5b6001851615620009565780820291505b808102905062000966856200090f565b945062000926565b94509492505050565b60008262000989576001905062000a5c565b8162000999576000905062000a5c565b8160018114620009b25760028114620009bd57620009f3565b600191505062000a5c565b60ff841115620009d257620009d1620008e0565b5b8360020a915084821115620009ec57620009eb620008e0565b5b5062000a5c565b5060208310610133831016604e8410600b841016171562000a2d5782820a90508381111562000a275762000a26620008e0565b5b62000a5c565b62000a3c84848460016200091c565b9250905081840481111562000a565762000a55620008e0565b5b81810290505b9392505050565b600060ff82169050919050565b600062000a7d82620006a5565b915062000a8a8362000a63565b925062000ab97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000977565b905092915050565b600062000ace82620006a5565b915062000adb83620006a5565b925082820262000aeb81620006a5565b9150828204841483151762000b055762000b04620008e0565b5b5092915050565b62000b1781620006a5565b82525050565b600060208201905062000b34600083018462000b0c565b92915050565b613f1f8062000b4a6000396000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063a6769c7111610095578063d0a6bc0f11610064578063d0a6bc0f14610640578063dd62ed3e14610669578063e9ac0e59146106a6578063f2fde38b146106bd576101cd565b8063a6769c711461059a578063a9059cbb146105c3578063b2abbbc414610600578063c9567bf914610629576101cd565b80638da5cb5b116100d15780638da5cb5b146104dc57806395d89b4114610507578063a2ae74f414610532578063a457c2d71461055d576101cd565b806370a082311461045f578063715018a61461049c57806384afff9b146104b3576101cd565b8063395093511161016457806350faa48f1161013e57806350faa48f146103b557806351bc3c85146103e05780635342acb4146103f757806354a5df1f14610434576101cd565b80633950935114610324578063441d801f146103615780634b94f50e1461038a576101cd565b806318160ddd116101a057806318160ddd1461026557806322554f341461029057806323b872dd146102bc578063313ce567146102f9576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780631694505e1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106e6565b6040516101f49190612d95565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612e5f565b610778565b6040516102319190612eba565b60405180910390f35b34801561024657600080fd5b5061024f610796565b60405161025c9190612f34565b60405180910390f35b34801561027157600080fd5b5061027a6107bc565b6040516102879190612f5e565b60405180910390f35b34801561029c57600080fd5b506102a56107c6565b6040516102b3929190612f79565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190612fa2565b6107d7565b6040516102f09190612eba565b60405180910390f35b34801561030557600080fd5b5061030e6108b0565b60405161031b9190613011565b60405180910390f35b34801561033057600080fd5b5061034b60048036038101906103469190612e5f565b6108c7565b6040516103589190612eba565b60405180910390f35b34801561036d57600080fd5b50610388600480360381019061038391906130bd565b61097a565b005b34801561039657600080fd5b5061039f610a1f565b6040516103ac9190612f5e565b60405180910390f35b3480156103c157600080fd5b506103ca610c62565b6040516103d7919061312c565b60405180910390f35b3480156103ec57600080fd5b506103f5610c88565b005b34801561040357600080fd5b5061041e60048036038101906104199190613147565b610cc0565b60405161042b9190612eba565b60405180910390f35b34801561044057600080fd5b50610449610d16565b6040516104569190612f5e565b60405180910390f35b34801561046b57600080fd5b5061048660048036038101906104819190613147565b610d1c565b6040516104939190612f5e565b60405180910390f35b3480156104a857600080fd5b506104b1610ea9565b005b3480156104bf57600080fd5b506104da60048036038101906104d59190613147565b610ffc565b005b3480156104e857600080fd5b506104f1611125565b6040516104fe919061312c565b60405180910390f35b34801561051357600080fd5b5061051c61114e565b6040516105299190612d95565b60405180910390f35b34801561053e57600080fd5b506105476111e0565b6040516105549190612eba565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190612e5f565b6111f3565b6040516105919190612eba565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc9190613174565b6112c0565b005b3480156105cf57600080fd5b506105ea60048036038101906105e59190612e5f565b611372565b6040516105f79190612eba565b60405180910390f35b34801561060c57600080fd5b50610627600480360381019061062291906131a1565b611390565b005b34801561063557600080fd5b5061063e61142f565b005b34801561064c57600080fd5b50610667600480360381019061066291906131ce565b611903565b005b34801561067557600080fd5b50610690600480360381019061068b919061320e565b6119aa565b60405161069d9190612f5e565b60405180910390f35b3480156106b257600080fd5b506106bb611a31565b005b3480156106c957600080fd5b506106e460048036038101906106df9190613147565b611aa2565b005b6060600a80546106f59061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546107219061327d565b801561076e5780601f106107435761010080835404028352916020019161076e565b820191906000526020600020905b81548152906001019060200180831161075157829003601f168201915b5050505050905090565b600061078c610785611c63565b8484611c6b565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d54905090565b600080601054601154915091509091565b60006107e4848484611e34565b6108a5846107f0611c63565b6108a085604051806060016040528060288152602001613e9d60289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610856611c63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f39092919063ffffffff16565b611c6b565b600190509392505050565b6000600c60009054906101000a900460ff16905090565b60006109706108d4611c63565b8461096b85600860006108e5611c63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275790919063ffffffff16565b611c6b565b6001905092915050565b610982611c63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906132fa565b60405180910390fd5b610a1a8383836127b5565b505050565b600080600267ffffffffffffffff811115610a3d57610a3c61331a565b5b604051908082528060200260200182016040528015610a6b5781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff919061335e565b81600081518110610b1357610b1261338b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610b6257610b6161338b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f600f54836040518363ffffffff1660e01b8152600401610bfb929190613478565b600060405180830381865afa158015610c18573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610c4191906135cc565b600181518110610c5457610c5361338b565b5b602002602001015191505090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c9330610d1c565b90506000811115610cbd57600e60009054906101000a900460ff16610cbc57610cbb81612860565b5b5b50565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600f5481565b6000601260149054906101000a900460ff1615610e6157600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610dce5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544210155b15610e1a57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610ea4565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610ea4565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b610eb1611c63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906132fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161103c919061312c565b602060405180830381865afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190613615565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110dc929190613642565b6020604051808303816000875af11580156110fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111f9190613680565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600b805461115d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546111899061327d565b80156111d65780601f106111ab576101008083540402835291602001916111d6565b820191906000526020600020905b8154815290600101906020018083116111b957829003601f168201915b5050505050905090565b601260149054906101000a900460ff1681565b60006112b6611200611c63565b846112b185604051806060016040528060258152602001613ec5602591396008600061122a611c63565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f39092919063ffffffff16565b611c6b565b6001905092915050565b6112c8611c63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906132fa565b60405180910390fd5b80601260146101000a81548160ff02191690831515021790555050565b600061138661137f611c63565b8484611e34565b6001905092915050565b611398611c63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141c906132fa565b60405180910390fd5b80600f8190555050565b611437611c63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb906132fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c9061371f565b60405180910390fd5b61158430600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54611c6b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611615919061335e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561169e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c2919061335e565b6040518363ffffffff1660e01b81526004016116df92919061373f565b6020604051808303816000875af11580156116fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611722919061335e565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306117ab30610d1c565b6000806117b6611125565b426040518863ffffffff1660e01b81526004016117d8969594939291906137a3565b60606040518083038185885af11580156117f6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061181b9190613804565b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118bd929190613642565b6020604051808303816000875af11580156118dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119009190613680565b50565b61190b611c63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f906132fa565b60405180910390fd5b81601081905550806011819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a9e573d6000803e3d6000fd5b5050565b611aaa611c63565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e906132fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d906138c9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd19061395b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d40906139ed565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e279190612f5e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a90613a7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990613b11565b60405180910390fd5b60008111611f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4c90613ba3565b60405180910390fd5b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ffc5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561203b575061200b611125565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561207a575061204a611125565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b90506000839050612089611125565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156120f757506120c7611125565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561212f57503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561216757503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156124af5781156124ae5761219a606461218c60105484612b9490919063ffffffff16565b612c0e90919063ffffffff16565b9250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156122055750601260149054906101000a900460ff165b156122f75761225c81600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275790919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b3600a4261275790919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156123a25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156124ad57600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484111561243157600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b612459606461244b60115484612b9490919063ffffffff16565b612c0e90919063ffffffff16565b9250600061246630610d1c565b905060008111156124ab57600061247b610a1f565b905080821015801561249a5750600e60009054906101000a900460ff16155b156124a9576124a881612860565b5b505b505b5b5b60006124c48483612c5890919063ffffffff16565b905061251882600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c5890919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125ad81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275790919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264284600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275790919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516126e29190612f5e565b60405180910390a350505050505050565b600083831115829061273b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127329190612d95565b60405180910390fd5b506000838561274a9190613bf2565b9050809150509392505050565b60008082846127669190613c26565b9050838110156127ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a290613ca6565b60405180910390fd5b8091505092915050565b60005b8383905081101561285a5760008484838181106127d8576127d761338b565b5b90506020020160208101906127ed9190613147565b905082600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061285290613cc6565b9150506127b8565b50505050565b6000600267ffffffffffffffff81111561287d5761287c61331a565b5b6040519080825280602002602001820160405280156128ab5781602001602082028036833780820191505090505b50905030816000815181106128c3576128c261338b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561296a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298e919061335e565b816001815181106129a2576129a161338b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a0930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c6b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a6d959493929190613d0e565b600060405180830381600087803b158015612a8757600080fd5b505af1158015612a9b573d6000803e3d6000fd5b5050505060004790506000612aba600283612c0e90919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b24573d6000803e3d6000fd5b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b8d573d6000803e3d6000fd5b5050505050565b6000808303612ba65760009050612c08565b60008284612bb49190613d68565b9050828482612bc39190613dd9565b14612c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfa90613e7c565b60405180910390fd5b809150505b92915050565b6000612c5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ca2565b905092915050565b6000612c9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126f3565b905092915050565b60008083118290612ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce09190612d95565b60405180910390fd5b5060008385612cf89190613dd9565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d3f578082015181840152602081019050612d24565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d6782612d05565b612d718185612d10565b9350612d81818560208601612d21565b612d8a81612d4b565b840191505092915050565b60006020820190508181036000830152612daf8184612d5c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612df682612dcb565b9050919050565b612e0681612deb565b8114612e1157600080fd5b50565b600081359050612e2381612dfd565b92915050565b6000819050919050565b612e3c81612e29565b8114612e4757600080fd5b50565b600081359050612e5981612e33565b92915050565b60008060408385031215612e7657612e75612dc1565b5b6000612e8485828601612e14565b9250506020612e9585828601612e4a565b9150509250929050565b60008115159050919050565b612eb481612e9f565b82525050565b6000602082019050612ecf6000830184612eab565b92915050565b6000819050919050565b6000612efa612ef5612ef084612dcb565b612ed5565b612dcb565b9050919050565b6000612f0c82612edf565b9050919050565b6000612f1e82612f01565b9050919050565b612f2e81612f13565b82525050565b6000602082019050612f496000830184612f25565b92915050565b612f5881612e29565b82525050565b6000602082019050612f736000830184612f4f565b92915050565b6000604082019050612f8e6000830185612f4f565b612f9b6020830184612f4f565b9392505050565b600080600060608486031215612fbb57612fba612dc1565b5b6000612fc986828701612e14565b9350506020612fda86828701612e14565b9250506040612feb86828701612e4a565b9150509250925092565b600060ff82169050919050565b61300b81612ff5565b82525050565b60006020820190506130266000830184613002565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126130515761305061302c565b5b8235905067ffffffffffffffff81111561306e5761306d613031565b5b60208301915083602082028301111561308a57613089613036565b5b9250929050565b61309a81612e9f565b81146130a557600080fd5b50565b6000813590506130b781613091565b92915050565b6000806000604084860312156130d6576130d5612dc1565b5b600084013567ffffffffffffffff8111156130f4576130f3612dc6565b5b6131008682870161303b565b93509350506020613113868287016130a8565b9150509250925092565b61312681612deb565b82525050565b6000602082019050613141600083018461311d565b92915050565b60006020828403121561315d5761315c612dc1565b5b600061316b84828501612e14565b91505092915050565b60006020828403121561318a57613189612dc1565b5b6000613198848285016130a8565b91505092915050565b6000602082840312156131b7576131b6612dc1565b5b60006131c584828501612e4a565b91505092915050565b600080604083850312156131e5576131e4612dc1565b5b60006131f385828601612e4a565b925050602061320485828601612e4a565b9150509250929050565b6000806040838503121561322557613224612dc1565b5b600061323385828601612e14565b925050602061324485828601612e14565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061329557607f821691505b6020821081036132a8576132a761324e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006132e4602083612d10565b91506132ef826132ae565b602082019050919050565b60006020820190508181036000830152613313816132d7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061335881612dfd565b92915050565b60006020828403121561337457613373612dc1565b5b600061338284828501613349565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133ef81612deb565b82525050565b600061340183836133e6565b60208301905092915050565b6000602082019050919050565b6000613425826133ba565b61342f81856133c5565b935061343a836133d6565b8060005b8381101561346b57815161345288826133f5565b975061345d8361340d565b92505060018101905061343e565b5085935050505092915050565b600060408201905061348d6000830185612f4f565b818103602083015261349f818461341a565b90509392505050565b6134b182612d4b565b810181811067ffffffffffffffff821117156134d0576134cf61331a565b5b80604052505050565b60006134e3612db7565b90506134ef82826134a8565b919050565b600067ffffffffffffffff82111561350f5761350e61331a565b5b602082029050602081019050919050565b60008151905061352f81612e33565b92915050565b6000613548613543846134f4565b6134d9565b9050808382526020820190506020840283018581111561356b5761356a613036565b5b835b8181101561359457806135808882613520565b84526020840193505060208101905061356d565b5050509392505050565b600082601f8301126135b3576135b261302c565b5b81516135c3848260208601613535565b91505092915050565b6000602082840312156135e2576135e1612dc1565b5b600082015167ffffffffffffffff811115613600576135ff612dc6565b5b61360c8482850161359e565b91505092915050565b60006020828403121561362b5761362a612dc1565b5b600061363984828501613520565b91505092915050565b6000604082019050613657600083018561311d565b6136646020830184612f4f565b9392505050565b60008151905061367a81613091565b92915050565b60006020828403121561369657613695612dc1565b5b60006136a48482850161366b565b91505092915050565b7f556e69737761705632506169722068617320616c7265616479206265656e207360008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000613709602283612d10565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b6000604082019050613754600083018561311d565b613761602083018461311d565b9392505050565b6000819050919050565b600061378d61378861378384613768565b612ed5565b612e29565b9050919050565b61379d81613772565b82525050565b600060c0820190506137b8600083018961311d565b6137c56020830188612f4f565b6137d26040830187613794565b6137df6060830186613794565b6137ec608083018561311d565b6137f960a0830184612f4f565b979650505050505050565b60008060006060848603121561381d5761381c612dc1565b5b600061382b86828701613520565b935050602061383c86828701613520565b925050604061384d86828701613520565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b3602683612d10565b91506138be82613857565b604082019050919050565b600060208201905081810360008301526138e2816138a6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613945602483612d10565b9150613950826138e9565b604082019050919050565b6000602082019050818103600083015261397481613938565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139d7602283612d10565b91506139e28261397b565b604082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a69602583612d10565b9150613a7482613a0d565b604082019050919050565b60006020820190508181036000830152613a9881613a5c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613afb602383612d10565b9150613b0682613a9f565b604082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b8d602983612d10565b9150613b9882613b31565b604082019050919050565b60006020820190508181036000830152613bbc81613b80565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bfd82612e29565b9150613c0883612e29565b9250828203905081811115613c2057613c1f613bc3565b5b92915050565b6000613c3182612e29565b9150613c3c83612e29565b9250828201905080821115613c5457613c53613bc3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c90601b83612d10565b9150613c9b82613c5a565b602082019050919050565b60006020820190508181036000830152613cbf81613c83565b9050919050565b6000613cd182612e29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d0357613d02613bc3565b5b600182019050919050565b600060a082019050613d236000830188612f4f565b613d306020830187613794565b8181036040830152613d42818661341a565b9050613d51606083018561311d565b613d5e6080830184612f4f565b9695505050505050565b6000613d7382612e29565b9150613d7e83612e29565b9250828202613d8c81612e29565b91508282048414831517613da357613da2613bc3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613de482612e29565b9150613def83612e29565b925082613dff57613dfe613daa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e66602183612d10565b9150613e7182613e0a565b604082019050919050565b60006020820190508181036000830152613e9581613e59565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122078269d0c9a46c45f5e4d0173fdfbfbb935f67af3a4bd4423e08d91d7504e2cc264736f6c63430008110033