60806040526009600a62000014919062000821565b6402540be40062000026919062000872565b6006556000600760006101000a81548160ff0219169083151502179055506009600a62000054919062000821565b630bebc20062000065919062000872565b600f556009600a62000078919062000821565b630bebc20062000089919062000872565b6010556009600a6200009c919062000821565b630bebc200620000ad919062000872565b601155348015620000bd57600080fd5b5060405162003e6038038062003e608339818101604052810190620000e3919062000927565b6000620000f56200067f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600360006200022c6200067f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f791906200096e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038591906200096e565b6040518363ffffffff1660e01b8152600401620003a4929190620009b1565b6020604051808303816000875af1158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea91906200096e565b90506005600a600001819055506019600a600101819055506005600c600001819055506019600c6001018190555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200060c6200067f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200066d9190620009ef565b60405180910390a35050505062000a0c565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200071557808604811115620006ed57620006ec62000687565b5b6001851615620006fd5780820291505b80810290506200070d85620006b6565b9450620006cd565b94509492505050565b60008262000730576001905062000803565b8162000740576000905062000803565b816001811462000759576002811462000764576200079a565b600191505062000803565b60ff84111562000779576200077862000687565b5b8360020a91508482111562000793576200079262000687565b5b5062000803565b5060208310610133831016604e8410600b8410161715620007d45782820a905083811115620007ce57620007cd62000687565b5b62000803565b620007e38484846001620006c3565b92509050818404811115620007fd57620007fc62000687565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200082e826200080a565b91506200083b8362000814565b92506200086a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200071e565b905092915050565b60006200087f826200080a565b91506200088c836200080a565b92508282026200089c816200080a565b91508282048414831517620008b657620008b562000687565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008ef82620008c2565b9050919050565b6200090181620008e2565b81146200090d57600080fd5b50565b6000815190506200092181620008f6565b92915050565b60008060408385031215620009415762000940620008bd565b5b6000620009518582860162000910565b9250506020620009648582860162000910565b9150509250929050565b600060208284031215620009875762000986620008bd565b5b6000620009978482850162000910565b91505092915050565b620009ab81620008e2565b82525050565b6000604082019050620009c86000830185620009a0565b620009d76020830184620009a0565b9392505050565b620009e9816200080a565b82525050565b600060208201905062000a066000830184620009de565b92915050565b6134448062000a1c6000396000f3fe6080604052600436106101c65760003560e01c80634fbee193116100f75780638da5cb5b11610095578063c024666811610064578063c024666814610647578063c589829d14610670578063dd62ed3e1461069b578063f2fde38b146106d8576101cd565b80638da5cb5b1461058957806395d89b41146105b4578063a9059cbb146105df578063bbc0c7421461061c576101cd565b806370a08231116100d157806370a08231146104df578063715018a61461051c57806375f0a874146105335780637d1db4a51461055e576101cd565b80634fbee193146104605780636c0a24eb1461049d5780636c580801146104c8576101cd565b8063264d26dd11610164578063363ff4801161013e578063363ff480146103a357806339509351146103cc578063470624021461040957806349bd5a5e14610435576101cd565b8063264d26dd146103215780632b14ca561461034c578063313ce56714610378576101cd565b80631694505e116101a05780631694505e1461026557806317e1df5b1461029057806318160ddd146102b957806323b872dd146102e4576101cd565b806303e403b0146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610701565b6040516101f4919061250a565b60405180910390f35b34801561020957600080fd5b50610212610707565b60405161021f91906125b5565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612666565b610744565b60405161025c91906126c1565b60405180910390f35b34801561027157600080fd5b5061027a610762565b604051610287919061273b565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612756565b610788565b005b3480156102c557600080fd5b506102ce61084b565b6040516102db919061250a565b60405180910390f35b3480156102f057600080fd5b5061030b600480360381019061030691906127bd565b610855565b60405161031891906126c1565b60405180910390f35b34801561032d57600080fd5b5061033661090d565b604051610343919061281f565b60405180910390f35b34801561035857600080fd5b50610361610933565b60405161036f92919061283a565b60405180910390f35b34801561038457600080fd5b5061038d610945565b60405161039a919061287f565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c5919061289a565b61094e565b005b3480156103d857600080fd5b506103f360048036038101906103ee9190612666565b610a51565b60405161040091906126c1565b60405180910390f35b34801561041557600080fd5b5061041e610afd565b60405161042c92919061283a565b60405180910390f35b34801561044157600080fd5b5061044a610b0f565b604051610457919061281f565b60405180910390f35b34801561046c57600080fd5b50610487600480360381019061048291906128da565b610b35565b60405161049491906126c1565b60405180910390f35b3480156104a957600080fd5b506104b2610b8b565b6040516104bf919061250a565b60405180910390f35b3480156104d457600080fd5b506104dd610b91565b005b3480156104eb57600080fd5b50610506600480360381019061050191906128da565b610c43565b604051610513919061250a565b60405180910390f35b34801561052857600080fd5b50610531610c8c565b005b34801561053f57600080fd5b50610548610ddf565b604051610555919061281f565b60405180910390f35b34801561056a57600080fd5b50610573610e05565b604051610580919061250a565b60405180910390f35b34801561059557600080fd5b5061059e610e0b565b6040516105ab919061281f565b60405180910390f35b3480156105c057600080fd5b506105c9610e34565b6040516105d691906125b5565b60405180910390f35b3480156105eb57600080fd5b5061060660048036038101906106019190612666565b610e71565b60405161061391906126c1565b60405180910390f35b34801561062857600080fd5b50610631610e8f565b60405161063e91906126c1565b60405180910390f35b34801561065357600080fd5b5061066e60048036038101906106699190612933565b610ea2565b005b34801561067c57600080fd5b50610685610f92565b604051610692919061250a565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd9190612973565b610f98565b6040516106cf919061250a565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906128da565b61101f565b005b60115481565b60606040518060400160405280600681526020017f5752424f504e0000000000000000000000000000000000000000000000000000815250905090565b60006107586107516111e0565b84846111e8565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107906111e0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906129ff565b60405180910390fd5b82600a6000018190555083600a6001018190555080600c6000018190555081600c6001018190555050505050565b6000600654905090565b60006108628484846113b1565b6109028461086e6111e0565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108b86111e0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108fd9190612a4e565b6111e8565b600190509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c8060000154908060010154905082565b60006009905090565b6109566111e0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da906129ff565b60405180910390fd5b6103e86006546109f39190612ab1565b81836109ff9190612ae2565b11610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3690612b62565b60405180910390fd5b8160108190555080600f819055505050565b6000610af3610a5e6111e0565b848460046000610a6c6111e0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aee9190612ae2565b6111e8565b6001905092915050565b600a8060000154908060010154905082565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600f5481565b610b996111e0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d906129ff565b60405180910390fd5b6001600760006101000a81548160ff021916908315150217905550565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c946111e0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906129ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5752424f504e0000000000000000000000000000000000000000000000000000815250905090565b6000610e85610e7e6111e0565b84846113b1565b6001905092915050565b600760009054906101000a900460ff1681565b610eaa6111e0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2e906129ff565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110276111e0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906129ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a90612bf4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90612c86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd90612d18565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113a4919061250a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141790612daa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612e3c565b60405180910390fd5b600081116114d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c990612ece565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115219190612a4e565b9250508190555060008190506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115d35750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115dd57600190505b600760009054906101000a900460ff166116d257600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116925750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890612f3a565b60405180910390fd5b5b8015611ad257600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117d757601054831115611772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176990612fcc565b60405180910390fd5b600f548361177f86610c43565b6117899190612ae2565b11156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c19061305e565b60405180910390fd5b6117d48385611b94565b91505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461198257601054831115611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890612fcc565b60405180910390fd5b61187b8386611cc9565b91506001601260008282546118909190612ae2565b925050819055506011546118a330610c43565b101580156118be5750600e60009054906101000a900460ff16155b1561190d576001600e60006101000a81548160ff0219169083151502179055506118e9601154611dfe565b6000600e60006101000a81548160ff02191690831515021790555060006012819055505b600560125411801561192c5750600e60009054906101000a900460ff16155b15611981576001600e60006101000a81548160ff02191690831515021790555061195d61195830610c43565b611dfe565b6000600e60006101000a81548160ff02191690831515021790555060006012819055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a2e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611ad157601054831115611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90612fcc565b60405180910390fd5b600f5483611a8586610c43565b611a8f9190612ae2565b1115611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac79061305e565b60405180910390fd5b5b5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b219190612ae2565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b85919061250a565b60405180910390a35050505050565b6000806064600a6000015485611baa919061307e565b611bb49190612ab1565b905060006064600a6001015486611bcb919061307e565b611bd59190612ab1565b90508082611be39190612ae2565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c319190612ae2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611c939190612ae2565b604051611ca0919061250a565b60405180910390a3808286611cb59190612a4e565b611cbf9190612a4e565b9250505092915050565b6000806064600c6000015485611cdf919061307e565b611ce99190612ab1565b905060006064600c6001015486611d00919061307e565b611d0a9190612ab1565b90508082611d189190612ae2565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d669190612ae2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484611dc89190612ae2565b604051611dd5919061250a565b60405180910390a3808286611dea9190612a4e565b611df49190612a4e565b9250505092915050565b60008190506000600c60000154600c60010154600a60000154600a60010154611e279190612ae2565b611e319190612ae2565b611e3b9190612ae2565b600c60000154600a60000154611e519190612ae2565b83611e5c919061307e565b611e669190612ab1565b90506000600c60000154600c60010154600a60000154600a60010154611e8c9190612ae2565b611e969190612ae2565b611ea09190612ae2565b600c60010154600a60010154611eb69190612ae2565b84611ec1919061307e565b611ecb9190612ab1565b905060008183611edb9190612ae2565b90506000611ef3600285611fd990919063ffffffff16565b90506000611f0a828761202390919063ffffffff16565b90506000479050611f1a8261206d565b6000611f2f824761202390919063ffffffff16565b90506000611f5886611f4a8a856122b090919063ffffffff16565b611fd990919063ffffffff16565b9050611f64858261232a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611fcc573d6000803e3d6000fd5b5050505050505050505050565b600061201b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061242a565b905092915050565b600061206583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061248d565b905092915050565b6000600267ffffffffffffffff81111561208a576120896130c0565b5b6040519080825280602002602001820160405280156120b85781602001602082028036833780820191505090505b50905030816000815181106120d0576120cf6130ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219b9190613133565b816001815181106121af576121ae6130ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061221630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161227a959493929190613259565b600060405180830381600087803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b505050505050565b60008083036122c25760009050612324565b600082846122d0919061307e565b90508284826122df9190612ab1565b1461231f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231690613325565b60405180910390fd5b809150505b92915050565b61235730600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016123e096959493929190613345565b60606040518083038185885af11580156123fe573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061242391906133bb565b5050505050565b60008083118290612471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246891906125b5565b60405180910390fd5b50600083856124809190612ab1565b9050809150509392505050565b60008383111582906124d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc91906125b5565b60405180910390fd5b50600083856124e49190612a4e565b9050809150509392505050565b6000819050919050565b612504816124f1565b82525050565b600060208201905061251f60008301846124fb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561255f578082015181840152602081019050612544565b60008484015250505050565b6000601f19601f8301169050919050565b600061258782612525565b6125918185612530565b93506125a1818560208601612541565b6125aa8161256b565b840191505092915050565b600060208201905081810360008301526125cf818461257c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612607826125dc565b9050919050565b612617816125fc565b811461262257600080fd5b50565b6000813590506126348161260e565b92915050565b612643816124f1565b811461264e57600080fd5b50565b6000813590506126608161263a565b92915050565b6000806040838503121561267d5761267c6125d7565b5b600061268b85828601612625565b925050602061269c85828601612651565b9150509250929050565b60008115159050919050565b6126bb816126a6565b82525050565b60006020820190506126d660008301846126b2565b92915050565b6000819050919050565b60006127016126fc6126f7846125dc565b6126dc565b6125dc565b9050919050565b6000612713826126e6565b9050919050565b600061272582612708565b9050919050565b6127358161271a565b82525050565b6000602082019050612750600083018461272c565b92915050565b600080600080608085870312156127705761276f6125d7565b5b600061277e87828801612651565b945050602061278f87828801612651565b93505060406127a087828801612651565b92505060606127b187828801612651565b91505092959194509250565b6000806000606084860312156127d6576127d56125d7565b5b60006127e486828701612625565b93505060206127f586828701612625565b925050604061280686828701612651565b9150509250925092565b612819816125fc565b82525050565b60006020820190506128346000830184612810565b92915050565b600060408201905061284f60008301856124fb565b61285c60208301846124fb565b9392505050565b600060ff82169050919050565b61287981612863565b82525050565b60006020820190506128946000830184612870565b92915050565b600080604083850312156128b1576128b06125d7565b5b60006128bf85828601612651565b92505060206128d085828601612651565b9150509250929050565b6000602082840312156128f0576128ef6125d7565b5b60006128fe84828501612625565b91505092915050565b612910816126a6565b811461291b57600080fd5b50565b60008135905061292d81612907565b92915050565b6000806040838503121561294a576129496125d7565b5b600061295885828601612625565b92505060206129698582860161291e565b9150509250929050565b6000806040838503121561298a576129896125d7565b5b600061299885828601612625565b92505060206129a985828601612625565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129e9602083612530565b91506129f4826129b3565b602082019050919050565b60006020820190508181036000830152612a18816129dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a59826124f1565b9150612a64836124f1565b9250828203905081811115612a7c57612a7b612a1f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612abc826124f1565b9150612ac7836124f1565b925082612ad757612ad6612a82565b5b828204905092915050565b6000612aed826124f1565b9150612af8836124f1565b9250828201905080821115612b1057612b0f612a1f565b5b92915050565b7f53686f756c6420626520626967676572207468616e20302c3125000000000000600082015250565b6000612b4c601a83612530565b9150612b5782612b16565b602082019050919050565b60006020820190508181036000830152612b7b81612b3f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bde602683612530565b9150612be982612b82565b604082019050919050565b60006020820190508181036000830152612c0d81612bd1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c70602483612530565b9150612c7b82612c14565b604082019050919050565b60006020820190508181036000830152612c9f81612c63565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d02602283612530565b9150612d0d82612ca6565b604082019050919050565b60006020820190508181036000830152612d3181612cf5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d94602583612530565b9150612d9f82612d38565b604082019050919050565b60006020820190508181036000830152612dc381612d87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e26602383612530565b9150612e3182612dca565b604082019050919050565b60006020820190508181036000830152612e5581612e19565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612eb8602983612530565b9150612ec382612e5c565b604082019050919050565b60006020820190508181036000830152612ee781612eab565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612f24601683612530565b9150612f2f82612eee565b602082019050919050565b60006020820190508181036000830152612f5381612f17565b9050919050565b7f5472616e7366657220416d6f756e74206578636565647320746865206d61785460008201527f786e73416d6f756e740000000000000000000000000000000000000000000000602082015250565b6000612fb6602983612530565b9150612fc182612f5a565b604082019050919050565b60006020820190508181036000830152612fe581612fa9565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c6574416d6f756e742e0000000000000000000000000000000000000000602082015250565b6000613048602c83612530565b915061305382612fec565b604082019050919050565b600060208201905081810360008301526130778161303b565b9050919050565b6000613089826124f1565b9150613094836124f1565b92508282026130a2816124f1565b915082820484148315176130b9576130b8612a1f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061312d8161260e565b92915050565b600060208284031215613149576131486125d7565b5b60006131578482850161311e565b91505092915050565b6000819050919050565b600061318561318061317b84613160565b6126dc565b6124f1565b9050919050565b6131958161316a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131d0816125fc565b82525050565b60006131e283836131c7565b60208301905092915050565b6000602082019050919050565b60006132068261319b565b61321081856131a6565b935061321b836131b7565b8060005b8381101561324c57815161323388826131d6565b975061323e836131ee565b92505060018101905061321f565b5085935050505092915050565b600060a08201905061326e60008301886124fb565b61327b602083018761318c565b818103604083015261328d81866131fb565b905061329c6060830185612810565b6132a960808301846124fb565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061330f602183612530565b915061331a826132b3565b604082019050919050565b6000602082019050818103600083015261333e81613302565b9050919050565b600060c08201905061335a6000830189612810565b61336760208301886124fb565b613374604083018761318c565b613381606083018661318c565b61338e6080830185612810565b61339b60a08301846124fb565b979650505050505050565b6000815190506133b58161263a565b92915050565b6000806000606084860312156133d4576133d36125d7565b5b60006133e2868287016133a6565b93505060206133f3868287016133a6565b9250506040613404868287016133a6565b915050925092509256fea2646970667358221220ac307c0ed96cb7e2a2fa04e7da6b1385d8e6fc3ed1c3e374f606ab7e58b7ae5c64736f6c634300081200330000000000000000000000005da3ab57903dad06fbf6cb9337126a5d407f53ee0000000000000000000000005da3ab57903dad06fbf6cb9337126a5d407f53ee