From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast2.qq.com (smtpbguseast2.qq.com [54.204.34.130]) by sourceware.org (Postfix) with ESMTPS id C7C113858CD1 for ; Fri, 14 Jul 2023 12:51:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C7C113858CD1 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp82t1689339089tsx0w5e6 Received: from TABLET-POE6JQHH ( [115.44.118.116]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 14 Jul 2023 20:51:27 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: Kaqfq07k13AX0V6TpG8X29qIdqWZ32H9gRsuTPLxIP/jJTWXev9w4JQTPP5XH sfE67Gfn0C8xG8N1YqoIMgXS482ZALXfXcZIJDHkKdGSN9kdowlycMm5ePDozjt4zI+UEEI 8afwfQcpmctBiBRcTkvdoWzUnEKdBQ9VuSv4C4BKnywXsvgrNLV1yApAbdWEfrEdzEghmwS CGRtTco0D+JuCnP+DL0MTnEGuf23DWe727ocUue7zvEu5bO8qejFamOBIaAVwYFVqOQnXv8 x1URAF8WguCHYNxK/f3xqCmh5+dHLy4qyfTiHma2/g02+CWtyd++CWyQLsbedzo1gMS0E9c XFfVrLHbbaI/xE1l+5BXA6vqUYZEVuDdWstDxwQrE2qn1AA3Vqf4OnZ1NBAUbXtAExrDReg bjw51BdZsXKO8JrIc8sXfPVdNGl97gMQ X-QQ-GoodBg: 2 X-BIZMAIL-ID: 555218873507762567 Date: Fri, 14 Jul 2023 20:51:28 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: kito.cheng Cc: gcc-patches , kito.cheng , palmer , rdapp.gcc , "Jeff Law" Subject: Re: Re: [PATCH] RISC-V: Support non-SLP unordered reduction References: <20230714123038.1017670-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 787AECEB-E404-465D-B8C2-7E682A43CB5A X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <0928E5F7B75873FB+202307142051277469218@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart487115442650_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart487115442650_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 U28gdG8gYmUgc2FmZSwgSSB0aGluayBpdCBzaG91bGQgYmUgYmFja3BvcnQg dG8gR0NDIDEzIGV2ZW4gdGhvdWdoIEkgZGlkbid0IGhhdmUgYSBpbnRyaW5z aWMgdGVzdGNhc2UgdG8gcmVwcm9kdWNlIGl0Lg0KDQoNCg0KanV6aGUuemhv bmdAcml2YWkuYWkNCiANCkZyb206IEtpdG8gQ2hlbmcNCkRhdGU6IDIwMjMt MDctMTQgMjA6MzgNClRvOiDpkp/lsYXlk7INCkNDOiBHQ0MgUGF0Y2hlczsg S2l0byBDaGVuZzsgUGFsbWVyIERhYmJlbHQ7IFJvYmluIERhcHA7IEplZmYg TGF3DQpTdWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IFN1cHBvcnQgbm9u LVNMUCB1bm9yZGVyZWQgcmVkdWN0aW9uDQoNCg0KPGp1emhlLnpob25nQHJp dmFpLmFpPiDmlrwgMjAyM+W5tDfmnIgxNOaXpSDpgLHkupQgMjA6MzEg5a+r 6YGT77yaDQpGcm9tOiBKdS1aaGUgWmhvbmcgPGp1emhlLnpob25nQHJpdmFp LmFpPg0KDQpUaGlzIHBhdGNoIGFkZCByZWR1Y18qX3NjYWwgdG8gc3VwcG9y dCByZWR1Y3Rpb24gYXV0by12ZWN0b3JpemF0aW9uLg0KDQpVc2UgQ09ORF9M RU5fKiArIHJlZHVjXypfc2NhbCB0byBzdXBwb3J0IHVub3JkZXJlZCBub24t U0xQIGF1dG8tdmVjdG9yaXphdGlvbi4NCg0KQ29uc2lkZXIgdGhpcyBmb2xs b3dpbmcgY2FzZToNCmludCBfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQphbmRf bG9vcCAoaW50MzJfdCAqIF9fcmVzdHJpY3QgeCwgDQppbnQzMl90IG4sIGlu dCByZXMpDQp7DQogIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KICAg IHJlcyAmPSB4W2ldOw0KICByZXR1cm4gcmVzOw0KfQ0KDQpBU006DQphbmRf bG9vcDoNCiAgICAgICAgYmxlICAgICBhMSx6ZXJvLC5MNA0KICAgICAgICB2 c2V0dmxpIGEzLHplcm8sZTMyLG0xLHRhLG1hDQogICAgICAgIHZtdi52Lmkg djEsLTENCi5MMzoNCiAgICAgICAgdnNldHZsaSBhNSxhMSxlMzIsbTEsdHUs bWEgICAgICAgLS0tLS0tLS0tLS0tPiBNVVNUIEJFICJUVSIuDQogICAgICAg IHNsbGkgICAgYTQsYTUsMg0KICAgICAgICBzdWIgICAgIGExLGExLGE1DQog ICAgICAgIHZsZTMyLnYgdjIsMChhMCkNCiAgICAgICAgYWRkICAgICBhMCxh MCxhNA0KICAgICAgICB2YW5kLnZ2IHYxLHYyLHYxDQogICAgICAgIGJuZSAg ICAgYTEsemVybywuTDMNCiAgICAgICAgdnNldGl2bGkgICAgICAgIHplcm8s MSxlMzIsbTEsdGEsbWENCiAgICAgICAgdm12LnYuaSB2MiwtMQ0KICAgICAg ICB2c2V0dmxpIGEzLHplcm8sZTMyLG0xLHRhLG1hDQogICAgICAgIHZyZWRh bmQudnMgICAgICB2MSx2MSx2Mg0KICAgICAgICB2bXYueC5zIGE1LHYxDQog ICAgICAgIGFuZCAgICAgYTAsYTIsYTUNCiAgICAgICAgcmV0DQouTDQ6DQog ICAgICAgIG12ICAgICAgYTAsYTINCiAgICAgICAgcmV0DQoNCkZpeCBidWcg b2YgVlNFVFZMIFBBU1Mgd2hpY2ggaXMgY2F1c2VkIGJ5IHJlZHVjdGlvbiB0 ZXN0Y2FzZS4NCg0KDQpJdCdzIHBlcmZvcm1hbmNlIGJ1ZyBvciBjb3JyZWN0 bmVzcyBidWc/IERvZXMgaXQncyBhbHNvIGFwcGVhcmVkIGluIGdjYyAxMyBp ZiBpdCdzIGEgY29ycmVjdG5lc3MgYnVnPw0KDQoNClNMUCByZWR1Y3Rpb24g YW5kIGZsb2F0aW5nLXBvaW50IGluLW9yZGVyIHJlZHVjdGlvbiBhcmUgbm90 IHN1cHBvcnRlZCB5ZXQuDQoNCmdjYy9DaGFuZ2VMb2c6DQoNCiAgICAgICAg KiBjb25maWcvcmlzY3YvYXV0b3ZlYy5tZCAocmVkdWNfcGx1c19zY2FsXzxt b2RlPik6IE5ldyBwYXR0ZXJuLg0KICAgICAgICAocmVkdWNfc21heF9zY2Fs Xzxtb2RlPik6IERpdHRvLg0KICAgICAgICAocmVkdWNfdW1heF9zY2FsXzxt b2RlPik6IERpdHRvLg0KICAgICAgICAocmVkdWNfc21pbl9zY2FsXzxtb2Rl Pik6IERpdHRvLg0KICAgICAgICAocmVkdWNfdW1pbl9zY2FsXzxtb2RlPik6 IERpdHRvLg0KICAgICAgICAocmVkdWNfYW5kX3NjYWxfPG1vZGU+KTogRGl0 dG8uDQogICAgICAgIChyZWR1Y19pb3Jfc2NhbF88bW9kZT4pOiBEaXR0by4N CiAgICAgICAgKHJlZHVjX3hvcl9zY2FsXzxtb2RlPik6IERpdHRvLg0KICAg ICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCAoZW51bSBpbnNu X3R5cGUpOiBOZXcgZW51bS4NCiAgICAgICAgKGVtaXRfbm9udmxtYXhfaW50 ZWdlcl9tb3ZlX2luc24pOiBBZGQgcmVkdWN0aW9uLg0KICAgICAgICAoZXhw YW5kX3JlZHVjdGlvbik6IE5ldyBmdW5jdGlvbi4NCiAgICAgICAgKiBjb25m aWcvcmlzY3YvcmlzY3Ytdi5jYyAoZW1pdF92bG1heF9yZWR1Y3Rpb25faW5z bik6IERpdHRvLg0KICAgICAgICAoZW1pdF92bG1heF9mcF9yZWR1Y3Rpb25f aW5zbik6IERpdHRvLg0KICAgICAgICAoZ2V0X20xX21vZGUpOiBEaXR0by4N CiAgICAgICAgKGV4cGFuZF9jb25kX2xlbl9iaW5vcCk6IEZpeCBuYW1lLg0K ICAgICAgICAoZXhwYW5kX3JlZHVjdGlvbik6IE5ldyBmdW5jdGlvbi4NCiAg ICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YtdnNldHZsLmNjIChnZW5fdnNl dHZsX3BhdCk6IEZpeCBidWcuDQogICAgICAgIChjaGFuZ2VfaW5zbik6IERp dHRvLg0KICAgICAgICAoY2hhbmdlX3ZzZXR2bF9pbnNuKTogRGl0dG8uDQog ICAgICAgIChwYXNzX3ZzZXR2bDo6YmFja3dhcmRfZGVtYW5kX2Z1c2lvbik6 IERpdHRvLg0KDQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCg0KICAgICAg ICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3J2di5leHA6IEFkZCByZWR1Y3Rp b24gdGVzdHMuDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy9yZWR1Yy9yZWR1Yy0xLmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMi5jOiBO ZXcgdGVzdC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3JlZHVjL3JlZHVjLTMuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy00LmM6IE5l dyB0ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvcmVkdWMvcmVkdWNfcnVuLTEuYzogTmV3IHRlc3QuDQogICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4t Mi5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1bi0zLmM6IE5ldyB0ZXN0Lg0KICAg ICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVk dWNfcnVuLTQuYzogTmV3IHRlc3QuDQoNCi0tLQ0KIGdjYy9jb25maWcvcmlz Y3YvYXV0b3ZlYy5tZCAgICAgICAgICAgICAgICAgICB8IDEzOCArKysrKysr KysrKysrKysrKysNCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5o ICAgICAgICAgICAgICAgfCAgIDMgKw0KIGdjYy9jb25maWcvcmlzY3Yvcmlz Y3Ytdi5jYyAgICAgICAgICAgICAgICAgICB8ICA4NCArKysrKysrKysrLQ0K IGdjYy9jb25maWcvcmlzY3YvcmlzY3YtdnNldHZsLmNjICAgICAgICAgICAg ICB8ICAyOCArKystDQogLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3Jl ZHVjLTEuYyAgICAgICAgIHwgMTE4ICsrKysrKysrKysrKysrKw0KIC4uLi9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0yLmMgICAgICAgICB8IDEy OSArKysrKysrKysrKysrKysrDQogLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3Jl ZHVjL3JlZHVjLTMuYyAgICAgICAgIHwgIDY1ICsrKysrKysrKw0KIC4uLi9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy00LmMgICAgICAgICB8ICA1 OSArKysrKysrKw0KIC4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1 Y19ydW4tMS5jICAgICB8ICA1NiArKysrKysrDQogLi4uL3Jpc2N2L3J2di9h dXRvdmVjL3JlZHVjL3JlZHVjX3J1bi0yLmMgICAgIHwgIDc5ICsrKysrKysr KysNCiAuLi4vcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTMu YyAgICAgfCAgNDkgKysrKysrKw0KIC4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9y ZWR1Yy9yZWR1Y19ydW4tNC5jICAgICB8ICA2NiArKysrKysrKysNCiBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3J2di5leHAgICAgfCAg IDIgKw0KIDEzIGZpbGVzIGNoYW5nZWQsIDg2OCBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMt MS5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0yLmMNCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTMuYw0KIGNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvcmVkdWMvcmVkdWMtNC5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9y ZWR1Y19ydW4tMS5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19y dW4tMi5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tMy5j DQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tNC5jDQoNCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L2F1dG92ZWMubWQgYi9nY2Mv Y29uZmlnL3Jpc2N2L2F1dG92ZWMubWQNCmluZGV4IDA0NzZiMWRlYTQ1Li5h NzRmNjZmNDFhYyAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvYXV0 b3ZlYy5tZA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9hdXRvdmVjLm1kDQpA QCAtMTUzMSwzICsxNTMxLDE0MSBAQA0KICAgcmlzY3ZfdmVjdG9yOjpleHBh bmRfY29uZF9sZW5fYmlub3AgKDxDT0RFPiwgb3BlcmFuZHMpOw0KICAgRE9O RTsNCiB9KQ0KKw0KKzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cis7OyA9PSBSZWR1Y3Rpb25zDQorOzsgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KKw0KKzs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cis7OyAtLS0tIFtJTlRdIFRyZWUgcmVkdWN0aW9ucw0KKzs7IC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCis7OyBJbmNsdWRlczoNCis7OyAtIHZy ZWRzdW0udnMNCis7OyAtIHZyZWRtYXh1LnZzDQorOzsgLSB2cmVkbWF4LnZz DQorOzsgLSB2cmVkbWludS52cw0KKzs7IC0gdnJlZG1pbi52cw0KKzs7IC0g dnJlZGFuZC52cw0KKzs7IC0gdnJlZG9yLnZzDQorOzsgLSB2cmVkeG9yLnZz DQorOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KKyhkZWZp bmVfZXhwYW5kICJyZWR1Y19wbHVzX3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRj aF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgICht YXRjaF9vcGVyYW5kOlZJIDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisgICJU QVJHRVRfVkVDVE9SIg0KK3sNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3Jl ZHVjdGlvbiAoUExVUywgb3BlcmFuZHMsIENPTlNUMF9SVFggKDxWRUw+bW9k ZSkpOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJyZWR1 Y19zbWF4X3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRjaF9vcGVyYW5kOjxWRUw+ IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZJ IDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisgICJUQVJHRVRfVkVDVE9SIg0K K3sNCisgIGludCBwcmVjID0gR0VUX01PREVfUFJFQ0lTSU9OICg8VkVMPm1v ZGUpOw0KKyAgcnR4IG1pbiA9IGltbWVkX3dpZGVfaW50X2NvbnN0ICh3aTo6 bWluX3ZhbHVlIChwcmVjLCBTSUdORUQpLCA8VkVMPm1vZGUpOw0KKyAgcmlz Y3ZfdmVjdG9yOjpleHBhbmRfcmVkdWN0aW9uIChTTUFYLCBvcGVyYW5kcywg bWluKTsNCisgIERPTkU7DQorfSkNCisNCisoZGVmaW5lX2V4cGFuZCAicmVk dWNfdW1heF9zY2FsXzxtb2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVM PiAwICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpW SSAxICJyZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiIN Cit7DQorICByaXNjdl92ZWN0b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKFVNQVgs IG9wZXJhbmRzLCBDT05TVDBfUlRYICg8VkVMPm1vZGUpKTsNCisgIERPTkU7 DQorfSkNCisNCisoZGVmaW5lX2V4cGFuZCAicmVkdWNfc21pbl9zY2FsXzxt b2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9v cGVyYW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpWSSAxICJyZWdpc3Rlcl9v cGVyYW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiINCit7DQorICBpbnQgcHJl YyA9IEdFVF9NT0RFX1BSRUNJU0lPTiAoPFZFTD5tb2RlKTsNCisgIHJ0eCBt YXggPSBpbW1lZF93aWRlX2ludF9jb25zdCAod2k6Om1heF92YWx1ZSAocHJl YywgU0lHTkVEKSwgPFZFTD5tb2RlKTsNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhw YW5kX3JlZHVjdGlvbiAoU01JTiwgb3BlcmFuZHMsIG1heCk7DQorICBET05F Ow0KK30pDQorDQorKGRlZmluZV9leHBhbmQgInJlZHVjX3VtaW5fc2NhbF88 bW9kZT4iDQorICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJf b3BlcmFuZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJf b3BlcmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQorew0KKyAgaW50IHBy ZWMgPSBHRVRfTU9ERV9QUkVDSVNJT04gKDxWRUw+bW9kZSk7DQorICBydHgg bWF4ID0gaW1tZWRfd2lkZV9pbnRfY29uc3QgKHdpOjptYXhfdmFsdWUgKHBy ZWMsIFVOU0lHTkVEKSwgPFZFTD5tb2RlKTsNCisgIHJpc2N2X3ZlY3Rvcjo6 ZXhwYW5kX3JlZHVjdGlvbiAoVU1JTiwgb3BlcmFuZHMsIG1heCk7DQorICBE T05FOw0KK30pDQorDQorKGRlZmluZV9leHBhbmQgInJlZHVjX2FuZF9zY2Fs Xzxtb2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rl cl9vcGVyYW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpWSSAxICJyZWdpc3Rl cl9vcGVyYW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiINCit7DQorICByaXNj dl92ZWN0b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKEFORCwgb3BlcmFuZHMsIENP TlNUTTFfUlRYICg8VkVMPm1vZGUpKTsNCisgIERPTkU7DQorfSkNCisNCiso ZGVmaW5lX2V4cGFuZCAicmVkdWNfaW9yX3NjYWxfPG1vZGU+Ig0KKyAgWyht YXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAg IChtYXRjaF9vcGVyYW5kOlZJIDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisg ICJUQVJHRVRfVkVDVE9SIg0KK3sNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5k X3JlZHVjdGlvbiAoSU9SLCBvcGVyYW5kcywgQ09OU1QwX1JUWCAoPFZFTD5t b2RlKSk7DQorICBET05FOw0KK30pDQorDQorKGRlZmluZV9leHBhbmQgInJl ZHVjX3hvcl9zY2FsXzxtb2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVM PiAwICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpW SSAxICJyZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiIN Cit7DQorICByaXNjdl92ZWN0b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKFhPUiwg b3BlcmFuZHMsIENPTlNUMF9SVFggKDxWRUw+bW9kZSkpOw0KKyAgRE9ORTsN Cit9KQ0KKw0KKzs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCis7 OyAtLS0tIFtGUF0gVHJlZSByZWR1Y3Rpb25zDQorOzsgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KKzs7IEluY2x1ZGVzOg0KKzs7IC0gdmZyZWR1 c3VtLnZzDQorOzsgLSB2ZnJlZG1heC52cw0KKzs7IC0gdmZyZWRtaW4udnMN Cis7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorDQorKGRlZmlu ZV9leHBhbmQgInJlZHVjX3BsdXNfc2NhbF88bW9kZT4iDQorICBbKG1hdGNo X29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgKG1h dGNoX29wZXJhbmQ6VkYgMSAicmVnaXN0ZXJfb3BlcmFuZCIpXQ0KKyAgIlRB UkdFVF9WRUNUT1IiDQorew0KKyAgcmlzY3ZfdmVjdG9yOjpleHBhbmRfcmVk dWN0aW9uIChQTFVTLCBvcGVyYW5kcywgQ09OU1QwX1JUWCAoPFZFTD5tb2Rl KSk7DQorICBET05FOw0KK30pDQorDQorKGRlZmluZV9leHBhbmQgInJlZHVj X3NtYXhfc2NhbF88bW9kZT4iDQorICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4g MCAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkYg MSAicmVnaXN0ZXJfb3BlcmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQor ew0KKyAgUkVBTF9WQUxVRV9UWVBFIHJ2Ow0KKyAgcmVhbF9pbmYgKCZydiwg dHJ1ZSk7DQorICBydHggZiA9IGNvbnN0X2RvdWJsZV9mcm9tX3JlYWxfdmFs dWUgKHJ2LCA8VkVMPm1vZGUpOw0KKyAgcmlzY3ZfdmVjdG9yOjpleHBhbmRf cmVkdWN0aW9uIChTTUFYLCBvcGVyYW5kcywgZik7DQorICBET05FOw0KK30p DQorDQorKGRlZmluZV9leHBhbmQgInJlZHVjX3NtaW5fc2NhbF88bW9kZT4i DQorICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFu ZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkYgMSAicmVnaXN0ZXJfb3BlcmFu ZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQorew0KKyAgUkVBTF9WQUxVRV9U WVBFIHJ2Ow0KKyAgcmVhbF9pbmYgKCZydiwgZmFsc2UpOw0KKyAgcnR4IGYg PSBjb25zdF9kb3VibGVfZnJvbV9yZWFsX3ZhbHVlIChydiwgPFZFTD5tb2Rl KTsNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3JlZHVjdGlvbiAoU01JTiwg b3BlcmFuZHMsIGYpOw0KKyAgRE9ORTsNCit9KQ0KZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXByb3Rvcy5oDQppbmRleCAxYTYyMmM1OGY0Yi4uZjE5Yjdm YzJiOGQgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXBy b3Rvcy5oDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5o DQpAQCAtMTk3LDYgKzE5Nyw3IEBAIGVudW0gaW5zbl90eXBlDQogICBSVlZf Q09NUFJFU1NfT1AgPSA0LA0KICAgUlZWX0dBVEhFUl9NX09QID0gNSwNCiAg IFJWVl9TQ0FUVEVSX01fT1AgPSA0LA0KKyAgUlZWX1JFRFVDVElPTl9PUCA9 IDMsDQogfTsNCiBlbnVtIHZsbXVsX3R5cGUNCiB7DQpAQCAtMjQ3LDYgKzI0 OCw3IEBAIHZvaWQgZW1pdF92bG1heF9jbXBfbXVfaW5zbiAodW5zaWduZWQs IHJ0eCAqKTsNCiB2b2lkIGVtaXRfdmxtYXhfbWFza2VkX211X2luc24gKHVu c2lnbmVkLCBpbnQsIHJ0eCAqKTsNCiB2b2lkIGVtaXRfc2NhbGFyX21vdmVf aW5zbiAodW5zaWduZWQsIHJ0eCAqKTsNCiB2b2lkIGVtaXRfbm9udmxtYXhf aW50ZWdlcl9tb3ZlX2luc24gKHVuc2lnbmVkLCBydHggKiwgcnR4KTsNCisv L3ZvaWQgZW1pdF92bG1heF9yZWR1Y3Rpb25faW5zbiAodW5zaWduZWQsIHJ0 eCAqKTsNCiBlbnVtIHZsbXVsX3R5cGUgZ2V0X3ZsbXVsIChtYWNoaW5lX21v ZGUpOw0KIHVuc2lnbmVkIGludCBnZXRfcmF0aW8gKG1hY2hpbmVfbW9kZSk7 DQogdW5zaWduZWQgaW50IGdldF9uZiAobWFjaGluZV9tb2RlKTsNCkBAIC0y ODAsNiArMjgyLDcgQEAgYm9vbCBoYXNfdmlfdmFyaWFudF9wIChydHhfY29k ZSwgcnR4KTsNCiB2b2lkIGV4cGFuZF92ZWNfY21wIChydHgsIHJ0eF9jb2Rl LCBydHgsIHJ0eCk7DQogYm9vbCBleHBhbmRfdmVjX2NtcF9mbG9hdCAocnR4 LCBydHhfY29kZSwgcnR4LCBydHgsIGJvb2wpOw0KIHZvaWQgZXhwYW5kX2Nv bmRfbGVuX2Jpbm9wIChydHhfY29kZSwgcnR4ICopOw0KK3ZvaWQgZXhwYW5k X3JlZHVjdGlvbiAocnR4X2NvZGUsIHJ0eCAqLCBydHgpOw0KICNlbmRpZg0K IGJvb2wgc2V3NjRfc2NhbGFyX2hlbHBlciAocnR4ICosIHJ0eCAqLCBydHgs IG1hY2hpbmVfbW9kZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCwgdm9pZCAoKikocnR4ICosIHJ0eCkpOw0KZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvcmlzY3Ytdi5jYyBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3Ytdi5jYw0KaW5kZXggOTBkYTYzODg5YmQuLmNjZjBmNmZmODUyIDEwMDY0 NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12LmNjDQorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MNCkBAIC0xMTM3LDYgKzExMzcs NDMgQEAgZW1pdF92bG1heF9jb21wcmVzc19pbnNuICh1bnNpZ25lZCBpY29k ZSwgcnR4ICpvcHMpDQogICBlLmVtaXRfaW5zbiAoKGVudW0gaW5zbl9jb2Rl KSBpY29kZSwgb3BzKTsNCiB9DQoNCisvKiBFbWl0IHJlZHVjdGlvbiBpbnN0 cnVjdGlvbi4gICovDQorc3RhdGljIHZvaWQNCitlbWl0X3ZsbWF4X3JlZHVj dGlvbl9pbnNuICh1bnNpZ25lZCBpY29kZSwgaW50IG9wX251bSwgcnR4ICpv cHMpDQorew0KKyAgbWFjaGluZV9tb2RlIGRlc3RfbW9kZSA9IEdFVF9NT0RF IChvcHNbMF0pOw0KKyAgbWFjaGluZV9tb2RlIG1hc2tfbW9kZSA9IGdldF9t YXNrX21vZGUgKEdFVF9NT0RFIChvcHNbMV0pKS5yZXF1aXJlICgpOw0KKyAg aW5zbl9leHBhbmRlcjxSVlZfSU5TTl9PUEVSQU5EU19NQVg+IGUgKG9wX251 bSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIEhBU19ERVNUX1AgKi8gdHJ1ZSwNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIEZVTExZX1VOTUFTS0VEX1AgKi8g dHJ1ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIFVTRV9SRUFMX01FUkdFX1AgKi8gZmFsc2UsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBIQVNfQVZMX1Ag Ki8gdHJ1ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFZMTUFYX1AgKi8gdHJ1ZSwgZGVzdF9tb2RlLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza19tb2Rl KTsNCisNCisgIGUuc2V0X3BvbGljeSAoVEFJTF9BTlkpOw0KKyAgZS5lbWl0 X2luc24gKChlbnVtIGluc25fY29kZSkgaWNvZGUsIG9wcyk7DQorfQ0KKw0K Ky8qIEVtaXQgcmVkdWN0aW9uIGluc3RydWN0aW9uLiAgKi8NCitzdGF0aWMg dm9pZA0KK2VtaXRfdmxtYXhfZnBfcmVkdWN0aW9uX2luc24gKHVuc2lnbmVk IGljb2RlLCBpbnQgb3BfbnVtLCBydHggKm9wcykNCit7DQorICBtYWNoaW5l X21vZGUgZGVzdF9tb2RlID0gR0VUX01PREUgKG9wc1swXSk7DQorICBtYWNo aW5lX21vZGUgbWFza19tb2RlID0gZ2V0X21hc2tfbW9kZSAoR0VUX01PREUg KG9wc1sxXSkpLnJlcXVpcmUgKCk7DQorICBpbnNuX2V4cGFuZGVyPFJWVl9J TlNOX09QRVJBTkRTX01BWD4gZSAob3BfbnVtLA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSEFTX0RFU1RfUCAqLyB0 cnVlLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogRlVMTFlfVU5NQVNLRURfUCAqLyB0cnVlLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNFX1JFQUxfTUVS R0VfUCAqLyBmYWxzZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIEhBU19BVkxfUCAqLyB0cnVlLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVkxNQVhfUCAq LyB0cnVlLCBkZXN0X21vZGUsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtYXNrX21vZGUpOw0KKw0KKyAgZS5zZXRfcG9s aWN5IChUQUlMX0FOWSk7DQorICBlLnNldF9yb3VuZGluZ19tb2RlIChGUk1f RFlOKTsNCisgIGUuZW1pdF9pbnNuICgoZW51bSBpbnNuX2NvZGUpIGljb2Rl LCBvcHMpOw0KK30NCisNCiAvKiBFbWl0IG1lcmdlIGluc3RydWN0aW9uLiAg Ki8NCg0KIHN0YXRpYyBtYWNoaW5lX21vZGUNCkBAIC0xNjI5LDYgKzE2NjYs MTcgQEAgZ2V0X21hc2tfbW9kZSAobWFjaGluZV9tb2RlIG1vZGUpDQogICBy ZXR1cm4gZ2V0X3ZlY3Rvcl9tb2RlIChCSW1vZGUsIEdFVF9NT0RFX05VTklU UyAobW9kZSkpOw0KIH0NCg0KKy8qIFJldHVybiB0aGUgYXBwcm9wcmlhdGUg TTEgbW9kZSBmb3IgTU9ERS4gICovDQorDQorc3RhdGljIG9wdF9tYWNoaW5l X21vZGUNCitnZXRfbTFfbW9kZSAobWFjaGluZV9tb2RlIG1vZGUpDQorew0K KyAgc2NhbGFyX21vZGUgc21vZGUgPSBHRVRfTU9ERV9JTk5FUiAobW9kZSk7 DQorICB1bnNpZ25lZCBpbnQgYnl0ZXMgPSBHRVRfTU9ERV9TSVpFIChzbW9k ZSk7DQorICBwb2x5X3VpbnQ2NCBtMV9udW5pdHMgPSBleGFjdF9kaXYgKEJZ VEVTX1BFUl9SSVNDVl9WRUNUT1IsIGJ5dGVzKTsNCisgIHJldHVybiBnZXRf dmVjdG9yX21vZGUgKHNtb2RlLCBtMV9udW5pdHMpOw0KK30NCisNCiAvKiBS ZXR1cm4gdGhlIFJWViB2ZWN0b3IgbW9kZSB0aGF0IGhhcyBOVU5JVFMgZWxl bWVudHMgb2YgbW9kZSBJTk5FUl9NT0RFLg0KICAgIFRoaXMgZnVuY3Rpb24g aXMgbm90IG9ubHkgdXNlZCBieSBidWlsdGlucywgYnV0IGFsc28gd2lsbCBi ZSB1c2VkIGJ5DQogICAgYXV0by12ZWN0b3JpemF0aW9uIGluIHRoZSBmdXR1 cmUuICAqLw0KQEAgLTMwOTksOSArMzE0Nyw5IEBAIGV4cGFuZF9jb25kX2xl bl9iaW5vcCAocnR4X2NvZGUgY29kZSwgcnR4ICpvcHMpDQogICAgICAgcnR4 IG9wc1tdID0ge2Rlc3QsIG1hc2ssIG1lcmdlLCBzcmMxLCBzcmMyfTsNCiAg ICAgICBpbnNuX2NvZGUgaWNvZGUgPSBjb2RlX2Zvcl9wcmVkIChjb2RlLCBt b2RlKTsNCiAgICAgICBpZiAobmVlZHNfZnBfcm91bmRpbmcgKGNvZGUsIG1v ZGUpKQ0KLSAgICAgICBlbWl0X25vbnZsbWF4X2ZwX3R1X2luc24gKGljb2Rl LCBSVlZfQklOT1BfTVUsIG9wcywgbGVuKTsNCisgICAgICAgZW1pdF9ub252 bG1heF9mcF90dV9pbnNuIChpY29kZSwgUlZWX0JJTk9QX1RVLCBvcHMsIGxl bik7DQogICAgICAgZWxzZQ0KLSAgICAgICBlbWl0X25vbnZsbWF4X3R1X2lu c24gKGljb2RlLCBSVlZfQklOT1BfTVUsIG9wcywgbGVuKTsNCisgICAgICAg ZW1pdF9ub252bG1heF90dV9pbnNuIChpY29kZSwgUlZWX0JJTk9QX1RVLCBv cHMsIGxlbik7DQogICAgIH0NCiAgIGVsc2UNCiAgICAgLyogRklYTUU6IEVu YWJsZSB0aGlzIGNhc2Ugd2hlbiB3ZSBzdXBwb3J0IGl0IGluIHRoZSBtaWRk bGUtZW5kLiAgKi8NCkBAIC0zMjY3LDQgKzMzMTUsMzYgQEAgZXhwYW5kX2dh dGhlcl9zY2F0dGVyIChydHggKm9wcywgYm9vbCBpc19sb2FkKQ0KICAgICB9 DQogfQ0KDQorLyogRXhwYW5kIHJlZHVjdGlvbiBvcGVyYXRpb25zLiAgKi8N Cit2b2lkDQorZXhwYW5kX3JlZHVjdGlvbiAocnR4X2NvZGUgY29kZSwgcnR4 ICpvcHMsIHJ0eCBpbml0KQ0KK3sNCisgIG1hY2hpbmVfbW9kZSB2bW9kZSA9 IEdFVF9NT0RFIChvcHNbMV0pOw0KKyAgbWFjaGluZV9tb2RlIG0xX21vZGUg PSBnZXRfbTFfbW9kZSAodm1vZGUpLnJlcXVpcmUgKCk7DQorICBtYWNoaW5l X21vZGUgbTFfbW1vZGUgPSBnZXRfbWFza19tb2RlIChtMV9tb2RlKS5yZXF1 aXJlICgpOw0KKw0KKyAgcnR4IG0xX3RtcCA9IGdlbl9yZWdfcnR4IChtMV9t b2RlKTsNCisgIHJ0eCBtMV9tYXNrID0gZ2VuX3NjYWxhcl9tb3ZlX21hc2sg KG0xX21tb2RlKTsNCisgIHJ0eCBtMV91bmRlZiA9IFJWVl9WVU5ERUYgKG0x X21vZGUpOw0KKyAgcnR4IHNjYWxhcl9tb3ZlX29wc1tdID0ge20xX3RtcCwg bTFfbWFzaywgbTFfdW5kZWYsIGluaXR9Ow0KKyAgZW1pdF9zY2FsYXJfbW92 ZV9pbnNuIChjb2RlX2Zvcl9wcmVkX2Jyb2FkY2FzdCAobTFfbW9kZSksIHNj YWxhcl9tb3ZlX29wcyk7DQorDQorICBydHggbTFfdG1wMiA9IGdlbl9yZWdf cnR4IChtMV9tb2RlKTsNCisgIHJ0eCByZWR1Y19vcHNbXSA9IHttMV90bXAy LCBvcHNbMV0sIG0xX3RtcH07DQorDQorICBpZiAoRkxPQVRfTU9ERV9QICh2 bW9kZSkgJiYgY29kZSA9PSBQTFVTKQ0KKyAgICB7DQorICAgICAgaW5zbl9j b2RlIGljb2RlDQorICAgICAgID0gY29kZV9mb3JfcHJlZF9yZWR1Y19wbHVz IChVTlNQRUNfVU5PUkRFUkVELCB2bW9kZSwgbTFfbW9kZSk7DQorICAgICAg ZW1pdF92bG1heF9mcF9yZWR1Y3Rpb25faW5zbiAoaWNvZGUsIFJWVl9SRURV Q1RJT05fT1AsIHJlZHVjX29wcyk7DQorICAgIH0NCisgIGVsc2UNCisgICAg ew0KKyAgICAgIGluc25fY29kZSBpY29kZSA9IGNvZGVfZm9yX3ByZWRfcmVk dWMgKGNvZGUsIHZtb2RlLCBtMV9tb2RlKTsNCisgICAgICBlbWl0X3ZsbWF4 X3JlZHVjdGlvbl9pbnNuIChpY29kZSwgUlZWX1JFRFVDVElPTl9PUCwgcmVk dWNfb3BzKTsNCisgICAgfQ0KKw0KKyAgZW1pdF9pbnNuIChnZW5fcHJlZF9l eHRyYWN0X2ZpcnN0IChtMV9tb2RlLCBvcHNbMF0sIG0xX3RtcDIpKTsNCit9 DQorDQogfSAvLyBuYW1lc3BhY2UgcmlzY3ZfdmVjdG9yDQpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwuY2MgYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2bC5jYw0KaW5kZXggNTg2ZGM4ZTUzNzku Ljk3YTlkYWQ4YTc3IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12c2V0dmwuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dnNldHZsLmNjDQpAQCAtNjQ2LDcgKzY0Niw4IEBAIGdlbl92c2V0dmxfcGF0 IChlbnVtIHZzZXR2bF90eXBlIGluc25fdHlwZSwgY29uc3QgdmxfdnR5cGVf aW5mbyAmaW5mbywgcnR4IHZsKQ0KIH0NCg0KIHN0YXRpYyBydHgNCi1nZW5f dnNldHZsX3BhdCAocnR4X2luc24gKnJpbnNuLCBjb25zdCB2ZWN0b3JfaW5z bl9pbmZvICZpbmZvKQ0KK2dlbl92c2V0dmxfcGF0IChydHhfaW5zbiAqcmlu c24sIGNvbnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8sDQorICAgICAgICAg ICAgICAgcnR4IHZsID0gTlVMTF9SVFgpDQogew0KICAgcnR4IG5ld19wYXQ7 DQogICB2bF92dHlwZV9pbmZvIG5ld19pbmZvID0gaW5mbzsNCkBAIC02NTcs NyArNjU4LDcgQEAgZ2VuX3ZzZXR2bF9wYXQgKHJ0eF9pbnNuICpyaW5zbiwg Y29uc3QgdmVjdG9yX2luc25faW5mbyAmaW5mbykNCiAgIGlmICh2c2V0dmxf aW5zbl9wIChyaW5zbikgfHwgdmxtYXhfYXZsX3AgKGluZm8uZ2V0X2F2bCAo KSkpDQogICAgIHsNCiAgICAgICBydHggZGVzdCA9IGdldF92bCAocmluc24p Ow0KLSAgICAgIG5ld19wYXQgPSBnZW5fdnNldHZsX3BhdCAoVlNFVFZMX05P Uk1BTCwgbmV3X2luZm8sIGRlc3QpOw0KKyAgICAgIG5ld19wYXQgPSBnZW5f dnNldHZsX3BhdCAoVlNFVFZMX05PUk1BTCwgbmV3X2luZm8sIHZsID8gdmwg OiBkZXN0KTsNCiAgICAgfQ0KICAgZWxzZSBpZiAoSU5TTl9DT0RFIChyaW5z bikgPT0gQ09ERV9GT1JfdnNldHZsX3Z0eXBlX2NoYW5nZV9vbmx5KQ0KICAg ICBuZXdfcGF0ID0gZ2VuX3ZzZXR2bF9wYXQgKFZTRVRWTF9WVFlQRV9DSEFO R0VfT05MWSwgbmV3X2luZm8sIE5VTExfUlRYKTsNCkBAIC04MTgsNyArODE5 LDggQEAgY2hhbmdlX2luc24gKHJ0eF9pbnNuICpyaW5zbiwgcnR4IG5ld19w YXQpDQogICAgICAgcHJpbnRfcnRsX3NpbmdsZSAoZHVtcF9maWxlLCBQQVRU RVJOIChyaW5zbikpOw0KICAgICB9DQoNCi0gIHZhbGlkYXRlX2NoYW5nZSAo cmluc24sICZQQVRURVJOIChyaW5zbiksIG5ld19wYXQsIGZhbHNlKTsNCisg IGJvb2wgY2hhbmdlX3AgPSB2YWxpZGF0ZV9jaGFuZ2UgKHJpbnNuLCAmUEFU VEVSTiAocmluc24pLCBuZXdfcGF0LCBmYWxzZSk7DQorICBnY2NfYXNzZXJ0 IChjaGFuZ2VfcCk7DQoNCiAgIGlmIChkdW1wX2ZpbGUpDQogICAgIHsNCkBA IC05MzEsNyArOTMzLDggQEAgY2hhbmdlX2luc24gKGZ1bmN0aW9uX2luZm8g KnNzYSwgaW5zbl9jaGFuZ2UgY2hhbmdlLCBpbnNuX2luZm8gKmluc24sDQog fQ0KDQogc3RhdGljIHZvaWQNCi1jaGFuZ2VfdnNldHZsX2luc24gKGNvbnN0 IGluc25faW5mbyAqaW5zbiwgY29uc3QgdmVjdG9yX2luc25faW5mbyAmaW5m bykNCitjaGFuZ2VfdnNldHZsX2luc24gKGNvbnN0IGluc25faW5mbyAqaW5z biwgY29uc3QgdmVjdG9yX2luc25faW5mbyAmaW5mbywNCisgICAgICAgICAg ICAgICAgICAgcnR4IHZsID0gTlVMTF9SVFgpDQogew0KICAgcnR4X2luc24g KnJpbnNuOw0KICAgaWYgKHZlY3Rvcl9jb25maWdfaW5zbl9wIChpbnNuLT5y dGwgKCkpKQ0KQEAgLTk0NSw3ICs5NDgsNyBAQCBjaGFuZ2VfdnNldHZsX2lu c24gKGNvbnN0IGluc25faW5mbyAqaW5zbiwgY29uc3QgdmVjdG9yX2luc25f aW5mbyAmaW5mbykNCiAgICAgICByaW5zbiA9IFBSRVZfSU5TTiAoaW5zbi0+ cnRsICgpKTsNCiAgICAgICBnY2NfYXNzZXJ0ICh2ZWN0b3JfY29uZmlnX2lu c25fcCAocmluc24pKTsNCiAgICAgfQ0KLSAgcnR4IG5ld19wYXQgPSBnZW5f dnNldHZsX3BhdCAocmluc24sIGluZm8pOw0KKyAgcnR4IG5ld19wYXQgPSBn ZW5fdnNldHZsX3BhdCAocmluc24sIGluZm8sIHZsKTsNCiAgIGNoYW5nZV9p bnNuIChyaW5zbiwgbmV3X3BhdCk7DQogfQ0KDQpAQCAtMzM3Nyw3ICszMzgw LDIwIEBAIHBhc3NfdnNldHZsOjpiYWNrd2FyZF9kZW1hbmRfZnVzaW9uICh2 b2lkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmV3X2luZm8pKQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KDQotICAg ICAgICAgICAgIGNoYW5nZV92c2V0dmxfaW5zbiAobmV3X2luZm8uZ2V0X2lu c24gKCksIG5ld19pbmZvKTsNCisgICAgICAgICAgICAgcnR4IHZsID0gTlVM TF9SVFg7DQorICAgICAgICAgICAgIC8qIEJhY2t3YXJkIFZMTUFYIFZMOg0K KyAgICAgICAgICAgICAgICAgIGJiIDM6DQorICAgICAgICAgICAgICAgICAg ICB2c2V0aXZsaSB6ZXJvLCAxIC4uLiAtPiB2c2V0dmxpIHQxLCB6ZXJvDQor ICAgICAgICAgICAgICAgICAgICB2bXYucy54DQorICAgICAgICAgICAgICAg ICAgYmIgNToNCisgICAgICAgICAgICAgICAgICAgIHZzZXR2bGkgdDEsIHpl cm8gLi4uIC0+IHRvIGJlIGVsaWRlZC4NCisgICAgICAgICAgICAgICAgICAg IHZsc2UxNi52DQorDQorICAgICAgICAgICAgICAgICAgV2Ugc2hvdWxkIGZv cndhcmQgInQxIi4gICovDQorICAgICAgICAgICAgIGlmICghYmxvY2tfaW5m by5yZWFjaGluZ19vdXQuaGFzX2F2bF9yZWcgKCkNCisgICAgICAgICAgICAg ICAgICYmIHZsbWF4X2F2bF9wIChuZXdfaW5mby5nZXRfYXZsICgpKSkNCisg ICAgICAgICAgICAgICB2bCA9IGdldF92bCAocHJvcC5nZXRfaW5zbiAoKS0+ cnRsICgpKTsNCisgICAgICAgICAgICAgY2hhbmdlX3ZzZXR2bF9pbnNuIChu ZXdfaW5mby5nZXRfaW5zbiAoKSwgbmV3X2luZm8sIHZsKTsNCiAgICAgICAg ICAgICAgaWYgKGJsb2NrX2luZm8ubG9jYWxfZGVtID09IGJsb2NrX2luZm8u cmVhY2hpbmdfb3V0KQ0KICAgICAgICAgICAgICAgIGJsb2NrX2luZm8ubG9j YWxfZGVtID0gbmV3X2luZm87DQogICAgICAgICAgICAgIGJsb2NrX2luZm8u cmVhY2hpbmdfb3V0ID0gbmV3X2luZm87DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3Jl ZHVjLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YXV0b3ZlYy9yZWR1Yy9yZWR1Yy0xLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uMGQ1NDNhZjEzY2ENCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YXV0b3ZlYy9yZWR1Yy9yZWR1Yy0xLmMNCkBAIC0wLDAgKzEsMTE4IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLWFkZGl0aW9uYWwt b3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3ZfenZmaCAtbWFiaT1pbHAzMmQgLS1w YXJhbT1yaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZmYXN0 LW1hdGggLWZuby12ZWN0LWNvc3QtbW9kZWwiIH0gKi8NCisNCisjaW5jbHVk ZSA8c3RkaW50LWdjYy5oPg0KKw0KKyNkZWZpbmUgREVGX1JFRFVDX1BMVVMo VFlQRSkgICAgICAgICAgICAgICAgICAgXA0KK1RZUEUgX19hdHRyaWJ1dGVf XyAoKG5vaW5saW5lLCBub2Nsb25lKSkgICAgICAgXA0KK3JlZHVjX3BsdXNf IyNUWVBFIChUWVBFICphLCBpbnQgbikgICAgICAgICAgICAgXA0KK3sgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgVFlQRSByID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpICAgICAgICAg ICAgICAgICAgXA0KKyAgICByICs9IGFbaV07ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgcmV0dXJuIHI7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KK30NCisNCisjZGVmaW5lIFRFU1Rf UExVUyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGlu dDhfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IFQgKGludDE2X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIFQgKGludDMyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKGludDY0X3QpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4X3QpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90KSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQzMl90KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ2 NF90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KF9GbG9hdDE2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIFQgKGZsb2F0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKGRvdWJsZSkNCisNCitURVNUX1BMVVMgKERFRl9SRURV Q19QTFVTKQ0KKw0KKyNkZWZpbmUgREVGX1JFRFVDX01BWE1JTihUWVBFLCBO QU1FLCBDTVBfT1ApICAgXA0KK1RZUEUgX19hdHRyaWJ1dGVfXyAoKG5vaW5s aW5lLCBub2Nsb25lKSkgICAgICAgXA0KK3JlZHVjXyMjTkFNRSMjXyMjVFlQ RSAoVFlQRSAqYSwgaW50IG4pICAgICAgICAgXA0KK3sgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVFlQRSBy ID0gMTM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpICAgICAgICAgICAgICAgICAg XA0KKyAgICByID0gYVtpXSBDTVBfT1AgciA/IGFbaV0gOiByOyAgICAgICAg ICAgICAgXA0KKyAgcmV0dXJuIHI7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KK30NCisNCisjZGVmaW5lIFRFU1RfTUFYTUlOKFQp ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDhfdCwgbWF4 LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDE2 X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KGludDMyX3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIFQgKGludDY0X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKHVpbnQ4X3QsIG1heCwgPikgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90LCBtYXgsID4pICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQzMl90LCBtYXgsID4pICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ2NF90LCBtYXgs ID4pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKF9GbG9hdDE2 LCBtYXgsID4pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGZs b2F0LCBtYXgsID4pICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IFQgKGRvdWJsZSwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKGludDhfdCwgbWluLCA8KSAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIFQgKGludDE2X3QsIG1pbiwgPCkgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDMyX3QsIG1pbiwgPCkg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDY0X3QsIG1p biwgPCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ4 X3QsIG1pbiwgPCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KHVpbnQxNl90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIFQgKHVpbnQzMl90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKHVpbnQ2NF90LCBtaW4sIDwpICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIFQgKF9GbG9hdDE2LCBtaW4sIDwpICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIFQgKGZsb2F0LCBtaW4sIDwpICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGRvdWJsZSwgbWluLCA8 KQ0KKw0KK1RFU1RfTUFYTUlOIChERUZfUkVEVUNfTUFYTUlOKQ0KKw0KKyNk ZWZpbmUgREVGX1JFRFVDX0JJVFdJU0UoVFlQRSwgTkFNRSwgQklUX09QKSAg XA0KK1RZUEUgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lLCBub2Nsb25lKSkg ICAgICAgXA0KK3JlZHVjXyMjTkFNRSMjXyMjVFlQRSAoVFlQRSAqYSwgaW50 IG4pICAgICAgICAgXA0KK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVFlQRSByID0gMTM7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBuOyArK2kpICAgICAgICAgICAgICAgICAgXA0KKyAgICByIEJJVF9P UCBhW2ldOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgcmV0 dXJuIHI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K K30NCisNCisjZGVmaW5lIFRFU1RfQklUV0lTRShUKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50OF90LCBhbmQsICY9KSAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MTZfdCwgYW5k LCAmPSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MzJf dCwgYW5kLCAmPSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo aW50NjRfdCwgYW5kLCAmPSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgVCAodWludDhfdCwgYW5kLCAmPSkgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAodWludDE2X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50MzJfdCwgYW5kLCAmPSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ2 NF90LCBhbmQsICY9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAoaW50OF90LCBpb3IsIHw9KSAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAoaW50MTZfdCwgaW9yLCB8PSkgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MzJfdCwgaW9yLCB8PSkg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50NjRfdCwgaW9y LCB8PSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDhf dCwgaW9yLCB8PSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo dWludDE2X3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBUICh1aW50MzJfdCwgaW9yLCB8PSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ2NF90LCBpb3IsIHw9 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg VCAoaW50OF90LCB4b3IsIF49KSAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAoaW50MTZfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAoaW50MzJfdCwgeG9yLCBePSkgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAoaW50NjRfdCwgeG9yLCBePSkgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDhfdCwgeG9yLCBePSkg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDE2X3QsIHhv ciwgXj0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU ICh1aW50MzJfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKHVpbnQ2NF90LCB4b3IsIF49KQ0KKw0KK1RFU1Rf QklUV0lTRSAoREVGX1JFRFVDX0JJVFdJU0UpDQorDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkc3VtXC52c1xzK3ZbMC05 XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA4IH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG1heFwudnNccyt2 WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gNCB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRtYXh1XC52 c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA0IH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG1p blwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gNCB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zy ZWRtaW51XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA0 IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnJlZGFuZFwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTld K30gOCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZyZWRvclwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlsw LTldK30gOCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZyZWR4b3JcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxz KnZbMC05XSt9IDggfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZnJlZHVzdW1cLnZzXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKnZbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZnJlZG1heFwudnNccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqdlswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmcmVkbWluXC52c1xzK3ZbMC05 XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAzIH0gfSAqLw0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9yZWR1Yy9yZWR1Yy0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMi5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjEzNmE4YTM3OGJmDQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMi5jDQpAQCAtMCwwICsx LDEyOSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1h ZGRpdGlvbmFsLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9 aWxwMzJkIC0tcGFyYW09cmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPXNjYWxh YmxlIC1mZmFzdC1tYXRoIC1mbm8tdmVjdC1jb3N0LW1vZGVsIiB9ICovDQor DQorI2luY2x1ZGUgPHN0ZGludC1nY2MuaD4NCisNCisjZGVmaW5lIE5VTV9F TEVNUyhUWVBFKSAoMTAyNCAvIHNpemVvZiAoVFlQRSkpDQorDQorI2RlZmlu ZSBERUZfUkVEVUNfUExVUyhUWVBFKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5l LCBub2Nsb25lKSkgICAgICAgICAgICAgICAgICAgICAgIFwNCityZWR1Y19w bHVzXyMjVFlQRSAoVFlQRSAoKnJlc3RyaWN0IGEpW05VTV9FTEVNUyAoVFlQ RSldLCAgICAgICBcDQorICAgICAgICAgICAgICAgICAgVFlQRSAqcmVzdHJp Y3QgciwgaW50IG4pICAgICAgICAgICAgICAgICAgICAgXA0KK3sgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgICAgIHJbaV0gPSAwOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg ICAgIGZvciAoaW50IGogPSAwOyBqIDwgTlVNX0VMRU1TIChUWVBFKTsgaisr KSAgICAgICAgICAgICAgIFwNCisgICAgICAgIHJbaV0gKz0gYVtpXVtqXTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAg IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KK30NCisNCisjZGVmaW5lIFRFU1RfUExVUyhU KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGludDhfdCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKGlu dDE2X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IFQgKGludDMyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgIFQgKGludDY0X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKHVpbnQ4X3QpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQxNl90KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQzMl90KSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ2NF90KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKF9GbG9h dDE2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KGZsb2F0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIFQgKGRvdWJsZSkNCisNCitURVNUX1BMVVMgKERFRl9SRURVQ19QTFVT KQ0KKw0KKyNkZWZpbmUgREVGX1JFRFVDX01BWE1JTihUWVBFLCBOQU1FLCBD TVBfT1ApICAgICAgICAgICAgICAgICAgIFwNCit2b2lkIF9fYXR0cmlidXRl X18gKChub2lubGluZSwgbm9jbG9uZSkpICAgICAgICAgICAgICAgICAgICAg ICBcDQorcmVkdWNfIyNOQU1FIyNfIyNUWVBFIChUWVBFICgqcmVzdHJpY3Qg YSlbTlVNX0VMRU1TIChUWVBFKV0sICAgXA0KKyAgICAgICAgICAgICAgICAg ICAgICBUWVBFICpyZXN0cmljdCByLCBpbnQgbikgICAgICAgICAgICAgICAg IFwNCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGludCBpID0gMDsg aSA8IG47IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICByW2ldID0gYVtpXVsw XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBOVU1fRUxFTVMgKFRZUEUp OyBqKyspICAgICAgICAgICAgICAgXA0KKyAgICAgICAgcltpXSA9IGFbaV1b al0gQ01QX09QIHJbaV0gPyBhW2ldW2pdIDogcltpXTsgICAgICAgICAgIFwN CisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorfQ0KKw0KKyNkZWZpbmUgVEVTVF9N QVhNSU4oVCkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50 OF90LCBtYXgsID4pICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg VCAoaW50MTZfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAoaW50MzJfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAoaW50NjRfdCwgbWF4LCA+KSAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAodWludDhfdCwgbWF4LCA+KSAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDE2X3QsIG1heCwgPikg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDMyX3QsIG1h eCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDY0 X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo X0Zsb2F0MTYsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgVCAoZmxvYXQsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAoZG91YmxlLCBtYXgsID4pICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50OF90LCBtaW4sIDwpICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MTZfdCwgbWluLCA8 KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MzJfdCwg bWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50 NjRfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg VCAodWludDhfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAodWludDE2X3QsIG1pbiwgPCkgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAodWludDMyX3QsIG1pbiwgPCkgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAodWludDY0X3QsIG1pbiwgPCkgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoX0Zsb2F0MTYsIG1pbiwgPCkg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoZmxvYXQsIG1pbiwg PCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoZG91Ymxl LCBtaW4sIDwpDQorDQorVEVTVF9NQVhNSU4gKERFRl9SRURVQ19NQVhNSU4p DQorDQorI2RlZmluZSBERUZfUkVEVUNfQklUV0lTRShUWVBFLE5BTUUsQklU X09QKSAgICAgICAgICAgICAgICAgICAgXA0KK3ZvaWQgX19hdHRyaWJ1dGVf XyAoKG5vaW5saW5lLCBub2Nsb25lKSkgICAgICAgICAgICAgICAgICAgICAg IFwNCityZWR1Y18jI05BTUUjI1RZUEUgKFRZUEUgKCpyZXN0cmljdCBhKVtO VU1fRUxFTVMoVFlQRSldLCAgICAgICBcDQorICAgICAgICAgICAgICAgICAg IFRZUEUgKnJlc3RyaWN0IHIsIGludCBuKSAgICAgICAgICAgICAgICAgICAg XA0KK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGZvciAoaW50IGkgPSAwOyBp IDwgbjsgaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIHJbaV0gPSBhW2ldWzBd OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE5VTV9FTEVNUyhUWVBFKTsg aisrKSAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgIHJbaV0g QklUX09QIGFbaV1bal07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KK30NCisNCisjZGVmaW5l IFRFU1RfQklUV0lTRShUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAoaW50OF90LCBhbmQsICY9KSAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgVCAoaW50MTZfdCwgYW5kLCAmPSkgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MzJfdCwgYW5kLCAmPSkgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50NjRfdCwgYW5kLCAm PSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDhfdCwg YW5kLCAmPSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWlu dDE2X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUICh1aW50MzJfdCwgYW5kLCAmPSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQ2NF90LCBhbmQsICY9KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo aW50OF90LCBpb3IsIHw9KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgVCAoaW50MTZfdCwgaW9yLCB8PSkgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAoaW50MzJfdCwgaW9yLCB8PSkgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgVCAoaW50NjRfdCwgaW9yLCB8PSkgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDhfdCwgaW9yLCB8PSkgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDE2X3QsIGlvciwg fD0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1 aW50MzJfdCwgaW9yLCB8PSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKHVpbnQ2NF90LCBpb3IsIHw9KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50OF90LCB4b3Is IF49KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MTZf dCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo aW50MzJfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgVCAoaW50NjRfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAodWludDhfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgVCAodWludDE2X3QsIHhvciwgXj0pICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50MzJfdCwgeG9y LCBePSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KHVpbnQ2NF90LCB4b3IsIF49KQ0KKw0KK1RFU1RfQklUV0lTRSAoREVGX1JF RFVDX0JJVFdJU0UpDQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2cmVkc3VtXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxc cyp2WzAtOV0rfSA4IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnJlZG1heFwudnNccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqdlswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZyZWRtYXh1XC52c1xzK3ZbMC05XSssXHMq dlswLTldKyxccyp2WzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG1pblwudnNccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqdlswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRtaW51XC52c1xzK3Zb MC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZGFuZFwudnNc cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gOCB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRvclwu dnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gOCB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWR4 b3JcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDggfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 ZnJlZHVzdW1cLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9 IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2ZnJlZG1heFwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlsw LTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmcmVkbWluXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxc cyp2WzAtOV0rfSAzIH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0z LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvcmVkdWMvcmVkdWMtMy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMDAwMDAuLmMzNjM4MzQ0ZjgwDQotLS0gL2Rldi9udWxsDQor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvcmVkdWMvcmVkdWMtMy5jDQpAQCAtMCwwICsxLDY1IEBADQorLyogeyBk Zy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9u cyAiLW1hcmNoPXJ2MzJnY3YgLW1hYmk9aWxwMzJkIC0tcGFyYW09cmlzY3Yt YXV0b3ZlYy1wcmVmZXJlbmNlPXNjYWxhYmxlIC1mZmFzdC1tYXRoIC1mbm8t dmVjdC1jb3N0LW1vZGVsIiB9ICovDQorDQorI2luY2x1ZGUgPHN0ZGludC1n Y2MuaD4NCisNCit1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChub2lw YSkpDQorYWRkX2xvb3AgKHVuc2lnbmVkIHNob3J0ICp4LCBpbnQgbikNCit7 DQorICB1bnNpZ25lZCBzaG9ydCByZXMgPSAwOw0KKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyArPSB4W2ldOw0KKyAgcmV0dXJu IHJlczsNCit9DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygo bm9pcGEpKQ0KK21pbl9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4p DQorew0KKyAgdW5zaWduZWQgc2hvcnQgcmVzID0gfjA7DQorICBmb3IgKGlu dCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgcmVzID0gcmVzIDwgeFtpXSA/ IHJlcyA6IHhbaV07DQorICByZXR1cm4gcmVzOw0KK30NCisNCit1bnNpZ25l ZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQorbWF4X2xvb3AgKHVu c2lnbmVkIHNob3J0ICp4LCBpbnQgbikNCit7DQorICB1bnNpZ25lZCBzaG9y dCByZXMgPSAwOw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQor ICAgIHJlcyA9IHJlcyA+IHhbaV0gPyByZXMgOiB4W2ldOw0KKyAgcmV0dXJu IHJlczsNCit9DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygo bm9pcGEpKQ0KK2FuZF9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4p DQorew0KKyAgdW5zaWduZWQgc2hvcnQgcmVzID0gfjA7DQorICBmb3IgKGlu dCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgcmVzICY9IHhbaV07DQorICBy ZXR1cm4gcmVzOw0KK30NCisNCit1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0 ZV9fKChub2lwYSkpDQorb3JfbG9vcCAodW5zaWduZWQgc2hvcnQgKngsIGlu dCBuKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IHJlcyA9IDA7DQorICBmb3Ig KGludCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgcmVzIHw9IHhbaV07DQor ICByZXR1cm4gcmVzOw0KK30NCisNCit1bnNpZ25lZCBzaG9ydCBfX2F0dHJp YnV0ZV9fKChub2lwYSkpDQorZW9yX2xvb3AgKHVuc2lnbmVkIHNob3J0ICp4 LCBpbnQgbikNCit7DQorICB1bnNpZ25lZCBzaG9ydCByZXMgPSAwOw0KKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyBePSB4W2ld Ow0KKyAgcmV0dXJuIHJlczsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkc3VtXC52c1xzK3ZbMC05XSssXHMq dlswLTldKyxccyp2WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG1heHVcLnZzXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWludVwudnNccyt2 WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRhbmRcLnZz XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkb3Jc LnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVk eG9yXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxIH0g fSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy00LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMt NC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LmYwMGExMjgyNmM2DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMt NC5jDQpAQCAtMCwwICsxLDU5IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLW1hcmNoPXJ2MzJn Y3YgLW1hYmk9aWxwMzJkIC0tcGFyYW09cmlzY3YtYXV0b3ZlYy1wcmVmZXJl bmNlPXNjYWxhYmxlIC1mZmFzdC1tYXRoIC1mbm8tdmVjdC1jb3N0LW1vZGVs IiB9ICovDQorDQorI2luY2x1ZGUgPHN0ZGludC1nY2MuaD4NCisNCit1bnNp Z25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQorYWRkX2xvb3Ag KHVuc2lnbmVkIHNob3J0ICp4LCBpbnQgbiwgdW5zaWduZWQgc2hvcnQgcmVz KQ0KK3sNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICBy ZXMgKz0geFtpXTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2lnbmVk IHNob3J0IF9fYXR0cmlidXRlX18oKG5vaXBhKSkNCittaW5fbG9vcCAodW5z aWduZWQgc2hvcnQgKngsIGludCBuLCB1bnNpZ25lZCBzaG9ydCByZXMpDQor ew0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyA9 IHJlcyA8IHhbaV0gPyByZXMgOiB4W2ldOw0KKyAgcmV0dXJuIHJlczsNCit9 DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0K K21heF9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4sIHVuc2lnbmVk IHNob3J0IHJlcykNCit7DQorICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsr aSkNCisgICAgcmVzID0gcmVzID4geFtpXSA/IHJlcyA6IHhbaV07DQorICBy ZXR1cm4gcmVzOw0KK30NCisNCit1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0 ZV9fKChub2lwYSkpDQorYW5kX2xvb3AgKHVuc2lnbmVkIHNob3J0ICp4LCBp bnQgbiwgdW5zaWduZWQgc2hvcnQgcmVzKQ0KK3sNCisgIGZvciAoaW50IGkg PSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMgJj0geFtpXTsNCisgIHJldHVy biByZXM7DQorfQ0KKw0KK3Vuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18o KG5vaXBhKSkNCitvcl9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4s IHVuc2lnbmVkIHNob3J0IHJlcykNCit7DQorICBmb3IgKGludCBpID0gMDsg aSA8IG47ICsraSkNCisgICAgcmVzIHw9IHhbaV07DQorICByZXR1cm4gcmVz Ow0KK30NCisNCit1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChub2lw YSkpDQorZW9yX2xvb3AgKHVuc2lnbmVkIHNob3J0ICp4LCBpbnQgbiwgdW5z aWduZWQgc2hvcnQgcmVzKQ0KK3sNCisgIGZvciAoaW50IGkgPSAwOyBpIDwg bjsgKytpKQ0KKyAgICByZXMgXj0geFtpXTsNCisgIHJldHVybiByZXM7DQor fQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnJlZHN1bVwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZyZWRtYXh1XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAt OV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnJlZG1pbnVcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxz KnZbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2cmVkYW5kXC52c1xzK3ZbMC05XSssXHMqdlswLTld Kyxccyp2WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnJlZG9yXC52c1xzK3ZbMC05XSssXHMqdlsw LTldKyxccyp2WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZHhvclwudnNccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqdlswLTldK30gMSB9IH0gKi8NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVk dWMvcmVkdWNfcnVuLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tMS5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmI1MDBmODU3NTk4 DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTEuYw0KQEAg LTAsMCArMSw1NiBAQA0KKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgcmlz Y3ZfdmVjdG9yIH0gfSB9ICovDQorLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi0tcGFyYW09cmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPXNjYWxhYmxl IC1mZmFzdC1tYXRoIC1mbm8tdmVjdC1jb3N0LW1vZGVsIiB9ICovDQorDQor I2luY2x1ZGUgInJlZHVjLTEuYyINCisNCisjZGVmaW5lIE5VTV9FTEVNUyhU WVBFKSAoNzMgKyBzaXplb2YgKFRZUEUpKQ0KKw0KKyNkZWZpbmUgSU5JVF9W RUNUT1IoVFlQRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBUWVBFIGFbTlVNX0VMRU1TIChUWVBFKSArIDFdOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBO VU1fRUxFTVMgKFRZUEUpICsgMTsgaSsrKSAgICAgICBcDQorICAgIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgICAgICBhW2ldID0gKChpICogMikgKiAoaSAmIDEgPyAxIDogLTEp IHwgMyk7ICAgICAgICAgXA0KKyAgICAgIGFzbSB2b2xhdGlsZSAoIiIgOjo6 ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICBcDQorICAgIH0NCisNCisj ZGVmaW5lIFRFU1RfUkVEVUNfUExVUyhUWVBFKSAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIElOSVRfVkVDVE9SIChU WVBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgICBUWVBFIHIxID0gcmVkdWNfcGx1c18jI1RZUEUgKGEsIE5VTV9F TEVNUyAoVFlQRSkpOyBcDQorICAgIHZvbGF0aWxlIFRZUEUgcjIgPSAwOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBOVU1fRUxFTVMgKFRZUEUpOyArK2kpICAgICAgICAgXA0K KyAgICAgIHIyICs9IGFbaV07ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICAgIGlmIChyMSAhPSByMikgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICBfX2J1aWx0aW5f YWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg fQ0KKw0KKyNkZWZpbmUgVEVTVF9SRURVQ19NQVhNSU4oVFlQRSwgTkFNRSwg Q01QX09QKSAgICAgICAgICAgICAgICAgIFwNCisgIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICAgIElOSVRfVkVDVE9SIChUWVBFKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIFRZUEUg cjEgPSByZWR1Y18jI05BTUUjI18jI1RZUEUgKGEsIE5VTV9FTEVNUyAoVFlQ RSkpOyAgICAgXA0KKyAgICB2b2xhdGlsZSBUWVBFIHIyID0gMTM7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBOVU1fRUxFTVMgKFRZUEUpOyArK2kpICAgICAgICAg ICAgICAgICBcDQorICAgICAgcjIgPSBhW2ldIENNUF9PUCByMiA/IGFbaV0g OiByMjsgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICBpZiAocjEg IT0gcjIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICB9DQorDQorI2Rl ZmluZSBURVNUX1JFRFVDX0JJVFdJU0UoVFlQRSwgTkFNRSwgQklUX09QKSAg ICAgICAgICAgICAgICAgXA0KKyAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAg SU5JVF9WRUNUT1IgKFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgVFlQRSByMSA9IHJlZHVj XyMjTkFNRSMjXyMjVFlQRSAoYSwgTlVNX0VMRU1TIChUWVBFKSk7ICAgICBc DQorICAgIHZvbGF0aWxlIFRZUEUgcjIgPSAxMzsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICBmb3IgKGludCBpID0gMDsg aSA8IE5VTV9FTEVNUyAoVFlQRSk7ICsraSkgICAgICAgICAgICAgICAgIFwN CisgICAgICByMiBCSVRfT1AgYVtpXTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICAgIGlmIChyMSAhPSByMikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIH0NCisNCitpbnQgbWFpbiAoKQ0K K3sNCisgIFRFU1RfUExVUyAoVEVTVF9SRURVQ19QTFVTKQ0KKyAgVEVTVF9N QVhNSU4gKFRFU1RfUkVEVUNfTUFYTUlOKQ0KKyAgVEVTVF9CSVRXSVNFIChU RVNUX1JFRFVDX0JJVFdJU0UpDQorDQorICByZXR1cm4gMDsNCit9DQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3JlZHVjL3JlZHVjX3J1bi0yLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTIu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4z YzJmNjI1NTdiMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1 bi0yLmMNCkBAIC0wLDAgKzEsNzkgQEANCisvKiB7IGRnLWRvIHJ1biB7IHRh cmdldCB7IHJpc2N2X3ZlY3RvciB9IH0gfSAqLw0KKy8qIHsgZGctYWRkaXRp b25hbC1vcHRpb25zICItLXBhcmFtPXJpc2N2LWF1dG92ZWMtcHJlZmVyZW5j ZT1zY2FsYWJsZSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyZWR1Yy0yLmMiDQor DQorI2RlZmluZSBOUk9XUyA1Mw0KKw0KKy8qIC1mZmFzdC1tYXRoIGZ1enog Zm9yIFBMVVMuICAqLw0KKyNkZWZpbmUgQ01QX19GbG9hdDE2KFgsIFkpICgo WCkgPj0gKFkpICogMC44NzUgJiYgKFgpIDw9IChZKSAqIDEuMTI1KQ0KKyNk ZWZpbmUgQ01QX2Zsb2F0KFgsIFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUg Q01QX2RvdWJsZShYLCBZKSAoKFgpID09IChZKSkNCisjZGVmaW5lIENNUF9p bnQ4X3QoWCwgWSkgKChYKSA9PSAoWSkpDQorI2RlZmluZSBDTVBfaW50MTZf dChYLCBZKSAoKFgpID09IChZKSkNCisjZGVmaW5lIENNUF9pbnQzMl90KFgs IFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUgQ01QX2ludDY0X3QoWCwgWSkg KChYKSA9PSAoWSkpDQorI2RlZmluZSBDTVBfdWludDhfdChYLCBZKSAoKFgp ID09IChZKSkNCisjZGVmaW5lIENNUF91aW50MTZfdChYLCBZKSAoKFgpID09 IChZKSkNCisjZGVmaW5lIENNUF91aW50MzJfdChYLCBZKSAoKFgpID09IChZ KSkNCisjZGVmaW5lIENNUF91aW50NjRfdChYLCBZKSAoKFgpID09IChZKSkN CisNCisjZGVmaW5lIElOSVRfTUFUUklYKFRZUEUpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgVFlQRSBtYXRbTlJPV1NdW05VTV9FTEVN UyAoVFlQRSldOyAgICAgICAgICAgICAgICAgICBcDQorICBUWVBFIHJbTlJP V1NdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIGZvciAoaW50IGkgPSAwOyBpIDwgTlJPV1M7IGkrKykgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgICBmb3IgKGludCBqID0gMDsgaiA8IE5VTV9F TEVNUyAoVFlQRSk7IGorKykgICAgICAgICBcDQorICAgICAgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgICAgICBtYXRbaV1bal0gPSBpICsgKGogKiAyKSAqIChqICYg MSA/IDEgOiAtMSk7ICAgICBcDQorICAgICAgIGFzbSB2b2xhdGlsZSAoIiIg Ojo6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgIFwNCisgICAgICB9DQor DQorI2RlZmluZSBURVNUX1JFRFVDX1BMVVMoVFlQRSkgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICBJTklUX01BVFJJ WCAoVFlQRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgICAgcmVkdWNfcGx1c18jI1RZUEUgKG1hdCwgciwgTlJPV1Mp OyAgICAgICAgICAgICAgICAgXA0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8 IE5ST1dTOyBpKyspICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgICAgICB2b2xhdGlsZSBUWVBFIHIyID0gMDsgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgIGZvciAoaW50IGog PSAwOyBqIDwgTlVNX0VMRU1TIChUWVBFKTsgKytqKSAgICAgIFwNCisgICAg ICAgICByMiArPSBtYXRbaV1bal07ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgICAgICBpZiAoIUNNUF8jI1RZUEUgKHJbaV0sIHIyKSkg ICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgX19idWlsdGluX2Fi b3J0ICgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICB9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICAgIH0NCisNCisjZGVmaW5lIFRFU1RfUkVEVUNf TUFYTUlOKFRZUEUsIE5BTUUsIENNUF9PUCkgICAgICAgICAgXA0KKyAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICAgIElOSVRfTUFUUklYIChUWVBFKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICByZWR1Y18jI05B TUUjI18jI1RZUEUgKG1hdCwgciwgTlJPV1MpOyAgICAgICAgICAgICBcDQor ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlJPV1M7IGkrKykgICAgICAgICAg ICAgICAgICAgIFwNCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgIHZv bGF0aWxlIFRZUEUgcjIgPSBtYXRbaV1bMF07ICAgICAgICAgICAgICAgICAg IFwNCisgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBOVU1fRUxFTVMgKFRZ UEUpOyArK2opICAgICAgXA0KKyAgICAgICAgIHIyID0gbWF0W2ldW2pdIENN UF9PUCByMiA/IG1hdFtpXVtqXSA6IHIyOyAgICBcDQorICAgICAgIGlmIChy W2ldICE9IHIyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgICAgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgfQ0K Kw0KKyNkZWZpbmUgVEVTVF9SRURVQ19CSVRXSVNFKFRZUEUsIE5BTUUsIEJJ VF9PUCkgICAgICAgICBcDQorICB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgSU5JVF9NQVRS SVggKFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICAgIHJlZHVjXyMjTkFNRSMjXyMjVFlQRSAobWF0LCByLCBO Uk9XUyk7ICAgICAgICAgICAgIFwNCisgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBOUk9XUzsgaSsrKSAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgICAgICAgdm9sYXRpbGUgVFlQRSByMiA9IG1hdFtp XVswXTsgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICBmb3IgKGludCBq ID0gMDsgaiA8IE5VTV9FTEVNUyAoVFlQRSk7ICsraikgICAgICBcDQorICAg ICAgICAgcjIgQklUX09QIG1hdFtpXVtqXTsgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgICAgaWYgKHJbaV0gIT0gcjIpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgIF9fYnVpbHRpbl9h Ym9ydCAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAg fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgICB9DQorDQoraW50IG1haW4gKCkNCit7DQor ICBURVNUX1BMVVMgKFRFU1RfUkVEVUNfUExVUykNCisgIFRFU1RfTUFYTUlO IChURVNUX1JFRFVDX01BWE1JTikNCisNCisgIHJldHVybiAwOw0KK30NCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTMuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4t My5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LmQxYjIyYzBkNjlhDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNf cnVuLTMuYw0KQEAgLTAsMCArMSw0OSBAQA0KKy8qIHsgZGctZG8gcnVuIHsg dGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQorLyogeyBkZy1hZGRp dGlvbmFsLW9wdGlvbnMgIi0tcGFyYW09cmlzY3YtYXV0b3ZlYy1wcmVmZXJl bmNlPXNjYWxhYmxlIC1mZmFzdC1tYXRoIC1mbm8tdmVjdC1jb3N0LW1vZGVs IiB9ICovDQorDQorI2luY2x1ZGUgInJlZHVjLTMuYyINCisNCisjZGVmaW5l IE4gMHgxMTAwDQorDQoraW50DQorbWFpbiAodm9pZCkNCit7DQorICB1bnNp Z25lZCBzaG9ydCB4W05dOw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyAr K2kpDQorICAgIHhbaV0gPSAoaSArIDEpICogKGkgKyAyKTsNCisNCisgIGlm IChhZGRfbG9vcCAoeCwgMCkgIT0gMA0KKyAgICAgIHx8IGFkZF9sb29wICh4 LCAxMSkgIT0gNTcyDQorICAgICAgfHwgYWRkX2xvb3AgKHgsIDB4MTAwKSAh PSAyMjAxNg0KKyAgICAgIHx8IGFkZF9sb29wICh4LCAweGZmZikgIT0gMjA0 ODANCisgICAgICB8fCBtYXhfbG9vcCAoeCwgMCkgIT0gMA0KKyAgICAgIHx8 IG1heF9sb29wICh4LCAxMSkgIT0gMTMyDQorICAgICAgfHwgbWF4X2xvb3Ag KHgsIDB4MTAwKSAhPSA2NTI4MA0KKyAgICAgIHx8IG1heF9sb29wICh4LCAw eGZmZikgIT0gNjU1MDQNCisgICAgICB8fCBvcl9sb29wICh4LCAwKSAhPSAw DQorICAgICAgfHwgb3JfbG9vcCAoeCwgMTEpICE9IDB4ZmUNCisgICAgICB8 fCBvcl9sb29wICh4LCAweDgwKSAhPSAweDdmZmUNCisgICAgICB8fCBvcl9s b29wICh4LCAweGI0KSAhPSAweDdmZmUNCisgICAgICB8fCBvcl9sb29wICh4 LCAweGI1KSAhPSAweGZmZmUNCisgICAgICB8fCBlb3JfbG9vcCAoeCwgMCkg IT0gMA0KKyAgICAgIHx8IGVvcl9sb29wICh4LCAxMSkgIT0gMHhlOA0KKyAg ICAgIHx8IGVvcl9sb29wICh4LCAweDEwMCkgIT0gMHhjZjAwDQorICAgICAg fHwgZW9yX2xvb3AgKHgsIDB4ZmZmKSAhPSAweGEwMDApDQorICAgIF9fYnVp bHRpbl9hYm9ydCAoKTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsg KytpKQ0KKyAgICB4W2ldID0gfnhbaV07DQorDQorICBpZiAobWluX2xvb3Ag KHgsIDApICE9IDY1NTM1DQorICAgICAgfHwgbWluX2xvb3AgKHgsIDExKSAh PSA2NTQwMw0KKyAgICAgIHx8IG1pbl9sb29wICh4LCAweDEwMCkgIT0gMjU1 DQorICAgICAgfHwgbWluX2xvb3AgKHgsIDB4ZmZmKSAhPSAzMQ0KKyAgICAg IHx8IGFuZF9sb29wICh4LCAwKSAhPSAweGZmZmYNCisgICAgICB8fCBhbmRf bG9vcCAoeCwgMTEpICE9IDB4ZmYwMQ0KKyAgICAgIHx8IGFuZF9sb29wICh4 LCAweDgwKSAhPSAweDgwMDENCisgICAgICB8fCBhbmRfbG9vcCAoeCwgMHhi NCkgIT0gMHg4MDAxDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDB4YjUpICE9 IDEpDQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCisNCisgIHJldHVybiAw Ow0KK30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTQuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9y ZWR1Y19ydW4tNC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLmMxN2UxMjVhNzYzDQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVk dWMvcmVkdWNfcnVuLTQuYw0KQEAgLTAsMCArMSw2NiBAQA0KKy8qIHsgZGct ZG8gcnVuIHsgdGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQorLyog eyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi0tcGFyYW09cmlzY3YtYXV0b3Zl Yy1wcmVmZXJlbmNlPXNjYWxhYmxlIC1mZmFzdC1tYXRoIC1mbm8tdmVjdC1j b3N0LW1vZGVsIiB9ICovDQorDQorI2luY2x1ZGUgInJlZHVjLTQuYyINCisN CisjZGVmaW5lIE4gMHgxMTAwDQorDQoraW50DQorbWFpbiAodm9pZCkNCit7 DQorICB1bnNpZ25lZCBzaG9ydCB4W05dOw0KKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBOOyArK2kpDQorICAgIHhbaV0gPSAoaSArIDEpICogKGkgKyAyKTsN CisNCisgIGlmIChhZGRfbG9vcCAoeCwgMCwgMTApICE9IDEwDQorICAgICAg fHwgYWRkX2xvb3AgKHgsIDExLCA0MikgIT0gNjE0DQorICAgICAgfHwgYWRk X2xvb3AgKHgsIDB4MTAwLCA4NCkgIT0gMjIxMDANCisgICAgICB8fCBhZGRf bG9vcCAoeCwgMHhmZmYsIDIwKSAhPSAyMDUwMA0KKyAgICAgIHx8IG1heF9s b29wICh4LCAwLCAxMCkgIT0gMTANCisgICAgICB8fCBtYXhfbG9vcCAoeCwg MTEsIDEzMSkgIT0gMTMyDQorICAgICAgfHwgbWF4X2xvb3AgKHgsIDExLCAx MzMpICE9IDEzMw0KKyAgICAgIHx8IG1heF9sb29wICh4LCAweDEwMCwgNjUy NzkpICE9IDY1MjgwDQorICAgICAgfHwgbWF4X2xvb3AgKHgsIDB4MTAwLCA2 NTI4MSkgIT0gNjUyODENCisgICAgICB8fCBtYXhfbG9vcCAoeCwgMHhmZmYs IDY1NTAzKSAhPSA2NTUwNA0KKyAgICAgIHx8IG1heF9sb29wICh4LCAweGZm ZiwgNjU1MDUpICE9IDY1NTA1DQorICAgICAgfHwgb3JfbG9vcCAoeCwgMCwg MHg3MSkgIT0gMHg3MQ0KKyAgICAgIHx8IG9yX2xvb3AgKHgsIDExLCAwKSAh PSAweGZlDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMTEsIDB4YjNjKSAhPSAw eGJmZQ0KKyAgICAgIHx8IG9yX2xvb3AgKHgsIDB4ODAsIDApICE9IDB4N2Zm ZQ0KKyAgICAgIHx8IG9yX2xvb3AgKHgsIDB4ODAsIDEpICE9IDB4N2ZmZg0K KyAgICAgIHx8IG9yX2xvb3AgKHgsIDB4YjQsIDApICE9IDB4N2ZmZQ0KKyAg ICAgIHx8IG9yX2xvb3AgKHgsIDB4YjQsIDEpICE9IDB4N2ZmZg0KKyAgICAg IHx8IG9yX2xvb3AgKHgsIDB4YjUsIDApICE9IDB4ZmZmZQ0KKyAgICAgIHx8 IG9yX2xvb3AgKHgsIDB4YjUsIDEpICE9IDB4ZmZmZg0KKyAgICAgIHx8IGVv cl9sb29wICh4LCAwLCAweDNlKSAhPSAweDNlDQorICAgICAgfHwgZW9yX2xv b3AgKHgsIDExLCAwKSAhPSAweGU4DQorICAgICAgfHwgZW9yX2xvb3AgKHgs IDExLCAweDFmZikgIT0gMHgxMTcNCisgICAgICB8fCBlb3JfbG9vcCAoeCwg MHgxMDAsIDApICE9IDB4Y2YwMA0KKyAgICAgIHx8IGVvcl9sb29wICh4LCAw eDEwMCwgMHhlZWUpICE9IDB4YzFlZQ0KKyAgICAgIHx8IGVvcl9sb29wICh4 LCAweGZmZiwgMCkgIT0gMHhhMDAwDQorICAgICAgfHwgZW9yX2xvb3AgKHgs IDB4ZmZmLCAweDg4ODgpICE9IDB4Mjg4OCkNCisgICAgX19idWlsdGluX2Fi b3J0ICgpOw0KKw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpDQor ICAgIHhbaV0gPSB+eFtpXTsNCisNCisgIGlmIChtaW5fbG9vcCAoeCwgMCwg MTAwMDApICE9IDEwMDAwDQorICAgICAgfHwgbWluX2xvb3AgKHgsIDExLCA2 NTQwNCkgIT0gNjU0MDMNCisgICAgICB8fCBtaW5fbG9vcCAoeCwgMTEsIDY1 NDAyKSAhPSA2NTQwMg0KKyAgICAgIHx8IG1pbl9sb29wICh4LCAweDEwMCwg MjU2KSAhPSAyNTUNCisgICAgICB8fCBtaW5fbG9vcCAoeCwgMHgxMDAsIDI1 NCkgIT0gMjU0DQorICAgICAgfHwgbWluX2xvb3AgKHgsIDB4ZmZmLCAzMikg IT0gMzENCisgICAgICB8fCBtaW5fbG9vcCAoeCwgMHhmZmYsIDMwKSAhPSAz MA0KKyAgICAgIHx8IGFuZF9sb29wICh4LCAwLCAweDEyMzQpICE9IDB4MTIz NA0KKyAgICAgIHx8IGFuZF9sb29wICh4LCAxMSwgMHhmZmZmKSAhPSAweGZm MDENCisgICAgICB8fCBhbmRfbG9vcCAoeCwgMTEsIDB4Y2RlZikgIT0gMHhj ZDAxDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDB4ODAsIDB4ZmZmZikgIT0g MHg4MDAxDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDB4ODAsIDB4ZmZmZSkg IT0gMHg4MDAwDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDB4YjQsIDB4ZmZm ZikgIT0gMHg4MDAxDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDB4YjQsIDB4 ZmZmZSkgIT0gMHg4MDAwDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDB4YjUs IDB4ZmZmZikgIT0gMQ0KKyAgICAgIHx8IGFuZF9sb29wICh4LCAweGI1LCAw eGZmZmUpICE9IDApDQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCisNCisg IHJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L3J2di5leHAgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L3J2di5leHANCmluZGV4IDE5NTg5ZmE5NjM4 Li41MzJjMTdjNDA2NSAxMDA2NDQNCi0tLSBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvcnZ2LmV4cA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9ydnYuZXhwDQpAQCAtNzEsNiArNzEs OCBAQCBmb3JlYWNoIG9wICRBVVRPVkVDX1RFU1RfT1BUUyB7DQogICAgICIi ICIkb3AiDQogICBkZy1ydW50ZXN0IFtsc29ydCBbZ2xvYiAtbm9jb21wbGFp biAkc3JjZGlyLyRzdWJkaXIvYXV0b3ZlYy90ZXJub3AvKi5cW2NTXF1dXSBc DQogICAgICIiICIkb3AiDQorICBkZy1ydW50ZXN0IFtsc29ydCBbZ2xvYiAt bm9jb21wbGFpbiAkc3JjZGlyLyRzdWJkaXIvYXV0b3ZlYy9yZWR1Yy8qLlxb Y1NcXV1dIFwNCisgICAgIiIgIiRvcCINCiB9DQoNCiAjIHdpZGVuaW5nIG9w ZXJhdGlvbiBvbmx5IHRlc3Qgb24gTE1VTCA8IDgNCi0tIA0KMi4zNi4zDQoN Cg== ------=_001_NextPart487115442650_=------