608060405273a7135cbd1281d477eef4fc7f0ab19566a47be759600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073aa1582a5b00fdec47fed1ccdde7e5fa3652b456b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507351e32712c65aefaaea9d0b7336a975f400825309600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bac4b80b6c74518bf31b5ce1be80926ffeebb4db600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734ce38c5f44794d6173dd3bbaf208eeef2033370a600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061028a600b55608060405190810160405280699ed194db19b238c000006affffffffffffffffffffff16815260200169be951906eba2aa8000006affffffffffffffffffffff1681526020016a013da329b63364718000006affffffffffffffffffffff1681526020016a0187c0b371c7ead04000006affffffffffffffffffffff1681525060109060046200024592919062000b05565b50608060405190810160405280601460ff168152602001600a60ff168152602001600560ff168152602001600360ff1681525060149060046200028a92919062000b59565b503480156200029857600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a52b7d2dcc80cd2e40000006001819055506200033e60646200032160056a52b7d2dcc80cd2e400000062000aaf6401000000000262002740179091906401000000009004565b62000aee640100000000026200277b179091906401000000009004565b60056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003f56064620003d860086a52b7d2dcc80cd2e400000062000aaf6401000000000262002740179091906401000000009004565b62000aee640100000000026200277b179091906401000000009004565b60056000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004ac60646200048f600a6a52b7d2dcc80cd2e400000062000aaf6401000000000262002740179091906401000000009004565b62000aee640100000000026200277b179091906401000000009004565b60056000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200056360646200054660086a52b7d2dcc80cd2e400000062000aaf6401000000000262002740179091906401000000009004565b62000aee640100000000026200277b179091906401000000009004565b60056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200061a6064620005fd60456a52b7d2dcc80cd2e400000062000aaf6401000000000262002740179091906401000000009004565b62000aee640100000000026200277b179091906401000000009004565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550635b25885f600381905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60056000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60056000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a362000c55565b600080600084141562000ac6576000915062000ae7565b828402905082848281151562000ad857fe5b0414151562000ae357fe5b8091505b5092915050565b6000818381151562000afc57fe5b04905092915050565b826004810192821562000b46579160200282015b8281111562000b4557825182906affffffffffffffffffffff1690559160200191906001019062000b19565b5b50905062000b55919062000bfa565b5090565b826004601f0160209004810192821562000be75791602002820160005b8382111562000bb657835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262000b76565b801562000be55782816101000a81549060ff021916905560010160208160000104928301926001030262000bb6565b505b50905062000bf6919062000c22565b5090565b62000c1f91905b8082111562000c1b57600081600090555060010162000c01565b5090565b90565b62000c5291905b8082111562000c4e57600081816101000a81549060ff02191690555060010162000c29565b5090565b90565b612b808062000c656000396000f3006080604052600436106101d6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680623a3d8014610215578062b526e4146102405780630435a7451461029757806304bd85f0146102d757806306fdde0314610318578063095ea7b3146103a85780630b97bc861461040d57806318160ddd14610438578063234f9db21461046357806323b872dd1461048e5780632b2e76f3146105135780632c4879d11461056a5780632ff2e9dc14610597578063313ce567146105c25780633e2d7004146105f357806342966c681461061e5780634f424da31461064b57806361241c28146106a257806366188463146106cf57806370a082311461073457806377f3293a1461078b57806379ae77cf146107b65780637b012ff61461080d5780637fa8c158146108385780638da5cb5b1461086357806395d89b41146108ba578063a035b1fe1461094a578063a2730c2314610975578063a9059cbb146109b6578063bff99c6c14610a1b578063c24a0f8b14610a72578063ceb10f1c14610a9d578063d73dd62314610ac8578063dbfa586314610b2d578063dd62ed3e14610b58578063e6774e1e14610bcf578063eacc25e714610c06578063f2fde38b14610c5d575b66038d7ea4c6800034108061020157506101ee610ca0565b15801561020057506101fe610cfd565b155b5b1561020b57600080fd5b610213610d2a565b005b34801561022157600080fd5b5061022a610f4e565b6040518082815260200191505060405180910390f35b34801561024c57600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610f84565b005b3480156102a357600080fd5b506102ac611065565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156102e357600080fd5b5061030260048036038101908080359060200190929190505050611083565b6040518082815260200191505060405180910390f35b34801561032457600080fd5b5061032d61109d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036d578082015181840152602081019050610352565b50505050905090810190601f16801561039a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b457600080fd5b506103f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561041957600080fd5b506104226111c8565b6040518082815260200191505060405180910390f35b34801561044457600080fd5b5061044d6111d0565b6040518082815260200191505060405180910390f35b34801561046f57600080fd5b506104786111da565b6040518082815260200191505060405180910390f35b34801561049a57600080fd5b506104f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611229565b604051808215151515815260200191505060405180910390f35b34801561051f57600080fd5b506105286115ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057657600080fd5b50610595600480360381019080803590602001909291905050506115d2565b005b3480156105a357600080fd5b506105ac6116f8565b6040518082815260200191505060405180910390f35b3480156105ce57600080fd5b506105d7611707565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105ff57600080fd5b5061060861170c565b6040518082815260200191505060405180910390f35b34801561062a57600080fd5b5061064960048036038101908080359060200190929190505050611716565b005b34801561065757600080fd5b506106606118cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ae57600080fd5b506106cd600480360381019080803590602001909291905050506118f2565b005b3480156106db57600080fd5b5061071a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611958565b604051808215151515815260200191505060405180910390f35b34801561074057600080fd5b50610775600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611be9565b6040518082815260200191505060405180910390f35b34801561079757600080fd5b506107a0611c32565b6040518082815260200191505060405180910390f35b3480156107c257600080fd5b506107cb611c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081957600080fd5b50610822611c60565b6040518082815260200191505060405180910390f35b34801561084457600080fd5b5061084d611c6f565b6040518082815260200191505060405180910390f35b34801561086f57600080fd5b50610878611c77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108c657600080fd5b506108cf611c9d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561090f5780820151818401526020810190506108f4565b50505050905090810190601f16801561093c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561095657600080fd5b5061095f611cd6565b6040518082815260200191505060405180910390f35b34801561098157600080fd5b506109a060048036038101908080359060200190929190505050611d33565b6040518082815260200191505060405180910390f35b3480156109c257600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d85565b604051808215151515815260200191505060405180910390f35b348015610a2757600080fd5b50610a30611f6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a7e57600080fd5b50610a87611f93565b6040518082815260200191505060405180910390f35b348015610aa957600080fd5b50610ab2611f99565b6040518082815260200191505060405180910390f35b348015610ad457600080fd5b50610b13600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fa8565b604051808215151515815260200191505060405180910390f35b348015610b3957600080fd5b50610b426121a4565b6040518082815260200191505060405180910390f35b348015610b6457600080fd5b50610bb9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ac565b6040518082815260200191505060405180910390f35b348015610bdb57600080fd5b50610c046004803603810190808035906020019092919080359060200190929190505050612233565b005b348015610c1257600080fd5b50610c1b6122b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6957600080fd5b50610c9e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122dd565b005b6000635ae39d5f4210158015610cb95750635aff4cdf42105b8015610ce757506000610ce5600c600001546a0422ca8b0a00a42500000061243590919063ffffffff16565b115b15610cf55760019050610cfa565b600090505b90565b6000635aff4ce04210158015610d14575060035442105b15610d225760019050610d27565b600090505b90565b60008060008060008066038d7ea4c680003410151515610d4957600080fd5b349450610d54610ca0565b15610e1f57610d7c600c600001546a0422ca8b0a00a42500000061243590919063ffffffff16565b9150610d878561244e565b955085821015610e1a57610d996126f7565b9050610dae828761243590919063ffffffff16565b9250610e17600b54610e096064610dfb60148660ff16600481101515610dd057fe5b602091828204019190069054906101000a900460ff1660640360ff168861274090919063ffffffff16565b61277b90919063ffffffff16565b61277b90919063ffffffff16565b93505b610ec8565b610e27610cfd565b15610ec257610e556a0422ca8b0a00a4250000006a34f086f3b33b684000000061279190919063ffffffff16565b9150610e6f600c600001548361243590919063ffffffff16565b9150610e86600b548661274090919063ffffffff16565b955085821015610ebd57610ea3828761243590919063ffffffff16565b9250610eba600b548461274090919063ffffffff16565b93505b610ec7565b600080fd5b5b6000861115610f415785821015610f31573373ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015610f1f573d6000803e3d6000fd5b50610f2c828587036127af565b610f3c565b610f3b86866127af565b5b610f46565b600080fd5b505050505050565b6000610f58610ca0565b15610f665760019050610f81565b610f6e610cfd565b15610f7c5760029050610f81565b600090505b90565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561101c57600080fd5b6110268383612860565b81600c6000016000828254019250508190555080600c600101600082825401925050819055506001600c60030160008282540192505081905550505050565b600c8060000154908060010154908060020154908060030154905084565b600060108260048110151561109457fe5b01549050919050565b6040805190810160405280600681526020017f416c6c344657000000000000000000000000000000000000000000000000000081525081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b635ae39d5f81565b6000600154905090565b6000806112066a0422ca8b0a00a4250000006a34f086f3b33b684000000061279190919063ffffffff16565b9050611220600c600001548261243590919063ffffffff16565b90508091505090565b6000600354421015151561123c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561127857600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561130357600080fd5b61135582600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243590919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113ea82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114bc82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243590919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162e57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168a57600080fd5b670de0b6b3a76400008102600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116e257600080fd5b6116f5670de0b6b3a76400008202611716565b50565b6a52b7d2dcc80cd2e400000081565b601281565b6000600b54905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561177457600080fd5b60008211151561178357600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156117d157600080fd5b33905061182682600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243590919063ffffffff16565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061187e8260015461243590919063ffffffff16565b600181905550818173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560405160405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561194e57600080fd5b80600b8190555050565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611a69576000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afd565b611a7c838261243590919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b635aff4cdf81565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a34f086f3b33b684000000081565b635aff4ce081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f414657000000000000000000000000000000000000000000000000000000000081525081565b600080670de0b6b3a76400009050611cec610ca0565b15611d0157611cfa81612a17565b9150611d2f565b611d09610cfd565b15611d2a57611d23600b548261274090919063ffffffff16565b9150611d2f565b600091505b5090565b6000611d3d610ca0565b15611d5257611d4b82612a17565b9050611d80565b611d5a610cfd565b15611d7b57611d74600b548361274090919063ffffffff16565b9050611d80565b600090505b919050565b60006003544210151515611d9857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611dd457600080fd5b611e2682600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243590919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ebb82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b6a0422ca8b0a00a42500000081565b600061203982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b635b25885f81565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228f57600080fd5b60008111151561229e57600080fd5b806010836004811015156122ae57fe5b01819055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561233957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561237557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561244357fe5b818303905092915050565b600080600080600080600061246e600b548961274090919063ffffffff16565b95506124786126f7565b945060148560ff1660048110151561248c57fe5b602091828204019190069054906101000a900460ff1660640360ff166124bc60648861274090919063ffffffff16565b8115156124c557fe5b04935060038560ff1614801561252457506000601060006004811015156124e857fe5b01541180612507575060006010600160048110151561250357fe5b0154115b80612523575060006010600260048110151561251f57fe5b0154115b5b156125cf576010600260048110151561253957fe5b01546010600160048110151561254b57fe5b01546010600060048110151561255d57fe5b01546010600360048110151561256f57fe5b01540101016010600360048110151561258457fe5b018190555060006010600060048110151561259b57fe5b01819055506000601060016004811015156125b257fe5b01819055506000601060026004811015156125c957fe5b01819055505b60108560ff166004811015156125e157fe5b015492506000831480156125f8575060038560ff16145b15612602576126e9565b838310156126ba57612671600b54612663606461265560148a60ff1660048110151561262a57fe5b602091828204019190069054906101000a900460ff1660640360ff168861274090919063ffffffff16565b61277b90919063ffffffff16565b61277b90919063ffffffff16565b915081880390508293508260108660ff1660048110151561268e57fe5b01540360108660ff166004811015156126a357fe5b01819055506126b18161244e565b840193506126e8565b8360108660ff166004811015156126cd57fe5b01540360108660ff166004811015156126e257fe5b01819055505b5b839650505050505050919050565b6000612701612a97565b90505b60038160ff1610801561272b5750600060108260ff1660048110151561272657fe5b015411155b1561273d578080600101915050612704565b90565b60008060008414156127555760009150612774565b828402905082848281151561276657fe5b0414151561277057fe5b8091505b5092915050565b6000818381151561278857fe5b04905092915050565b60008082840190508381101515156127a557fe5b8091505092915050565b6127b93383612860565b81600c60000160008282540192505081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612834573d6000803e3d6000fd5b5080600c600201600082825401925050819055506001600c600301600082825401925050819055505050565b60056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156128d057600080fd5b8060056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080600080612a32600b548661274090919063ffffffff16565b9250612a3c612b08565b915060148260ff16600481101515612a5057fe5b602091828204019190069054906101000a900460ff1660640360ff16612a8060648561274090919063ffffffff16565b811515612a8957fe5b049050809350505050919050565b6000635aff4cdf4211151515612aac57600080fd5b635af4c0e0421115612ac15760039050612b05565b635aecd7e0421115612ad65760029050612b05565b635ae64060421115612aeb5760019050612b05565b635ae39d5f421115612b005760009050612b05565b600090505b90565b6000612b12612a97565b90505b60038160ff16108015612b3f575060108160ff16600481101515612b3557fe5b0154600c60000154115b15612b51578080600101915050612b15565b905600a165627a7a723058206ff9947531159571875cb6d9ec9845c87028d3b45735ae33721e26ce9d6ffaa30029