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 2662ACA6004 for ; Sat, 10 Oct 2026 04:44:32 +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=Qu3bRnfdZqeFSbQHQ44bGprdD3McXTa/cHR2N68VpqM=; b=iofurLPm+hKiSg kFRrptQ33t6tN7AuVLt5Aij8Ha09xG9kHW00jel8dtQlrGleR/bznpLGdL6UcKXAL7b+i951xtsyi 3c7+NFuPCOtKNcYdcnb65vDZoWXiAm1suFMNY8rgeZdcFuteyqG4HNYlW0/A64jkHMw/NQ8uVt078 dB/wnJzNBxyOw/YUWAVrGemJV3mS3hEhnSaTn//5ewEy3U8m4j8RzlrdODwXsJLS0oBc2IqhIboxG it0k8a4FRneTIkg52foTDxcKSDd0m4OrVHTOAD+tnB0KBJSeqoXxktOOfcrgiset9Zqfj9sAjtRED FGZIK+BXi2sN29ofhMww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xFOwM-00000007WRP-19Cl; Sat, 10 Oct 2026 04:44:10 +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 1xFOwL-00000007WRI-19hn for linux-riscv@lists.infradead.org; Sat, 10 Oct 2026 04:44:09 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 35AF260211; Sat, 10 Oct 2026 04:44:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 864141F000FF; Sat, 10 Oct 2026 04:44:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791607447; bh=xT7/Mi0qaqXIyk87RL5CcE2mpYwJiPSzCU7XHgZqedQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=EBxLWkiGrCVAEX3PNuWknOyibUZZGtpRgl5RTrsUWy5pXm2zUdT5OpkBcc9sguxwM txaXiLDGK7tFYh8LFWrBG6QyTkQ3YP+SfzXOn+9xZjef1UiqJIcqmK++OWh52YRCSB NyFwe/BhdmllXqgC5IVVtpu4h/V8YG0XB6oIkd7ciXpKb9ScRpCz18kB3ZwEcz2vs8 +tIj3Y440fp20HJGfT6azX3ejaqLm95t2TaCx3V2wbZK/1UW+2j12bLPkYnkn7Fpet zrrH9fKYdyQvpQ0fncq8RJSnflOmIJvrTsxXbWZpx5V6TV/wioZfDNRdH2E2GvB3pA g6/If0HdL/k5A== Date: Sat, 10 Oct 2026 12:24:04 +0800 From: Jisheng Zhang To: Roman Storozhenko Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Subject: Re: [PATCH v2] riscv: mm: Trace TLB flush path selection Message-ID: References: <20260830-tlb_tracepoint-v2-1-e3c88c24df5b@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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 T24gU2F0LCBPY3QgMDMsIDIwMjYgYXQgMTA6NTQ6NDRBTSArMDIwMCwgUm9tYW4gU3Rvcm96aGVu a28gd3JvdGU6Cj4gT24gRnJpLCBPY3QgMiwgMjAyNiBhdCA2OjA04oCvUE0gSmlzaGVuZyBaaGFu ZyA8anN6aGFuZ0BrZXJuZWwub3JnPiB3cm90ZToKPiA+Cj4gPiBPbiBTdW4sIEF1ZyAzMCwgMjAy NiBhdCAwNDozNjozN1BNICswMjAwLCBSb21hbiAnSGVkaW4nIFN0b3JvemhlbmtvIHdyb3RlOgo+ ID4gPiBNYWtlIFJJU0MtViBUTEIgZmx1c2ggcGF0aCBzZWxlY3Rpb24gb2JzZXJ2YWJsZS4gUmVj b3JkIHdoZXRoZXIgTGludXgKPiA+ID4gaGFuZGxlcyBhbiBpbnZhbGlkYXRpb24gbG9jYWxseSwg ZGVsZWdhdGVzIGl0IHRvIFNCSSBSRkVOQ0UsIG9yIGV4ZWN1dGVzCj4gPiA+IGl0IHRocm91Z2gg YSBjcm9zcy1DUFUgY2FsbCwgc28gTU0gYWN0aXZpdHkgY2FuIGJlIGNvcnJlbGF0ZWQgd2l0aCB0 aGUKPiA+ID4gUklTQy1WLCBmaXJtd2FyZSwgb3IgTGludXggY3Jvc3MtQ1BVIHBhdGggY2Fycnlp bmcgdGhlIHJlcXVlc3QuCj4gPgo+ID4gSSBkaWRuJ3Qgc2VlIHRvbyBtdWNoIHVzZWZ1bGxuZXNz IG9mIHRoZSB0cmFjZSBoZXJlLiB3aHkgbm90IHVzZSBrcHJvYmUKPiA+IGluc3RlYWQ/IGNhbiB5 b3UgcGx6IHNob3cgYSByZWFsIHVzYWdlIGV4YW1wbGUgb2YgdGhlIHRyYWNlPyBXaGljaAo+ID4g YnVnL3BlcmZvcm1hbmNlIHByb2JsZW0gY2FuIGJlIHNvbHZlZCBjb252ZW5pZW50bHkgd2l0aCB0 aGlzIHRyYWNlIG9ubHk/Cj4gPgo+ID4gRnJvbSBhbm90aGVyIHNpZGUsIGV4Y2VwdCB4ODYsIG90 aGVyIGFyY2hpdGVjdHVyZXMgZG9uJ3QgaGF2ZSB0aGUgdHJhY2UKPiA+IGluIHRoZSBUTEIgcGF0 aC4KPiA+Cj4gCj4gSGkgSmlzaGVuZywKPiAKPiBUaGFua3MgZm9yIHRoZSByZXZpZXcuIEkgYWdy ZWUgdGhhdCB0aGUgY3VycmVudCBjb21taXQgbWVzc2FnZSBkZXNjcmliZXMKPiB0aGUgaW50ZW5k ZWQgdXNlIHJhdGhlciBhYnN0cmFjdGx5Lgo+IAo+IEEga3Byb2JlIGNhbiBjZXJ0YWlubHkgYmUg dXNlZCB0byBpbnZlc3RpZ2F0ZSB0aGlzLiBNeSBtb3RpdmF0aW9uCj4gZm9yIGEgdHJhY2Vwb2lu dCBpcyBub3QgdGhhdCBkeW5hbWljIHRyYWNpbmcgY2Fubm90IG9idGFpbiB0aGUKPiBpbmZvcm1h dGlvbiwgYnV0IHRoYXQgZG9pbmcgc28gcmVxdWlyZXMga25vd2xlZGdlIG9mIHRoZSBjdXJyZW50 Cj4gaW1wbGVtZW50YXRpb24gYW5kIHJlY29uc3RydWN0aW9uIG9mIGEgc2VtYW50aWMgZGVjaXNp b24gbWFkZSBpbnNpZGUKPiBfX2ZsdXNoX3RsYl9yYW5nZSgpIC8gZmx1c2hfdGxiX2FsbCgpLgoK SSBwcmVmZXIgYWxpZ25pbmcgd2l0aCBvdGhlciBhcmNoaXRlY3R1cmVzKGV4Y2VwdCB4ODYpLCBJ LkUgbm90CmFkZCB0aGlzIGtpbmQgb2YgdHJhY2UuIEhvd2V2ZXIsIEkgd291bGQgbGVhdmUgdGhl IGRlY2lzaW9uIHRvIHJpc2N2Cm1haW50YWluZXJzLgoKRllJLCB5b3UgbWF5IG5vdGljZSB0aGF0 IHRoZSByaXNjdiB0cmFjZSBvdmVyaGVhZCBpcyBub3QgdHJpdmlhbCBwZXIgCmh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL2xpbnV4LXJpc2N2LzIwMjUwNjE5MTkwMzE1LjI2MDMxOTQtNC1ya3JjbWFy QHZlbnRhbmFtaWNyby5jb20vCgo+IAo+IEZvciBleGFtcGxlLCBwcm9iaW5nIF9fZmx1c2hfdGxi X3JhbmdlKCkgZ2l2ZXMgdGhlIHJlcXVlc3QgY29udGV4dCwgYnV0Cj4gbm90IGRpcmVjdGx5IHRo ZSBwYXRoIHN1YnNlcXVlbnRseSBzZWxlY3RlZC4gVG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlCj4g cmVxdWVzdCB3YXMgaGFuZGxlZCBsb2NhbGx5LCBkZWxlZ2F0ZWQgdGhyb3VnaCBTQkkgUkZFTkNF LCBvciBleGVjdXRlZAo+IHRocm91Z2ggTGludXggY3Jvc3MtQ1BVIGNvb3JkaW5hdGlvbiwgYSB0 cmFjaW5nIHRvb2wgbmVlZHMgdG8KPiBwcm9iZS9jb3JyZWxhdGUgaW1wbGVtZW50YXRpb24tc3Bl Y2lmaWMgY2FsbCBzaXRlcywgb3IgcmVwcm9kdWNlIHRoZQo+IHNlbGVjdGlvbiBsb2dpYyBpdHNl bGYuCj4gCj4gVGhlIGludGVudCBvZiB0aGUgcHJvcG9zZWQgZXZlbnQgaXMgdG8gZXhwb3NlIHRo YXQgc2VtYW50aWMgZGVjaXNpb24KPiBkaXJlY3RseSwgdG9nZXRoZXIgd2l0aCB0aGUgdGFyZ2V0 IENQVSBtYXNrIGFuZCByZXF1ZXN0IGNvbnRleHQsIHJhdGhlcgo+IHRoYW4gbWFrZSB1c2VycyBk ZXBlbmQgb24gdGhlIGN1cnJlbnQgaGVscGVyIG5hbWVzIGFuZCBjYWxsIGdyYXBoLgo+IAo+IE9u ZSBjb25jcmV0ZSBSSVNDLVYgZXhhbXBsZSBpcyBjb21taXQgYWU5ZTlmM2Q2N2RjOgo+IAo+ICAg IlJJU0MtVjogY2xlYXIgaG90LXVucGx1Z2dlZCBjb3JlcyBmcm9tIGFsbCB0YXNrIG1tX2NwdW1h c2tzCj4gICAgdG8gYXZvaWQgcmZlbmNlIGVycm9ycyIKPiAKPiBJbiB0aGF0IGNhc2UgYW4gb2Zm bGluZSBDUFUgY291bGQgcmVtYWluIGluIG1tX2NwdW1hc2soKSwgd2hpY2ggd2FzIHRoZW4KPiB1 c2VkIGFzIHRoZSB0YXJnZXQgb2YgYW4gU0JJIFJGRU5DRSByZXF1ZXN0LiBPcGVuU0JJIGNoZWNr cyB0aGUgcmVxdWVzdGVkCj4gaGFydCBtYXNrIGFnYWluc3Qgb25saW5lIGhhcnRzLCBzbyBzdWNo IGEgcmVxdWVzdCBjb3VsZCBmYWlsLgo+IAo+IFdpdGggdGhpcyBldmVudCwgc3VjaCBhIHNpdHVh dGlvbiBjb3VsZCBleHBvc2UsIGZvciBleGFtcGxlOgo+IAo+ICAgdGFyZ2V0X2NwdXM9MCwzIHRh cmdldF9tYXNrX3dlaWdodD0yIHNjb3BlPXJhbmdlIHBhdGg9c2JpLXJmZW5jZQo+IAo+IHdoaWxl IENQVTMgaXMgYWxyZWFkeSBvZmZsaW5lLgo+IAo+IFRoYXQgc2hvd3MgdGhhdCBMaW51eCBjb25z dHJ1Y3RlZCBhbiB1bmV4cGVjdGVkIHRhcmdldCBtYXNrIGJlZm9yZSB0aGUKPiByZXF1ZXN0IHdh cyBoYW5kZWQgdG8gZmlybXdhcmUsIHNvIHRoZSBpbnZlc3RpZ2F0aW9uIGNhbiBmaXJzdCBmb2N1 cyBvbgo+IExpbnV4J3MgbW0gQ1BVIHRyYWNraW5nIHJhdGhlciB0aGFuIHN0YXJ0aW5nIGluc2lk ZSB0aGUgU0JJCj4gaW1wbGVtZW50YXRpb24uCj4gCj4gVGhlcmUgaXMgYWxzbyBhIHBlcmZvcm1h bmNlLWRlYnVnZ2luZyB1c2UgY2FzZS4gUmVhbC13b3JsZCBsYXRlbmN5Cj4gaW52ZXN0aWdhdGlv bnMgaGF2ZSBmb3VuZCBUTEIgc2hvb3Rkb3ducyByZXNwb25zaWJsZSBmb3Igc2lnbmlmaWNhbnQK PiBsYXRlbmN5IHNwaWtlczsgZm9yIGV4YW1wbGU6Cj4gCj4gICBodHRwczovL3d3dy5qYWJwZXJm LmNvbS9ob3ctdG8tZGV0ZXItb3ItZGlzYXJtLXRsYi1zaG9vdGRvd25zLwo+IAo+IFRoYXQgcGFy dGljdWxhciBjYXNlIGV2ZW50dWFsbHkgaWRlbnRpZmllZCBhdXRvbWF0aWMgTlVNQSBiYWxhbmNp bmcgYXMKPiB0aGUgc291cmNlIG9mIGV4Y2Vzc2l2ZSBzaG9vdGRvd25zLiBJIGFtIG5vdCBjbGFp bWluZyB0aGF0IHRoaXMgcHJvcG9zZWQKPiBldmVudCBhbG9uZSB3b3VsZCBpZGVudGlmeSB0aGF0 IHJvb3QgY2F1c2UuIE9uIFJJU0MtViwgb25jZSBUTEIKPiBzaG9vdGRvd25zIGhhdmUgYmVlbiBp ZGVudGlmaWVkIGFzIHJlbGV2YW50LCB0aGUgZXZlbnQgcHJvdmlkZXMgdGhlCj4gYXJjaGl0ZWN0 dXJlLXNwZWNpZmljIG5leHQgc3RlcDogd2hpY2ggQ1BVcyBMaW51eCB0YXJnZXRlZCwgYW5kIHdo ZXRoZXIKPiBMaW51eCBzZWxlY3RlZCBsb2NhbCBoYW5kbGluZywgU0JJIFJGRU5DRSwgb3IgTGlu dXggY3Jvc3MtQ1BVCj4gY29vcmRpbmF0aW9uLgo+IAo+IFRoaXMgZGlzdGluY3Rpb24gYWxzbyBo ZWxwcyBzZXBhcmF0ZSB3aGVyZSB0byBpbnZlc3RpZ2F0ZSBuZXh0LiBGb3IgYW4KPiBvdGhlcndp c2Ugc2ltaWxhciBNTSByZXF1ZXN0Ogo+IAo+ICAgcGF0aD1zYmktcmZlbmNlCj4gCj4gcG9pbnRz IHRvd2FyZCBmaXJtd2FyZS9wbGF0Zm9ybSBoYW5kbGluZyBhZnRlciBMaW51eCBkZWxlZ2F0ZXMg dGhlCj4gcmVxdWVzdCwgd2hpbGU6Cj4gCj4gICBwYXRoPWNyb3NzLWNwdS1jYWxsCj4gCj4gcG9p bnRzIHRvd2FyZCBMaW51eCBjcm9zcy1DUFUvSVBJIGhhbmRsaW5nIGFuZCB0YXJnZXQtQ1BVIGFj dGl2aXR5Lgo+IAo+IEFuIHVuZXhwZWN0ZWRseSBicm9hZCB0YXJnZXRfY3B1cyBtYXNrIGNhbiBz aW1pbGFybHkgaW5kaWNhdGUgdGhhdCB0aGUKPiBjb3N0IGNvbWVzIGZyb20gTGludXggdGFyZ2V0 aW5nIG1vcmUgQ1BVcyB0aGFuIGV4cGVjdGVkIHJhdGhlciB0aGFuIGZyb20KPiB0aGUgZXhlY3V0 aW9uIHRpbWUgb2YgdGhlIHNlbGVjdGVkIG1lY2hhbmlzbSBpdHNlbGYuCj4gCj4gSSBhbHNvIHB1 dCB0aGUgd29ya2xvYWRzIHVzZWQgdG8gZXhlcmNpc2UgdGhlIGV2ZW50IGhlcmU6Cj4gCj4gICBo dHRwczovL2dpdGh1Yi5jb20vUm9tZXVzL3RsYl93b3JrbG9hZHMKPiAKPiBUaGV5IHByb3ZpZGUg cmVwcm9kdWNpYmxlIGV4YW1wbGVzIHVzaW5nIHRoZSBzYW1lIDY0LXBhZ2UgbXByb3RlY3QoKQo+ IHJlcXVlc3Qgd2l0aCBkaWZmZXJlbnQgQ1BVIGZvb3RwcmludHMvY29uZmlndXJhdGlvbnMuIEkg dXNlZCB0aGVtIHRvCj4gZXhlcmNpc2UgbG9jYWwsIFNCSSBSRkVOQ0UsIGFuZCBjcm9zcy1DUFUt Y2FsbCBwYXRocy4KPiAKPiBJIGFtIG5vdCBjbGFpbWluZyB0aGF0IGEgdHJhY2Vwb2ludCBieSBp dHNlbGYgc29sdmVzIHRoZXNlIGJ1Z3MsIG9yIHRoYXQKPiB0aGUgc2FtZSBpbmZvcm1hdGlvbiBp cyBpbXBvc3NpYmxlIHRvIG9idGFpbiB3aXRoIGtwcm9iZXMuIFRoZSBpbnRlbmRlZAo+IHZhbHVl IGlzIHRvIGV4cG9zZSB0aGUgUklTQy1WIFRMQiBwYXRoLXNlbGVjdGlvbiBkZWNpc2lvbiBhbmQg aXRzIHRhcmdldAo+IGNvbnRleHQgaW4gb25lIHNlbWFudGljIHJlY29yZCwgd2l0aG91dCByZXF1 aXJpbmcgZWFjaCB0cmFjaW5nIHRvb2wgdG8KPiByZWNvbnN0cnVjdCB0aGF0IGRlY2lzaW9uIGZy b20gaW1wbGVtZW50YXRpb24tc3BlY2lmaWMgcHJvYmVzLgo+IAo+IEkgYWxzbyB0YWtlIHlvdXIg cG9pbnQgdGhhdCwgYXBhcnQgZnJvbSB4ODYsIGFyY2hpdGVjdHVyZXMgZ2VuZXJhbGx5IGRvCj4g bm90IGN1cnJlbnRseSBoYXZlIHBlcm1hbmVudCB0cmFjaW5nIGluIHRoZSBUTEIgcGF0aC4gSWYg dGhlIHVzZSBjYXNlIGlzCj4gY29uc2lkZXJlZCBzdWZmaWNpZW50IGZvciBhIHRyYWNlcG9pbnQs IEkgd2lsbCByZXdvcmsgdGhlIGNvbW1pdCBtZXNzYWdlCj4gdG8gbWFrZSB0aGUgY29uY3JldGUg bW90aXZhdGlvbiBhbmQgdGhlIGRpc3RpbmN0aW9uIGZyb20gZHluYW1pYwo+IHByb2JpbmcgY2xl YXJlci4KPiAKPiBGb3IgY29udGV4dCwgSSBhbHNvIHBvc3RlZCBhbiB1bmNoYW5nZWQgdjIgUkVT RU5EIG9uIFNlcCAyNDsgdGhpcyByZXBseQo+IGlzIG9uIHRoZSBvcmlnaW5hbCB2MiB0aHJlYWQg d2hlcmUgeW91ciByZXZpZXcgbGFuZGVkLgo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwv MjAyNjA5MjQtdGxiX3RyYWNlcG9pbnQtdjItMS00ZTNlNzhlZjVjZGJAZ21haWwuY29tLwo+IAo+ IFRoYW5rcywKPiBSb21hbgo+IAo+ID4gPgo+ID4gPiBUaGUgZ2VuZXJpYyB0bGI6dGxiX2ZsdXNo IGV2ZW50IGRlc2NyaWJlcyBUTEIgZmx1c2ggYWN0aXZpdHkgdXNpbmcKPiA+ID4gYXJjaGl0ZWN0 dXJlLWluZGVwZW5kZW50IHJlYXNvbiBhbmQgcGFnZS1jb3VudCBpbmZvcm1hdGlvbi4gVGhlIFJJ U0MtVgo+ID4gPiBpbXBsZW1lbnRhdGlvbiBzdWJzZXF1ZW50bHkgc2VsZWN0cyBiZXR3ZWVuIGxv Y2FsIGludmFsaWRhdGlvbiwgU0JJCj4gPiA+IFJGRU5DRSwgYW5kIExpbnV4IGNyb3NzLUNQVSBj b29yZGluYXRpb24sIHdpdGggYWRkaXRpb25hbAo+ID4gPiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMg cmVxdWVzdCBjb250ZXh0IGF2YWlsYWJsZSBhdCB0aGF0IHBvaW50Lgo+ID4gPgo+ID4gPiBNYWtp bmcgdGhpcyBzZWxlY3Rpb24gb2JzZXJ2YWJsZSBpcyB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcgUklT Qy1WIFRMQgo+ID4gPiBzaG9vdGRvd25zLiBXaGVuIGEgcmVtb3RlIGludmFsaWRhdGlvbiBpcyBv YnNlcnZlZCB0byBiZSBzbG93LCB0aGUKPiA+ID4gc2VsZWN0ZWQgcGF0aCBkZXRlcm1pbmVzIHdo ZXRoZXIgdG8gaW52ZXN0aWdhdGUgU0JJIGZpcm13YXJlIGFuZAo+ID4gPiBwbGF0Zm9ybSBoYW5k bGluZyBvciBMaW51eCBjcm9zcy1DUFUgYW5kIElQSSBoYW5kbGluZy4gQW4gdW5leHBlY3RlZGx5 Cj4gPiA+IGJyb2FkIHRhcmdldCBtYXNrIGNhbiByZXZlYWwgYW4gdW5pbnRlbmRlZCBhZGRyZXNz LXNwYWNlIENQVSBmb290cHJpbnQsCj4gPiA+IHdoaWxlIHRoZSByYW5nZSBhbmQgc3RyaWRlIGRp c3Rpbmd1aXNoIGludmFsaWRhdGlvbiByZXF1ZXN0cyB3aXRoCj4gPgo+ID4gPiBkaWZmZXJlbnQg bWFwcGluZyBncmFudWxhcml0aWVzLgo+ID4gPgo+ID4gPiBQbGFjZSB0aGUgZXZlbnQgaW4gdGhl IFJJU0MtViBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIHRoZSBsb2NhbCwgU0JJCj4gPiA+IFJGRU5D RSwgb3IgY3Jvc3MtQ1BVIGNob2ljZSBpcyBtYWRlIHRoZXJlLCBhbmQgU0JJIFJGRU5DRSBhbmQg dGhlCj4gPiA+IGludmFsaWRhdGlvbiBzdHJpZGUgYXJlIFJJU0MtVi1zcGVjaWZpYyBzZW1hbnRp Y3MgcmF0aGVyIHRoYW4gcHJvcGVydGllcwo+ID4gPiBvZiB0aGUgZ2VuZXJpYyBNTSBmbHVzaCBy ZXF1ZXN0Lgo+ID4gPgo+ID4gPiBBZGQgcmlzY3ZfdGxiOnJpc2N2X3RsYl9mbHVzaF9wYXRoIGlu IGZsdXNoX3RsYl9hbGwoKSBhbmQKPiA+ID4gX19mbHVzaF90bGJfcmFuZ2UoKS4gUmVjb3JkIHN0 YXJ0LCBzaXplLCBzdHJpZGUsIHRoZSBoYXJkd2FyZS12aXNpYmxlCj4gPiA+IEFTSUQsIHdoZXRo ZXIgYSBzcGVjaWZpYyBtbSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVlc3QsIHRoZSB0YXJn ZXQKPiA+ID4gQ1BVIG1hc2sgYW5kIGl0cyB3ZWlnaHQsIHRoZSByZXF1ZXN0ZWQgc2NvcGUsIGFu ZCB0aGUgc2VsZWN0ZWQgcGF0aC4KPiA+Cj4gPgo+ID4gPgo+ID4gPiBSZWNvcmQgdGhlIGNvbXBs ZXRlIHRhcmdldCBtYXNrIGluIGFkZGl0aW9uIHRvIGl0cyB3ZWlnaHQgYmVjYXVzZSBDUFUKPiA+ ID4gaWRlbnRpdHkgY2Fubm90IGJlIHJlY29uc3RydWN0ZWQgZnJvbSBhIGNvdW50IGFuZCBpcyBu ZWVkZWQgdG8gY29ycmVsYXRlCj4gPiA+IHRoZSByZXF1ZXN0IHdpdGggcGVyLUNQVSBzY2hlZHVs ZXIsIElQSSwgYW5kIGZpcm13YXJlIGFjdGl2aXR5Lgo+ID4gPgo+ID4gPiBUaGUgZXZlbnQgcmVj b3JkcyB0aGUgaW52YWxpZGF0aW9uIHJlcXVlc3QgYW5kIHRoZSBwYXRoIHNlbGVjdGVkIGJ5IExp bnV4Cj4gPiA+IGJlZm9yZSB0aGUgb3BlcmF0aW9uIGlzIGRpc3BhdGNoZWQuIEluIHBhcnRpY3Vs YXIsIHNlbGVjdGluZyB0aGUgU0JJCj4gPiA+IFJGRU5DRSBwYXRoIG1lYW5zIHRoYXQgTGludXgg ZGVsZWdhdGVkIHRoZSByZXF1ZXN0IHRvIGZpcm13YXJlOyB0aGUgZXZlbnQKPiA+ID4gZG9lcyBu b3QgZGVzY3JpYmUgdGhlIGltcGxlbWVudGF0aW9uIG9yIG91dGNvbWUgb2YgdGhhdCBkZWxlZ2F0 ZWQKPiA+ID4gb3BlcmF0aW9uLgo+ID4gPgo+ID4gPiBUZXN0ZWQgb24gUUVNVSB2aXJ0IHdpdGgg T3BlblNCSSB1c2luZyBsb2NhbCBhbmQgc2hhcmVkLW1tCj4gPiA+IG1wcm90ZWN0KCkvbXVubWFw KCkgd29ya2xvYWRzLiBMb2NhbCByZXF1ZXN0cyByZXBvcnRlZCBwYXRoPWxvY2FsLAo+ID4gPiB3 aGlsZSByZW1vdGUgcmVxdWVzdHMgcmVwb3J0ZWQgcGF0aD1zYmktcmZlbmNlIGFuZCB3ZXJlIGZv bGxvd2VkIGJ5IHRoZQo+ID4gPiBleGlzdGluZyByaXNjdjpzYmlfY2FsbCBSRkVOQ0UgZXZlbnQu Cj4gPiA+Cj4gPiA+IFRoZSBjcm9zcy1DUFUtY2FsbCBwYXRoIHdhcyB0ZXN0ZWQgd2l0aCBRRU1V IHZpcnQgdXNpbmcgQVBMSUMrSU1TSUMuCj4gPiA+IEEgTUFEVl9QQUdFT1VUIHJlY2xhaW0gd29y a2xvYWQgd2FzIHVzZWQgdG8gZXhlcmNpc2UgbW0taW5kZXBlbmRlbnQKPiA+ID4gZ2xvYmFsIGZs dXNoZXMuIEFsbCByZXBvcnRlZCBwYXRoIHZhbHVlcyAobG9jYWwsIHNiaS1yZmVuY2UgYW5kCj4g PiA+IGNyb3NzLWNwdS1jYWxsKSBhbmQgc2NvcGUgdmFsdWVzIChzaW5nbGUsIHJhbmdlLCBhZGRy ZXNzLXNwYWNlIGFuZCBhbGwpCj4gPiA+IHdlcmUgb2JzZXJ2ZWQuCj4gPiA+Cj4gPiA+IFNpZ25l ZC1vZmYtYnk6IFJvbWFuICdIZWRpbicgU3Rvcm96aGVua28gPHJvbWV1c21laXN0ZXJAZ21haWwu Y29tPgo+ID4gPiAtLS0KPiA+ID4gQWRkIGEgUklTQy1WIHRyYWNlcG9pbnQgZm9yIG9ic2Vydmlu ZyB0aGUgcGF0aCBzZWxlY3RlZCBieSBMaW51eCBmb3IgVExCCj4gPiA+IGludmFsaWRhdGlvbiBy ZXF1ZXN0czogbG9jYWwgaW52YWxpZGF0aW9uLCBTQkkgUkZFTkNFLCBvciBMaW51eAo+ID4gPiBj cm9zcy1DUFUgY29vcmRpbmF0aW9uLgo+ID4gPgo+ID4gPiBUaGUgdHJhY2Vwb2ludCBpcyBpbnRl bmRlZCB0byBtYWtlIFJJU0MtViBUTEIgc2hvb3Rkb3duIGJlaGF2aW9yIGVhc2llcgo+ID4gPiB0 byBjb3JyZWxhdGUgd2l0aCBNTSBhY3Rpdml0eSwgQ1BVIHRhcmdldGluZywgU0JJIGNhbGxzLCBh bmQgSVBJCj4gPiA+IGhhbmRsaW5nLiBUaGUgcGF0Y2ggcmVjb3JkcyB0aGUgaW52YWxpZGF0aW9u IHJlcXVlc3QgY29udGV4dCBhbmQgdGhlCj4gPiA+IExpbnV4IHBhdGgtc2VsZWN0aW9uIGRlY2lz aW9uIGJlZm9yZSB0aGUgb3BlcmF0aW9uIGlzIGRpc3BhdGNoZWQuCj4gPiA+Cj4gPiA+IFRoZSBw YXRjaCB3YXMgdGVzdGVkIG9uIFFFTVUgdmlydCB3aXRoIGJvdGggdGhlIFNCSSBSRkVOQ0UgcGF0 aCBhbmQgYW4KPiA+ID4gQVBMSUMrSU1TSUMgY29uZmlndXJhdGlvbi4gTG9jYWwsIFNCSSBSRkVO Q0UsIGFuZCBjcm9zcy1DUFUtY2FsbCBwYXRocwo+ID4gPiB3ZXJlIGV4ZXJjaXNlZC4gQWxsIHJl cG9ydGVkIHNjb3BlIHZhbHVlcyAtLSBzaW5nbGUsIHJhbmdlLAo+ID4gPiBhZGRyZXNzLXNwYWNl LCBhbmQgYWxsIC0tIHdlcmUgYWxzbyBvYnNlcnZlZC4KPiA+ID4gLS0tCj4gPiA+IENoYW5nZXMg aW4gdjI6Cj4gPiA+IC0gVXNlIHRyYWNlX2NhbGxfX3Jpc2N2X3RsYl9mbHVzaF9wYXRoKCkgYWZ0 ZXIgdGhlIGV4cGxpY2l0Cj4gPiA+ICAgdHJhY2VfcmlzY3ZfdGxiX2ZsdXNoX3BhdGhfZW5hYmxl ZCgpIGNoZWNrIHRvIGF2b2lkIGEgc2Vjb25kCj4gPiA+ICAgdHJhY2Vwb2ludCBzdGF0aWMta2V5 IHRlc3QsIGFzIHN1Z2dlc3RlZCBieSBTdGV2ZW4gUm9zdGVkdC4KPiA+ID4gLSBMaW5rIHRvIHYx OiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjYwODI5LXRsYl90cmFjZXBvaW50LXYxLTEt ZGZkYWVkZTdlNzQxQGdtYWlsLmNvbQo+ID4gPiAtLS0KPiA+ID4gIGFyY2gvcmlzY3YvbW0vdGxi Zmx1c2guYyAgICAgICAgIHwgIDYwICsrKysrKysrKysrKysrKysrKystLQo+ID4gPiAgaW5jbHVk ZS90cmFjZS9ldmVudHMvcmlzY3ZfdGxiLmggfCAxMTMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9tbS90 bGJmbHVzaC5jIGIvYXJjaC9yaXNjdi9tbS90bGJmbHVzaC5jCj4gPiA+IGluZGV4IDk2MmRiMzAw YTE2Ni4uY2VmY2U5MzY0YmQyIDEwMDY0NAo+ID4gPiAtLS0gYS9hcmNoL3Jpc2N2L21tL3RsYmZs dXNoLmMKPiA+ID4gKysrIGIvYXJjaC9yaXNjdi9tbS90bGJmbHVzaC5jCj4gPiA+IEBAIC05LDYg KzksOSBAQAo+ID4gPiAgI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPgo+ID4gPiAgI2luY2x1 ZGUgPGFzbS9jcHVmZWF0dXJlLmg+Cj4gPiA+Cj4gPiA+ICsjZGVmaW5lIENSRUFURV9UUkFDRV9Q T0lOVFMKPiA+ID4gKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvcmlzY3ZfdGxiLmg+Cj4gPiA+ICsK PiA+ID4gICNkZWZpbmUgaGFzX3N2aW52YWwoKSAgICAgICAgcmlzY3ZfaGFzX2V4dGVuc2lvbl91 bmxpa2VseShSSVNDVl9JU0FfRVhUX1NWSU5WQUwpCj4gPiA+Cj4gPiA+ICAvKgo+ID4gPiBAQCAt NjMsNiArNjYsMzMgQEAgdm9pZCBsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKHVuc2lnbmVk IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQo+ID4gPiAgICAgICBsb2NhbF9mbHVzaF90 bGJfcmFuZ2VfYXNpZChzdGFydCwgZW5kIC0gc3RhcnQsIFBBR0VfU0laRSwgRkxVU0hfVExCX05P X0FTSUQpOwo+ID4gPiAgfQo+ID4gPgo+ID4gPiArc3RhdGljIGVudW0gcmlzY3ZfdGxiX2ZsdXNo X3Njb3BlCj4gPiA+ICtyaXNjdl90bGJfZ2V0X2ZsdXNoX3Njb3BlKHVuc2lnbmVkIGxvbmcgc2l6 ZSwgdW5zaWduZWQgbG9uZyBzdHJpZGUsIGJvb2wgaGFzX21tKQo+ID4gPiArewo+ID4gPiArICAg ICBpZiAoc2l6ZSA9PSBGTFVTSF9UTEJfTUFYX1NJWkUpCj4gPiA+ICsgICAgICAgICAgICAgcmV0 dXJuIGhhc19tbSA/IFJJU0NWX1RMQl9GTFVTSF9TQ09QRV9BRERSRVNTX1NQQUNFIDoKPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgIFJJU0NWX1RMQl9GTFVTSF9TQ09QRV9BTEw7Cj4gPiA+ICsK PiA+ID4gKyAgICAgcmV0dXJuIHNpemUgPD0gc3RyaWRlID8gUklTQ1ZfVExCX0ZMVVNIX1NDT1BF X1NJTkdMRSA6Cj4gPiA+ICsgICAgICAgICAgICAgUklTQ1ZfVExCX0ZMVVNIX1NDT1BFX1JBTkdF Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQKPiA+ ID4gK3Jpc2N2X3RsYl90cmFjZV9mbHVzaF9wYXRoKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjbWFz aywgdW5zaWduZWQgbG9uZyBzdGFydCwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBzdHJpZGUsCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFzaWQsIGJvb2wgaGFzX21tLAo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgZW51bSByaXNjdl90bGJfZmx1c2hfcGF0aCBwYXRoKQo+ID4g PiArewo+ID4gPiArICAgICBlbnVtIHJpc2N2X3RsYl9mbHVzaF9zY29wZSBzY29wZTsKPiA+ID4g Kwo+ID4gPiArICAgICBpZiAoIXRyYWNlX3Jpc2N2X3RsYl9mbHVzaF9wYXRoX2VuYWJsZWQoKSkK PiA+ID4gKyAgICAgICAgICAgICByZXR1cm47Cj4gPiA+ICsKPiA+ID4gKyAgICAgc2NvcGUgPSBy aXNjdl90bGJfZ2V0X2ZsdXNoX3Njb3BlKHNpemUsIHN0cmlkZSwgaGFzX21tKTsKPiA+ID4gKyAg ICAgdHJhY2VfY2FsbF9fcmlzY3ZfdGxiX2ZsdXNoX3BhdGgoc3RhcnQsIHNpemUsIHN0cmlkZSwg YXNpZCwgaGFzX21tLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgIGNtYXNrLCBzY29wZSwg cGF0aCk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyB2b2lkIF9faXBpX2ZsdXNoX3Rs Yl9hbGwodm9pZCAqaW5mbykKPiA+ID4gIHsKPiA+ID4gICAgICAgbG9jYWxfZmx1c2hfdGxiX2Fs bCgpOwo+ID4gPiBAQCAtNzAsMTIgKzEwMCwyNiBAQCBzdGF0aWMgdm9pZCBfX2lwaV9mbHVzaF90 bGJfYWxsKHZvaWQgKmluZm8pCj4gPiA+Cj4gPiA+ICB2b2lkIGZsdXNoX3RsYl9hbGwodm9pZCkK PiA+ID4gIHsKPiA+ID4gLSAgICAgaWYgKG51bV9vbmxpbmVfY3B1cygpIDwgMikKPiA+ID4gKyAg ICAgaWYgKG51bV9vbmxpbmVfY3B1cygpIDwgMikgewo+ID4gPiArICAgICAgICAgICAgIHJpc2N2 X3RsYl90cmFjZV9mbHVzaF9wYXRoKGNwdV9vbmxpbmVfbWFzaywgMCwKPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGTFVTSF9UTEJfTUFYX1NJWkUsIDAsCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkxVU0hfVExCX05P X0FTSUQsIGZhbHNlLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJJU0NWX1RMQl9GTFVTSF9QQVRIX0xPQ0FMKTsKPiA+ID4gICAgICAgICAgICAgICBsb2Nh bF9mbHVzaF90bGJfYWxsKCk7Cj4gPiA+IC0gICAgIGVsc2UgaWYgKHJpc2N2X3VzZV9zYmlfZm9y X3JmZW5jZSgpKQo+ID4gPiAtICAgICAgICAgICAgIHNiaV9yZW1vdGVfc2ZlbmNlX3ZtYV9hc2lk KE5VTEwsIDAsIEZMVVNIX1RMQl9NQVhfU0laRSwgRkxVU0hfVExCX05PX0FTSUQpOwo+ID4gPiAt ICAgICBlbHNlCj4gPiA+ICsgICAgIH0gZWxzZSBpZiAocmlzY3ZfdXNlX3NiaV9mb3JfcmZlbmNl KCkpIHsKPiA+ID4gKyAgICAgICAgICAgICByaXNjdl90bGJfdHJhY2VfZmx1c2hfcGF0aChjcHVf b25saW5lX21hc2ssIDAsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRkxVU0hfVExCX01BWF9TSVpFLCAwLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZMVVNIX1RMQl9OT19BU0lELCBmYWxzZSwKPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSVNDVl9UTEJfRkxVU0hfUEFUSF9T QklfUkZFTkNFKTsKPiA+ID4gKyAgICAgICAgICAgICBzYmlfcmVtb3RlX3NmZW5jZV92bWFfYXNp ZChOVUxMLCAwLCBGTFVTSF9UTEJfTUFYX1NJWkUsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRkxVU0hfVExCX05PX0FTSUQpOwo+ID4gPiArICAgICB9IGVs c2Ugewo+ID4gPiArICAgICAgICAgICAgIHJpc2N2X3RsYl90cmFjZV9mbHVzaF9wYXRoKGNwdV9v bmxpbmVfbWFzaywgMCwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGTFVTSF9UTEJfTUFYX1NJWkUsIDAsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRkxVU0hfVExCX05PX0FTSUQsIGZhbHNlLAo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJU0NWX1RMQl9GTFVTSF9QQVRIX0NS T1NTX0NQVV9DQUxMKTsKPiA+ID4gICAgICAgICAgICAgICBvbl9lYWNoX2NwdShfX2lwaV9mbHVz aF90bGJfYWxsLCBOVUxMLCAxKTsKPiA+ID4gKyAgICAgfQo+ID4gPiAgfQo+ID4gPgo+ID4gPiAg c3RydWN0IGZsdXNoX3RsYl9yYW5nZV9kYXRhIHsKPiA+ID4gQEAgLTEwNywxMiArMTUxLDIwIEBA IHN0YXRpYyB2b2lkIF9fZmx1c2hfdGxiX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAo+ID4g Pgo+ID4gPiAgICAgICAvKiBDaGVjayBpZiB0aGUgVExCIGZsdXNoIG5lZWRzIHRvIGJlIHNlbnQg dG8gb3RoZXIgQ1BVcy4gKi8KPiA+ID4gICAgICAgaWYgKGNwdW1hc2tfYW55X2J1dChjbWFzaywg Y3B1KSA+PSBucl9jcHVfaWRzKSB7Cj4gPiA+ICsgICAgICAgICAgICAgcmlzY3ZfdGxiX3RyYWNl X2ZsdXNoX3BhdGgoY21hc2ssIHN0YXJ0LCBzaXplLCBzdHJpZGUsIGFzaWQsCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISFtbSwgUklTQ1ZfVExCX0ZMVVNI X1BBVEhfTE9DQUwpOwo+ID4gPiAgICAgICAgICAgICAgIGxvY2FsX2ZsdXNoX3RsYl9yYW5nZV9h c2lkKHN0YXJ0LCBzaXplLCBzdHJpZGUsIGFzaWQpOwo+ID4gPiAgICAgICB9IGVsc2UgaWYgKHJp c2N2X3VzZV9zYmlfZm9yX3JmZW5jZSgpKSB7Cj4gPiA+ICsgICAgICAgICAgICAgcmlzY3ZfdGxi X3RyYWNlX2ZsdXNoX3BhdGgoY21hc2ssIHN0YXJ0LCBzaXplLCBzdHJpZGUsIGFzaWQsCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISFtbSwgUklTQ1ZfVExC X0ZMVVNIX1BBVEhfU0JJX1JGRU5DRSk7Cj4gPiA+ICAgICAgICAgICAgICAgc2JpX3JlbW90ZV9z ZmVuY2Vfdm1hX2FzaWQoY21hc2ssIHN0YXJ0LCBzaXplLCBhc2lkKTsKPiA+ID4gICAgICAgfSBl bHNlIHsKPiA+ID4gICAgICAgICAgICAgICBzdHJ1Y3QgZmx1c2hfdGxiX3JhbmdlX2RhdGEgZnRk Owo+ID4gPgo+ID4gPiArICAgICAgICAgICAgIHJpc2N2X3RsYl90cmFjZV9mbHVzaF9wYXRoKGNt YXNrLCBzdGFydCwgc2l6ZSwgc3RyaWRlLCBhc2lkLAo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICEhbW0sCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUklTQ1ZfVExCX0ZMVVNIX1BBVEhfQ1JPU1NfQ1BVX0NBTEwpOwo+ ID4gPiArCj4gPiA+ICAgICAgICAgICAgICAgZnRkLmFzaWQgPSBhc2lkOwo+ID4gPiAgICAgICAg ICAgICAgIGZ0ZC5zdGFydCA9IHN0YXJ0Owo+ID4gPiAgICAgICAgICAgICAgIGZ0ZC5zaXplID0g c2l6ZTsKPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3Jpc2N2X3RsYi5o IGIvaW5jbHVkZS90cmFjZS9ldmVudHMvcmlzY3ZfdGxiLmgKPiA+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4zZWZmMTcxZWM1NGYKPiA+ID4gLS0tIC9k ZXYvbnVsbAo+ID4gPiArKysgYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy9yaXNjdl90bGIuaAo+ID4g PiBAQCAtMCwwICsxLDExMyBAQAo+ID4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAgKi8KPiA+ID4gKyN1bmRlZiBUUkFDRV9TWVNURU0KPiA+ID4gKyNkZWZpbmUgVFJBQ0Vf U1lTVEVNIHJpc2N2X3RsYgo+ID4gPiArCj4gPiA+ICsjaWYgIWRlZmluZWQoX1RSQUNFX1JJU0NW X1RMQl9IKSB8fCBkZWZpbmVkKFRSQUNFX0hFQURFUl9NVUxUSV9SRUFEKQo+ID4gPiArI2RlZmlu ZSBfVFJBQ0VfUklTQ1ZfVExCX0gKPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2NwdW1h c2suaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC90cmFjZXBvaW50Lmg+Cj4gPiA+ICsKPiA+ID4g KyNpZm5kZWYgX1RSQUNFX1JJU0NWX1RMQl9FTlVNUwo+ID4gPiArI2RlZmluZSBfVFJBQ0VfUklT Q1ZfVExCX0VOVU1TCj4gPiA+ICsKPiA+ID4gK2VudW0gcmlzY3ZfdGxiX2ZsdXNoX3Njb3BlIHsK PiA+ID4gKyAgICAgUklTQ1ZfVExCX0ZMVVNIX1NDT1BFX1NJTkdMRSwKPiA+ID4gKyAgICAgUklT Q1ZfVExCX0ZMVVNIX1NDT1BFX1JBTkdFLAo+ID4gPiArICAgICBSSVNDVl9UTEJfRkxVU0hfU0NP UEVfQUREUkVTU19TUEFDRSwKPiA+ID4gKyAgICAgUklTQ1ZfVExCX0ZMVVNIX1NDT1BFX0FMTCwK PiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK2VudW0gcmlzY3ZfdGxiX2ZsdXNoX3BhdGggewo+ID4g PiArICAgICBSSVNDVl9UTEJfRkxVU0hfUEFUSF9MT0NBTCwKPiA+ID4gKyAgICAgUklTQ1ZfVExC X0ZMVVNIX1BBVEhfU0JJX1JGRU5DRSwKPiA+ID4gKyAgICAgUklTQ1ZfVExCX0ZMVVNIX1BBVEhf Q1JPU1NfQ1BVX0NBTEwsCj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICsjZW5kaWYgLyogX1RSQUNF X1JJU0NWX1RMQl9FTlVNUyAqLwo+ID4gPiArCj4gPiA+ICtUUkFDRV9ERUZJTkVfRU5VTShSSVND Vl9UTEJfRkxVU0hfU0NPUEVfU0lOR0xFKTsKPiA+ID4gK1RSQUNFX0RFRklORV9FTlVNKFJJU0NW X1RMQl9GTFVTSF9TQ09QRV9SQU5HRSk7Cj4gPiA+ICtUUkFDRV9ERUZJTkVfRU5VTShSSVNDVl9U TEJfRkxVU0hfU0NPUEVfQUREUkVTU19TUEFDRSk7Cj4gPiA+ICtUUkFDRV9ERUZJTkVfRU5VTShS SVNDVl9UTEJfRkxVU0hfU0NPUEVfQUxMKTsKPiA+ID4gKwo+ID4gPiArVFJBQ0VfREVGSU5FX0VO VU0oUklTQ1ZfVExCX0ZMVVNIX1BBVEhfTE9DQUwpOwo+ID4gPiArVFJBQ0VfREVGSU5FX0VOVU0o UklTQ1ZfVExCX0ZMVVNIX1BBVEhfU0JJX1JGRU5DRSk7Cj4gPiA+ICtUUkFDRV9ERUZJTkVfRU5V TShSSVNDVl9UTEJfRkxVU0hfUEFUSF9DUk9TU19DUFVfQ0FMTCk7Cj4gPiA+ICsKPiA+ID4gKyNk ZWZpbmUgc2hvd19yaXNjdl90bGJfZmx1c2hfc2NvcGUoc2NvcGUpIFwKPiA+ID4gKyAgICAgX19w cmludF9zeW1ib2xpYyhzY29wZSwgXAo+ID4gPiArICAgICAgICAgICAgIHsgUklTQ1ZfVExCX0ZM VVNIX1NDT1BFX1NJTkdMRSwgICAgICAgICJzaW5nbGUiIH0sIFwKPiA+ID4gKyAgICAgICAgICAg ICB7IFJJU0NWX1RMQl9GTFVTSF9TQ09QRV9SQU5HRSwgICAgICAgICAicmFuZ2UiIH0sIFwKPiA+ ID4gKyAgICAgICAgICAgICB7IFJJU0NWX1RMQl9GTFVTSF9TQ09QRV9BRERSRVNTX1NQQUNFLCAi YWRkcmVzcy1zcGFjZSIgfSwgXAo+ID4gPiArICAgICAgICAgICAgIHsgUklTQ1ZfVExCX0ZMVVNI X1NDT1BFX0FMTCwgICAgICAgICAgICJhbGwiIH0pCj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgc2hv d19yaXNjdl90bGJfZmx1c2hfcGF0aChwYXRoKSBcCj4gPiA+ICsgICAgIF9fcHJpbnRfc3ltYm9s aWMocGF0aCwgXAo+ID4gPiArICAgICAgICAgICAgIHsgUklTQ1ZfVExCX0ZMVVNIX1BBVEhfTE9D QUwsICAgICAgICAgICJsb2NhbCIgfSwgXAo+ID4gPiArICAgICAgICAgICAgIHsgUklTQ1ZfVExC X0ZMVVNIX1BBVEhfU0JJX1JGRU5DRSwgICAgICJzYmktcmZlbmNlIiB9LCBcCj4gPiA+ICsgICAg ICAgICAgICAgeyBSSVNDVl9UTEJfRkxVU0hfUEFUSF9DUk9TU19DUFVfQ0FMTCwgImNyb3NzLWNw dS1jYWxsIiB9KQo+ID4gPiArCj4gPiA+ICsvKgo+ID4gPiArICogUmVjb3JkIHRoZSBpbnZhbGlk YXRpb24gcmVxdWVzdCByZWNlaXZlZCBieSB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZSBjb2RlCj4g PiA+ICsgKiBhbmQgdGhlIHBhdGggc2VsZWN0ZWQgYnkgTGludXguCj4gPiA+ICsgKgo+ID4gPiAr ICogVGhlIHRhcmdldCBDUFUgbWFzayByZXByZXNlbnRzIHRoZSBDUFVzIExpbnV4IGludGVuZHMg dG8gY292ZXIgZm9yIHRoZQo+ID4gPiArICogcmVxdWVzdC4gSXQgY2FuIGJlIGNvcnJlbGF0ZWQg d2l0aCBwZXItQ1BVIGFjdGl2aXR5LCBidXQgZG9lcyBub3QgZGVzY3JpYmUKPiA+ID4gKyAqIHdo aWNoIGhhcnRzIHVsdGltYXRlbHkgcGVyZm9ybWVkIGFuIGludmFsaWRhdGlvbi4KPiA+ID4gKyAq Cj4gPiA+ICsgKiBUaGUgQVNJRCBpcyBoYXJkd2FyZS12aXNpYmxlIGFuZCBtYXkgYmUgcmV1c2Vk LiBJdCBtdXN0IG5vdCBiZSB0cmVhdGVkIGFzIGEKPiA+ID4gKyAqIHBlcnNpc3RlbnQgaWRlbnRp ZmllciBmb3IgYW4gbW0uCj4gPiA+ICsgKgo+ID4gPiArICogVGhlIHN0cmlkZSBkZXNjcmliZXMg dGhlIGludmFsaWRhdGlvbiBncmFudWxhcml0eSBzdXBwbGllZCB0byB0aGUgUklTQy1WCj4gPiA+ ICsgKiBpbXBsZW1lbnRhdGlvbi4gU0JJIFJGRU5DRSByZWNlaXZlcyBzdGFydCwgc2l6ZSBhbmQg QVNJRCwgYnV0IG5vdCBzdHJpZGUuCj4gPiA+ICsgKgo+ID4gPiArICogVGhlIGV2ZW50IGlzIGVt aXR0ZWQgYXQgcGF0aCBzZWxlY3Rpb24gdGltZS4gRm9yIFNCSSBSRkVOQ0UsIGl0IHJlY29yZHMK PiA+ID4gKyAqIGRlbGVnYXRpb24gb2YgdGhlIHJlcXVlc3QgdG8gZmlybXdhcmU7IGZpcm13YXJl IHByb2Nlc3NpbmcgYWZ0ZXIgdGhhdAo+ID4gPiArICogcG9pbnQgaXMgb3V0c2lkZSB0aGUgZXZl bnQncyBzY29wZS4KPiA+ID4gKyAqLwo+ID4gPiArVFJBQ0VfRVZFTlQocmlzY3ZfdGxiX2ZsdXNo X3BhdGgsCj4gPiA+ICsgICAgIFRQX1BST1RPKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVk IGxvbmcgc2l6ZSwKPiA+ID4gKyAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdHJpZGUsIHVu c2lnbmVkIGxvbmcgYXNpZCwgYm9vbCBoYXNfbW0sCj4gPiA+ICsgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBjcHVtYXNrICpjbWFzaywKPiA+ID4gKyAgICAgICAgICAgICAgZW51bSByaXNjdl90 bGJfZmx1c2hfc2NvcGUgc2NvcGUsCj4gPiA+ICsgICAgICAgICAgICAgIGVudW0gcmlzY3ZfdGxi X2ZsdXNoX3BhdGggcGF0aCksCj4gPiA+ICsKPiA+ID4gKyAgICAgVFBfQVJHUyhzdGFydCwgc2l6 ZSwgc3RyaWRlLCBhc2lkLCBoYXNfbW0sIGNtYXNrLCBzY29wZSwgcGF0aCksCj4gPiA+ICsKPiA+ ID4gKyAgICAgVFBfU1RSVUNUX19lbnRyeSgKPiA+ID4gKyAgICAgICAgICAgICBfX2ZpZWxkKHVu c2lnbmVkIGxvbmcsIHN0YXJ0KQo+ID4gPiArICAgICAgICAgICAgIF9fZmllbGQodW5zaWduZWQg bG9uZywgc2l6ZSkKPiA+ID4gKyAgICAgICAgICAgICBfX2ZpZWxkKHVuc2lnbmVkIGxvbmcsIHN0 cmlkZSkKPiA+ID4gKyAgICAgICAgICAgICBfX2ZpZWxkKHVuc2lnbmVkIGxvbmcsIGFzaWQpCj4g PiA+ICsgICAgICAgICAgICAgX19maWVsZChib29sLCBoYXNfbW0pCj4gPiA+ICsgICAgICAgICAg ICAgX19maWVsZCh1bnNpZ25lZCBpbnQsIHRhcmdldF9tYXNrX3dlaWdodCkKPiA+ID4gKyAgICAg ICAgICAgICBfX2NwdW1hc2sodGFyZ2V0X2NwdXMpCj4gPiA+ICsgICAgICAgICAgICAgX19maWVs ZCh1OCwgc2NvcGUpCj4gPiA+ICsgICAgICAgICAgICAgX19maWVsZCh1OCwgcGF0aCkKPiA+ID4g KyAgICAgKSwKPiA+ID4gKwo+ID4gPiArICAgICBUUF9mYXN0X2Fzc2lnbigKPiA+ID4gKyAgICAg ICAgICAgICBfX2VudHJ5LT5zdGFydCA9IHN0YXJ0Owo+ID4gPiArICAgICAgICAgICAgIF9fZW50 cnktPnNpemUgPSBzaXplOwo+ID4gPiArICAgICAgICAgICAgIF9fZW50cnktPnN0cmlkZSA9IHN0 cmlkZTsKPiA+ID4gKyAgICAgICAgICAgICBfX2VudHJ5LT5hc2lkID0gYXNpZDsKPiA+ID4gKyAg ICAgICAgICAgICBfX2VudHJ5LT5oYXNfbW0gPSBoYXNfbW07Cj4gPiA+ICsgICAgICAgICAgICAg X19lbnRyeS0+dGFyZ2V0X21hc2tfd2VpZ2h0ID0gY3B1bWFza193ZWlnaHQoY21hc2spOwo+ID4g PiArICAgICAgICAgICAgIF9fYXNzaWduX2NwdW1hc2sodGFyZ2V0X2NwdXMsIGNwdW1hc2tfYml0 cyhjbWFzaykpOwo+ID4gPiArICAgICAgICAgICAgIF9fZW50cnktPnNjb3BlID0gc2NvcGU7Cj4g PiA+ICsgICAgICAgICAgICAgX19lbnRyeS0+cGF0aCA9IHBhdGg7Cj4gPiA+ICsgICAgICksCj4g PiA+ICsKPiA+ID4gKyAgICAgVFBfcHJpbnRrKCJzdGFydD0lI2x4IHNpemU9JSNseCBzdHJpZGU9 JSNseCBhc2lkPSUjbHggaGFzX21tPSVkIHRhcmdldF9tYXNrX3dlaWdodD0ldSB0YXJnZXRfY3B1 cz0lcyBzY29wZT0lcyBwYXRoPSVzIiwKPiA+ID4gKyAgICAgICAgICAgICAgIF9fZW50cnktPnN0 YXJ0LCBfX2VudHJ5LT5zaXplLCBfX2VudHJ5LT5zdHJpZGUsCj4gPiA+ICsgICAgICAgICAgICAg ICBfX2VudHJ5LT5hc2lkLCBfX2VudHJ5LT5oYXNfbW0sCj4gPiA+ICsgICAgICAgICAgICAgICBf X2VudHJ5LT50YXJnZXRfbWFza193ZWlnaHQsIF9fZ2V0X2NwdW1hc2sodGFyZ2V0X2NwdXMpLAo+ ID4gPiArICAgICAgICAgICAgICAgc2hvd19yaXNjdl90bGJfZmx1c2hfc2NvcGUoX19lbnRyeS0+ c2NvcGUpLAo+ID4gPiArICAgICAgICAgICAgICAgc2hvd19yaXNjdl90bGJfZmx1c2hfcGF0aChf X2VudHJ5LT5wYXRoKSkKPiA+ID4gKyk7Cj4gPiA+ICsKPiA+ID4gKyNlbmRpZiAvKiBfVFJBQ0Vf UklTQ1ZfVExCX0ggKi8KPiA+ID4gKwo+ID4gPiArLyogVGhpcyBwYXJ0IG11c3QgYmUgb3V0c2lk ZSBwcm90ZWN0aW9uLiAqLwo+ID4gPiArI2luY2x1ZGUgPHRyYWNlL2RlZmluZV90cmFjZS5oPgo+ ID4gPgo+ID4gPiAtLS0KPiA+ID4gYmFzZS1jb21taXQ6IDc3YWUyN2ZkOThmM2I1NDg3OTdjOWYy MmMxMGFiNWNmMWM0YWRhNTMKPiA+ID4gY2hhbmdlLWlkOiAyMDI2MDgyOS10bGJfdHJhY2Vwb2lu dC04NDQxMDVhYjUwOTIKPiA+ID4KPiA+ID4gQmVzdCByZWdhcmRzLAo+ID4gPiAtLQo+ID4gPiBS b21hbiAnSGVkaW4nIFN0b3JvemhlbmtvIDxyb21ldXNtZWlzdGVyQGdtYWlsLmNvbT4KPiA+ID4K PiA+ID4KPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+ID4gbGludXgtcmlzY3YgbWFpbGluZyBsaXN0Cj4gPiA+IGxpbnV4LXJpc2N2QGxpc3Rz LmluZnJhZGVhZC5vcmcKPiA+ID4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1yaXNjdgo+IAo+IAo+IAo+IC0tIAo+IEtpbmQgcmVnYXJkcywKPiBSb21h biAnSGVkaW4nIFN0b3JvemhlbmtvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJpc2N2Cg==