From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=13.75.44.102 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793707078; b=dOGnGXw5gSSJAkAe/NLPuoz2mtblAmJrWFYX+vglgSbtVq8XU3QnXr4wmiA+Xksj7fvl A7ORYQQarHAlWpxiZRD+UsxdHvYLQdTzxJIwkHxm36nhxtp+x1eW+I3/rLsj/biJOT7eQ CLg/meMO5VRscVVH2aT9ZatfpUXzV2P1fN+ycpk0EKccEVbf6q6xVPhy3eGFVrCkaXB/e rgih49ez/jWQNuyZ4ZsBx04GXLkKqJ+zMbpR6ukGD6W2D+GOqbidhQlC8D82Ok3wA5w17 yeILGajbJzQ+vzZ6hXuIza2cnnwTna5rBkFQY/g3DlR11uEKLs61zpNlG1bLQtZf0/g== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793707078; h=DMARC-Filter:Received:X-Originating-IP:Date:X-CM-HeaderCharset:From: To:Cc:Subject:X-Priority:X-Mailer:In-Reply-To:References: X-CM-CTRLMSGS:Content-Type:MIME-Version:Message-ID:X-Coremail-Locale: X-CM-TRANSID:X-CM-SenderInfo:X-Coremail-Antispam; bh=FIXIAalKiN5azGTuSPy2jCGSmYw1++LGtxlfB+4Trn0=; b=Rj9M5M9SPKtw8VBR9DAnda7CkuG8JlP98pX9GxflUUL1uFFNyDT6GLXTO0cQ98uMgYmS 6Z6Pg5Ajv5vcSU5J0jXTLZ31aIudw4hvrxmgkpVzlOq/Tkbo2YRz6XeFWomvs4xbsJIF4 IPRP7YZa2d7Z9uaGskKEv4Ls03n+9IYHBDlUAjcm4cK+z0EC2xXY+CCroYlO9mHUUQczt DbMZ3ypUQ15Bs4TXz8egGABuD/v3yGt2Z4mv6h4QSLN77L7y5PET9IQDSmZyWl0DqeDFW n4CmQZlDieXCWHAV4ROqTogUJa1lPOvcfgdM2MuCHbBH7YFDChVJTt6Bisplq3agTXg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none header.from=hust.edu.cn; spf=pass smtp.mailfrom=hust.edu.cn; arc=none smtp.remote-ip=13.75.44.102 Received: from azure-sdnproxy.icoremail.net (azure-sdnproxy.icoremail.net [13.75.44.102]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 67AD5606A326; Tue, 3 Nov 2026 11:57:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 67AD5606A326 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=hust.edu.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=hust.edu.cn Received: from xuhx$hust.edu.cn ( [10.12.169.72] ) by ajax-webmail-app2 (Coremail) ; Tue, 3 Nov 2026 19:57:44 +0800 (GMT+08:00) Date: Tue, 3 Nov 2026 19:57:44 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: =?UTF-8?B?5b6Q5pmX57+U?= To: davem@davemloft.net, edumazet@kernel.org, kuba@kernel.org, pabeni@redhat.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: net: rtnetlink: rtnl_link_unregister() vs in-flight RTM_GETLINK dump readers -- v7.3 lacks the synchronize_rcu() fix (Fixes: 6b57ff21a310 family); A/B reproduction on stock 7.3 X-Priority: 3 X-Mailer: Coremail Webmail Server Version 2025.3-cmXT6 build 20260810(6c94e3b5) Copyright (c) 2002-2026 www.mailtech.cn hust In-Reply-To: <2026102727-data-sequel-ce41@gregkh> References: <4c7f9772.192e1.1a17d5c2ed5.Coremail.xuhx@hust.edu.cn> <2026102727-data-sequel-ce41@gregkh> X-CM-CTRLMSGS: =?B?nXy/FDiH6nJ5xwDR7hwMki1N8jM= Content-Type: multipart/mixed; boundary="----=_Part_402402_1633031782.1793707064559" X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Message-ID: <42fe949f.1d67d.1a1a145bcf0.Coremail.xuhx@hust.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID:IQEQrMBGb3g4zOlqKRtvAA--.11820W X-CM-SenderInfo: bgsqjkayqyjmo6kx23oohg3hdfq/1tbiAQoAB2rot+yi2AABsu X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWxJw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= ------=_Part_402402_1633031782.1793707064559 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 T24gdjcuMywgcnRubF9saW5rX3VucmVnaXN0ZXIoKSByZW1vdmVzIHRoZSBydG5sX2xpbmtfb3Bz IGZyb20gdGhlCmdsb2JhbCBsaXN0IGFuZCBpbW1lZGlhdGVseSBkZXN0cm95cyB0aGUgZW1iZWRk ZWQgc3JjdV9zdHJ1Y3QgYW5kCmZyZWVzIHRoZSBvcHMgbWVtb3J5IC0tIGEgY29uY3VycmVudCBS VE1fR0VUTElOSyBkdW1wIHRoYXQgYWxyZWFkeQpmb3VuZCB0aGUgb3BzIChydG5sX2xpbmtfb3Bz X2dldCgpLCBydG5ldGxpbmsuYzo1OTkgaGFuZC1vZmYgaW5zaWRlCmFuIFJDVSByZWFkIGNyaXRp Y2FsIHNlY3Rpb24gYXQgOjU5NSkgYnV0IGhhcyBub3QgeWV0IHRha2VuCm9wcy0+c3JjdSB3aWxs LCBhZnRlciB0aGUgZnJlZSwgZXhlY3V0ZSBfX3NyY3VfcmVhZF9sb2NrKCkgLwpfX3NyY3VfcmVh ZF91bmxvY2soKSBvbiBmcmVlZCBtZW1vcnk6IHR3byByZWFkcyBvZiB0aGUgZGVzdHJveWVkCm9i amVjdCAoc3NwLT5zcmN1X2N0cnAsIHNzcC0+c2RhKSB3aG9zZSBzdWJzZXF1ZW50IHBlcmNwdSBj b3VudGVyCndyaXRlcyBsYW5kIHdoZXJldmVyIHRoZSBmcmVlZCBwZXJjcHUgcG9pbnRlcnMgcG9p bnQgLS0gZm9yIGEgbW9kdWxlCnJ0bmxfbGlua19vcHMsIHRoZSBvcHMgKGFuZCBpdHMgc3JjdSkg bGl2ZSBpbiBtb2R1bGUgbWVtb3J5LCBzbwptb2R1bGVfbWVtZnJlZSgpIGlzIHRoZSBmcmVlaW5n IHNpZGUuICBVcHN0cmVhbSBhbHJlYWR5IGZpeGVkIHRoaXMKd2l0aCBhIHN5bmNocm9uaXplX3Jj dSgpIGluIHJ0bmxfbGlua191bnJlZ2lzdGVyKCkgKHRoZSBwYXRjaCB3aXRoCkZpeGVzOiA2YjU3 ZmYyMWEzMTA7IGl0cyBvd24gY29tbWVudDogIldhaXQgZm9yIHJ0bmxfbGlua19vcHNfZ2V0KCkK cmVhZGVycyB0aGF0IGZvdW5kIG9wcyBidXQgaGF2ZSBub3QgeWV0IHRha2VuIG9wcy0+c3JjdSIp LiAgdjcuMwpkb2VzIG5vdCBjb250YWluIGl0LiAgSSB2ZXJpZmllZCBib3RoIHNpZGVzIG9uIGEg c3RvY2sgNy4zIEtBU0FOCmtlcm5lbDogcGFya2luZyBhIHJlYWwgZHVtcCByZWFkZXIgKGRyaXZl biBieSBhbiBvcmRpbmFyeQpSVE1fR0VUTElOSyArIElGTEFfTElOS0lORk8gZHVtcCByZXF1ZXN0 KSBleGFjdGx5IGF0IHRoZSA6NTk5CmhhbmQtb2ZmIGFuZCB1bnJlZ2lzdGVyaW5nK2ZyZWVpbmcg dW5kZXJuZWF0aCBwcm9kdWNlcyB0aHJlZSBLQVNBTgpzbGFiLXVzZS1hZnRlci1mcmVlIHJlcG9y dHMgKF9fc3JjdV9yZWFkX2xvY2srMHhlLCArMHgyNSwKX19zcmN1X3JlYWRfdW5sb2NrKzB4MWE7 IGJhZCBhZGRyZXNzID0gb3BzKzB4MTAgPSBvcHMtPnNyY3UpOyBhbmQKcmVidWlsZGluZyB0aGUg U0FNRSBrZXJuZWwgd2l0aCBPTkxZIHRoZSB1cHN0cmVhbSBvbmUtbGluZSBmaXgKZmxpcHMgdGhl IG91dGNvbWUgdG8gemVybyByZXBvcnRzLCB3aXRoIHRoZSBrZnJlZSBkZW1vbnN0cmFibHkKZGVs YXllZCB1bnRpbCB0aGUgcGFya2VkIHJlYWRlciBsZWZ0IGl0cyBSQ1Ugc2VjdGlvbi4gIE5hdHVy YWwKaGFtbWVyaW5nIGRpZCBub3QgaGl0ICh0aGUgaGFuZC1vZmYgd2luZG93IGlzIH4xMDAgbnMg YWdhaW5zdCBhCn40IG1zIHVucmVnaXN0ZXIgLS0gaXQgbmVlZHMgYSBwcmVlbXB0ZWQvcHJlZW1w dGlibGUtUkNVIHJlYWRlciksCndoaWNoIG1hdGNoZXMgdGhlIGZpeCdzIG93biByZWFzb25pbmc7 IHRoZSBjb250cm9sbGVkIHJ1biBtb2RlbHMKZXhhY3RseSB0aGF0IHByZWVtcHRpb24uICBUaGUg cHVycG9zZSBvZiB0aGlzIG1haWwgaXMgdG8gc3VwcG9ydAp0aGUgZml4J3MgcHJvcGFnYXRpb246 IHRyZWVzIHN0aWxsIGNhcnJ5aW5nIHRoZSB1bmZpeGVkCnJ0bmxfbGlua191bnJlZ2lzdGVyKCkg a2VlcCBhIGNyb3NzLUNQVSBVQUYgKHdyaXRlKSBwbHVzIHBvdGVudGlhbApmcmVlZC1tb2R1bGUg ZXhlY3V0aW9uIHJlYWNoYWJsZSBieSB1bnByaXZpbGVnZWQgbmV0bGluayBkdW1wcwpyYWNpbmcg YSBtb2R1bGUgdW5sb2FkLgoKClRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbjoKCiogVGhlIGdhcCAo djcuMywgbmV0L2NvcmUvcnRuZXRsaW5rLmMpCiAgcnRubF9kdW1wX2lmaW5mbygpIHJ1bnMgbG9j a2xlc3MgZm9yIGR1bXBzCiAgKFJUTkxfRkxBR19EVU1QX1VOTE9DS0VEKSwgdGFrZXMgcmN1X3Jl YWRfbG9jaygpIGF0IDo1OTUsIGNhbGxzCiAgbGlua2luZm9fdG9fa2luZF9vcHMoKSAtPiBydG5s X2xpbmtfb3BzX2dldCgpIHdoaWNoIHJldHVybnMgdGhlCiAgb3BzIHBvaW50ZXIgYXQgOjU5OSwg YW5kIG9ubHkgdGhlbiB0YWtlcyBvcHMtPnNyY3UKICAoc3JjdV9yZWFkX2xvY2spIHRvIGNhbGwg b3BzLT5kdW1waXQuICBydG5sX2xpbmtfdW5yZWdpc3RlcigpCiAgaG9sZHMgcnRubF9tdXRleCwg cmVtb3ZlcyB0aGUgb3BzIGZyb20gdGhlIGxpc3QsIGNhbGxzCiAgY2xlYW51cF9zcmN1X3N0cnVj dCgmb3BzLT5zcmN1KSBhbmQgcmV0dXJucyB0byB0aGUgbW9kdWxlLCB3aG9zZQogIGV4aXQgdGhl biBmcmVlcyB0aGUgbW9kdWxlIG1lbW9yeS4gIE5vdGhpbmcgYmV0d2VlbiB0aGUgOjU5OQogIGhh bmQtb2ZmIGFuZCB0aGUgc3JjdV9yZWFkX2xvY2sgaXMgd2FpdGVkIGZvciBvbiB0aGUgdW5yZWdp c3RlcgogIHNpZGUgaW4gNy4zIC0tIGhlbmNlIHRoZSBmaXgncyBzeW5jaHJvbml6ZV9yY3UoKS4K CiogRXZpZGVuY2UgKHN0b2NrIDcuMyBLQVNBTiwgUUVNVTsgQS9CIG9uIHRoZSBvbmUtbGluZSBm aXg7CiAgcmVwcm9kdWNlcnMgYXR0YWNoZWQpCiAgcnRubHJhY2UuYyByZWdpc3RlcnMgYSBremFs bG9jJ2QgcnRubF9saW5rX29wcyAoa2luZCAicnRubHJhY2UiKSwKICBwYXJrcyBhIGR1bXAgcmVh ZGVyIGJ5IGtwcm9iZSBhdCB0aGUgZXhhY3QgaGFuZC1vZmYgKHJldHVybgogIGFkZHJlc3MgcnRu bF9kdW1wX2lmaW5mbysweDM3NCwgRU5EQlItYWRqdXN0ZWQpLCBhbmQgdW5yZWdpc3RlcnMKICAr IGtmcmVlcyBmcm9tIGFub3RoZXIgdGhyZWFkIChtb2RlbGluZyBtb2R1bGVfZXhpdCAtPgogIG1v ZHVsZV9tZW1mcmVlKS4gIG5sciAodXNlcnNwYWNlKSBzZW5kcyB0aGUgSUZMQV9MSU5LSU5GTyBk dW1wCiAgcmVxdWVzdCB0aGF0IGRyaXZlcyB0aGUgcmVhZGVyIHBhdGguCiAgRGVmZWN0IGtlcm5l bCAoc3RvY2sgNy4zKToKICAgIHBhcmsgdD0xMjcwNDEgKDEwMDQgbXMpIC0+IHVucmVnaXN0ZXIr a2ZyZWUgYXQgdD0xMjcyNDkgKHBhcmsKICAgICsyMDggbXMsIHJlYWRlciBzdGlsbCBwYXJrZWQg NzkyIG1zKSAtPiBwYXJrIGVuZHMgdD0xMjgwNDU6CiAgICBCVUc6IEtBU0FOOiBzbGFiLXVzZS1h ZnRlci1mcmVlIGluIF9fc3JjdV9yZWFkX2xvY2srMHhlCiAgICBCVUc6IEtBU0FOOiBzbGFiLXVz ZS1hZnRlci1mcmVlIGluIF9fc3JjdV9yZWFkX2xvY2srMHgyNQogICAgQlVHOiBLQVNBTjogc2xh Yi11c2UtYWZ0ZXItZnJlZSBpbiBfX3NyY3VfcmVhZF91bmxvY2srMHgxYQogICAgICByZWFkIHN0 YWNrOiBfX3NyY3VfcmVhZF9sb2NrIDwtIHJ0bmxfZHVtcF9pZmluZm8rMHgzNzQgPC0KICAgICAg ICBydG5sX2R1bXBpdCA8LSBuZXRsaW5rX2R1bXAgPC0gcnRuZXRsaW5rX3Jjdl9tc2cgKHRhc2sg bmxyKQogICAgICBiYWQgYWRkcmVzcyA9IG9iamVjdCsweDEwID09IG9wcy0+c3JjdSAobWF0Y2hl cyB0aGUKICAgICAgZGlzYXNzZW1ibHkgbGVhIDB4MTAoJXJieCkpCiAgICAgIGFsbG9jOiBpbnNt b2Qga3phbGxvYzsgIGZyZWU6IHVucmVnaXN0ZXIgdGhyZWFkIGtmcmVlCiAgRml4ZWQga2VybmVs IChzYW1lIHNvdXJjZXMsIE9OTFkgdGhlIHVwc3RyZWFtIHN5bmNocm9uaXplX3JjdSgpCiAgYWRk ZWQgdG8gcnRubF9saW5rX3VucmVnaXN0ZXIoKSk6CiAgICBwYXJrIHQ9MTkxMzA1IC0+IHBhcmsg RU5EUyB0PTE5MjMwNiAtPiB1bnJlZ2lzdGVyK2tmcmVlCiAgICB0PTE5MjMwNyAtLSB0aGUgb3Jk ZXIgbGl0ZXJhbGx5IGludmVydHMgLS0gemVybyBLQVNBTiByZXBvcnRzLAogICAgZHVtcCBjb21w bGV0ZXMgd2l0aCB6ZXJvIGVycm9ycy4gIFNhbWUgbW9kdWxlLCBzYW1lIHBhcmtpbmcuCiAgTmF0 dXJhbCBydW5zICh0aHJlZSBzYW1wbGluZ3MsIHVwIHRvIH4yNjdrIGR1bXBzL3JlYWRlciBwbHVz CiAgNi1DUFUgcHJlZW1wdGlvbiBzcGlubmVycyk6IHplcm8gaGl0czsgdGhlIHdpbmRvdyBhcml0 aG1ldGljCiAgKH4xMDAgbnMgaGFuZC1vZmYgdnMgfjQgbXMgdW5yZWdpc3RlcikgZXhwbGFpbnMg aXQsIGFuZCB0aGUKICBjb250cm9sbGVkIHBhcmsgbW9kZWxzIHByZWNpc2VseSB0aGUgcHJlZW1w dGlvbiB0aGUgdXBzdHJlYW0KICBmaXgncyBjb21tZW50IGRlc2NyaWJlcy4KCgpSZWdhcmRzLApI YW54aWFuZyBYdQp4dWh4QGh1c3QuZWR1LmNuCg== ------=_Part_402402_1633031782.1793707064559 Content-Type: text/plain; name=nlr.c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nlr.c" Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCi8qCiAqIG5sci5jIC0gdXNlcnNw YWNlIFJUTV9HRVRMSU5LIGR1bXAgaGFtbWVyIGZvciB0aGUgcnRubF9saW5rX29wc19nZXQoKQog KiB2ZXJpZmljYXRpb24gKGF1ZGl0LXJlcG9ydCBDYXNlIDEpLgogKgogKiBTZW5kcyBOTE1fRl9E VU1QIFJUTV9HRVRMSU5LIHJlcXVlc3RzIGNhcnJ5aW5nIGEgbmVzdGVkCiAqIElGTEFfTElOS0lO Rk97IElGTEFfSU5GT19LSU5EPTxraW5kPiB9IGZpbHRlciwgd2hpY2ggZHJpdmVzIGV4YWN0bHk6 CiAqCiAqICAgcnRubF9kdW1wX2lmaW5mbyAtPiBsaW5raW5mb190b19raW5kX29wcyAtPiBydG5s X2xpbmtfb3BzX2dldChraW5kKQogKiAgICAgLT4gKGlubGluZWQpIGxpc3RfZm9yX2VhY2hfZW50 cnlfcmN1ICsgc3RyY21wICsgc3JjdV9yZWFkX2xvY2soJm9wcy0+c3JjdSkKICoKICogaS5lLiB0 aGUgYXVkaXRlZCByZWFkZXIgcGF0aC4gVGhlIGR1bXAgd2FsayBpdHNlbGYgcnVucyB3aXRob3V0 IFJUTkwKICogKFJUTV9HRVRMSU5LIGlzIHJlZ2lzdGVyZWQgUlROTF9GTEFHX0RVTVBfVU5MT0NL RUQpLCBzbyBpdCBpcyBmdWxseQogKiBjb25jdXJyZW50IHdpdGggcnRubF9saW5rX3VucmVnaXN0 ZXIoKS4KICoKICogVXNhZ2U6IG5sciA8a2luZD4gW3NlY29uZHNdCiAqLwojaW5jbHVkZSA8c3Rk aW8uaD4KI2luY2x1ZGUgPHN0ZGludC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxz dHJpbmcuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUg PHRpbWUuaD4KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsu aD4KI2luY2x1ZGUgPGxpbnV4L3J0bmV0bGluay5oPgoKI2lmbmRlZiBSVE5MX0ZBTUlMWV9NQVgK I2RlZmluZSBSVE5MX0ZBTUlMWV9NQVggMzMKI2VuZGlmCgojZGVmaW5lIE5MUl9CVUYgNjU1MzYK CnN0YXRpYyBpbnQgbWtfZHVtcF9yZXEoY2hhciAqYiwgaW50IGJsZW4sIGNvbnN0IGNoYXIgKmtp bmQsIHVpbnQzMl90IHNlcSkKewoJc3RydWN0IG5sbXNnaGRyICpuaCA9IChzdHJ1Y3Qgbmxtc2do ZHIgKiliOwoJc3RydWN0IGlmaW5mb21zZyAqaWZpOwoJc3RydWN0IHJ0YXR0ciAqbGluZm8sICpp a2luZDsKCWludCBrbGVuID0gc3RybGVuKGtpbmQpICsgMTsKCgltZW1zZXQoYiwgMCwgYmxlbik7 CgluaC0+bmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKHNpemVvZigqaWZpKSk7CgluaC0+bmxtc2df dHlwZSA9IFJUTV9HRVRMSU5LOwoJbmgtPm5sbXNnX2ZsYWdzID0gTkxNX0ZfUkVRVUVTVCB8IE5M TV9GX0RVTVA7CgluaC0+bmxtc2dfc2VxID0gc2VxOwoJbmgtPm5sbXNnX3BpZCA9IDA7CgoJaWZp ID0gTkxNU0dfREFUQShuaCk7CglpZmktPmlmaV9mYW1pbHkgPSBBRl9VTlNQRUM7CgoJLyogbmVz dGVkIElGTEFfTElOS0lORk8geyBJRkxBX0lORk9fS0lORCA9IGtpbmQgfSAqLwoJbGluZm8gPSAo c3RydWN0IHJ0YXR0ciAqKSgoY2hhciAqKWIgKyBOTE1TR19BTElHTihuaC0+bmxtc2dfbGVuKSk7 CglsaW5mby0+cnRhX3R5cGUgPSBJRkxBX0xJTktJTkZPOwoJbGluZm8tPnJ0YV9sZW4gPSBSVEFf TEVOR1RIKDApOwoKCWlraW5kID0gKHN0cnVjdCBydGF0dHIgKikoKGNoYXIgKilsaW5mbyArIFJU QV9BTElHTihsaW5mby0+cnRhX2xlbikpOwoJaWtpbmQtPnJ0YV90eXBlID0gSUZMQV9JTkZPX0tJ TkQ7Cglpa2luZC0+cnRhX2xlbiA9IFJUQV9MRU5HVEgoa2xlbik7CgltZW1jcHkoUlRBX0RBVEEo aWtpbmQpLCBraW5kLCBrbGVuKTsKCglsaW5mby0+cnRhX2xlbiA9IChjaGFyICopaWtpbmQgKyBS VEFfQUxJR04oaWtpbmQtPnJ0YV9sZW4pIC0gKGNoYXIgKilsaW5mbzsKCW5oLT5ubG1zZ19sZW4g PSAoY2hhciAqKWlraW5kICsgUlRBX0FMSUdOKGlraW5kLT5ydGFfbGVuKSAtIGI7CglyZXR1cm4g bmgtPm5sbXNnX2xlbjsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7Cgljb25z dCBjaGFyICpraW5kID0gYXJnYyA+IDEgPyBhcmd2WzFdIDogInJ0bmxyYWNlIjsKCWludCBzZWNz ID0gYXJnYyA+IDIgPyBhdG9pKGFyZ3ZbMl0pIDogMzA7CglpbnQgZmQsIGl0ZXJzID0gMCwgZXJy cyA9IDA7Cgl1aW50MzJfdCBzZXEgPSAxOwoJY2hhciByZXFbTkxSX0JVRl0sIGJ1ZltOTFJfQlVG XTsKCXN0cnVjdCB0aW1ldmFsIHR2ID0geyAudHZfc2VjID0gMSwgLnR2X3VzZWMgPSAwIH07Cgl0 aW1lX3QgdDAgPSB0aW1lKE5VTEwpOwoKCWZkID0gc29ja2V0KEFGX05FVExJTkssIFNPQ0tfUkFX LCBORVRMSU5LX1JPVVRFKTsKCWlmIChmZCA8IDApIHsKCQlwZXJyb3IoInNvY2tldCIpOwoJCXJl dHVybiAxOwoJfQoJc2V0c29ja29wdChmZCwgU09MX1NPQ0tFVCwgU09fUkNWVElNRU8sICZ0diwg c2l6ZW9mKHR2KSk7CgoJZnByaW50ZihzdGRlcnIsICJubHI6IGhhbW1lcmluZyBSVE1fR0VUTElO SyBkdW1wcyB3aXRoIGtpbmQ9JXMgZm9yICVkc1xuIiwKCQlraW5kLCBzZWNzKTsKCgl3aGlsZSAo dGltZShOVUxMKSAtIHQwIDwgc2VjcykgewoJCXN0cnVjdCBzb2NrYWRkcl9ubCBzYSA9IHsgLm5s X2ZhbWlseSA9IEFGX05FVExJTksgfTsKCQlzdHJ1Y3QgaW92ZWMgaW92ID0geyBidWYsIHNpemVv ZihidWYpIH07CgkJc3RydWN0IG1zZ2hkciBtc2cgPSB7CgkJCS5tc2dfbmFtZSA9ICZzYSwgLm1z Z19uYW1lbGVuID0gc2l6ZW9mKHNhKSwKCQkJLm1zZ19pb3YgPSAmaW92LCAubXNnX2lvdmxlbiA9 IDEsCgkJfTsKCQlpbnQgbGVuID0gbWtfZHVtcF9yZXEocmVxLCBzaXplb2YocmVxKSwga2luZCwg c2VxKyspOwoJCXNzaXplX3QgbjsKCgkJaWYgKHNlbmR0byhmZCwgcmVxLCBsZW4sIDAsIChzdHJ1 Y3Qgc29ja2FkZHIgKikmc2EsIHNpemVvZihzYSkpIDwgMCkgewoJCQllcnJzKys7CgkJCWNvbnRp bnVlOwoJCX0KCQkvKiBkcmFpbiB1bnRpbCBET05FIG9yIHRpbWVvdXQvZXJyb3IgKi8KCQlmb3Ig KDs7KSB7CgkJCW4gPSByZWN2bXNnKGZkLCAmbXNnLCAwKTsKCQkJaWYgKG4gPD0gMCkgewoJCQkJ ZXJycysrOwoJCQkJYnJlYWs7CgkJCX0KCQkJewoJCQkJc3RydWN0IG5sbXNnaGRyICpuaCA9IChz dHJ1Y3Qgbmxtc2doZHIgKilidWY7CgoJCQkJZm9yICg7IE5MTVNHX09LKG5oLCAodW5zaWduZWQp bik7CgkJCQkgICAgIG5oID0gTkxNU0dfTkVYVChuaCwgbikpIHsKCQkJCQlpZiAobmgtPm5sbXNn X3R5cGUgPT0gTkxNU0dfRE9ORSB8fAoJCQkJCSAgICBuaC0+bmxtc2dfdHlwZSA9PSBOTE1TR19F UlJPUikKCQkJCQkJZ290byBuZXh0X2l0ZXI7CgkJCQl9CgkJCX0KCQl9Cm5leHRfaXRlcjoKCQlp dGVycysrOwoJCWlmICgoaXRlcnMgJiAweDNmZikgPT0gMCkKCQkJZnByaW50ZihzdGRlcnIsICJu bHI6ICVkIGl0ZXJzICglZCBlcnJzKVxuIiwgaXRlcnMsIGVycnMpOwoJfQoJZnByaW50ZihzdGRl cnIsICJubHI6IGRvbmU6ICVkIGl0ZXJzLCAlZCBlcnJzXG4iLCBpdGVycywgZXJycyk7CglyZXR1 cm4gMDsKfQo= ------=_Part_402402_1633031782.1793707064559 Content-Type: text/plain; name=rtnlrace.c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rtnlrace.c" Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCi8qCiAqIHJ0bmxyYWNlLmMgLSBk eW5hbWljIHZlcmlmaWNhdGlvbiBmb3IgdGhlIGF1ZGl0LXJlcG9ydCBDYXNlIDE6CiAqCiAqICAg cnRubF9saW5rX3VucmVnaXN0ZXIoKSAobmV0L2NvcmUvcnRuZXRsaW5rLmM6NzAxLTcyOSkgaXMg bWlzc2luZyB0aGUKICogICBzeW5jaHJvbml6ZV9yY3UoKSB0aGF0IHVwc3RyZWFtICJydG5ldGxp bms6IHdhaXQgZm9yIFJDVSByZWFkZXJzIGluCiAqICAgcnRubF9saW5rX3VucmVnaXN0ZXIoKSIg KEZpeGVzOiA2YjU3ZmYyMWEzMTApIGFkZGVkLgogKgogKiAgIFJlYWRlciB3aW5kb3cgdW5kZXIg dGVzdCAocnRuZXRsaW5rLmM6NTk1LTYwNiwgcnRubF9saW5rX29wc19nZXQgaW5saW5lZCk6CiAq ICAgICAgICByY3VfcmVhZF9sb2NrKCk7ICAgICAgICAgICAgICAgICAgICAgICAvLyA6NTk1CiAq ICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSguLi4pICAgICAgICAgICAvLyA6NTk3ICBm b3VuZCBvcHMgdmlhIFJDVQogKiAgICAgICAgICBzdHJjbXAob3BzLT5raW5kLCBraW5kKSAgICAg ICAgICAgICAgLy8gOjU5OCAgbWF0Y2hlZAogKiAgICAgICAgICAqc3JjdV9pbmRleCA9IHNyY3Vf cmVhZF9sb2NrKCZvcHMtPnNyY3UpOyAgIC8vIDo1OTkgIDwtLSBoYW5kb2ZmCiAqICAgICAgICBy Y3VfcmVhZF91bmxvY2soKTsgICAgICAgICAgICAgICAgICAgICAvLyA6NjA2CiAqCiAqIENvbnRy b2xsZWQgbW9kZSAoc3RhbGxfdXMgPiAwKToKICogICAtIHJlZ2lzdGVycyBhIGt6YWxsb2MoKSdk IHJ0bmxfbGlua19vcHMgd2l0aCBraW5kICJydG5scmFjZSIKICogICAgIChydG5sX2xpbmtfcmVn aXN0ZXIgaXMgRVhQT1JUX1NZTUJPTF9HUEwpLCBzbyBhIHVzZXJzcGFjZSBSVE1fR0VUTElOSwog KiAgICAgZHVtcCB3aXRoIElGTEFfSU5GT19LSU5EPXJ0bmxyYWNlIHdhbGtzIGV4YWN0bHkgdGhl IGF1ZGl0ZWQgcGF0aC4KICogICAtIGEga3Byb2JlIG9uIF9fc3JjdV9yZWFkX2xvY2sgd2l0aCBy ZXR1cm4tYWRkcmVzcyBmaWx0ZXIgcGFya3MgdGhlIGR1bXAKICogICAgIHJlYWRlciBleGFjdGx5 IGF0IHRoZSA6NTk5IGhhbmRvZmYgKGluc2lkZSB0aGUgUkNVIHJlYWQtc2lkZSBjcml0aWNhbAog KiAgICAgc2VjdGlvbiwgYmVmb3JlIGFueSBTUkNVIHN0YXRlIGlzIHRvdWNoZWQpOiB0aGUgYXVk aXRlZCB3aW5kb3csIGVubGFyZ2VkCiAqICAgICBmb3IgZGV0ZXJtaW5pc3RpYyBvYnNlcnZhdGlv biAoc2FtZSB0ZWNobmlxdWUgYXMga21vZC9yNF9zdGFsbC5jKS4KICogICAtIHRoZSB1bnJlZ2lz dGVyIGt0aHJlYWQgdGhlbiBwZXJmb3JtcyB3aGF0IG1vZHVsZV9leGl0IGRvZXM6CiAqICAgICBy dG5sX2xpbmtfdW5yZWdpc3RlcihvcHMpIC0+IGxpc3RfZGVsX3JjdSArIHN5bmNocm9uaXplX3Ny Y3UgKHJldHVybnMKICogICAgIGltbWVkaWF0ZWx5OiB0aGUgcGFya2VkIHJlYWRlciBoYXMgTk9U IGVudGVyZWQgdGhlIFNSQ1UgcmVnaW9uKSArCiAqICAgICBjbGVhbnVwX3NyY3Vfc3RydWN0IChm cmVlcyBzcmN1X3VzYWdlIGFuZCB0aGUgcGVyY3B1IHNkYSwgc2V0cwogKiAgICAgc3NwLT5zcmN1 X3N1cC9zZGEgdG8gTlVMTCwgbGVhdmVzIHNyY3VfY3RycCBkYW5nbGluZyksIHRoZW4ga2ZyZWUo b3BzKQogKiAgICAgKG1vZGVscyBtb2R1bGVfbWVtZnJlZSBvZiB0aGUgdW5sb2FkZWQgbW9kdWxl J3Mgc3RhdGljIHN0b3JhZ2U7IEtBU0FOCiAqICAgICBzbGFiIHBvaXNvbmluZyBtYWtlcyB0aGUg cG9zdC1mcmVlIHJlYWQgb2JzZXJ2YWJsZSkuCiAqICAgLSB0aGUgcGFya2VkIHJlYWRlciByZXN1 bWVzOiBSRUFEX09OQ0Uoc3NwLT5zcmN1X2N0cnApIG9uIGZyZWVkIG1lbW9yeQogKiAgICAgPT4g S0FTQU4gdXNlLWFmdGVyLWZyZWUgUmVhZCBpbiBfX3NyY3VfcmVhZF9sb2NrLgogKgogKiBOYXR1 cmFsIG1vZGUgKHN0YWxsX3VzID09IDApOiBubyBrcHJvYmUsIG5vIGluaXQgcmVnaXN0cmF0aW9u LiBBIGt0aHJlYWQKICogaGFtbWVycyBremFsbG9jL3J0bmxfbGlua19yZWdpc3Rlci9ydG5sX2xp bmtfdW5yZWdpc3Rlci9rZnJlZSBjeWNsZXMgb2YgYQogKiBraW5kLSJydG5scmFjZSIgb3BzIHdo aWxlIHVzZXJzcGFjZSBoYW1tZXJzIGR1bXBzOyB0aGUgbmF0dXJhbAogKiBzdHJjbXAtPnNyY3Vf cmVhZF9sb2NrIHdpbmRvdyBpcyB0aGUgb25seSBpbnRlcmxlYXZpbmcgKHJtbW9kIHNoYXBlKS4K ICoKICogT2Zmc2V0cyBmb3IgYnVpbGQta2FzYW4tNy4zL3ZtbGludXggKHJ0bmxfbGlua19vcHNf Z2V0IGZ1bGx5IGlubGluZWQpOgogKiAgIHJ0bmxfZHVtcF9pZmluZm8gQCAweGZmZmZmZmZmODI2 ZTgwMzAgKHNpemUgMHg5MjUpCiAqICAgICBjYWxsIF9fc3JjdV9yZWFkX2xvY2sgQCArMHgzNmYg LT4gcmV0dXJuIGFkZHJlc3MgKzB4Mzc0IChrcHJvYmUgYmFzZSBza2lwcyBFTkRCUiwgbGl2ZSBm aWx0ZXIgKzB4MzcwKQogKi8KI2RlZmluZSBwcl9mbXQoZm10KSAiUlROTFJBQ0U6ICIgZm10Cgoj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiNpbmNsdWRl IDxsaW51eC9rZXJuZWwuaD4KI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KI2luY2x1ZGUgPGxp bnV4L2RlbGF5Lmg+CiNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiNpbmNsdWRlIDxsaW51eC9zcmN1 Lmg+CiNpbmNsdWRlIDxuZXQvcnRuZXRsaW5rLmg+CiNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+ CiNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KCnN0YXRpYyBpbnQgc3RhbGxfbXMgPSAxMDAwOwkv KiAwID0gbmF0dXJhbCBtb2RlICovCm1vZHVsZV9wYXJhbShzdGFsbF9tcywgaW50LCAwNjAwKTsK TU9EVUxFX1BBUk1fREVTQyhzdGFsbF9tcywgInBhcmsgdGhlIGR1bXAgcmVhZGVyIHRoaXMgbG9u ZyBhdCB0aGUgaGFuZG9mZiAoMD1uYXR1cmFsKTsgaW1wbGVtZW50ZWQgYXMgdWRlbGF5KDEwMDAw KSB4IE4gdG8gZG9kZ2UgeDg2IF9fYmFkX3VkZWxheSB0cnVuY2F0aW9uIGZvciA+MjBtcyB2YWx1 ZXMiKTsKCnN0YXRpYyBpbnQgdW5yZWdfZGVsYXlfbXMgPSAxMjA7Cm1vZHVsZV9wYXJhbSh1bnJl Z19kZWxheV9tcywgaW50LCAwNjAwKTsKCnN0YXRpYyBpbnQgbmF0dXJhbF9zZWNzID0gOTA7Cm1v ZHVsZV9wYXJhbShuYXR1cmFsX3NlY3MsIGludCwgMDYwMCk7CgpzdGF0aWMgdWxvbmcgcmV0X29m ZiA9IDB4MzcwOwptb2R1bGVfcGFyYW0ocmV0X29mZiwgdWxvbmcsIDA2MDApOwpNT0RVTEVfUEFS TV9ERVNDKHJldF9vZmYsICJyZXR1cm4tYWRkcmVzcyBvZmZzZXQgb2YgdGhlIF9fc3JjdV9yZWFk X2xvY2sgY2FsbCBpbnNpZGUgcnRubF9kdW1wX2lmaW5mbyIpOwoKc3RhdGljIHN0cnVjdCBydG5s X2xpbmtfb3BzICpyb3BzOwkvKiBjb250cm9sbGVkIG1vZGUgb25seSAqLwpzdGF0aWMgYXRvbWlj X3QgaGl0cyA9IEFUT01JQ19JTklUKDApOwpzdGF0aWMgYXRvbWljX3QgcGFya2VkID0gQVRPTUlD X0lOSVQoMCk7CnN0YXRpYyBhdG9taWNfdCBmcmVlZCA9IEFUT01JQ19JTklUKDApOwpzdGF0aWMg YXRvbWljX3Qgcm91bmRzID0gQVRPTUlDX0lOSVQoMCk7CnN0YXRpYyB1bnNpZ25lZCBsb25nIGJh c2VfYWRkcjsKc3RhdGljIHN0cnVjdCBrcHJvYmUga3A7CnN0YXRpYyBpbnQgcHJvYmVfbGl2ZTsK c3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqdXRocjsKCnN0YXRpYyBpbnQgc3RhbGxfcHJlKHN0 cnVjdCBrcHJvYmUgKnAsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQp7Cgl1bnNpZ25lZCBsb25nIHJh ID0gKih1bnNpZ25lZCBsb25nICopcmVncy0+c3A7CgoJaWYgKHJhID09IGJhc2VfYWRkciArIHJl dF9vZmYpIHsKCQlpbnQgaCA9IGF0b21pY19pbmNfcmV0dXJuKCZoaXRzKTsKCQl1NjQgdDAgPSBr dGltZV90b19tcyhrdGltZV9nZXQoKSk7CgkJaW50IGk7CgoJCWF0b21pY19zZXQoJnBhcmtlZCwg MSk7CgkJaWYgKGggPD0gMykKCQkJcHJfd2Fybigic3RhbGwgIyVkOiBwYXJraW5nIGR1bXAgcmVh ZGVyICVkIG1zIGF0IGhhbmRvZmYgKHJhPSVseCA9PSBydG5sX2R1bXBfaWZpbmZvKzB4JWx4KSB0 PSVsbHVcbiIsCgkJCQloLCBzdGFsbF9tcywgcmEsIHJldF9vZmYsIHQwKTsKCQlmb3IgKGkgPSAw OyBpIDwgc3RhbGxfbXMgLyAxMDsgaSsrKQoJCQl1ZGVsYXkoMTAwMDApOwoJCWlmIChoIDw9IDMp CgkJCXByX3dhcm4oInN0YWxsICMlZDogcGFyayBFTkQgdD0lbGx1IChoZWxkICVsbHUgbXMpXG4i LAoJCQkJaCwga3RpbWVfdG9fbXMoa3RpbWVfZ2V0KCkpLAoJCQkJa3RpbWVfdG9fbXMoa3RpbWVf Z2V0KCkpIC0gdDApOwoJfSBlbHNlIGlmIChyYSA+IGJhc2VfYWRkciAmJiByYSA8IGJhc2VfYWRk ciArIDB4MjAwMCkgewoJCXN0YXRpYyBhdG9taWNfdCBkYmc7CgoJCWludCBkID0gYXRvbWljX2lu Y19yZXR1cm4oJmRiZyk7CgoJCWlmIChkIDw9IDgpCgkJCXByX3dhcm4oIm5lYXItY2FsbGVyICMl ZCByYS1vZmY9MHglbHhcbiIsIGQsIHJhIC0gYmFzZV9hZGRyKTsKCX0KCXJldHVybiAwOwp9Cgpz dGF0aWMgdW5zaWduZWQgbG9uZyBzeW1fYWRkcihjb25zdCBjaGFyICpuYW1lKQp7CglzdHJ1Y3Qg a3Byb2JlIHByb2JlID0geyAuc3ltYm9sX25hbWUgPSBuYW1lLCB9OwoJdW5zaWduZWQgbG9uZyBh ZGRyID0gMDsKCglpZiAocmVnaXN0ZXJfa3Byb2JlKCZwcm9iZSkgPT0gMCkgewoJCWFkZHIgPSAo dW5zaWduZWQgbG9uZylwcm9iZS5hZGRyOwoJCXVucmVnaXN0ZXJfa3Byb2JlKCZwcm9iZSk7Cgl9 CglyZXR1cm4gYWRkcjsKfQoKc3RhdGljIGludCB1bnJlZ190aHIodm9pZCAqdW51c2VkKQp7Cglp ZiAoc3RhbGxfbXMgPiAwKSB7CgkJLyogY29udHJvbGxlZDogd2FpdCB1bnRpbCB0aGUga3Byb2Jl IHBhcmtlZCB0aGUgZHVtcCByZWFkZXIgKi8KCQl3aGlsZSAoIWF0b21pY19yZWFkKCZwYXJrZWQp ICYmICFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCgkJCW1zbGVlcCg1KTsKCQlpZiAoa3RocmVhZF9z aG91bGRfc3RvcCgpKQoJCQlyZXR1cm4gMDsKCQltc2xlZXAodW5yZWdfZGVsYXlfbXMpOwoKCQly dG5sX2xpbmtfdW5yZWdpc3Rlcihyb3BzKTsKCQkvKiBwcm90b2NvbCBldmlkZW5jZTogd2hhdCBk aWQgY2xlYW51cF9zcmN1X3N0cnVjdCBsZWF2ZSBiZWhpbmQ/CgkJICogKHJvcHMgaXRzZWxmIGlz IHN0aWxsIGFsbG9jYXRlZCBoZXJlLCBzbyB0aGVzZSByZWFkcyBhcmUgc2FmZSkgKi8KCQlwcl93 YXJuKCJwb3N0LXVucmVnaXN0ZXIgdD0lbGx1OiBvcHM9JXB4IHNyY3Uuc3JjdV9zdXA9JXB4IHNy Y3Uuc2RhPSVweCBzcmN1LnNyY3VfY3RycD0lcHhcbiIsCgkJCWt0aW1lX3RvX21zKGt0aW1lX2dl dCgpKSwgcm9wcywgcm9wcy0+c3JjdS5zcmN1X3N1cCwgcm9wcy0+c3JjdS5zZGEsCgkJCXJvcHMt PnNyY3Uuc3JjdV9jdHJwKTsKCQlrZnJlZShyb3BzKTsKCQlhdG9taWNfc2V0KCZmcmVlZCwgMSk7 CgkJcHJfd2Fybigib3BzIGtmcmVlKClkIChtb2RlbHMgbW9kdWxlX21lbWZyZWUgb2YgdGhlIHVu bG9hZGVkIG1vZHVsZSk7IHBhcmtlZCByZWFkZXIgd2lsbCByZXN1bWUgb24gZnJlZWQgbWVtb3J5 XG4iKTsKCX0gZWxzZSB7CgkJLyogbmF0dXJhbDogaGFtbWVyIGt6YWxsb2MvcmVnaXN0ZXIvdW5y ZWdpc3Rlci9rZnJlZSAocm1tb2Qgc2hhcGUpICovCgkJdTY0IHQwID0ga3RpbWVfdG9fbXMoa3Rp bWVfZ2V0KCkpOwoKCQl3aGlsZSAoIWt0aHJlYWRfc2hvdWxkX3N0b3AoKSAmJgoJCSAgICAgICBr dGltZV90b19tcyhrdGltZV9nZXQoKSkgLSB0MCA8ICh1NjQpbmF0dXJhbF9zZWNzICogMTAwMCkg ewoJCQlzdHJ1Y3QgcnRubF9saW5rX29wcyAqbyA9IGt6YWxsb2Moc2l6ZW9mKCpvKSwgR0ZQX0tF Uk5FTCk7CgoJCQlpZiAoIW8pCgkJCQlicmVhazsKCQkJby0+a2luZCA9ICJydG5scmFjZSI7CgkJ CWlmIChydG5sX2xpbmtfcmVnaXN0ZXIobykgPT0gMCkgewoJCQkJcnRubF9saW5rX3VucmVnaXN0 ZXIobyk7CgkJCQlrZnJlZShvKTsKCQkJfSBlbHNlIHsKCQkJCWtmcmVlKG8pOwoJCQl9CgkJCWF0 b21pY19pbmMoJnJvdW5kcyk7CgkJCWlmICgoYXRvbWljX3JlYWQoJnJvdW5kcykgJiAweDNmZikg PT0gMCkKCQkJCXByX3dhcm4oIm5hdHVyYWwgcm91bmQgJWRcbiIsIGF0b21pY19yZWFkKCZyb3Vu ZHMpKTsKCQl9CgkJcHJfd2FybigibmF0dXJhbCBkb25lOiAlZCByZWdpc3Rlci91bnJlZ2lzdGVy L2tmcmVlIHJvdW5kc1xuIiwKCQkJYXRvbWljX3JlYWQoJnJvdW5kcykpOwoJfQoJcmV0dXJuIDA7 Cn0KCnN0YXRpYyBpbnQgX19pbml0IHJ0bmxyYWNlX2luaXQodm9pZCkKewoJaW50IHJldDsKCglp ZiAoc3RhbGxfbXMgPiAwKSB7CgkJcm9wcyA9IGt6YWxsb2Moc2l6ZW9mKCpyb3BzKSwgR0ZQX0tF Uk5FTCk7CgkJaWYgKCFyb3BzKQoJCQlyZXR1cm4gLUVOT01FTTsKCQlyb3BzLT5raW5kID0gInJ0 bmxyYWNlIjsKCQlyZXQgPSBydG5sX2xpbmtfcmVnaXN0ZXIocm9wcyk7CgkJaWYgKHJldCkgewoJ CQlwcl9lcnIoInJ0bmxfbGlua19yZWdpc3RlciBmYWlsZWQ6ICVkXG4iLCByZXQpOwoJCQlrZnJl ZShyb3BzKTsKCQkJcm9wcyA9IE5VTEw7CgkJCXJldHVybiByZXQ7CgkJfQoJCXByX3dhcm4oInJl Z2lzdGVyZWQgcnRubF9saW5rX29wcyBraW5kPXJ0bmxyYWNlICglcHgpOyBzdGFydDogL25sciBy dG5scmFjZVxuIiwgcm9wcyk7CgoJCWJhc2VfYWRkciA9IHN5bV9hZGRyKCJydG5sX2R1bXBfaWZp bmZvIik7CgkJaWYgKCFiYXNlX2FkZHIpIHsKCQkJcHJfZXJyKCJjYW5ub3QgcmVzb2x2ZSBydG5s X2R1bXBfaWZpbmZvXG4iKTsKCQkJcmV0dXJuIC1FSU5WQUw7CgkJfQoJCWtwLnN5bWJvbF9uYW1l ID0gIl9fc3JjdV9yZWFkX2xvY2siOwoJCWtwLnByZV9oYW5kbGVyID0gc3RhbGxfcHJlOwoJCXJl dCA9IHJlZ2lzdGVyX2twcm9iZSgma3ApOwoJCWlmIChyZXQpIHsKCQkJcHJfZXJyKCJjYW5ub3Qg cmVnaXN0ZXIga3Byb2JlOiAlZFxuIiwgcmV0KTsKCQkJcmV0dXJuIHJldDsKCQl9CgkJcHJvYmVf bGl2ZSA9IDE7CgkJcHJfd2Fybigia3Byb2JlIG9uIF9fc3JjdV9yZWFkX2xvY2ssIHBhcmsgcmE9 cnRubF9kdW1wX2lmaW5mbysweCVseCAoJXB4KVxuIiwKCQkJcmV0X29mZiwgKHZvaWQgKikoYmFz ZV9hZGRyICsgcmV0X29mZikpOwoJfQoKCXV0aHIgPSBrdGhyZWFkX3J1bih1bnJlZ190aHIsIE5V TEwsICJydG5scmFjZV91bnJlZyIpOwoJaWYgKElTX0VSUih1dGhyKSkKCQlyZXR1cm4gUFRSX0VS Uih1dGhyKTsKCXByX3dhcm4oImFybWVkOiBzdGFsbF9tcz0lZCB1bnJlZ19kZWxheV9tcz0lZCBt b2RlPSVzXG4iLCBzdGFsbF9tcywKCQl1bnJlZ19kZWxheV9tcywgc3RhbGxfbXMgPiAwID8gImNv bnRyb2xsZWQiIDogIm5hdHVyYWwiKTsKCXJldHVybiAwOwp9CgpzdGF0aWMgdm9pZCBfX2V4aXQg cnRubHJhY2VfZXhpdCh2b2lkKQp7CglpZiAodXRocikKCQlrdGhyZWFkX3N0b3AodXRocik7Cglp ZiAocHJvYmVfbGl2ZSkKCQl1bnJlZ2lzdGVyX2twcm9iZSgma3ApOwoJaWYgKHN0YWxsX21zID4g MCAmJiBhdG9taWNfcmVhZCgmZnJlZWQpID09IDAgJiYgcm9wcykgewoJCXJ0bmxfbGlua191bnJl Z2lzdGVyKHJvcHMpOwoJCWtmcmVlKHJvcHMpOwoJfQoJcHJfd2FybigibW9kdWxlIGV4aXQgKGhp dHM9JWQgcm91bmRzPSVkKVxuIiwgYXRvbWljX3JlYWQoJmhpdHMpLAoJCWF0b21pY19yZWFkKCZy b3VuZHMpKTsKfQoKbW9kdWxlX2luaXQocnRubHJhY2VfaW5pdCk7Cm1vZHVsZV9leGl0KHJ0bmxy YWNlX2V4aXQpOwpNT0RVTEVfTElDRU5TRSgiR1BMIik7Cg== ------=_Part_402402_1633031782.1793707064559--