6080604052670de0b6b3a76400006000196200001c91906200070e565b6000196200002b919062000775565b6006556000600855601e6009556000600a55601e600b55600a54600d55600b54600e55600d54600f55600e5460105573c0a07daf1371eebc86a2043ecec3f8eb24aa3657601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c0a07daf1371eebc86a2043ecec3f8eb24aa3657601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066b1a2bc2ec5000060165566b1a2bc2ec500006017556509184e72a0006018553480156200016657600080fd5b50600062000179620006a460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022e620006a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033891906200081a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c691906200081a565b6040518363ffffffff1660e01b8152600401620003e59291906200085d565b6020604051808303816000875af115801562000405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042b91906200081a565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000481620006ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062e620006a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200069591906200089b565b60405180910390a350620008b8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200071b82620006d5565b91506200072883620006d5565b9250826200073b576200073a620006df565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078282620006d5565b91506200078f83620006d5565b9250828203905081811115620007aa57620007a962000746565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e282620007b5565b9050919050565b620007f481620007d5565b81146200080057600080fd5b50565b6000815190506200081481620007e9565b92915050565b600060208284031215620008335762000832620007b0565b5b6000620008438482850162000803565b91505092915050565b6200085781620007d5565b82525050565b60006040820190506200087460008301856200084c565b6200088360208301846200084c565b9392505050565b6200089581620006d5565b82525050565b6000602082019050620008b260008301846200088a565b92915050565b6138fe80620008c86000396000f3fe6080604052600436106101a05760003560e01c806374010ece116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f0461461058b578063dd62ed3e146105b4578063ea1644d5146105f1578063f2fde38b1461061a576101a7565b8063a2a957bb1461050e578063a9059cbb14610537578063c3c8cd8014610574576101a7565b80638f70ccf7116100c65780638f70ccf7146104665780638f9a55c01461048f57806395d89b41146104ba57806398a5c315146104e5576101a7565b806374010ece146103e75780637d1db4a5146104105780638da5cb5b1461043b576101a7565b80632fd689e3116101595780636d8aa8f8116101335780636d8aa8f8146103535780636fc3eaec1461037c57806370a0823114610393578063715018a6146103d0576101a7565b80632fd689e3146102d2578063313ce567146102fd57806349bd5a5e14610328576101a7565b806306fdde03146101ac578063095ea7b3146101d757806313114a9d146102145780631694505e1461023f57806318160ddd1461026a57806323b872dd14610295576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610643565b6040516101ce919061291b565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f991906129db565b610680565b60405161020b9190612a36565b60405180910390f35b34801561022057600080fd5b5061022961069e565b6040516102369190612a60565b60405180910390f35b34801561024b57600080fd5b506102546106a4565b6040516102619190612ada565b60405180910390f35b34801561027657600080fd5b5061027f6106ca565b60405161028c9190612a60565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612af5565b6106da565b6040516102c99190612a36565b60405180910390f35b3480156102de57600080fd5b506102e76107b3565b6040516102f49190612a60565b60405180910390f35b34801561030957600080fd5b506103126107b9565b60405161031f9190612b64565b60405180910390f35b34801561033457600080fd5b5061033d6107c2565b60405161034a9190612b8e565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190612bd5565b6107e8565b005b34801561038857600080fd5b5061039161089a565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190612c02565b61096b565b6040516103c79190612a60565b60405180910390f35b3480156103dc57600080fd5b506103e56109bc565b005b3480156103f357600080fd5b5061040e60048036038101906104099190612c2f565b610b0f565b005b34801561041c57600080fd5b50610425610bae565b6040516104329190612a60565b60405180910390f35b34801561044757600080fd5b50610450610bb4565b60405161045d9190612b8e565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190612bd5565b610bdd565b005b34801561049b57600080fd5b506104a4610c8f565b6040516104b19190612a60565b60405180910390f35b3480156104c657600080fd5b506104cf610c95565b6040516104dc919061291b565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612c2f565b610cd2565b005b34801561051a57600080fd5b5061053560048036038101906105309190612c5c565b610d71565b005b34801561054357600080fd5b5061055e600480360381019061055991906129db565b610e9e565b60405161056b9190612a36565b60405180910390f35b34801561058057600080fd5b50610589610ebc565b005b34801561059757600080fd5b506105b260048036038101906105ad9190612d28565b610f95565b005b3480156105c057600080fd5b506105db60048036038101906105d69190612d88565b6110cf565b6040516105e89190612a60565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612c2f565b611156565b005b34801561062657600080fd5b50610641600480360381019061063c9190612c02565b6111f5565b005b60606040518060400160405280600c81526020017f4261627920537061636549440000000000000000000000000000000000000000815250905090565b600061069461068d6113b6565b84846113be565b6001905092915050565b600c5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006106e7848484611587565b6107a8846106f36113b6565b6107a3856040518060600160405280602881526020016138a160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107596113b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d279092919063ffffffff16565b6113be565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107f06113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087490612e14565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108db6113b6565b73ffffffffffffffffffffffffffffffffffffffff1614806109515750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109396113b6565b73ffffffffffffffffffffffffffffffffffffffff16145b61095a57600080fd5b600047905061096881611d8b565b50565b60006109b5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e86565b9050919050565b6109c46113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4890612e14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b176113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9b90612e14565b60405180910390fd5b8060168190555050565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610be56113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6990612e14565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f4249440000000000000000000000000000000000000000000000000000000000815250905090565b610cda6113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90612e14565b60405180910390fd5b8060188190555050565b610d796113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd90612e14565b60405180910390fd5b8360088190555082600a819055508160098190555080600b81905550600b54600954600a54600854610e389190612e63565b610e429190612e63565b610e4c9190612e63565b600c819055506064600c541115610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f90612ee3565b60405180910390fd5b50505050565b6000610eb2610eab6113b6565b8484611587565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610efd6113b6565b73ffffffffffffffffffffffffffffffffffffffff161480610f735750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f5b6113b6565b73ffffffffffffffffffffffffffffffffffffffff16145b610f7c57600080fd5b6000610f873061096b565b9050610f9281611ef4565b50565b610f9d6113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102190612e14565b60405180910390fd5b60005b838390508110156110c95781600560008686858181106110505761104f612f03565b5b90506020020160208101906110659190612c02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110c190612f32565b91505061102d565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115e6113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e290612e14565b60405180910390fd5b8060178190555050565b6111fd6113b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128190612e14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612fec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061307e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390613110565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157a9190612a60565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ed906131a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90613234565b60405180910390fd5b600081116116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906132c6565b60405180910390fd5b6116b0610bb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561171e57506116ee610bb4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a2657601560149054906101000a900460ff166117ad5761173f610bb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a390613358565b60405180910390fd5b5b6016548111156117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e9906133c4565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461189f57601754816118548461096b565b61185e9190612e63565b1061189e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189590613456565b60405180910390fd5b5b60006118aa3061096b565b90506000601854821015905060165482106118c55760165491505b8080156118dd575060158054906101000a900460ff16155b80156119375750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561194f5750601560169054906101000a900460ff165b80156119a55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119fb5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a2357611a0982611ef4565b60004790506000811115611a2157611a2047611d8b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611acd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b805750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b7f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b8e5760009050611d15565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c395750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c5157600854600d81905550600954600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cfc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d1457600a54600d81905550600b54600e819055505b5b611d218484848461216b565b50505050565b6000838311158290611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d66919061291b565b60405180910390fd5b5060008385611d7e9190613476565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ddb60028461219890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e06573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e5760028461219890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e82573d6000803e3d6000fd5b5050565b6000600654821115611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec49061351c565b60405180910390fd5b6000611ed76121e2565b9050611eec818461219890919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2b57611f2a61353c565b5b604051908082528060200260200182016040528015611f595781602001602082028036833780820191505090505b5090503081600081518110611f7157611f70612f03565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203c9190613580565b816001815181106120505761204f612f03565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113be565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161211b9594939291906136a6565b600060405180830381600087803b15801561213557600080fd5b505af1158015612149573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806121795761217861220d565b5b61218484848461224a565b8061219257612191612415565b5b50505050565b60006121da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612429565b905092915050565b60008060006121ef61248c565b91509150612206818361219890919063ffffffff16565b9250505090565b6000600d5414801561222157506000600e54145b61224857600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061225c876124eb565b9550955095509550955095506122ba86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061234f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239b816125fb565b6123a584836126b8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124029190612a60565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612467919061291b565b60405180910390fd5b506000838561247f919061372f565b9050809150509392505050565b600080600060065490506000670de0b6b3a764000090506124c0670de0b6b3a764000060065461219890919063ffffffff16565b8210156124de57600654670de0b6b3a76400009350935050506124e7565b81819350935050505b9091565b60008060008060008060008060006125088a600d54600e546126f2565b92509250925060006125186121e2565b9050600080600061252b8e878787612788565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061259583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d27565b905092915050565b60008082846125ac9190612e63565b9050838110156125f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e8906137ac565b60405180910390fd5b8091505092915050565b60006126056121e2565b9050600061261c828461281190919063ffffffff16565b905061267081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126cd8260065461255390919063ffffffff16565b6006819055506126e88160075461259d90919063ffffffff16565b6007819055505050565b60008060008061271e6064612710888a61281190919063ffffffff16565b61219890919063ffffffff16565b90506000612748606461273a888b61281190919063ffffffff16565b61219890919063ffffffff16565b9050600061277182612763858c61255390919063ffffffff16565b61255390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806127a1858961281190919063ffffffff16565b905060006127b8868961281190919063ffffffff16565b905060006127cf878961281190919063ffffffff16565b905060006127f8826127ea858761255390919063ffffffff16565b61255390919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036128235760009050612885565b6000828461283191906137cc565b9050828482612840919061372f565b14612880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287790613880565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128c55780820151818401526020810190506128aa565b60008484015250505050565b6000601f19601f8301169050919050565b60006128ed8261288b565b6128f78185612896565b93506129078185602086016128a7565b612910816128d1565b840191505092915050565b6000602082019050818103600083015261293581846128e2565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061297282612947565b9050919050565b61298281612967565b811461298d57600080fd5b50565b60008135905061299f81612979565b92915050565b6000819050919050565b6129b8816129a5565b81146129c357600080fd5b50565b6000813590506129d5816129af565b92915050565b600080604083850312156129f2576129f161293d565b5b6000612a0085828601612990565b9250506020612a11858286016129c6565b9150509250929050565b60008115159050919050565b612a3081612a1b565b82525050565b6000602082019050612a4b6000830184612a27565b92915050565b612a5a816129a5565b82525050565b6000602082019050612a756000830184612a51565b92915050565b6000819050919050565b6000612aa0612a9b612a9684612947565b612a7b565b612947565b9050919050565b6000612ab282612a85565b9050919050565b6000612ac482612aa7565b9050919050565b612ad481612ab9565b82525050565b6000602082019050612aef6000830184612acb565b92915050565b600080600060608486031215612b0e57612b0d61293d565b5b6000612b1c86828701612990565b9350506020612b2d86828701612990565b9250506040612b3e868287016129c6565b9150509250925092565b600060ff82169050919050565b612b5e81612b48565b82525050565b6000602082019050612b796000830184612b55565b92915050565b612b8881612967565b82525050565b6000602082019050612ba36000830184612b7f565b92915050565b612bb281612a1b565b8114612bbd57600080fd5b50565b600081359050612bcf81612ba9565b92915050565b600060208284031215612beb57612bea61293d565b5b6000612bf984828501612bc0565b91505092915050565b600060208284031215612c1857612c1761293d565b5b6000612c2684828501612990565b91505092915050565b600060208284031215612c4557612c4461293d565b5b6000612c53848285016129c6565b91505092915050565b60008060008060808587031215612c7657612c7561293d565b5b6000612c84878288016129c6565b9450506020612c95878288016129c6565b9350506040612ca6878288016129c6565b9250506060612cb7878288016129c6565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612ce857612ce7612cc3565b5b8235905067ffffffffffffffff811115612d0557612d04612cc8565b5b602083019150836020820283011115612d2157612d20612ccd565b5b9250929050565b600080600060408486031215612d4157612d4061293d565b5b600084013567ffffffffffffffff811115612d5f57612d5e612942565b5b612d6b86828701612cd2565b93509350506020612d7e86828701612bc0565b9150509250925092565b60008060408385031215612d9f57612d9e61293d565b5b6000612dad85828601612990565b9250506020612dbe85828601612990565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612dfe602083612896565b9150612e0982612dc8565b602082019050919050565b60006020820190508181036000830152612e2d81612df1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e6e826129a5565b9150612e79836129a5565b9250828201905080821115612e9157612e90612e34565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000612ecd601e83612896565b9150612ed882612e97565b602082019050919050565b60006020820190508181036000830152612efc81612ec0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f3d826129a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f6f57612f6e612e34565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612fd6602683612896565b9150612fe182612f7a565b604082019050919050565b6000602082019050818103600083015261300581612fc9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613068602483612896565b91506130738261300c565b604082019050919050565b600060208201905081810360008301526130978161305b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130fa602283612896565b91506131058261309e565b604082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061318c602583612896565b915061319782613130565b604082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061321e602383612896565b9150613229826131c2565b604082019050919050565b6000602082019050818103600083015261324d81613211565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132b0602983612896565b91506132bb82613254565b604082019050919050565b600060208201905081810360008301526132df816132a3565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613342603f83612896565b915061334d826132e6565b604082019050919050565b6000602082019050818103600083015261337181613335565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006133ae601c83612896565b91506133b982613378565b602082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613440602383612896565b915061344b826133e4565b604082019050919050565b6000602082019050818103600083015261346f81613433565b9050919050565b6000613481826129a5565b915061348c836129a5565b92508282039050818111156134a4576134a3612e34565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613506602a83612896565b9150613511826134aa565b604082019050919050565b60006020820190508181036000830152613535816134f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061357a81612979565b92915050565b6000602082840312156135965761359561293d565b5b60006135a48482850161356b565b91505092915050565b6000819050919050565b60006135d26135cd6135c8846135ad565b612a7b565b6129a5565b9050919050565b6135e2816135b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61361d81612967565b82525050565b600061362f8383613614565b60208301905092915050565b6000602082019050919050565b6000613653826135e8565b61365d81856135f3565b935061366883613604565b8060005b838110156136995781516136808882613623565b975061368b8361363b565b92505060018101905061366c565b5085935050505092915050565b600060a0820190506136bb6000830188612a51565b6136c860208301876135d9565b81810360408301526136da8186613648565b90506136e96060830185612b7f565b6136f66080830184612a51565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061373a826129a5565b9150613745836129a5565b92508261375557613754613700565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613796601b83612896565b91506137a182613760565b602082019050919050565b600060208201905081810360008301526137c581613789565b9050919050565b60006137d7826129a5565b91506137e2836129a5565b92508282026137f0816129a5565b9150828204841483151761380757613806612e34565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061386a602183612896565b91506138758261380e565b604082019050919050565b600060208201905081810360008301526138998161385d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b07938e38919ca7a3c85c5f37b5eb2829cad5a37ef128b224ca6b448d90ae89e64736f6c63430008110033