From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id F27AD1FF162 for <inbox@lore.proxmox.com>; Mon, 7 Apr 2025 14:50:18 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 63F763E534; Mon, 7 Apr 2025 14:50:09 +0200 (CEST) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> To: pve-devel@lists.proxmox.com Date: Mon, 7 Apr 2025 14:49:31 +0200 Message-Id: <20250407124932.571913-1-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.046 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH kronosnet 1/2] (temporarily) revert routing checks X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> dGhlc2UgY2hlY2tzIGFsc28gdHJpZ2dlciBmb3IgZnVsbC1tZXNoIHNldHVwcyB3aGVyZSB0aGUg Y29yb3N5bmMgbm9kZQpJUCBpcyBpbnRlbnRpb25hbGx5IGNvbmZpZ3VyZWQgb24gbXVsdGlwbGUg aW50ZXJmYWNlcywgdGhleSBtaWdodCBuZWVkCnRvIGJlIGFkYXB0ZWQgZm9yIHRob3NlIG9yIGF0 IGxlYXN0IGJlIGNvbmZpZ3VyYWJsZS9vcHQtb3V0LgoKc2VlIGh0dHBzOi8vZm9ydW0ucHJveG1v eC5jb20vdGhyZWFkcy8xNjQ2MDMKCmZpbGVkIHVwc3RyZWFtIGFzIGh0dHBzOi8vZ2l0aHViLmNv bS9rcm9ub3NuZXQva3Jvbm9zbmV0L2lzc3Vlcy80NDAKClNpZ25lZC1vZmYtYnk6IEZhYmlhbiBH csO8bmJpY2hsZXIgPGYuZ3J1ZW5iaWNobGVyQHByb3htb3guY29tPgotLS0KIC4uLmtldHMtY29t ZS1mcm9tLXRoZS1jb3JyZWN0LWludGVyZmFjZS5wYXRjaCB8IDM4MSArKysrKysrKysrKysrKysr KysKIGRlYmlhbi9wYXRjaGVzL3NlcmllcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiAyIGZpbGVzIGNoYW5nZWQsIDM4MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZGViaWFuL3BhdGNoZXMvMDAwMi1SZXZlcnQtQ2hlY2stcGFja2V0cy1jb21lLWZyb20tdGhlLWNv cnJlY3QtaW50ZXJmYWNlLnBhdGNoCgpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvMDAwMi1S ZXZlcnQtQ2hlY2stcGFja2V0cy1jb21lLWZyb20tdGhlLWNvcnJlY3QtaW50ZXJmYWNlLnBhdGNo IGIvZGViaWFuL3BhdGNoZXMvMDAwMi1SZXZlcnQtQ2hlY2stcGFja2V0cy1jb21lLWZyb20tdGhl LWNvcnJlY3QtaW50ZXJmYWNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwLi5iNzY2MDQ4NwotLS0gL2Rldi9udWxsCisrKyBiL2RlYmlhbi9wYXRjaGVzLzAwMDItUmV2 ZXJ0LUNoZWNrLXBhY2tldHMtY29tZS1mcm9tLXRoZS1jb3JyZWN0LWludGVyZmFjZS5wYXRjaApA QCAtMCwwICsxLDM4MSBAQAorRnJvbSAxOWI4NmI3NzY0ZWZmOWU1NzIyNWNjNTY4MGJiMzhlNDk4 ZDc5MTNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0ZhYmlhbj0y MEdyPUMzPUJDbmJpY2hsZXI/PSA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+CitEYXRlOiBN b24sIDcgQXByIDIwMjUgMTQ6Mzc6MjcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gUmV2ZXJ0ICJD aGVjayBwYWNrZXRzIGNvbWUgZnJvbSB0aGUgY29ycmVjdCBpbnRlcmZhY2UiCitNSU1FLVZlcnNp b246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoaXMgcmV2ZXJ0cyBjb21taXQgYzc2MTA1MzIz NDdiNTNjMDc3NGRiY2EwYmM5ODQ0MGZlNTk5NjM3Yy4KKworU2lnbmVkLW9mZi1ieTogRmFiaWFu IEdyw7xuYmljaGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+CistLS0KKyBsaWJrbmV0 L2ludGVybmFscy5oICAgICAgICB8ICAgMSAtCisgbGlia25ldC9saW5rcy5jICAgICAgICAgICAg fCAgMjAgLS0tLS0tLQorIGxpYmtuZXQvdGhyZWFkc19yeC5jICAgICAgIHwgICA3IC0tLQorIGxp YmtuZXQvdHJhbnNwb3J0X2NvbW1vbi5jIHwgICAzICstCisgbGlia25ldC90cmFuc3BvcnRfY29t bW9uLmggfCAgIDIgKy0KKyBsaWJrbmV0L3RyYW5zcG9ydF9zY3RwLmMgICB8ICAxNiArKystLS0K KyBsaWJrbmV0L3RyYW5zcG9ydF91ZHAuYyAgICB8IDEwNSArKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgNyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMzYg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWJrbmV0L2ludGVybmFscy5oIGIvbGlia25l dC9pbnRlcm5hbHMuaAoraW5kZXggN2VkZGI3MWEuLmYxMjBhM2QzIDEwMDY0NAorLS0tIGEvbGli a25ldC9pbnRlcm5hbHMuaAorKysrIGIvbGlia25ldC9pbnRlcm5hbHMuaAorQEAgLTE1MSw3ICsx NTEsNiBAQCBzdHJ1Y3Qga25ldF9mZF90cmFja2VycyB7CisgCQkJCQkgICAgICogd2l0aCB0aGlz IGZkICovCisgCXNvY2tsZW5fdCBzb2NrYWRkcl9sZW47ICAgICAgICAgICAgIC8qIFNpemUgb2Yg c29ja2FkZHJfaW5bNl0gc3RydWN0dXJlIGZvciB0aGlzIHNvY2tldCAqLworIAl2b2lkICpkYXRh OwkJCSAgICAvKiBwb2ludGVyIHRvIHRoZSBkYXRhICovCistCWludCBpZmluZGV4OyAgICAgICAg ICAgICAgICAgICAgICAgIC8qIGludGVyZmFjZSBpbmRleCBmb3IgdGhpcyBib3VuZCBhZGRyZXNz ICovCisgfTsKKyAKKyAjZGVmaW5lIEtORVRfTUFYX0ZEUyBLTkVUX01BWF9IT1NUICogS05FVF9N QVhfTElOSyAqIDQKK2RpZmYgLS1naXQgYS9saWJrbmV0L2xpbmtzLmMgYi9saWJrbmV0L2xpbmtz LmMKK2luZGV4IGM2OTVjNmMwLi5kMzU1YTUzYSAxMDA2NDQKKy0tLSBhL2xpYmtuZXQvbGlua3Mu YworKysrIGIvbGlia25ldC9saW5rcy5jCitAQCAtMjIsMjUgKzIyLDYgQEAKKyAjaW5jbHVkZSAi aG9zdC5oIgorICNpbmNsdWRlICJ0aHJlYWRzX2NvbW1vbi5oIgorICNpbmNsdWRlICJsaW5rc19h Y2wuaCIKKy0jaW5jbHVkZSA8aWZhZGRycy5oPgorLSNpbmNsdWRlIDxuZXQvaWYuaD4KKy0KKy1z dGF0aWMgaW50IGZpbmRfaWZpbmRleChzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSAqYWRkcikKKy17 CistCXN0cnVjdCBpZmFkZHJzICppZnJzLCAqaWZhOworLQorLQlpZiAoZ2V0aWZhZGRycygmaWZy cykgPT0gMCkgeworLQkJZm9yIChpZmEgPSBpZnJzOyBpZmEgIT0gTlVMTDsgaWZhID0gaWZhLT5p ZmFfbmV4dCkgeworLQkJCWlmIChpZmEtPmlmYV9hZGRyICYmIGNtcGFkZHIoYWRkciwgKHN0cnVj dCBzb2NrYWRkcl9zdG9yYWdlICopaWZhLT5pZmFfYWRkcikgPT0gMCkgeworLQkJCQlpbnQgaWZp bmRleCA9IGlmX25hbWV0b2luZGV4KGlmYS0+aWZhX25hbWUpOworLQkJCQlmcmVlaWZhZGRycyhp ZnJzKTsKKy0JCQkJcmV0dXJuIGlmaW5kZXg7CistCQkJfQorLQkJfQorLQkJZnJlZWlmYWRkcnMo aWZycyk7CistCX0KKy0JcmV0dXJuIC0xOworLX0KKyAKKyBpbnQgX2xpbmtfdXBkb3duKGtuZXRf aGFuZGxlX3Qga25ldF9oLCBrbmV0X25vZGVfaWRfdCBob3N0X2lkLCB1aW50OF90IGxpbmtfaWQs CisgCQkgdW5zaWduZWQgaW50IGVuYWJsZWQsIHVuc2lnbmVkIGludCBjb25uZWN0ZWQsIHVuc2ln bmVkIGludCBsb2NrX3N0YXRzKQorQEAgLTg3LDcgKzY4LDYgQEAgaW50IF9saW5rX3VwZG93bihr bmV0X2hhbmRsZV90IGtuZXRfaCwga25ldF9ub2RlX2lkX3QgaG9zdF9pZCwgdWludDhfdCBsaW5r X2lkLAorIAkJaWYgKCsrbGluay0+c3RhdHVzLnN0YXRzLmxhc3RfdXBfdGltZV9pbmRleCA+PSBN QVhfTElOS19FVkVOVFMpIHsKKyAJCQlsaW5rLT5zdGF0dXMuc3RhdHMubGFzdF91cF90aW1lX2lu ZGV4ID0gMDsKKyAJCX0KKy0JCWtuZXRfaC0+a25ldF90cmFuc3BvcnRfZmRfdHJhY2tlcltsaW5r LT5vdXRzb2NrXS5pZmluZGV4ID0gZmluZF9pZmluZGV4KCZsaW5rLT5zcmNfYWRkcik7CisgCX0g ZWxzZSB7CisgCQl0aW1lKCZsaW5rLT5zdGF0dXMuc3RhdHMubGFzdF9kb3duX3RpbWVzW2xpbmst PnN0YXR1cy5zdGF0cy5sYXN0X2Rvd25fdGltZV9pbmRleF0pOworIAkJbGluay0+c3RhdHVzLnN0 YXRzLmRvd25fY291bnQrKzsKK2RpZmYgLS1naXQgYS9saWJrbmV0L3RocmVhZHNfcnguYyBiL2xp YmtuZXQvdGhyZWFkc19yeC5jCitpbmRleCA2NGFmNDUwOS4uNmFhYjFjZmEgMTAwNjQ0CistLS0g YS9saWJrbmV0L3RocmVhZHNfcnguYworKysrIGIvbGlia25ldC90aHJlYWRzX3J4LmMKK0BAIC05 NzMsOSArOTczLDYgQEAgdm9pZCAqX2hhbmRsZV9yZWN2X2Zyb21fbGlua3NfdGhyZWFkKHZvaWQg KmRhdGEpCisgCXN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGFkZHJlc3NbUENLVF9SWF9CVUZTXTsK KyAJc3RydWN0IGtuZXRfbW1zZ2hkciBtc2dbUENLVF9SWF9CVUZTXTsKKyAJc3RydWN0IGlvdmVj IGlvdl9pbltQQ0tUX1JYX0JVRlNdOworLSNpZiBkZWZpbmVkKElQX1BLVElORk8pIHx8IGRlZmlu ZWQoSVBWNl9QS1RJTkZPKQorLQl1bnNpZ25lZCBjaGFyIGNvbnRyb2xfaW5bQ01TR19TUEFDRShz aXplb2Yoc3RydWN0IGluNl9wa3RpbmZvKSldW1BDS1RfUlhfQlVGU107CistI2VuZGlmCisgCisg CXNldF90aHJlYWRfc3RhdHVzKGtuZXRfaCwgS05FVF9USFJFQURfUlgsIEtORVRfVEhSRUFEX1NU QVJURUQpOworIAorQEAgLTk5MiwxMCArOTg5LDYgQEAgdm9pZCAqX2hhbmRsZV9yZWN2X2Zyb21f bGlua3NfdGhyZWFkKHZvaWQgKmRhdGEpCisgCQltc2dbaV0ubXNnX2hkci5tc2dfbmFtZWxlbiA9 IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSk7IC8qIFJlYWwgdmFsdWUgZmlsbGVkIGlu IGJlZm9yZSBhY3R1YWwgdXNlICovCisgCQltc2dbaV0ubXNnX2hkci5tc2dfaW92ID0gJmlvdl9p bltpXTsKKyAJCW1zZ1tpXS5tc2dfaGRyLm1zZ19pb3ZsZW4gPSAxOworLSNpZiBkZWZpbmVkKElQ X1BLVElORk8pIHx8IGRlZmluZWQoSVBWNl9QS1RJTkZPKQorLQkJbXNnW2ldLm1zZ19oZHIubXNn X2NvbnRyb2wgPSAmY29udHJvbF9pblswXVtpXTsKKy0JCW1zZ1tpXS5tc2dfaGRyLm1zZ19jb250 cm9sbGVuID0gQ01TR19TUEFDRShzaXplb2Yoc3RydWN0IGluNl9wa3RpbmZvKSk7IC8qIExhcmdl c3Qgb2YgdGhlIHR3byBwa3RpbmZvIHN0cnVjdHMgKi8KKy0jZW5kaWYKKyAJfQorIAorIAl3aGls ZSAoIXNodXRkb3duX2luX3Byb2dyZXNzKGtuZXRfaCkpIHsKK2RpZmYgLS1naXQgYS9saWJrbmV0 L3RyYW5zcG9ydF9jb21tb24uYyBiL2xpYmtuZXQvdHJhbnNwb3J0X2NvbW1vbi5jCitpbmRleCBk ODUwY2JhOS4uZmJhMDFhMzYgMTAwNjQ0CistLS0gYS9saWJrbmV0L3RyYW5zcG9ydF9jb21tb24u YworKysrIGIvbGlia25ldC90cmFuc3BvcnRfY29tbW9uLmMKK0BAIC00MjYsNyArNDI2LDcgQEAg aW50IF9pc192YWxpZF9mZChrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCkKKyAgKiBt dXN0IGJlIGNhbGxlZCB3aXRoIGdsb2JhbCB3cml0ZSBsb2NrCisgICovCisgCistaW50IF9zZXRf ZmRfdHJhY2tlcihrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCwgdWludDhfdCB0cmFu c3BvcnQsIHVpbnQ4X3QgZGF0YV90eXBlLCBzb2NrbGVuX3Qgc29ja2xlbiwgdm9pZCAqZGF0YSwg aW50IGlmaW5kZXgpCisraW50IF9zZXRfZmRfdHJhY2tlcihrbmV0X2hhbmRsZV90IGtuZXRfaCwg aW50IHNvY2tmZCwgdWludDhfdCB0cmFuc3BvcnQsIHVpbnQ4X3QgZGF0YV90eXBlLCBzb2NrbGVu X3Qgc29ja2xlbiwgdm9pZCAqZGF0YSkKKyB7CisgCWlmIChzb2NrZmQgPCAwKSB7CisgCQllcnJu byA9IEVJTlZBTDsKK0BAIC00NDIsNyArNDQyLDYgQEAgaW50IF9zZXRfZmRfdHJhY2tlcihrbmV0 X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCwgdWludDhfdCB0cmFuc3BvcnQsIHVpbnQ4X3QK KyAJa25ldF9oLT5rbmV0X3RyYW5zcG9ydF9mZF90cmFja2VyW3NvY2tmZF0uZGF0YV90eXBlID0g ZGF0YV90eXBlOworIAlrbmV0X2gtPmtuZXRfdHJhbnNwb3J0X2ZkX3RyYWNrZXJbc29ja2ZkXS5z b2NrYWRkcl9sZW4gPSBzb2NrbGVuOworIAlrbmV0X2gtPmtuZXRfdHJhbnNwb3J0X2ZkX3RyYWNr ZXJbc29ja2ZkXS5kYXRhID0gZGF0YTsKKy0Ja25ldF9oLT5rbmV0X3RyYW5zcG9ydF9mZF90cmFj a2VyW3NvY2tmZF0uaWZpbmRleCA9IGlmaW5kZXg7CisgCisgCXJldHVybiAwOworIH0KK2RpZmYg LS1naXQgYS9saWJrbmV0L3RyYW5zcG9ydF9jb21tb24uaCBiL2xpYmtuZXQvdHJhbnNwb3J0X2Nv bW1vbi5oCitpbmRleCBiNDU0Y2ZmZC4uODc4MzQ1N2MgMTAwNjQ0CistLS0gYS9saWJrbmV0L3Ry YW5zcG9ydF9jb21tb24uaAorKysrIGIvbGlia25ldC90cmFuc3BvcnRfY29tbW9uLmgKK0BAIC0x NSw3ICsxNSw3IEBAIGludCBfY29uZmlndXJlX3RyYW5zcG9ydF9zb2NrZXQoa25ldF9oYW5kbGVf dCBrbmV0X2gsIGludCBzb2NrLCBzdHJ1Y3Qgc29ja2FkZHJfCisgaW50IF9pbml0X3NvY2tldHBh aXIoa25ldF9oYW5kbGVfdCBrbmV0X2gsIGludCAqc29jayk7Cisgdm9pZCBfY2xvc2Vfc29ja2V0 cGFpcihrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50ICpzb2NrKTsKKyAKKy1pbnQgX3NldF9mZF90 cmFja2VyKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBpbnQgc29ja2ZkLCB1aW50OF90IHRyYW5zcG9y dCwgdWludDhfdCBkYXRhX3R5cGUsIHNvY2tsZW5fdCBzb2NrbGVuLCB2b2lkICpkYXRhLCBpbnQg aWZpbmRleCk7CisraW50IF9zZXRfZmRfdHJhY2tlcihrbmV0X2hhbmRsZV90IGtuZXRfaCwgaW50 IHNvY2tmZCwgdWludDhfdCB0cmFuc3BvcnQsIHVpbnQ4X3QgZGF0YV90eXBlLCBzb2NrbGVuX3Qg c29ja2xlbiwgdm9pZCAqZGF0YSk7CisgaW50IF9pc192YWxpZF9mZChrbmV0X2hhbmRsZV90IGtu ZXRfaCwgaW50IHNvY2tmZCk7CisgCisgaW50IF9zZW5kbW1zZyhpbnQgc29ja2ZkLCBpbnQgY29u bmVjdGlvbl9vcmllbnRlZCwgc3RydWN0IGtuZXRfbW1zZ2hkciAqbXNndmVjLCB1bnNpZ25lZCBp bnQgdmxlbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKK2RpZmYgLS1naXQgYS9saWJrbmV0L3RyYW5z cG9ydF9zY3RwLmMgYi9saWJrbmV0L3RyYW5zcG9ydF9zY3RwLmMKK2luZGV4IDliNGQ4NWRiLi4y ZWI1ZTEwNiAxMDA2NDQKKy0tLSBhL2xpYmtuZXQvdHJhbnNwb3J0X3NjdHAuYworKysrIGIvbGli a25ldC90cmFuc3BvcnRfc2N0cC5jCitAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBpbnQgX2Ns b3NlX2Nvbm5lY3Rfc29ja2V0KGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1Y3Qga25ldF9saW5r ICprbl9saW5rCisgCQkJaW5mby0+b25fcnhfZXBvbGwgPSAwOworIAkJfQorIAorLQkJaWYgKF9z ZXRfZmRfdHJhY2tlcihrbmV0X2gsIGluZm8tPmNvbm5lY3Rfc29jaywgS05FVF9NQVhfVFJBTlNQ T1JUUywgU0NUUF9OT19MSU5LX0lORk8sIDAsIE5VTEwsIC0xKSA8IDApIHsKKysJCWlmIChfc2V0 X2ZkX3RyYWNrZXIoa25ldF9oLCBpbmZvLT5jb25uZWN0X3NvY2ssIEtORVRfTUFYX1RSQU5TUE9S VFMsIFNDVFBfTk9fTElOS19JTkZPLCAwLCBOVUxMKSA8IDApIHsKKyAJCQlzYXZlZGVycm5vID0g ZXJybm87CisgCQkJZXJyID0gLTE7CisgCQkJbG9nX2VycihrbmV0X2gsIEtORVRfU1VCX1RSQU5T UF9TQ1RQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitAQCAtMjU4LDcgKzI1OCw3 IEBAIHN0YXRpYyBpbnQgX2NyZWF0ZV9jb25uZWN0X3NvY2tldChrbmV0X2hhbmRsZV90IGtuZXRf aCwgc3RydWN0IGtuZXRfbGluayAqa25fbGluCisgCQlnb3RvIGV4aXRfZXJyb3I7CisgCX0KKyAK Ky0JaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gsIGNvbm5lY3Rfc29jaywgS05FVF9UUkFOU1BP UlRfU0NUUCwgU0NUUF9DT05ORUNUX0xJTktfSU5GTywgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5z cmNfYWRkciksIGluZm8sIC0xKSA8IDApIHsKKysJaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gs IGNvbm5lY3Rfc29jaywgS05FVF9UUkFOU1BPUlRfU0NUUCwgU0NUUF9DT05ORUNUX0xJTktfSU5G Tywgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5zcmNfYWRkciksIGluZm8pIDwgMCkgeworIAkJc2F2 ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7CisgCQlsb2dfZXJyKGtuZXRfaCwgS05FVF9T VUJfVFJBTlNQX1NDVFAsICJVbmFibGUgdG8gc2V0IGZkIHRyYWNrZXI6ICVzIiwKK0BAIC04NzAs NyArODcwLDcgQEAgc3RhdGljIHZvaWQgX2hhbmRsZV9pbmNvbWluZ19zY3RwKGtuZXRfaGFuZGxl X3Qga25ldF9oLCBpbnQgbGlzdGVuX3NvY2spCisgCisgCWlmIChfc2V0X2ZkX3RyYWNrZXIoa25l dF9oLCBuZXdfZmQsIEtORVRfVFJBTlNQT1JUX1NDVFAsIFNDVFBfQUNDRVBURURfTElOS19JTkZP LAorIAkJCSAgICBrbmV0X2gtPmtuZXRfdHJhbnNwb3J0X2ZkX3RyYWNrZXJbbGlzdGVuX3NvY2td LnNvY2thZGRyX2xlbiwKKy0JCQkgICAgYWNjZXB0X2luZm8sIC0xKSA8IDApIHsKKysJCQkgICAg YWNjZXB0X2luZm8pIDwgMCkgeworIAkJc2F2ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7 CisgCQlsb2dfZXJyKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1NDVFAsICJVbmFibGUgdG8gc2V0 IGZkIHRyYWNrZXI6ICVzIiwKK0BAIC05MDIsNyArOTAyLDcgQEAgZXhpdF9lcnJvcjoKKyAJCSAq IGNoZWNrIHRoZSBlcnJvciB0byBtYWtlIGNvdmVyaXR5IHNjYW4gaGFwcHkuCisgCQkgKiBfc2V0 X2ZkX3RyYWNrZXIgY2Fubm90IGZhaWwgYXQgdGhpcyBzdGFnZQorIAkJICovCistCQlpZiAoX3Nl dF9mZF90cmFja2VyKGtuZXRfaCwgbmV3X2ZkLCBLTkVUX01BWF9UUkFOU1BPUlRTLCBTQ1RQX05P X0xJTktfSU5GTywgMCwgTlVMTCwgLTEpIDwgMCl7CisrCQlpZiAoX3NldF9mZF90cmFja2VyKGtu ZXRfaCwgbmV3X2ZkLCBLTkVUX01BWF9UUkFOU1BPUlRTLCBTQ1RQX05PX0xJTktfSU5GTywgMCwg TlVMTCkgPCAwKXsKKyAJCQlsb2dfZGVidWcoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfU0NUUCwg IlVuYWJsZSB0byB1cGRhdGUgZmR0cmFja2VyIGZvciBzb2NrZXQgJWQiLCBuZXdfZmQpOworIAkJ fQorIAkJZnJlZShhY2NlcHRfaW5mbyk7CitAQCAtOTc2LDcgKzk3Niw3IEBAIHN0YXRpYyB2b2lk IF9oYW5kbGVfbGlzdGVuX3NjdHBfZXJyb3JzKGtuZXRfaGFuZGxlX3Qga25ldF9oKQorIAkJCSAq IGNoZWNrIHRoZSBlcnJvciB0byBtYWtlIGNvdmVyaXR5IHNjYW4gaGFwcHkuCisgCQkJICogX3Nl dF9mZF90cmFja2VyIGNhbm5vdCBmYWlsIGF0IHRoaXMgc3RhZ2UKKyAJCQkgKi8KKy0JCQlpZiAo X3NldF9mZF90cmFja2VyKGtuZXRfaCwgc29ja2ZkLCBLTkVUX01BWF9UUkFOU1BPUlRTLCBTQ1RQ X05PX0xJTktfSU5GTywgMCwgTlVMTCwgLTEpIDwgMCkgeworKwkJCWlmIChfc2V0X2ZkX3RyYWNr ZXIoa25ldF9oLCBzb2NrZmQsIEtORVRfTUFYX1RSQU5TUE9SVFMsIFNDVFBfTk9fTElOS19JTkZP LCAwLCBOVUxMKSA8IDApIHsKKyAJCQkJbG9nX2RlYnVnKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQ X1NDVFAsICJVbmFibGUgdG8gdXBkYXRlIGZkdHJhY2tlciBmb3Igc29ja2V0ICVkIiwgc29ja2Zk KTsKKyAJCQl9CisgCQkJaW5mby0+YWNjZXB0ZWRfc29ja3NbaV0gPSAtMTsKK0BAIC0xMTEyLDcg KzExMTIsNyBAQCBzdGF0aWMgc2N0cF9saXN0ZW5fbGlua19pbmZvX3QgKnNjdHBfbGlua19saXN0 ZW5lcl9zdGFydChrbmV0X2hhbmRsZV90IGtuZXRfaCwgcworIAkJZ290byBleGl0X2Vycm9yOwor IAl9CisgCistCWlmIChfc2V0X2ZkX3RyYWNrZXIoa25ldF9oLCBsaXN0ZW5fc29jaywgS05FVF9U UkFOU1BPUlRfU0NUUCwgU0NUUF9MSVNURU5FUl9MSU5LX0lORk8sIHNvY2thZGRyX2xlbigma25f bGluay0+c3JjX2FkZHIpLCBpbmZvLCAtMSkgPCAwKSB7CisrCWlmIChfc2V0X2ZkX3RyYWNrZXIo a25ldF9oLCBsaXN0ZW5fc29jaywgS05FVF9UUkFOU1BPUlRfU0NUUCwgU0NUUF9MSVNURU5FUl9M SU5LX0lORk8sIHNvY2thZGRyX2xlbigma25fbGluay0+c3JjX2FkZHIpLCBpbmZvKSA8IDApIHsK KyAJCXNhdmVkZXJybm8gPSBlcnJubzsKKyAJCWVyciA9IC0xOworIAkJbG9nX2VycihrbmV0X2gs IEtORVRfU1VCX1RSQU5TUF9TQ1RQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitA QCAtMTIxNyw3ICsxMjE3LDcgQEAgc3RhdGljIGludCBzY3RwX2xpbmtfbGlzdGVuZXJfc3RvcChr bmV0X2hhbmRsZV90IGtuZXRfaCwgc3RydWN0IGtuZXRfbGluayAqa25fbGkKKyAJCWluZm8tPm9u X2xpc3RlbmVyX2Vwb2xsID0gMDsKKyAJfQorIAorLQlpZiAoX3NldF9mZF90cmFja2VyKGtuZXRf aCwgaW5mby0+bGlzdGVuX3NvY2ssIEtORVRfTUFYX1RSQU5TUE9SVFMsIFNDVFBfTk9fTElOS19J TkZPLCAwLCBOVUxMLCAtMSkgPCAwKSB7CisrCWlmIChfc2V0X2ZkX3RyYWNrZXIoa25ldF9oLCBp bmZvLT5saXN0ZW5fc29jaywgS05FVF9NQVhfVFJBTlNQT1JUUywgU0NUUF9OT19MSU5LX0lORk8s IDAsIE5VTEwpIDwgMCkgeworIAkJc2F2ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7Cisg CQlsb2dfZXJyKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1NDVFAsICJVbmFibGUgdG8gc2V0IGZk IHRyYWNrZXI6ICVzIiwKK0BAIC0xMjQwLDcgKzEyNDAsNyBAQCBzdGF0aWMgaW50IHNjdHBfbGlu a19saXN0ZW5lcl9zdG9wKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1Y3Qga25ldF9saW5rICpr bl9saQorIAkJCWluZm8tPm9uX3J4X2Vwb2xsID0gMDsKKyAJCQlmcmVlKGtuZXRfaC0+a25ldF90 cmFuc3BvcnRfZmRfdHJhY2tlcltpbmZvLT5hY2NlcHRlZF9zb2Nrc1tpXV0uZGF0YSk7CisgCQkJ Y2xvc2UoaW5mby0+YWNjZXB0ZWRfc29ja3NbaV0pOworLQkJCWlmIChfc2V0X2ZkX3RyYWNrZXIo a25ldF9oLCBpbmZvLT5hY2NlcHRlZF9zb2Nrc1tpXSwgS05FVF9NQVhfVFJBTlNQT1JUUywgU0NU UF9OT19MSU5LX0lORk8sIDAsIE5VTEwsIC0xKSA8IDApIHsKKysJCQlpZiAoX3NldF9mZF90cmFj a2VyKGtuZXRfaCwgaW5mby0+YWNjZXB0ZWRfc29ja3NbaV0sIEtORVRfTUFYX1RSQU5TUE9SVFMs IFNDVFBfTk9fTElOS19JTkZPLCAwLCBOVUxMKSA8IDApIHsKKyAJCQkJc2F2ZWRlcnJubyA9IGVy cm5vOworIAkJCQllcnIgPSAtMTsKKyAJCQkJbG9nX2VycihrbmV0X2gsIEtORVRfU1VCX1RSQU5T UF9TQ1RQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitkaWZmIC0tZ2l0IGEvbGli a25ldC90cmFuc3BvcnRfdWRwLmMgYi9saWJrbmV0L3RyYW5zcG9ydF91ZHAuYworaW5kZXggMjVi NDAwZTYuLjJlNmFlMjU1IDEwMDY0NAorLS0tIGEvbGlia25ldC90cmFuc3BvcnRfdWRwLmMKKysr KyBiL2xpYmtuZXQvdHJhbnNwb3J0X3VkcC5jCitAQCAtMTcsNyArMTcsNiBAQAorICNpbmNsdWRl IDxuZXRpbmV0L2luLmg+CisgI2luY2x1ZGUgPG5ldGluZXQvaXAuaD4KKyAjaW5jbHVkZSA8bmV0 aW5ldC9pcF9pY21wLmg+CistI2luY2x1ZGUgPG5ldC9pZi5oPgorICNpZiBkZWZpbmVkIChJUF9S RUNWRVJSKSB8fCBkZWZpbmVkIChJUFY2X1JFQ1ZFUlIpCisgI2luY2x1ZGUgPGxpbnV4L2VycnF1 ZXVlLmg+CisgI2VuZGlmCitAQCAtNTIsNiArNTEsOSBAQCBpbnQgdWRwX3RyYW5zcG9ydF9saW5r X3NldF9jb25maWcoa25ldF9oYW5kbGVfdCBrbmV0X2gsIHN0cnVjdCBrbmV0X2xpbmsgKmtuX2xp bgorIAlzdHJ1Y3QgZXBvbGxfZXZlbnQgZXY7CisgCXVkcF9saW5rX2luZm9fdCAqaW5mbzsKKyAJ dWRwX2hhbmRsZV9pbmZvX3QgKmhhbmRsZV9pbmZvID0ga25ldF9oLT50cmFuc3BvcnRzW0tORVRf VFJBTlNQT1JUX1VEUF07CisrI2lmIGRlZmluZWQgKElQX1JFQ1ZFUlIpIHx8IGRlZmluZWQgKElQ VjZfUkVDVkVSUikKKysJaW50IHZhbHVlOworKyNlbmRpZgorIAorIAkvKgorIAkgKiBPbmx5IGFs bG9jYXRlIGEgbmV3IGxpbmsgaWYgdGhlIGxvY2FsIGFkZHJlc3MgaXMgZGlmZmVyZW50CitAQCAt OTAsNyArOTIsNyBAQCBpbnQgdWRwX3RyYW5zcG9ydF9saW5rX3NldF9jb25maWcoa25ldF9oYW5k bGVfdCBrbmV0X2gsIHN0cnVjdCBrbmV0X2xpbmsgKmtuX2xpbgorIAorICNpZmRlZiBJUF9SRUNW RVJSCisgCWlmIChrbl9saW5rLT5zcmNfYWRkci5zc19mYW1pbHkgPT0gQUZfSU5FVCkgeworLQkJ aW50IHZhbHVlID0gMTsKKysJCXZhbHVlID0gMTsKKyAJCWlmIChzZXRzb2Nrb3B0KHNvY2ssIFNP TF9JUCwgSVBfUkVDVkVSUiwgJnZhbHVlLCBzaXplb2YodmFsdWUpKSA8MCkgeworIAkJCXNhdmVk ZXJybm8gPSBlcnJubzsKKyAJCQllcnIgPSAtMTsKK0BAIC0xMDMsMzUgKzEwNSw5IEBAIGludCB1 ZHBfdHJhbnNwb3J0X2xpbmtfc2V0X2NvbmZpZyhrbmV0X2hhbmRsZV90IGtuZXRfaCwgc3RydWN0 IGtuZXRfbGluayAqa25fbGluCisgI2Vsc2UKKyAJbG9nX2RlYnVnKGtuZXRfaCwgS05FVF9TVUJf VFJBTlNQX1VEUCwgIklQX1JFQ1ZFUlIgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGJ1aWxkL3BsYXRm b3JtIik7CisgI2VuZGlmCistI2lmZGVmIElQX1BLVElORk8KKy0JaWYgKGtuX2xpbmstPnNyY19h ZGRyLnNzX2ZhbWlseSA9PSBBRl9JTkVUKSB7CistCQlpbnQgdmFsdWUgPSAxOworLQkJaWYgKHNl dHNvY2tvcHQoc29jaywgU09MX0lQLCBJUF9QS1RJTkZPLCAmdmFsdWUsIHNpemVvZih2YWx1ZSkp IDwwKSB7CistCQkJc2F2ZWRlcnJubyA9IGVycm5vOworLQkJCWVyciA9IC0xOworLQkJCWxvZ19l cnIoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfVURQLCAiVW5hYmxlIHRvIHNldCBQS1RJTkZPIG9u IHNvY2tldDogJXMiLAorLQkJCQlzdHJlcnJvcihzYXZlZGVycm5vKSk7CistCQkJZ290byBleGl0 X2Vycm9yOworLQkJfQorLQkJbG9nX2RlYnVnKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1VEUCwg IklQX1BLVElORk8gZW5hYmxlZCBvbiBzb2NrZXQ6ICVpIiwgc29jayk7CistCX0KKy0jZW5kaWYK Ky0jaWZkZWYgSVBWNl9SRUNWUEtUSU5GTworLQlpZiAoa25fbGluay0+c3JjX2FkZHIuc3NfZmFt aWx5ID09IEFGX0lORVQ2KSB7CistCQlpbnQgdmFsdWUgPSAxOworLQkJaWYgKHNldHNvY2tvcHQo c29jaywgSVBQUk9UT19JUFY2LCBJUFY2X1JFQ1ZQS1RJTkZPLCAmdmFsdWUsIHNpemVvZih2YWx1 ZSkpIDwwKSB7CistCQkJc2F2ZWRlcnJubyA9IGVycm5vOworLQkJCWVyciA9IC0xOworLQkJCWxv Z19lcnIoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfVURQLCAiVW5hYmxlIHRvIHNldCBSRUNWUEtU SU5GTyBvbiBzb2NrZXQ6ICVzIiwKKy0JCQkJc3RyZXJyb3Ioc2F2ZWRlcnJubykpOworLQkJCWdv dG8gZXhpdF9lcnJvcjsKKy0JCX0KKy0JCWxvZ19kZWJ1ZyhrbmV0X2gsIEtORVRfU1VCX1RSQU5T UF9VRFAsICJJUFY2X1JFQ1ZQS1RJTkZPIGVuYWJsZWQgb24gc29ja2V0OiAlaSIsIHNvY2spOwor LQl9CistI2VuZGlmCisgI2lmZGVmIElQVjZfUkVDVkVSUgorIAlpZiAoa25fbGluay0+c3JjX2Fk ZHIuc3NfZmFtaWx5ID09IEFGX0lORVQ2KSB7CistCQlpbnQgdmFsdWUgPSAxOworKwkJdmFsdWUg PSAxOworIAkJaWYgKHNldHNvY2tvcHQoc29jaywgU09MX0lQVjYsIElQVjZfUkVDVkVSUiwgJnZh bHVlLCBzaXplb2YodmFsdWUpKSA8MCkgeworIAkJCXNhdmVkZXJybm8gPSBlcnJubzsKKyAJCQll cnIgPSAtMTsKK0BAIC0xNTIsNiArMTI4LDcgQEAgaW50IHVkcF90cmFuc3BvcnRfbGlua19zZXRf Y29uZmlnKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1Y3Qga25ldF9saW5rICprbl9saW4KKyAJ CQlzdHJlcnJvcihzYXZlZGVycm5vKSk7CisgCQlnb3RvIGV4aXRfZXJyb3I7CisgCX0KKysKKyAJ bWVtc2V0KCZldiwgMCwgc2l6ZW9mKHN0cnVjdCBlcG9sbF9ldmVudCkpOworIAlldi5ldmVudHMg PSBFUE9MTElOOworIAlldi5kYXRhLmZkID0gc29jazsKK0BAIC0xNjYsNyArMTQzLDcgQEAgaW50 IHVkcF90cmFuc3BvcnRfbGlua19zZXRfY29uZmlnKGtuZXRfaGFuZGxlX3Qga25ldF9oLCBzdHJ1 Y3Qga25ldF9saW5rICprbl9saW4KKyAKKyAJaW5mby0+b25fZXBvbGwgPSAxOworIAorLQlpZiAo X3NldF9mZF90cmFja2VyKGtuZXRfaCwgc29jaywgS05FVF9UUkFOU1BPUlRfVURQLCAwLCBzb2Nr YWRkcl9sZW4oJmtuX2xpbmstPnNyY19hZGRyKSwgaW5mbywgLTEpIDwgMCkgeworKwlpZiAoX3Nl dF9mZF90cmFja2VyKGtuZXRfaCwgc29jaywgS05FVF9UUkFOU1BPUlRfVURQLCAwLCBzb2NrYWRk cl9sZW4oJmtuX2xpbmstPnNyY19hZGRyKSwgaW5mbykgPCAwKSB7CisgCQlzYXZlZGVycm5vID0g ZXJybm87CisgCQllcnIgPSAtMTsKKyAJCWxvZ19lcnIoa25ldF9oLCBLTkVUX1NVQl9UUkFOU1Bf VURQLCAiVW5hYmxlIHRvIHNldCBmZCB0cmFja2VyOiAlcyIsCitAQCAtMjQxLDcgKzIxOCw3IEBA IGludCB1ZHBfdHJhbnNwb3J0X2xpbmtfY2xlYXJfY29uZmlnKGtuZXRfaGFuZGxlX3Qga25ldF9o LCBzdHJ1Y3Qga25ldF9saW5rICprbl9sCisgCQlpbmZvLT5vbl9lcG9sbCA9IDA7CisgCX0KKyAK Ky0JaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gsIGluZm8tPnNvY2tldF9mZCwgS05FVF9NQVhf VFJBTlNQT1JUUywgMCwgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5zcmNfYWRkciksIE5VTEwsIC0x KSA8IDApIHsKKysJaWYgKF9zZXRfZmRfdHJhY2tlcihrbmV0X2gsIGluZm8tPnNvY2tldF9mZCwg S05FVF9NQVhfVFJBTlNQT1JUUywgMCwgc29ja2FkZHJfbGVuKCZrbl9saW5rLT5zcmNfYWRkciks IE5VTEwpIDwgMCkgeworIAkJc2F2ZWRlcnJubyA9IGVycm5vOworIAkJZXJyID0gLTE7CisgCQls b2dfZXJyKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1VEUCwgIlVuYWJsZSB0byBzZXQgZmQgdHJh Y2tlcjogJXMiLAorQEAgLTQ4MSw3NyArNDU4LDExIEBAIGludCB1ZHBfdHJhbnNwb3J0X3R4X3Nv Y2tfZXJyb3Ioa25ldF9oYW5kbGVfdCBrbmV0X2gsIGludCBzb2NrZmQsIGludCBzdWJzeXMsIGlu CisgCXJldHVybiAwOworIH0KKyAKKy0vKgorLSAqIElmIHRoZSByZWNlaXZlZCBJUCBhZGRyIGRv ZXNuJ3QgbWF0Y2ggdGhlIGRlc3RpbmF0aW9uIElQCistICogdGhlbiB3ZWlyZCByb3V0aW5nIGlz IGdvaW5nIG9uLgorLSAqLworLXN0YXRpYyB2b2lkIGNoZWNrX2RzdF9hZGRyX2lzX3ZhbGlkKGtu ZXRfaGFuZGxlX3Qga25ldF9oLCBpbnQgc29ja2ZkLCBzdHJ1Y3QgbXNnaGRyICptc2cpCistewor LSNpZiBkZWZpbmVkKElQX1BLVElORk8pIHx8IGRlZmluZWQoSVBWNl9QS1RJTkZPKQorLSAgICAg ICAgc3RydWN0IGNtc2doZHIgKmNtc2c7CistCistCWZvciAoY21zZyA9IENNU0dfRklSU1RIRFIo bXNnKTsgY21zZyAhPSBOVUxMOyBjbXNnID0gQ01TR19OWFRIRFIobXNnLCBjbXNnKSkgeworLQkJ aW50IHBrdF9pZmluZGV4ID0gLTE7CistCQlpbnQgaWZpbmRleCA9IGtuZXRfaC0+a25ldF90cmFu c3BvcnRfZmRfdHJhY2tlcltzb2NrZmRdLmlmaW5kZXg7CistCQlzdHJ1Y3Qgc29ja2FkZHJfc3Rv cmFnZSBkc3RhZGRyOworLSNpZmRlZiBJUF9QS1RJTkZPCistCQlpZiAoY21zZy0+Y21zZ19sZXZl bCA9PSBTT0xfSVAgJiYgY21zZy0+Y21zZ190eXBlID09IElQX1BLVElORk8pIHsKKy0JCQlzdHJ1 Y3QgaW5fcGt0aW5mbyAqcGkgPSAodm9pZCopQ01TR19EQVRBKGNtc2cpOworLQkJCXN0cnVjdCBz b2NrYWRkcl9pbiAqZHN0YWRkcjQgPSAoc3RydWN0IHNvY2thZGRyX2luICopJmRzdGFkZHI7Cist CistCQkJcGt0X2lmaW5kZXggPSBwaS0+aXBpX2lmaW5kZXg7CistCQkJZHN0YWRkcjQtPnNpbl9m YW1pbHkgPSBBRl9JTkVUOworLQkJCWRzdGFkZHI0LT5zaW5fcG9ydCA9IDA7IC8qIHVua25vd24g dG8gUEtUSU5GTyAqLworLQkJCWRzdGFkZHI0LT5zaW5fYWRkci5zX2FkZHIgPSBwaS0+aXBpX2Fk ZHIuc19hZGRyOworLQkJfQorLSNlbmRpZgorLSNpZmRlZiBJUFY2X1BLVElORk8KKy0JCWlmIChj bXNnLT5jbXNnX2xldmVsID09IElQUFJPVE9fSVBWNiAmJiBjbXNnLT5jbXNnX3R5cGUgPT0gSVBW Nl9QS1RJTkZPKSB7CistCQkJc3RydWN0IGluNl9wa3RpbmZvICpwaSA9ICh2b2lkKilDTVNHX0RB VEEoY21zZyk7CistCQkJc3RydWN0IHNvY2thZGRyX2luNiAqZHN0YWRkcjYgPSAoc3RydWN0IHNv Y2thZGRyX2luNiAqKSZkc3RhZGRyOworLQkJCW1lbXNldChkc3RhZGRyNiwgMCwgc2l6ZW9mKHN0 cnVjdCBzb2NrYWRkcl9pbjYpKTsKKy0KKy0JCQlwa3RfaWZpbmRleCA9IHBpLT5pcGk2X2lmaW5k ZXg7CistCQkJZHN0YWRkcjYtPnNpbjZfZmFtaWx5ID0gQUZfSU5FVDY7CistCQkJZHN0YWRkcjYt PnNpbjZfcG9ydCA9IDA7IC8qIHVua25vd24gdG8gUEtUSU5GTyAqLworLQkJCW1lbWNweSgmZHN0 YWRkcjYtPnNpbjZfYWRkciwgKGNoYXIgKikmcGktPmlwaTZfYWRkciwgc2l6ZW9mKHBpLT5pcGk2 X2FkZHIpKTsKKy0JCX0KKy0jZW5kaWYKKy0JCWlmIChpZmluZGV4ICE9IC0xICYmIHBrdF9pZmlu ZGV4ICE9IC0xICYmIGlmaW5kZXggIT0gcGt0X2lmaW5kZXgpIHsKKy0JCQkJY2hhciBzcmNhZGRy X3NbS05FVF9NQVhfSE9TVF9MRU5dOworLQkJCQljaGFyIHNyY3BvcnRfc1tLTkVUX01BWF9QT1JU X0xFTl07CistCQkJCWNoYXIgZHN0YWRkcl9zW0tORVRfTUFYX0hPU1RfTEVOXTsKKy0JCQkJY2hh ciBkc3Rwb3J0X3NbS05FVF9NQVhfUE9SVF9MRU5dOworLQkJCQljaGFyIGV4cGVjdGVkX2lmbmFt ZVtJRl9OQU1FU0laRV07CistCQkJCWNoYXIgdXNlZF9pZm5hbWVbSUZfTkFNRVNJWkVdOworLQor LQkJCQkvKiBNYWtlIGFzIGRldGFpbGVkIGEgbWVzc2FnZSBhcyB3ZSBjYW4gKi8KKy0JCQkJaWYg KChpZl9pbmRleHRvbmFtZShwa3RfaWZpbmRleCwgdXNlZF9pZm5hbWUpID09IE5VTEwpIHx8Cist CQkJCSAgICAoaWZfaW5kZXh0b25hbWUoaWZpbmRleCwgZXhwZWN0ZWRfaWZuYW1lKSA9PSBOVUxM KSkgeworLQkJCQkJbG9nX3dhcm4oa25ldF9oLCBLTkVUX1NVQl9UUkFOU1BfVURQLCAiUmVjZWl2 ZWQgcGFja2V0IG9uIGlmaW5kZXggJWQgd2hlbiBleHBlY3RlZCBpZmluZGV4ICVkIiwgcGt0X2lm aW5kZXgsIGlmaW5kZXgpOworLQkJCQl9IGVsc2UgaWYgKGtuZXRfYWRkcnRvc3RyKG1zZy0+bXNn X25hbWUsIG1zZy0+bXNnX25hbWVsZW4sCistCQkJCQkJCSAgc3JjYWRkcl9zLCBzaXplb2Yoc3Jj YWRkcl9zKSwKKy0JCQkJCQkJICBzcmNwb3J0X3MsIHNpemVvZihzcmNwb3J0X3MpKSAhPSAwKSB7 CistCQkJCQlsb2dfd2FybihrbmV0X2gsIEtORVRfU1VCX1RSQU5TUF9VRFAsICJSZWNlaXZlZCBw YWNrZXQgb24gaS9mICVzIHdoZW4gZXhwZWN0ZWQgaS9mICVzIiwgdXNlZF9pZm5hbWUsIGV4cGVj dGVkX2lmbmFtZSk7CistCQkJCX0gZWxzZSBpZiAoa25ldF9hZGRydG9zdHIoKHN0cnVjdCBzb2Nr YWRkcl9zdG9yYWdlICopJmRzdGFkZHIsIHNpemVvZihkc3RhZGRyKSwKKy0JCQkJCQkJICBkc3Rh ZGRyX3MsIHNpemVvZihkc3RhZGRyX3MpLAorLQkJCQkJCQkgIGRzdHBvcnRfcywgc2l6ZW9mKGRz dHBvcnRfcykpICE9IDApIHsKKy0JCQkJCWxvZ193YXJuKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQ X1VEUCwgIlJlY2VpdmVkIHBhY2tldCBmcm9tICVzIG9uIGkvZiAlcyB3aGVuIGV4cGVjdGVkICVz Iiwgc3JjYWRkcl9zLCB1c2VkX2lmbmFtZSwgZXhwZWN0ZWRfaWZuYW1lKTsKKy0JCQkJfSBlbHNl IHsKKy0JCQkJCWxvZ193YXJuKGtuZXRfaCwgS05FVF9TVUJfVFJBTlNQX1VEUCwgIlJlY2VpdmVk IHBhY2tldCBmcm9tICVzIHRvICVzIG9uIGkvZiAlcyB3aGVuIGV4cGVjdGVkICVzIiwgc3JjYWRk cl9zLCBkc3RhZGRyX3MsIHVzZWRfaWZuYW1lLCBleHBlY3RlZF9pZm5hbWUpOworLQkJCQl9Cist CQl9CistCX0KKy0jZW5kaWYKKy19CistCisgaW50IHVkcF90cmFuc3BvcnRfcnhfaXNfZGF0YShr bmV0X2hhbmRsZV90IGtuZXRfaCwgaW50IHNvY2tmZCwgc3RydWN0IGtuZXRfbW1zZ2hkciAqbXNn KQorIHsKKyAJaWYgKG1zZy0+bXNnX2xlbiA9PSAwKQorIAkJcmV0dXJuIEtORVRfVFJBTlNQT1JU X1JYX05PVF9EQVRBX0NPTlRJTlVFOworIAorLQljaGVja19kc3RfYWRkcl9pc192YWxpZChrbmV0 X2gsIHNvY2tmZCwgJm1zZy0+bXNnX2hkcik7CistCisgCXJldHVybiBLTkVUX1RSQU5TUE9SVF9S WF9JU19EQVRBOworIH0KKyAKKy0tIAorMi4zOS41CisKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRj aGVzL3NlcmllcyBiL2RlYmlhbi9wYXRjaGVzL3NlcmllcwppbmRleCAzZjY1NzJhMi4uNjMzNjky ZGIgMTAwNjQ0Ci0tLSBhL2RlYmlhbi9wYXRjaGVzL3NlcmllcworKysgYi9kZWJpYW4vcGF0Y2hl cy9zZXJpZXMKQEAgLTEgKzEsMiBAQAogMDAwMS1jb21wcmVzcy11c2UtbHpvMXhfZGVjb21wcmVz c19zYWZlLnBhdGNoCiswMDAyLVJldmVydC1DaGVjay1wYWNrZXRzLWNvbWUtZnJvbS10aGUtY29y cmVjdC1pbnRlcmZhY2UucGF0Y2gKLS0gCjIuMzkuNQoKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZl bEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFp bG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK