From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-189.mta0.migadu.com (out-189.mta0.migadu.com [91.218.175.189]) (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 83D8843031E for ; Mon, 20 Jul 2026 14:40:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.189 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784558460; cv=none; b=UjGhIDYwjiKA/GEJVMjbUM49AHIpoWeGsenNkYU3vhzGV66XRnFwbTlsK8l0Ty+KZeN3e0wE76fKkZu4f0J+hTA0b3BMnWc6pksjZ/Y+NbJ8Povgz4yR7/hvF3a5F+Rmt1zZMxsJPe2bsGB4UZ+8FnEt2eSs3kCvqu/DlPRDZuM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784558460; c=relaxed/simple; bh=X+l4s5oACxDuUjszfwq3bjz2V3p8Vmp5HNSG3+GMkjw=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=X076qGe20mh5dCHkgqUP5igW+JIyLHTRShn4WgLuCHeHQnIP8kM/leaXZn4kxaloTY18gX/1ROqBfmrZCAWfd7P9lT2qAGNElDxftGF9D6YUZl7m3cSFXFh7RdzWQVxb4kvA55MQfPd6TPqSD3ekHLqbiYL0JIP5wLvIyOLi7+8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=Pqo2xgJ5; arc=none smtp.client-ip=91.218.175.189 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="Pqo2xgJ5" Date: Mon, 20 Jul 2026 22:40:43 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1784558454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Z4gSt9cswUv2DtOGtLXPRqtGUR2VcGmgfvQCElRP9mg=; b=Pqo2xgJ5RDdj6NXs/jgeISfkdIg7i7qMUGkyZrTO/p1VM+BbXJW/RIUSk3umeDw8GfcuOR BQyPX9vHf6jSgJDsYezil7V5AOtFS0ol0tf8WF9flnT6iDNrezuc4gIkTJvqvd/XeVKzlm rjkJqxcCecDN47qIrUxa/KE9LXp2OPA= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Baoquan He To: Mike Rapoport , Pnina Feder Cc: Simon Horman , Andrew Morton , Pasha Tatashin , Pratyush Yadav , Thomas Bogendoerfer , Paul Walmsley , Palmer Dabbelt , Albert Ou , Dave Young , Jonathan Corbet , Alexandre Ghiti , kexec@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-riscv@lists.infradead.org, linux-doc@vger.kernel.org Subject: Re: [PATCH 0/4] vmcore-tasks: export per-task metadata to vmcoreinfo Message-ID: References: <20260622211430.4008899-1-pnina.feder@mobileye.com> <20260720091927.GA1736709@horms.kernel.org> Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Migadu-Flow: FLOW_OUT On 07/20/26 at 03:43pm, Mike Rapoport wrote: > Hi Simon, > > On Mon, Jul 20, 2026 at 10:19:27AM +0100, Simon Horman wrote: > > On Tue, Jul 07, 2026 at 09:21:58AM +0300, Mike Rapoport wrote: > > > On Tue, Jun 23, 2026 at 12:14:26AM +0300, Pnina Feder wrote: > > > > This series extends vmcoreinfo with struct offsets and sizes needed by > > > > the vmcore-tasks userspace tool to extract per-task state from a vmcore > > > > dump without requiring kernel debug symbols (DWARF/BTF). > > > > > > > > The vmcore-tasks tool reads /proc/vmcore (or a saved vmcore file) and > > > > reconstructs, for each task: > > > > - task name, pid, state, flags > > > > - VMA list (start, end, flags, backing file) > > > > - user register state (saved on the kernel stack at kernel entry) > > > > - user-space backtrace with VMA/filename mapping > > > > - kernel dmesg buffer > > > > > > > > This provides a lightweight post-mortem crash analysis capability for > > > > production environments where full debug info (DWARF/BTF) is not > > > > available. > > > > > > > > The companion userspace tool is submitted to kexec-tools: > > > > https://lore.kernel.org/all/20260622205550.1087163-1-pnina.feder@mobileye.com/ > > > > > > Sorry for the delay, this fell between the cracks somehow. > > > > > > The kernel side looks fine overall, but to merge it there should be an > > > agreement from the userspace side maintainers that vmcore-tasks is > > > something they are wishing to accept. > > > > Hi Mike, all, > > > > Sorry for the extended delay. > > > > I will send some minor feedback to the user-space tool patchset > > but overall, yes, this is something I would be happy to accept. > > > > I don't want to create a chicken-and-egg type problem here. > > But it's probably worth mentioning that usually features > > hit the kernel before the corresponding code is accepted > > into kexec-tools. > > Sorry if I wasn't clear. > > I didn't mean that the feature should be merged into kexec-tools before > merging the kernel bits. I just wanted to make sure there's no fundamental > issue from kexec-tools perspective. > > > Let me know how you would like to proceed. > > I'm going to wait for Baoquan's review and once that's done I'll pick up > the kernel bits. Oh, sorry, I just noticed this series, but a quick look give me a hint of 'No, I don't like it.' We have had Crash utility, Drgn, now a new one comes up. I have some concerns to Pnina: 1. Exporting maple tree internals (maple_node, maple_range_64, maple_arange_64, maple_metadata) as vmcoreinfo ABI is problematic. These are private implementation details, not stable structures like task_struct. Any refactoring of the maple tree will silently break the userspace tool. 2. Without DWARF/BTF, the debugging scope is inherently limited — no kernel stack backtrace, no symbol resolution, no variable access. That's essentially "ps + /proc/PID/maps" from a vmcore. Have you considered enabling CONFIG_DEBUG_INFO_BTF on your platforms instead? BTF is compact (typically < 1 MB) and would give drgn full access without needing vmlinux debug packages. That seems like a better return-on-investment than maintaining ~40 new vmcoreinfo exports. 3. Beyond the technical concerns, I wonder about adoption. vmcore-tasks targets a fairly narrow use case — platforms without DWARF/BTF, where you still have vmcore but can't ship vmlinux. Is Mobileye currently the only consumer? Are you guys already using it widely and fully? If this lands but doesn't see broader uptake, the ~40 exports risk becoming dead weight in vmcoreinfo — nobody actively uses them, but kernel changes still need to keep them consistent, or they silently rot and give users wrong results. Regards, Baoquan 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 AB1B8C4452A for ; Mon, 20 Jul 2026 14:41:25 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fW0XvTTimesZ5K4ibubO5GGlrNS/swd2DYyZ2j82nuY=; b=LwrSKokNd6kTRE RXdCobraEftvZBfDDbokkT6xDv+vR38RbPrSyMHWKS0Up4kOoSSXcJRhVuez+0KO1k3GbNpFI+ZlO bqnX5Rx5hpWAw5vDySCRW8GUVFPdWH2P+wDaPzDo7koQGqiTYZMXE8o/ZGzUCYhdHoSm0c2etbxEK Jf9+A5JR9vz8iy94Rxrc+SlMQNrw+R0HYpw2rHkrH7lnb9h+7BlTzKqhhwSZOjoYVR45m1OGD/QOR VQ3d4+57El7sGVNUHOsH6xlggFwHi8cdwxgG581gEFClnL8YEDWfEdPxZDFSo6BL4g3X9odbzNETt lMN4EVuMRlHOUs9rR+Mg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wlpB7-000000070iQ-0KVq; Mon, 20 Jul 2026 14:41:09 +0000 Received: from out-181.mta0.migadu.com ([2001:41d0:1004:224b::b5]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wlpB1-000000070dp-1fzJ for linux-riscv@lists.infradead.org; Mon, 20 Jul 2026 14:41:07 +0000 Date: Mon, 20 Jul 2026 22:40:43 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1784558454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Z4gSt9cswUv2DtOGtLXPRqtGUR2VcGmgfvQCElRP9mg=; b=Pqo2xgJ5RDdj6NXs/jgeISfkdIg7i7qMUGkyZrTO/p1VM+BbXJW/RIUSk3umeDw8GfcuOR BQyPX9vHf6jSgJDsYezil7V5AOtFS0ol0tf8WF9flnT6iDNrezuc4gIkTJvqvd/XeVKzlm rjkJqxcCecDN47qIrUxa/KE9LXp2OPA= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Baoquan He To: Mike Rapoport , Pnina Feder Cc: Simon Horman , Andrew Morton , Pasha Tatashin , Pratyush Yadav , Thomas Bogendoerfer , Paul Walmsley , Palmer Dabbelt , Albert Ou , Dave Young , Jonathan Corbet , Alexandre Ghiti , kexec@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-riscv@lists.infradead.org, linux-doc@vger.kernel.org Subject: Re: [PATCH 0/4] vmcore-tasks: export per-task metadata to vmcoreinfo Message-ID: References: <20260622211430.4008899-1-pnina.feder@mobileye.com> <20260720091927.GA1736709@horms.kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260720_074103_862741_28C57397 X-CRM114-Status: GOOD ( 34.05 ) 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 T24gMDcvMjAvMjYgYXQgMDM6NDNwbSwgTWlrZSBSYXBvcG9ydCB3cm90ZToKPiBIaSBTaW1vbiwK PiAKPiBPbiBNb24sIEp1bCAyMCwgMjAyNiBhdCAxMDoxOToyN0FNICswMTAwLCBTaW1vbiBIb3Jt YW4gd3JvdGU6Cj4gPiBPbiBUdWUsIEp1bCAwNywgMjAyNiBhdCAwOToyMTo1OEFNICswMzAwLCBN aWtlIFJhcG9wb3J0IHdyb3RlOgo+ID4gPiBPbiBUdWUsIEp1biAyMywgMjAyNiBhdCAxMjoxNDoy NkFNICswMzAwLCBQbmluYSBGZWRlciB3cm90ZToKPiA+ID4gPiBUaGlzIHNlcmllcyBleHRlbmRz IHZtY29yZWluZm8gd2l0aCBzdHJ1Y3Qgb2Zmc2V0cyBhbmQgc2l6ZXMgbmVlZGVkIGJ5Cj4gPiA+ ID4gdGhlIHZtY29yZS10YXNrcyB1c2Vyc3BhY2UgdG9vbCB0byBleHRyYWN0IHBlci10YXNrIHN0 YXRlIGZyb20gYSB2bWNvcmUKPiA+ID4gPiBkdW1wIHdpdGhvdXQgcmVxdWlyaW5nIGtlcm5lbCBk ZWJ1ZyBzeW1ib2xzIChEV0FSRi9CVEYpLgo+ID4gPiA+IAo+ID4gPiA+IFRoZSB2bWNvcmUtdGFz a3MgdG9vbCByZWFkcyAvcHJvYy92bWNvcmUgKG9yIGEgc2F2ZWQgdm1jb3JlIGZpbGUpIGFuZAo+ ID4gPiA+IHJlY29uc3RydWN0cywgZm9yIGVhY2ggdGFzazoKPiA+ID4gPiAgIC0gdGFzayBuYW1l LCBwaWQsIHN0YXRlLCBmbGFncwo+ID4gPiA+ICAgLSBWTUEgbGlzdCAoc3RhcnQsIGVuZCwgZmxh Z3MsIGJhY2tpbmcgZmlsZSkKPiA+ID4gPiAgIC0gdXNlciByZWdpc3RlciBzdGF0ZSAoc2F2ZWQg b24gdGhlIGtlcm5lbCBzdGFjayBhdCBrZXJuZWwgZW50cnkpCj4gPiA+ID4gICAtIHVzZXItc3Bh Y2UgYmFja3RyYWNlIHdpdGggVk1BL2ZpbGVuYW1lIG1hcHBpbmcKPiA+ID4gPiAgIC0ga2VybmVs IGRtZXNnIGJ1ZmZlcgo+ID4gPiA+IAo+ID4gPiA+IFRoaXMgcHJvdmlkZXMgYSBsaWdodHdlaWdo dCBwb3N0LW1vcnRlbSBjcmFzaCBhbmFseXNpcyBjYXBhYmlsaXR5IGZvcgo+ID4gPiA+IHByb2R1 Y3Rpb24gZW52aXJvbm1lbnRzIHdoZXJlIGZ1bGwgZGVidWcgaW5mbyAoRFdBUkYvQlRGKSBpcyBu b3QKPiA+ID4gPiBhdmFpbGFibGUuCj4gPiA+ID4gCj4gPiA+ID4gVGhlIGNvbXBhbmlvbiB1c2Vy c3BhY2UgdG9vbCBpcyBzdWJtaXR0ZWQgdG8ga2V4ZWMtdG9vbHM6Cj4gPiA+ID4gICBodHRwczov L2xvcmUua2VybmVsLm9yZy9hbGwvMjAyNjA2MjIyMDU1NTAuMTA4NzE2My0xLXBuaW5hLmZlZGVy QG1vYmlsZXllLmNvbS8KPiA+ID4gCj4gPiA+IFNvcnJ5IGZvciB0aGUgZGVsYXksIHRoaXMgZmVs bCBiZXR3ZWVuIHRoZSBjcmFja3Mgc29tZWhvdy4KPiA+ID4gCj4gPiA+IFRoZSBrZXJuZWwgc2lk ZSBsb29rcyBmaW5lIG92ZXJhbGwsIGJ1dCB0byBtZXJnZSBpdCB0aGVyZSBzaG91bGQgYmUgYW4K PiA+ID4gYWdyZWVtZW50IGZyb20gdGhlIHVzZXJzcGFjZSBzaWRlIG1haW50YWluZXJzIHRoYXQg dm1jb3JlLXRhc2tzIGlzCj4gPiA+IHNvbWV0aGluZyB0aGV5IGFyZSB3aXNoaW5nIHRvIGFjY2Vw dC4KPiA+IAo+ID4gSGkgTWlrZSwgYWxsLAo+ID4gCj4gPiBTb3JyeSBmb3IgdGhlIGV4dGVuZGVk IGRlbGF5Lgo+ID4gCj4gPiBJIHdpbGwgc2VuZCBzb21lIG1pbm9yIGZlZWRiYWNrIHRvIHRoZSB1 c2VyLXNwYWNlIHRvb2wgcGF0Y2hzZXQKPiA+IGJ1dCBvdmVyYWxsLCB5ZXMsIHRoaXMgaXMgc29t ZXRoaW5nIEkgd291bGQgYmUgaGFwcHkgdG8gYWNjZXB0Lgo+ID4gCj4gPiBJIGRvbid0IHdhbnQg dG8gY3JlYXRlIGEgY2hpY2tlbi1hbmQtZWdnIHR5cGUgcHJvYmxlbSBoZXJlLgo+ID4gQnV0IGl0 J3MgcHJvYmFibHkgd29ydGggbWVudGlvbmluZyB0aGF0IHVzdWFsbHkgZmVhdHVyZXMKPiA+IGhp dCB0aGUga2VybmVsIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBjb2RlIGlzIGFjY2VwdGVkCj4g PiBpbnRvIGtleGVjLXRvb2xzLgo+IAo+IFNvcnJ5IGlmIEkgd2Fzbid0IGNsZWFyLiAKPiAKPiBJ IGRpZG4ndCBtZWFuIHRoYXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIG1lcmdlZCBpbnRvIGtleGVj LXRvb2xzIGJlZm9yZQo+IG1lcmdpbmcgdGhlIGtlcm5lbCBiaXRzLiBJIGp1c3Qgd2FudGVkIHRv IG1ha2Ugc3VyZSB0aGVyZSdzIG5vIGZ1bmRhbWVudGFsCj4gaXNzdWUgZnJvbSBrZXhlYy10b29s cyBwZXJzcGVjdGl2ZS4KPiAKPiA+IExldCBtZSBrbm93IGhvdyB5b3Ugd291bGQgbGlrZSB0byBw cm9jZWVkLgo+IAo+IEknbSBnb2luZyB0byB3YWl0IGZvciBCYW9xdWFuJ3MgcmV2aWV3IGFuZCBv bmNlIHRoYXQncyBkb25lIEknbGwgcGljayB1cAo+IHRoZSBrZXJuZWwgYml0cy4KCk9oLCBzb3Jy eSwgSSBqdXN0IG5vdGljZWQgdGhpcyBzZXJpZXMsIGJ1dCBhIHF1aWNrIGxvb2sgZ2l2ZSBtZSBh IGhpbnQKb2YgJ05vLCBJIGRvbid0IGxpa2UgaXQuJyBXZSBoYXZlIGhhZCBDcmFzaCB1dGlsaXR5 LCBEcmduLCBub3cgYSBuZXcgb25lCmNvbWVzIHVwLiBJIGhhdmUgc29tZSBjb25jZXJucyB0byBQ bmluYToKCjEuIEV4cG9ydGluZyBtYXBsZSB0cmVlIGludGVybmFscyAobWFwbGVfbm9kZSwgbWFw bGVfcmFuZ2VfNjQsCiAgIG1hcGxlX2FyYW5nZV82NCwgbWFwbGVfbWV0YWRhdGEpIGFzIHZtY29y ZWluZm8gQUJJIGlzIHByb2JsZW1hdGljLgogICBUaGVzZSBhcmUgcHJpdmF0ZSBpbXBsZW1lbnRh dGlvbiBkZXRhaWxzLCBub3Qgc3RhYmxlIHN0cnVjdHVyZXMgbGlrZQogICB0YXNrX3N0cnVjdC4g QW55IHJlZmFjdG9yaW5nIG9mIHRoZSBtYXBsZSB0cmVlIHdpbGwgc2lsZW50bHkgYnJlYWsKICAg dGhlIHVzZXJzcGFjZSB0b29sLiAKCjIuIFdpdGhvdXQgRFdBUkYvQlRGLCB0aGUgZGVidWdnaW5n IHNjb3BlIGlzIGluaGVyZW50bHkgbGltaXRlZCDigJQgbm8KICAga2VybmVsIHN0YWNrIGJhY2t0 cmFjZSwgbm8gc3ltYm9sIHJlc29sdXRpb24sIG5vIHZhcmlhYmxlIGFjY2Vzcy4KICAgVGhhdCdz IGVzc2VudGlhbGx5ICJwcyArIC9wcm9jL1BJRC9tYXBzIiBmcm9tIGEgdm1jb3JlLiBIYXZlIHlv dQogICBjb25zaWRlcmVkIGVuYWJsaW5nIENPTkZJR19ERUJVR19JTkZPX0JURiBvbiB5b3VyIHBs YXRmb3JtcyBpbnN0ZWFkPwogICBCVEYgaXMgY29tcGFjdCAodHlwaWNhbGx5IDwgMSBNQikgYW5k IHdvdWxkIGdpdmUgZHJnbiBmdWxsIGFjY2VzcwogICB3aXRob3V0IG5lZWRpbmcgdm1saW51eCBk ZWJ1ZyBwYWNrYWdlcy4gVGhhdCBzZWVtcyBsaWtlIGEgYmV0dGVyCiAgIHJldHVybi1vbi1pbnZl c3RtZW50IHRoYW4gbWFpbnRhaW5pbmcgfjQwIG5ldyB2bWNvcmVpbmZvIGV4cG9ydHMuCgozLiBC ZXlvbmQgdGhlIHRlY2huaWNhbCBjb25jZXJucywgSSB3b25kZXIgYWJvdXQgYWRvcHRpb24uIHZt Y29yZS10YXNrcwogICB0YXJnZXRzIGEgZmFpcmx5IG5hcnJvdyB1c2UgY2FzZSDigJQgcGxhdGZv cm1zIHdpdGhvdXQgRFdBUkYvQlRGLCB3aGVyZQogICB5b3Ugc3RpbGwgaGF2ZSB2bWNvcmUgYnV0 IGNhbid0IHNoaXAgdm1saW51eC4gSXMgTW9iaWxleWUgY3VycmVudGx5CiAgIHRoZSBvbmx5IGNv bnN1bWVyPyBBcmUgeW91IGd1eXMgYWxyZWFkeSB1c2luZyBpdCB3aWRlbHkgYW5kIGZ1bGx5Pwog ICBJZiB0aGlzIGxhbmRzIGJ1dCBkb2Vzbid0IHNlZSBicm9hZGVyIHVwdGFrZSwgdGhlIH40MCBl eHBvcnRzIHJpc2sKICAgYmVjb21pbmcgZGVhZCB3ZWlnaHQgaW4gdm1jb3JlaW5mbyDigJQgbm9i b2R5IGFjdGl2ZWx5IHVzZXMgdGhlbSwgYnV0CiAgIGtlcm5lbCBjaGFuZ2VzIHN0aWxsIG5lZWQg dG8ga2VlcCB0aGVtIGNvbnNpc3RlbnQsIG9yIHRoZXkgc2lsZW50bHkKICAgcm90IGFuZCBnaXZl IHVzZXJzIHdyb25nIHJlc3VsdHMuIAoKUmVnYXJkcywKQmFvcXVhbgoKCgoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5n IGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==