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=-11.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 26E8AC4363D for ; Tue, 22 Sep 2020 01:01:49 +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 CE19820BED for ; Tue, 22 Sep 2020 01:01:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE19820BED 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 08B1A6E5CC; Tue, 22 Sep 2020 01:01:48 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1416D89805 for ; Tue, 22 Sep 2020 01:01:38 +0000 (UTC) IronPort-SDR: g3axlsemZAetws3PTTLuzGt6r2xH0TcnEcISLFjLjARECI/tnIgZLchoAVxWhQn5jeRT2y+iOj xXtMSz87JV8g== X-IronPort-AV: E=McAfee;i="6000,8403,9751"; a="160576193" X-IronPort-AV: E=Sophos;i="5.77,288,1596524400"; d="scan'208";a="160576193" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2020 18:01:37 -0700 IronPort-SDR: JdkWg3dJE2Z85SmgA/XXlaPgNTjxiF1YeMKhPG96d1NBwOcIcPxOYewcUrkVh29p2GiqINm5IM UpuLlrIJavzg== X-IronPort-AV: E=Sophos;i="5.77,288,1596524400"; d="scan'208";a="290208798" Received: from dceraolo-mobl.amr.corp.intel.com (HELO [10.212.26.61]) ([10.212.26.61]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2020 18:01:36 -0700 To: John Harrison , Intel-GFX@Lists.FreeDesktop.Org References: <20200921175428.2914478-1-John.C.Harrison@Intel.com> <20200921175428.2914478-2-John.C.Harrison@Intel.com> <20c3b327-9737-c2f3-6596-5ea06c7f1548@intel.com> From: Daniele Ceraolo Spurio Message-ID: <0b118247-4497-5dd6-4d7e-0ceb46ab7893@intel.com> Date: Mon, 21 Sep 2020 18:01:33 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 1/4] drm/i915/guc: Update to use firmware v49.0.1 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: Oscar Mateo , Michal Winiarski , Michel Thierry Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpPbiA5LzIxLzIwMjAgNTozOCBQTSwgSm9obiBIYXJyaXNvbiB3cm90ZToKPiBPbiA5LzIxLzIw MjAgMTc6MjQsIERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gd3JvdGU6Cj4+IE9uIDkvMjEvMjAyMCAx MDo1NCBBTSwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPj4+IEZyb206IEpvaG4g SGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4+Pgo+Pj4gVGhlIGxhdGVzdCBH dUMgZmlybXdhcmUgaW5jbHVkZXMgYSBudW1iZXIgb2YgaW50ZXJmYWNlIGNoYW5nZXMgdGhhdAo+ Pj4gcmVxdWlyZSBkcml2ZXIgdXBkYXRlcyB0byBtYXRjaC4KPj4+Cj4+PiAqIFN0YXJ0aW5nIGZy b20gR2VuMTEsIHRoZSBJRCB0byBiZSBwcm92aWRlZCB0byBHdUMgbmVlZHMgdG8gY29udGFpbgo+ Pj4gwqDCoCB0aGUgZW5naW5lIGNsYXNzIGluIGJpdHMgWzAuLjJdIGFuZCB0aGUgaW5zdGFuY2Ug aW4gYml0cyBbMy4uNl0uCj4+Pgo+Pj4gwqDCoCBOT1RFOiB0aGlzIHBhdGNoIGJyZWFrcyBwb2lu dGVyIGRlcmVmZXJlbmNlcyBpbiBzb21lIGV4aXN0aW5nIEd1Qwo+Pj4gwqDCoCBmdW5jdGlvbnMg dGhhdCB1c2UgdGhlIGd1Y19pZCB0byBkZXJlZmVyZW5jZSBhcnJheXMgYnV0IHRoZXNlIAo+Pj4g ZnVuY3Rpb25zCj4+PiDCoMKgIGFyZSBub3QgdXNlZCBmb3Igbm93IGFzIHdlIGhhdmUgR3VDIHN1 Ym1pc3Npb24gZGlzYWJsZWQgYW5kIHdlIHdpbGwKPj4+IMKgwqAgdXBkYXRlIHRoZXNlIGZ1bmN0 aW9ucyBpbiBmb2xsb3cgdXAgcGF0Y2ggd2hpY2ggcmVxdWlyZXMgbmV3IElEcy4KPj4+Cj4+PiAq IFRoZSBuZXcgR3VDIHJlcXVpcmVzIHRoZSBhZGRpdGlvbmFsIGRhdGEgc3RydWN0dXJlIChBRFMp IGFuZCAKPj4+IGFzc29jaWF0ZWQKPj4+IMKgwqAgJ3ByaXZhdGVfZGF0YScgcG9pbnRlciB0byBi ZSBzZXR1cC4gVGhpcyBpcyBiYXNpY2FsbHkgYSBzY3JhdGNoIGFyZWEKPj4+IMKgwqAgb2YgbWVt b3J5IHRoYXQgdGhlIEd1QyBvd25zLiBUaGUgc2l6ZSBpcyByZWFkIGZyb20gdGhlIENTUyBoZWFk ZXIuCj4+Pgo+Pj4gKiBUaGVyZSBpcyBub3cgYSBwaHlzaWNhbCB0byBsb2dpY2FsIGVuZ2luZSBt YXBwaW5nIHRhYmxlIGluIHRoZSBBRFMKPj4+IMKgwqAgd2hpY2ggbmVlZHMgdG8gYmUgY29uZmln dXJlZCBpbiBvcmRlciBmb3IgdGhlIGZpcm13YXJlIHRvIGxvYWQuIEZvcgo+Pj4gwqDCoCBub3cs IHRoZSB0YWJsZSBpcyBpbml0aWFsaXNlZCB3aXRoIGEgMSB0byAxIG1hcHBpbmcuCj4+Pgo+Pj4g KiBHVUNfQ1RMX0NUWElORk8gaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBpbml0aWFsaXphdGlv biBwYXJhbXMuCj4+Pgo+Pj4gKiByZWdfc3RhdGVfYnVmZmVyIGlzIG1haW50YWluZWQgaW50ZXJu YWxseSBieSB0aGUgR3VDIGFzIHBhcnQgb2YKPj4+IMKgwqAgdGhlIHByaXZhdGUgZGF0YS4KPj4+ Cj4+PiAqIFRoZSBBRFMgbGF5b3V0IGhhcyBjaGFuZ2VkIHNpZ25pZmljYW50bHkuIFRoaXMgcGF0 Y2ggdXBkYXRlcyB0aGUKPj4+IMKgwqAgc2hhcmVkIHN0cnVjdHVyZSBhbmQgYWxzbyBhZGRzIGJl dHRlciBkb2N1bWVudGF0aW9uIG9mIHRoZSBsYXlvdXQuCj4+Pgo+Pj4gKiBXaGlsZSBpOTE1IGRv ZXMgbm90IHVzZSBHdUMgZG9vcmJlbGxzLCB0aGUgZmlybXdhcmUgbm93IHJlcXVpcmVzCj4+PiDC oMKgIHRoYXQgc29tZSBpbml0aWFsaXNhdGlvbiBpcyBkb25lLgo+Pj4KPj4+ICogVGhlIG51bWJl ciBvZiBlbmdpbmUgY2xhc3NlcyBhbmQgaW5zdGFuY2VzIHN1cHBvcnRlZCBpbiB0aGUgQURTIGhh cwo+Pj4gwqDCoCBiZWVuIGluY3JlYXNlZC4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBKb2huIEhh cnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogTWF0 dGhldyBCcm9zdCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBE YW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+ Pj4gU2lnbmVkLW9mZi1ieTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KPj4+ IFNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ Cj4+PiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ Cj4+PiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgV2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGlu dGVsLmNvbT4KPj4+IENjOiBNaWNoYWwgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVs LmNvbT4KPj4+IENjOiBUb21hc3ogTGlzIDx0b21hc3oubGlzQGludGVsLmNvbT4KPj4+IENjOiBK b29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4+PiAtLS0K Pj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jwqDCoMKgIHzC oMKgIDMgKy0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Yy5jwqDC oMKgwqDCoMKgIHzCoCAxOCAtLS0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2d1Y19hZHMuY8KgwqAgfCAxMzEgCj4+PiArKysrKysrKysrKysrKystLS0tCj4+PiDCoCBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndpZi5owqAgfMKgIDgyICsrKysr KystLS0tLQo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3JlZy5o wqDCoCB8wqDCoCA1ICsKPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3Vj X2Z3LmPCoMKgwqDCoCB8wqAgMjcgKystLQo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvaW50ZWxfdWNfZncuaMKgwqDCoMKgIHzCoMKgIDIgKwo+Pj4gwqAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfdWNfZndfYWJpLmggfMKgwqAgNiArLQo+Pj4gwqAgOCBmaWxlcyBj aGFuZ2VkLCAxODIgaW5zZXJ0aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jIAo+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwo+Pj4gaW5kZXggMTk4NTc3 MjE1MmJmLi4zZmI1MmZhYzBkNWQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfY3MuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX2NzLmMKPj4+IEBAIC0zMDUsOCArMzA1LDkgQEAgc3RhdGljIGludCBpbnRl bF9lbmdpbmVfc2V0dXAoc3RydWN0IGludGVsX2d0IAo+Pj4gKmd0LCBlbnVtIGludGVsX2VuZ2lu ZV9pZCBpZCkKPj4+IMKgwqDCoMKgwqAgZW5naW5lLT5pOTE1ID0gaTkxNTsKPj4+IMKgwqDCoMKg wqAgZW5naW5lLT5ndCA9IGd0Owo+Pj4gwqDCoMKgwqDCoCBlbmdpbmUtPnVuY29yZSA9IGd0LT51 bmNvcmU7Cj4+PiAtwqDCoMKgIGVuZ2luZS0+aHdfaWQgPSBlbmdpbmUtPmd1Y19pZCA9IGluZm8t Pmh3X2lkOwo+Pj4gwqDCoMKgwqDCoCBlbmdpbmUtPm1taW9fYmFzZSA9IF9fZW5naW5lX21taW9f YmFzZShpOTE1LCBpbmZvLT5tbWlvX2Jhc2VzKTsKPj4+ICvCoMKgwqAgZW5naW5lLT5od19pZCA9 IGluZm8tPmh3X2lkOwo+Pj4gK8KgwqDCoCBlbmdpbmUtPmd1Y19pZCA9IE1BS0VfR1VDX0lEKGlu Zm8tPmNsYXNzLCBpbmZvLT5pbnN0YW5jZSk7Cj4+PiDCoCDCoMKgwqDCoMKgIGVuZ2luZS0+Y2xh c3MgPSBpbmZvLT5jbGFzczsKPj4+IMKgwqDCoMKgwqAgZW5naW5lLT5pbnN0YW5jZSA9IGluZm8t Pmluc3RhbmNlOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2lu dGVsX2d1Yy5jIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuYwo+ Pj4gaW5kZXggOTQyYzdjMTg3YWRiLi42OTA5ZGExZTFhNzMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmMKPj4+IEBAIC0yMTMsMjMgKzIxMyw2IEBAIHN0YXRp YyB1MzIgZ3VjX2N0bF9mZWF0dXJlX2ZsYWdzKHN0cnVjdCAKPj4+IGludGVsX2d1YyAqZ3VjKQo+ Pj4gwqDCoMKgwqDCoCByZXR1cm4gZmxhZ3M7Cj4+PiDCoCB9Cj4+PiDCoCAtc3RhdGljIHUzMiBn dWNfY3RsX2N0eGluZm9fZmxhZ3Moc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+Pj4gLXsKPj4+IC3C oMKgwqAgdTMyIGZsYWdzID0gMDsKPj4+IC0KPj4+IC3CoMKgwqAgaWYgKGludGVsX2d1Y19zdWJt aXNzaW9uX2lzX3VzZWQoZ3VjKSkgewo+Pj4gLcKgwqDCoMKgwqDCoMKgIHUzMiBjdHhudW0sIGJh c2U7Cj4+PiAtCj4+PiAtwqDCoMKgwqDCoMKgwqAgYmFzZSA9IGludGVsX2d1Y19nZ3R0X29mZnNl dChndWMsIGd1Yy0+c3RhZ2VfZGVzY19wb29sKTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBjdHhudW0g PSBHVUNfTUFYX1NUQUdFX0RFU0NSSVBUT1JTIC8gMTY7Cj4+PiAtCj4+PiAtwqDCoMKgwqDCoMKg wqAgYmFzZSA+Pj0gUEFHRV9TSElGVDsKPj4+IC3CoMKgwqDCoMKgwqDCoCBmbGFncyB8PSAoYmFz ZSA8PCBHVUNfQ1RMX0JBU0VfQUREUl9TSElGVCkgfAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGN0eG51bSA8PCBHVUNfQ1RMX0NUWE5VTV9JTjE2X1NISUZUKTsKPj4+IC3CoMKgwqAgfQo+ Pj4gLcKgwqDCoCByZXR1cm4gZmxhZ3M7Cj4+PiAtfQo+Pj4gLQo+Pj4gwqAgc3RhdGljIHUzMiBn dWNfY3RsX2xvZ19wYXJhbXNfZmxhZ3Moc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+Pj4gwqAgewo+ Pj4gwqDCoMKgwqDCoCB1MzIgb2Zmc2V0ID0gaW50ZWxfZ3VjX2dndHRfb2Zmc2V0KGd1YywgZ3Vj LT5sb2cudm1hKSA+PiAKPj4+IFBBR0VfU0hJRlQ7Cj4+PiBAQCAtMjkxLDcgKzI3NCw2IEBAIHN0 YXRpYyB2b2lkIGd1Y19pbml0X3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4+PiDCoCDC oMKgwqDCoMKgIEJVSUxEX0JVR19PTihzaXplb2YoZ3VjLT5wYXJhbXMpICE9IEdVQ19DVExfTUFY X0RXT1JEUyAqIAo+Pj4gc2l6ZW9mKHUzMikpOwo+Pj4gwqAgLcKgwqDCoCBwYXJhbXNbR1VDX0NU TF9DVFhJTkZPXSA9IGd1Y19jdGxfY3R4aW5mb19mbGFncyhndWMpOwo+Pj4gwqDCoMKgwqDCoCBw YXJhbXNbR1VDX0NUTF9MT0dfUEFSQU1TXSA9IGd1Y19jdGxfbG9nX3BhcmFtc19mbGFncyhndWMp Owo+Pj4gwqDCoMKgwqDCoCBwYXJhbXNbR1VDX0NUTF9GRUFUVVJFXSA9IGd1Y19jdGxfZmVhdHVy ZV9mbGFncyhndWMpOwo+Pj4gwqDCoMKgwqDCoCBwYXJhbXNbR1VDX0NUTF9ERUJVR10gPSBndWNf Y3RsX2RlYnVnX2ZsYWdzKGd1Yyk7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5jIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF9ndWNfYWRzLmMKPj4+IGluZGV4IGQ0NDA2MTAzM2YyMy4uNzk1MGQyOGJlYjhjIDEw MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Fkcy5j Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfYWRzLmMKPj4+ IEBAIC0xMCwxMSArMTAsNTIgQEAKPj4+IMKgIMKgIC8qCj4+PiDCoMKgICogVGhlIEFkZGl0aW9u YWwgRGF0YSBTdHJ1Y3QgKEFEUykgaGFzIHBvaW50ZXJzIGZvciBkaWZmZXJlbnQgCj4+PiBidWZm ZXJzIHVzZWQgYnkKPj4+IC0gKiB0aGUgR3VDLiBPbmUgc2luZ2xlIGdlbSBvYmplY3QgY29udGFp bnMgdGhlIEFEUyBzdHJ1Y3QgaXRzZWxmIAo+Pj4gKGd1Y19hZHMpLCB0aGUKPj4+IC0gKiBzY2hl ZHVsaW5nIHBvbGljaWVzIChndWNfcG9saWNpZXMpLCBhIHN0cnVjdHVyZSBkZXNjcmliaW5nIGEg Cj4+PiBjb2xsZWN0aW9uIG9mCj4+PiAtICogcmVnaXN0ZXIgc2V0cyAoZ3VjX21taW9fcmVnX3N0 YXRlKSBhbmQgc29tZSBleHRyYSBwYWdlcyBmb3IgdGhlIAo+Pj4gR3VDIHRvIHNhdmUKPj4+IC0g KiBpdHMgaW50ZXJuYWwgc3RhdGUgZm9yIHNsZWVwLgo+Pj4gKyAqIHRoZSBHdUMuIE9uZSBzaW5n bGUgZ2VtIG9iamVjdCBjb250YWlucyB0aGUgQURTIHN0cnVjdCBpdHNlbGYgCj4+PiAoZ3VjX2Fk cykgYW5kCj4+PiArICogYWxsIHRoZSBleHRyYSBidWZmZXJzIGluZGlyZWN0bHkgbGlua2VkIHZp YSB0aGUgQURTIHN0cnVjdCdzIAo+Pj4gZW50cmllcy4KPj4+ICsgKgo+Pj4gKyAqIExheW91dCBv ZiB0aGUgQURTIGJsb2IgYWxsb2NhdGVkIGZvciB0aGUgR3VDOgo+Pj4gKyAqCj4+PiArICrCoMKg wqDCoMKgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDw9PSBiYXNl Cj4+PiArICrCoMKgwqDCoMKgIHwgZ3VjX2Fkc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+PiArICrCoMKgwqDCoMKgICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4+PiArICrCoMKgwqDCoMKgIHwg Z3VjX3BvbGljaWVzwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfAo+Pj4gKyAqwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwo+Pj4gKyAqwqDCoMKgwqDCoCB8IGd1Y19ndF9zeXN0ZW1faW5mb8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+ICsgKsKgwqDCoMKgwqAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4+ICsgKsKgwqDCoMKgwqAgfCBn dWNfY2xpZW50c19pbmZvwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHwKPj4+ICsgKsKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKPj4+ICsgKsKgwqDCoMKgwqAgfCBndWNfY3RfcG9vbF9lbnRyeVtzaXplXcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4gKyAqwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+Pj4gKyAqwqDCoMKgwqDCoCB8IHBhZGRpbmfCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fAo+Pj4gKyAqwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKyA8PT0gNEsgYWxpZ25lZAo+Pj4gKyAqwqDCoMKgwqDCoCB8IHByaXZhdGUgZGF0YcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+ICsgKsKg wqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4+ICsg KsKgwqDCoMKgwqAgfCBwYWRkaW5nwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+ICsgKsKgwqDCoMKgwqAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPD09IDRLIGFsaWduZWQKPj4+IMKgwqAgKi8K Pj4+ICtzdHJ1Y3QgX19ndWNfYWRzX2Jsb2Igewo+Pj4gK8KgwqDCoCBzdHJ1Y3QgZ3VjX2FkcyBh ZHM7Cj4+PiArwqDCoMKgIHN0cnVjdCBndWNfcG9saWNpZXMgcG9saWNpZXM7Cj4+PiArwqDCoMKg IHN0cnVjdCBndWNfZ3Rfc3lzdGVtX2luZm8gc3lzdGVtX2luZm87Cj4+PiArwqDCoMKgIHN0cnVj dCBndWNfY2xpZW50c19pbmZvIGNsaWVudHNfaW5mbzsKPj4+ICvCoMKgwqAgc3RydWN0IGd1Y19j dF9wb29sX2VudHJ5IGN0X3Bvb2xbR1VDX0NUX1BPT0xfU0laRV07Cj4+PiArfSBfX3BhY2tlZDsK Pj4+ICsKPj4+ICtzdGF0aWMgdTMyIGd1Y19hZHNfcHJpdmF0ZV9kYXRhX3NpemUoc3RydWN0IGlu dGVsX2d1YyAqZ3VjKQo+Pj4gK3sKPj4+ICvCoMKgwqAgcmV0dXJuIFBBR0VfQUxJR04oZ3VjLT5m dy5wcml2YXRlX2RhdGFfc2l6ZSk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyB1MzIgZ3VjX2Fk c19wcml2YXRlX2RhdGFfb2Zmc2V0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4+ICt7Cj4+PiAr wqDCoMKgIHJldHVybiBQQUdFX0FMSUdOKHNpemVvZihzdHJ1Y3QgX19ndWNfYWRzX2Jsb2IpKTsK Pj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIHUzMiBndWNfYWRzX2Jsb2Jfc2l6ZShzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCj4+PiArewo+Pj4gK8KgwqDCoCByZXR1cm4gZ3VjX2Fkc19wcml2YXRlX2Rh dGFfb2Zmc2V0KGd1YykgKwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIGd1Y19hZHNfcHJpdmF0 ZV9kYXRhX3NpemUoZ3VjKTsKPj4+ICt9Cj4+PiDCoCDCoCBzdGF0aWMgdm9pZCBndWNfcG9saWN5 X2luaXQoc3RydWN0IGd1Y19wb2xpY3kgKnBvbGljeSkKPj4+IMKgIHsKPj4+IEBAIC00OCwyNiAr ODksMzcgQEAgc3RhdGljIHZvaWQgZ3VjX2N0X3Bvb2xfZW50cmllc19pbml0KHN0cnVjdCAKPj4+ IGd1Y19jdF9wb29sX2VudHJ5ICpwb29sLCB1MzIgbnVtKQo+Pj4gwqDCoMKgwqDCoCBtZW1zZXQo cG9vbCwgMCwgbnVtICogc2l6ZW9mKCpwb29sKSk7Cj4+PiDCoCB9Cj4+PiDCoCArc3RhdGljIHZv aWQgZ3VjX21hcHBpbmdfdGFibGVfaW5pdChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZ3VjX2d0X3N5c3RlbV9pbmZv ICpzeXN0ZW1faW5mbykKPj4+ICt7Cj4+PiArwqDCoMKgIHVuc2lnbmVkIGludCBpLCBqOwo+Pj4g K8KgwqDCoCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4+PiArwqDCoMKgIGVudW0g aW50ZWxfZW5naW5lX2lkIGlkOwo+Pj4gKwo+Pj4gK8KgwqDCoCAvKiBUYWJsZSBtdXN0IGJlIHNl dCB0byBpbnZhbGlkIHZhbHVlcyBmb3IgZW50cmllcyBub3QgdXNlZCAqLwo+Pj4gK8KgwqDCoCBm b3IgKGkgPSAwOyBpIDwgR1VDX01BWF9FTkdJTkVfQ0xBU1NFUzsgKytpKQo+Pj4gK8KgwqDCoMKg wqDCoMKgIGZvciAoaiA9IDA7IGogPCBHVUNfTUFYX0lOU1RBTkNFU19QRVJfQ0xBU1M7ICsraikK Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN5c3RlbV9pbmZvLT5tYXBwaW5nX3RhYmxlW2ld W2pdID0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR1VDX01BWF9JTlNUQU5D RVNfUEVSX0NMQVNTOwo+Pj4gKwo+Pj4gK8KgwqDCoCBmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBn dCwgaWQpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCB1OCBndWNfY2xhc3MgPSBlbmdpbmUtPmNsYXNz Owo+Pj4gKwo+Pj4gKyBzeXN0ZW1faW5mby0+bWFwcGluZ190YWJsZVtndWNfY2xhc3NdW2VuZ2lu ZS0+aW5zdGFuY2VdID0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVuZ2luZS0+aW5zdGFu Y2U7Cj4+PiArwqDCoMKgIH0KPj4+ICt9Cj4+PiArCj4+PiDCoCAvKgo+Pj4gwqDCoCAqIFRoZSBm aXJzdCA4MCBkd29yZHMgb2YgdGhlIHJlZ2lzdGVyIHN0YXRlIGNvbnRleHQsIGNvbnRhaW5pbmcg dGhlCj4+PiDCoMKgICogZXhlY2xpc3RzIGFuZCBwcGd0dCByZWdpc3RlcnMuCj4+PiDCoMKgICov Cj4+PiDCoCAjZGVmaW5lIExSX0hXX0NPTlRFWFRfU0laRcKgwqDCoCAoODAgKiBzaXplb2YodTMy KSkKPj4+IMKgIC0vKiBUaGUgYWRzIG9iaiBpbmNsdWRlcyB0aGUgc3RydWN0IGl0c2VsZiBhbmQg YnVmZmVycyBwYXNzZWQgdG8gCj4+PiBHdUMgKi8KPj4+IC1zdHJ1Y3QgX19ndWNfYWRzX2Jsb2Ig ewo+Pj4gLcKgwqDCoCBzdHJ1Y3QgZ3VjX2FkcyBhZHM7Cj4+PiAtwqDCoMKgIHN0cnVjdCBndWNf cG9saWNpZXMgcG9saWNpZXM7Cj4+PiAtwqDCoMKgIHN0cnVjdCBndWNfbW1pb19yZWdfc3RhdGUg cmVnX3N0YXRlOwo+Pj4gLcKgwqDCoCBzdHJ1Y3QgZ3VjX2d0X3N5c3RlbV9pbmZvIHN5c3RlbV9p bmZvOwo+Pj4gLcKgwqDCoCBzdHJ1Y3QgZ3VjX2NsaWVudHNfaW5mbyBjbGllbnRzX2luZm87Cj4+ PiAtwqDCoMKgIHN0cnVjdCBndWNfY3RfcG9vbF9lbnRyeSBjdF9wb29sW0dVQ19DVF9QT09MX1NJ WkVdOwo+Pj4gLcKgwqDCoCB1OCByZWdfc3RhdGVfYnVmZmVyW0dVQ19TM19TQVZFX1NQQUNFX1BB R0VTICogUEFHRV9TSVpFXTsKPj4+IC19IF9fcGFja2VkOwo+Pj4gLQo+Pj4gwqAgc3RhdGljIHZv aWQgX19ndWNfYWRzX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+Pj4gwqAgewo+Pj4gwqDC oMKgwqDCoCBzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gZ3VjX3RvX2d0KGd1Yyk7Cj4+PiArwqDCoMKg IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3QtPmk5MTU7Cj4+PiDCoMKgwqDCoMKg IHN0cnVjdCBfX2d1Y19hZHNfYmxvYiAqYmxvYiA9IGd1Yy0+YWRzX2Jsb2I7Cj4+PiDCoMKgwqDC oMKgIGNvbnN0IHUzMiBza2lwcGVkX3NpemUgPSBMUkNfUFBIV1NQX1NaICogUEFHRV9TSVpFICsg Cj4+PiBMUl9IV19DT05URVhUX1NJWkU7Cj4+PiDCoMKgwqDCoMKgIHUzMiBiYXNlOwo+Pj4gQEAg LTk5LDEzICsxNTEsMjUgQEAgc3RhdGljIHZvaWQgX19ndWNfYWRzX2luaXQoc3RydWN0IGludGVs X2d1YyAqZ3VjKQo+Pj4gwqDCoMKgwqDCoCB9Cj4+PiDCoCDCoMKgwqDCoMKgIC8qIFN5c3RlbSBp bmZvICovCj4+PiAtwqDCoMKgIGJsb2ItPnN5c3RlbV9pbmZvLnNsaWNlX2VuYWJsZWQgPSAKPj4+ IGh3ZWlnaHQ4KGd0LT5pbmZvLnNzZXUuc2xpY2VfbWFzayk7Cj4+PiAtwqDCoMKgIGJsb2ItPnN5 c3RlbV9pbmZvLnJjc19lbmFibGVkID0gMTsKPj4+IC3CoMKgwqAgYmxvYi0+c3lzdGVtX2luZm8u YmNzX2VuYWJsZWQgPSAxOwo+Pj4gK8KgwqDCoCBibG9iLT5zeXN0ZW1faW5mby5lbmdpbmVfZW5h YmxlZF9tYXNrc1tSRU5ERVJfQ0xBU1NdID0gMTsKPj4+ICsgYmxvYi0+c3lzdGVtX2luZm8uZW5n aW5lX2VuYWJsZWRfbWFza3NbQ09QWV9FTkdJTkVfQ0xBU1NdID0gMTsKPj4+ICsgYmxvYi0+c3lz dGVtX2luZm8uZW5naW5lX2VuYWJsZWRfbWFza3NbVklERU9fREVDT0RFX0NMQVNTXSA9IAo+Pj4g VkRCT1hfTUFTSyhndCk7Cj4+PiArIGJsb2ItPnN5c3RlbV9pbmZvLmVuZ2luZV9lbmFibGVkX21h c2tzW1ZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTXSA9IAo+Pj4gVkVCT1hfTUFTSyhndCk7Cj4+PiAr Cj4+PiArIAo+Pj4gYmxvYi0+c3lzdGVtX2luZm8uZ2VuZXJpY19ndF9zeXNpbmZvW0dVQ19HRU5F UklDX0dUX1NZU0lORk9fU0xJQ0VfRU5BQkxFRF0gCj4+PiA9Cj4+PiArwqDCoMKgwqDCoMKgwqAg aHdlaWdodDgoZ3QtPmluZm8uc3NldS5zbGljZV9tYXNrKTsKPj4+ICsgCj4+PiBibG9iLT5zeXN0 ZW1faW5mby5nZW5lcmljX2d0X3N5c2luZm9bR1VDX0dFTkVSSUNfR1RfU1lTSU5GT19WREJPWF9T RkNfU1VQUE9SVF9NQVNLXSAKPj4+ID0KPj4+ICvCoMKgwqDCoMKgwqDCoCBndC0+aW5mby52ZGJv eF9zZmNfYWNjZXNzOwo+Pj4gKwo+Pj4gK8KgwqDCoCBpZiAoSU5URUxfR0VOKGk5MTUpID49IDEy ICYmICFJU19ER0ZYKGk5MTUpKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgdTMyIGRpc3RkYnJlZyA9 IGludGVsX3VuY29yZV9yZWFkKGd0LT51bmNvcmUsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR0VOMTJfRElTVF9EQlNfUE9QVUxBVEVEKTsK Pj4+ICsgCj4+PiBibG9iLT5zeXN0ZW1faW5mby5nZW5lcmljX2d0X3N5c2luZm9bR1VDX0dFTkVS SUNfR1RfU1lTSU5GT19ET09SQkVMTF9DT1VOVF9QRVJfU1FJREldIAo+Pj4gPQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKChkaXN0ZGJyZWcgPj4gR0VOMTJfRE9PUkJFTExTX1BFUl9TUUlE SV9TSElGVCkgJgo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHRU4xMl9ET09SQkVMTFNf UEVSX1NRSURJKSArIDE7Cj4+PiArwqDCoMKgIH0KPj4+IMKgIC3CoMKgwqAgYmxvYi0+c3lzdGVt X2luZm8udmRib3hfZW5hYmxlX21hc2sgPSBWREJPWF9NQVNLKGd0KTsKPj4+IC3CoMKgwqAgYmxv Yi0+c3lzdGVtX2luZm8udmVib3hfZW5hYmxlX21hc2sgPSBWRUJPWF9NQVNLKGd0KTsKPj4+IC3C oMKgwqAgYmxvYi0+c3lzdGVtX2luZm8udmRib3hfc2ZjX3N1cHBvcnRfbWFzayA9IAo+Pj4gZ3Qt PmluZm8udmRib3hfc2ZjX2FjY2VzczsKPj4+ICvCoMKgwqAgZ3VjX21hcHBpbmdfdGFibGVfaW5p dChndWNfdG9fZ3QoZ3VjKSwgJmJsb2ItPnN5c3RlbV9pbmZvKTsKPj4+IMKgIMKgwqDCoMKgwqAg YmFzZSA9IGludGVsX2d1Y19nZ3R0X29mZnNldChndWMsIGd1Yy0+YWRzX3ZtYSk7Cj4+PiDCoCBA QCAtMTE4LDExICsxODIsMTIgQEAgc3RhdGljIHZvaWQgX19ndWNfYWRzX2luaXQoc3RydWN0IGlu dGVsX2d1YyAKPj4+ICpndWMpCj4+PiDCoCDCoMKgwqDCoMKgIC8qIEFEUyAqLwo+Pj4gwqDCoMKg wqDCoCBibG9iLT5hZHMuc2NoZWR1bGVyX3BvbGljaWVzID0gYmFzZSArIHB0cl9vZmZzZXQoYmxv YiwgcG9saWNpZXMpOwo+Pj4gLcKgwqDCoCBibG9iLT5hZHMucmVnX3N0YXRlX2J1ZmZlciA9IGJh c2UgKyBwdHJfb2Zmc2V0KGJsb2IsIAo+Pj4gcmVnX3N0YXRlX2J1ZmZlcik7Cj4+PiAtwqDCoMKg IGJsb2ItPmFkcy5yZWdfc3RhdGVfYWRkciA9IGJhc2UgKyBwdHJfb2Zmc2V0KGJsb2IsIHJlZ19z dGF0ZSk7Cj4+PiDCoMKgwqDCoMKgIGJsb2ItPmFkcy5ndF9zeXN0ZW1faW5mbyA9IGJhc2UgKyBw dHJfb2Zmc2V0KGJsb2IsIHN5c3RlbV9pbmZvKTsKPj4+IMKgwqDCoMKgwqAgYmxvYi0+YWRzLmNs aWVudHNfaW5mbyA9IGJhc2UgKyBwdHJfb2Zmc2V0KGJsb2IsIGNsaWVudHNfaW5mbyk7Cj4+PiDC oCArwqDCoMKgIC8qIFByaXZhdGUgRGF0YSAqLwo+Pj4gK8KgwqDCoCBibG9iLT5hZHMucHJpdmF0 ZV9kYXRhID0gYmFzZSArIGd1Y19hZHNfcHJpdmF0ZV9kYXRhX29mZnNldChndWMpOwo+Pj4gKwo+ Pj4gwqDCoMKgwqDCoCBpOTE1X2dlbV9vYmplY3RfZmx1c2hfbWFwKGd1Yy0+YWRzX3ZtYS0+b2Jq KTsKPj4+IMKgIH0KPj4+IMKgIEBAIC0xMzUsMTQgKzIwMCwxNSBAQCBzdGF0aWMgdm9pZCBfX2d1 Y19hZHNfaW5pdChzdHJ1Y3QgaW50ZWxfZ3VjIAo+Pj4gKmd1YykKPj4+IMKgwqAgKi8KPj4+IMKg IGludCBpbnRlbF9ndWNfYWRzX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4+PiDCoCB7 Cj4+PiAtwqDCoMKgIGNvbnN0IHUzMiBzaXplID0gUEFHRV9BTElHTihzaXplb2Yoc3RydWN0IF9f Z3VjX2Fkc19ibG9iKSk7Cj4+PiArwqDCoMKgIHUzMiBzaXplOwo+Pj4gwqDCoMKgwqDCoCBpbnQg cmV0Owo+Pj4gwqAgwqDCoMKgwqDCoCBHRU1fQlVHX09OKGd1Yy0+YWRzX3ZtYSk7Cj4+PiDCoCAr wqDCoMKgIHNpemUgPSBndWNfYWRzX2Jsb2Jfc2l6ZShndWMpOwo+Pj4gKwo+Pj4gwqDCoMKgwqDC oCByZXQgPSBpbnRlbF9ndWNfYWxsb2NhdGVfYW5kX21hcF92bWEoZ3VjLCBzaXplLCAmZ3VjLT5h ZHNfdm1hLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAodm9pZCAqKikmZ3VjLT5hZHNfYmxvYik7Cj4+PiAtCj4+PiDCoMKgwqDCoMKgIGlm IChyZXQpCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+IMKgIEBAIC0xNTYs NiArMjIyLDE4IEBAIHZvaWQgaW50ZWxfZ3VjX2Fkc19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMg Cj4+PiAqZ3VjKQo+Pj4gwqDCoMKgwqDCoCBpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmZ3Vj LT5hZHNfdm1hLCBJOTE1X1ZNQV9SRUxFQVNFX01BUCk7Cj4+PiDCoCB9Cj4+PiDCoCArc3RhdGlj IHZvaWQgZ3VjX2Fkc19wcml2YXRlX2RhdGFfcmVzZXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ Pj4gK3sKPj4+ICvCoMKgwqAgdTMyIHNpemU7Cj4+PiArCj4+PiArwqDCoMKgIHNpemUgPSBndWNf YWRzX3ByaXZhdGVfZGF0YV9zaXplKGd1Yyk7Cj4+PiArwqDCoMKgIGlmICghc2l6ZSkKPj4+ICvC oMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+PiArCj4+PiArwqDCoMKgIG1lbXNldCgodm9pZCAqKWd1 Yy0+YWRzX2Jsb2IgKyAKPj4+IGd1Y19hZHNfcHJpdmF0ZV9kYXRhX29mZnNldChndWMpLCAwLAo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemUpOwo+Pj4gK30KPj4+ICsKPj4+IMKgIC8qKgo+ Pj4gwqDCoCAqIGludGVsX2d1Y19hZHNfcmVzZXQoKSAtIHByZXBhcmVzIEd1QyBBZGRpdGlvbmFs IERhdGEgU3RydWN0IGZvciAKPj4+IHJldXNlCj4+PiDCoMKgICogQGd1YzogaW50ZWxfZ3VjIHN0 cnVjdAo+Pj4gQEAgLTE2OCw1ICsyNDYsOCBAQCB2b2lkIGludGVsX2d1Y19hZHNfcmVzZXQoc3Ry dWN0IGludGVsX2d1YyAqZ3VjKQo+Pj4gwqAgewo+Pj4gwqDCoMKgwqDCoCBpZiAoIWd1Yy0+YWRz X3ZtYSkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+PiArCj4+PiDCoMKgwqDCoMKg IF9fZ3VjX2Fkc19pbml0KGd1Yyk7Cj4+PiArCj4+PiArwqDCoMKgIGd1Y19hZHNfcHJpdmF0ZV9k YXRhX3Jlc2V0KGd1Yyk7Cj4+PiDCoCB9Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2Z3aWYuaCAKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX2Z3aWYuaAo+Pj4gaW5kZXggYTZiNzMzYzE0NmM5Li4zOTEwNTMxMTg4 NjkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNf ZndpZi5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfZndp Zi5oCj4+PiBAQCAtMjYsOCArMjYsOCBAQAo+Pj4gwqAgI2RlZmluZSBHVUNfVklERU9fRU5HSU5F MsKgwqDCoMKgwqDCoMKgIDQKPj4+IMKgICNkZWZpbmUgR1VDX01BWF9FTkdJTkVTX05VTcKgwqDC oMKgwqDCoMKgIChHVUNfVklERU9fRU5HSU5FMiArIDEpCj4+PiDCoCAtI2RlZmluZSBHVUNfTUFY X0VOR0lORV9DTEFTU0VTwqDCoMKgwqDCoMKgwqAgNQo+Pj4gLSNkZWZpbmUgR1VDX01BWF9JTlNU QU5DRVNfUEVSX0NMQVNTwqDCoMKgIDE2Cj4+PiArI2RlZmluZSBHVUNfTUFYX0VOR0lORV9DTEFT U0VTwqDCoMKgwqDCoMKgwqAgMTYKPj4+ICsjZGVmaW5lIEdVQ19NQVhfSU5TVEFOQ0VTX1BFUl9D TEFTU8KgwqDCoCAzMgo+Pj4gwqAgwqAgI2RlZmluZSBHVUNfRE9PUkJFTExfSU5WQUxJRMKgwqDC oMKgwqDCoMKgIDI1Ngo+Pj4gwqAgQEAgLTYyLDEyICs2Miw3IEBACj4+PiDCoCAjZGVmaW5lIEdV Q19TVEFHRV9ERVNDX0FUVFJfUENIwqDCoMKgwqDCoMKgwqAgQklUKDYpCj4+PiDCoCAjZGVmaW5l IEdVQ19TVEFHRV9ERVNDX0FUVFJfVEVSTUlOQVRFRMKgwqDCoCBCSVQoNykKPj4+IMKgIC0vKiBO ZXcgR3VDIGNvbnRyb2wgZGF0YSAqLwo+Pj4gLSNkZWZpbmUgR1VDX0NUTF9DVFhJTkZPwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAwCj4+PiAtI2RlZmluZcKgwqAgR1VDX0NUTF9DVFhOVU1fSU4xNl9T SElGVMKgwqDCoCAwCj4+PiAtI2RlZmluZcKgwqAgR1VDX0NUTF9CQVNFX0FERFJfU0hJRlTCoMKg wqAgMTIKPj4+IC0KPj4+IC0jZGVmaW5lIEdVQ19DVExfTE9HX1BBUkFNU8KgwqDCoMKgwqDCoMKg IDEKPj4+ICsjZGVmaW5lIEdVQ19DVExfTE9HX1BBUkFNU8KgwqDCoMKgwqDCoMKgIDAKPj4+IMKg ICNkZWZpbmXCoMKgIEdVQ19MT0dfVkFMSUTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgxIDw8IDAp Cj4+PiDCoCAjZGVmaW5lwqDCoCBHVUNfTE9HX05PVElGWV9PTl9IQUxGX0ZVTEzCoMKgwqAgKDEg PDwgMSkKPj4+IMKgICNkZWZpbmXCoMKgIEdVQ19MT0dfQUxMT0NfSU5fTUVHQUJZVEXCoMKgwqAg KDEgPDwgMykKPj4+IEBAIC03OSwxMSArNzQsMTEgQEAKPj4+IMKgICNkZWZpbmXCoMKgIEdVQ19M T0dfSVNSX01BU0vCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgweDcgPDwgR1VDX0xPR19JU1JfU0hJ RlQpCj4+PiDCoCAjZGVmaW5lwqDCoCBHVUNfTE9HX0JVRl9BRERSX1NISUZUwqDCoMKgIDEyCj4+ PiDCoCAtI2RlZmluZSBHVUNfQ1RMX1dBwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+PiAtI2Rl ZmluZSBHVUNfQ1RMX0ZFQVRVUkXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDMKPj4+ICsjZGVmaW5l IEdVQ19DVExfV0HCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEKPj4+ICsjZGVmaW5lIEdVQ19DVExf RkVBVFVSRcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMgo+Pj4gwqAgI2RlZmluZcKgwqAgR1VDX0NU TF9ESVNBQkxFX1NDSEVEVUxFUsKgwqDCoCAoMSA8PCAxNCkKPj4+IMKgIC0jZGVmaW5lIEdVQ19D VExfREVCVUfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDQKPj4+ICsjZGVmaW5lIEdVQ19DVExfREVC VUfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDMKPj4+IMKgICNkZWZpbmXCoMKgIEdVQ19MT0dfVkVS Qk9TSVRZX1NISUZUwqDCoMKgIDAKPj4+IMKgICNkZWZpbmXCoMKgIEdVQ19MT0dfVkVSQk9TSVRZ X0xPV8KgwqDCoMKgwqDCoMKgICgwIDw8IEdVQ19MT0dfVkVSQk9TSVRZX1NISUZUKQo+Pj4gwqAg I2RlZmluZcKgwqAgR1VDX0xPR19WRVJCT1NJVFlfTUVEwqDCoMKgwqDCoMKgwqAgKDEgPDwgR1VD X0xPR19WRVJCT1NJVFlfU0hJRlQpCj4+PiBAQCAtOTcsMTIgKzkyLDM3IEBACj4+PiDCoCAjZGVm aW5lwqDCoCBHVUNfTE9HX0RJU0FCTEVEwqDCoMKgwqDCoMKgwqAgKDEgPDwgNikKPj4+IMKgICNk ZWZpbmXCoMKgIEdVQ19QUk9GSUxFX0VOQUJMRUTCoMKgwqDCoMKgwqDCoCAoMSA8PCA3KQo+Pj4g wqAgLSNkZWZpbmUgR1VDX0NUTF9BRFPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUKPj4+ICsjZGVm aW5lIEdVQ19DVExfQURTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA0Cj4+PiDCoCAjZGVmaW5lwqDC oCBHVUNfQURTX0FERFJfU0hJRlTCoMKgwqDCoMKgwqDCoCAxCj4+PiDCoCAjZGVmaW5lwqDCoCBH VUNfQURTX0FERFJfTUFTS8KgwqDCoMKgwqDCoMKgICgweEZGRkZGIDw8IEdVQ19BRFNfQUREUl9T SElGVCkKPj4+IMKgIMKgICNkZWZpbmUgR1VDX0NUTF9NQVhfRFdPUkRTwqDCoMKgwqDCoMKgwqAg KFNPRlRfU0NSQVRDSF9DT1VOVCAtIDIpIC8qIAo+Pj4gWzEuLjE0XSAqLwo+Pj4gwqAgKy8qIEdl bmVyaWMgR1QgU3lzSW5mbyBkYXRhIHR5cGVzICovCj4+PiArI2RlZmluZSBHVUNfR0VORVJJQ19H VF9TWVNJTkZPX1NMSUNFX0VOQUJMRUTCoMKgwqDCoMKgwqDCoCAwCj4+PiArI2RlZmluZSBHVUNf R0VORVJJQ19HVF9TWVNJTkZPX1ZEQk9YX1NGQ19TVVBQT1JUX01BU0vCoMKgwqAgMQo+Pj4gKyNk ZWZpbmUgR1VDX0dFTkVSSUNfR1RfU1lTSU5GT19ET09SQkVMTF9DT1VOVF9QRVJfU1FJREnCoMKg wqAgMgo+Pj4gKyNkZWZpbmUgR1VDX0dFTkVSSUNfR1RfU1lTSU5GT19NQVjCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDE2Cj4+Cj4+IG5pdDogdGhlc2UgbmFtZXMgYXJlIGxvbmcuIE1heWJlIGRyb3Ag dGhlICJHRU5FUklDIj8gaXQncyBub3QgbGlrZSAKPj4gdGhlcmUgaXMgYSBzcGVjaWFsaXplZF9p bmZvIGFycmF5IDopCj4gVGhlIG5hbWUgaXMgdG8gbWF0Y2ggdGhlIEd1QyBzcGVjLiBBbmQgdGhl IGdlbmVyaWMgcmVmZXJzIHRvIGl0IG5vdCAKPiBiZWluZyBlbmdpbmUgc3BlY2lmaWMuIEFzIGlu LCB0aGVyZSBpcyBhbiBlbmdpbmUgY2xhc3MgYXJyYXkgYW5kIHRoZSAKPiBnZW5lcmljIEdUIGlu Zm8gYXJyYXkuIFNvIGFjdHVhbGx5LCB5ZXMgdGhlcmUgaXMgYSBzcGVjaWFsaXNlZCBpbmZvIAo+ IGFycmF5IGFscmVhZHkuCgpJIG1lYW50IHRoZXJlIG5vdCBiZWluZyBhbm90aGVyIG5vbi1nZW5l cmljIEdUIFNZU0lORk8gYXJyYXkgd2UgY291bGQgCmdldCBjb25mdXNlZCB3aXRoLiBhbnl3YXkg dGhpcyB3YXMgbm90IGEgYmxvY2tlci4KCj4KPgo+Cj4+Cj4+PiArCj4+PiArLyoKPj4+ICsgKiBU aGUgY2xhc3MgZ29lcyBpbiBiaXRzIFswLi4yXSBvZiB0aGUgR3VDIElELCB0aGUgaW5zdGFuY2Ug aW4gCj4+PiBiaXRzIFszLi42XS4KPj4+ICsgKiBCaXQgNyBjYW4gYmUgdXNlZCBmb3Igb3BlcmF0 aW9ucyB0aGF0IGFwcGx5IHRvIGFsbCBlbmdpbmUgCj4+PiBjbGFzc2VzJmluc3RhbmNlcy4KPj4+ ICsgKi8KPj4+ICsjZGVmaW5lIEdVQ19FTkdJTkVfQ0xBU1NfU0hJRlTCoMKgwqDCoMKgwqDCoCAw Cj4+PiArI2RlZmluZSBHVUNfRU5HSU5FX0NMQVNTX01BU0vCoMKgwqDCoMKgwqDCoCAoMHg3IDw8 IEdVQ19FTkdJTkVfQ0xBU1NfU0hJRlQpCj4+PiArI2RlZmluZSBHVUNfRU5HSU5FX0lOU1RBTkNF X1NISUZUwqDCoMKgIDMKPj4+ICsjZGVmaW5lIEdVQ19FTkdJTkVfSU5TVEFOQ0VfTUFTS8KgwqDC oCAoMHhmIDw8IEdVQ19FTkdJTkVfSU5TVEFOQ0VfU0hJRlQpCj4+PiArI2RlZmluZSBHVUNfRU5H SU5FX0FMTF9JTlNUQU5DRVPCoMKgwqAgQklUKDcpCj4+PiArCj4+PiArI2RlZmluZSBNQUtFX0dV Q19JRChjbGFzcywgaW5zdGFuY2UpIFwKPj4+ICvCoMKgwqAgKCgoY2xhc3MpIDw8IEdVQ19FTkdJ TkVfQ0xBU1NfU0hJRlQpIHwgXAo+Pj4gK8KgwqDCoMKgICgoaW5zdGFuY2UpIDw8IEdVQ19FTkdJ TkVfSU5TVEFOQ0VfU0hJRlQpKQo+Pj4gKwo+Pj4gKyNkZWZpbmUgR1VDX0lEX1RPX0VOR0lORV9D TEFTUyhndWNfaWQpIFwKPj4+ICvCoMKgwqAgKCgoZ3VjX2lkKSAmIEdVQ19FTkdJTkVfQ0xBU1Nf TUFTSykgPj4gR1VDX0VOR0lORV9DTEFTU19TSElGVCkKPj4+ICsjZGVmaW5lIEdVQ19JRF9UT19F TkdJTkVfSU5TVEFOQ0UoZ3VjX2lkKSBcCj4+PiArwqDCoMKgICgoKGd1Y19pZCkgJiBHVUNfRU5H SU5FX0lOU1RBTkNFX01BU0spID4+IAo+Pj4gR1VDX0VOR0lORV9JTlNUQU5DRV9TSElGVCkKPj4+ ICsKPj4+IMKgIC8qIFdvcmsgaXRlbSBmb3Igc3VibWl0dGluZyB3b3JrbG9hZHMgaW50byB3b3Jr IHF1ZXVlIG9mIEd1Qy4gKi8KPj4+IMKgIHN0cnVjdCBndWNfd3FfaXRlbSB7Cj4+PiDCoMKgwqDC oMKgIHUzMiBoZWFkZXI7Cj4+PiBAQCAtMzM4LDcgKzM1OCw2IEBAIHN0cnVjdCBndWNfcG9saWNp ZXMgewo+Pj4gwqAgLyogR3VDIE1NSU8gcmVnIHN0YXRlIHN0cnVjdCAqLwo+Pj4gwqAgwqAgLSNk ZWZpbmUgR1VDX1JFR1NFVF9NQVhfUkVHSVNURVJTwqDCoMKgIDY0Cj4+PiDCoCAjZGVmaW5lIEdV Q19TM19TQVZFX1NQQUNFX1BBR0VTwqDCoMKgwqDCoMKgwqAgMTAKPj4KPj4gVGhlIFMzIGRlZmlu ZSBjYW4gYWxzbyBiZSByZW1vdmVkCj4gV2hhdCB3YXMgdGhhdD8gSXMgaXMgYWN0dWFsbHkgb2Jz b2xldGUgYW5kIHJlbW92ZWQgZnJvbSB0aGUgaW50ZXJmYWNlIAo+IG9yIGp1c3Qgc29tZXRoaW5n IHRoYXQgd2UgZG9uJ3QgdXNlIHlldD8gTm90ZSB0aGF0IHRoZSBsaW5lIGFib3ZlIHdhcyAKPiBy ZW1vdmVkIHNwZWNpZmljYWxseSBiZWNhdXNlIHRoZSByZWdzZXQgZGVmaW5pdGlvbiBoYXMgY2hh bmdlZCwgaXQncyAKPiBub3QganVzdCBzb21lIHJhbmRvbSB0aWR5IHVwLgoKVGhlIHVzYWdlIG9m IHRoaXMgZGVmaW5lIGlzIHJlbW92ZWQgaW4gdGhpcyBwYXRjaCBhcyBwYXJ0IG9mIHRoZSBjaGFu Z2VzIAppbiB0aGUgQURTLCBzbyB0aGUgZGVmaW5lIHNob3VsZCBnbyBhcyB3ZWxsLgoKPgo+Pgo+ Pj4gwqAgwqAgc3RydWN0IGd1Y19tbWlvX3JlZyB7Cj4+PiBAQCAtMzQ4LDI4ICszNjcsMjQgQEAg c3RydWN0IGd1Y19tbWlvX3JlZyB7Cj4+PiDCoCAjZGVmaW5lIEdVQ19SRUdTRVRfTUFTS0VEwqDC oMKgwqDCoMKgwqAgKDEgPDwgMCkKPj4+IMKgIH0gX19wYWNrZWQ7Cj4+PiDCoCAtc3RydWN0IGd1 Y19tbWlvX3JlZ3NldCB7Cj4+PiAtwqDCoMKgIHN0cnVjdCBndWNfbW1pb19yZWcgcmVnaXN0ZXJz W0dVQ19SRUdTRVRfTUFYX1JFR0lTVEVSU107Cj4+PiAtwqDCoMKgIHUzMiB2YWx1ZXNfdmFsaWQ7 Cj4+PiAtwqDCoMKgIHUzMiBudW1iZXJfb2ZfcmVnaXN0ZXJzOwo+Pj4gLX0gX19wYWNrZWQ7Cj4+ PiAtCj4+PiDCoCAvKiBHdUMgcmVnaXN0ZXIgc2V0cyAqLwo+Pj4gLXN0cnVjdCBndWNfbW1pb19y ZWdfc3RhdGUgewo+Pj4gLcKgwqDCoCBzdHJ1Y3QgZ3VjX21taW9fcmVnc2V0IAo+Pj4gZW5naW5l X3JlZ1tHVUNfTUFYX0VOR0lORV9DTEFTU0VTXVtHVUNfTUFYX0lOU1RBTkNFU19QRVJfQ0xBU1Nd Owo+Pj4gLcKgwqDCoCB1MzIgcmVzZXJ2ZWRbOThdOwo+Pj4gK3N0cnVjdCBndWNfbW1pb19yZWdf c2V0IHsKPj4+ICvCoMKgwqAgdTMyIGFkZHJlc3M7Cj4+PiArwqDCoMKgIHVuaW9uIHsKPj4+ICvC oMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIGNv dW50OjE2Owo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIHJlc2VydmVkMToxMjsKPj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHUzMiByZXNlcnZlZDI6NDsKPj4KPj4gSSBiZWxpZXZl IHdlIHVzdWFsbHkgdHJ5IHRvIGF2b2lkIGJpdGZpZWxkIGRlZmluaXRpb25zIGluIGludGVyZmFj ZXMuIAo+PiBJbiB0aGlzIGNhc2UsIHdvdWxkbid0IGl0IGJlIHNpbXBsZXIgdG8ganVzdCBoYXZl IGEgdTE2IGNvdW50IGFuZCBhIAo+PiB1MTYgcmVzZXJ2ZWQsIGVudGlyZWx5IHNraXBwaW5nIHRo ZSB1bmlvbiBhbmQgdGhlIGlubmVyIHN0cnVjdD8gSSAKPj4ga25vdyBpdCB3b3VsZG4ndCBtYXRj aCB0aGUgR3VDIGZpbGUgMToxIGJ1dCBJTU8gaXQncyBhbiBhY2NlcHRhYmxlIAo+PiBkaWZmZXJl bmNlIGdpdmVuIGl0cyB0cml2aWFsaXR5Lgo+Pgo+IEkgdGhvdWdodCBvdXIgYWltIHdhcyB0byB0 cnkgdG8gc3RheSBhcyBjbG9zZSB0byB0aGUgR3VDIHNwZWMgYXMgCj4gcG9zc2libGU/IFRoaXMg aXMgbm90IHRoZSBvbmx5IHVzZSBvZiBiaXRmaWVsZHMgaW4gdGhpcyBmaWxlIGluIG9yZGVyIAo+ IHRvIG1hdGNoIHRoZSBzcGVjLiBUaGUgdWx0aW1hdGUgYWltIGlzIHRvIGhhdmUgdGhpcyBmaWxl IGJlIAo+IGF1dG9nZW5lcmF0ZWQgZnJvbSB0aGUgR3VDIEFQSSBzcGVjLiBJbiB0aGF0IGNhc2Us IGl0IHdpbGwgZGVmaW5pdGVseSAKPiBtYXRjaCB3aGF0ZXZlciByZXNlcnZlZCBkZWZpbml0aW9u cyBhcmUgdGhlcmUuCgpUaGUgcHJvYmxlbSB3aXRoIGJpdGZpZWxkcyBpcyB0aGF0IHRoZXkgZG9u J3Qgd29yayBpZiBDUFUgYW5kIEd1QyBoYXZlIApkaWZmZXJlbnQgZW5kaWFubmVzcywgb3IgaWYg dGhlIEd1QyBjb21waWxlciBkZWNpZGVzIHRvIG9yZGVyIHRoZSBmaWVsZHMgCmluIGEgZGlmZmVy ZW50IHdheSBmcm9tIGdjYywgYm90aCBvZiB3aGljaCBhcmUgcG9zc2libGUgKGFsdGhvdWdoIHZl cnkgCnZlcnkgdW5saWtlbHkpIHNjZW5hcmlvcyB3aGVuIGRpc2NyZXRlIGNhcmRzIGFyZSBhZGRl ZCB0byB0aGUgbWl4LiBJJ20gCnByZXR0eSBzdXJlIHdlIGNhbiBhdXRvLWdlbmVyYXRlIGEgc2Vy aWVzIG9mIG1hc2tzIGFuZCBzaGlmdHMgZm9yIHRob3NlIApmaWVsZHMsIG9yIGV2ZW4gYmV0dGVy IHNlZSBpZiB0aGV5IGNhbiBiZSByZW1vdmVkIGZyb20gdGhlIEd1QyAKaW50ZXJmYWNlLCBlc3Bl Y2lhbGx5IGluIGNhc2VzIGxpa2UgdGhpcyBvbmUgd2hlcmUgdGhleSdyZSBub3QgcmVhbGx5IApy ZXF1aXJlZC4KCkRhbmllbGUKCj4KPiBKb2huLgo+Cj4KPj4gV2l0aCB0aGUgZGVmaW5lIHJlbW92 ZWQgYW5kIHRoaXMgc3RydWN0IGNsZWFuZWQgdXA6Cj4+Cj4+IFJldmlld2VkLWJ5OiBEYW5pZWxl IENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+Pgo+PiBE YW5pZWxlCj4+Cj4+PiArwqDCoMKgwqDCoMKgwqAgfTsKPj4+ICvCoMKgwqDCoMKgwqDCoCB1MzIg Y291bnRfdTMyOwo+Pj4gK8KgwqDCoCB9Owo+Pj4gwqAgfSBfX3BhY2tlZDsKPj4+IMKgIMKgIC8q IEhXIGluZm8gKi8KPj4+IMKgIHN0cnVjdCBndWNfZ3Rfc3lzdGVtX2luZm8gewo+Pj4gLcKgwqDC oCB1MzIgc2xpY2VfZW5hYmxlZDsKPj4+IC3CoMKgwqAgdTMyIHJjc19lbmFibGVkOwo+Pj4gLcKg wqDCoCB1MzIgcmVzZXJ2ZWQwOwo+Pj4gLcKgwqDCoCB1MzIgYmNzX2VuYWJsZWQ7Cj4+PiAtwqDC oMKgIHUzMiB2ZGJveF9lbmFibGVfbWFzazsKPj4+IC3CoMKgwqAgdTMyIHZkYm94X3NmY19zdXBw b3J0X21hc2s7Cj4+PiAtwqDCoMKgIHUzMiB2ZWJveF9lbmFibGVfbWFzazsKPj4+IC3CoMKgwqAg dTMyIHJlc2VydmVkWzldOwo+Pj4gK8KgwqDCoCB1OCAKPj4+IG1hcHBpbmdfdGFibGVbR1VDX01B WF9FTkdJTkVfQ0xBU1NFU11bR1VDX01BWF9JTlNUQU5DRVNfUEVSX0NMQVNTXTsKPj4+ICvCoMKg wqAgdTMyIGVuZ2luZV9lbmFibGVkX21hc2tzW0dVQ19NQVhfRU5HSU5FX0NMQVNTRVNdOwo+Pj4g K8KgwqDCoCB1MzIgZ2VuZXJpY19ndF9zeXNpbmZvW0dVQ19HRU5FUklDX0dUX1NZU0lORk9fTUFY XTsKPj4+IMKgIH0gX19wYWNrZWQ7Cj4+PiDCoCDCoCAvKiBDbGllbnRzIGluZm8gKi8KPj4+IEBA IC0zOTAsMTUgKzQwNSwxNiBAQCBzdHJ1Y3QgZ3VjX2NsaWVudHNfaW5mbyB7Cj4+PiDCoCDCoCAv KiBHdUMgQWRkaXRpb25hbCBEYXRhIFN0cnVjdCAqLwo+Pj4gwqAgc3RydWN0IGd1Y19hZHMgewo+ Pj4gLcKgwqDCoCB1MzIgcmVnX3N0YXRlX2FkZHI7Cj4+PiAtwqDCoMKgIHUzMiByZWdfc3RhdGVf YnVmZmVyOwo+Pj4gK8KgwqDCoCBzdHJ1Y3QgZ3VjX21taW9fcmVnX3NldCAKPj4+IHJlZ19zdGF0 ZV9saXN0W0dVQ19NQVhfRU5HSU5FX0NMQVNTRVNdW0dVQ19NQVhfSU5TVEFOQ0VTX1BFUl9DTEFT U107Cj4+PiArwqDCoMKgIHUzMiByZXNlcnZlZDA7Cj4+PiDCoMKgwqDCoMKgIHUzMiBzY2hlZHVs ZXJfcG9saWNpZXM7Cj4+PiDCoMKgwqDCoMKgIHUzMiBndF9zeXN0ZW1faW5mbzsKPj4+IMKgwqDC oMKgwqAgdTMyIGNsaWVudHNfaW5mbzsKPj4+IMKgwqDCoMKgwqAgdTMyIGNvbnRyb2xfZGF0YTsK Pj4+IMKgwqDCoMKgwqAgdTMyIGdvbGRlbl9jb250ZXh0X2xyY2FbR1VDX01BWF9FTkdJTkVfQ0xB U1NFU107Cj4+PiDCoMKgwqDCoMKgIHUzMiBlbmdfc3RhdGVfc2l6ZVtHVUNfTUFYX0VOR0lORV9D TEFTU0VTXTsKPj4+IC3CoMKgwqAgdTMyIHJlc2VydmVkWzE2XTsKPj4+ICvCoMKgwqAgdTMyIHBy aXZhdGVfZGF0YTsKPj4+ICvCoMKgwqAgdTMyIHJlc2VydmVkWzE1XTsKPj4+IMKgIH0gX19wYWNr ZWQ7Cj4+PiDCoCDCoCAvKiBHdUMgbG9nZ2luZyBzdHJ1Y3R1cmVzICovCj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3JlZy5oIAo+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfcmVnLmgKPj4+IGluZGV4IDE5NDkzNDZl NzE0ZS4uYjM3ZmMyZmZhZWYyIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX3JlZy5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91 Yy9pbnRlbF9ndWNfcmVnLmgKPj4+IEBAIC0xMTgsNiArMTE4LDExIEBAIHN0cnVjdCBndWNfZG9v cmJlbGxfaW5mbyB7Cj4+PiDCoCAjZGVmaW5lwqDCoCBHRU44X0RSQl9WQUxJRMKgwqDCoMKgwqDC oMKgwqDCoCAoMTw8MCkKPj4+IMKgICNkZWZpbmUgR0VOOF9EUkJSRUdVKHgpwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBfTU1JTygweDEwMDAgKyAoeCkgKiA4ICsgNCkKPj4+IMKgICsjZGVmaW5lIEdF TjEyX0RJU1RfREJTX1BPUFVMQVRFRMKgwqDCoMKgwqDCoMKgIF9NTUlPKDB4ZDA4KQo+Pj4gKyNk ZWZpbmXCoMKgIEdFTjEyX0RPT1JCRUxMU19QRVJfU1FJRElfU0hJRlTCoMKgwqAgMTYKPj4+ICsj ZGVmaW5lwqDCoCBHRU4xMl9ET09SQkVMTFNfUEVSX1NRSURJwqDCoMKgwqDCoMKgwqAgKDB4ZmYp Cj4+PiArI2RlZmluZcKgwqAgR0VOMTJfU1FJRElTX0RPT1JCRUxMX0VYSVNUwqDCoMKgwqDCoMKg wqAgKDB4ZmZmZikKPj4+ICsKPj4+IMKgICNkZWZpbmUgREVfR1VDUk1SwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBfTU1JTygweDQ0MDU0KQo+Pj4gwqAgwqAgI2RlZmluZSBHVUNfQkNTX1JDU19JRVLC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9NTUlPKDB4QzU1MCkKPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jIAo+Pj4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jCj4+PiBpbmRleCA4MGU4YjZjM2JjOGMuLmVlNGFj MzkyMjI3NyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X3VjX2Z3LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3 LmMKPj4+IEBAIC00NCwyMyArNDQsMTkgQEAgdm9pZCBpbnRlbF91Y19md19jaGFuZ2Vfc3RhdHVz KHN0cnVjdCAKPj4+IGludGVsX3VjX2Z3ICp1Y19mdywKPj4+IMKgwqAgKiBMaXN0IG9mIHJlcXVp cmVkIEd1QyBhbmQgSHVDIGJpbmFyaWVzIHBlci1wbGF0Zm9ybS4KPj4+IMKgwqAgKiBNdXN0IGJl IG9yZGVyZWQgYmFzZWQgb24gcGxhdGZvcm0gKyByZXZpZCwgZnJvbSBuZXdlciB0byBvbGRlci4K Pj4+IMKgwqAgKgo+Pj4gLSAqIFRHTCAzNS4yIGlzIGludGVyZmFjZS1jb21wYXRpYmxlIHdpdGgg MzMuMCBmb3IgcHJldmlvdXMgR2Vucy4gCj4+PiBUaGUgZGVsdGFzCj4+PiAtICogYmV0d2VlbiAz My4wIGFuZCAzNS4yIGFyZSBvbmx5IHJlbGF0ZWQgdG8gbmV3IGFkZGl0aW9ucyB0byAKPj4+IHN1 cHBvcnQgbmV3IEdlbjEyCj4+PiAtICogZmVhdHVyZXMuCj4+PiAtICoKPj4+IMKgwqAgKiBOb3Rl IHRoYXQgUktMIHVzZXMgdGhlIHNhbWUgZmlybXdhcmUgYXMgVEdMLgo+Pj4gwqDCoCAqLwo+Pj4g wqAgI2RlZmluZSBJTlRFTF9VQ19GSVJNV0FSRV9ERUZTKGZ3X2RlZiwgZ3VjX2RlZiwgaHVjX2Rl ZikgXAo+Pj4gLcKgwqDCoCBmd19kZWYoUk9DS0VUTEFLRSzCoCAwLCBndWNfZGVmKHRnbCwgMzUs IDIsIDApLCBodWNfZGVmKHRnbCzCoCA3LCAKPj4+IDUsIDApKSBcCj4+PiAtwqDCoMKgIGZ3X2Rl ZihUSUdFUkxBS0UswqDCoCAwLCBndWNfZGVmKHRnbCwgMzUsIDIsIDApLCBodWNfZGVmKHRnbCzC oCA3LCAKPj4+IDUsIDApKSBcCj4+PiAtwqDCoMKgIGZ3X2RlZihFTEtIQVJUTEFLRSwgMCwgZ3Vj X2RlZihlaGwsIDMzLCAwLCA0KSwgaHVjX2RlZihlaGwswqAgOSwgCj4+PiAwLCAwKSkgXAo+Pj4g LcKgwqDCoCBmd19kZWYoSUNFTEFLRSzCoMKgwqDCoCAwLCBndWNfZGVmKGljbCwgMzMsIDAsIDAp LCBodWNfZGVmKGljbCzCoCA5LCAKPj4+IDAsIDApKSBcCj4+PiAtwqDCoMKgIGZ3X2RlZihDT01F VExBS0UswqDCoCA1LCBndWNfZGVmKGNtbCwgMzMsIDAsIDApLCBodWNfZGVmKGNtbCzCoCA0LCAK Pj4+IDAsIDApKSBcCj4+PiAtwqDCoMKgIGZ3X2RlZihDT0ZGRUVMQUtFLMKgIDAsIGd1Y19kZWYo a2JsLCAzMywgMCwgMCksIGh1Y19kZWYoa2JsLMKgIDQsIAo+Pj4gMCwgMCkpIFwKPj4+IC3CoMKg wqAgZndfZGVmKEdFTUlOSUxBS0UswqAgMCwgZ3VjX2RlZihnbGssIDMzLCAwLCAwKSwgaHVjX2Rl ZihnbGsswqAgNCwgCj4+PiAwLCAwKSkgXAo+Pj4gLcKgwqDCoCBmd19kZWYoS0FCWUxBS0UswqDC oMKgIDAsIGd1Y19kZWYoa2JsLCAzMywgMCwgMCksIGh1Y19kZWYoa2JsLMKgIDQsIAo+Pj4gMCwg MCkpIFwKPj4+IC3CoMKgwqAgZndfZGVmKEJST1hUT04swqDCoMKgwqAgMCwgZ3VjX2RlZihieHQs IDMzLCAwLCAwKSwgaHVjX2RlZihieHQswqAgMiwgCj4+PiAwLCAwKSkgXAo+Pj4gLcKgwqDCoCBm d19kZWYoU0tZTEFLRSzCoMKgwqDCoCAwLCBndWNfZGVmKHNrbCwgMzMsIDAsIDApLCBodWNfZGVm KHNrbCzCoCAyLCAKPj4+IDAsIDApKQo+Pj4gK8KgwqDCoCBmd19kZWYoUk9DS0VUTEFLRSzCoCAw LCBndWNfZGVmKHRnbCwgNDksIDAsIDEpLCBodWNfZGVmKHRnbCzCoCA3LCAKPj4+IDUsIDApKSBc Cj4+PiArwqDCoMKgIGZ3X2RlZihUSUdFUkxBS0UswqDCoCAwLCBndWNfZGVmKHRnbCwgNDksIDAs IDEpLCBodWNfZGVmKHRnbCzCoCA3LCAKPj4+IDUsIDApKSBcCj4+PiArwqDCoMKgIGZ3X2RlZihF TEtIQVJUTEFLRSwgMCwgZ3VjX2RlZihlaGwsIDQ5LCAwLCAxKSwgaHVjX2RlZihlaGwswqAgOSwg Cj4+PiAwLCAwKSkgXAo+Pj4gK8KgwqDCoCBmd19kZWYoSUNFTEFLRSzCoMKgwqDCoCAwLCBndWNf ZGVmKGljbCwgNDksIDAsIDEpLCBodWNfZGVmKGljbCzCoCA5LCAKPj4+IDAsIDApKSBcCj4+PiAr wqDCoMKgIGZ3X2RlZihDT01FVExBS0UswqDCoCA1LCBndWNfZGVmKGNtbCwgNDksIDAsIDEpLCBo dWNfZGVmKGNtbCzCoCA0LCAKPj4+IDAsIDApKSBcCj4+PiArwqDCoMKgIGZ3X2RlZihDT0ZGRUVM QUtFLMKgIDAsIGd1Y19kZWYoa2JsLCA0OSwgMCwgMSksIGh1Y19kZWYoa2JsLMKgIDQsIAo+Pj4g MCwgMCkpIFwKPj4+ICvCoMKgwqAgZndfZGVmKEdFTUlOSUxBS0UswqAgMCwgZ3VjX2RlZihnbGss IDQ5LCAwLCAxKSwgaHVjX2RlZihnbGsswqAgNCwgCj4+PiAwLCAwKSkgXAo+Pj4gK8KgwqDCoCBm d19kZWYoS0FCWUxBS0UswqDCoMKgIDAsIGd1Y19kZWYoa2JsLCA0OSwgMCwgMSksIGh1Y19kZWYo a2JsLMKgIDQsIAo+Pj4gMCwgMCkpIFwKPj4+ICvCoMKgwqAgZndfZGVmKEJST1hUT04swqDCoMKg wqAgMCwgZ3VjX2RlZihieHQsIDQ5LCAwLCAxKSwgaHVjX2RlZihieHQswqAgMiwgCj4+PiAwLCAw KSkgXAo+Pj4gK8KgwqDCoCBmd19kZWYoU0tZTEFLRSzCoMKgwqDCoCAwLCBndWNfZGVmKHNrbCwg NDksIDAsIDEpLCBodWNfZGVmKHNrbCzCoCAyLCAKPj4+IDAsIDApKQo+Pj4gwqAgwqAgI2RlZmlu ZSBfX01BS0VfVUNfRldfUEFUSChwcmVmaXhfLCBuYW1lXywgbWFqb3JfLCBtaW5vcl8sIHBhdGNo XykgXAo+Pj4gwqDCoMKgwqDCoCAiaTkxNS8iIFwKPj4+IEBAIC0zNzEsNiArMzY3LDkgQEAgaW50 IGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCj4+PiDCoMKgwqDC oMKgwqDCoMKgwqAgfQo+Pj4gwqDCoMKgwqDCoCB9Cj4+PiDCoCArwqDCoMKgIGlmICh1Y19mdy0+ dHlwZSA9PSBJTlRFTF9VQ19GV19UWVBFX0dVQykKPj4+ICvCoMKgwqDCoMKgwqDCoCB1Y19mdy0+ cHJpdmF0ZV9kYXRhX3NpemUgPSBjc3MtPnByaXZhdGVfZGF0YV9zaXplOwo+Pj4gKwo+Pj4gwqDC oMKgwqDCoCBvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3NobWVtX2Zyb21fZGF0YShpOTE1 LCBmdy0+ZGF0YSwgCj4+PiBmdy0+c2l6ZSk7Cj4+PiDCoMKgwqDCoMKgIGlmIChJU19FUlIob2Jq KSkgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGVyciA9IFBUUl9FUlIob2JqKTsKPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5oIAo+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5oCj4+PiBpbmRleCAyM2QzYTQy M2FjMGYuLjk5YmIxZmUxYWY2NiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX3VjX2Z3LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Vj L2ludGVsX3VjX2Z3LmgKPj4+IEBAIC04OCw2ICs4OCw4IEBAIHN0cnVjdCBpbnRlbF91Y19mdyB7 Cj4+PiDCoCDCoMKgwqDCoMKgIHUzMiByc2Ffc2l6ZTsKPj4+IMKgwqDCoMKgwqAgdTMyIHVjb2Rl X3NpemU7Cj4+PiArCj4+PiArwqDCoMKgIHUzMiBwcml2YXRlX2RhdGFfc2l6ZTsKPj4+IMKgIH07 Cj4+PiDCoCDCoCAjaWZkZWYgQ09ORklHX0RSTV9JOTE1X0RFQlVHX0dVQwo+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3X2FiaS5oIAo+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19md19hYmkuaAo+Pj4gaW5kZXggMDI5 MjE0Y2RlZGQ1Li5lNDFmZmM3YTdmYmMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF91Y19md19hYmkuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfdWNfZndfYWJpLmgKPj4+IEBAIC02OSw3ICs2OSwxMSBAQCBzdHJ1Y3Qg dWNfY3NzX2hlYWRlciB7Cj4+PiDCoCAjZGVmaW5lIENTU19TV19WRVJTSU9OX1VDX01BSk9SwqDC oMKgwqDCoMKgwqAgKDB4RkYgPDwgMTYpCj4+PiDCoCAjZGVmaW5lIENTU19TV19WRVJTSU9OX1VD X01JTk9SwqDCoMKgwqDCoMKgwqAgKDB4RkYgPDwgOCkKPj4+IMKgICNkZWZpbmUgQ1NTX1NXX1ZF UlNJT05fVUNfUEFUQ0jCoMKgwqDCoMKgwqDCoCAoMHhGRiA8PCAwKQo+Pj4gLcKgwqDCoCB1MzIg cmVzZXJ2ZWRbMTRdOwo+Pj4gK8KgwqDCoCB1MzIgcmVzZXJ2ZWQwWzEzXTsKPj4+ICvCoMKgwqAg dW5pb24gewo+Pj4gK8KgwqDCoMKgwqDCoMKgIHUzMiBwcml2YXRlX2RhdGFfc2l6ZTsgLyogb25s eSBhcHBsaWVzIHRvIEd1QyAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgIHUzMiByZXNlcnZlZDE7Cj4+ PiArwqDCoMKgIH07Cj4+PiDCoMKgwqDCoMKgIHUzMiBoZWFkZXJfaW5mbzsKPj4+IMKgIH0gX19w YWNrZWQ7Cj4+PiDCoCBzdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hlYWRlcikg PT0gMTI4KTsKPj4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==