6080604052683635c9adc5dea000005f196200001c9190620008b2565b5f196200002a919062000916565b6006555f6009555f600a555f600b556001600c55600b54600d55600c54600e55600d54600f55600e546010557377d6516475d03ffbf7c361d7f629a812056e582d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730c865fe8d3730b6a910b6273e2eabf8ea7d7edc360145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506200016c6103e86200015d651b48eb57e000683635c9adc5dea000006200071760201b90919060201c565b6200079760201b90919060201c565b601755620001aa6103e86200019b666a94d74f430000683635c9adc5dea000006200071760201b90919060201c565b6200079760201b90919060201c565b601855620001e76103e8620001d86509184e72a000683635c9adc5dea000006200071760201b90919060201c565b6200079760201b90919060201c565b601955348015620001f6575f80fd5b505f62000208620007e860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620002ba620007e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf9190620009b5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000425573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200044b9190620009b5565b6040518363ffffffff1660e01b81526004016200046a929190620009f6565b6020604051808303815f875af115801562000487573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004ad9190620009b5565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f62000501620007ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006a1620007e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea0000060405162000708919062000a32565b60405180910390a35062000c18565b5f80830362000729575f905062000791565b5f828462000738919062000a4d565b905082848262000749919062000a97565b146200078c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007839062000b52565b60405180910390fd5b809150505b92915050565b5f620007e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200081660201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80831182906200085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000856919062000bf6565b60405180910390fd5b505f83856200086f919062000a97565b9050809150509392505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008be826200087c565b9150620008cb836200087c565b925082620008de57620008dd62000885565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000922826200087c565b91506200092f836200087c565b92508282039050818111156200094a5762000949620008e9565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200097f8262000954565b9050919050565b620009918162000973565b81146200099c575f80fd5b50565b5f81519050620009af8162000986565b92915050565b5f60208284031215620009cd57620009cc62000950565b5b5f620009dc848285016200099f565b91505092915050565b620009f08162000973565b82525050565b5f60408201905062000a0b5f830185620009e5565b62000a1a6020830184620009e5565b9392505050565b62000a2c816200087c565b82525050565b5f60208201905062000a475f83018462000a21565b92915050565b5f62000a59826200087c565b915062000a66836200087c565b925082820262000a76816200087c565b9150828204841483151762000a905762000a8f620008e9565b5b5092915050565b5f62000aa3826200087c565b915062000ab0836200087c565b92508262000ac35762000ac262000885565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000b3a60218362000ace565b915062000b478262000ade565b604082019050919050565b5f6020820190508181035f83015262000b6b8162000b2c565b9050919050565b5f81519050919050565b5f5b8381101562000b9b57808201518184015260208101905062000b7e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000bc28262000b72565b62000bce818562000ace565b935062000be081856020860162000b7c565b62000beb8162000ba6565b840191505092915050565b5f6020820190508181035f83015262000c10818462000bb6565b905092915050565b613d128062000c265f395ff3fe6080604052600436106101da575f3560e01c806374010ece11610101578063a9059cbb11610094578063d00efb2f11610063578063d00efb2f1461064d578063dd62ed3e14610677578063ea1644d5146106b3578063f2fde38b146106db576101e1565b8063a9059cbb14610597578063bfd79284146105d3578063c3c8cd801461060f578063c492f04614610625576101e1565b80638f9a55c0116100d05780638f9a55c0146104f357806395d89b411461051d57806398a5c31514610547578063a2a957bb1461056f576101e1565b806374010ece1461044f5780637d1db4a5146104775780638da5cb5b146104a15780638f70ccf7146104cb576101e1565b8063313ce567116101795780636d8aa8f8116101485780636d8aa8f8146103bf5780636fc3eaec146103e757806370a08231146103fd578063715018a614610439576101e1565b8063313ce5671461032d57806349bd5a5e1461035757806362256589146103815780636b99905314610397576101e1565b80631694505e116101b55780631694505e1461027357806318160ddd1461029d57806323b872dd146102c75780632fd689e314610303576101e1565b8062b8cf2a146101e557806306fdde031461020d578063095ea7b314610237576101e1565b366101e157005b5f80fd5b3480156101f0575f80fd5b5061020b60048036038101906102069190612dad565b610703565b005b348015610218575f80fd5b50610221610822565b60405161022e9190612e6e565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190612ec1565b61085f565b60405161026a9190612f19565b60405180910390f35b34801561027e575f80fd5b5061028761087c565b6040516102949190612f8d565b60405180910390f35b3480156102a8575f80fd5b506102b16108a1565b6040516102be9190612fb5565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e89190612fce565b6108b1565b6040516102fa9190612f19565b60405180910390f35b34801561030e575f80fd5b50610317610985565b6040516103249190612fb5565b60405180910390f35b348015610338575f80fd5b5061034161098b565b60405161034e9190613039565b60405180910390f35b348015610362575f80fd5b5061036b610993565b6040516103789190613061565b60405180910390f35b34801561038c575f80fd5b506103956109b8565b005b3480156103a2575f80fd5b506103bd60048036038101906103b8919061307a565b610a6e565b005b3480156103ca575f80fd5b506103e560048036038101906103e091906130cf565b610b59565b005b3480156103f2575f80fd5b506103fb610c09565b005b348015610408575f80fd5b50610423600480360381019061041e919061307a565b610cd6565b6040516104309190612fb5565b60405180910390f35b348015610444575f80fd5b5061044d610d24565b005b34801561045a575f80fd5b50610475600480360381019061047091906130fa565b610e72565b005b348015610482575f80fd5b5061048b610f10565b6040516104989190612fb5565b60405180910390f35b3480156104ac575f80fd5b506104b5610f16565b6040516104c29190613061565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec91906130cf565b610f3d565b005b3480156104fe575f80fd5b50610507610ff5565b6040516105149190612fb5565b60405180910390f35b348015610528575f80fd5b50610531610ffb565b60405161053e9190612e6e565b60405180910390f35b348015610552575f80fd5b5061056d600480360381019061056891906130fa565b611038565b005b34801561057a575f80fd5b5061059560048036038101906105909190613125565b6110d6565b005b3480156105a2575f80fd5b506105bd60048036038101906105b89190612ec1565b61118c565b6040516105ca9190612f19565b60405180910390f35b3480156105de575f80fd5b506105f960048036038101906105f4919061307a565b6111a9565b6040516106069190612f19565b60405180910390f35b34801561061a575f80fd5b506106236111c6565b005b348015610630575f80fd5b5061064b600480360381019061064691906131e2565b61129b565b005b348015610658575f80fd5b506106616113ca565b60405161066e9190612fb5565b60405180910390f35b348015610682575f80fd5b5061069d6004803603810190610698919061323f565b6113d0565b6040516106aa9190612fb5565b60405180910390f35b3480156106be575f80fd5b506106d960048036038101906106d491906130fa565b611452565b005b3480156106e6575f80fd5b5061070160048036038101906106fc919061307a565b6114f0565b005b61070b6116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e906132c7565b60405180910390fd5b5f5b815181101561081e57600160115f8484815181106107ba576107b96132e5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610799565b5050565b60606040518060400160405280600a81526020017f57415353494520494e5500000000000000000000000000000000000000000000815250905090565b5f61087261086b6116ad565b84846116b4565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f683635c9adc5dea00000905090565b5f6108bd848484611877565b61097a846108c96116ad565b61097585604051806060016040528060288152602001613cb56028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61092c6116ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120d79092919063ffffffff16565b6116b4565b600190509392505050565b60195481565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c06116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a43906132c7565b60405180910390fd5b683635c9adc5dea00000601781905550683635c9adc5dea00000601881905550565b610a766116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af9906132c7565b60405180910390fd5b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b616116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be4906132c7565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c496116ad565b73ffffffffffffffffffffffffffffffffffffffff161480610cbe575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca66116ad565b73ffffffffffffffffffffffffffffffffffffffff16145b610cc6575f80fd5b5f479050610cd381612139565b50565b5f610d1d60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222b565b9050919050565b610d2c6116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf906132c7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e7a6116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd906132c7565b60405180910390fd5b8060178190555050565b60175481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f456116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc8906132c7565b60405180910390fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600681526020017f5741535349450000000000000000000000000000000000000000000000000000815250905090565b6110406116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906132c7565b60405180910390fd5b8060198190555050565b6110de6116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611161906132c7565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f61119f6111986116ad565b8484611877565b6001905092915050565b6011602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112066116ad565b73ffffffffffffffffffffffffffffffffffffffff16148061127b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112636116ad565b73ffffffffffffffffffffffffffffffffffffffff16145b611283575f80fd5b5f61128d30610cd6565b905061129881612297565b50565b6112a36116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611326906132c7565b60405180910390fd5b5f5b838390508110156113c4578160055f868685818110611353576113526132e5565b5b9050602002016020810190611368919061307a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611331565b50505050565b60085481565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61145a6116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906132c7565b60405180910390fd5b8060188190555050565b6114f86116ad565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b906132c7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e990613382565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171990613410565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611790576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117879061349e565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161186a9190612fb5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dc9061352c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a906135ba565b60405180910390fd5b5f8111611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c90613648565b60405180910390fd5b61199d610f16565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a0b57506119db610f16565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611de457601660149054906101000a900460ff16611a9a57611a2c610f16565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a90906136d6565b60405180910390fd5b5b601754811115611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad69061373e565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b7d575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb3906137cc565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c685760185481611c1d84610cd6565b611c279190613817565b10611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e906138ba565b60405180910390fd5b5b5f611c7230610cd6565b90505f60195482101590506017548210611c8c5760175491505b808015611ca65750601660159054906101000a900460ff16155b8015611cff575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d15575060168054906101000a900460ff165b8015611d68575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611dbb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611de157611dc982612297565b5f4790505f811115611ddf57611dde47612139565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e84575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611f35575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f34575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f42575f90506120c5565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611feb575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200357600954600d81905550600a54600e819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ac575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120c457600b54600d81905550600c54600e819055505b5b6120d184848484612502565b50505050565b5f83831115829061211e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121159190612e6e565b60405180910390fd5b505f838561212c91906138d8565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218860018461252f90919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156121b0573d5f803e3d5ffd5b5060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121ff5f8461252f90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015612227573d5f803e3d5ffd5b5050565b5f600654821115612271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122689061397b565b60405180910390fd5b5f61227a612578565b905061228f818461252f90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122ce576122cd612c17565b5b6040519080825280602002602001820160405280156122fc5781602001602082028036833780820191505090505b50905030815f81518110612313576123126132e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123db91906139ad565b816001815181106123ef576123ee6132e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124553060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116b4565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124b7959493929190613ac8565b5f604051808303815f87803b1580156124ce575f80fd5b505af11580156124e0573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b806125105761250f6125a1565b5b61251b8484846125da565b806125295761252861279a565b5b50505050565b5f61257083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127ae565b905092915050565b5f805f61258361280f565b9150915061259a818361252f90919063ffffffff16565b9250505090565b5f600d541480156125b357505f600e54145b6125d857600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f806125e98761286e565b9550955095509550955095506126458660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ce90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126d68560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291790919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061272081612974565b61272a8483612a2b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127879190612fb5565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f80831182906127f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127eb9190612e6e565b60405180910390fd5b505f83856128029190613b4d565b9050809150509392505050565b5f805f60065490505f683635c9adc5dea000009050612842683635c9adc5dea0000060065461252f90919063ffffffff16565b82101561286157600654683635c9adc5dea0000093509350505061286a565b81819350935050505b9091565b5f805f805f805f805f6128868a600d54600e54612a65565b9250925092505f612895612578565b90505f805f6128a68e878787612af7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61290f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120d7565b905092915050565b5f8082846129259190613817565b90508381101561296a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296190613bc7565b60405180910390fd5b8091505092915050565b5f61297d612578565b90505f6129938284612b7b90919063ffffffff16565b90506129e58160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291790919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612a40826006546128ce90919063ffffffff16565b600681905550612a5b8160075461291790919063ffffffff16565b6007819055505050565b5f805f80612a8f6064612a81888a612b7b90919063ffffffff16565b61252f90919063ffffffff16565b90505f612ab86064612aaa888b612b7b90919063ffffffff16565b61252f90919063ffffffff16565b90505f612ae082612ad2858c6128ce90919063ffffffff16565b6128ce90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612b0e8589612b7b90919063ffffffff16565b90505f612b248689612b7b90919063ffffffff16565b90505f612b3a8789612b7b90919063ffffffff16565b90505f612b6282612b5485876128ce90919063ffffffff16565b6128ce90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612b8b575f9050612bec565b5f8284612b989190613be5565b9050828482612ba79190613b4d565b14612be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bde90613c96565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c4d82612c07565b810181811067ffffffffffffffff82111715612c6c57612c6b612c17565b5b80604052505050565b5f612c7e612bf2565b9050612c8a8282612c44565b919050565b5f67ffffffffffffffff821115612ca957612ca8612c17565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ce782612cbe565b9050919050565b612cf781612cdd565b8114612d01575f80fd5b50565b5f81359050612d1281612cee565b92915050565b5f612d2a612d2584612c8f565b612c75565b90508083825260208201905060208402830185811115612d4d57612d4c612cba565b5b835b81811015612d765780612d628882612d04565b845260208401935050602081019050612d4f565b5050509392505050565b5f82601f830112612d9457612d93612c03565b5b8135612da4848260208601612d18565b91505092915050565b5f60208284031215612dc257612dc1612bfb565b5b5f82013567ffffffffffffffff811115612ddf57612dde612bff565b5b612deb84828501612d80565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e2b578082015181840152602081019050612e10565b5f8484015250505050565b5f612e4082612df4565b612e4a8185612dfe565b9350612e5a818560208601612e0e565b612e6381612c07565b840191505092915050565b5f6020820190508181035f830152612e868184612e36565b905092915050565b5f819050919050565b612ea081612e8e565b8114612eaa575f80fd5b50565b5f81359050612ebb81612e97565b92915050565b5f8060408385031215612ed757612ed6612bfb565b5b5f612ee485828601612d04565b9250506020612ef585828601612ead565b9150509250929050565b5f8115159050919050565b612f1381612eff565b82525050565b5f602082019050612f2c5f830184612f0a565b92915050565b5f819050919050565b5f612f55612f50612f4b84612cbe565b612f32565b612cbe565b9050919050565b5f612f6682612f3b565b9050919050565b5f612f7782612f5c565b9050919050565b612f8781612f6d565b82525050565b5f602082019050612fa05f830184612f7e565b92915050565b612faf81612e8e565b82525050565b5f602082019050612fc85f830184612fa6565b92915050565b5f805f60608486031215612fe557612fe4612bfb565b5b5f612ff286828701612d04565b935050602061300386828701612d04565b925050604061301486828701612ead565b9150509250925092565b5f60ff82169050919050565b6130338161301e565b82525050565b5f60208201905061304c5f83018461302a565b92915050565b61305b81612cdd565b82525050565b5f6020820190506130745f830184613052565b92915050565b5f6020828403121561308f5761308e612bfb565b5b5f61309c84828501612d04565b91505092915050565b6130ae81612eff565b81146130b8575f80fd5b50565b5f813590506130c9816130a5565b92915050565b5f602082840312156130e4576130e3612bfb565b5b5f6130f1848285016130bb565b91505092915050565b5f6020828403121561310f5761310e612bfb565b5b5f61311c84828501612ead565b91505092915050565b5f805f806080858703121561313d5761313c612bfb565b5b5f61314a87828801612ead565b945050602061315b87828801612ead565b935050604061316c87828801612ead565b925050606061317d87828801612ead565b91505092959194509250565b5f80fd5b5f8083601f8401126131a2576131a1612c03565b5b8235905067ffffffffffffffff8111156131bf576131be613189565b5b6020830191508360208202830111156131db576131da612cba565b5b9250929050565b5f805f604084860312156131f9576131f8612bfb565b5b5f84013567ffffffffffffffff81111561321657613215612bff565b5b6132228682870161318d565b93509350506020613235868287016130bb565b9150509250925092565b5f806040838503121561325557613254612bfb565b5b5f61326285828601612d04565b925050602061327385828601612d04565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132b1602083612dfe565b91506132bc8261327d565b602082019050919050565b5f6020820190508181035f8301526132de816132a5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61336c602683612dfe565b915061337782613312565b604082019050919050565b5f6020820190508181035f83015261339981613360565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6133fa602483612dfe565b9150613405826133a0565b604082019050919050565b5f6020820190508181035f830152613427816133ee565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613488602283612dfe565b91506134938261342e565b604082019050919050565b5f6020820190508181035f8301526134b58161347c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613516602583612dfe565b9150613521826134bc565b604082019050919050565b5f6020820190508181035f8301526135438161350a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6135a4602383612dfe565b91506135af8261354a565b604082019050919050565b5f6020820190508181035f8301526135d181613598565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613632602983612dfe565b915061363d826135d8565b604082019050919050565b5f6020820190508181035f83015261365f81613626565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f6136c0603f83612dfe565b91506136cb82613666565b604082019050919050565b5f6020820190508181035f8301526136ed816136b4565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613728601c83612dfe565b9150613733826136f4565b602082019050919050565b5f6020820190508181035f8301526137558161371c565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f6137b6602383612dfe565b91506137c18261375c565b604082019050919050565b5f6020820190508181035f8301526137e3816137aa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61382182612e8e565b915061382c83612e8e565b9250828201905080821115613844576138436137ea565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138a4602383612dfe565b91506138af8261384a565b604082019050919050565b5f6020820190508181035f8301526138d181613898565b9050919050565b5f6138e282612e8e565b91506138ed83612e8e565b9250828203905081811115613905576139046137ea565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613965602a83612dfe565b91506139708261390b565b604082019050919050565b5f6020820190508181035f83015261399281613959565b9050919050565b5f815190506139a781612cee565b92915050565b5f602082840312156139c2576139c1612bfb565b5b5f6139cf84828501613999565b91505092915050565b5f819050919050565b5f6139fb6139f66139f1846139d8565b612f32565b612e8e565b9050919050565b613a0b816139e1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a4381612cdd565b82525050565b5f613a548383613a3a565b60208301905092915050565b5f602082019050919050565b5f613a7682613a11565b613a808185613a1b565b9350613a8b83613a2b565b805f5b83811015613abb578151613aa28882613a49565b9750613aad83613a60565b925050600181019050613a8e565b5085935050505092915050565b5f60a082019050613adb5f830188612fa6565b613ae86020830187613a02565b8181036040830152613afa8186613a6c565b9050613b096060830185613052565b613b166080830184612fa6565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b5782612e8e565b9150613b6283612e8e565b925082613b7257613b71613b20565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613bb1601b83612dfe565b9150613bbc82613b7d565b602082019050919050565b5f6020820190508181035f830152613bde81613ba5565b9050919050565b5f613bef82612e8e565b9150613bfa83612e8e565b9250828202613c0881612e8e565b91508282048414831517613c1f57613c1e6137ea565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c80602183612dfe565b9150613c8b82613c26565b604082019050919050565b5f6020820190508181035f830152613cad81613c74565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220697625b47a6d8599c3aa180e1fc13cf4e813c142e81b49d4745e0b86f5f2fb4e64736f6c63430008170033