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 283EF109879E for ; Fri, 20 Mar 2026 16:05:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=CkIpc4ki1HFiMI4bFY+ovLSzz5zYcm+nizrLDGlHsWY=; b=qV40j+x7/lC/lM nzE0PLvNsSmG4z/ahrNg9t0uYjFywCrkYlmq/Q1ODP/5UuSX5sRLWyEMX7HbSGswyrP8UXbxCenK5 9JmHoVYR+UuwAZJZtmNYjwhi539olHGwhx59BCdtEcTV7/IvFb47TfZEcOGodeLuRb1hG0FW0voqH DryQTGuiV+R3MGudaJL9AyvvHissz8q+hDbI9//eZKVY9+m2CK1IK2fmTt7SYyErY3U0+ylrX3E6C ftH8mZdYGtT7imx8OH76ObTYyQfQNeDi+zEUS77f7WyKnOJCJJI2UikvtYCoFo+mUkZmRmhUraHsN Cgi7pdHYfxx7ibLmevDw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w3cLW-0000000D5Rb-3OiC; Fri, 20 Mar 2026 16:05:10 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w3cLT-0000000D5R7-3kai for linux-riscv@lists.infradead.org; Fri, 20 Mar 2026 16:05:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774022707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wr0Rk6et5CA6CvUspb4cZnB+QZC0WZ+M0KIKtjqSsb8=; b=KZmO59EOjGMivtL/MptJDBvJMVPQT4c/2s9ZosIJECeZIqt1Kjfu8LxF5OD3MNNIomjtG8 fwb9TKhbkYVtcI/YXpOkqAQjUeHuQXdIJTW8bH2Nlr1DxqzP4L25IcqT1SQ6aRwaBHNE9d WUq7VwjpcxW/5iK/ga4rT/VYid3shuA= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-350-k9FjHkmEOnuUF6ANXA1TnA-1; Fri, 20 Mar 2026 12:05:00 -0400 X-MC-Unique: k9FjHkmEOnuUF6ANXA1TnA-1 X-Mimecast-MFC-AGG-ID: k9FjHkmEOnuUF6ANXA1TnA_1774022699 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3899B195609E; Fri, 20 Mar 2026 16:04:58 +0000 (UTC) Received: from cmirabil.redhat.com (unknown [10.2.16.157]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id F036730001A1; Fri, 20 Mar 2026 16:04:55 +0000 (UTC) From: Charles Mirabile To: namcao@linutronix.de Cc: alex@ghiti.fr, aou@eecs.berkeley.edu, haxel@fzi.de, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, palmer@dabbelt.com, pjw@kernel.org, vitaly.wool@konsulko.com, cmirabil@redhat.com Subject: Re: [PATCH] riscv: Remove support for XIP kernel Date: Fri, 20 Mar 2026 12:04:43 -0400 Message-ID: <20260320160443.1850701-1-cmirabil@redhat.com> In-Reply-To: <20260202115403.2119218-1-namcao@linutronix.de> References: <20260202115403.2119218-1-namcao@linutronix.de> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-MFC-PROC-ID: WwmPYfE09panbJq1-ylQHD_rCB3dvV98eAgUUAH7oKU_1774022699 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260320_090508_104016_EB764D69 X-CRM114-Status: GOOD ( 47.08 ) 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 RnJvbTogY21pcmFiaWxAcmVkaGF0LmNvbQoKSGnigJQKCkNoaW1pbmcgaW4gYXMgYW5vdGhlciB2 b2ljZSBpbnRlcmVzdGVkIGluIG5vdCBzY3JhcHBpbmcgWElQLiBJIHRoaW5rClJJU0MtViBpcyBh biBpbnRlcmVzdGluZyBwb3NpdGlvbiBhcyBhbiBJU0Egb2YgYmVpbmcgYWJsZSB0byBzdXBwb3J0 CmJvdGggZGVza3RvcC9zZXJ2ZXIgY2xhc3MgaGlnaCBwZXJmb3JtYW5jZSBkZXNpZ25zLCBidXQg YWxzbyBsb3cgY29zdAplbWJlZGRlZCBhcHBsaWNhdGlvbnMuIFRoZSBhYmlsaXR5IHRvIHJ1biBs aW51eCBpbiBNLU1vZGUgd2l0aG91dCBhbgpNTVUsIGFuZCBldmVuIFhJUCBkaXJlY3RseSBmcm9t IHN0b3JhZ2Ugd2l0aGluIG9uZSBjb2RlIGJhc2UganVzdCBieQpjaGFuZ2luZyBjb25maWd1cmF0 aW9uIG9wdGlvbnMgaXMgZmFudGFzdGljIGFuZCBwb3NpdGlvbnMgbGludXggdG8gYmUKdGhlIG9i dmlvdXMga2VybmVsIG9mIGNob2ljZSBmb3IgYm90aCBraW5kcyBvZiBSSVNDLVYgaW1wbGVtZW50 YXRpb25zLgoKVGhhdCBiZWluZyBzYWlkLCBpdCBpcyBjbGVhciB0aGF0IHRoZXNlIHVzZS1jYXNl cyBhcmUgbm90IGJlaW5nIHRlc3RlZApvciBtYWludGFpbmVkLiBUaGUgYWRkaXRpb24gb2YgcnVu dGltZSBjb25zdGFudCBzdXBwb3J0IGZvciBSSVNDLVYgYWxzbwpicm9rZSBuby1tbXUgd2hpY2gg SSBmaXhlZCBpbjoKOGQ5MGQ5ODcyZWRhZSAoInJpc2N2OiBmaXggcnVudGltZSBjb25zdGFudCBz dXBwb3J0IGZvciBub21tdSBrZXJuZWxzIikKYW5kIGNsZWFybHkgaXMgYWxzbyBYSVAgd2hpY2gg SSBkaWQgbm90IHRlc3QgYXQgdGhlIHRpbWUgYW5kIGRpZCBub3QKcmVhbGl6ZS4gSSBoYXZlIGEg cGF0Y2ggdG8gZXNzZW50aWFsbHkganVzdCBkaXNhYmxlIHRoZSBydW50aW1lIGNvbnN0YW50cwps b2dpYyBvbiBSSVNDLVYgd2hlbiBDT05GSUdfWElQX0tFUk5FTCBpcyBlbmFibGVkIGhlcmUgdGhh dCBzaG91bGQgZml4IGl0OgpodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjYwMzIwMTU1 ODQzLjE4NDgxODAtMS1jbWlyYWJpbEByZWRoYXQuY29tCgpUaGF0IGJlaW5nIHNhaWQsIEluIHRy dXRoIEkgaGF2ZSBub3QgYWN0dWFsbHkgYnVpbHQgb3IgdXNlZCBhbiBYSVAgbGludXgKa2VybmVs IG9uIFJJU0MtViwgc28gSSBhbSBub3Qgc3VyZSBJIGNhbiB2b2x1bnRlZXIgdG8gdGVzdCBvciBt YWludGFpbiBpdAphdCB0aGlzIG1vbWVudCwgYnV0IEkgYW0gcGxhbm5pbmcgb24gZXhwZXJpbWVu dGluZyB3aXRoIE0tTW9kZSBub01NVSBYSVAKbGludXggb24gdGhlIHNpZml2ZSBoaWZpdmUgdW5s ZWFzaGVkIGJvYXJkIHdpdGggdGhlIGhvcGUgb2YgY3JlYXRpbmcgYQprZXJuZWwgdGhhdCBjYW4g YWN0IGFzIGEgbGludXhib290IHBheWxvYWQgYW5kIGVzc2VudGlhbGx5IHJlcGxhY2UgdGhlCmZp cm13YXJlIG9mIHRoZSBkZXZpY2UuIFdpdGggdGhlIGZpeCBJIHByb3Bvc2VkLCBwZXJoYXBzIGl0 IGlzIHRlbmFibGUgdG8Kbm90IHJlbW92ZSBYSVAgYXQgdGhpcyB0aW1lIGFuZCBnbyBiYWNrIHRv IHRoZSBzdGF0dXMgcXVvPyBJIHVuZGVyc3RhbmQKdGhhdCBpdCBpcyBqdXN0IGtpY2tpbmcgdGhl IGNhbiBkb3duIHRoZSByb2FkIHVudGlsIHRoZSBuZXh0IHRpbWUgc29tZW9uZQptYWtlcyBhIGNo YW5nZSB0aGF0IGJyZWFrcyBYSVAgYW5kIG5vIG9uZSBub3RpY2VzIGlmIG5vIG9uZSBpcyB0ZXN0 aW5nLApidXQgbWF5YmUgd2UgY2FuIGhhdmUgYSBjb252ZXJzYXRpb24gYWJvdXQgaG93IHdlIGNv dWxkIGltcHJvdmUgdGhlCnNpdHVhdGlvbiBpbiB0aGUgbWVhbnRpbWUgYW5kIGhhdmUgYW4gYWN0 dWFsIHBsYW4gdG8gY2F0Y2ggdGhhdCBiZWZvcmUKc3VjaCBhIGJyZWFraW5nIHBhdGNoIG1ha2Vz IGl0IHRvIG1haW5saW5lIG5leHQgdGltZS4KCkJlc3TigJRDaGFybGllCgpPbiBNb24sIEZlYiAw MiwgMjAyNiBhdCAxMjo1NDowM1BNICswMTAwLCBOYW0gQ2FvIHdyb3RlOgo+IFhJUCBoYXMgYSBo aXN0b3J5IG9mIGJlaW5nIGJyb2tlbiBmb3IgbG9uZyBwZXJpb2RzIG9mIHRpbWUuIEluIDIwMjMs IGl0IHdhcwo+IGJyb2tlbiBmb3IgMTggbW9udGhzIGJlZm9yZSBnZXR0aW5nIGZpeGVkIFsxXS4g SW4gMjAyNCBpdCB3YXMgNCBtb250aHMgWzJdLgo+IAo+IEFuZCBub3cgaXQgaXMgYnJva2VuIGFn YWluIHNpbmNlIGNvbW1pdCBhNDRmYjU3MjIxOTkgKCJyaXNjdjogQWRkIHJ1bnRpbWUKPiBjb25z dGFudCBzdXBwb3J0IiksIDEwIG1vbnRocyBhZ28uCj4gCj4gVGhlc2UgYXJlIGNsZWFyIHNpZ25z IHRoYXQgWElQIGZlYXR1cmUgaXMgbm90IGJlaW5nIHVzZWQuCj4gCj4gSSBvY2Nhc2lvbmFsbHkg bG9va2VkIGFmdGVyIFhJUCwgYnV0IG1vc3RseSBiZWNhdXNlIEkgd2FzIGJvcmVkIGFuZCBoYWQK PiBub3RoaW5nIGJldHRlciB0byBkby4KPiAKPiBSZW1vdmUgWElQIHN1cHBvcnQuIFJldmVydCBp cyBwb3NzaWJsZSBpZiBzb21lb25lIHNob3dzIHVwIGNvbXBsYWluaW5nLgo+IAo+IExpbms6IGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LXJpc2N2LzIwMjMxMjEyLWN1c3RvbWFyeS1oYXJk Y292ZXItZTE5NDYyYmY4ZTc1QHdlbmR5LyBbMV0KPiBMaW5rOiBodHRwczovL2xvcmUua2VybmVs Lm9yZy9saW51eC1yaXNjdi8yMDI0MDUyNjExMDEwNC40NzA0MjktMS1uYW1jYW9AbGludXRyb25p eC5kZS8gWzJdCj4gU2lnbmVkLW9mZi1ieTogTmFtIENhbyA8bmFtY2FvQGxpbnV0cm9uaXguZGU+ Cj4gQ2M6IEZyZWRlcmlrIEhheGVsIDxoYXhlbEBmemkuZGU+Cj4gQ2M6IFZpdGFseSBXb29sIDx2 aXRhbHkud29vbEBrb25zdWxrby5jb20+Cj4gLS0tCj4gIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAg ICAgICAgICAgICAgIHwgIDg2ICsrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICBhcmNoL3Jpc2N2L0tj b25maWcuc29jcyAgICAgICAgICAgICB8ICAgOCArLQo+ICBhcmNoL3Jpc2N2L01ha2VmaWxlICAg ICAgICAgICAgICAgICB8ICAgMyAtCj4gIGFyY2gvcmlzY3YvYm9vdC9NYWtlZmlsZSAgICAgICAg ICAgIHwgIDExIC0tLQo+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BhZ2UuaCAgICAgICB8ICAy OSAtLS0tLS0tLQo+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaCAgICB8ICAyMCAt LS0tLQo+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Njcy5oICAgICAgICB8ICAgMSAtCj4gIGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20vc2V0X21lbW9yeS5oIHwgICAyICstCj4gIGFyY2gvcmlzY3Yv aW5jbHVkZS9hc20veGlwX2ZpeHVwLmggIHwgIDQ5IC0tLS0tLS0tLS0tLQo+ICBhcmNoL3Jpc2N2 L2tlcm5lbC9oZWFkLlMgICAgICAgICAgICB8ICA0MSAtLS0tLS0tLS0tCj4gIGFyY2gvcmlzY3Yv a2VybmVsL2hlYWQuaCAgICAgICAgICAgIHwgICAzIC0KPiAgYXJjaC9yaXNjdi9rZXJuZWwvc2V0 dXAuYyAgICAgICAgICAgfCAgIDYgKy0KPiAgYXJjaC9yaXNjdi9rZXJuZWwvc3VzcGVuZF9lbnRy eS5TICAgfCAgIDIgLQo+ICBhcmNoL3Jpc2N2L2tlcm5lbC90cmFwcy5jICAgICAgICAgICB8ICAg NCAtCj4gIGFyY2gvcmlzY3Yva2VybmVsL3ZtY29yZV9pbmZvLmMgICAgIHwgICA3IC0tCj4gIGFy Y2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRzLlMgICAgIHwgICA1IC0tCj4gIGFyY2gvcmlzY3Yv bW0vaW5pdC5jICAgICAgICAgICAgICAgIHwgMTExICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiAgMTcgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMzUxIGRlbGV0aW9ucygt KQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS94aXBfZml4dXAu aAo+IAo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L0tjb25maWcgYi9hcmNoL3Jpc2N2L0tjb25m aWcKPiBpbmRleCA3ZTc2YjYzMTY0MjUuLmU4YWM2YzYxZTI3ZCAxMDA2NDQKPiAtLS0gYS9hcmNo L3Jpc2N2L0tjb25maWcKPiArKysgYi9hcmNoL3Jpc2N2L0tjb25maWcKPiBAQCAtNDgsOCArNDgs OCBAQCBjb25maWcgUklTQ1YKPiAgCXNlbGVjdCBBUkNIX0hBU19QVEVfU1BFQ0lBTAo+ICAJc2Vs ZWN0IEFSQ0hfSEFTX1NFVF9ESVJFQ1RfTUFQIGlmIE1NVQo+ICAJc2VsZWN0IEFSQ0hfSEFTX1NF VF9NRU1PUlkgaWYgTU1VCj4gLQlzZWxlY3QgQVJDSF9IQVNfU1RSSUNUX0tFUk5FTF9SV1ggaWYg TU1VICYmICFYSVBfS0VSTkVMCj4gLQlzZWxlY3QgQVJDSF9IQVNfU1RSSUNUX01PRFVMRV9SV1gg aWYgTU1VICYmICFYSVBfS0VSTkVMCj4gKwlzZWxlY3QgQVJDSF9IQVNfU1RSSUNUX0tFUk5FTF9S V1ggaWYgTU1VCj4gKwlzZWxlY3QgQVJDSF9IQVNfU1RSSUNUX01PRFVMRV9SV1ggaWYgTU1VCj4g IAlzZWxlY3QgQVJDSF9IQVNfU1lOQ19DT1JFX0JFRk9SRV9VU0VSTU9ERQo+ICAJc2VsZWN0IEFS Q0hfSEFTX1NZU0NBTExfV1JBUFBFUgo+ICAJc2VsZWN0IEFSQ0hfSEFTX1RJQ0tfQlJPQURDQVNU IGlmIEdFTkVSSUNfQ0xPQ0tFVkVOVFNfQlJPQURDQVNUCj4gQEAgLTg1LDcgKzg1LDcgQEAgY29u ZmlnIFJJU0NWCj4gIAlzZWxlY3QgQVJDSF9XQU5UX0ZSQU1FX1BPSU5URVJTCj4gIAlzZWxlY3Qg QVJDSF9XQU5UX0dFTkVSQUxfSFVHRVRMQiBpZiAhUklTQ1ZfSVNBX1NWTkFQT1QKPiAgCXNlbGVj dCBBUkNIX1dBTlRfSFVHRV9QTURfU0hBUkUgaWYgNjRCSVQKPiAtCXNlbGVjdCBBUkNIX1dBTlRf TERfT1JQSEFOX1dBUk4gaWYgIVhJUF9LRVJORUwKPiArCXNlbGVjdCBBUkNIX1dBTlRfTERfT1JQ SEFOX1dBUk4KPiAgCXNlbGVjdCBBUkNIX1dBTlRfT1BUSU1JWkVfREFYX1ZNRU1NQVAKPiAgCXNl bGVjdCBBUkNIX1dBTlRfT1BUSU1JWkVfSFVHRVRMQl9WTUVNTUFQCj4gIAlzZWxlY3QgQVJDSF9X QU5UU19OT19JTlNUUgo+IEBAIC0xMzAsMTMgKzEzMCwxMyBAQCBjb25maWcgUklTQ1YKPiAgCXNl bGVjdCBIQVZFX0FSQ0hfQVVESVRTWVNDQUxMCj4gIAlzZWxlY3QgSEFWRV9BUkNIX0hVR0VfVk1B TExPQyBpZiBIQVZFX0FSQ0hfSFVHRV9WTUFQCj4gIAlzZWxlY3QgSEFWRV9BUkNIX0hVR0VfVk1B UCBpZiBNTVUgJiYgNjRCSVQKPiAtCXNlbGVjdCBIQVZFX0FSQ0hfSlVNUF9MQUJFTCBpZiAhWElQ X0tFUk5FTAo+IC0Jc2VsZWN0IEhBVkVfQVJDSF9KVU1QX0xBQkVMX1JFTEFUSVZFIGlmICFYSVBf S0VSTkVMCj4gKwlzZWxlY3QgSEFWRV9BUkNIX0pVTVBfTEFCRUwKPiArCXNlbGVjdCBIQVZFX0FS Q0hfSlVNUF9MQUJFTF9SRUxBVElWRQo+ICAJc2VsZWN0IEhBVkVfQVJDSF9LQVNBTiBpZiBNTVUg JiYgNjRCSVQKPiAgCXNlbGVjdCBIQVZFX0FSQ0hfS0FTQU5fVk1BTExPQyBpZiBNTVUgJiYgNjRC SVQKPiAgCXNlbGVjdCBIQVZFX0FSQ0hfS0ZFTkNFIGlmIE1NVSAmJiA2NEJJVAo+ICAJc2VsZWN0 IEhBVkVfQVJDSF9LU1RBQ0tfRVJBU0UKPiAtCXNlbGVjdCBIQVZFX0FSQ0hfS0dEQiBpZiAhWElQ X0tFUk5FTAo+ICsJc2VsZWN0IEhBVkVfQVJDSF9LR0RCCj4gIAlzZWxlY3QgSEFWRV9BUkNIX0tH REJfUVhGRVJfUEtUCj4gIAlzZWxlY3QgSEFWRV9BUkNIX01NQVBfUk5EX0JJVFMgaWYgTU1VCj4g IAlzZWxlY3QgSEFWRV9BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTIGlmIENPTVBBVAo+IEBAIC0x NTQsNyArMTU0LDcgQEAgY29uZmlnIFJJU0NWCj4gIAlzZWxlY3QgSEFWRV9DT05URVhUX1RSQUNL SU5HX1VTRVIKPiAgCXNlbGVjdCBIQVZFX0RFQlVHX0tNRU1MRUFLCj4gIAlzZWxlY3QgSEFWRV9E TUFfQ09OVElHVU9VUyBpZiBNTVUKPiAtCXNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFIGlmICFY SVBfS0VSTkVMICYmIE1NVSAmJiAoQ0xBTkdfU1VQUE9SVFNfRFlOQU1JQ19GVFJBQ0UgfHwgR0ND X1NVUFBPUlRTX0RZTkFNSUNfRlRSQUNFKQo+ICsJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0Ug aWYgTU1VICYmIChDTEFOR19TVVBQT1JUU19EWU5BTUlDX0ZUUkFDRSB8fCBHQ0NfU1VQUE9SVFNf RFlOQU1JQ19GVFJBQ0UpCj4gIAlzZWxlY3QgRlVOQ1RJT05fQUxJR05NRU5UXzRCIGlmIEhBVkVf RFlOQU1JQ19GVFJBQ0UgJiYgUklTQ1ZfSVNBX0MKPiAgCXNlbGVjdCBIQVZFX0RZTkFNSUNfRlRS QUNFX1dJVEhfRElSRUNUX0NBTExTIGlmIEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9DQUxMX09Q Uwo+ICAJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9DQUxMX09QUyBpZiAoRFlOQU1J Q19GVFJBQ0VfV0lUSF9BUkdTICYmICFDRkkpCj4gQEAgLTE2Miw3ICsxNjIsNyBAQCBjb25maWcg UklTQ1YKPiAgCXNlbGVjdCBIQVZFX0ZUUkFDRV9HUkFQSF9GVU5DCj4gIAlzZWxlY3QgSEFWRV9G VU5DVElPTl9HUkFQSF9UUkFDRVIgaWYgSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MKPiAg CXNlbGVjdCBIQVZFX0ZVTkNUSU9OX0dSQVBIX0ZSRUdTCj4gLQlzZWxlY3QgSEFWRV9GVU5DVElP Tl9UUkFDRVIgaWYgIVhJUF9LRVJORUwgJiYgSEFWRV9EWU5BTUlDX0ZUUkFDRQo+ICsJc2VsZWN0 IEhBVkVfRlVOQ1RJT05fVFJBQ0VSIGlmIEhBVkVfRFlOQU1JQ19GVFJBQ0UKPiAgCXNlbGVjdCBI QVZFX0VCUEZfSklUIGlmIE1NVQo+ICAJc2VsZWN0IEhBVkVfR0VORVJJQ19USUZfQklUUwo+ICAJ c2VsZWN0IEhBVkVfR1VQX0ZBU1QgaWYgTU1VCj4gQEAgLTE3MSwxNiArMTcxLDE2IEBAIGNvbmZp ZyBSSVNDVgo+ICAJc2VsZWN0IEhBVkVfR0NDX1BMVUdJTlMKPiAgCXNlbGVjdCBIQVZFX0dFTkVS SUNfVkRTTyBpZiBNTVUKPiAgCXNlbGVjdCBIQVZFX0lSUV9USU1FX0FDQ09VTlRJTkcKPiAtCXNl bGVjdCBIQVZFX0tFUk5FTF9CWklQMiBpZiAhWElQX0tFUk5FTCAmJiAhRUZJX1pCT09UCj4gLQlz ZWxlY3QgSEFWRV9LRVJORUxfR1pJUCBpZiAhWElQX0tFUk5FTCAmJiAhRUZJX1pCT09UCj4gLQlz ZWxlY3QgSEFWRV9LRVJORUxfTFo0IGlmICFYSVBfS0VSTkVMICYmICFFRklfWkJPT1QKPiAtCXNl bGVjdCBIQVZFX0tFUk5FTF9MWk1BIGlmICFYSVBfS0VSTkVMICYmICFFRklfWkJPT1QKPiAtCXNl bGVjdCBIQVZFX0tFUk5FTF9MWk8gaWYgIVhJUF9LRVJORUwgJiYgIUVGSV9aQk9PVAo+IC0Jc2Vs ZWN0IEhBVkVfS0VSTkVMX1VOQ09NUFJFU1NFRCBpZiAhWElQX0tFUk5FTCAmJiAhRUZJX1pCT09U Cj4gLQlzZWxlY3QgSEFWRV9LRVJORUxfWlNURCBpZiAhWElQX0tFUk5FTCAmJiAhRUZJX1pCT09U Cj4gLQlzZWxlY3QgSEFWRV9LRVJORUxfWFogaWYgIVhJUF9LRVJORUwgJiYgIUVGSV9aQk9PVAo+ IC0Jc2VsZWN0IEhBVkVfS1BST0JFUyBpZiAhWElQX0tFUk5FTAo+IC0Jc2VsZWN0IEhBVkVfS1JF VFBST0JFUyBpZiAhWElQX0tFUk5FTAo+ICsJc2VsZWN0IEhBVkVfS0VSTkVMX0JaSVAyIGlmICFF RklfWkJPT1QKPiArCXNlbGVjdCBIQVZFX0tFUk5FTF9HWklQIGlmICFFRklfWkJPT1QKPiArCXNl bGVjdCBIQVZFX0tFUk5FTF9MWjQgaWYgIUVGSV9aQk9PVAo+ICsJc2VsZWN0IEhBVkVfS0VSTkVM X0xaTUEgaWYgIUVGSV9aQk9PVAo+ICsJc2VsZWN0IEhBVkVfS0VSTkVMX0xaTyBpZiAhRUZJX1pC T09UCj4gKwlzZWxlY3QgSEFWRV9LRVJORUxfVU5DT01QUkVTU0VEIGlmICFFRklfWkJPT1QKPiAr CXNlbGVjdCBIQVZFX0tFUk5FTF9aU1REIGlmICFFRklfWkJPT1QKPiArCXNlbGVjdCBIQVZFX0tF Uk5FTF9YWiBpZiAhRUZJX1pCT09UCj4gKwlzZWxlY3QgSEFWRV9LUFJPQkVTCj4gKwlzZWxlY3Qg SEFWRV9LUkVUUFJPQkVTCj4gIAkjIGh0dHBzOi8vZ2l0aHViLmNvbS9DbGFuZ0J1aWx0TGludXgv bGludXgvaXNzdWVzLzE4ODEKPiAgCXNlbGVjdCBIQVZFX0xEX0RFQURfQ09ERV9EQVRBX0VMSU1J TkFUSU9OIGlmICFMRF9JU19MTEQKPiAgCXNlbGVjdCBIQVZFX01PVkVfUE1ECj4gQEAgLTE5MSw5 ICsxOTEsOSBAQCBjb25maWcgUklTQ1YKPiAgCXNlbGVjdCBIQVZFX1BFUkZfUkVHUwo+ICAJc2Vs ZWN0IEhBVkVfUEVSRl9VU0VSX1NUQUNLX0RVTVAKPiAgCXNlbGVjdCBIQVZFX1BPU0lYX0NQVV9U SU1FUlNfVEFTS19XT1JLCj4gLQlzZWxlY3QgSEFWRV9QUkVFTVBUX0RZTkFNSUNfS0VZIGlmICFY SVBfS0VSTkVMCj4gKwlzZWxlY3QgSEFWRV9QUkVFTVBUX0RZTkFNSUNfS0VZCj4gIAlzZWxlY3Qg SEFWRV9SRUdTX0FORF9TVEFDS19BQ0NFU1NfQVBJCj4gLQlzZWxlY3QgSEFWRV9SRVRIT09LIGlm ICFYSVBfS0VSTkVMCj4gKwlzZWxlY3QgSEFWRV9SRVRIT09LCj4gIAlzZWxlY3QgSEFWRV9SU0VR Cj4gIAlzZWxlY3QgSEFWRV9SVVNUIGlmIFJVU1RDX1NVUFBPUlRTX1JJU0NWICYmIENDX0lTX0NM QU5HCj4gIAlzZWxlY3QgSEFWRV9TQU1QTEVfRlRSQUNFX0RJUkVDVAo+IEBAIC0yMTQsNyArMjE0 LDcgQEAgY29uZmlnIFJJU0NWCj4gIAlzZWxlY3QgUENJX0VDQU0gaWYgKEFDUEkgJiYgUENJKQo+ ICAJc2VsZWN0IFBDSV9NU0kgaWYgUENJCj4gIAlzZWxlY3QgUkVMT0NBVEFCTEUgaWYgIU1NVSAm JiAhUEhZU19SQU1fQkFTRV9GSVhFRAo+IC0Jc2VsZWN0IFJJU0NWX0FMVEVSTkFUSVZFIGlmICFY SVBfS0VSTkVMCj4gKwlzZWxlY3QgUklTQ1ZfQUxURVJOQVRJVkUKPiAgCXNlbGVjdCBSSVNDVl9B UExJQwo+ICAJc2VsZWN0IFJJU0NWX0lNU0lDCj4gIAlzZWxlY3QgUklTQ1ZfSU5UQwo+IEBAIC01 NDEsNyArNTQxLDYgQEAgZW5kY2hvaWNlCj4gIAo+ICBjb25maWcgUklTQ1ZfQUxURVJOQVRJVkUK PiAgCWJvb2wKPiAtCWRlcGVuZHMgb24gIVhJUF9LRVJORUwKPiAgCWhlbHAKPiAgCSAgVGhpcyBL Y29uZmlnIGFsbG93cyB0aGUga2VybmVsIHRvIGF1dG9tYXRpY2FsbHkgcGF0Y2ggdGhlCj4gIAkg IGVycmF0dW0gb3IgY3B1ZmVhdHVyZSByZXF1aXJlZCBieSB0aGUgZXhlY3V0aW9uIHBsYXRmb3Jt IGF0IHJ1bgo+IEBAIC0xMTI5LDcgKzExMjgsNiBAQCBjb25maWcgUEFSQVZJUlRfVElNRV9BQ0NP VU5USU5HCj4gIAo+ICBjb25maWcgUkVMT0NBVEFCTEUKPiAgCWJvb2wgIkJ1aWxkIGEgcmVsb2Nh dGFibGUga2VybmVsIgo+IC0JZGVwZW5kcyBvbiAhWElQX0tFUk5FTAo+ICAJc2VsZWN0IE1PRFVM RV9TRUNUSU9OUyBpZiBNT0RVTEVTCj4gIAlzZWxlY3QgQVJDSF9WTUxJTlVYX05FRURTX1JFTE9D Uwo+ICAJaGVscAo+IEBAIC0xMTQ2LDcgKzExNDQsNyBAQCBjb25maWcgUkVMT0NBVEFCTEUKPiAg Y29uZmlnIFJBTkRPTUlaRV9CQVNFCj4gICAgICAgICAgYm9vbCAiUmFuZG9taXplIHRoZSBhZGRy ZXNzIG9mIHRoZSBrZXJuZWwgaW1hZ2UiCj4gICAgICAgICAgc2VsZWN0IFJFTE9DQVRBQkxFCj4g LSAgICAgICAgZGVwZW5kcyBvbiBNTVUgJiYgNjRCSVQgJiYgIVhJUF9LRVJORUwKPiArICAgICAg ICBkZXBlbmRzIG9uIE1NVSAmJiA2NEJJVAo+ICAgICAgICAgIGhlbHAKPiAgICAgICAgICAgIFJh bmRvbWl6ZXMgdGhlIHZpcnR1YWwgYWRkcmVzcyBhdCB3aGljaCB0aGUga2VybmVsIGltYWdlIGlz Cj4gICAgICAgICAgICBsb2FkZWQsIGFzIGEgc2VjdXJpdHkgZmVhdHVyZSB0aGF0IGRldGVycyBl eHBsb2l0IGF0dGVtcHRzCj4gQEAgLTEyMzYsNyArMTIzNCw3IEBAIGNvbmZpZyBFRklfU1RVQgo+ ICAKPiAgY29uZmlnIEVGSQo+ICAJYm9vbCAiVUVGSSBydW50aW1lIHN1cHBvcnQiCj4gLQlkZXBl bmRzIG9uIE9GICYmICFYSVBfS0VSTkVMCj4gKwlkZXBlbmRzIG9uIE9GCj4gIAlkZXBlbmRzIG9u IE1NVQo+ICAJZGVmYXVsdCB5Cj4gIAlzZWxlY3QgQVJDSF9TVVBQT1JUU19BQ1BJIGlmIDY0QklU Cj4gQEAgLTEyODcsNDQgKzEyODUsNiBAQCBjb25maWcgUEhZU19SQU1fQkFTRQo+ICAJICBleHBs aWNpdGx5IHNwZWNpZmllZCB0byBydW4gZWFybHkgcmVsb2NhdGlvbnMgb2YgcmVhZC13cml0ZSBk YXRhCj4gIAkgIGZyb20gZmxhc2ggdG8gUkFNLgo+ICAKPiAtY29uZmlnIFhJUF9LRVJORUwKPiAt CWJvb2wgIktlcm5lbCBFeGVjdXRlLUluLVBsYWNlIGZyb20gUk9NIgo+IC0JZGVwZW5kcyBvbiBN TVUgJiYgU1BBUlNFTUVNICYmIE5PTlBPUlRBQkxFCj4gLQkjIFRoaXMgcHJldmVudHMgWElQIGZy b20gYmVpbmcgZW5hYmxlZCBieSBhbGx7eWVzLG1vZH1jb25maWcsIHdoaWNoCj4gLQkjIGZhaWwg dG8gYnVpbGQgc2luY2UgWElQIGRvZXNuJ3Qgc3VwcG9ydCBsYXJnZSBrZXJuZWxzLgo+IC0JZGVw ZW5kcyBvbiAhQ09NUElMRV9URVNUCj4gLQlzZWxlY3QgUEhZU19SQU1fQkFTRV9GSVhFRAo+IC0J aGVscAo+IC0JICBFeGVjdXRlLUluLVBsYWNlIGFsbG93cyB0aGUga2VybmVsIHRvIHJ1biBmcm9t IG5vbi12b2xhdGlsZSBzdG9yYWdlCj4gLQkgIGRpcmVjdGx5IGFkZHJlc3NhYmxlIGJ5IHRoZSBD UFUsIHN1Y2ggYXMgTk9SIGZsYXNoLiBUaGlzIHNhdmVzIFJBTQo+IC0JICBzcGFjZSBzaW5jZSB0 aGUgdGV4dCBzZWN0aW9uIG9mIHRoZSBrZXJuZWwgaXMgbm90IGxvYWRlZCBmcm9tIGZsYXNoCj4g LQkgIHRvIFJBTS4gIFJlYWQtd3JpdGUgc2VjdGlvbnMsIHN1Y2ggYXMgdGhlIGRhdGEgc2VjdGlv biBhbmQgc3RhY2ssCj4gLQkgIGFyZSBzdGlsbCBjb3BpZWQgdG8gUkFNLiAgVGhlIFhJUCBrZXJu ZWwgaXMgbm90IGNvbXByZXNzZWQgc2luY2UKPiAtCSAgaXQgaGFzIHRvIHJ1biBkaXJlY3RseSBm cm9tIGZsYXNoLCBzbyBpdCB3aWxsIHRha2UgbW9yZSBzcGFjZSB0bwo+IC0JICBzdG9yZSBpdC4g IFRoZSBmbGFzaCBhZGRyZXNzIHVzZWQgdG8gbGluayB0aGUga2VybmVsIG9iamVjdCBmaWxlcywK PiAtCSAgYW5kIGZvciBzdG9yaW5nIGl0LCBpcyBjb25maWd1cmF0aW9uIGRlcGVuZGVudC4gVGhl cmVmb3JlLCBpZiB5b3UKPiAtCSAgc2F5IFkgaGVyZSwgeW91IG11c3Qga25vdyB0aGUgcHJvcGVy IHBoeXNpY2FsIGFkZHJlc3Mgd2hlcmUgdG8KPiAtCSAgc3RvcmUgdGhlIGtlcm5lbCBpbWFnZSBk ZXBlbmRpbmcgb24geW91ciBvd24gZmxhc2ggbWVtb3J5IHVzYWdlLgo+IC0KPiAtCSAgQWxzbyBu b3RlIHRoYXQgdGhlIG1ha2UgdGFyZ2V0IGJlY29tZXMgIm1ha2UgeGlwSW1hZ2UiIHJhdGhlciB0 aGFuCj4gLQkgICJtYWtlIHpJbWFnZSIgb3IgIm1ha2UgSW1hZ2UiLiAgVGhlIGZpbmFsIGtlcm5l bCBiaW5hcnkgdG8gcHV0IGluCj4gLQkgIFJPTSBtZW1vcnkgd2lsbCBiZSBhcmNoL3Jpc2N2L2Jv b3QveGlwSW1hZ2UuCj4gLQo+IC0JICBTUEFSU0VNRU0gaXMgcmVxdWlyZWQgYmVjYXVzZSB0aGUg a2VybmVsIHRleHQgYW5kIHJvZGF0YSB0aGF0IGFyZQo+IC0JICBmbGFzaCByZXNpZGVudCBhcmUg bm90IGJhY2tlZCBieSBtZW1tYXAsIHRoZW4gYW55IGF0dGVtcHQgdG8gZ2V0Cj4gLQkgIGEgc3Ry dWN0IHBhZ2Ugb24gdGhvc2UgcmVnaW9ucyB3aWxsIHRyaWdnZXIgYSBmYXVsdC4KPiAtCj4gLQkg IElmIHVuc3VyZSwgc2F5IE4uCj4gLQo+IC1jb25maWcgWElQX1BIWVNfQUREUgo+IC0JaGV4ICJY SVAgS2VybmVsIFBoeXNpY2FsIExvY2F0aW9uIgo+IC0JZGVwZW5kcyBvbiBYSVBfS0VSTkVMCj4g LQlkZWZhdWx0ICIweDIxMDAwMDAwIgo+IC0JaGVscAo+IC0JICBUaGlzIGlzIHRoZSBwaHlzaWNh bCBhZGRyZXNzIGluIHlvdXIgZmxhc2ggbWVtb3J5IHRoZSBrZXJuZWwgd2lsbAo+IC0JICBiZSBs aW5rZWQgZm9yIGFuZCBzdG9yZWQgdG8uICBUaGlzIGFkZHJlc3MgaXMgZGVwZW5kZW50IG9uIHlv dXIKPiAtCSAgb3duIGZsYXNoIHVzYWdlLgo+IC0KPiAgY29uZmlnIFJJU0NWX0lTQV9GQUxMQkFD Swo+ICAJYm9vbCAiUGVybWl0IGZhbGxpbmcgYmFjayB0byBwYXJzaW5nIHJpc2N2LGlzYSBmb3Ig ZXh0ZW5zaW9uIHN1cHBvcnQgYnkgZGVmYXVsdCIKPiAgCWRlZmF1bHQgeQo+IGRpZmYgLS1naXQg YS9hcmNoL3Jpc2N2L0tjb25maWcuc29jcyBiL2FyY2gvcmlzY3YvS2NvbmZpZy5zb2NzCj4gaW5k ZXggZDYyMWI4NWRkNjNiLi5jMTc0YWMwZWM0NmIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9L Y29uZmlnLnNvY3MKPiArKysgYi9hcmNoL3Jpc2N2L0tjb25maWcuc29jcwo+IEBAIC0yLDcgKzIs NyBAQCBtZW51ICJTb0Mgc2VsZWN0aW9uIgo+ICAKPiAgY29uZmlnIEFSQ0hfQU5ERVMKPiAgCWJv b2wgIkFuZGVzIFNvQ3MiCj4gLQlkZXBlbmRzIG9uIE1NVSAmJiAhWElQX0tFUk5FTAo+ICsJZGVw ZW5kcyBvbiBNTVUKPiAgCXNlbGVjdCBFUlJBVEFfQU5ERVMKPiAgCWhlbHAKPiAgCSAgVGhpcyBl bmFibGVzIHN1cHBvcnQgZm9yIEFuZGVzIFNvQyBwbGF0Zm9ybSBoYXJkd2FyZS4KPiBAQCAtMzMs NyArMzMsNyBAQCBjb25maWcgQVJDSF9SRU5FU0FTCj4gIAo+ICBjb25maWcgQVJDSF9TSUZJVkUK PiAgCWJvb2wgIlNpRml2ZSBTb0NzIgo+IC0Jc2VsZWN0IEVSUkFUQV9TSUZJVkUgaWYgIVhJUF9L RVJORUwKPiArCXNlbGVjdCBFUlJBVEFfU0lGSVZFCj4gIAloZWxwCj4gIAkgIFRoaXMgZW5hYmxl cyBzdXBwb3J0IGZvciBTaUZpdmUgU29DIHBsYXRmb3JtIGhhcmR3YXJlLgo+ICAKPiBAQCAtNjEs NyArNjEsNyBAQCBjb25maWcgU09DX1NUQVJGSVZFCj4gIAo+ICBjb25maWcgQVJDSF9TVU5YSQo+ ICAJYm9vbCAiQWxsd2lubmVyIHN1bjIwaSBTb0NzIgo+IC0JZGVwZW5kcyBvbiBNTVUgJiYgIVhJ UF9LRVJORUwKPiArCWRlcGVuZHMgb24gTU1VCj4gIAlzZWxlY3QgRVJSQVRBX1RIRUFECj4gIAlz ZWxlY3QgU1VONElfVElNRVIKPiAgCWhlbHAKPiBAQCAtNzgsNyArNzgsNyBAQCBjb25maWcgQVJD SF9URU5TVE9SUkVOVAo+ICAKPiAgY29uZmlnIEFSQ0hfVEhFQUQKPiAgCWJvb2wgIlQtSEVBRCBS SVNDLVYgU29DcyIKPiAtCWRlcGVuZHMgb24gTU1VICYmICFYSVBfS0VSTkVMCj4gKwlkZXBlbmRz IG9uIE1NVQo+ICAJc2VsZWN0IEVSUkFUQV9USEVBRAo+ICAJc2VsZWN0IFBNX0dFTkVSSUNfRE9N QUlOUyBpZiBQTQo+ICAJaGVscAo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L01ha2VmaWxlIGIv YXJjaC9yaXNjdi9NYWtlZmlsZQo+IGluZGV4IDM3MWRhNzVhNDdmOS4uMmNkYTg3YTVhYWYxIDEw MDY0NAo+IC0tLSBhL2FyY2gvcmlzY3YvTWFrZWZpbGUKPiArKysgYi9hcmNoL3Jpc2N2L01ha2Vm aWxlCj4gQEAgLTE1MCw3ICsxNTAsNiBAQCBpZmRlZiBDT05GSUdfUklTQ1ZfTV9NT0RFCj4gIGJv b3QtaW1hZ2UtJChDT05GSUdfU09DX0NBTkFBTl9LMjEwKQk6PSBsb2FkZXIuYmluCj4gIGVuZGlm Cj4gIGJvb3QtaW1hZ2UtJChDT05GSUdfRUZJX1pCT09UKQkJOj0gdm1saW51ei5lZmkKPiAtYm9v dC1pbWFnZS0kKENPTkZJR19YSVBfS0VSTkVMKQkJOj0geGlwSW1hZ2UKPiAgS0JVSUxEX0lNQUdF CQkJCTo9ICQoYm9vdCkvJChib290LWltYWdlLXkpCj4gIAo+ICBsaWJzLXkgKz0gYXJjaC9yaXNj di9saWIvCj4gQEAgLTIxOCw4ICsyMTcsNiBAQCBkZWZpbmUgYXJjaGhlbHAKPiAgICBlY2hvICAn ICBJbWFnZS54egktIENvbXByZXNzZWQga2VybmVsIGltYWdlIChhcmNoL3Jpc2N2L2Jvb3QvSW1h Z2UueHopJwo+ICAgIGVjaG8gICcgIHZtbGludXouZWZpCS0gQ29tcHJlc3NlZCBFRkkga2VybmVs IGltYWdlIChhcmNoL3Jpc2N2L2Jvb3Qvdm1saW51ei5lZmkpJwo+ICAgIGVjaG8gICcJCSAgRGVm YXVsdCB3aGVuIENPTkZJR19FRklfWkJPT1Q9eScKPiAtICBlY2hvICAnICB4aXBJbWFnZQktIEV4 ZWN1dGUtaW4tcGxhY2Uga2VybmVsIGltYWdlIChhcmNoL3Jpc2N2L2Jvb3QveGlwSW1hZ2UpJwo+ IC0gIGVjaG8gICcJCSAgRGVmYXVsdCB3aGVuIENPTkZJR19YSVBfS0VSTkVMPXknCj4gICAgZWNo byAgJyAgaW5zdGFsbAktIEluc3RhbGwga2VybmVsIHVzaW5nICh5b3VyKSB+L2Jpbi8kKElOU1RB TExLRVJORUwpIG9yJwo+ICAgIGVjaG8gICcJCSAgKGRpc3RyaWJ1dGlvbikgL3NiaW4vJChJTlNU QUxMS0VSTkVMKSBvciBpbnN0YWxsIHRvICcKPiAgICBlY2hvICAnCQkgICQkKElOU1RBTExfUEFU SCknCj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9NYWtlZmlsZSBiL2FyY2gvcmlzY3Yv Ym9vdC9NYWtlZmlsZQo+IGluZGV4IDUzMDFhZGY1ZjNmNS4uZmNmYmUzZjgxNGQ2IDEwMDY0NAo+ IC0tLSBhL2FyY2gvcmlzY3YvYm9vdC9NYWtlZmlsZQo+ICsrKyBiL2FyY2gvcmlzY3YvYm9vdC9N YWtlZmlsZQo+IEBAIC0yMCwxNyArMjAsNiBAQCBPQkpDT1BZRkxBR1NfeGlwSW1hZ2UgOj0tTyBi aW5hcnkgLVIgLm5vdGUgLVIgLm5vdGUuZ251LmJ1aWxkLWlkIC1SIC5jb21tZW50IC1TCj4gIAo+ ICB0YXJnZXRzIDo9IEltYWdlIEltYWdlLiogbG9hZGVyIGxvYWRlci5vIGxvYWRlci5sZHMgbG9h ZGVyLmJpbiB4aXBJbWFnZQo+ICAKPiAtaWZlcSAoJChDT05GSUdfWElQX0tFUk5FTCkseSkKPiAt Cj4gLXF1aWV0X2NtZF9ta3hpcCA9ICQocXVpZXRfY21kX29iamNvcHkpCj4gLWNtZF9ta3hpcCA9 ICQoY21kX29iamNvcHkpCj4gLQo+IC0kKG9iaikveGlwSW1hZ2U6IHZtbGludXggRk9SQ0UKPiAt CSQoY2FsbCBpZl9jaGFuZ2VkLG1reGlwKQo+IC0JQCQoa2VjaG8pICcgIFBoeXNpY2FsIEFkZHJl c3Mgb2YgeGlwSW1hZ2U6ICQoQ09ORklHX1hJUF9QSFlTX0FERFIpJwo+IC0KPiAtZW5kaWYKPiAt Cj4gICQob2JqKS9JbWFnZTogdm1saW51eCBGT1JDRQo+ICAJJChjYWxsIGlmX2NoYW5nZWQsb2Jq Y29weSkKPiAgCj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5oIGIv YXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wYWdlLmgKPiBpbmRleCAzYzUxN2JjOWVhYzUuLjljY2Q4 MGQ1N2ZmZSAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BhZ2UuaAo+ICsr KyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5oCj4gQEAgLTI5LDExICsyOSw3IEBACj4g ICNkZWZpbmUgUEFHRV9PRkZTRVRfTDUJCV9BQygweGZmNjAwMDAwMDAwMDAwMDAsIFVMKQo+ICAj ZGVmaW5lIFBBR0VfT0ZGU0VUX0w0CQlfQUMoMHhmZmZmYWY4MDAwMDAwMDAwLCBVTCkKPiAgI2Rl ZmluZSBQQUdFX09GRlNFVF9MMwkJX0FDKDB4ZmZmZmZmZDYwMDAwMDAwMCwgVUwpCj4gLSNpZmRl ZiBDT05GSUdfWElQX0tFUk5FTAo+IC0jZGVmaW5lIFBBR0VfT0ZGU0VUCQlQQUdFX09GRlNFVF9M Mwo+IC0jZWxzZQo+ICAjZGVmaW5lIFBBR0VfT0ZGU0VUCQlrZXJuZWxfbWFwLnBhZ2Vfb2Zmc2V0 Cj4gLSNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+ICAjZWxzZQo+ICAjZGVmaW5lIFBB R0VfT0ZGU0VUCQlfQUMoMHhjMDAwMDAwMCwgVUwpCj4gICNlbmRpZiAvKiBDT05GSUdfNjRCSVQg Ki8KPiBAQCAtMTA1LDE1ICsxMDEsOCBAQCBzdHJ1Y3Qga2VybmVsX21hcHBpbmcgewo+ICAJLyog T2Zmc2V0IGJldHdlZW4gbGluZWFyIG1hcHBpbmcgdmlydHVhbCBhZGRyZXNzIGFuZCBrZXJuZWwg bG9hZCBhZGRyZXNzICovCj4gIAl1bnNpZ25lZCBsb25nIHZhX3BhX29mZnNldDsKPiAgCS8qIE9m ZnNldCBiZXR3ZWVuIGtlcm5lbCBtYXBwaW5nIHZpcnR1YWwgYWRkcmVzcyBhbmQga2VybmVsIGxv YWQgYWRkcmVzcyAqLwo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiAtCXVuc2lnbmVkIGxv bmcgdmFfa2VybmVsX3hpcF90ZXh0X3BhX29mZnNldDsKPiAtCXVuc2lnbmVkIGxvbmcgdmFfa2Vy bmVsX3hpcF9kYXRhX3BhX29mZnNldDsKPiAtCXVpbnRwdHJfdCB4aXByb207Cj4gLQl1aW50cHRy X3QgeGlwcm9tX3N6Owo+IC0jZWxzZQo+ICAJdW5zaWduZWQgbG9uZyBwYWdlX29mZnNldDsKPiAg CXVuc2lnbmVkIGxvbmcgdmFfa2VybmVsX3BhX29mZnNldDsKPiAtI2VuZGlmCj4gIH07Cj4gIAo+ ICBleHRlcm4gc3RydWN0IGtlcm5lbF9tYXBwaW5nIGtlcm5lbF9tYXA7Cj4gQEAgLTEzMiwxNiAr MTIxLDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm1lbW1hcF9zdGFydF9wZm47Cj4gIHZvaWQg KmxpbmVhcl9tYXBwaW5nX3BhX3RvX3ZhKHVuc2lnbmVkIGxvbmcgeCk7Cj4gICNlbmRpZgo+ICAK PiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLSNkZWZpbmUga2VybmVsX21hcHBpbmdfcGFf dG9fdmEoeSkJKHsJCQkJCVwKPiAtCXVuc2lnbmVkIGxvbmcgX3kgPSAodW5zaWduZWQgbG9uZyko eSk7CQkJCQlcCj4gLQkoX3kgPCBwaHlzX3JhbV9iYXNlKSA/CQkJCQkJCVwKPiAtCQkodm9pZCAq KShfeSArIGtlcm5lbF9tYXAudmFfa2VybmVsX3hpcF90ZXh0X3BhX29mZnNldCkgOglcCj4gLQkJ KHZvaWQgKikoX3kgKyBrZXJuZWxfbWFwLnZhX2tlcm5lbF94aXBfZGF0YV9wYV9vZmZzZXQpOwkJ XAo+IC0JfSkKPiAtI2Vsc2UKPiAgI2RlZmluZSBrZXJuZWxfbWFwcGluZ19wYV90b192YSh5KSAo KHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpKHkpICsga2VybmVsX21hcC52YV9rZXJuZWxfcGFfb2Zm c2V0KSkKPiAtI2VuZGlmCj4gIAo+ICAjZGVmaW5lIF9fcGFfdG9fdmFfbm9kZWJ1Zyh4KQkJbGlu ZWFyX21hcHBpbmdfcGFfdG9fdmEoeCkKPiAgCj4gQEAgLTE1MSwxNiArMTMxLDcgQEAgdm9pZCAq bGluZWFyX21hcHBpbmdfcGFfdG9fdmEodW5zaWduZWQgbG9uZyB4KTsKPiAgcGh5c19hZGRyX3Qg bGluZWFyX21hcHBpbmdfdmFfdG9fcGEodW5zaWduZWQgbG9uZyB4KTsKPiAgI2VuZGlmCj4gIAo+ IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiAtI2RlZmluZSBrZXJuZWxfbWFwcGluZ192YV90 b19wYSh5KSAoewkJCQkJCVwKPiAtCXVuc2lnbmVkIGxvbmcgX3kgPSAodW5zaWduZWQgbG9uZyko eSk7CQkJCQlcCj4gLQkoX3kgPCBrZXJuZWxfbWFwLnZpcnRfYWRkciArIGtlcm5lbF9tYXAueGlw cm9tX3N6KSA/CQkJXAo+IC0JCShfeSAtIGtlcm5lbF9tYXAudmFfa2VybmVsX3hpcF90ZXh0X3Bh X29mZnNldCkgOgkJXAo+IC0JCShfeSAtIGtlcm5lbF9tYXAudmFfa2VybmVsX3hpcF9kYXRhX3Bh X29mZnNldCk7CQkJXAo+IC0JfSkKPiAtI2Vsc2UKPiAgI2RlZmluZSBrZXJuZWxfbWFwcGluZ192 YV90b19wYSh5KSAoKHVuc2lnbmVkIGxvbmcpKHkpIC0ga2VybmVsX21hcC52YV9rZXJuZWxfcGFf b2Zmc2V0KQo+IC0jZW5kaWYKPiAgCj4gICNkZWZpbmUgX192YV90b19wYV9ub2RlYnVnKHgpCSh7 CQkJCQkJXAo+ICAJdW5zaWduZWQgbG9uZyBfeCA9IHg7CQkJCQkJCVwKPiBkaWZmIC0tZ2l0IGEv YXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L3BndGFibGUuaAo+IGluZGV4IDEzNDBhYTM5OGE3NC4uYTE4YzBmNjJiNDUyIDEwMDY0NAo+IC0t LSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4gKysrIGIvYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS9wZ3RhYmxlLmgKPiBAQCAtMTM0LDIxICsxMzQsNiBAQAo+ICAKPiAgI2luY2x1 ZGUgPGxpbnV4L3BhZ2VfdGFibGVfY2hlY2suaD4KPiAgCj4gLSNpZmRlZiBDT05GSUdfWElQX0tF Uk5FTAo+IC0jZGVmaW5lIFhJUF9GSVhVUChhZGRyKSAoewkJCQkJCQlcCj4gLQlleHRlcm4gY2hh ciBfc2RhdGFbXSwgX3N0YXJ0W10sIF9lbmRbXTsJCQkJCVwKPiAtCXVpbnRwdHJfdCBfX3JvbV9z dGFydF9kYXRhID0gQ09ORklHX1hJUF9QSFlTX0FERFIJCQlcCj4gLQkJCQkrICh1aW50cHRyX3Qp Jl9zZGF0YSAtICh1aW50cHRyX3QpJl9zdGFydDsJXAo+IC0JdWludHB0cl90IF9fcm9tX2VuZF9k YXRhID0gQ09ORklHX1hJUF9QSFlTX0FERFIJCQkJXAo+IC0JCQkJKyAodWludHB0cl90KSZfZW5k IC0gKHVpbnRwdHJfdCkmX3N0YXJ0OwlcCj4gLQl1aW50cHRyX3QgX19hID0gKHVpbnRwdHJfdCko YWRkcik7CQkJCQlcCj4gLQkoX19hID49IF9fcm9tX3N0YXJ0X2RhdGEgJiYgX19hIDwgX19yb21f ZW5kX2RhdGEpID8JCQlcCj4gLQkJX19hIC0gX19yb21fc3RhcnRfZGF0YSArIENPTkZJR19QSFlT X1JBTV9CQVNFIDoJX19hOwkJXAo+IC0JfSkKPiAtI2Vsc2UKPiAtI2RlZmluZSBYSVBfRklYVVAo YWRkcikJCShhZGRyKQo+IC0jZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiAtCj4gIHN0 cnVjdCBwdF9hbGxvY19vcHMgewo+ICAJcHRlX3QgKigqZ2V0X3B0ZV92aXJ0KShwaHlzX2FkZHJf dCBwYSk7Cj4gIAlwaHlzX2FkZHJfdCAoKmFsbG9jX3B0ZSkodWludHB0cl90IHZhKTsKPiBAQCAt MTI3MiwxMyArMTI1Nyw4IEBAIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX3N3cF9jbGVhcl9leGNs dXNpdmUocHRlX3QgcHRlKQo+ICBleHRlcm4gY2hhciBfc3RhcnRbXTsKPiAgZXh0ZXJuIHZvaWQg Kl9kdGJfZWFybHlfdmE7Cj4gIGV4dGVybiB1aW50cHRyX3QgX2R0Yl9lYXJseV9wYTsKPiAtI2lm IGRlZmluZWQoQ09ORklHX1hJUF9LRVJORUwpICYmIGRlZmluZWQoQ09ORklHX01NVSkKPiAtI2Rl ZmluZSBkdGJfZWFybHlfdmEJKCoodm9pZCAqKilYSVBfRklYVVAoJl9kdGJfZWFybHlfdmEpKQo+ IC0jZGVmaW5lIGR0Yl9lYXJseV9wYQkoKih1aW50cHRyX3QgKilYSVBfRklYVVAoJl9kdGJfZWFy bHlfcGEpKQo+IC0jZWxzZQo+ICAjZGVmaW5lIGR0Yl9lYXJseV92YQlfZHRiX2Vhcmx5X3ZhCj4g ICNkZWZpbmUgZHRiX2Vhcmx5X3BhCV9kdGJfZWFybHlfcGEKPiAtI2VuZGlmIC8qIENPTkZJR19Y SVBfS0VSTkVMICovCj4gIGV4dGVybiB1NjQgc2F0cF9tb2RlOwo+ICAKPiAgdm9pZCBwYWdpbmdf aW5pdCh2b2lkKTsKPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zY3MuaCBi L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc2NzLmgKPiBpbmRleCBhYjc3MTRhYTkzYmQuLjAyM2E0 MTJmZTM4ZCAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Njcy5oCj4gKysr IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zY3MuaAo+IEBAIC0xMCw3ICsxMCw2IEBACj4gIC8q IExvYWQgaW5pdF9zaGFkb3dfY2FsbF9zdGFjayB0byBncC4gKi8KPiAgLm1hY3JvIHNjc19sb2Fk X2luaXRfc3RhY2sKPiAgCWxhCWdwLCBpbml0X3NoYWRvd19jYWxsX3N0YWNrCj4gLQlYSVBfRklY VVBfT0ZGU0VUIGdwCj4gIC5lbmRtCj4gIAo+ICAvKiBMb2FkIHRoZSBwZXItQ1BVIElSUSBzaGFk b3cgY2FsbCBzdGFjayB0byBncC4gKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9zZXRfbWVtb3J5LmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3NldF9tZW1vcnkuaAo+ IGluZGV4IDg3Mzg5ZTkzMzI1YS4uZWY1OWUxNzE2YTJjIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlz Y3YvaW5jbHVkZS9hc20vc2V0X21lbW9yeS5oCj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9zZXRfbWVtb3J5LmgKPiBAQCAtNDcsNyArNDcsNyBAQCBib29sIGtlcm5lbF9wYWdlX3ByZXNl bnQoc3RydWN0IHBhZ2UgKnBhZ2UpOwo+ICAKPiAgI2VuZGlmIC8qIF9fQVNTRU1CTEVSX18gKi8K PiAgCj4gLSNpZiBkZWZpbmVkKENPTkZJR19TVFJJQ1RfS0VSTkVMX1JXWCkgfHwgZGVmaW5lZChD T05GSUdfWElQX0tFUk5FTCkKPiArI2lmIGRlZmluZWQoQ09ORklHX1NUUklDVF9LRVJORUxfUldY KQo+ICAjaWZkZWYgQ09ORklHXzY0QklUCj4gICNkZWZpbmUgU0VDVElPTl9BTElHTiAoMSA8PCAy MSkKPiAgI2Vsc2UKPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS94aXBfZml4 dXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20veGlwX2ZpeHVwLmgKPiBkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCBmM2Q1NjI5OWJjMjIuLjAwMDAwMDAwMDAwMAo+IC0tLSBhL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20veGlwX2ZpeHVwLmgKPiArKysgL2Rldi9udWxsCj4gQEAgLTEs NDkgKzAsMCBAQAo+IC0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICov Cj4gLS8qCj4gLSAqIFhJUCBmaXh1cCBtYWNyb3MsIG9ubHkgdXNlZnVsIGluIGFzc2VtYmx5Lgo+ IC0gKi8KPiAtI2lmbmRlZiBfQVNNX1JJU0NWX1hJUF9GSVhVUF9ICj4gLSNkZWZpbmUgX0FTTV9S SVNDVl9YSVBfRklYVVBfSAo+IC0KPiAtI2luY2x1ZGUgPGxpbnV4L3BndGFibGUuaD4KPiAtCj4g LSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0ubWFjcm8gWElQX0ZJWFVQX09GRlNFVCByZWcK PiAtCS8qIEZpeC11cCBhZGRyZXNzIGluIEZsYXNoIGludG8gYWRkcmVzcyBpbiBSQU0gZWFybHkg ZHVyaW5nIGJvb3QgYmVmb3JlCj4gLQkgKiBNTVUgaXMgdXAuIEJlY2F1c2UgZ2VuZXJhdGVkIGNv ZGUgInRoaW5rcyIgZGF0YSBpcyBpbiBGbGFzaCwgYnV0IGl0Cj4gLQkgKiBpcyBhY3R1YWxseSBp biBSQU0gKGFjdHVhbGx5IGRhdGEgaXMgYWxzbyBpbiBGbGFzaCwgYnV0IEZsYXNoIGlzCj4gLQkg KiByZWFkLW9ubHksIHRodXMgd2UgbmVlZCB0byB1c2UgdGhlIGRhdGEgcmVzaWRpbmcgaW4gUkFN KS4KPiAtCSAqCj4gLQkgKiBUaGUgc3RhcnQgb2YgZGF0YSBpbiBGbGFzaCBpcyBfc2RhdGEgYW5k IHRoZSBzdGFydCBvZiBkYXRhIGluIFJBTSBpcwo+IC0JICogQ09ORklHX1BIWVNfUkFNX0JBU0Uu IFNvIHRoaXMgZml4LXVwIGVzc2VudGlhbGx5IGRvZXMgdGhpczoKPiAtCSAqIHJlZyArPSBDT05G SUdfUEhZU19SQU1fQkFTRSAtIF9zdGFydAo+IC0JICovCj4gLQlsaSB0MCwgQ09ORklHX1BIWVNf UkFNX0JBU0UKPiAtICAgICAgICBhZGQgXHJlZywgXHJlZywgdDAKPiAtCWxhIHQwLCBfc2RhdGEK PiAtCXN1YiBccmVnLCBccmVnLCB0MAo+IC0uZW5kbQo+IC0ubWFjcm8gWElQX0ZJWFVQX0ZMQVNI X09GRlNFVCByZWcKPiAtCS8qIEluIGxpbmtlciBzY3JpcHQsIGF0IHRoZSB0cmFuc2l0aW9uIGZy b20gcmVhZC1vbmx5IHNlY3Rpb24gdG8KPiAtCSAqIHdyaXRhYmxlIHNlY3Rpb24sIHRoZSBWTUEg aXMgaW5jcmVhc2VkIHdoaWxlIExNQSByZW1haW5zIHRoZSBzYW1lLgo+IC0JICogKFNlZSBpbiBs aW5rZXIgc2NyaXB0IGhvdyBfc2RhdGEsIF9fZGF0YV9sb2MgYW5kIExPQURfT0ZGU0VUIGlzCj4g LQkgKiBjaGFuZ2VkKQo+IC0JICoKPiAtCSAqIENvbnNlcXVlbnRseSwgZWFybHkgZHVyaW5nIGJv b3QgYmVmb3JlIE1NVSBpcyB1cCwgdGhlIGdlbmVyYXRlZCBjb2RlCj4gLQkgKiByZWFkcyB0aGUg IndyaXRhYmxlIiBzZWN0aW9uIGF0IHdyb25nIGFkZHJlc3NlcywgYmVjYXVzZSBWTUEgaXMgdXNl ZAo+IC0JICogYnkgY29tcGlsZXIgdG8gZ2VuZXJhdGUgY29kZSwgYnV0IHRoZSBkYXRhIGlzIGxv Y2F0ZWQgaW4gRmxhc2ggdXNpbmcKPiAtCSAqIExNQS4KPiAtCSAqLwo+IC0JbGEgdDAsIF9zZGF0 YQo+IC0Jc3ViIFxyZWcsIFxyZWcsIHQwCj4gLQlsYSB0MCwgX19kYXRhX2xvYwo+IC0JYWRkIFxy ZWcsIFxyZWcsIHQwCj4gLS5lbmRtCj4gLSNlbHNlCj4gLS5tYWNybyBYSVBfRklYVVBfT0ZGU0VU IHJlZwo+IC0uZW5kbQo+IC0ubWFjcm8gWElQX0ZJWFVQX0ZMQVNIX09GRlNFVCByZWcKPiAtLmVu ZG0KPiAtI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4gLQo+IC0jZW5kaWYKPiBkaWZm IC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5TIGIvYXJjaC9yaXNjdi9rZXJuZWwvaGVh ZC5TCj4gaW5kZXggOWM5OWM1YWQ2ZmU4Li42NTAzOTkwNDQzNjggMTAwNjQ0Cj4gLS0tIGEvYXJj aC9yaXNjdi9rZXJuZWwvaGVhZC5TCj4gKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5TCj4g QEAgLTE0LDcgKzE0LDYgQEAKPiAgI2luY2x1ZGUgPGFzbS9od2NhcC5oPgo+ICAjaW5jbHVkZSA8 YXNtL2ltYWdlLmg+Cj4gICNpbmNsdWRlIDxhc20vc2NzLmg+Cj4gLSNpbmNsdWRlIDxhc20veGlw X2ZpeHVwLmg+Cj4gICNpbmNsdWRlIDxhc20vdXNlcmNmaS5oPgo+ICAjaW5jbHVkZSAiZWZpLWhl YWRlci5TIgo+ICAKPiBAQCAtNzUsNyArNzQsNiBAQCBwZV9oZWFkX3N0YXJ0Ogo+ICByZWxvY2F0 ZV9lbmFibGVfbW11Ogo+ICAJLyogUmVsb2NhdGUgcmV0dXJuIGFkZHJlc3MgKi8KPiAgCWxhIGEx LCBrZXJuZWxfbWFwCj4gLQlYSVBfRklYVVBfT0ZGU0VUIGExCj4gIAlSRUdfTCBhMSwgS0VSTkVM X01BUF9WSVJUX0FERFIoYTEpCj4gIAlsYSBhMiwgX3N0YXJ0Cj4gIAlzdWIgYTEsIGExLCBhMgo+ IEBAIC04OSw3ICs4Nyw2IEBAIHJlbG9jYXRlX2VuYWJsZV9tbXU6Cj4gIAkvKiBDb21wdXRlIHNh dHAgZm9yIGtlcm5lbCBwYWdlIHRhYmxlcywgYnV0IGRvbid0IGxvYWQgaXQgeWV0ICovCj4gIAlz cmwgYTIsIGEwLCBQQUdFX1NISUZUCj4gIAlsYSBhMSwgc2F0cF9tb2RlCj4gLQlYSVBfRklYVVBf T0ZGU0VUIGExCj4gIAlSRUdfTCBhMSwgMChhMSkKPiAgCW9yIGEyLCBhMiwgYTEKPiAgCj4gQEAg LTEwMCw3ICs5Nyw2IEBAIHJlbG9jYXRlX2VuYWJsZV9tbXU6Cj4gIAkgKiB0byBlbnN1cmUgdGhl IG5ldyB0cmFuc2xhdGlvbnMgYXJlIGluIHVzZS4KPiAgCSAqLwo+ICAJbGEgYTAsIHRyYW1wb2xp bmVfcGdfZGlyCj4gLQlYSVBfRklYVVBfT0ZGU0VUIGEwCj4gIAlzcmwgYTAsIGEwLCBQQUdFX1NI SUZUCj4gIAlvciBhMCwgYTAsIGExCj4gIAlzZmVuY2Uudm1hCj4gQEAgLTE1NCwxMSArMTUwLDkg QEAgc2Vjb25kYXJ5X3N0YXJ0X3NiaToKPiAgCj4gIAkvKiBhMCBjb250YWlucyB0aGUgaGFydGlk ICYgYTEgY29udGFpbnMgYm9vdCBkYXRhICovCj4gIAlsaSBhMiwgU0JJX0hBUlRfQk9PVF9UQVNL X1BUUl9PRkZTRVQKPiAtCVhJUF9GSVhVUF9PRkZTRVQgYTIKPiAgCWFkZCBhMiwgYTIsIGExCj4g IAlSRUdfTCB0cCwgKGEyKQo+ICAJbGkgYTMsIFNCSV9IQVJUX0JPT1RfU1RBQ0tfUFRSX09GRlNF VAo+IC0JWElQX0ZJWFVQX09GRlNFVCBhMwo+ICAJYWRkIGEzLCBhMywgYTEKPiAgCVJFR19MIHNw LCAoYTMpCj4gIAo+IEBAIC0xNjcsNyArMTYxLDYgQEAgc2Vjb25kYXJ5X3N0YXJ0X3NiaToKPiAg I2lmZGVmIENPTkZJR19NTVUKPiAgCS8qIEVuYWJsZSB2aXJ0dWFsIG1lbW9yeSBhbmQgcmVsb2Nh dGUgdG8gdmlydHVhbCBhZGRyZXNzICovCj4gIAlsYSBhMCwgc3dhcHBlcl9wZ19kaXIKPiAtCVhJ UF9GSVhVUF9PRkZTRVQgYTAKPiAgCWNhbGwgcmVsb2NhdGVfZW5hYmxlX21tdQo+ICAjZW5kaWYK PiAgCWNhbGwgLkxzZXR1cF90cmFwX3ZlY3Rvcgo+IEBAIC0yNjksNDAgKzI2MiwxMyBAQCBTWU1f Q09ERV9TVEFSVChfc3RhcnRfa2VybmVsKQo+ICAuTGdvb2RfY29yZXM6Cj4gIAo+ICAJLyogVGhl IGxvdHRlcnkgc3lzdGVtIGlzIG9ubHkgcmVxdWlyZWQgZm9yIHNwaW53YWl0IGJvb3RpbmcgbWV0 aG9kICovCj4gLSNpZm5kZWYgQ09ORklHX1hJUF9LRVJORUwKPiAgCS8qIFBpY2sgb25lIGhhcnQg dG8gcnVuIHRoZSBtYWluIGJvb3Qgc2VxdWVuY2UgKi8KPiAgCWxhIGEzLCBoYXJ0X2xvdHRlcnkK PiAgCWxpIGEyLCAxCj4gIAlhbW9hZGQudyBhMywgYTIsIChhMykKPiAgCWJuZXogYTMsIC5Mc2Vj b25kYXJ5X3N0YXJ0Cj4gLQo+IC0jZWxzZQo+IC0JLyogaGFydF9sb3R0ZXJ5IGluIGZsYXNoIGNv bnRhaW5zIGEgbWFnaWMgbnVtYmVyICovCj4gLQlsYSBhMywgaGFydF9sb3R0ZXJ5Cj4gLQltdiBh MiwgYTMKPiAtCVhJUF9GSVhVUF9PRkZTRVQgYTIKPiAtCVhJUF9GSVhVUF9GTEFTSF9PRkZTRVQg YTMKPiAtCWx3IHQxLCAoYTMpCj4gLQlhbW9zd2FwLncgdDAsIHQxLCAoYTIpCj4gLQkvKiBmaXJz dCB0aW1lIGhlcmUgaWYgaGFydF9sb3R0ZXJ5IGluIFJBTSBpcyBub3Qgc2V0ICovCj4gLQliZXEg dDAsIHQxLCAuTHNlY29uZGFyeV9zdGFydAo+IC0KPiAtI2VuZGlmIC8qIENPTkZJR19YSVAgKi8K PiAgI2VuZGlmIC8qIENPTkZJR19SSVNDVl9CT09UX1NQSU5XQUlUICovCj4gIAo+IC0jaWZkZWYg Q09ORklHX1hJUF9LRVJORUwKPiAtCWxhIHNwLCBfZW5kICsgVEhSRUFEX1NJWkUKPiAtCVhJUF9G SVhVUF9PRkZTRVQgc3AKPiAtCW12IHMwLCBhMAo+IC0JbXYgczEsIGExCj4gLQljYWxsIF9fY29w eV9kYXRhCj4gLQo+IC0JLyogUmVzdG9yZSBhMCAmIGExIGNvcHkgKi8KPiAtCW12IGEwLCBzMAo+ IC0JbXYgYTEsIHMxCj4gLSNlbmRpZgo+IC0KPiAtI2lmbmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ ICAJLyogQ2xlYXIgQlNTIGZvciBmbGF0IG5vbi1FTEYgaW1hZ2VzICovCj4gIAlsYSBhMywgX19i c3Nfc3RhcnQKPiAgCWxhIGE0LCBfX2Jzc19zdG9wCj4gQEAgLTMxMiwyMCArMjc4LDE2IEBAIFNZ TV9DT0RFX1NUQVJUKF9zdGFydF9rZXJuZWwpCj4gIAlhZGQgYTMsIGEzLCBSSVNDVl9TWlBUUgo+ ICAJYmx0IGEzLCBhNCwgLkxjbGVhcl9ic3MKPiAgLkxjbGVhcl9ic3NfZG9uZToKPiAtI2VuZGlm Cj4gIAlsYSBhMiwgYm9vdF9jcHVfaGFydGlkCj4gLQlYSVBfRklYVVBfT0ZGU0VUIGEyCj4gIAlS RUdfUyBhMCwgKGEyKQo+ICAKPiAgCS8qIEluaXRpYWxpemUgcGFnZSB0YWJsZXMgYW5kIHJlbG9j YXRlIHRvIHZpcnR1YWwgYWRkcmVzc2VzICovCj4gIAlsYSB0cCwgaW5pdF90YXNrCj4gIAlsYSBz cCwgaW5pdF90aHJlYWRfdW5pb24gKyBUSFJFQURfU0laRQo+IC0JWElQX0ZJWFVQX09GRlNFVCBz cAo+ICAJYWRkaSBzcCwgc3AsIC1QVF9TSVpFX09OX1NUQUNLCj4gIAlzY3NfbG9hZF9pbml0X3N0 YWNrCj4gICNpZmRlZiBDT05GSUdfQlVJTFRJTl9EVEIKPiAgCWxhIGEwLCBfX2R0Yl9zdGFydAo+ IC0JWElQX0ZJWFVQX09GRlNFVCBhMAo+ICAjZWxzZQo+ICAJbXYgYTAsIGExCj4gICNlbmRpZiAv KiBDT05GSUdfQlVJTFRJTl9EVEIgKi8KPiBAQCAtMzM1LDcgKzI5Nyw2IEBAIFNZTV9DT0RFX1NU QVJUKF9zdGFydF9rZXJuZWwpCj4gIAljYWxsIHNldHVwX3ZtCj4gICNpZmRlZiBDT05GSUdfTU1V Cj4gIAlsYSBhMCwgZWFybHlfcGdfZGlyCj4gLQlYSVBfRklYVVBfT0ZGU0VUIGEwCj4gIAljYWxs IHJlbG9jYXRlX2VuYWJsZV9tbXUKPiAgI2VuZGlmIC8qIENPTkZJR19NTVUgKi8KPiAgCj4gQEAg LTM3NCw5ICszMzUsNyBAQCBTWU1fQ09ERV9TVEFSVChfc3RhcnRfa2VybmVsKQo+ICAKPiAgCXNs bGkgYTMsIGEwLCBMR1JFRwo+ICAJbGEgYTEsIF9fY3B1X3NwaW53YWl0X3N0YWNrX3BvaW50ZXIK PiAtCVhJUF9GSVhVUF9PRkZTRVQgYTEKPiAgCWxhIGEyLCBfX2NwdV9zcGlud2FpdF90YXNrX3Bv aW50ZXIKPiAtCVhJUF9GSVhVUF9PRkZTRVQgYTIKPiAgCWFkZCBhMSwgYTMsIGExCj4gIAlhZGQg YTIsIGEzLCBhMgo+ICAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5oIGIv YXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5oCj4gaW5kZXggYTU1NmZkYWFmZWQ5Li4wNWEwNGJlZjQ0 MmIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5oCj4gKysrIGIvYXJjaC9y aXNjdi9rZXJuZWwvaGVhZC5oCj4gQEAgLTExLDkgKzExLDYgQEAKPiAgZXh0ZXJuIGF0b21pY190 IGhhcnRfbG90dGVyeTsKPiAgCj4gIGFzbWxpbmthZ2Ugdm9pZCBfX2luaXQgc2V0dXBfdm0odWlu dHB0cl90IGR0Yl9wYSk7Cj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC1hc21saW5rYWdl IHZvaWQgX19pbml0IF9fY29weV9kYXRhKHZvaWQpOwo+IC0jZW5kaWYKPiAgCj4gICNpZmRlZiBD T05GSUdfUklTQ1ZfQk9PVF9TUElOV0FJVAo+ICBleHRlcm4gdm9pZCAqX19jcHVfc3BpbndhaXRf c3RhY2tfcG9pbnRlcltdOwo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9zZXR1cC5j IGIvYXJjaC9yaXNjdi9rZXJuZWwvc2V0dXAuYwo+IGluZGV4IGI1YmM1ZmM2NWNlYS4uYzg5Y2My NzI0NDBiIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3NldHVwLmMKPiArKysgYi9h cmNoL3Jpc2N2L2tlcm5lbC9zZXR1cC5jCj4gQEAgLTQ2LDExICs0Niw3IEBACj4gICAqIFRoaXMg aXMgdXNlZCBiZWZvcmUgdGhlIGtlcm5lbCBpbml0aWFsaXplcyB0aGUgQlNTIHNvIGl0IGNhbid0 IGJlIGluIHRoZQo+ICAgKiBCU1MuCj4gICAqLwo+IC1hdG9taWNfdCBoYXJ0X2xvdHRlcnkgX19z ZWN0aW9uKCIuc2RhdGEiKQo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiAtPSBBVE9NSUNf SU5JVCgweEMwMDFCRUVGKQo+IC0jZW5kaWYKPiAtOwo+ICthdG9taWNfdCBoYXJ0X2xvdHRlcnkg X19zZWN0aW9uKCIuc2RhdGEiKTsKPiAgdW5zaWduZWQgbG9uZyBib290X2NwdV9oYXJ0aWQ7Cj4g IEVYUE9SVF9TWU1CT0xfR1BMKGJvb3RfY3B1X2hhcnRpZCk7Cj4gIAo+IGRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L2tlcm5lbC9zdXNwZW5kX2VudHJ5LlMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zdXNw ZW5kX2VudHJ5LlMKPiBpbmRleCAyZDU0ZjMwOWMxNDAuLmQ3MWI1NWZkNjI1OSAxMDA2NDQKPiAt LS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9zdXNwZW5kX2VudHJ5LlMKPiArKysgYi9hcmNoL3Jpc2N2 L2tlcm5lbC9zdXNwZW5kX2VudHJ5LlMKPiBAQCAtMTAsNyArMTAsNiBAQAo+ICAjaW5jbHVkZSA8 YXNtL2FzbS1vZmZzZXRzLmg+Cj4gICNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+Cj4gICNpbmNs dWRlIDxhc20vY3NyLmg+Cj4gLSNpbmNsdWRlIDxhc20veGlwX2ZpeHVwLmg+Cj4gIAo+ICAJLnRl eHQKPiAgCS5hbHRtYWNybwo+IEBAIC03MCw3ICs2OSw2IEBAIFNZTV9UWVBFRF9GVU5DX1NUQVJU KF9fY3B1X3Jlc3VtZV9lbnRlcikKPiAgCj4gIAkvKiBFbmFibGUgTU1VICovCj4gIAlsYQlhMCwg c3dhcHBlcl9wZ19kaXIKPiAtCVhJUF9GSVhVUF9PRkZTRVQgYTAKPiAgCWNhbGwJcmVsb2NhdGVf ZW5hYmxlX21tdQo+ICAKPiAgCS8qIFJlc3RvcmUgQTAgYW5kIEExICovCj4gZGlmZiAtLWdpdCBh L2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC90cmFwcy5jCj4g aW5kZXggNWZiNTdmYWQxODhhLi5iZGVjNTRkMTJiMmEgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNj di9rZXJuZWwvdHJhcHMuYwo+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMKPiBAQCAt MTQyLDExICsxNDIsNyBAQCBzdGF0aWMgdm9pZCBkb190cmFwX2Vycm9yKHN0cnVjdCBwdF9yZWdz ICpyZWdzLCBpbnQgc2lnbm8sIGludCBjb2RlLAo+ICAJfQo+ICB9Cj4gIAo+IC0jaWYgZGVmaW5l ZChDT05GSUdfWElQX0tFUk5FTCkgJiYgZGVmaW5lZChDT05GSUdfUklTQ1ZfQUxURVJOQVRJVkUp Cj4gLSNkZWZpbmUgX190cmFwX3NlY3Rpb24gX19ub2luc3RyX3NlY3Rpb24oIi54aXAudHJhcHMi KQo+IC0jZWxzZQo+ICAjZGVmaW5lIF9fdHJhcF9zZWN0aW9uIG5vaW5zdHIKPiAtI2VuZGlmCj4g ICNkZWZpbmUgRE9fRVJST1JfSU5GTyhuYW1lLCBzaWdubywgY29kZSwgc3RyKQkJCQkJXAo+ICBh c21saW5rYWdlIF9fdmlzaWJsZSBfX3RyYXBfc2VjdGlvbiB2b2lkIG5hbWUoc3RydWN0IHB0X3Jl Z3MgKnJlZ3MpCQlcCj4gIHsJCQkJCQkJCQkJXAo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tl cm5lbC92bWNvcmVfaW5mby5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvdm1jb3JlX2luZm8uYwo+IGlu ZGV4IGQ1ZTQ0OGFhOTBlNy4uNmQ3YTIyNTIyZDYzIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3Yv a2VybmVsL3ZtY29yZV9pbmZvLmMKPiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC92bWNvcmVfaW5m by5jCj4gQEAgLTE5LDEzICsxOSw2IEBAIHZvaWQgYXJjaF9jcmFzaF9zYXZlX3ZtY29yZWluZm8o dm9pZCkKPiAgI2VuZGlmCj4gICNlbmRpZgo+ICAJdm1jb3JlaW5mb19hcHBlbmRfc3RyKCJOVU1C RVIoS0VSTkVMX0xJTktfQUREUik9MHglbHhcbiIsIEtFUk5FTF9MSU5LX0FERFIpOwo+IC0jaWZk ZWYgQ09ORklHX1hJUF9LRVJORUwKPiAtCS8qIFRPRE86IENvbW11bmljYXRlIHdpdGggY3Jhc2gt dXRpbGl0eSBkZXZlbG9wZXJzIG9uIHRoZSBpbmZvcm1hdGlvbiB0bwo+IC0JICogZXhwb3J0LiBU aGUgWElQIGNhc2UgaXMgbW9yZSBjb21wbGljYXRlZCwgYmVjYXVzZSB0aGUgdmlydHVhbC1waHlz aWNhbAo+IC0JICogYWRkcmVzcyBvZmZzZXQgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZSBhZGRyZXNz IGlzIGluIFJPTSBvciBpbiBSQU0uCj4gLQkgKi8KPiAtI2Vsc2UKPiAgCXZtY29yZWluZm9fYXBw ZW5kX3N0cigiTlVNQkVSKHZhX2tlcm5lbF9wYV9vZmZzZXQpPTB4JWx4XG4iLAo+ICAJCQkJCQlr ZXJuZWxfbWFwLnZhX2tlcm5lbF9wYV9vZmZzZXQpOwo+IC0jZW5kaWYKPiAgfQo+IGRpZmYgLS1n aXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9yaXNjdi9rZXJuZWwv dm1saW51eC5sZHMuUwo+IGluZGV4IDYxYmQ1YmE2NjgwYS4uM2I1ZmZjZjMyMTZkIDEwMDY0NAo+ IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRzLlMKPiArKysgYi9hcmNoL3Jpc2N2 L2tlcm5lbC92bWxpbnV4Lmxkcy5TCj4gQEAgLTcsMTAgKzcsNiBAQAo+ICAjZGVmaW5lIFJPX0VY Q0VQVElPTl9UQUJMRV9BTElHTgk0Cj4gICNkZWZpbmUgUlVOVElNRV9ESVNDQVJEX0VYSVQKPiAg Cj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0jaW5jbHVkZSAidm1saW51eC14aXAubGRz LlMiCj4gLSNlbHNlCj4gLQo+ICAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KPiAgI2RlZmluZSBM T0FEX09GRlNFVCBLRVJORUxfTElOS19BRERSCj4gIAo+IEBAIC0xNzUsNCArMTcxLDMgQEAgU0VD VElPTlMKPiAgCj4gIAlESVNDQVJEUwo+ICB9Cj4gLSNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5F TCAqLwo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0v aW5pdC5jCj4gaW5kZXggMjVhOGY2OTNhNzY1Li5jN2VjNmMwMjM1ZTEgMTAwNjQ0Cj4gLS0tIGEv YXJjaC9yaXNjdi9tbS9pbml0LmMKPiArKysgYi9hcmNoL3Jpc2N2L21tL2luaXQuYwo+IEBAIC00 MSwyMCArNDEsMTcgQEAgdTY0IG5ld192bWFsbG9jW05SX0NQVVMgLyBzaXplb2YodTY0KSArIDFd Owo+ICAKPiAgc3RydWN0IGtlcm5lbF9tYXBwaW5nIGtlcm5lbF9tYXAgX19yb19hZnRlcl9pbml0 Owo+ICBFWFBPUlRfU1lNQk9MKGtlcm5lbF9tYXApOwo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJO RUwKPiAtI2RlZmluZSBrZXJuZWxfbWFwCSgqKHN0cnVjdCBrZXJuZWxfbWFwcGluZyAqKVhJUF9G SVhVUCgma2VybmVsX21hcCkpCj4gLSNlbmRpZgo+ICAKPiAgI2lmZGVmIENPTkZJR182NEJJVAo+ IC11NjQgc2F0cF9tb2RlIF9fcm9fYWZ0ZXJfaW5pdCA9ICFJU19FTkFCTEVEKENPTkZJR19YSVBf S0VSTkVMKSA/IFNBVFBfTU9ERV81NyA6IFNBVFBfTU9ERV8zOTsKPiArdTY0IHNhdHBfbW9kZSBf X3JvX2FmdGVyX2luaXQgPSBTQVRQX01PREVfNTc7Cj4gICNlbHNlCj4gIHU2NCBzYXRwX21vZGUg X19yb19hZnRlcl9pbml0ID0gU0FUUF9NT0RFXzMyOwo+ICAjZW5kaWYKPiAgRVhQT1JUX1NZTUJP TChzYXRwX21vZGUpOwo+ICAKPiAgI2lmZGVmIENPTkZJR182NEJJVAo+IC1ib29sIHBndGFibGVf bDRfZW5hYmxlZCBfX3JvX2FmdGVyX2luaXQgPSAhSVNfRU5BQkxFRChDT05GSUdfWElQX0tFUk5F TCk7Cj4gLWJvb2wgcGd0YWJsZV9sNV9lbmFibGVkIF9fcm9fYWZ0ZXJfaW5pdCA9ICFJU19FTkFC TEVEKENPTkZJR19YSVBfS0VSTkVMKTsKPiArYm9vbCBwZ3RhYmxlX2w0X2VuYWJsZWQgX19yb19h ZnRlcl9pbml0ID0gdHJ1ZTsKPiArYm9vbCBwZ3RhYmxlX2w1X2VuYWJsZWQgX19yb19hZnRlcl9p bml0ID0gdHJ1ZTsKPiAgRVhQT1JUX1NZTUJPTChwZ3RhYmxlX2w0X2VuYWJsZWQpOwo+ICBFWFBP UlRfU1lNQk9MKHBndGFibGVfbDVfZW5hYmxlZCk7Cj4gICNlbmRpZgo+IEBAIC0xOTcsOSArMTk0 LDYgQEAgdm9pZCBfX2luaXQgYXJjaF9tbV9wcmVpbml0KHZvaWQpCj4gIAo+ICAvKiBMaW1pdCB0 aGUgbWVtb3J5IHNpemUgdmlhIG1lbS4gKi8KPiAgc3RhdGljIHBoeXNfYWRkcl90IG1lbW9yeV9s aW1pdDsKPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLSNkZWZpbmUgbWVtb3J5X2xpbWl0 CSgqKHBoeXNfYWRkcl90ICopWElQX0ZJWFVQKCZtZW1vcnlfbGltaXQpKQo+IC0jZW5kaWYgLyog Q09ORklHX1hJUF9LRVJORUwgKi8KPiAgCj4gIHN0YXRpYyBpbnQgX19pbml0IGVhcmx5X21lbShj aGFyICpwKQo+ICB7Cj4gQEAgLTIyMywxMCArMjE3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHNl dHVwX2Jvb3RtZW0odm9pZCkKPiAgCXBoeXNfYWRkcl90IG1heF9tYXBwZWRfYWRkcjsKPiAgCXBo eXNfYWRkcl90IHBoeXNfcmFtX2VuZCwgdm1saW51eF9zdGFydDsKPiAgCj4gLQlpZiAoSVNfRU5B QkxFRChDT05GSUdfWElQX0tFUk5FTCkpCj4gLQkJdm1saW51eF9zdGFydCA9IF9fcGFfc3ltYm9s KCZfc2RhdGEpOwo+IC0JZWxzZQo+IC0JCXZtbGludXhfc3RhcnQgPSBfX3BhX3N5bWJvbCgmX3N0 YXJ0KTsKPiArCXZtbGludXhfc3RhcnQgPSBfX3BhX3N5bWJvbCgmX3N0YXJ0KTsKPiAgCj4gIAlt ZW1ibG9ja19lbmZvcmNlX21lbW9yeV9saW1pdChtZW1vcnlfbGltaXQpOwo+ICAKPiBAQCAtMjQ2 LDEyICsyMzcsMTAgQEAgc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2Jvb3RtZW0odm9pZCkKPiAg CSAqIE1ha2Ugc3VyZSB3ZSBhbGlnbiB0aGUgc3RhcnQgb2YgdGhlIG1lbW9yeSBvbiBhIFBNRCBi b3VuZGFyeSBzbyB0aGF0Cj4gIAkgKiBhdCB3b3JzdCwgd2UgbWFwIHRoZSBsaW5lYXIgbWFwcGlu ZyB3aXRoIFBNRCBtYXBwaW5ncy4KPiAgCSAqLwo+IC0JaWYgKCFJU19FTkFCTEVEKENPTkZJR19Y SVBfS0VSTkVMKSkgewo+IC0JCXBoeXNfcmFtX2Jhc2UgPSBtZW1ibG9ja19zdGFydF9vZl9EUkFN KCkgJiBQTURfTUFTSzsKPiArCXBoeXNfcmFtX2Jhc2UgPSBtZW1ibG9ja19zdGFydF9vZl9EUkFN KCkgJiBQTURfTUFTSzsKPiAgI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUAo+IC0JCXZt ZW1tYXBfc3RhcnRfcGZuID0gcm91bmRfZG93bihwaHlzX3JhbV9iYXNlLCBWTUVNTUFQX0FERFJf QUxJR04pID4+IFBBR0VfU0hJRlQ7Cj4gKwl2bWVtbWFwX3N0YXJ0X3BmbiA9IHJvdW5kX2Rvd24o cGh5c19yYW1fYmFzZSwgVk1FTU1BUF9BRERSX0FMSUdOKSA+PiBQQUdFX1NISUZUOwo+ICAjZW5k aWYKPiAtCX0KPiAgCj4gIAkvKgo+ICAJICogSW4gNjQtYml0LCBhbnkgdXNlIG9mIF9fdmEvX19w YSBiZWZvcmUgdGhpcyBwb2ludCBpcyB3cm9uZyBhcyB3ZQo+IEBAIC0zNjYsMTMgKzM1NSw2IEBA IHN0YXRpYyBwdGVfdCBmaXhtYXBfcHRlW1BUUlNfUEVSX1BURV0gX19wYWdlX2FsaWduZWRfYnNz Owo+ICAKPiAgcGdkX3QgZWFybHlfcGdfZGlyW1BUUlNfUEVSX1BHRF0gX19pbml0ZGF0YSBfX2Fs aWduZWQoUEFHRV9TSVpFKTsKPiAgCj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0jZGVm aW5lIHB0X29wcwkJCSgqKHN0cnVjdCBwdF9hbGxvY19vcHMgKilYSVBfRklYVVAoJnB0X29wcykp Cj4gLSNkZWZpbmUgdHJhbXBvbGluZV9wZ19kaXIgICAgICAoKHBnZF90ICopWElQX0ZJWFVQKHRy YW1wb2xpbmVfcGdfZGlyKSkKPiAtI2RlZmluZSBmaXhtYXBfcHRlICAgICAgICAgICAgICgocHRl X3QgKilYSVBfRklYVVAoZml4bWFwX3B0ZSkpCj4gLSNkZWZpbmUgZWFybHlfcGdfZGlyICAgICAg ICAgICAoKHBnZF90ICopWElQX0ZJWFVQKGVhcmx5X3BnX2RpcikpCj4gLSNlbmRpZiAvKiBDT05G SUdfWElQX0tFUk5FTCAqLwo+IC0KPiAgc3RhdGljIGNvbnN0IHBncHJvdF90IHByb3RlY3Rpb25f bWFwWzE2XSA9IHsKPiAgCVtWTV9OT05FXQkJCQkJPSBQQUdFX05PTkUsCj4gIAlbVk1fUkVBRF0J CQkJCT0gUEFHRV9SRUFELAo+IEBAIC00NjksMzIgKzQ1MSwxNCBAQCBzdGF0aWMgcG1kX3QgdHJh bXBvbGluZV9wbWRbUFRSU19QRVJfUE1EXSBfX3BhZ2VfYWxpZ25lZF9ic3M7Cj4gIHN0YXRpYyBw bWRfdCBmaXhtYXBfcG1kW1BUUlNfUEVSX1BNRF0gX19wYWdlX2FsaWduZWRfYnNzOwo+ICBzdGF0 aWMgcG1kX3QgZWFybHlfcG1kW1BUUlNfUEVSX1BNRF0gX19pbml0ZGF0YSBfX2FsaWduZWQoUEFH RV9TSVpFKTsKPiAgCj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0jZGVmaW5lIHRyYW1w b2xpbmVfcG1kICgocG1kX3QgKilYSVBfRklYVVAodHJhbXBvbGluZV9wbWQpKQo+IC0jZGVmaW5l IGZpeG1hcF9wbWQgICAgICgocG1kX3QgKilYSVBfRklYVVAoZml4bWFwX3BtZCkpCj4gLSNkZWZp bmUgZWFybHlfcG1kICAgICAgKChwbWRfdCAqKVhJUF9GSVhVUChlYXJseV9wbWQpKQo+IC0jZW5k aWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiAtCj4gIHN0YXRpYyBwNGRfdCB0cmFtcG9saW5l X3A0ZFtQVFJTX1BFUl9QNERdIF9fcGFnZV9hbGlnbmVkX2JzczsKPiAgc3RhdGljIHA0ZF90IGZp eG1hcF9wNGRbUFRSU19QRVJfUDREXSBfX3BhZ2VfYWxpZ25lZF9ic3M7Cj4gIHN0YXRpYyBwNGRf dCBlYXJseV9wNGRbUFRSU19QRVJfUDREXSBfX2luaXRkYXRhIF9fYWxpZ25lZChQQUdFX1NJWkUp Owo+ICAKPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLSNkZWZpbmUgdHJhbXBvbGluZV9w NGQgKChwNGRfdCAqKVhJUF9GSVhVUCh0cmFtcG9saW5lX3A0ZCkpCj4gLSNkZWZpbmUgZml4bWFw X3A0ZCAgICAgKChwNGRfdCAqKVhJUF9GSVhVUChmaXhtYXBfcDRkKSkKPiAtI2RlZmluZSBlYXJs eV9wNGQgICAgICAoKHA0ZF90ICopWElQX0ZJWFVQKGVhcmx5X3A0ZCkpCj4gLSNlbmRpZiAvKiBD T05GSUdfWElQX0tFUk5FTCAqLwo+IC0KPiAgc3RhdGljIHB1ZF90IHRyYW1wb2xpbmVfcHVkW1BU UlNfUEVSX1BVRF0gX19wYWdlX2FsaWduZWRfYnNzOwo+ICBzdGF0aWMgcHVkX3QgZml4bWFwX3B1 ZFtQVFJTX1BFUl9QVURdIF9fcGFnZV9hbGlnbmVkX2JzczsKPiAgc3RhdGljIHB1ZF90IGVhcmx5 X3B1ZFtQVFJTX1BFUl9QVURdIF9faW5pdGRhdGEgX19hbGlnbmVkKFBBR0VfU0laRSk7Cj4gIAo+ IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiAtI2RlZmluZSB0cmFtcG9saW5lX3B1ZCAoKHB1 ZF90ICopWElQX0ZJWFVQKHRyYW1wb2xpbmVfcHVkKSkKPiAtI2RlZmluZSBmaXhtYXBfcHVkICAg ICAoKHB1ZF90ICopWElQX0ZJWFVQKGZpeG1hcF9wdWQpKQo+IC0jZGVmaW5lIGVhcmx5X3B1ZCAg ICAgICgocHVkX3QgKilYSVBfRklYVVAoZWFybHlfcHVkKSkKPiAtI2VuZGlmIC8qIENPTkZJR19Y SVBfS0VSTkVMICovCj4gLQo+ICBzdGF0aWMgcG1kX3QgKl9faW5pdCBnZXRfcG1kX3ZpcnRfZWFy bHkocGh5c19hZGRyX3QgcGEpCj4gIHsKPiAgCS8qIEJlZm9yZSBNTVUgaXMgZW5hYmxlZCAqLwo+ IEBAIC03NjUsMjEgKzcyOSw2IEBAIHN0YXRpYyB1aW50cHRyX3QgX19tZW1pbml0IGJlc3RfbWFw X3NpemUocGh5c19hZGRyX3QgcGEsIHVpbnRwdHJfdCB2YSwgcGh5c19hZGRyCj4gIAlyZXR1cm4g UEFHRV9TSVpFOwo+ICB9Cj4gIAo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiAtI2RlZmlu ZSBwaHlzX3JhbV9iYXNlICAoKihwaHlzX2FkZHJfdCAqKVhJUF9GSVhVUCgmcGh5c19yYW1fYmFz ZSkpCj4gLWV4dGVybiBjaGFyIF94aXByb21bXSwgX2V4aXByb21bXSwgX19kYXRhX2xvYzsKPiAt Cj4gLS8qIGNhbGxlZCBmcm9tIGhlYWQuUyB3aXRoIE1NVSBvZmYgKi8KPiAtYXNtbGlua2FnZSB2 b2lkIF9faW5pdCBfX2NvcHlfZGF0YSh2b2lkKQo+IC17Cj4gLQl2b2lkICpmcm9tID0gKHZvaWQg KikoJl9fZGF0YV9sb2MpOwo+IC0Jdm9pZCAqdG8gPSAodm9pZCAqKUNPTkZJR19QSFlTX1JBTV9C QVNFOwo+IC0Jc2l6ZV90IHN6ID0gKHNpemVfdCkoKHVpbnRwdHJfdCkoJl9lbmQpIC0gKHVpbnRw dHJfdCkoJl9zZGF0YSkpOwo+IC0KPiAtCW1lbWNweSh0bywgZnJvbSwgc3opOwo+IC19Cj4gLSNl bmRpZgo+IC0KPiAgI2lmZGVmIENPTkZJR19TVFJJQ1RfS0VSTkVMX1JXWAo+ICBzdGF0aWMgX19t ZW1pbml0IHBncHJvdF90IHBncHJvdF9mcm9tX3ZhKHVpbnRwdHJfdCB2YSkKPiAgewo+IEBAIC04 MTUsNyArNzY0LDcgQEAgc3RhdGljIF9fbWVtaW5pdCBwZ3Byb3RfdCBwZ3Byb3RfZnJvbV92YSh1 aW50cHRyX3QgdmEpCj4gIH0KPiAgI2VuZGlmIC8qIENPTkZJR19TVFJJQ1RfS0VSTkVMX1JXWCAq Lwo+ICAKPiAtI2lmIGRlZmluZWQoQ09ORklHXzY0QklUKSAmJiAhZGVmaW5lZChDT05GSUdfWElQ X0tFUk5FTCkKPiArI2lmIGRlZmluZWQoQ09ORklHXzY0QklUKQo+ICB1NjQgX19waV9zZXRfc2F0 cF9tb2RlX2Zyb21fY21kbGluZSh1aW50cHRyX3QgZHRiX3BhKTsKPiAgdTY0IF9fcGlfc2V0X3Nh dHBfbW9kZV9mcm9tX2ZkdCh1aW50cHRyX3QgZHRiX3BhKTsKPiAgCj4gQEAgLTk0MCwyOCArODg5 LDYgQEAgc3RhdGljIF9faW5pdCB2b2lkIHNldF9zYXRwX21vZGUodWludHB0cl90IGR0Yl9wYSkK PiAgI2Vycm9yICJzZXR1cF92bSgpIGlzIGNhbGxlZCBmcm9tIGhlYWQuUyBiZWZvcmUgcmVsb2Nh dGUgc28gaXQgc2hvdWxkIG5vdCB1c2UgYWJzb2x1dGUgYWRkcmVzc2luZy4iCj4gICNlbmRpZgo+ ICAKPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLXN0YXRpYyB2b2lkIF9faW5pdCBjcmVh dGVfa2VybmVsX3BhZ2VfdGFibGUocGdkX3QgKnBnZGlyLAo+IC0JCQkJCSAgICBfX2Fsd2F5c191 bnVzZWQgYm9vbCBlYXJseSkKPiAtewo+IC0JdWludHB0cl90IHZhLCBzdGFydF92YSwgZW5kX3Zh Owo+IC0KPiAtCS8qIE1hcCB0aGUgZmxhc2ggcmVzaWRlbnQgcGFydCAqLwo+IC0JZW5kX3ZhID0g a2VybmVsX21hcC52aXJ0X2FkZHIgKyBrZXJuZWxfbWFwLnhpcHJvbV9zejsKPiAtCWZvciAodmEg PSBrZXJuZWxfbWFwLnZpcnRfYWRkcjsgdmEgPCBlbmRfdmE7IHZhICs9IFBNRF9TSVpFKQo+IC0J CWNyZWF0ZV9wZ2RfbWFwcGluZyhwZ2RpciwgdmEsCj4gLQkJCQkgICBrZXJuZWxfbWFwLnhpcHJv bSArICh2YSAtIGtlcm5lbF9tYXAudmlydF9hZGRyKSwKPiAtCQkJCSAgIFBNRF9TSVpFLCBQQUdF X0tFUk5FTF9FWEVDKTsKPiAtCj4gLQkvKiBNYXAgdGhlIGRhdGEgaW4gUkFNICovCj4gLQlzdGFy dF92YSA9IGtlcm5lbF9tYXAudmlydF9hZGRyICsgKHVpbnRwdHJfdCkmX3NkYXRhIC0gKHVpbnRw dHJfdCkmX3N0YXJ0Owo+IC0JZW5kX3ZhID0ga2VybmVsX21hcC52aXJ0X2FkZHIgKyBrZXJuZWxf bWFwLnNpemU7Cj4gLQlmb3IgKHZhID0gc3RhcnRfdmE7IHZhIDwgZW5kX3ZhOyB2YSArPSBQTURf U0laRSkKPiAtCQljcmVhdGVfcGdkX21hcHBpbmcocGdkaXIsIHZhLAo+IC0JCQkJICAga2VybmVs X21hcC5waHlzX2FkZHIgKyAodmEgLSBzdGFydF92YSksCj4gLQkJCQkgICBQTURfU0laRSwgUEFH RV9LRVJORUwpOwo+IC19Cj4gLSNlbHNlCj4gIHN0YXRpYyB2b2lkIF9faW5pdCBjcmVhdGVfa2Vy bmVsX3BhZ2VfdGFibGUocGdkX3QgKnBnZGlyLCBib29sIGVhcmx5KQo+ICB7Cj4gIAl1aW50cHRy X3QgdmEsIGVuZF92YTsKPiBAQCAtOTc0LDcgKzkwMSw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBj cmVhdGVfa2VybmVsX3BhZ2VfdGFibGUocGdkX3QgKnBnZGlyLCBib29sIGVhcmx5KQo+ICAJCQkJ ICAgZWFybHkgPwo+ICAJCQkJCVBBR0VfS0VSTkVMX0VYRUMgOiBwZ3Byb3RfZnJvbV92YSh2YSkp Owo+ICB9Cj4gLSNlbmRpZgo+ICAKPiAgLyoKPiAgICogU2V0dXAgYSA0TUIgbWFwcGluZyB0aGF0 IGVuY29tcGFzc2VzIHRoZSBkZXZpY2UgdHJlZTogZm9yIDY0LWJpdCBrZXJuZWwsCj4gQEAgLTEx MTYsMjcgKzEwNDIsMTEgQEAgYXNtbGlua2FnZSB2b2lkIF9faW5pdCBzZXR1cF92bSh1aW50cHRy X3QgZHRiX3BhKQo+ICAKPiAgCWtlcm5lbF9tYXAudmlydF9hZGRyID0gS0VSTkVMX0xJTktfQURE UiArIGtlcm5lbF9tYXAudmlydF9vZmZzZXQ7Cj4gIAo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJO RUwKPiAtCWtlcm5lbF9tYXAueGlwcm9tID0gKHVpbnRwdHJfdClDT05GSUdfWElQX1BIWVNfQURE UjsKPiAtCWtlcm5lbF9tYXAueGlwcm9tX3N6ID0gKHVpbnRwdHJfdCkoJl9leGlwcm9tKSAtICh1 aW50cHRyX3QpKCZfeGlwcm9tKTsKPiAtCj4gLQlwaHlzX3JhbV9iYXNlID0gQ09ORklHX1BIWVNf UkFNX0JBU0U7Cj4gLSNpZmRlZiBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVAKPiAtCXZtZW1tYXBf c3RhcnRfcGZuID0gcm91bmRfZG93bihwaHlzX3JhbV9iYXNlLCBWTUVNTUFQX0FERFJfQUxJR04p ID4+IFBBR0VfU0hJRlQ7Cj4gLSNlbmRpZgo+IC0Ja2VybmVsX21hcC5waHlzX2FkZHIgPSAodWlu dHB0cl90KUNPTkZJR19QSFlTX1JBTV9CQVNFOwo+IC0Ja2VybmVsX21hcC5zaXplID0gKHVpbnRw dHJfdCkoJl9lbmQpIC0gKHVpbnRwdHJfdCkoJl9zdGFydCk7Cj4gLQo+IC0Ja2VybmVsX21hcC52 YV9rZXJuZWxfeGlwX3RleHRfcGFfb2Zmc2V0ID0ga2VybmVsX21hcC52aXJ0X2FkZHIgLSBrZXJu ZWxfbWFwLnhpcHJvbTsKPiAtCWtlcm5lbF9tYXAudmFfa2VybmVsX3hpcF9kYXRhX3BhX29mZnNl dCA9IGtlcm5lbF9tYXAudmlydF9hZGRyIC0ga2VybmVsX21hcC5waHlzX2FkZHIKPiAtCQkJCQkJ KyAodWludHB0cl90KSZfc2RhdGEgLSAodWludHB0cl90KSZfc3RhcnQ7Cj4gLSNlbHNlCj4gIAlr ZXJuZWxfbWFwLnBoeXNfYWRkciA9ICh1aW50cHRyX3QpKCZfc3RhcnQpOwo+ICAJa2VybmVsX21h cC5zaXplID0gKHVpbnRwdHJfdCkoJl9lbmQpIC0ga2VybmVsX21hcC5waHlzX2FkZHI7Cj4gIAlr ZXJuZWxfbWFwLnZhX2tlcm5lbF9wYV9vZmZzZXQgPSBrZXJuZWxfbWFwLnZpcnRfYWRkciAtIGtl cm5lbF9tYXAucGh5c19hZGRyOwo+IC0jZW5kaWYKPiAgCj4gLSNpZiBkZWZpbmVkKENPTkZJR182 NEJJVCkgJiYgIWRlZmluZWQoQ09ORklHX1hJUF9LRVJORUwpCj4gKyNpZiBkZWZpbmVkKENPTkZJ R182NEJJVCkKPiAgCXNldF9zYXRwX21vZGUoZHRiX3BhKTsKPiAgCXNldF9tbWFwX3JuZF9iaXRz X21heCgpOwo+ICAjZW5kaWYKPiBAQCAtMTIwOSwxMyArMTExOSw4IEBAIGFzbWxpbmthZ2Ugdm9p ZCBfX2luaXQgc2V0dXBfdm0odWludHB0cl90IGR0Yl9wYSkKPiAgCWlmIChwZ3RhYmxlX2w0X2Vu YWJsZWQpCj4gIAkJY3JlYXRlX3B1ZF9tYXBwaW5nKHRyYW1wb2xpbmVfcHVkLCBrZXJuZWxfbWFw LnZpcnRfYWRkciwKPiAgCQkJCSAgICh1aW50cHRyX3QpdHJhbXBvbGluZV9wbWQsIFBVRF9TSVpF LCBQQUdFX1RBQkxFKTsKPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLQljcmVhdGVfcG1k X21hcHBpbmcodHJhbXBvbGluZV9wbWQsIGtlcm5lbF9tYXAudmlydF9hZGRyLAo+IC0JCQkgICBr ZXJuZWxfbWFwLnhpcHJvbSwgUE1EX1NJWkUsIFBBR0VfS0VSTkVMX0VYRUMpOwo+IC0jZWxzZQo+ ICAJY3JlYXRlX3BtZF9tYXBwaW5nKHRyYW1wb2xpbmVfcG1kLCBrZXJuZWxfbWFwLnZpcnRfYWRk ciwKPiAgCQkJICAga2VybmVsX21hcC5waHlzX2FkZHIsIFBNRF9TSVpFLCBQQUdFX0tFUk5FTF9F WEVDKTsKPiAtI2VuZGlmCj4gICNlbHNlCj4gIAkvKiBTZXR1cCB0cmFtcG9saW5lIFBHRCAqLwo+ ICAJY3JlYXRlX3BnZF9tYXBwaW5nKHRyYW1wb2xpbmVfcGdfZGlyLCBrZXJuZWxfbWFwLnZpcnRf YWRkciwKPiAtLSAKPiAyLjQ3LjMKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LXJpc2N2Cg==