60806040526000600160146101000a81548160ff0219169083151502179055506000600160156101000a81548160ff0219169083151502179055506000600160166101000a81548160ff0219169083151502179055506000600160176101000a81548160ff0219169083151502179055506000600160186101000a81548160ff0219169083151502179055506000600160196101000a81548160ff02191690831515021790555060006001601a6101000a81548160ff0219169083151502179055506301406f3f6019557d040000000000000000000000000000000000000000000000000000000000601a55348015620000f857600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146200019357600080fd5b600160149054906101000a900460ff1615620001ae57600080fd5b60018060146101000a81548160ff0219169083151502179055506008601860006101000a81548160ff021916908360ff1602179055506040518060400160405280600d81526020017f42757474436f696e2076322e3000000000000000000000000000000000000000815250601690805190602001906200023192919062000826565b506040518060400160405280600681526020017f3078425554540000000000000000000000000000000000000000000000000000815250601790805190602001906200027f92919062000826565b50660bebc1ffffffed601b8190555060006008819055506000801b601381905550426009819055506000600a8190555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555043600c819055507d040000000000000000000000000000000000000000000000000000000000600d819055506001600e819055506001600f81905550601b54601081905550600060118190555060006012819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040518082815260200191505060405180910390a3601054601d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000486620004ae60201b60201c565b620004a23a6012546200052360201b620058ba1790919060201c565b601281905550620008d5565b620004cb60016008546200052360201b620058ba1790919060201c565b6008819055506000620004f1601954600854620005ac60201b62005afa1790919060201c565b141562000505576001600e5401600e819055505b62000515620005fe60201b60201c565b506001430340601381905550565b600080828401905083811015620005a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000620005f683836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506200064a60201b60201c565b905092915050565b60006200063679026d74d4927727023acef662489b14a98a0bf02f52b5398e0803600d546200071060201b620059ea1790919060201c565b600d8190555043600c819055506001905090565b6000808314158290620006fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620006bf578082015181840152602081019050620006a2565b50505050905090810190601f168015620006ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508284816200070657fe5b0690509392505050565b60006200075a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200076260201b60201c565b905092915050565b600083831115829062000813576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620007d7578082015181840152602081019050620007ba565b50505050905090810190601f168015620008055780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200086957805160ff19168380011785556200089a565b828001600101855582156200089a579182015b82811115620008995782518255916020019190600101906200087c565b5b509050620008a99190620008ad565b5090565b620008d291905b80821115620008ce576000816000905550600101620008b4565b5090565b90565b615d3f80620008e56000396000f3fe6080604052600436106103fa5760003560e01c806379ba509711610213578063a9059cbb11610123578063d4ee1d90116100ab578063e43252d71161007a578063e43252d71461179e578063e439f537146117ef578063e7873b581461181e578063f2fde38b14611849578063fc6065f01461189a576103fa565b8063d4ee1d90146115d4578063dc39d06d1461162b578063dd62ed3e1461169e578063dfb643a514611723576103fa565b8063b66a2074116100f2578063b66a207414611446578063bafedcaa1461145d578063c9b3ffd914611488578063cae9ca511461149f578063cb9ae707146115a9576103fa565b8063a9059cbb14611362578063ad6973af146113d5578063b05e416d14611404578063b474682a1461141b576103fa565b80638ae0368b116101a657806397566aa01161017557806397566aa0146111cd57806398ff1ba114611230578063996e81a71461125b578063a3fbeb1914611286578063a457c2d7146112ef576103fa565b80638ae0368b1461106a5780638da5cb5b146110955780638f88ef52146110ec57806395d89b411461113d576103fa565b806386950154116101e25780638695015414610fac57806387a2a9d614610fc35780638a769d3514610fee5780638ab1d68114611019576103fa565b806379ba509714610e685780637fa6ca3914610e7f57806381269a5614610ee457806384c09a3c14610f55576103fa565b8063395093511161030e5780635b166165116102a15780636f505882116102705780636f50588214610ce95780636fd396d614610d5257806370a0823114610da957806373124ced14610e0e578063771282f614610e3d576103fa565b80635b16616514610bad578063602512e114610bdc57806368c2e01c14610c2f578063694d3c9214610c80576103fa565b8063490203a7116102dd578063490203a714610aef5780634aa2efd214610b1a5780634ef3762814610b31578063537df3b614610b5c576103fa565b806339509351146109d15780633eaaf86b14610a4457806344337ea114610a6f578063488e7f2d14610ac0576103fa565b80631e89d54511610391578063277aa7c711610360578063277aa7c7146108685780632d38bf7a146108fb578063313ce5671461092657806332e9970814610957578063350c936514610982576103fa565b80631e89d5451461063a5780631f0890c214610793578063229289d0146107aa57806323b872dd146107d5576103fa565b806317da485f116103cd57806317da485f146105585780631801fbe51461058357806318160ddd146105e05780631a5cbe651461060b576103fa565b806306fdde03146103ff57806307225b4d1461048f578063095ea7b3146104ba578063163aa00d1461052d575b600080fd5b34801561040b57600080fd5b506104146118c5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610454578082015181840152602081019050610439565b50505050905090810190601f1680156104815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049b57600080fd5b506104a4611963565b6040518082815260200191505060405180910390f35b3480156104c657600080fd5b50610513600480360360408110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611969565b604051808215151515815260200191505060405180910390f35b34801561053957600080fd5b50610542611b1a565b6040518082815260200191505060405180910390f35b34801561056457600080fd5b5061056d611b20565b6040518082815260200191505060405180910390f35b34801561058f57600080fd5b506105c6600480360360408110156105a657600080fd5b810190808035906020019092919080359060200190929190505050611b3e565b604051808215151515815260200191505060405180910390f35b3480156105ec57600080fd5b506105f5611f76565b6040518082815260200191505060405180910390f35b34801561061757600080fd5b50610620611f80565b604051808215151515815260200191505060405180910390f35b34801561064657600080fd5b506107916004803603604081101561065d57600080fd5b810190808035906020019064010000000081111561067a57600080fd5b82018360208201111561068c57600080fd5b803590602001918460208302840111640100000000831117156106ae57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561070e57600080fd5b82018360208201111561072057600080fd5b8035906020019184602083028401116401000000008311171561074257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611f93565b005b34801561079f57600080fd5b506107a8611fe5565b005b3480156107b657600080fd5b506107bf6120bb565b6040518082815260200191505060405180910390f35b3480156107e157600080fd5b5061084e600480360360608110156107f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120c1565b604051808215151515815260200191505060405180910390f35b34801561087457600080fd5b506108e16004803603606081101561088b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612adf565b604051808215151515815260200191505060405180910390f35b34801561090757600080fd5b50610910612dfb565b6040518082815260200191505060405180910390f35b34801561093257600080fd5b5061093b612e01565b604051808260ff1660ff16815260200191505060405180910390f35b34801561096357600080fd5b5061096c612e14565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b506109bb600480360360208110156109a557600080fd5b8101908080359060200190929190505050612e1e565b6040518082815260200191505060405180910390f35b3480156109dd57600080fd5b50610a2a600480360360408110156109f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612e3b565b604051808215151515815260200191505060405180910390f35b348015610a5057600080fd5b50610a596130f6565b6040518082815260200191505060405180910390f35b348015610a7b57600080fd5b50610abe60048036036020811015610a9257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130fc565b005b348015610acc57600080fd5b50610ad5613308565b604051808215151515815260200191505060405180910390f35b348015610afb57600080fd5b50610b0461331b565b6040518082815260200191505060405180910390f35b348015610b2657600080fd5b50610b2f613396565b005b348015610b3d57600080fd5b50610b4661346c565b6040518082815260200191505060405180910390f35b348015610b6857600080fd5b50610bab60048036036020811015610b7f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613476565b005b348015610bb957600080fd5b50610bc26135d1565b604051808215151515815260200191505060405180910390f35b348015610be857600080fd5b50610c1560048036036020811015610bff57600080fd5b81019080803590602001909291905050506135e4565b604051808215151515815260200191505060405180910390f35b348015610c3b57600080fd5b50610c7e60048036036020811015610c5257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061370f565b005b348015610c8c57600080fd5b50610ccf60048036036020811015610ca357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061386a565b604051808215151515815260200191505060405180910390f35b348015610cf557600080fd5b50610d3860048036036020811015610d0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613916565b604051808215151515815260200191505060405180910390f35b348015610d5e57600080fd5b50610d676139c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610db557600080fd5b50610df860048036036020811015610dcc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506139e8565b6040518082815260200191505060405180910390f35b348015610e1a57600080fd5b50610e23613a31565b604051808215151515815260200191505060405180910390f35b348015610e4957600080fd5b50610e52613a44565b6040518082815260200191505060405180910390f35b348015610e7457600080fd5b50610e7d613a4e565b005b348015610e8b57600080fd5b50610ece60048036036020811015610ea257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613beb565b6040518082815260200191505060405180910390f35b348015610ef057600080fd5b50610f3b60048036036080811015610f0757600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050613c34565b604051808215151515815260200191505060405180910390f35b348015610f6157600080fd5b50610f6a613cbd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fb857600080fd5b50610fc1613ce3565b005b348015610fcf57600080fd5b50610fd8613db9565b6040518082815260200191505060405180910390f35b348015610ffa57600080fd5b50611003613dbf565b6040518082815260200191505060405180910390f35b34801561102557600080fd5b506110686004803603602081101561103c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613dc5565b005b34801561107657600080fd5b5061107f613f20565b6040518082815260200191505060405180910390f35b3480156110a157600080fd5b506110aa613f26565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110f857600080fd5b5061113b6004803603602081101561110f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f4b565b005b34801561114957600080fd5b506111526140ff565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611192578082015181840152602081019050611177565b50505050905090810190601f1680156111bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156111d957600080fd5b5061121a600480360360608110156111f057600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061419d565b6040518082815260200191505060405180910390f35b34801561123c57600080fd5b50611245614213565b6040518082815260200191505060405180910390f35b34801561126757600080fd5b50611270614219565b6040518082815260200191505060405180910390f35b34801561129257600080fd5b506112d5600480360360208110156112a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061421f565b604051808215151515815260200191505060405180910390f35b3480156112fb57600080fd5b506113486004803603604081101561131257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614375565b604051808215151515815260200191505060405180910390f35b34801561136e57600080fd5b506113bb6004803603604081101561138557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614630565b604051808215151515815260200191505060405180910390f35b3480156113e157600080fd5b506113ea614eb8565b604051808215151515815260200191505060405180910390f35b34801561141057600080fd5b50611419614ecb565b005b34801561142757600080fd5b50611430614fa1565b6040518082815260200191505060405180910390f35b34801561145257600080fd5b5061145b614fa7565b005b34801561146957600080fd5b5061147261507d565b6040518082815260200191505060405180910390f35b34801561149457600080fd5b5061149d615083565b005b3480156114ab57600080fd5b5061158f600480360360608110156114c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561150957600080fd5b82018360208201111561151b57600080fd5b8035906020019184600183028401116401000000008311171561153d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050615159565b604051808215151515815260200191505060405180910390f35b3480156115b557600080fd5b506115be615414565b6040518082815260200191505060405180910390f35b3480156115e057600080fd5b506115e961541a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561163757600080fd5b506116846004803603604081101561164e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050615440565b604051808215151515815260200191505060405180910390f35b3480156116aa57600080fd5b5061170d600480360360408110156116c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050615586565b6040518082815260200191505060405180910390f35b34801561172f57600080fd5b5061175c6004803603602081101561174657600080fd5b810190808035906020019092919050505061560d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156117aa57600080fd5b506117ed600480360360208110156117c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061564a565b005b3480156117fb57600080fd5b506118046157fe565b604051808215151515815260200191505060405180910390f35b34801561182a57600080fd5b50611833615811565b6040518082815260200191505060405180910390f35b34801561185557600080fd5b506118986004803603602081101561186c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050615817565b005b3480156118a657600080fd5b506118af6158b4565b6040518082815260200191505060405180910390f35b60168054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561195b5780601f106119305761010080835404028352916020019161195b565b820191906000526020600020905b81548152906001019060200180831161193e57829003601f168201915b505050505081565b60085481565b6000600160169054906101000a900460ff161580156119d25750600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119d857fe5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a0f57fe5b81601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3611b0a3a6012546158ba90919063ffffffff16565b6012819055506001905092915050565b600b5481565b6000611b39600d54601a5461594290919063ffffffff16565b905090565b6000600160179054906101000a900460ff1680611ba45750600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611bae57600080fd5b6000611bb861331b565b90506000811415611bc857600080fd5b7c0400000000000000000000000000000000000000000000000000000000600f5410611bf357600080fd5b60006013543386604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019350505050604051602081830303815290604052805190602001209050838114611c6b57600080fd5b600d548160001c1115611c7d57600080fd5b6000601e6000601354815260200190815260200160002054905081601e60006013548152602001908152602001600020819055506000801b8114611cc057600080fd5b33601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a8190555043600b81905550611d1761598c565b3373ffffffffffffffffffffffffffffffffffffffff167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d8460085460135460405180848152602001838152602001828152602001935050505060405180910390a2611dcb83601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e23836011546158ba90919063ffffffff16565b601181905550611e3e83601b546158ba90919063ffffffff16565b601b819055503360056000600854815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260066000600854815260200190815260200160002081905550611f0483600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600981905550611f633a6012546158ba90919063ffffffff16565b6012819055506001935050505092915050565b6000601b54905090565b600160159054906101000a900460ff1681565b60008090505b8251811015611fe057611fd2838281518110611fb157fe5b6020026020010151838381518110611fc557fe5b6020026020010151614630565b508080600101915050611f99565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806120895750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61208f57fe5b600160169054906101000a900460ff1615600160166101000a81548160ff021916908315150217905550565b60195481565b6000600160199054906101000a900460ff16156120da57fe5b601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561212357fe5b601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156121a957fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156121e057fe5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124a957600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3612368601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123ff601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f546158ba90919063ffffffff16565b600f81905550612459601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601b546159ea90919063ffffffff16565b601b819055506000601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ab9565b60006124bf60648461594290919063ffffffff16565b9050600081905060006124ed6124de83856158ba90919063ffffffff16565b866159ea90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36125e385601c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546159ea90919063ffffffff16565b601c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b585601d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546159ea90919063ffffffff16565b601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061274a81601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461294357601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36128dd82601d6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36129fb83601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a5383600f546158ba90919063ffffffff16565b600f81905550612a6e83601b546159ea90919063ffffffff16565b601b8190555086601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505b612ace3a6012546158ba90919063ffffffff16565b601281905550600190509392505050565b6000600160189054906101000a900460ff16158015612b9e57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612b9d5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b612ba457fe5b612bf682601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546159ea90919063ffffffff16565b601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8b82601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612d8457612d7d826010546158ba90919063ffffffff16565b6010819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612dd557612dce82600f546158ba90919063ffffffff16565b600f819055505b612dea3a6012546158ba90919063ffffffff16565b601281905550600190509392505050565b600e5481565b601860009054906101000a900460ff1681565b6000600d54905090565b600060066000838152602001908152602001600020549050919050565b6000600160169054906101000a900460ff16158015612ea45750600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612eaa57fe5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ee157fe5b612f7082601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36130e63a6012546158ba90919063ffffffff16565b6012819055506001905092915050565b601b5481565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561315357600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806131f75750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6131fd57fe5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160179054906101000a900460ff1681565b60007c0400000000000000000000000000000000000000000000000000000000600f541061334c5760009050613393565b601154600f54116133605760009050613393565b600061338c603261337e601154600f546159ea90919063ffffffff16565b61594290919063ffffffff16565b9050809150505b90565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061343a5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61344057fe5b6001601a9054906101000a900460ff16156001601a6101000a81548160ff021916908315150217905550565b6000601354905090565b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166134cc57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806135705750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61357657fe5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160169054906101000a900460ff1681565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561363a57fe5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806136de5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6136e457fe5b81600d819055506137003a6012546158ba90919063ffffffff16565b60128190555060019050919050565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661376557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138095750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61380f57fe5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166138c257600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661396e57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6001601a9054906101000a900460ff1681565b6000601b54905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613aa857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080833387604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019350505050604051602081830303815290604052805190602001209050828160001c1115613caf57600080fd5b848114915050949350505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613d875750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613d8d57fe5b600160179054906101000a900460ff1615600160176101000a81548160ff021916908315150217905550565b601a5481565b600d5481565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613e1b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613ebf5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613ec557fe5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60135481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613fa257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806140465750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61404c57fe5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60178054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156141955780601f1061416a57610100808354040283529160200191614195565b820191906000526020600020905b81548152906001019060200180831161417857829003601f168201915b505050505081565b600080823386604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019350505050604051602081830303815290604052805190602001209050809150509392505050565b60105481565b60095481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661427757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061431b5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61432157fe5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160169054906101000a900460ff161580156143de5750600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6143e457fe5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561441b57fe5b6144aa82601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546159ea90919063ffffffff16565b601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36146203a6012546158ba90919063ffffffff16565b6012819055506001905092915050565b60006001601a9054906101000a900460ff161561464957fe5b601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561469257fe5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156146c957fe5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561499257600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3614851601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506148e8601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f546158ba90919063ffffffff16565b600f81905550614942601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601b546159ea90919063ffffffff16565b601b819055506000601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614e93565b60006149a860648461594290919063ffffffff16565b9050600081905060006149d66149c783856158ba90919063ffffffff16565b866159ea90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3614a8f85601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546159ea90919063ffffffff16565b601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614b2481601d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614614d1d57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3614cb782601d6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3614dd583601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546158ba90919063ffffffff16565b601d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614e2d83600f546158ba90919063ffffffff16565b600f81905550614e4883601b546159ea90919063ffffffff16565b601b8190555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505b614ea83a6012546158ba90919063ffffffff16565b6012819055506001905092915050565b600160189054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480614f6f5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b614f7557fe5b600160189054906101000a900460ff1615600160186101000a81548160ff021916908315150217905550565b60125481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061504b5750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61505157fe5b600160159054906101000a900460ff1615600160156101000a81548160ff021916908315150217905550565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806151275750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61512d57fe5b600160199054906101000a900460ff1615600160196101000a81548160ff021916908315150217905550565b6000600160159054906101000a900460ff161580156151c25750600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6151c857fe5b82601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561538757808201518184015260208101905061536c565b50505050905090810190601f1680156153b45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156153d657600080fd5b505af11580156153ea573d6000803e3d6000fd5b505050506154033a6012546158ba90919063ffffffff16565b601281905550600190509392505050565b600c5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461549b57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561554357600080fd5b505af1158015615557573d6000803e3d6000fd5b505050506040513d602081101561556d57600080fd5b8101908080519060200190929190505050905092915050565b6000601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156156a157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806157455750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61574b57fe5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160199054906101000a900460ff1681565b600f5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461587057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b600080828401905083811015615938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061598483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615a34565b905092915050565b6159a260016008546158ba90919063ffffffff16565b60088190555060006159c1601954600854615afa90919063ffffffff16565b14156159d4576001600e5401600e819055505b6159dc615b44565b506001430340601381905550565b6000615a2c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615b89565b905092915050565b60008083118290615ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615aa5578082015181840152602081019050615a8a565b50505050905090810190601f168015615ad25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581615aec57fe5b049050809150509392505050565b6000615b3c83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250615c49565b905092915050565b6000615b7579026d74d4927727023acef662489b14a98a0bf02f52b5398e0803600d546159ea90919063ffffffff16565b600d8190555043600c819055506001905090565b6000838311158290615c36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615bfb578082015181840152602081019050615be0565b50505050905090810190601f168015615c285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808314158290615cf6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615cbb578082015181840152602081019050615ca0565b50505050905090810190601f168015615ce85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828481615d0057fe5b069050939250505056fea265627a7a7231582036570dbec0381e484ff05eaac2b4d140b643970ea91f1adf8fe85a0b83046e7d64736f6c634300050b0032