608060405260506009556050600a556200004c6103e862000038601e670de0b6b3a76400006200090c60201b62000e981790919060201c565b6200099060201b62000f131790919060201c565b600b55620000736103e8670de0b6b3a76400006200099060201b62000f131790919060201c565b600c556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000620000be620009e260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f664994048a8b8c8110eae7d5191b9dc31c878e0600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d48050e96b21ce911ef1f97ab952af63bdbac0f9600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002846060620002706064670de0b6b3a76400006200099060201b62000f131790919060201c565b6200090c60201b62000e981790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003046002620002f06064670de0b6b3a76400006200099060201b62000f131790919060201c565b6200090c60201b62000e981790919060201c565b600260007310f306cbfccf8524165bafdc53b95ede971b6e7973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003986001620003846064670de0b6b3a76400006200099060201b62000f131790919060201c565b6200090c60201b62000e981790919060201c565b6002600073f664994048a8b8c8110eae7d5191b9dc31c878e073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200042c6001620004186064670de0b6b3a76400006200099060201b62000f131790919060201c565b6200090c60201b62000e981790919060201c565b60026000735ec23eee4d32ae3367a37331cbb192d3bfb36f3773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000499620009ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460007310f306cbfccf8524165bafdc53b95ede971b6e7973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620006e657600080fd5b505afa158015620006fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000721919062000a92565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007a657600080fd5b505afa158015620007bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e1919062000a92565b6040518363ffffffff1660e01b81526004016200080092919062000b48565b602060405180830381600087803b1580156200081b57600080fd5b505af115801562000830573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000856919062000a92565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620008fe919062000bbb565b60405180910390a362000dd9565b6000808314156200092157600090506200098a565b6000828462000931919062000c2c565b905082848262000942919062000bf4565b1462000985576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097c9062000b99565b60405180910390fd5b809150505b92915050565b6000620009da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a1360201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000a5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a54919062000b75565b60405180910390fd5b506000838562000a6e919062000bf4565b9050809150509392505050565b60008151905062000a8c8162000dbf565b92915050565b60006020828403121562000aa557600080fd5b600062000ab58482850162000a7b565b91505092915050565b62000ac98162000c8d565b82525050565b600062000adc8262000bd8565b62000ae8818562000be3565b935062000afa81856020860162000ccb565b62000b058162000d5f565b840191505092915050565b600062000b1f60218362000be3565b915062000b2c8262000d70565b604082019050919050565b62000b428162000cc1565b82525050565b600060408201905062000b5f600083018562000abe565b62000b6e602083018462000abe565b9392505050565b6000602082019050818103600083015262000b91818462000acf565b905092915050565b6000602082019050818103600083015262000bb48162000b10565b9050919050565b600060208201905062000bd2600083018462000b37565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000c018262000cc1565b915062000c0e8362000cc1565b92508262000c215762000c2062000d30565b5b828204905092915050565b600062000c398262000cc1565b915062000c468362000cc1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c825762000c8162000d01565b5b828202905092915050565b600062000c9a8262000ca1565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000ceb57808201518184015260208101905062000cce565b8381111562000cfb576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000dca8162000c8d565b811462000dd657600080fd5b50565b6130c28062000de96000396000f3fe60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063b515566a1461038d578063c3c8cd80146103b6578063c9567bf9146103cd578063dd62ed3e146103e457610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b806323b872dd116100dc57806323b872dd146101d5578063273123b714610212578063313ce5671461023b5780634ea18fab146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806316114acd1461018157806318160ddd146101aa57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b91906127e6565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190612369565b61045e565b60405161017891906127cb565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a3919061228c565b61047c565b005b3480156101b657600080fd5b506101bf61061e565b6040516101cc9190612948565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f7919061231a565b61062e565b60405161020991906127cb565b60405180910390f35b34801561021e57600080fd5b506102396004803603810190610234919061228c565b610707565b005b34801561024757600080fd5b506102506107f7565b60405161025d91906129bd565b60405180910390f35b34801561027257600080fd5b5061028d6004803603810190610288919061240f565b610800565b005b34801561029b57600080fd5b506102a461086b565b005b3480156102b257600080fd5b506102cd60048036038101906102c8919061228c565b6108dd565b6040516102da9190612948565b60405180910390f35b3480156102ef57600080fd5b506102f8610926565b005b34801561030657600080fd5b5061030f610a79565b60405161031c9190612726565b60405180910390f35b34801561033157600080fd5b5061033a610aa2565b60405161034791906127e6565b60405180910390f35b34801561035c57600080fd5b5061037760048036038101906103729190612369565b610adf565b60405161038491906127cb565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906123a5565b610afd565b005b3480156103c257600080fd5b506103cb610c4d565b005b3480156103d957600080fd5b506103e2610cc7565b005b3480156103f057600080fd5b5061040b600480360381019061040691906122de565b610e11565b6040516104189190612948565b60405180910390f35b60606040518060400160405280600981526020017f5368696257656c6c790000000000000000000000000000000000000000000000815250905090565b600061047261046b610f5d565b8484610f65565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104bd610f5d565b73ffffffffffffffffffffffffffffffffffffffff16146104dd57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161055a9190612726565b60206040518083038186803b15801561057257600080fd5b505afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa9190612438565b6040518363ffffffff1660e01b81526004016105c7929190612741565b602060405180830381600087803b1580156105e157600080fd5b505af11580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061991906123e6565b505050565b6000670de0b6b3a7640000905090565b600061063b848484611130565b6106fc84610647610f5d565b6106f78560405180606001604052806028815260200161306560289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ad610f5d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c19092919063ffffffff16565b610f65565b600190509392505050565b61070f610f5d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906128a8565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610841610f5d565b73ffffffffffffffffffffffffffffffffffffffff161461086157600080fd5b80600c8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ac610f5d565b73ffffffffffffffffffffffffffffffffffffffff16146108cc57600080fd5b60004790506108da81611825565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092e610f5d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b2906128a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5348494257454c4c590000000000000000000000000000000000000000000000815250905090565b6000610af3610aec610f5d565b8484611130565b6001905092915050565b610b05610f5d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b89906128a8565b60405180910390fd5b60005b8151811015610c4957600160056000848481518110610bdd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4190612c94565b915050610b95565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c8e610f5d565b73ffffffffffffffffffffffffffffffffffffffff1614610cae57600080fd5b6000610cb9306108dd565b9050610cc4816119d5565b50565b610ccf610f5d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906128a8565b60405180910390fd5b601160149054906101000a900460ff1615610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612928565b60405180910390fd5b610dc6610db8306108dd565b47610dc1610a79565b611ccf565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555060f042610e099190612a7e565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610eab5760009050610f0d565b60008284610eb99190612b05565b9050828482610ec89190612ad4565b14610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90612888565b60405180910390fd5b809150505b92915050565b6000610f5583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611df3565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90612908565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90612848565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111239190612948565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611197906128e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120790612828565b60405180910390fd5b60008111611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a906128c8565b60405180910390fd5b600954600881905550611264610a79565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112d257506112a2610a79565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117b157600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561137b5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61138457600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561142f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114855750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611492575060075442105b1561154257600b548111156114a657600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114f157600080fd5b601e426114fe9190612a7e565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115ed5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116435750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561165257600a546008819055505b601160159054906101000a900460ff161580156116bd5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116d55750601160169054906101000a900460ff165b801561172b5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117b0576007544211611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90612808565b60405180910390fd5b600061177f306108dd565b9050600c548111156117ae57611794816119d5565b600047905060008111156117ac576117ab47611825565b5b505b505b5b6117bc838383611e56565b505050565b6000838311158290611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180091906127e6565b60405180910390fd5b50600083856118189190612b5f565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611888602861187a606486610f1390919063ffffffff16565b610e9890919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156118b3573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611917601e611909606486610f1390919063ffffffff16565b610e9890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611942573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119a6601e611998606486610f1390919063ffffffff16565b610e9890919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156119d1573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a33577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a615781602001602082028036833780820191505090505b5090503081600081518110611a9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b4157600080fd5b505afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7991906122b5565b81600181518110611bb3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c1a30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f65565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c7e959493929190612963565b600060405180830381600087803b158015611c9857600080fd5b505af1158015611cac573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611d1730601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610f65565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611d7e9695949392919061276a565b6060604051808303818588803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dd09190612461565b5050506000601160156101000a81548160ff021916908315150217905550505050565b60008083118290611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3191906127e6565b60405180910390fd5b5060008385611e499190612ad4565b9050809150509392505050565b600080611e6283612091565b91509150611eb883600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4d82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120829190612948565b60405180910390a35050505050565b60008060006120bf6103e86120b160085487610e9890919063ffffffff16565b610f1390919063ffffffff16565b905060006120d682866120e590919063ffffffff16565b90508082935093505050915091565b600061212783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117c1565b905092915050565b600080828461213e9190612a7e565b905083811015612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a90612868565b60405180910390fd5b8091505092915050565b60006121a061219b846129fd565b6129d8565b905080838252602082019050828560208602820111156121bf57600080fd5b60005b858110156121ef57816121d588826121f9565b8452602084019350602083019250506001810190506121c2565b5050509392505050565b6000813590506122088161301f565b92915050565b60008151905061221d8161301f565b92915050565b600082601f83011261223457600080fd5b813561224484826020860161218d565b91505092915050565b60008151905061225c81613036565b92915050565b6000813590506122718161304d565b92915050565b6000815190506122868161304d565b92915050565b60006020828403121561229e57600080fd5b60006122ac848285016121f9565b91505092915050565b6000602082840312156122c757600080fd5b60006122d58482850161220e565b91505092915050565b600080604083850312156122f157600080fd5b60006122ff858286016121f9565b9250506020612310858286016121f9565b9150509250929050565b60008060006060848603121561232f57600080fd5b600061233d868287016121f9565b935050602061234e868287016121f9565b925050604061235f86828701612262565b9150509250925092565b6000806040838503121561237c57600080fd5b600061238a858286016121f9565b925050602061239b85828601612262565b9150509250929050565b6000602082840312156123b757600080fd5b600082013567ffffffffffffffff8111156123d157600080fd5b6123dd84828501612223565b91505092915050565b6000602082840312156123f857600080fd5b60006124068482850161224d565b91505092915050565b60006020828403121561242157600080fd5b600061242f84828501612262565b91505092915050565b60006020828403121561244a57600080fd5b600061245884828501612277565b91505092915050565b60008060006060848603121561247657600080fd5b600061248486828701612277565b935050602061249586828701612277565b92505060406124a686828701612277565b9150509250925092565b60006124bc83836124d7565b60208301905092915050565b6124d181612be8565b82525050565b6124e081612b93565b82525050565b6124ef81612b93565b82525050565b600061250082612a39565b61250a8185612a5c565b935061251583612a29565b8060005b8381101561254657815161252d88826124b0565b975061253883612a4f565b925050600181019050612519565b5085935050505092915050565b61255c81612ba5565b82525050565b61256b81612bfa565b82525050565b600061257c82612a44565b6125868185612a6d565b9350612596818560208601612c30565b61259f81612d6a565b840191505092915050565b60006125b7602883612a6d565b91506125c282612d7b565b604082019050919050565b60006125da602383612a6d565b91506125e582612dca565b604082019050919050565b60006125fd602283612a6d565b915061260882612e19565b604082019050919050565b6000612620601b83612a6d565b915061262b82612e68565b602082019050919050565b6000612643602183612a6d565b915061264e82612e91565b604082019050919050565b6000612666602083612a6d565b915061267182612ee0565b602082019050919050565b6000612689602983612a6d565b915061269482612f09565b604082019050919050565b60006126ac602583612a6d565b91506126b782612f58565b604082019050919050565b60006126cf602483612a6d565b91506126da82612fa7565b604082019050919050565b60006126f2601783612a6d565b91506126fd82612ff6565b602082019050919050565b61271181612bd1565b82525050565b61272081612bdb565b82525050565b600060208201905061273b60008301846124e6565b92915050565b600060408201905061275660008301856124c8565b6127636020830184612708565b9392505050565b600060c08201905061277f60008301896124e6565b61278c6020830188612708565b6127996040830187612562565b6127a66060830186612562565b6127b360808301856124e6565b6127c060a0830184612708565b979650505050505050565b60006020820190506127e06000830184612553565b92915050565b600060208201905081810360008301526128008184612571565b905092915050565b60006020820190508181036000830152612821816125aa565b9050919050565b60006020820190508181036000830152612841816125cd565b9050919050565b60006020820190508181036000830152612861816125f0565b9050919050565b6000602082019050818103600083015261288181612613565b9050919050565b600060208201905081810360008301526128a181612636565b9050919050565b600060208201905081810360008301526128c181612659565b9050919050565b600060208201905081810360008301526128e18161267c565b9050919050565b600060208201905081810360008301526129018161269f565b9050919050565b60006020820190508181036000830152612921816126c2565b9050919050565b60006020820190508181036000830152612941816126e5565b9050919050565b600060208201905061295d6000830184612708565b92915050565b600060a0820190506129786000830188612708565b6129856020830187612562565b818103604083015261299781866124f5565b90506129a660608301856124e6565b6129b36080830184612708565b9695505050505050565b60006020820190506129d26000830184612717565b92915050565b60006129e26129f3565b90506129ee8282612c63565b919050565b6000604051905090565b600067ffffffffffffffff821115612a1857612a17612d3b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a8982612bd1565b9150612a9483612bd1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ac957612ac8612cdd565b5b828201905092915050565b6000612adf82612bd1565b9150612aea83612bd1565b925082612afa57612af9612d0c565b5b828204905092915050565b6000612b1082612bd1565b9150612b1b83612bd1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5457612b53612cdd565b5b828202905092915050565b6000612b6a82612bd1565b9150612b7583612bd1565b925082821015612b8857612b87612cdd565b5b828203905092915050565b6000612b9e82612bb1565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bf382612c0c565b9050919050565b6000612c0582612bd1565b9050919050565b6000612c1782612c1e565b9050919050565b6000612c2982612bb1565b9050919050565b60005b83811015612c4e578082015181840152602081019050612c33565b83811115612c5d576000848401525b50505050565b612c6c82612d6a565b810181811067ffffffffffffffff82111715612c8b57612c8a612d3b565b5b80604052505050565b6000612c9f82612bd1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cd257612cd1612cdd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61302881612b93565b811461303357600080fd5b50565b61303f81612ba5565b811461304a57600080fd5b50565b61305681612bd1565b811461306157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122080adcb04aff318a2b98f7808e3343b9815efa8fb9ea98cf84c74b1c0ebdfa89c64736f6c63430008040033