Loading
60806040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c556001600d55635f32eab0600f556000601055600060115569021e19e0c9bab24000006020553480156200007d57600080fd5b506040516200668738038062006687833981810160405260a0811015620000a357600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600080620002358585620003a860201b60201c565b915091508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200028f576001601960146101000a81548160ff021916908315150217905550620002ab565b6000601960146101000a81548160ff0219169083151502179055505b620002bb6200052460201b60201c565b600080620002d08987620003a860201b60201c565b915091508873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200032a576001601a60146101000a81548160ff02191690831515021790555062000346565b6000601a60146101000a81548160ff0219169083151502179055505b620003598583836200061c60201b60201c565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505062000b7f565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141562000432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180620066626025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106200046e57828462000471565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200051d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a205a45524f5f41444452455353000081525060200191505060405180910390fd5b9250929050565b6000806200056f601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601960149054906101000a900460ff166200076460201b620047e71760201c565b9150915060008163ffffffff1611620005f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f20747261646573000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601a60156101000a81548163ffffffff021916908363ffffffff16021790555081601b819055505050565b6000838383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060405160200180807fff000000000000000000000000000000000000000000000000000000000000008152506001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001807f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f815250602001925050506040516020818303038152906040528051906020012060001c90509392505050565b6000806200077762000a0460201b60201c565b905060008060008673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015620007c557600080fd5b505afa158015620007da573d6000803e3d6000fd5b505050506040513d6060811015620007f157600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050925092509250851562000911578673ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156200086a57600080fd5b505afa1580156200087f573d6000803e3d6000fd5b505050506040513d60208110156200089657600080fd5b810190808051906020019092919050505094508363ffffffff168163ffffffff16146200090b57600081850390508063ffffffff16620008e2848662000a1b60201b620052221760201c565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160286019550505b620009fa565b8673ffffffffffffffffffffffffffffffffffffffff16635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b1580156200095857600080fd5b505afa1580156200096d573d6000803e3d6000fd5b505050506040513d60208110156200098457600080fd5b810190808051906020019092919050505094508363ffffffff168163ffffffff1614620009f957600081850390508063ffffffff16620009d0848662000a1b60201b620052221760201c565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160286019550505b5b5050509250929050565b6000640100000000428162000a1557fe5b06905090565b62000a2562000b4e565b6000826dffffffffffffffffffffffffffff161162000aac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4669786564506f696e743a204449565f42595f5a45524f00000000000000000081525060200191505060405180910390fd5b6040518060200160405280836dffffffffffffffffffffffffffff16607060ff16866dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16901b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168162000b2457fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250905092915050565b604051806020016040528060007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b615ad38062000b8f6000396000f3fe6080604052600436106104615760003560e01c80637b0a47ee1161023f578063a7df8c5711610139578063cc4baded116100b6578063ebe2b12b1161007a578063ebe2b12b14611938578063f3640d2e14611963578063f6a3d24e1461197a578063fc672692146119e3578063ff1f6c8914611a0e5761073c565b8063cc4baded146117c5578063d68ce8c0146117f0578063db006a7514611841578063df136d651461187c578063e1b8cb4f146118a75761073c565b8063bb128453116100fd578063bb128453146116aa578063c10f0acf146116d5578063c4c6eaad1461170c578063c5700a0214611763578063c8f33c911461179a5761073c565b8063a7df8c5714611567578063aae55079146115e2578063adb618321461160d578063b001796514611644578063b3cf19321461167f5761073c565b80638f268495116101c75780639a1f12831161018b5780639a1f12831461147c5780639bb30ed3146114a7578063a035b1fe146114d2578063a694fc3a146114fd578063a7ce7e55146115385761073c565b80638f2684951461137557806390824dc6146113b0578063924fc617146113eb57806393a9168214611426578063991de0c2146114515761073c565b80638b8763471161020e5780638b876347146112105780638bcf5754146112755780638cee36b3146112a45780638da588971461131f5780638ee658921461134a5761073c565b80637b0a47ee146111645780637ffe33fb1461118f578063832a3035146111ba578063880e05dc146111e55761073c565b80633e28522d1161035b5780635c85e279116102d857806374c22b3a1161029c57806374c22b3a1461105357806374f7fe1b1461107e5780637888ddaa146110a957806378e97925146110d45780637ac81197146110ff5761073c565b80635c85e27914610ecc578063614b783214610f235780636ebcf60714610f4e57806370a0823114610fb357806372cb6552146110185761073c565b8063471f4e381161031f578063471f4e3814610dc357806348cf886214610dfa5780634c8337dc14610e5f57806357466c8b14610e8a5780635a85e50314610ea15761073c565b80633e28522d14610c765780633eaaf86b14610ca15780633f7361eb14610ccc57806344c2fc6c14610d3157806344cb9ad114610d6c5761073c565b80631d961e79116103e95780632e1a7d4d116103ad5780632e1a7d4d14610b695780632f43c1bc14610ba457806333f74fd214610bcf57806336c4cb3714610c205780633ba0b9a914610c4b5761073c565b80631d961e79146109ca5780631fc63f0b14610a4557806323e19f5614610a5c5780632957fef414610ab35780632d7dfbc814610b185761073c565b806311dde7e41161043057806311dde7e414610853578063125d74c0146108b857806318160ddd1461090f5780631be052891461093a5780631cee24f5146109655761073c565b806305ecd003146107415780630700037d1461076c5780630abb3e0b146107d15780630f80f193146107fc5761073c565b3661073c5761046e611a25565b6027819055506000602754116104cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806158d06037913960400191505060405180910390fd5b60006105006027546104f2670de0b6b3a764000034611b0390919063ffffffff16565b611b8990919063ffffffff16565b905060205481111561055d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806159736022913960400191505060405180910390fd5b61057281602054611bd390919063ffffffff16565b602081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561062157600080fd5b505af1158015610635573d6000803e3d6000fd5b505050506040513d602081101561064b57600080fd5b81019080805190602001909291905050506106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6661696c656420746f206d696e742066726f6d2074686973207573657200000081525060200191505060405180910390fd5b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f885258743034604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150005b600080fd5b34801561074d57600080fd5b50610756611c00565b6040518082815260200191505060405180910390f35b34801561077857600080fd5b506107bb6004803603602081101561078f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d5c565b6040518082815260200191505060405180910390f35b3480156107dd57600080fd5b506107e6611d74565b6040518082815260200191505060405180910390f35b34801561080857600080fd5b50610811611d7a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085f57600080fd5b506108a26004803603602081101561087657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611da0565b6040518082815260200191505060405180910390f35b3480156108c457600080fd5b506108cd611db8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561091b57600080fd5b50610924611dde565b6040518082815260200191505060405180910390f35b34801561094657600080fd5b5061094f611de8565b6040518082815260200191505060405180910390f35b34801561097157600080fd5b506109b46004803603602081101561098857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611def565b6040518082815260200191505060405180910390f35b3480156109d657600080fd5b50610a03600480360360208110156109ed57600080fd5b8101908080359060200190929190505050611e07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a5157600080fd5b50610a5a611e43565b005b348015610a6857600080fd5b50610a71611f99565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610abf57600080fd5b50610b0260048036036020811015610ad657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fbf565b6040518082815260200191505060405180910390f35b348015610b2457600080fd5b50610b6760048036036020811015610b3b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612008565b005b348015610b7557600080fd5b50610ba260048036036020811015610b8c57600080fd5b8101908080359060200190929190505050612223565b005b348015610bb057600080fd5b50610bb96123e8565b6040518082815260200191505060405180910390f35b348015610bdb57600080fd5b50610c1e60048036036020811015610bf257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ee565b005b348015610c2c57600080fd5b50610c356124d8565b6040518082815260200191505060405180910390f35b348015610c5757600080fd5b50610c606124de565b6040518082815260200191505060405180910390f35b348015610c8257600080fd5b50610c8b6124e4565b6040518082815260200191505060405180910390f35b348015610cad57600080fd5b50610cb66124ea565b6040518082815260200191505060405180910390f35b348015610cd857600080fd5b50610d1b60048036036020811015610cef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f0565b6040518082815260200191505060405180910390f35b348015610d3d57600080fd5b50610d6a60048036036020811015610d5457600080fd5b8101908080359060200190929190505050612508565b005b348015610d7857600080fd5b50610d81612940565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dcf57600080fd5b50610dd8612966565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610e0657600080fd5b50610e4960048036036020811015610e1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061297c565b6040518082815260200191505060405180910390f35b348015610e6b57600080fd5b50610e74612994565b6040518082815260200191505060405180910390f35b348015610e9657600080fd5b50610e9f6129a0565b005b348015610ead57600080fd5b50610eb6612a8a565b6040518082815260200191505060405180910390f35b348015610ed857600080fd5b50610ee1612a90565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f2f57600080fd5b50610f38612ab5565b6040518082815260200191505060405180910390f35b348015610f5a57600080fd5b50610f9d60048036036020811015610f7157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612abb565b6040518082815260200191505060405180910390f35b348015610fbf57600080fd5b5061100260048036036020811015610fd657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ad3565b6040518082815260200191505060405180910390f35b34801561102457600080fd5b506110516004803603602081101561103b57600080fd5b8101908080359060200190929190505050612b1c565b005b34801561105f57600080fd5b50611068612bcb565b6040518082815260200191505060405180910390f35b34801561108a57600080fd5b50611093612bd1565b6040518082815260200191505060405180910390f35b3480156110b557600080fd5b506110be612bd7565b6040518082815260200191505060405180910390f35b3480156110e057600080fd5b506110e9612be3565b6040518082815260200191505060405180910390f35b34801561110b57600080fd5b5061114e6004803603602081101561112257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612be9565b6040518082815260200191505060405180910390f35b34801561117057600080fd5b50611179612c01565b6040518082815260200191505060405180910390f35b34801561119b57600080fd5b506111a4612c07565b6040518082815260200191505060405180910390f35b3480156111c657600080fd5b506111cf611a25565b6040518082815260200191505060405180910390f35b3480156111f157600080fd5b506111fa612c0d565b6040518082815260200191505060405180910390f35b34801561121c57600080fd5b5061125f6004803603602081101561123357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c13565b6040518082815260200191505060405180910390f35b34801561128157600080fd5b5061128a612c2b565b604051808215151515815260200191505060405180910390f35b3480156112b057600080fd5b506112dd600480360360208110156112c757600080fd5b8101908080359060200190929190505050612c3e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561132b57600080fd5b50611334612c7a565b6040518082815260200191505060405180910390f35b34801561135657600080fd5b5061135f612c80565b6040518082815260200191505060405180910390f35b34801561138157600080fd5b506113ae6004803603602081101561139857600080fd5b8101908080359060200190929190505050612c86565b005b3480156113bc57600080fd5b506113e9600480360360208110156113d357600080fd5b8101908080359060200190929190505050612d36565b005b3480156113f757600080fd5b506114246004803603602081101561140e57600080fd5b8101908080359060200190929190505050612eb3565b005b34801561143257600080fd5b5061143b612f33565b6040518082815260200191505060405180910390f35b34801561145d57600080fd5b50611466612f39565b6040518082815260200191505060405180910390f35b34801561148857600080fd5b50611491612f3f565b6040518082815260200191505060405180910390f35b3480156114b357600080fd5b506114bc612f45565b6040518082815260200191505060405180910390f35b3480156114de57600080fd5b506114e7612f4b565b6040518082815260200191505060405180910390f35b34801561150957600080fd5b506115366004803603602081101561152057600080fd5b8101908080359060200190929190505050612f51565b005b34801561154457600080fd5b5061154d6131c2565b604051808215151515815260200191505060405180910390f35b34801561157357600080fd5b506115a06004803603602081101561158a57600080fd5b81019080803590602001909291905050506131d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156115ee57600080fd5b506115f7613211565b6040518082815260200191505060405180910390f35b34801561161957600080fd5b50611622613217565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561165057600080fd5b5061167d6004803603602081101561166757600080fd5b810190808035906020019092919050505061322d565b005b34801561168b57600080fd5b5061169461372d565b6040518082815260200191505060405180910390f35b3480156116b657600080fd5b506116bf613733565b6040518082815260200191505060405180910390f35b3480156116e157600080fd5b506116ea613739565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561171857600080fd5b5061172161374f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561176f57600080fd5b50611778613775565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156117a657600080fd5b506117af61378b565b6040518082815260200191505060405180910390f35b3480156117d157600080fd5b506117da613791565b6040518082815260200191505060405180910390f35b3480156117fc57600080fd5b5061183f6004803603602081101561181357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613797565b005b34801561184d57600080fd5b5061187a6004803603602081101561186457600080fd5b8101908080359060200190929190505050613880565b005b34801561188857600080fd5b506118916139d8565b6040518082815260200191505060405180910390f35b3480156118b357600080fd5b506118f6600480360360208110156118ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506139de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561194457600080fd5b5061194d613a11565b6040518082815260200191505060405180910390f35b34801561196f57600080fd5b50611978613a17565b005b34801561198657600080fd5b506119c96004803603602081101561199d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614607565b604051808215151515815260200191505060405180910390f35b3480156119ef57600080fd5b506119f8614627565b6040518082815260200191505060405180910390f35b348015611a1a57600080fd5b50611a2361462d565b005b6000806000611a65601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601960149054906101000a900460ff166147e7565b915091506000601a60159054906101000a900463ffffffff1682039050611a8a6157ae565b60405180602001604052808363ffffffff16601b54870381611aa857fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509050611ae6611ae182670de0b6b3a7640000614a58565b614b2e565b71ffffffffffffffffffffffffffffffffffff1694505050505090565b600080831415611b165760009050611b83565b6000828402905082848281611b2757fe5b0414611b7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806159076021913960400191505060405180910390fd5b809150505b92915050565b6000611bcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614b43565b905092915050565b6000611bf88383604051806060016040528060228152602001615a0660229139614c09565b905092915050565b6000611c3d601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a60149054906101000a900460ff166147e7565b60316000603360008491906101000a81548163ffffffff021916908363ffffffff160217905550839190505550506000601c60009054906101000a900463ffffffff16603360009054906101000a900463ffffffff16039050611c9e6157ae565b60405180602001604052808363ffffffff16601d546031540381611cbe57fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509050601d54603281905550603154601d81905550603360009054906101000a900463ffffffff16601c60006101000a81548163ffffffff021916908363ffffffff160217905550611d41611d3c82670de0b6b3a7640000614a58565b614b2e565b71ffffffffffffffffffffffffffffffffffff169250505090565b60156020528060005260406000206000915090505481565b60315481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60166020528060005260406000206000915090505481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6209896881565b60216020528060005260406000206000915090505481565b60178181548110611e1457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600454421015611ebb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000611ec633611fbf565b11611f39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616e6e6f742063616e63656c2072656465656d20300000000000000000000081525060200191505060405180910390fd5b611f4161462d565b3373ffffffffffffffffffffffffffffffffffffffff167fd152413691fa0961ef1e7e2fffd8ffb35b9be1e0e63ab4b8ebc699b8318c242b611f8233611fbf565b6040518082815260200191505060405180910390a2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156120a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806159dc602a913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f696e766974657220686173206265656e20616464656420616c7265616479000081525060200191505060405180910390fd5b80601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461229f57601354601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600454421015612317576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161238d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b61239682614cc9565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b601d5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158a6602a913960400191505060405180910390fd5b80601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60205481565b602d5481565b602b5481565b60025481565b60076020528060005260406000206000915090505481565b600060045411612580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f48617665206e6f7420736574207570207468652073746172742074696d65000081525060200191505060405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115612618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806159956024913960400191505060405180910390fd5b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061267a81600254611bd390919063ffffffff16565b6002819055506126d281600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156127a3576001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601e600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156128b3576001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361285862278d0061284a60045442611bd390919063ffffffff16565b611b8990919063ffffffff16565b11156128ae57600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055505b6128f9565b601e600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b42600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602660009054906101000a900463ffffffff1681565b60086020528060005260406000206000915090505481565b6710a741a46278000081565b6000806129de601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601960149054906101000a900460ff166147e7565b9150915060008163ffffffff1611612a5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f20747261646573000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601a60156101000a81548163ffffffff021916908363ffffffff16021790555081601b819055505050565b602f5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60066020528060005260406000206000915090505481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158a6602a913960400191505060405180910390fd5b8060048190555050565b600b5481565b601b5481565b670de0b6b3a764000081565b60045481565b60096020528060005260406000206000915090505481565b60115481565b60035481565b600c5481565b60146020528060005260406000206000915090505481565b601960149054906101000a900460ff1681565b60228181548110612c4b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60245481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158a6602a913960400191505060405180910390fd5b8060248190555050565b80601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612dce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806159506023913960400191505060405180910390fd5b612e2081601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd390919063ffffffff16565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb03382600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16614e639092919063ffffffff16565b50565b60008111612f29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f706c6561736520696e707574206120706f73697469766520707269636500000081525060200191505060405180910390fd5b80601e8190555050565b60285481565b602c5481565b60305481565b602e5481565b60275481565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612fcd57601354601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600454421015613045576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600082116130bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415613167576017339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61317082614f1b565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b601a60149054906101000a900460ff1681565b600581815481106131e257fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602a5481565b603360009054906101000a900463ffffffff1681565b6132356150e7565b6028600060296000849190505583919050555050670de0b6b3a7640000602854106132ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260448152602001806158626044913960600191505060405180910390fd5b600060295411613306576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615a28602b913960400191505060405180910390fd5b6000613337670de0b6b3a764000061332960295485611b0390919063ffffffff16565b611b8990919063ffffffff16565b905060008111613392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806159286028913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111561341f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f657468206e6f7420656e6f75676820666f722065786368616e67696e6700000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613465573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561354357600080fd5b505af1158015613557573d6000803e3d6000fd5b505050506040513d602081101561356d57600080fd5b81019080805190602001909291905050506135f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f6661696c656420746f20676574206175736420696e746f2065746820706f6f6c81525060200191505060405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac30846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561369957600080fd5b505af11580156136ad573d6000803e3d6000fd5b505050506040513d60208110156136c357600080fd5b8101908080519060200190929190505050613729576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806158416021913960400191505060405180910390fd5b5050565b601e5481565b60325481565b601a60159054906101000a900463ffffffff1681565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900463ffffffff1681565b60125481565b60255481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461383c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158a6602a913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004544210156138f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600061390333612ad3565b11613976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f43616e6e6f742072656465656d2030000000000000000000000000000000000081525060200191505060405180910390fd5b61397f81612508565b3373ffffffffffffffffffffffffffffffffffffffff167f222838db2794d11532d940e8dec38ae307ed0b63cd97c233322e221f998767a66139c033611fbf565b6040518082815260200191505060405180910390a250565b60135481565b60186020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613abd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158a6602a913960400191505060405180910390fd5b42613ad5600c54600b5461513a90919063ffffffff16565b10613b2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806157f36029913960400191505060405180910390fd5b613b66600d54613b58613b49600c54426151c290919063ffffffff16565b42611bd390919063ffffffff16565b61513a90919063ffffffff16565b600b81905550613c236103e8600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613bda57600080fd5b505afa158015613bee573d6000803e3d6000fd5b505050506040513d6020811015613c0457600080fd5b8101908080519060200190929190505050611b8990919063ffffffff16565b602b81905550613ce0612710600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613c9757600080fd5b505afa158015613cab573d6000803e3d6000fd5b505050506040513d6020811015613cc157600080fd5b8101908080519060200190929190505050611b8990919063ffffffff16565b602c81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930602b546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613d9157600080fd5b505af1158015613da5573d6000803e3d6000fd5b505050506040513d6020811015613dbb57600080fd5b8101908080519060200190929190505050613e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a536021913960400191505060405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602c546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613eee57600080fd5b505af1158015613f02573d6000803e3d6000fd5b505050506040513d6020811015613f1857600080fd5b8101908080519060200190929190505050613f9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6661696c656420746f206d696e742066726f6d207465616d000000000000000081525060200191505060405180910390fd5b60006017805490509050600060025411614000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061581c6025913960400191505060405180910390fd5b60008090505b818110156143bc57614107600a6140f960096140eb670de0b6b3a76400006140dd602b546140cf6002546140c1670de0b6b3a76400006006600060178f8154811061404d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b0390919063ffffffff16565b611b8990919063ffffffff16565b611b0390919063ffffffff16565b611b8990919063ffffffff16565b611b0390919063ffffffff16565b611b8990919063ffffffff16565b601660006017848154811061411857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff1660186000601784815481106141aa57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146143af576142d5600a601660006017858154811061426157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8990919063ffffffff16565b6016600060186000601786815481106142ea57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8080600101915050614006565b506000806143c86150e7565b9150915081602f8190555060016024541415614405576143fa60646710a741a46278000061513a90919063ffffffff16565b602f81905550614434565b600260245414156144335761442c6064670de0b6b3a7640000611bd390919063ffffffff16565b602f819055505b5b6710a741a462780000602f541115614545576000614519600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156144b357600080fd5b505afa1580156144c7573d6000803e3d6000fd5b505050506040513d60208110156144dd57600080fd5b810190808051906020019092919050505061450b6710a741a462780000602f54611bd390919063ffffffff16565b611b0390919063ffffffff16565b90506145308160205461513a90919063ffffffff16565b60206000828254019250508190555050614602565b670de0b6b3a7640000602f54101561460157670de0b6b3a76400003073ffffffffffffffffffffffffffffffffffffffff16311161460057600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a337f6216040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156145e757600080fd5b505af11580156145fb573d6000803e3d6000fd5b505050505b5b5b505050565b60236020528060005260406000206000915054906101000a900460ff1681565b60295481565b614681600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461513a90919063ffffffff16565b600281905550614718600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461513a90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000806147f261520c565b905060008060008673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561483f57600080fd5b505afa158015614853573d6000803e3d6000fd5b505050506040513d606081101561486957600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050509250925092508515614976578673ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156148e057600080fd5b505afa1580156148f4573d6000803e3d6000fd5b505050506040513d602081101561490a57600080fd5b810190808051906020019092919050505094508363ffffffff168163ffffffff161461497157600081850390508063ffffffff166149488486615222565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160286019550505b614a4e565b8673ffffffffffffffffffffffffffffffffffffffff16635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b1580156149bc57600080fd5b505afa1580156149d0573d6000803e3d6000fd5b505050506040513d60208110156149e657600080fd5b810190808051906020019092919050505094508363ffffffff168163ffffffff1614614a4d57600081850390508063ffffffff16614a248486615222565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160286019550505b5b5050509250929050565b614a606157df565b600080831480614ac1575083600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16838486600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160292508281614abe57fe5b04145b614b16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806159b96023913960400191505060405180910390fd5b60405180602001604052808281525091505092915050565b6000607060ff168260000151901c9050919050565b60008083118290614bef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb4578082015181840152602081019050614b99565b50505050905090810190601f168015614be15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614bfb57fe5b049050809150509392505050565b6000838311158290614cb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614c7b578082015181840152602081019050614c60565b50505050905090810190601f168015614ca85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115614d7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6e6f7420656e6f75676820666f7220776974686472617700000000000000000081525060200191505060405180910390fd5b614dcb3382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16614e639092919063ffffffff16565b614e1d81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd390919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b614f168363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050615351565b505050565b614f308160025461513a90919063ffffffff16565b600281905550614f8881600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461513a90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156150a857600080fd5b505af11580156150bc573d6000803e3d6000fd5b505050506040513d60208110156150d257600080fd5b81019080805190602001909291905050505050565b6000806150f2611c00565b60308190555061510061559c565b9050600061513382615125670de0b6b3a7640000603054611b0390919063ffffffff16565b611b8990919063ffffffff16565b9050509091565b6000808284019050838110156151b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061520483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506156a2565b905092915050565b6000640100000000428161521c57fe5b06905090565b61522a6157ae565b6000826dffffffffffffffffffffffffffff16116152b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4669786564506f696e743a204449565f42595f5a45524f00000000000000000081525060200191505060405180910390fd5b6040518060200160405280836dffffffffffffffffffffffffffff16607060ff16866dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16901b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168161532757fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250905092915050565b6153708273ffffffffffffffffffffffffffffffffffffffff16615763565b6153e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310615431578051825260208201915060208101905060208303925061540e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114615493576040519150601f19603f3d011682016040523d82523d6000602084013e615498565b606091505b509150915081615510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f5361666545524332303a2d00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000815111156155965780806020019051602081101561552f57600080fd5b8101908080519060200190929190505050615595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615a74602a913960400191505060405180910390fd5b5b50505050565b60008060006155dc601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601960149054906101000a900460ff166147e7565b915091506000601a60159054906101000a900463ffffffff16820390506156016157ae565b60405180602001604052808363ffffffff16601b5487038161561f57fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250905083601b8190555082601a60156101000a81548163ffffffff021916908363ffffffff16021790555061568561568082670de0b6b3a7640000614a58565b614b2e565b71ffffffffffffffffffffffffffffffffffff1694505050505090565b600080831415829061574f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156157145780820151818401526020810190506156f9565b50505050905090810190601f1680156157415780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082848161575957fe5b0690509392505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156157a55750808214155b92505050919050565b604051806020016040528060007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b604051806020016040528060008152509056fe6974206973206e6f7420746865207375697461626c652074696d6520746f206d696e74666f7273656f746865726520617265206e6f207374616b6520696e2063757272656e742073797374656d2e6661696c656420746f206275726e206175736420696e746f2065746820706f6f6c63616e6e6f742065786368616e65672065746820626563617573652063757272656e7420707269636520697320626967676572207468616e206c6f7765727072696365206e656564207370656369616c207065726d697373696f6e20666f722074686973206f7065726174696f6e74686520707269636520666f72206461692d6574682066726f6d20756e6973776170206973206e6f74206c6172676572207468616e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776661696c656420746f2063616c63756c617465207468652065746820746f6b656e20616d6f756e74696e746572657374206e6f7420656e6f75676820666f72207769746864726177696e676c6172676572207468616e20746865206c696d697461696f6e206f662071756f74617374616b6520616d6f756e74206973206e6f7420656e6f75676820746f2072656465656d4669786564506f696e743a204d554c5449504c49434154494f4e5f4f564552464c4f57616464726573732077686f2077616e7420746f2061646420696e7620646f6573206e6f74206578697374536166654d6174683a20787878207375627472616374696f6e206f766572666c6f776661696c656420746f20676574207468652064616920707269636520666f722065786368616e67696e67206661696c656420746f206d696e742066726f6d20617573642065746820706f6f6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122080c7900d4792b1e83013b963e5f5487aa7e896af27bce98de9fd1839adf504a664736f6c63430006020033556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553000000000000000000000000616e919814b5194611db9ff45f3d4300992fd3e1000000000000000000000000a478c2975ab1ea89e8196811f51a7b7ade33eb110000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f