6080604052670de0b6b3a76400005f196200001b919062000b60565b5f1962000029919062000bc4565b6006555f6008555f6009555f600a555f600b55600a54600c55600b54600d55600c54600e55600d54600f5573a6e8742d2fe1b3b9ca39c07d64d3a5cfa83b3f7c60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a6e8742d2fe1b3b9ca39c07d64d3a5cfa83b3f7c60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550670de0b6b3a764000060165566470de4df8200006017556509184e72a0006018553480156200015d575f80fd5b505f6200016f62000afc60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f6200022162000afc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000300573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000326919062000c63565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b2919062000c63565b6040518363ffffffff1660e01b8152600401620003d192919062000ca4565b6020604051808303815f875af1158015620003ee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000414919062000c63565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f6200046862000b0360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f7366f049111958809841bbe4b81c034da2d953aa0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f6f5736775feb0c8568e7dee77222a2688073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f7334822a742bde3bef13acabf14244869841f06a7373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f7369611a66d0cf67e5ddd1957e6499b5c5a3e4484573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f7369611a66d0cf67e5ddd1957e6499b5c5a3e4484573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f738484efcbda76955463aa12e1d504d7c6c89321f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f73e5265ce4d0a3b191431e1bac056d72b2b9f0fe4473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f7333f9da98c57674b5fc5ae7349e3c732cf2e6ce5c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f73c59a8e2d2c476ba9122aa4ec19b4c5e2bbabbc2873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f7321053ff2d9fc37d4db8687d48bd0b57581c1333d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f734dd6a0d3191a41522b84bc6b65d17f6f5e6a419273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000a8762000afc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000aed919062000ce0565b60405180910390a35062000cfb565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000b6c8262000b2a565b915062000b798362000b2a565b92508262000b8c5762000b8b62000b33565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000bd08262000b2a565b915062000bdd8362000b2a565b925082820390508181111562000bf85762000bf762000b97565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c2d8262000c02565b9050919050565b62000c3f8162000c21565b811462000c4a575f80fd5b50565b5f8151905062000c5d8162000c34565b92915050565b5f6020828403121562000c7b5762000c7a62000bfe565b5b5f62000c8a8482850162000c4d565b91505092915050565b62000c9e8162000c21565b82525050565b5f60408201905062000cb95f83018562000c93565b62000cc8602083018462000c93565b9392505050565b62000cda8162000b2a565b82525050565b5f60208201905062000cf55f83018462000ccf565b92915050565b6138688062000d095f395ff3fe60806040526004361061019f575f3560e01c80637d1db4a5116100eb578063a9059cbb11610089578063c492f04611610063578063c492f04614610584578063dd62ed3e146105ac578063ea1644d5146105e8578063f2fde38b14610610576101a6565b8063a9059cbb146104f6578063bfd7928414610532578063c3c8cd801461056e576101a6565b80638f9a55c0116100c55780638f9a55c01461045257806395d89b411461047c57806398a5c315146104a6578063a2a957bb146104ce576101a6565b80637d1db4a5146103d65780638da5cb5b146104005780638f70ccf71461042a576101a6565b8063313ce567116101585780636fc3eaec116101325780636fc3eaec1461034657806370a082311461035c578063715018a61461039857806374010ece146103ae576101a6565b8063313ce567146102ca57806349bd5a5e146102f45780636d8aa8f81461031e576101a6565b806306fdde03146101aa578063095ea7b3146101d45780631694505e1461021057806318160ddd1461023a57806323b872dd146102645780632fd689e3146102a0576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610638565b6040516101cb91906128e6565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f5919061299b565b610675565b60405161020791906129f3565b60405180910390f35b34801561021b575f80fd5b50610224610692565b6040516102319190612a67565b60405180910390f35b348015610245575f80fd5b5061024e6106b7565b60405161025b9190612a8f565b60405180910390f35b34801561026f575f80fd5b5061028a60048036038101906102859190612aa8565b6106c6565b60405161029791906129f3565b60405180910390f35b3480156102ab575f80fd5b506102b461079a565b6040516102c19190612a8f565b60405180910390f35b3480156102d5575f80fd5b506102de6107a0565b6040516102eb9190612b13565b60405180910390f35b3480156102ff575f80fd5b506103086107a8565b6040516103159190612b3b565b60405180910390f35b348015610329575f80fd5b50610344600480360381019061033f9190612b7e565b6107cd565b005b348015610351575f80fd5b5061035a61087e565b005b348015610367575f80fd5b50610382600480360381019061037d9190612ba9565b61094b565b60405161038f9190612a8f565b60405180910390f35b3480156103a3575f80fd5b506103ac610999565b005b3480156103b9575f80fd5b506103d460048036038101906103cf9190612bd4565b610ae7565b005b3480156103e1575f80fd5b506103ea610b85565b6040516103f79190612a8f565b60405180910390f35b34801561040b575f80fd5b50610414610b8b565b6040516104219190612b3b565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190612b7e565b610bb2565b005b34801561045d575f80fd5b50610466610c63565b6040516104739190612a8f565b60405180910390f35b348015610487575f80fd5b50610490610c69565b60405161049d91906128e6565b60405180910390f35b3480156104b1575f80fd5b506104cc60048036038101906104c79190612bd4565b610ca6565b005b3480156104d9575f80fd5b506104f460048036038101906104ef9190612bff565b610d44565b005b348015610501575f80fd5b5061051c6004803603810190610517919061299b565b610dfa565b60405161052991906129f3565b60405180910390f35b34801561053d575f80fd5b5061055860048036038101906105539190612ba9565b610e17565b60405161056591906129f3565b60405180910390f35b348015610579575f80fd5b50610582610e34565b005b34801561058f575f80fd5b506105aa60048036038101906105a59190612cc4565b610f09565b005b3480156105b7575f80fd5b506105d260048036038101906105cd9190612d21565b61103e565b6040516105df9190612a8f565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190612bd4565b6110c0565b005b34801561061b575f80fd5b5061063660048036038101906106319190612ba9565b61115e565b005b60606040518060400160405280600a81526020017f4a7564617320436f696e00000000000000000000000000000000000000000000815250905090565b5f61068861068161131b565b8484611322565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f6106d28484846114e5565b61078f846106de61131b565b61078a8560405180606001604052806028815260200161380b6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61074161131b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d459092919063ffffffff16565b611322565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107d561131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085890612da9565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108be61131b565b73ffffffffffffffffffffffffffffffffffffffff161480610933575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091b61131b565b73ffffffffffffffffffffffffffffffffffffffff16145b61093b575f80fd5b5f47905061094881611da7565b50565b5f61099260025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e9a565b9050919050565b6109a161131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612da9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610aef61131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7290612da9565b60405180910390fd5b8060168190555050565b60165481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bba61131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d90612da9565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f4a55444153000000000000000000000000000000000000000000000000000000815250905090565b610cae61131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612da9565b60405180910390fd5b8060188190555050565b610d4c61131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf90612da9565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f610e0d610e0661131b565b84846114e5565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7461131b565b73ffffffffffffffffffffffffffffffffffffffff161480610ee9575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ed161131b565b73ffffffffffffffffffffffffffffffffffffffff16145b610ef1575f80fd5b5f610efb3061094b565b9050610f0681611f06565b50565b610f1161131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490612da9565b60405180910390fd5b5f5b83839050811015611038578160055f868685818110610fc157610fc0612dc7565b5b9050602002016020810190610fd69190612ba9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061103090612e21565b915050610f9f565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110c861131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612da9565b60405180910390fd5b8060178190555050565b61116661131b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612da9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612ed8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138790612f66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612ff4565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d89190612a8f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90613082565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613110565b60405180910390fd5b5f8111611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa9061319e565b60405180910390fd5b61160b610b8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116795750611649610b8b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a5257601560149054906101000a900460ff166117085761169a610b8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fe9061322c565b60405180910390fd5b5b60165481111561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490613294565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117eb575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61182a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182190613322565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118d6576017548161188b8461094b565b6118959190613340565b106118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc906133e3565b60405180910390fd5b5b5f6118e03061094b565b90505f601854821015905060165482106118fa5760165491505b808015611912575060158054906101000a900460ff16155b801561196b575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119835750601560169054906101000a900460ff165b80156119d6575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a29575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a4f57611a3782611f06565b5f4790505f811115611a4d57611a4c47611da7565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611af2575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ba3575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ba2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611bb0575f9050611d33565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c59575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c7157600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d1a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d3257600a54600c81905550600b54600d819055505b5b611d3f8484848461216f565b50505050565b5f838311158290611d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8391906128e6565b60405180910390fd5b505f8385611d9a9190613401565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611df660028461219c90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611e1e573d5f803e3d5ffd5b5060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e6e60028461219c90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611e96573d5f803e3d5ffd5b5050565b5f600654821115611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed7906134a4565b60405180910390fd5b5f611ee96121e5565b9050611efe818461219c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f3c57611f3b6134c2565b5b604051908082528060200260200182016040528015611f6a5781602001602082028036833780820191505090505b50905030815f81518110611f8157611f80612dc7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612025573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120499190613503565b8160018151811061205d5761205c612dc7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120c33060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611322565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161212595949392919061361e565b5f604051808303815f87803b15801561213c575f80fd5b505af115801561214e573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061217d5761217c61220e565b5b612188848484612247565b8061219657612195612407565b5b50505050565b5f6121dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061241b565b905092915050565b5f805f6121f061247c565b91509150612207818361219c90919063ffffffff16565b9250505090565b5f600c5414801561222057505f600d54145b61224557600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612256876124d8565b9550955095509550955095506122b28660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461253890919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123438560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258190919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061238d816125de565b6123978483612695565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123f49190612a8f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f8083118290612461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245891906128e6565b60405180910390fd5b505f838561246f91906136a3565b9050809150509392505050565b5f805f60065490505f670de0b6b3a764000090506124ad670de0b6b3a764000060065461219c90919063ffffffff16565b8210156124cb57600654670de0b6b3a76400009350935050506124d4565b81819350935050505b9091565b5f805f805f805f805f6124f08a600c54600d546126cf565b9250925092505f6124ff6121e5565b90505f805f6125108e878787612761565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61257983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d45565b905092915050565b5f80828461258f9190613340565b9050838110156125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cb9061371d565b60405180910390fd5b8091505092915050565b5f6125e76121e5565b90505f6125fd82846127e590919063ffffffff16565b905061264f8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258190919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6126aa8260065461253890919063ffffffff16565b6006819055506126c58160075461258190919063ffffffff16565b6007819055505050565b5f805f806126f960646126eb888a6127e590919063ffffffff16565b61219c90919063ffffffff16565b90505f6127226064612714888b6127e590919063ffffffff16565b61219c90919063ffffffff16565b90505f61274a8261273c858c61253890919063ffffffff16565b61253890919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061277885896127e590919063ffffffff16565b90505f61278e86896127e590919063ffffffff16565b90505f6127a487896127e590919063ffffffff16565b90505f6127cc826127be858761253890919063ffffffff16565b61253890919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036127f5575f9050612856565b5f8284612802919061373b565b905082848261281191906136a3565b14612851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612848906137ec565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612893578082015181840152602081019050612878565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6128b88261285c565b6128c28185612866565b93506128d2818560208601612876565b6128db8161289e565b840191505092915050565b5f6020820190508181035f8301526128fe81846128ae565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129378261290e565b9050919050565b6129478161292d565b8114612951575f80fd5b50565b5f813590506129628161293e565b92915050565b5f819050919050565b61297a81612968565b8114612984575f80fd5b50565b5f8135905061299581612971565b92915050565b5f80604083850312156129b1576129b0612906565b5b5f6129be85828601612954565b92505060206129cf85828601612987565b9150509250929050565b5f8115159050919050565b6129ed816129d9565b82525050565b5f602082019050612a065f8301846129e4565b92915050565b5f819050919050565b5f612a2f612a2a612a258461290e565b612a0c565b61290e565b9050919050565b5f612a4082612a15565b9050919050565b5f612a5182612a36565b9050919050565b612a6181612a47565b82525050565b5f602082019050612a7a5f830184612a58565b92915050565b612a8981612968565b82525050565b5f602082019050612aa25f830184612a80565b92915050565b5f805f60608486031215612abf57612abe612906565b5b5f612acc86828701612954565b9350506020612add86828701612954565b9250506040612aee86828701612987565b9150509250925092565b5f60ff82169050919050565b612b0d81612af8565b82525050565b5f602082019050612b265f830184612b04565b92915050565b612b358161292d565b82525050565b5f602082019050612b4e5f830184612b2c565b92915050565b612b5d816129d9565b8114612b67575f80fd5b50565b5f81359050612b7881612b54565b92915050565b5f60208284031215612b9357612b92612906565b5b5f612ba084828501612b6a565b91505092915050565b5f60208284031215612bbe57612bbd612906565b5b5f612bcb84828501612954565b91505092915050565b5f60208284031215612be957612be8612906565b5b5f612bf684828501612987565b91505092915050565b5f805f8060808587031215612c1757612c16612906565b5b5f612c2487828801612987565b9450506020612c3587828801612987565b9350506040612c4687828801612987565b9250506060612c5787828801612987565b91505092959194509250565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612c8457612c83612c63565b5b8235905067ffffffffffffffff811115612ca157612ca0612c67565b5b602083019150836020820283011115612cbd57612cbc612c6b565b5b9250929050565b5f805f60408486031215612cdb57612cda612906565b5b5f84013567ffffffffffffffff811115612cf857612cf761290a565b5b612d0486828701612c6f565b93509350506020612d1786828701612b6a565b9150509250925092565b5f8060408385031215612d3757612d36612906565b5b5f612d4485828601612954565b9250506020612d5585828601612954565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d93602083612866565b9150612d9e82612d5f565b602082019050919050565b5f6020820190508181035f830152612dc081612d87565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612e2b82612968565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5d57612e5c612df4565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ec2602683612866565b9150612ecd82612e68565b604082019050919050565b5f6020820190508181035f830152612eef81612eb6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f50602483612866565b9150612f5b82612ef6565b604082019050919050565b5f6020820190508181035f830152612f7d81612f44565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fde602283612866565b9150612fe982612f84565b604082019050919050565b5f6020820190508181035f83015261300b81612fd2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61306c602583612866565b915061307782613012565b604082019050919050565b5f6020820190508181035f83015261309981613060565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130fa602383612866565b9150613105826130a0565b604082019050919050565b5f6020820190508181035f830152613127816130ee565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613188602983612866565b91506131938261312e565b604082019050919050565b5f6020820190508181035f8301526131b58161317c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613216603f83612866565b9150613221826131bc565b604082019050919050565b5f6020820190508181035f8301526132438161320a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f61327e601c83612866565b91506132898261324a565b602082019050919050565b5f6020820190508181035f8301526132ab81613272565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f61330c602383612866565b9150613317826132b2565b604082019050919050565b5f6020820190508181035f83015261333981613300565b9050919050565b5f61334a82612968565b915061335583612968565b925082820190508082111561336d5761336c612df4565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6133cd602383612866565b91506133d882613373565b604082019050919050565b5f6020820190508181035f8301526133fa816133c1565b9050919050565b5f61340b82612968565b915061341683612968565b925082820390508181111561342e5761342d612df4565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f61348e602a83612866565b915061349982613434565b604082019050919050565b5f6020820190508181035f8301526134bb81613482565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506134fd8161293e565b92915050565b5f6020828403121561351857613517612906565b5b5f613525848285016134ef565b91505092915050565b5f819050919050565b5f61355161354c6135478461352e565b612a0c565b612968565b9050919050565b61356181613537565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6135998161292d565b82525050565b5f6135aa8383613590565b60208301905092915050565b5f602082019050919050565b5f6135cc82613567565b6135d68185613571565b93506135e183613581565b805f5b838110156136115781516135f8888261359f565b9750613603836135b6565b9250506001810190506135e4565b5085935050505092915050565b5f60a0820190506136315f830188612a80565b61363e6020830187613558565b818103604083015261365081866135c2565b905061365f6060830185612b2c565b61366c6080830184612a80565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6136ad82612968565b91506136b883612968565b9250826136c8576136c7613676565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613707601b83612866565b9150613712826136d3565b602082019050919050565b5f6020820190508181035f830152613734816136fb565b9050919050565b5f61374582612968565b915061375083612968565b925082820261375e81612968565b9150828204841483151761377557613774612df4565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137d6602183612866565b91506137e18261377c565b604082019050919050565b5f6020820190508181035f830152613803816137ca565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca4b71fc1a20316483460b86e9e2b4f6ce324b0a1c087c0ee5c95b7c2dbf1d4f64736f6c63430008140033