6080604052600160065f6101000a81548160ff021916908315150217905550736f56d0785bc113bc93c56a91b0d2771273dbb5cf60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460085560146009555f600a555f600b556014600c556018600d555f600e555f600f55606460026012600a620000aa9190620006eb565b633b9aca00620000bb91906200073b565b620000c791906200073b565b620000d39190620007b2565b601055606460026012600a620000ea9190620006eb565b633b9aca00620000fb91906200073b565b6200010791906200073b565b620001139190620007b2565b601155606460016012600a6200012a9190620006eb565b633b9aca006200013b91906200073b565b6200014791906200073b565b620001539190620007b2565b601255606460016012600a6200016a9190620006eb565b633b9aca006200017b91906200073b565b6200018791906200073b565b620001939190620007b2565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff021916908315150217905550600160175f6101000a81548160ff021916908360ff160217905550348015620001f0575f80fd5b505f620002026200052b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002ae6200052b60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002fe9190620006eb565b633b9aca006200030f91906200073b565b60015f620003226200052b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620003746200053260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200049f6200052b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620004fd9190620006eb565b633b9aca006200050e91906200073b565b6040516200051d9190620007fa565b60405180910390a362000815565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005e357808604811115620005bb57620005ba62000559565b5b6001851615620005cb5780820291505b8081029050620005db8562000586565b94506200059b565b94509492505050565b5f82620005fd5760019050620006cf565b816200060c575f9050620006cf565b8160018114620006255760028114620006305762000666565b6001915050620006cf565b60ff84111562000645576200064462000559565b5b8360020a9150848211156200065f576200065e62000559565b5b50620006cf565b5060208310610133831016604e8410600b8410161715620006a05782820a9050838111156200069a576200069962000559565b5b620006cf565b620006af848484600162000592565b92509050818404811115620006c957620006c862000559565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006f782620006d6565b91506200070483620006df565b9250620007337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005ec565b905092915050565b5f6200074782620006d6565b91506200075483620006d6565b92508282026200076481620006d6565b915082820484148315176200077e576200077d62000559565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007be82620006d6565b9150620007cb83620006d6565b925082620007de57620007dd62000785565b5b828204905092915050565b620007f481620006d6565b82525050565b5f6020820190506200080f5f830184620007e9565b92915050565b6137bb80620008235f395ff3fe608060405260043610610169575f3560e01c8063751039fc116100d0578063bf474bed11610089578063ce31a06b11610063578063ce31a06b146104ee578063d34628cc14610504578063dd62ed3e1461052c578063ec1f3f631461056857610170565b8063bf474bed14610484578063c876d0b9146104ae578063c9567bf9146104d857610170565b8063751039fc1461038a5780637d1db4a5146103a05780638da5cb5b146103ca5780638f9a55c0146103f457806395d89b411461041e578063a9059cbb1461044857610170565b806331c2d8471161012257806331c2d847146102945780633bbac579146102bc57806351bc3c85146102f857806370a082311461030e578063715018a61461034a578063722b62ad1461036057610170565b806306fdde0314610174578063095ea7b31461019e5780630faee56f146101da57806318160ddd1461020457806323b872dd1461022e578063313ce5671461026a57610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610590565b604051610195919061271b565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf91906127d9565b6105cd565b6040516101d19190612831565b60405180910390f35b3480156101e5575f80fd5b506101ee6105ea565b6040516101fb9190612859565b60405180910390f35b34801561020f575f80fd5b506102186105f0565b6040516102259190612859565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f9190612872565b610613565b6040516102619190612831565b60405180910390f35b348015610275575f80fd5b5061027e6106e7565b60405161028b91906128dd565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b59190612a36565b6106ef565b005b3480156102c7575f80fd5b506102e260048036038101906102dd9190612a7d565b610813565b6040516102ef9190612831565b60405180910390f35b348015610303575f80fd5b5061030c610865565b005b348015610319575f80fd5b50610334600480360381019061032f9190612a7d565b6108fd565b6040516103419190612859565b60405180910390f35b348015610355575f80fd5b5061035e610943565b005b34801561036b575f80fd5b50610374610a91565b60405161038191906128dd565b60405180910390f35b348015610395575f80fd5b5061039e610aa3565b005b3480156103ab575f80fd5b506103b4610beb565b6040516103c19190612859565b60405180910390f35b3480156103d5575f80fd5b506103de610bf1565b6040516103eb9190612ab7565b60405180910390f35b3480156103ff575f80fd5b50610408610c18565b6040516104159190612859565b60405180910390f35b348015610429575f80fd5b50610432610c1e565b60405161043f919061271b565b60405180910390f35b348015610453575f80fd5b5061046e600480360381019061046991906127d9565b610c5b565b60405161047b9190612831565b60405180910390f35b34801561048f575f80fd5b50610498610c78565b6040516104a59190612859565b60405180910390f35b3480156104b9575f80fd5b506104c2610c7e565b6040516104cf9190612831565b60405180910390f35b3480156104e3575f80fd5b506104ec610c90565b005b3480156104f9575f80fd5b506105026111b2565b005b34801561050f575f80fd5b5061052a60048036038101906105259190612a36565b61128a565b005b348015610537575f80fd5b50610552600480360381019061054d9190612ad0565b6113af565b60405161055f9190612859565b60405180910390f35b348015610573575f80fd5b5061058e60048036038101906105899190612b0e565b611431565b005b60606040518060400160405280600481526020017f4d41525300000000000000000000000000000000000000000000000000000000815250905090565b5f6105e06105d96114be565b84846114c5565b6001905092915050565b60135481565b5f6012600a6105ff9190612c95565b633b9aca0061060e9190612cdf565b905090565b5f61061f848484611688565b6106dc8461062b6114be565b6106d78560405180606001604052806028815260200161375e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61068e6114be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ec9092919063ffffffff16565b6114c5565b600190509392505050565b5f6012905090565b6106f76114be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612d6a565b60405180910390fd5b5f5b815181101561080f575f60045f8484815181106107a5576107a4612d88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061080790612db5565b915050610785565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a66114be565b73ffffffffffffffffffffffffffffffffffffffff16146108c5575f80fd5b5f6108cf306108fd565b90505f8111156108e3576108e28161214e565b5b5f4790505f8111156108f9576108f8816123b7565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61094b6114be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90612d6a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175f9054906101000a900460ff1681565b610aab6114be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e90612d6a565b60405180910390fd5b6012600a610b459190612c95565b633b9aca00610b549190612cdf565b6010819055506012600a610b689190612c95565b633b9aca00610b779190612cdf565b6011819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bc59190612c95565b633b9aca00610bd49190612cdf565b604051610be19190612859565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600481526020017f4d61727300000000000000000000000000000000000000000000000000000000815250905090565b5f610c6e610c676114be565b8484611688565b6001905092915050565b60125481565b60065f9054906101000a900460ff1681565b610c986114be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612d6a565b60405180910390fd5b601560149054906101000a900460ff1615610d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6b90612e46565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e103060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610dfc9190612c95565b633b9aca00610e0b9190612cdf565b6114c5565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612e78565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f24573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f489190612e78565b6040518363ffffffff1660e01b8152600401610f65929190612ea3565b6020604051808303815f875af1158015610f81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa59190612e78565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102c306108fd565b5f80611036610bf1565b426040518863ffffffff1660e01b815260040161105896959493929190612f0c565b60606040518083038185885af1158015611074573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110999190612f7f565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611139929190612fcf565b6020604051808303815f875af1158015611155573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111799190613020565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111f36114be565b73ffffffffffffffffffffffffffffffffffffffff1614611212575f80fd5b5f4790505f8111611221575f80fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611286573d5f803e3d5ffd5b5050565b6112926114be565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461131e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131590612d6a565b60405180910390fd5b5f5b81518110156113ab57600160045f84848151811061134157611340612d88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806113a390612db5565b915050611320565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114726114be565b73ffffffffffffffffffffffffffffffffffffffff1614611491575f80fd5b600a5481111580156114a55750600b548111155b6114ad575f80fd5b80600a8190555080600b8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a906130bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159890613149565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161167b9190612859565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906131d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b90613265565b60405180910390fd5b5f81116117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d906132f3565b60405180910390fd5b5f6117af610bf1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561181d57506117ed610bf1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e3c5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118c0575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6118c8575f80fd5b61190460646118f6600c54600f54116118e3576008546118e7565b600a545b856124b290919063ffffffff16565b61252990919063ffffffff16565b905060065f9054906101000a900460ff1615611a8c5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a8b574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3f906133a7565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b35575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b88575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c4257601054821115611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc99061340f565b60405180910390fd5b60115482611bdf856108fd565b611be9919061342d565b1115611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c21906134aa565b60405180910390fd5b600f5f815480929190611c3c90612db5565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cca57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d0e57611d0b6064611cfd600d54600f5411611cea57600954611cee565b600b545b856124b290919063ffffffff16565b61252990919063ffffffff16565b90505b5f611d18306108fd565b905060158054906101000a900460ff16158015611d81575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d995750601560169054906101000a900460ff165b8015611da6575060125481115b8015611db55750600e54600f54115b15611e3a576018544311611dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df5906134aa565b60405180910390fd5b611e1b611e1684611e1184601354612572565b612572565b61214e565b5f4790505f811115611e3157611e30476123b7565b5b43601881905550505b505b5f811115611f3b57611e948160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f329190612859565b60405180910390a35b611f8b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061202e611fe282846125e790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120d184866125e790919063ffffffff16565b6040516120de9190612859565b60405180910390a350505050565b5f838311158290612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a919061271b565b60405180910390fd5b505f838561214191906134c8565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612184576121836128fa565b5b6040519080825280602002602001820160405280156121b25781602001602082028036833780820191505090505b50905030815f815181106121c9576121c8612d88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561226d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122919190612e78565b816001815181106122a5576122a4612d88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061230b3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114c5565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161236d9594939291906135b2565b5f604051808303815f87803b158015612384575f80fd5b505af1158015612396573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b5f6064600a836123c79190612cdf565b6123d19190613637565b90505f81836123e091906134c8565b9050600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612447573d5f803e3d5ffd5b5060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156124ac573d5f803e3d5ffd5b50505050565b5f8083036124c2575f9050612523565b5f82846124cf9190612cdf565b90508284826124de9190613637565b1461251e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612515906136d7565b60405180910390fd5b809150505b92915050565b5f61256a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612630565b905092915050565b5f8183116125805782612582565b815b905092915050565b5f808284612598919061342d565b9050838110156125dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d49061373f565b60405180910390fd5b8091505092915050565b5f61262883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120ec565b905092915050565b5f8083118290612676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266d919061271b565b60405180910390fd5b505f83856126849190613637565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126c85780820151818401526020810190506126ad565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126ed82612691565b6126f7818561269b565b93506127078185602086016126ab565b612710816126d3565b840191505092915050565b5f6020820190508181035f83015261273381846126e3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127758261274c565b9050919050565b6127858161276b565b811461278f575f80fd5b50565b5f813590506127a08161277c565b92915050565b5f819050919050565b6127b8816127a6565b81146127c2575f80fd5b50565b5f813590506127d3816127af565b92915050565b5f80604083850312156127ef576127ee612744565b5b5f6127fc85828601612792565b925050602061280d858286016127c5565b9150509250929050565b5f8115159050919050565b61282b81612817565b82525050565b5f6020820190506128445f830184612822565b92915050565b612853816127a6565b82525050565b5f60208201905061286c5f83018461284a565b92915050565b5f805f6060848603121561288957612888612744565b5b5f61289686828701612792565b93505060206128a786828701612792565b92505060406128b8868287016127c5565b9150509250925092565b5f60ff82169050919050565b6128d7816128c2565b82525050565b5f6020820190506128f05f8301846128ce565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612930826126d3565b810181811067ffffffffffffffff8211171561294f5761294e6128fa565b5b80604052505050565b5f61296161273b565b905061296d8282612927565b919050565b5f67ffffffffffffffff82111561298c5761298b6128fa565b5b602082029050602081019050919050565b5f80fd5b5f6129b36129ae84612972565b612958565b905080838252602082019050602084028301858111156129d6576129d561299d565b5b835b818110156129ff57806129eb8882612792565b8452602084019350506020810190506129d8565b5050509392505050565b5f82601f830112612a1d57612a1c6128f6565b5b8135612a2d8482602086016129a1565b91505092915050565b5f60208284031215612a4b57612a4a612744565b5b5f82013567ffffffffffffffff811115612a6857612a67612748565b5b612a7484828501612a09565b91505092915050565b5f60208284031215612a9257612a91612744565b5b5f612a9f84828501612792565b91505092915050565b612ab18161276b565b82525050565b5f602082019050612aca5f830184612aa8565b92915050565b5f8060408385031215612ae657612ae5612744565b5b5f612af385828601612792565b9250506020612b0485828601612792565b9150509250929050565b5f60208284031215612b2357612b22612744565b5b5f612b30848285016127c5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612bbb57808604811115612b9757612b96612b39565b5b6001851615612ba65780820291505b8081029050612bb485612b66565b9450612b7b565b94509492505050565b5f82612bd35760019050612c8e565b81612be0575f9050612c8e565b8160018114612bf65760028114612c0057612c2f565b6001915050612c8e565b60ff841115612c1257612c11612b39565b5b8360020a915084821115612c2957612c28612b39565b5b50612c8e565b5060208310610133831016604e8410600b8410161715612c645782820a905083811115612c5f57612c5e612b39565b5b612c8e565b612c718484846001612b72565b92509050818404811115612c8857612c87612b39565b5b81810290505b9392505050565b5f612c9f826127a6565b9150612caa836128c2565b9250612cd77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612bc4565b905092915050565b5f612ce9826127a6565b9150612cf4836127a6565b9250828202612d02816127a6565b91508282048414831517612d1957612d18612b39565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d5460208361269b565b9150612d5f82612d20565b602082019050919050565b5f6020820190508181035f830152612d8181612d48565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612dbf826127a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612df157612df0612b39565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612e3060178361269b565b9150612e3b82612dfc565b602082019050919050565b5f6020820190508181035f830152612e5d81612e24565b9050919050565b5f81519050612e728161277c565b92915050565b5f60208284031215612e8d57612e8c612744565b5b5f612e9a84828501612e64565b91505092915050565b5f604082019050612eb65f830185612aa8565b612ec36020830184612aa8565b9392505050565b5f819050919050565b5f819050919050565b5f612ef6612ef1612eec84612eca565b612ed3565b6127a6565b9050919050565b612f0681612edc565b82525050565b5f60c082019050612f1f5f830189612aa8565b612f2c602083018861284a565b612f396040830187612efd565b612f466060830186612efd565b612f536080830185612aa8565b612f6060a083018461284a565b979650505050505050565b5f81519050612f79816127af565b92915050565b5f805f60608486031215612f9657612f95612744565b5b5f612fa386828701612f6b565b9350506020612fb486828701612f6b565b9250506040612fc586828701612f6b565b9150509250925092565b5f604082019050612fe25f830185612aa8565b612fef602083018461284a565b9392505050565b612fff81612817565b8114613009575f80fd5b50565b5f8151905061301a81612ff6565b92915050565b5f6020828403121561303557613034612744565b5b5f6130428482850161300c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130a560248361269b565b91506130b08261304b565b604082019050919050565b5f6020820190508181035f8301526130d281613099565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61313360228361269b565b915061313e826130d9565b604082019050919050565b5f6020820190508181035f83015261316081613127565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131c160258361269b565b91506131cc82613167565b604082019050919050565b5f6020820190508181035f8301526131ee816131b5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61324f60238361269b565b915061325a826131f5565b604082019050919050565b5f6020820190508181035f83015261327c81613243565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6132dd60298361269b565b91506132e882613283565b604082019050919050565b5f6020820190508181035f83015261330a816132d1565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61339160498361269b565b915061339c82613311565b606082019050919050565b5f6020820190508181035f8301526133be81613385565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6133f960198361269b565b9150613404826133c5565b602082019050919050565b5f6020820190508181035f830152613426816133ed565b9050919050565b5f613437826127a6565b9150613442836127a6565b925082820190508082111561345a57613459612b39565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613494601a8361269b565b915061349f82613460565b602082019050919050565b5f6020820190508181035f8301526134c181613488565b9050919050565b5f6134d2826127a6565b91506134dd836127a6565b92508282039050818111156134f5576134f4612b39565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61352d8161276b565b82525050565b5f61353e8383613524565b60208301905092915050565b5f602082019050919050565b5f613560826134fb565b61356a8185613505565b935061357583613515565b805f5b838110156135a557815161358c8882613533565b97506135978361354a565b925050600181019050613578565b5085935050505092915050565b5f60a0820190506135c55f83018861284a565b6135d26020830187612efd565b81810360408301526135e48186613556565b90506135f36060830185612aa8565b613600608083018461284a565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613641826127a6565b915061364c836127a6565b92508261365c5761365b61360a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136c160218361269b565b91506136cc82613667565b604082019050919050565b5f6020820190508181035f8301526136ee816136b5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613729601b8361269b565b9150613734826136f5565b602082019050919050565b5f6020820190508181035f8301526137568161371d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209d3fc9457948ff6bbf7238255080feadf421e7d2a632aa440c83f9bae735340c64736f6c63430008140033