60806040526018600655601860075560006008556000600955602c600a55602c600b556000600c556000600d60006101000a81548160ff021916908315150217905550606460016009600a6200005691906200087e565b6302625a00620000679190620008cf565b620000739190620008cf565b6200007f919062000949565b600e55606460016009600a6200009691906200087e565b6302625a00620000a79190620008cf565b620000b39190620008cf565b620000bf919062000949565b600f5561271060036009600a620000d791906200087e565b6302625a00620000e89190620008cf565b620000f49190620008cf565b62000100919062000949565b6010556000601260146101000a81548160ff0219169083151502179055503480156200012b57600080fd5b5060006200013e620006b360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ec620006b360201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200023c91906200087e565b6302625a006200024d9190620008cf565b6001600062000261620006b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002b5620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c19190620009eb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200054b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005719190620009eb565b6040518363ffffffff1660e01b81526004016200059092919062000a2e565b6020604051808303816000875af1158015620005b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d69190620009eb565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000626620006b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200068591906200087e565b6302625a00620006969190620008cf565b604051620006a5919062000a6c565b60405180910390a362000a89565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000772578086048111156200074a5762000749620006e4565b5b60018516156200075a5780820291505b80810290506200076a8562000713565b94506200072a565b94509492505050565b6000826200078d576001905062000860565b816200079d576000905062000860565b8160018114620007b65760028114620007c157620007f7565b600191505062000860565b60ff841115620007d657620007d5620006e4565b5b8360020a915084821115620007f057620007ef620006e4565b5b5062000860565b5060208310610133831016604e8410600b8410161715620008315782820a9050838111156200082b576200082a620006e4565b5b62000860565b62000840848484600162000720565b925090508184048111156200085a5762000859620006e4565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200088b8262000867565b9150620008988362000871565b9250620008c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200077b565b905092915050565b6000620008dc8262000867565b9150620008e98362000867565b9250828202620008f98162000867565b91508282048414831517620009135762000912620006e4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009568262000867565b9150620009638362000867565b9250826200097657620009756200091a565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009b38262000986565b9050919050565b620009c581620009a6565b8114620009d157600080fd5b50565b600081519050620009e581620009ba565b92915050565b60006020828403121562000a045762000a0362000981565b5b600062000a1484828501620009d4565b91505092915050565b62000a2881620009a6565b82525050565b600060408201905062000a45600083018562000a1d565b62000a54602083018462000a1d565b9392505050565b62000a668162000867565b82525050565b600060208201905062000a83600083018462000a5b565b92915050565b6131e98062000a996000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a1fca2b61161006f578063a1fca2b61461040d578063a9059cbb14610424578063bbc0c74214610461578063d34628cc1461048c578063dd62ed3e146104b5578063f4293890146104f25761014b565b8063715018a614610333578063751039fc1461034a5780637d1db4a5146103615780638da5cb5b1461038c5780638f9a55c0146103b757806395d89b41146103e25761014b565b806331c2d8471161010857806331c2d8471461024b57806334376f3b14610274578063503dfc4d1461029f57806351bc3c85146102b6578063658d4b7f146102cd57806370a08231146102f65761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806323b872dd146101e3578063313ce567146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610509565b60405161017291906121d7565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906122a1565b610546565b6040516101af91906122fc565b60405180910390f35b3480156101c457600080fd5b506101cd610564565b6040516101da9190612326565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612341565b610588565b60405161021791906122fc565b60405180910390f35b34801561022c57600080fd5b50610235610661565b60405161024291906123b0565b60405180910390f35b34801561025757600080fd5b50610272600480360381019061026d9190612513565b61066a565b005b34801561028057600080fd5b50610289610794565b6040516102969190612326565b60405180910390f35b3480156102ab57600080fd5b506102b461079a565b005b3480156102c257600080fd5b506102cb610884565b005b3480156102d957600080fd5b506102f460048036038101906102ef9190612588565b6108f8565b005b34801561030257600080fd5b5061031d600480360381019061031891906125c8565b6109e8565b60405161032a9190612326565b60405180910390f35b34801561033f57600080fd5b50610348610a31565b005b34801561035657600080fd5b5061035f610b84565b005b34801561036d57600080fd5b50610376610cbd565b6040516103839190612326565b60405180910390f35b34801561039857600080fd5b506103a1610cc3565b6040516103ae9190612604565b60405180910390f35b3480156103c357600080fd5b506103cc610cec565b6040516103d99190612326565b60405180910390f35b3480156103ee57600080fd5b506103f7610cf2565b60405161040491906121d7565b60405180910390f35b34801561041957600080fd5b50610422610d2f565b005b34801561043057600080fd5b5061044b600480360381019061044691906122a1565b610e31565b60405161045891906122fc565b60405180910390f35b34801561046d57600080fd5b50610476610e4f565b60405161048391906122fc565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190612513565b610e62565b005b3480156104c157600080fd5b506104dc60048036038101906104d7919061261f565b610f8c565b6040516104e99190612326565b60405180910390f35b3480156104fe57600080fd5b50610507611013565b005b60606040518060400160405280600481526020017f464f555200000000000000000000000000000000000000000000000000000000815250905090565b600061055a61055361107f565b8484611087565b6001905092915050565b60006009600a61057491906127c1565b6302625a00610583919061280c565b905090565b6000610595848484611250565b610656846105a161107f565b6106518560405180606001604052806028815260200161318c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061060761107f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2f9092919063ffffffff16565b611087565b600190509392505050565b60006009905090565b61067261107f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f69061289a565b60405180910390fd5b60005b815181101561079057600060046000848481518110610724576107236128ba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610788906128e9565b915050610702565b5050565b60105481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107db61107f565b73ffffffffffffffffffffffffffffffffffffffff16146107fb57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33610821306109e8565b6040518363ffffffff1660e01b815260040161083e929190612931565b6020604051808303816000875af115801561085d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610881919061296f565b50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108c561107f565b73ffffffffffffffffffffffffffffffffffffffff16146108e557600080fd5b6108f66108f1306109e8565b611c93565b565b61090061107f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109849061289a565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a3961107f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abd9061289a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b8c61107f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c109061289a565b60405180910390fd5b6009600a610c2791906127c1565b6302625a00610c36919061280c565b600e819055506009600a610c4a91906127c1565b6302625a00610c59919061280c565b600f81905550600b54600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c9791906127c1565b6302625a00610ca6919061280c565b604051610cb39190612326565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f464f555200000000000000000000000000000000000000000000000000000000815250905090565b610d3761107f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb9061289a565b60405180910390fd5b600d60009054906101000a900460ff1615610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b906129e8565b60405180910390fd5b6001600d60006101000a81548160ff021916908315150217905550565b6000610e45610e3e61107f565b8484611250565b6001905092915050565b600d60009054906101000a900460ff1681565b610e6a61107f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee9061289a565b60405180910390fd5b60005b8151811015610f8857600160046000848481518110610f1c57610f1b6128ba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f80906128e9565b915050610efa565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661105461107f565b73ffffffffffffffffffffffffffffffffffffffff161461107457600080fd5b61107d47611f0c565b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90612a7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c90612b0c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112439190612326565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612b9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590612c30565b60405180910390fd5b60008111611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612cc2565b60405180910390fd5b600d60009054906101000a900460ff1661146657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114265750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c90612d2e565b60405180910390fd5b5b6000611470610cc3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114de57506114ae610cc3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561197257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61159057600080fd5b601260149054906101000a900460ff166116f5576115e060646115d2600a54600c54116115bf576006546115c3565b6008545b85611f7890919063ffffffff16565b611ff290919063ffffffff16565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561166b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116f457600e548211156116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac90612d9a565b60405180910390fd5b6116f160646116e3600b54600c54116116d0576007546116d4565b6009545b85611f7890919063ffffffff16565b611ff290919063ffffffff16565b90505b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117a05750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117f65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118b157600e54821115611840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183790612d9a565b60405180910390fd5b600f548261184d856109e8565b6118579190612dba565b1115611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90612e3a565b60405180910390fd5b600c60008154809291906118ab906128e9565b91905055505b60006118bc306109e8565b9050601260149054906101000a900460ff161580156119295750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611936575060105481115b1561197057611956836010541161194f57601054611951565b835b611c93565b6000479050600081111561196e5761196d47611f0c565b5b505b505b6119c482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a6b611a1d828461203c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b10848661203c90919063ffffffff16565b604051611b1d9190612326565b60405180910390a36000811115611c2957611b8081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c209190612326565b60405180910390a35b50505050565b6000838311158290611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e91906121d7565b60405180910390fd5b5060008385611c869190612e5a565b9050809150509392505050565b6001601260146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ccb57611cca6123d0565b5b604051908082528060200260200182016040528015611cf95781602001602082028036833780820191505090505b5090503081600081518110611d1157611d106128ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddc9190612ea3565b81600181518110611df057611def6128ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e5730601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611087565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ebb959493929190612fd3565b600060405180830381600087803b158015611ed557600080fd5b505af1158015611ee9573d6000803e3d6000fd5b50505050506000601260146101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f74573d6000803e3d6000fd5b5050565b6000808303611f8a5760009050611fec565b60008284611f98919061280c565b9050828482611fa7919061305c565b14611fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fde906130ff565b60405180910390fd5b809150505b92915050565b600061203483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120e4565b905092915050565b600061207e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2f565b905092915050565b60008082846120959190612dba565b9050838110156120da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d19061316b565b60405180910390fd5b8091505092915050565b6000808311829061212b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212291906121d7565b60405180910390fd5b506000838561213a919061305c565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612181578082015181840152602081019050612166565b60008484015250505050565b6000601f19601f8301169050919050565b60006121a982612147565b6121b38185612152565b93506121c3818560208601612163565b6121cc8161218d565b840191505092915050565b600060208201905081810360008301526121f1818461219e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122388261220d565b9050919050565b6122488161222d565b811461225357600080fd5b50565b6000813590506122658161223f565b92915050565b6000819050919050565b61227e8161226b565b811461228957600080fd5b50565b60008135905061229b81612275565b92915050565b600080604083850312156122b8576122b7612203565b5b60006122c685828601612256565b92505060206122d78582860161228c565b9150509250929050565b60008115159050919050565b6122f6816122e1565b82525050565b600060208201905061231160008301846122ed565b92915050565b6123208161226b565b82525050565b600060208201905061233b6000830184612317565b92915050565b60008060006060848603121561235a57612359612203565b5b600061236886828701612256565b935050602061237986828701612256565b925050604061238a8682870161228c565b9150509250925092565b600060ff82169050919050565b6123aa81612394565b82525050565b60006020820190506123c560008301846123a1565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124088261218d565b810181811067ffffffffffffffff82111715612427576124266123d0565b5b80604052505050565b600061243a6121f9565b905061244682826123ff565b919050565b600067ffffffffffffffff821115612466576124656123d0565b5b602082029050602081019050919050565b600080fd5b600061248f61248a8461244b565b612430565b905080838252602082019050602084028301858111156124b2576124b1612477565b5b835b818110156124db57806124c78882612256565b8452602084019350506020810190506124b4565b5050509392505050565b600082601f8301126124fa576124f96123cb565b5b813561250a84826020860161247c565b91505092915050565b60006020828403121561252957612528612203565b5b600082013567ffffffffffffffff81111561254757612546612208565b5b612553848285016124e5565b91505092915050565b612565816122e1565b811461257057600080fd5b50565b6000813590506125828161255c565b92915050565b6000806040838503121561259f5761259e612203565b5b60006125ad85828601612256565b92505060206125be85828601612573565b9150509250929050565b6000602082840312156125de576125dd612203565b5b60006125ec84828501612256565b91505092915050565b6125fe8161222d565b82525050565b600060208201905061261960008301846125f5565b92915050565b6000806040838503121561263657612635612203565b5b600061264485828601612256565b925050602061265585828601612256565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126e5578086048111156126c1576126c061265f565b5b60018516156126d05780820291505b80810290506126de8561268e565b94506126a5565b94509492505050565b6000826126fe57600190506127ba565b8161270c57600090506127ba565b8160018114612722576002811461272c5761275b565b60019150506127ba565b60ff84111561273e5761273d61265f565b5b8360020a9150848211156127555761275461265f565b5b506127ba565b5060208310610133831016604e8410600b84101617156127905782820a90508381111561278b5761278a61265f565b5b6127ba565b61279d848484600161269b565b925090508184048111156127b4576127b361265f565b5b81810290505b9392505050565b60006127cc8261226b565b91506127d783612394565b92506128047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126ee565b905092915050565b60006128178261226b565b91506128228361226b565b92508282026128308161226b565b915082820484148315176128475761284661265f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612884602083612152565b915061288f8261284e565b602082019050919050565b600060208201905081810360008301526128b381612877565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006128f48261226b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129265761292561265f565b5b600182019050919050565b600060408201905061294660008301856125f5565b6129536020830184612317565b9392505050565b6000815190506129698161255c565b92915050565b60006020828403121561298557612984612203565b5b60006129938482850161295a565b91505092915050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b60006129d2601783612152565b91506129dd8261299c565b602082019050919050565b60006020820190508181036000830152612a01816129c5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a64602483612152565b9150612a6f82612a08565b604082019050919050565b60006020820190508181036000830152612a9381612a57565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612af6602283612152565b9150612b0182612a9a565b604082019050919050565b60006020820190508181036000830152612b2581612ae9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b88602583612152565b9150612b9382612b2c565b604082019050919050565b60006020820190508181036000830152612bb781612b7b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c1a602383612152565b9150612c2582612bbe565b604082019050919050565b60006020820190508181036000830152612c4981612c0d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cac602983612152565b9150612cb782612c50565b604082019050919050565b60006020820190508181036000830152612cdb81612c9f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612d18601683612152565b9150612d2382612ce2565b602082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612d84601983612152565b9150612d8f82612d4e565b602082019050919050565b60006020820190508181036000830152612db381612d77565b9050919050565b6000612dc58261226b565b9150612dd08361226b565b9250828201905080821115612de857612de761265f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e24601a83612152565b9150612e2f82612dee565b602082019050919050565b60006020820190508181036000830152612e5381612e17565b9050919050565b6000612e658261226b565b9150612e708361226b565b9250828203905081811115612e8857612e8761265f565b5b92915050565b600081519050612e9d8161223f565b92915050565b600060208284031215612eb957612eb8612203565b5b6000612ec784828501612e8e565b91505092915050565b6000819050919050565b6000819050919050565b6000612eff612efa612ef584612ed0565b612eda565b61226b565b9050919050565b612f0f81612ee4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f4a8161222d565b82525050565b6000612f5c8383612f41565b60208301905092915050565b6000602082019050919050565b6000612f8082612f15565b612f8a8185612f20565b9350612f9583612f31565b8060005b83811015612fc6578151612fad8882612f50565b9750612fb883612f68565b925050600181019050612f99565b5085935050505092915050565b600060a082019050612fe86000830188612317565b612ff56020830187612f06565b81810360408301526130078186612f75565b905061301660608301856125f5565b6130236080830184612317565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130678261226b565b91506130728361226b565b9250826130825761308161302d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130e9602183612152565b91506130f48261308d565b604082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613155601b83612152565b91506131608261311f565b602082019050919050565b6000602082019050818103600083015261318481613148565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200c2b78b4b5afd3af85d1dbfe436b490d626daa99ca20bb78686a8a4fc0011ee864736f6c63430008110033