From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F0DAD3F44CA; Wed, 1 Jul 2026 12:06:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782907611; cv=none; b=ZZ+mXdkl4Ln6ZzWDMrEpvG4J4Cz3IzegJYeFJ2C8O0HQiDvlCQnTvMxjLAxXDYLxNp+iKS2AfUXXC9zB22qhZclUzN0KCvmhcvxAqzDkm/na+4Sz5tz0rzAYTwMoLqrkasyDUjyp543/58dFr9HB96GvOO+JJE8NLmpz6HlXjNg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782907611; c=relaxed/simple; bh=Q5m+1kR6qSgjcHtq8/avoSqmbIOfvV1/csQ7HKjTpX0=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=un3ThnAj7VrdDtFRX5/yW44NFBk0eNR3FFbIAXfOnUtEPsrsZ8RYjjDEUrOy/7Hwb3svm4WDk1EeCCrQLc+3HOzbsecvDZDaTjfDrt+VVt+Ml+wX817wACK43K0Y5jR+peSftUar3H0UC6biNMx8RnnSIfZz1pjJpTsyXO8bTWo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LOWpQrRh; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LOWpQrRh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A713F1F00A3E; Wed, 1 Jul 2026 12:06:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782907609; bh=Hne4NKxMdbJBFIiD0wCOi2iipHevw0mcVZRCTIIGryU=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=LOWpQrRhH97A0fz5LUgzxyegEAGwXRsHMYb3vqySjqS9mxdabcfZ6VlENUAdS96Ud f7T0eRj3gJuhgXnXx9x+EGoOBhK1kRjaytar+2yi6TXjJbS6LJkNzrjs7cwdrkodEF n0XEF8l0UTwlAXaRhPhRiSgC1fR8EJ0B2ZfURlzSepWEU8Okyfa3gF7U+lAVb7Axjl dKy58x9a04WPcSeCb/qHszbUDg/WJTeaMcdVE8OaO0zh8Nm8t4ZSQIiWl+5Iu2fKWY SLv5HE3sCyI2ttG09B9QcM6JHgvwlXk/1QBxWHzEIZyiwDmKeSBj4CzodBHdri8oeV QjeXYEXSGlcxQ== From: Pratyush Yadav To: Tao Liu Cc: Jarkko Sakkinen , pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kexec@lists.infradead.org, bhe@redhat.com, zohar@linux.ibm.com, roberto.sassu@huawei.com, dmitry.kasatkin@gmail.com, eric.snowberg@oracle.com, linux-integrity@vger.kernel.org, pratyush@kernel.org, Markus.Elfring@web.de, kernel-janitors@vger.kernel.org Subject: Re: [PATCH v3] riscv: Fix a NULL pointer dereference in machine_kexec_prepare In-Reply-To: (Tao Liu's message of "Wed, 1 Jul 2026 16:58:09 +1200") References: <20260701025732.66330-2-ltao@redhat.com> Date: Wed, 01 Jul 2026 14:06:45 +0200 Message-ID: <2vxz33y2j4mi.fsf@kernel.org> User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk X-Mailing-List: linux-integrity@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wed, Jul 01 2026, Tao Liu wrote: > Hi Jarkko, > > On Wed, Jul 1, 2026 at 3:50=E2=80=AFPM Jarkko Sakkinen wrote: >> >> On Wed, Jul 01, 2026 at 02:57:33PM +1200, Tao Liu wrote: >> > A NULL pointer dereference issue is noticed in riscv's machine_kexec_p= repare, >> > where image->segment[i].buf might be NULL and copied unchecked. >> > >> > The NULL buf comes from security/integrity/ima/ima_kexec.c: >> > ima_add_kexec_buffer(), where kbuf is added by kexec_add_buffer(), >> > but kbuf.buffer is NULL >> >> This should have a proper call sequence. Now the root cause is >> obfuscated. > > Sure, I will attach the stack trace in v4. Here is the one: > > [ 62.867540] kexec_file(Image): Loaded kernel at 0x80200000 > bufsz=3D0x34ed800 memsz=3D0x35d0000 > [ 62.879983] Unable to handle kernel access to user memory without > uaccess routines at virtual address 0000000000000000 > [ 62.880736] Current kexec pgtable: 4K pagesize, 57-bit VAs, > pgdp=3D0x00000001062eb000 > [ 62.881185] [0000000000000000] pgd=3D00000000413b4401, > p4d=3D000000004151bc01, pud=3D00000000415b7801, pmd=3D0000000040af5801, > pte=3D0000000000000000 > [ 62.881969] Oops [#1] > [ 62.882077] Modules linked in: > [ 62.882717] CPU: 1 UID: 0 PID: 894 Comm: kexec Not tainted 7.1.1 #4 > PREEMPT(lazy) > [ 62.883037] Hardware name: QEMU QEMU Virtual Machine, BIOS > edk2-20260508-2.fc44 05/08/2026 > [ 62.883365] epc : __memcpy+0xd4/0xf8 > [ 62.883685] ra : machine_kexec_prepare+0x8a/0x298 > [ 62.883914] epc : ffffffff81393ee8 ra : ffffffff800366ca sp : > ff20000004a83d10 > [ 62.884214] gp : ffffffff83258db8 tp : ff6000008573db80 t0 : > ffffffff80033640 > [ 62.884433] t1 : 2152ffffffffffc0 t2 : 0000000003000000 s0 : > ff20000004a83d80 > [ 62.884710] s1 : 0000000000000000 a0 : ff20000004a83d10 a1 : > 0000000000000000 > [ 62.884987] a2 : 0000000000000028 a3 : 0000000000000028 a4 : > 0000000000000000 > [ 62.885208] a5 : 0000000000000000 a6 : 0000000104e33fff a7 : > 0000000000000000 > [ 62.885486] s2 : ff60000082a35800 s3 : 0000000000000000 s4 : > 0000000000000010 > [ 62.885774] s5 : 0000000000000028 s6 : ff20000004a83d10 s7 : > 0000000000000005 > [ 62.886005] s8 : 00000000000000c0 s9 : 000000000ac0d220 s10: > ffffffff835420e8 > [ 62.886218] s11: 0000000000000000 t3 : ffffff800000007c t4 : > ff1c000002138d00 > [ 62.886515] t5 : ffffffffffffffff t6 : ff20000004a83d10 ssp : > 0000000000000000 > [ 62.886860] status: 0000000200000120 badaddr: 0000000000000000 > cause: 000000000000000d > [ 62.887162] [] __memcpy+0xd4/0xf8 > [ 62.887388] [] __do_sys_kexec_file_load+0x1b2/0x338 > [ 62.887612] [] __riscv_sys_kexec_file_load+0x24/0x40 > [ 62.887855] [] do_trap_ecall_u+0x1a4/0x5a8 > [ 62.888134] [] handle_exception+0x16c/0x178 > [ 62.888445] Code: 7613 07f6 ca05 86b3 00c5 e7b3 01f5 8fd5 8b8d eb89 > (4198) 0591 > [ 62.889223] ---[ end trace 0000000000000000 ]--- > Segmentation fault kexec -l /boot/vmlinuz-7.1.1 > --initrd=3D/boot/initramfs-7.1.1.img --reuse-cmdline > > (gdb) p image->segment[0] > $3 =3D {{buf =3D 0x0, kbuf =3D 0x0}, bufsz =3D 0, mem =3D 10737586176, me= msz =3D 4096} > > The buf =3D 0x0 and bufsz =3D 0 comes from ima_add_kexec_buffer(), thought > I'm not sure why it added a NULL segment, but it is no harm to add a > NULL checker here in case any other scenarios similar as IMA. >From my reading of the IMA code, I think they do so because they don't want to add a buffer to the kimage just yet. This is because there can be IMA measurements between kexec load and kexec reboot. So they use kexec_add_buffer() to reserve the physical address space, then they vmap the destination pages in ima_kexec_post_load(), and then update the destination pages directly via a reboot notifier. So they do not have a buffer copied to the destination pages at the time of kexec_add_buffer(). Now all that is fairly convoluted and not very obvious, but I am not sure if there is a better way of doing this off the top of my head. > >> >> > >> > Fix this by simply adding a check before copy. >> > >> > Fixes: b7fb4d78a6ad ("RISC-V: use memcpy for kexec_file mode") >> > Acked-by: Baoquan He >> > Acked-by: Pratyush Yadav >> > Signed-off-by: Tao Liu [...] --=20 Regards, Pratyush Yadav From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E0F25C43458 for ; Wed, 1 Jul 2026 12:07:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=8bw7sx8jxBe5mzSUmk0mKpcyZz5ukFGRTRKsTBJAY24=; b=ISziNRYCcg5ojx j7GCyDUlAjlyCHtjjYTEKsvcyFc4zhldsayqYIC2IRt5zMKVkZWK4VybI8h95cRTcWAChc9OyY5JW 3esLsk6YeKBKXKWpZYA/gFUUISJJ5UAp/aHHUX2+iKPxMv1HGZ8FpAyYCwpJvM/MGC9gRZIGei4jJ PDLe6g5C0whaWfy7jmyQ62yPXYGNuolrplMBv+H89MLq35PWskD438CSn90sDxjMe+zQLrXCvto0T o1mChwcM2yIwC7GTQ6nbeOKlZB7QmROQni4flWdlWigmuOb5ArouyOVUj3wFY7XMWJ2x5okaKUMYg OsJJoXMis5FI81+KXAuw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wetiN-00000001kts-3wmz; Wed, 01 Jul 2026 12:06:51 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wetiM-00000001krO-2oeZ; Wed, 01 Jul 2026 12:06:50 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id D5BE26001D; Wed, 1 Jul 2026 12:06:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A713F1F00A3E; Wed, 1 Jul 2026 12:06:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782907609; bh=Hne4NKxMdbJBFIiD0wCOi2iipHevw0mcVZRCTIIGryU=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=LOWpQrRhH97A0fz5LUgzxyegEAGwXRsHMYb3vqySjqS9mxdabcfZ6VlENUAdS96Ud f7T0eRj3gJuhgXnXx9x+EGoOBhK1kRjaytar+2yi6TXjJbS6LJkNzrjs7cwdrkodEF n0XEF8l0UTwlAXaRhPhRiSgC1fR8EJ0B2ZfURlzSepWEU8Okyfa3gF7U+lAVb7Axjl dKy58x9a04WPcSeCb/qHszbUDg/WJTeaMcdVE8OaO0zh8Nm8t4ZSQIiWl+5Iu2fKWY SLv5HE3sCyI2ttG09B9QcM6JHgvwlXk/1QBxWHzEIZyiwDmKeSBj4CzodBHdri8oeV QjeXYEXSGlcxQ== From: Pratyush Yadav To: Tao Liu Cc: Jarkko Sakkinen , pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kexec@lists.infradead.org, bhe@redhat.com, zohar@linux.ibm.com, roberto.sassu@huawei.com, dmitry.kasatkin@gmail.com, eric.snowberg@oracle.com, linux-integrity@vger.kernel.org, pratyush@kernel.org, Markus.Elfring@web.de, kernel-janitors@vger.kernel.org Subject: Re: [PATCH v3] riscv: Fix a NULL pointer dereference in machine_kexec_prepare In-Reply-To: (Tao Liu's message of "Wed, 1 Jul 2026 16:58:09 +1200") References: <20260701025732.66330-2-ltao@redhat.com> Date: Wed, 01 Jul 2026 14:06:45 +0200 Message-ID: <2vxz33y2j4mi.fsf@kernel.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCBKdWwgMDEgMjAyNiwgVGFvIExpdSB3cm90ZToKCj4gSGkgSmFya2tvLAo+Cj4gT24g V2VkLCBKdWwgMSwgMjAyNiBhdCAzOjUw4oCvUE0gSmFya2tvIFNha2tpbmVuIDxqYXJra29Aa2Vy bmVsLm9yZz4gd3JvdGU6Cj4+Cj4+IE9uIFdlZCwgSnVsIDAxLCAyMDI2IGF0IDAyOjU3OjMzUE0g KzEyMDAsIFRhbyBMaXUgd3JvdGU6Cj4+ID4gQSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaXNz dWUgaXMgbm90aWNlZCBpbiByaXNjdidzIG1hY2hpbmVfa2V4ZWNfcHJlcGFyZSwKPj4gPiB3aGVy ZSBpbWFnZS0+c2VnbWVudFtpXS5idWYgbWlnaHQgYmUgTlVMTCBhbmQgY29waWVkIHVuY2hlY2tl ZC4KPj4gPgo+PiA+IFRoZSBOVUxMIGJ1ZiBjb21lcyBmcm9tIHNlY3VyaXR5L2ludGVncml0eS9p bWEvaW1hX2tleGVjLmM6Cj4+ID4gaW1hX2FkZF9rZXhlY19idWZmZXIoKSwgd2hlcmUga2J1ZiBp cyBhZGRlZCBieSBrZXhlY19hZGRfYnVmZmVyKCksCj4+ID4gYnV0IGtidWYuYnVmZmVyIGlzIE5V TEwKPj4KPj4gVGhpcyBzaG91bGQgaGF2ZSBhIHByb3BlciBjYWxsIHNlcXVlbmNlLiBOb3cgdGhl IHJvb3QgY2F1c2UgaXMKPj4gb2JmdXNjYXRlZC4KPgo+IFN1cmUsIEkgd2lsbCBhdHRhY2ggdGhl IHN0YWNrIHRyYWNlIGluIHY0LiBIZXJlIGlzIHRoZSBvbmU6Cj4KPiBbICAgNjIuODY3NTQwXSBr ZXhlY19maWxlKEltYWdlKTogTG9hZGVkIGtlcm5lbCBhdCAweDgwMjAwMDAwCj4gYnVmc3o9MHgz NGVkODAwIG1lbXN6PTB4MzVkMDAwMAo+IFsgICA2Mi44Nzk5ODNdIFVuYWJsZSB0byBoYW5kbGUg a2VybmVsIGFjY2VzcyB0byB1c2VyIG1lbW9yeSB3aXRob3V0Cj4gdWFjY2VzcyByb3V0aW5lcyBh dCB2aXJ0dWFsIGFkZHJlc3MgMDAwMDAwMDAwMDAwMDAwMAo+IFsgICA2Mi44ODA3MzZdIEN1cnJl bnQga2V4ZWMgcGd0YWJsZTogNEsgcGFnZXNpemUsIDU3LWJpdCBWQXMsCj4gcGdkcD0weDAwMDAw MDAxMDYyZWIwMDAKPiBbICAgNjIuODgxMTg1XSBbMDAwMDAwMDAwMDAwMDAwMF0gcGdkPTAwMDAw MDAwNDEzYjQ0MDEsCj4gcDRkPTAwMDAwMDAwNDE1MWJjMDEsIHB1ZD0wMDAwMDAwMDQxNWI3ODAx LCBwbWQ9MDAwMDAwMDA0MGFmNTgwMSwKPiBwdGU9MDAwMDAwMDAwMDAwMDAwMAo+IFsgICA2Mi44 ODE5NjldIE9vcHMgWyMxXQo+IFsgICA2Mi44ODIwNzddIE1vZHVsZXMgbGlua2VkIGluOgo+IFsg ICA2Mi44ODI3MTddIENQVTogMSBVSUQ6IDAgUElEOiA4OTQgQ29tbToga2V4ZWMgTm90IHRhaW50 ZWQgNy4xLjEgIzQKPiBQUkVFTVBUKGxhenkpCj4gWyAgIDYyLjg4MzAzN10gSGFyZHdhcmUgbmFt ZTogUUVNVSBRRU1VIFZpcnR1YWwgTWFjaGluZSwgQklPUwo+IGVkazItMjAyNjA1MDgtMi5mYzQ0 IDA1LzA4LzIwMjYKPiBbICAgNjIuODgzMzY1XSBlcGMgOiBfX21lbWNweSsweGQ0LzB4ZjgKPiBb ICAgNjIuODgzNjg1XSAgcmEgOiBtYWNoaW5lX2tleGVjX3ByZXBhcmUrMHg4YS8weDI5OAo+IFsg ICA2Mi44ODM5MTRdIGVwYyA6IGZmZmZmZmZmODEzOTNlZTggcmEgOiBmZmZmZmZmZjgwMDM2NmNh IHNwIDoKPiBmZjIwMDAwMDA0YTgzZDEwCj4gWyAgIDYyLjg4NDIxNF0gIGdwIDogZmZmZmZmZmY4 MzI1OGRiOCB0cCA6IGZmNjAwMDAwODU3M2RiODAgdDAgOgo+IGZmZmZmZmZmODAwMzM2NDAKPiBb ICAgNjIuODg0NDMzXSAgdDEgOiAyMTUyZmZmZmZmZmZmZmMwIHQyIDogMDAwMDAwMDAwMzAwMDAw MCBzMCA6Cj4gZmYyMDAwMDAwNGE4M2Q4MAo+IFsgICA2Mi44ODQ3MTBdICBzMSA6IDAwMDAwMDAw MDAwMDAwMDAgYTAgOiBmZjIwMDAwMDA0YTgzZDEwIGExIDoKPiAwMDAwMDAwMDAwMDAwMDAwCj4g WyAgIDYyLjg4NDk4N10gIGEyIDogMDAwMDAwMDAwMDAwMDAyOCBhMyA6IDAwMDAwMDAwMDAwMDAw MjggYTQgOgo+IDAwMDAwMDAwMDAwMDAwMDAKPiBbICAgNjIuODg1MjA4XSAgYTUgOiAwMDAwMDAw MDAwMDAwMDAwIGE2IDogMDAwMDAwMDEwNGUzM2ZmZiBhNyA6Cj4gMDAwMDAwMDAwMDAwMDAwMAo+ IFsgICA2Mi44ODU0ODZdICBzMiA6IGZmNjAwMDAwODJhMzU4MDAgczMgOiAwMDAwMDAwMDAwMDAw MDAwIHM0IDoKPiAwMDAwMDAwMDAwMDAwMDEwCj4gWyAgIDYyLjg4NTc3NF0gIHM1IDogMDAwMDAw MDAwMDAwMDAyOCBzNiA6IGZmMjAwMDAwMDRhODNkMTAgczcgOgo+IDAwMDAwMDAwMDAwMDAwMDUK PiBbICAgNjIuODg2MDA1XSAgczggOiAwMDAwMDAwMDAwMDAwMGMwIHM5IDogMDAwMDAwMDAwYWMw ZDIyMCBzMTA6Cj4gZmZmZmZmZmY4MzU0MjBlOAo+IFsgICA2Mi44ODYyMThdICBzMTE6IDAwMDAw MDAwMDAwMDAwMDAgdDMgOiBmZmZmZmY4MDAwMDAwMDdjIHQ0IDoKPiBmZjFjMDAwMDAyMTM4ZDAw Cj4gWyAgIDYyLjg4NjUxNV0gIHQ1IDogZmZmZmZmZmZmZmZmZmZmZiB0NiA6IGZmMjAwMDAwMDRh ODNkMTAgc3NwIDoKPiAwMDAwMDAwMDAwMDAwMDAwCj4gWyAgIDYyLjg4Njg2MF0gc3RhdHVzOiAw MDAwMDAwMjAwMDAwMTIwIGJhZGFkZHI6IDAwMDAwMDAwMDAwMDAwMDAKPiBjYXVzZTogMDAwMDAw MDAwMDAwMDAwZAo+IFsgICA2Mi44ODcxNjJdIFs8ZmZmZmZmZmY4MTM5M2VlOD5dIF9fbWVtY3B5 KzB4ZDQvMHhmOAo+IFsgICA2Mi44ODczODhdIFs8ZmZmZmZmZmY4MDFiMjUzYT5dIF9fZG9fc3lz X2tleGVjX2ZpbGVfbG9hZCsweDFiMi8weDMzOAo+IFsgICA2Mi44ODc2MTJdIFs8ZmZmZmZmZmY4 MDFiMjZlND5dIF9fcmlzY3Zfc3lzX2tleGVjX2ZpbGVfbG9hZCsweDI0LzB4NDAKPiBbICAgNjIu ODg3ODU1XSBbPGZmZmZmZmZmODEzOTVlYTQ+XSBkb190cmFwX2VjYWxsX3UrMHgxYTQvMHg1YTgK PiBbICAgNjIuODg4MTM0XSBbPGZmZmZmZmZmODEzYTllZWM+XSBoYW5kbGVfZXhjZXB0aW9uKzB4 MTZjLzB4MTc4Cj4gWyAgIDYyLjg4ODQ0NV0gQ29kZTogNzYxMyAwN2Y2IGNhMDUgODZiMyAwMGM1 IGU3YjMgMDFmNSA4ZmQ1IDhiOGQgZWI4OQo+ICg0MTk4KSAwNTkxCj4gWyAgIDYyLjg4OTIyM10g LS0tWyBlbmQgdHJhY2UgMDAwMDAwMDAwMDAwMDAwMCBdLS0tCj4gU2VnbWVudGF0aW9uIGZhdWx0 ICAgICAgICAga2V4ZWMgLWwgL2Jvb3Qvdm1saW51ei03LjEuMQo+IC0taW5pdHJkPS9ib290L2lu aXRyYW1mcy03LjEuMS5pbWcgLS1yZXVzZS1jbWRsaW5lCj4KPiAoZ2RiKSBwIGltYWdlLT5zZWdt ZW50WzBdCj4gJDMgPSB7e2J1ZiA9IDB4MCwga2J1ZiA9IDB4MH0sIGJ1ZnN6ID0gMCwgbWVtID0g MTA3Mzc1ODYxNzYsIG1lbXN6ID0gNDA5Nn0KPgo+IFRoZSBidWYgPSAweDAgYW5kIGJ1ZnN6ID0g MCBjb21lcyBmcm9tIGltYV9hZGRfa2V4ZWNfYnVmZmVyKCksIHRob3VnaHQKPiBJJ20gbm90IHN1 cmUgd2h5IGl0IGFkZGVkIGEgTlVMTCBzZWdtZW50LCBidXQgaXQgaXMgbm8gaGFybSB0byBhZGQg YQo+IE5VTEwgY2hlY2tlciBoZXJlIGluIGNhc2UgYW55IG90aGVyIHNjZW5hcmlvcyBzaW1pbGFy IGFzIElNQS4KCkZyb20gbXkgcmVhZGluZyBvZiB0aGUgSU1BIGNvZGUsIEkgdGhpbmsgdGhleSBk byBzbyBiZWNhdXNlIHRoZXkgZG9uJ3QKd2FudCB0byBhZGQgYSBidWZmZXIgdG8gdGhlIGtpbWFn ZSBqdXN0IHlldC4gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGNhbgpiZSBJTUEgbWVhc3VyZW1lbnRz IGJldHdlZW4ga2V4ZWMgbG9hZCBhbmQga2V4ZWMgcmVib290LiBTbyB0aGV5IHVzZQprZXhlY19h ZGRfYnVmZmVyKCkgdG8gcmVzZXJ2ZSB0aGUgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZSwgdGhlbiB0 aGV5IHZtYXAKdGhlIGRlc3RpbmF0aW9uIHBhZ2VzIGluIGltYV9rZXhlY19wb3N0X2xvYWQoKSwg YW5kIHRoZW4gdXBkYXRlIHRoZQpkZXN0aW5hdGlvbiBwYWdlcyBkaXJlY3RseSB2aWEgYSByZWJv b3Qgbm90aWZpZXIuIFNvIHRoZXkgZG8gbm90IGhhdmUgYQpidWZmZXIgY29waWVkIHRvIHRoZSBk ZXN0aW5hdGlvbiBwYWdlcyBhdCB0aGUgdGltZSBvZgprZXhlY19hZGRfYnVmZmVyKCkuCgpOb3cg YWxsIHRoYXQgaXMgZmFpcmx5IGNvbnZvbHV0ZWQgYW5kIG5vdCB2ZXJ5IG9idmlvdXMsIGJ1dCBJ IGFtIG5vdApzdXJlIGlmIHRoZXJlIGlzIGEgYmV0dGVyIHdheSBvZiBkb2luZyB0aGlzIG9mZiB0 aGUgdG9wIG9mIG15IGhlYWQuCgo+Cj4+Cj4+ID4KPj4gPiBGaXggdGhpcyBieSBzaW1wbHkgYWRk aW5nIGEgY2hlY2sgYmVmb3JlIGNvcHkuCj4+ID4KPj4gPiBGaXhlczogYjdmYjRkNzhhNmFkICgi UklTQy1WOiB1c2UgbWVtY3B5IGZvciBrZXhlY19maWxlIG1vZGUiKQo+PiA+IEFja2VkLWJ5OiBC YW9xdWFuIEhlIDxiaGVAcmVkaGF0LmNvbT4KPj4gPiBBY2tlZC1ieTogUHJhdHl1c2ggWWFkYXYg PHByYXR5dXNoQGtlcm5lbC5vcmc+Cj4+ID4gU2lnbmVkLW9mZi1ieTogVGFvIExpdSA8bHRhb0By ZWRoYXQuY29tPgpbLi4uXQoKLS0gClJlZ2FyZHMsClByYXR5dXNoIFlhZGF2CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5n IGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==