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 X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F921C10DCE for ; Tue, 24 Mar 2020 21:25:42 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3B46F2076F for ; Tue, 24 Mar 2020 21:25:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3B46F2076F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BD037892F1; Tue, 24 Mar 2020 21:25:41 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 35FCD892F1 for ; Tue, 24 Mar 2020 21:25:40 +0000 (UTC) IronPort-SDR: /krC49RvDj39hBFq39toDXEyjBrl8Ll2WuX96/pwNgd9u8ybyL7O/xeDI2DLBOlABcgRw7wPBM Kr8YSG6LMjaA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Mar 2020 14:25:39 -0700 IronPort-SDR: /xa2rPAJ8O20dLCY1lyXZicOYnUL73T2xgTJjm5lDOGUM0CBEoq7LuaF/BwRSG8YTpCHEqjysh V1kOVaBQzttg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,301,1580803200"; d="scan'208";a="281942337" Received: from adixit-mobl.amr.corp.intel.com (HELO adixit-arch.intel.com) ([10.134.86.79]) by fmsmga002.fm.intel.com with ESMTP; 24 Mar 2020 14:25:39 -0700 Date: Tue, 24 Mar 2020 14:25:39 -0700 Message-ID: <87wo79cung.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: Umesh Nerlige Ramappa In-Reply-To: <20200324185457.14635-2-umesh.nerlige.ramappa@intel.com> References: <20200324185457.14635-1-umesh.nerlige.ramappa@intel.com> <20200324185457.14635-2-umesh.nerlige.ramappa@intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.8 EasyPG/1.0.0 Emacs/26 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915/perf: rework aging tail workaround X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCAyNCBNYXIgMjAyMCAxMTo1NDo1NSAtMDcwMCwgVW1lc2ggTmVybGlnZSBSYW1hcHBh IHdyb3RlOgo+Cj4gRnJvbTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5A aW50ZWwuY29tPgo+Cj4gV2UncmUgYWJvdXQgdG8gaW50cm9kdWNlIGFuIG9wdGlvbnMgdG8gb3Bl biB0aGUgcGVyZiBzdHJlYW0sIGdpdmluZwo+IHRoZSB1c2VyIGFiaWxpdHkgdG8gY29uZmlndXJl IGhvdyBvZnRlbiBpdCB3YW50cyB0aGUga2VybmVsIHRvIHBvbGwKPiB0aGUgT0EgcmVnaXN0ZXJz IGZvciBhdmFpbGFibGUgZGF0YS4KPgo+IFJpZ2h0IG5vdyB0aGUgd29ya2Fyb3VuZCBhZ2FpbnN0 IHRoZSBPQSB0YWlsIHBvaW50ZXIgcmFjZSBjb25kaXRpb24KPiByZXF1aXJlcyBhdCBsZWFzdCB0 d2ljZSB0aGUgaW50ZXJuYWwga2VybmVsIHBvbGxpbmcgdGltZXIgdG8gbWFrZSBhbnkKPiBkYXRh IGF2YWlsYWJsZS4KPgo+IFRoaXMgY2hhbmdlcyBpbnRyb2R1Y2UgY2hlY2tzIG9uIHRoZSBPQSBk YXRhIHdyaXR0ZW4gaW50byB0aGUgY2lyY3VsYXIKPiBidWZmZXIgdG8gbWFrZSBhcyBtdWNoIGRh dGEgYXMgcG9zc2libGUgYXZhaWxhYmxlIG9uIHRoZSBmaXJzdAo+IGl0ZXJhdGlvbiBvZiB0aGUg cG9sbGluZyB0aW1lci4KClJldmlld2VkLWJ5OiBBc2h1dG9zaCBEaXhpdCA8YXNodXRvc2guZGl4 aXRAaW50ZWwuY29tPgoKPgo+IHYyOiBVc2UgT0FfVEFLRU4gbWFjcm8gd2l0aG91dCB0aGUgZ3R0 X29mZnNldCAoTGlvbmVsKQo+IHYzOiAoVW1lc2gpCj4gLSBSZWJhc2UKPiAtIENoYW5nZSByZXBv cnQgdG8gcmVwb3J0MzIgZnJvbSBiZWxvdyByZXZpZXcKPiAgIGh0dHBzOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9wYXRjaC8zMzA3MDQvP3Nlcmllcz02NjY5NyZyZXY9MQo+IHY0OiAoQXNo dXRvc2gsIExpb25lbCkKPiAtIEZpeCBjaGVja3BhdGNoIGVycm9ycwo+IC0gRml4IGFnaW5nX3Rp bWVzdGFtcCBpbml0aWFsaXphdGlvbgo+IC0gQ2hlY2sgZm9yIG9ubHkgb25lIHZhbGlkIGxhbmRl ZCByZXBvcnQKPiAtIEZpeCBjaGVjayBmb3IgdW5sYW5kZWQgcmVwb3J0Cj4gdjU6IChBc2h1dG9z aCkKPiAtIEZpeCBidWcgaW4gYWNjdXJhdGVseSBkZXRlcm1pbmluZyBsYW5kZWQgcmVwb3J0Lgo+ IC0gT3B0aW1pemUgdGhlIGNoZWNrIGZvciBsYW5kZWQgcmVwb3J0cyBieSBnb2luZyBhcyBmYXIg YXMgdGhlCj4gICBwcmV2aW91c2x5IGRldGVybWluZWQgYWdlZCB0YWlsLgo+Cj4gU2lnbmVkLW9m Zi1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IFVtZXNoIE5lcmxpZ2UgUmFtYXBwYSA8dW1lc2gubmVybGlnZS5yYW1h cHBhQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMg ICAgICAgfCAyMDQgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BlcmZfdHlwZXMuaCB8ICAyOCArKy0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgOTcg aW5zZXJ0aW9ucygrKSwgMTM1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJm LmMKPiBpbmRleCAzMjIyZjZjZDgyNTUuLjQ1ODNhZTliNzdiZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGVyZi5jCj4gQEAgLTIyMywyNiArMjIzLDE3IEBACj4gICAqCj4gICAqIEFsdGhvdWdo IHRoaXMgY2FuIGJlIG9ic2VydmVkIGV4cGxpY2l0bHkgd2hpbGUgY29weWluZyByZXBvcnRzIHRv IHVzZXJzcGFjZQo+ICAgKiBieSBjaGVja2luZyBmb3IgYSB6ZXJvZWQgcmVwb3J0LWlkIGZpZWxk IGluIHRhaWwgcmVwb3J0cywgd2Ugd2FudCB0byBhY2NvdW50Cj4gLSAqIGZvciB0aGlzIGVhcmxp ZXIsIGFzIHBhcnQgb2YgdGhlIG9hX2J1ZmZlcl9jaGVjayB0byBhdm9pZCBsb3RzIG9mIHJlZHVu ZGFudAo+IC0gKiByZWFkKCkgYXR0ZW1wdHMuCj4gLSAqCj4gLSAqIEluIGVmZmVjdCB3ZSBkZWZp bmUgYSB0YWlsIHBvaW50ZXIgZm9yIHJlYWRpbmcgdGhhdCBsYWdzIHRoZSByZWFsIHRhaWwKPiAt ICogcG9pbnRlciBieSBhdCBsZWFzdCAlT0FfVEFJTF9NQVJHSU5fTlNFQyBuYW5vc2Vjb25kcywg d2hpY2ggZ2l2ZXMgZW5vdWdoCj4gLSAqIHRpbWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHJlcG9y dHMgdG8gYmVjb21lIHZpc2libGUgdG8gdGhlIENQVS4KPiAtICoKPiAtICogVG8gbWFuYWdlIHRo aXMgd2UgYWN0dWFsbHkgdHJhY2sgdHdvIHRhaWwgcG9pbnRlcnM6Cj4gLSAqICAxKSBBbiAnYWdp bmcnIHRhaWwgd2l0aCBhbiBhc3NvY2lhdGVkIHRpbWVzdGFtcCB0aGF0IGlzIHRyYWNrZWQgdW50 aWwgd2UKPiAtICogICAgIGNhbiB0cnVzdCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGlzIHZpc2li bGUgdG8gdGhlIENQVTsgYXQgd2hpY2ggcG9pbnQKPiAtICogICAgIGl0IGlzIGNvbnNpZGVyZWQg J2FnZWQnLgo+IC0gKiAgMikgQW4gJ2FnZWQnIHRhaWwgdGhhdCBjYW4gYmUgdXNlZCBmb3IgcmVh ZCgpaW5nLgo+IC0gKgo+IC0gKiBUaGUgdHdvIHNlcGFyYXRlIHBvaW50ZXJzIGxldCB1cyBkZWNv dXBsZSByZWFkKClzIGZyb20gdGFpbCBwb2ludGVyIGFnaW5nLgo+IC0gKgo+IC0gKiBUaGUgdGFp bCBwb2ludGVycyBhcmUgY2hlY2tlZCBhbmQgdXBkYXRlZCBhdCBhIGxpbWl0ZWQgcmF0ZSB3aXRo aW4gYSBocnRpbWVyCj4gLSAqIGNhbGxiYWNrICh0aGUgc2FtZSBjYWxsYmFjayB0aGF0IGlzIHVz ZWQgZm9yIGRlbGl2ZXJpbmcgRVBPTExJTiBldmVudHMpCj4gLSAqCj4gLSAqIEluaXRpYWxseSB0 aGUgdGFpbHMgYXJlIG1hcmtlZCBpbnZhbGlkIHdpdGggJUlOVkFMSURfVEFJTF9QVFIgd2hpY2gK PiAtICogaW5kaWNhdGVzIHRoYXQgYW4gdXBkYXRlZCB0YWlsIHBvaW50ZXIgaXMgbmVlZGVkLgo+ ICsgKiBmb3IgdGhpcyBlYXJsaWVyLCBhcyBwYXJ0IG9mIHRoZSBvYV9idWZmZXJfY2hlY2tfdW5s b2NrZWQgdG8gYXZvaWQgbG90cyBvZgo+ICsgKiByZWR1bmRhbnQgcmVhZCgpIGF0dGVtcHRzLgo+ ICsgKgo+ICsgKiBXZSB3b3JrYXJvdW5kIHRoaXMgaXNzdWUgaW4gb2FfYnVmZmVyX2NoZWNrX3Vu bG9ja2VkKCkgYnkgcmVhZGluZyB0aGUgcmVwb3J0cwo+ICsgKiBpbiB0aGUgT0EgYnVmZmVyLCBz dGFydGluZyBmcm9tIHRoZSB0YWlsIHJlcG9ydGVkIGJ5IHRoZSBIVyB1bnRpbCB3ZSBmaW5kIGEK PiArICogcmVwb3J0IHdpdGggaXRzIGZpcnN0IDIgZHdvcmRzIG5vdCAwIG1lYW5pbmcgaXRzIHBy ZXZpb3VzIHJlcG9ydCBpcwo+ICsgKiBjb21wbGV0ZWx5IGluIG1lbW9yeSBhbmQgcmVhZHkgdG8g YmUgcmVhZC4gVGhvc2UgZHdvcmRzIGFyZSBhbHNvIHNldCB0byAwCj4gKyAqIG9uY2UgcmVhZCBh bmQgdGhlIHdob2xlIGJ1ZmZlciBpcyBjbGVhcmVkIHVwb24gT0EgYnVmZmVyIGluaXRpYWxpemF0 aW9uLiBUaGUKPiArICogZmlyc3QgZHdvcmQgaXMgdGhlIHJlYXNvbiBmb3IgdGhpcyByZXBvcnQg d2hpbGUgdGhlIHNlY29uZCBpcyB0aGUgdGltZXN0YW1wLAo+ICsgKiBtYWtpbmcgdGhlIGNoYW5j ZXMgb2YgaGF2aW5nIHRob3NlIDIgZmllbGRzIGF0IDAgZmFpcmx5IHVubGlrZWx5LiBBIG1vcmUK PiArICogZGV0YWlsZWQgZXhwbGFuYXRpb24gaXMgYXZhaWxhYmxlIGluIG9hX2J1ZmZlcl9jaGVj a191bmxvY2tlZCgpLgo+ICAgKgo+ICAgKiBNb3N0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRh aWxzIGZvciB0aGlzIHdvcmthcm91bmQgYXJlIGluCj4gICAqIG9hX2J1ZmZlcl9jaGVja191bmxv Y2tlZCgpIGFuZCBfYXBwZW5kX29hX3JlcG9ydHMoKQo+IEBAIC00NTQsOCArNDQ1LDggQEAgc3Rh dGljIHUzMiBnZW43X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3Ry ZWFtKQo+ICAgKiAoU2VlIGRlc2NyaXB0aW9uIG9mIE9BX1RBSUxfTUFSR0lOX05TRUMgYWJvdmUg Zm9yIGZ1cnRoZXIgZGV0YWlscy4pCj4gICAqCj4gICAqIEJlc2lkZXMgcmV0dXJuaW5nIHRydWUg d2hlbiB0aGVyZSBpcyBkYXRhIGF2YWlsYWJsZSB0byByZWFkKCkgdGhpcyBmdW5jdGlvbgo+IC0g KiBhbHNvIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgdXBkYXRpbmcgdGhlIG9hX2J1ZmZlci50YWls c1tdLCAuYWdpbmdfdGltZXN0YW1wCj4gLSAqIGFuZCAuYWdlZF90YWlsX2lkeCBzdGF0ZSB1c2Vk IGZvciByZWFkaW5nLgo+ICsgKiBhbHNvIHVwZGF0ZXMgdGhlIHRhaWwsIGFnaW5nX3RhaWwgYW5k IGFnaW5nX3RpbWVzdGFtcCBpbiB0aGUgb2FfYnVmZmVyCj4gKyAqIG9iamVjdC4KPiAgICoKPiAg ICogTm90ZTogSXQncyBzYWZlIHRvIHJlYWQgT0EgY29uZmlnIHN0YXRlIGhlcmUgdW5sb2NrZWQs IGFzc3VtaW5nIHRoYXQgdGhpcyBpcwo+ICAgKiBvbmx5IGNhbGxlZCB3aGlsZSB0aGUgc3RyZWFt IGlzIGVuYWJsZWQsIHdoaWxlIHRoZSBnbG9iYWwgT0EgY29uZmlndXJhdGlvbgo+IEBAIC00NjUs MjggKzQ1NiwxOCBAQCBzdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICAqLwo+ICBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hl Y2tfdW5sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgewo+ICsJdTMy IGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHN0cmVhbS0+b2FfYnVmZmVyLnZtYSk7Cj4J aW50IHJlcG9ydF9zaXplID0gc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0X3NpemU7Cj4JdW5zaWdu ZWQgbG9uZyBmbGFnczsKPiAtCXVuc2lnbmVkIGludCBhZ2VkX2lkeDsKPiAtCXUzMiBoZWFkLCBo d190YWlsLCBhZ2VkX3RhaWwsIGFnaW5nX3RhaWw7Cj4gKwl1MzIgaHdfdGFpbDsKPgl1NjQgbm93 Owo+Cj4JLyogV2UgaGF2ZSB0byBjb25zaWRlciB0aGUgKHVubGlrZWx5KSBwb3NzaWJpbGl0eSB0 aGF0IHJlYWQoKSBlcnJvcnMKPiAtCSAqIGNvdWxkIHJlc3VsdCBpbiBhbiBPQSBidWZmZXIgcmVz ZXQgd2hpY2ggbWlnaHQgcmVzZXQgdGhlIGhlYWQsCj4gLQkgKiB0YWlsc1tdIGFuZCBhZ2VkX3Rh aWwgc3RhdGUuCj4gKwkgKiBjb3VsZCByZXN1bHQgaW4gYW4gT0EgYnVmZmVyIHJlc2V0IHdoaWNo IG1pZ2h0IHJlc2V0IHRoZSBoZWFkIGFuZAo+ICsJICogdGFpbCBzdGF0ZS4KPgkgKi8KPglzcGlu X2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPgo+IC0J LyogTkI6IFRoZSBoZWFkIHdlIG9ic2VydmUgaGVyZSBtaWdodCBlZmZlY3RpdmVseSBiZSBhIGxp dHRsZSBvdXQgb2YKPiAtCSAqIGRhdGUgKGJldHdlZW4gaGVhZCBhbmQgdGFpbHNbYWdlZF9pZHhd Lm9mZnNldCBpZiB0aGVyZSBpcyBjdXJyZW50bHkKPiAtCSAqIGEgcmVhZCgpIGluIHByb2dyZXNz Lgo+IC0JICovCj4gLQloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZDsKPiAtCj4gLQlhZ2Vk X2lkeCA9IHN0cmVhbS0+b2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7Cj4gLQlhZ2VkX3RhaWwgPSBz dHJlYW0tPm9hX2J1ZmZlci50YWlsc1thZ2VkX2lkeF0ub2Zmc2V0Owo+IC0JYWdpbmdfdGFpbCA9 IHN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0Owo+IC0KPglod190YWls ID0gc3RyZWFtLT5wZXJmLT5vcHMub2FfaHdfdGFpbF9yZWFkKHN0cmVhbSk7Cj4KPgkvKiBUaGUg dGFpbCBwb2ludGVyIGluY3JlYXNlcyBpbiA2NCBieXRlIGluY3JlbWVudHMsCj4gQEAgLTQ5Niw2 NCArNDc3LDYxIEBAIHN0YXRpYyBib29sIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3Qg aTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+Cj4Jbm93ID0ga3RpbWVfZ2V0X21vbm9fZmFzdF9u cygpOwo+Cj4gLQkvKiBVcGRhdGUgdGhlIGFnZWQgdGFpbAo+IC0JICoKPiAtCSAqIEZsaXAgdGhl IHRhaWwgcG9pbnRlciBhdmFpbGFibGUgZm9yIHJlYWQoKXMgb25jZSB0aGUgYWdpbmcgdGFpbCBp cwo+IC0JICogb2xkIGVub3VnaCB0byB0cnVzdCB0aGF0IHRoZSBjb3JyZXNwb25kaW5nIGRhdGEg d2lsbCBiZSB2aXNpYmxlIHRvCj4gLQkgKiB0aGUgQ1BVLi4uCj4gLQkgKgo+IC0JICogRG8gdGhp cyBiZWZvcmUgdXBkYXRpbmcgdGhlIGFnaW5nIHBvaW50ZXIgaW4gY2FzZSB3ZSBtYXkgYmUgYWJs ZSB0bwo+IC0JICogaW1tZWRpYXRlbHkgc3RhcnQgYWdpbmcgYSBuZXcgcG9pbnRlciB0b28gKGlm IG5ldyBkYXRhIGhhcyBiZWNvbWUKPiAtCSAqIGF2YWlsYWJsZSkgd2l0aG91dCBuZWVkaW5nIHRv IHdhaXQgZm9yIGEgbGF0ZXIgaHJ0aW1lciBjYWxsYmFjay4KPiAtCSAqLwo+IC0JaWYgKGFnaW5n X3RhaWwgIT0gSU5WQUxJRF9UQUlMX1BUUiAmJgo+IC0JICAgICgobm93IC0gc3RyZWFtLT5vYV9i dWZmZXIuYWdpbmdfdGltZXN0YW1wKSA+Cj4gLQkgICAgIE9BX1RBSUxfTUFSR0lOX05TRUMpKSB7 Cj4gLQo+IC0JCWFnZWRfaWR4IF49IDE7Cj4gLQkJc3RyZWFtLT5vYV9idWZmZXIuYWdlZF90YWls X2lkeCA9IGFnZWRfaWR4Owo+ICsJaWYgKGh3X3RhaWwgPT0gc3RyZWFtLT5vYV9idWZmZXIuYWdp bmdfdGFpbCAmJgo+ICsJICAgIChub3cgLSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190aW1lc3Rh bXApID4gT0FfVEFJTF9NQVJHSU5fTlNFQykgewo+ICsJCS8qIElmIHRoZSBIVyB0YWlsIGhhc24n dCBtb3ZlIHNpbmNlIHRoZSBsYXN0IGNoZWNrIGFuZCB0aGUgSFcKPiArCQkgKiB0YWlsIGhhcyBi ZWVuIGFnaW5nIGZvciBsb25nIGVub3VnaCwgZGVjbGFyZSBpdCB0aGUgbmV3Cj4gKwkJICogdGFp bC4KPiArCQkgKi8KPiArCQlzdHJlYW0tPm9hX2J1ZmZlci50YWlsID0gc3RyZWFtLT5vYV9idWZm ZXIuYWdpbmdfdGFpbDsKPiArCX0gZWxzZSB7Cj4gKwkJdTMyIGhlYWQsIHRhaWwsIGFnZWRfdGFp bDsKPgo+IC0JCWFnZWRfdGFpbCA9IGFnaW5nX3RhaWw7Cj4gKwkJLyogTkI6IFRoZSBoZWFkIHdl IG9ic2VydmUgaGVyZSBtaWdodCBlZmZlY3RpdmVseSBiZSBhIGxpdHRsZQo+ICsJCSAqIG91dCBv ZiBkYXRlLiBJZiBhIHJlYWQoKSBpcyBpbiBwcm9ncmVzcywgdGhlIGhlYWQgY291bGQgYmUKPiAr CQkgKiBhbnl3aGVyZSBiZXR3ZWVuIHRoaXMgaGVhZCBhbmQgc3RyZWFtLT5vYV9idWZmZXIudGFp bC4KPiArCQkgKi8KPiArCQloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZCAtIGd0dF9vZmZz ZXQ7Cj4gKwkJYWdlZF90YWlsID0gc3RyZWFtLT5vYV9idWZmZXIudGFpbCAtIGd0dF9vZmZzZXQ7 Cj4gKwo+ICsJCWh3X3RhaWwgLT0gZ3R0X29mZnNldDsKPiArCQl0YWlsID0gaHdfdGFpbDsKPiAr Cj4gKwkJLyogV2FsayB0aGUgc3RyZWFtIGJhY2t3YXJkIHVudGlsIHdlIGZpbmQgYSByZXBvcnQg d2l0aCBkd29yZCAwCj4gKwkJICogJiAxIG5vdCBhdCAwLiBTaW5jZSB0aGUgY2lyY3VsYXIgYnVm ZmVyIHBvaW50ZXJzIHByb2dyZXNzIGJ5Cj4gKwkJICogaW5jcmVtZW50cyBvZiA2NCBieXRlcyBh bmQgdGhhdCByZXBvcnRzIGNhbiBiZSB1cCB0byAyNTYKPiArCQkgKiBieXRlcyBsb25nLCB3ZSBj YW4ndCB0ZWxsIHdoZXRoZXIgYSByZXBvcnQgaGFzIGZ1bGx5IGxhbmRlZAo+ICsJCSAqIGluIG1l bW9yeSBiZWZvcmUgdGhlIGZpcnN0IDIgZHdvcmRzIG9mIHRoZSBmb2xsb3dpbmcgcmVwb3J0Cj4g KwkJICogaGF2ZSBlZmZlY3RpdmVseSBsYW5kZWQuCj4gKwkJICoKPiArCQkgKiBUaGlzIGlzIGFz c3VtaW5nIHRoYXQgdGhlIHdyaXRlcyBvZiB0aGUgT0EgdW5pdCBsYW5kIGluCj4gKwkJICogbWVt b3J5IGluIHRoZSBvcmRlciB0aGV5IHdlcmUgd3JpdHRlbiB0by4KPiArCQkgKiBJZiBub3QgOiAo 4pWvwrDilqHCsO+8ieKVr++4tSDilLvilIHilLsKPiArCQkgKi8KPiArCQl3aGlsZSAoT0FfVEFL RU4odGFpbCwgYWdlZF90YWlsKSA+PSByZXBvcnRfc2l6ZSkgewo+ICsJCQl1MzIgKnJlcG9ydDMy ID0gKHZvaWQgKikoc3RyZWFtLT5vYV9idWZmZXIudmFkZHIgKyB0YWlsKTsKPgo+IC0JCS8qIE1h cmsgdGhhdCB3ZSBuZWVkIGEgbmV3IHBvaW50ZXIgdG8gc3RhcnQgYWdpbmcuLi4gKi8KPiAtCQlz dHJlYW0tPm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9IElOVkFMSURfVEFJTF9Q VFI7Cj4gLQkJYWdpbmdfdGFpbCA9IElOVkFMSURfVEFJTF9QVFI7Cj4gLQl9Cj4gKwkJCWlmIChy ZXBvcnQzMlswXSAhPSAwIHx8IHJlcG9ydDMyWzFdICE9IDApCj4gKwkJCQlicmVhazsKPgo+IC0J LyogVXBkYXRlIHRoZSBhZ2luZyB0YWlsCj4gLQkgKgo+IC0JICogV2UgdGhyb3R0bGUgYWdpbmcg dGFpbCB1cGRhdGVzIHVudGlsIHdlIGhhdmUgYSBuZXcgdGFpbCB0aGF0Cj4gLQkgKiByZXByZXNl bnRzID49IG9uZSByZXBvcnQgbW9yZSBkYXRhIHRoYW4gaXMgYWxyZWFkeSBhdmFpbGFibGUgZm9y Cj4gLQkgKiByZWFkaW5nLiBUaGlzIGVuc3VyZXMgdGhlcmUgd2lsbCBiZSBlbm91Z2ggZGF0YSBm b3IgYSBzdWNjZXNzZnVsCj4gLQkgKiByZWFkIG9uY2UgdGhpcyBuZXcgcG9pbnRlciBoYXMgYWdl ZCBhbmQgZW5zdXJlcyB3ZSB3aWxsIGdpdmUgdGhlIG5ldwo+IC0JICogcG9pbnRlciB0aW1lIHRv IGFnZS4KPiAtCSAqLwo+IC0JaWYgKGFnaW5nX3RhaWwgPT0gSU5WQUxJRF9UQUlMX1BUUiAmJgo+ IC0JICAgIChhZ2VkX3RhaWwgPT0gSU5WQUxJRF9UQUlMX1BUUiB8fAo+IC0JICAgICBPQV9UQUtF Tihod190YWlsLCBhZ2VkX3RhaWwpID49IHJlcG9ydF9zaXplKSkgewo+IC0JCXN0cnVjdCBpOTE1 X3ZtYSAqdm1hID0gc3RyZWFtLT5vYV9idWZmZXIudm1hOwo+IC0JCXUzMiBndHRfb2Zmc2V0ID0g aTkxNV9nZ3R0X29mZnNldCh2bWEpOwo+IC0KPiAtCQkvKiBCZSBwYXJhbm9pZCBhbmQgZG8gYSBi b3VuZHMgY2hlY2sgb24gdGhlIHBvaW50ZXIgcmVhZCBiYWNrCj4gLQkJICogZnJvbSBoYXJkd2Fy ZSwganVzdCBpbiBjYXNlIHNvbWUgc3B1cmlvdXMgaGFyZHdhcmUgY29uZGl0aW9uCj4gLQkJICog Y291bGQgcHV0IHRoZSB0YWlsIG91dCBvZiBib3VuZHMuLi4KPiAtCQkgKi8KPiAtCQlpZiAoaHdf dGFpbCA+PSBndHRfb2Zmc2V0ICYmCj4gLQkJICAgIGh3X3RhaWwgPCAoZ3R0X29mZnNldCArIE9B X0JVRkZFUl9TSVpFKSkgewo+IC0JCQlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhd Lm9mZnNldCA9Cj4gLQkJCQlhZ2luZ190YWlsID0gaHdfdGFpbDsKPiAtCQkJc3RyZWFtLT5vYV9i dWZmZXIuYWdpbmdfdGltZXN0YW1wID0gbm93Owo+IC0JCX0gZWxzZSB7Cj4gLQkJCWRybV9lcnIo JnN0cmVhbS0+cGVyZi0+aTkxNS0+ZHJtLAo+IC0JCQkJIklnbm9yaW5nIHNwdXJpb3VzIG91dCBv ZiByYW5nZSBPQSBidWZmZXIgdGFpbCBwb2ludGVyID0gJXhcbiIsCj4gLQkJCQlod190YWlsKTsK PiArCQkJdGFpbCA9ICh0YWlsIC0gcmVwb3J0X3NpemUpICYgKE9BX0JVRkZFUl9TSVpFIC0gMSk7 Cj4JCX0KPiArCj4gKwkJaWYgKE9BX1RBS0VOKGh3X3RhaWwsIHRhaWwpID4gcmVwb3J0X3NpemUg JiYKPiArCQkgICAgX19yYXRlbGltaXQoJnN0cmVhbS0+cGVyZi0+dGFpbF9wb2ludGVyX3JhY2Up KQo+ICsJCQlEUk1fTk9URSgidW5sYW5kZWQgcmVwb3J0KHMpIGhlYWQ9MHgleCAiCj4gKwkJCQkg InRhaWw9MHgleCBod190YWlsPTB4JXhcbiIsCj4gKwkJCQkgaGVhZCwgdGFpbCwgaHdfdGFpbCk7 Cj4gKwo+ICsJCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWwgPSBndHRfb2Zmc2V0ICsgdGFpbDsKPiAr CQlzdHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190YWlsID0gZ3R0X29mZnNldCArIGh3X3RhaWw7Cj4g KwkJc3RyZWFtLT5vYV9idWZmZXIuYWdpbmdfdGltZXN0YW1wID0gbm93Owo+CX0KPgo+CXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4K PiAtCXJldHVybiBhZ2VkX3RhaWwgPT0gSU5WQUxJRF9UQUlMX1BUUiA/Cj4gLQkJZmFsc2UgOiBP QV9UQUtFTihhZ2VkX3RhaWwsIGhlYWQpID49IHJlcG9ydF9zaXplOwo+ICsJcmV0dXJuIE9BX1RB S0VOKHN0cmVhbS0+b2FfYnVmZmVyLnRhaWwgLSBndHRfb2Zmc2V0LAo+ICsJCQlzdHJlYW0tPm9h X2J1ZmZlci5oZWFkIC0gZ3R0X29mZnNldCkgPj0gcmVwb3J0X3NpemU7Cj4gIH0KPgo+ICAvKioK PiBAQCAtNjcxLDcgKzY0OSw2IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhz dHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+CXUzMiBtYXNrID0gKE9BX0JVRkZFUl9T SVpFIC0gMSk7Cj4Jc2l6ZV90IHN0YXJ0X29mZnNldCA9ICpvZmZzZXQ7Cj4JdW5zaWduZWQgbG9u ZyBmbGFnczsKPiAtCXVuc2lnbmVkIGludCBhZ2VkX3RhaWxfaWR4Owo+CXUzMiBoZWFkLCB0YWls Owo+CXUzMiB0YWtlbjsKPglpbnQgcmV0ID0gMDsKPiBAQCAtNjgyLDE4ICs2NTksMTAgQEAgc3Rh dGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpz dHJlYW0sCj4Jc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBm bGFncyk7Cj4KPgloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZDsKPiAtCWFnZWRfdGFpbF9p ZHggPSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4Owo+IC0JdGFpbCA9IHN0cmVhbS0+ b2FfYnVmZmVyLnRhaWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKPiArCXRhaWwgPSBzdHJlYW0t Pm9hX2J1ZmZlci50YWlsOwo+Cj4Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9i dWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPgo+IC0JLyoKPiAtCSAqIEFuIGludmFsaWQgdGFpbCBw b2ludGVyIGhlcmUgbWVhbnMgd2UncmUgc3RpbGwgd2FpdGluZyBmb3IgdGhlIHBvbGwKPiAtCSAq IGhydGltZXIgY2FsbGJhY2sgdG8gZ2l2ZSB1cyBhIHBvaW50ZXIKPiAtCSAqLwo+IC0JaWYgKHRh aWwgPT0gSU5WQUxJRF9UQUlMX1BUUikKPiAtCQlyZXR1cm4gLUVBR0FJTjsKPiAtCj4JLyoKPgkg KiBOQjogb2FfYnVmZmVyLmhlYWQvdGFpbCBpbmNsdWRlIHRoZSBndHRfb2Zmc2V0IHdoaWNoIHdl IGRvbid0IHdhbnQKPgkgKiB3aGlsZSBpbmRleGluZyByZWxhdGl2ZSB0byBvYV9idWZfYmFzZS4K PiBAQCAtODI3LDEzICs3OTYsMTEgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRz KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4JCX0KPgo+CQkvKgo+IC0JCSAqIFRo ZSBhYm92ZSByZWFzb24gZmllbGQgc2FuaXR5IGNoZWNrIGlzIGJhc2VkIG9uCj4gLQkJICogdGhl IGFzc3VtcHRpb24gdGhhdCB0aGUgT0EgYnVmZmVyIGlzIGluaXRpYWxseQo+IC0JCSAqIHplcm9l ZCBhbmQgd2UgcmVzZXQgdGhlIGZpZWxkIGFmdGVyIGNvcHlpbmcgc28gdGhlCj4gLQkJICogY2hl Y2sgaXMgc3RpbGwgbWVhbmluZ2Z1bCBvbmNlIG9sZCByZXBvcnRzIHN0YXJ0Cj4gLQkJICogYmVp bmcgb3ZlcndyaXR0ZW4uCj4gKwkJICogQ2xlYXIgb3V0IHRoZSBmaXJzdCAyIGR3b3JkIGFzIGEg bWVhbiB0byBkZXRlY3QgdW5sYW5kZWQKPiArCQkgKiByZXBvcnRzLgo+CQkgKi8KPgkJcmVwb3J0 MzJbMF0gPSAwOwo+ICsJCXJlcG9ydDMyWzFdID0gMDsKPgl9Cj4KPglpZiAoc3RhcnRfb2Zmc2V0 ICE9ICpvZmZzZXQpIHsKPiBAQCAtOTc0LDcgKzk0MSw2IEBAIHN0YXRpYyBpbnQgZ2VuN19hcHBl bmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+CXUzMiBtYXNr ID0gKE9BX0JVRkZFUl9TSVpFIC0gMSk7Cj4Jc2l6ZV90IHN0YXJ0X29mZnNldCA9ICpvZmZzZXQ7 Cj4JdW5zaWduZWQgbG9uZyBmbGFnczsKPiAtCXVuc2lnbmVkIGludCBhZ2VkX3RhaWxfaWR4Owo+ CXUzMiBoZWFkLCB0YWlsOwo+CXUzMiB0YWtlbjsKPglpbnQgcmV0ID0gMDsKPiBAQCAtOTg1LDE3 ICs5NTEsMTAgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4Jc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2FfYnVm ZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4KPgloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZDsK PiAtCWFnZWRfdGFpbF9pZHggPSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4Owo+IC0J dGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKPiAr CXRhaWwgPSBzdHJlYW0tPm9hX2J1ZmZlci50YWlsOwo+Cj4Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPgo+IC0JLyogQW4gaW52YWxp ZCB0YWlsIHBvaW50ZXIgaGVyZSBtZWFucyB3ZSdyZSBzdGlsbCB3YWl0aW5nIGZvciB0aGUgcG9s bAo+IC0JICogaHJ0aW1lciBjYWxsYmFjayB0byBnaXZlIHVzIGEgcG9pbnRlcgo+IC0JICovCj4g LQlpZiAodGFpbCA9PSBJTlZBTElEX1RBSUxfUFRSKQo+IC0JCXJldHVybiAtRUFHQUlOOwo+IC0K PgkvKiBOQjogb2FfYnVmZmVyLmhlYWQvdGFpbCBpbmNsdWRlIHRoZSBndHRfb2Zmc2V0IHdoaWNo IHdlIGRvbid0IHdhbnQKPgkgKiB3aGlsZSBpbmRleGluZyByZWxhdGl2ZSB0byBvYV9idWZfYmFz ZS4KPgkgKi8KPiBAQCAtMTA1MywxMyArMTAxMiwxMSBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5k X29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPgkJaWYgKHJldCkK PgkJCWJyZWFrOwo+Cj4gLQkJLyogVGhlIGFib3ZlIHJlcG9ydC1pZCBmaWVsZCBzYW5pdHkgY2hl Y2sgaXMgYmFzZWQgb24KPiAtCQkgKiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBPQSBidWZmZXIg aXMgaW5pdGlhbGx5Cj4gLQkJICogemVyb2VkIGFuZCB3ZSByZXNldCB0aGUgZmllbGQgYWZ0ZXIg Y29weWluZyBzbyB0aGUKPiAtCQkgKiBjaGVjayBpcyBzdGlsbCBtZWFuaW5nZnVsIG9uY2Ugb2xk IHJlcG9ydHMgc3RhcnQKPiAtCQkgKiBiZWluZyBvdmVyd3JpdHRlbi4KPiArCQkvKiBDbGVhciBv dXQgdGhlIGZpcnN0IDIgZHdvcmRzIGFzIGEgbWVhbiB0byBkZXRlY3QgdW5sYW5kZWQKPiArCQkg KiByZXBvcnRzLgo+CQkgKi8KPgkJcmVwb3J0MzJbMF0gPSAwOwo+ICsJCXJlcG9ydDMyWzFdID0g MDsKPgl9Cj4KPglpZiAoc3RhcnRfb2Zmc2V0ICE9ICpvZmZzZXQpIHsKPiBAQCAtMTQzOCw4ICsx Mzk1LDggQEAgc3RhdGljIHZvaWQgZ2VuN19pbml0X29hX2J1ZmZlcihzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtKQo+CQkJICAgZ3R0X29mZnNldCB8IE9BQlVGRkVSX1NJWkVfMTZNKTsK Pgo+CS8qIE1hcmsgdGhhdCB3ZSBuZWVkIHVwZGF0ZWQgdGFpbCBwb2ludGVycyB0byByZWFkIGZy b20uLi4gKi8KPiAtCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWzBdLm9mZnNldCA9IElOVkFMSURf VEFJTF9QVFI7Cj4gLQlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1sxXS5vZmZzZXQgPSBJTlZBTElE X1RBSUxfUFRSOwo+ICsJc3RyZWFtLT5vYV9idWZmZXIuYWdpbmdfdGFpbCA9IElOVkFMSURfVEFJ TF9QVFI7Cj4gKwlzdHJlYW0tPm9hX2J1ZmZlci50YWlsID0gZ3R0X29mZnNldDsKPgo+CXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4K PiBAQCAtMTQ5Miw4ICsxNDQ5LDggQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0X29hX2J1ZmZlcihz dHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+CWludGVsX3VuY29yZV93cml0ZSh1bmNv cmUsIEdFTjhfT0FUQUlMUFRSLCBndHRfb2Zmc2V0ICYgR0VOOF9PQVRBSUxQVFJfTUFTSyk7Cj4K PgkvKiBNYXJrIHRoYXQgd2UgbmVlZCB1cGRhdGVkIHRhaWwgcG9pbnRlcnMgdG8gcmVhZCBmcm9t Li4uICovCj4gLQlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RB SUxfUFRSOwo+IC0Jc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9U QUlMX1BUUjsKPiArCXN0cmVhbS0+b2FfYnVmZmVyLmFnaW5nX3RhaWwgPSBJTlZBTElEX1RBSUxf UFRSOwo+ICsJc3RyZWFtLT5vYV9idWZmZXIudGFpbCA9IGd0dF9vZmZzZXQ7Cj4KPgkvKgo+CSAq IFJlc2V0IHN0YXRlIHVzZWQgdG8gcmVjb2duaXNlIGNvbnRleHQgc3dpdGNoZXMsIGFmZmVjdGlu ZyB3aGljaAo+IEBAIC0xNTQ4LDggKzE1MDUsOCBAQCBzdGF0aWMgdm9pZCBnZW4xMl9pbml0X29h X2J1ZmZlcihzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+CQkJICAgZ3R0X29mZnNl dCAmIEdFTjEyX09BR19PQVRBSUxQVFJfTUFTSyk7Cj4KPgkvKiBNYXJrIHRoYXQgd2UgbmVlZCB1 cGRhdGVkIHRhaWwgcG9pbnRlcnMgdG8gcmVhZCBmcm9tLi4uICovCj4gLQlzdHJlYW0tPm9hX2J1 ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwo+IC0Jc3RyZWFtLT5vYV9i dWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKPiArCXN0cmVhbS0+b2Ff YnVmZmVyLmFnaW5nX3RhaWwgPSBJTlZBTElEX1RBSUxfUFRSOwo+ICsJc3RyZWFtLT5vYV9idWZm ZXIudGFpbCA9IGd0dF9vZmZzZXQ7Cj4KPgkvKgo+CSAqIFJlc2V0IHN0YXRlIHVzZWQgdG8gcmVj b2duaXNlIGNvbnRleHQgc3dpdGNoZXMsIGFmZmVjdGluZyB3aGljaAo+IEBAIC00Mzk4LDYgKzQz NTUsMTEgQEAgdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPgkJcmF0ZWxpbWl0X3NldF9mbGFncygmcGVyZi0+c3B1cmlvdXNfcmVwb3J0X3JzLAo+CQkJ CSAgICBSQVRFTElNSVRfTVNHX09OX1JFTEVBU0UpOwo+Cj4gKwkJcmF0ZWxpbWl0X3N0YXRlX2lu aXQoJnBlcmYtPnRhaWxfcG9pbnRlcl9yYWNlLAo+ICsJCQkJICAgICA1ICogSFosIDEwKTsKPiAr CQlyYXRlbGltaXRfc2V0X2ZsYWdzKCZwZXJmLT50YWlsX3BvaW50ZXJfcmFjZSwKPiArCQkJCSAg ICBSQVRFTElNSVRfTVNHX09OX1JFTEVBU0UpOwo+ICsKPgkJYXRvbWljNjRfc2V0KCZwZXJmLT5u b2FfcHJvZ3JhbW1pbmdfZGVsYXksCj4JCQkgICAgIDUwMCAqIDEwMDAgLyogNTAwdXMgKi8pOwo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZl90eXBlcy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmX3R5cGVzLmgKPiBpbmRleCAzMjI4OWNiZGE2 NDguLmMzYWIxODRjNjA0YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BlcmZfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZl90eXBl cy5oCj4gQEAgLTI3MywyMSArMjczLDEwIEBAIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtIHsKPgkJ c3BpbmxvY2tfdCBwdHJfbG9jazsKPgo+CQkvKioKPiAtCQkgKiBAdGFpbHM6IE9uZSAnYWdpbmcn IHRhaWwgcG9pbnRlciBhbmQgb25lICdhZ2VkJyB0YWlsIHBvaW50ZXIgcmVhZHkgdG8KPiAtCQkg KiB1c2VkIGZvciByZWFkaW5nLgo+IC0JCSAqCj4gLQkJICogSW5pdGlhbCB2YWx1ZXMgb2YgMHhm ZmZmZmZmZiBhcmUgaW52YWxpZCBhbmQgaW1wbHkgdGhhdCBhbgo+IC0JCSAqIHVwZGF0ZSBpcyBy ZXF1aXJlZCAoYW5kIHNob3VsZCBiZSBpZ25vcmVkIGJ5IGFuIGF0dGVtcHRlZAo+IC0JCSAqIHJl YWQpCj4gKwkJICogQGFnaW5nX3RhaWw6IFRoZSBsYXN0IEhXIHRhaWwgcmVwb3J0ZWQgYnkgSFcu IFRoZSBkYXRhCj4gKwkJICogbWlnaHQgbm90IGhhdmUgbWFkZSBpdCB0byBtZW1vcnkgeWV0IHRo b3VnaC4KPgkJICovCj4gLQkJc3RydWN0IHsKPiAtCQkJdTMyIG9mZnNldDsKPiAtCQl9IHRhaWxz WzJdOwo+IC0KPiAtCQkvKioKPiAtCQkgKiBAYWdlZF90YWlsX2lkeDogSW5kZXggZm9yIHRoZSBh Z2VkIHRhaWwgcmVhZHkgdG8gcmVhZCgpIGRhdGEgdXAgdG8uCj4gLQkJICovCj4gLQkJdW5zaWdu ZWQgaW50IGFnZWRfdGFpbF9pZHg7Cj4gKwkJdTMyIGFnaW5nX3RhaWw7Cj4KPgkJLyoqCj4JCSAq IEBhZ2luZ190aW1lc3RhbXA6IEEgbW9ub3RvbmljIHRpbWVzdGFtcCBmb3Igd2hlbiB0aGUgY3Vy cmVudCBhZ2luZyB0YWlsIHBvaW50ZXIKPiBAQCAtMzAzLDYgKzI5MiwxMSBAQCBzdHJ1Y3QgaTkx NV9wZXJmX3N0cmVhbSB7Cj4JCSAqIE9BIGJ1ZmZlciBkYXRhIHRvIHVzZXJzcGFjZS4KPgkJICov Cj4JCXUzMiBoZWFkOwo+ICsKPiArCQkvKioKPiArCQkgKiBAdGFpbDogVGhlIGxhc3QgdmVyaWZp ZWQgdGFpbCB0aGF0IGNhbiBiZSByZWFkIGJ5IHVzZXJzcGFjZS4KPiArCQkgKi8KPiArCQl1MzIg dGFpbDsKPgl9IG9hX2J1ZmZlcjsKPgo+CS8qKgo+IEBAIC00MjAsNiArNDE0LDEyIEBAIHN0cnVj dCBpOTE1X3BlcmYgewo+CSAqLwo+CXN0cnVjdCByYXRlbGltaXRfc3RhdGUgc3B1cmlvdXNfcmVw b3J0X3JzOwo+Cj4gKwkvKioKPiArCSAqIEZvciByYXRlIGxpbWl0aW5nIGFueSBub3RpZmljYXRp b25zIG9mIHRhaWwgcG9pbnRlcgo+ICsJICogcmFjZS4KPiArCSAqLwo+ICsJc3RydWN0IHJhdGVs aW1pdF9zdGF0ZSB0YWlsX3BvaW50ZXJfcmFjZTsKPiArCj4JdTMyIGdlbjdfbGF0Y2hlZF9vYXN0 YXR1czE7Cj4JdTMyIGN0eF9vYWN0eGN0cmxfb2Zmc2V0Owo+CXUzMiBjdHhfZmxleGV1MF9vZmZz ZXQ7Cj4gLS0KPiAyLjIwLjEKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK