60a06040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600781526020017f48455820322e300000000000000000000000000000000000000000000000000081525060029080519060200190620000939291906200087f565b506040518060400160405280600681526020017f484558322e30000000000000000000000000000000000000000000000000000081525060039080519060200190620000e19291906200087f565b506012600460006101000a81548160ff021916908360ff1602179055506000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506000600a556000600b55600460009054906101000a900460ff16600a620001a0919062000a39565b641010b87200620001b2919062000b76565b600c556000600d60006101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200028757600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000946565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016200044a92919062000994565b602060405180830381600087803b1580156200046557600080fd5b505af11580156200047a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a0919062000946565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005dc6200084e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c5460056000620007906200087760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007de6200087760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516200083f9190620009c1565b60405180910390a35062000cdd565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b8280546200088d9062000c22565b90600052602060002090601f016020900481019282620008b15760008555620008fd565b82601f10620008cc57805160ff1916838001178555620008fd565b82800160010185558215620008fd579182015b82811115620008fc578251825591602001919060010190620008df565b5b5090506200090c919062000910565b5090565b5b808211156200092b57600081600090555060010162000911565b5090565b600081519050620009408162000cc3565b92915050565b6000602082840312156200095957600080fd5b600062000969848285016200092f565b91505092915050565b6200097d8162000bd7565b82525050565b6200098e8162000c0b565b82525050565b6000604082019050620009ab600083018562000972565b620009ba602083018462000972565b9392505050565b6000602082019050620009d8600083018462000983565b92915050565b6000808291508390505b600185111562000a305780860481111562000a085762000a0762000c58565b5b600185161562000a185780820291505b808102905062000a288562000cb6565b9450620009e8565b94509492505050565b600062000a468262000c0b565b915062000a538362000c15565b925062000a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a8a565b905092915050565b60008262000a9c576001905062000b6f565b8162000aac576000905062000b6f565b816001811462000ac5576002811462000ad05762000b06565b600191505062000b6f565b60ff84111562000ae55762000ae462000c58565b5b8360020a91508482111562000aff5762000afe62000c58565b5b5062000b6f565b5060208310610133831016604e8410600b841016171562000b405782820a90508381111562000b3a5762000b3962000c58565b5b62000b6f565b62000b4f8484846001620009de565b9250905081840481111562000b695762000b6862000c58565b5b81810290505b9392505050565b600062000b838262000c0b565b915062000b908362000c0b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bcc5762000bcb62000c58565b5b828202905092915050565b600062000be48262000beb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000c3b57607f821691505b6020821081141562000c525762000c5162000c87565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000cce8162000bd7565b811462000cda57600080fd5b50565b60805160601c6131d962000d0360003960008181610a4d0152610a7901526131d96000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063c816841b116100a0578063e156afd51161006f578063e156afd51461078c578063ea2f0b37146107a3578063f0cd1dac146107cc578063f2fde38b146107f7578063f887ea40146108205761021a565b8063c816841b146106e4578063cd9e22051461070f578063dd62ed3e14610726578063deae44f3146107635761021a565b806395d89b41116100e757806395d89b4114610637578063a0b9fa6114610662578063a9059cbb14610679578063b44cf5cf146106b6578063badd6bcb146106cd5761021a565b806370a082311461057957806371907f17146105b657806382eefb43146105e15780638da5cb5b1461060c5761021a565b80632ee9e82b1161019b5780633fc8cef31161016a5780633fc8cef314610480578063437823ec146104ab5780634d33b1ef146104d45780635342acb4146104ff5780636c6f98351461053c5761021a565b80632ee9e82b146103d8578063313ce567146103ef5780633be746d91461041a5780633ecad271146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631ce289091461030857806323b872dd1461034557806327c8f835146103825780632b112e49146103ad5761021a565b806306fdde031461021f578063095ea7b31461024a5780631245e347146102875780631694505e146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461084b565b6040516102419190612947565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612674565b6108dd565b60405161027e9190612911565b60405180910390f35b34801561029357600080fd5b5061029c6108fb565b6040516102a991906128f6565b60405180910390f35b3480156102be57600080fd5b506102c7610921565b6040516102d4919061292c565b60405180910390f35b3480156102e957600080fd5b506102f2610947565b6040516102ff9190612ac9565b60405180910390f35b34801561031457600080fd5b5061032f600480360381019061032a91906125c0565b610951565b60405161033c9190612911565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190612625565b610971565b6040516103799190612911565b60405180910390f35b34801561038e57600080fd5b50610397610a4b565b6040516103a491906128f6565b60405180910390f35b3480156103b957600080fd5b506103c2610a6f565b6040516103cf9190612ac9565b60405180910390f35b3480156103e457600080fd5b506103ed610ab3565b005b3480156103fb57600080fd5b50610404610b41565b6040516104119190612ae4565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c91906126b0565b610b58565b005b34801561044f57600080fd5b5061046a600480360381019061046591906125c0565b610c86565b6040516104779190612911565b60405180910390f35b34801561048c57600080fd5b50610495610ca6565b6040516104a291906128f6565b60405180910390f35b3480156104b757600080fd5b506104d260048036038101906104cd91906125c0565b610ccc565b005b3480156104e057600080fd5b506104e9610da3565b6040516104f69190612911565b60405180910390f35b34801561050b57600080fd5b50610526600480360381019061052191906125c0565b610dba565b6040516105339190612911565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e91906126b0565b610dda565b6040516105709190612911565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b91906125c0565b610ea1565b6040516105ad9190612ac9565b60405180910390f35b3480156105c257600080fd5b506105cb610eea565b6040516105d891906128f6565b60405180910390f35b3480156105ed57600080fd5b506105f6610f14565b6040516106039190612ac9565b60405180910390f35b34801561061857600080fd5b50610621610f1a565b60405161062e91906128f6565b60405180910390f35b34801561064357600080fd5b5061064c610f43565b6040516106599190612947565b60405180910390f35b34801561066e57600080fd5b50610677610fd5565b005b34801561068557600080fd5b506106a0600480360381019061069b9190612674565b611063565b6040516106ad9190612911565b60405180910390f35b3480156106c257600080fd5b506106cb611082565b005b3480156106d957600080fd5b506106e26111bc565b005b3480156106f057600080fd5b506106f961124a565b60405161070691906128f6565b60405180910390f35b34801561071b57600080fd5b50610724611270565b005b34801561073257600080fd5b5061074d600480360381019061074891906125e9565b611309565b60405161075a9190612ac9565b60405180910390f35b34801561076f57600080fd5b5061078a600480360381019061078591906126b0565b611390565b005b34801561079857600080fd5b506107a16114c7565b005b3480156107af57600080fd5b506107ca60048036038101906107c591906125c0565b611560565b005b3480156107d857600080fd5b506107e1611681565b6040516107ee9190612ac9565b60405180910390f35b34801561080357600080fd5b5061081e600480360381019061081991906125c0565b611687565b005b34801561082c57600080fd5b506108356117c0565b60405161084291906128f6565b60405180910390f35b60606002805461085a90612d2d565b80601f016020809104026020016040519081016040528092919081815260200182805461088690612d2d565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b5050505050905090565b60006108f16108ea6117e6565b84846117ee565b6001905092915050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600061097e8484846119b9565b50610a408461098b6117e6565b610a3b8560405180606001604052806028815260200161317c60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109f16117e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122659092919063ffffffff16565b6117ee565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610aae610a9d7f0000000000000000000000000000000000000000000000000000000000000000610ea1565b600c546122c990919063ffffffff16565b905090565b610abb6117e6565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610eea565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906129e9565b60405180910390fd5b6000600a819055506000600b81905550565b6000600460009054906101000a900460ff16905090565b610b606117e6565b73ffffffffffffffffffffffffffffffffffffffff16610b7e610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb906129e9565b60405180910390fd5b60005b8151811015610c825760076000838381518110610c1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610c7a90612d90565b915050610bd7565b5050565b60096020528060005260406000206000915054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cd46117e6565b73ffffffffffffffffffffffffffffffffffffffff16610cf2610eea565b73ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f906129e9565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b60086020528060005260406000206000915054906101000a900460ff1681565b6000806000905060005b8351811015610e975760076000858381518110610e2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e8457600191505b8080610e8f90612d90565b915050610de4565b5080915050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610f5290612d2d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7e90612d2d565b8015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050905090565b610fdd6117e6565b73ffffffffffffffffffffffffffffffffffffffff16610ffb610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906129e9565b60405180910390fd5b6005600a819055506010600b81905550565b60006110776110706117e6565b84846119b9565b506001905092915050565b61108a6117e6565b73ffffffffffffffffffffffffffffffffffffffff166110a8610f1a565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f5906129e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111c46117e6565b73ffffffffffffffffffffffffffffffffffffffff166111e2610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906129e9565b60405180910390fd5b6005600a819055506005600b81905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112786117e6565b73ffffffffffffffffffffffffffffffffffffffff16611296610f1a565b73ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e3906129e9565b60405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113986117e6565b73ffffffffffffffffffffffffffffffffffffffff166113b6610f1a565b73ffffffffffffffffffffffffffffffffffffffff161461140c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611403906129e9565b60405180910390fd5b60005b81518110156114c357600160076000848481518110611457577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114bb90612d90565b91505061140f565b5050565b6114cf6117e6565b73ffffffffffffffffffffffffffffffffffffffff166114ed610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a906129e9565b60405180910390fd5b6001600d60006101000a81548160ff021916908315150217905550565b6115686117e6565b73ffffffffffffffffffffffffffffffffffffffff16611586610eea565b73ffffffffffffffffffffffffffffffffffffffff16146115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d3906129e9565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561167e57600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b50565b600a5481565b61168f6117e6565b73ffffffffffffffffffffffffffffffffffffffff166116ad610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906129e9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590612a89565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590612989565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119ac9190612ac9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190612a69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190612969565b60405180910390fd5b60008211611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad490612a09565b60405180910390fd5b611ae5610da3565b80611b395750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b8d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612a29565b60405180910390fd5b611bd584612313565b15611c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0c90612aa9565b60405180910390fd5b611c1e83612313565b15611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5590612a49565b60405180910390fd5b611ce7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122659092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dcb5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ecf57611e2282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ec29190612ac9565b60405180910390a361225a565b6000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f5257611f4b6064611f3d600a54866123d890919063ffffffff16565b61245390919063ffffffff16565b9050611fd0565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fcf57611fcc6064611fbe600b54866123d890919063ffffffff16565b61245390919063ffffffff16565b90505b5b612034611fe682856122c990919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120d984876122c990919063ffffffff16565b6040516120e69190612ac9565b60405180910390a360008111156122585761216b8160056000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b60056000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224f9190612ac9565b60405180910390a35b505b600190509392505050565b60008383111582906122ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a49190612947565b60405180910390fd5b50600083856122bc9190612c4d565b9050809150509392505050565b600061230b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612265565b905092915050565b60008060009050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237157600190505b80915050919050565b60008082846123899190612b6c565b9050838110156123ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c5906129a9565b60405180910390fd5b8091505092915050565b6000808314156123eb576000905061244d565b600082846123f99190612bf3565b90508284826124089190612bc2565b14612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243f906129c9565b60405180910390fd5b809150505b92915050565b600061249583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061249d565b905092915050565b600080831182906124e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124db9190612947565b60405180910390fd5b50600083856124f39190612bc2565b9050809150509392505050565b600061251361250e84612b24565b612aff565b9050808382526020820190508285602086028201111561253257600080fd5b60005b858110156125625781612548888261256c565b845260208401935060208301925050600181019050612535565b5050509392505050565b60008135905061257b8161314d565b92915050565b600082601f83011261259257600080fd5b81356125a2848260208601612500565b91505092915050565b6000813590506125ba81613164565b92915050565b6000602082840312156125d257600080fd5b60006125e08482850161256c565b91505092915050565b600080604083850312156125fc57600080fd5b600061260a8582860161256c565b925050602061261b8582860161256c565b9150509250929050565b60008060006060848603121561263a57600080fd5b60006126488682870161256c565b93505060206126598682870161256c565b925050604061266a868287016125ab565b9150509250925092565b6000806040838503121561268757600080fd5b60006126958582860161256c565b92505060206126a6858286016125ab565b9150509250929050565b6000602082840312156126c257600080fd5b600082013567ffffffffffffffff8111156126dc57600080fd5b6126e884828501612581565b91505092915050565b6126fa81612c81565b82525050565b61270981612c93565b82525050565b61271881612cd6565b82525050565b600061272982612b50565b6127338185612b5b565b9350612743818560208601612cfa565b61274c81612e95565b840191505092915050565b6000612764602383612b5b565b915061276f82612ea6565b604082019050919050565b6000612787602283612b5b565b915061279282612ef5565b604082019050919050565b60006127aa601b83612b5b565b91506127b582612f44565b602082019050919050565b60006127cd602183612b5b565b91506127d882612f6d565b604082019050919050565b60006127f0602083612b5b565b91506127fb82612fbc565b602082019050919050565b6000612813602983612b5b565b915061281e82612fe5565b604082019050919050565b6000612836600a83612b5b565b915061284182613034565b602082019050919050565b6000612859601683612b5b565b91506128648261305d565b602082019050919050565b600061287c602583612b5b565b915061288782613086565b604082019050919050565b600061289f602483612b5b565b91506128aa826130d5565b604082019050919050565b60006128c2601383612b5b565b91506128cd82613124565b602082019050919050565b6128e181612cbf565b82525050565b6128f081612cc9565b82525050565b600060208201905061290b60008301846126f1565b92915050565b60006020820190506129266000830184612700565b92915050565b6000602082019050612941600083018461270f565b92915050565b60006020820190508181036000830152612961818461271e565b905092915050565b6000602082019050818103600083015261298281612757565b9050919050565b600060208201905081810360008301526129a28161277a565b9050919050565b600060208201905081810360008301526129c28161279d565b9050919050565b600060208201905081810360008301526129e2816127c0565b9050919050565b60006020820190508181036000830152612a02816127e3565b9050919050565b60006020820190508181036000830152612a2281612806565b9050919050565b60006020820190508181036000830152612a4281612829565b9050919050565b60006020820190508181036000830152612a628161284c565b9050919050565b60006020820190508181036000830152612a828161286f565b9050919050565b60006020820190508181036000830152612aa281612892565b9050919050565b60006020820190508181036000830152612ac2816128b5565b9050919050565b6000602082019050612ade60008301846128d8565b92915050565b6000602082019050612af960008301846128e7565b92915050565b6000612b09612b1a565b9050612b158282612d5f565b919050565b6000604051905090565b600067ffffffffffffffff821115612b3f57612b3e612e66565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612b7782612cbf565b9150612b8283612cbf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bb757612bb6612dd9565b5b828201905092915050565b6000612bcd82612cbf565b9150612bd883612cbf565b925082612be857612be7612e08565b5b828204905092915050565b6000612bfe82612cbf565b9150612c0983612cbf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4257612c41612dd9565b5b828202905092915050565b6000612c5882612cbf565b9150612c6383612cbf565b925082821015612c7657612c75612dd9565b5b828203905092915050565b6000612c8c82612c9f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ce182612ce8565b9050919050565b6000612cf382612c9f565b9050919050565b60005b83811015612d18578082015181840152602081019050612cfd565b83811115612d27576000848401525b50505050565b60006002820490506001821680612d4557607f821691505b60208210811415612d5957612d58612e37565b5b50919050565b612d6882612e95565b810181811067ffffffffffffffff82111715612d8757612d86612e66565b5b80604052505050565b6000612d9b82612cbf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dce57612dcd612dd9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742062757900000000000000000000000000000000000000000000600082015250565b7f426c61636b6c697374656420526563657069656e742100000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c69737465642053656e6465722100000000000000000000000000600082015250565b61315681612c81565b811461316157600080fd5b50565b61316d81612cbf565b811461317857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024feb782d4eec14e05a0b6127057acbbc7d856dcb85602129e535e3931200ba064736f6c63430008040033