0x60806040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60085560006009556000600a553480156200003f57600080fd5b506040516200427738038062004277833981810160405260a08110156200006557600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200009057600080fd5b83820191506020820185811115620000a757600080fd5b8251866001820283011164010000000082111715620000c557600080fd5b8083526020830192505050908051906020019080838360005b83811015620000fb578082015181840152602081019050620000de565b50505050905090810190601f168015620001295780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200014d57600080fd5b838201915060208201858111156200016457600080fd5b82518660018202830111640100000000821117156200018257600080fd5b8083526020830192505050908051906020019080838360005b83811015620001b85780820151818401526020810190506200019b565b50505050905090810190601f168015620001e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200020a57600080fd5b838201915060208201858111156200022157600080fd5b82518660018202830111640100000000821117156200023f57600080fd5b8083526020830192505050908051906020019080838360005b838110156200027557808201518184015260208101905062000258565b50505050905090810190601f168015620002a35780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000308336200042960201b60201c565b62000319336200048a60201b60201c565b6000600360006101000a81548160ff0219169083151502179055506200034533620004eb60201b60201c565b8460058190555083600c9080519060200190620003649291906200072c565b5082600d90805190602001906200037d9291906200072c565b5081600e9080519060200190620003969291906200072c565b5080600f8190555084600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601060146101000a81548160ff0219169083151502179055505050505050620007db565b620004448160016200054c60201b620037471790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b620004a58160026200054c60201b620037471790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f688c92132a0c4c5d31dc0e7708a9fa53e64a3cc5185645b75702764bc9a7686f60405160405180910390a250565b620005068160046200054c60201b620037471790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f898eb7d29d77d209b37ef56ac937b662785b451c3596f78055b4bb4a007ed31c60405160405180910390a250565b6200055e82826200063060201b60201c565b15620005d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f526f6c6573203a206163636f756e7420616c72656164792068617320726f6c6581525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f526f6c6573203a206163636f756e74206973205a65726f00000000000000000081525060200191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200076f57805160ff1916838001178555620007a0565b82800160010185558215620007a0579182015b828111156200079f57825182559160200191906001019062000782565b5b509050620007af9190620007b3565b5090565b620007d891905b80821115620007d4576000816000905550600101620007ba565b5090565b90565b613a8c80620007eb6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806360b80fc01161010f578063983b2d56116100a2578063dd62ed3e11610071578063dd62ed3e146109dd578063e47d606014610a55578063e4997dc514610ab1578063f2d2a75114610af5576101f0565b8063983b2d56146108a9578063a0712d68146108ed578063a9059cbb1461091b578063aa271e1a14610981576101f0565b806382dc1ec4116100de57806382dc1ec4146107b35780638456cb59146107f757806384e5eed01461080157806395d89b4114610826576101f0565b806360b80fc014610677578063616559b7146106bb5780636b2c0f551461071757806370a082311461075b576101f0565b80633092afd51161018757806342966c681161015657806342966c681461054857806346fbf68e1461057657806355f150f1146105d25780635c975abb14610655576101f0565b80633092afd514610498578063313ce567146104dc57806338ebf6dd146104fa5780633f4ba83a1461053e576101f0565b80630ecb93c0116101c35780630ecb93c01461036657806318160ddd146103aa57806323b872dd146103c857806326976e3f1461044e576101f0565b806302b1cdd7146101f557806306fdde03146102395780630753c30c146102bc578063095ea7b314610300575b600080fd5b6102376004803603602081101561020b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b2d565b005b610241610b96565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610281578082015181840152602081019050610266565b50505050905090810190601f1680156102ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c34565b005b61034c6004803603604081101561031657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b6103a86004803603602081101561037c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9c565b005b6103b2610fb8565b6040518082815260200191505060405180910390f35b610434600480360360608110156103de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611087565b604051808215151515815260200191505060405180910390f35b61045661132c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104da600480360360208110156104ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611352565b005b6104e46113bb565b6040518082815260200191505060405180910390f35b61053c6004803603602081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c1565b005b61054661142a565b005b6105746004803603602081101561055e57600080fd5b8101908080359060200190929190505050611507565b005b6105b86004803603602081101561058c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a5565b604051808215151515815260200191505060405180910390f35b6105da6117c2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561061a5780820151818401526020810190506105ff565b50505050905090810190601f1680156106475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61065d611860565b604051808215151515815260200191505060405180910390f35b6106b96004803603602081101561068d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611877565b005b6106fd600480360360208110156106d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a65565b604051808215151515815260200191505060405180910390f35b6107596004803603602081101561072d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a82565b005b61079d6004803603602081101561077157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aeb565b6040518082815260200191505060405180910390f35b6107f5600480360360208110156107c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf4565b005b6107ff611c5d565b005b610809611d3b565b604051808381526020018281526020019250505060405180910390f35b61082e611d4c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561086e578082015181840152602081019050610853565b50505050905090810190601f16801561089b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108eb600480360360208110156108bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dea565b005b6109196004803603602081101561090357600080fd5b8101908080359060200190929190505050611e53565b005b6109676004803603604081101561093157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612155565b604051808215151515815260200191505060405180910390f35b6109c36004803603602081101561099757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123c4565b604051808215151515815260200191505060405180910390f35b610a3f600480360360408110156109f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e1565b6040518082815260200191505060405180910390f35b610a9760048036036020811015610a6b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612520565b604051808215151515815260200191505060405180910390f35b610af360048036036020811015610ac757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612540565b005b610b2b60048036036040811015610b0b57600080fd5b81019080803590602001909291908035906020019092919050505061265c565b005b610b356127d3565b610b8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b610b938161282a565b50565b600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c2c5780601f10610c0157610100808354040283529160200191610c2c565b820191906000526020600020905b815481529060010190602001808311610c0f57829003601f168201915b505050505081565b610c3c6127d3565b610c91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b6001601060146101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000601060149054906101000a900460ff1615610e8957601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610e4757600080fd5b505af1158015610e5b573d6000803e3d6000fd5b505050506040513d6020811015610e7157600080fd5b81019080805190602001909291905050509050610e96565b610e938383612884565b90505b92915050565b610ea533611a65565b610efa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806138b56030913960400191505060405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000601060149054906101000a900460ff161561107957601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561103757600080fd5b505afa15801561104b573d6000803e3d6000fd5b505050506040513d602081101561106157600080fd5b81019080805190602001909291905050509050611084565b611081612a71565b90505b90565b6000600360009054906101000a900460ff161561110c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5061757361626c65203a2070617573656400000000000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806138e56029913960400191505060405180910390fd5b601060149054906101000a900460ff161561131757601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050602060405180830381600087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b505050506040513d60208110156112ff57600080fd5b81019080805190602001909291905050509050611325565b611322848484612a7b565b90505b9392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61135a6127d3565b6113af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b6113b881612f0b565b50565b600f5481565b6113c96127d3565b61141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b61142781612f65565b50565b611433336117a5565b61143c57600080fd5b600360009054906101000a900460ff166114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5061757361626c65203a206e6f7420706175736564000000000000000000000081525060200191505060405180910390fd5b6000600360006101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a1565b611510336123c4565b611565576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806139ea6029913960400191505060405180910390fd5b8060055410156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806138856030913960400191505060405180910390fd5b80600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611679576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180613a136045913960600191505060405180910390fd5b61168e81600554612fbf90919063ffffffff16565b60058190555061170781600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fbf90919063ffffffff16565b600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a150565b60006117bb826002612fd690919063ffffffff16565b9050919050565b600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118585780601f1061182d57610100808354040283529160200191611858565b820191906000526020600020905b81548152906001019060200180831161183b57829003601f168201915b505050505081565b6000600360009054906101000a900460ff16905090565b61188033611a65565b6118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806138b56030913960400191505060405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611994576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f426c61636b4c697374203a205573657220697320436c6561726564205573657281525060200191505060405180910390fd5b600061199f82611aeb565b90506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806005600082825403925050819055507f3ac299a26d5ad6a17aff72c29c9045d2d94ce6913538fbbd778e116e08008e8f8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000611a7b826004612fd690919063ffffffff16565b9050919050565b611a8a6127d3565b611adf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b611ae8816130d1565b50565b6000601060149054906101000a900460ff1615611be357601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ba157600080fd5b505afa158015611bb5573d6000803e3d6000fd5b505050506040513d6020811015611bcb57600080fd5b81019080805190602001909291905050509050611bef565b611bec8261312b565b90505b919050565b611bfc6127d3565b611c51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b611c5a81613174565b50565b611c66336117a5565b611c6f57600080fd5b600360009054906101000a900460ff1615611cf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5061757361626c65203a2070617573656400000000000000000000000000000081525060200191505060405180910390fd5b6001600360006101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a1565b600080600954600a54915091509091565b600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611de25780601f10611db757610100808354040283529160200191611de2565b820191906000526020600020905b815481529060010190602001808311611dc557829003601f168201915b505050505081565b611df26127d3565b611e47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b611e50816131ce565b50565b611e5c336123c4565b611eb1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806139ea6029913960400191505060405180910390fd5b600554816005540111611f0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061390e6037913960400191505060405180910390fd5b600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111612029576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806138236038913960400191505060405180910390fd5b61209c81600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322890919063ffffffff16565b600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121158160055461322890919063ffffffff16565b6005819055507f07883703ed0e86588a40d76551c92f8a4b329e3bf19765e0e6749473c1a84665816040518082815260200191505060405180910390a150565b6000600360009054906101000a900460ff16156121da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5061757361626c65203a2070617573656400000000000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561227d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806138e56029913960400191505060405180910390fd5b601060149054906101000a900460ff16156123b157601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3385856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561236f57600080fd5b505af1158015612383573d6000803e3d6000fd5b505050506040513d602081101561239957600080fd5b810190808051906020019092919050505090506123be565b6123bb8383613244565b90505b92915050565b60006123da826001612fd690919063ffffffff16565b9050919050565b6000601060149054906101000a900460ff161561250d57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156124cb57600080fd5b505afa1580156124df573d6000803e3d6000fd5b505050506040513d60208110156124f557600080fd5b8101908080519060200190929190505050905061251a565b61251783836135b3565b90505b92915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61254933611a65565b61259e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806138b56030913960400191505060405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f2234edb6f393cd207251f6579b5852192c144c4c12b9cc32e80539ef12faed3f81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6126646127d3565b6126b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061396b6021913960400191505060405180910390fd5b60148210612712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061385b602a913960400191505060405180910390fd5b6032811061276b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806139456026913960400191505060405180910390fd5b8160098190555061278a600f54600a0a8261363a90919063ffffffff16565b600a819055507f3e98b570451dd142c78f881fa676a0c1510b40d245e158fda8a770446197ae9f8282604051808381526020018281526020019250505060405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b61283e81600461367190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f2c2454d26d60bfa62607b8475b3871ee8ab71ea9d91d71194045db0b90c0624160405160405180910390a250565b60006040600481016000369050101561289c57600080fd5b6000831415801561292a57506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15612980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061398c603c913960400191505060405180910390fd5b82600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b6000600554905090565b600060606004810160003690501015612a9357600080fd5b6000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612b3f612710612b316009548861363a90919063ffffffff16565b61372e90919063ffffffff16565b9050600a54811115612b5157600a5490505b600854821015612bef57612b6e8583612fbf90919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000612c048287612fbf90919063ffffffff16565b9050612c5886600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fbf90919063ffffffff16565b600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ced81600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322890919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612e9757612dac82600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322890919063ffffffff16565b600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019450505050509392505050565b612f1f81600161367190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b612f7981600461374790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f898eb7d29d77d209b37ef56ac937b662785b451c3596f78055b4bb4a007ed31c60405160405180910390a250565b600082821115612fcb57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561307a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f526f6c6573203a206163636f756e74206973205a65726f00000000000000000081525060200191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6130e581600261367190919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fd6cff2390c087c19d313d6e3b8e5bc10d013fe4df7fa28ee581da2d00ed1cbe160405160405180910390a250565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61318881600261374790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f688c92132a0c4c5d31dc0e7708a9fa53e64a3cc5185645b75702764bc9a7686f60405160405180910390a250565b6131e281600161374790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008082840190508381101561323a57fe5b8091505092915050565b60006040600481016000369050101561325c57600080fd5b60006132876127106132796009548761363a90919063ffffffff16565b61372e90919063ffffffff16565b9050600a5481111561329957600a5490505b60006132ae8286612fbf90919063ffffffff16565b905061330285600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fbf90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061339781600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156135415761345682600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322890919063ffffffff16565b600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001935050505092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083141561364d576000905061366b565b600082840290508284828161365e57fe5b041461366657fe5b809150505b92915050565b61367b8282612fd6565b6136d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806139c86022913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082848161373a57fe5b0490508091505092915050565b6137518282612fd6565b156137c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f526f6c6573203a206163636f756e7420616c72656164792068617320726f6c6581525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe42757950617945786368616e6765546f6b656e203a696e6372657365737320546f6b656e204661696c2028486f6c6420416d6f756e74292042757950617945786368616e6765546f6b656e203a204261736973506f696e742069732042696767657242757950617945786368616e6765546f6b656e203a20616d6f756e74206973204f76657220546f74616c537570706c79426c61636b526f6c65203a2043616c6c657220646f6573206e6f742068617665204c697374204d61676167656d656e7442757950617945786368616e6765546f6b656e203a2053656e64657220697320426c61636b4c69737442757950617945786368616e6765546f6b656e203a20696e6372657365737320546f6b656e204661696c28546f74616c537570706c792942757950617945786368616e6765546f6b656e203a204d6178466565206973204269676765724f776e61626c65203a2073656e646572206973206e6f74202a2a4f776e65722a2a5374616e64617264546f6b656e203a20616c6c6f77616e6365206973204e6f74205a65726f20616e6420616d6f756e74206973204e6f74205a65726f526f6c6573203a206163636f756e7420646f6573206e6f74206861766520726f6c654d696e746572203a2043616c6c657220646f6573206e6f742068617665206d696e74657220526f6c6542757950617945786368616e6765546f6b656e203a20416d6f756e742067726561746572207468616e2074686520746f6b656e2068656c6420627920746865206f776e6572a265627a7a72315820958280bbf85bd79ee1998ce46acabf3633de28a121c812a2b62d34200fe2d5cb64736f6c634300050d003200000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000f4275797061792045786368616e67650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000442555945000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044427579504159206973206120636f6e7374616e7420737461706c652c20666978656420617420313a3120726174696f20776974682061637475616c2063757272656e637900000000000000000000000000000000000000000000000000000000