6080604052683635c9adc5dea000006000196200001d919062000715565b6000196200002c91906200077c565b600655600060085560056009556000600a55600f600b55600a54600d55600b54600e55600d54600f55600e546010557391c2129fd2496edd2349275a01632daa182d6342601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073917c9184c7a7cbc6945dea8ae74900c3e25320ca601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506801a055690d9db800006016556801a055690d9db80000601755662386f26fc100006018553480156200016c57600080fd5b5060006200017f620006ab60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000234620006ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000318573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033e919062000821565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cc919062000821565b6040518363ffffffff1660e01b8152600401620003eb92919062000864565b6020604051808303816000875af11580156200040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000431919062000821565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000487620006b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000634620006ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200069c9190620008a2565b60405180910390a350620008bf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200072282620006dc565b91506200072f83620006dc565b925082620007425762000741620006e6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078982620006dc565b91506200079683620006dc565b9250828203905081811115620007b157620007b06200074d565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e982620007bc565b9050919050565b620007fb81620007dc565b81146200080757600080fd5b50565b6000815190506200081b81620007f0565b92915050565b6000602082840312156200083a5762000839620007b7565b5b60006200084a848285016200080a565b91505092915050565b6200085e81620007dc565b82525050565b60006040820190506200087b600083018562000853565b6200088a602083018462000853565b9392505050565b6200089c81620006dc565b82525050565b6000602082019050620008b9600083018462000891565b92915050565b61390280620008cf6000396000f3fe6080604052600436106101a05760003560e01c806374010ece116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f0461461058b578063dd62ed3e146105b4578063ea1644d5146105f1578063f2fde38b1461061a576101a7565b8063a2a957bb1461050e578063a9059cbb14610537578063c3c8cd8014610574576101a7565b80638f70ccf7116100c65780638f70ccf7146104665780638f9a55c01461048f57806395d89b41146104ba57806398a5c315146104e5576101a7565b806374010ece146103e75780637d1db4a5146104105780638da5cb5b1461043b576101a7565b80632fd689e3116101595780636d8aa8f8116101335780636d8aa8f8146103535780636fc3eaec1461037c57806370a0823114610393578063715018a6146103d0576101a7565b80632fd689e3146102d2578063313ce567146102fd57806349bd5a5e14610328576101a7565b806306fdde03146101ac578063095ea7b3146101d757806313114a9d146102145780631694505e1461023f57806318160ddd1461026a57806323b872dd14610295576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610643565b6040516101ce919061291f565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f991906129df565b610680565b60405161020b9190612a3a565b60405180910390f35b34801561022057600080fd5b5061022961069e565b6040516102369190612a64565b60405180910390f35b34801561024b57600080fd5b506102546106a4565b6040516102619190612ade565b60405180910390f35b34801561027657600080fd5b5061027f6106ca565b60405161028c9190612a64565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612af9565b6106db565b6040516102c99190612a3a565b60405180910390f35b3480156102de57600080fd5b506102e76107b4565b6040516102f49190612a64565b60405180910390f35b34801561030957600080fd5b506103126107ba565b60405161031f9190612b68565b60405180910390f35b34801561033457600080fd5b5061033d6107c3565b60405161034a9190612b92565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190612bd9565b6107e9565b005b34801561038857600080fd5b5061039161089b565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190612c06565b61096c565b6040516103c79190612a64565b60405180910390f35b3480156103dc57600080fd5b506103e56109bd565b005b3480156103f357600080fd5b5061040e60048036038101906104099190612c33565b610b10565b005b34801561041c57600080fd5b50610425610baf565b6040516104329190612a64565b60405180910390f35b34801561044757600080fd5b50610450610bb5565b60405161045d9190612b92565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190612bd9565b610bde565b005b34801561049b57600080fd5b506104a4610c90565b6040516104b19190612a64565b60405180910390f35b3480156104c657600080fd5b506104cf610c96565b6040516104dc919061291f565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612c33565b610cd3565b005b34801561051a57600080fd5b5061053560048036038101906105309190612c60565b610d72565b005b34801561054357600080fd5b5061055e600480360381019061055991906129df565b610e9f565b60405161056b9190612a3a565b60405180910390f35b34801561058057600080fd5b50610589610ebd565b005b34801561059757600080fd5b506105b260048036038101906105ad9190612d2c565b610f96565b005b3480156105c057600080fd5b506105db60048036038101906105d69190612d8c565b6110d0565b6040516105e89190612a64565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612c33565b611157565b005b34801561062657600080fd5b50610641600480360381019061063c9190612c06565b6111f6565b005b60606040518060400160405280600a81526020017f53484953485520494e5500000000000000000000000000000000000000000000815250905090565b600061069461068d6113b7565b84846113bf565b6001905092915050565b600c5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b60006106e8848484611588565b6107a9846106f46113b7565b6107a4856040518060600160405280602881526020016138a560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075a6113b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d289092919063ffffffff16565b6113bf565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107f16113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087590612e18565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108dc6113b7565b73ffffffffffffffffffffffffffffffffffffffff1614806109525750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093a6113b7565b73ffffffffffffffffffffffffffffffffffffffff16145b61095b57600080fd5b600047905061096981611d8c565b50565b60006109b6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e87565b9050919050565b6109c56113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b186113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c90612e18565b60405180910390fd5b8060168190555050565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610be66113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612e18565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f245348494e550000000000000000000000000000000000000000000000000000815250905090565b610cdb6113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f90612e18565b60405180910390fd5b8060188190555050565b610d7a6113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90612e18565b60405180910390fd5b8360088190555082600a819055508160098190555080600b81905550600b54600954600a54600854610e399190612e67565b610e439190612e67565b610e4d9190612e67565b600c819055506064600c541115610e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9090612ee7565b60405180910390fd5b50505050565b6000610eb3610eac6113b7565b8484611588565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610efe6113b7565b73ffffffffffffffffffffffffffffffffffffffff161480610f745750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f5c6113b7565b73ffffffffffffffffffffffffffffffffffffffff16145b610f7d57600080fd5b6000610f883061096c565b9050610f9381611ef5565b50565b610f9e6113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290612e18565b60405180910390fd5b60005b838390508110156110ca57816005600086868581811061105157611050612f07565b5b90506020020160208101906110669190612c06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110c290612f36565b91505061102e565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115f6113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612e18565b60405180910390fd5b8060178190555050565b6111fe6113b7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612ff0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142590613082565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149490613114565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157b9190612a64565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee906131a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90613238565b60405180910390fd5b600081116116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a0906132ca565b60405180910390fd5b6116b1610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561171f57506116ef610bb5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a2757601560149054906101000a900460ff166117ae57611740610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a49061335c565b60405180910390fd5b5b6016548111156117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea906133c8565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118a057601754816118558461096c565b61185f9190612e67565b1061189f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118969061345a565b60405180910390fd5b5b60006118ab3061096c565b90506000601854821015905060165482106118c65760165491505b8080156118de575060158054906101000a900460ff16155b80156119385750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119505750601560169054906101000a900460ff165b80156119a65750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119fc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a2457611a0a82611ef5565b60004790506000811115611a2257611a2147611d8c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ace5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b815750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b805750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b8f5760009050611d16565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c3a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c5257600854600d81905550600954600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cfd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d1557600a54600d81905550600b54600e819055505b5b611d228484848461216c565b50505050565b6000838311158290611d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d67919061291f565b60405180910390fd5b5060008385611d7f919061347a565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ddc60028461219990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e07573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e5860028461219990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e83573d6000803e3d6000fd5b5050565b6000600654821115611ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec590613520565b60405180910390fd5b6000611ed86121e3565b9050611eed818461219990919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f2c57611f2b613540565b5b604051908082528060200260200182016040528015611f5a5781602001602082028036833780820191505090505b5090503081600081518110611f7257611f71612f07565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203d9190613584565b8160018151811061205157612050612f07565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113bf565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161211c9594939291906136aa565b600060405180830381600087803b15801561213657600080fd5b505af115801561214a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061217a5761217961220e565b5b61218584848461224b565b8061219357612192612416565b5b50505050565b60006121db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061242a565b905092915050565b60008060006121f061248d565b91509150612207818361219990919063ffffffff16565b9250505090565b6000600d5414801561222257506000600e54145b61224957600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061225d876124ef565b9550955095509550955095506122bb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061235085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239c816125ff565b6123a684836126bc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124039190612a64565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612471576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612468919061291f565b60405180910390fd5b50600083856124809190613733565b9050809150509392505050565b600080600060065490506000683635c9adc5dea0000090506124c3683635c9adc5dea0000060065461219990919063ffffffff16565b8210156124e257600654683635c9adc5dea000009350935050506124eb565b81819350935050505b9091565b600080600080600080600080600061250c8a600d54600e546126f6565b925092509250600061251c6121e3565b9050600080600061252f8e87878761278c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061259983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d28565b905092915050565b60008082846125b09190612e67565b9050838110156125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec906137b0565b60405180910390fd5b8091505092915050565b60006126096121e3565b90506000612620828461281590919063ffffffff16565b905061267481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126d18260065461255790919063ffffffff16565b6006819055506126ec816007546125a190919063ffffffff16565b6007819055505050565b6000806000806127226064612714888a61281590919063ffffffff16565b61219990919063ffffffff16565b9050600061274c606461273e888b61281590919063ffffffff16565b61219990919063ffffffff16565b9050600061277582612767858c61255790919063ffffffff16565b61255790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806127a5858961281590919063ffffffff16565b905060006127bc868961281590919063ffffffff16565b905060006127d3878961281590919063ffffffff16565b905060006127fc826127ee858761255790919063ffffffff16565b61255790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036128275760009050612889565b6000828461283591906137d0565b90508284826128449190613733565b14612884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287b90613884565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128c95780820151818401526020810190506128ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006128f18261288f565b6128fb818561289a565b935061290b8185602086016128ab565b612914816128d5565b840191505092915050565b6000602082019050818103600083015261293981846128e6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129768261294b565b9050919050565b6129868161296b565b811461299157600080fd5b50565b6000813590506129a38161297d565b92915050565b6000819050919050565b6129bc816129a9565b81146129c757600080fd5b50565b6000813590506129d9816129b3565b92915050565b600080604083850312156129f6576129f5612941565b5b6000612a0485828601612994565b9250506020612a15858286016129ca565b9150509250929050565b60008115159050919050565b612a3481612a1f565b82525050565b6000602082019050612a4f6000830184612a2b565b92915050565b612a5e816129a9565b82525050565b6000602082019050612a796000830184612a55565b92915050565b6000819050919050565b6000612aa4612a9f612a9a8461294b565b612a7f565b61294b565b9050919050565b6000612ab682612a89565b9050919050565b6000612ac882612aab565b9050919050565b612ad881612abd565b82525050565b6000602082019050612af36000830184612acf565b92915050565b600080600060608486031215612b1257612b11612941565b5b6000612b2086828701612994565b9350506020612b3186828701612994565b9250506040612b42868287016129ca565b9150509250925092565b600060ff82169050919050565b612b6281612b4c565b82525050565b6000602082019050612b7d6000830184612b59565b92915050565b612b8c8161296b565b82525050565b6000602082019050612ba76000830184612b83565b92915050565b612bb681612a1f565b8114612bc157600080fd5b50565b600081359050612bd381612bad565b92915050565b600060208284031215612bef57612bee612941565b5b6000612bfd84828501612bc4565b91505092915050565b600060208284031215612c1c57612c1b612941565b5b6000612c2a84828501612994565b91505092915050565b600060208284031215612c4957612c48612941565b5b6000612c57848285016129ca565b91505092915050565b60008060008060808587031215612c7a57612c79612941565b5b6000612c88878288016129ca565b9450506020612c99878288016129ca565b9350506040612caa878288016129ca565b9250506060612cbb878288016129ca565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612cec57612ceb612cc7565b5b8235905067ffffffffffffffff811115612d0957612d08612ccc565b5b602083019150836020820283011115612d2557612d24612cd1565b5b9250929050565b600080600060408486031215612d4557612d44612941565b5b600084013567ffffffffffffffff811115612d6357612d62612946565b5b612d6f86828701612cd6565b93509350506020612d8286828701612bc4565b9150509250925092565b60008060408385031215612da357612da2612941565b5b6000612db185828601612994565b9250506020612dc285828601612994565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e0260208361289a565b9150612e0d82612dcc565b602082019050919050565b60006020820190508181036000830152612e3181612df5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e72826129a9565b9150612e7d836129a9565b9250828201905080821115612e9557612e94612e38565b5b92915050565b7f4d757374206b65657020666565732061742031303025206f72206c6573730000600082015250565b6000612ed1601e8361289a565b9150612edc82612e9b565b602082019050919050565b60006020820190508181036000830152612f0081612ec4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f41826129a9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f7357612f72612e38565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612fda60268361289a565b9150612fe582612f7e565b604082019050919050565b6000602082019050818103600083015261300981612fcd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061306c60248361289a565b915061307782613010565b604082019050919050565b6000602082019050818103600083015261309b8161305f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130fe60228361289a565b9150613109826130a2565b604082019050919050565b6000602082019050818103600083015261312d816130f1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061319060258361289a565b915061319b82613134565b604082019050919050565b600060208201905081810360008301526131bf81613183565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061322260238361289a565b915061322d826131c6565b604082019050919050565b6000602082019050818103600083015261325181613215565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132b460298361289a565b91506132bf82613258565b604082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613346603f8361289a565b9150613351826132ea565b604082019050919050565b6000602082019050818103600083015261337581613339565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006133b2601c8361289a565b91506133bd8261337c565b602082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061344460238361289a565b915061344f826133e8565b604082019050919050565b6000602082019050818103600083015261347381613437565b9050919050565b6000613485826129a9565b9150613490836129a9565b92508282039050818111156134a8576134a7612e38565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061350a602a8361289a565b9150613515826134ae565b604082019050919050565b60006020820190508181036000830152613539816134fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061357e8161297d565b92915050565b60006020828403121561359a57613599612941565b5b60006135a88482850161356f565b91505092915050565b6000819050919050565b60006135d66135d16135cc846135b1565b612a7f565b6129a9565b9050919050565b6135e6816135bb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136218161296b565b82525050565b60006136338383613618565b60208301905092915050565b6000602082019050919050565b6000613657826135ec565b61366181856135f7565b935061366c83613608565b8060005b8381101561369d5781516136848882613627565b975061368f8361363f565b925050600181019050613670565b5085935050505092915050565b600060a0820190506136bf6000830188612a55565b6136cc60208301876135dd565b81810360408301526136de818661364c565b90506136ed6060830185612b83565b6136fa6080830184612a55565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061373e826129a9565b9150613749836129a9565b92508261375957613758613704565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061379a601b8361289a565b91506137a582613764565b602082019050919050565b600060208201905081810360008301526137c98161378d565b9050919050565b60006137db826129a9565b91506137e6836129a9565b92508282026137f4816129a9565b9150828204841483151761380b5761380a612e38565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061386e60218361289a565b915061387982613812565b604082019050919050565b6000602082019050818103600083015261389d81613861565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b05108c92a90cbe0d4fff6276e4ae692b4be37896281fc838dd9463556d5e2464736f6c63430008110033