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 9E4A3C79F9E for ; Tue, 8 Sep 2026 15:29:51 +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=GWgmoODRKtabQpYW4NA4en8LQrvvc7h0p+ydjQxU1yM=; b=Ya+x4oDxT3WGO/ YyQ8P4rXxIUVxAdBV9g9L15xSoHAtTFK+KYHwZxsaH47x8+lcrO6QC+uKZtJZwZYKTcgqFwycMBeh 1vAqdBd8Xmtsinye3c6hUrp5RqaXE8y4elY0lDLhSOrFxsxkwFUUoPLImNhNaXtlkGV0nRA0Na4fe KWEC/Gj3UM5scbaUGF9hjVAq1zMC53+6m0cyzqxfj723B1lgkxxcg+ZwmbRwt8HbefI9JPn+9AzOF us/y0ORR3ZT2u5/zysOsZtvlrksSpzWe9zJQS98pSp2umxgKIbDFq1HiCqbeJrXGr1uCJXdD9JRrz ay219uvWns1Dl6EFcN+g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x3xla-00000009UgC-47np; Tue, 08 Sep 2026 15:29:47 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x3xlU-00000009UeW-1C6B; Tue, 08 Sep 2026 15:29:40 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id EE84C43F61; Tue, 8 Sep 2026 15:29:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B76F01F00AC4; Tue, 8 Sep 2026 15:29:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788881379; bh=++o7uv15rBlvHRr+PxH9dFf+8dDgpY2HsOEbWk0PP6U=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=gGHuEScPnBDQs9oJVPKiK9DUaO5HUElsb7JUD82AWHsL2D1Ww4kijmXdcjc5ZoY64 o45oozwttxaV4UtvcNWBl5qfn6QeeRWO28EfFuF0gnztyzVEsLnWnLJIv3xe/yNI0c u0BCaXUWFICHkGkexo21KjT3bMHKozvCCXkm9chGOlKHnA+MApQjubQgxalbvmb44P 3tCWkUgkR7mwcL8XDLPU+VtheQOFZq94otEGdxHrrTUTW8cGZxFrqGWbfa/VzzKWed N4TLi8Y2RWZ3TAAFEAbZN6XyT1rbdVJaAxT/uPxssLOw2YtvAzIXSb2N1nZ7CRIXf9 B+oY4QTnh248g== From: Arnd Bergmann To: Krzysztof Kozlowski , Alexandre Belloni , Linus Walleij , Russell King Cc: Drew Fustini , Arnd Bergmann , Rob Herring , Conor Dooley , Liviu Dudau , Sudeep Holla , Lorenzo Pieralisi , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Vladimir Zapolskiy , Stefan Agner , Maxime Coquelin , Alexandre Torgue , Aaro Koskinen , Andreas Kemnade , Kevin Hilman , Roger Quadros , Tony Lindgren , Nicolas Ferre , Claudiu Beznea , Andrew Lunn , Sebastian Hesselbarth , Gregory Clement , Robert Jarzmik , Kristoffer Ericson , Ethan Nelson-Moore , Geert Uytterhoeven , Alexander Sverdlin , Shawn Guo , Karl Mehltretter , "David Hildenbrand (Arm)" , Nicolas Pitre , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-stm32@st-md-mailman.stormreply.com, linux-omap@vger.kernel.org, Paul Walmsley , Herbert Xu , "David S. Miller" , Mauro Carvalho Chehab , Kyungmin Park , Helge Deller , Tero Kristo , Stephen Boyd , Thomas Zimmermann , linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-clk@vger.kernel.org Subject: [PATCH 06/13] ARM: omap2: remove omap24xx support Date: Tue, 8 Sep 2026 17:27:56 +0200 Message-ID: <20260908152808.3928630-7-arnd@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260908152808.3928630-1-arnd@kernel.org> References: <20260908152808.3928630-1-arnd@kernel.org> MIME-Version: 1.0 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org RnJvbTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KClRoZSBvbWFwMjR4eCBTb0MgcGxh dGZvcm0gd2FzIHVzZWQgaW4gdGhlIE5va2lhIE44MDAgYW5kIE44MTAgdGFibGV0cwpyZWxlYXNl ZCBvbiAyMDA3IGFuZCB3YXMgYW1vbmcgdGhlIGZpcnN0IEFSTXY2IENQVXMgaW4gcHJvZHVjdHMg dGhhdAptYWRlIGl0IGludG8gcHJvZHVjdHMuCgpVbmZvcnR1bmF0ZWx5IHRoZSBlYXJseSBBUk0x MTM2cjAgQ1BVIGNvcmVzIGhhZCBhIG51bWJlciBvZiBxdWlya3MgdGhhdApjYXVzZWQgYSBkaXNw cm9wb3J0aW9uYXRlIGFtb3VudCBvZiB3b3JrIHRvIGtlZXAgdGhlbSBjb21wYXRpYmxlIHdpdGgK bGF0ZXIgQVJNdjZLL3Y3L3Y4IGltcGxlbWVudGF0aW9ucy4KCkRyb3AgdGhlIHN1cHBvcnQgZm9y IHRoaXMgU29DIGluIG9yZGVyIHRvIGFsbG93IHJlbW92aW5nIEFSTTExMzZyMC4KCkNjOiBBYXJv IEtvc2tpbmVuIDxhYXJvLmtvc2tpbmVuQGlraS5maT4KQ2M6IEFuZHJlYXMgS2VtbmFkZSA8YW5k cmVhc0BrZW1uYWRlLmluZm8+CkNjOiBLZXZpbiBIaWxtYW4gPGtoaWxtYW5AYmF5bGlicmUuY29t PgpDYzogUm9nZXIgUXVhZHJvcyA8cm9nZXJxQGtlcm5lbC5vcmc+CkNjOiBUb255IExpbmRncmVu IDx0b255QGF0b21pZGUuY29tPgpDYzogUGF1bCBXYWxtc2xleSA8cGF1bEBwd3Nhbi5jb20+CkNj OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkNjOiAiRGF2aWQgUy4g TWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ2M6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8 bWNoZWhhYkBrZXJuZWwub3JnPgpDYzogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1z dW5nLmNvbT4KQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdteC5kZT4KQ2M6IFRlcm8gS3Jpc3Rv IDxrcmlzdG9Aa2VybmVsLm9yZz4KQ2M6IFN0ZXBoZW4gQm95ZCA8c2JveWRAa2VybmVsLm9yZz4K Q2M6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgpDYzogbGludXgta2Vy bmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtb21hcEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGRl dmljZXRyZWVAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcK Q2M6IGxpbnV4LW10ZEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1mYmRldkB2Z2VyLmtl cm5lbC5vcmcKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IGxpbnV4LWNs a0B2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5k Yi5kZT4KLS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAyIC0KIGFyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvTWFrZWZpbGUgICAgICAgICAgICB8 ICAgIDYgLQogYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMi5kdHNpICAgICAgICAgIHwg IDMzOCAtLS0tLQogLi4uL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWNsb2Nrcy5kdHNp IHwgIDI2NyAtLS0tCiBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWg0LmR0cyAg ICAgfCAgIDYzIC0KIGFyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgwMC5kdHMg ICB8ICAgIDkgLQogLi4uL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgxMC13aW1heC5kdHMg IHwgICAgOSAtCiBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MTAuZHRzICAg fCAgIDc1IC0KIC4uLi9kdHMvdGkvb21hcC9vbWFwMjQyMC1uOHgwLWNvbW1vbi5kdHNpICAgICB8 ICAxMjMgLS0KIGFyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAuZHRzaSAgICAgICB8 ICAyNjIgLS0tLQogLi4uL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLWNsb2Nrcy5kdHNp IHwgIDM0MSAtLS0tLQogYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQzMC1zZHAuZHRz ICAgIHwgICA3MCAtCiBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLmR0c2kgICAg ICAgfCAgMzY2IC0tLS0tCiAuLi4vYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0eHgtY2xvY2tz LmR0c2kgfCAxMjQxIC0tLS0tLS0tLS0tLS0tLS0tCiBhcmNoL2FybS9jb25maWdzL29tYXAycGx1 c19kZWZjb25maWcgICAgICAgICAgfCAgICAyIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvS2NvbmZp ZyAgICAgICAgICAgICAgICAgICB8ICAgNjIgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZp bGUgICAgICAgICAgICAgICAgICB8ICAgNjMgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQt Z2VuZXJpYy5jICAgICAgICAgICB8ICAgMzQgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1u OHgwLmMgICAgICAgICAgICAgIHwgIDUxMiAtLS0tLS0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Ns a3QyeHh4X2RwbGwuYyAgICAgICAgICAgfCAgIDU2IC0KIGFyY2gvYXJtL21hY2gtb21hcDIvY2xr dDJ4eHhfZHBsbGNvcmUuYyAgICAgICB8ICAxOTQgLS0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Ns a3QyeHh4X3ZpcnRfcHJjbV9zZXQuYyAgfCAgMjU5IC0tLS0KIGFyY2gvYXJtL21hY2gtb21hcDIv Y2xvY2suYyAgICAgICAgICAgICAgICAgICB8ICAgMTIgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIv Y2xvY2syeHh4LmggICAgICAgICAgICAgICB8ICAgMTcgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9j bG9ja2RvbWFpbi5jICAgICAgICAgICAgIHwgICAgNCArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9j bG9ja2RvbWFpbi5oICAgICAgICAgICAgIHwgICAgNSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Ns b2NrZG9tYWluczI0MjBfZGF0YS5jICAgfCAgMTU0IC0tCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Ns b2NrZG9tYWluczI0MzBfZGF0YS5jICAgfCAgMTgxIC0tLQogLi4uL21hY2gtb21hcDIvY2xvY2tk b21haW5zMnh4eF8zeHh4X2RhdGEuYyAgIHwgICAyOSArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9j bS1yZWdiaXRzLTI0eHguaCAgICAgICAgIHwgICA1MSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Nt Mnh4eC5jICAgICAgICAgICAgICAgICAgfCAgMzAyIC0tLS0KIGFyY2gvYXJtL21hY2gtb21hcDIv Y20yeHh4LmggICAgICAgICAgICAgICAgICB8ICAgNjAgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9j bV9jb21tb24uYyAgICAgICAgICAgICAgIHwgICAxMiAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Nv bW1vbi1ib2FyZC1kZXZpY2VzLmggICAgfCAgIDExIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvY29t bW9uLmggICAgICAgICAgICAgICAgICB8ICAgMTIgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250 cm9sLmggICAgICAgICAgICAgICAgIHwgICA1NiAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2Rpc3Bs YXkuYyAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBhcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5j ICAgICAgICAgICAgICAgICAgICAgfCAgIDUzICstCiBhcmNoL2FybS9tYWNoLW9tYXAyL2ZiLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICstCiBhcmNoL2FybS9tYWNoLW9tYXAyL2dwbWMu aCAgICAgICAgICAgICAgICAgICAgfCAgIDEwIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvaTJjLmMg ICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvaWQuYyAg ICAgICAgICAgICAgICAgICAgICB8ICAgODAgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvaW8uYyAg ICAgICAgICAgICAgICAgICAgICB8ICAxNDAgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvaW9tYXAu aCAgICAgICAgICAgICAgICAgICB8ICAgNDYgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9sM18yeHh4 LmggICAgICAgICAgICAgICAgIHwgICAxNSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL2w0XzJ4eHgu aCAgICAgICAgICAgICAgICAgfCAgIDE5IC0KIGFyY2gvYXJtL21hY2gtb21hcDIvbW1jLmggICAg ICAgICAgICAgICAgICAgICB8ICAgMTggLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9tc2RpLmMgICAg ICAgICAgICAgICAgICAgIHwgICA3NSAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL29tYXAyLXJlc3Rh cnQuYyAgICAgICAgICAgfCAgIDYyIC0KIGFyY2gvYXJtL21hY2gtb21hcDIvb21hcDI0eHguaCAg ICAgICAgICAgICAgICB8ICAgNzMgLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kLmMg ICAgICAgICAgICAgIHwgICAxOCArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kLmgg ICAgICAgICAgICAgIHwgICAgMiAtCiBhcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMjQy MF9kYXRhLmMgICAgfCAgNDAyIC0tLS0tLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9k XzI0MzBfZGF0YS5jICAgIHwgIDYwNiAtLS0tLS0tLQogLi4uL29tYXBfaHdtb2RfMnh4eF9pbnRl cmNvbm5lY3RfZGF0YS5jICAgICAgIHwgIDI1NiAtLS0tCiAuLi4vbWFjaC1vbWFwMi9vbWFwX2h3 bW9kXzJ4eHhfaXBibG9ja19kYXRhLmMgfCAgNjY4IC0tLS0tLS0tLQogYXJjaC9hcm0vbWFjaC1v bWFwMi9vbWFwX2h3bW9kX2NvbW1vbl9kYXRhLmggIHwgICA2NiAtCiBhcmNoL2FybS9tYWNoLW9t YXAyL29wcDI0MjBfZGF0YS5jICAgICAgICAgICAgfCAgMTMxIC0tCiBhcmNoL2FybS9tYWNoLW9t YXAyL29wcDI0MzBfZGF0YS5jICAgICAgICAgICAgfCAgMTM2IC0tCiBhcmNoL2FybS9tYWNoLW9t YXAyL29wcDJ4eHguaCAgICAgICAgICAgICAgICAgfCAgNDMwIC0tLS0tLQogYXJjaC9hcm0vbWFj aC1vbWFwMi9wZGF0YS1xdWlya3MuYyAgICAgICAgICAgIHwgICAzNSArLQogYXJjaC9hcm0vbWFj aC1vbWFwMi9wbS5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSAtCiBhcmNoL2FybS9tYWNo LW9tYXAyL3Bvd2VyZG9tYWluLmggICAgICAgICAgICAgfCAgICAzIC0KIGFyY2gvYXJtL21hY2gt b21hcDIvcG93ZXJkb21haW5zMnh4eF9kYXRhLmMgICB8ICAxMzQgLS0KIGFyY2gvYXJtL21hY2gt b21hcDIvcHJjbS1jb21tb24uaCAgICAgICAgICAgICB8ICAxNDcgLS0KIGFyY2gvYXJtL21hY2gt b21hcDIvcHJtLXJlZ2JpdHMtMjR4eC5oICAgICAgICB8ICAgMzkgLQogYXJjaC9hcm0vbWFjaC1v bWFwMi9wcm0yeHh4LmMgICAgICAgICAgICAgICAgIHwgIDIyOSAtLS0KIGFyY2gvYXJtL21hY2gt b21hcDIvcHJtMnh4eC5oICAgICAgICAgICAgICAgICB8ICAxMjggLS0KIGFyY2gvYXJtL21hY2gt b21hcDIvcHJtMnh4eF8zeHh4LmMgICAgICAgICAgICB8ICAgIDEgLQogYXJjaC9hcm0vbWFjaC1v bWFwMi9wcm1fY29tbW9uLmMgICAgICAgICAgICAgIHwgICAxMSAtCiBhcmNoL2FybS9tYWNoLW9t YXAyL3NkcmMuaCAgICAgICAgICAgICAgICAgICAgfCAgIDIxIC0KIGFyY2gvYXJtL21hY2gtb21h cDIvc2RyYzJ4eHguYyAgICAgICAgICAgICAgICB8ICAxNjQgLS0tCiBhcmNoL2FybS9tYWNoLW9t YXAyL3NsZWVwMjR4eC5TICAgICAgICAgICAgICAgfCAgIDkxIC0tCiBhcmNoL2FybS9tYWNoLW9t YXAyL3NvYy5oICAgICAgICAgICAgICAgICAgICAgfCAgIDU5IC0KIGFyY2gvYXJtL21hY2gtb21h cDIvc3JhbS5jICAgICAgICAgICAgICAgICAgICB8ICAxNTkgKy0tCiBhcmNoL2FybS9tYWNoLW9t YXAyL3NyYW0uaCAgICAgICAgICAgICAgICAgICAgfCAgIDMyIC0KIGFyY2gvYXJtL21hY2gtb21h cDIvc3JhbTI0MnguUyAgICAgICAgICAgICAgICB8ICAzMTcgLS0tLS0KIGFyY2gvYXJtL21hY2gt b21hcDIvc3JhbTI0M3guUyAgICAgICAgICAgICAgICB8ICAzMTcgLS0tLS0KIGFyY2gvYXJtL21h Y2gtb21hcDIvdXNiLXR1c2I2MDEwLmMgICAgICAgICAgICB8ICAyMTcgLS0tCiBhcmNoL2FybS9t YWNoLW9tYXAyL3VzYi10dXNiNjAxMC5oICAgICAgICAgICAgfCAgIDEyIC0KIGFyY2gvYXJtL21h Y2gtb21hcDIvdm9sdGFnZWRvbWFpbnMyeHh4X2RhdGEuYyB8ICAgMjkgLQogZHJpdmVycy9jcnlw dG8vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS90aS9vbWFwL0tjb25maWcgICAgICAgIHwgICAgNCArLQogZHJpdmVycy9tdGQv bmFuZC9vbmVuYW5kL0tjb25maWcgICAgICAgICAgICAgIHwgICAgNCArLQogZHJpdmVycy92aWRl by9mYmRldi9vbWFwMi9vbWFwZmIvS2NvbmZpZyAgICAgIHwgICAgMiArLQogaW5jbHVkZS9saW51 eC9jbGsvdGkuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCAtCiA4NiBmaWxlcyBjaGFu Z2VkLCA2MCBpbnNlcnRpb25zKCspLCAxMDY5NiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyLmR0c2kKIGRlbGV0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWNsb2Nrcy5kdHNpCiBkZWxl dGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1oNC5kdHMK IGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44 MDAuZHRzCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFw MjQyMC1uODEwLXdpbWF4LmR0cwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jvb3QvZHRz L3RpL29tYXAvb21hcDI0MjAtbjgxMC5kdHMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9i b290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44eDAtY29tbW9uLmR0c2kKIGRlbGV0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLmR0c2kKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLWNsb2Nrcy5kdHNpCiBk ZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQzMC1zZHAu ZHRzCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQz MC5kdHNpCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFw MjR4eC1jbG9ja3MuZHRzaQogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIv Ym9hcmQtbjh4MC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9jbGt0 Mnh4eF9kcGxsLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3Qy eHh4X2RwbGxjb3JlLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL2Ns a3QyeHh4X3ZpcnRfcHJjbV9zZXQuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gt b21hcDIvY2xvY2syeHh4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAy L2Nsb2NrZG9tYWluczI0MjBfZGF0YS5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFj aC1vbWFwMi9jbG9ja2RvbWFpbnMyNDMwX2RhdGEuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gv YXJtL21hY2gtb21hcDIvY20tcmVnYml0cy0yNHh4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNo L2FybS9tYWNoLW9tYXAyL2NtMnh4eC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFj aC1vbWFwMi9jbTJ4eHguaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIv Y29tbW9uLWJvYXJkLWRldmljZXMuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gt b21hcDIvZ3BtYy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9sM18y eHh4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL2w0XzJ4eHguaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvbW1jLmgKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL21zZGkuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFy Y2gvYXJtL21hY2gtb21hcDIvb21hcDItcmVzdGFydC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJj aC9hcm0vbWFjaC1vbWFwMi9vbWFwMjR4eC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0v bWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0MjBfZGF0YS5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJj aC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0MzBfZGF0YS5jCiBkZWxldGUgbW9kZSAxMDA2 NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhfaW50ZXJjb25uZWN0X2RhdGEu YwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8yeHh4 X2lwYmxvY2tfZGF0YS5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9v cHAyNDIwX2RhdGEuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvb3Bw MjQzMF9kYXRhLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL29wcDJ4 eHguaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvcG93ZXJkb21haW5z Mnh4eF9kYXRhLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL3BybS1y ZWdiaXRzLTI0eHguaAogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL21hY2gtb21hcDIvcHJt Mnh4eC5jCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0yeHh4LmgK IGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMyeHh4LmMKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAyL3NsZWVwMjR4eC5TCiBkZWxldGUgbW9k ZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TCiBkZWxldGUgbW9kZSAxMDA2 NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQzeC5TCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJj aC9hcm0vbWFjaC1vbWFwMi91c2ItdHVzYjYwMTAuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gv YXJtL21hY2gtb21hcDIvdXNiLXR1c2I2MDEwLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2Fy bS9tYWNoLW9tYXAyL3ZvbHRhZ2Vkb21haW5zMnh4eF9kYXRhLmMKCmRpZmYgLS1naXQgYS9NQUlO VEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IDAyOGRiN2FkMTVhZC4uMGQxMGY3Nzg4MDBkIDEw MDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMTk4NzQsNyArMTk4 NzQsNiBAQCBNOglKYXJra28gTmlrdWxhIDxqYXJra28ubmlrdWxhQGJpdG1lci5jb20+CiBMOgls aW51eC1zb3VuZEB2Z2VyLmtlcm5lbC5vcmcKIEw6CWxpbnV4LW9tYXBAdmdlci5rZXJuZWwub3Jn CiBTOglNYWludGFpbmVkCi1GOglzb3VuZC9zb2MvdGkvbjgxMC5jCiBGOglzb3VuZC9zb2MvdGkv b21hcCoKIEY6CXNvdW5kL3NvYy90aS9yeDUxLmMKIEY6CXNvdW5kL3NvYy90aS9zZG1hLXBjbS4q CkBAIC0yMDAyNyw3ICsyMDAyNiw2IEBAIEY6CWRyaXZlcnMvZ3Bpby9ncGlvLXRwczY1MjE5LmMK IEY6CWRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtb21hcC5jCiBGOglkcml2ZXJzL2lycWNoaXAvaXJx LW9tYXAtaW50Yy5jCiBGOglkcml2ZXJzL21mZC8qb21hcCouYwotRjoJZHJpdmVycy9tZmQvbWVu ZWxhdXMuYwogRjoJZHJpdmVycy9tZmQvcGFsbWFzLmMKIEY6CWRyaXZlcnMvbWZkL3RwczY1MjE3 LmMKIEY6CWRyaXZlcnMvbWZkL3RwczY1MjE4LmMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3Qv ZHRzL3RpL29tYXAvTWFrZWZpbGUgYi9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL01ha2VmaWxl CmluZGV4IDQ5OGMzNmNjYjVlYS4uM2M1ZDM3OGRmNmI5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9i b290L2R0cy90aS9vbWFwL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAv TWFrZWZpbGUKQEAgLTEsMTAgKzEsNCBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMAotZHRiLSQoQ09ORklHX0FSQ0hfT01BUDIpICs9IFwKLQlvbWFwMjQyMC1oNC5kdGIgXAot CW9tYXAyNDIwLW44MDAuZHRiIFwKLQlvbWFwMjQyMC1uODEwLmR0YiBcCi0Jb21hcDI0MjAtbjgx MC13aW1heC5kdGIgXAotCW9tYXAyNDMwLXNkcC5kdGIKIGR0Yi0kKENPTkZJR19BUkNIX09NQVAz KSArPSBcCiAJYW0zNTE3LWNyYW5lYm9hcmQuZHRiIFwKIAlhbTM1MTctZXZtLmR0YiBcCmRpZmYg LS1naXQgYS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyLmR0c2kgYi9hcmNoL2FybS9i b290L2R0cy90aS9vbWFwL29tYXAyLmR0c2kKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGZkYzE3OTBhZGY0My4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29t YXAvb21hcDIuZHRzaQorKysgL2Rldi9udWxsCkBAIC0xLDMzOCArMCwwIEBACi0vLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogRGV2aWNlIFRyZWUgU291cmNl IGZvciBPTUFQMiBTb0MKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGV4YXMgSW5zdHJ1bWVu dHMgSW5jb3Jwb3JhdGVkIC0gaHR0cHM6Ly93d3cudGkuY29tLwotICovCi0KLSNpbmNsdWRlIDxk dC1iaW5kaW5ncy9idXMvdGktc3lzYy5oPgotI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2dwaW8vZ3Bp by5oPgotI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2lycS5oPgot I2luY2x1ZGUgPGR0LWJpbmRpbmdzL3BpbmN0cmwvb21hcC5oPgotCi0vIHsKLQljb21wYXRpYmxl ID0gInRpLG9tYXAyNDMwIiwgInRpLG9tYXAyNDIwIiwgInRpLG9tYXAyIjsKLQlpbnRlcnJ1cHQt cGFyZW50ID0gPCZpbnRjPjsKLQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkjc2l6ZS1jZWxscyA9 IDwxPjsKLQljaG9zZW4geyB9OwotCi0JYWxpYXNlcyB7Ci0JCXNlcmlhbDAgPSAmdWFydDE7Ci0J CXNlcmlhbDEgPSAmdWFydDI7Ci0JCXNlcmlhbDIgPSAmdWFydDM7Ci0JCWkyYzAgPSAmaTJjMTsK LQkJaTJjMSA9ICZpMmMyOwotCX07Ci0KLQljcHVzIHsKLQkJI2FkZHJlc3MtY2VsbHMgPSA8MD47 Ci0JCSNzaXplLWNlbGxzID0gPDA+OwotCi0JCWNwdSB7Ci0JCQljb21wYXRpYmxlID0gImFybSxh cm0xMTM2amYtcyI7Ci0JCQlkZXZpY2VfdHlwZSA9ICJjcHUiOwotCQl9OwotCX07Ci0KLQlwbXUg ewotCQljb21wYXRpYmxlID0gImFybSxhcm0xMTM2LXBtdSI7Ci0JCWludGVycnVwdHMgPSA8Mz47 Ci0JfTsKLQotCXNvYyB7Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcC1pbmZyYSI7Ci0JCW1wdSB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLW1wdSI7Ci0JCQl0aSxod21vZHMgPSAibXB1IjsK LQkJfTsKLQl9OwotCi0Jb2NwIHsKLQkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIjsKLQkJI2Fk ZHJlc3MtY2VsbHMgPSA8MT47Ci0JCSNzaXplLWNlbGxzID0gPDE+OwotCQlyYW5nZXM7Ci0JCXRp LGh3bW9kcyA9ICJsM19tYWluIjsKLQotCQlhZXM6IGFlc0A0ODBhNjAwMCB7Ci0JCQljb21wYXRp YmxlID0gInRpLG9tYXAyLWFlcyI7Ci0JCQl0aSxod21vZHMgPSAiYWVzIjsKLQkJCXJlZyA9IDww eDQ4MGE2MDAwIDB4NTA+OwotCQkJZG1hcyA9IDwmc2RtYSA5ICZzZG1hIDEwPjsKLQkJCWRtYS1u YW1lcyA9ICJ0eCIsICJyeCI7Ci0JCX07Ci0KLQkJaGRxMXc6IDF3QDQ4MGIyMDAwIHsKLQkJCWNv bXBhdGlibGUgPSAidGksb21hcDI0MjAtMXciOwotCQkJdGksaHdtb2RzID0gImhkcTF3IjsKLQkJ CXJlZyA9IDwweDQ4MGIyMDAwIDB4MTAwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDU4PjsKLQkJfTsK LQotCQlpbnRjOiBpbnRlcnJ1cHQtY29udHJvbGxlckAxIHsKLQkJCWNvbXBhdGlibGUgPSAidGks b21hcDItaW50YyI7Ci0JCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2Vs bHMgPSA8MT47Ci0JCQlyZWcgPSA8MHg0ODBGRTAwMCAweDEwMDA+OwotCQl9OwotCi0JCXRhcmdl dC1tb2R1bGVANDgwNTYwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyIiwgInRp LHN5c2MiOwotCQkJcmVnID0gPDB4NDgwNTYwMDAgMHg0PiwKLQkJCSAgICAgIDwweDQ4MDU2MDJj IDB4ND4sCi0JCQkgICAgICA8MHg0ODA1NjAyOCAweDQ+OwotCQkJcmVnLW5hbWVzID0gInJldiIs ICJzeXNjIiwgInN5c3MiOwotCQkJdGksc3lzYy1tYXNrID0gPChTWVNDX09NQVAyX0NMT0NLQUNU SVZJVFkgfAotCQkJCQkgU1lTQ19PTUFQMl9FTVVGUkVFIHwKLQkJCQkJIFNZU0NfT01BUDJfU09G VFJFU0VUIHwKLQkJCQkJIFNZU0NfT01BUDJfQVVUT0lETEUpPjsKLQkJCXRpLHN5c2MtbWlkbGUg PSA8U1lTQ19JRExFX0ZPUkNFPiwKLQkJCQkJPFNZU0NfSURMRV9OTz4sCi0JCQkJCTxTWVNDX0lE TEVfU01BUlQ+OwotCQkJdGksc3lzcy1tYXNrID0gPDE+OwotCQkJY2xvY2tzID0gPCZjb3JlX2wz X2NrPjsKLQkJCWNsb2NrLW5hbWVzID0gImZjayI7Ci0JCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsK LQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJcmFuZ2VzID0gPDAgMHg0ODA1NjAwMCAweDEwMDA+ OwotCi0JCQlzZG1hOiBkbWEtY29udHJvbGxlckAwIHsKLQkJCQljb21wYXRpYmxlID0gInRpLG9t YXAyNDIwLXNkbWEiLCAidGksb21hcC1zZG1hIjsKLQkJCQlyZWcgPSA8MCAweDEwMDA+OwotCQkJ CWludGVycnVwdHMgPSA8MTI+LAotCQkJCQkgICAgIDwxMz4sCi0JCQkJCSAgICAgPDE0PiwKLQkJ CQkJICAgICA8MTU+OwotCQkJCSNkbWEtY2VsbHMgPSA8MT47Ci0JCQkJZG1hLWNoYW5uZWxzID0g PDMyPjsKLQkJCQlkbWEtcmVxdWVzdHMgPSA8NjQ+OwotCQkJfTsKLQkJfTsKLQotCQlpMmMxOiBp MmNANDgwNzAwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1pMmMiOwotCQkJdGksaHdt b2RzID0gImkyYzEiOwotCQkJcmVnID0gPDB4NDgwNzAwMDAgMHg4MD47Ci0JCQkjYWRkcmVzcy1j ZWxscyA9IDwxPjsKLQkJCSNzaXplLWNlbGxzID0gPDA+OwotCQkJaW50ZXJydXB0cyA9IDw1Nj47 Ci0JCX07Ci0KLQkJaTJjMjogaTJjQDQ4MDcyMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21h cDItaTJjIjsKLQkJCXRpLGh3bW9kcyA9ICJpMmMyIjsKLQkJCXJlZyA9IDwweDQ4MDcyMDAwIDB4 ODA+OwotCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJ CWludGVycnVwdHMgPSA8NTc+OwotCQl9OwotCi0JCW1jc3BpMTogc3BpQDQ4MDk4MDAwIHsKLQkJ CSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJI3NpemUtY2VsbHMgPSA8MD47Ci0JCQljb21wYXRp YmxlID0gInRpLG9tYXAyLW1jc3BpIjsKLQkJCXRpLGh3bW9kcyA9ICJtY3NwaTEiOwotCQkJcmVn ID0gPDB4NDgwOTgwMDAgMHgxMDA+OwotCQkJaW50ZXJydXB0cyA9IDw2NT47Ci0JCQlkbWFzID0g PCZzZG1hIDM1ICZzZG1hIDM2ICZzZG1hIDM3ICZzZG1hIDM4Ci0JCQkJJnNkbWEgMzkgJnNkbWEg NDAgJnNkbWEgNDEgJnNkbWEgNDI+OwotCQkJZG1hLW5hbWVzID0gInR4MCIsICJyeDAiLCAidHgx IiwgInJ4MSIsCi0JCQkJICAgICJ0eDIiLCAicngyIiwgInR4MyIsICJyeDMiOwotCQl9OwotCi0J CW1jc3BpMjogc3BpQDQ4MDlhMDAwIHsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJI3Np emUtY2VsbHMgPSA8MD47Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLW1jc3BpIjsKLQkJCXRp LGh3bW9kcyA9ICJtY3NwaTIiOwotCQkJcmVnID0gPDB4NDgwOWEwMDAgMHgxMDA+OwotCQkJaW50 ZXJydXB0cyA9IDw2Nj47Ci0JCQlkbWFzID0gPCZzZG1hIDQzICZzZG1hIDQ0ICZzZG1hIDQ1ICZz ZG1hIDQ2PjsKLQkJCWRtYS1uYW1lcyA9ICJ0eDAiLCAicngwIiwgInR4MSIsICJyeDEiOwotCQl9 OwotCi0JCXJuZzogcm5nQDQ4MGEwMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItcm5n IjsKLQkJCXRpLGh3bW9kcyA9ICJybmciOwotCQkJcmVnID0gPDB4NDgwYTAwMDAgMHg1MD47Ci0J CQlpbnRlcnJ1cHRzID0gPDUyPjsKLQkJfTsKLQotCQlzaGFtOiBzaGFtQDQ4MGE0MDAwIHsKLQkJ CWNvbXBhdGlibGUgPSAidGksb21hcDItc2hhbSI7Ci0JCQl0aSxod21vZHMgPSAic2hhbSI7Ci0J CQlyZWcgPSA8MHg0ODBhNDAwMCAweDY0PjsKLQkJCWludGVycnVwdHMgPSA8NTE+OwotCQkJZG1h cyA9IDwmc2RtYSAxMz47Ci0JCQlkbWEtbmFtZXMgPSAicngiOwotCQl9OwotCi0JCXVhcnQxOiBz ZXJpYWxANDgwNmEwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi11YXJ0IjsKLQkJCXRp LGh3bW9kcyA9ICJ1YXJ0MSI7Ci0JCQlyZWcgPSA8MHg0ODA2YTAwMCAweDIwMDA+OwotCQkJaW50 ZXJydXB0cyA9IDw3Mj47Ci0JCQlkbWFzID0gPCZzZG1hIDQ5ICZzZG1hIDUwPjsKLQkJCWRtYS1u YW1lcyA9ICJ0eCIsICJyeCI7Ci0JCQljbG9jay1mcmVxdWVuY3kgPSA8NDgwMDAwMDA+OwotCQl9 OwotCi0JCXVhcnQyOiBzZXJpYWxANDgwNmMwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFw Mi11YXJ0IjsKLQkJCXRpLGh3bW9kcyA9ICJ1YXJ0MiI7Ci0JCQlyZWcgPSA8MHg0ODA2YzAwMCAw eDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDczPjsKLQkJCWRtYXMgPSA8JnNkbWEgNTEgJnNkbWEg NTI+OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKLQkJCWNsb2NrLWZyZXF1ZW5jeSA9IDw0 ODAwMDAwMD47Ci0JCX07Ci0KLQkJdWFydDM6IHNlcmlhbEA0ODA2ZTAwMCB7Ci0JCQljb21wYXRp YmxlID0gInRpLG9tYXAyLXVhcnQiOwotCQkJdGksaHdtb2RzID0gInVhcnQzIjsKLQkJCXJlZyA9 IDwweDQ4MDZlMDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NzQ+OwotCQkJZG1hcyA9IDwm c2RtYSA1MyAmc2RtYSA1ND47Ci0JCQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQkJY2xvY2st ZnJlcXVlbmN5ID0gPDQ4MDAwMDAwPjsKLQkJfTsKLQotCQl0aW1lcjJfdGFyZ2V0OiB0YXJnZXQt bW9kdWxlQDQ4MDJhMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMi10aW1lciIs ICJ0aSxzeXNjIjsKLQkJCXJlZyA9IDwweDQ4MDJhMDAwIDB4ND4sCi0JCQkgICAgICA8MHg0ODAy YTAxMCAweDQ+LAotCQkJICAgICAgPDB4NDgwMmEwMTQgMHg0PjsKLQkJCXJlZy1uYW1lcyA9ICJy ZXYiLCAic3lzYyIsICJzeXNzIjsKLQkJCXRpLHN5c2MtbWFzayA9IDwoU1lTQ19PTUFQMl9DTE9D S0FDVElWSVRZIHwKLQkJCQkJIFNZU0NfT01BUDJfRU1VRlJFRSB8Ci0JCQkJCSBTWVNDX09NQVAy X0VOQVdBS0VVUCB8Ci0JCQkJCSBTWVNDX09NQVAyX1NPRlRSRVNFVCB8Ci0JCQkJCSBTWVNDX09N QVAyX0FVVE9JRExFKT47Ci0JCQl0aSxzeXNjLXNpZGxlID0gPFNZU0NfSURMRV9GT1JDRT4sCi0J CQkJCTxTWVNDX0lETEVfTk8+LAotCQkJCQk8U1lTQ19JRExFX1NNQVJUPjsKLQkJCXRpLHN5c3Mt bWFzayA9IDwxPjsKLQkJCWNsb2NrcyA9IDwmZ3B0Ml9mY2s+LCA8JmdwdDJfaWNrPjsKLQkJCWNs b2NrLW5hbWVzID0gImZjayIsICJpY2siOwotCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkj c2l6ZS1jZWxscyA9IDwxPjsKLQkJCXJhbmdlcyA9IDwweDAgMHg0ODAyYTAwMCAweDEwMDA+Owot Ci0JCQl0aW1lcjI6IHRpbWVyQDAgewotCQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MjAtdGlt ZXIiOwotCQkJCXJlZyA9IDwwIDB4NDAwPjsKLQkJCQlpbnRlcnJ1cHRzID0gPDM4PjsKLQkJCX07 Ci0JCX07Ci0KLQkJdGltZXIzOiB0aW1lckA0ODA3ODAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRp LG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJlZyA9IDwweDQ4MDc4MDAwIDB4NDAwPjsKLQkJCWludGVy cnVwdHMgPSA8Mzk+OwotCQkJdGksaHdtb2RzID0gInRpbWVyMyI7Ci0JCX07Ci0KLQkJdGltZXI0 OiB0aW1lckA0ODA3YTAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsK LQkJCXJlZyA9IDwweDQ4MDdhMDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDA+OwotCQkJ dGksaHdtb2RzID0gInRpbWVyNCI7Ci0JCX07Ci0KLQkJdGltZXI1OiB0aW1lckA0ODA3YzAwMCB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJlZyA9IDwweDQ4MDdj MDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDE+OwotCQkJdGksaHdtb2RzID0gInRpbWVy NSI7Ci0JCQl0aSx0aW1lci1kc3A7Ci0JCX07Ci0KLQkJdGltZXI2OiB0aW1lckA0ODA3ZTAwMCB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJlZyA9IDwweDQ4MDdl MDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDI+OwotCQkJdGksaHdtb2RzID0gInRpbWVy NiI7Ci0JCQl0aSx0aW1lci1kc3A7Ci0JCX07Ci0KLQkJdGltZXI3OiB0aW1lckA0ODA4MDAwMCB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJlZyA9IDwweDQ4MDgw MDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDM+OwotCQkJdGksaHdtb2RzID0gInRpbWVy NyI7Ci0JCQl0aSx0aW1lci1kc3A7Ci0JCX07Ci0KLQkJdGltZXI4OiB0aW1lckA0ODA4MjAwMCB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJlZyA9IDwweDQ4MDgy MDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDQ+OwotCQkJdGksaHdtb2RzID0gInRpbWVy OCI7Ci0JCQl0aSx0aW1lci1kc3A7Ci0JCX07Ci0KLQkJdGltZXI5OiB0aW1lckA0ODA4NDAwMCB7 Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJlZyA9IDwweDQ4MDg0 MDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDU+OwotCQkJdGksaHdtb2RzID0gInRpbWVy OSI7Ci0JCQl0aSx0aW1lci1wd207Ci0JCX07Ci0KLQkJdGltZXIxMDogdGltZXJANDgwODYwMDAg ewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC10aW1lciI7Ci0JCQlyZWcgPSA8MHg0ODA4 NjAwMCAweDQwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDQ2PjsKLQkJCXRpLGh3bW9kcyA9ICJ0aW1l cjEwIjsKLQkJCXRpLHRpbWVyLXB3bTsKLQkJfTsKLQotCQl0aW1lcjExOiB0aW1lckA0ODA4ODAw MCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyNDIwLXRpbWVyIjsKLQkJCXJlZyA9IDwweDQ4 MDg4MDAwIDB4NDAwPjsKLQkJCWludGVycnVwdHMgPSA8NDc+OwotCQkJdGksaHdtb2RzID0gInRp bWVyMTEiOwotCQkJdGksdGltZXItcHdtOwotCQl9OwotCi0JCXRpbWVyMTI6IHRpbWVyQDQ4MDhh MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MjAtdGltZXIiOwotCQkJcmVnID0gPDB4 NDgwOGEwMDAgMHg0MDA+OwotCQkJaW50ZXJydXB0cyA9IDw0OD47Ci0JCQl0aSxod21vZHMgPSAi dGltZXIxMiI7Ci0JCQl0aSx0aW1lci1wd207Ci0JCX07Ci0KLQkJZHNzOiBkc3NANDgwNTAwMDAg ewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1kc3MiOwotCQkJcmVnID0gPDB4NDgwNTAwMDAg MHg0MDA+OwotCQkJc3RhdHVzID0gImRpc2FibGVkIjsKLQkJCXRpLGh3bW9kcyA9ICJkc3NfY29y ZSI7Ci0JCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJ cmFuZ2VzOwotCi0JCQlkaXNwY0A0ODA1MDQwMCB7Ci0JCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFw Mi1kaXNwYyI7Ci0JCQkJcmVnID0gPDB4NDgwNTA0MDAgMHg0MDA+OwotCQkJCWludGVycnVwdHMg PSA8MjU+OwotCQkJCXRpLGh3bW9kcyA9ICJkc3NfZGlzcGMiOwotCQkJfTsKLQotCQkJcmZiaTog ZW5jb2RlckA0ODA1MDgwMCB7Ci0JCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1yZmJpIjsKLQkJ CQlyZWcgPSA8MHg0ODA1MDgwMCAweDQwMD47Ci0JCQkJc3RhdHVzID0gImRpc2FibGVkIjsKLQkJ CQl0aSxod21vZHMgPSAiZHNzX3JmYmkiOwotCQkJfTsKLQotCQkJdmVuYzogZW5jb2RlckA0ODA1 MGMwMCB7Ci0JCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi12ZW5jIjsKLQkJCQlyZWcgPSA8MHg0 ODA1MGMwMCAweDQwMD47Ci0JCQkJc3RhdHVzID0gImRpc2FibGVkIjsKLQkJCQl0aSxod21vZHMg PSAiZHNzX3ZlbmMiOwotCQkJfTsKLQkJfTsKLQl9OwotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtY2xvY2tzLmR0c2kgYi9hcmNoL2FybS9ib290L2R0 cy90aS9vbWFwL29tYXAyNDIwLWNsb2Nrcy5kdHNpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMGE3YTE5OWE5MWMuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9ib290L2R0cy90 aS9vbWFwL29tYXAyNDIwLWNsb2Nrcy5kdHNpCisrKyAvZGV2L251bGwKQEAgLTEsMjY3ICswLDAg QEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBEZXZp Y2UgVHJlZSBTb3VyY2UgZm9yIE9NQVAyNDIwIGNsb2NrIGRhdGEKLSAqCi0gKiBDb3B5cmlnaHQg KEMpIDIwMTQgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqLwotCi0mcHJjbV9jbG9ja3Mgewot CXN5c19jbGtvdXQyX3NyY19nYXRlOiBzeXNfY2xrb3V0Ml9zcmNfZ2F0ZUA3MCB7Ci0JCSNjbG9j ay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbm8td2FpdC1nYXRl LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE1PjsK LQkJcmVnID0gPDB4MDA3MD47Ci0JfTsKLQotCXN5c19jbGtvdXQyX3NyY19tdXg6IHN5c19jbGtv dXQyX3NyY19tdXhANzAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz4sIDwmc3lzX2Nr PiwgPCZmdW5jXzk2bV9jaz4sIDwmZnVuY181NG1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8OD47 Ci0JCXJlZyA9IDwweDAwNzA+OwotCX07Ci0KLQlzeXNfY2xrb3V0Ml9zcmM6IHN5c19jbGtvdXQy X3NyYyB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3Np dGUtY2xvY2siOwotCQljbG9ja3MgPSA8JnN5c19jbGtvdXQyX3NyY19nYXRlPiwgPCZzeXNfY2xr b3V0Ml9zcmNfbXV4PjsKLQl9OwotCi0Jc3lzX2Nsa291dDI6IHN5c19jbGtvdXQyQDcwIHsKLQkJ I2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGRpdmlkZXItY2xvY2siOwot CQljbG9ja3MgPSA8JnN5c19jbGtvdXQyX3NyYz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxMT47Ci0J CXRpLG1heC1kaXYgPSA8NjQ+OwotCQlyZWcgPSA8MHgwMDcwPjsKLQkJdGksaW5kZXgtcG93ZXIt b2YtdHdvOwotCX07Ci0KLQlkc3BfZ2F0ZV9pY2s6IGRzcF9nYXRlX2lja0A4MTAgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWludGVyZmFjZS1j bG9jayI7Ci0JCWNsb2NrcyA9IDwmZHNwX2Zjaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxPjsKLQkJ cmVnID0gPDB4MDgxMD47Ci0JfTsKLQotCWRzcF9kaXZfaWNrOiBkc3BfZGl2X2lja0A4NDAgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWRpdmlk ZXItY2xvY2siOwotCQljbG9ja3MgPSA8JmRzcF9mY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8NT47 Ci0JCXRpLG1heC1kaXYgPSA8Mz47Ci0JCXJlZyA9IDwweDA4NDA+OwotCQl0aSxpbmRleC1zdGFy dHMtYXQtb25lOwotCX07Ci0KLQlkc3BfaWNrOiBkc3BfaWNrIHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwm ZHNwX2dhdGVfaWNrPiwgPCZkc3BfZGl2X2ljaz47Ci0JfTsKLQotCWl2YTFfZ2F0ZV9pZmNrOiBp dmExX2dhdGVfaWZja0A4MDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQl0 aSxiaXQtc2hpZnQgPSA8MTA+OwotCQlyZWcgPSA8MHgwODAwPjsKLQl9OwotCi0JaXZhMV9kaXZf aWZjazogaXZhMV9kaXZfaWZja0A4NDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksY29tcG9zaXRlLWRpdmlkZXItY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVf Y2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8OD47Ci0JCXJlZyA9IDwweDA4NDA+OwotCQl0aSxkaXZp ZGVycyA9IDwwPiwgPDE+LCA8Mj4sIDwzPiwgPDQ+LCA8MD4sIDw2PiwgPDA+LCA8OD4sIDwwPiwg PDA+LCA8MD4sIDwxMj47Ci0JfTsKLQotCWl2YTFfaWZjazogaXZhMV9pZmNrIHsKLQkJI2Nsb2Nr LWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNs b2NrcyA9IDwmaXZhMV9nYXRlX2lmY2s+LCA8Jml2YTFfZGl2X2lmY2s+OwotCX07Ci0KLQlpdmEx X2lmY2tfZGl2OiBpdmExX2lmY2tfZGl2IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmaXZhMV9pZmNrPjsK LQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDI+OwotCX07Ci0KLQlpdmExX21w dV9pbnRfaWZjazogaXZhMV9tcHVfaW50X2lmY2tAODAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+ OwotCQljb21wYXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmaXZh MV9pZmNrX2Rpdj47Ci0JCXRpLGJpdC1zaGlmdCA9IDw4PjsKLQkJcmVnID0gPDB4MDgwMD47Ci0J fTsKLQotCXdkdDNfaWNrOiB3ZHQzX2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0J CWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZs NF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyOD47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0K LQl3ZHQzX2Zjazogd2R0M19mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+ OwotCQl0aSxiaXQtc2hpZnQgPSA8Mjg+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JbW1j X2ljazogbW1jX2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRp LGJpdC1zaGlmdCA9IDwyNj47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQltbWNfZmNrOiBt bWNfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3 YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfOTZtX2NrPjsKLQkJdGksYml0LXNo aWZ0ID0gPDI2PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWVhY19pY2s6IGVhY19pY2tA MjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWlu dGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MjQ+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZWFjX2ZjazogZWFjX2Zja0AyMDAgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZmdW5jXzk2bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyND47Ci0J CXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQlpMmMxX2ZjazogaTJjMV9mY2tAMjAwIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmZnVuY18xMm1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTk+OwotCQlyZWcg PSA8MHgwMjAwPjsKLQl9OwotCi0JaTJjMl9mY2s6IGkyYzJfZmNrQDIwMCB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9j a3MgPSA8JmZ1bmNfMTJtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDIwPjsKLQkJcmVnID0gPDB4 MDIwMD47Ci0JfTsKLQotCXZseW5xX2ljazogdmx5bnFfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxs cyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQlj bG9ja3MgPSA8JmNvcmVfbDNfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mz47Ci0JCXJlZyA9IDww eDAyMTA+OwotCX07Ci0KLQl2bHlucV9nYXRlX2Zjazogdmx5bnFfZ2F0ZV9mY2tAMjAwIHsKLQkJ I2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1nYXRlLWNs b2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDM+OwotCQly ZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JY29yZV9kMThfY2s6IGNvcmVfZDE4X2NrIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9 IDwxOD47Ci0JfTsKLQotCXZseW5xX211eF9mY2s6IHZseW5xX211eF9mY2tAMjQwIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2si OwotCQljbG9ja3MgPSA8JmZ1bmNfOTZtX2NrPiwgPCZjb3JlX2NrPiwgPCZjb3JlX2QyX2NrPiwg PCZjb3JlX2QzX2NrPiwgPCZjb3JlX2Q0X2NrPiwgPCZkdW1teV9jaz4sIDwmY29yZV9kNl9jaz4s IDwmZHVtbXlfY2s+LCA8JmNvcmVfZDhfY2s+LCA8JmNvcmVfZDlfY2s+LCA8JmR1bW15X2NrPiwg PCZkdW1teV9jaz4sIDwmY29yZV9kMTJfY2s+LCA8JmR1bW15X2NrPiwgPCZkdW1teV9jaz4sIDwm ZHVtbXlfY2s+LCA8JmNvcmVfZDE2X2NrPiwgPCZkdW1teV9jaz4sIDwmY29yZV9kMThfY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8MTU+OwotCQlyZWcgPSA8MHgwMjQwPjsKLQl9OwotCi0Jdmx5bnFf ZmNrOiB2bHlucV9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZ2bHlucV9nYXRlX2Zjaz4sIDwmdmx5 bnFfbXV4X2Zjaz47Ci0JfTsKLX07Ci0KLSZwcmNtX2Nsb2NrZG9tYWlucyB7Ci0JZ2Z4X2Nsa2Rt OiBnZnhfY2xrZG0gewotCQljb21wYXRpYmxlID0gInRpLGNsb2NrZG9tYWluIjsKLQkJY2xvY2tz ID0gPCZnZnhfaWNrPjsKLQl9OwotCi0JY29yZV9sM19jbGtkbTogY29yZV9sM19jbGtkbSB7Ci0J CWNvbXBhdGlibGUgPSAidGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8JmNhbV9mY2s+LCA8 JnZseW5xX2ljaz4sIDwmdXNiX2Zjaz47Ci0JfTsKLQotCXdrdXBfY2xrZG06IHdrdXBfY2xrZG0g ewotCQljb21wYXRpYmxlID0gInRpLGNsb2NrZG9tYWluIjsKLQkJY2xvY2tzID0gPCZkcGxsX2Nr PiwgPCZlbXVsX2NrPiwgPCZncHQxX2ljaz4sIDwmZ3Bpb3NfaWNrPiwKLQkJCSA8JmdwaW9zX2Zj az4sIDwmbXB1X3dkdF9pY2s+LCA8Jm1wdV93ZHRfZmNrPiwKLQkJCSA8JnN5bmNfMzJrX2ljaz4s IDwmd2R0MV9pY2s+LCA8Jm9tYXBjdHJsX2ljaz47Ci0JfTsKLQotCWl2YTFfY2xrZG06IGl2YTFf Y2xrZG0gewotCQljb21wYXRpYmxlID0gInRpLGNsb2NrZG9tYWluIjsKLQkJY2xvY2tzID0gPCZp dmExX21wdV9pbnRfaWZjaz47Ci0JfTsKLQotCWRzc19jbGtkbTogZHNzX2Nsa2RtIHsKLQkJY29t cGF0aWJsZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwmZHNzX2ljaz4sIDwmZHNz XzU0bV9mY2s+OwotCX07Ci0KLQljb3JlX2w0X2Nsa2RtOiBjb3JlX2w0X2Nsa2RtIHsKLQkJY29t cGF0aWJsZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwmc3NpX2w0X2ljaz4sIDwm Z3B0Ml9pY2s+LCA8JmdwdDNfaWNrPiwgPCZncHQ0X2ljaz4sCi0JCQkgPCZncHQ1X2ljaz4sIDwm Z3B0Nl9pY2s+LCA8JmdwdDdfaWNrPiwgPCZncHQ4X2ljaz4sCi0JCQkgPCZncHQ5X2ljaz4sIDwm Z3B0MTBfaWNrPiwgPCZncHQxMV9pY2s+LCA8JmdwdDEyX2ljaz4sCi0JCQkgPCZtY2JzcDFfaWNr PiwgPCZtY2JzcDJfaWNrPiwgPCZtY3NwaTFfaWNrPiwKLQkJCSA8Jm1jc3BpMV9mY2s+LCA8Jm1j c3BpMl9pY2s+LCA8Jm1jc3BpMl9mY2s+LAotCQkJIDwmdWFydDFfaWNrPiwgPCZ1YXJ0MV9mY2s+ LCA8JnVhcnQyX2ljaz4sIDwmdWFydDJfZmNrPiwKLQkJCSA8JnVhcnQzX2ljaz4sIDwmdWFydDNf ZmNrPiwgPCZjYW1faWNrPiwKLQkJCSA8Jm1haWxib3hlc19pY2s+LCA8JndkdDRfaWNrPiwgPCZ3 ZHQ0X2Zjaz4sCi0JCQkgPCZ3ZHQzX2ljaz4sIDwmd2R0M19mY2s+LCA8Jm1zcHJvX2ljaz4sIDwm bXNwcm9fZmNrPiwKLQkJCSA8Jm1tY19pY2s+LCA8Jm1tY19mY2s+LCA8JmZhY19pY2s+LCA8JmZh Y19mY2s+LAotCQkJIDwmZWFjX2ljaz4sIDwmZWFjX2Zjaz4sIDwmaGRxX2ljaz4sIDwmaGRxX2Zj az4sCi0JCQkgPCZpMmMxX2ljaz4sIDwmaTJjMV9mY2s+LCA8JmkyYzJfaWNrPiwgPCZpMmMyX2Zj az4sCi0JCQkgPCZkZXNfaWNrPiwgPCZzaGFfaWNrPiwgPCZybmdfaWNrPiwgPCZhZXNfaWNrPiwK LQkJCSA8JnBrYV9pY2s+OwotCX07Ci19OwotCi0mZnVuY185Nm1fY2sgewotCWNvbXBhdGlibGUg PSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQljbG9ja3MgPSA8JmFwbGw5Nl9jaz47Ci0JY2xvY2st bXVsdCA9IDwxPjsKLQljbG9jay1kaXYgPSA8MT47Ci19OwotCi0mZHNwX2Rpdl9mY2sgewotCXRp LGRpdmlkZXJzID0gPDA+LCA8MT4sIDwyPiwgPDM+LCA8ND4sIDwwPiwgPDY+LCA8MD4sIDw4Piwg PDA+LCA8MD4sIDwwPiwgPDEyPjsKLX07Ci0KLSZzc2lfc3NyX3NzdF9kaXZfZmNrIHsKLQl0aSxk aXZpZGVycyA9IDwwPiwgPDE+LCA8Mj4sIDwzPiwgPDQ+LCA8MD4sIDw2PiwgPDA+LCA8OD47Ci19 OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1oNC5kdHMg Yi9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLWg0LmR0cwpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggNWFjZjVkZDg3YzU5Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9h cm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1oNC5kdHMKKysrIC9kZXYvbnVsbApAQCAtMSw2 MyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgot ICogQ29weXJpZ2h0IChDKSAyMDEyIFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZCAtIGh0 dHBzOi8vd3d3LnRpLmNvbS8KLSAqLwotL2R0cy12MS87Ci0KLSNpbmNsdWRlICJvbWFwMjQyMC5k dHNpIgotCi0vIHsKLQltb2RlbCA9ICJUSSBPTUFQMjQyMCBINCBib2FyZCI7Ci0JY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMjQyMC1oNCIsICJ0aSxvbWFwMjQyMCIsICJ0aSxvbWFwMiI7Ci0KLQltZW1v cnlAODAwMDAwMDAgewotCQlkZXZpY2VfdHlwZSA9ICJtZW1vcnkiOwotCQlyZWcgPSA8MHg4MDAw MDAwMCAweDQwMDAwMDA+OyAvKiA2NCBNQiAqLwotCX07Ci19OwotCi0mZ3BtYyB7Ci0JcmFuZ2Vz ID0gPDAgMCAweDA4MDAwMDAwIDB4MDQwMDAwMDA+OwotCi0Jbm9yQDAsMCB7Ci0JCWNvbXBhdGli bGUgPSAiY2ZpLWZsYXNoIjsKLQkJbGludXgsbXRkLW5hbWUgPSAiaW50ZWwsZ2UyOGYyNTZsMThi ODUiOwotCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJI3NpemUtY2VsbHMgPSA8MT47Ci0JCXJl ZyA9IDwwIDAgMHgwNDAwMDAwMD47Ci0JCWJhbmstd2lkdGggPSA8Mj47Ci0KLQkJZ3BtYyxtdXgt YWRkLWRhdGEgPSA8Mj47Ci0JCWdwbWMsY3Mtb24tbnMgPSA8MTA+OwotCQlncG1jLGNzLXJkLW9m Zi1ucyA9IDwxNjA+OwotCQlncG1jLGNzLXdyLW9mZi1ucyA9IDwxNjA+OwotCQlncG1jLGFkdi1v bi1ucyA9IDwyMD47Ci0JCWdwbWMsYWR2LXJkLW9mZi1ucyA9IDw1MD47Ci0JCWdwbWMsYWR2LXdy LW9mZi1ucyA9IDw1MD47Ci0JCWdwbWMsb2Utb24tbnMgPSA8NjA+OwotCQlncG1jLG9lLW9mZi1u cyA9IDwxMjA+OwotCQlncG1jLHdlLW9uLW5zID0gPDYwPjsKLQkJZ3BtYyx3ZS1vZmYtbnMgPSA8 MTIwPjsKLQkJZ3BtYyxyZC1jeWNsZS1ucyA9IDwxNzA+OwotCQlncG1jLHdyLWN5Y2xlLW5zID0g PDE3MD47Ci0JCWdwbWMsYWNjZXNzLW5zID0gPDE1MD47Ci0JCWdwbWMscGFnZS1idXJzdC1hY2Nl c3MtbnMgPSA8MTA+OwotCi0JCXBhcnRpdGlvbkAwIHsKLQkJCWxhYmVsID0gImJvb3Rsb2FkZXIi OwotCQkJcmVnID0gPDAgMHgyMDAwMD47Ci0JCX07Ci0JCXBhcnRpdGlvbkAyMDAwMCB7Ci0JCQls YWJlbCA9ICJwYXJhbXMiOwotCQkJcmVnID0gPDB4MjAwMDAgMHgyMDAwMD47Ci0JCX07Ci0JCXBh cnRpdGlvbkA0MDAwMCB7Ci0JCQlsYWJlbCA9ICJrZXJuZWwiOwotCQkJcmVnID0gPDB4NDAwMDAg MHgyMDAwMDA+OwotCQl9OwotCQlwYXJ0aXRpb25AMjQwMDAwIHsKLQkJCWxhYmVsID0gImZpbGUt c3lzdGVtIjsKLQkJCXJlZyA9IDwweDI0MDAwMCAweDNkYzAwMDA+OwotCQl9OwotCX07Ci19Owpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC1uODAwLmR0cyBi L2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgwMC5kdHMKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGYwNmQ3NjdlODE4Yi4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gv YXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgwMC5kdHMKKysrIC9kZXYvbnVsbApAQCAt MSw5ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0vZHRzLXYx LzsKLQotI2luY2x1ZGUgIm9tYXAyNDIwLW44eDAtY29tbW9uLmR0c2kiCi0KLS8gewotCW1vZGVs ID0gIk5va2lhIE44MDAiOwotCWNvbXBhdGlibGUgPSAibm9raWEsbjgwMCIsICJub2tpYSxuOHgw IiwgInRpLG9tYXAyNDIwIiwgInRpLG9tYXAyIjsKLX07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9i b290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MTAtd2ltYXguZHRzIGIvYXJjaC9hcm0vYm9vdC9k dHMvdGkvb21hcC9vbWFwMjQyMC1uODEwLXdpbWF4LmR0cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYWM5YWNiZDYwOWI2Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vYm9vdC9k dHMvdGkvb21hcC9vbWFwMjQyMC1uODEwLXdpbWF4LmR0cworKysgL2Rldi9udWxsCkBAIC0xLDkg KzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLS9kdHMtdjEvOwot Ci0jaW5jbHVkZSAib21hcDI0MjAtbjh4MC1jb21tb24uZHRzaSIKLQotLyB7Ci0JbW9kZWwgPSAi Tm9raWEgTjgxMCBXaU1heCI7Ci0JY29tcGF0aWJsZSA9ICJub2tpYSxuODEwLXdpbWF4IiwgIm5v a2lhLG44eDAiLCAidGksb21hcDI0MjAiLCAidGksb21hcDIiOwotfTsKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjgxMC5kdHMgYi9hcmNoL2FybS9ib290 L2R0cy90aS9vbWFwL29tYXAyNDIwLW44MTAuZHRzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAzYmY4MTc1ZDg1YTguLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9ib290L2R0cy90 aS9vbWFwL29tYXAyNDIwLW44MTAuZHRzCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAot Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLS9kdHMtdjEvOwotCi0jaW5jbHVk ZSAib21hcDI0MjAtbjh4MC1jb21tb24uZHRzaSIKLQotLyB7Ci0JbW9kZWwgPSAiTm9raWEgTjgx MCI7Ci0JY29tcGF0aWJsZSA9ICJub2tpYSxuODEwIiwgIm5va2lhLG44eDAiLCAidGksb21hcDI0 MjAiLCAidGksb21hcDIiOwotCi0JdmlvX2FwZTogdmlvX2FwZSB7Ci0JCWNvbXBhdGlibGUgPSAi cmVndWxhdG9yLWZpeGVkIjsKLQkJcmVndWxhdG9yLW5hbWUgPSAidmlvX2FwZSI7Ci0JCXJlZ3Vs YXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OwotCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9s dCA9IDwxODAwMDAwPjsKLQl9OwotCi0JdjI4X2FpYzogdjI4X2FpYyB7Ci0JCWNvbXBhdGlibGUg PSAicmVndWxhdG9yLWZpeGVkIjsKLQkJcmVndWxhdG9yLW5hbWUgPSAidjI4X2FpYyI7Ci0JCXJl Z3VsYXRvci1taW4tbWljcm92b2x0ID0gPDI4MDAwMDA+OwotCQlyZWd1bGF0b3ItbWF4LW1pY3Jv dm9sdCA9IDwyODAwMDAwPjsKLQl9OwotfTsKLQotJm9tYXAyNDIwX3BteCB7Ci0JbWNic3AyX3Bp bnM6IG1jYnNwMi1waW5zIHsKLQkJcGluY3RybC1zaW5nbGUscGlucyA9IDwKLQkJCU9NQVAyNDIw X0NPUkVfSU9QQUQoMHgwMTI0LCBQSU5fSU5QVVQgfCBNVVhfTU9ERTEpCS8qIGVhY19hY19zY2xr Lm1jYnNwMl9jbGt4ICovCi0JCQlPTUFQMjQyMF9DT1JFX0lPUEFEKDB4MDEyNSwgUElOX0lOUFVU IHwgTVVYX01PREUxKQkvKiBlYWNfYWNfZnMubWNic3AyX2ZzeCAqLwotCQkJT01BUDI0MjBfQ09S RV9JT1BBRCgweDAxMjYsIFBJTl9JTlBVVCB8IE1VWF9NT0RFMSkJLyogZWFjX2FjX2Rpbi5tY2Jz cDJfZHIgKi8KLQkJCU9NQVAyNDIwX0NPUkVfSU9QQUQoMHgwMTI3LCBQSU5fT1VUUFVUIHwgTVVY X01PREUxKQkvKiBlYWNfYWNfZG91dC5tY2JzcDJfZHggKi8KLQkJPjsKLQl9OwotCi0JYWljMzNf cGluczogYWljMzMtcGlucyB7Ci0JCXBpbmN0cmwtc2luZ2xlLHBpbnMgPSA8Ci0JCQlPTUFQMjQy MF9DT1JFX0lPUEFEKDB4MDEyOSwgUElOX09VVFBVVCB8IE1VWF9NT0RFMykJLyogZWFjX2FjX3Jz dC5ncGlvMTE4ICovCi0JCQlPTUFQMjQyMF9DT1JFX0lPUEFEKDB4MDBlOCwgUElOX09VVFBVVCB8 IE1VWF9NT0RFMikJLyogdmx5bnFfdHgxLnN5c19jbGtvdXQyICovCi0JCT47Ci0JfTsKLX07Ci0K LSZpMmMyIHsKLQlhaWMzM0AxOCB7Ci0JCWNvbXBhdGlibGUgPSAidGksdGx2MzIwYWljMzMiOwot CQlyZWcgPSA8MHgxOD47Ci0KLQkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKLQkJcGluY3Ry bC0wID0gPCZhaWMzM19waW5zPjsKLQotCQlyZXNldC1ncGlvcyA9IDwmZ3BpbzQgMjIgR1BJT19B Q1RJVkVfTE9XPjsgLyogZ3BpbzExOCAqLwotCi0JCWFpM3gtZ3Bpby1mdW5jID0gPAotCQkJMTAg LyogQUlDM1hfR1BJTzFfRlVOQ19ESUdJVEFMX01JQ19NT0RDTEsgKi8KLQkJCTUgLyogQUlDM1hf R1BJTzJfRlVOQ19ESUdJVEFMX01JQ19JTlBVVCAqLwotCQk+OwotCQlhaTN4LW1pY2JpYXMtdmcg PSA8MT47IC8qIDJWICovCi0KLQkJQVZERC1zdXBwbHkgPSA8JnYyOF9haWM+OwotCQlEUlZERC1z dXBwbHkgPSA8JnYyOF9haWM+OwotCQlJT1ZERC1zdXBwbHkgPSA8JnZpb19hcGU+OwotCQlEVkRE LXN1cHBseSA9IDwmdmlvX2FwZT47Ci0KLQkJYXNzaWduZWQtY2xvY2tzID0gPCZzeXNfY2xrb3V0 Ml9zcmM+LCA8JnN5c19jbGtvdXQyPjsKLQkJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmZnVu Y185Nm1fY2s+OwotCQlhc3NpZ25lZC1jbG9jay1yYXRlcyA9IDwwPiwgPDEyMDAwMDAwPjsKLQl9 OwotfTsKLQotJm1jYnNwMiB7Ci0JcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKLQlwaW5jdHJs LTAgPSA8Jm1jYnNwMl9waW5zPjsKLQotCXN0YXR1cyA9ICJva2F5IjsKLX07CmRpZmYgLS1naXQg YS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44eDAtY29tbW9uLmR0c2kgYi9h cmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDIwLW44eDAtY29tbW9uLmR0c2kKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlOWRkOGJiZmM4NS4uMDAwMDAwMDAwMDAwCi0tLSBh L2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAtbjh4MC1jb21tb24uZHRzaQorKysg L2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAotI2luY2x1ZGUgIm9tYXAyNDIwLmR0c2kiCi0KLS8gewotCW1lbW9yeUA4MDAwMDAw MCB7Ci0JCWRldmljZV90eXBlID0gIm1lbW9yeSI7Ci0JCXJlZyA9IDwweDgwMDAwMDAwIDB4ODAw MDAwMD47IC8qIDEyOCBNQiAqLwotCX07Ci0KLQljaG9zZW4gewotCQlzdGRvdXQtcGF0aCA9ICZ1 YXJ0MzsKLQl9OwotCi0Jb2NwIHsKLQkJaTJjMCB7Ci0JCQljb21wYXRpYmxlID0gImkyYy1jYnVz LWdwaW8iOwotCQkJZ3Bpb3MgPSA8JmdwaW8zIDIgR1BJT19BQ1RJVkVfSElHSCAvKiBncGlvNjYg Y2xrICovCi0JCQkJICZncGlvMyAxIEdQSU9fQUNUSVZFX0hJR0ggLyogZ3BpbzY1IGRhdCAqLwot CQkJCSAmZ3BpbzMgMCBHUElPX0FDVElWRV9ISUdIIC8qIGdwaW82NCBzZWwgKi8KLQkJCQk+Owot CQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9IDwwPjsKLQkJCXJldHU6 IHJldHVAMSB7Ci0JCQkJY29tcGF0aWJsZSA9ICJub2tpYSxyZXR1IjsKLQkJCQlpbnRlcnJ1cHQt cGFyZW50ID0gPCZncGlvND47Ci0JCQkJaW50ZXJydXB0cyA9IDwxMiBJUlFfVFlQRV9FREdFX1JJ U0lORz47Ci0JCQkJcmVnID0gPDB4MT47Ci0JCQl9OwotCQl9OwotCX07Ci19OwotCi0maTJjMSB7 Ci0JY2xvY2stZnJlcXVlbmN5ID0gPDQwMDAwMD47Ci0KLQlwbWljQDcyIHsKLQkJY29tcGF0aWJs ZSA9ICJtZW5lbGF1cyI7Ci0JCXJlZyA9IDwweDcyPjsKLQkJaW50ZXJydXB0cyA9IDw3IElSUV9U WVBFX0VER0VfUklTSU5HPjsKLQl9OwotfTsKLQotJmkyYzIgewotCWNsb2NrLWZyZXF1ZW5jeSA9 IDw0MDAwMDA+OwotfTsKLQotJmdwbWMgewotCXJhbmdlcyA9IDwwIDAgMHgwNDAwMDAwMCAweDEw MDAwMDA+OwkvKiBDUzA6IDE2TUIgZm9yIE9uZU5BTkQgKi8KLQotCS8qIGdwaW8taXJxIGZvciBk bWE6IDI2ICovCi0KLQlvbmVuYW5kQDAsMCB7Ci0JCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkj c2l6ZS1jZWxscyA9IDwxPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1vbmVuYW5kIjsKLQkJ cmVnID0gPDAgMCAweDIwMDAwPjsJLyogQ1MwLCBvZmZzZXQgMCwgSU8gc2l6ZSAxMjhLICovCi0K LQkJZ3BtYyxzeW5jLXJlYWQ7Ci0JCWdwbWMsYnVyc3QtbGVuZ3RoID0gPDE2PjsKLQkJZ3BtYyxi dXJzdC1yZWFkOwotCQlncG1jLGJ1cnN0LXdyYXA7Ci0JCWdwbWMsZGV2aWNlLXdpZHRoID0gPDI+ OwotCQlncG1jLG11eC1hZGQtZGF0YSA9IDwyPjsKLQkJZ3BtYyxjcy1vbi1ucyA9IDwwPjsKLQkJ Z3BtYyxjcy1yZC1vZmYtbnMgPSA8MTI3PjsKLQkJZ3BtYyxjcy13ci1vZmYtbnMgPSA8MTA5PjsK LQkJZ3BtYyxhZHYtb24tbnMgPSA8MD47Ci0JCWdwbWMsYWR2LXJkLW9mZi1ucyA9IDwxOD47Ci0J CWdwbWMsYWR2LXdyLW9mZi1ucyA9IDwxOD47Ci0JCWdwbWMsb2Utb24tbnMgPSA8Mjc+OwotCQln cG1jLG9lLW9mZi1ucyA9IDwxMjc+OwotCQlncG1jLHdlLW9uLW5zID0gPDI3PjsKLQkJZ3BtYyx3 ZS1vZmYtbnMgPSA8NzI+OwotCQlncG1jLHJkLWN5Y2xlLW5zID0gPDE0NT47Ci0JCWdwbWMsd3It Y3ljbGUtbnMgPSA8MTM2PjsKLQkJZ3BtYyxhY2Nlc3MtbnMgPSA8MTE4PjsKLQkJZ3BtYyxwYWdl LWJ1cnN0LWFjY2Vzcy1ucyA9IDwyNz47Ci0JCWdwbWMsYnVzLXR1cm5hcm91bmQtbnMgPSA8MD47 Ci0JCWdwbWMsY3ljbGUyY3ljbGUtZGVsYXktbnMgPSA8MD47Ci0JCWdwbWMsd2FpdC1tb25pdG9y aW5nLW5zID0gPDA+OwotCQlncG1jLGNsay1hY3RpdmF0aW9uLW5zID0gPDk+OwotCQlncG1jLHN5 bmMtY2xrLXBzID0gPDI3MDAwPjsKLQotCQkvKiBNVEQgcGFydGl0aW9uIHRhYmxlIGNvcnJlc3Bv bmRpbmcgdG8gb2xkIGJvYXJkLW44eDAgZmlsZS4gKi8KLQkJcGFydGl0aW9uQDAgewotCQkJbGFi ZWwgPSAiYm9vdGxvYWRlciI7Ci0JCQlyZWcgPSA8MHgwMDAwMDAwMCAweDAwMDIwMDAwPjsKLQkJ CXJlYWQtb25seTsKLQkJfTsKLQkJcGFydGl0aW9uQDEgewotCQkJbGFiZWwgPSAiY29uZmlnIjsK LQkJCXJlZyA9IDwweDAwMDIwMDAwIDB4MDAwNjAwMDA+OwotCQl9OwotCQlwYXJ0aXRpb25AMiB7 Ci0JCQlsYWJlbCA9ICJrZXJuZWwiOwotCQkJcmVnID0gPDB4MDAwODAwMDAgMHgwMDIwMDAwMD47 Ci0JCX07Ci0JCXBhcnRpdGlvbkAzIHsKLQkJCWxhYmVsID0gImluaXRmcyI7Ci0JCQlyZWcgPSA8 MHgwMDI4MDAwMCAweDAwNDAwMDAwPjsKLQkJfTsKLQkJcGFydGl0aW9uQDQgewotCQkJbGFiZWwg PSAicm9vdGZzIjsKLQkJCXJlZyA9IDwweDAwNjgwMDAwIDB4MGY5ODAwMDA+OwotCQl9OwotCQlw YXJ0aXRpb25ANSB7Ci0JCQlsYWJlbCA9ICJvbWFwMi1vbmVuYW5kIjsKLQkJCXJlZyA9IDwweDAw MDAwMDAwIDB4MTAwMDAwMDA+OwotCQl9OwotCX07Ci19OwotCi0mbWNzcGkyIHsKLQlzdGF0dXMg PSAib2theSI7Ci0KLQl3aWZpQDAgewotCQlyZWcgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAic3Qs c3RsYzQ1NjAiOwotCQlzcGktbWF4LWZyZXF1ZW5jeSA9IDw0ODAwMDAwMD47Ci0JCWludGVycnVw dHMtZXh0ZW5kZWQgPSA8JmdwaW8zIDIzIElSUV9UWVBFX0VER0VfUklTSU5HPjsKLQkJcG93ZXJk b3duLWdwaW9zID0gPCZncGlvNCAxIEdQSU9fQUNUSVZFX0xPVz47IC8qIGdwaW8gOTcgKi8KLQl9 OwotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAuZHRz aSBiL2FyY2gvYXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0MjAuZHRzaQpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggODIxZGE1MWNiODcwLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9h cm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQyMC5kdHNpCisrKyAvZGV2L251bGwKQEAgLTEsMjYy ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0g KiBEZXZpY2UgVHJlZSBTb3VyY2UgZm9yIE9NQVAyNDIwIFNvQwotICoKLSAqIENvcHlyaWdodCAo QykgMjAxMiBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgLSBodHRwczovL3d3dy50aS5j b20vCi0gKi8KLQotI2luY2x1ZGUgIm9tYXAyLmR0c2kiCi0KLS8gewotCWNvbXBhdGlibGUgPSAi dGksb21hcDI0MjAiLCAidGksb21hcDIiOwotCi0Jb2NwIHsKLQkJbDQ6IGw0QDQ4MDAwMDAwIHsK LQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItbDQiLCAic2ltcGxlLWJ1cyI7Ci0JCQkjYWRkcmVz cy1jZWxscyA9IDwxPjsKLQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJcmFuZ2VzID0gPDAgMHg0 ODAwMDAwMCAweDEwMDAwMD47Ci0KLQkJCXByY206IHByY21AODAwMCB7Ci0JCQkJY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMi1wcmNtIjsKLQkJCQlyZWcgPSA8MHg4MDAwIDB4MTAwMD47Ci0KLQkJCQlw cmNtX2Nsb2NrczogY2xvY2tzIHsKLQkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkJCSNz aXplLWNlbGxzID0gPDA+OwotCQkJCX07Ci0KLQkJCQlwcmNtX2Nsb2NrZG9tYWluczogY2xvY2tk b21haW5zIHsKLQkJCQl9OwotCQkJfTsKLQotCQkJc2NtOiBzY21AMCB7Ci0JCQkJY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMi1zY20iLCAic2ltcGxlLWJ1cyI7Ci0JCQkJcmVnID0gPDB4MCAweDEwMDA+ OwotCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJ CSNwaW5jdHJsLWNlbGxzID0gPDE+OwotCQkJCXJhbmdlcyA9IDwwIDB4MCAweDEwMDA+OwotCi0J CQkJb21hcDI0MjBfcG14OiBwaW5tdXhAMzAgewotCQkJCQljb21wYXRpYmxlID0gInRpLG9tYXAy NDIwLXBhZGNvbmYiLAotCQkJCQkJICAgICAicGluY3RybC1zaW5nbGUiOwotCQkJCQlyZWcgPSA8 MHgzMCAweDAxMTM+OwotCQkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJCQkJI3NpemUtY2Vs bHMgPSA8MD47Ci0JCQkJCSNwaW5jdHJsLWNlbGxzID0gPDE+OwotCQkJCQlwaW5jdHJsLXNpbmds ZSxyZWdpc3Rlci13aWR0aCA9IDw4PjsKLQkJCQkJcGluY3RybC1zaW5nbGUsZnVuY3Rpb24tbWFz ayA9IDwweDNmPjsKLQkJCQl9OwotCi0JCQkJc2NtX2NvbmY6IHNjbV9jb25mQDI3MCB7Ci0JCQkJ CWNvbXBhdGlibGUgPSAic3lzY29uIjsKLQkJCQkJcmVnID0gPDB4MjcwIDB4MTAwPjsKLQkJCQkJ I2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkJCSNzaXplLWNlbGxzID0gPDE+OwotCi0JCQkJCXNj bV9jbG9ja3M6IGNsb2NrcyB7Ci0JCQkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJCQkJCSNz aXplLWNlbGxzID0gPDA+OwotCQkJCQl9OwotCQkJCX07Ci0KLQkJCQlzY21fY2xvY2tkb21haW5z OiBjbG9ja2RvbWFpbnMgewotCQkJCX07Ci0JCQl9OwotCi0JCQl0YXJnZXQtbW9kdWxlQDQwMDAg ewotCQkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMiIsICJ0aSxzeXNjIjsKLQkJCQlyZWcg PSA8MHg0MDAwIDB4ND4sCi0JCQkJICAgICAgPDB4NDAwNCAweDQ+OwotCQkJCXJlZy1uYW1lcyA9 ICJyZXYiLCAic3lzYyI7Ci0JCQkJdGksc3lzYy1zaWRsZSA9IDxTWVNDX0lETEVfRk9SQ0U+LAot CQkJCQkJPFNZU0NfSURMRV9OTz47Ci0JCQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0JCQkJ Y2xvY2stbmFtZXMgPSAiZmNrIjsKLQkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKLQkJCQkjc2l6 ZS1jZWxscyA9IDwxPjsKLQkJCQlyYW5nZXMgPSA8MHgwIDB4NDAwMCAweDEwMDA+OwotCi0JCQkJ Y291bnRlcjMyazogY291bnRlckAwIHsKLQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwLWNvdW50 ZXIzMmsiOwotCQkJCQlyZWcgPSA8MCAweDIwPjsKLQkJCQl9OwotCQkJfTsKLQkJfTsKLQotCQln cGlvMTogZ3Bpb0A0ODAxODAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWdwaW8iOwot CQkJcmVnID0gPDB4NDgwMTgwMDAgMHgyMDA+OwotCQkJaW50ZXJydXB0cyA9IDwyOT47Ci0JCQl0 aSxod21vZHMgPSAiZ3BpbzEiOwotCQkJdGksZ3Bpby1hbHdheXMtb247Ci0JCQkjZ3Bpby1jZWxs cyA9IDwyPjsKLQkJCWdwaW8tY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47 Ci0JCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJfTsKLQotCQlncGlvMjogZ3Bpb0A0ODAxYTAw MCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWdwaW8iOwotCQkJcmVnID0gPDB4NDgwMWEw MDAgMHgyMDA+OwotCQkJaW50ZXJydXB0cyA9IDwzMD47Ci0JCQl0aSxod21vZHMgPSAiZ3BpbzIi OwotCQkJdGksZ3Bpby1hbHdheXMtb247Ci0JCQkjZ3Bpby1jZWxscyA9IDwyPjsKLQkJCWdwaW8t Y29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0JCQlpbnRlcnJ1cHQtY29u dHJvbGxlcjsKLQkJfTsKLQotCQlncGlvMzogZ3Bpb0A0ODAxYzAwMCB7Ci0JCQljb21wYXRpYmxl ID0gInRpLG9tYXAyLWdwaW8iOwotCQkJcmVnID0gPDB4NDgwMWMwMDAgMHgyMDA+OwotCQkJaW50 ZXJydXB0cyA9IDwzMT47Ci0JCQl0aSxod21vZHMgPSAiZ3BpbzMiOwotCQkJdGksZ3Bpby1hbHdh eXMtb247Ci0JCQkjZ3Bpby1jZWxscyA9IDwyPjsKLQkJCWdwaW8tY29udHJvbGxlcjsKLQkJCSNp bnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0JCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJfTsKLQot CQlncGlvNDogZ3Bpb0A0ODAxZTAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWdwaW8i OwotCQkJcmVnID0gPDB4NDgwMWUwMDAgMHgyMDA+OwotCQkJaW50ZXJydXB0cyA9IDwzMj47Ci0J CQl0aSxod21vZHMgPSAiZ3BpbzQiOwotCQkJdGksZ3Bpby1hbHdheXMtb247Ci0JCQkjZ3Bpby1j ZWxscyA9IDwyPjsKLQkJCWdwaW8tY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8 Mj47Ci0JCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJfTsKLQotCQlncG1jOiBncG1jQDY4MDBh MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MjAtZ3BtYyI7Ci0JCQlyZWcgPSA8MHg2 ODAwYTAwMCAweDEwMDA+OwotCQkJI2FkZHJlc3MtY2VsbHMgPSA8Mj47Ci0JCQkjc2l6ZS1jZWxs cyA9IDwxPjsKLQkJCWludGVycnVwdHMgPSA8MjA+OwotCQkJZ3BtYyxudW0tY3MgPSA8OD47Ci0J CQlncG1jLG51bS13YWl0cGlucyA9IDw0PjsKLQkJCXRpLGh3bW9kcyA9ICJncG1jIjsKLQkJCWlu dGVycnVwdC1jb250cm9sbGVyOwotCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKLQkJCWdwaW8t Y29udHJvbGxlcjsKLQkJCSNncGlvLWNlbGxzID0gPDI+OwotCQl9OwotCi0JCW1jYnNwMTogbWNi c3BANDgwNzQwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQyMC1tY2JzcCI7Ci0JCQly ZWcgPSA8MHg0ODA3NDAwMCAweGZmPjsKLQkJCXJlZy1uYW1lcyA9ICJtcHUiOwotCQkJaW50ZXJy dXB0cyA9IDw1OT4sIC8qIFRYIGludGVycnVwdCAqLwotCQkJCSAgICAgPDYwPjsgLyogUlggaW50 ZXJydXB0ICovCi0JCQlpbnRlcnJ1cHQtbmFtZXMgPSAidHgiLCAicngiOwotCQkJdGksaHdtb2Rz ID0gIm1jYnNwMSI7Ci0JCQlkbWFzID0gPCZzZG1hIDMxPiwKLQkJCSAgICAgICA8JnNkbWEgMzI+ OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKLQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Ci0J CX07Ci0KLQkJbWNic3AyOiBtY2JzcEA0ODA3NjAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9t YXAyNDIwLW1jYnNwIjsKLQkJCXJlZyA9IDwweDQ4MDc2MDAwIDB4ZmY+OwotCQkJcmVnLW5hbWVz ID0gIm1wdSI7Ci0JCQlpbnRlcnJ1cHRzID0gPDYyPiwgLyogVFggaW50ZXJydXB0ICovCi0JCQkJ ICAgICA8NjM+OyAvKiBSWCBpbnRlcnJ1cHQgKi8KLQkJCWludGVycnVwdC1uYW1lcyA9ICJ0eCIs ICJyeCI7Ci0JCQl0aSxod21vZHMgPSAibWNic3AyIjsKLQkJCWRtYXMgPSA8JnNkbWEgMzM+LAot CQkJICAgICAgIDwmc2RtYSAzND47Ci0JCQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQkJc3Rh dHVzID0gImRpc2FibGVkIjsKLQkJfTsKLQotCQltc2RpMTogbW1jQDQ4MDljMDAwIHsKLQkJCWNv bXBhdGlibGUgPSAidGksb21hcDI0MjAtbW1jIjsKLQkJCXRpLGh3bW9kcyA9ICJtc2RpMSI7Ci0J CQlyZWcgPSA8MHg0ODA5YzAwMCAweDgwPjsKLQkJCWludGVycnVwdHMgPSA8ODM+OwotCQkJZG1h cyA9IDwmc2RtYSA2MSAmc2RtYSA2Mj47Ci0JCQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQl9 OwotCi0JCW1haWxib3g6IG1haWxib3hANDgwOTQwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxv bWFwMi1tYWlsYm94IjsKLQkJCXJlZyA9IDwweDQ4MDk0MDAwIDB4MjAwPjsKLQkJCWludGVycnVw dHMgPSA8MjY+LCA8MzQ+OwotCQkJdGksaHdtb2RzID0gIm1haWxib3giOwotCQkJI21ib3gtY2Vs bHMgPSA8MT47Ci0JCQl0aSxtYm94LW51bS11c2VycyA9IDw0PjsKLQkJCXRpLG1ib3gtbnVtLWZp Zm9zID0gPDY+OwotCQkJbWJveF9kc3A6IG1ib3gtZHNwIHsKLQkJCQl0aSxtYm94LXR4ID0gPDAg MCAwPjsKLQkJCQl0aSxtYm94LXJ4ID0gPDEgMCAwPjsKLQkJCX07Ci0JCQltYm94X2l2YTogbWJv eC1pdmEgewotCQkJCXRpLG1ib3gtdHggPSA8MiAxIDM+OwotCQkJCXRpLG1ib3gtcnggPSA8MyAx IDM+OwotCQkJfTsKLQkJfTsKLQotCQl0aW1lcjFfdGFyZ2V0OiB0YXJnZXQtbW9kdWxlQDQ4MDI4 MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksc3lzYy1vbWFwMi10aW1lciIsICJ0aSxzeXNjIjsK LQkJCXJlZyA9IDwweDQ4MDI4MDAwIDB4ND4sCi0JCQkgICAgICA8MHg0ODAyODAxMCAweDQ+LAot CQkJICAgICAgPDB4NDgwMjgwMTQgMHg0PjsKLQkJCXJlZy1uYW1lcyA9ICJyZXYiLCAic3lzYyIs ICJzeXNzIjsKLQkJCXRpLHN5c2MtbWFzayA9IDwoU1lTQ19PTUFQMl9DTE9DS0FDVElWSVRZIHwK LQkJCQkJIFNZU0NfT01BUDJfRU1VRlJFRSB8Ci0JCQkJCSBTWVNDX09NQVAyX0VOQVdBS0VVUCB8 Ci0JCQkJCSBTWVNDX09NQVAyX1NPRlRSRVNFVCB8Ci0JCQkJCSBTWVNDX09NQVAyX0FVVE9JRExF KT47Ci0JCQl0aSxzeXNjLXNpZGxlID0gPFNZU0NfSURMRV9GT1JDRT4sCi0JCQkJCTxTWVNDX0lE TEVfTk8+LAotCQkJCQk8U1lTQ19JRExFX1NNQVJUPjsKLQkJCXRpLHN5c3MtbWFzayA9IDwxPjsK LQkJCWNsb2NrcyA9IDwmZ3B0MV9mY2s+LCA8JmdwdDFfaWNrPjsKLQkJCWNsb2NrLW5hbWVzID0g ImZjayIsICJpY2siOwotCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkjc2l6ZS1jZWxscyA9 IDwxPjsKLQkJCXJhbmdlcyA9IDwweDAgMHg0ODAyODAwMCAweDEwMDA+OwotCi0JCQl0aW1lcjE6 IHRpbWVyQDAgewotCQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MjAtdGltZXIiOwotCQkJCXJl ZyA9IDwwIDB4NDAwPjsKLQkJCQlpbnRlcnJ1cHRzID0gPDM3PjsKLQkJCQl0aSx0aW1lci1hbHdv bjsKLQkJCX07Ci0JCX07Ci0KLQkJd2RfdGltZXIyOiB3ZHRANDgwMjIwMDAgewotCQkJY29tcGF0 aWJsZSA9ICJ0aSxvbWFwMi13ZHQiOwotCQkJdGksaHdtb2RzID0gIndkX3RpbWVyMiI7Ci0JCQly ZWcgPSA8MHg0ODAyMjAwMCAweDgwPjsKLQkJfTsKLQl9OwotfTsKLQotJmkyYzEgewotCWNvbXBh dGlibGUgPSAidGksb21hcDI0MjAtaTJjIjsKLX07Ci0KLSZpMmMyIHsKLQljb21wYXRpYmxlID0g InRpLG9tYXAyNDIwLWkyYyI7Ci19OwotCi0jaW5jbHVkZSAib21hcDI0eHgtY2xvY2tzLmR0c2ki Ci0jaW5jbHVkZSAib21hcDI0MjAtY2xvY2tzLmR0c2kiCi0KLS8qIFByZWZlcnJlZCBhbHdheXMt b24gdGltZXIgZm9yIGNsb2NrZXZlbnQgKi8KLSZ0aW1lcjFfdGFyZ2V0IHsKLQl0aSxuby1yZXNl dC1vbi1pbml0OwotCXRpLG5vLWlkbGU7Ci0JdGltZXJAMCB7Ci0JCWFzc2lnbmVkLWNsb2NrcyA9 IDwmZ3B0MV9mY2s+OwotCQlhc3NpZ25lZC1jbG9jay1wYXJlbnRzID0gPCZmdW5jXzMya19jaz47 Ci0JfTsKLX07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMw LWNsb2Nrcy5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQzMC1jbG9ja3Mu ZHRzaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGU1YWI1MTg5NDc2Li4wMDAwMDAw MDAwMDAKLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQzMC1jbG9ja3MuZHRz aQorKysgL2Rldi9udWxsCkBAIC0xLDM0MSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogRGV2aWNlIFRyZWUgU291cmNlIGZvciBPTUFQMjQz MCBjbG9jayBkYXRhCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDE0IFRleGFzIEluc3RydW1lbnRz LCBJbmMuCi0gKi8KLQotJnNjbV9jbG9ja3MgewotCW1jYnNwM19tdXhfZmNrOiBtY2JzcDNfbXV4 X2Zja0A3OCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21w b3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzk2bV9jaz4sIDwmbWNic3BfY2xr cz47Ci0JCXJlZyA9IDwweDc4PjsKLQl9OwotCi0JbWNic3AzX2ZjazogbWNic3AzX2ZjayB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2si OwotCQljbG9ja3MgPSA8Jm1jYnNwM19nYXRlX2Zjaz4sIDwmbWNic3AzX211eF9mY2s+OwotCX07 Ci0KLQltY2JzcDRfbXV4X2ZjazogbWNic3A0X211eF9mY2tANzggewotCQkjY2xvY2stY2VsbHMg PSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmZnVuY185Nm1fY2s+LCA8Jm1jYnNwX2Nsa3M+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mj47 Ci0JCXJlZyA9IDwweDc4PjsKLQl9OwotCi0JbWNic3A0X2ZjazogbWNic3A0X2ZjayB7Ci0JCSNj bG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwot CQljbG9ja3MgPSA8Jm1jYnNwNF9nYXRlX2Zjaz4sIDwmbWNic3A0X211eF9mY2s+OwotCX07Ci0K LQltY2JzcDVfbXV4X2ZjazogbWNic3A1X211eF9mY2tANzggewotCQkjY2xvY2stY2VsbHMgPSA8 MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmZnVuY185Nm1fY2s+LCA8Jm1jYnNwX2Nsa3M+OwotCQl0aSxiaXQtc2hpZnQgPSA8ND47Ci0J CXJlZyA9IDwweDc4PjsKLQl9OwotCi0JbWNic3A1X2ZjazogbWNic3A1X2ZjayB7Ci0JCSNjbG9j ay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQlj bG9ja3MgPSA8Jm1jYnNwNV9nYXRlX2Zjaz4sIDwmbWNic3A1X211eF9mY2s+OwotCX07Ci19Owot Ci0mcHJjbV9jbG9ja3MgewotCWl2YTJfMV9nYXRlX2ljazogaXZhMl8xX2dhdGVfaWNrQDgwMCB7 Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtZ2F0 ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZHNwX2Zjaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwwPjsK LQkJcmVnID0gPDB4MDgwMD47Ci0JfTsKLQotCWl2YTJfMV9kaXZfaWNrOiBpdmEyXzFfZGl2X2lj a0A4NDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9z aXRlLWRpdmlkZXItY2xvY2siOwotCQljbG9ja3MgPSA8JmRzcF9mY2s+OwotCQl0aSxiaXQtc2hp ZnQgPSA8NT47Ci0JCXRpLG1heC1kaXYgPSA8Mz47Ci0JCXJlZyA9IDwweDA4NDA+OwotCQl0aSxp bmRleC1zdGFydHMtYXQtb25lOwotCX07Ci0KLQlpdmEyXzFfaWNrOiBpdmEyXzFfaWNrIHsKLQkJ I2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7 Ci0JCWNsb2NrcyA9IDwmaXZhMl8xX2dhdGVfaWNrPiwgPCZpdmEyXzFfZGl2X2ljaz47Ci0JfTsK LQotCW1kbV9nYXRlX2ljazogbWRtX2dhdGVfaWNrQGMxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xv Y2tzID0gPCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDA+OwotCQlyZWcgPSA8MHgwYzEw PjsKLQl9OwotCi0JbWRtX2Rpdl9pY2s6IG1kbV9kaXZfaWNrQGM0MCB7Ci0JCSNjbG9jay1jZWxs cyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtZGl2aWRlci1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXJlZyA9IDwweDBjNDA+OwotCQl0aSxkaXZpZGVycyA9 IDwwPiwgPDE+LCA8MD4sIDwwPiwgPDQ+LCA8MD4sIDw2PiwgPDA+LCA8MD4sIDw5PjsKLQl9Owot Ci0JbWRtX2ljazogbWRtX2ljayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8Jm1kbV9nYXRlX2ljaz4sIDwm bWRtX2Rpdl9pY2s+OwotCX07Ci0KLQltZG1fb3NjX2NrOiBtZG1fb3NjX2NrQGMwMCB7Ci0JCSNj bG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xv Y2siOwotCQljbG9ja3MgPSA8Jm9zY19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxPjsKLQkJcmVn ID0gPDB4MGMwMD47Ci0JfTsKLQotCW1jYnNwM19pY2s6IG1jYnNwM19pY2tAMjE0IHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9j ayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mz47Ci0JCXJlZyA9 IDwweDAyMTQ+OwotCX07Ci0KLQltY2JzcDNfZ2F0ZV9mY2s6IG1jYnNwM19nYXRlX2Zja0AyMDQg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWdh dGUtY2xvY2siOwotCQljbG9ja3MgPSA8Jm1jYnNwX2Nsa3M+OwotCQl0aSxiaXQtc2hpZnQgPSA8 Mz47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci0KLQltY2JzcDRfaWNrOiBtY2JzcDRfaWNrQDIx NCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRl cmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDQ+ OwotCQlyZWcgPSA8MHgwMjE0PjsKLQl9OwotCi0JbWNic3A0X2dhdGVfZmNrOiBtY2JzcDRfZ2F0 ZV9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNv bXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZtY2JzcF9jbGtzPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDQ+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0JbWNic3A1X2ljazogbWNi c3A1X2lja0AyMTQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGks b21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1z aGlmdCA9IDw1PjsKLQkJcmVnID0gPDB4MDIxND47Ci0JfTsKLQotCW1jYnNwNV9nYXRlX2Zjazog bWNic3A1X2dhdGVfZmNrQDIwNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJ0aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbWNic3BfY2xrcz47 Ci0JCXRpLGJpdC1zaGlmdCA9IDw1PjsKLQkJcmVnID0gPDB4MDIwND47Ci0JfTsKLQotCW1jc3Bp M19pY2s6IG1jc3BpM19pY2tAMjE0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8OT47Ci0JCXJlZyA9IDwweDAyMTQ+OwotCX07Ci0KLQltY3NwaTNf ZmNrOiBtY3NwaTNfZmNrQDIwNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfNDhtX2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDk+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0JaWNyX2ljazog aWNyX2lja0A0MTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGks b21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZzeXNfY2s+OwotCQl0aSxiaXQt c2hpZnQgPSA8Nj47Ci0JCXJlZyA9IDwweDA0MTA+OwotCX07Ci0KLQlpMmNoczFfZmNrOiBpMmNo czFfZmNrQDIwNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxv bWFwMjQzMC1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfOTZtX2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDE5PjsKLQkJcmVnID0gPDB4MDIwND47Ci0JfTsKLQotCWkyY2hzMl9m Y2s6IGkyY2hzMl9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxl ID0gInRpLG9tYXAyNDMwLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY185Nm1f Y2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MjA+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0J dXNiaHNfaWNrOiB1c2Joc19pY2tAMjE0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9s M19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw2PjsKLQkJcmVnID0gPDB4MDIxND47Ci0JfTsKLQot CW1tY2hzMV9pY2s6IG1tY2hzMV9pY2tAMjE0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQlj b21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRf Y2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Nz47Ci0JCXJlZyA9IDwweDAyMTQ+OwotCX07Ci0KLQlt bWNoczFfZmNrOiBtbWNoczFfZmNrQDIwNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29t cGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfOTZtX2Nr PjsKLQkJdGksYml0LXNoaWZ0ID0gPDc+OwotCQlyZWcgPSA8MHgwMjA0PjsKLQl9OwotCi0JbW1j aHMyX2ljazogbW1jaHMyX2lja0AyMTQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47 Ci0JCXRpLGJpdC1zaGlmdCA9IDw4PjsKLQkJcmVnID0gPDB4MDIxND47Ci0JfTsKLQotCW1tY2hz Ml9mY2s6IG1tY2hzMl9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY185Nm1fY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8OD47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci0KLQlncGlvNV9p Y2s6IGdwaW81X2lja0AyMTQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRp LGJpdC1zaGlmdCA9IDwxMD47Ci0JCXJlZyA9IDwweDAyMTQ+OwotCX07Ci0KLQlncGlvNV9mY2s6 IGdwaW81X2Zja0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0JCXRpLGJp dC1zaGlmdCA9IDwxMD47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci0KLQltZG1faW50Y19pY2s6 IG1kbV9pbnRjX2lja0AyMTQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRp LGJpdC1zaGlmdCA9IDwxMT47Ci0JCXJlZyA9IDwweDAyMTQ+OwotCX07Ci0KLQltbWNoc2RiMV9m Y2s6IG1tY2hzZGIxX2Zja0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGli bGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0J CXRpLGJpdC1zaGlmdCA9IDwxNj47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci0KLQltbWNoc2Ri Ml9mY2s6IG1tY2hzZGIyX2Zja0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47 Ci0JCXRpLGJpdC1zaGlmdCA9IDwxNz47Ci0JCXJlZyA9IDwweDAyMDQ+OwotCX07Ci19OwotCi0m cHJjbV9jbG9ja2RvbWFpbnMgewotCWdmeF9jbGtkbTogZ2Z4X2Nsa2RtIHsKLQkJY29tcGF0aWJs ZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwmZ2Z4X2ljaz47Ci0JfTsKLQotCWNv cmVfbDNfY2xrZG06IGNvcmVfbDNfY2xrZG0gewotCQljb21wYXRpYmxlID0gInRpLGNsb2NrZG9t YWluIjsKLQkJY2xvY2tzID0gPCZjYW1fZmNrPiwgPCZ1c2JfZmNrPiwgPCZ1c2Joc19pY2s+Owot CX07Ci0KLQl3a3VwX2Nsa2RtOiB3a3VwX2Nsa2RtIHsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjbG9j a2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwmZHBsbF9jaz4sIDwmZW11bF9jaz4sIDwmZ3B0MV9pY2s+ LCA8JmdwaW9zX2ljaz4sCi0JCQkgPCZncGlvc19mY2s+LCA8Jm1wdV93ZHRfaWNrPiwgPCZtcHVf d2R0X2Zjaz4sCi0JCQkgPCZzeW5jXzMya19pY2s+LCA8JndkdDFfaWNrPiwgPCZvbWFwY3RybF9p Y2s+LAotCQkJIDwmaWNyX2ljaz47Ci0JfTsKLQotCWRzc19jbGtkbTogZHNzX2Nsa2RtIHsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwmZHNzX2ljaz4sIDwm ZHNzXzU0bV9mY2s+OwotCX07Ci0KLQljb3JlX2w0X2Nsa2RtOiBjb3JlX2w0X2Nsa2RtIHsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSxjbG9ja2RvbWFpbiI7Ci0JCWNsb2NrcyA9IDwmc3NpX2w0X2ljaz4s IDwmZ3B0Ml9pY2s+LCA8JmdwdDNfaWNrPiwgPCZncHQ0X2ljaz4sCi0JCQkgPCZncHQ1X2ljaz4s IDwmZ3B0Nl9pY2s+LCA8JmdwdDdfaWNrPiwgPCZncHQ4X2ljaz4sCi0JCQkgPCZncHQ5X2ljaz4s IDwmZ3B0MTBfaWNrPiwgPCZncHQxMV9pY2s+LCA8JmdwdDEyX2ljaz4sCi0JCQkgPCZtY2JzcDFf aWNrPiwgPCZtY2JzcDJfaWNrPiwgPCZtY2JzcDNfaWNrPiwKLQkJCSA8Jm1jYnNwNF9pY2s+LCA8 Jm1jYnNwNV9pY2s+LCA8Jm1jc3BpMV9pY2s+LAotCQkJIDwmbWNzcGkxX2Zjaz4sIDwmbWNzcGky X2ljaz4sIDwmbWNzcGkyX2Zjaz4sCi0JCQkgPCZtY3NwaTNfaWNrPiwgPCZtY3NwaTNfZmNrPiwg PCZ1YXJ0MV9pY2s+LAotCQkJIDwmdWFydDFfZmNrPiwgPCZ1YXJ0Ml9pY2s+LCA8JnVhcnQyX2Zj az4sIDwmdWFydDNfaWNrPiwKLQkJCSA8JnVhcnQzX2Zjaz4sIDwmY2FtX2ljaz4sIDwmbWFpbGJv eGVzX2ljaz4sCi0JCQkgPCZ3ZHQ0X2ljaz4sIDwmd2R0NF9mY2s+LCA8Jm1zcHJvX2ljaz4sIDwm bXNwcm9fZmNrPiwKLQkJCSA8JmZhY19pY2s+LCA8JmZhY19mY2s+LCA8JmhkcV9pY2s+LCA8Jmhk cV9mY2s+LAotCQkJIDwmaTJjMV9pY2s+LCA8JmkyY2hzMV9mY2s+LCA8JmkyYzJfaWNrPiwgPCZp MmNoczJfZmNrPiwKLQkJCSA8JmRlc19pY2s+LCA8JnNoYV9pY2s+LCA8JnJuZ19pY2s+LCA8JmFl c19pY2s+LAotCQkJIDwmcGthX2ljaz4sIDwmbW1jaHMxX2ljaz4sIDwmbW1jaHMxX2Zjaz4sCi0J CQkgPCZtbWNoczJfaWNrPiwgPCZtbWNoczJfZmNrPiwgPCZncGlvNV9pY2s+LAotCQkJIDwmZ3Bp bzVfZmNrPiwgPCZtZG1faW50Y19pY2s+LCA8Jm1tY2hzZGIxX2Zjaz4sCi0JCQkgPCZtbWNoc2Ri Ml9mY2s+OwotCX07Ci0KLQltZG1fY2xrZG06IG1kbV9jbGtkbSB7Ci0JCWNvbXBhdGlibGUgPSAi dGksY2xvY2tkb21haW4iOwotCQljbG9ja3MgPSA8Jm1kbV9vc2NfY2s+OwotCX07Ci19OwotCi0m ZnVuY185Nm1fY2sgewotCWNvbXBhdGlibGUgPSAidGksbXV4LWNsb2NrIjsKLQljbG9ja3MgPSA8 JmFwbGw5Nl9jaz4sIDwmYWx0X2NrPjsKLQl0aSxiaXQtc2hpZnQgPSA8ND47Ci0JcmVnID0gPDB4 MDU0MD47Ci19OwotCi0mZHNwX2Rpdl9mY2sgewotCXRpLG1heC1kaXYgPSA8ND47Ci0JdGksaW5k ZXgtc3RhcnRzLWF0LW9uZTsKLX07Ci0KLSZzc2lfc3NyX3NzdF9kaXZfZmNrIHsKLQl0aSxtYXgt ZGl2ID0gPDU+OwotCXRpLGluZGV4LXN0YXJ0cy1hdC1vbmU7Ci19OwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjQzMC1zZHAuZHRzIGIvYXJjaC9hcm0vYm9vdC9k dHMvdGkvb21hcC9vbWFwMjQzMC1zZHAuZHRzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAyMDcwNzA2NzdlM2EuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9ib290L2R0cy90aS9v bWFwL29tYXAyNDMwLXNkcC5kdHMKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogQ29weXJpZ2h0IChD KSAyMDEzIFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZCAtIGh0dHBzOi8vd3d3LnRpLmNv bS8KLSAqLwotL2R0cy12MS87Ci0KLSNpbmNsdWRlICJvbWFwMjQzMC5kdHNpIgotCi0vIHsKLQlt b2RlbCA9ICJUSSBPTUFQMjQzMCBTRFAiOwotCWNvbXBhdGlibGUgPSAidGksb21hcDI0MzAtc2Rw IiwgInRpLG9tYXAyNDMwIiwgInRpLG9tYXAyIjsKLQotCW1lbW9yeUA4MDAwMDAwMCB7Ci0JCWRl dmljZV90eXBlID0gIm1lbW9yeSI7Ci0JCXJlZyA9IDwweDgwMDAwMDAwIDB4ODAwMDAwMD47IC8q IDEyOCBNQiAqLwotCX07Ci19OwotCi0maTJjMiB7Ci0JY2xvY2stZnJlcXVlbmN5ID0gPDEwMDAw MD47Ci0KLQl0d2w6IHR3bEA0OCB7Ci0JCXJlZyA9IDwweDQ4PjsKLQkJaW50ZXJydXB0cyA9IDw3 PjsgLyogU1lTX05JUlEgY2FzY2FkZWQgdG8gaW50YyAqLwotCX07Ci19OwotCi0jaW5jbHVkZSAi dHdsNDAzMC5kdHNpIgotCi0mbW1jMSB7Ci0Jdm1tYy1zdXBwbHkgPSA8JnZtbWMxPjsKLQlidXMt d2lkdGggPSA8ND47Ci19OwotCi0mZ3BtYyB7Ci0JcmFuZ2VzID0gPDUgMCAweDA4MDAwMDAwIDB4 MDEwMDAwMDA+OwotCWV0aGVybmV0QGdwbWMgewotCQljb21wYXRpYmxlID0gInNtc2MsbGFuOTFj OTQiOwotCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlvNT47Ci0JCWludGVycnVwdHMgPSA8MjEg SVJRX1RZUEVfTEVWRUxfTE9XPjsJLyogZ3BpbzE0OSAqLwotCQlyZWcgPSA8NSAweDMwMCAweGY+ OwotCQliYW5rLXdpZHRoID0gPDI+OwotCQlncG1jLHN5bmMtY2xrLXBzID0gPDA+OwotCQlncG1j LG11eC1hZGQtZGF0YSA9IDwyPjsKLQkJZ3BtYyxkZXZpY2Utd2lkdGggPSA8MT47Ci0JCWdwbWMs Y3ljbGUyY3ljbGUtc2FtZWNzZW47Ci0JCWdwbWMsY3ljbGUyY3ljbGUtZGlmZmNzZW47Ci0JCWdw bWMsY3Mtb24tbnMgPSA8Nj47Ci0JCWdwbWMsY3MtcmQtb2ZmLW5zID0gPDE4Nz47Ci0JCWdwbWMs Y3Mtd3Itb2ZmLW5zID0gPDE4Nz47Ci0JCWdwbWMsYWR2LW9uLW5zID0gPDE4PjsKLQkJZ3BtYyxh ZHYtcmQtb2ZmLW5zID0gPDQ4PjsKLQkJZ3BtYyxhZHYtd3Itb2ZmLW5zID0gPDQ4PjsKLQkJZ3Bt YyxvZS1vbi1ucyA9IDw2MD47Ci0JCWdwbWMsb2Utb2ZmLW5zID0gPDE2OT47Ci0JCWdwbWMsd2Ut b24tbnMgPSA8NjY+OwotCQlncG1jLHdlLW9mZi1ucyA9IDwxNjk+OwotCQlncG1jLHJkLWN5Y2xl LW5zID0gPDE4Nz47Ci0JCWdwbWMsd3ItY3ljbGUtbnMgPSA8MTg3PjsKLQkJZ3BtYyxhY2Nlc3Mt bnMgPSA8MTg3PjsKLQkJZ3BtYyxwYWdlLWJ1cnN0LWFjY2Vzcy1ucyA9IDwyND47Ci0JCWdwbWMs YnVzLXR1cm5hcm91bmQtbnMgPSA8MjQ+OwotCQlncG1jLGN5Y2xlMmN5Y2xlLWRlbGF5LW5zID0g PDI0PjsKLQkJZ3BtYyx3YWl0LW1vbml0b3JpbmctbnMgPSA8MD47Ci0JCWdwbWMsY2xrLWFjdGl2 YXRpb24tbnMgPSA8MD47Ci0JCWdwbWMsd3ItZGF0YS1tdXgtYnVzLW5zID0gPDA+OwotCQlncG1j LHdyLWFjY2Vzcy1ucyA9IDwwPjsKLQl9OwotfTsKLQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9v dC9kdHMvdGkvb21hcC9vbWFwMjQzMC5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9v bWFwMjQzMC5kdHNpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWJkNDcxZjkyMjMu LjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9ib290L2R0cy90aS9vbWFwL29tYXAyNDMwLmR0 c2kKKysrIC9kZXYvbnVsbApAQCAtMSwzNjYgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIERldmljZSBUcmVlIFNvdXJjZSBmb3IgT01BUDI0 M3ggU29DCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFRleGFzIEluc3RydW1lbnRzIEluY29y cG9yYXRlZCAtIGh0dHBzOi8vd3d3LnRpLmNvbS8KLSAqLwotCi0jaW5jbHVkZSAib21hcDIuZHRz aSIKLQotLyB7Ci0JY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQzMCIsICJ0aSxvbWFwMiI7Ci0KLQlv Y3AgewotCQlsNF93a3VwOiBsNF93a3VwQDQ5MDAwMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGks b21hcDItbDQtd2t1cCIsICJzaW1wbGUtYnVzIjsKLQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owot CQkJI3NpemUtY2VsbHMgPSA8MT47Ci0JCQlyYW5nZXMgPSA8MCAweDQ5MDAwMDAwIDB4MzEwMDA+ OwotCi0JCQlwcmNtOiBwcmNtQDYwMDAgewotCQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItcHJj bSI7Ci0JCQkJcmVnID0gPDB4NjAwMCAweDEwMDA+OwotCi0JCQkJcHJjbV9jbG9ja3M6IGNsb2Nr cyB7Ci0JCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsK LQkJCQl9OwotCi0JCQkJcHJjbV9jbG9ja2RvbWFpbnM6IGNsb2NrZG9tYWlucyB7Ci0JCQkJfTsK LQkJCX07Ci0KLQkJCXNjbTogc2NtQDIwMDAgewotCQkJCWNvbXBhdGlibGUgPSAidGksb21hcDIt c2NtIiwgInNpbXBsZS1idXMiOwotCQkJCXJlZyA9IDwweDIwMDAgMHgxMDAwPjsKLQkJCQkjYWRk cmVzcy1jZWxscyA9IDwxPjsKLQkJCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJCQkjcGluY3RybC1j ZWxscyA9IDwxPjsKLQkJCQlyYW5nZXMgPSA8MCAweDIwMDAgMHgxMDAwPjsKLQotCQkJCW9tYXAy NDMwX3BteDogcGlubXV4QDMwIHsKLQkJCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQzMC1wYWRj b25mIiwKLQkJCQkJCSAgICAgInBpbmN0cmwtc2luZ2xlIjsKLQkJCQkJcmVnID0gPDB4MzAgMHgw MTU0PjsKLQkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkJCSNzaXplLWNlbGxzID0gPDA+ OwotCQkJCQkjcGluY3RybC1jZWxscyA9IDwxPjsKLQkJCQkJcGluY3RybC1zaW5nbGUscmVnaXN0 ZXItd2lkdGggPSA8OD47Ci0JCQkJCXBpbmN0cmwtc2luZ2xlLGZ1bmN0aW9uLW1hc2sgPSA8MHgz Zj47Ci0JCQkJfTsKLQotCQkJCXNjbV9jb25mOiBzY21fY29uZkAyNzAgewotCQkJCQljb21wYXRp YmxlID0gInRpLG9tYXAyLXNjbS1jb25mIiwgInN5c2NvbiIsCi0JCQkJCQkgICAgICJzaW1wbGUt YnVzIjsKLQkJCQkJcmVnID0gPDB4MjcwIDB4MjQwPjsKLQkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8 MT47Ci0JCQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJCQlyYW5nZXMgPSA8MCAweDI3MCAweDI0 MD47Ci0KLQkJCQkJc2NtX2Nsb2NrczogY2xvY2tzIHsKLQkJCQkJCSNhZGRyZXNzLWNlbGxzID0g PDE+OwotCQkJCQkJI3NpemUtY2VsbHMgPSA8MD47Ci0JCQkJCX07Ci0KLQkJCQkJcGJpYXNfcmVn dWxhdG9yOiBwYmlhc19yZWd1bGF0b3JAMjMwIHsKLQkJCQkJCWNvbXBhdGlibGUgPSAidGkscGJp YXMtb21hcDIiLCAidGkscGJpYXMtb21hcCI7Ci0JCQkJCQlyZWcgPSA8MHgyMzAgMHg0PjsKLQkJ CQkJCXN5c2NvbiA9IDwmc2NtX2NvbmY+OwotCQkJCQkJcGJpYXNfbW1jX3JlZzogcGJpYXNfbW1j X29tYXAyNDMwIHsKLQkJCQkJCQlyZWd1bGF0b3ItbmFtZSA9ICJwYmlhc19tbWNfb21hcDI0MzAi OwotCQkJCQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OwotCQkJCQkJCXJl Z3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMwMDAwMDA+OwotCQkJCQkJfTsKLQkJCQkJfTsKLQkJ CQl9OwotCi0JCQkJc2NtX2Nsb2NrZG9tYWluczogY2xvY2tkb21haW5zIHsKLQkJCQl9OwotCQkJ fTsKLQotCQkJdGFyZ2V0LW1vZHVsZUAyMDAwMCB7Ci0JCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNj LW9tYXAyIiwgInRpLHN5c2MiOwotCQkJCXJlZyA9IDwweDIwMDAwIDB4ND4sCi0JCQkJICAgICAg PDB4MjAwMDQgMHg0PjsKLQkJCQlyZWctbmFtZXMgPSAicmV2IiwgInN5c2MiOwotCQkJCXRpLHN5 c2Mtc2lkbGUgPSA8U1lTQ19JRExFX0ZPUkNFPiwKLQkJCQkJCTxTWVNDX0lETEVfTk8+OwotCQkJ CWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+OwotCQkJCWNsb2NrLW5hbWVzID0gImZjayI7Ci0JCQkJ I2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCQkJI3NpemUtY2VsbHMgPSA8MT47Ci0JCQkJcmFuZ2Vz ID0gPDB4MCAweDIwMDAwIDB4MTAwMD47Ci0KLQkJCQljb3VudGVyMzJrOiBjb3VudGVyQDAgewot CQkJCQljb21wYXRpYmxlID0gInRpLG9tYXAtY291bnRlcjMyayI7Ci0JCQkJCXJlZyA9IDwwIDB4 MjA+OwotCQkJCX07Ci0JCQl9OwotCQl9OwotCi0JCWdwaW8xOiBncGlvQDQ5MDBjMDAwIHsKLQkJ CWNvbXBhdGlibGUgPSAidGksb21hcDItZ3BpbyI7Ci0JCQlyZWcgPSA8MHg0OTAwYzAwMCAweDIw MD47Ci0JCQlpbnRlcnJ1cHRzID0gPDI5PjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvMSI7Ci0JCQl0 aSxncGlvLWFsd2F5cy1vbjsKLQkJCSNncGlvLWNlbGxzID0gPDI+OwotCQkJZ3Bpby1jb250cm9s bGVyOwotCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKLQkJCWludGVycnVwdC1jb250cm9sbGVy OwotCQl9OwotCi0JCWdwaW8yOiBncGlvQDQ5MDBlMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGks b21hcDItZ3BpbyI7Ci0JCQlyZWcgPSA8MHg0OTAwZTAwMCAweDIwMD47Ci0JCQlpbnRlcnJ1cHRz ID0gPDMwPjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvMiI7Ci0JCQl0aSxncGlvLWFsd2F5cy1vbjsK LQkJCSNncGlvLWNlbGxzID0gPDI+OwotCQkJZ3Bpby1jb250cm9sbGVyOwotCQkJI2ludGVycnVw dC1jZWxscyA9IDwyPjsKLQkJCWludGVycnVwdC1jb250cm9sbGVyOwotCQl9OwotCi0JCWdwaW8z OiBncGlvQDQ5MDEwMDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItZ3BpbyI7Ci0JCQly ZWcgPSA8MHg0OTAxMDAwMCAweDIwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDMxPjsKLQkJCXRpLGh3 bW9kcyA9ICJncGlvMyI7Ci0JCQl0aSxncGlvLWFsd2F5cy1vbjsKLQkJCSNncGlvLWNlbGxzID0g PDI+OwotCQkJZ3Bpby1jb250cm9sbGVyOwotCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKLQkJ CWludGVycnVwdC1jb250cm9sbGVyOwotCQl9OwotCi0JCWdwaW80OiBncGlvQDQ5MDEyMDAwIHsK LQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItZ3BpbyI7Ci0JCQlyZWcgPSA8MHg0OTAxMjAwMCAw eDIwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDMyPjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvNCI7Ci0J CQl0aSxncGlvLWFsd2F5cy1vbjsKLQkJCSNncGlvLWNlbGxzID0gPDI+OwotCQkJZ3Bpby1jb250 cm9sbGVyOwotCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKLQkJCWludGVycnVwdC1jb250cm9s bGVyOwotCQl9OwotCi0JCWdwaW81OiBncGlvQDQ4MGI2MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAi dGksb21hcDItZ3BpbyI7Ci0JCQlyZWcgPSA8MHg0ODBiNjAwMCAweDIwMD47Ci0JCQlpbnRlcnJ1 cHRzID0gPDMzPjsKLQkJCXRpLGh3bW9kcyA9ICJncGlvNSI7Ci0JCQkjZ3Bpby1jZWxscyA9IDwy PjsKLQkJCWdwaW8tY29udHJvbGxlcjsKLQkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47Ci0JCQlp bnRlcnJ1cHQtY29udHJvbGxlcjsKLQkJfTsKLQotCQlncG1jOiBncG1jQDZlMDAwMDAwIHsKLQkJ CWNvbXBhdGlibGUgPSAidGksb21hcDI0MzAtZ3BtYyI7Ci0JCQlyZWcgPSA8MHg2ZTAwMDAwMCAw eDEwMDA+OwotCQkJI2FkZHJlc3MtY2VsbHMgPSA8Mj47Ci0JCQkjc2l6ZS1jZWxscyA9IDwxPjsK LQkJCWludGVycnVwdHMgPSA8MjA+OwotCQkJZ3BtYyxudW0tY3MgPSA8OD47Ci0JCQlncG1jLG51 bS13YWl0cGlucyA9IDw0PjsKLQkJCXRpLGh3bW9kcyA9ICJncG1jIjsKLQkJCWludGVycnVwdC1j b250cm9sbGVyOwotCQkJI2ludGVycnVwdC1jZWxscyA9IDwyPjsKLQkJCWdwaW8tY29udHJvbGxl cjsKLQkJCSNncGlvLWNlbGxzID0gPDI+OwotCQl9OwotCi0JCW1jYnNwMTogbWNic3BANDgwNzQw MDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQzMC1tY2JzcCI7Ci0JCQlyZWcgPSA8MHg0 ODA3NDAwMCAweGZmPjsKLQkJCXJlZy1uYW1lcyA9ICJtcHUiOwotCQkJaW50ZXJydXB0cyA9IDw2 ND4sIC8qIE9DUCBjb21wbGlhbnQgaW50ZXJydXB0ICovCi0JCQkJICAgICA8NTk+LCAvKiBUWCBp bnRlcnJ1cHQgKi8KLQkJCQkgICAgIDw2MD4sIC8qIFJYIGludGVycnVwdCAqLwotCQkJCSAgICAg PDYxPjsgLyogUlggb3ZlcmZsb3cgaW50ZXJydXB0ICovCi0JCQlpbnRlcnJ1cHQtbmFtZXMgPSAi Y29tbW9uIiwgInR4IiwgInJ4IiwgInJ4X292ZXJmbG93IjsKLQkJCXRpLGJ1ZmZlci1zaXplID0g PDEyOD47Ci0JCQl0aSxod21vZHMgPSAibWNic3AxIjsKLQkJCWRtYXMgPSA8JnNkbWEgMzE+LAot CQkJICAgICAgIDwmc2RtYSAzMj47Ci0JCQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQkJc3Rh dHVzID0gImRpc2FibGVkIjsKLQkJfTsKLQotCQltY2JzcDI6IG1jYnNwQDQ4MDc2MDAwIHsKLQkJ CWNvbXBhdGlibGUgPSAidGksb21hcDI0MzAtbWNic3AiOwotCQkJcmVnID0gPDB4NDgwNzYwMDAg MHhmZj47Ci0JCQlyZWctbmFtZXMgPSAibXB1IjsKLQkJCWludGVycnVwdHMgPSA8MTY+LCAvKiBP Q1AgY29tcGxpYW50IGludGVycnVwdCAqLwotCQkJCSAgICAgPDYyPiwgLyogVFggaW50ZXJydXB0 ICovCi0JCQkJICAgICA8NjM+OyAvKiBSWCBpbnRlcnJ1cHQgKi8KLQkJCWludGVycnVwdC1uYW1l cyA9ICJjb21tb24iLCAidHgiLCAicngiOwotCQkJdGksYnVmZmVyLXNpemUgPSA8MTI4PjsKLQkJ CXRpLGh3bW9kcyA9ICJtY2JzcDIiOwotCQkJZG1hcyA9IDwmc2RtYSAzMz4sCi0JCQkgICAgICAg PCZzZG1hIDM0PjsKLQkJCWRtYS1uYW1lcyA9ICJ0eCIsICJyeCI7Ci0JCQlzdGF0dXMgPSAiZGlz YWJsZWQiOwotCQl9OwotCi0JCW1jYnNwMzogbWNic3BANDgwOGMwMDAgewotCQkJY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMjQzMC1tY2JzcCI7Ci0JCQlyZWcgPSA8MHg0ODA4YzAwMCAweGZmPjsKLQkJ CXJlZy1uYW1lcyA9ICJtcHUiOwotCQkJaW50ZXJydXB0cyA9IDwxNz4sIC8qIE9DUCBjb21wbGlh bnQgaW50ZXJydXB0ICovCi0JCQkJICAgICA8ODk+LCAvKiBUWCBpbnRlcnJ1cHQgKi8KLQkJCQkg ICAgIDw5MD47IC8qIFJYIGludGVycnVwdCAqLwotCQkJaW50ZXJydXB0LW5hbWVzID0gImNvbW1v biIsICJ0eCIsICJyeCI7Ci0JCQl0aSxidWZmZXItc2l6ZSA9IDwxMjg+OwotCQkJdGksaHdtb2Rz ID0gIm1jYnNwMyI7Ci0JCQlkbWFzID0gPCZzZG1hIDE3PiwKLQkJCSAgICAgICA8JnNkbWEgMTg+ OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKLQkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Ci0J CX07Ci0KLQkJbWNic3A0OiBtY2JzcEA0ODA4ZTAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9t YXAyNDMwLW1jYnNwIjsKLQkJCXJlZyA9IDwweDQ4MDhlMDAwIDB4ZmY+OwotCQkJcmVnLW5hbWVz ID0gIm1wdSI7Ci0JCQlpbnRlcnJ1cHRzID0gPDE4PiwgLyogT0NQIGNvbXBsaWFudCBpbnRlcnJ1 cHQgKi8KLQkJCQkgICAgIDw1ND4sIC8qIFRYIGludGVycnVwdCAqLwotCQkJCSAgICAgPDU1Pjsg LyogUlggaW50ZXJydXB0ICovCi0JCQlpbnRlcnJ1cHQtbmFtZXMgPSAiY29tbW9uIiwgInR4Iiwg InJ4IjsKLQkJCXRpLGJ1ZmZlci1zaXplID0gPDEyOD47Ci0JCQl0aSxod21vZHMgPSAibWNic3A0 IjsKLQkJCWRtYXMgPSA8JnNkbWEgMTk+LAotCQkJICAgICAgIDwmc2RtYSAyMD47Ci0JCQlkbWEt bmFtZXMgPSAidHgiLCAicngiOwotCQkJc3RhdHVzID0gImRpc2FibGVkIjsKLQkJfTsKLQotCQlt Y2JzcDU6IG1jYnNwQDQ4MDk2MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDI0MzAtbWNi c3AiOwotCQkJcmVnID0gPDB4NDgwOTYwMDAgMHhmZj47Ci0JCQlyZWctbmFtZXMgPSAibXB1IjsK LQkJCWludGVycnVwdHMgPSA8MTk+LCAvKiBPQ1AgY29tcGxpYW50IGludGVycnVwdCAqLwotCQkJ CSAgICAgPDgxPiwgLyogVFggaW50ZXJydXB0ICovCi0JCQkJICAgICA8ODI+OyAvKiBSWCBpbnRl cnJ1cHQgKi8KLQkJCWludGVycnVwdC1uYW1lcyA9ICJjb21tb24iLCAidHgiLCAicngiOwotCQkJ dGksYnVmZmVyLXNpemUgPSA8MTI4PjsKLQkJCXRpLGh3bW9kcyA9ICJtY2JzcDUiOwotCQkJZG1h cyA9IDwmc2RtYSAyMT4sCi0JCQkgICAgICAgPCZzZG1hIDIyPjsKLQkJCWRtYS1uYW1lcyA9ICJ0 eCIsICJyeCI7Ci0JCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwotCQl9OwotCi0JCW1tYzE6IG1tY0A0 ODA5YzAwMCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLWhzbW1jIjsKLQkJCXJlZyA9IDww eDQ4MDljMDAwIDB4MjAwPjsKLQkJCWludGVycnVwdHMgPSA8ODM+OwotCQkJdGksaHdtb2RzID0g Im1tYzEiOwotCQkJdGksZHVhbC12b2x0OwotCQkJZG1hcyA9IDwmc2RtYSA2MT4sIDwmc2RtYSA2 Mj47Ci0JCQlkbWEtbmFtZXMgPSAidHgiLCAicngiOwotCQkJcGJpYXMtc3VwcGx5ID0gPCZwYmlh c19tbWNfcmVnPjsKLQkJfTsKLQotCQltbWMyOiBtbWNANDgwYjQwMDAgewotCQkJY29tcGF0aWJs ZSA9ICJ0aSxvbWFwMi1oc21tYyI7Ci0JCQlyZWcgPSA8MHg0ODBiNDAwMCAweDIwMD47Ci0JCQlp bnRlcnJ1cHRzID0gPDg2PjsKLQkJCXRpLGh3bW9kcyA9ICJtbWMyIjsKLQkJCWRtYXMgPSA8JnNk bWEgNDc+LCA8JnNkbWEgNDg+OwotCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKLQkJfTsKLQot CQltYWlsYm94OiBtYWlsYm94QDQ4MDk0MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDIt bWFpbGJveCI7Ci0JCQlyZWcgPSA8MHg0ODA5NDAwMCAweDIwMD47Ci0JCQlpbnRlcnJ1cHRzID0g PDI2PjsKLQkJCXRpLGh3bW9kcyA9ICJtYWlsYm94IjsKLQkJCSNtYm94LWNlbGxzID0gPDE+Owot CQkJdGksbWJveC1udW0tdXNlcnMgPSA8ND47Ci0JCQl0aSxtYm94LW51bS1maWZvcyA9IDw2PjsK LQkJCW1ib3hfZHNwOiBtYm94LWRzcCB7Ci0JCQkJdGksbWJveC10eCA9IDwwIDAgMD47Ci0JCQkJ dGksbWJveC1yeCA9IDwxIDAgMD47Ci0JCQl9OwotCQl9OwotCi0JCXRpbWVyMV90YXJnZXQ6IHRh cmdldC1tb2R1bGVANDkwMTgwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxzeXNjLW9tYXAyLXRp bWVyIiwgInRpLHN5c2MiOwotCQkJcmVnID0gPDB4NDkwMTgwMDAgMHg0PiwKLQkJCSAgICAgIDww eDQ5MDE4MDEwIDB4ND4sCi0JCQkgICAgICA8MHg0OTAxODAxNCAweDQ+OwotCQkJcmVnLW5hbWVz ID0gInJldiIsICJzeXNjIiwgInN5c3MiOwotCQkJdGksc3lzYy1tYXNrID0gPChTWVNDX09NQVAy X0NMT0NLQUNUSVZJVFkgfAotCQkJCQkgU1lTQ19PTUFQMl9FTVVGUkVFIHwKLQkJCQkJIFNZU0Nf T01BUDJfRU5BV0FLRVVQIHwKLQkJCQkJIFNZU0NfT01BUDJfU09GVFJFU0VUIHwKLQkJCQkJIFNZ U0NfT01BUDJfQVVUT0lETEUpPjsKLQkJCXRpLHN5c2Mtc2lkbGUgPSA8U1lTQ19JRExFX0ZPUkNF PiwKLQkJCQkJPFNZU0NfSURMRV9OTz4sCi0JCQkJCTxTWVNDX0lETEVfU01BUlQ+OwotCQkJdGks c3lzcy1tYXNrID0gPDE+OwotCQkJY2xvY2tzID0gPCZncHQxX2Zjaz4sIDwmZ3B0MV9pY2s+Owot CQkJY2xvY2stbmFtZXMgPSAiZmNrIiwgImljayI7Ci0JCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsK LQkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJcmFuZ2VzID0gPDB4MCAweDQ5MDE4MDAwIDB4MTAw MD47Ci0KLQkJCXRpbWVyMTogdGltZXJAMCB7Ci0JCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQy MC10aW1lciI7Ci0JCQkJcmVnID0gPDAgMHg0MDA+OwotCQkJCWludGVycnVwdHMgPSA8Mzc+Owot CQkJCXRpLHRpbWVyLWFsd29uOwotCQkJfTsKLQkJfTsKLQotCQltY3NwaTM6IHNwaUA0ODBiODAw MCB7Ci0JCQljb21wYXRpYmxlID0gInRpLG9tYXAyLW1jc3BpIjsKLQkJCXRpLGh3bW9kcyA9ICJt Y3NwaTMiOwotCQkJcmVnID0gPDB4NDgwYjgwMDAgMHgxMDA+OwotCQkJaW50ZXJydXB0cyA9IDw5 MT47Ci0JCQlkbWFzID0gPCZzZG1hIDE1ICZzZG1hIDE2ICZzZG1hIDIzICZzZG1hIDI0PjsKLQkJ CWRtYS1uYW1lcyA9ICJ0eDAiLCAicngwIiwgInR4MSIsICJyeDEiOwotCQl9OwotCi0JCXVzYl9v dGdfaHM6IHVzYl9vdGdfaHNANDgwYWMwMDAgewotCQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1t dXNiIjsKLQkJCXRpLGh3bW9kcyA9ICJ1c2Jfb3RnX2hzIjsKLQkJCXJlZyA9IDwweDQ4MGFjMDAw IDB4MTAwMD47Ci0JCQlpbnRlcnJ1cHRzID0gPDkzPjsKLQkJfTsKLQotCQl3ZF90aW1lcjI6IHdh dGNoZG9nQDQ5MDE2MDAwIHsKLQkJCWNvbXBhdGlibGUgPSAidGksb21hcDItd2R0IjsKLQkJCXRp LGh3bW9kcyA9ICJ3ZF90aW1lcjIiOwotCQkJcmVnID0gPDB4NDkwMTYwMDAgMHg4MD47Ci0JCX07 Ci0JfTsKLX07Ci0KLSZzZG1hIHsKLQljb21wYXRpYmxlID0gInRpLG9tYXAyNDMwLXNkbWEiLCAi dGksb21hcC1zZG1hIjsKLX07Ci0KLSZpMmMxIHsKLQljb21wYXRpYmxlID0gInRpLG9tYXAyNDMw LWkyYyI7Ci19OwotCi0maTJjMiB7Ci0JY29tcGF0aWJsZSA9ICJ0aSxvbWFwMjQzMC1pMmMiOwot fTsKLQotI2luY2x1ZGUgIm9tYXAyNHh4LWNsb2Nrcy5kdHNpIgotI2luY2x1ZGUgIm9tYXAyNDMw LWNsb2Nrcy5kdHNpIgotCi0vKiBQcmVmZXJyZWQgYWx3YXlzLW9uIHRpbWVyIGZvciBjbG9ja2V2 ZW50ICovCi0mdGltZXIxX3RhcmdldCB7Ci0JdGksbm8tcmVzZXQtb24taW5pdDsKLQl0aSxuby1p ZGxlOwotCXRpbWVyQDAgewotCQlhc3NpZ25lZC1jbG9ja3MgPSA8JmdwdDFfZmNrPjsKLQkJYXNz aWduZWQtY2xvY2stcGFyZW50cyA9IDwmZnVuY18zMmtfY2s+OwotCX07Ci19OwpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vYm9vdC9kdHMvdGkvb21hcC9vbWFwMjR4eC1jbG9ja3MuZHRzaSBiL2FyY2gv YXJtL2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0eHgtY2xvY2tzLmR0c2kKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDA3YWY4N2VkZjBlMi4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJt L2Jvb3QvZHRzL3RpL29tYXAvb21hcDI0eHgtY2xvY2tzLmR0c2kKKysrIC9kZXYvbnVsbApAQCAt MSwxMjQxICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkK LS8qCi0gKiBEZXZpY2UgVHJlZSBTb3VyY2UgZm9yIE9NQVAyNHh4IGNsb2NrIGRhdGEKLSAqCi0g KiBDb3B5cmlnaHQgKEMpIDIwMTQgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqLwotJnNjbV9j bG9ja3MgewotCW1jYnNwMV9tdXhfZmNrOiBtY2JzcDFfbXV4X2Zja0A0IHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQlj bG9ja3MgPSA8JmZ1bmNfOTZtX2NrPiwgPCZtY2JzcF9jbGtzPjsKLQkJdGksYml0LXNoaWZ0ID0g PDI+OwotCQlyZWcgPSA8MHg0PjsKLQl9OwotCi0JbWNic3AxX2ZjazogbWNic3AxX2ZjayB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2si OwotCQljbG9ja3MgPSA8Jm1jYnNwMV9nYXRlX2Zjaz4sIDwmbWNic3AxX211eF9mY2s+OwotCX07 Ci0KLQltY2JzcDJfbXV4X2ZjazogbWNic3AyX211eF9mY2tANCB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tz ID0gPCZmdW5jXzk2bV9jaz4sIDwmbWNic3BfY2xrcz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw2PjsK LQkJcmVnID0gPDB4ND47Ci0JfTsKLQotCW1jYnNwMl9mY2s6IG1jYnNwMl9mY2sgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJ Y2xvY2tzID0gPCZtY2JzcDJfZ2F0ZV9mY2s+LCA8Jm1jYnNwMl9tdXhfZmNrPjsKLQl9OwotfTsK LQotJnByY21fY2xvY2tzIHsKLQlmdW5jXzMya19jazogZnVuY18zMmtfY2sgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOwotCQljbG9jay1mcmVx dWVuY3kgPSA8MzI3Njg+OwotCX07Ci0KLQlzZWN1cmVfMzJrX2NrOiBzZWN1cmVfMzJrX2NrIHsK LQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKLQkJ Y2xvY2stZnJlcXVlbmN5ID0gPDMyNzY4PjsKLQl9OwotCi0JdmlydF8xMm1fY2s6IHZpcnRfMTJt X2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2Nr IjsKLQkJY2xvY2stZnJlcXVlbmN5ID0gPDEyMDAwMDAwPjsKLQl9OwotCi0JdmlydF8xM21fY2s6 IHZpcnRfMTNtX2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZp eGVkLWNsb2NrIjsKLQkJY2xvY2stZnJlcXVlbmN5ID0gPDEzMDAwMDAwPjsKLQl9OwotCi0Jdmly dF8xOTIwMDAwMF9jazogdmlydF8xOTIwMDAwMF9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7Ci0JCWNsb2NrLWZyZXF1ZW5jeSA9IDwxOTIw MDAwMD47Ci0JfTsKLQotCXZpcnRfMjZtX2NrOiB2aXJ0XzI2bV9jayB7Ci0JCSNjbG9jay1jZWxs cyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7Ci0JCWNsb2NrLWZyZXF1ZW5j eSA9IDwyNjAwMDAwMD47Ci0JfTsKLQotCWFwbGxzX2Nsa2luX2NrOiBhcGxsc19jbGtpbl9ja0A1 NDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksbXV4LWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZ2aXJ0XzE5MjAwMDAwX2NrPiwgPCZ2aXJ0XzI2bV9jaz4sIDwmdmly dF8xM21fY2s+LCA8JnZpcnRfMTJtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDIzPjsKLQkJcmVn ID0gPDB4MDU0MD47Ci0JfTsKLQotCWFwbGxzX2Nsa2luX3gyX2NrOiBhcGxsc19jbGtpbl94Ml9j ayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3It Y2xvY2siOwotCQljbG9ja3MgPSA8JmFwbGxzX2Nsa2luX2NrPjsKLQkJY2xvY2stbXVsdCA9IDwy PjsKLQkJY2xvY2stZGl2ID0gPDE+OwotCX07Ci0KLQlvc2NfY2s6IG9zY19ja0A2MCB7Ci0JCSNj bG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxtdXgtY2xvY2siOwotCQljbG9j a3MgPSA8JmFwbGxzX2Nsa2luX2NrPiwgPCZhcGxsc19jbGtpbl94Ml9jaz47Ci0JCXRpLGJpdC1z aGlmdCA9IDw2PjsKLQkJcmVnID0gPDB4MDA2MD47Ci0JCXRpLGluZGV4LXN0YXJ0cy1hdC1vbmU7 Ci0JfTsKLQotCXN5c19jazogc3lzX2NrQDYwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQlj b21wYXRpYmxlID0gInRpLGRpdmlkZXItY2xvY2siOwotCQljbG9ja3MgPSA8Jm9zY19jaz47Ci0J CXRpLGJpdC1zaGlmdCA9IDw2PjsKLQkJdGksbWF4LWRpdiA9IDwzPjsKLQkJcmVnID0gPDB4MDA2 MD47Ci0JCXRpLGluZGV4LXN0YXJ0cy1hdC1vbmU7Ci0JfTsKLQotCWFsdF9jazogYWx0X2NrIHsK LQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKLQkJ Y2xvY2stZnJlcXVlbmN5ID0gPDU0MDAwMDAwPjsKLQl9OwotCi0JbWNic3BfY2xrczogbWNic3Bf Y2xrcyB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9j ayI7Ci0JCWNsb2NrLWZyZXF1ZW5jeSA9IDwweDA+OwotCX07Ci0KLQlkcGxsX2NrOiBkcGxsX2Nr QDUwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMi1k cGxsLWNvcmUtY2xvY2siOwotCQljbG9ja3MgPSA8JnN5c19jaz4sIDwmc3lzX2NrPjsKLQkJcmVn ID0gPDB4MDUwMD4sIDwweDA1NDA+OwotCX07Ci0KLQlhcGxsOTZfY2s6IGFwbGw5Nl9ja0A1MDAg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDItYXBsbC1j bG9jayI7Ci0JCWNsb2NrcyA9IDwmc3lzX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI+OwotCQl0 aSxpZGxlc3Qtc2hpZnQgPSA8OD47Ci0JCXRpLGNsb2NrLWZyZXF1ZW5jeSA9IDw5NjAwMDAwMD47 Ci0JCXJlZyA9IDwweDA1MDA+LCA8MHgwNTMwPiwgPDB4MDUyMD47Ci0JfTsKLQotCWFwbGw1NF9j azogYXBsbDU0X2NrQDUwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9 ICJ0aSxvbWFwMi1hcGxsLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZzeXNfY2s+OwotCQl0aSxiaXQt c2hpZnQgPSA8Nj47Ci0JCXRpLGlkbGVzdC1zaGlmdCA9IDw5PjsKLQkJdGksY2xvY2stZnJlcXVl bmN5ID0gPDU0MDAwMDAwPjsKLQkJcmVnID0gPDB4MDUwMD4sIDwweDA1MzA+LCA8MHgwNTIwPjsK LQl9OwotCi0JZnVuY181NG1fY2s6IGZ1bmNfNTRtX2NrQDU0MCB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxtdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmFwbGw1 NF9jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDU+OwotCQlyZWcgPSA8MHgwNTQw PjsKLQl9OwotCi0JY29yZV9jazogY29yZV9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJ Y29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8JmRwbGxfY2s+ OwotCQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9jay1kaXYgPSA8MT47Ci0JfTsKLQotCWZ1bmNf OTZtX2NrOiBmdW5jXzk2bV9ja0A1NDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JfTsKLQot CWFwbGw5Nl9kMl9jazogYXBsbDk2X2QyX2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQlj b21wYXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmYXBsbDk2X2Nr PjsKLQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDI+OwotCX07Ci0KLQlmdW5j XzQ4bV9jazogZnVuY180OG1fY2tANTQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLG11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmYXBsbDk2X2QyX2NrPiwgPCZh bHRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mz47Ci0JCXJlZyA9IDwweDA1NDA+OwotCX07Ci0K LQlmdW5jXzEybV9jazogZnVuY18xMm1fY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNv bXBhdGlibGUgPSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9j az47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9IDw0PjsKLQl9OwotCi0Jc3lz X2Nsa291dF9zcmNfZ2F0ZTogc3lzX2Nsa291dF9zcmNfZ2F0ZUA3MCB7Ci0JCSNjbG9jay1jZWxs cyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbm8td2FpdC1nYXRlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDc+OwotCQlyZWcg PSA8MHgwMDcwPjsKLQl9OwotCi0Jc3lzX2Nsa291dF9zcmNfbXV4OiBzeXNfY2xrb3V0X3NyY19t dXhANzAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9z aXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz4sIDwmc3lzX2NrPiwgPCZmdW5j Xzk2bV9jaz4sIDwmZnVuY181NG1fY2s+OwotCQlyZWcgPSA8MHgwMDcwPjsKLQl9OwotCi0Jc3lz X2Nsa291dF9zcmM6IHN5c19jbGtvdXRfc3JjIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQlj b21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmc3lzX2Nsa291 dF9zcmNfZ2F0ZT4sIDwmc3lzX2Nsa291dF9zcmNfbXV4PjsKLQl9OwotCi0Jc3lzX2Nsa291dDog c3lzX2Nsa291dEA3MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0 aSxkaXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZzeXNfY2xrb3V0X3NyYz47Ci0JCXRpLGJp dC1zaGlmdCA9IDwzPjsKLQkJdGksbWF4LWRpdiA9IDw2ND47Ci0JCXJlZyA9IDwweDAwNzA+Owot CQl0aSxpbmRleC1wb3dlci1vZi10d287Ci0JfTsKLQotCWVtdWxfY2s6IGVtdWxfY2tANzggewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksZ2F0ZS1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmZnVuY181NG1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MD47Ci0JCXJlZyA9 IDwweDAwNzg+OwotCX07Ci0KLQltcHVfY2s6IG1wdV9ja0AxNDAgewotCQkjY2xvY2stY2VsbHMg PSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksZGl2aWRlci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwm Y29yZV9jaz47Ci0JCXRpLG1heC1kaXYgPSA8MzE+OwotCQlyZWcgPSA8MHgwMTQwPjsKLQkJdGks aW5kZXgtc3RhcnRzLWF0LW9uZTsKLQl9OwotCi0JZHNwX2dhdGVfZmNrOiBkc3BfZ2F0ZV9mY2tA ODAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0 ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0g PDA+OwotCQlyZWcgPSA8MHgwODAwPjsKLQl9OwotCi0JZHNwX2Rpdl9mY2s6IGRzcF9kaXZfZmNr QDg0MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3Np dGUtZGl2aWRlci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXJlZyA9IDwweDA4 NDA+OwotCX07Ci0KLQlkc3BfZmNrOiBkc3BfZmNrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZHNwX2dh dGVfZmNrPiwgPCZkc3BfZGl2X2Zjaz47Ci0JfTsKLQotCWNvcmVfbDNfY2s6IGNvcmVfbDNfY2tA MjQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGRpdmlkZXIt Y2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQl0aSxtYXgtZGl2ID0gPDMxPjsKLQkJ cmVnID0gPDB4MDI0MD47Ci0JCXRpLGluZGV4LXN0YXJ0cy1hdC1vbmU7Ci0JfTsKLQotCWdmeF8z ZF9nYXRlX2ZjazogZ2Z4XzNkX2dhdGVfZmNrQDMwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwm Y29yZV9sM19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyPjsKLQkJcmVnID0gPDB4MDMwMD47Ci0J fTsKLQotCWdmeF8zZF9kaXZfZmNrOiBnZnhfM2RfZGl2X2Zja0AzNDAgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWRpdmlkZXItY2xvY2siOwot CQljbG9ja3MgPSA8JmNvcmVfbDNfY2s+OwotCQl0aSxtYXgtZGl2ID0gPDQ+OwotCQlyZWcgPSA8 MHgwMzQwPjsKLQkJdGksaW5kZXgtc3RhcnRzLWF0LW9uZTsKLQl9OwotCi0JZ2Z4XzNkX2Zjazog Z2Z4XzNkX2ZjayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxj b21wb3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmdmeF8zZF9nYXRlX2Zjaz4sIDwmZ2Z4XzNk X2Rpdl9mY2s+OwotCX07Ci0KLQlnZnhfMmRfZ2F0ZV9mY2s6IGdmeF8yZF9nYXRlX2Zja0AzMDAg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWdh dGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfbDNfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MT47Ci0JCXJlZyA9IDwweDAzMDA+OwotCX07Ci0KLQlnZnhfMmRfZGl2X2ZjazogZ2Z4XzJkX2Rp dl9mY2tAMzQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNv bXBvc2l0ZS1kaXZpZGVyLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGks bWF4LWRpdiA9IDw0PjsKLQkJcmVnID0gPDB4MDM0MD47Ci0JCXRpLGluZGV4LXN0YXJ0cy1hdC1v bmU7Ci0JfTsKLQotCWdmeF8yZF9mY2s6IGdmeF8yZF9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8 MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZn ZnhfMmRfZ2F0ZV9mY2s+LCA8JmdmeF8yZF9kaXZfZmNrPjsKLQl9OwotCi0JZ2Z4X2ljazogZ2Z4 X2lja0AzMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2Fp dC1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksYml0LXNoaWZ0 ID0gPDA+OwotCQlyZWcgPSA8MHgwMzEwPjsKLQl9OwotCi0JbDRfY2s6IGw0X2NrQDI0MCB7Ci0J CSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxkaXZpZGVyLWNsb2NrIjsK LQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDU+OwotCQl0aSxt YXgtZGl2ID0gPDM+OwotCQlyZWcgPSA8MHgwMjQwPjsKLQkJdGksaW5kZXgtc3RhcnRzLWF0LW9u ZTsKLQl9OwotCi0JZHNzX2ljazogZHNzX2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47 Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtbm8td2FpdC1pbnRlcmZhY2UtY2xvY2siOwotCQlj bG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDA+OwotCQlyZWcgPSA8MHgwMjEw PjsKLQl9OwotCi0JZHNzMV9nYXRlX2ZjazogZHNzMV9nYXRlX2Zja0AyMDAgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW5vLXdhaXQtZ2F0ZS1j bG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwwPjsKLQkJ cmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWNvcmVfZDJfY2s6IGNvcmVfZDJfY2sgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJ Y2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJY2xvY2stbXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0g PDI+OwotCX07Ci0KLQljb3JlX2QzX2NrOiBjb3JlX2QzX2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwm Y29yZV9jaz47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9IDwzPjsKLQl9Owot Ci0JY29yZV9kNF9jazogY29yZV9kNF9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29t cGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+Owot CQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9jay1kaXYgPSA8ND47Ci0JfTsKLQotCWNvcmVfZDVf Y2s6IGNvcmVfZDVfY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi Zml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJY2xvY2stbXVs dCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDU+OwotCX07Ci0KLQljb3JlX2Q2X2NrOiBjb3JlX2Q2 X2NrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWZhY3Rv ci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9jaz47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0J CWNsb2NrLWRpdiA9IDw2PjsKLQl9OwotCi0JZHVtbXlfY2s6IGR1bW15X2NrIHsKLQkJI2Nsb2Nr LWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKLQkJY2xvY2stZnJl cXVlbmN5ID0gPDA+OwotCX07Ci0KLQljb3JlX2Q4X2NrOiBjb3JlX2Q4X2NrIHsKLQkJI2Nsb2Nr LWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gImZpeGVkLWZhY3Rvci1jbG9jayI7Ci0JCWNs b2NrcyA9IDwmY29yZV9jaz47Ci0JCWNsb2NrLW11bHQgPSA8MT47Ci0JCWNsb2NrLWRpdiA9IDw4 PjsKLQl9OwotCi0JY29yZV9kOV9jazogY29yZV9kOV9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8JmNv cmVfY2s+OwotCQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9jay1kaXYgPSA8OT47Ci0JfTsKLQot CWNvcmVfZDEyX2NrOiBjb3JlX2QxMl9jayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29t cGF0aWJsZSA9ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+Owot CQljbG9jay1tdWx0ID0gPDE+OwotCQljbG9jay1kaXYgPSA8MTI+OwotCX07Ci0KLQljb3JlX2Qx Nl9jazogY29yZV9kMTZfY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAiZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2NrPjsKLQkJY2xvY2st bXVsdCA9IDwxPjsKLQkJY2xvY2stZGl2ID0gPDE2PjsKLQl9OwotCi0JZHNzMV9tdXhfZmNrOiBk c3MxX211eF9mY2tAMjQwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JnN5c19jaz4sIDwmY29yZV9j az4sIDwmY29yZV9kMl9jaz4sIDwmY29yZV9kM19jaz4sIDwmY29yZV9kNF9jaz4sIDwmY29yZV9k NV9jaz4sIDwmY29yZV9kNl9jaz4sIDwmY29yZV9kOF9jaz4sIDwmY29yZV9kOV9jaz4sIDwmY29y ZV9kMTJfY2s+LCA8JmNvcmVfZDE2X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDg+OwotCQlyZWcg PSA8MHgwMjQwPjsKLQl9OwotCi0JZHNzMV9mY2s6IGRzczFfZmNrIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmZHNzMV9nYXRlX2Zjaz4sIDwmZHNzMV9tdXhfZmNrPjsKLQl9OwotCi0JZHNzMl9nYXRlX2Zj azogZHNzMl9nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGli bGUgPSAidGksY29tcG9zaXRlLW5vLXdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVu Y180OG1fY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MT47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07 Ci0KLQlkc3MyX211eF9mY2s6IGRzczJfbXV4X2Zja0AyNDAgewotCQkjY2xvY2stY2VsbHMgPSA8 MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmc3lzX2NrPiwgPCZmdW5jXzQ4bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxMz47Ci0JCXJl ZyA9IDwweDAyNDA+OwotCX07Ci0KLQlkc3MyX2ZjazogZHNzMl9mY2sgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tz ID0gPCZkc3MyX2dhdGVfZmNrPiwgPCZkc3MyX211eF9mY2s+OwotCX07Ci0KLQlkc3NfNTRtX2Zj azogZHNzXzU0bV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxl ID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY181NG1fY2s+OwotCQl0 aSxiaXQtc2hpZnQgPSA8Mj47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQlzc2lfc3NyX3Nz dF9nYXRlX2Zjazogc3NpX3Nzcl9zc3RfZ2F0ZV9mY2tAMjA0IHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tz ID0gPCZjb3JlX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE+OwotCQlyZWcgPSA8MHgwMjA0PjsK LQl9OwotCi0Jc3NpX3Nzcl9zc3RfZGl2X2Zjazogc3NpX3Nzcl9zc3RfZGl2X2Zja0AyNDAgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWRpdmlk ZXItY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MjA+ OwotCQlyZWcgPSA8MHgwMjQwPjsKLQl9OwotCi0Jc3NpX3Nzcl9zc3RfZmNrOiBzc2lfc3NyX3Nz dF9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9z aXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZzc2lfc3NyX3NzdF9nYXRlX2Zjaz4sIDwmc3NpX3Nz cl9zc3RfZGl2X2Zjaz47Ci0JfTsKLQotCXVzYl9sNF9nYXRlX2ljazogdXNiX2w0X2dhdGVfaWNr QDIxNCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3Np dGUtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDA+OwotCQlyZWcgPSA8MHgwMjE0PjsKLQl9OwotCi0JdXNiX2w0X2Rpdl9pY2s6 IHVzYl9sNF9kaXZfaWNrQDI0MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJ0aSxjb21wb3NpdGUtZGl2aWRlci1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmY29yZV9sM19j az47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyNT47Ci0JCXJlZyA9IDwweDAyNDA+OwotCQl0aSxkaXZp ZGVycyA9IDwwPiwgPDE+LCA8Mj4sIDwwPiwgPDQ+OwotCX07Ci0KLQl1c2JfbDRfaWNrOiB1c2Jf bDRfaWNrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBv c2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmdXNiX2w0X2dhdGVfaWNrPiwgPCZ1c2JfbDRfZGl2 X2ljaz47Ci0JfTsKLQotCXNzaV9sNF9pY2s6IHNzaV9sNF9pY2tAMjE0IHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0J CWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MT47Ci0JCXJlZyA9IDwweDAy MTQ+OwotCX07Ci0KLQlncHQxX2ljazogZ3B0MV9pY2tANDEwIHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmc3lzX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDA+OwotCQlyZWcgPSA8MHgwNDEwPjsK LQl9OwotCi0JZ3B0MV9nYXRlX2ZjazogZ3B0MV9nYXRlX2Zja0A0MDAgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQlj bG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDA+OwotCQlyZWcgPSA8 MHgwNDAwPjsKLQl9OwotCi0JZ3B0MV9tdXhfZmNrOiBncHQxX211eF9mY2tANDQwIHsKLQkJI2Ns b2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2si OwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPiwgPCZzeXNfY2s+LCA8JmFsdF9jaz47Ci0JCXJl ZyA9IDwweDA0NDA+OwotCX07Ci0KLQlncHQxX2ZjazogZ3B0MV9mY2sgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tz ID0gPCZncHQxX2dhdGVfZmNrPiwgPCZncHQxX211eF9mY2s+OwotCX07Ci0KLQlncHQyX2ljazog Z3B0Ml9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQt c2hpZnQgPSA8ND47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlncHQyX2dhdGVfZmNrOiBn cHQyX2dhdGVfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9 ICJ0aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8ND47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQlncHQyX211 eF9mY2s6IGdwdDJfbXV4X2Zja0AyNDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtf Y2s+LCA8JnN5c19jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI+OwotCQlyZWcg PSA8MHgwMjQ0PjsKLQl9OwotCi0JZ3B0Ml9mY2s6IGdwdDJfZmNrIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9 IDwmZ3B0Ml9nYXRlX2Zjaz4sIDwmZ3B0Ml9tdXhfZmNrPjsKLQl9OwotCi0JZ3B0M19pY2s6IGdw dDNfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxv bWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNo aWZ0ID0gPDU+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0M19nYXRlX2ZjazogZ3B0 M19nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJ dGksYml0LXNoaWZ0ID0gPDU+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JZ3B0M19tdXhf ZmNrOiBncHQzX211eF9mY2tAMjQ0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2Nr PiwgPCZzeXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw0PjsKLQkJcmVnID0g PDB4MDI0ND47Ci0JfTsKLQotCWdwdDNfZmNrOiBncHQzX2ZjayB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8 JmdwdDNfZ2F0ZV9mY2s+LCA8JmdwdDNfbXV4X2Zjaz47Ci0JfTsKLQotCWdwdDRfaWNrOiBncHQ0 X2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21h cDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlm dCA9IDw2PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQotCWdwdDRfZ2F0ZV9mY2s6IGdwdDRf Z2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRp LGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz47Ci0JCXRp LGJpdC1zaGlmdCA9IDw2PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWdwdDRfbXV4X2Zj azogZ3B0NF9tdXhfZmNrQDI0NCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJs ZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz4s IDwmc3lzX2NrPiwgPCZhbHRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Nj47Ci0JCXJlZyA9IDww eDAyNDQ+OwotCX07Ci0KLQlncHQ0X2ZjazogZ3B0NF9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8 MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZn cHQ0X2dhdGVfZmNrPiwgPCZncHQ0X211eF9mY2s+OwotCX07Ci0KLQlncHQ1X2ljazogZ3B0NV9p Y2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAz LWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQg PSA8Nz47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlncHQ1X2dhdGVfZmNrOiBncHQ1X2dh dGVfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxj b21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+OwotCQl0aSxi aXQtc2hpZnQgPSA8Nz47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQlncHQ1X211eF9mY2s6 IGdwdDVfbXV4X2Zja0AyNDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+LCA8 JnN5c19jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDg+OwotCQlyZWcgPSA8MHgw MjQ0PjsKLQl9OwotCi0JZ3B0NV9mY2s6IGdwdDVfZmNrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+ OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZ3B0 NV9nYXRlX2Zjaz4sIDwmZ3B0NV9tdXhfZmNrPjsKLQl9OwotCi0JZ3B0Nl9pY2s6IGdwdDZfaWNr QDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1p bnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0g PDg+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0Nl9nYXRlX2ZjazogZ3B0Nl9nYXRl X2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29t cG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDg+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JZ3B0Nl9tdXhfZmNrOiBn cHQ2X211eF9mY2tAMjQ0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPiwgPCZz eXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxMD47Ci0JCXJlZyA9IDwweDAy NDQ+OwotCX07Ci0KLQlncHQ2X2ZjazogZ3B0Nl9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47 Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZncHQ2 X2dhdGVfZmNrPiwgPCZncHQ2X211eF9mY2s+OwotCX07Ci0KLQlncHQ3X2ljazogZ3B0N19pY2tA MjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWlu dGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 OT47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlncHQ3X2dhdGVfZmNrOiBncHQ3X2dhdGVf ZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21w b3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+OwotCQl0aSxiaXQt c2hpZnQgPSA8OT47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQlncHQ3X211eF9mY2s6IGdw dDdfbXV4X2Zja0AyNDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAi dGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+LCA8JnN5 c19jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDEyPjsKLQkJcmVnID0gPDB4MDI0 ND47Ci0JfTsKLQotCWdwdDdfZmNrOiBncHQ3X2ZjayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmdwdDdf Z2F0ZV9mY2s+LCA8JmdwdDdfbXV4X2Zjaz47Ci0JfTsKLQotCWdwdDhfaWNrOiBncHQ4X2lja0Ay MTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50 ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwx MD47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlncHQ4X2dhdGVfZmNrOiBncHQ4X2dhdGVf ZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21w b3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+OwotCQl0aSxiaXQt c2hpZnQgPSA8MTA+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JZ3B0OF9tdXhfZmNrOiBn cHQ4X211eF9mY2tAMjQ0IHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPiwgPCZz eXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxND47Ci0JCXJlZyA9IDwweDAy NDQ+OwotCX07Ci0KLQlncHQ4X2ZjazogZ3B0OF9mY2sgewotCQkjY2xvY2stY2VsbHMgPSA8MD47 Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZncHQ4 X2dhdGVfZmNrPiwgPCZncHQ4X211eF9mY2s+OwotCX07Ci0KLQlncHQ5X2ljazogZ3B0OV9pY2tA MjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWlu dGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MTE+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0OV9nYXRlX2ZjazogZ3B0OV9nYXRl X2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29t cG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDExPjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWdwdDlfbXV4X2Zjazog Z3B0OV9tdXhfZmNrQDI0NCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9 ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMya19jaz4sIDwm c3lzX2NrPiwgPCZhbHRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTY+OwotCQlyZWcgPSA8MHgw MjQ0PjsKLQl9OwotCi0JZ3B0OV9mY2s6IGdwdDlfZmNrIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+ OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZ3B0 OV9nYXRlX2Zjaz4sIDwmZ3B0OV9tdXhfZmNrPjsKLQl9OwotCi0JZ3B0MTBfaWNrOiBncHQxMF9p Y2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAz LWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQg PSA8MTI+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JZ3B0MTBfZ2F0ZV9mY2s6IGdwdDEw X2dhdGVfZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0 aSxjb21wb3NpdGUtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+OwotCQl0 aSxiaXQtc2hpZnQgPSA8MTI+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JZ3B0MTBfbXV4 X2ZjazogZ3B0MTBfbXV4X2Zja0AyNDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBh dGlibGUgPSAidGksY29tcG9zaXRlLW11eC1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtf Y2s+LCA8JnN5c19jaz4sIDwmYWx0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE4PjsKLQkJcmVn ID0gPDB4MDI0ND47Ci0JfTsKLQotCWdwdDEwX2ZjazogZ3B0MTBfZmNrIHsKLQkJI2Nsb2NrLWNl bGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmZ3B0MTBfZ2F0ZV9mY2s+LCA8JmdwdDEwX211eF9mY2s+OwotCX07Ci0KLQlncHQxMV9p Y2s6IGdwdDExX2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUg PSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRp LGJpdC1zaGlmdCA9IDwxMz47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlncHQxMV9nYXRl X2ZjazogZ3B0MTFfZ2F0ZV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21w YXRpYmxlID0gInRpLGNvbXBvc2l0ZS1nYXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzMy a19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxMz47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0K LQlncHQxMV9tdXhfZmNrOiBncHQxMV9tdXhfZmNrQDI0NCB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21wb3NpdGUtbXV4LWNsb2NrIjsKLQkJY2xvY2tzID0g PCZmdW5jXzMya19jaz4sIDwmc3lzX2NrPiwgPCZhbHRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8 MjA+OwotCQlyZWcgPSA8MHgwMjQ0PjsKLQl9OwotCi0JZ3B0MTFfZmNrOiBncHQxMV9mY2sgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZncHQxMV9nYXRlX2Zjaz4sIDwmZ3B0MTFfbXV4X2Zjaz47Ci0JfTsK LQotCWdwdDEyX2ljazogZ3B0MTJfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJ Y29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0 X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE0PjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsKLQot CWdwdDEyX2dhdGVfZmNrOiBncHQxMl9nYXRlX2Zja0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8 MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3Mg PSA8JmZ1bmNfMzJrX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE0PjsKLQkJcmVnID0gPDB4MDIw MD47Ci0JfTsKLQotCWdwdDEyX211eF9mY2s6IGdwdDEyX211eF9mY2tAMjQ0IHsKLQkJI2Nsb2Nr LWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLGNvbXBvc2l0ZS1tdXgtY2xvY2siOwot CQljbG9ja3MgPSA8JmZ1bmNfMzJrX2NrPiwgPCZzeXNfY2s+LCA8JmFsdF9jaz47Ci0JCXRpLGJp dC1zaGlmdCA9IDwyMj47Ci0JCXJlZyA9IDwweDAyNDQ+OwotCX07Ci0KLQlncHQxMl9mY2s6IGdw dDEyX2ZjayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxjb21w b3NpdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmdwdDEyX2dhdGVfZmNrPiwgPCZncHQxMl9tdXhf ZmNrPjsKLQl9OwotCi0JbWNic3AxX2ljazogbWNic3AxX2lja0AyMTAgewotCQkjY2xvY2stY2Vs bHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJ Y2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxNT47Ci0JCXJlZyA9IDwweDAy MTA+OwotCX07Ci0KLQltY2JzcDFfZ2F0ZV9mY2s6IG1jYnNwMV9nYXRlX2Zja0AyMDAgewotCQkj Y2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9zaXRlLWdhdGUtY2xv Y2siOwotCQljbG9ja3MgPSA8Jm1jYnNwX2Nsa3M+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTU+Owot CQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JbWNic3AyX2ljazogbWNic3AyX2lja0AyMTAgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNl LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwxNj47Ci0J CXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQltY2JzcDJfZ2F0ZV9mY2s6IG1jYnNwMl9nYXRlX2Zj a0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksY29tcG9z aXRlLWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8Jm1jYnNwX2Nsa3M+OwotCQl0aSxiaXQtc2hp ZnQgPSA8MTY+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JbWNzcGkxX2ljazogbWNzcGkx X2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21h cDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlm dCA9IDwxNz47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQltY3NwaTFfZmNrOiBtY3NwaTFf ZmNrQDIwMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0 LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfNDhtX2NrPjsKLQkJdGksYml0LXNoaWZ0 ID0gPDE3PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCW1jc3BpMl9pY2s6IG1jc3BpMl9p Y2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAz LWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQg PSA8MTg+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JbWNzcGkyX2ZjazogbWNzcGkyX2Zj a0AyMDAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1n YXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9 IDwxOD47Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQl1YXJ0MV9pY2s6IHVhcnQxX2lja0Ay MTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50 ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwy MT47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQl1YXJ0MV9mY2s6IHVhcnQxX2Zja0AyMDAg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNs b2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyMT47 Ci0JCXJlZyA9IDwweDAyMDA+OwotCX07Ci0KLQl1YXJ0Ml9pY2s6IHVhcnQyX2lja0AyMTAgewot CQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNl LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyMj47Ci0J CXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQl1YXJ0Ml9mY2s6IHVhcnQyX2Zja0AyMDAgewotCQkj Y2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsK LQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyMj47Ci0JCXJl ZyA9IDwweDAyMDA+OwotCX07Ci0KLQl1YXJ0M19pY2s6IHVhcnQzX2lja0AyMTQgewotCQkjY2xv Y2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2Nr IjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyPjsKLQkJcmVnID0g PDB4MDIxND47Ci0JfTsKLQotCXVhcnQzX2ZjazogdWFydDNfZmNrQDIwNCB7Ci0JCSNjbG9jay1j ZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9j a3MgPSA8JmZ1bmNfNDhtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI+OwotCQlyZWcgPSA8MHgw MjA0PjsKLQl9OwotCi0JZ3Bpb3NfaWNrOiBncGlvc19pY2tANDEwIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNs b2NrcyA9IDwmc3lzX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI+OwotCQlyZWcgPSA8MHgwNDEw PjsKLQl9OwotCi0JZ3Bpb3NfZmNrOiBncGlvc19mY2tANDAwIHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwm ZnVuY18zMmtfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8Mj47Ci0JCXJlZyA9IDwweDA0MDA+Owot CX07Ci0KLQltcHVfd2R0X2ljazogbXB1X3dkdF9pY2tANDEwIHsKLQkJI2Nsb2NrLWNlbGxzID0g PDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2Nr cyA9IDwmc3lzX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDM+OwotCQlyZWcgPSA8MHgwNDEwPjsK LQl9OwotCi0JbXB1X3dkdF9mY2s6IG1wdV93ZHRfZmNrQDQwMCB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8 JmZ1bmNfMzJrX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDM+OwotCQlyZWcgPSA8MHgwNDAwPjsK LQl9OwotCi0Jc3luY18zMmtfaWNrOiBzeW5jXzMya19pY2tANDEwIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNs b2NrcyA9IDwmc3lzX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE+OwotCQlyZWcgPSA8MHgwNDEw PjsKLQl9OwotCi0Jd2R0MV9pY2s6IHdkdDFfaWNrQDQxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3Mg PSA8JnN5c19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw0PjsKLQkJcmVnID0gPDB4MDQxMD47Ci0J fTsKLQotCW9tYXBjdHJsX2ljazogb21hcGN0cmxfaWNrQDQxMCB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9j a3MgPSA8JnN5c19jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDw1PjsKLQkJcmVnID0gPDB4MDQxMD47 Ci0JfTsKLQotCWNhbV9mY2s6IGNhbV9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+Owot CQljb21wYXRpYmxlID0gInRpLGdhdGUtY2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfOTZtX2Nr PjsKLQkJdGksYml0LXNoaWZ0ID0gPDMxPjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWNh bV9pY2s6IGNhbV9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxl ID0gInRpLG9tYXAzLW5vLXdhaXQtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9j az47Ci0JCXRpLGJpdC1zaGlmdCA9IDwzMT47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlt YWlsYm94ZXNfaWNrOiBtYWlsYm94ZXNfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsK LQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8 Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDMwPjsKLQkJcmVnID0gPDB4MDIxMD47Ci0JfTsK LQotCXdkdDRfaWNrOiB3ZHQ0X2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNv bXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9j az47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyOT47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQl3 ZHQ0X2Zjazogd2R0NF9mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY18zMmtfY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8Mjk+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JbXNwcm9f aWNrOiBtc3Byb19pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxl ID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0 aSxiaXQtc2hpZnQgPSA8Mjc+OwotCQlyZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JbXNwcm9fZmNr OiBtc3Byb19mY2tAMjAwIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0g InRpLHdhaXQtZ2F0ZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmZnVuY185Nm1fY2s+OwotCQl0aSxi aXQtc2hpZnQgPSA8Mjc+OwotCQlyZWcgPSA8MHgwMjAwPjsKLQl9OwotCi0JZmFjX2ljazogZmFj X2lja0AyMTAgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksb21h cDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZsNF9jaz47Ci0JCXRpLGJpdC1zaGlm dCA9IDwyNT47Ci0JCXJlZyA9IDwweDAyMTA+OwotCX07Ci0KLQlmYWNfZmNrOiBmYWNfZmNrQDIw MCB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSx3YWl0LWdhdGUt Y2xvY2siOwotCQljbG9ja3MgPSA8JmZ1bmNfMTJtX2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDI1 PjsKLQkJcmVnID0gPDB4MDIwMD47Ci0JfTsKLQotCWhkcV9pY2s6IGhkcV9pY2tAMjEwIHsKLQkJ I2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1j bG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MjM+OwotCQly ZWcgPSA8MHgwMjEwPjsKLQl9OwotCi0JaGRxX2ZjazogaGRxX2Zja0AyMDAgewotCQkjY2xvY2st Y2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1nYXRlLWNsb2NrIjsKLQkJY2xv Y2tzID0gPCZmdW5jXzEybV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyMz47Ci0JCXJlZyA9IDww eDAyMDA+OwotCX07Ci0KLQlpMmMxX2ljazogaTJjMV9pY2tAMjEwIHsKLQkJI2Nsb2NrLWNlbGxz ID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNs b2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MTk+OwotCQlyZWcgPSA8MHgwMjEw PjsKLQl9OwotCi0JaTJjMl9pY2s6IGkyYzJfaWNrQDIxMCB7Ci0JCSNjbG9jay1jZWxscyA9IDww PjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3Mg PSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDIwPjsKLQkJcmVnID0gPDB4MDIxMD47Ci0J fTsKLQotCWdwbWNfZmNrOiBncG1jX2Zja0AyMzggewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0J CWNvbXBhdGlibGUgPSAidGksZml4ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3Jl X2wzX2NrPjsKLQkJdGksY2xvY2stZGl2ID0gPDE+OwotCQl0aSxhdXRvaWRsZS1zaGlmdCA9IDwx PjsKLQkJcmVnID0gPDB4MDIzOD47Ci0JCXRpLGNsb2NrLW11bHQgPSA8MT47Ci0JfTsKLQotCXNk bWFfZmNrOiBzZG1hX2ZjayB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9 ICJmaXhlZC1mYWN0b3ItY2xvY2siOwotCQljbG9ja3MgPSA8JmNvcmVfbDNfY2s+OwotCQljbG9j ay1tdWx0ID0gPDE+OwotCQljbG9jay1kaXYgPSA8MT47Ci0JfTsKLQotCXNkbWFfaWNrOiBzZG1h X2lja0AyMzggewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksZml4 ZWQtZmFjdG9yLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksY2xvY2st ZGl2ID0gPDE+OwotCQl0aSxhdXRvaWRsZS1zaGlmdCA9IDwwPjsKLQkJcmVnID0gPDB4MDIzOD47 Ci0JCXRpLGNsb2NrLW11bHQgPSA8MT47Ci0JfTsKLQotCXNkcmNfaWNrOiBzZHJjX2lja0AyMzgg ewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksZml4ZWQtZmFjdG9y LWNsb2NrIjsKLQkJY2xvY2tzID0gPCZjb3JlX2wzX2NrPjsKLQkJdGksY2xvY2stZGl2ID0gPDE+ OwotCQl0aSxhdXRvaWRsZS1zaGlmdCA9IDwyPjsKLQkJcmVnID0gPDB4MDIzOD47Ci0JCXRpLGNs b2NrLW11bHQgPSA8MT47Ci0JfTsKLQotCWRlc19pY2s6IGRlc19pY2tAMjFjIHsKLQkJI2Nsb2Nr LWNlbGxzID0gPDA+OwotCQljb21wYXRpYmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7 Ci0JCWNsb2NrcyA9IDwmbDRfY2s+OwotCQl0aSxiaXQtc2hpZnQgPSA8MD47Ci0JCXJlZyA9IDww eDAyMWM+OwotCX07Ci0KLQlzaGFfaWNrOiBzaGFfaWNrQDIxYyB7Ci0JCSNjbG9jay1jZWxscyA9 IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9j a3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0LXNoaWZ0ID0gPDE+OwotCQlyZWcgPSA8MHgwMjFjPjsK LQl9OwotCi0Jcm5nX2ljazogcm5nX2lja0AyMWMgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0J CWNvbXBhdGlibGUgPSAidGksb21hcDMtaW50ZXJmYWNlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZs NF9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9IDwyPjsKLQkJcmVnID0gPDB4MDIxYz47Ci0JfTsKLQot CWFlc19pY2s6IGFlc19pY2tAMjFjIHsKLQkJI2Nsb2NrLWNlbGxzID0gPDA+OwotCQljb21wYXRp YmxlID0gInRpLG9tYXAzLWludGVyZmFjZS1jbG9jayI7Ci0JCWNsb2NrcyA9IDwmbDRfY2s+Owot CQl0aSxiaXQtc2hpZnQgPSA8Mz47Ci0JCXJlZyA9IDwweDAyMWM+OwotCX07Ci0KLQlwa2FfaWNr OiBwa2FfaWNrQDIxYyB7Ci0JCSNjbG9jay1jZWxscyA9IDwwPjsKLQkJY29tcGF0aWJsZSA9ICJ0 aSxvbWFwMy1pbnRlcmZhY2UtY2xvY2siOwotCQljbG9ja3MgPSA8Jmw0X2NrPjsKLQkJdGksYml0 LXNoaWZ0ID0gPDQ+OwotCQlyZWcgPSA8MHgwMjFjPjsKLQl9OwotCi0JdXNiX2ZjazogdXNiX2Zj a0AyMDQgewotCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0JCWNvbXBhdGlibGUgPSAidGksd2FpdC1n YXRlLWNsb2NrIjsKLQkJY2xvY2tzID0gPCZmdW5jXzQ4bV9jaz47Ci0JCXRpLGJpdC1zaGlmdCA9 IDwwPjsKLQkJcmVnID0gPDB4MDIwND47Ci0JfTsKLX07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9j b25maWdzL29tYXAycGx1c19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL29tYXAycGx1c19k ZWZjb25maWcKaW5kZXggZjgyN2Y4OTU2N2ZkLi4yZTk1OTdmNTBjNTggMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL2NvbmZpZ3Mvb21hcDJwbHVzX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdz L29tYXAycGx1c19kZWZjb25maWcKQEAgLTIyLDkgKzIyLDcgQEAgQ09ORklHX05BTUVTUEFDRVM9 eQogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKIENPTkZJR19FWFBFUlQ9eQogQ09ORklHX1BST0ZJ TElORz15Ci1DT05GSUdfQVJDSF9NVUxUSV9WNj15CiBDT05GSUdfT01BUF9SRVNFVF9DTE9DS1M9 eQotQ09ORklHX0FSQ0hfT01BUDI9eQogQ09ORklHX0FSQ0hfT01BUDM9eQogQ09ORklHX0FSQ0hf T01BUDQ9eQogQ09ORklHX1NPQ19PTUFQNT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9t YXAyL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLW9tYXAyL0tjb25maWcKaW5kZXggNzlmOGFmZTNh NmJmLi4zN2VjYmZjMGExOWYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvS2NvbmZp ZworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL0tjb25maWcKQEAgLTUsMTUgKzUsNiBAQCBtZW51 ICJUSSBPTUFQL0FNL0RNL0RSQSBGYW1pbHkiCiBjb25maWcgT01BUF9IV01PRAogCWJvb2wKIAot Y29uZmlnIEFSQ0hfT01BUDIKLQlib29sICJUSSBPTUFQMiIKLQlkZXBlbmRzIG9uIEFSQ0hfTVVM VElfVjYKLQlkZXBlbmRzIG9uICFTTVAKLQlzZWxlY3QgQVJDSF9PTUFQMlBMVVMKLQlzZWxlY3Qg Q1BVX0FSTTExMzZSMAotCXNlbGVjdCBPTUFQX0hXTU9ECi0Jc2VsZWN0IFNPQ19IQVNfT01BUDJf U0RSQwotCiBjb25maWcgQVJDSF9PTUFQMwogCWJvb2wgIlRJIE9NQVAzIgogCWRlcGVuZHMgb24g QVJDSF9NVUxUSV9WNwpAQCAtMTE4LDcgKzEwOSw3IEBAIGNvbmZpZyBBUkNIX09NQVAyUExVUwog CXNlbGVjdCBPTUFQX0lSUUNISVAKIAlzZWxlY3QgQ0xLU1JDX1RJXzMySwogCWhlbHAKLQkgIFN5 c3RlbXMgYmFzZWQgb24gT01BUDIsIE9NQVAzLCBPTUFQNCBvciBPTUFQNQorCSAgU3lzdGVtcyBi YXNlZCBvbiBPTUFQMywgT01BUDQgb3IgT01BUDUKIAogY29uZmlnIE9NQVBfSU5URVJDT05ORUNU X0JBUlJJRVIKIAlib29sCkBAIC0xMjksNyArMTIwLDcgQEAgY29uZmlnIEFSQ0hfT01BUAogCiBp ZiBBUkNIX09NQVAyUExVUwogCi1tZW51ICJUSSBPTUFQMi8zLzQgU3BlY2lmaWMgRmVhdHVyZXMi CittZW51ICJUSSBPTUFQMy80IFNwZWNpZmljIEZlYXR1cmVzIgogCiBjb25maWcgQVJDSF9PTUFQ MlBMVVNfVFlQSUNBTAogCWJvb2wgIlR5cGljYWwgT01BUCBjb25maWd1cmF0aW9uIgpAQCAtMTM4 LDggKzEyOSw3IEBAIGNvbmZpZyBBUkNIX09NQVAyUExVU19UWVBJQ0FMCiAJc2VsZWN0IEhJR0hN RU0KIAlzZWxlY3QgSTJDCiAJc2VsZWN0IEkyQ19PTUFQCi0Jc2VsZWN0IE1FTkVMQVVTIGlmIEFS Q0hfT01BUDIKLQlzZWxlY3QgTkVPTiBpZiBDUFVfVjcKKwlzZWxlY3QgTkVPTgogCXNlbGVjdCBS RUdVTEFUT1IKIAlzZWxlY3QgUkVHVUxBVE9SX0ZJWEVEX1ZPTFRBR0UKIAlzZWxlY3QgVFdMNDAz MF9DT1JFIGlmIEFSQ0hfT01BUDMgfHwgQVJDSF9PTUFQNApAQCAtMjA0LDI3ICsxOTQsNyBAQCBj b25maWcgT01BUDNfTDJfQVVYX1NFQ1VSRV9TRVJWSUNFX1NFVF9JRAogCSAgUFBBIHJvdXRpbmUg c2VydmljZSBJRCBmb3Igc2V0dGluZyBMMiBhdXhpbGlhcnkgY29udHJvbCByZWdpc3Rlci4KIAog Y29tbWVudCAiT01BUCBDb3JlIFR5cGUiCi0JZGVwZW5kcyBvbiBBUkNIX09NQVAyCi0KLWNvbmZp ZyBTT0NfT01BUDI0MjAKLQlib29sICJPTUFQMjQyMCBzdXBwb3J0IChERVBSRUNBVEVEKSIKLQlk ZXBlbmRzIG9uIEFSQ0hfT01BUDIKLQlkZWZhdWx0IHkKLQlzZWxlY3QgT01BUF9ETV9TWVNUSU1F UgotCXNlbGVjdCBPTUFQX0RNX1RJTUVSCi0Jc2VsZWN0IFNPQ19IQVNfT01BUDJfU0RSQwotCWhl bHAKLQkgIFRoaXMgU29DIGlzIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbCBpbiBlYXJseSAyMDI3LAot CSAgc2luY2UgaXQgdXNlcyB0aGUgQVJNMTEzNnIwIENQVSByZXZpc2lvbi4KLQotY29uZmlnIFNP Q19PTUFQMjQzMAotCWJvb2wgIk9NQVAyNDMwIHN1cHBvcnQgKERFUFJFQ0FURUQpIgotCWRlcGVu ZHMgb24gQVJDSF9PTUFQMgotCWRlZmF1bHQgeQotCXNlbGVjdCBTT0NfSEFTX09NQVAyX1NEUkMK LQloZWxwCi0JICBUaGlzIFNvQyBpcyBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gZWFybHkgMjAy NywKLQkgIHNpbmNlIGl0IHVzZXMgdGhlIEFSTTExMzZyMCBDUFUgcmV2aXNpb24uCisJZGVwZW5k cyBvbiBBUkNIX09NQVAzCiAKIGNvbmZpZyBTT0NfT01BUDM0MzAKIAlib29sICJPTUFQMzQzMCBz dXBwb3J0IgpAQCAtMjM3LDMzICsyMDcsOSBAQCBjb25maWcgU09DX1RJODFYWAogCWRlcGVuZHMg b24gQVJDSF9PTUFQMwogCWRlZmF1bHQgeQogCi1jb21tZW50ICJPTUFQIExlZ2FjeSBQbGF0Zm9y bSBEYXRhIEJvYXJkIFR5cGUiCi0JZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUwotCiBjb25maWcg TUFDSF9PTUFQX0dFTkVSSUMKIAlib29sCiAKLWNvbmZpZyBNQUNIX09NQVAyX1RVU0I2MDEwCi0J Ym9vbAotCWRlcGVuZHMgb24gQVJDSF9PTUFQMiAmJiBTT0NfT01BUDI0MjAKLQlkZWZhdWx0IHkg aWYgTUFDSF9OT0tJQV9OOFgwCi0KLWNvbmZpZyBNQUNIX05PS0lBX044MTAKLQlib29sCi0KLWNv bmZpZyBNQUNIX05PS0lBX044MTBfV0lNQVgKLQlib29sCi0KLWNvbmZpZyBNQUNIX05PS0lBX044 WDAKLQlib29sICJOb2tpYSBOODAwL044MTAgKERFUFJFQ0FURUQpIgotCWRlcGVuZHMgb24gU09D X09NQVAyNDIwCi0JZGVmYXVsdCB5Ci0Jc2VsZWN0IE1BQ0hfTk9LSUFfTjgxMAotCXNlbGVjdCBN QUNIX05PS0lBX044MTBfV0lNQVgKLQloZWxwCi0JICBUaGlzIG1hY2hpbmUgaXMgc2NoZWR1bGVk IGZvciByZW1vdmFsIGluIGVhcmx5IDIwMjcsCi0JICBzaW5jZSBpdCB1c2VzIHRoZSBBUk0xMTM2 cjAgQ1BVIHJldmlzaW9uLgotCiBlbmRtZW51CiAKIGVuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9tYWNoLW9tYXAyL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZQppbmRl eCBkYWYyMTEyN2M4MmYuLjZjNzQxNDQyZGMwZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1v bWFwMi9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxlCkBAIC01LDIz ICs1LDE3IEBACiAKICMgQ29tbW9uIHN1cHBvcnQKIG9iai15IDo9IGlkLm8gaW8ubyBjb250cm9s Lm8gZGV2aWNlcy5vIGZiLm8gcG0ubyBcCi0JIGNvbW1vbi5vIGRtYS5vIG9tYXAtaGVhZHNtcC5v IHNyYW0ubworCSBjb21tb24ubyBkbWEubyBvbWFwLWhlYWRzbXAubwogCi1od21vZC1jb21tb24J CQkJPSBvbWFwX2h3bW9kLm8gXAorIyBPTUFQMyBod21vZCBzcGVjaWZpYworb2JqLSQoQ09ORklH X0FSQ0hfT01BUDMpCQkrPSBzcmFtLm8gb21hcF9od21vZC5vIFwKIAkJCQkJICBvbWFwX2h3bW9k X2NvbW1vbl9kYXRhLm8gXAogCQkJCQkgIG9tYXBfaHdtb2RfY29tbW9uX2lwYmxvY2tfZGF0YS5v IFwKIAkJCQkJICBvbWFwX2RldmljZS5vIGRpc3BsYXkubyBoZHExdy5vIFwKIAkJCQkJICBpMmMu byB3ZF90aW1lci5vCi1jbG9jay1jb21tb24JCQkJPSBjbG9jay5vCi1zZWN1cmUtY29tbW9uCQkJ CT0gb21hcC1zbWMubyBvbWFwLXNlY3VyZS5vCiAKLW9iai0kKENPTkZJR19BUkNIX09NQVAyKSAr PSAkKG9tYXAtMi0zLWNvbW1vbikgJChod21vZC1jb21tb24pCi1vYmotJChDT05GSUdfQVJDSF9P TUFQMykgKz0gJChvbWFwLTItMy1jb21tb24pICQoaHdtb2QtY29tbW9uKSAkKHNlY3VyZS1jb21t b24pCi1vYmotJChDT05GSUdfQVJDSF9PTUFQNCkgKz0gJChzZWN1cmUtY29tbW9uKQotb2JqLSQo Q09ORklHX1NPQ19BTTMzWFgpICs9ICQoc2VjdXJlLWNvbW1vbikKLW9iai0kKENPTkZJR19TT0Nf T01BUDUpICArPSAkKHNlY3VyZS1jb21tb24pCi1vYmotJChDT05GSUdfU09DX0FNNDNYWCkgKz0g JChzZWN1cmUtY29tbW9uKQotb2JqLSQoQ09ORklHX1NPQ19EUkE3WFgpICs9ICQoc2VjdXJlLWNv bW1vbikKKyMgc2VjdXJlIHdvcmxkCitvYmoteQkJCQkJKz0gb21hcC1zbWMubyBvbWFwLXNlY3Vy ZS5vCiAKIGlmbmVxICgkKENPTkZJR19TTkRfU09DX09NQVBfTUNCU1ApLCkKIG9iai0kKENPTkZJ R19PTUFQX0hXTU9EKSArPSBtY2JzcC5vCkBAIC00OSwxMyArNDMsNyBAQCBvbWFwNS1kcmE3LWNv bW1vbi0kKENPTkZJR19TT0NfSEFTX1JFQUxUSU1FX0NPVU5URVIpID0gIHRpbWVyLm8KIG9iai0k KENPTkZJR19TT0NfT01BUDUpCQkJKz0gJChvbWFwNS1kcmE3LWNvbW1vbi15KQogb2JqLSQoQ09O RklHX1NPQ19EUkE3WFgpCQkrPSAkKG9tYXA1LWRyYTctY29tbW9uLXkpCiAKLSMgRnVuY3Rpb25z IGxvYWRlZCB0byBTUkFNCi1vYmotJChDT05GSUdfU09DX09NQVAyNDIwKQkJKz0gc3JhbTI0Mngu bwotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQzMCkJCSs9IHNyYW0yNDN4Lm8KLQogIyBSZXN0YXJ0 IGNvZGUgKE9NQVA0LzUgY3VycmVudGx5IGluIG9tYXA0LWNvbW1vbi5jKQotb2JqLSQoQ09ORklH X1NPQ19PTUFQMjQyMCkJCSs9IG9tYXAyLXJlc3RhcnQubwotb2JqLSQoQ09ORklHX1NPQ19PTUFQ MjQzMCkJCSs9IG9tYXAyLXJlc3RhcnQubwogb2JqLSQoQ09ORklHX1NPQ19USTgxWFgpCQkrPSB0 aTgxeHgtcmVzdGFydC5vCiBvYmotJChDT05GSUdfU09DX0FNMzNYWCkJCSs9IGFtMzN4eC1yZXN0 YXJ0Lm8KIG9iai0kKENPTkZJR19TT0NfQU00M1hYKQkJKz0gb21hcDQtcmVzdGFydC5vCkBAIC02 NSw3ICs1Myw2IEBAIG9iai0kKENPTkZJR19TT0NfT01BUDUpCQkJKz0gb21hcDQtcmVzdGFydC5v CiBvYmotJChDT05GSUdfU09DX0RSQTdYWCkJCSs9IG9tYXA0LXJlc3RhcnQubwogCiAjIFNNUy9T RFJDCi1vYmotJChDT05GSUdfQVJDSF9PTUFQMikJCSs9IHNkcmMyeHh4Lm8KICMgb2JqLSQoQ09O RklHX0FSQ0hfT01BUDMpCQkrPSBzZHJjM3h4eC5vCiAKICMgT1BQIHRhYmxlIGluaXRpYWxpemF0 aW9uCkBAIC04MCw3ICs2Nyw2IEBAIG9iai0kKENPTkZJR19BUkNIX09NQVA0KQkJKz0gJChvbWFw LTQtNS1wbS1jb21tb24pCiBvYmotJChDT05GSUdfU09DX09NQVA1KQkJCSs9ICQob21hcC00LTUt cG0tY29tbW9uKQogCiBpZmVxICgkKENPTkZJR19QTSkseSkKLW9iai0kKENPTkZJR19BUkNIX09N QVAyKQkJKz0gc2xlZXAyNHh4Lm8KIG9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gcG0zNHh4 Lm8gc2xlZXAzNHh4Lm8KIG9tYXAtNC01LXBtLWNvbW1vbgkJCSs9IHBtNDR4eC5vCiBvYmotJChD T05GSUdfQVJDSF9PTUFQNCkJCSs9ICQob21hcC00LTUtcG0tY29tbW9uKQpAQCAtMTA1LDcgKzkx LDYgQEAgZW5kaWYKIAogIyBQUkNNCiBvYmoteQkJCQkJKz0gcHJtX2NvbW1vbi5vIGNtX2NvbW1v bi5vCi1vYmotJChDT05GSUdfQVJDSF9PTUFQMikJCSs9IHBybTJ4eHhfM3h4eC5vIHBybTJ4eHgu byBjbTJ4eHgubwogb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSBwcm0yeHh4XzN4eHgubyBw cm0zeHh4Lm8gY20zeHh4Lm8KIG9iai0kKENPTkZJR19BUkNIX09NQVAzKQkJKz0gdmMzeHh4X2Rh dGEubyB2cDN4eHhfZGF0YS5vCiBvbWFwLXByY20tNC01LWNvbW1vbgkJCT0gIGNtaW5zdDQ0eHgu byBwcm00NHh4Lm8gXApAQCAtMTIyLDggKzEwNyw2IEBAIG9iai0kKENPTkZJR19TT0NfQU00M1hY KQkJKz0gJChvbWFwLXByY20tNC01LWNvbW1vbikgXAogCiAjIE9NQVAgdm9sdGFnZSBkb21haW5z CiB2b2x0YWdlZG9tYWluLWNvbW1vbgkJCTo9IHZvbHRhZ2UubyB2Yy5vIHZwLm8KLW9iai0kKENP TkZJR19BUkNIX09NQVAyKQkJKz0gJCh2b2x0YWdlZG9tYWluLWNvbW1vbikKLW9iai0kKENPTkZJ R19BUkNIX09NQVAyKQkJKz0gdm9sdGFnZWRvbWFpbnMyeHh4X2RhdGEubwogb2JqLSQoQ09ORklH X0FSQ0hfT01BUDMpCQkrPSAkKHZvbHRhZ2Vkb21haW4tY29tbW9uKQogb2JqLSQoQ09ORklHX0FS Q0hfT01BUDMpCQkrPSB2b2x0YWdlZG9tYWluczN4eHhfZGF0YS5vCiBvYmotJChDT05GSUdfQVJD SF9PTUFQNCkJCSs9ICQodm9sdGFnZWRvbWFpbi1jb21tb24pCkBAIC0xMzYsOSArMTE5LDYgQEAg b2JqLSQoQ09ORklHX1NPQ19EUkE3WFgpCQkrPSAkKHZvbHRhZ2Vkb21haW4tY29tbW9uKQogCiAj IE9NQVAgcG93ZXJkb21haW4gZnJhbWV3b3JrCiBwb3dlcmRvbWFpbi1jb21tb24JCQkrPSBwb3dl cmRvbWFpbi5vIHBvd2VyZG9tYWluLWNvbW1vbi5vCi1vYmotJChDT05GSUdfQVJDSF9PTUFQMikJ CSs9ICQocG93ZXJkb21haW4tY29tbW9uKQotb2JqLSQoQ09ORklHX0FSQ0hfT01BUDIpCQkrPSBw b3dlcmRvbWFpbnMyeHh4X2RhdGEubwotb2JqLSQoQ09ORklHX0FSQ0hfT01BUDIpCQkrPSBwb3dl cmRvbWFpbnMyeHh4XzN4eHhfZGF0YS5vCiBvYmotJChDT05GSUdfQVJDSF9PTUFQMykJCSs9ICQo cG93ZXJkb21haW4tY29tbW9uKQogb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSBwb3dlcmRv bWFpbnMzeHh4X2RhdGEubwogb2JqLSQoQ09ORklHX0FSQ0hfT01BUDMpCQkrPSBwb3dlcmRvbWFp bnMyeHh4XzN4eHhfZGF0YS5vCkBAIC0xNTUsMTAgKzEzNSw2IEBAIG9iai0kKENPTkZJR19TT0Nf RFJBN1hYKQkJKz0gcG93ZXJkb21haW5zN3h4X2RhdGEubwogCiAjIFBSQ00gY2xvY2tkb21haW4g Y29udHJvbAogY2xvY2tkb21haW4tY29tbW9uCQkJKz0gY2xvY2tkb21haW4ubwotb2JqLSQoQ09O RklHX0FSQ0hfT01BUDIpCQkrPSAkKGNsb2NrZG9tYWluLWNvbW1vbikKLW9iai0kKENPTkZJR19B UkNIX09NQVAyKQkJKz0gY2xvY2tkb21haW5zMnh4eF8zeHh4X2RhdGEubwotb2JqLSQoQ09ORklH X1NPQ19PTUFQMjQyMCkJCSs9IGNsb2NrZG9tYWluczI0MjBfZGF0YS5vCi1vYmotJChDT05GSUdf U09DX09NQVAyNDMwKQkJKz0gY2xvY2tkb21haW5zMjQzMF9kYXRhLm8KIG9iai0kKENPTkZJR19B UkNIX09NQVAzKQkJKz0gJChjbG9ja2RvbWFpbi1jb21tb24pCiBvYmotJChDT05GSUdfQVJDSF9P TUFQMykJCSs9IGNsb2NrZG9tYWluczJ4eHhfM3h4eF9kYXRhLm8KIG9iai0kKENPTkZJR19BUkNI X09NQVAzKQkJKz0gY2xvY2tkb21haW5zM3h4eF9kYXRhLm8KQEAgLTE3Niw0NyArMTUyLDIwIEBA IG9iai0kKENPTkZJR19TT0NfRFJBN1hYKQkJKz0gJChjbG9ja2RvbWFpbi1jb21tb24pCiBvYmot JChDT05GSUdfU09DX0RSQTdYWCkJCSs9IGNsb2NrZG9tYWluczd4eF9kYXRhLm8KIAogIyBDbG9j ayBmcmFtZXdvcmsKLW9iai0kKENPTkZJR19BUkNIX09NQVAyKQkJKz0gJChjbG9jay1jb21tb24p Ci1vYmotJChDT05GSUdfQVJDSF9PTUFQMikJCSs9IGNsa3QyeHh4X2RwbGxjb3JlLm8KLW9iai0k KENPTkZJR19BUkNIX09NQVAyKQkJKz0gY2xrdDJ4eHhfdmlydF9wcmNtX3NldC5vCi1vYmotJChD T05GSUdfQVJDSF9PTUFQMikJCSs9IGNsa3QyeHh4X2RwbGwubwotb2JqLSQoQ09ORklHX0FSQ0hf T01BUDMpCQkrPSAkKGNsb2NrLWNvbW1vbikKLW9iai0kKENPTkZJR19BUkNIX09NQVA0KQkJKz0g JChjbG9jay1jb21tb24pCi1vYmotJChDT05GSUdfU09DX0FNMzNYWCkJCSs9ICQoY2xvY2stY29t bW9uKQotb2JqLSQoQ09ORklHX1NPQ19PTUFQNSkJCQkrPSAkKGNsb2NrLWNvbW1vbikKLW9iai0k KENPTkZJR19TT0NfRFJBN1hYKQkJKz0gJChjbG9jay1jb21tb24pCi1vYmotJChDT05GSUdfU09D X0FNNDNYWCkJCSs9ICQoY2xvY2stY29tbW9uKQotCi0jIE9NQVAyIGNsb2NrIHJhdGUgc2V0IGRh dGEgKG9sZCAiT1BQIiBkYXRhKQotb2JqLSQoQ09ORklHX1NPQ19PTUFQMjQyMCkJCSs9IG9wcDI0 MjBfZGF0YS5vCi1vYmotJChDT05GSUdfU09DX09NQVAyNDMwKQkJKz0gb3BwMjQzMF9kYXRhLm8K K29iai15CQkJCQkrPSBjbG9jay5vCiAKICMgaHdtb2QgZGF0YQotb2JqLSQoQ09ORklHX1NPQ19P TUFQMjQyMCkJCSs9IG9tYXBfaHdtb2RfMnh4eF9pcGJsb2NrX2RhdGEubwotb2JqLSQoQ09ORklH X1NPQ19PTUFQMjQyMCkJCSs9IG9tYXBfaHdtb2RfMnh4eF8zeHh4X2lwYmxvY2tfZGF0YS5vCi1v YmotJChDT05GSUdfU09DX09NQVAyNDIwKQkJKz0gb21hcF9od21vZF8yeHh4X2ludGVyY29ubmVj dF9kYXRhLm8KLW9iai0kKENPTkZJR19TT0NfT01BUDI0MjApCQkrPSBvbWFwX2h3bW9kXzI0MjBf ZGF0YS5vCi1vYmotJChDT05GSUdfU09DX09NQVAyNDMwKQkJKz0gb21hcF9od21vZF8yeHh4X2lw YmxvY2tfZGF0YS5vCi1vYmotJChDT05GSUdfU09DX09NQVAyNDMwKQkJKz0gb21hcF9od21vZF8y eHh4XzN4eHhfaXBibG9ja19kYXRhLm8KLW9iai0kKENPTkZJR19TT0NfT01BUDI0MzApCQkrPSBv bWFwX2h3bW9kXzJ4eHhfaW50ZXJjb25uZWN0X2RhdGEubwotb2JqLSQoQ09ORklHX1NPQ19PTUFQ MjQzMCkJCSs9IG9tYXBfaHdtb2RfMjQzMF9kYXRhLm8KIG9iai0kKENPTkZJR19BUkNIX09NQVAz KQkJKz0gb21hcF9od21vZF8yeHh4XzN4eHhfaXBibG9ja19kYXRhLm8KIG9iai0kKENPTkZJR19B UkNIX09NQVAzKQkJKz0gb21hcF9od21vZF8zeHh4X2RhdGEubwogb2JqLSQoQ09ORklHX1NPQ19U STgxWFgpCQkrPSBvbWFwX2h3bW9kXzgxeHhfZGF0YS5vCiAKLSMgT01BUDI0MjAgTVNESSBjb250 cm9sbGVyIGludGVncmF0aW9uIHN1cHBvcnQgKCJNTUMiKQotb2JqLSQoQ09ORklHX1NPQ19PTUFQ MjQyMCkJCSs9IG1zZGkubwotCiAjIFNwZWNpZmljIGJvYXJkIHN1cHBvcnQKIG9iai0kKENPTkZJ R19NQUNIX09NQVBfR0VORVJJQykJCSs9IGJvYXJkLWdlbmVyaWMubyBwZGF0YS1xdWlya3Mubwot b2JqLSQoQ09ORklHX01BQ0hfTk9LSUFfTjhYMCkJCSs9IGJvYXJkLW44eDAubwogCiAjIFBsYXRm b3JtIHNwZWNpZmljIGRldmljZSBpbml0IGNvZGUKIAogb2JqLXkJCQkJCSs9IG9tYXBfcGh5X2lu dGVybmFsLm8KIAotb2JqLSQoQ09ORklHX01BQ0hfT01BUDJfVFVTQjYwMTApCSs9IHVzYi10dXNi NjAxMC5vCi0KICQob2JqKS9wbS1hc20tb2Zmc2V0cy5oOiAkKG9iaikvcG0tYXNtLW9mZnNldHMu cyBGT1JDRQogCSQoY2FsbCBmaWxlY2hrLG9mZnNldHMsX19USV9QTV9BU01fT0ZGU0VUU19IX18p CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5jIGIvYXJj aC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmMKaW5kZXggYmZmNjczZTkzMmZlLi45NzJi OGNmMDU0N2YgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5j CisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5jCkBAIC00NSw0MCArNDUs NiBAQCB2b2lkIHRpY2tfYnJvYWRjYXN0KGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrKQogfQog I2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfU09DX09NQVAyNDIwCi1zdGF0aWMgY29uc3QgY2hhciAq Y29uc3Qgb21hcDI0MnhfYm9hcmRzX2NvbXBhdFtdIF9faW5pdGNvbnN0ID0gewotCSJ0aSxvbWFw MjQyMCIsCi0JTlVMTCwKLX07Ci0KLURUX01BQ0hJTkVfU1RBUlQoT01BUDI0MlhfRFQsICJHZW5l cmljIE9NQVAyNDIwIChGbGF0dGVuZWQgRGV2aWNlIFRyZWUpIikKLQkucmVzZXJ2ZQk9IG9tYXBf cmVzZXJ2ZSwKLQkubWFwX2lvCQk9IG9tYXAyNDJ4X21hcF9pbywKLQkuaW5pdF9lYXJseQk9IG9t YXAyNDIwX2luaXRfZWFybHksCi0JLmluaXRfbWFjaGluZQk9IG9tYXBfZ2VuZXJpY19pbml0LAot CS5pbml0X3RpbWUJPSBvbWFwX2luaXRfdGltZV9vZiwKLQkuZHRfY29tcGF0CT0gb21hcDI0Mnhf Ym9hcmRzX2NvbXBhdCwKLQkucmVzdGFydAk9IG9tYXAyeHh4X3Jlc3RhcnQsCi1NQUNISU5FX0VO RAotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfU09DX09NQVAyNDMwCi1zdGF0aWMgY29uc3QgY2hh ciAqY29uc3Qgb21hcDI0M3hfYm9hcmRzX2NvbXBhdFtdIF9faW5pdGNvbnN0ID0gewotCSJ0aSxv bWFwMjQzMCIsCi0JTlVMTCwKLX07Ci0KLURUX01BQ0hJTkVfU1RBUlQoT01BUDI0M1hfRFQsICJH ZW5lcmljIE9NQVAyNDMwIChGbGF0dGVuZWQgRGV2aWNlIFRyZWUpIikKLQkucmVzZXJ2ZQk9IG9t YXBfcmVzZXJ2ZSwKLQkubWFwX2lvCQk9IG9tYXAyNDN4X21hcF9pbywKLQkuaW5pdF9lYXJseQk9 IG9tYXAyNDMwX2luaXRfZWFybHksCi0JLmluaXRfbWFjaGluZQk9IG9tYXBfZ2VuZXJpY19pbml0 LAotCS5pbml0X3RpbWUJPSBvbWFwX2luaXRfdGltZV9vZiwKLQkuZHRfY29tcGF0CT0gb21hcDI0 M3hfYm9hcmRzX2NvbXBhdCwKLQkucmVzdGFydAk9IG9tYXAyeHh4X3Jlc3RhcnQsCi1NQUNISU5F X0VORAotI2VuZGlmCi0KICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogLyogU29tZSBib2FyZHMg bmVlZCBib2FyZCBuYW1lIGZvciBsZWdhY3kgdXNlcnNwYWNlIGluIC9wcm9jL2NwdWluZm8gKi8K IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuOTAwX2JvYXJkc19jb21wYXRbXSBfX2luaXRjb25z dCA9IHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtbjh4MC5jIGIvYXJj aC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGQ5YWNkMzJjNTQ1Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIv Ym9hcmQtbjh4MC5jCisrKyAvZGV2L251bGwKQEAgLTEsNTEyICswLDAgQEAKLS8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBsaW51eC9hcmNoL2FybS9tYWNo LW9tYXAyL2JvYXJkLW44eDAuYwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA5IE5va2lh IENvcnBvcmF0aW9uCi0gKiBBdXRob3I6IEp1aGEgWXJqb2xhIDxqdWhhLnlyam9sYUBub2tpYS5j b20+Ci0gKgotICogTW9kaWZpZWQgZnJvbSBtYWNoLW9tYXAyL2JvYXJkLWdlbmVyaWMuYwotICov Ci0KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2lu Y2x1ZGUgPGxpbnV4L2dwaW8vbWFjaGluZS5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3Vt ZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLSNp bmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KLSNpbmNsdWRl IDxsaW51eC9pMmMuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0jaW5jbHVkZSA8bGlu dXgvdXNiL211c2IuaD4KLSNpbmNsdWRlIDxsaW51eC9tbWMvaG9zdC5oPgotI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RhdGEvbW1jLW9tYXAuaD4KLSNpbmNsdWRlIDxsaW51eC9tZmQvbWVuZWxh dXMuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KLSNpbmNsdWRlIDxhc20vbWFjaC10 eXBlcy5oPgotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0jaW5jbHVkZSAibW1jLmgiCi0jaW5jbHVk ZSAidXNiLXR1c2I2MDEwLmgiCi0jaW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiY29tbW9uLWJv YXJkLWRldmljZXMuaCIKLQotI2RlZmluZSBUVVNCNjAxMF9BU1lOQ19DUwkxCi0jZGVmaW5lIFRV U0I2MDEwX1NZTkNfQ1MJNAotI2RlZmluZSBUVVNCNjAxMF9ETUFDSEFOCTB4M2YKLQotI2RlZmlu ZSBOT0tJQV9OODEwX1dJTUFYCSgxIDw8IDIpCi0jZGVmaW5lIE5PS0lBX044MTAJCSgxIDw8IDEp Ci0jZGVmaW5lIE5PS0lBX044MDAJCSgxIDw8IDApCi0KLXN0YXRpYyB1MzIgYm9hcmRfY2FwczsK LQotI2RlZmluZSBib2FyZF9pc19uODAwKCkJCShib2FyZF9jYXBzICYgTk9LSUFfTjgwMCkKLSNk ZWZpbmUgYm9hcmRfaXNfbjgxMCgpCQkoYm9hcmRfY2FwcyAmIE5PS0lBX044MTApCi0jZGVmaW5l IGJvYXJkX2lzX244MTBfd2ltYXgoKQkoYm9hcmRfY2FwcyAmIE5PS0lBX044MTBfV0lNQVgpCi0K LXN0YXRpYyB2b2lkIGJvYXJkX2NoZWNrX3JldmlzaW9uKHZvaWQpCi17Ci0JaWYgKG9mX21hY2hp bmVfaXNfY29tcGF0aWJsZSgibm9raWEsbjgwMCIpKQotCQlib2FyZF9jYXBzID0gTk9LSUFfTjgw MDsKLQllbHNlIGlmIChvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoIm5va2lhLG44MTAiKSkKLQkJ Ym9hcmRfY2FwcyA9IE5PS0lBX044MTA7Ci0JZWxzZSBpZiAob2ZfbWFjaGluZV9pc19jb21wYXRp YmxlKCJub2tpYSxuODEwLXdpbWF4IikpCi0JCWJvYXJkX2NhcHMgPSBOT0tJQV9OODEwX1dJTUFY OwotCi0JaWYgKCFib2FyZF9jYXBzKQotCQlwcl9lcnIoIlVua25vd24gYm9hcmRcbiIpOwotfQot Ci0jaWYgSVNfRU5BQkxFRChDT05GSUdfVVNCX01VU0JfVFVTQjYwMTApCi0KLXN0YXRpYyBzdHJ1 Y3QgbXVzYl9oZHJjX2NvbmZpZyBtdXNiX2NvbmZpZyA9IHsKLQkubXVsdGlwb2ludAk9IDEsCi0J LmR5bl9maWZvCT0gMSwKLQkubnVtX2Vwcwk9IDE2LAotCS5yYW1fYml0cwk9IDEyLAotfTsKLQot c3RhdGljIHN0cnVjdCBtdXNiX2hkcmNfcGxhdGZvcm1fZGF0YSB0dXNiX2RhdGEgPSB7Ci0JLm1v ZGUJCT0gTVVTQl9PVEcsCi0JLm1pbl9wb3dlcgk9IDI1LAkvKiB4MiA9IDUwIG1BIGRyYXduIGZy b20gVkJVUyBhcyBwZXJpcGhlcmFsICovCi0JLnBvd2VyCQk9IDEwMCwJLyogTWF4IDEwMCBtQSBW QlVTIGZvciBob3N0IG1vZGUgKi8KLQkuY29uZmlnCQk9ICZtdXNiX2NvbmZpZywKLX07Ci0KLXN0 YXRpYyBzdHJ1Y3QgZ3Bpb2RfbG9va3VwX3RhYmxlIHR1c2JfZ3Bpb190YWJsZSA9IHsKLQkuZGV2 X2lkID0gIm11c2ItdHVzYiIsCi0JLnRhYmxlID0gewotCQlHUElPX0xPT0tVUCgiZ3Bpby0wLTMx IiwgMCwgImVuYWJsZSIsIEdQSU9fQUNUSVZFX0hJR0gpLAotCQlHUElPX0xPT0tVUCgiZ3Bpby0z Mi02MyIsIDI2LCAiaW50IiwgR1BJT19BQ1RJVkVfSElHSCksCi0JCXsgfQotCX0sCi19OwotCi1z dGF0aWMgdm9pZCBfX2luaXQgbjh4MF91c2JfaW5pdCh2b2lkKQotewotCWludCByZXQgPSAwOwot Ci0JZ3Bpb2RfYWRkX2xvb2t1cF90YWJsZSgmdHVzYl9ncGlvX3RhYmxlKTsKLQlyZXQgPSB0dXNi NjAxMF9zZXR1cF9pbnRlcmZhY2UoJnR1c2JfZGF0YSwgVFVTQjYwMTBfUkVGQ0xLXzE5LCAyLAot CQkJCSAgICAgICBUVVNCNjAxMF9BU1lOQ19DUywgVFVTQjYwMTBfU1lOQ19DUywKLQkJCQkgICAg ICAgVFVTQjYwMTBfRE1BQ0hBTik7Ci0JaWYgKHJldCAhPSAwKQotCQlyZXR1cm47Ci0KLQlwcl9p bmZvKCJUVVNCIDYwMTBcbiIpOwotCi0JcmV0dXJuOwotfQotI2Vsc2UKLQotc3RhdGljIHZvaWQg X19pbml0IG44eDBfdXNiX2luaXQodm9pZCkge30KLQotI2VuZGlmIC8qQ09ORklHX1VTQl9NVVNC X1RVU0I2MDEwICovCi0KLSNpZiBkZWZpbmVkKENPTkZJR19NRU5FTEFVUykgJiYgSVNfRU5BQkxF RChDT05GSUdfTU1DX09NQVApCi0KLS8qCi0gKiBPbiBib3RoIE44MDAgYW5kIE44MTAsIG9ubHkg dGhlIGZpcnN0IG9mIHRoZSB0d28gTU1DIGNvbnRyb2xsZXJzIGlzIGluIHVzZS4KLSAqIFRoZSB0 d28gTU1DIHNsb3RzIGFyZSBtdWx0aXBsZXhlZCB2aWEgTWVuZWxhdXMgY29tcGFuaW9uIGNoaXAg b3ZlciBJMkMuCi0gKiBPbiBOODAwLCBib3RoIHNsb3RzIGFyZSBwb3dlcmVkIHZpYSBNZW5lbGF1 cy4gT24gTjgxMCwgb25seSBvbmUgb2YgdGhlCi0gKiBzbG90cyBpcyBwb3dlcmVkIHZpYSBNZW5l bGF1cy4gVGhlIE44MTAgRU1NQyBpcyBwb3dlcmVkIHZpYSBHUElPLgotICoKLSAqIFZNTUMJCQkJ c2xvdCAxIG9uIGJvdGggTjgwMCBhbmQgTjgxMAotICogVkRDREMzX0FQRSBhbmQgVk1DUzJfQVBF CXNsb3QgMiBvbiBOODAwCi0gKiBHUElPMjMgYW5kIEdQSU85CQlzbG90IDIgRU1NQyBvbiBOODEw Ci0gKgotICovCi1zdGF0aWMgaW50IHNsb3QxX2NvdmVyX29wZW47Ci1zdGF0aWMgaW50IHNsb3Qy X2NvdmVyX29wZW47Ci1zdGF0aWMgc3RydWN0IGRldmljZSAqbW1jX2RldmljZTsKLQotc3RhdGlj IHN0cnVjdCBncGlvZF9sb29rdXBfdGFibGUgbm9raWE4MDBfbW1jX2dwaW9fdGFibGUgPSB7Ci0J LmRldl9pZCA9ICJtbWNpLW9tYXAuMCIsCi0JLnRhYmxlID0gewotCQkvKiBTbG90IHN3aXRjaCwg R1BJTyA5NiAqLwotCQlHUElPX0xPT0tVUCgiZ3Bpby05Ni0xMjciLCAwLCAic3dpdGNoIiwgR1BJ T19BQ1RJVkVfSElHSCksCi0JCXsgfQotCX0sCi19OwotCi1zdGF0aWMgc3RydWN0IGdwaW9kX2xv b2t1cF90YWJsZSBub2tpYTgxMF9tbWNfZ3Bpb190YWJsZSA9IHsKLQkuZGV2X2lkID0gIm1tY2kt b21hcC4wIiwKLQkudGFibGUgPSB7Ci0JCS8qIFNsb3Qgc3dpdGNoLCBHUElPIDk2ICovCi0JCUdQ SU9fTE9PS1VQKCJncGlvLTk2LTEyNyIsIDAsICJzd2l0Y2giLCBHUElPX0FDVElWRV9ISUdIKSwK LQkJLyogU2xvdCBpbmRleCAxLCBWU0QgcG93ZXIsIEdQSU8gMjMgKi8KLQkJR1BJT19MT09LVVBf SURYKCJncGlvLTAtMzEiLCAyMywgInZzZCIsIDEsIEdQSU9fQUNUSVZFX0hJR0gpLAotCQkvKiBT bG90IGluZGV4IDEsIFZJTyBwb3dlciwgR1BJTyA5ICovCi0JCUdQSU9fTE9PS1VQX0lEWCgiZ3Bp by0wLTMxIiwgOSwgInZpbyIsIDEsIEdQSU9fQUNUSVZFX0hJR0gpLAotCQl7IH0KLQl9LAotfTsK LQotc3RhdGljIGludCBuOHgwX21tY19zZXRfcG93ZXJfbWVuZWxhdXMoc3RydWN0IGRldmljZSAq ZGV2LCBpbnQgc2xvdCwKLQkJCQkJaW50IHBvd2VyX29uLCBpbnQgdmRkKQotewotCWludCBtVjsK LQotI2lmZGVmIENPTkZJR19NTUNfREVCVUcKLQlkZXZfZGJnKGRldiwgIlNldCBzbG90ICVkIHBv d2VyOiAlcyAodmRkICVkKVxuIiwgc2xvdCArIDEsCi0JCXN0cl9vbl9vZmYocG93ZXJfb24pLCB2 ZGQpOwotI2VuZGlmCi0JaWYgKHNsb3QgPT0gMCkgewotCQlpZiAoIXBvd2VyX29uKQotCQkJcmV0 dXJuIG1lbmVsYXVzX3NldF92bW1jKDApOwotCQlzd2l0Y2ggKDEgPDwgdmRkKSB7Ci0JCWNhc2Ug TU1DX1ZERF8zM18zNDoKLQkJY2FzZSBNTUNfVkREXzMyXzMzOgotCQljYXNlIE1NQ19WRERfMzFf MzI6Ci0JCQltViA9IDMxMDA7Ci0JCQlicmVhazsKLQkJY2FzZSBNTUNfVkREXzMwXzMxOgotCQkJ bVYgPSAzMDAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgTU1DX1ZERF8yOF8yOToKLQkJCW1WID0gMjgw MDsKLQkJCWJyZWFrOwotCQljYXNlIE1NQ19WRERfMTY1XzE5NToKLQkJCW1WID0gMTg1MDsKLQkJ CWJyZWFrOwotCQlkZWZhdWx0OgotCQkJQlVHKCk7Ci0JCX0KLQkJcmV0dXJuIG1lbmVsYXVzX3Nl dF92bW1jKG1WKTsKLQl9IGVsc2UgewotCQlpZiAoIXBvd2VyX29uKQotCQkJcmV0dXJuIG1lbmVs YXVzX3NldF92ZGNkYygzLCAwKTsKLQkJc3dpdGNoICgxIDw8IHZkZCkgewotCQljYXNlIE1NQ19W RERfMzNfMzQ6Ci0JCWNhc2UgTU1DX1ZERF8zMl8zMzoKLQkJCW1WID0gMzMwMDsKLQkJCWJyZWFr OwotCQljYXNlIE1NQ19WRERfMzBfMzE6Ci0JCWNhc2UgTU1DX1ZERF8yOV8zMDoKLQkJCW1WID0g MzAwMDsKLQkJCWJyZWFrOwotCQljYXNlIE1NQ19WRERfMjhfMjk6Ci0JCWNhc2UgTU1DX1ZERF8y N18yODoKLQkJCW1WID0gMjgwMDsKLQkJCWJyZWFrOwotCQljYXNlIE1NQ19WRERfMjRfMjU6Ci0J CWNhc2UgTU1DX1ZERF8yM18yNDoKLQkJCW1WID0gMjQwMDsKLQkJCWJyZWFrOwotCQljYXNlIE1N Q19WRERfMjJfMjM6Ci0JCWNhc2UgTU1DX1ZERF8yMV8yMjoKLQkJCW1WID0gMjIwMDsKLQkJCWJy ZWFrOwotCQljYXNlIE1NQ19WRERfMjBfMjE6Ci0JCQltViA9IDIwMDA7Ci0JCQlicmVhazsKLQkJ Y2FzZSBNTUNfVkREXzE2NV8xOTU6Ci0JCQltViA9IDE4MDA7Ci0JCQlicmVhazsKLQkJZGVmYXVs dDoKLQkJCUJVRygpOwotCQl9Ci0JCXJldHVybiBtZW5lbGF1c19zZXRfdmRjZGMoMywgbVYpOwot CX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBuOHgwX21tY19zZXRfcG93ZXIoc3RydWN0 IGRldmljZSAqZGV2LCBpbnQgc2xvdCwgaW50IHBvd2VyX29uLAotCQkJICAgICAgaW50IHZkZCkK LXsKLQlpZiAoYm9hcmRfaXNfbjgwMCgpIHx8IHNsb3QgPT0gMCkKLQkJcmV0dXJuIG44eDBfbW1j X3NldF9wb3dlcl9tZW5lbGF1cyhkZXYsIHNsb3QsIHBvd2VyX29uLCB2ZGQpOwotCi0JLyogVGhl IG44MTAgcG93ZXIgd2lsbCBiZSBoYW5kbGVkIGJ5IEdQSU8gY29kZSBpbiB0aGUgZHJpdmVyICov Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBuOHgwX21tY19zZXRfYnVzX21vZGUoc3Ry dWN0IGRldmljZSAqZGV2LCBpbnQgc2xvdCwgaW50IGJ1c19tb2RlKQotewotCWludCByOwotCi0J ZGV2X2RiZyhkZXYsICJTZXQgc2xvdCAlZCBidXMgbW9kZSAlc1xuIiwgc2xvdCArIDEsCi0JCWJ1 c19tb2RlID09IE1NQ19CVVNNT0RFX09QRU5EUkFJTiA/ICJvcGVuLWRyYWluIiA6ICJwdXNoLXB1 bGwiKTsKLQlCVUdfT04oc2xvdCAhPSAwICYmIHNsb3QgIT0gMSk7Ci0Jc2xvdCsrOwotCXN3aXRj aCAoYnVzX21vZGUpIHsKLQljYXNlIE1NQ19CVVNNT0RFX09QRU5EUkFJTjoKLQkJciA9IG1lbmVs YXVzX3NldF9tbWNfb3BlbmRyYWluKHNsb3QsIDEpOwotCQlicmVhazsKLQljYXNlIE1NQ19CVVNN T0RFX1BVU0hQVUxMOgotCQlyID0gbWVuZWxhdXNfc2V0X21tY19vcGVuZHJhaW4oc2xvdCwgMCk7 Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCUJVRygpOwotCX0KLQlpZiAociAhPSAwICYmIHByaW50 a19yYXRlbGltaXQoKSkKLQkJZGV2X2VycihkZXYsICJNTUM6IHVuYWJsZSB0byBzZXQgYnVzIG1v ZGUgZm9yIHNsb3QgJWRcbiIsCi0JCQlzbG90KTsKLQlyZXR1cm4gcjsKLX0KLQotc3RhdGljIGlu dCBuOHgwX21tY19nZXRfY292ZXJfc3RhdGUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgc2xvdCkK LXsKLQlzbG90Kys7Ci0JQlVHX09OKHNsb3QgIT0gMSAmJiBzbG90ICE9IDIpOwotCWlmIChzbG90 ID09IDEpCi0JCXJldHVybiBzbG90MV9jb3Zlcl9vcGVuOwotCWVsc2UKLQkJcmV0dXJuIHNsb3Qy X2NvdmVyX29wZW47Ci19Ci0KLXN0YXRpYyB2b2lkIG44eDBfbW1jX2NhbGxiYWNrKHZvaWQgKmRh dGEsIHU4IGNhcmRfbWFzaykKLXsKLSNpZmRlZiBDT05GSUdfTU1DX09NQVAKLQlpbnQgYml0LCAq b3BlbnAsIGluZGV4OwotCi0JaWYgKGJvYXJkX2lzX244MDAoKSkgewotCQliaXQgPSAxIDw8IDE7 Ci0JCW9wZW5wID0gJnNsb3QyX2NvdmVyX29wZW47Ci0JCWluZGV4ID0gMTsKLQl9IGVsc2Ugewot CQliaXQgPSAxOwotCQlvcGVucCA9ICZzbG90MV9jb3Zlcl9vcGVuOwotCQlpbmRleCA9IDA7Ci0J fQotCi0JaWYgKGNhcmRfbWFzayAmIGJpdCkKLQkJKm9wZW5wID0gMTsKLQllbHNlCi0JCSpvcGVu cCA9IDA7Ci0KLQlvbWFwX21tY19ub3RpZnlfY292ZXJfZXZlbnQobW1jX2RldmljZSwgaW5kZXgs ICpvcGVucCk7Ci0jZWxzZQotCXByX3dhcm4oIk1NQzogbm90aWZ5IGNvdmVyIGV2ZW50IG5vdCBh dmFpbGFibGVcbiIpOwotI2VuZGlmCi19Ci0KLXN0YXRpYyBpbnQgbjh4MF9tbWNfbGF0ZV9pbml0 KHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlpbnQgciwgYml0LCAqb3BlbnA7Ci0JaW50IHZzMnNl bDsKLQotCW1tY19kZXZpY2UgPSBkZXY7Ci0KLQlyID0gbWVuZWxhdXNfc2V0X3Nsb3Rfc2VsKDEp OwotCWlmIChyIDwgMCkKLQkJcmV0dXJuIHI7Ci0KLQlpZiAoYm9hcmRfaXNfbjgwMCgpKQotCQl2 czJzZWwgPSAwOwotCWVsc2UKLQkJdnMyc2VsID0gMjsKLQotCXIgPSBtZW5lbGF1c19zZXRfbW1j X3Nsb3QoMiwgMCwgdnMyc2VsLCAxKTsKLQlpZiAociA8IDApCi0JCXJldHVybiByOwotCi0Jbjh4 MF9tbWNfc2V0X3Bvd2VyKGRldiwgMCwgTU1DX1BPV0VSX09OLCAxNik7IC8qIE1NQ19WRERfMjhf MjkgKi8KLQluOHgwX21tY19zZXRfcG93ZXIoZGV2LCAxLCBNTUNfUE9XRVJfT04sIDE2KTsKLQot CXIgPSBtZW5lbGF1c19zZXRfbW1jX3Nsb3QoMSwgMSwgMCwgMSk7Ci0JaWYgKHIgPCAwKQotCQly ZXR1cm4gcjsKLQlyID0gbWVuZWxhdXNfc2V0X21tY19zbG90KDIsIDEsIHZzMnNlbCwgMSk7Ci0J aWYgKHIgPCAwKQotCQlyZXR1cm4gcjsKLQotCXIgPSBtZW5lbGF1c19nZXRfc2xvdF9waW5fc3Rh dGVzKCk7Ci0JaWYgKHIgPCAwKQotCQlyZXR1cm4gcjsKLQotCWlmIChib2FyZF9pc19uODAwKCkp IHsKLQkJYml0ID0gMSA8PCAxOwotCQlvcGVucCA9ICZzbG90Ml9jb3Zlcl9vcGVuOwotCX0gZWxz ZSB7Ci0JCWJpdCA9IDE7Ci0JCW9wZW5wID0gJnNsb3QxX2NvdmVyX29wZW47Ci0JCXNsb3QyX2Nv dmVyX29wZW4gPSAwOwotCX0KLQotCS8qIEFsbCBzbG90IHBpbiBiaXRzIHNlZW0gdG8gYmUgaW52 ZXJzZWQgdW50aWwgZmlyc3Qgc3dpdGNoIGNoYW5nZSAqLwotCWlmIChyID09IDB4ZiB8fCByID09 ICgweGYgJiB+Yml0KSkKLQkJciA9IH5yOwotCi0JaWYgKHIgJiBiaXQpCi0JCSpvcGVucCA9IDE7 Ci0JZWxzZQotCQkqb3BlbnAgPSAwOwotCi0JciA9IG1lbmVsYXVzX3JlZ2lzdGVyX21tY19jYWxs YmFjayhuOHgwX21tY19jYWxsYmFjaywgTlVMTCk7Ci0KLQlyZXR1cm4gcjsKLX0KLQotc3RhdGlj IHZvaWQgbjh4MF9tbWNfc2h1dGRvd24oc3RydWN0IGRldmljZSAqZGV2KQotewotCWludCB2czJz ZWw7Ci0KLQlpZiAoYm9hcmRfaXNfbjgwMCgpKQotCQl2czJzZWwgPSAwOwotCWVsc2UKLQkJdnMy c2VsID0gMjsKLQotCW1lbmVsYXVzX3NldF9tbWNfc2xvdCgxLCAwLCAwLCAwKTsKLQltZW5lbGF1 c19zZXRfbW1jX3Nsb3QoMiwgMCwgdnMyc2VsLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgbjh4MF9t bWNfY2xlYW51cChzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0JbWVuZWxhdXNfdW5yZWdpc3Rlcl9t bWNfY2FsbGJhY2soKTsKLX0KLQotLyoKLSAqIE1NQyBjb250cm9sbGVyMSBoYXMgdHdvIHNsb3Rz IHRoYXQgYXJlIG11bHRpcGxleGVkIHZpYSBJMkMuCi0gKiBNTUMgY29udHJvbGxlcjIgaXMgbm90 IGluIHVzZS4KLSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX21tY19wbGF0Zm9ybV9kYXRhIG1tYzFf ZGF0YSA9IHsKLQkubnJfc2xvdHMJCQk9IDAsCi0JLmluaXQJCQkJPSBuOHgwX21tY19sYXRlX2lu aXQsCi0JLmNsZWFudXAJCQk9IG44eDBfbW1jX2NsZWFudXAsCi0JLnNodXRkb3duCQkJPSBuOHgw X21tY19zaHV0ZG93biwKLQkubWF4X2ZyZXEJCQk9IDI0MDAwMDAwLAotCS5zbG90c1swXSA9IHsK LQkJLndpcmVzCQkJPSA0LAotCQkuc2V0X3Bvd2VyCQk9IG44eDBfbW1jX3NldF9wb3dlciwKLQkJ LnNldF9idXNfbW9kZQkJPSBuOHgwX21tY19zZXRfYnVzX21vZGUsCi0JCS5nZXRfY292ZXJfc3Rh dGUJPSBuOHgwX21tY19nZXRfY292ZXJfc3RhdGUsCi0JCS5vY3JfbWFzawkJPSBNTUNfVkREXzE2 NV8xOTUgfCBNTUNfVkREXzMwXzMxIHwKLQkJCQkJCU1NQ19WRERfMzJfMzMgICB8IE1NQ19WRERf MzNfMzQsCi0JCS5uYW1lCQkJPSAiaW50ZXJuYWwiLAotCX0sCi0JLnNsb3RzWzFdID0gewotCQku c2V0X3Bvd2VyCQk9IG44eDBfbW1jX3NldF9wb3dlciwKLQkJLnNldF9idXNfbW9kZQkJPSBuOHgw X21tY19zZXRfYnVzX21vZGUsCi0JCS5nZXRfY292ZXJfc3RhdGUJPSBuOHgwX21tY19nZXRfY292 ZXJfc3RhdGUsCi0JCS5vY3JfbWFzawkJPSBNTUNfVkREXzE2NV8xOTUgfCBNTUNfVkREXzIwXzIx IHwKLQkJCQkJCU1NQ19WRERfMjFfMjIgfCBNTUNfVkREXzIyXzIzIHwKLQkJCQkJCU1NQ19WRERf MjNfMjQgfCBNTUNfVkREXzI0XzI1IHwKLQkJCQkJCU1NQ19WRERfMjdfMjggfCBNTUNfVkREXzI4 XzI5IHwKLQkJCQkJCU1NQ19WRERfMjlfMzAgfCBNTUNfVkREXzMwXzMxIHwKLQkJCQkJCU1NQ19W RERfMzJfMzMgfCBNTUNfVkREXzMzXzM0LAotCQkubmFtZQkJCT0gImV4dGVybmFsIiwKLQl9LAot fTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX21tY19wbGF0Zm9ybV9kYXRhICptbWNfZGF0YVtPTUFQ MjRYWF9OUl9NTUNdOwotCi1zdGF0aWMgdm9pZCBfX2luaXQgbjh4MF9tbWNfaW5pdCh2b2lkKQot ewotCWlmIChib2FyZF9pc19uODEwKCkpIHsKLQkJbW1jMV9kYXRhLnNsb3RzWzBdLm5hbWUgPSAi ZXh0ZXJuYWwiOwotCi0JCS8qCi0JCSAqIFNvbWUgU2Ftc3VuZyBNb3ZpbmFuZCBjaGlwcyBkbyBu b3QgbGlrZSBvcGVuLWVuZGVkCi0JCSAqIG11bHRpLWJsb2NrIHJlYWRzIGFuZCBmYWxsIHRvIGJy YWluZC1kZWFkIHN0YXRlCi0JCSAqIHdoaWxlIGRvaW5nIHNvLiBSZWR1Y2luZyB0aGUgbnVtYmVy IG9mIGJsb2NrcyBpbgotCQkgKiB0aGUgdHJhbnNmZXIgb3IgZGVsYXlzIGluIGNsb2NrIGRpc2Fi bGUgZG8gbm90IGhlbHAKLQkJICovCi0JCW1tYzFfZGF0YS5zbG90c1sxXS5uYW1lID0gImludGVy bmFsIjsKLQkJbW1jMV9kYXRhLnNsb3RzWzFdLmJhbl9vcGVuZW5kZWQgPSAxOwotCQlncGlvZF9h ZGRfbG9va3VwX3RhYmxlKCZub2tpYTgxMF9tbWNfZ3Bpb190YWJsZSk7Ci0JfSBlbHNlIHsKLQkJ Z3Bpb2RfYWRkX2xvb2t1cF90YWJsZSgmbm9raWE4MDBfbW1jX2dwaW9fdGFibGUpOwotCX0KLQot CW1tYzFfZGF0YS5ucl9zbG90cyA9IDI7Ci0JbW1jX2RhdGFbMF0gPSAmbW1jMV9kYXRhOwotfQot I2Vsc2UKLXN0YXRpYyBzdHJ1Y3Qgb21hcF9tbWNfcGxhdGZvcm1fZGF0YSBtbWMxX2RhdGE7Ci1z dGF0aWMgdm9pZCBfX2luaXQgbjh4MF9tbWNfaW5pdCh2b2lkKQotewotfQotI2VuZGlmCS8qIENP TkZJR19NTUNfT01BUCAqLwotCi0jaWZkZWYgQ09ORklHX01FTkVMQVVTCi0KLXN0YXRpYyBpbnQg bjh4MF9hdXRvX3NsZWVwX3JlZ3VsYXRvcnModm9pZCkKLXsKLQl1MzIgdmFsOwotCWludCByZXQ7 Ci0KLQl2YWwgPSBFTl9WUExMX1NMRUVQIHwgRU5fVk1NQ19TTEVFUCAgICBcCi0JCXwgRU5fVkFV WF9TTEVFUCB8IEVOX1ZJT19TTEVFUCBcCi0JCXwgRU5fVk1FTV9TTEVFUCB8IEVOX0RDM19TTEVF UCBcCi0JCXwgRU5fVkNfU0xFRVAgfCBFTl9EQzJfU0xFRVA7Ci0KLQlyZXQgPSBtZW5lbGF1c19z ZXRfcmVndWxhdG9yX3NsZWVwKDEsIHZhbCk7Ci0JaWYgKHJldCA8IDApIHsKLQkJcHJfZXJyKCJD b3VsZCBub3Qgc2V0IHJlZ3VsYXRvcnMgdG8gc2xlZXAgb24gbWVuZWxhdXM6ICV1XG4iLAotCQkg ICAgICAgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBp bnQgbjh4MF9hdXRvX3ZvbHRhZ2Vfc2NhbGUodm9pZCkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0g bWVuZWxhdXNfc2V0X3Zjb3JlX2h3KDE0MDAsIDEwNTApOwotCWlmIChyZXQgPCAwKSB7Ci0JCXBy X2VycigiQ291bGQgbm90IHNldCBWQ09SRSB2b2x0YWdlIG9uIG1lbmVsYXVzOiAldVxuIiwgcmV0 KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbjh4MF9t ZW5lbGF1c19sYXRlX2luaXQoc3RydWN0IGRldmljZSAqZGV2KQotewotCWludCByZXQ7Ci0KLQly ZXQgPSBuOHgwX2F1dG9fdm9sdGFnZV9zY2FsZSgpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4g cmV0OwotCXJldCA9IG44eDBfYXV0b19zbGVlcF9yZWd1bGF0b3JzKCk7Ci0JaWYgKHJldCA8IDAp Ci0JCXJldHVybiByZXQ7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlCi1zdGF0aWMgaW50IG44eDBf bWVuZWxhdXNfbGF0ZV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlyZXR1cm4gMDsKLX0K LSNlbmRpZgotCi1zdHJ1Y3QgbWVuZWxhdXNfcGxhdGZvcm1fZGF0YSBuOHgwX21lbmVsYXVzX3Bs YXRmb3JtX2RhdGEgPSB7Ci0JLmxhdGVfaW5pdCA9IG44eDBfbWVuZWxhdXNfbGF0ZV9pbml0LAot fTsKLQotc3RhdGljIHN0cnVjdCBncGlvZF9sb29rdXBfdGFibGUgbm9raWE4MTBfYXNvY19ncGlv X3RhYmxlID0gewotCS5kZXZfaWQgPSAic29jLWF1ZGlvIiwKLQkudGFibGUgPSB7Ci0JCUdQSU9f TE9PS1VQKCJncGlvLTAtMTUiLCAxMCwgImhlYWRzZXQiLCBHUElPX0FDVElWRV9ISUdIKSwKLQkJ R1BJT19MT09LVVAoImdwaW8tODAtMTExIiwgMjEsICJzcGVha2VyIiwgR1BJT19BQ1RJVkVfSElH SCksCi0JCXsgfQotCX0sCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBuOHgwX2xhdGVfaW5pdGNh bGwodm9pZCkKLXsKLQlpZiAoIWJvYXJkX2NhcHMpCi0JCXJldHVybiAtRU5PREVWOwotCi0Jbjh4 MF9tbWNfaW5pdCgpOwotCW44eDBfdXNiX2luaXQoKTsKLQlncGlvZF9hZGRfbG9va3VwX3RhYmxl KCZub2tpYTgxMF9hc29jX2dwaW9fdGFibGUpOwotCi0JcmV0dXJuIDA7Ci19Ci1vbWFwX2xhdGVf aW5pdGNhbGwobjh4MF9sYXRlX2luaXRjYWxsKTsKLQotLyoKLSAqIExlZ2FjeSBpbml0IHBkYXRh IGluaXQgZm9yIG44eDAuIE5vdGUgdGhhdCB3ZSB3YW50IHRvIGZvbGxvdyB0aGUKLSAqIEkyQyBi dXMgbnVtYmVyaW5nIHN0YXJ0aW5nIGF0IDAgZm9yIGRldmljZSB0cmVlIGxpa2Ugb3RoZXIgb21h cHMuCi0gKi8KLXZvaWQgKiBfX2luaXQgbjh4MF9sZWdhY3lfaW5pdCh2b2lkKQotewotCWJvYXJk X2NoZWNrX3JldmlzaW9uKCk7Ci0JcmV0dXJuICZtbWMxX2RhdGE7Ci19CmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X2RwbGwuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIv Y2xrdDJ4eHhfZHBsbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWRlYmYzMzU1 ZmEuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X2RwbGwu YworKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBPTUFQMi1zcGVjaWZpYyBEUExMIGNvbnRyb2wgZnVu Y3Rpb25zCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uCi0gKiBQ YXVsIFdhbG1zbGV5Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUg PGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgv aW8uaD4KLQotI2luY2x1ZGUgImNsb2NrLmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCi0jaW5jbHVk ZSAiY20tcmVnYml0cy0yNHh4LmgiCi0KLS8qIFByaXZhdGUgZnVuY3Rpb25zICovCi0KLS8qKgot ICogX2FsbG93X2lkbGUgLSBlbmFibGUgRFBMTCBhdXRvaWRsZSBiaXRzCi0gKiBAY2xrOiBzdHJ1 Y3QgY2xrICogb2YgdGhlIERQTEwgdG8gb3BlcmF0ZSBvbgotICoKLSAqIEVuYWJsZSBEUExMIGF1 dG9tYXRpYyBpZGxlIGNvbnRyb2wuICBUaGUgRFBMTCB3aWxsIGVudGVyIGxvdy1wb3dlcgotICog c3RvcCB3aGVuIGl0cyBkb3duc3RyZWFtIGNsb2NrcyBhcmUgZ2F0ZWQuICBObyByZXR1cm4gdmFs dWUuCi0gKiBSRVZJU0lUOiBEUExMIGNhbiBvcHRpb25hbGx5IGVudGVyIGxvdy1wb3dlciBieXBh c3MgYnkgd3JpdGluZyAweDEKLSAqIGluc3RlYWQuICBBZGQgc29tZSBtZWNoYW5pc20gdG8gb3B0 aW9uYWxseSBlbnRlciB0aGlzIG1vZGUuCi0gKi8KLXN0YXRpYyB2b2lkIF9hbGxvd19pZGxlKHN0 cnVjdCBjbGtfaHdfb21hcCAqY2xrKQotewotCWlmICghY2xrIHx8ICFjbGstPmRwbGxfZGF0YSkK LQkJcmV0dXJuOwotCi0Jb21hcDJ4eHhfY21fc2V0X2RwbGxfYXV0b19sb3dfcG93ZXJfc3RvcCgp OwotfQotCi0vKioKLSAqIF9kZW55X2lkbGUgLSBwcmV2ZW50IERQTEwgZnJvbSBhdXRvbWF0aWNh bGx5IGlkbGluZwotICogQGNsazogc3RydWN0IGNsayAqIG9mIHRoZSBEUExMIHRvIG9wZXJhdGUg b24KLSAqCi0gKiBEaXNhYmxlIERQTEwgYXV0b21hdGljIGlkbGUgY29udHJvbC4gIE5vIHJldHVy biB2YWx1ZS4KLSAqLwotc3RhdGljIHZvaWQgX2RlbnlfaWRsZShzdHJ1Y3QgY2xrX2h3X29tYXAg KmNsaykKLXsKLQlpZiAoIWNsayB8fCAhY2xrLT5kcGxsX2RhdGEpCi0JCXJldHVybjsKLQotCW9t YXAyeHh4X2NtX3NldF9kcGxsX2Rpc2FibGVfYXV0b2lkbGUoKTsKLX0KLQotCi0vKiBQdWJsaWMg ZGF0YSAqLwotY29uc3Qgc3RydWN0IGNsa19od19vbWFwX29wcyBjbGtod29wc19vbWFwMnh4eF9k cGxsID0gewotCS5hbGxvd19pZGxlCT0gX2FsbG93X2lkbGUsCi0JLmRlbnlfaWRsZQk9IF9kZW55 X2lkbGUsCi19OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbGt0Mnh4eF9kcGxs Y29yZS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbGt0Mnh4eF9kcGxsY29yZS5jCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2Y2ZDNjZDk1MjUuLjAwMDAwMDAwMDAwMAotLS0gYS9h cmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X2RwbGxjb3JlLmMKKysrIC9kZXYvbnVsbApAQCAt MSwxOTQgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQot LyoKLSAqIERQTEwgKyBDT1JFX0NMSyBjb21wb3NpdGUgY2xvY2sgZnVuY3Rpb25zCi0gKgotICog Q29weXJpZ2h0IChDKSAyMDA1LTIwMDggVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIENvcHly aWdodCAoQykgMjAwNC0yMDEwIE5va2lhIENvcnBvcmF0aW9uCi0gKgotICogQ29udGFjdHM6Ci0g KiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+Ci0gKiBQYXVsIFdhbG1zbGV5 Ci0gKgotICogQmFzZWQgb24gZWFybGllciB3b3JrIGJ5IFR1dWtrYSBUaWtrYW5lbiwgVG9ueSBM aW5kZ3JlbiwKLSAqIEdvcmRvbiBNY051dHQgYW5kIFJpZGdlUnVuLCBJbmMuCi0gKgotICogWFhY IFRoZSBEUExMIGFuZCBDT1JFIGNsb2NrcyBzaG91bGQgYmUgc3BsaXQgaW50byB0d28gc2VwYXJh dGUgY2xvY2sKLSAqIHR5cGVzLgotICovCi0jdW5kZWYgREVCVUcKLQotI2luY2x1ZGUgPGxpbnV4 L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xr Lmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrL3RpLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLQot I2luY2x1ZGUgImNsb2NrLmgiCi0jaW5jbHVkZSAiY2xvY2syeHh4LmgiCi0jaW5jbHVkZSAib3Bw Mnh4eC5oIgotI2luY2x1ZGUgImNtMnh4eC5oIgotI2luY2x1ZGUgImNtLXJlZ2JpdHMtMjR4eC5o IgotI2luY2x1ZGUgInNkcmMuaCIKLSNpbmNsdWRlICJzcmFtLmgiCi0KLS8qICNkZWZpbmUgRE9X Tl9WQVJJQUJMRV9EUExMIDEgKi8JCS8qIEV4cGVyaW1lbnRhbCAqLwotCi0vKgotICogZHBsbF9j b3JlX2NrOiBwb2ludGVyIHRvIHRoZSBjb21iaW5lZCBkcGxsX2NrICsgY29yZV9jayBvbiBPTUFQ Mnh4eAotICogKGN1cnJlbnRseSBkZWZpbmVkIGFzICJkcGxsX2NrIiBpbiB0aGUgT01BUDJ4eHgg Y2xvY2sgdHJlZSkuICBTZXQKLSAqIGR1cmluZyBkcGxsX2NrIGluaXQgYW5kIHVzZWQgbGF0ZXIg Ynkgb21hcDJ4eHhfY2xrX2dldF9jb3JlX3JhdGUoKS4KLSAqLwotc3RhdGljIHN0cnVjdCBjbGtf aHdfb21hcCAqZHBsbF9jb3JlX2NrOwotCi0vKioKLSAqIG9tYXAyeHh4X2Nsa19nZXRfY29yZV9y YXRlIC0gcmV0dXJuIHRoZSBDT1JFX0NMSyByYXRlCi0gKgotICogUmV0dXJucyB0aGUgQ09SRV9D TEsgcmF0ZS4gIENPUkVfQ0xLIGNhbiBoYXZlIG9uZSBvZiB0aHJlZSByYXRlCi0gKiBzb3VyY2Vz IG9uIE9NQVAyeHh4OiB0aGUgRFBMTCBDTEtPVVQgcmF0ZSwgRFBMTCBDTEtPVVRYMiwgb3IgMzJL SHoKLSAqICh0aGUgbGF0dGVyIGlzIHVudXN1YWwpLiAgVGhpcyBjdXJyZW50bHkgc2hvdWxkIGJl IGNhbGxlZCB3aXRoCi0gKiBzdHJ1Y3QgY2xrICpkcGxsX2NrLCB3aGljaCBpcyBhIGNvbXBvc2l0 ZSBjbG9jayBvZiBkcGxsX2NrIGFuZAotICogY29yZV9jay4KLSAqLwotdW5zaWduZWQgbG9uZyBv bWFwMnh4eF9jbGtfZ2V0X2NvcmVfcmF0ZSh2b2lkKQotewotCWxvbmcgbG9uZyBjb3JlX2NsazsK LQl1MzIgdjsKLQotCVdBUk5fT04oIWRwbGxfY29yZV9jayk7Ci0KLQljb3JlX2NsayA9IG9tYXAy X2dldF9kcGxsX3JhdGUoZHBsbF9jb3JlX2NrKTsKLQotCXYgPSBvbWFwMnh4eF9jbV9nZXRfY29y ZV9jbGtfc3JjKCk7Ci0KLQlpZiAodiA9PSBDT1JFX0NMS19TUkNfMzJLKQotCQljb3JlX2NsayA9 IDMyNzY4OwotCWVsc2UKLQkJY29yZV9jbGsgKj0gdjsKLQotCXJldHVybiBjb3JlX2NsazsKLX0K LQotLyoKLSAqIFVzZXMgdGhlIGN1cnJlbnQgcHJjbSBzZXQgdG8gdGVsbCBpZiBhIHJhdGUgaXMg dmFsaWQuCi0gKiBZb3UgY2FuIGdvIHNsb3dlciwgYnV0IG5vdCBmYXN0ZXIgd2l0aGluIGEgZ2l2 ZW4gcmF0ZSBzZXQuCi0gKi8KLXN0YXRpYyBsb25nIG9tYXAyX2RwbGxjb3JlX3JvdW5kX3JhdGUo dW5zaWduZWQgbG9uZyB0YXJnZXRfcmF0ZSkKLXsKLQl1MzIgaGlnaCwgbG93LCBjb3JlX2Nsa19z cmM7Ci0KLQljb3JlX2Nsa19zcmMgPSBvbWFwMnh4eF9jbV9nZXRfY29yZV9jbGtfc3JjKCk7Ci0K LQlpZiAoY29yZV9jbGtfc3JjID09IENPUkVfQ0xLX1NSQ19EUExMKSB7CS8qIERQTEwgY2xvY2tv dXQgKi8KLQkJaGlnaCA9IGN1cnJfcHJjbV9zZXQtPmRwbGxfc3BlZWQgKiAyOwotCQlsb3cgPSBj dXJyX3ByY21fc2V0LT5kcGxsX3NwZWVkOwotCX0gZWxzZSB7CQkJCS8qIERQTEwgY2xvY2tvdXQg eCAyICovCi0JCWhpZ2ggPSBjdXJyX3ByY21fc2V0LT5kcGxsX3NwZWVkOwotCQlsb3cgPSBjdXJy X3ByY21fc2V0LT5kcGxsX3NwZWVkIC8gMjsKLQl9Ci0KLSNpZmRlZiBET1dOX1ZBUklBQkxFX0RQ TEwKLQlpZiAodGFyZ2V0X3JhdGUgPiBoaWdoKQotCQlyZXR1cm4gaGlnaDsKLQllbHNlCi0JCXJl dHVybiB0YXJnZXRfcmF0ZTsKLSNlbHNlCi0JaWYgKHRhcmdldF9yYXRlID4gbG93KQotCQlyZXR1 cm4gaGlnaDsKLQllbHNlCi0JCXJldHVybiBsb3c7Ci0jZW5kaWYKLQotfQotCi11bnNpZ25lZCBs b25nIG9tYXAyX2RwbGxjb3JlX3JlY2FsYyhzdHJ1Y3QgY2xrX2h3ICpodywKLQkJCQkgICAgdW5z aWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKLXsKLQlyZXR1cm4gb21hcDJ4eHhfY2xrX2dldF9jb3Jl X3JhdGUoKTsKLX0KLQotaW50IG9tYXAyX3JlcHJvZ3JhbV9kcGxsY29yZShzdHJ1Y3QgY2xrX2h3 ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAotCQkJICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9y YXRlKQotewotCXN0cnVjdCBjbGtfaHdfb21hcCAqY2xrID0gdG9fY2xrX2h3X29tYXAoaHcpOwot CXUzMiBjdXJfcmF0ZSwgbG93LCBtdWx0LCBkaXYsIHZhbGlkX3JhdGUsIGRvbmVfcmF0ZTsKLQl1 MzIgYnlwYXNzID0gMDsKLQlzdHJ1Y3QgcHJjbV9jb25maWcgdG1wc2V0OwotCWNvbnN0IHN0cnVj dCBkcGxsX2RhdGEgKmRkOwotCi0JY3VyX3JhdGUgPSBvbWFwMnh4eF9jbGtfZ2V0X2NvcmVfcmF0 ZSgpOwotCW11bHQgPSBvbWFwMnh4eF9jbV9nZXRfY29yZV9jbGtfc3JjKCk7Ci0KLQlpZiAoKHJh dGUgPT0gKGN1cl9yYXRlIC8gMikpICYmIChtdWx0ID09IDIpKSB7Ci0JCW9tYXAyeHh4X3NkcmNf cmVwcm9ncmFtKENPUkVfQ0xLX1NSQ19EUExMLCAxKTsKLQl9IGVsc2UgaWYgKChyYXRlID09IChj dXJfcmF0ZSAqIDIpKSAmJiAobXVsdCA9PSAxKSkgewotCQlvbWFwMnh4eF9zZHJjX3JlcHJvZ3Jh bShDT1JFX0NMS19TUkNfRFBMTF9YMiwgMSk7Ci0JfSBlbHNlIGlmIChyYXRlICE9IGN1cl9yYXRl KSB7Ci0JCXZhbGlkX3JhdGUgPSBvbWFwMl9kcGxsY29yZV9yb3VuZF9yYXRlKHJhdGUpOwotCQlp ZiAodmFsaWRfcmF0ZSAhPSByYXRlKQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQkJaWYgKG11bHQg PT0gMSkKLQkJCWxvdyA9IGN1cnJfcHJjbV9zZXQtPmRwbGxfc3BlZWQ7Ci0JCWVsc2UKLQkJCWxv dyA9IGN1cnJfcHJjbV9zZXQtPmRwbGxfc3BlZWQgLyAyOwotCi0JCWRkID0gY2xrLT5kcGxsX2Rh dGE7Ci0JCWlmICghZGQpCi0JCQlyZXR1cm4gLUVJTlZBTDsKLQotCQl0bXBzZXQuY21fY2xrc2Vs MV9wbGwgPQotCQkJb21hcF9jbGtfbGxfb3BzLmNsa19yZWFkbCgmZGQtPm11bHRfZGl2MV9yZWcp OwotCQl0bXBzZXQuY21fY2xrc2VsMV9wbGwgJj0gfihkZC0+bXVsdF9tYXNrIHwKLQkJCQkJICAg ZGQtPmRpdjFfbWFzayk7Ci0JCWRpdiA9ICgoY3Vycl9wcmNtX3NldC0+eHRhbF9zcGVlZCAvIDEw MDAwMDApIC0gMSk7Ci0JCXRtcHNldC5jbV9jbGtzZWwyX3BsbCA9IG9tYXAyeHh4X2NtX2dldF9j b3JlX3BsbF9jb25maWcoKTsKLQkJdG1wc2V0LmNtX2Nsa3NlbDJfcGxsICY9IH5PTUFQMjRYWF9D T1JFX0NMS19TUkNfTUFTSzsKLQkJaWYgKHJhdGUgPiBsb3cpIHsKLQkJCXRtcHNldC5jbV9jbGtz ZWwyX3BsbCB8PSBDT1JFX0NMS19TUkNfRFBMTF9YMjsKLQkJCW11bHQgPSAoKHJhdGUgLyAyKSAv IDEwMDAwMDApOwotCQkJZG9uZV9yYXRlID0gQ09SRV9DTEtfU1JDX0RQTExfWDI7Ci0JCX0gZWxz ZSB7Ci0JCQl0bXBzZXQuY21fY2xrc2VsMl9wbGwgfD0gQ09SRV9DTEtfU1JDX0RQTEw7Ci0JCQlt dWx0ID0gKHJhdGUgLyAxMDAwMDAwKTsKLQkJCWRvbmVfcmF0ZSA9IENPUkVfQ0xLX1NSQ19EUExM OwotCQl9Ci0JCXRtcHNldC5jbV9jbGtzZWwxX3BsbCB8PSAoZGl2IDw8IF9fZmZzKGRkLT5tdWx0 X21hc2spKTsKLQkJdG1wc2V0LmNtX2Nsa3NlbDFfcGxsIHw9IChtdWx0IDw8IF9fZmZzKGRkLT5k aXYxX21hc2spKTsKLQotCQkvKiBXb3JzdCBjYXNlICovCi0JCXRtcHNldC5iYXNlX3NkcmNfcmZy ID0gU0RSQ19SRlJfQ1RSTF9CWVBBU1M7Ci0KLQkJaWYgKHJhdGUgPT0gY3Vycl9wcmNtX3NldC0+ eHRhbF9zcGVlZCkJLyogSWYgYXNraW5nIGZvciAxLTEgKi8KLQkJCWJ5cGFzcyA9IDE7Ci0KLQkJ LyogRm9yIG9tYXAyeHh4X3NkcmNfaW5pdF9wYXJhbXMoKSAqLwotCQlvbWFwMnh4eF9zZHJjX3Jl cHJvZ3JhbShDT1JFX0NMS19TUkNfRFBMTF9YMiwgMSk7Ci0KLQkJLyogRm9yY2UgZGxsIGxvY2sg bW9kZSAqLwotCQlvbWFwMl9zZXRfcHJjbSh0bXBzZXQuY21fY2xrc2VsMV9wbGwsIHRtcHNldC5i YXNlX3NkcmNfcmZyLAotCQkJICAgICAgIGJ5cGFzcyk7Ci0KLQkJLyogRXJyYXRhOiByZXQgZGxs IGVudHJ5IHN0YXRlICovCi0JCW9tYXAyeHh4X3NkcmNfaW5pdF9wYXJhbXMob21hcDJ4eHhfc2Ry Y19kbGxfaXNfdW5sb2NrZWQoKSk7Ci0JCW9tYXAyeHh4X3NkcmNfcmVwcm9ncmFtKGRvbmVfcmF0 ZSwgMCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogb21hcDJ4eHhfY2xrdF9kcGxs Y29yZV9pbml0IC0gY2xrIGluaXQgZnVuY3Rpb24gZm9yIGRwbGxfY2sKLSAqIEBjbGs6IHN0cnVj dCBjbGsgKmRwbGxfY2sKLSAqCi0gKiBTdG9yZSBhIGxvY2FsIGNvcHkgb2YgQGNsayBpbiBkcGxs X2NvcmVfY2sgc28gb3RoZXIgY29kZSBjYW4gcXVlcnkKLSAqIHRoZSBjb3JlIHJhdGUgd2l0aG91 dCBoYXZpbmcgdG8gY2xrX2dldCgpLCB3aGljaCBjYW4gc2xlZXAuICBNdXN0Ci0gKiBvbmx5IGJl IGNhbGxlZCBvbmNlLiAgTm8gcmV0dXJuIHZhbHVlLiAgWFhYIElmIHRoZSBjbG9jawotICogcmVn aXN0cmF0aW9uIHByb2Nlc3MgaXMgZXZlciBjaGFuZ2VkIHN1Y2ggdGhhdCBkcGxsX2NrIGlzIG5v IGxvbmdlcgotICogc3RhdGljYWxseSBkZWZpbmVkLCB0aGlzIGNvZGUgbWF5IG5lZWQgdG8gY2hh bmdlIHRvIGluY3JlbWVudCBzb21lCi0gKiBraW5kIG9mIHVzZSBjb3VudCBvbiBkcGxsX2NrLgot ICovCi12b2lkIG9tYXAyeHh4X2Nsa3RfZHBsbGNvcmVfaW5pdChzdHJ1Y3QgY2xrX2h3ICpodykK LXsKLQlXQVJOKGRwbGxfY29yZV9jaywgImRwbGxfY29yZV9jayBhbHJlYWR5IHNldCAtIHNob3Vs ZCBuZXZlciBoYXBwZW4iKTsKLQlkcGxsX2NvcmVfY2sgPSB0b19jbGtfaHdfb21hcChodyk7Ci19 CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X3ZpcnRfcHJjbV9zZXQu YyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfdmlydF9wcmNtX3NldC5jCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjA0ZTQyMmI0NmMuLjAwMDAwMDAwMDAwMAotLS0gYS9h cmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X3ZpcnRfcHJjbV9zZXQuYworKysgL2Rldi9udWxs CkBAIC0xLDI1OSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v bmx5Ci0vKgotICogT01BUDJ4eHggRFZGUyB2aXJ0dWFsIGNsb2NrIGZ1bmN0aW9ucwotICoKLSAq IENvcHlyaWdodCAoQykgMjAwNS0yMDA4LCAyMDEyIFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0g KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIENvbnRh Y3RzOgotICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgotICogUGF1bCBX YWxtc2xleQotICoKLSAqIEJhc2VkIG9uIGVhcmxpZXIgd29yayBieSBUdXVra2EgVGlra2FuZW4s IFRvbnkgTGluZGdyZW4sCi0gKiBHb3Jkb24gTWNOdXR0IGFuZCBSaWRnZVJ1biwgSW5jLgotICoK LSAqIFhYWCBTb21lIG9mIHRoaXMgY29kZSBzaG91bGQgYmUgcmVwbGFjZWFibGUgYnkgdGhlIHVw Y29taW5nIE9QUCBsYXllcgotICogY29kZS4gIEhvd2V2ZXIsIHNvbWUgbm90aW9uIG9mICJyYXRl IHNldCIgaXMgcHJvYmFibHkgc3RpbGwgbmVjZXNzYXJ5Ci0gKiBmb3IgT01BUDJ4eHggYXQgbGVh c3QuICBSYXRlIHNldHMgc2hvdWxkIGJlIGdlbmVyYWxpemVkIHNvIHRoZXkgY2FuIGJlCi0gKiB1 c2VkIGZvciBhbnkgT01BUCBjaGlwLCBub3QganVzdCBPTUFQMnh4eC4gIEluIHBhcnRpY3VsYXIs IFJpY2hhcmQgV29vZHJ1ZmYKLSAqIGhhcyBpbiB0aGUgcGFzdCBleHByZXNzZWQgYSBwcmVmZXJl bmNlIHRvIHVzZSByYXRlIHNldHMgZm9yIE9QUCBjaGFuZ2VzLAotICogcmF0aGVyIHRoYW4gZHlu YW1pY2FsbHkgcmVjYWxjdWxhdGluZyB0aGUgY2xvY2sgdHJlZSwgc28gaWYgc29tZW9uZSB3YW50 cwotICogdGhpcyBiYWRseSBlbm91Z2ggdG8gd3JpdGUgdGhlIGNvZGUgdG8gaGFuZGxlIGl0LCB3 ZSBzaG91bGQgc3VwcG9ydCBpdAotICogYXMgYW4gb3B0aW9uLgotICovCi0jdW5kZWYgREVCVUcK LQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0j aW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxs aW51eC9jcHVmcmVxLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotCi0jaW5jbHVkZSAic29j LmgiCi0jaW5jbHVkZSAiY2xvY2suaCIKLSNpbmNsdWRlICJjbG9jazJ4eHguaCIKLSNpbmNsdWRl ICJvcHAyeHh4LmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCi0jaW5jbHVkZSAiY20tcmVnYml0cy0y NHh4LmgiCi0jaW5jbHVkZSAic2RyYy5oIgotI2luY2x1ZGUgInNyYW0uaCIKLQotc3RhdGljIHUx NiBjcHVfbWFzazsKLQotY29uc3Qgc3RydWN0IHByY21fY29uZmlnICpjdXJyX3ByY21fc2V0Owot Y29uc3Qgc3RydWN0IHByY21fY29uZmlnICpyYXRlX3RhYmxlOwotCi0vKgotICogc3lzX2NrX3Jh dGU6IHRoZSByYXRlIG9mIHRoZSBleHRlcm5hbCBoaWdoLWZyZXF1ZW5jeSBjbG9jawotICogb3Nj aWxsYXRvciBvbiB0aGUgYm9hcmQuICBTZXQgYnkgdGhlIFNvQy1zcGVjaWZpYyBjbG9jayBpbml0 IGNvZGUuCi0gKiBPbmNlIHNldCBkdXJpbmcgYSBib290LCB3aWxsIG5vdCBjaGFuZ2UuCi0gKi8K LXN0YXRpYyB1bnNpZ25lZCBsb25nIHN5c19ja19yYXRlOwotCi0vKioKLSAqIG9tYXAyX3RhYmxl X21wdV9yZWNhbGMgLSBqdXN0IHJldHVybiB0aGUgTVBVIHNwZWVkCi0gKiBAY2xrOiB2aXJ0X3By Y21fc2V0IHN0cnVjdCBjbGsKLSAqCi0gKiBTZXQgdmlydF9wcmNtX3NldCdzIHJhdGUgdG8gdGhl IG1wdV9zcGVlZCBmaWVsZCBvZiB0aGUgY3VycmVudCBQUkNNIHNldC4KLSAqLwotc3RhdGljIHVu c2lnbmVkIGxvbmcgb21hcDJfdGFibGVfbXB1X3JlY2FsYyhzdHJ1Y3QgY2xrX2h3ICpjbGssCi0J CQkJICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQotewotCXJldHVybiBjdXJyX3ByY21f c2V0LT5tcHVfc3BlZWQ7Ci19Ci0KLS8qCi0gKiBMb29rIGZvciBhIHJhdGUgZXF1YWwgb3IgbGVz cyB0aGFuIHRoZSB0YXJnZXQgcmF0ZSBnaXZlbiBhIGNvbmZpZ3VyYXRpb24gc2V0LgotICoKLSAq IFdoYXQncyBub3QgZW50aXJlbHkgY2xlYXIgaXMgIndoaWNoIiBmaWVsZCByZXByZXNlbnRzIHRo ZSBrZXkgZmllbGQuCi0gKiBTb21lIG1pZ2h0IGFyZ3VlIEwzLUREUiwgb3RoZXJzIEFSTSwgb3Ro ZXJzIElWQS4gVGhpcyBjb2RlIGlzIHNpbXBsZSBhbmQKLSAqIGp1c3QgdXNlcyB0aGUgQVJNIHJh dGVzLgotICovCi1zdGF0aWMgaW50IG9tYXAyX2RldGVybWluZV9yYXRlX3RvX3RhYmxlKHN0cnVj dCBjbGtfaHcgKmh3LAotCQkJCQkgc3RydWN0IGNsa19yYXRlX3JlcXVlc3QgKnJlcSkKLXsKLQlj b25zdCBzdHJ1Y3QgcHJjbV9jb25maWcgKnB0cjsKLQlsb25nIGhpZ2hlc3RfcmF0ZTsKLQotCWhp Z2hlc3RfcmF0ZSA9IC1FSU5WQUw7Ci0KLQlmb3IgKHB0ciA9IHJhdGVfdGFibGU7IHB0ci0+bXB1 X3NwZWVkOyBwdHIrKykgewotCQlpZiAoIShwdHItPmZsYWdzICYgY3B1X21hc2spKQotCQkJY29u dGludWU7Ci0JCWlmIChwdHItPnh0YWxfc3BlZWQgIT0gc3lzX2NrX3JhdGUpCi0JCQljb250aW51 ZTsKLQotCQloaWdoZXN0X3JhdGUgPSBwdHItPm1wdV9zcGVlZDsKLQotCQkvKiBDYW4gY2hlY2sg b25seSBhZnRlciB4dGFsIGZyZXF1ZW5jeSBjaGVjayAqLwotCQlpZiAocHRyLT5tcHVfc3BlZWQg PD0gcmVxLT5yYXRlKQotCQkJYnJlYWs7Ci0JfQotCXJlcS0+cmF0ZSA9IGhpZ2hlc3RfcmF0ZTsK LQotCXJldHVybiAwOwotfQotCi0vKiBTZXRzIGJhc2ljIGNsb2NrcyBiYXNlZCBvbiB0aGUgc3Bl Y2lmaWVkIHJhdGUgKi8KLXN0YXRpYyBpbnQgb21hcDJfc2VsZWN0X3RhYmxlX3JhdGUoc3RydWN0 IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKLQkJCQkgICB1bnNpZ25lZCBsb25nIHBh cmVudF9yYXRlKQotewotCXUzMiBjdXJfcmF0ZSwgZG9uZV9yYXRlLCBieXBhc3MgPSAwOwotCWNv bnN0IHN0cnVjdCBwcmNtX2NvbmZpZyAqcHJjbTsKLQl1bnNpZ25lZCBsb25nIGZvdW5kX3NwZWVk ID0gMDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JZm9yIChwcmNtID0gcmF0ZV90YWJsZTsg cHJjbS0+bXB1X3NwZWVkOyBwcmNtKyspIHsKLQkJaWYgKCEocHJjbS0+ZmxhZ3MgJiBjcHVfbWFz aykpCi0JCQljb250aW51ZTsKLQotCQlpZiAocHJjbS0+eHRhbF9zcGVlZCAhPSBzeXNfY2tfcmF0 ZSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChwcmNtLT5tcHVfc3BlZWQgPD0gcmF0ZSkgewotCQkJ Zm91bmRfc3BlZWQgPSBwcmNtLT5tcHVfc3BlZWQ7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlm ICghZm91bmRfc3BlZWQpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiQ291bGQgbm90IHNldCBNUFUg cmF0ZSB0byAlbHVNSHpcbiIsCi0JCSAgICAgICByYXRlIC8gMTAwMDAwMCk7Ci0JCXJldHVybiAt RUlOVkFMOwotCX0KLQotCWN1cnJfcHJjbV9zZXQgPSBwcmNtOwotCWN1cl9yYXRlID0gb21hcDJ4 eHhfY2xrX2dldF9jb3JlX3JhdGUoKTsKLQotCWlmIChwcmNtLT5kcGxsX3NwZWVkID09IGN1cl9y YXRlIC8gMikgewotCQlvbWFwMnh4eF9zZHJjX3JlcHJvZ3JhbShDT1JFX0NMS19TUkNfRFBMTCwg MSk7Ci0JfSBlbHNlIGlmIChwcmNtLT5kcGxsX3NwZWVkID09IGN1cl9yYXRlICogMikgewotCQlv bWFwMnh4eF9zZHJjX3JlcHJvZ3JhbShDT1JFX0NMS19TUkNfRFBMTF9YMiwgMSk7Ci0JfSBlbHNl IGlmIChwcmNtLT5kcGxsX3NwZWVkICE9IGN1cl9yYXRlKSB7Ci0JCWxvY2FsX2lycV9zYXZlKGZs YWdzKTsKLQotCQlpZiAocHJjbS0+ZHBsbF9zcGVlZCA9PSBwcmNtLT54dGFsX3NwZWVkKQotCQkJ YnlwYXNzID0gMTsKLQotCQlpZiAoKHByY20tPmNtX2Nsa3NlbDJfcGxsICYgT01BUDI0WFhfQ09S RV9DTEtfU1JDX01BU0spID09Ci0JCSAgICBDT1JFX0NMS19TUkNfRFBMTF9YMikKLQkJCWRvbmVf cmF0ZSA9IENPUkVfQ0xLX1NSQ19EUExMX1gyOwotCQllbHNlCi0JCQlkb25lX3JhdGUgPSBDT1JF X0NMS19TUkNfRFBMTDsKLQotCQlvbWFwMnh4eF9jbV9zZXRfbW9kX2RpdmlkZXJzKHByY20tPmNt X2Nsa3NlbF9tcHUsCi0JCQkJCSAgICAgcHJjbS0+Y21fY2xrc2VsX2RzcCwKLQkJCQkJICAgICBw cmNtLT5jbV9jbGtzZWxfZ2Z4LAotCQkJCQkgICAgIHByY20tPmNtX2Nsa3NlbDFfY29yZSwKLQkJ CQkJICAgICBwcmNtLT5jbV9jbGtzZWxfbWRtKTsKLQotCQkvKiB4MiB0byBlbnRlciBvbWFwMnh4 eF9zZHJjX2luaXRfcGFyYW1zKCkgKi8KLQkJb21hcDJ4eHhfc2RyY19yZXByb2dyYW0oQ09SRV9D TEtfU1JDX0RQTExfWDIsIDEpOwotCi0JCW9tYXAyX3NldF9wcmNtKHByY20tPmNtX2Nsa3NlbDFf cGxsLCBwcmNtLT5iYXNlX3NkcmNfcmZyLAotCQkJICAgICAgIGJ5cGFzcyk7Ci0KLQkJb21hcDJ4 eHhfc2RyY19pbml0X3BhcmFtcyhvbWFwMnh4eF9zZHJjX2RsbF9pc191bmxvY2tlZCgpKTsKLQkJ b21hcDJ4eHhfc2RyY19yZXByb2dyYW0oZG9uZV9yYXRlLCAwKTsKLQotCQlsb2NhbF9pcnFfcmVz dG9yZShmbGFncyk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogb21hcDJ4eHhfY2xr dF92cHNfY2hlY2tfYm9vdGxvYWRlcl9yYXRlcyAtIGRldGVybWluZSB3aGljaCBvZiB0aGUgcmF0 ZQotICogdGFibGUgc2V0cyBtYXRjaGVzIHRoZSBjdXJyZW50IENPUkUgRFBMTCBoYXJkd2FyZSBy YXRlCi0gKgotICogQ2hlY2sgdGhlIE1QVSByYXRlIHNldCBieSBib290bG9hZGVyLiAgU2V0cyB0 aGUgJ2N1cnJfcHJjbV9zZXQnCi0gKiBnbG9iYWwgdG8gcG9pbnQgdG8gdGhlIGFjdGl2ZSByYXRl IHNldCB3aGVuIGZvdW5kOyBvdGhlcndpc2UsIHNldHMKLSAqIGl0IHRvIE5VTEwuICBObyByZXR1 cm4gdmFsdWU7Ci0gKi8KLXN0YXRpYyB2b2lkIG9tYXAyeHh4X2Nsa3RfdnBzX2NoZWNrX2Jvb3Rs b2FkZXJfcmF0ZXModm9pZCkKLXsKLQljb25zdCBzdHJ1Y3QgcHJjbV9jb25maWcgKnByY20gPSBO VUxMOwotCXVuc2lnbmVkIGxvbmcgcmF0ZTsKLQotCXJhdGUgPSBvbWFwMnh4eF9jbGtfZ2V0X2Nv cmVfcmF0ZSgpOwotCWZvciAocHJjbSA9IHJhdGVfdGFibGU7IHByY20tPm1wdV9zcGVlZDsgcHJj bSsrKSB7Ci0JCWlmICghKHByY20tPmZsYWdzICYgY3B1X21hc2spKQotCQkJY29udGludWU7Ci0J CWlmIChwcmNtLT54dGFsX3NwZWVkICE9IHN5c19ja19yYXRlKQotCQkJY29udGludWU7Ci0JCWlm IChwcmNtLT5kcGxsX3NwZWVkIDw9IHJhdGUpCi0JCQlicmVhazsKLQl9Ci0JY3Vycl9wcmNtX3Nl dCA9IHByY207Ci19Ci0KLS8qKgotICogb21hcDJ4eHhfY2xrdF92cHNfbGF0ZV9pbml0IC0gc3Rv cmUgYSBjb3B5IG9mIHRoZSBzeXNfY2sgcmF0ZQotICoKLSAqIFN0b3JlIGEgY29weSBvZiB0aGUg c3lzX2NrIHJhdGUgZm9yIGxhdGVyIHVzZSBieSB0aGUgT01BUDJ4eHggRFZGUwotICogY29kZS4g IChUaGUgc3lzX2NrIHJhdGUgZG9lcyBub3QgLS0gb3IgcmF0aGVyLCBtdXN0IG5vdCAtLSBjaGFu Z2UKLSAqIGR1cmluZyBrZXJuZWwgcnVudGltZS4pICBNdXN0IGJlIGNhbGxlZCBhZnRlciB3ZSBo YXZlIGEgdmFsaWQKLSAqIHN5c19jayByYXRlLCBidXQgYmVmb3JlIHRoZSB2aXJ0X3ByY21fc2V0 IGNsb2NrIHJhdGUgaXMKLSAqIHJlY2FsY3VsYXRlZC4gIE5vIHJldHVybiB2YWx1ZS4KLSAqLwot c3RhdGljIHZvaWQgb21hcDJ4eHhfY2xrdF92cHNfbGF0ZV9pbml0KHZvaWQpCi17Ci0Jc3RydWN0 IGNsayAqYzsKLQotCWMgPSBjbGtfZ2V0KE5VTEwsICJzeXNfY2siKTsKLQlpZiAoSVNfRVJSKGMp KSB7Ci0JCVdBUk4oMSwgImNvdWxkIG5vdCBsb2NhdGUgc3lzX2NrXG4iKTsKLQl9IGVsc2Ugewot CQlzeXNfY2tfcmF0ZSA9IGNsa19nZXRfcmF0ZShjKTsKLQkJY2xrX3B1dChjKTsKLQl9Ci19Ci0K LSNpZmRlZiBDT05GSUdfT0YKLSNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KLSNpbmNs dWRlIDxsaW51eC9jbGtkZXYuaD4KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHZpcnRf cHJjbV9zZXRfb3BzID0gewotCS5yZWNhbGNfcmF0ZQk9ICZvbWFwMl90YWJsZV9tcHVfcmVjYWxj LAotCS5zZXRfcmF0ZQk9ICZvbWFwMl9zZWxlY3RfdGFibGVfcmF0ZSwKLQkuZGV0ZXJtaW5lX3Jh dGUgPSAmb21hcDJfZGV0ZXJtaW5lX3JhdGVfdG9fdGFibGUsCi19OwotCi0vKioKLSAqIG9tYXAy eHh4X2Nsa3RfdnBzX2luaXQgLSBpbml0aWFsaXplIHZpcnRfcHJjbV9zZXQgY2xvY2sKLSAqCi0g KiBEb2VzIGEgbWFudWFsIGluaXQgZm9yIHRoZSB2aXJ0dWFsIHByY20gRFZGUyBjbG9jayBmb3Ig T01BUDIuIFRoaXMKLSAqIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbmx5IGZyb20gb21hcDIgRFQgY2xv Y2sgaW5pdCwgYXMgdGhlIHZpcnR1YWwKLSAqIG5vZGUgaXMgbm90IG1vZGVsbGVkIGluIHRoZSBE VCBjbG9jayBkYXRhLgotICovCi12b2lkIG9tYXAyeHh4X2Nsa3RfdnBzX2luaXQodm9pZCkKLXsK LQlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0ID0geyBOVUxMIH07Ci0Jc3RydWN0IGNsa19od19v bWFwICpodyA9IE5VTEw7Ci0Jc3RydWN0IGNsayAqY2xrOwotCWNvbnN0IGNoYXIgKnBhcmVudF9u YW1lID0gIm1wdV9jayI7Ci0KLQlvbWFwMnh4eF9jbGt0X3Zwc19sYXRlX2luaXQoKTsKLQlvbWFw Mnh4eF9jbGt0X3Zwc19jaGVja19ib290bG9hZGVyX3JhdGVzKCk7Ci0KLQlodyA9IGt6YWxsb2Nf b2JqKCpodyk7Ci0JaWYgKCFodykKLQkJcmV0dXJuOwotCWluaXQubmFtZSA9ICJ2aXJ0X3ByY21f c2V0IjsKLQlpbml0Lm9wcyA9ICZ2aXJ0X3ByY21fc2V0X29wczsKLQlpbml0LnBhcmVudF9uYW1l cyA9ICZwYXJlbnRfbmFtZTsKLQlpbml0Lm51bV9wYXJlbnRzID0gMTsKLQotCWh3LT5ody5pbml0 ID0gJmluaXQ7Ci0KLQljbGsgPSBjbGtfcmVnaXN0ZXIoTlVMTCwgJmh3LT5odyk7Ci0JaWYgKElT X0VSUihjbGspKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHJlZ2lzdGVyIGNsb2Nr XG4iKTsKLQkJa2ZyZWUoaHcpOwotCQlyZXR1cm47Ci0JfQotCi0JY2xrZGV2X2NyZWF0ZShjbGss ICJjcHVmcmVxX2NrIiwgTlVMTCk7Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21h Y2gtb21hcDIvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYwppbmRleCA4M2Zh ZTUxNzIyYTkuLmI3M2E4MDUwM2RhOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9j bG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYwpAQCAtMzAsOSArMzAsNyBA QAogI2luY2x1ZGUgImNsb2NrZG9tYWluLmgiCiAjaW5jbHVkZSAiY2xvY2suaCIKICNpbmNsdWRl ICJjbS5oIgotI2luY2x1ZGUgImNtMnh4eC5oIgogI2luY2x1ZGUgImNtM3h4eC5oIgotI2luY2x1 ZGUgImNtLXJlZ2JpdHMtMjR4eC5oIgogI2luY2x1ZGUgImNtLXJlZ2JpdHMtMzR4eC5oIgogI2lu Y2x1ZGUgImNvbW1vbi5oIgogCkBAIC05NCwxMSArOTIsNyBAQCB2b2lkIF9faW5pdCB0aV9jbGtf aW5pdF9mZWF0dXJlcyh2b2lkKQogCX0KIAogCS8qIEJ5cGFzcyB2YWx1ZSBzZXR1cCBmb3IgRFBM THMgKi8KLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJZmVhdHVyZXMuZHBsbF9ieXBhc3Nf dmFscyB8PQotCQkJKDEgPDwgT01BUDJYWFhfRU5fRFBMTF9MUEJZUEFTUykgfAotCQkJKDEgPDwg T01BUDJYWFhfRU5fRFBMTF9GUkJZUEFTUyk7Ci0JfSBlbHNlIGlmIChjcHVfaXNfb21hcDM0eHgo KSkgeworCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgewogCQlmZWF0dXJlcy5kcGxsX2J5cGFzc192 YWxzIHw9CiAJCQkoMSA8PCBPTUFQM1hYWF9FTl9EUExMX0xQQllQQVNTKSB8CiAJCQkoMSA8PCBP TUFQM1hYWF9FTl9EUExMX0ZSQllQQVNTKTsKQEAgLTEyMiw5ICsxMTYsNyBAQCB2b2lkIF9faW5p dCB0aV9jbGtfaW5pdF9mZWF0dXJlcyh2b2lkKQogCSAqIDM0eHggcmV2ZXJzZXMgdGhpcywganVz dCB0byBrZWVwIHVzIG9uIG91ciB0b2VzCiAJICogQU0zNXh4IHVzZXMgYm90aCwgZGVwZW5kaW5n IG9uIHRoZSBtb2R1bGUuCiAJICovCi0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKQotCQlmZWF0dXJl cy5jbV9pZGxlc3RfdmFsID0gT01BUDI0WFhfQ01fSURMRVNUX1ZBTDsKLQllbHNlIGlmIChjcHVf aXNfb21hcDM0eHgoKSkKKwlpZiAoY3B1X2lzX29tYXAzNHh4KCkpCiAJCWZlYXR1cmVzLmNtX2lk bGVzdF92YWwgPSBPTUFQMzRYWF9DTV9JRExFU1RfVkFMOwogCiAJLyogT24gT01BUDM0MzAgRVMx LjAsIERQTEw0IGNhbid0IGJlIHJlLXByb2dyYW1tZWQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtb21hcDIvY2xvY2syeHh4LmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMnh4eC5o CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2MwMTFkYWRmZDIuLjAwMDAwMDAwMDAw MAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMnh4eC5oCisrKyAvZGV2L251bGwKQEAg LTEsMTcgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KLS8q Ci0gKiBPTUFQMiBjbG9jayBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBtYWNyb3MKLSAqCi0gKiBD b3B5cmlnaHQgKEMpIDIwMDUtMjAxMCBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgotICogQ29weXJp Z2h0IChDKSAyMDA0LTIwMTAgTm9raWEgQ29ycG9yYXRpb24KLSAqLwotCi0jaWZuZGVmIF9fQVJD SF9BUk1fTUFDSF9PTUFQMl9DTE9DSzJYWFhfSAotI2RlZmluZSBfX0FSQ0hfQVJNX01BQ0hfT01B UDJfQ0xPQ0syWFhYX0gKLQotI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgotI2luY2x1 ZGUgImNsb2NrLmgiCi0KLXVuc2lnbmVkIGxvbmcgb21hcDJ4eHhfY2xrX2dldF9jb3JlX3JhdGUo dm9pZCk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2Rv bWFpbi5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5jCmluZGV4IDY5ZGM1Yjgz OTMzNS4uNGI1YWUxZjQwZDUwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2Nr ZG9tYWluLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5jCkBAIC0xMjEz LDcgKzEyMTMsNyBAQCBpbnQgY2xrZG1fY2xrX2Rpc2FibGUoc3RydWN0IGNsb2NrZG9tYWluICpj bGtkbSwgc3RydWN0IGNsayAqY2xrKQogaW50IGNsa2RtX2h3bW9kX2VuYWJsZShzdHJ1Y3QgY2xv Y2tkb21haW4gKmNsa2RtLCBzdHJ1Y3Qgb21hcF9od21vZCAqb2gpCiB7CiAJLyogVGhlIGNsa2Rt IGF0dHJpYnV0ZSBkb2VzIG5vdCBleGlzdCB5ZXQgcHJpb3IgT01BUDQgKi8KLQlpZiAoY3B1X2lz X29tYXAyNHh4KCkgfHwgY3B1X2lzX29tYXAzNHh4KCkpCisJaWYgKGNwdV9pc19vbWFwMzR4eCgp KQogCQlyZXR1cm4gMDsKIAogCS8qCkBAIC0xMjQ0LDcgKzEyNDQsNyBAQCBpbnQgY2xrZG1faHdt b2RfZW5hYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0sIHN0cnVjdCBvbWFwX2h3bW9kICpv aCkKIGludCBjbGtkbV9od21vZF9kaXNhYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0sIHN0 cnVjdCBvbWFwX2h3bW9kICpvaCkKIHsKIAkvKiBUaGUgY2xrZG0gYXR0cmlidXRlIGRvZXMgbm90 IGV4aXN0IHlldCBwcmlvciBPTUFQNCAqLwotCWlmIChjcHVfaXNfb21hcDI0eHgoKSB8fCBjcHVf aXNfb21hcDM0eHgoKSkKKwlpZiAoY3B1X2lzX29tYXAzNHh4KCkpCiAJCXJldHVybiAwOwogCiAJ aWYgKCFvaCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21haW4uaCBi L2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21haW4uaAppbmRleCA4NmEyZjllNWQwZWYuLjJk NDIyYjVmMTIxZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5o CisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21haW4uaApAQCAtMjE2LDggKzIxNiw2 IEBAIGludCBjbGtkbV9od21vZF9kaXNhYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0sIHN0 cnVjdCBvbWFwX2h3bW9kICpvaCk7CiB2b2lkIGNsa2RtX3NhdmVfY29udGV4dCh2b2lkKTsKIHZv aWQgY2xrZG1fcmVzdG9yZV9jb250ZXh0KHZvaWQpOwogCi1leHRlcm4gdm9pZCBfX2luaXQgb21h cDI0MnhfY2xvY2tkb21haW5zX2luaXQodm9pZCk7Ci1leHRlcm4gdm9pZCBfX2luaXQgb21hcDI0 M3hfY2xvY2tkb21haW5zX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBfX2luaXQgb21hcDN4eHhf Y2xvY2tkb21haW5zX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBfX2luaXQgYW0zM3h4X2Nsb2Nr ZG9tYWluc19pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgX19pbml0IHRpODE0eF9jbG9ja2RvbWFp bnNfaW5pdCh2b2lkKTsKQEAgLTIzMCwxNCArMjI4LDExIEBAIHZvaWQgYW00M3h4X2Nsb2NrZG9t YWluc19pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgY2xrZG1fYWRkX2F1dG9kZXBzKHN0cnVjdCBj bG9ja2RvbWFpbiAqY2xrZG0pOwogZXh0ZXJuIHZvaWQgY2xrZG1fZGVsX2F1dG9kZXBzKHN0cnVj dCBjbG9ja2RvbWFpbiAqY2xrZG0pOwogCi1leHRlcm4gc3RydWN0IGNsa2RtX29wcyBvbWFwMl9j bGtkbV9vcGVyYXRpb25zOwogZXh0ZXJuIHN0cnVjdCBjbGtkbV9vcHMgb21hcDNfY2xrZG1fb3Bl cmF0aW9uczsKIGV4dGVybiBzdHJ1Y3QgY2xrZG1fb3BzIG9tYXA0X2Nsa2RtX29wZXJhdGlvbnM7 CiBleHRlcm4gc3RydWN0IGNsa2RtX29wcyBhbTMzeHhfY2xrZG1fb3BlcmF0aW9uczsKIGV4dGVy biBzdHJ1Y3QgY2xrZG1fb3BzIGFtNDN4eF9jbGtkbV9vcGVyYXRpb25zOwogCi1leHRlcm4gc3Ry dWN0IGNsa2RtX2RlcCBnZnhfMjR4eF93a2RlcHNbXTsKLWV4dGVybiBzdHJ1Y3QgY2xrZG1fZGVw IGRzcF8yNHh4X3drZGVwc1tdOwogZXh0ZXJuIHN0cnVjdCBjbG9ja2RvbWFpbiB3a3VwX2NvbW1v bl9jbGtkbTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2Nr ZG9tYWluczI0MjBfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbnMyNDIw X2RhdGEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM0ZmZiNWQyZmZjLi4wMDAw MDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbnMyNDIwX2RhdGEu YworKysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMAotLyoKLSAqIE9NQVAyNDIwIGNsb2NrZG9tYWlucwotICoKLSAqIENvcHly aWdodCAoQykgMjAwOC0yMDExIFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQg KEMpIDIwMDgtMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIFBhdWwgV2FsbXNsZXksIEpv dW5pIEjDtmdhbmRlcgotICoKLSAqIFRoaXMgZmlsZSBjb250YWlucyBjbG9ja2RvbWFpbnMgYW5k IGNsb2NrZG9tYWluIHdha2V1cCBkZXBlbmRlbmNpZXMKLSAqIGZvciBPTUFQMjQyMCBjaGlwcy4g IFNvbWUgbm90ZXM6Ci0gKgotICogQSB1c2VmdWwgdmFsaWRhdGlvbiBydWxlIGZvciBzdHJ1Y3Qg Y2xvY2tkb21haW46IEFueSBjbG9ja2RvbWFpbgotICogcmVmZXJlbmNlZCBieSBhIHdrZGVwX3Ny Y3MgbXVzdCBoYXZlIGEgZGVwX2JpdCBhc3NpZ25lZC4gIFNvCi0gKiB3a2RlcF9zcmNzIGFyZSBy ZWFsbHkganVzdCBzb2Z0d2FyZS1jb250cm9sbGFibGUgZGVwZW5kZW5jaWVzLgotICogTm9uLXNv ZnR3YXJlLWNvbnRyb2xsYWJsZSBkZXBlbmRlbmNpZXMgZG8gZXhpc3QsIGJ1dCB0aGV5IGFyZSBu b3QKLSAqIGVuY29kZWQgYmVsb3cgKHlldCkuCi0gKgotICogMjR4eCBkb2VzIG5vdCBzdXBwb3J0 IHByb2dyYW1tYWJsZSBzbGVlcCBkZXBlbmRlbmNpZXMgKFNMRUVQREVQKQotICoKLSAqIFRoZSBv dmVybHktc3BlY2lmaWMgZGVwX2JpdCBuYW1lcyBhcmUgZHVlIHRvIGEgYml0IG5hbWUgY29sbGlz aW9uCi0gKiB3aXRoIENNX0ZDTEtFTl97RFNQLElWQTJ9LiAgVGhlIERTUC9JVkEyIFBNX1dLREVQ IGFuZCBDTV9TTEVFUERFUCBzaGlmdAotICogdmFsdWUgYXJlIHRoZSBzYW1lIGZvciBhbGwgcG93 ZXJkb21haW5zOiAyCi0gKgotICogWFhYIHNob3VsZCBkZXBfYml0IGJlIGEgbWFzaywgc28gd2Ug Y2FuIHRlc3QgdG8gc2VlIGlmIGl0IGlzIDAgYXMgYQotICogc2FuaXR5IGNoZWNrPwotICogWFhY IGVuY29kZSBoYXJkd2FyZSBmaXhlZCB3YWtldXAgZGVwZW5kZW5jaWVzIC0tIGVzcC4gZm9yIDM0 MzAgQ09SRQotICovCi0KLS8qCi0gKiBUby1EbyBMaXN0Ci0gKiAtPiBQb3J0IHRoZSBTbGVlcC9X YWtldXAgZGVwZW5kZW5jaWVzIGZvciB0aGUgZG9tYWlucwotICogICAgZnJvbSB0aGUgUG93ZXIg ZG9tYWluIGZyYW1ld29yawotICovCi0KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNs dWRlIDxsaW51eC9pby5oPgotCi0jaW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiY2xvY2tkb21h aW4uaCIKLSNpbmNsdWRlICJwcm0yeHh4XzN4eHguaCIKLSNpbmNsdWRlICJjbTJ4eHhfM3h4eC5o IgotI2luY2x1ZGUgImNtLXJlZ2JpdHMtMjR4eC5oIgotI2luY2x1ZGUgInBybS1yZWdiaXRzLTI0 eHguaCIKLQotLyoKLSAqIENsb2NrZG9tYWluIGRlcGVuZGVuY2llcyBmb3Igd2tkZXBzCi0gKgot ICogWFhYIEhhcmR3YXJlIGRlcGVuZGVuY2llcyAoZS5nLiwgZGVwZW5kZW5jaWVzIHRoYXQgY2Fu bm90IGJlCi0gKiBjaGFuZ2VkIGluIHNvZnR3YXJlKSBhcmUgbm90IGluY2x1ZGVkIGhlcmUgeWV0 LCBidXQgc2hvdWxkIGJlLgotICovCi0KLS8qIFdha2V1cCBkZXBlbmRlbmN5IHNvdXJjZSBhcnJh eXMgKi8KLQotLyogMjQyMC1zcGVjaWZpYyBwb3NzaWJsZSB3YWtldXAgZGVwZW5kZW5jaWVzICov Ci0KLS8qIDI0MjAgUE1fV0tERVBfTVBVOiBDT1JFLCBEU1AsIFdLVVAgKi8KLXN0YXRpYyBzdHJ1 Y3QgY2xrZG1fZGVwIG1wdV8yNDIwX3drZGVwc1tdID0gewotCXsgLmNsa2RtX25hbWUgPSAiY29y ZV9sM19jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gImNvcmVfbDRfY2xrZG0iIH0sCi0JeyAu Y2xrZG1fbmFtZSA9ICJkc3BfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJ3a3VwX2Nsa2Rt IiB9LAotCXsgTlVMTCB9LAotfTsKLQotLyogMjQyMCBQTV9XS0RFUF9DT1JFOiBEU1AsIEdGWCwg TVBVLCBXS1VQICovCi1zdGF0aWMgc3RydWN0IGNsa2RtX2RlcCBjb3JlXzI0MjBfd2tkZXBzW10g PSB7Ci0JeyAuY2xrZG1fbmFtZSA9ICJkc3BfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJn ZnhfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJtcHVfY2xrZG0iIH0sCi0JeyAuY2xrZG1f bmFtZSA9ICJ3a3VwX2Nsa2RtIiB9LAotCXsgTlVMTCB9LAotfTsKLQotLyoKLSAqIDI0MjAtb25s eSBjbG9ja2RvbWFpbnMKLSAqLwotCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluIG1wdV8yNDIw X2Nsa2RtID0gewotCS5uYW1lCQk9ICJtcHVfY2xrZG0iLAotCS5wd3JkbQkJPSB7IC5uYW1lID0g Im1wdV9wd3JkbSIgfSwKLQkuZmxhZ3MJCT0gQ0xLRE1fQ0FOX0hXU1VQLAotCS53a2RlcF9zcmNz CT0gbXB1XzI0MjBfd2tkZXBzLAotCS5jbGt0cmN0cmxfbWFzayA9IE9NQVAyNFhYX0FVVE9TVEFU RV9NUFVfTUFTSywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xvY2tkb21haW4gaXZhMV8yNDIwX2Ns a2RtID0gewotCS5uYW1lCQk9ICJpdmExX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJk c3BfcHdyZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkuZGVwX2Jp dAk9IE9NQVAyNFhYX1BNX1dLREVQX01QVV9FTl9EU1BfU0hJRlQsCi0JLndrZGVwX3NyY3MJPSBk c3BfMjR4eF93a2RlcHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01BUDI0MjBfQVVUT1NUQVRFX0lW QV9NQVNLLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbG9ja2RvbWFpbiBkc3BfMjQyMF9jbGtkbSA9 IHsKLQkubmFtZQkJPSAiZHNwX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJkc3BfcHdy ZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkuY2xrdHJjdHJsX21h c2sgPSBPTUFQMjRYWF9BVVRPU1RBVEVfRFNQX01BU0ssCi19OwotCi1zdGF0aWMgc3RydWN0IGNs b2NrZG9tYWluIGdmeF8yNDIwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJnZnhfY2xrZG0iLAotCS5w d3JkbQkJPSB7IC5uYW1lID0gImdmeF9wd3JkbSIgfSwKLQkuZmxhZ3MJCT0gQ0xLRE1fQ0FOX0hX U1VQX1NXU1VQLAotCS53a2RlcF9zcmNzCT0gZ2Z4XzI0eHhfd2tkZXBzLAotCS5jbGt0cmN0cmxf bWFzayA9IE9NQVAyNFhYX0FVVE9TVEFURV9HRlhfTUFTSywKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qg Y2xvY2tkb21haW4gY29yZV9sM18yNDIwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJjb3JlX2wzX2Ns a2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJjb3JlX3B3cmRtIiB9LAotCS5mbGFncwkJPSBD TEtETV9DQU5fSFdTVVAsCi0JLndrZGVwX3NyY3MJPSBjb3JlXzI0MjBfd2tkZXBzLAotCS5jbGt0 cmN0cmxfbWFzayA9IE9NQVAyNFhYX0FVVE9TVEFURV9MM19NQVNLLAotfTsKLQotc3RhdGljIHN0 cnVjdCBjbG9ja2RvbWFpbiBjb3JlX2w0XzI0MjBfY2xrZG0gPSB7Ci0JLm5hbWUJCT0gImNvcmVf bDRfY2xrZG0iLAotCS5wd3JkbQkJPSB7IC5uYW1lID0gImNvcmVfcHdyZG0iIH0sCi0JLmZsYWdz CQk9IENMS0RNX0NBTl9IV1NVUCwKLQkud2tkZXBfc3Jjcwk9IGNvcmVfMjQyMF93a2RlcHMsCi0J LmNsa3RyY3RybF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRFX0w0X01BU0ssCi19OwotCi1zdGF0 aWMgc3RydWN0IGNsb2NrZG9tYWluIGRzc18yNDIwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJkc3Nf Y2xrZG0iLAotCS5wd3JkbQkJPSB7IC5uYW1lID0gImNvcmVfcHdyZG0iIH0sCi0JLmZsYWdzCQk9 IENMS0RNX0NBTl9IV1NVUCwKLQkuY2xrdHJjdHJsX21hc2sgPSBPTUFQMjRYWF9BVVRPU1RBVEVf RFNTX01BU0ssCi19OwotCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluICpjbG9ja2RvbWFpbnNf b21hcDI0MnhbXSBfX2luaXRkYXRhID0gewotCSZ3a3VwX2NvbW1vbl9jbGtkbSwKLQkmbXB1XzI0 MjBfY2xrZG0sCi0JJml2YTFfMjQyMF9jbGtkbSwKLQkmZHNwXzI0MjBfY2xrZG0sCi0JJmdmeF8y NDIwX2Nsa2RtLAotCSZjb3JlX2wzXzI0MjBfY2xrZG0sCi0JJmNvcmVfbDRfMjQyMF9jbGtkbSwK LQkmZHNzXzI0MjBfY2xrZG0sCi0JTlVMTCwKLX07Ci0KLXZvaWQgX19pbml0IG9tYXAyNDJ4X2Ns b2NrZG9tYWluc19pbml0KHZvaWQpCi17Ci0JaWYgKCFjcHVfaXNfb21hcDI0MngoKSkKLQkJcmV0 dXJuOwotCi0JY2xrZG1fcmVnaXN0ZXJfcGxhdGZvcm1fZnVuY3MoJm9tYXAyX2Nsa2RtX29wZXJh dGlvbnMpOwotCWNsa2RtX3JlZ2lzdGVyX2Nsa2RtcyhjbG9ja2RvbWFpbnNfb21hcDI0MngpOwot CWNsa2RtX2NvbXBsZXRlX2luaXQoKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21h cDIvY2xvY2tkb21haW5zMjQzMF9kYXRhLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9t YWluczI0MzBfZGF0YS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTk3ZTE3OGFi YWEuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluczI0 MzBfZGF0YS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTgxICswLDAgQEAKLS8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0vKgotICogT01BUDJ4eHggY2xvY2tkb21haW5zCi0gKgot ICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMDkgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIENv cHlyaWdodCAoQykgMjAwOC0yMDEwIE5va2lhIENvcnBvcmF0aW9uCi0gKgotICogUGF1bCBXYWxt c2xleSwgSm91bmkgSMO2Z2FuZGVyCi0gKgotICogVGhpcyBmaWxlIGNvbnRhaW5zIGNsb2NrZG9t YWlucyBhbmQgY2xvY2tkb21haW4gd2FrZXVwIGRlcGVuZGVuY2llcwotICogZm9yIE9NQVAyeHh4 IGNoaXBzLiAgU29tZSBub3RlczoKLSAqCi0gKiBBIHVzZWZ1bCB2YWxpZGF0aW9uIHJ1bGUgZm9y IHN0cnVjdCBjbG9ja2RvbWFpbjogQW55IGNsb2NrZG9tYWluCi0gKiByZWZlcmVuY2VkIGJ5IGEg d2tkZXBfc3JjcyBtdXN0IGhhdmUgYSBkZXBfYml0IGFzc2lnbmVkLiAgU28KLSAqIHdrZGVwX3Ny Y3MgYXJlIHJlYWxseSBqdXN0IHNvZnR3YXJlLWNvbnRyb2xsYWJsZSBkZXBlbmRlbmNpZXMuCi0g KiBOb24tc29mdHdhcmUtY29udHJvbGxhYmxlIGRlcGVuZGVuY2llcyBkbyBleGlzdCwgYnV0IHRo ZXkgYXJlIG5vdAotICogZW5jb2RlZCBiZWxvdyAoeWV0KS4KLSAqCi0gKiAyNHh4IGRvZXMgbm90 IHN1cHBvcnQgcHJvZ3JhbW1hYmxlIHNsZWVwIGRlcGVuZGVuY2llcyAoU0xFRVBERVApCi0gKgot ICogVGhlIG92ZXJseS1zcGVjaWZpYyBkZXBfYml0IG5hbWVzIGFyZSBkdWUgdG8gYSBiaXQgbmFt ZSBjb2xsaXNpb24KLSAqIHdpdGggQ01fRkNMS0VOX3tEU1AsSVZBMn0uICBUaGUgRFNQL0lWQTIg UE1fV0tERVAgYW5kIENNX1NMRUVQREVQIHNoaWZ0Ci0gKiB2YWx1ZSBhcmUgdGhlIHNhbWUgZm9y IGFsbCBwb3dlcmRvbWFpbnM6IDIKLSAqCi0gKiBYWFggc2hvdWxkIGRlcF9iaXQgYmUgYSBtYXNr LCBzbyB3ZSBjYW4gdGVzdCB0byBzZWUgaWYgaXQgaXMgMCBhcyBhCi0gKiBzYW5pdHkgY2hlY2s/ Ci0gKiBYWFggZW5jb2RlIGhhcmR3YXJlIGZpeGVkIHdha2V1cCBkZXBlbmRlbmNpZXMgLS0gZXNw LiBmb3IgMzQzMCBDT1JFCi0gKi8KLQotLyoKLSAqIFRvLURvIExpc3QKLSAqIC0+IFBvcnQgdGhl IFNsZWVwL1dha2V1cCBkZXBlbmRlbmNpZXMgZm9yIHRoZSBkb21haW5zCi0gKiAgICBmcm9tIHRo ZSBQb3dlciBkb21haW4gZnJhbWV3b3JrCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o PgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0KLSNpbmNsdWRlICJzb2MuaCIKLSNpbmNsdWRlICJj bG9ja2RvbWFpbi5oIgotI2luY2x1ZGUgInBybTJ4eHhfM3h4eC5oIgotI2luY2x1ZGUgImNtMnh4 eF8zeHh4LmgiCi0jaW5jbHVkZSAiY20tcmVnYml0cy0yNHh4LmgiCi0jaW5jbHVkZSAicHJtLXJl Z2JpdHMtMjR4eC5oIgotCi0vKgotICogQ2xvY2tkb21haW4gZGVwZW5kZW5jaWVzIGZvciB3a2Rl cHMKLSAqCi0gKiBYWFggSGFyZHdhcmUgZGVwZW5kZW5jaWVzIChlLmcuLCBkZXBlbmRlbmNpZXMg dGhhdCBjYW5ub3QgYmUKLSAqIGNoYW5nZWQgaW4gc29mdHdhcmUpIGFyZSBub3QgaW5jbHVkZWQg aGVyZSB5ZXQsIGJ1dCBzaG91bGQgYmUuCi0gKi8KLQotLyogV2FrZXVwIGRlcGVuZGVuY3kgc291 cmNlIGFycmF5cyAqLwotCi0vKiAyNDMwLXNwZWNpZmljIHBvc3NpYmxlIHdha2V1cCBkZXBlbmRl bmNpZXMgKi8KLQotLyogMjQzMCBQTV9XS0RFUF9DT1JFOiBEU1AsIEdGWCwgTVBVLCBXS1VQLCBN RE0gKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrZG1fZGVwIGNvcmVfMjQzMF93a2RlcHNbXSA9IHsKLQl7 IC5jbGtkbV9uYW1lID0gImRzcF9jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gImdmeF9jbGtk bSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gIm1wdV9jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0g IndrdXBfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJtZG1fY2xrZG0iIH0sCi0JeyBOVUxM IH0sCi19OwotCi0vKiAyNDMwIFBNX1dLREVQX01QVTogQ09SRSwgRFNQLCBXS1VQLCBNRE0gKi8K LXN0YXRpYyBzdHJ1Y3QgY2xrZG1fZGVwIG1wdV8yNDMwX3drZGVwc1tdID0gewotCXsgLmNsa2Rt X25hbWUgPSAiY29yZV9sM19jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gImNvcmVfbDRfY2xr ZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJkc3BfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9 ICJ3a3VwX2Nsa2RtIiB9LAotCXsgLmNsa2RtX25hbWUgPSAibWRtX2Nsa2RtIiB9LAotCXsgTlVM TCB9LAotfTsKLQotLyogMjQzMCBQTV9XS0RFUF9NRE06IENPUkUsIE1QVSwgV0tVUCAqLwotc3Rh dGljIHN0cnVjdCBjbGtkbV9kZXAgbWRtXzI0MzBfd2tkZXBzW10gPSB7Ci0JeyAuY2xrZG1fbmFt ZSA9ICJjb3JlX2wzX2Nsa2RtIiB9LAotCXsgLmNsa2RtX25hbWUgPSAiY29yZV9sNF9jbGtkbSIg fSwKLQl7IC5jbGtkbV9uYW1lID0gIm1wdV9jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gIndr dXBfY2xrZG0iIH0sCi0JeyBOVUxMIH0sCi19OwotCi0vKgotICogMjQzMC1vbmx5IGNsb2NrZG9t YWlucwotICovCi0KLXN0YXRpYyBzdHJ1Y3QgY2xvY2tkb21haW4gbXB1XzI0MzBfY2xrZG0gPSB7 Ci0JLm5hbWUJCT0gIm1wdV9jbGtkbSIsCi0JLnB3cmRtCQk9IHsgLm5hbWUgPSAibXB1X3B3cmRt IiB9LAotCS5mbGFncwkJPSBDTEtETV9DQU5fSFdTVVBfU1dTVVAsCi0JLndrZGVwX3NyY3MJPSBt cHVfMjQzMF93a2RlcHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRFX01Q VV9NQVNLLAotfTsKLQotLyogQW5vdGhlciBjYXNlIG9mIGJpdCBuYW1lIGNvbGxpc2lvbnMgYmV0 d2VlbiBzZXZlcmFsIHJlZ2lzdGVyczogRU5fTURNICovCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9t YWluIG1kbV9jbGtkbSA9IHsKLQkubmFtZQkJPSAibWRtX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAu bmFtZSA9ICJtZG1fcHdyZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwK LQkuZGVwX2JpdAk9IE9NQVAyNDMwX1BNX1dLREVQX01QVV9FTl9NRE1fU0hJRlQsCi0JLndrZGVw X3NyY3MJPSBtZG1fMjQzMF93a2RlcHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01BUDI0MzBfQVVU T1NUQVRFX01ETV9NQVNLLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbG9ja2RvbWFpbiBkc3BfMjQz MF9jbGtkbSA9IHsKLQkubmFtZQkJPSAiZHNwX2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9 ICJkc3BfcHdyZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkuZGVw X2JpdAk9IE9NQVAyNFhYX1BNX1dLREVQX01QVV9FTl9EU1BfU0hJRlQsCi0JLndrZGVwX3NyY3MJ PSBkc3BfMjR4eF93a2RlcHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRF X0RTUF9NQVNLLAotfTsKLQotc3RhdGljIHN0cnVjdCBjbG9ja2RvbWFpbiBnZnhfMjQzMF9jbGtk bSA9IHsKLQkubmFtZQkJPSAiZ2Z4X2Nsa2RtIiwKLQkucHdyZG0JCT0geyAubmFtZSA9ICJnZnhf cHdyZG0iIH0sCi0JLmZsYWdzCQk9IENMS0RNX0NBTl9IV1NVUF9TV1NVUCwKLQkud2tkZXBfc3Jj cwk9IGdmeF8yNHh4X3drZGVwcywKLQkuY2xrdHJjdHJsX21hc2sgPSBPTUFQMjRYWF9BVVRPU1RB VEVfR0ZYX01BU0ssCi19OwotCi0vKgotICogWFhYIGFkZCB1c2Vjb3VudGluZyBmb3IgY2xrZG0g ZGVwZW5kZW5jaWVzLCBvdGhlcndpc2UgdGhlIHByZXNlbmNlCi0gKiBvZiBhIHNpbmdsZSBkZXAg Yml0IGZvciBjb3JlX2wzXzI0eHhfY2xrZG0gYW5kIGNvcmVfbDRfMjR4eF9jbGtkbQotICogY291 bGQgY2F1c2UgdHJvdWJsZQotICovCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluIGNvcmVfbDNf MjQzMF9jbGtkbSA9IHsKLQkubmFtZQkJPSAiY29yZV9sM19jbGtkbSIsCi0JLnB3cmRtCQk9IHsg Lm5hbWUgPSAiY29yZV9wd3JkbSIgfSwKLQkuZmxhZ3MJCT0gQ0xLRE1fQ0FOX0hXU1VQLAotCS5k ZXBfYml0CT0gT01BUDI0WFhfRU5fQ09SRV9TSElGVCwKLQkud2tkZXBfc3Jjcwk9IGNvcmVfMjQz MF93a2RlcHMsCi0JLmNsa3RyY3RybF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRFX0wzX01BU0ss Ci19OwotCi0vKgotICogWFhYIGFkZCB1c2Vjb3VudGluZyBmb3IgY2xrZG0gZGVwZW5kZW5jaWVz LCBvdGhlcndpc2UgdGhlIHByZXNlbmNlCi0gKiBvZiBhIHNpbmdsZSBkZXAgYml0IGZvciBjb3Jl X2wzXzI0eHhfY2xrZG0gYW5kIGNvcmVfbDRfMjR4eF9jbGtkbQotICogY291bGQgY2F1c2UgdHJv dWJsZQotICovCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluIGNvcmVfbDRfMjQzMF9jbGtkbSA9 IHsKLQkubmFtZQkJPSAiY29yZV9sNF9jbGtkbSIsCi0JLnB3cmRtCQk9IHsgLm5hbWUgPSAiY29y ZV9wd3JkbSIgfSwKLQkuZmxhZ3MJCT0gQ0xLRE1fQ0FOX0hXU1VQLAotCS5kZXBfYml0CT0gT01B UDI0WFhfRU5fQ09SRV9TSElGVCwKLQkud2tkZXBfc3Jjcwk9IGNvcmVfMjQzMF93a2RlcHMsCi0J LmNsa3RyY3RybF9tYXNrID0gT01BUDI0WFhfQVVUT1NUQVRFX0w0X01BU0ssCi19OwotCi1zdGF0 aWMgc3RydWN0IGNsb2NrZG9tYWluIGRzc18yNDMwX2Nsa2RtID0gewotCS5uYW1lCQk9ICJkc3Nf Y2xrZG0iLAotCS5wd3JkbQkJPSB7IC5uYW1lID0gImNvcmVfcHdyZG0iIH0sCi0JLmZsYWdzCQk9 IENMS0RNX0NBTl9IV1NVUCwKLQkuY2xrdHJjdHJsX21hc2sgPSBPTUFQMjRYWF9BVVRPU1RBVEVf RFNTX01BU0ssCi19OwotCi1zdGF0aWMgc3RydWN0IGNsb2NrZG9tYWluICpjbG9ja2RvbWFpbnNf b21hcDI0M3hbXSBfX2luaXRkYXRhID0gewotCSZ3a3VwX2NvbW1vbl9jbGtkbSwKLQkmbXB1XzI0 MzBfY2xrZG0sCi0JJm1kbV9jbGtkbSwKLQkmZHNwXzI0MzBfY2xrZG0sCi0JJmdmeF8yNDMwX2Ns a2RtLAotCSZjb3JlX2wzXzI0MzBfY2xrZG0sCi0JJmNvcmVfbDRfMjQzMF9jbGtkbSwKLQkmZHNz XzI0MzBfY2xrZG0sCi0JTlVMTCwKLX07Ci0KLXZvaWQgX19pbml0IG9tYXAyNDN4X2Nsb2NrZG9t YWluc19pbml0KHZvaWQpCi17Ci0JaWYgKCFjcHVfaXNfb21hcDI0M3goKSkKLQkJcmV0dXJuOwot Ci0JY2xrZG1fcmVnaXN0ZXJfcGxhdGZvcm1fZnVuY3MoJm9tYXAyX2Nsa2RtX29wZXJhdGlvbnMp OwotCWNsa2RtX3JlZ2lzdGVyX2Nsa2RtcyhjbG9ja2RvbWFpbnNfb21hcDI0M3gpOwotCWNsa2Rt X2NvbXBsZXRlX2luaXQoKTsKLX0KLQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9j bG9ja2RvbWFpbnMyeHh4XzN4eHhfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2Rv bWFpbnMyeHh4XzN4eHhfZGF0YS5jCmluZGV4IDIyMGMyMmY1ZTBmNS4uNGQyMGMyNzIwNjYwIDEw MDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluczJ4eHhfM3h4eF9kYXRh LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbnMyeHh4XzN4eHhfZGF0YS5j CkBAIC04LDcgKzgsNyBAQAogICogUGF1bCBXYWxtc2xleSwgSm91bmkgSMO2Z2FuZGVyCiAgKgog ICogVGhpcyBmaWxlIGNvbnRhaW5zIGNsb2NrZG9tYWlucyBhbmQgY2xvY2tkb21haW4gd2FrZXVw L3NsZWVwCi0gKiBkZXBlbmRlbmNpZXMgZm9yIHRoZSBPTUFQMi8zIGNoaXBzLiAgU29tZSBub3Rl czoKKyAqIGRlcGVuZGVuY2llcyBmb3IgdGhlIE9NQVAzIGNoaXBzLiAgU29tZSBub3RlczoKICAq CiAgKiBBIHVzZWZ1bCB2YWxpZGF0aW9uIHJ1bGUgZm9yIHN0cnVjdCBjbG9ja2RvbWFpbjogQW55 IGNsb2NrZG9tYWluCiAgKiByZWZlcmVuY2VkIGJ5IGEgd2tkZXBfc3JjcyBvciBzbGVlcGRlcF9z cmNzIGFycmF5IG11c3QgaGF2ZSBhCkBAIC0xNiw4ICsxNiw2IEBACiAgKiBzb2Z0d2FyZS1jb250 cm9sbGFibGUgZGVwZW5kZW5jaWVzLiAgTm9uLXNvZnR3YXJlLWNvbnRyb2xsYWJsZQogICogZGVw ZW5kZW5jaWVzIGRvIGV4aXN0LCBidXQgdGhleSBhcmUgbm90IGVuY29kZWQgYmVsb3cgKHlldCku CiAgKgotICogMjR4eCBkb2VzIG5vdCBzdXBwb3J0IHByb2dyYW1tYWJsZSBzbGVlcCBkZXBlbmRl bmNpZXMgKFNMRUVQREVQKQotICoKICAqIFRoZSBvdmVybHktc3BlY2lmaWMgZGVwX2JpdCBuYW1l cyBhcmUgZHVlIHRvIGEgYml0IG5hbWUgY29sbGlzaW9uCiAgKiB3aXRoIENNX0ZDTEtFTl97RFNQ LElWQTJ9LiAgVGhlIERTUC9JVkEyIFBNX1dLREVQIGFuZCBDTV9TTEVFUERFUCBzaGlmdAogICog dmFsdWUgYXJlIHRoZSBzYW1lIGZvciBhbGwgcG93ZXJkb21haW5zOiAyCkBAIC0zOSwxMCArMzcs OCBAQAogI2luY2x1ZGUgImNsb2NrZG9tYWluLmgiCiAjaW5jbHVkZSAicHJtMnh4eF8zeHh4Lmgi CiAjaW5jbHVkZSAiY20yeHh4XzN4eHguaCIKLSNpbmNsdWRlICJjbS1yZWdiaXRzLTI0eHguaCIK ICNpbmNsdWRlICJjbS1yZWdiaXRzLTM0eHguaCIKICNpbmNsdWRlICJjbS1yZWdiaXRzLTQ0eHgu aCIKLSNpbmNsdWRlICJwcm0tcmVnYml0cy0yNHh4LmgiCiAjaW5jbHVkZSAicHJtLXJlZ2JpdHMt MzR4eC5oIgogCiAvKgpAQCAtNTQsMjkgKzUwLDggQEAKIAogLyogV2FrZXVwIGRlcGVuZGVuY3kg c291cmNlIGFycmF5cyAqLwogCi0vKiAyeHh4LXNwZWNpZmljIHBvc3NpYmxlIGRlcGVuZGVuY2ll cyAqLwotCi0vKiAyeHh4IFBNX1dLREVQX0dGWDogQ09SRSwgTVBVLCBXS1VQICovCi1zdHJ1Y3Qg Y2xrZG1fZGVwIGdmeF8yNHh4X3drZGVwc1tdID0gewotCXsgLmNsa2RtX25hbWUgPSAiY29yZV9s M19jbGtkbSIgfSwKLQl7IC5jbGtkbV9uYW1lID0gImNvcmVfbDRfY2xrZG0iIH0sCi0JeyAuY2xr ZG1fbmFtZSA9ICJtcHVfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJ3a3VwX2Nsa2RtIiB9 LAotCXsgTlVMTCB9LAotfTsKLQotLyogMnh4eCBQTV9XS0RFUF9EU1A6IENPUkUsIE1QVSwgV0tV UCAqLwotc3RydWN0IGNsa2RtX2RlcCBkc3BfMjR4eF93a2RlcHNbXSA9IHsKLQl7IC5jbGtkbV9u YW1lID0gImNvcmVfbDNfY2xrZG0iIH0sCi0JeyAuY2xrZG1fbmFtZSA9ICJjb3JlX2w0X2Nsa2Rt IiB9LAotCXsgLmNsa2RtX25hbWUgPSAibXB1X2Nsa2RtIiB9LAotCXsgLmNsa2RtX25hbWUgPSAi d2t1cF9jbGtkbSIgfSwKLQl7IE5VTEwgfSwKLX07Ci0KLQogLyoKLSAqIE9NQVAyLzMtY29tbW9u IGNsb2NrZG9tYWlucworICogT01BUDMtY29tbW9uIGNsb2NrZG9tYWlucwogICoKICAqIEV2ZW4g dGhvdWdoIHRoZSAyNDIwIGhhcyBhIHNpbmdsZSBQUkNNIG1vZHVsZSBmcm9tIHRoZQogICogaW50 ZXJjb25uZWN0J3MgcGVyc3BlY3RpdmUsIGludGVybmFsbHkgaXQgZG9lcyBhcHBlYXIgdG8gaGF2 ZQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS1yZWdiaXRzLTI0eHguaCBiL2Fy Y2gvYXJtL21hY2gtb21hcDIvY20tcmVnYml0cy0yNHh4LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDU5YzE0ZGJiNmY4Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gt b21hcDIvY20tcmVnYml0cy0yNHh4LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0v KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0jaWZuZGVmIF9fQVJD SF9BUk1fTUFDSF9PTUFQMl9DTV9SRUdCSVRTXzI0WFhfSAotI2RlZmluZSBfX0FSQ0hfQVJNX01B Q0hfT01BUDJfQ01fUkVHQklUU18yNFhYX0gKLQotLyoKLSAqIE9NQVAyNFhYIENsb2NrIE1hbmFn ZW1lbnQgcmVnaXN0ZXIgYml0cwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBUZXhhcyBJbnN0 cnVtZW50cywgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDA3IE5va2lhIENvcnBvcmF0aW9uCi0g KgotICogV3JpdHRlbiBieSBQYXVsIFdhbG1zbGV5Ci0gKi8KLQotI2RlZmluZSBPTUFQMjRYWF9B VVRPU1RBVEVfTVBVX01BU0sJCQkoMSA8PCAwKQotI2RlZmluZSBPTUFQMjRYWF9FTl9EU1MxX01B U0sJCQkJKDEgPDwgMCkKLSNkZWZpbmUgT01BUDI0WFhfU1RfTUFJTEJPWEVTX1NISUZUCQkJMzAK LSNkZWZpbmUgT01BUDI0WFhfU1RfSERRX1NISUZUCQkJCTIzCi0jZGVmaW5lIE9NQVAyNDIwX1NU X0kyQzJfU0hJRlQJCQkJMjAKLSNkZWZpbmUgT01BUDI0MzBfU1RfSTJDSFMxX1NISUZUCQkJMTkK LSNkZWZpbmUgT01BUDI0MjBfU1RfSTJDMV9TSElGVAkJCQkxOQotI2RlZmluZSBPTUFQMjQzMF9T VF9JMkNIUzJfU0hJRlQJCQkyMAotI2RlZmluZSBPTUFQMjRYWF9TVF9NQ0JTUDJfU0hJRlQJCQkx NgotI2RlZmluZSBPTUFQMjRYWF9TVF9NQ0JTUDFfU0hJRlQJCQkxNQotI2RlZmluZSBPTUFQMjQz MF9TVF9NQ0JTUDVfU0hJRlQJCQk1Ci0jZGVmaW5lIE9NQVAyNDMwX1NUX01DQlNQNF9TSElGVAkJ CTQKLSNkZWZpbmUgT01BUDI0MzBfU1RfTUNCU1AzX1NISUZUCQkJMwotI2RlZmluZSBPTUFQMjRY WF9TVF9BRVNfU0hJRlQJCQkJMwotI2RlZmluZSBPTUFQMjRYWF9TVF9STkdfU0hJRlQJCQkJMgot I2RlZmluZSBPTUFQMjRYWF9TVF9TSEFfU0hJRlQJCQkJMQotI2RlZmluZSBPTUFQMjRYWF9DTEtT RUxfRFNTMl9NQVNLCQkJKDB4MSA8PCAxMykKLSNkZWZpbmUgT01BUDI0WFhfQVVUT1NUQVRFX0RT U19NQVNLCQkJKDEgPDwgMikKLSNkZWZpbmUgT01BUDI0WFhfQVVUT1NUQVRFX0w0X01BU0sJCQko MSA8PCAxKQotI2RlZmluZSBPTUFQMjRYWF9BVVRPU1RBVEVfTDNfTUFTSwkJCSgxIDw8IDApCi0j ZGVmaW5lIE9NQVAyNFhYX0FVVE9TVEFURV9HRlhfTUFTSwkJCSgxIDw8IDApCi0jZGVmaW5lIE9N QVAyNFhYX1NUX01QVV9XRFRfU0hJRlQJCQkzCi0jZGVmaW5lIE9NQVAyNFhYX1NUXzMyS1NZTkNf U0hJRlQJCQkxCi0jZGVmaW5lIE9NQVAyNFhYX0VOXzU0TV9QTExfU0hJRlQJCQk2Ci0jZGVmaW5l IE9NQVAyNFhYX0VOXzk2TV9QTExfU0hJRlQJCQkyCi0jZGVmaW5lIE9NQVAyNFhYX1NUXzU0TV9B UExMX1NISUZUCQkJOQotI2RlZmluZSBPTUFQMjRYWF9TVF85Nk1fQVBMTF9TSElGVAkJCTgKLSNk ZWZpbmUgT01BUDI0WFhfQVVUT181NE1fTUFTSwkJCQkoMHgzIDw8IDYpCi0jZGVmaW5lIE9NQVAy NFhYX0FVVE9fOTZNX01BU0sJCQkJKDB4MyA8PCAyKQotI2RlZmluZSBPTUFQMjRYWF9BVVRPX0RQ TExfU0hJRlQJCQkwCi0jZGVmaW5lIE9NQVAyNFhYX0FVVE9fRFBMTF9NQVNLCQkJCSgweDMgPDwg MCkKLSNkZWZpbmUgT01BUDI0WFhfQ09SRV9DTEtfU1JDX01BU0sJCQkoMHgzIDw8IDApCi0jZGVm aW5lIE9NQVAyNDIwX0FVVE9TVEFURV9JVkFfTUFTSwkJCSgxIDw8IDgpCi0jZGVmaW5lIE9NQVAy NFhYX0FVVE9TVEFURV9EU1BfTUFTSwkJCSgxIDw8IDApCi0jZGVmaW5lIE9NQVAyNDMwX0FVVE9T VEFURV9NRE1fTUFTSwkJCSgxIDw8IDApCi0jZGVmaW5lIE9NQVAyNFhYX0NMS1NUQ1RSTF9ESVNB QkxFX0FVVE8JCTB4MAotI2RlZmluZSBPTUFQMjRYWF9DTEtTVENUUkxfRU5BQkxFX0FVVE8JCTB4 MQotI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtMnh4eC5jIGIvYXJj aC9hcm0vbWFjaC1vbWFwMi9jbTJ4eHguYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MWM2ZDY5ZjRiZjQ5Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbTJ4 eHguYworKysgL2Rldi9udWxsCkBAIC0xLDMwMiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogT01BUDJ4eHggQ00gbW9kdWxlIGZ1bmN0aW9u cwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbgotICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTAsIDIwMTIgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KLSAqIFBhdWwg V2FsbXNsZXkKLSAqIFJhamVuZHJhIE5heWFrIDxybmF5YWtAdGkuY29tPgotICovCi0KLSNpbmNs dWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUg PGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51 eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9pby5oPgotCi0jaW5jbHVkZSAicHJtMnh4eC5oIgot I2luY2x1ZGUgImNtLmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCi0jaW5jbHVkZSAiY20tcmVnYml0 cy0yNHh4LmgiCi0jaW5jbHVkZSAiY2xvY2tkb21haW4uaCIKLQotLyogQ01fQVVUT0lETEVfUExM LkFVVE9fKiBiaXQgdmFsdWVzIGZvciBEUExMcyAqLwotI2RlZmluZSBEUExMX0FVVE9JRExFX0RJ U0FCTEUJCQkJMHgwCi0jZGVmaW5lIE9NQVAyWFhYX0RQTExfQVVUT0lETEVfTE9XX1BPV0VSX1NU T1AJCTB4MwotCi0vKiBDTV9BVVRPSURMRV9QTEwuQVVUT18qIGJpdCB2YWx1ZXMgZm9yIEFQTExz IChPTUFQMnh4eCBvbmx5KSAqLwotI2RlZmluZSBPTUFQMlhYWF9BUExMX0FVVE9JRExFX0RJU0FC TEUJCQkweDAKLSNkZWZpbmUgT01BUDJYWFhfQVBMTF9BVVRPSURMRV9MT1dfUE9XRVJfU1RPUAkJ MHgzCi0KLS8qIENNX0lETEVTVF9QTEwgYml0IHZhbHVlIG9mZnNldCBmb3IgQVBMTHMgKE9NQVAy eHh4IG9ubHkpICovCi0jZGVmaW5lIEVOX0FQTExfTE9DS0VECQkJCQkzCi0KLXN0YXRpYyBjb25z dCB1OCBvbWFwMnh4eF9jbV9pZGxlc3Rfb2Zmc1tdID0gewotCUNNX0lETEVTVDEsIENNX0lETEVT VDIsIE9NQVAyNDMwX0NNX0lETEVTVDMsIE9NQVAyNFhYX0NNX0lETEVTVDQKLX07Ci0KLS8qCi0g KgotICovCi0KLXN0YXRpYyB2b2lkIF93cml0ZV9jbGt0cmN0cmwodTggYywgczE2IG1vZHVsZSwg dTMyIG1hc2spCi17Ci0JdTMyIHY7Ci0KLQl2ID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKG1vZHVs ZSwgT01BUDJfQ01fQ0xLU1RDVFJMKTsKLQl2ICY9IH5tYXNrOwotCXYgfD0gYyA8PCBfX2Zmcyht YXNrKTsKLQlvbWFwMl9jbV93cml0ZV9tb2RfcmVnKHYsIG1vZHVsZSwgT01BUDJfQ01fQ0xLU1RD VFJMKTsKLX0KLQotc3RhdGljIGJvb2wgb21hcDJ4eHhfY21faXNfY2xrZG1faW5faHdzdXAoczE2 IG1vZHVsZSwgdTMyIG1hc2spCi17Ci0JdTMyIHY7Ci0KLQl2ID0gb21hcDJfY21fcmVhZF9tb2Rf cmVnKG1vZHVsZSwgT01BUDJfQ01fQ0xLU1RDVFJMKTsKLQl2ICY9IG1hc2s7Ci0JdiA+Pj0gX19m ZnMobWFzayk7Ci0KLQlyZXR1cm4gKHYgPT0gT01BUDI0WFhfQ0xLU1RDVFJMX0VOQUJMRV9BVVRP KSA/IDEgOiAwOwotfQotCi1zdGF0aWMgdm9pZCBvbWFwMnh4eF9jbV9jbGtkbV9lbmFibGVfaHdz dXAoczE2IG1vZHVsZSwgdTMyIG1hc2spCi17Ci0JX3dyaXRlX2Nsa3RyY3RybChPTUFQMjRYWF9D TEtTVENUUkxfRU5BQkxFX0FVVE8sIG1vZHVsZSwgbWFzayk7Ci19Ci0KLXN0YXRpYyB2b2lkIG9t YXAyeHh4X2NtX2Nsa2RtX2Rpc2FibGVfaHdzdXAoczE2IG1vZHVsZSwgdTMyIG1hc2spCi17Ci0J X3dyaXRlX2Nsa3RyY3RybChPTUFQMjRYWF9DTEtTVENUUkxfRElTQUJMRV9BVVRPLCBtb2R1bGUs IG1hc2spOwotfQotCi0vKgotICogRFBMTCBhdXRvaWRsZSBjb250cm9sCi0gKi8KLQotc3RhdGlj IHZvaWQgX29tYXAyeHh4X3NldF9kcGxsX2F1dG9pZGxlKHU4IG0pCi17Ci0JdTMyIHY7Ci0KLQl2 ID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKFBMTF9NT0QsIENNX0FVVE9JRExFKTsKLQl2ICY9IH5P TUFQMjRYWF9BVVRPX0RQTExfTUFTSzsKLQl2IHw9IG0gPDwgT01BUDI0WFhfQVVUT19EUExMX1NI SUZUOwotCW9tYXAyX2NtX3dyaXRlX21vZF9yZWcodiwgUExMX01PRCwgQ01fQVVUT0lETEUpOwot fQotCi12b2lkIG9tYXAyeHh4X2NtX3NldF9kcGxsX2Rpc2FibGVfYXV0b2lkbGUodm9pZCkKLXsK LQlfb21hcDJ4eHhfc2V0X2RwbGxfYXV0b2lkbGUoT01BUDJYWFhfRFBMTF9BVVRPSURMRV9MT1df UE9XRVJfU1RPUCk7Ci19Ci0KLXZvaWQgb21hcDJ4eHhfY21fc2V0X2RwbGxfYXV0b19sb3dfcG93 ZXJfc3RvcCh2b2lkKQotewotCV9vbWFwMnh4eF9zZXRfZHBsbF9hdXRvaWRsZShEUExMX0FVVE9J RExFX0RJU0FCTEUpOwotfQotCi0vKioKLSAqIG9tYXAyeHh4X2NtX3NwbGl0X2lkbGVzdF9yZWcg LSBzcGxpdCBDTV9JRExFU1QgcmVnIGFkZHIgaW50byBpdHMgY29tcG9uZW50cwotICogQGlkbGVz dF9yZWc6IENNX0lETEVTVCogdmlydHVhbCBhZGRyZXNzCi0gKiBAcHJjbV9pbnN0OiBwb2ludGVy IHRvIGFuIHMxNiB0byByZXR1cm4gdGhlIFBSQ00gaW5zdGFuY2Ugb2Zmc2V0Ci0gKiBAaWRsZXN0 X3JlZ19pZDogcG9pbnRlciB0byBhIHU4IHRvIHJldHVybiB0aGUgQ01fSURMRVNUeCByZWdpc3Rl ciBJRAotICoKLSAqIFhYWCBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgbmVlZGVkIHVudGlsIGFic29s dXRlIHJlZ2lzdGVyIGFkZHJlc3NlcyBhcmUKLSAqIHJlbW92ZWQgZnJvbSB0aGUgT01BUCBzdHJ1 Y3QgY2xrIHJlY29yZHMuCi0gKi8KLXN0YXRpYyBpbnQgb21hcDJ4eHhfY21fc3BsaXRfaWRsZXN0 X3JlZyhzdHJ1Y3QgY2xrX29tYXBfcmVnICppZGxlc3RfcmVnLAotCQkJCQlzMTYgKnByY21faW5z dCwKLQkJCQkJdTggKmlkbGVzdF9yZWdfaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBvZmZzOwotCXU4 IGlkbGVzdF9vZmZzOwotCWludCBpOwotCi0JaWRsZXN0X29mZnMgPSBpZGxlc3RfcmVnLT5vZmZz ZXQgJiAweGZmOwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG9tYXAyeHh4X2NtX2lkbGVz dF9vZmZzKTsgaSsrKSB7Ci0JCWlmIChpZGxlc3Rfb2ZmcyA9PSBvbWFwMnh4eF9jbV9pZGxlc3Rf b2Zmc1tpXSkgewotCQkJKmlkbGVzdF9yZWdfaWQgPSBpICsgMTsKLQkJCWJyZWFrOwotCQl9Ci0J fQotCi0JaWYgKGkgPT0gQVJSQVlfU0laRShvbWFwMnh4eF9jbV9pZGxlc3Rfb2ZmcykpCi0JCXJl dHVybiAtRUlOVkFMOwotCi0Jb2ZmcyA9IGlkbGVzdF9yZWctPm9mZnNldDsKLQlvZmZzICY9IDB4 ZmYwMDsKLQkqcHJjbV9pbnN0ID0gb2ZmczsKLQotCXJldHVybiAwOwotfQotCi0vKgotICoKLSAq LwotCi0vKioKLSAqIG9tYXAyeHh4X2NtX3dhaXRfbW9kdWxlX3JlYWR5IC0gd2FpdCBmb3IgYSBt b2R1bGUgdG8gbGVhdmUgaWRsZSBvciBzdGFuZGJ5Ci0gKiBAcGFydDogUFJDTSBwYXJ0aXRpb24s IGlnbm9yZWQgZm9yIE9NQVAyCi0gKiBAcHJjbV9tb2Q6IFBSQ00gbW9kdWxlIG9mZnNldAotICog QGlkbGVzdF9pZDogQ01fSURMRVNUeCByZWdpc3RlciBJRCAoaS5lLiwgeCA9IDEsIDIsIDMpCi0g KiBAaWRsZXN0X3NoaWZ0OiBzaGlmdCBvZiB0aGUgYml0IGluIHRoZSBDTV9JRExFU1QqIHJlZ2lz dGVyIHRvIGNoZWNrCi0gKgotICogV2FpdCBmb3IgdGhlIFBSQ00gdG8gaW5kaWNhdGUgdGhhdCB0 aGUgbW9kdWxlIGlkZW50aWZpZWQgYnkKLSAqIChAcHJjbV9tb2QsIEBpZGxlc3RfaWQsIEBpZGxl c3Rfc2hpZnQpIGlzIGNsb2NrZWQuICBSZXR1cm4gMCB1cG9uCi0gKiBzdWNjZXNzIG9yIC1FQlVT WSBpZiB0aGUgbW9kdWxlIGRvZXNuJ3QgZW5hYmxlIGluIHRpbWUuCi0gKi8KLXN0YXRpYyBpbnQg b21hcDJ4eHhfY21fd2FpdF9tb2R1bGVfcmVhZHkodTggcGFydCwgczE2IHByY21fbW9kLCB1MTYg aWRsZXN0X2lkLAotCQkJCQkgdTggaWRsZXN0X3NoaWZ0KQotewotCWludCBlbmEgPSAwLCBpID0g MDsKLQl1OCBjbV9pZGxlc3RfcmVnOwotCXUzMiBtYXNrOwotCi0JaWYgKCFpZGxlc3RfaWQgfHwg KGlkbGVzdF9pZCA+IEFSUkFZX1NJWkUob21hcDJ4eHhfY21faWRsZXN0X29mZnMpKSkKLQkJcmV0 dXJuIC1FSU5WQUw7Ci0KLQljbV9pZGxlc3RfcmVnID0gb21hcDJ4eHhfY21faWRsZXN0X29mZnNb aWRsZXN0X2lkIC0gMV07Ci0KLQltYXNrID0gMSA8PCBpZGxlc3Rfc2hpZnQ7Ci0JZW5hID0gbWFz azsKLQotCW9tYXBfdGVzdF90aW1lb3V0KCgob21hcDJfY21fcmVhZF9tb2RfcmVnKHByY21fbW9k LCBjbV9pZGxlc3RfcmVnKSAmCi0JCQkgICAgbWFzaykgPT0gZW5hKSwgTUFYX01PRFVMRV9SRUFE WV9USU1FLCBpKTsKLQotCXJldHVybiAoaSA8IE1BWF9NT0RVTEVfUkVBRFlfVElNRSkgPyAwIDog LUVCVVNZOwotfQotCi0vKiBDbG9ja2RvbWFpbiBsb3ctbGV2ZWwgZnVuY3Rpb25zICovCi0KLXN0 YXRpYyB2b2lkIG9tYXAyeHh4X2Nsa2RtX2FsbG93X2lkbGUoc3RydWN0IGNsb2NrZG9tYWluICpj bGtkbSkKLXsKLQlvbWFwMnh4eF9jbV9jbGtkbV9lbmFibGVfaHdzdXAoY2xrZG0tPnB3cmRtLnB0 ci0+cHJjbV9vZmZzLAotCQkJCSAgICAgICBjbGtkbS0+Y2xrdHJjdHJsX21hc2spOwotfQotCi1z dGF0aWMgdm9pZCBvbWFwMnh4eF9jbGtkbV9kZW55X2lkbGUoc3RydWN0IGNsb2NrZG9tYWluICpj bGtkbSkKLXsKLQlvbWFwMnh4eF9jbV9jbGtkbV9kaXNhYmxlX2h3c3VwKGNsa2RtLT5wd3JkbS5w dHItPnByY21fb2ZmcywKLQkJCQkJY2xrZG0tPmNsa3RyY3RybF9tYXNrKTsKLX0KLQotc3RhdGlj IGludCBvbWFwMnh4eF9jbGtkbV9jbGtfZW5hYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0p Ci17Ci0JYm9vbCBod3N1cCA9IGZhbHNlOwotCi0JaWYgKCFjbGtkbS0+Y2xrdHJjdHJsX21hc2sp Ci0JCXJldHVybiAwOwotCi0JaHdzdXAgPSBvbWFwMnh4eF9jbV9pc19jbGtkbV9pbl9od3N1cChj bGtkbS0+cHdyZG0ucHRyLT5wcmNtX29mZnMsCi0JCQkJCSAgICAgIGNsa2RtLT5jbGt0cmN0cmxf bWFzayk7Ci0JaWYgKCFod3N1cCAmJiBjbGtkbS0+ZmxhZ3MgJiBDTEtETV9DQU5fRk9SQ0VfV0FL RVVQKQotCQlvbWFwMnh4eF9jbGtkbV93YWtldXAoY2xrZG0pOwotCi0JcmV0dXJuIDA7Ci19Ci0K LXN0YXRpYyBpbnQgb21hcDJ4eHhfY2xrZG1fY2xrX2Rpc2FibGUoc3RydWN0IGNsb2NrZG9tYWlu ICpjbGtkbSkKLXsKLQlib29sIGh3c3VwID0gZmFsc2U7Ci0KLQlpZiAoIWNsa2RtLT5jbGt0cmN0 cmxfbWFzaykKLQkJcmV0dXJuIDA7Ci0KLQlod3N1cCA9IG9tYXAyeHh4X2NtX2lzX2Nsa2RtX2lu X2h3c3VwKGNsa2RtLT5wd3JkbS5wdHItPnByY21fb2ZmcywKLQkJCQkJICAgICAgY2xrZG0tPmNs a3RyY3RybF9tYXNrKTsKLQotCWlmICghaHdzdXAgJiYgY2xrZG0tPmZsYWdzICYgQ0xLRE1fQ0FO X0ZPUkNFX1NMRUVQKQotCQlvbWFwMnh4eF9jbGtkbV9zbGVlcChjbGtkbSk7Ci0KLQlyZXR1cm4g MDsKLX0KLQotc3RydWN0IGNsa2RtX29wcyBvbWFwMl9jbGtkbV9vcGVyYXRpb25zID0gewotCS5j bGtkbV9hZGRfd2tkZXAJPSBvbWFwMl9jbGtkbV9hZGRfd2tkZXAsCi0JLmNsa2RtX2RlbF93a2Rl cAk9IG9tYXAyX2Nsa2RtX2RlbF93a2RlcCwKLQkuY2xrZG1fcmVhZF93a2RlcAk9IG9tYXAyX2Ns a2RtX3JlYWRfd2tkZXAsCi0JLmNsa2RtX2NsZWFyX2FsbF93a2RlcHMJPSBvbWFwMl9jbGtkbV9j bGVhcl9hbGxfd2tkZXBzLAotCS5jbGtkbV9zbGVlcAkJPSBvbWFwMnh4eF9jbGtkbV9zbGVlcCwK LQkuY2xrZG1fd2FrZXVwCQk9IG9tYXAyeHh4X2Nsa2RtX3dha2V1cCwKLQkuY2xrZG1fYWxsb3df aWRsZQk9IG9tYXAyeHh4X2Nsa2RtX2FsbG93X2lkbGUsCi0JLmNsa2RtX2RlbnlfaWRsZQk9IG9t YXAyeHh4X2Nsa2RtX2RlbnlfaWRsZSwKLQkuY2xrZG1fY2xrX2VuYWJsZQk9IG9tYXAyeHh4X2Ns a2RtX2Nsa19lbmFibGUsCi0JLmNsa2RtX2Nsa19kaXNhYmxlCT0gb21hcDJ4eHhfY2xrZG1fY2xr X2Rpc2FibGUsCi19OwotCi1pbnQgb21hcDJ4eHhfY21fZmNsa3NfYWN0aXZlKHZvaWQpCi17Ci0J dTMyIGYxLCBmMjsKLQotCWYxID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKENPUkVfTU9ELCBDTV9G Q0xLRU4xKTsKLQlmMiA9IG9tYXAyX2NtX3JlYWRfbW9kX3JlZyhDT1JFX01PRCwgT01BUDI0WFhf Q01fRkNMS0VOMik7Ci0KLQlyZXR1cm4gKGYxIHwgZjIpID8gMSA6IDA7Ci19Ci0KLWludCBvbWFw Mnh4eF9jbV9tcHVfcmV0ZW50aW9uX2FsbG93ZWQodm9pZCkKLXsKLQl1MzIgbDsKLQotCS8qIENo ZWNrIGZvciBNTUMsIFVBUlQyLCBVQVJUMSwgTWNTUEkyLCBNY1NQSTEgYW5kIERTUzEuICovCi0J bCA9IG9tYXAyX2NtX3JlYWRfbW9kX3JlZyhDT1JFX01PRCwgQ01fRkNMS0VOMSk7Ci0JaWYgKGwg JiAoT01BUDI0MjBfRU5fTU1DX01BU0sgfCBPTUFQMjRYWF9FTl9VQVJUMl9NQVNLIHwKLQkJIE9N QVAyNFhYX0VOX1VBUlQxX01BU0sgfCBPTUFQMjRYWF9FTl9NQ1NQSTJfTUFTSyB8Ci0JCSBPTUFQ MjRYWF9FTl9NQ1NQSTFfTUFTSyB8IE9NQVAyNFhYX0VOX0RTUzFfTUFTSykpCi0JCXJldHVybiAw OwotCS8qIENoZWNrIGZvciBVQVJUMy4gKi8KLQlsID0gb21hcDJfY21fcmVhZF9tb2RfcmVnKENP UkVfTU9ELCBPTUFQMjRYWF9DTV9GQ0xLRU4yKTsKLQlpZiAobCAmIE9NQVAyNFhYX0VOX1VBUlQz X01BU0spCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIDE7Ci19Ci0KLXUzMiBvbWFwMnh4eF9jbV9n ZXRfY29yZV9jbGtfc3JjKHZvaWQpCi17Ci0JdTMyIHY7Ci0KLQl2ID0gb21hcDJfY21fcmVhZF9t b2RfcmVnKFBMTF9NT0QsIENNX0NMS1NFTDIpOwotCXYgJj0gT01BUDI0WFhfQ09SRV9DTEtfU1JD X01BU0s7Ci0KLQlyZXR1cm4gdjsKLX0KLQotdTMyIG9tYXAyeHh4X2NtX2dldF9jb3JlX3BsbF9j b25maWcodm9pZCkKLXsKLQlyZXR1cm4gb21hcDJfY21fcmVhZF9tb2RfcmVnKFBMTF9NT0QsIENN X0NMS1NFTDIpOwotfQotCi12b2lkIG9tYXAyeHh4X2NtX3NldF9tb2RfZGl2aWRlcnModTMyIG1w dSwgdTMyIGRzcCwgdTMyIGdmeCwgdTMyIGNvcmUsIHUzMiBtZG0pCi17Ci0JdTMyIHRtcDsKLQot CW9tYXAyX2NtX3dyaXRlX21vZF9yZWcobXB1LCBNUFVfTU9ELCBDTV9DTEtTRUwpOwotCW9tYXAy X2NtX3dyaXRlX21vZF9yZWcoZHNwLCBPTUFQMjRYWF9EU1BfTU9ELCBDTV9DTEtTRUwpOwotCW9t YXAyX2NtX3dyaXRlX21vZF9yZWcoZ2Z4LCBHRlhfTU9ELCBDTV9DTEtTRUwpOwotCXRtcCA9IG9t YXAyX2NtX3JlYWRfbW9kX3JlZyhDT1JFX01PRCwgQ01fQ0xLU0VMMSkgJgotCQlPTUFQMjRYWF9D TEtTRUxfRFNTMl9NQVNLOwotCW9tYXAyX2NtX3dyaXRlX21vZF9yZWcoY29yZSB8IHRtcCwgQ09S RV9NT0QsIENNX0NMS1NFTDEpOwotCWlmIChtZG0pCi0JCW9tYXAyX2NtX3dyaXRlX21vZF9yZWco bWRtLCBPTUFQMjQzMF9NRE1fTU9ELCBDTV9DTEtTRUwpOwotfQotCi0vKgotICoKLSAqLwotCi1z dGF0aWMgY29uc3Qgc3RydWN0IGNtX2xsX2RhdGEgb21hcDJ4eHhfY21fbGxfZGF0YSA9IHsKLQku c3BsaXRfaWRsZXN0X3JlZwk9ICZvbWFwMnh4eF9jbV9zcGxpdF9pZGxlc3RfcmVnLAotCS53YWl0 X21vZHVsZV9yZWFkeQk9ICZvbWFwMnh4eF9jbV93YWl0X21vZHVsZV9yZWFkeSwKLX07Ci0KLWlu dCBfX2luaXQgb21hcDJ4eHhfY21faW5pdChjb25zdCBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0 YSAqZGF0YSkKLXsKLQlyZXR1cm4gY21fcmVnaXN0ZXIoJm9tYXAyeHh4X2NtX2xsX2RhdGEpOwot fQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgb21hcDJ4eHhfY21fZXhpdCh2b2lkKQotewotCWNtX3Vu cmVnaXN0ZXIoJm9tYXAyeHh4X2NtX2xsX2RhdGEpOwotfQotX19leGl0Y2FsbChvbWFwMnh4eF9j bV9leGl0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY20yeHh4LmggYi9hcmNo L2FybS9tYWNoLW9tYXAyL2NtMnh4eC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3 Y2JlZmYxNWZmYjAuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NtMnh4 eC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb25seSAqLwotLyoKLSAqIE9NQVAyeHh4IENsb2NrIE1hbmFnZW1lbnQg KENNKSByZWdpc3RlciBkZWZpbml0aW9ucwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5 LCAyMDEyIFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAx MCBOb2tpYSBDb3Jwb3JhdGlvbgotICogUGF1bCBXYWxtc2xleQotICoKLSAqIFRoZSBDTSBoYXJk d2FyZSBtb2R1bGVzIG9uIHRoZSBPTUFQMi8zIGFyZSBxdWl0ZSBzaW1pbGFyIHRvIGVhY2gKLSAq IG90aGVyLiAgVGhlIENNIG1vZHVsZXMvaW5zdGFuY2VzIG9uIE9NQVA0IGFyZSBxdWl0ZSBkaWZm ZXJlbnQsIHNvCi0gKiB0aGV5IGFyZSBoYW5kbGVkIGluIGEgc2VwYXJhdGUgZmlsZS4KLSAqLwot I2lmbmRlZiBfX0FSQ0hfQVNNX01BQ0hfT01BUDJfQ00yWFhYX0gKLSNkZWZpbmUgX19BUkNIX0FT TV9NQUNIX09NQVAyX0NNMlhYWF9ICi0KLSNpbmNsdWRlICJwcmNtLWNvbW1vbi5oIgotI2luY2x1 ZGUgImNtMnh4eF8zeHh4LmgiCi0KLSNkZWZpbmUgT01BUDI0MjBfQ01fUkVHQUREUihtb2R1bGUs IHJlZykJCQkJXAotCQkJT01BUDJfTDRfSU9fQUREUkVTUyhPTUFQMjQyMF9DTV9CQVNFICsgKG1v ZHVsZSkgKyAocmVnKSkKLSNkZWZpbmUgT01BUDI0MzBfQ01fUkVHQUREUihtb2R1bGUsIHJlZykJ CQkJXAotCQkJT01BUDJfTDRfSU9fQUREUkVTUyhPTUFQMjQzMF9DTV9CQVNFICsgKG1vZHVsZSkg KyAocmVnKSkKLQotLyoKLSAqIE1vZHVsZSBzcGVjaWZpYyBDTSByZWdpc3RlciBvZmZzZXRzIGZy b20gQ01fQkFTRSArIGRvbWFpbiBvZmZzZXQKLSAqIFVzZSBjbV97cmVhZCx3cml0ZX1fbW9kX3Jl ZygpIHdpdGggdGhlc2UgcmVnaXN0ZXJzLgotICogVGhlc2UgcmVnaXN0ZXIgb2Zmc2V0cyBnZW5l cmFsbHkgYXBwZWFyIGluIG1vcmUgdGhhbiBvbmUgUFJDTSBzdWJtb2R1bGUuCi0gKi8KLQotLyog T01BUDItc3BlY2lmaWMgcmVnaXN0ZXIgb2Zmc2V0cyAqLwotCi0jZGVmaW5lIE9NQVAyNFhYX0NN X0ZDTEtFTjIJCQkJMHgwMDA0Ci0jZGVmaW5lIE9NQVAyNFhYX0NNX0lDTEtFTjQJCQkJMHgwMDFj Ci0jZGVmaW5lIE9NQVAyNFhYX0NNX0FVVE9JRExFNAkJCQkweDAwM2MKLSNkZWZpbmUgT01BUDI0 WFhfQ01fSURMRVNUNAkJCQkweDAwMmMKLQotLyogQ01fSURMRVNUIGJpdCBmaWVsZCB2YWx1ZXMg dG8gaW5kaWNhdGUgZGVhc3NlcnRlZCBJZGxlUmVxICovCi0KLSNkZWZpbmUgT01BUDI0WFhfQ01f SURMRVNUX1ZBTAkJCQkwCi0KLQotLyogQ2xvY2sgbWFuYWdlbWVudCBkb21haW4gcmVnaXN0ZXIg Z2V0L3NldCAqLwotCi0jaWZuZGVmIF9fQVNTRU1CTEVSX18KLQotZXh0ZXJuIHZvaWQgb21hcDJ4 eHhfY21fc2V0X2RwbGxfZGlzYWJsZV9hdXRvaWRsZSh2b2lkKTsKLWV4dGVybiB2b2lkIG9tYXAy eHh4X2NtX3NldF9kcGxsX2F1dG9fbG93X3Bvd2VyX3N0b3Aodm9pZCk7Ci0KLWV4dGVybiBpbnQg b21hcDJ4eHhfY21fZmNsa3NfYWN0aXZlKHZvaWQpOwotZXh0ZXJuIGludCBvbWFwMnh4eF9jbV9t cHVfcmV0ZW50aW9uX2FsbG93ZWQodm9pZCk7Ci1leHRlcm4gdTMyIG9tYXAyeHh4X2NtX2dldF9j b3JlX2Nsa19zcmModm9pZCk7Ci1leHRlcm4gdTMyIG9tYXAyeHh4X2NtX2dldF9jb3JlX3BsbF9j b25maWcodm9pZCk7Ci1leHRlcm4gdm9pZCBvbWFwMnh4eF9jbV9zZXRfbW9kX2RpdmlkZXJzKHUz MiBtcHUsIHUzMiBkc3AsIHUzMiBnZngsIHUzMiBjb3JlLAotCQkJCQkgdTMyIG1kbSk7Ci0KLWlu dCBfX2luaXQgb21hcDJ4eHhfY21faW5pdChjb25zdCBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0 YSAqZGF0YSk7Ci0KLSNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gt b21hcDIvY21fY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NtX2NvbW1vbi5jCmluZGV4 IDg3ZjJjMmQyZDc1NC4uZmMxNmNkMWZkMmQ1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9t YXAyL2NtX2NvbW1vbi5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY21fY29tbW9uLmMKQEAg LTE1LDcgKzE1LDYgQEAKICNpbmNsdWRlIDxsaW51eC9vZi5oPgogI2luY2x1ZGUgPGxpbnV4L29m X2FkZHJlc3MuaD4KIAotI2luY2x1ZGUgImNtMnh4eC5oIgogI2luY2x1ZGUgImNtM3h4eC5oIgog I2luY2x1ZGUgImNtMzN4eC5oIgogI2luY2x1ZGUgImNtNDR4eC5oIgpAQCAtMjMwLDE0ICsyMjks NiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfcHJjbV9pbml0X2RhdGEgY20yX2RhdGEgX19pbml0ZGF0 YSA9IHsKIH07CiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19BUkNIX09NQVAyCi1zdGF0aWMgc3Ry dWN0IG9tYXBfcHJjbV9pbml0X2RhdGEgb21hcDJfcHJjbV9kYXRhIF9faW5pdGRhdGEgPSB7Ci0J LmluZGV4ID0gVElfQ0xLTV9DTSwKLQkuaW5pdCA9IG9tYXAyeHh4X2NtX2luaXQsCi0JLmZsYWdz ID0gQ01fTk9fQ0xPQ0tTIHwgQ01fU0lOR0xFX0lOU1RBTkNFLAotfTsKLSNlbmRpZgotCiAjaWZk ZWYgQ09ORklHX0FSQ0hfT01BUDMKIHN0YXRpYyBzdHJ1Y3Qgb21hcF9wcmNtX2luaXRfZGF0YSBv bWFwM19jbV9kYXRhIF9faW5pdGRhdGEgPSB7CiAJLmluZGV4ID0gVElfQ0xLTV9DTSwKQEAgLTI2 OSw5ICsyNjAsNiBAQCBzdGF0aWMgc3RydWN0IG9tYXBfcHJjbV9pbml0X2RhdGEgYW00X3ByY21f ZGF0YSBfX2luaXRkYXRhID0gewogI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG9tYXBfY21fZHRfbWF0Y2hfdGFibGVbXSBfX2luaXRjb25zdCA9IHsKLSNpZmRlZiBD T05GSUdfQVJDSF9PTUFQMgotCXsgLmNvbXBhdGlibGUgPSAidGksb21hcDItcHJjbSIsIC5kYXRh ID0gJm9tYXAyX3ByY21fZGF0YSB9LAotI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMK IAl7IC5jb21wYXRpYmxlID0gInRpLG9tYXAzLWNtIiwgLmRhdGEgPSAmb21hcDNfY21fZGF0YSB9 LAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi1ib2FyZC1k ZXZpY2VzLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi1ib2FyZC1kZXZpY2VzLmgKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5Njk0YWY3MTQ3NS4uMDAwMDAwMDAwMDAwCi0t LSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLWJvYXJkLWRldmljZXMuaAorKysgL2Rldi9u dWxsCkBAIC0xLDExICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w ICovCi0jaWZuZGVmIF9fT01BUF9DT01NT05fQk9BUkRfREVWSUNFU19fCi0jZGVmaW5lIF9fT01B UF9DT01NT05fQk9BUkRfREVWSUNFU19fCi0KLSNpbmNsdWRlIDxsaW51eC9tZmQvbWVuZWxhdXMu aD4KLQotdm9pZCAqbjh4MF9sZWdhY3lfaW5pdCh2b2lkKTsKLQotZXh0ZXJuIHN0cnVjdCBtZW5l bGF1c19wbGF0Zm9ybV9kYXRhIG44eDBfbWVuZWxhdXNfcGxhdGZvcm1fZGF0YTsKLQotI2VuZGlm IC8qIF9fT01BUF9DT01NT05fQk9BUkRfREVWSUNFU19fICovCmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9tYWNoLW9tYXAyL2NvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb21tb24uaAppbmRl eCA5ZDYwNzk5ZTk3NTIuLmY4ZWQ5NzA0NGFkZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1v bWFwMi9jb21tb24uaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5oCkBAIC0xMDIs OCArMTAyLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIG9tYXA1X3JlYWx0aW1lX3RpbWVyX2luaXQo dm9pZCkKIH0KICNlbmRpZgogCi12b2lkIG9tYXAyNDIwX2luaXRfZWFybHkodm9pZCk7Ci12b2lk IG9tYXAyNDMwX2luaXRfZWFybHkodm9pZCk7CiB2b2lkIG9tYXAzNDMwX2luaXRfZWFybHkodm9p ZCk7CiB2b2lkIG9tYXAzNjMwX2luaXRfZWFybHkodm9pZCk7CiB2b2lkIGFtMzN4eF9pbml0X2Vh cmx5KHZvaWQpOwpAQCAtMTMwLDE0ICsxMjgsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgb21hcF9z b2NfZGV2aWNlX2luaXQodm9pZCkKIH0KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU09D X09NQVAyNDIwKSB8fCBkZWZpbmVkKENPTkZJR19TT0NfT01BUDI0MzApCi12b2lkIG9tYXAyeHh4 X3Jlc3RhcnQoZW51bSByZWJvb3RfbW9kZSBtb2RlLCBjb25zdCBjaGFyICpjbWQpOwotI2Vsc2UK LXN0YXRpYyBpbmxpbmUgdm9pZCBvbWFwMnh4eF9yZXN0YXJ0KGVudW0gcmVib290X21vZGUgbW9k ZSwgY29uc3QgY2hhciAqY21kKQotewotfQotI2VuZGlmCi0KICNpZmRlZiBDT05GSUdfU09DX0FN MzNYWAogdm9pZCBhbTMzeHhfcmVzdGFydChlbnVtIHJlYm9vdF9tb2RlIG1vZGUsIGNvbnN0IGNo YXIgKmNtZCk7CiAjZWxzZQpAQCAtMTgzLDggKzE3Myw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBv bWFwX2JhcnJpZXJfcmVzZXJ2ZV9tZW1ibG9jayh2b2lkKQogLyogVGhpcyBnZXRzIGNhbGxlZCBm cm9tIG1hY2gtb21hcDIvaW8uYywgZG8gbm90IGNhbGwgdGhpcyAqLwogdm9pZCBfX2luaXQgb21h cDJfc2V0X2dsb2JhbHNfdGFwKHUzMiBjbGFzcywgdm9pZCBfX2lvbWVtICp0YXApOwogCi12b2lk IF9faW5pdCBvbWFwMjQyeF9tYXBfaW8odm9pZCk7Ci12b2lkIF9faW5pdCBvbWFwMjQzeF9tYXBf aW8odm9pZCk7CiB2b2lkIF9faW5pdCBvbWFwM19tYXBfaW8odm9pZCk7CiB2b2lkIF9faW5pdCBh bTMzeHhfbWFwX2lvKHZvaWQpOwogdm9pZCBfX2luaXQgb21hcDRfbWFwX2lvKHZvaWQpOwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmggYi9hcmNoL2FybS9tYWNoLW9t YXAyL2NvbnRyb2wuaAppbmRleCA3ZTc0NDA1MzNiZjkuLjNhYjFjNmU2ZGRlNiAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFw Mi9jb250cm9sLmgKQEAgLTE5LDE5ICsxOSwxMSBAQAogI2luY2x1ZGUgImFtMzN4eC5oIgogCiAj aWZuZGVmIF9fQVNTRU1CTFlfXwotI2RlZmluZSBPTUFQMjQyWF9DVFJMX1JFR0FERFIocmVnKQkJ CQkJXAotCQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAyNDJYX0NUUkxfQkFTRSArIChyZWcpKQot I2RlZmluZSBPTUFQMjQzWF9DVFJMX1JFR0FERFIocmVnKQkJCQkJXAotCQlPTUFQMl9MNF9JT19B RERSRVNTKE9NQVAyNDNYX0NUUkxfQkFTRSArIChyZWcpKQogI2RlZmluZSBPTUFQMzQzWF9DVFJM X1JFR0FERFIocmVnKQkJCQkJXAogCQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAzNDNYX0NUUkxf QkFTRSArIChyZWcpKQogI2RlZmluZSBBTTMzWFhfQ1RSTF9SRUdBRERSKHJlZykJCQkJCVwKIAkJ QU0zM1hYX0w0X1dLX0lPX0FERFJFU1MoQU0zM1hYX1NDTV9CQVNFICsgKHJlZykpCiAjZWxzZQot I2RlZmluZSBPTUFQMjQyWF9DVFJMX1JFR0FERFIocmVnKQkJCQkJXAotCQlPTUFQMl9MNF9JT19B RERSRVNTKE9NQVAyNDJYX0NUUkxfQkFTRSArIChyZWcpKQotI2RlZmluZSBPTUFQMjQzWF9DVFJM X1JFR0FERFIocmVnKQkJCQkJXAotCQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAyNDNYX0NUUkxf QkFTRSArIChyZWcpKQogI2RlZmluZSBPTUFQMzQzWF9DVFJMX1JFR0FERFIocmVnKQkJCQkJXAog CQlPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAzNDNYX0NUUkxfQkFTRSArIChyZWcpKQogI2RlZmlu ZSBBTTMzWFhfQ1RSTF9SRUdBRERSKHJlZykJCQkJCVwKQEAgLTc0LDUyICs2Niw2IEBACiAjZGVm aW5lIE9NQVAyX0NPTlRST0xfUlBVQl9LRVlfSF8yCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAw eDAwOTgpCiAjZGVmaW5lIE9NQVAyX0NPTlRST0xfUlBVQl9LRVlfSF8zCShPTUFQMl9DT05UUk9M X0dFTkVSQUwgKyAweDAwOWMpCiAKLS8qIDI0Mngtb25seSBDT05UUk9MX0dFTkVSQUwgcmVnaXN0 ZXIgb2Zmc2V0cyAqLwotI2RlZmluZSBPTUFQMjQyWF9DT05UUk9MX0RFVkNPTkYJT01BUDJfQ09O VFJPTF9ERVZDT05GMCAvKiBtYXRjaCBUUk0gKi8KLSNkZWZpbmUgT01BUDI0MlhfQ09OVFJPTF9P Q01fUkFNX1BFUk0JKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA2OCkKLQotLyogMjQzeC1v bmx5IENPTlRST0xfR0VORVJBTCByZWdpc3RlciBvZmZzZXRzICovCi0vKiBDT05UUk9MX0lWQTJf Qk9PVHtBRERSLE1PRH0gYXJlIGF0IHRoZSBzYW1lIHBsYWNlIG9uIDM0M3ggLSBub3RlZCBiZWxv dyAqLwotI2RlZmluZSBPTUFQMjQzWF9DT05UUk9MX0RFVkNPTkYxCShPTUFQMl9DT05UUk9MX0dF TkVSQUwgKyAweDAwNzgpCi0jZGVmaW5lIE9NQVAyNDNYX0NPTlRST0xfQ1NJUlhGRQkoT01BUDJf Q09OVFJPTF9HRU5FUkFMICsgMHgwMDdjKQotI2RlZmluZSBPTUFQMjQzWF9DT05UUk9MX0lWQTJf Qk9PVEFERFIJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDE5MCkKLSNkZWZpbmUgT01BUDI0 M1hfQ09OVFJPTF9JVkEyX0JPT1RNT0QJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDE5NCkK LSNkZWZpbmUgT01BUDI0M1hfQ09OVFJPTF9JVkEyX0dFTUNGRwkoT01BUDJfQ09OVFJPTF9HRU5F UkFMICsgMHgwMTk4KQotI2RlZmluZSBPTUFQMjQzWF9DT05UUk9MX1BCSUFTX0xJVEUJKE9NQVAy X0NPTlRST0xfR0VORVJBTCArIDB4MDIzMCkKLQotLyogMjR4eC1vbmx5IENPTlRST0xfR0VORVJB TCByZWdpc3RlciBvZmZzZXRzICovCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfREVCT0JTCQko T01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMDAwKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9M X0VNVV9TVVBQT1JUCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwMDgpCi0jZGVmaW5lIE9N QVAyNFhYX0NPTlRST0xfU0VDX1RFU1QJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA0NCkK LSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9QU0FfQ1RSTAkoT01BUDJfQ09OVFJPTF9HRU5FUkFM ICsgMHgwMDQ4KQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX1BTQV9DTUQJKE9NQVAyX0NPTlRS T0xfR0VORVJBTCArIDB4MDA0YykKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9QU0FfVkFMVUUJ KE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA1MCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJP TF9TRUNfRU1VCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwNjApCi0jZGVmaW5lIE9NQVAy NFhYX0NPTlRST0xfU0VDX1RBUAkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMDY0KQotI2Rl ZmluZSBPTUFQMjRYWF9DT05UUk9MX09DTV9QVUJfUkFNX0FERAkoT01BUDJfQ09OVFJPTF9HRU5F UkFMICsgMHgwMDZjKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX0VYVF9TRUNfUkFNX1NUQVJU X0FERAkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMDcwKQotI2RlZmluZSBPTUFQMjRYWF9D T05UUk9MX0VYVF9TRUNfUkFNX1NUT1BfQURECShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAw NzQpCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfU0VDX1NUQVRVUwkJKE9NQVAyX0NPTlRST0xf R0VORVJBTCArIDB4MDA4MCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9TRUNfRVJSX1NUQVRV UwkJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDA4NCkKLSNkZWZpbmUgT01BUDI0WFhfQ09O VFJPTF9TVEFUVVMJCQkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMDg4KQotI2RlZmluZSBP TUFQMjRYWF9DT05UUk9MX0dFTkVSQUxfUFVSUE9TRV9TVEFUVVMJKE9NQVAyX0NPTlRST0xfR0VO RVJBTCArIDB4MDA4YykKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9SQU5EX0tFWV8wCShPTUFQ Ml9DT05UUk9MX0dFTkVSQUwgKyAweDAwYTApCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfUkFO RF9LRVlfMQkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMGE0KQotI2RlZmluZSBPTUFQMjRY WF9DT05UUk9MX1JBTkRfS0VZXzIJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDBhOCkKLSNk ZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9SQU5EX0tFWV8zCShPTUFQMl9DT05UUk9MX0dFTkVSQUwg KyAweDAwYWMpCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfQ1VTVF9LRVlfMAkoT01BUDJfQ09O VFJPTF9HRU5FUkFMICsgMHgwMGIwKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX0NVU1RfS0VZ XzEJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDBiNCkKLSNkZWZpbmUgT01BUDI0WFhfQ09O VFJPTF9URVNUX0tFWV8wCShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwYzApCi0jZGVmaW5l IE9NQVAyNFhYX0NPTlRST0xfVEVTVF9LRVlfMQkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgw MGM0KQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX1RFU1RfS0VZXzIJKE9NQVAyX0NPTlRST0xf R0VORVJBTCArIDB4MDBjOCkKLSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9URVNUX0tFWV8zCShP TUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwY2MpCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xf VEVTVF9LRVlfNAkoT01BUDJfQ09OVFJPTF9HRU5FUkFMICsgMHgwMGQwKQotI2RlZmluZSBPTUFQ MjRYWF9DT05UUk9MX1RFU1RfS0VZXzUJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDBkNCkK LSNkZWZpbmUgT01BUDI0WFhfQ09OVFJPTF9URVNUX0tFWV82CShPTUFQMl9DT05UUk9MX0dFTkVS QUwgKyAweDAwZDgpCi0jZGVmaW5lIE9NQVAyNFhYX0NPTlRST0xfVEVTVF9LRVlfNwkoT01BUDJf Q09OVFJPTF9HRU5FUkFMICsgMHgwMGRjKQotI2RlZmluZSBPTUFQMjRYWF9DT05UUk9MX1RFU1Rf S0VZXzgJKE9NQVAyX0NPTlRST0xfR0VORVJBTCArIDB4MDBlMCkKLSNkZWZpbmUgT01BUDI0WFhf Q09OVFJPTF9URVNUX0tFWV85CShPTUFQMl9DT05UUk9MX0dFTkVSQUwgKyAweDAwZTQpCi0KICNk ZWZpbmUgT01BUDM0M1hfQ09OVFJPTF9QQURDT05GX1NZU05JUlEgKE9NQVAyX0NPTlRST0xfSU5U RVJGQUNFICsgMHgwMWIwKQogCiAvKiAzNHh4LW9ubHkgQ09OVFJPTF9HRU5FUkFMIHJlZ2lzdGVy IG9mZnNldHMgKi8KQEAgLTMxMSwxNCArMjU3LDEyIEBACiAgKi8KIC8qIENPTlRST0xfREVWQ09O RjAgYml0cyAqLwogI2RlZmluZSBPTUFQMl9NTUNTRElPMUFEUENMS0lTRUwJKDEgPDwgMjQpIC8q IE1NQzEgbG9vcCBiYWNrIGNsb2NrICovCi0jZGVmaW5lIE9NQVAyNFhYX1VTQlNUQU5EQllDVFJM CQkoMSA8PCAxNSkKICNkZWZpbmUgT01BUDJfTUNCU1AyX0NMS1NfTUFTSwkJKDEgPDwgNikKICNk ZWZpbmUgT01BUDJfTUNCU1AxX0ZTUl9NQVNLCQkoMSA8PCA0KQogI2RlZmluZSBPTUFQMl9NQ0JT UDFfQ0xLUl9NQVNLCQkoMSA8PCAzKQogI2RlZmluZSBPTUFQMl9NQ0JTUDFfQ0xLU19NQVNLCQko MSA8PCAyKQogCiAvKiBDT05UUk9MX0RFVkNPTkYxIGJpdHMgKi8KLSNkZWZpbmUgT01BUDI0M1hf TU1DMV9BQ1RJVkVfT1ZFUldSSVRFCSgxIDw8IDMxKQogI2RlZmluZSBPTUFQMl9NTUNTRElPMkFE UENMS0lTRUwJKDEgPDwgNikgLyogTU1DMiBsb29wIGJhY2sgY2xvY2sgKi8KICNkZWZpbmUgT01B UDJfTUNCU1A1X0NMS1NfTUFTSwkJKDEgPDwgNCkgLyogPiAyNDJ4ICovCiAjZGVmaW5lIE9NQVAy X01DQlNQNF9DTEtTX01BU0sJCSgxIDw8IDIpIC8qID4gMjQyeCAqLwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Rpc3BsYXku YwppbmRleCBkYmVjM2JiOWZiZjQuLmFkZGMxNDg5OGJkNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v bWFjaC1vbWFwMi9kaXNwbGF5LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmMK QEAgLTEyNCw5ICsxMjQsNyBAQCBzdGF0aWMgdm9pZCBvbWFwX2RzaV9kaXNhYmxlX3BhZHMoaW50 IGRzaV9pZCwgdW5zaWduZWQgbGFuZV9tYXNrKQogCiBzdGF0aWMgZW51bSBvbWFwZHNzX3ZlcnNp b24gX19pbml0IG9tYXBfZGlzcGxheV9nZXRfdmVyc2lvbih2b2lkKQogewotCWlmIChjcHVfaXNf b21hcDI0eHgoKSkKLQkJcmV0dXJuIE9NQVBEU1NfVkVSX09NQVAyNHh4OwotCWVsc2UgaWYgKGNw dV9pc19vbWFwMzYzMCgpKQorCWlmIChjcHVfaXNfb21hcDM2MzAoKSkKIAkJcmV0dXJuIE9NQVBE U1NfVkVSX09NQVAzNjMwOwogCWVsc2UgaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CiAJCWlmIChz b2NfaXNfYW0zNXh4KCkpIHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvZG1hLmMg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jCmluZGV4IDgzMGNkNGU3ZWI0NC4uM2E2YjdiNDYy MGNhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jCisrKyBiL2FyY2gvYXJt L21hY2gtb21hcDIvZG1hLmMKQEAgLTgyLDM5ICs4Miw2IEBAIHN0YXRpYyB1bnNpZ25lZCBjb25m aWd1cmVfZG1hX2VycmF0YSh2b2lkKQogewogCXVuc2lnbmVkIGVycmF0YSA9IDA7CiAKLQkvKgot CSAqIEVycmF0YSBhcHBsaWNhYmxlIGZvciBPTUFQMjQzMEVTMS4wIGFuZCBhbGwgb21hcDI0MjAK LQkgKgotCSAqIEkuCi0JICogRXJyYXR1bSBJRDogTm90IEF2YWlsYWJsZQotCSAqIEludGVyIEZy YW1lIERNQSBidWZmZXJpbmcgaXNzdWUgRE1BIHdpbGwgd3JvbmdseQotCSAqIGJ1ZmZlciBlbGVt ZW50cyBpZiBwYWNraW5nIGFuZCBidXJzdGluZyBpcyBlbmFibGVkLiBUaGlzIG1pZ2h0Ci0JICog cmVzdWx0IGluIGRhdGEgZ2V0cyBzdGFsbGVkIGluIEZJRk8gYXQgdGhlIGVuZCBvZiB0aGUgYmxv Y2suCi0JICogV29ya2Fyb3VuZDogRE1BIGNoYW5uZWxzIG11c3QgaGF2ZSBCVUZGRVJJTkdfRElT QUJMRUQgYml0IHNldCB0bwotCSAqIGd1YXJhbnRlZSBubyBkYXRhIHdpbGwgc3RheSBpbiB0aGUg RE1BIEZJRk8gaW4gY2FzZSBpbnRlciBmcmFtZQotCSAqIGJ1ZmZlcmluZyBvY2N1cnMKLQkgKgot CSAqIElJLgotCSAqIEVycmF0dW0gSUQ6IE5vdCBBdmFpbGFibGUKLQkgKiBETUEgbWF5IGhhbmcg d2hlbiBzZXZlcmFsIGNoYW5uZWxzIGFyZSB1c2VkIGluIHBhcmFsbGVsCi0JICogSW4gdGhlIGZv bGxvd2luZyBjb25maWd1cmF0aW9uLCBETUEgY2hhbm5lbCBoYW5naW5nIGNhbiBvY2N1cjoKLQkg KiBhLiBDaGFubmVsIGksIGhhcmR3YXJlIHN5bmNocm9uaXplZCwgaXMgZW5hYmxlZAotCSAqIGIu IEFub3RoZXIgY2hhbm5lbCAoQ2hhbm5lbCB4KSwgc29mdHdhcmUgc3luY2hyb25pemVkLCBpcyBl bmFibGVkLgotCSAqIGMuIENoYW5uZWwgaSBpcyBkaXNhYmxlZCBiZWZvcmUgZW5kIG9mIHRyYW5z ZmVyCi0JICogZC4gQ2hhbm5lbCBpIGlzIHJlZW5hYmxlZC4KLQkgKiBlLiBTdGVwcyAxIHRvIDQg YXJlIHJlcGVhdGVkIGEgY2VydGFpbiBudW1iZXIgb2YgdGltZXMuCi0JICogZi4gQSB0aGlyZCBj aGFubmVsIChDaGFubmVsIHkpLCBzb2Z0d2FyZSBzeW5jaHJvbml6ZWQsIGlzIGVuYWJsZWQuCi0J ICogQ2hhbm5lbCB4IGFuZCBDaGFubmVsIHkgbWF5IGhhbmcgaW1tZWRpYXRlbHkgYWZ0ZXIgc3Rl cCAnZicuCi0JICogV29ya2Fyb3VuZDoKLQkgKiBGb3IgYW55IGNoYW5uZWwgdXNlZCAtIG1ha2Ug c3VyZSBOZXh0TENIX0lEIGlzIHNldCB0byB0aGUgdmFsdWUgai4KLQkgKi8KLQlpZiAoY3B1X2lz X29tYXAyNDIwKCkgfHwgKGNwdV9pc19vbWFwMjQzMCgpICYmCi0JCQkJKG9tYXBfdHlwZSgpID09 IE9NQVAyNDMwX1JFVl9FUzFfMCkpKSB7Ci0KLQkJU0VUX0RNQV9FUlJBVEEoRE1BX0VSUkFUQV9J RlJBTUVfQlVGRkVSSU5HKTsKLQkJU0VUX0RNQV9FUlJBVEEoRE1BX0VSUkFUQV9QQVJBTExFTF9D SEFOTkVMUyk7Ci0JfQotCiAJLyoKIAkgKiBFcnJhdHVtIElEOiBpMzc4OiBPTUFQMis6IHNETUEg Q2hhbm5lbCBpcyBub3QgZGlzYWJsZWQKIAkgKiBhZnRlciBhIHRyYW5zYWN0aW9uIGVycm9yLgpA QCAtMTYyLDE2ICsxMjksNiBAQCBzdGF0aWMgdW5zaWduZWQgY29uZmlndXJlX2RtYV9lcnJhdGEo dm9pZCkKIAlyZXR1cm4gZXJyYXRhOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9zbGF2 ZV9tYXAgb21hcDI0eHhfc2RtYV9kdF9tYXBbXSA9IHsKLQkvKiBleHRlcm5hbCBETUEgcmVxdWVz dHMgd2hlbiB0dXNiNjAxMCBpcyB1c2VkICovCi0JeyAibXVzYi1oZHJjLjEuYXV0byIsICJkbWFy ZXEwIiwgU0RNQV9GSUxURVJfUEFSQU0oMikgfSwKLQl7ICJtdXNiLWhkcmMuMS5hdXRvIiwgImRt YXJlcTEiLCBTRE1BX0ZJTFRFUl9QQVJBTSgzKSB9LAotCXsgIm11c2ItaGRyYy4xLmF1dG8iLCAi ZG1hcmVxMiIsIFNETUFfRklMVEVSX1BBUkFNKDE0KSB9LCAvKiBPTUFQMjQyMCBvbmx5ICovCi0J eyAibXVzYi1oZHJjLjEuYXV0byIsICJkbWFyZXEzIiwgU0RNQV9GSUxURVJfUEFSQU0oMTUpIH0s IC8qIE9NQVAyNDIwIG9ubHkgKi8KLQl7ICJtdXNiLWhkcmMuMS5hdXRvIiwgImRtYXJlcTQiLCBT RE1BX0ZJTFRFUl9QQVJBTSgxNikgfSwgLyogT01BUDI0MjAgb25seSAqLwotCXsgIm11c2ItaGRy Yy4xLmF1dG8iLCAiZG1hcmVxNSIsIFNETUFfRklMVEVSX1BBUkFNKDY0KSB9LCAvKiBPTUFQMjQy MCBvbmx5ICovCi19OwotCiBzdGF0aWMgc3RydWN0IG9tYXBfZG1hX2Rldl9hdHRyIGRtYV9hdHRy ID0gewogCS5kZXZfY2FwcyA9IFJFU0VSVkVfQ0hBTk5FTCB8IERNQV9MSU5LRURfTENIIHwgR0xP QkFMX1BSSU9SSVRZIHwKIAkJICAgIElTX0NTU0FfMzIgfCBJU19DRFNBXzMyLApAQCAtMTg4LDE1 ICsxNDUsNyBAQCBzdHJ1Y3Qgb21hcF9zeXN0ZW1fZG1hX3BsYXRfaW5mbyBkbWFfcGxhdF9pbmZv ID0gewogc3RhdGljIGludCBfX2luaXQgb21hcDJfc3lzdGVtX2RtYV9pbml0KHZvaWQpCiB7CiAJ ZG1hX3BsYXRfaW5mby5lcnJhdGEgPSBjb25maWd1cmVfZG1hX2VycmF0YSgpOwotCi0JaWYgKHNv Y19pc19vbWFwMjR4eCgpKSB7Ci0JCS8qIERNQSBzbGF2ZSBtYXAgZm9yIGRyaXZlcnMgbm90IHll dCBjb252ZXJ0ZWQgdG8gRFQgKi8KLQkJZG1hX3BsYXRfaW5mby5zbGF2ZV9tYXAgPSBvbWFwMjR4 eF9zZG1hX2R0X21hcDsKLQkJZG1hX3BsYXRfaW5mby5zbGF2ZWNudCA9IEFSUkFZX1NJWkUob21h cDI0eHhfc2RtYV9kdF9tYXApOwotCX0KLQotCWlmICghc29jX2lzX29tYXAyNDJ4KCkpCi0JCWRt YV9hdHRyLmRldl9jYXBzIHw9IElTX1JXX1BSSU9SSVRZOworCWRtYV9hdHRyLmRldl9jYXBzIHw9 IElTX1JXX1BSSU9SSVRZOwogCiAJaWYgKHNvY19pc19vbWFwMzR4eCgpICYmIChvbWFwX3R5cGUo KSAhPSBPTUFQMl9ERVZJQ0VfVFlQRV9HUCkpCiAJCWRtYV9hdHRyLmRldl9jYXBzIHw9IEhTX0NI QU5ORUxTX1JFU0VSVkVEOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9mYi5jIGIv YXJjaC9hcm0vbWFjaC1vbWFwMi9mYi5jCmluZGV4IDBmOGM4ZWZlM2FlOC4uOWE0MjVjMzZmOTk2 IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2ZiLmMKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9mYi5jCkBAIC0yNywxNSArMjcsNiBAQAogICogVGhlIGZpcnN0IG1lbW9yeSByZXNv dXJjZSBpcyB0aGUgcmVnaXN0ZXIgcmVnaW9uIGZvciBWUkZCLAogICogdGhlIHJlc3QgYXJlIFZS RkIgdmlydHVhbCBtZW1vcnkgYXJlYXMgZm9yIGVhY2ggVlJGQiBjb250ZXh0LgogICovCi0KLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2Ugb21hcDJfdnJmYl9yZXNvdXJjZXNbXSA9IHsKLQlE RUZJTkVfUkVTX01FTV9OQU1FRCgweDY4MDA4MDAwdSwgMHg0MCwgInZyZmItcmVncyIpLAotCURF RklORV9SRVNfTUVNX05BTUVEKDB4NzAwMDAwMDB1LCAweDQwMDAwMDAsICJ2cmZiLWFyZWEtMCIp LAotCURFRklORV9SRVNfTUVNX05BTUVEKDB4NzQwMDAwMDB1LCAweDQwMDAwMDAsICJ2cmZiLWFy ZWEtMSIpLAotCURFRklORV9SRVNfTUVNX05BTUVEKDB4NzgwMDAwMDB1LCAweDQwMDAwMDAsICJ2 cmZiLWFyZWEtMiIpLAotCURFRklORV9SRVNfTUVNX05BTUVEKDB4N2MwMDAwMDB1LCAweDQwMDAw MDAsICJ2cmZiLWFyZWEtMyIpLAotfTsKLQogc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZSBv bWFwM192cmZiX3Jlc291cmNlc1tdID0gewogCURFRklORV9SRVNfTUVNX05BTUVEKDB4NkMwMDAx ODB1LCAweGMwLCAidnJmYi1yZWdzIiksCiAJREVGSU5FX1JFU19NRU1fTkFNRUQoMHg3MDAwMDAw MHUsIDB4NDAwMDAwMCwgInZyZmItYXJlYS0wIiksCkBAIC01OCwxMCArNDksNyBAQCBpbnQgX19p bml0IG9tYXBfaW5pdF92cmZiKHZvaWQpCiAJY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXM7CiAJ dW5zaWduZWQgaW50IG51bV9yZXM7CiAKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJcmVz ID0gb21hcDJfdnJmYl9yZXNvdXJjZXM7Ci0JCW51bV9yZXMgPSBBUlJBWV9TSVpFKG9tYXAyX3Zy ZmJfcmVzb3VyY2VzKTsKLQl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CisJaWYgKGNw dV9pc19vbWFwMzR4eCgpKSB7CiAJCXJlcyA9IG9tYXAzX3ZyZmJfcmVzb3VyY2VzOwogCQludW1f cmVzID0gQVJSQVlfU0laRShvbWFwM192cmZiX3Jlc291cmNlcyk7CiAJfSBlbHNlIHsKZGlmZiAt LWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvZ3BtYy5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9n cG1jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNjBmMWI1YzI3ZC4uMDAwMDAw MDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvZ3BtYy5oCisrKyAvZGV2L251bGwKQEAg LTEsMTAgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAq LwotLyoKLSAqIEdlbmVyYWwtUHVycG9zZSBNZW1vcnkgQ29udHJvbGxlciBmb3IgT01BUDIKLSAq Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiBOb2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIERv IG5vdCBpbmNsdWRlIHRoaXMgZmlsZSBpbiBhbnkgbmV3IGNvZGUsIHRoaXMgd2lsbCBnZXQgcmVt b3ZlZAotICogb25jZSBvbWFwMyBib290cyBpbiBkZXZpY2UgdHJlZSBvbmx5IG1vZGUuCi0gKi8K LSNpbmNsdWRlIDxsaW51eC9vbWFwLWdwbWMuaD4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gt b21hcDIvaTJjLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jCmluZGV4IDNiNGI5NTE0ZjRm YS4uZDk1NmM3MGY4ODk5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jCisr KyBiL2FyY2gvYXJtL21hY2gtb21hcDIvaTJjLmMKQEAgLTM5LDcgKzM5LDcgQEAgaW50IG9tYXBf aTJjX3Jlc2V0KHN0cnVjdCBvbWFwX2h3bW9kICpvaCkKIAl1MTYgaTJjX2NvbjsKIAlpbnQgYyA9 IDA7CiAKLQlpZiAoc29jX2lzX29tYXAyNHh4KCkgfHwgc29jX2lzX29tYXAzNHh4KCkgfHwgc29j X2lzX2FtMzV4eCgpKQorCWlmIChzb2NfaXNfb21hcDM0eHgoKSB8fCBzb2NfaXNfYW0zNXh4KCkp CiAJCWkyY19jb24gPSBPTUFQMl9JMkNfQ09OX09GRlNFVDsKIAllbHNlCiAJCWkyY19jb24gPSBP TUFQNF9JMkNfQ09OX09GRlNFVDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvaWQu YyBiL2FyY2gvYXJtL21hY2gtb21hcDIvaWQuYwppbmRleCBjZjJiZmI0NDdlZTIuLjNlNzMxZGQy MTMxMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9pZC5jCisrKyBiL2FyY2gvYXJt L21hY2gtb21hcDIvaWQuYwpAQCAtNTUsOSArNTUsNyBAQCBpbnQgb21hcF90eXBlKHZvaWQpCiAJ aWYgKHZhbCA8IE9NQVAyX0RFVklDRVRZUEVfTUFTSykKIAkJcmV0dXJuIHZhbDsKIAotCWlmIChz b2NfaXNfb21hcDI0eHgoKSkgewotCQl2YWwgPSBvbWFwX2N0cmxfcmVhZGwoT01BUDI0WFhfQ09O VFJPTF9TVEFUVVMpOwotCX0gZWxzZSBpZiAoc29jX2lzX3RpODF4eCgpKSB7CisJaWYgKHNvY19p c190aTgxeHgoKSkgewogCQl2YWwgPSBvbWFwX2N0cmxfcmVhZGwoVEk4MVhYX0NPTlRST0xfU1RB VFVTKTsKIAl9IGVsc2UgaWYgKHNvY19pc19hbTMzeHgoKSB8fCBzb2NfaXNfYW00M3h4KCkpIHsK IAkJdmFsID0gb21hcF9jdHJsX3JlYWRsKEFNMzNYWF9DT05UUk9MX1NUQVRVUyk7CkBAIC05OSwy MiArOTcsNiBAQCBFWFBPUlRfU1lNQk9MKG9tYXBfdHlwZSk7CiAKICNkZWZpbmUgcmVhZF90YXBf cmVnKHJlZykJcmVhZGxfcmVsYXhlZCh0YXBfYmFzZSAgKyAocmVnKSkKIAotc3RydWN0IG9tYXBf aWQgewotCXUxNgloYXdrZXllOwkvKiBTaWxpY29uIHR5cGUgKEhhd2tleWUgaWQpICovCi0JdTgJ ZGV2OwkJLyogRGV2aWNlIHR5cGUgZnJvbSBwcm9kdWN0aW9uX2lkIHJlZyAqLwotCXUzMgl0eXBl OwkJLyogQ29tYmluZWQgdHlwZSBpZCBjb3BpZWQgdG8gb21hcF9yZXZpc2lvbiAqLwotfTsKLQot LyogUmVnaXN0ZXIgdmFsdWVzIHRvIGRldGVjdCB0aGUgT01BUCB2ZXJzaW9uICovCi1zdGF0aWMg c3RydWN0IG9tYXBfaWQgb21hcF9pZHNbXSBfX2luaXRkYXRhID0gewotCXsgLmhhd2tleWUgPSAw eGI1ZDksIC5kZXYgPSAweDAsIC50eXBlID0gMHgyNDIwMDAyNCB9LAotCXsgLmhhd2tleWUgPSAw eGI1ZDksIC5kZXYgPSAweDEsIC50eXBlID0gMHgyNDIwMTAyNCB9LAotCXsgLmhhd2tleWUgPSAw eGI1ZDksIC5kZXYgPSAweDIsIC50eXBlID0gMHgyNDIwMjAyNCB9LAotCXsgLmhhd2tleWUgPSAw eGI1ZDksIC5kZXYgPSAweDQsIC50eXBlID0gMHgyNDIyMDAyNCB9LAotCXsgLmhhd2tleWUgPSAw eGI1ZDksIC5kZXYgPSAweDgsIC50eXBlID0gMHgyNDIzMDAyNCB9LAotCXsgLmhhd2tleWUgPSAw eGI2OGEsIC5kZXYgPSAweDAsIC50eXBlID0gMHgyNDMwMDAyNCB9LAotfTsKLQogc3RhdGljIHZv aWQgX19pb21lbSAqdGFwX2Jhc2U7CiBzdGF0aWMgdTE2IHRhcF9wcm9kX2lkOwogCkBAIC0xNDUs NjIgKzEyNyw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG9tYXBfZmVlZF9yYW5kcG9vbCh2b2lkKQog fQogb21hcF9kZXZpY2VfaW5pdGNhbGwob21hcF9mZWVkX3JhbmRwb29sKTsKIAotdm9pZCBfX2lu aXQgb21hcDJ4eHhfY2hlY2tfcmV2aXNpb24odm9pZCkKLXsKLQlpbnQgaSwgajsKLQl1MzIgaWRj b2RlLCBwcm9kX2lkOwotCXUxNiBoYXdrZXllOwotCXU4ICBkZXZfdHlwZSwgcmV2OwotCXN0cnVj dCBvbWFwX2RpZV9pZCBvZGk7Ci0KLQlpZGNvZGUgPSByZWFkX3RhcF9yZWcoT01BUF9UQVBfSURD T0RFKTsKLQlwcm9kX2lkID0gcmVhZF90YXBfcmVnKHRhcF9wcm9kX2lkKTsKLQloYXdrZXllID0g KGlkY29kZSA+PiAxMikgJiAweGZmZmY7Ci0JcmV2ID0gKGlkY29kZSA+PiAyOCkgJiAweDBmOwot CWRldl90eXBlID0gKHByb2RfaWQgPj4gMTYpICYgMHgwZjsKLQlvbWFwX2dldF9kaWVfaWQoJm9k aSk7Ci0KLQlwcl9kZWJ1ZygiT01BUF9UQVBfSURDT0RFIDB4JTA4eCBSRVYgJWkgSEFXS0VZRSAw eCUwNHggTUFORiAlMDN4XG4iLAotCQkgaWRjb2RlLCByZXYsIGhhd2tleWUsIChpZGNvZGUgPj4g MSkgJiAweDdmZik7Ci0JcHJfZGVidWcoIk9NQVBfVEFQX0RJRV9JRF8wOiAweCUwOHhcbiIsIG9k aS5pZF8wKTsKLQlwcl9kZWJ1ZygiT01BUF9UQVBfRElFX0lEXzE6IDB4JTA4eCBERVZfUkVWOiAl aVxuIiwKLQkJIG9kaS5pZF8xLCAob2RpLmlkXzEgPj4gMjgpICYgMHhmKTsKLQlwcl9kZWJ1Zygi T01BUF9UQVBfRElFX0lEXzI6IDB4JTA4eFxuIiwgb2RpLmlkXzIpOwotCXByX2RlYnVnKCJPTUFQ X1RBUF9ESUVfSURfMzogMHglMDh4XG4iLCBvZGkuaWRfMyk7Ci0JcHJfZGVidWcoIk9NQVBfVEFQ X1BST0RfSURfMDogMHglMDh4IERFVl9UWVBFOiAlaVxuIiwKLQkJIHByb2RfaWQsIGRldl90eXBl KTsKLQotCS8qIENoZWNrIGhhd2tleWUgaWRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJ WkUob21hcF9pZHMpOyBpKyspIHsKLQkJaWYgKGhhd2tleWUgPT0gb21hcF9pZHNbaV0uaGF3a2V5 ZSkKLQkJCWJyZWFrOwotCX0KLQotCWlmIChpID09IEFSUkFZX1NJWkUob21hcF9pZHMpKSB7Ci0J CXByaW50ayhLRVJOX0VSUiAiVW5rbm93biBPTUFQIENQVSBpZFxuIik7Ci0JCXJldHVybjsKLQl9 Ci0KLQlmb3IgKGogPSBpOyBqIDwgQVJSQVlfU0laRShvbWFwX2lkcyk7IGorKykgewotCQlpZiAo ZGV2X3R5cGUgPT0gb21hcF9pZHNbal0uZGV2KQotCQkJYnJlYWs7Ci0JfQotCi0JaWYgKGogPT0g QVJSQVlfU0laRShvbWFwX2lkcykpIHsKLQkJcHJfZXJyKCJVbmtub3duIE9NQVAgZGV2aWNlIHR5 cGUuIEhhbmRsaW5nIGl0IGFzIE9NQVAlMDR4XG4iLAotCQkgICAgICAgb21hcF9pZHNbaV0udHlw ZSA+PiAxNik7Ci0JCWogPSBpOwotCX0KLQotCXNwcmludGYoc29jX25hbWUsICJPTUFQJTA0eCIs IG9tYXBfcmV2KCkgPj4gMTYpOwotCXNwcmludGYoc29jX3JldiwgIkVTJXgiLCAob21hcF9yZXYo KSA+PiAxMikgJiAweGYpOwotCi0JcHJfaW5mbygiJXMiLCBzb2NfbmFtZSk7Ci0JaWYgKChvbWFw X3JldigpID4+IDgpICYgMHgwZikKLQkJcHJfY29udCgiJXMiLCBzb2NfcmV2KTsKLQlwcl9jb250 KCJcbiIpOwotfQotCiAjZGVmaW5lIE9NQVAzX1NIT1dfRkVBVFVSRShmZWF0KQkJXAogCWlmIChv bWFwM19oYXNfICMjZmVhdCgpKQkJXAogCQluICs9IHNjbnByaW50ZihidWYgKyBuLCBzaXplb2Yo YnVmKSAtIG4sICNmZWF0ICIgIik7CkBAIC03NTAsOSArNjc2LDcgQEAgc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBvbWFwX3R5cGVzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyICogX19pbml0 IG9tYXBfZ2V0X2ZhbWlseSh2b2lkKQogewotCWlmIChzb2NfaXNfb21hcDI0eHgoKSkKLQkJcmV0 dXJuIGthc3ByaW50ZihHRlBfS0VSTkVMLCAiT01BUDIiKTsKLQllbHNlIGlmIChzb2NfaXNfb21h cDM0eHgoKSkKKwlpZiAoc29jX2lzX29tYXAzNHh4KCkpCiAJCXJldHVybiBrYXNwcmludGYoR0ZQ X0tFUk5FTCwgIk9NQVAzIik7CiAJZWxzZSBpZiAoc29jX2lzX29tYXA0NHh4KCkpCiAJCXJldHVy biBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIk9NQVA0Iik7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9t YWNoLW9tYXAyL2lvLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2lvLmMKaW5kZXggMTRlYzNmNzgw MDBiLi4xYzk0NWJlNWU3Y2MgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvaW8uYwor KysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2lvLmMKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRl ICJzZHJjLmgiCiAjaW5jbHVkZSAiY29udHJvbC5oIgogI2luY2x1ZGUgInNyYW0uaCIKLSNpbmNs dWRlICJjbTJ4eHguaCIKICNpbmNsdWRlICJjbTN4eHguaCIKICNpbmNsdWRlICJjbTMzeHguaCIK ICNpbmNsdWRlICJjbTQ0eHguaCIKQEAgLTQzLDExICs0Miw5IEBACiAjaW5jbHVkZSAiY20uaCIK ICNpbmNsdWRlICJwcmNtX21wdTQ0eHguaCIKICNpbmNsdWRlICJwcm1pbnN0NDR4eC5oIgotI2lu Y2x1ZGUgInBybTJ4eHguaCIKICNpbmNsdWRlICJwcm0zeHh4LmgiCiAjaW5jbHVkZSAicHJtMzN4 eC5oIgogI2luY2x1ZGUgInBybTQ0eHguaCIKLSNpbmNsdWRlICJvcHAyeHh4LmgiCiAjaW5jbHVk ZSAib21hcC1zZWN1cmUuaCIKIAogLyoKQEAgLTYxLDc2ICs1OCw2IEBAIHN0YXRpYyBpbnQgKCpv bWFwX2Nsa19zb2NfaW5pdCkodm9pZCk7CiAgKiBkZWZhdWx0IG1hcHBpbmcgcHJvdmlkZWQgaGVy ZS4KICAqLwogCi0jaWYgZGVmaW5lZChDT05GSUdfU09DX09NQVAyNDIwKSB8fCBkZWZpbmVkKENP TkZJR19TT0NfT01BUDI0MzApCi1zdGF0aWMgc3RydWN0IG1hcF9kZXNjIG9tYXAyNHh4X2lvX2Rl c2NbXSBfX2luaXRkYXRhID0gewotCXsKLQkJLnZpcnR1YWwJPSBMM18yNFhYX1ZJUlQsCi0JCS5w Zm4JCT0gX19waHlzX3RvX3BmbihMM18yNFhYX1BIWVMpLAotCQkubGVuZ3RoCQk9IEwzXzI0WFhf U0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCi0JfSwKLQl7Ci0JCS52aXJ0dWFsCT0gTDRfMjRY WF9WSVJULAotCQkucGZuCQk9IF9fcGh5c190b19wZm4oTDRfMjRYWF9QSFlTKSwKLQkJLmxlbmd0 aAkJPSBMNF8yNFhYX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi19OwotCi0jaWZk ZWYgQ09ORklHX1NPQ19PTUFQMjQyMAotc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBvbWFwMjQyeF9p b19kZXNjW10gX19pbml0ZGF0YSA9IHsKLQl7Ci0JCS52aXJ0dWFsCT0gRFNQX01FTV8yNDIwX1ZJ UlQsCi0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihEU1BfTUVNXzI0MjBfUEhZUyksCi0JCS5sZW5n dGgJCT0gRFNQX01FTV8yNDIwX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi0Jewot CQkudmlydHVhbAk9IERTUF9JUElfMjQyMF9WSVJULAotCQkucGZuCQk9IF9fcGh5c190b19wZm4o RFNQX0lQSV8yNDIwX1BIWVMpLAotCQkubGVuZ3RoCQk9IERTUF9JUElfMjQyMF9TSVpFLAotCQku dHlwZQkJPSBNVF9ERVZJQ0UKLQl9LAotCXsKLQkJLnZpcnR1YWwJPSBEU1BfTU1VXzI0MjBfVklS VCwKLQkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKERTUF9NTVVfMjQyMF9QSFlTKSwKLQkJLmxlbmd0 aAkJPSBEU1BfTU1VXzI0MjBfU0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCi0JfSwKLX07Ci0K LSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1NPQ19PTUFQMjQzMAotc3RhdGljIHN0cnVjdCBtYXBf ZGVzYyBvbWFwMjQzeF9pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKLQl7Ci0JCS52aXJ0dWFsCT0g TDRfV0tfMjQzWF9WSVJULAotCQkucGZuCQk9IF9fcGh5c190b19wZm4oTDRfV0tfMjQzWF9QSFlT KSwKLQkJLmxlbmd0aAkJPSBMNF9XS18yNDNYX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQot CX0sCi0JewotCQkudmlydHVhbAk9IE9NQVAyNDNYX0dQTUNfVklSVCwKLQkJLnBmbgkJPSBfX3Bo eXNfdG9fcGZuKE9NQVAyNDNYX0dQTUNfUEhZUyksCi0JCS5sZW5ndGgJCT0gT01BUDI0M1hfR1BN Q19TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9LAotCXsKLQkJLnZpcnR1YWwJPSBPTUFQ MjQzWF9TRFJDX1ZJUlQsCi0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihPTUFQMjQzWF9TRFJDX1BI WVMpLAotCQkubGVuZ3RoCQk9IE9NQVAyNDNYX1NEUkNfU0laRSwKLQkJLnR5cGUJCT0gTVRfREVW SUNFCi0JfSwKLQl7Ci0JCS52aXJ0dWFsCT0gT01BUDI0M1hfU01TX1ZJUlQsCi0JCS5wZm4JCT0g X19waHlzX3RvX3BmbihPTUFQMjQzWF9TTVNfUEhZUyksCi0JCS5sZW5ndGgJCT0gT01BUDI0M1hf U01TX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi19OwotI2VuZGlmCi0jZW5kaWYK LQogI2lmZGVmCUNPTkZJR19BUkNIX09NQVAzCiBzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG9tYXAz NHh4X2lvX2Rlc2NbXSBfX2luaXRkYXRhID0gewogCXsKQEAgLTMwNSwyMiArMjMyLDYgQEAgc3Rh dGljIHN0cnVjdCBtYXBfZGVzYyBkcmE3eHhfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CiB9Owog I2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfU09DX09NQVAyNDIwCi12b2lkIF9faW5pdCBvbWFwMjQy eF9tYXBfaW8odm9pZCkKLXsKLQlpb3RhYmxlX2luaXQob21hcDI0eHhfaW9fZGVzYywgQVJSQVlf U0laRShvbWFwMjR4eF9pb19kZXNjKSk7Ci0JaW90YWJsZV9pbml0KG9tYXAyNDJ4X2lvX2Rlc2Ms IEFSUkFZX1NJWkUob21hcDI0MnhfaW9fZGVzYykpOwotfQotI2VuZGlmCi0KLSNpZmRlZiBDT05G SUdfU09DX09NQVAyNDMwCi12b2lkIF9faW5pdCBvbWFwMjQzeF9tYXBfaW8odm9pZCkKLXsKLQlp b3RhYmxlX2luaXQob21hcDI0eHhfaW9fZGVzYywgQVJSQVlfU0laRShvbWFwMjR4eF9pb19kZXNj KSk7Ci0JaW90YWJsZV9pbml0KG9tYXAyNDN4X2lvX2Rlc2MsIEFSUkFZX1NJWkUob21hcDI0M3hf aW9fZGVzYykpOwotfQotI2VuZGlmCi0KICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogdm9pZCBf X2luaXQgb21hcDNfbWFwX2lvKHZvaWQpCiB7CkBAIC0zNjUsNiArMjc2LDggQEAgdm9pZCBfX2lu aXQgZHJhN3h4X21hcF9pbyh2b2lkKQogCW9tYXBfYmFycmllcnNfaW5pdCgpOwogfQogI2VuZGlm CisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogLyoKICAqIG9tYXAyX2luaXRfcmVwcm9ncmFt X3NkcmMgLSByZXByb2dyYW0gU0RSQyB0aW1pbmcgcGFyYW1ldGVycwogICoKQEAgLTM5OSw3ICsz MTIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBfb21hcDJfaW5pdF9yZXByb2dyYW1fc2RyYyh2b2lk KQogCXJldHVybiB2OwogfQogCi0jaWZkZWYgQ09ORklHX09NQVBfSFdNT0QKIHN0YXRpYyBpbnQg X3NldF9od21vZF9wb3N0c2V0dXBfc3RhdGUoc3RydWN0IG9tYXBfaHdtb2QgKm9oLCB2b2lkICpk YXRhKQogewogCXJldHVybiBvbWFwX2h3bW9kX3NldF9wb3N0c2V0dXBfc3RhdGUob2gsICoodTgg KilkYXRhKTsKQEAgLTQxMiw1NSArMzI0LDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBfX21heWJl X3VudXNlZCBvbWFwX2h3bW9kX2luaXRfcG9zdHNldHVwKHZvaWQpCiAJLyogU2V0IHRoZSBkZWZh dWx0IHBvc3RzZXR1cCBzdGF0ZSBmb3IgYWxsIGh3bW9kcyAqLwogCW9tYXBfaHdtb2RfZm9yX2Vh Y2goX3NldF9od21vZF9wb3N0c2V0dXBfc3RhdGUsICZwb3N0c2V0dXBfc3RhdGUpOwogfQotI2Vs c2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBvbWFwX2h3bW9kX2luaXRfcG9zdHNldHVwKHZvaWQpCi17 Ci19Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19TT0NfT01BUDI0MjAKLXZvaWQgX19pbml0IG9t YXAyNDIwX2luaXRfZWFybHkodm9pZCkKLXsKLQlvbWFwMl9zZXRfZ2xvYmFsc190YXAoT01BUDI0 MlhfQ0xBU1MsIE9NQVAyX0w0X0lPX0FERFJFU1MoMHg0ODAxNDAwMCkpOwotCW9tYXAyX3NldF9n bG9iYWxzX3NkcmMoT01BUDJfTDNfSU9fQUREUkVTUyhPTUFQMjQyMF9TRFJDX0JBU0UpLAotCQkJ ICAgICAgIE9NQVAyX0wzX0lPX0FERFJFU1MoT01BUDI0MjBfU01TX0JBU0UpKTsKLQlvbWFwMl9j b250cm9sX2Jhc2VfaW5pdCgpOwotCW9tYXAyeHh4X2NoZWNrX3JldmlzaW9uKCk7Ci0Jb21hcDJf cHJjbV9iYXNlX2luaXQoKTsKLQlvbWFwMnh4eF92b2x0YWdlZG9tYWluc19pbml0KCk7Ci0Jb21h cDI0MnhfcG93ZXJkb21haW5zX2luaXQoKTsKLQlvbWFwMjQyeF9jbG9ja2RvbWFpbnNfaW5pdCgp OwotCW9tYXAyNDIwX2h3bW9kX2luaXQoKTsKLQlvbWFwX2h3bW9kX2luaXRfcG9zdHNldHVwKCk7 Ci0Jb21hcF9jbGtfc29jX2luaXQgPSBvbWFwMjQyMF9kdF9jbGtfaW5pdDsKLQlyYXRlX3RhYmxl ID0gb21hcDI0MjBfcmF0ZV90YWJsZTsKLX0KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1NPQ19P TUFQMjQzMAotdm9pZCBfX2luaXQgb21hcDI0MzBfaW5pdF9lYXJseSh2b2lkKQotewotCW9tYXAy X3NldF9nbG9iYWxzX3RhcChPTUFQMjQzWF9DTEFTUywgT01BUDJfTDRfSU9fQUREUkVTUygweDQ5 MDBhMDAwKSk7Ci0Jb21hcDJfc2V0X2dsb2JhbHNfc2RyYyhPTUFQMl9MM19JT19BRERSRVNTKE9N QVAyNDNYX1NEUkNfQkFTRSksCi0JCQkgICAgICAgT01BUDJfTDNfSU9fQUREUkVTUyhPTUFQMjQz WF9TTVNfQkFTRSkpOwotCW9tYXAyX2NvbnRyb2xfYmFzZV9pbml0KCk7Ci0Jb21hcDJ4eHhfY2hl Y2tfcmV2aXNpb24oKTsKLQlvbWFwMl9wcmNtX2Jhc2VfaW5pdCgpOwotCW9tYXAyeHh4X3ZvbHRh Z2Vkb21haW5zX2luaXQoKTsKLQlvbWFwMjQzeF9wb3dlcmRvbWFpbnNfaW5pdCgpOwotCW9tYXAy NDN4X2Nsb2NrZG9tYWluc19pbml0KCk7Ci0Jb21hcDI0MzBfaHdtb2RfaW5pdCgpOwotCW9tYXBf aHdtb2RfaW5pdF9wb3N0c2V0dXAoKTsKLQlvbWFwX2Nsa19zb2NfaW5pdCA9IG9tYXAyNDMwX2R0 X2Nsa19pbml0OwotCXJhdGVfdGFibGUgPSBvbWFwMjQzMF9yYXRlX3RhYmxlOwotfQotI2VuZGlm CiAKIC8qCiAgKiBDdXJyZW50bHkgb25seSBib2FyZC1vbWFwM2JlYWdsZS5jIHNob3VsZCBjYWxs IHRoaXMgYmVjYXVzZSBvZiB0aGUKICAqIHNhbWUgbWFjaGluZV9pZCBmb3IgMzR4eCBhbmQgMzZ4 eCBiZWFnbGUuLiBXaWxsIGdldCBmaXhlZCB3aXRoIERULgogICovCi0jaWZkZWYgQ09ORklHX0FS Q0hfT01BUDMKIHN0YXRpYyB2b2lkIF9faW5pdCBvbWFwM19pbml0X2Vhcmx5KHZvaWQpCiB7CiAJ b21hcDJfc2V0X2dsb2JhbHNfdGFwKE9NQVAzNDNYX0NMQVNTLCBPTUFQMl9MNF9JT19BRERSRVNT KDB4NDgzMEEwMDApKTsKQEAgLTY2MSwxNiArNTI5LDE4IEBAIHZvaWQgX19pbml0IGRyYTd4eF9p bml0X2xhdGUodm9pZCkKICNlbmRpZgogCiAKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogdm9p ZCBfX2luaXQgb21hcF9zZHJjX2luaXQoc3RydWN0IG9tYXBfc2RyY19wYXJhbXMgKnNkcmNfY3Mw LAogCQkJCSAgICAgIHN0cnVjdCBvbWFwX3NkcmNfcGFyYW1zICpzZHJjX2NzMSkKIHsKIAlvbWFw X3NyYW1faW5pdCgpOwogCi0JaWYgKGNwdV9pc19vbWFwMjR4eCgpIHx8IG9tYXAzX2hhc19zZHJj KCkpIHsKKwlpZiAob21hcDNfaGFzX3NkcmMoKSkgewogCQlvbWFwMl9zZHJjX2luaXQoc2RyY19j czAsIHNkcmNfY3MxKTsKIAkJX29tYXAyX2luaXRfcmVwcm9ncmFtX3NkcmMoKTsKIAl9CiB9Cisj ZW5kaWYKIAogaW50IF9faW5pdCBvbWFwX2Nsa19pbml0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLW9tYXAyL2lvbWFwLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2lvbWFwLmgK aW5kZXggNjE5MWQyNDQ0MzhhLi40MDM0NDRiYjY5MjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21h Y2gtb21hcDIvaW9tYXAuaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2lvbWFwLmgKQEAgLTQ4 LDUyICs0OCw2IEBACiAjZGVmaW5lIE9NQVAyX0VNVV9JT19PRkZTRVQJCTB4YWE4MDAwMDAJLyog RW11bGF0aW9uICovCiAjZGVmaW5lIE9NQVAyX0VNVV9JT19BRERSRVNTKHBhKQlJT01FTSgocGEp ICsgT01BUDJfRU1VX0lPX09GRlNFVCkKIAotLyoKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAq IE9tYXAyIHNwZWNpZmljIElPIG1hcHBpbmcKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqLwot Ci0vKiBXZSBtYXAgYm90aCBMMyBhbmQgTDQgb24gT01BUDIgKi8KLSNkZWZpbmUgTDNfMjRYWF9Q SFlTCUwzXzI0WFhfQkFTRQkvKiAweDY4MDAwMDAwIC0tPiAweGY4MDAwMDAwKi8KLSNkZWZpbmUg TDNfMjRYWF9WSVJUCShMM18yNFhYX1BIWVMgKyBPTUFQMl9MM19JT19PRkZTRVQpCi0jZGVmaW5l IEwzXzI0WFhfU0laRQlTWl8xTQkJLyogNDRrQiBvZiAxMjhNQiB1c2VkLCB3YW50IDFNQiBzZWN0 ICovCi0jZGVmaW5lIEw0XzI0WFhfUEhZUwlMNF8yNFhYX0JBU0UJLyogMHg0ODAwMDAwMCAtLT4g MHhmYTAwMDAwMCAqLwotI2RlZmluZSBMNF8yNFhYX1ZJUlQJKEw0XzI0WFhfUEhZUyArIE9NQVAy X0w0X0lPX09GRlNFVCkKLSNkZWZpbmUgTDRfMjRYWF9TSVpFCVNaXzFNCQkvKiAxTUIgb2YgMTI4 TUIgdXNlZCwgd2FudCAxTUIgc2VjdCAqLwotCi0jZGVmaW5lIEw0X1dLXzI0M1hfUEhZUwkJTDRf V0tfMjQzWF9CQVNFCS8qIDB4NDkwMDAwMDAgLS0+IDB4ZmIwMDAwMDAgKi8KLSNkZWZpbmUgTDRf V0tfMjQzWF9WSVJUCQkoTDRfV0tfMjQzWF9QSFlTICsgT01BUDJfTDRfSU9fT0ZGU0VUKQotI2Rl ZmluZSBMNF9XS18yNDNYX1NJWkUJCVNaXzFNCi0jZGVmaW5lIE9NQVAyNDNYX0dQTUNfUEhZUwlP TUFQMjQzWF9HUE1DX0JBU0UKLSNkZWZpbmUgT01BUDI0M1hfR1BNQ19WSVJUCShPTUFQMjQzWF9H UE1DX1BIWVMgKyBPTUFQMl9MM19JT19PRkZTRVQpCi0JCQkJCQkvKiAweDZlMDAwMDAwIC0tPiAw eGZlMDAwMDAwICovCi0jZGVmaW5lIE9NQVAyNDNYX0dQTUNfU0laRQlTWl8xTQotI2RlZmluZSBP TUFQMjQzWF9TRFJDX1BIWVMJT01BUDI0M1hfU0RSQ19CQVNFCi0JCQkJCQkvKiAweDZEMDAwMDAw IC0tPiAweGZkMDAwMDAwICovCi0jZGVmaW5lIE9NQVAyNDNYX1NEUkNfVklSVAkoT01BUDI0M1hf U0RSQ19QSFlTICsgT01BUDJfTDNfSU9fT0ZGU0VUKQotI2RlZmluZSBPTUFQMjQzWF9TRFJDX1NJ WkUJU1pfMU0KLSNkZWZpbmUgT01BUDI0M1hfU01TX1BIWVMJT01BUDI0M1hfU01TX0JBU0UKLQkJ CQkJCS8qIDB4NmMwMDAwMDAgLS0+IDB4ZmMwMDAwMDAgKi8KLSNkZWZpbmUgT01BUDI0M1hfU01T X1ZJUlQJKE9NQVAyNDNYX1NNU19QSFlTICsgT01BUDJfTDNfSU9fT0ZGU0VUKQotI2RlZmluZSBP TUFQMjQzWF9TTVNfU0laRQlTWl8xTQotCi0vKiAyNDIwIElWQSAqLwotI2RlZmluZSBEU1BfTUVN XzI0MjBfUEhZUwlPTUFQMjQyMF9EU1BfTUVNX0JBU0UKLQkJCQkJCS8qIDB4NTgwMDAwMDAgLS0+ IDB4ZmMxMDAwMDAgKi8KLSNkZWZpbmUgRFNQX01FTV8yNDIwX1ZJUlQJMHhmYzEwMDAwMAotI2Rl ZmluZSBEU1BfTUVNXzI0MjBfU0laRQkweDI4MDAwCi0jZGVmaW5lIERTUF9JUElfMjQyMF9QSFlT CU9NQVAyNDIwX0RTUF9JUElfQkFTRQotCQkJCQkJLyogMHg1OTAwMDAwMCAtLT4gMHhmYzEyODAw MCAqLwotI2RlZmluZSBEU1BfSVBJXzI0MjBfVklSVAkweGZjMTI4MDAwCi0jZGVmaW5lIERTUF9J UElfMjQyMF9TSVpFCVNaXzRLCi0jZGVmaW5lIERTUF9NTVVfMjQyMF9QSFlTCU9NQVAyNDIwX0RT UF9NTVVfQkFTRQotCQkJCQkJLyogMHg1YTAwMDAwMCAtLT4gMHhmYzEyOTAwMCAqLwotI2RlZmlu ZSBEU1BfTU1VXzI0MjBfVklSVAkweGZjMTI5MDAwCi0jZGVmaW5lIERTUF9NTVVfMjQyMF9TSVpF CVNaXzRLCi0KLS8qIDI0MzAgSVZBMi4xIC0gY3VycmVudGx5IHVubWFwcGVkICovCi0KIC8qCiAg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBPbWFwMyBzcGVjaWZpYyBJTyBtYXBwaW5nCmRpZmYg LS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2wzXzJ4eHguaCBiL2FyY2gvYXJtL21hY2gtb21h cDIvbDNfMnh4eC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Mjk3YzYyNDI4YWMu LjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2wzXzJ4eHguaAorKysgL2Rl di9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wLW9yLWxhdGVyICovCi0vKgotICogYXJjaC9hcm0vcGxhdC1vbWFwL2luY2x1ZGUvcGxhdC9s M18yeHh4LmggLSBMMyBmaXJld2FsbCBkZWZpbml0aW9ucwotICoKLSAqIENvcHlyaWdodCAoQykg MjAxMCBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgLSBodHRwczovL3d3dy50aS5jb20v Ci0gKglTdW1pdCBTZW13YWwKLSAqLwotI2lmbmRlZiBfX0FSQ0hfQVJNX1BMQVRfT01BUF9JTkNM VURFX1BMQVRfTDNfMlhYWF9ICi0jZGVmaW5lIF9fQVJDSF9BUk1fUExBVF9PTUFQX0lOQ0xVREVf UExBVF9MM18yWFhYX0gKLQotLyogTDMgQ09OTklEcyAqLwotLyogRGlzcGxheSBTdWIgc3lzdGVt IChEU1MpICovCi0jZGVmaW5lIE9NQVAyX0wzX0NPUkVfRldfQ09OTklEX0RTUwkJCTgKLQotI2Vu ZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2w0XzJ4eHguaCBiL2FyY2gvYXJt L21hY2gtb21hcDIvbDRfMnh4eC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MThl MTA3MmQ3MzAuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2w0XzJ4eHgu aAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCi0vKgotICogYXJjaC9hcm0vcGxhdC1vbWFwL2luY2x1 ZGUvcGxhdC9sNF8yeHh4LmggLSBMNCBmaXJld2FsbCBkZWZpbml0aW9ucwotICoKLSAqIENvcHly aWdodCAoQykgMjAxMCBUZXhhcyBJbnN0cnVtZW50cyBJbmNvcnBvcmF0ZWQgLSBodHRwczovL3d3 dy50aS5jb20vCi0gKglTdW1pdCBTZW13YWwKLSAqLwotI2lmbmRlZiBfX0FSQ0hfQVJNX1BMQVRf T01BUF9JTkNMVURFX1BMQVRfTDRfMlhYWF9ICi0jZGVmaW5lIF9fQVJDSF9BUk1fUExBVF9PTUFQ X0lOQ0xVREVfUExBVF9MNF8yWFhYX0gKLQotLyogTDQgQ09SRSAqLwotLyogRGlzcGxheSBTdWIg c3lzdGVtIChEU1MpICovCi0jZGVmaW5lIE9NQVAyNDIwX0w0X0NPUkVfRldfRFNTX0NPUkVfUkVH SU9OCQkJMjgKLSNkZWZpbmUgT01BUDI0MjBfTDRfQ09SRV9GV19EU1NfRElTUENfUkVHSU9OCQkJ MjkKLSNkZWZpbmUgT01BUDI0MjBfTDRfQ09SRV9GV19EU1NfUkZCSV9SRUdJT04JCQkzMAotI2Rl ZmluZSBPTUFQMjQyMF9MNF9DT1JFX0ZXX0RTU19WRU5DX1JFR0lPTgkJCTMxCi0jZGVmaW5lIE9N QVAyNDIwX0w0X0NPUkVfRldfRFNTX1RBX1JFR0lPTgkJCTMyCi0KLSNlbmRpZgpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9tbWMuaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvbW1jLmgK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1NTMzZTkzY2I2My4uMDAwMDAwMDAwMDAw Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvbW1jLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxOCAr MCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotCi0jZGVmaW5l IE9NQVAyNFhYX05SX01NQwkJMgotI2RlZmluZSBPTUFQMjQyMF9NTUNfU0laRQlPTUFQMV9NTUNf U0laRQotI2RlZmluZSBPTUFQMl9NTUMxX0JBU0UJCTB4NDgwOWMwMDAKLQotI2RlZmluZSBPTUFQ NF9NTUNfUkVHX09GRlNFVAkweDEwMAotCi1zdHJ1Y3Qgb21hcF9od21vZDsKLQotI2lmZGVmIENP TkZJR19TT0NfT01BUDI0MjAKLWludCBvbWFwX21zZGlfcmVzZXQoc3RydWN0IG9tYXBfaHdtb2Qg Km9oKTsKLSNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBvbWFwX21zZGlfcmVzZXQoc3RydWN0IG9t YXBfaHdtb2QgKm9oKQotewotCXJldHVybiAwOwotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNo L2FybS9tYWNoLW9tYXAyL21zZGkuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbXNkaS5jCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTJiMmZhNGU0ZjEuLjAwMDAwMDAwMDAwMAotLS0g YS9hcmNoL2FybS9tYWNoLW9tYXAyL21zZGkuYworKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAg QEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBNU0RJ IElQIGJsb2NrIHJlc2V0Ci0gKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFRleGFzIEluc3RydW1l bnRzLCBJbmMuCi0gKiBQYXVsIFdhbG1zbGV5Ci0gKgotICogWFhYIFdoYXQgYWJvdXQgcGFkIG11 eGluZz8KLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgv ZXJyLmg+Ci0KLSNpbmNsdWRlICJwcm0uaCIKLSNpbmNsdWRlICJjb21tb24uaCIKLSNpbmNsdWRl ICJjb250cm9sLmgiCi0jaW5jbHVkZSAib21hcF9od21vZC5oIgotI2luY2x1ZGUgIm9tYXBfZGV2 aWNlLmgiCi0jaW5jbHVkZSAibW1jLmgiCi0KLS8qCi0gKiBNU0RJX0NPTl9PRkZTRVQ6IG9mZnNl dCBpbiBieXRlcyBvZiB0aGUgTVNESSBJUCBibG9jaydzIENPTiByZWdpc3RlcgotICogICAgIGZy b20gdGhlIElQIGJsb2NrJ3MgYmFzZSBhZGRyZXNzCi0gKi8KLSNkZWZpbmUgTVNESV9DT05fT0ZG U0VUCQkJCTB4MGMKLQotLyogUmVnaXN0ZXIgYml0ZmllbGRzIGluIHRoZSBDT04gcmVnaXN0ZXIg Ki8KLSNkZWZpbmUgTVNESV9DT05fUE9XX01BU0sJCQlCSVQoMTEpCi0jZGVmaW5lIE1TRElfQ09O X0NMS0RfTUFTSwkJCSgweDNmIDw8IDApCi0jZGVmaW5lIE1TRElfQ09OX0NMS0RfU0hJRlQJCQkw Ci0KLS8qIE1TRElfVEFSR0VUX1JFU0VUX0NMS0Q6IGNsb2NrIGRpdmlzb3IgdG8gdXNlIHRocm91 Z2hvdXQgdGhlIHJlc2V0ICovCi0jZGVmaW5lIE1TRElfVEFSR0VUX1JFU0VUX0NMS0QJCTB4M2Zm Ci0KLS8qKgotICogb21hcF9tc2RpX3Jlc2V0IC0gcmVzZXQgdGhlIE1TREkgSVAgYmxvY2sKLSAq IEBvaDogc3RydWN0IG9tYXBfaHdtb2QgKgotICoKLSAqIFRoZSBNU0RJIElQIGJsb2NrIG9uIE9N QVAyNDIwIGhhcyB0byBoYXZlIGJvdGggdGhlIFBPVyBhbmQgQ0xLRAotICogZmllbGRzIHNldCBp bnNpZGUgaXRzIENPTiByZWdpc3RlciBmb3IgYSByZXNldCB0byBjb21wbGV0ZQotICogc3VjY2Vz c2Z1bGx5LiAgVGhpcyBpcyBub3QgZG9jdW1lbnRlZCBpbiB0aGUgVFJNLiAgRm9yIENMS0QsIHdl IHVzZQotICogdGhlIHZhbHVlIHRoYXQgcmVzdWx0cyBpbiB0aGUgbG93ZXN0IHBvc3NpYmxlIGNs b2NrIHJhdGUsIHRvIGF0dGVtcHQKLSAqIHRvIGF2b2lkIGRpc3R1cmJpbmcgYW55IGNhcmRzLgot ICovCi1pbnQgb21hcF9tc2RpX3Jlc2V0KHN0cnVjdCBvbWFwX2h3bW9kICpvaCkKLXsKLQl1MTYg diA9IDA7Ci0JaW50IGMgPSAwOwotCi0JLyogV3JpdGUgdG8gdGhlIFNPRlRSRVNFVCBiaXQgKi8K LQlvbWFwX2h3bW9kX3NvZnRyZXNldChvaCk7Ci0KLQkvKiBFbmFibGUgdGhlIE1TREkgY29yZSBh bmQgaW50ZXJuYWwgY2xvY2sgKi8KLQl2IHw9IE1TRElfQ09OX1BPV19NQVNLOwotCXYgfD0gTVNE SV9UQVJHRVRfUkVTRVRfQ0xLRCA8PCBNU0RJX0NPTl9DTEtEX1NISUZUOwotCW9tYXBfaHdtb2Rf d3JpdGUodiwgb2gsIE1TRElfQ09OX09GRlNFVCk7Ci0KLQkvKiBQb2xsIG9uIFJFU0VURE9ORSBi aXQgKi8KLQlvbWFwX3Rlc3RfdGltZW91dCgob21hcF9od21vZF9yZWFkKG9oLCBvaC0+Y2xhc3Mt PnN5c2MtPnN5c3Nfb2ZmcykKLQkJCSAgICYgU1lTU19SRVNFVERPTkVfTUFTSyksCi0JCQkgIE1B WF9NT0RVTEVfU09GVFJFU0VUX1dBSVQsIGMpOwotCi0JaWYgKGMgPT0gTUFYX01PRFVMRV9TT0ZU UkVTRVRfV0FJVCkKLQkJcHJfd2FybigiJXM6ICVzOiBzb2Z0cmVzZXQgZmFpbGVkICh3YWl0ZWQg JWQgdXNlYylcbiIsCi0JCQlfX2Z1bmNfXywgb2gtPm5hbWUsIE1BWF9NT0RVTEVfU09GVFJFU0VU X1dBSVQpOwotCWVsc2UKLQkJcHJfZGVidWcoIiVzOiAlczogc29mdHJlc2V0IGluICVkIHVzZWNc biIsIF9fZnVuY19fLAotCQkJIG9oLT5uYW1lLCBjKTsKLQotCS8qIERpc2FibGUgdGhlIE1TREkg aW50ZXJuYWwgY2xvY2sgKi8KLQl2ICY9IH5NU0RJX0NPTl9DTEtEX01BU0s7Ci0Jb21hcF9od21v ZF93cml0ZSh2LCBvaCwgTVNESV9DT05fT0ZGU0VUKTsKLQotCXJldHVybiAwOwotfQpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwMi1yZXN0YXJ0LmMgYi9hcmNoL2FybS9tYWNo LW9tYXAyL29tYXAyLXJlc3RhcnQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRj Yzc1Yzk3ZDcwLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwMi1y ZXN0YXJ0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogb21hcDItcmVzdGFydC5jIC0gY29kZSBj b21tb24gdG8gYWxsIE9NQVAyeHh4IG1hY2hpbmVzLgotICoKLSAqIENvcHlyaWdodCAoQykgMjAx MiBUZXhhcyBJbnN0cnVtZW50cwotICogUGF1bCBXYWxtc2xleQotICovCi0jaW5jbHVkZSA8bGlu dXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Ns ay5oPgotI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0KLSNpbmNsdWRlICJzb2MuaCIKLSNpbmNsdWRl ICJjb21tb24uaCIKLSNpbmNsdWRlICJwcm0uaCIKLQotLyoKLSAqIHJlc2V0X3ZpcnRfcHJjbV9z ZXRfY2ssIHJlc2V0X3N5c19jazogcG9pbnRlcnMgdG8gdGhlIHZpcnRfcHJjbV9zZXQKLSAqIGNs b2NrIGFuZCB0aGUgc3lzX2NrLiAgVXNlZCBkdXJpbmcgdGhlIHJlc2V0IHByb2Nlc3MKLSAqLwot c3RhdGljIHN0cnVjdCBjbGsgKnJlc2V0X3ZpcnRfcHJjbV9zZXRfY2ssICpyZXNldF9zeXNfY2s7 Ci0KLS8qIFJlYm9vdCBoYW5kbGluZyAqLwotCi0vKioKLSAqIG9tYXAyeHh4X3Jlc3RhcnQgLSBT ZXQgRFBMTCB0byBieXBhc3MgbW9kZSBmb3IgcmVib290IHRvIHdvcmsKLSAqCi0gKiBTZXQgdGhl IERQTEwgdG8gYnlwYXNzIHNvIHRoYXQgcmVib290IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuICBO bwotICogcmV0dXJuIHZhbHVlLgotICovCi12b2lkIG9tYXAyeHh4X3Jlc3RhcnQoZW51bSByZWJv b3RfbW9kZSBtb2RlLCBjb25zdCBjaGFyICpjbWQpCi17Ci0JdTMyIHJhdGU7Ci0KLQlyYXRlID0g Y2xrX2dldF9yYXRlKHJlc2V0X3N5c19jayk7Ci0JY2xrX3NldF9yYXRlKHJlc2V0X3ZpcnRfcHJj bV9zZXRfY2ssIHJhdGUpOwotCi0JLyogWFhYIFNob3VsZCBzYXZlIHRoZSBjbWQgYXJndW1lbnQg Zm9yIHVzZSBhZnRlciB0aGUgcmVib290ICovCi0KLQlvbWFwX3BybV9yZXNldF9zeXN0ZW0oKTsK LX0KLQotLyoqCi0gKiBvbWFwMnh4eF9jb21tb25fbG9va191cF9jbGtzX2Zvcl9yZXNldCAtIGxv b2sgdXAgY2xvY2tzIG5lZWRlZCBmb3IgcmVzdGFydAotICoKLSAqIFNvbWUgY2xvY2tzIG5lZWQg dG8gYmUgbG9va2VkIHVwIGluIGFkdmFuY2UgZm9yIHRoZSBTb0MgcmVzdGFydAotICogb3BlcmF0 aW9uIHRvIHdvcmsgLSBzZWUgb21hcDJ4eHhfcmVzdGFydCgpLiAgUmV0dXJucyAtRUlOVkFMIHVw b24KLSAqIGVycm9yIG9yIDAgdXBvbiBzdWNjZXNzLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBv bWFwMnh4eF9jb21tb25fbG9va191cF9jbGtzX2Zvcl9yZXNldCh2b2lkKQotewotCXJlc2V0X3Zp cnRfcHJjbV9zZXRfY2sgPSBjbGtfZ2V0KE5VTEwsICJ2aXJ0X3ByY21fc2V0Iik7Ci0JaWYgKElT X0VSUihyZXNldF92aXJ0X3ByY21fc2V0X2NrKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlyZXNl dF9zeXNfY2sgPSBjbGtfZ2V0KE5VTEwsICJzeXNfY2siKTsKLQlpZiAoSVNfRVJSKHJlc2V0X3N5 c19jaykpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JcmV0dXJuIDA7Ci19Ci1vbWFwX3Bvc3Rjb3Jl X2luaXRjYWxsKG9tYXAyeHh4X2NvbW1vbl9sb29rX3VwX2Nsa3NfZm9yX3Jlc2V0KTsKZGlmZiAt LWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcDI0eHguaCBiL2FyY2gvYXJtL21hY2gtb21h cDIvb21hcDI0eHguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDllY2MwNTc4Mjky Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwMjR4eC5oCisrKyAv ZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIHByb2Nlc3Nv ciBzcGVjaWZpYyBkZWZpbml0aW9ucwotICogb2YgdGhlIFRJIE9NQVAyNFhYLgotICoKLSAqIENv cHlyaWdodCAoQykgMjAwNyBUZXhhcyBJbnN0cnVtZW50cy4KLSAqIENvcHlyaWdodCAoQykgMjAw NyBOb2tpYSBDb3Jwb3JhdGlvbi4KLSAqLwotCi0jaWZuZGVmIF9fQVNNX0FSQ0hfT01BUDJfSAot I2RlZmluZSBfX0FTTV9BUkNIX09NQVAyX0gKLQotLyoKLSAqIFBsZWFzZSBwbGFjZSBvbmx5IGJh c2UgZGVmaW5lcyBoZXJlIGFuZCBwdXQgdGhlIHJlc3QgaW4gZGV2aWNlCi0gKiBzcGVjaWZpYyBo ZWFkZXJzLiBOb3RlIGFsc28gdGhhdCBzb21lIG9mIHRoZXNlIGRlZmluZXMgYXJlIG5lZWRlZAot ICogZm9yIG9tYXAxIHRvIGNvbXBpbGUgd2l0aG91dCBhZGRpbmcgaWZkZWZzLgotICovCi0KLSNk ZWZpbmUgTDRfMjRYWF9CQVNFCQkweDQ4MDAwMDAwCi0jZGVmaW5lIEw0X1dLXzI0M1hfQkFTRQkJ MHg0OTAwMDAwMAotI2RlZmluZSBMM18yNFhYX0JBU0UJCTB4NjgwMDAwMDAKLQotLyogaW50ZXJy dXB0IGNvbnRyb2xsZXIgKi8KLSNkZWZpbmUgT01BUDI0WFhfSUNfQkFTRQkoTDRfMjRYWF9CQVNF ICsgMHhmZTAwMCkKLSNkZWZpbmUgT01BUDI0WFhfSVZBX0lOVENfQkFTRQkweDQwMDAwMDAwCi0K LSNkZWZpbmUgT01BUDI0MlhfQ1RSTF9CQVNFCUw0XzI0WFhfQkFTRQotI2RlZmluZSBPTUFQMjQy MF8zMktTWU5DVF9CQVNFCShMNF8yNFhYX0JBU0UgKyAweDQwMDApCi0jZGVmaW5lIE9NQVAyNDIw X1BSQ01fQkFTRQkoTDRfMjRYWF9CQVNFICsgMHg4MDAwKQotI2RlZmluZSBPTUFQMjQyMF9DTV9C QVNFCShMNF8yNFhYX0JBU0UgKyAweDgwMDApCi0jZGVmaW5lIE9NQVAyNDIwX1BSTV9CQVNFCU9N QVAyNDIwX0NNX0JBU0UKLSNkZWZpbmUgT01BUDI0MjBfU0RSQ19CQVNFCShMM18yNFhYX0JBU0Ug KyAweDkwMDApCi0jZGVmaW5lIE9NQVAyNDIwX1NNU19CQVNFCTB4NjgwMDgwMDAKLSNkZWZpbmUg T01BUDI0MjBfR1BNQ19CQVNFCTB4NjgwMGEwMDAKLQotI2RlZmluZSBPTUFQMjQzMF8zMktTWU5D VF9CQVNFCShMNF9XS18yNDNYX0JBU0UgKyAweDIwMDAwKQotI2RlZmluZSBPTUFQMjQzMF9QUkNN X0JBU0UJKEw0X1dLXzI0M1hfQkFTRSArIDB4NjAwMCkKLSNkZWZpbmUgT01BUDI0MzBfQ01fQkFT RQkoTDRfV0tfMjQzWF9CQVNFICsgMHg2MDAwKQotI2RlZmluZSBPTUFQMjQzMF9QUk1fQkFTRQlP TUFQMjQzMF9DTV9CQVNFCi0KLSNkZWZpbmUgT01BUDI0M1hfU01TX0JBU0UJMHg2QzAwMDAwMAot I2RlZmluZSBPTUFQMjQzWF9TRFJDX0JBU0UJMHg2RDAwMDAwMAotI2RlZmluZSBPTUFQMjQzWF9H UE1DX0JBU0UJMHg2RTAwMDAwMAotI2RlZmluZSBPTUFQMjQzWF9TQ01fQkFTRQkoTDRfV0tfMjQz WF9CQVNFICsgMHgyMDAwKQotI2RlZmluZSBPTUFQMjQzWF9DVFJMX0JBU0UJT01BUDI0M1hfU0NN X0JBU0UKLSNkZWZpbmUgT01BUDI0M1hfSFNfQkFTRQkoTDRfMjRYWF9CQVNFICsgMHgwMDBhYzAw MCkKLQotLyogRFNQIFNTICovCi0jZGVmaW5lIE9NQVAyNDIwX0RTUF9CQVNFCTB4NTgwMDAwMDAK LSNkZWZpbmUgT01BUDI0MjBfRFNQX01FTV9CQVNFCShPTUFQMjQyMF9EU1BfQkFTRSArIDB4MCkK LSNkZWZpbmUgT01BUDI0MjBfRFNQX0lQSV9CQVNFCShPTUFQMjQyMF9EU1BfQkFTRSArIDB4MTAw MDAwMCkKLSNkZWZpbmUgT01BUDI0MjBfRFNQX01NVV9CQVNFCShPTUFQMjQyMF9EU1BfQkFTRSAr IDB4MjAwMDAwMCkKLQotI2RlZmluZSBPTUFQMjQzWF9EU1BfQkFTRQkweDVDMDAwMDAwCi0jZGVm aW5lIE9NQVAyNDNYX0RTUF9NRU1fQkFTRQkoT01BUDI0M1hfRFNQX0JBU0UgKyAweDApCi0jZGVm aW5lIE9NQVAyNDNYX0RTUF9NTVVfQkFTRQkoT01BUDI0M1hfRFNQX0JBU0UgKyAweDEwMDAwMDAp Ci0KLS8qIE1haWxib3ggKi8KLSNkZWZpbmUgT01BUDI0WFhfTUFJTEJPWF9CQVNFCShMNF8yNFhY X0JBU0UgKyAweDk0MDAwKQotCi0vKiBDYW1lcmEgKi8KLSNkZWZpbmUgT01BUDI0WFhfQ0FNRVJB X0JBU0UJKEw0XzI0WFhfQkFTRSArIDB4NTIwMDApCi0KLS8qIFNlY3VyaXR5ICovCi0jZGVmaW5l IE9NQVAyNFhYX1NFQ19CQVNFCShMNF8yNFhYX0JBU0UgKyAweEEwMDAwKQotI2RlZmluZSBPTUFQ MjRYWF9TRUNfUk5HX0JBU0UJKE9NQVAyNFhYX1NFQ19CQVNFICsgMHgwMDAwKQotI2RlZmluZSBP TUFQMjRYWF9TRUNfREVTX0JBU0UJKE9NQVAyNFhYX1NFQ19CQVNFICsgMHgyMDAwKQotI2RlZmlu ZSBPTUFQMjRYWF9TRUNfU0hBMU1ENV9CQVNFIChPTUFQMjRYWF9TRUNfQkFTRSArIDB4NDAwMCkK LSNkZWZpbmUgT01BUDI0WFhfU0VDX0FFU19CQVNFCShPTUFQMjRYWF9TRUNfQkFTRSArIDB4NjAw MCkKLSNkZWZpbmUgT01BUDI0WFhfU0VDX1BLQV9CQVNFCShPTUFQMjRYWF9TRUNfQkFTRSArIDB4 ODAwMCkKLQotI2VuZGlmIC8qIF9fQVNNX0FSQ0hfT01BUDJfSCAqLwotCmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2QuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21h cF9od21vZC5jCmluZGV4IDAzY2Q1MjNkZmY4Ny4uYzkxODM5OWVhNzM1IDEwMDY0NAotLS0gYS9h cmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2QuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAy L29tYXBfaHdtb2QuYwpAQCAtMTUzLDkgKzE1Myw3IEBACiAjaW5jbHVkZSAiY29tbW9uLmgiCiAj aW5jbHVkZSAiY2xvY2tkb21haW4uaCIKICNpbmNsdWRlICJoZHExdy5oIgotI2luY2x1ZGUgIm1t Yy5oIgogI2luY2x1ZGUgInBvd2VyZG9tYWluLmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCiAjaW5j bHVkZSAiY20zeHh4LmgiCiAjaW5jbHVkZSAiY20zM3h4LmgiCiAjaW5jbHVkZSAicHJtLmgiCkBA IC0zNDY5LDEwICszNDY3LDYgQEAgc3RhdGljIGludCBvbWFwX2h3bW9kX2FsbG9jYXRlX21vZHVs ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBvbWFwX2h3bW9kICpvaCwKIAlyZXR1cm4gLUVO T01FTTsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2h3bW9kX3Jlc2V0IG9tYXAyNHh4 X3Jlc2V0X3F1aXJrc1tdID0gewotCXsgLm1hdGNoID0gIm1zZGkiLCAubGVuID0gNCwgLnJlc2V0 ID0gb21hcF9tc2RpX3Jlc2V0LCB9LAotfTsKLQogc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2h3 bW9kX3Jlc2V0IG9tYXBfcmVzZXRfcXVpcmtzW10gPSB7CiAJeyAubWF0Y2ggPSAiZHNzX2NvcmUi LCAubGVuID0gOCwgLnJlc2V0ID0gb21hcF9kc3NfcmVzZXQsIH0sCiAJeyAubWF0Y2ggPSAiaGRx MXciLCAubGVuID0gNSwgLnJlc2V0ID0gb21hcF9oZHExd19yZXNldCwgfSwKQEAgLTM1MDMsMTEg KzM0OTcsNiBAQCBzdGF0aWMgdm9pZAogb21hcF9od21vZF9pbml0X3Jlc2V0X3F1aXJrcyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBvbWFwX2h3bW9kICpvaCwKIAkJCSAgICAgY29uc3Qgc3Ry dWN0IHRpX3N5c2NfbW9kdWxlX2RhdGEgKmRhdGEpCiB7Ci0JaWYgKHNvY19pc19vbWFwMjR4eCgp KQotCQlvbWFwX2h3bW9kX2luaXRfcmVzZXRfcXVpcmsoZGV2LCBvaCwgZGF0YSwKLQkJCQkJICAg IG9tYXAyNHh4X3Jlc2V0X3F1aXJrcywKLQkJCQkJICAgIEFSUkFZX1NJWkUob21hcDI0eHhfcmVz ZXRfcXVpcmtzKSk7Ci0KIAlvbWFwX2h3bW9kX2luaXRfcmVzZXRfcXVpcmsoZGV2LCBvaCwgZGF0 YSwgb21hcF9yZXNldF9xdWlya3MsCiAJCQkJICAgIEFSUkFZX1NJWkUob21hcF9yZXNldF9xdWly a3MpKTsKIH0KQEAgLTM5MTQsMTIgKzM5MDMsNyBAQCBpbnQgb21hcF9od21vZF9zZXRfcG9zdHNl dHVwX3N0YXRlKHN0cnVjdCBvbWFwX2h3bW9kICpvaCwgdTggc3RhdGUpCiAgKi8KIHZvaWQgX19p bml0IG9tYXBfaHdtb2RfaW5pdCh2b2lkKQogewotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgewot CQlzb2Nfb3BzLndhaXRfdGFyZ2V0X3JlYWR5ID0gX29tYXAyeHh4XzN4eHhfd2FpdF90YXJnZXRf cmVhZHk7Ci0JCXNvY19vcHMuYXNzZXJ0X2hhcmRyZXNldCA9IF9vbWFwMl9hc3NlcnRfaGFyZHJl c2V0OwotCQlzb2Nfb3BzLmRlYXNzZXJ0X2hhcmRyZXNldCA9IF9vbWFwMl9kZWFzc2VydF9oYXJk cmVzZXQ7Ci0JCXNvY19vcHMuaXNfaGFyZHJlc2V0X2Fzc2VydGVkID0gX29tYXAyX2lzX2hhcmRy ZXNldF9hc3NlcnRlZDsKLQl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMzR4eCgpKSB7CisJaWYgKGNw dV9pc19vbWFwMzR4eCgpKSB7CiAJCXNvY19vcHMud2FpdF90YXJnZXRfcmVhZHkgPSBfb21hcDJ4 eHhfM3h4eF93YWl0X3RhcmdldF9yZWFkeTsKIAkJc29jX29wcy5hc3NlcnRfaGFyZHJlc2V0ID0g X29tYXAyX2Fzc2VydF9oYXJkcmVzZXQ7CiAJCXNvY19vcHMuZGVhc3NlcnRfaGFyZHJlc2V0ID0g X29tYXAyX2RlYXNzZXJ0X2hhcmRyZXNldDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21h cDIvb21hcF9od21vZC5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kLmgKaW5kZXgg ZGNhYjdhMDFjMTBlLi5iNjBjZDA5YzE5OTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21h cDIvb21hcF9od21vZC5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZC5oCkBA IC02NjMsOCArNjYzLDYgQEAgb21hcF9od21vZF9mb3JfZWFjaF9ieV9jbGFzcyhjb25zdCBjaGFy ICpjbGFzc25hbWUsCiAgKiBDaGlwIHZhcmlhbnQtc3BlY2lmaWMgaHdtb2QgaW5pdCByb3V0aW5l cyAtIFhYWCBzaG91bGQgYmUgY29udmVydGVkCiAgKiB0byB1c2UgaW5pdGNhbGxzIG9uY2UgdGhl IGluaXRpYWwgYm9vdCBvcmRlcmluZyBpcyBzdHJhaWdodGVuZWQgb3V0CiAgKi8KLWV4dGVybiBp bnQgb21hcDI0MjBfaHdtb2RfaW5pdCh2b2lkKTsKLWV4dGVybiBpbnQgb21hcDI0MzBfaHdtb2Rf aW5pdCh2b2lkKTsKIGV4dGVybiBpbnQgb21hcDN4eHhfaHdtb2RfaW5pdCh2b2lkKTsKIGV4dGVy biBpbnQgZG04MTR4X2h3bW9kX2luaXQodm9pZCk7CiBleHRlcm4gaW50IGRtODE2eF9od21vZF9p bml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0 MjBfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzI0MjBfZGF0YS5jCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmQ5ZGM5ZjA5NjIuLjAwMDAwMDAwMDAwMAot LS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMjQyMF9kYXRhLmMKKysrIC9kZXYv bnVsbApAQCAtMSw0MDIgKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb25seQotLyoKLSAqIG9tYXBfaHdtb2RfMjQyMF9kYXRhLmMgLSBoYXJkd2FyZSBtb2R1bGVz IHByZXNlbnQgb24gdGhlIE9NQVAyNDIwIGNoaXBzCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA5 LTIwMTEgTm9raWEgQ29ycG9yYXRpb24KLSAqIENvcHlyaWdodCAoQykgMjAxMiBUZXhhcyBJbnN0 cnVtZW50cywgSW5jLgotICogUGF1bCBXYWxtc2xleQotICoKLSAqIFhYWCBoYW5kbGUgY3Jvc3Ni YXIvc2hhcmVkIGxpbmsgZGlmZmVyZW5jZSBmb3IgTDM/Ci0gKiBYWFggdGhlc2Ugc2hvdWxkIGJl IG1hcmtlZCBpbml0ZGF0YSBmb3IgbXVsdGktT01BUCBrZXJuZWxzCi0gKi8KLQotI2luY2x1ZGUg PGxpbnV4L3BsYXRmb3JtX2RhdGEvaTJjLW9tYXAuaD4KLQotI2luY2x1ZGUgIm9tYXBfaHdtb2Qu aCIKLSNpbmNsdWRlICJsM18yeHh4LmgiCi0jaW5jbHVkZSAibDRfMnh4eC5oIgotCi0jaW5jbHVk ZSAib21hcF9od21vZF9jb21tb25fZGF0YS5oIgotCi0jaW5jbHVkZSAiY20tcmVnYml0cy0yNHh4 LmgiCi0jaW5jbHVkZSAicHJtLXJlZ2JpdHMtMjR4eC5oIgotI2luY2x1ZGUgImkyYy5oIgotI2lu Y2x1ZGUgIm1tYy5oIgotI2luY2x1ZGUgIndkX3RpbWVyLmgiCi0KLS8qCi0gKiBPTUFQMjQyMCBo YXJkd2FyZSBtb2R1bGUgaW50ZWdyYXRpb24gZGF0YQotICoKLSAqIEFsbCBvZiB0aGUgZGF0YSBp biB0aGlzIHNlY3Rpb24gc2hvdWxkIGJlIGF1dG9nZW5lcmF0YWJsZSBmcm9tIHRoZQotICogVEkg aGFyZHdhcmUgZGF0YWJhc2Ugb3Igb3RoZXIgdGVjaG5pY2FsIGRvY3VtZW50YXRpb24uICBEYXRh IHRoYXQKLSAqIGlzIGRyaXZlci1zcGVjaWZpYyBvciBkcml2ZXIta2VybmVsIGludGVncmF0aW9u LXNwZWNpZmljIGJlbG9uZ3MKLSAqIGVsc2V3aGVyZS4KLSAqLwotCi0vKgotICogSVAgYmxvY2tz Ci0gKi8KLQotLyogSVZBMSAoSVZBMSkgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFz cyBpdmExX2h3bW9kX2NsYXNzID0gewotCS5uYW1lCQk9ICJpdmExIiwKLX07Ci0KLXN0YXRpYyBz dHJ1Y3Qgb21hcF9od21vZF9yc3RfaW5mbyBvbWFwMjQyMF9pdmFfcmVzZXRzW10gPSB7Ci0JeyAu bmFtZSA9ICJpdmEiLCAucnN0X3NoaWZ0ID0gOCB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kIG9tYXAyNDIwX2l2YV9od21vZCA9IHsKLQkubmFtZQkJPSAiaXZhIiwKLQkuY2xhc3MJ CT0gJml2YTFfaHdtb2RfY2xhc3MsCi0JLmNsa2RtX25hbWUJPSAiaXZhMV9jbGtkbSIsCi0JLnJz dF9saW5lcwk9IG9tYXAyNDIwX2l2YV9yZXNldHMsCi0JLnJzdF9saW5lc19jbnQJPSBBUlJBWV9T SVpFKG9tYXAyNDIwX2l2YV9yZXNldHMpLAotCS5tYWluX2Nsawk9ICJpdmExX2lmY2siLAotfTsK LQotLyogRFNQICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3MgZHNwX2h3bW9kX2Ns YXNzID0gewotCS5uYW1lCQk9ICJkc3AiLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X3JzdF9pbmZvIG9tYXAyNDIwX2RzcF9yZXNldHNbXSA9IHsKLQl7IC5uYW1lID0gImxvZ2ljIiwg LnJzdF9zaGlmdCA9IDAgfSwKLQl7IC5uYW1lID0gIm1tdSIsIC5yc3Rfc2hpZnQgPSAxIH0sCi19 OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0MjBfZHNwX2h3bW9kID0gewotCS5u YW1lCQk9ICJkc3AiLAotCS5jbGFzcwkJPSAmZHNwX2h3bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1l CT0gImRzcF9jbGtkbSIsCi0JLnJzdF9saW5lcwk9IG9tYXAyNDIwX2RzcF9yZXNldHMsCi0JLnJz dF9saW5lc19jbnQJPSBBUlJBWV9TSVpFKG9tYXAyNDIwX2RzcF9yZXNldHMpLAotCS5tYWluX2Ns awk9ICJkc3BfZmNrIiwKLX07Ci0KLS8qIEkyQyBjb21tb24gKi8KLXN0YXRpYyBzdHJ1Y3Qgb21h cF9od21vZF9jbGFzc19zeXNjb25maWcgaTJjX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwMCwK LQkuc3lzY19vZmZzCT0gMHgyMCwKLQkuc3lzc19vZmZzCT0gMHgxMCwKLQkuc3lzY19mbGFncwk9 IChTWVNDX0hBU19TT0ZUUkVTRVQgfCBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5zeXNjX2Zp ZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBf aHdtb2RfY2xhc3MgaTJjX2NsYXNzID0gewotCS5uYW1lCQk9ICJpMmMiLAotCS5zeXNjCQk9ICZp MmNfc3lzYywKLQkucmVzZXQJCT0gJm9tYXBfaTJjX3Jlc2V0LAotfTsKLQotLyogSTJDMSAqLwot c3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDIwX2kyYzFfaHdtb2QgPSB7Ci0JLm5hbWUJ CT0gImkyYzEiLAotCS5tYWluX2Nsawk9ICJpMmMxX2ZjayIsCi0JLnByY20JCT0gewotCQkub21h cDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0g MSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjQyMF9TVF9JMkMxX1NISUZULAotCQl9LAot CX0sCi0JLmNsYXNzCQk9ICZpMmNfY2xhc3MsCi0JLyoKLQkgKiBGcm9tIG1hY2gtb21hcDIvcG0y NHh4LmM6ICJQdXR0aW5nIE1QVSBpbnRvIHRoZSBXRkkgc3RhdGUKLQkgKiB3aGlsZSBhIHRyYW5z ZmVyIGlzIGFjdGl2ZSBzZWVtcyB0byBjYXVzZSB0aGUgSTJDIGJsb2NrIHRvCi0JICogdGltZW91 dC4gV2h5PyBHb29kIHF1ZXN0aW9uLiIKLQkgKi8KLQkuZmxhZ3MJCT0gKEhXTU9EXzE2QklUX1JF RyB8IEhXTU9EX0JMT0NLX1dGSSksCi19OwotCi0vKiBJMkMyICovCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2Qgb21hcDI0MjBfaTJjMl9od21vZCA9IHsKLQkubmFtZQkJPSAiaTJjMiIsCi0JLm1h aW5fY2xrCT0gImkyYzJfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1 bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9p ZGxlX2JpdCA9IE9NQVAyNDIwX1NUX0kyQzJfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0g JmkyY19jbGFzcywKLQkuZmxhZ3MJCT0gSFdNT0RfMTZCSVRfUkVHLAotfTsKLQotLyogbWFpbGJv eCAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDIwX21haWxib3hfaHdtb2QgPSB7 Ci0JLm5hbWUJCT0gIm1haWxib3giLAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfbWFpbGJveF9od21v ZF9jbGFzcywKLQkubWFpbl9jbGsJPSAibWFpbGJveGVzX2ljayIsCi0JLnByY20JCT0gewotCQku b21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lk ID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9NQUlMQk9YRVNfU0hJRlQs Ci0JCX0sCi0JfSwKLX07Ci0KLS8qCi0gKiAnbWNic3AnIGNsYXNzCi0gKiBtdWx0aSBjaGFubmVs IGJ1ZmZlcmVkIHNlcmlhbCBwb3J0IGNvbnRyb2xsZXIKLSAqLwotCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2RfY2xhc3Mgb21hcDI0MjBfbWNic3BfaHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUgPSAi bWNic3AiLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29wdF9jbGsgbWNic3Bfb3B0 X2Nsa3NbXSA9IHsKLQl7IC5yb2xlID0gInBhZF9mY2siLCAuY2xrID0gIm1jYnNwX2Nsa3MiIH0s Ci0JeyAucm9sZSA9ICJwcmNtX2ZjayIsIC5jbGsgPSAiZnVuY185Nm1fY2siIH0sCi19OwotCi0v KiBtY2JzcDEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQyMF9tY2JzcDFfaHdt b2QgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMSIsCi0JLmNsYXNzCQk9ICZvbWFwMjQyMF9tY2JzcF9o d21vZF9jbGFzcywKLQkubWFpbl9jbGsJPSAibWNic3AxX2ZjayIsCi0JLnByY20JCT0gewotCQku b21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lk ID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9NQ0JTUDFfU0hJRlQsCi0J CX0sCi0JfSwKLQkub3B0X2Nsa3MJPSBtY2JzcF9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0g QVJSQVlfU0laRShtY2JzcF9vcHRfY2xrcyksCi19OwotCi0vKiBtY2JzcDIgKi8KLXN0YXRpYyBz dHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQyMF9tY2JzcDJfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1j YnNwMiIsCi0JLmNsYXNzCQk9ICZvbWFwMjQyMF9tY2JzcF9od21vZF9jbGFzcywKLQkubWFpbl9j bGsJPSAibWNic3AyX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxl X29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRs ZV9iaXQgPSBPTUFQMjRYWF9TVF9NQ0JTUDJfU0hJRlQsCi0JCX0sCi0JfSwKLQkub3B0X2Nsa3MJ PSBtY2JzcF9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJSQVlfU0laRShtY2JzcF9vcHRf Y2xrcyksCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIG9t YXAyNDIwX21zZGlfc3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDNjLAotCS5zeXNjX29mZnMJPSAw eDY0LAotCS5zeXNzX29mZnMJPSAweDY4LAotCS5zeXNjX2ZsYWdzCT0gKFNZU0NfSEFTX1NPRlRS RVNFVCB8IFNZU1NfSEFTX1JFU0VUX1NUQVRVUyksCi0JLnN5c2NfZmllbGRzCT0gJm9tYXBfaHdt b2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFw MjQyMF9tc2RpX2h3bW9kX2NsYXNzID0gewotCS5uYW1lCT0gIm1zZGkiLAotCS5zeXNjCT0gJm9t YXAyNDIwX21zZGlfc3lzYywKLQkucmVzZXQJPSAmb21hcF9tc2RpX3Jlc2V0LAotfTsKLQotLyog bXNkaTEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQyMF9tc2RpMV9od21vZCA9 IHsKLQkubmFtZQkJPSAibXNkaTEiLAotCS5jbGFzcwkJPSAmb21hcDI0MjBfbXNkaV9od21vZF9j bGFzcywKLQkubWFpbl9jbGsJPSAibW1jX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7 Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJ CS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjQyMF9TVF9NTUNfU0hJRlQsCi0JCX0sCi0JfSwKLQku ZmxhZ3MJCT0gSFdNT0RfMTZCSVRfUkVHLAotfTsKLQotLyogSERRMVcvMS13aXJlICovCi1zdGF0 aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0MjBfaGRxMXdfaHdtb2QgPSB7Ci0JLm5hbWUJCT0g ImhkcTF3IiwKLQkubWFpbl9jbGsJPSAiaGRxX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIg PSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwK LQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9IRFFfU0hJRlQsCi0JCX0sCi0JfSwK LQkuY2xhc3MJCT0gJm9tYXAyX2hkcTF3X2NsYXNzLAotfTsKLQotLyoKLSAqIGludGVyZmFjZXMK LSAqLwotCi0vKiBMNCBDT1JFIC0+IEkyQzEgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDIwX2w0X2NvcmVfX2kyYzEgPSB7Ci0JLm1hc3RlcgkJPSAm b21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDIwX2kyYzFfaHdtb2Qs Ci0JLmNsawkJPSAiaTJjMV9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VS X1NETUEsCi19OwotCi0vKiBMNCBDT1JFIC0+IEkyQzIgaW50ZXJmYWNlICovCi1zdGF0aWMgc3Ry dWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDIwX2w0X2NvcmVfX2kyYzIgPSB7Ci0JLm1hc3Rl cgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDIwX2kyYzJf aHdtb2QsCi0JLmNsawkJPSAiaTJjMl9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9D UF9VU0VSX1NETUEsCi19OwotCi0vKiBJVkEgPC0gTDMgaW50ZXJmYWNlICovCi1zdGF0aWMgc3Ry dWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDIwX2wzX19pdmEgPSB7Ci0JLm1hc3RlcgkJPSAm b21hcDJ4eHhfbDNfbWFpbl9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDIwX2l2YV9od21vZCwK LQkuY2xrCQk9ICJjb3JlX2wzX2NrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNF Ul9TRE1BLAotfTsKLQotLyogRFNQIDwtIEwzIGludGVyZmFjZSAqLwotc3RhdGljIHN0cnVjdCBv bWFwX2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sM19fZHNwID0gewotCS5tYXN0ZXIJCT0gJm9tYXAy eHh4X2wzX21haW5faHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQyMF9kc3BfaHdtb2QsCi0JLmNs awkJPSAiZHNwX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwK LX07Ci0KLS8qIGw0X3drdXAgLT4gd2RfdGltZXIyICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdt b2Rfb2NwX2lmIG9tYXAyNDIwX2w0X3drdXBfX3dkX3RpbWVyMiA9IHsKLQkubWFzdGVyCQk9ICZv bWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfd2RfdGltZXIyX2h3 bW9kLAotCS5jbGsJCT0gIm1wdV93ZHRfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBP Q1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvMSAqLwotc3RhdGljIHN0cnVj dCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sNF93a3VwX19ncGlvMSA9IHsKLQkubWFzdGVy CQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfZ3BpbzFf aHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBP Q1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvMiAqLwotc3RhdGljIHN0cnVj dCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sNF93a3VwX19ncGlvMiA9IHsKLQkubWFzdGVy CQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfZ3BpbzJf aHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBP Q1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvMyAqLwotc3RhdGljIHN0cnVj dCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sNF93a3VwX19ncGlvMyA9IHsKLQkubWFzdGVy CQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfZ3BpbzNf aHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBP Q1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvNCAqLwotc3RhdGljIHN0cnVj dCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQyMF9sNF93a3VwX19ncGlvNCA9IHsKLQkubWFzdGVy CQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfZ3BpbzRf aHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBP Q1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBtYWlsYm94ICovCi1zdGF0aWMgc3Ry dWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDIwX2w0X2NvcmVfX21haWxib3ggPSB7Ci0JLm1h c3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDIwX21h aWxib3hfaHdtb2QsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07 Ci0KLS8qIGw0X2NvcmUgLT4gbWNic3AxICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2Nw X2lmIG9tYXAyNDIwX2w0X2NvcmVfX21jYnNwMSA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9s NF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MjBfbWNic3AxX2h3bW9kLAotCS5jbGsJ CT0gIm1jYnNwMV9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEs Ci19OwotCi0vKiBsNF9jb3JlIC0+IG1jYnNwMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X29jcF9pZiBvbWFwMjQyMF9sNF9jb3JlX19tY2JzcDIgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4 eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDIwX21jYnNwMl9od21vZCwKLQku Y2xrCQk9ICJtY2JzcDJfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9T RE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBtc2RpMSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3 bW9kX29jcF9pZiBvbWFwMjQyMF9sNF9jb3JlX19tc2RpMSA9IHsKLQkubWFzdGVyCQk9ICZvbWFw Mnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MjBfbXNkaTFfaHdtb2QsCi0J LmNsawkJPSAibW1jX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RN QSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gaGRxMXcgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0 IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDIwX2w0X2NvcmVfX2hkcTF3ID0gewotCS5tYXN0ZXIJ CT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQyMF9oZHExd19o d21vZCwKLQkuY2xrCQk9ICJoZHFfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1Bf VVNFUl9TRE1BLAotCS5mbGFncwkJPSBPTUFQX0ZJUkVXQUxMX0w0IHwgT0NQSUZfU1dTVVBfSURM RSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDI0MjBfbDNfX2dw bWMgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDNfbWFpbl9od21vZCwKLQkuc2xhdmUJCT0g Jm9tYXAyeHh4X2dwbWNfaHdtb2QsCi0JLmNsawkJPSAiY29yZV9sM19jayIsCi0JLnVzZXIJCT0g T0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9o d21vZF9vY3BfaWYgKm9tYXAyNDIwX2h3bW9kX29jcF9pZnNbXSBfX2luaXRkYXRhID0gewotCSZv bWFwMnh4eF9sM19tYWluX19sNF9jb3JlLAotCSZvbWFwMnh4eF9tcHVfX2wzX21haW4sCi0JJm9t YXAyeHh4X2Rzc19fbDMsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX21jc3BpMSwKLQkmb21hcDJ4eHhf bDRfY29yZV9fbWNzcGkyLAotCSZvbWFwMnh4eF9sNF9jb3JlX19sNF93a3VwLAotCSZvbWFwMl9s NF9jb3JlX191YXJ0MSwKLQkmb21hcDJfbDRfY29yZV9fdWFydDIsCi0JJm9tYXAyX2w0X2NvcmVf X3VhcnQzLAotCSZvbWFwMjQyMF9sNF9jb3JlX19pMmMxLAotCSZvbWFwMjQyMF9sNF9jb3JlX19p MmMyLAotCSZvbWFwMjQyMF9sM19faXZhLAotCSZvbWFwMjQyMF9sM19fZHNwLAotCSZvbWFwMnh4 eF9sNF9jb3JlX190aW1lcjMsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNCwKLQkmb21hcDJ4 eHhfbDRfY29yZV9fdGltZXI1LAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjYsCi0JJm9tYXAy eHh4X2w0X2NvcmVfX3RpbWVyNywKLQkmb21hcDJ4eHhfbDRfY29yZV9fdGltZXI4LAotCSZvbWFw Mnh4eF9sNF9jb3JlX190aW1lcjksCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyMTAsCi0JJm9t YXAyeHh4X2w0X2NvcmVfX3RpbWVyMTEsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyMTIsCi0J Jm9tYXAyNDIwX2w0X3drdXBfX3dkX3RpbWVyMiwKLQkmb21hcDJ4eHhfbDRfY29yZV9fZHNzLAot CSZvbWFwMnh4eF9sNF9jb3JlX19kc3NfZGlzcGMsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX2Rzc19y ZmJpLAotCSZvbWFwMnh4eF9sNF9jb3JlX19kc3NfdmVuYywKLQkmb21hcDI0MjBfbDRfd2t1cF9f Z3BpbzEsCi0JJm9tYXAyNDIwX2w0X3drdXBfX2dwaW8yLAotCSZvbWFwMjQyMF9sNF93a3VwX19n cGlvMywKLQkmb21hcDI0MjBfbDRfd2t1cF9fZ3BpbzQsCi0JJm9tYXAyNDIwX2w0X2NvcmVfX21h aWxib3gsCi0JJm9tYXAyNDIwX2w0X2NvcmVfX21jYnNwMSwKLQkmb21hcDI0MjBfbDRfY29yZV9f bWNic3AyLAotCSZvbWFwMjQyMF9sNF9jb3JlX19tc2RpMSwKLQkmb21hcDJ4eHhfbDRfY29yZV9f cm5nLAotCSZvbWFwMnh4eF9sNF9jb3JlX19zaGFtLAotCSZvbWFwMnh4eF9sNF9jb3JlX19hZXMs Ci0JJm9tYXAyNDIwX2w0X2NvcmVfX2hkcTF3LAotCSZvbWFwMjQyMF9sM19fZ3BtYywKLQlOVUxM LAotfTsKLQotaW50IF9faW5pdCBvbWFwMjQyMF9od21vZF9pbml0KHZvaWQpCi17Ci0Jb21hcF9o d21vZF9pbml0KCk7Ci0JcmV0dXJuIG9tYXBfaHdtb2RfcmVnaXN0ZXJfbGlua3Mob21hcDI0MjBf aHdtb2Rfb2NwX2lmcyk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBf aHdtb2RfMjQzMF9kYXRhLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMjQzMF9k YXRhLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5MzIwMDgwMWIzNC4uMDAwMDAw MDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZF8yNDMwX2RhdGEuYwor KysgL2Rldi9udWxsCkBAIC0xLDYwNiArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMC1vbmx5Ci0vKgotICogb21hcF9od21vZF8yNDMwX2RhdGEuYyAtIGhhcmR3YXJl IG1vZHVsZXMgcHJlc2VudCBvbiB0aGUgT01BUDI0MzAgY2hpcHMKLSAqCi0gKiBDb3B5cmlnaHQg KEMpIDIwMDktMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbgotICogQ29weXJpZ2h0IChDKSAyMDEyIFRl eGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBQYXVsIFdhbG1zbGV5Ci0gKgotICogWFhYIGhhbmRs ZSBjcm9zc2Jhci9zaGFyZWQgbGluayBkaWZmZXJlbmNlIGZvciBMMz8KLSAqIFhYWCB0aGVzZSBz aG91bGQgYmUgbWFya2VkIGluaXRkYXRhIGZvciBtdWx0aS1PTUFQIGtlcm5lbHMKLSAqLwotCi0j aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGF0YS9pMmMtb21hcC5oPgotI2luY2x1ZGUgPGxpbnV4 L3BsYXRmb3JtX2RhdGEvaHNtbWMtb21hcC5oPgotCi0jaW5jbHVkZSAib21hcF9od21vZC5oIgot I2luY2x1ZGUgImwzXzJ4eHguaCIKLQotI2luY2x1ZGUgInNvYy5oIgotI2luY2x1ZGUgIm9tYXBf aHdtb2RfY29tbW9uX2RhdGEuaCIKLSNpbmNsdWRlICJwcm0tcmVnYml0cy0yNHh4LmgiCi0jaW5j bHVkZSAiY20tcmVnYml0cy0yNHh4LmgiCi0jaW5jbHVkZSAiaTJjLmgiCi0jaW5jbHVkZSAid2Rf dGltZXIuaCIKLQotLyoKLSAqIE9NQVAyNDMwIGhhcmR3YXJlIG1vZHVsZSBpbnRlZ3JhdGlvbiBk YXRhCi0gKgotICogQWxsIG9mIHRoZSBkYXRhIGluIHRoaXMgc2VjdGlvbiBzaG91bGQgYmUgYXV0 b2dlbmVyYXRhYmxlIGZyb20gdGhlCi0gKiBUSSBoYXJkd2FyZSBkYXRhYmFzZSBvciBvdGhlciB0 ZWNobmljYWwgZG9jdW1lbnRhdGlvbi4gIERhdGEgdGhhdAotICogaXMgZHJpdmVyLXNwZWNpZmlj IG9yIGRyaXZlci1rZXJuZWwgaW50ZWdyYXRpb24tc3BlY2lmaWMgYmVsb25ncwotICogZWxzZXdo ZXJlLgotICovCi0KLS8qCi0gKiBJUCBibG9ja3MKLSAqLwotCi0vKiBJVkEyIChJVkEyKSAqLwot c3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX3JzdF9pbmZvIG9tYXAyNDMwX2l2YV9yZXNldHNbXSA9 IHsKLQl7IC5uYW1lID0gImxvZ2ljIiwgLnJzdF9zaGlmdCA9IDAgfSwKLQl7IC5uYW1lID0gIm1t dSIsIC5yc3Rfc2hpZnQgPSAxIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21h cDI0MzBfaXZhX2h3bW9kID0gewotCS5uYW1lCQk9ICJpdmEiLAotCS5jbGFzcwkJPSAmaXZhX2h3 bW9kX2NsYXNzLAotCS5jbGtkbV9uYW1lCT0gImRzcF9jbGtkbSIsCi0JLnJzdF9saW5lcwk9IG9t YXAyNDMwX2l2YV9yZXNldHMsCi0JLnJzdF9saW5lc19jbnQJPSBBUlJBWV9TSVpFKG9tYXAyNDMw X2l2YV9yZXNldHMpLAotCS5tYWluX2Nsawk9ICJkc3BfZmNrIiwKLX07Ci0KLS8qIEkyQyBjb21t b24gKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19zeXNjb25maWcgaTJjX3N5c2Mg PSB7Ci0JLnJldl9vZmZzCT0gMHgwMCwKLQkuc3lzY19vZmZzCT0gMHgyMCwKLQkuc3lzc19vZmZz CT0gMHgxMCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19TT0ZUUkVTRVQgfCBTWVNDX0hBU19B VVRPSURMRSB8Ci0JCQkgICBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5zeXNjX2ZpZWxkcwk9 ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rf Y2xhc3MgaTJjX2NsYXNzID0gewotCS5uYW1lCQk9ICJpMmMiLAotCS5zeXNjCQk9ICZpMmNfc3lz YywKLQkucmVzZXQJCT0gJm9tYXBfaTJjX3Jlc2V0LAotfTsKLQotLyogSTJDMSAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX2kyYzFfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImky YzEiLAotCS5mbGFncwkJPSBIV01PRF8xNkJJVF9SRUcsCi0JLm1haW5fY2xrCT0gImkyY2hzMV9m Y2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLyoKLQkJCSAqIE5PVEU6IFRoZSBD TV9GQ0xLRU4qIGFuZCBDTV9JQ0xLRU4qIGZvcgotCQkJICogSTJDSFMgSVAncyBkbyBub3QgZm9s bG93IHRoZSB1c3VhbCBwYXR0ZXJuLgotCQkJICogcHJjbV9yZWdfaWQgYWxvbmUgY2Fubm90IGJl IHVzZWQgdG8gcHJvZ3JhbQotCQkJICogdGhlIGljbGsgYW5kIGZjbGsuIE5lZWRzIHRvIGJlIGhh bmRsZWQgdXNpbmcKLQkJCSAqIGFkZGl0aW9uYWwgZmxhZ3Mgd2hlbiBjbGsgaGFuZGxpbmcgaXMg bW92ZWQKLQkJCSAqIHRvIGh3bW9kIGZyYW1ld29yay4KLQkJCSAqLwotCQkJLm1vZHVsZV9vZmZz ID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0 ID0gT01BUDI0MzBfU1RfSTJDSFMxX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZpMmNf Y2xhc3MsCi19OwotCi0vKiBJMkMyICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0 MzBfaTJjMl9od21vZCA9IHsKLQkubmFtZQkJPSAiaTJjMiIsCi0JLmZsYWdzCQk9IEhXTU9EXzE2 QklUX1JFRywKLQkubWFpbl9jbGsJPSAiaTJjaHMyX2ZjayIsCi0JLnByY20JCT0gewotCQkub21h cDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0g MSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjQzMF9TVF9JMkNIUzJfU0hJRlQsCi0JCX0s Ci0JfSwKLQkuY2xhc3MJCT0gJmkyY19jbGFzcywKLX07Ci0KLS8qIGdwaW81ICovCi1zdGF0aWMg c3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0MzBfZ3BpbzVfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImdw aW81IiwKLQkuZmxhZ3MJCT0gSFdNT0RfQ09OVFJPTF9PUFRfQ0xLU19JTl9SRVNFVCwKLQkubWFp bl9jbGsJPSAiZ3BpbzVfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1 bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAyLAotCQkJLmlkbGVzdF9p ZGxlX2JpdCA9IE9NQVAyNDMwX1NUX0dQSU81X1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9 ICZvbWFwMnh4eF9ncGlvX2h3bW9kX2NsYXNzLAotfTsKLQotLyogbWFpbGJveCAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX21haWxib3hfaHdtb2QgPSB7Ci0JLm5hbWUJCT0g Im1haWxib3giLAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfbWFpbGJveF9od21vZF9jbGFzcywKLQku bWFpbl9jbGsJPSAibWFpbGJveGVzX2ljayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0J CQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5p ZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9NQUlMQk9YRVNfU0hJRlQsCi0JCX0sCi0JfSwK LX07Ci0KLS8qIG1jc3BpMyAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX21j c3BpM19od21vZCA9IHsKLQkubmFtZQkJPSAibWNzcGkzIiwKLQkubWFpbl9jbGsJPSAibWNzcGkz X2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JF X01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMiwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQ MjQzMF9TVF9NQ1NQSTNfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9tYXAyeHh4X21j c3BpX2NsYXNzLAotfTsKLQotLyogdXNiaHNvdGcgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21v ZF9jbGFzc19zeXNjb25maWcgb21hcDI0MzBfdXNiaHNvdGdfc3lzYyA9IHsKLQkucmV2X29mZnMJ PSAweDA0MDAsCi0JLnN5c2Nfb2Zmcwk9IDB4MDQwNCwKLQkuc3lzc19vZmZzCT0gMHgwNDA4LAot CS5zeXNjX2ZsYWdzCT0gKFNZU0NfSEFTX1NJRExFTU9ERSB8IFNZU0NfSEFTX01JRExFTU9ERXwK LQkJCSAgU1lTQ19IQVNfRU5BV0FLRVVQIHwgU1lTQ19IQVNfU09GVFJFU0VUIHwKLQkJCSAgU1lT Q19IQVNfQVVUT0lETEUpLAotCS5pZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8 IFNJRExFX1NNQVJUIHwKLQkJCSAgTVNUQU5EQllfRk9SQ0UgfCBNU1RBTkRCWV9OTyB8IE1TVEFO REJZX1NNQVJUKSwKLQkuc3lzY19maWVsZHMJPSAmb21hcF9od21vZF9zeXNjX3R5cGUxLAotfTsK LQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIHVzYm90Z19jbGFzcyA9IHsKLQkubmFt ZSA9ICJ1c2JvdGciLAotCS5zeXNjID0gJm9tYXAyNDMwX3VzYmhzb3RnX3N5c2MsCi19OwotCi0v KiB1c2Jfb3RnX2hzICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Qgb21hcDI0MzBfdXNiaHNv dGdfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gInVzYl9vdGdfaHMiLAotCS5tYWluX2Nsawk9ICJ1c2Jo c19pY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09S RV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01B UDI0MzBfU1RfVVNCSFNfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJnVzYm90Z19jbGFz cywKLQkvKgotCSAqIEVycmF0dW0gSUQ6IGk0NzkgIGlkbGVfcmVxIC8gaWRsZV9hY2sgbWVjaGFu aXNtIHBvdGVudGlhbGx5Ci0JICogYnJva2VuIHdoZW4gYXV0b2lkbGUgaXMgZW5hYmxlZAotCSAq IHdvcmthcm91bmQgaXMgdG8gZGlzYWJsZSB0aGUgYXV0b2lkbGUgYml0IGF0IG1vZHVsZSBsZXZl bC4KLQkgKi8KLQkuZmxhZ3MJCT0gSFdNT0RfTk9fT0NQX0FVVE9JRExFIHwgSFdNT0RfU1dTVVBf U0lETEUKLQkJCQl8IEhXTU9EX1NXU1VQX01TVEFOREJZLAotfTsKLQotLyoKLSAqICdtY2JzcCcg Y2xhc3MKLSAqIG11bHRpIGNoYW5uZWwgYnVmZmVyZWQgc2VyaWFsIHBvcnQgY29udHJvbGxlcgot ICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzc19zeXNjb25maWcgb21hcDI0MzBf bWNic3Bfc3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDAwN0MsCi0JLnN5c2Nfb2Zmcwk9IDB4MDA4 QywKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19TT0ZUUkVTRVQpLAotCS5zeXNjX2ZpZWxkcyAg ICA9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdt b2RfY2xhc3Mgb21hcDI0MzBfbWNic3BfaHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUgPSAibWNic3Ai LAotCS5zeXNjID0gJm9tYXAyNDMwX21jYnNwX3N5c2MsCi19OwotCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2Rfb3B0X2NsayBtY2JzcF9vcHRfY2xrc1tdID0gewotCXsgLnJvbGUgPSAicGFkX2Zj ayIsIC5jbGsgPSAibWNic3BfY2xrcyIgfSwKLQl7IC5yb2xlID0gInByY21fZmNrIiwgLmNsayA9 ICJmdW5jXzk2bV9jayIgfSwKLX07Ci0KLS8qIG1jYnNwMSAqLwotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kIG9tYXAyNDMwX21jYnNwMV9od21vZCA9IHsKLQkubmFtZQkJPSAibWNic3AxIiwKLQku Y2xhc3MJCT0gJm9tYXAyNDMwX21jYnNwX2h3bW9kX2NsYXNzLAotCS5tYWluX2Nsawk9ICJtY2Jz cDFfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENP UkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9N QVAyNFhYX1NUX01DQlNQMV9TSElGVCwKLQkJfSwKLQl9LAotCS5vcHRfY2xrcwk9IG1jYnNwX29w dF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpFKG1jYnNwX29wdF9jbGtzKSwKLX07 Ci0KLS8qIG1jYnNwMiAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX21jYnNw Ml9od21vZCA9IHsKLQkubmFtZQkJPSAibWNic3AyIiwKLQkuY2xhc3MJCT0gJm9tYXAyNDMwX21j YnNwX2h3bW9kX2NsYXNzLAotCS5tYWluX2Nsawk9ICJtY2JzcDJfZmNrIiwKLQkucHJjbQkJPSB7 Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9y ZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNFhYX1NUX01DQlNQMl9TSElG VCwKLQkJfSwKLQl9LAotCS5vcHRfY2xrcwk9IG1jYnNwX29wdF9jbGtzLAotCS5vcHRfY2xrc19j bnQJPSBBUlJBWV9TSVpFKG1jYnNwX29wdF9jbGtzKSwKLX07Ci0KLS8qIG1jYnNwMyAqLwotc3Rh dGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX21jYnNwM19od21vZCA9IHsKLQkubmFtZQkJ PSAibWNic3AzIiwKLQkuY2xhc3MJCT0gJm9tYXAyNDMwX21jYnNwX2h3bW9kX2NsYXNzLAotCS5t YWluX2Nsawk9ICJtY2JzcDNfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5t b2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAyLAotCQkJLmlkbGVz dF9pZGxlX2JpdCA9IE9NQVAyNDMwX1NUX01DQlNQM19TSElGVCwKLQkJfSwKLQl9LAotCS5vcHRf Y2xrcwk9IG1jYnNwX29wdF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpFKG1jYnNw X29wdF9jbGtzKSwKLX07Ci0KLS8qIG1jYnNwNCAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k IG9tYXAyNDMwX21jYnNwNF9od21vZCA9IHsKLQkubmFtZQkJPSAibWNic3A0IiwKLQkuY2xhc3MJ CT0gJm9tYXAyNDMwX21jYnNwX2h3bW9kX2NsYXNzLAotCS5tYWluX2Nsawk9ICJtY2JzcDRfZmNr IiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9E LAotCQkJLmlkbGVzdF9yZWdfaWQgPSAyLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNDMw X1NUX01DQlNQNF9TSElGVCwKLQkJfSwKLQl9LAotCS5vcHRfY2xrcwk9IG1jYnNwX29wdF9jbGtz LAotCS5vcHRfY2xrc19jbnQJPSBBUlJBWV9TSVpFKG1jYnNwX29wdF9jbGtzKSwKLX07Ci0KLS8q IG1jYnNwNSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX21jYnNwNV9od21v ZCA9IHsKLQkubmFtZQkJPSAibWNic3A1IiwKLQkuY2xhc3MJCT0gJm9tYXAyNDMwX21jYnNwX2h3 bW9kX2NsYXNzLAotCS5tYWluX2Nsawk9ICJtY2JzcDVfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5v bWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQg PSAyLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNDMwX1NUX01DQlNQNV9TSElGVCwKLQkJ fSwKLQl9LAotCS5vcHRfY2xrcwk9IG1jYnNwX29wdF9jbGtzLAotCS5vcHRfY2xrc19jbnQJPSBB UlJBWV9TSVpFKG1jYnNwX29wdF9jbGtzKSwKLX07Ci0KLS8qIE1NQy9TRC9TRElPIGNvbW1vbiAq Lwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFwMjQzMF9tbWNf c3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDFmYywKLQkuc3lzY19vZmZzCT0gMHgxMCwKLQkuc3lz c19vZmZzCT0gMHgxNCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19DTE9DS0FDVElWSVRZIHwg U1lTQ19IQVNfU0lETEVNT0RFIHwKLQkJCSAgIFNZU0NfSEFTX0VOQVdBS0VVUCB8IFNZU0NfSEFT X1NPRlRSRVNFVCB8Ci0JCQkgICBTWVNDX0hBU19BVVRPSURMRSB8IFNZU1NfSEFTX1JFU0VUX1NU QVRVUyksCi0JLmlkbGVtb2Rlcwk9IChTSURMRV9GT1JDRSB8IFNJRExFX05PIHwgU0lETEVfU01B UlQpLAotCS5zeXNjX2ZpZWxkcyAgICA9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1z dGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDI0MzBfbW1jX2NsYXNzID0gewotCS5u YW1lID0gIm1tYyIsCi0JLnN5c2MgPSAmb21hcDI0MzBfbW1jX3N5c2MsCi19OwotCi0vKiBNTUMv U0QvU0RJTzEgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIG9tYXAyNDMwX21t YzFfb3B0X2Nsa3NbXSA9IHsKLQl7IC5yb2xlID0gImRiY2siLCAuY2xrID0gIm1tY2hzZGIxX2Zj ayIgfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9oc21tY19kZXZfYXR0ciBtbWMxX2Rldl9h dHRyID0gewotCS5mbGFncyA9IE9NQVBfSFNNTUNfU1VQUE9SVFNfRFVBTF9WT0xULAotfTsKLQot c3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyNDMwX21tYzFfaHdtb2QgPSB7Ci0JLm5hbWUJ CT0gIm1tYzEiLAotCS5mbGFncwkJPSBIV01PRF9DT05UUk9MX09QVF9DTEtTX0lOX1JFU0VULAot CS5vcHRfY2xrcwk9IG9tYXAyNDMwX21tYzFfb3B0X2Nsa3MsCi0JLm9wdF9jbGtzX2NudAk9IEFS UkFZX1NJWkUob21hcDI0MzBfbW1jMV9vcHRfY2xrcyksCi0JLm1haW5fY2xrCT0gIm1tY2hzMV9m Y2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9N T0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDIsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0 MzBfU1RfTU1DSFMxX1NISUZULAotCQl9LAotCX0sCi0JLmRldl9hdHRyCT0gJm1tYzFfZGV2X2F0 dHIsCi0JLmNsYXNzCQk9ICZvbWFwMjQzMF9tbWNfY2xhc3MsCi19OwotCi0vKiBNTUMvU0QvU0RJ TzIgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIG9tYXAyNDMwX21tYzJfb3B0 X2Nsa3NbXSA9IHsKLQl7IC5yb2xlID0gImRiY2siLCAuY2xrID0gIm1tY2hzZGIyX2ZjayIgfSwK LX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMjQzMF9tbWMyX2h3bW9kID0gewot CS5uYW1lCQk9ICJtbWMyIiwKLQkuZmxhZ3MJCT0gSFdNT0RfQ09OVFJPTF9PUFRfQ0xLU19JTl9S RVNFVCwKLQkub3B0X2Nsa3MJPSBvbWFwMjQzMF9tbWMyX29wdF9jbGtzLAotCS5vcHRfY2xrc19j bnQJPSBBUlJBWV9TSVpFKG9tYXAyNDMwX21tYzJfb3B0X2Nsa3MpLAotCS5tYWluX2Nsawk9ICJt bWNoczJfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9 IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAyLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9 IE9NQVAyNDMwX1NUX01NQ0hTMl9TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDI0 MzBfbW1jX2NsYXNzLAotfTsKLQotLyogSERRMVcvMS13aXJlICovCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2Qgb21hcDI0MzBfaGRxMXdfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImhkcTF3IiwKLQku bWFpbl9jbGsJPSAiaGRxX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9k dWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3Rf aWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9IRFFfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0g Jm9tYXAyX2hkcTF3X2NsYXNzLAotfTsKLQotLyoKLSAqIGludGVyZmFjZXMKLSAqLwotCi0vKiBM MyAtPiBMNF9DT1JFIGludGVyZmFjZSAqLwotLyogbDNfY29yZSAtPiB1c2Joc290ZyAgaW50ZXJm YWNlICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDMwX3VzYmhzb3Rn X19sMyA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMjQzMF91c2Joc290Z19od21vZCwKLQkuc2xhdmUJ CT0gJm9tYXAyeHh4X2wzX21haW5faHdtb2QsCi0JLmNsawkJPSAiY29yZV9sM19jayIsCi0JLnVz ZXIJCT0gT0NQX1VTRVJfTVBVLAotfTsKLQotLyogTDQgQ09SRSAtPiBJMkMxIGludGVyZmFjZSAq Lwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3JlX19pMmMx ID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZv bWFwMjQzMF9pMmMxX2h3bW9kLAotCS5jbGsJCT0gImkyYzFfaWNrIiwKLQkudXNlcgkJPSBPQ1Bf VVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogTDQgQ09SRSAtPiBJMkMyIGludGVy ZmFjZSAqLwotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3Jl X19pMmMyID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZl CQk9ICZvbWFwMjQzMF9pMmMyX2h3bW9kLAotCS5jbGsJCT0gImkyYzJfaWNrIiwKLQkudXNlcgkJ PSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogIGw0X2NvcmUgLT51c2Jo c290ZyAgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAy NDMwX2w0X2NvcmVfX3VzYmhzb3RnID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVf aHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQzMF91c2Joc290Z19od21vZCwKLQkuY2xrCQk9ICJ1 c2JfbDRfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUsCi19OwotCi0vKiBMNCBDT1JFIC0+ IE1NQzEgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAy NDMwX2w0X2NvcmVfX21tYzEgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21v ZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX21tYzFfaHdtb2QsCi0JLmNsawkJPSAibW1jaHMxX2lj ayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIEw0 IENPUkUgLT4gTU1DMiBpbnRlcmZhY2UgKi8KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vY3Bf aWYgb21hcDI0MzBfbDRfY29yZV9fbW1jMiA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9j b3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBfbW1jMl9od21vZCwKLQkuY2xrCQk9ICJt bWNoczJfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsK LQotLyogbDQgY29yZSAtPiBtY3NwaTMgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0IG9tYXBf aHdtb2Rfb2NwX2lmIG9tYXAyNDMwX2w0X2NvcmVfX21jc3BpMyA9IHsKLQkubWFzdGVyCQk9ICZv bWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBfbWNzcGkzX2h3bW9k LAotCS5jbGsJCT0gIm1jc3BpM19pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9V U0VSX1NETUEsCi19OwotCi0vKiBJVkEyIDwtIEwzIGludGVyZmFjZSAqLwotc3RhdGljIHN0cnVj dCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sM19faXZhID0gewotCS5tYXN0ZXIJCT0gJm9t YXAyeHh4X2wzX21haW5faHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQzMF9pdmFfaHdtb2QsCi0J LmNsawkJPSAiY29yZV9sM19jayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJf U0RNQSwKLX07Ci0KLS8qIGw0X3drdXAgLT4gd2RfdGltZXIyICovCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDMwX2w0X3drdXBfX3dkX3RpbWVyMiA9IHsKLQkubWFzdGVy CQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfd2RfdGlt ZXIyX2h3bW9kLAotCS5jbGsJCT0gIm1wdV93ZHRfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9N UFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvMSAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF93a3VwX19ncGlvMSA9IHsKLQku bWFzdGVyCQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhf Z3BpbzFfaHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9N UFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvMiAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF93a3VwX19ncGlvMiA9IHsKLQku bWFzdGVyCQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhf Z3BpbzJfaHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9N UFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvMyAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF93a3VwX19ncGlvMyA9IHsKLQku bWFzdGVyCQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhf Z3BpbzNfaHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9N UFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfd2t1cCAtPiBncGlvNCAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF93a3VwX19ncGlvNCA9IHsKLQku bWFzdGVyCQk9ICZvbWFwMnh4eF9sNF93a3VwX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhf Z3BpbzRfaHdtb2QsCi0JLmNsawkJPSAiZ3Bpb3NfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9N UFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBncGlvNSAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3JlX19ncGlvNSA9IHsKLQku bWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBf Z3BpbzVfaHdtb2QsCi0JLmNsawkJPSAiZ3BpbzVfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9N UFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBtYWlsYm94ICovCi1zdGF0 aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDMwX2w0X2NvcmVfX21haWxib3ggPSB7 Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAy NDMwX21haWxib3hfaHdtb2QsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RN QSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gbWNic3AxICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdt b2Rfb2NwX2lmIG9tYXAyNDMwX2w0X2NvcmVfX21jYnNwMSA9IHsKLQkubWFzdGVyCQk9ICZvbWFw Mnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBfbWNic3AxX2h3bW9kLAot CS5jbGsJCT0gIm1jYnNwMV9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VS X1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IG1jYnNwMiAqLwotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3JlX19tY2JzcDIgPSB7Ci0JLm1hc3RlcgkJPSAm b21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMwX21jYnNwMl9od21v ZCwKLQkuY2xrCQk9ICJtY2JzcDJfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1Bf VVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBtY2JzcDMgKi8KLXN0YXRpYyBzdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDI0MzBfbDRfY29yZV9fbWNic3AzID0gewotCS5tYXN0ZXIJ CT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMjQzMF9tY2JzcDNf aHdtb2QsCi0JLmNsawkJPSAibWNic3AzX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwg T0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gbWNic3A0ICovCi1zdGF0aWMgc3Ry dWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyNDMwX2w0X2NvcmVfX21jYnNwNCA9IHsKLQkubWFz dGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0MzBfbWNi c3A0X2h3bW9kLAotCS5jbGsJCT0gIm1jYnNwNF9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01Q VSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IG1jYnNwNSAqLwotc3RhdGlj IHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3JlX19tY2JzcDUgPSB7Ci0J Lm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyNDMw X21jYnNwNV9od21vZCwKLQkuY2xrCQk9ICJtY2JzcDVfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNF Ul9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBoZHExdyAqLwotc3Rh dGljIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMjQzMF9sNF9jb3JlX19oZHExdyA9IHsK LQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDI0 MzBfaGRxMXdfaHdtb2QsCi0JLmNsawkJPSAiaGRxX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJf TVBVIHwgT0NQX1VTRVJfU0RNQSwKLQkuZmxhZ3MJCT0gT01BUF9GSVJFV0FMTF9MNCB8IE9DUElG X1NXU1VQX0lETEUsCi19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAy NDMwX2wzX19ncG1jID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2wzX21haW5faHdtb2QsCi0J LnNsYXZlCQk9ICZvbWFwMnh4eF9ncG1jX2h3bW9kLAotCS5jbGsJCT0gImNvcmVfbDNfY2siLAot CS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi1zdGF0aWMgc3Ry dWN0IG9tYXBfaHdtb2Rfb2NwX2lmICpvbWFwMjQzMF9od21vZF9vY3BfaWZzW10gX19pbml0ZGF0 YSA9IHsKLQkmb21hcDJ4eHhfbDNfbWFpbl9fbDRfY29yZSwKLQkmb21hcDJ4eHhfbXB1X19sM19t YWluLAotCSZvbWFwMnh4eF9kc3NfX2wzLAotCSZvbWFwMjQzMF91c2Joc290Z19fbDMsCi0JJm9t YXAyNDMwX2w0X2NvcmVfX2kyYzEsCi0JJm9tYXAyNDMwX2w0X2NvcmVfX2kyYzIsCi0JJm9tYXAy eHh4X2w0X2NvcmVfX2w0X3drdXAsCi0JJm9tYXAyX2w0X2NvcmVfX3VhcnQxLAotCSZvbWFwMl9s NF9jb3JlX191YXJ0MiwKLQkmb21hcDJfbDRfY29yZV9fdWFydDMsCi0JJm9tYXAyNDMwX2w0X2Nv cmVfX3VzYmhzb3RnLAotCSZvbWFwMjQzMF9sNF9jb3JlX19tbWMxLAotCSZvbWFwMjQzMF9sNF9j b3JlX19tbWMyLAotCSZvbWFwMnh4eF9sNF9jb3JlX19tY3NwaTEsCi0JJm9tYXAyeHh4X2w0X2Nv cmVfX21jc3BpMiwKLQkmb21hcDI0MzBfbDRfY29yZV9fbWNzcGkzLAotCSZvbWFwMjQzMF9sM19f aXZhLAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjMsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3Rp bWVyNCwKLQkmb21hcDJ4eHhfbDRfY29yZV9fdGltZXI1LAotCSZvbWFwMnh4eF9sNF9jb3JlX190 aW1lcjYsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNywKLQkmb21hcDJ4eHhfbDRfY29yZV9f dGltZXI4LAotCSZvbWFwMnh4eF9sNF9jb3JlX190aW1lcjksCi0JJm9tYXAyeHh4X2w0X2NvcmVf X3RpbWVyMTAsCi0JJm9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyMTEsCi0JJm9tYXAyeHh4X2w0X2Nv cmVfX3RpbWVyMTIsCi0JJm9tYXAyNDMwX2w0X3drdXBfX3dkX3RpbWVyMiwKLQkmb21hcDJ4eHhf bDRfY29yZV9fZHNzLAotCSZvbWFwMnh4eF9sNF9jb3JlX19kc3NfZGlzcGMsCi0JJm9tYXAyeHh4 X2w0X2NvcmVfX2Rzc19yZmJpLAotCSZvbWFwMnh4eF9sNF9jb3JlX19kc3NfdmVuYywKLQkmb21h cDI0MzBfbDRfd2t1cF9fZ3BpbzEsCi0JJm9tYXAyNDMwX2w0X3drdXBfX2dwaW8yLAotCSZvbWFw MjQzMF9sNF93a3VwX19ncGlvMywKLQkmb21hcDI0MzBfbDRfd2t1cF9fZ3BpbzQsCi0JJm9tYXAy NDMwX2w0X2NvcmVfX2dwaW81LAotCSZvbWFwMjQzMF9sNF9jb3JlX19tYWlsYm94LAotCSZvbWFw MjQzMF9sNF9jb3JlX19tY2JzcDEsCi0JJm9tYXAyNDMwX2w0X2NvcmVfX21jYnNwMiwKLQkmb21h cDI0MzBfbDRfY29yZV9fbWNic3AzLAotCSZvbWFwMjQzMF9sNF9jb3JlX19tY2JzcDQsCi0JJm9t YXAyNDMwX2w0X2NvcmVfX21jYnNwNSwKLQkmb21hcDI0MzBfbDRfY29yZV9faGRxMXcsCi0JJm9t YXAyeHh4X2w0X2NvcmVfX3JuZywKLQkmb21hcDJ4eHhfbDRfY29yZV9fc2hhbSwKLQkmb21hcDJ4 eHhfbDRfY29yZV9fYWVzLAotCSZvbWFwMjQzMF9sM19fZ3BtYywKLQlOVUxMLAotfTsKLQotaW50 IF9faW5pdCBvbWFwMjQzMF9od21vZF9pbml0KHZvaWQpCi17Ci0Jb21hcF9od21vZF9pbml0KCk7 Ci0JcmV0dXJuIG9tYXBfaHdtb2RfcmVnaXN0ZXJfbGlua3Mob21hcDI0MzBfaHdtb2Rfb2NwX2lm cyk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMnh4eF9p bnRlcmNvbm5lY3RfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhf aW50ZXJjb25uZWN0X2RhdGEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYxZDM0 OTE0ZWQ5Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9k XzJ4eHhfaW50ZXJjb25uZWN0X2RhdGEuYworKysgL2Rldi9udWxsCkBAIC0xLDI1NiArMCwwIEBA Ci0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Ci0vKgotICogb21hcF9o d21vZF8yeHh4X2ludGVyY29ubmVjdF9kYXRhLmMgLSBjb21tb24gaW50ZXJjb25uZWN0IGRhdGEg Zm9yIE9NQVAyeHh4Ci0gKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTEgTm9raWEgQ29ycG9y YXRpb24KLSAqIFBhdWwgV2FsbXNsZXkKLSAqCi0gKiBYWFggaGFuZGxlIGNyb3NzYmFyL3NoYXJl ZCBsaW5rIGRpZmZlcmVuY2UgZm9yIEwzPwotICogWFhYIHRoZXNlIHNob3VsZCBiZSBtYXJrZWQg aW5pdGRhdGEgZm9yIG11bHRpLU9NQVAga2VybmVscwotICovCi0jaW5jbHVkZSA8bGludXgvc2l6 ZXMuaD4KLQotI2luY2x1ZGUgIm9tYXBfaHdtb2QuaCIKLSNpbmNsdWRlICJsM18yeHh4LmgiCi0j aW5jbHVkZSAibDRfMnh4eC5oIgotCi0jaW5jbHVkZSAib21hcF9od21vZF9jb21tb25fZGF0YS5o IgotCi0vKgotICogQ29tbW9uIGludGVyY29ubmVjdCBkYXRhCi0gKi8KLQotLyogTDMgLT4gTDRf Q09SRSBpbnRlcmZhY2UgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sM19t YWluX19sNF9jb3JlID0gewotCS5tYXN0ZXIJPSAmb21hcDJ4eHhfbDNfbWFpbl9od21vZCwKLQku c2xhdmUJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkudXNlcgk9IE9DUF9VU0VSX01QVSB8 IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBNUFUgLT4gTDMgaW50ZXJmYWNlICovCi1zdHJ1Y3Qg b21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbXB1X19sM19tYWluID0gewotCS5tYXN0ZXIgPSAm b21hcDJ4eHhfbXB1X2h3bW9kLAotCS5zbGF2ZQk9ICZvbWFwMnh4eF9sM19tYWluX2h3bW9kLAot CS51c2VyCT0gT0NQX1VTRVJfTVBVLAotfTsKLQotLyogRFNTIC0+IGwzICovCi1zdHJ1Y3Qgb21h cF9od21vZF9vY3BfaWYgb21hcDJ4eHhfZHNzX19sMyA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4 eF9kc3NfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X2wzX21haW5faHdtb2QsCi0J LmZ3ID0gewotCQkub21hcDIgPSB7Ci0JCQkubDNfcGVybV9iaXQgID0gT01BUDJfTDNfQ09SRV9G V19DT05OSURfRFNTLAotCQkJLmZsYWdzCT0gT01BUF9GSVJFV0FMTF9MMywKLQkJfSwKLQl9LAot CS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBMNF9DT1JF IC0+IEw0X1dLVVAgaW50ZXJmYWNlICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4 eHhfbDRfY29yZV9fbDRfd2t1cCA9IHsKLQkubWFzdGVyCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdt b2QsCi0JLnNsYXZlCT0gJm9tYXAyeHh4X2w0X3drdXBfaHdtb2QsCi0JLnVzZXIJPSBPQ1BfVVNF Ul9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogTDQgQ09SRSAtPiBVQVJUMSBpbnRlcmZh Y2UgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMl9sNF9jb3JlX191YXJ0MSA9IHsK LQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4 eHhfdWFydDFfaHdtb2QsCi0JLmNsawkJPSAidWFydDFfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNF Ul9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogTDQgQ09SRSAtPiBVQVJUMiBpbnRlcmZh Y2UgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMl9sNF9jb3JlX191YXJ0MiA9IHsK LQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4 eHhfdWFydDJfaHdtb2QsCi0JLmNsawkJPSAidWFydDJfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNF Ul9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogTDQgUEVSIC0+IFVBUlQzIGludGVyZmFj ZSAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyX2w0X2NvcmVfX3VhcnQzID0gewot CS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4 eF91YXJ0M19od21vZCwKLQkuY2xrCQk9ICJ1YXJ0M19pY2siLAotCS51c2VyCQk9IE9DUF9VU0VS X01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNCBjb3JlIC0+IG1jc3BpMSBpbnRlcmZh Y2UgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX19tY3NwaTEg PSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9t YXAyeHh4X21jc3BpMV9od21vZCwKLQkuY2xrCQk9ICJtY3NwaTFfaWNrIiwKLQkudXNlcgkJPSBP Q1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDQgY29yZSAtPiBtY3NwaTIg aW50ZXJmYWNlICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9f bWNzcGkyID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZl CQk9ICZvbWFwMnh4eF9tY3NwaTJfaHdtb2QsCi0JLmNsawkJPSAibWNzcGkyX2ljayIsCi0JLnVz ZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4g dGltZXIzICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGlt ZXIzID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9 ICZvbWFwMnh4eF90aW1lcjNfaHdtb2QsCi0JLmNsawkJPSAiZ3B0M19pY2siLAotCS51c2VyCQk9 IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IHRpbWVy NCAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNCA9 IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21h cDJ4eHhfdGltZXI0X2h3bW9kLAotCS5jbGsJCT0gImdwdDRfaWNrIiwKLQkudXNlcgkJPSBPQ1Bf VVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiB0aW1lcjUgKi8K LXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjUgPSB7Ci0J Lm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4 X3RpbWVyNV9od21vZCwKLQkuY2xrCQk9ICJncHQ1X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJf TVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gdGltZXI2ICovCi1zdHJ1 Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI2ID0gewotCS5tYXN0 ZXIJCT0gJm9tYXAyeHh4X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF90aW1l cjZfaHdtb2QsCi0JLmNsawkJPSAiZ3B0Nl9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8 IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IHRpbWVyNyAqLwotc3RydWN0IG9t YXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNyA9IHsKLQkubWFzdGVyCQk9 ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfdGltZXI3X2h3 bW9kLAotCS5jbGsJCT0gImdwdDdfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1Bf VVNFUl9TRE1BLAotfTsKLQotLyogbDRfY29yZSAtPiB0aW1lcjggKi8KLXN0cnVjdCBvbWFwX2h3 bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjggPSB7Ci0JLm1hc3RlcgkJPSAmb21h cDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3RpbWVyOF9od21vZCwK LQkuY2xrCQk9ICJncHQ4X2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJf U0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gdGltZXI5ICovCi1zdHJ1Y3Qgb21hcF9od21vZF9v Y3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI5ID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4 X2w0X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF90aW1lcjlfaHdtb2QsCi0JLmNs awkJPSAiZ3B0OV9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEs Ci19OwotCi0vKiBsNF9jb3JlIC0+IHRpbWVyMTAgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9p ZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjEwID0gewotCS5tYXN0ZXIJCT0gJm9tYXAyeHh4X2w0 X2NvcmVfaHdtb2QsCi0JLnNsYXZlCQk9ICZvbWFwMnh4eF90aW1lcjEwX2h3bW9kLAotCS5jbGsJ CT0gImdwdDEwX2ljayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwK LX07Ci0KLS8qIGw0X2NvcmUgLT4gdGltZXIxMSAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lm IG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyMTEgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRf Y29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3RpbWVyMTFfaHdtb2QsCi0JLmNsawkJ PSAiZ3B0MTFfaWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAot fTsKLQotLyogbDRfY29yZSAtPiB0aW1lcjEyICovCi1zdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYg b21hcDJ4eHhfbDRfY29yZV9fdGltZXIxMiA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9j b3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfdGltZXIxMl9od21vZCwKLQkuY2xrCQk9 ICJncHQxMl9pY2siLAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19 OwotCi0vKiBsNF9jb3JlIC0+IGRzcyAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAy eHh4X2w0X2NvcmVfX2RzcyA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9k LAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfZHNzX2NvcmVfaHdtb2QsCi0JLmNsawkJPSAiZHNzX2lj ayIsCi0JLmZ3ID0gewotCQkub21hcDIgPSB7Ci0JCQkubDRfZndfcmVnaW9uICA9IE9NQVAyNDIw X0w0X0NPUkVfRldfRFNTX0NPUkVfUkVHSU9OLAotCQkJLmZsYWdzCT0gT01BUF9GSVJFV0FMTF9M NCwKLQkJfSwKLQl9LAotCS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19 OwotCi0vKiBsNF9jb3JlIC0+IGRzc19kaXNwYyAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lm IG9tYXAyeHh4X2w0X2NvcmVfX2Rzc19kaXNwYyA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9s NF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfZHNzX2Rpc3BjX2h3bW9kLAotCS5j bGsJCT0gImRzc19pY2siLAotCS5mdyA9IHsKLQkJLm9tYXAyID0gewotCQkJLmw0X2Z3X3JlZ2lv biAgPSBPTUFQMjQyMF9MNF9DT1JFX0ZXX0RTU19ESVNQQ19SRUdJT04sCi0JCQkuZmxhZ3MJPSBP TUFQX0ZJUkVXQUxMX0w0LAotCQl9LAotCX0sCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQ X1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0X2NvcmUgLT4gZHNzX3JmYmkgKi8KLXN0cnVjdCBvbWFw X2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX19kc3NfcmZiaSA9IHsKLQkubWFzdGVyCQk9 ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9kLAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfZHNzX3JmYmlf aHdtb2QsCi0JLmNsawkJPSAiZHNzX2ljayIsCi0JLmZ3ID0gewotCQkub21hcDIgPSB7Ci0JCQku bDRfZndfcmVnaW9uICA9IE9NQVAyNDIwX0w0X0NPUkVfRldfRFNTX0NPUkVfUkVHSU9OLAotCQkJ LmZsYWdzCT0gT01BUF9GSVJFV0FMTF9MNCwKLQkJfSwKLQl9LAotCS51c2VyCQk9IE9DUF9VU0VS X01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwotCi0vKiBsNF9jb3JlIC0+IGRzc192ZW5jICovCi1z dHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fZHNzX3ZlbmMgPSB7Ci0J Lm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4 X2Rzc192ZW5jX2h3bW9kLAotCS5jbGsJCT0gImRzc19pY2siLAotCS5mdyA9IHsKLQkJLm9tYXAy ID0gewotCQkJLmw0X2Z3X3JlZ2lvbiAgPSBPTUFQMjQyMF9MNF9DT1JFX0ZXX0RTU19WRU5DX1JF R0lPTiwKLQkJCS5mbGFncwk9IE9NQVBfRklSRVdBTExfTDQsCi0JCX0sCi0JfSwKLQkuZmxhZ3MJ CT0gT0NQSUZfU1dTVVBfSURMRSwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9T RE1BLAotfTsKLQotLyogbDRfY29yZSAtPiBybmcgKi8KLXN0cnVjdCBvbWFwX2h3bW9kX29jcF9p ZiBvbWFwMnh4eF9sNF9jb3JlX19ybmcgPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29y ZV9od21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3JuZ19od21vZCwKLQkuY2xrCQk9ICJybmdf aWNrIiwKLQkudXNlcgkJPSBPQ1BfVVNFUl9NUFUgfCBPQ1BfVVNFUl9TRE1BLAotfTsKLQotLyog bDQgY29yZSAtPiBzaGFtIGludGVyZmFjZSAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9t YXAyeHh4X2w0X2NvcmVfX3NoYW0gPSB7Ci0JLm1hc3RlcgkJPSAmb21hcDJ4eHhfbDRfY29yZV9o d21vZCwKLQkuc2xhdmUJCT0gJm9tYXAyeHh4X3NoYW1faHdtb2QsCi0JLmNsawkJPSAic2hhX2lj ayIsCi0JLnVzZXIJCT0gT0NQX1VTRVJfTVBVIHwgT0NQX1VTRVJfU0RNQSwKLX07Ci0KLS8qIGw0 IGNvcmUgLT4gYWVzIGludGVyZmFjZSAqLwotc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAy eHh4X2w0X2NvcmVfX2FlcyA9IHsKLQkubWFzdGVyCQk9ICZvbWFwMnh4eF9sNF9jb3JlX2h3bW9k LAotCS5zbGF2ZQkJPSAmb21hcDJ4eHhfYWVzX2h3bW9kLAotCS5jbGsJCT0gImFlc19pY2siLAot CS51c2VyCQk9IE9DUF9VU0VSX01QVSB8IE9DUF9VU0VSX1NETUEsCi19OwpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhfaXBibG9ja19kYXRhLmMgYi9hcmNo L2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfMnh4eF9pcGJsb2NrX2RhdGEuYwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNDk4MmUwNGVhZDUzLi4wMDAwMDAwMDAwMDAKLS0tIGEvYXJj aC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kXzJ4eHhfaXBibG9ja19kYXRhLmMKKysrIC9kZXYv bnVsbApAQCAtMSw2NjggKzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAtb25seQotLyoKLSAqIG9tYXBfaHdtb2RfMnh4eF9pcGJsb2NrX2RhdGEuYyAtIGNvbW1vbiBJ UCBibG9jayBkYXRhIGZvciBPTUFQMnh4eAotICoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tp YSBDb3Jwb3JhdGlvbgotICogUGF1bCBXYWxtc2xleQotICovCi0KLSNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPgotCi0jaW5jbHVkZSAib21hcF9od21vZC5oIgotI2luY2x1ZGUgIm9tYXBfaHdtb2Rf Y29tbW9uX2RhdGEuaCIKLSNpbmNsdWRlICJjbS1yZWdiaXRzLTI0eHguaCIKLSNpbmNsdWRlICJw cm0tcmVnYml0cy0yNHh4LmgiCi0jaW5jbHVkZSAid2RfdGltZXIuaCIKLQotLyoKLSAqICdkaXNw YycgY2xhc3MKLSAqIGRpc3BsYXkgY29udHJvbGxlcgotICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21h cF9od21vZF9jbGFzc19zeXNjb25maWcgb21hcDJfZGlzcGNfc3lzYyA9IHsKLQkucmV2X29mZnMJ PSAweDAwMDAsCi0JLnN5c2Nfb2Zmcwk9IDB4MDAxMCwKLQkuc3lzc19vZmZzCT0gMHgwMDE0LAot CS5zeXNjX2ZsYWdzCT0gKFNZU0NfSEFTX1NJRExFTU9ERSB8IFNZU0NfSEFTX01JRExFTU9ERSB8 Ci0JCQkgICBTWVNDX0hBU19TT0ZUUkVTRVQgfCBTWVNDX0hBU19BVVRPSURMRSksCi0JLmlkbGVt b2Rlcwk9IChTSURMRV9GT1JDRSB8IFNJRExFX05PIHwgU0lETEVfU01BUlQgfAotCQkJICAgTVNU QU5EQllfRk9SQ0UgfCBNU1RBTkRCWV9OTyB8IE1TVEFOREJZX1NNQVJUKSwKLQkuc3lzY19maWVs ZHMJPSAmb21hcF9od21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3 bW9kX2NsYXNzIG9tYXAyX2Rpc3BjX2h3bW9kX2NsYXNzID0gewotCS5uYW1lCT0gImRpc3BjIiwK LQkuc3lzYwk9ICZvbWFwMl9kaXNwY19zeXNjLAotfTsKLQotLyogT01BUDJ4eHggVGltZXIgQ29t bW9uICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIG9tYXAyeHh4 X3RpbWVyX3N5c2MgPSB7Ci0JLnJldl9vZmZzCT0gMHgwMDAwLAotCS5zeXNjX29mZnMJPSAweDAw MTAsCi0JLnN5c3Nfb2Zmcwk9IDB4MDAxNCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19TSURM RU1PREUgfCBTWVNDX0hBU19DTE9DS0FDVElWSVRZIHwKLQkJCSAgIFNZU0NfSEFTX0VOQVdBS0VV UCB8IFNZU0NfSEFTX1NPRlRSRVNFVCB8Ci0JCQkgICBTWVNDX0hBU19BVVRPSURMRSB8IFNZU1Nf SEFTX1JFU0VUX1NUQVRVUyksCi0JLmlkbGVtb2Rlcwk9IChTSURMRV9GT1JDRSB8IFNJRExFX05P IHwgU0lETEVfU01BUlQpLAotCS5zeXNjX2ZpZWxkcwk9ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEs Ci19OwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJ4eHhfdGltZXJfaHdt b2RfY2xhc3MgPSB7Ci0JLm5hbWUJPSAidGltZXIiLAotCS5zeXNjCT0gJm9tYXAyeHh4X3RpbWVy X3N5c2MsCi19OwotCi0vKgotICogJ3dkX3RpbWVyJyBjbGFzcwotICogMzItYml0IHdhdGNoZG9n IHVwd2FyZCBjb3VudGVyIHRoYXQgZ2VuZXJhdGVzIGEgcHVsc2Ugb24gdGhlIHJlc2V0IHBpbiBv bgotICogb3ZlcmZsb3cgY29uZGl0aW9uCi0gKi8KLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9k X2NsYXNzX3N5c2NvbmZpZyBvbWFwMnh4eF93ZF90aW1lcl9zeXNjID0gewotCS5yZXZfb2Zmcwk9 IDB4MDAwMCwKLQkuc3lzY19vZmZzCT0gMHgwMDEwLAotCS5zeXNzX29mZnMJPSAweDAwMTQsCi0J LnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfRU1VRlJFRSB8IFNZU0NfSEFTX1NPRlRSRVNFVCB8Ci0J CQkgICBTWVNDX0hBU19BVVRPSURMRSB8IFNZU1NfSEFTX1JFU0VUX1NUQVRVUyksCi0JLnN5c2Nf ZmllbGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21h cF9od21vZF9jbGFzcyBvbWFwMnh4eF93ZF90aW1lcl9od21vZF9jbGFzcyA9IHsKLQkubmFtZQkJ PSAid2RfdGltZXIiLAotCS5zeXNjCQk9ICZvbWFwMnh4eF93ZF90aW1lcl9zeXNjLAotCS5wcmVf c2h1dGRvd24JPSAmb21hcDJfd2RfdGltZXJfZGlzYWJsZSwKLQkucmVzZXQJCT0gJm9tYXAyX3dk X3RpbWVyX3Jlc2V0LAotfTsKLQotLyoKLSAqICdncGlvJyBjbGFzcwotICogZ2VuZXJhbCBwdXJw b3NlIGlvIG1vZHVsZQotICovCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29u ZmlnIG9tYXAyeHh4X2dwaW9fc3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDAwMDAsCi0JLnN5c2Nf b2Zmcwk9IDB4MDAxMCwKLQkuc3lzc19vZmZzCT0gMHgwMDE0LAotCS5zeXNjX2ZsYWdzCT0gKFNZ U0NfSEFTX0VOQVdBS0VVUCB8IFNZU0NfSEFTX1NJRExFTU9ERSB8Ci0JCQkgICBTWVNDX0hBU19T T0ZUUkVTRVQgfCBTWVNDX0hBU19BVVRPSURMRSB8Ci0JCQkgICBTWVNTX0hBU19SRVNFVF9TVEFU VVMpLAotCS5pZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJU KSwKLQkuc3lzY19maWVsZHMJPSAmb21hcF9od21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RydWN0 IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJ4eHhfZ3Bpb19od21vZF9jbGFzcyA9IHsKLQkubmFtZSA9 ICJncGlvIiwKLQkuc3lzYyA9ICZvbWFwMnh4eF9ncGlvX3N5c2MsCi19OwotCi0vKgotICogJ21h aWxib3gnIGNsYXNzCi0gKiBtYWlsYm94IG1vZHVsZSBhbGxvd2luZyBjb21tdW5pY2F0aW9uIGJl dHdlZW4gdGhlIG9uLWNoaXAgcHJvY2Vzc29ycwotICogdXNpbmcgYSBxdWV1ZWQgbWFpbGJveC1p bnRlcnJ1cHQgbWVjaGFuaXNtLgotICovCi0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFz c19zeXNjb25maWcgb21hcDJ4eHhfbWFpbGJveF9zeXNjID0gewotCS5yZXZfb2Zmcwk9IDB4MDAw LAotCS5zeXNjX29mZnMJPSAweDAxMCwKLQkuc3lzc19vZmZzCT0gMHgwMTQsCi0JLnN5c2NfZmxh Z3MJPSAoU1lTQ19IQVNfQ0xPQ0tBQ1RJVklUWSB8IFNZU0NfSEFTX1NJRExFTU9ERSB8Ci0JCQkg ICBTWVNDX0hBU19TT0ZUUkVTRVQgfCBTWVNDX0hBU19BVVRPSURMRSksCi0JLmlkbGVtb2Rlcwk9 IChTSURMRV9GT1JDRSB8IFNJRExFX05PIHwgU0lETEVfU01BUlQpLAotCS5zeXNjX2ZpZWxkcwk9 ICZvbWFwX2h3bW9kX3N5c2NfdHlwZTEsCi19OwotCi1zdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBv bWFwMnh4eF9tYWlsYm94X2h3bW9kX2NsYXNzID0gewotCS5uYW1lCT0gIm1haWxib3giLAotCS5z eXNjCT0gJm9tYXAyeHh4X21haWxib3hfc3lzYywKLX07Ci0KLS8qCi0gKiAnbWNzcGknIGNsYXNz Ci0gKiBtdWx0aWNoYW5uZWwgc2VyaWFsIHBvcnQgaW50ZXJmYWNlIChtY3NwaSkgLyBtYXN0ZXIv c2xhdmUgc3luY2hyb25vdXMgc2VyaWFsCi0gKiBidXMKLSAqLwotCi1zdGF0aWMgc3RydWN0IG9t YXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIG9tYXAyeHh4X21jc3BpX3N5c2MgPSB7Ci0JLnJldl9v ZmZzCT0gMHgwMDAwLAotCS5zeXNjX29mZnMJPSAweDAwMTAsCi0JLnN5c3Nfb2Zmcwk9IDB4MDAx NCwKLQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19DTE9DS0FDVElWSVRZIHwgU1lTQ19IQVNfU0lE TEVNT0RFIHwKLQkJCQlTWVNDX0hBU19FTkFXQUtFVVAgfCBTWVNDX0hBU19TT0ZUUkVTRVQgfAot CQkJCVNZU0NfSEFTX0FVVE9JRExFIHwgU1lTU19IQVNfUkVTRVRfU1RBVFVTKSwKLQkuaWRsZW1v ZGVzCT0gKFNJRExFX0ZPUkNFIHwgU0lETEVfTk8gfCBTSURMRV9TTUFSVCksCi0JLnN5c2NfZmll bGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0cnVjdCBvbWFwX2h3bW9kX2Ns YXNzIG9tYXAyeHh4X21jc3BpX2NsYXNzID0gewotCS5uYW1lCT0gIm1jc3BpIiwKLQkuc3lzYwk9 ICZvbWFwMnh4eF9tY3NwaV9zeXNjLAotfTsKLQotLyoKLSAqICdncG1jJyBjbGFzcwotICogZ2Vu ZXJhbCBwdXJwb3NlIG1lbW9yeSBjb250cm9sbGVyCi0gKi8KLQotc3RhdGljIHN0cnVjdCBvbWFw X2h3bW9kX2NsYXNzX3N5c2NvbmZpZyBvbWFwMnh4eF9ncG1jX3N5c2MgPSB7Ci0JLnJldl9vZmZz CT0gMHgwMDAwLAotCS5zeXNjX29mZnMJPSAweDAwMTAsCi0JLnN5c3Nfb2Zmcwk9IDB4MDAxNCwK LQkuc3lzY19mbGFncwk9IChTWVNDX0hBU19BVVRPSURMRSB8IFNZU0NfSEFTX1NJRExFTU9ERSB8 Ci0JCQkgICBTWVNDX0hBU19TT0ZUUkVTRVQgfCBTWVNTX0hBU19SRVNFVF9TVEFUVVMpLAotCS5p ZGxlbW9kZXMJPSAoU0lETEVfRk9SQ0UgfCBTSURMRV9OTyB8IFNJRExFX1NNQVJUKSwKLQkuc3lz Y19maWVsZHMJPSAmb21hcF9od21vZF9zeXNjX3R5cGUxLAotfTsKLQotc3RhdGljIHN0cnVjdCBv bWFwX2h3bW9kX2NsYXNzIG9tYXAyeHh4X2dwbWNfaHdtb2RfY2xhc3MgPSB7Ci0JLm5hbWUJPSAi Z3BtYyIsCi0JLnN5c2MJPSAmb21hcDJ4eHhfZ3BtY19zeXNjLAotfTsKLQotLyoKLSAqIElQIGJs b2NrcwotICovCi0KLS8qIEwzICovCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9sM19tYWlu X2h3bW9kID0gewotCS5uYW1lCQk9ICJsM19tYWluIiwKLQkuY2xhc3MJCT0gJmwzX2h3bW9kX2Ns YXNzLAotCS5mbGFncwkJPSBIV01PRF9OT19JRExFU1QsCi19OwotCi0vKiBMNCBDT1JFICovCi1z dHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9sNF9jb3JlX2h3bW9kID0gewotCS5uYW1lCQk9ICJs NF9jb3JlIiwKLQkuY2xhc3MJCT0gJmw0X2h3bW9kX2NsYXNzLAotCS5mbGFncwkJPSBIV01PRF9O T19JRExFU1QsCi19OwotCi0vKiBMNCBXS1VQICovCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4 eF9sNF93a3VwX2h3bW9kID0gewotCS5uYW1lCQk9ICJsNF93a3VwIiwKLQkuY2xhc3MJCT0gJmw0 X2h3bW9kX2NsYXNzLAotCS5mbGFncwkJPSBIV01PRF9OT19JRExFU1QsCi19OwotCi0vKiBNUFUg Ki8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X21wdV9od21vZCA9IHsKLQkubmFtZQkJPSAi bXB1IiwKLQkuY2xhc3MJCT0gJm1wdV9od21vZF9jbGFzcywKLQkubWFpbl9jbGsJPSAibXB1X2Nr IiwKLX07Ci0KLS8qIHRpbWVyMyAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXIz X2h3bW9kID0gewotCS5uYW1lCQk9ICJ0aW1lcjMiLAotCS5tYWluX2Nsawk9ICJncHQzX2ZjayIs Ci0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwK LQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9T VF9HUFQzX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21v ZF9jbGFzcywKLQkuZmxhZ3MgICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwK LX07Ci0KLS8qIHRpbWVyNCAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI0X2h3 bW9kID0gewotCS5uYW1lCQk9ICJ0aW1lcjQiLAotCS5tYWluX2Nsawk9ICJncHQ0X2ZjayIsCi0J LnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJ CS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9H UFQ0X1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9j bGFzcywKLQkuZmxhZ3MgICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07 Ci0KLS8qIHRpbWVyNSAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI1X2h3bW9k ID0gewotCS5uYW1lCQk9ICJ0aW1lcjUiLAotCS5tYWluX2Nsawk9ICJncHQ1X2ZjayIsCi0JLnBy Y20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5p ZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUFQ1 X1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9jbGFz cywKLQkuZmxhZ3MgICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07Ci0K LS8qIHRpbWVyNiAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI2X2h3bW9kID0g ewotCS5uYW1lCQk9ICJ0aW1lcjYiLAotCS5tYWluX2Nsawk9ICJncHQ2X2ZjayIsCi0JLnByY20J CT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxl c3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUFQ2X1NI SUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9jbGFzcywK LQkuZmxhZ3MgICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07Ci0KLS8q IHRpbWVyNyAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI3X2h3bW9kID0gewot CS5uYW1lCQk9ICJ0aW1lcjciLAotCS5tYWluX2Nsawk9ICJncHQ3X2ZjayIsCi0JLnByY20JCT0g ewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3Rf cmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUFQ3X1NISUZU LAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9jbGFzcywKLQku ZmxhZ3MgICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07Ci0KLS8qIHRp bWVyOCAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI4X2h3bW9kID0gewotCS5u YW1lCQk9ICJ0aW1lcjgiLAotCS5tYWluX2Nsawk9ICJncHQ4X2ZjayIsCi0JLnByY20JCT0gewot CQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVn X2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUFQ4X1NISUZULAot CQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9jbGFzcywKLQkuZmxh Z3MgICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07Ci0KLS8qIHRpbWVy OSAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI5X2h3bW9kID0gewotCS5uYW1l CQk9ICJ0aW1lcjkiLAotCS5tYWluX2Nsawk9ICJncHQ5X2ZjayIsCi0JLnByY20JCT0gewotCQku b21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lk ID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUFQ5X1NISUZULAotCQl9 LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9jbGFzcywKLQkuZmxhZ3Mg ICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07Ci0KLS8qIHRpbWVyMTAg Ki8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyMTBfaHdtb2QgPSB7Ci0JLm5hbWUJ CT0gInRpbWVyMTAiLAotCS5tYWluX2Nsawk9ICJncHQxMF9mY2siLAotCS5wcmNtCQk9IHsKLQkJ Lm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19p ZCA9IDEsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0gT01BUDI0WFhfU1RfR1BUMTBfU0hJRlQsCi0J CX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9tYXAyeHh4X3RpbWVyX2h3bW9kX2NsYXNzLAotCS5mbGFn cyAgICAgICAgICA9IEhXTU9EX1NFVF9ERUZBVUxUX0NMT0NLQUNULAotfTsKLQotLyogdGltZXIx MSAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXIxMV9od21vZCA9IHsKLQkubmFt ZQkJPSAidGltZXIxMSIsCi0JLm1haW5fY2xrCT0gImdwdDExX2ZjayIsCi0JLnByY20JCT0gewot CQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVn X2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUFQxMV9TSElGVCwK LQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfdGltZXJfaHdtb2RfY2xhc3MsCi0JLmZs YWdzICAgICAgICAgID0gSFdNT0RfU0VUX0RFRkFVTFRfQ0xPQ0tBQ1QsCi19OwotCi0vKiB0aW1l cjEyICovCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF90aW1lcjEyX2h3bW9kID0gewotCS5u YW1lCQk9ICJ0aW1lcjEyIiwKLQkubWFpbl9jbGsJPSAiZ3B0MTJfZmNrIiwKLQkucHJjbQkJPSB7 Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9y ZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNFhYX1NUX0dQVDEyX1NISUZU LAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF90aW1lcl9od21vZF9jbGFzcywKLQku ZmxhZ3MgICAgICAgICAgPSBIV01PRF9TRVRfREVGQVVMVF9DTE9DS0FDVCwKLX07Ci0KLS8qIHdk X3RpbWVyMiAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfd2RfdGltZXIyX2h3bW9kID0g ewotCS5uYW1lCQk9ICJ3ZF90aW1lcjIiLAotCS5jbGFzcwkJPSAmb21hcDJ4eHhfd2RfdGltZXJf aHdtb2RfY2xhc3MsCi0JLm1haW5fY2xrCT0gIm1wdV93ZHRfZmNrIiwKLQkucHJjbQkJPSB7Ci0J CS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IFdLVVBfTU9ELAotCQkJLmlkbGVzdF9yZWdf aWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNFhYX1NUX01QVV9XRFRfU0hJRlQs Ci0JCX0sCi0JfSwKLX07Ci0KLS8qIFVBUlQxICovCi0KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAy eHh4X3VhcnQxX2h3bW9kID0gewotCS5uYW1lCQk9ICJ1YXJ0MSIsCi0JLm1haW5fY2xrCT0gInVh cnQxX2ZjayIsCi0JLmZsYWdzCQk9IERFQlVHX09NQVAyVUFSVDFfRkxBR1MgfCBIV01PRF9TV1NV UF9TSURMRV9BQ1QsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMg PSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQg PSBPTUFQMjRYWF9FTl9VQVJUMV9TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJf dWFydF9jbGFzcywKLX07Ci0KLS8qIFVBUlQyICovCi0KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAy eHh4X3VhcnQyX2h3bW9kID0gewotCS5uYW1lCQk9ICJ1YXJ0MiIsCi0JLm1haW5fY2xrCT0gInVh cnQyX2ZjayIsCi0JLmZsYWdzCQk9IERFQlVHX09NQVAyVUFSVDJfRkxBR1MgfCBIV01PRF9TV1NV UF9TSURMRV9BQ1QsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMg PSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5pZGxlc3RfaWRsZV9iaXQg PSBPTUFQMjRYWF9FTl9VQVJUMl9TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJf dWFydF9jbGFzcywKLX07Ci0KLS8qIFVBUlQzICovCi0KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAy eHh4X3VhcnQzX2h3bW9kID0gewotCS5uYW1lCQk9ICJ1YXJ0MyIsCi0JLm1haW5fY2xrCT0gInVh cnQzX2ZjayIsCi0JLmZsYWdzCQk9IERFQlVHX09NQVAyVUFSVDNfRkxBR1MgfCBIV01PRF9TV1NV UF9TSURMRV9BQ1QsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMg PSBDT1JFX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMiwKLQkJCS5pZGxlc3RfaWRsZV9iaXQg PSBPTUFQMjRYWF9FTl9VQVJUM19TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFzcwkJPSAmb21hcDJf dWFydF9jbGFzcywKLX07Ci0KLS8qIGRzcyAqLwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2Rf b3B0X2NsayBkc3Nfb3B0X2Nsa3NbXSA9IHsKLQkvKgotCSAqIFRoZSBEU1MgSFcgbmVlZHMgYWxs IERTUyBjbG9ja3MgZW5hYmxlZCBkdXJpbmcgcmVzZXQuIFRoZSBkc3NfY29yZQotCSAqIGRyaXZl ciBkb2VzIG5vdCB1c2UgdGhlc2UgY2xvY2tzLgotCSAqLwotCXsgLnJvbGUgPSAidHZfY2xrIiwg LmNsayA9ICJkc3NfNTRtX2ZjayIgfSwKLQl7IC5yb2xlID0gInN5c19jbGsiLCAuY2xrID0gImRz czJfZmNrIiB9LAotfTsKLQotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZHNzX2NvcmVfaHdt b2QgPSB7Ci0JLm5hbWUJCT0gImRzc19jb3JlIiwKLQkuY2xhc3MJCT0gJm9tYXAyX2Rzc19od21v ZF9jbGFzcywKLQkubWFpbl9jbGsJPSAiZHNzMV9mY2siLCAvKiBpbnN0ZWFkIG9mIGRzc19mY2sg Ki8KLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9E LAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQl9LAotCX0sCi0JLm9wdF9jbGtzCT0gZHNzX29w dF9jbGtzLAotCS5vcHRfY2xrc19jbnQgPSBBUlJBWV9TSVpFKGRzc19vcHRfY2xrcyksCi0JLmZs YWdzCQk9IEhXTU9EX05PX0lETEVTVCB8IEhXTU9EX0NPTlRST0xfT1BUX0NMS1NfSU5fUkVTRVQs Ci19OwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9kc3NfZGlzcGNfaHdtb2QgPSB7Ci0J Lm5hbWUJCT0gImRzc19kaXNwYyIsCi0JLmNsYXNzCQk9ICZvbWFwMl9kaXNwY19od21vZF9jbGFz cywKLQkubWFpbl9jbGsJPSAiZHNzMV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewot CQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCX0s Ci0JfSwKLQkuZmxhZ3MJCT0gSFdNT0RfTk9fSURMRVNULAotCS5kZXZfYXR0cgk9ICZvbWFwMl8z X2Rzc19kaXNwY19kZXZfYXR0ciwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9od21vZF9vcHRf Y2xrIGRzc19yZmJpX29wdF9jbGtzW10gPSB7Ci0JeyAucm9sZSA9ICJpY2siLCAuY2xrID0gImRz c19pY2siIH0sCi19OwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9kc3NfcmZiaV9od21v ZCA9IHsKLQkubmFtZQkJPSAiZHNzX3JmYmkiLAotCS5jbGFzcwkJPSAmb21hcDJfcmZiaV9od21v ZF9jbGFzcywKLQkubWFpbl9jbGsJPSAiZHNzMV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAy ID0gewotCQkJLm1vZHVsZV9vZmZzID0gQ09SRV9NT0QsCi0JCX0sCi0JfSwKLQkub3B0X2Nsa3MJ PSBkc3NfcmZiaV9vcHRfY2xrcywKLQkub3B0X2Nsa3NfY250CT0gQVJSQVlfU0laRShkc3NfcmZi aV9vcHRfY2xrcyksCi0JLmZsYWdzCQk9IEhXTU9EX05PX0lETEVTVCwKLX07Ci0KLXN0cnVjdCBv bWFwX2h3bW9kIG9tYXAyeHh4X2Rzc192ZW5jX2h3bW9kID0gewotCS5uYW1lCQk9ICJkc3NfdmVu YyIsCi0JLmNsYXNzCQk9ICZvbWFwMl92ZW5jX2h3bW9kX2NsYXNzLAotCS5tYWluX2Nsawk9ICJk c3NfNTRtX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMg PSBDT1JFX01PRCwKLQkJfSwKLQl9LAotCS5mbGFncwkJPSBIV01PRF9OT19JRExFU1QsCi19Owot Ci0vKiBncGlvMSAqLwotc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZ3BpbzFfaHdtb2QgPSB7 Ci0JLm5hbWUJCT0gImdwaW8xIiwKLQkuZmxhZ3MJCT0gSFdNT0RfQ09OVFJPTF9PUFRfQ0xLU19J Tl9SRVNFVCwKLQkubWFpbl9jbGsJPSAiZ3Bpb3NfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFw MiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IFdLVVBfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAx LAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNFhYX1NUX0dQSU9TX1NISUZULAotCQl9LAot CX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF9ncGlvX2h3bW9kX2NsYXNzLAotfTsKLQotLyogZ3Bp bzIgKi8KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2dwaW8yX2h3bW9kID0gewotCS5uYW1l CQk9ICJncGlvMiIsCi0JLmZsYWdzCQk9IEhXTU9EX0NPTlRST0xfT1BUX0NMS1NfSU5fUkVTRVQs Ci0JLm1haW5fY2xrCT0gImdwaW9zX2ZjayIsCi0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0J CQkubW9kdWxlX29mZnMgPSBXS1VQX01PRCwKLQkJCS5pZGxlc3RfcmVnX2lkID0gMSwKLQkJCS5p ZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9TVF9HUElPU19TSElGVCwKLQkJfSwKLQl9LAotCS5j bGFzcwkJPSAmb21hcDJ4eHhfZ3Bpb19od21vZF9jbGFzcywKLX07Ci0KLS8qIGdwaW8zICovCi1z dHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9ncGlvM19od21vZCA9IHsKLQkubmFtZQkJPSAiZ3Bp bzMiLAotCS5mbGFncwkJPSBIV01PRF9DT05UUk9MX09QVF9DTEtTX0lOX1JFU0VULAotCS5tYWlu X2Nsawk9ICJncGlvc19mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVs ZV9vZmZzID0gV0tVUF9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lk bGVfYml0ID0gT01BUDI0WFhfU1RfR1BJT1NfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0g Jm9tYXAyeHh4X2dwaW9faHdtb2RfY2xhc3MsCi19OwotCi0vKiBncGlvNCAqLwotc3RydWN0IG9t YXBfaHdtb2Qgb21hcDJ4eHhfZ3BpbzRfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gImdwaW80IiwKLQku ZmxhZ3MJCT0gSFdNT0RfQ09OVFJPTF9PUFRfQ0xLU19JTl9SRVNFVCwKLQkubWFpbl9jbGsJPSAi Z3Bpb3NfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9 IFdLVVBfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9 IE9NQVAyNFhYX1NUX0dQSU9TX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4 eF9ncGlvX2h3bW9kX2NsYXNzLAotfTsKLQotLyogbWNzcGkxICovCi1zdHJ1Y3Qgb21hcF9od21v ZCBvbWFwMnh4eF9tY3NwaTFfaHdtb2QgPSB7Ci0JLm5hbWUJCT0gIm1jc3BpMSIsCi0JLm1haW5f Y2xrCT0gIm1jc3BpMV9mY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVs ZV9vZmZzID0gQ09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDEsCi0JCQkuaWRsZXN0X2lk bGVfYml0ID0gT01BUDI0WFhfU1RfTUNTUEkxX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9 ICZvbWFwMnh4eF9tY3NwaV9jbGFzcywKLX07Ci0KLS8qIG1jc3BpMiAqLwotc3RydWN0IG9tYXBf aHdtb2Qgb21hcDJ4eHhfbWNzcGkyX2h3bW9kID0gewotCS5uYW1lCQk9ICJtY3NwaTIiLAotCS5t YWluX2Nsawk9ICJtY3NwaTJfZmNrIiwKLQkucHJjbQkJPSB7Ci0JCS5vbWFwMiA9IHsKLQkJCS5t b2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdfaWQgPSAxLAotCQkJLmlkbGVz dF9pZGxlX2JpdCA9IE9NQVAyNFhYX1NUX01DU1BJMl9TSElGVCwKLQkJfSwKLQl9LAotCS5jbGFz cwkJPSAmb21hcDJ4eHhfbWNzcGlfY2xhc3MsCi19OwotCi0vKiBncG1jICovCi1zdHJ1Y3Qgb21h cF9od21vZCBvbWFwMnh4eF9ncG1jX2h3bW9kID0gewotCS5uYW1lCQk9ICJncG1jIiwKLQkuY2xh c3MJCT0gJm9tYXAyeHh4X2dwbWNfaHdtb2RfY2xhc3MsCi0JLm1haW5fY2xrCT0gImdwbWNfZmNr IiwKLQkvKiBTa2lwIHJlc2V0IGZvciBDT05GSUdfT01BUF9HUE1DX0RFQlVHIGZvciBib290bG9h ZGVyIHRpbWluZ3MgKi8KLQkuZmxhZ3MJCT0gSFdNT0RfTk9fSURMRVNUIHwgREVCVUdfT01BUF9H UE1DX0hXTU9EX0ZMQUdTLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyCT0gewotCQkJLm1vZHVsZV9v ZmZzID0gQ09SRV9NT0QsCi0JCX0sCi0JfSwKLX07Ci0KLS8qIFJORyAqLwotCi1zdGF0aWMgc3Ry dWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIG9tYXAyX3JuZ19zeXNjID0gewotCS5yZXZf b2Zmcwk9IDB4M2MsCi0JLnN5c2Nfb2Zmcwk9IDB4NDAsCi0JLnN5c3Nfb2Zmcwk9IDB4NDQsCi0J LnN5c2NfZmxhZ3MJPSAoU1lTQ19IQVNfU09GVFJFU0VUIHwgU1lTQ19IQVNfQVVUT0lETEUgfAot CQkJICAgU1lTU19IQVNfUkVTRVRfU1RBVFVTKSwKLQkuc3lzY19maWVsZHMJPSAmb21hcF9od21v ZF9zeXNjX3R5cGUxLAotfTsKLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIG9tYXAy X3JuZ19od21vZF9jbGFzcyA9IHsKLQkubmFtZQkJPSAicm5nIiwKLQkuc3lzYwkJPSAmb21hcDJf cm5nX3N5c2MsCi19OwotCi1zdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9ybmdfaHdtb2QgPSB7 Ci0JLm5hbWUJCT0gInJuZyIsCi0JLm1haW5fY2xrCT0gImw0X2NrIiwKLQkucHJjbQkJPSB7Ci0J CS5vbWFwMiA9IHsKLQkJCS5tb2R1bGVfb2ZmcyA9IENPUkVfTU9ELAotCQkJLmlkbGVzdF9yZWdf aWQgPSA0LAotCQkJLmlkbGVzdF9pZGxlX2JpdCA9IE9NQVAyNFhYX1NUX1JOR19TSElGVCwKLQkJ fSwKLQl9LAotCS8qCi0JICogWFhYIFRoZSBmaXJzdCByZWFkIGZyb20gdGhlIFNZU1NUQVRVUyBy ZWdpc3RlciBvZiB0aGUgUk5HCi0JICogYWZ0ZXIgdGhlIFNZU0NPTkZJRyBTT0ZUUkVTRVQgYml0 IGlzIHNldCB0cmlnZ2VycyBhbgotCSAqIGltcHJlY2lzZSBleHRlcm5hbCBhYm9ydC4gIEl0J3Mg dW5jbGVhciB3aHkgdGhpcyBoYXBwZW5zLgotCSAqIFVudGlsIHRoaXMgaXMgYW5hbHl6ZWQsIHNr aXAgdGhlIElQIGJsb2NrIHJlc2V0LgotCSAqLwotCS5mbGFncwkJPSBIV01PRF9JTklUX05PX1JF U0VULAotCS5jbGFzcwkJPSAmb21hcDJfcm5nX2h3bW9kX2NsYXNzLAotfTsKLQotLyogU0hBTSAq LwotCi1zdGF0aWMgc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Nfc3lzY29uZmlnIG9tYXAyX3NoYW1f c3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDVjLAotCS5zeXNjX29mZnMJPSAweDYwLAotCS5zeXNz X29mZnMJPSAweDY0LAotCS5zeXNjX2ZsYWdzCT0gKFNZU0NfSEFTX1NPRlRSRVNFVCB8IFNZU0Nf SEFTX0FVVE9JRExFIHwKLQkJCSAgIFNZU1NfSEFTX1JFU0VUX1NUQVRVUyksCi0JLnN5c2NfZmll bGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgb21hcF9o d21vZF9jbGFzcyBvbWFwMnh4eF9zaGFtX2NsYXNzID0gewotCS5uYW1lCT0gInNoYW0iLAotCS5z eXNjCT0gJm9tYXAyX3NoYW1fc3lzYywKLX07Ci0KLXN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4 X3NoYW1faHdtb2QgPSB7Ci0JLm5hbWUJCT0gInNoYW0iLAotCS5tYWluX2Nsawk9ICJsNF9jayIs Ci0JLnByY20JCT0gewotCQkub21hcDIgPSB7Ci0JCQkubW9kdWxlX29mZnMgPSBDT1JFX01PRCwK LQkJCS5pZGxlc3RfcmVnX2lkID0gNCwKLQkJCS5pZGxlc3RfaWRsZV9iaXQgPSBPTUFQMjRYWF9T VF9TSEFfU0hJRlQsCi0JCX0sCi0JfSwKLQkuY2xhc3MJCT0gJm9tYXAyeHh4X3NoYW1fY2xhc3Ms Ci19OwotCi0vKiBBRVMgKi8KLQotc3RhdGljIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzX3N5c2Nv bmZpZyBvbWFwMl9hZXNfc3lzYyA9IHsKLQkucmV2X29mZnMJPSAweDQ0LAotCS5zeXNjX29mZnMJ PSAweDQ4LAotCS5zeXNzX29mZnMJPSAweDRjLAotCS5zeXNjX2ZsYWdzCT0gKFNZU0NfSEFTX1NP RlRSRVNFVCB8IFNZU0NfSEFTX0FVVE9JRExFIHwKLQkJCSAgIFNZU1NfSEFTX1JFU0VUX1NUQVRV UyksCi0JLnN5c2NfZmllbGRzCT0gJm9tYXBfaHdtb2Rfc3lzY190eXBlMSwKLX07Ci0KLXN0YXRp YyBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFwMnh4eF9hZXNfY2xhc3MgPSB7Ci0JLm5hbWUJ PSAiYWVzIiwKLQkuc3lzYwk9ICZvbWFwMl9hZXNfc3lzYywKLX07Ci0KLXN0cnVjdCBvbWFwX2h3 bW9kIG9tYXAyeHh4X2Flc19od21vZCA9IHsKLQkubmFtZQkJPSAiYWVzIiwKLQkubWFpbl9jbGsJ PSAibDRfY2siLAotCS5wcmNtCQk9IHsKLQkJLm9tYXAyID0gewotCQkJLm1vZHVsZV9vZmZzID0g Q09SRV9NT0QsCi0JCQkuaWRsZXN0X3JlZ19pZCA9IDQsCi0JCQkuaWRsZXN0X2lkbGVfYml0ID0g T01BUDI0WFhfU1RfQUVTX1NISUZULAotCQl9LAotCX0sCi0JLmNsYXNzCQk9ICZvbWFwMnh4eF9h ZXNfY2xhc3MsCi19OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9k X2NvbW1vbl9kYXRhLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2RfY29tbW9uX2Rh dGEuaAppbmRleCA2OWRkZGM1M2UxZDguLjhiMjcwY2IzZjY0YiAxMDA2NDQKLS0tIGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kX2NvbW1vbl9kYXRhLmgKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9vbWFwX2h3bW9kX2NvbW1vbl9kYXRhLmgKQEAgLTE1LDY4ICsxNSw2IEBACiAjaW5j bHVkZSAiY29tbW9uLmgiCiAjaW5jbHVkZSAiZGlzcGxheS5oIgogCi0vKiBDb21tb24gSVAgYmxv Y2sgZGF0YSBhY3Jvc3MgT01BUDJ4eHggKi8KLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFw Mnh4eF9sM19tYWluX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2w0 X2NvcmVfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfbDRfd2t1cF9o d21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9tcHVfaHdtb2Q7Ci1leHRl cm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXIzX2h3bW9kOwotZXh0ZXJuIHN0cnVj dCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyNF9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9o d21vZCBvbWFwMnh4eF90aW1lcjVfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21h cDJ4eHhfdGltZXI2X2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3Rp bWVyN19od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF90aW1lcjhfaHdt b2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXI5X2h3bW9kOwotZXh0 ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X3RpbWVyMTBfaHdtb2Q7Ci1leHRlcm4gc3Ry dWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfdGltZXIxMV9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21h cF9od21vZCBvbWFwMnh4eF90aW1lcjEyX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9k IG9tYXAyeHh4X3dkX3RpbWVyMl9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFw Mnh4eF91YXJ0MV9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF91YXJ0 Ml9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF91YXJ0M19od21vZDsK LWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9kc3NfY29yZV9od21vZDsKLWV4dGVy biBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9kc3NfZGlzcGNfaHdtb2Q7Ci1leHRlcm4gc3Ry dWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZHNzX3JmYmlfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9t YXBfaHdtb2Qgb21hcDJ4eHhfZHNzX3ZlbmNfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdt b2Qgb21hcDJ4eHhfZ3BpbzFfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4 eHhfZ3BpbzJfaHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZ3BpbzNf aHdtb2Q7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfZ3BpbzRfaHdtb2Q7Ci1l eHRlcm4gc3RydWN0IG9tYXBfaHdtb2Qgb21hcDJ4eHhfbWNzcGkxX2h3bW9kOwotZXh0ZXJuIHN0 cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X21jc3BpMl9od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21h cF9od21vZCBvbWFwMnh4eF9ncG1jX2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9t YXAyeHh4X3JuZ19od21vZDsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZCBvbWFwMnh4eF9zaGFt X2h3bW9kOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kIG9tYXAyeHh4X2Flc19od21vZDsKLQot LyogQ29tbW9uIGludGVyZmFjZSBkYXRhIGFjcm9zcyBPTUFQMnh4eCAqLwotZXh0ZXJuIHN0cnVj dCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sM19tYWluX19sNF9jb3JlOwotZXh0ZXJuIHN0 cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9tcHVfX2wzX21haW47Ci1leHRlcm4gc3Ry dWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2Rzc19fbDM7Ci1leHRlcm4gc3RydWN0IG9t YXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX2w0X3drdXA7Ci1leHRlcm4gc3RydWN0 IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyX2w0X2NvcmVfX3VhcnQxOwotZXh0ZXJuIHN0cnVjdCBv bWFwX2h3bW9kX29jcF9pZiBvbWFwMl9sNF9jb3JlX191YXJ0MjsKLWV4dGVybiBzdHJ1Y3Qgb21h cF9od21vZF9vY3BfaWYgb21hcDJfbDRfY29yZV9fdWFydDM7Ci1leHRlcm4gc3RydWN0IG9tYXBf aHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX21jc3BpMTsKLWV4dGVybiBzdHJ1Y3Qgb21h cF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fbWNzcGkyOwotZXh0ZXJuIHN0cnVjdCBv bWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjM7Ci1leHRlcm4gc3RydWN0 IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNDsKLWV4dGVybiBzdHJ1 Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI1OwotZXh0ZXJuIHN0 cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjY7Ci1leHRlcm4g c3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyNzsKLWV4dGVy biBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9fdGltZXI4OwotZXh0 ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9jb3JlX190aW1lcjk7Ci1l eHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVyMTA7 Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3RpbWVy MTE7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVfX3Rp bWVyMTI7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAyeHh4X2w0X2NvcmVf X2RzczsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhfbDRfY29yZV9f ZHNzX2Rpc3BjOwotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiBvbWFwMnh4eF9sNF9j b3JlX19kc3NfcmZiaTsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4eHhf bDRfY29yZV9fZHNzX3ZlbmM7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIG9tYXAy eHh4X2w0X2NvcmVfX3JuZzsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4 eHhfbDRfY29yZV9fc2hhbTsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgb21hcDJ4 eHhfbDRfY29yZV9fYWVzOwotCiAvKiBPTUFQIGh3bW9kIGNsYXNzZXMgLSBmb3J3YXJkIGRlY2xh cmF0aW9ucyAqLwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGwzX2h3bW9kX2NsYXNz OwogZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIGw0X2h3bW9kX2NsYXNzOwpAQCAtODgs MTAgKzI2LDYgQEAgZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIG9tYXAyX3JmYmlfaHdt b2RfY2xhc3M7CiBleHRlcm4gc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJfdmVuY19od21v ZF9jbGFzczsKIGV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFwMl9oZHExd19jbGFz czsKIAotZXh0ZXJuIHN0cnVjdCBvbWFwX2h3bW9kX2NsYXNzIG9tYXAyeHh4X2dwaW9faHdtb2Rf Y2xhc3M7Ci1leHRlcm4gc3RydWN0IG9tYXBfaHdtb2RfY2xhc3Mgb21hcDJ4eHhfbWFpbGJveF9o d21vZF9jbGFzczsKLWV4dGVybiBzdHJ1Y3Qgb21hcF9od21vZF9jbGFzcyBvbWFwMnh4eF9tY3Nw aV9jbGFzczsKLQogZXh0ZXJuIHN0cnVjdCBvbWFwX2Rzc19kaXNwY19kZXZfYXR0ciBvbWFwMl8z X2Rzc19kaXNwY19kZXZfYXR0cjsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LW9tYXAyL29wcDI0MjBfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9vcHAyNDIwX2RhdGEu YwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThhNDQ4ZjkzOGVhLi4wMDAwMDAwMDAw MDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vcHAyNDIwX2RhdGEuYworKysgL2Rldi9udWxs CkBAIC0xLDEzMSArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAot LyoKLSAqIG9wcDI0MjBfZGF0YS5jIC0gb2xkLXN0eWxlICJPUFAiIHRhYmxlIGZvciBPTUFQMjQy MAotICoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA5IFRleGFzIEluc3RydW1lbnRzLCBJbmMu Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIFJp Y2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KLSAqCi0gKiBUaGUgT01BUDIgcHJv Y2Vzc29yIGNhbiBiZSBydW4gYXQgc2V2ZXJhbCBkaXNjcmV0ZSAnUFJDTSBjb25maWd1cmF0aW9u cycuCi0gKiBUaGVzZSBjb25maWd1cmF0aW9ucyBhcmUgY2hhcmFjdGVyaXplZCBieSB2b2x0YWdl IGFuZCBzcGVlZCBmb3IgY2xvY2tzLgotICogVGhlIGRldmljZSBpcyBvbmx5IHZhbGlkYXRlZCBm b3IgY2VydGFpbiBjb21iaW5hdGlvbnMuIE9uZSB3YXkgdG8gZXhwcmVzcwotICogdGhlc2UgY29t YmluYXRpb25zIGlzIHZpYSB0aGUgJ3JhdGlvcycgd2hpY2ggdGhlIGNsb2NrcyBvcGVyYXRlIHdp dGgKLSAqIHJlc3BlY3QgdG8gZWFjaCBvdGhlci4gVGhlc2UgcmF0aW8gc2V0cyBhcmUgZm9yIGEg Z2l2ZW4gdm9sdGFnZS9EUExMCi0gKiBzZXR0aW5nLiBBbGwgY29uZmlndXJhdGlvbnMgY2FuIGJl IGRlc2NyaWJlZCBieSBhIERQTEwgc2V0dGluZyBhbmQgYSByYXRpby4KLSAqCi0gKiBYWFggTWlz c2luZyB2b2x0YWdlIGRhdGEuCi0gKiBYWFggTWlzc2luZyAxOS4yTUh6IHN5c19jbGsgcmF0ZSBz ZXRzIChuZWVkZWQgZm9yIE44MDAvTjgxMCkKLSAqCi0gKiBUSGUgZm9ybWF0IGRlc2NyaWJlZCBp biB0aGlzIGZpbGUgaXMgZGVwcmVjYXRlZC4gIE9uY2UgYSByZWFzb25hYmxlCi0gKiBPUFAgQVBJ IGV4aXN0cywgdGhlIGRhdGEgaW4gdGhpcyBmaWxlIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gdXNl IGl0LgotICoKLSAqIFRoaXMgaXMgdGVjaG5pY2FsbHkgcGFydCBvZiB0aGUgT01BUDJ4eHggY2xv Y2sgY29kZS4KLSAqCi0gKiBDb25zaWRlcmFibGUgd29yayBpcyBzdGlsbCBuZWVkZWQgdG8gZnVs bHkgc3VwcG9ydCBkeW5hbWljIGZyZXF1ZW5jeQotICogY2hhbmdlcyBvbiBPTUFQMnh4eC1zZXJp ZXMgY2hpcHMuICBSZWFkZXJzIGludGVyZXN0ZWQgaW4gc3VjaCBhCi0gKiBwcm9qZWN0IGFyZSBl bmNvdXJhZ2VkIHRvIHJldmlldyB0aGUgTWFlbW8gRGlhYmxvIFJYLTM0IGFuZCBSWC00NAotICog a2VybmVsIHNvdXJjZSBhdDoKLSAqICAgICBodHRwOi8vcmVwb3NpdG9yeS5tYWVtby5vcmcvcG9v bC9kaWFibG8vZnJlZS9rL2tlcm5lbC1zb3VyY2UtZGlhYmxvLwotICovCi0KLSNpbmNsdWRlIDxs aW51eC9rZXJuZWwuaD4KLQotI2luY2x1ZGUgIm9wcDJ4eHguaCIKLSNpbmNsdWRlICJzZHJjLmgi Ci0jaW5jbHVkZSAiY2xvY2suaCIKLQotLyoKLSAqIEtleSBkaXZpZGVycyB3aGljaCBtYWtlIHVw IGEgUFJDTSBzZXQuIFJhdGlvcyBmb3IgYSBQUkNNIGFyZSBtYW5kYXRlZC4KLSAqIHh0YWxfc3Bl ZWQsIGRwbGxfc3BlZWQsIG1wdV9zcGVlZCwgQ01fQ0xLU0VMX01QVSwKLSAqIENNX0NMS1NFTF9E U1AsIENNX0NMS1NFTF9HRlgsIENNX0NMS1NFTDFfQ09SRSwgQ01fQ0xLU0VMMV9QTEwsCi0gKiBD TV9DTEtTRUwyX1BMTCwgQ01fQ0xLU0VMX01ETQotICoKLSAqIEZpbGxpbmcgaW4gdGFibGUgYmFz ZWQgb24gSDQgYm9hcmRzIGF2YWlsYWJsZS4gIFRoZXJlIGFyZSBxdWl0ZSBhCi0gKiBmZXcgbW9y ZSByYXRlIGNvbWJpbmF0aW9ucyB3aGljaCBjb3VsZCBiZSBkZWZpbmVkLgotICoKLSAqIFdoZW4g bXVsdGlwbGUgdmFsdWVzIGFyZSBkZWZpbmVkIHRoZSBzdGFydCB1cCB3aWxsIHRyeSBhbmQgY2hv b3NlCi0gKiB0aGUgZmFzdGVzdCBvbmUuIElmIGEgJ2Zhc3QnIHZhbHVlIGlzIGRlZmluZWQsIHRo ZW4gYXV0b21hdGljYWxseSwKLSAqIHRoZSAvMiBvbmUgc2hvdWxkIGJlIGluY2x1ZGVkIGFzIGl0 IGNhbiBiZSB1c2VkLiAgR2VuZXJhbGx5IGhhdmluZwotICogbW9yZSB0aGFuIG9uZSBmYXN0IHNl dCBkb2VzIG5vdCBtYWtlIHNlbnNlLCBhcyBzdGF0aWMgdGltaW5ncyBuZWVkCi0gKiB0byBiZSBj aGFuZ2VkIHRvIGNoYW5nZSB0aGUgc2V0LiAgVGhlIGV4Y2VwdGlvbiBpcyB0aGUgYnlwYXNzCi0g KiBzZXR0aW5nIHdoaWNoIGlzIGF2YWlsYWJsZSBmb3IgbG93IHBvd2VyIGJ5cGFzcy4KLSAqCi0g KiBOb3RlOiBUaGlzIHRhYmxlIG5lZWRzIHRvIGJlIHNvcnRlZCwgZmFzdGVzdCB0byBzbG93ZXN0 LgotICoqLwotY29uc3Qgc3RydWN0IHByY21fY29uZmlnIG9tYXAyNDIwX3JhdGVfdGFibGVbXSA9 IHsKLQkvKiBQUkNNIEkgLSBGQVNUICovCi0Je1MxMk0sIFM2NjBNLCBTMzMwTSwgUklfQ01fQ0xL U0VMX01QVV9WQUwsCQkvKiAzMzBNSHogQVJNICovCi0JCVJJX0NNX0NMS1NFTF9EU1BfVkFMLCBS SV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUklfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTUlfQ01fQ0xL U0VMMV9QTExfMTJfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8yeF9WQUwsIDAsIFNEUkNfUkZSX0NU UkxfMTY1TUh6LAotCQlSQVRFX0lOXzI0Mlh9LAotCi0JLyogUFJDTSBJSSAtIEZBU1QgKi8KLQl7 UzEyTSwgUzYwME0sIFMzMDBNLCBSSUlfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAzMDBNSHogQVJN ICovCi0JCVJJSV9DTV9DTEtTRUxfRFNQX1ZBTCwgUklJX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlS SUlfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTUlJX0NNX0NMS1NFTDFfUExMXzEyX1ZBTCwKLQkJTVhf Q0xLU0VMMl9QTExfMnhfVkFMLCAwLCBTRFJDX1JGUl9DVFJMXzEwME1IeiwKLQkJUkFURV9JTl8y NDJYfSwKLQotCXtTMTNNLCBTNjAwTSwgUzMwME0sIFJJSV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8q IDMwME1IeiBBUk0gKi8KLQkJUklJX0NNX0NMS1NFTF9EU1BfVkFMLCBSSUlfQ01fQ0xLU0VMX0dG WF9WQUwsCi0JCVJJSV9DTV9DTEtTRUwxX0NPUkVfVkFMLCBNSUlfQ01fQ0xLU0VMMV9QTExfMTNf VkFMLAotCQlNWF9DTEtTRUwyX1BMTF8yeF9WQUwsIDAsIFNEUkNfUkZSX0NUUkxfMTAwTUh6LAot CQlSQVRFX0lOXzI0Mlh9LAotCi0JLyogUFJDTSBJSUkgLSBGQVNUICovCi0Je1MxMk0sIFM1MzJN LCBTMjY2TSwgUklJSV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDI2Nk1IeiBBUk0gKi8KLQkJUklJ SV9DTV9DTEtTRUxfRFNQX1ZBTCwgUklJSV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUklJSV9DTV9D TEtTRUwxX0NPUkVfVkFMLCBNSUlJX0NNX0NMS1NFTDFfUExMXzEyX1ZBTCwKLQkJTVhfQ0xLU0VM Ml9QTExfMnhfVkFMLCAwLCBTRFJDX1JGUl9DVFJMXzEzM01IeiwKLQkJUkFURV9JTl8yNDJYfSwK LQotCXtTMTNNLCBTNTMyTSwgUzI2Nk0sIFJJSUlfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAyNjZN SHogQVJNICovCi0JCVJJSUlfQ01fQ0xLU0VMX0RTUF9WQUwsIFJJSUlfQ01fQ0xLU0VMX0dGWF9W QUwsCi0JCVJJSUlfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTUlJSV9DTV9DTEtTRUwxX1BMTF8xM19W QUwsCi0JCU1YX0NMS1NFTDJfUExMXzJ4X1ZBTCwgMCwgU0RSQ19SRlJfQ1RSTF8xMzNNSHosCi0J CVJBVEVfSU5fMjQyWH0sCi0KLQkvKiBQUkNNIElJIC0gU0xPVyAqLwotCXtTMTJNLCBTMzAwTSwg UzE1ME0sIFJJSV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDE1ME1IeiBBUk0gKi8KLQkJUklJX0NN X0NMS1NFTF9EU1BfVkFMLCBSSUlfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVJJSV9DTV9DTEtTRUwx X0NPUkVfVkFMLCBNSUlfQ01fQ0xLU0VMMV9QTExfMTJfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8y eF9WQUwsIDAsIFNEUkNfUkZSX0NUUkxfMTAwTUh6LAotCQlSQVRFX0lOXzI0Mlh9LAotCi0Je1Mx M00sIFMzMDBNLCBTMTUwTSwgUklJX0NNX0NMS1NFTF9NUFVfVkFMLAkJLyogMTUwTUh6IEFSTSAq LwotCQlSSUlfQ01fQ0xLU0VMX0RTUF9WQUwsIFJJSV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUklJ X0NNX0NMS1NFTDFfQ09SRV9WQUwsIE1JSV9DTV9DTEtTRUwxX1BMTF8xM19WQUwsCi0JCU1YX0NM S1NFTDJfUExMXzJ4X1ZBTCwgMCwgU0RSQ19SRlJfQ1RSTF8xMDBNSHosCi0JCVJBVEVfSU5fMjQy WH0sCi0KLQkvKiBQUkNNIElJSSAtIFNMT1cgKi8KLQl7UzEyTSwgUzI2Nk0sIFMxMzNNLCBSSUlJ X0NNX0NMS1NFTF9NUFVfVkFMLAkJLyogMTMzTUh6IEFSTSAqLwotCQlSSUlJX0NNX0NMS1NFTF9E U1BfVkFMLCBSSUlJX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSSUlJX0NNX0NMS1NFTDFfQ09SRV9W QUwsIE1JSUlfQ01fQ0xLU0VMMV9QTExfMTJfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8yeF9WQUws IDAsIFNEUkNfUkZSX0NUUkxfMTMzTUh6LAotCQlSQVRFX0lOXzI0Mlh9LAotCi0Je1MxM00sIFMy NjZNLCBTMTMzTSwgUklJSV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDEzM01IeiBBUk0gKi8KLQkJ UklJSV9DTV9DTEtTRUxfRFNQX1ZBTCwgUklJSV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUklJSV9D TV9DTEtTRUwxX0NPUkVfVkFMLCBNSUlJX0NNX0NMS1NFTDFfUExMXzEzX1ZBTCwKLQkJTVhfQ0xL U0VMMl9QTExfMnhfVkFMLCAwLCBTRFJDX1JGUl9DVFJMXzEzM01IeiwKLQkJUkFURV9JTl8yNDJY fSwKLQotCS8qIFBSQ00tVklJIChib290LWJ5cGFzcykgKi8KLQl7UzEyTSwgUzEyTSwgUzEyTSwg UlZJSV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDEyTUh6IEFSTSovCi0JCVJWSUlfQ01fQ0xLU0VM X0RTUF9WQUwsIFJWSUlfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVJWSUlfQ01fQ0xLU0VMMV9DT1JF X1ZBTCwgTVZJSV9DTV9DTEtTRUwxX1BMTF8xMl9WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzJ4X1ZB TCwgMCwgU0RSQ19SRlJfQ1RSTF9CWVBBU1MsCi0JCVJBVEVfSU5fMjQyWH0sCi0KLQkvKiBQUkNN LVZJSSAoYm9vdC1ieXBhc3MpICovCi0Je1MxM00sIFMxM00sIFMxM00sIFJWSUlfQ01fQ0xLU0VM X01QVV9WQUwsCQkvKiAxM01IeiBBUk0gKi8KLQkJUlZJSV9DTV9DTEtTRUxfRFNQX1ZBTCwgUlZJ SV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUlZJSV9DTV9DTEtTRUwxX0NPUkVfVkFMLCBNVklJX0NN X0NMS1NFTDFfUExMXzEzX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCAwLCBTRFJDX1JG Ul9DVFJMX0JZUEFTUywKLQkJUkFURV9JTl8yNDJYfSwKLQotCXsgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMH0sCi19OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vcHAy NDMwX2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb3BwMjQzMF9kYXRhLmMKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZDhiNTY2YTIzYS4uMDAwMDAwMDAwMDAwCi0tLSBhL2Fy Y2gvYXJtL21hY2gtb21hcDIvb3BwMjQzMF9kYXRhLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYg KzAsMCBAQAotLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLS8qCi0gKiBvcHAy NDMwX2RhdGEuYyAtIG9sZC1zdHlsZSAiT1BQIiB0YWJsZSBmb3IgT01BUDI0MzAKLSAqCi0gKiBD b3B5cmlnaHQgKEMpIDIwMDUtMjAwOSBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgotICogQ29weXJp Z2h0IChDKSAyMDA0LTIwMDkgTm9raWEgQ29ycG9yYXRpb24KLSAqCi0gKiBSaWNoYXJkIFdvb2Ry dWZmIDxyLXdvb2RydWZmMkB0aS5jb20+Ci0gKgotICogVGhlIE9NQVAyIHByb2Nlc3NvciBjYW4g YmUgcnVuIGF0IHNldmVyYWwgZGlzY3JldGUgJ1BSQ00gY29uZmlndXJhdGlvbnMnLgotICogVGhl c2UgY29uZmlndXJhdGlvbnMgYXJlIGNoYXJhY3Rlcml6ZWQgYnkgdm9sdGFnZSBhbmQgc3BlZWQg Zm9yIGNsb2Nrcy4KLSAqIFRoZSBkZXZpY2UgaXMgb25seSB2YWxpZGF0ZWQgZm9yIGNlcnRhaW4g Y29tYmluYXRpb25zLiBPbmUgd2F5IHRvIGV4cHJlc3MKLSAqIHRoZXNlIGNvbWJpbmF0aW9ucyBp cyB2aWEgdGhlICdyYXRpb3MnIHdoaWNoIHRoZSBjbG9ja3Mgb3BlcmF0ZSB3aXRoCi0gKiByZXNw ZWN0IHRvIGVhY2ggb3RoZXIuIFRoZXNlIHJhdGlvIHNldHMgYXJlIGZvciBhIGdpdmVuIHZvbHRh Z2UvRFBMTAotICogc2V0dGluZy4gQWxsIGNvbmZpZ3VyYXRpb25zIGNhbiBiZSBkZXNjcmliZWQg YnkgYSBEUExMIHNldHRpbmcgYW5kIGEgcmF0aW8uCi0gKgotICogMjQzMCBkaWZmZXJzIGZyb20g MjQyMCBpbiB0aGF0IHRoZXJlIGFyZSBubyBtb3JlIHBoYXNlIHN5bmNocm9uaXplcnMgdXNlZC4K LSAqIFRoZXkgYm90aCBoYXZlIGEgc2xpZ2h0bHkgZGlmZmVyZW50IGNsb2NrIGRvbWFpbiBzZXR1 cC4gMjQyMChpdmExLGRzcCkgdnMKLSAqIDI0MzAgKGl2YTIuMSwgTk9kc3AsIG1kbSkKLSAqCi0g KiBYWFggTWlzc2luZyB2b2x0YWdlIGRhdGEuCi0gKiBYWFggTWlzc2luZyAxOS4yTUh6IHN5c19j bGsgcmF0ZSBzZXRzLgotICoKLSAqIFRIZSBmb3JtYXQgZGVzY3JpYmVkIGluIHRoaXMgZmlsZSBp cyBkZXByZWNhdGVkLiAgT25jZSBhIHJlYXNvbmFibGUKLSAqIE9QUCBBUEkgZXhpc3RzLCB0aGUg ZGF0YSBpbiB0aGlzIGZpbGUgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB1c2UgaXQuCi0gKgotICog VGhpcyBpcyB0ZWNobmljYWxseSBwYXJ0IG9mIHRoZSBPTUFQMnh4eCBjbG9jayBjb2RlLgotICov Ci0KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLQotI2luY2x1ZGUgIm9wcDJ4eHguaCIKLSNp bmNsdWRlICJzZHJjLmgiCi0jaW5jbHVkZSAiY2xvY2suaCIKLQotLyoKLSAqIEtleSBkaXZpZGVy cyB3aGljaCBtYWtlIHVwIGEgUFJDTSBzZXQuIFJhdGlvcyBmb3IgYSBQUkNNIGFyZSBtYW5kYXRl ZC4KLSAqIHh0YWxfc3BlZWQsIGRwbGxfc3BlZWQsIG1wdV9zcGVlZCwgQ01fQ0xLU0VMX01QVSwK LSAqIENNX0NMS1NFTF9EU1AsIENNX0NMS1NFTF9HRlgsIENNX0NMS1NFTDFfQ09SRSwgQ01fQ0xL U0VMMV9QTEwsCi0gKiBDTV9DTEtTRUwyX1BMTCwgQ01fQ0xLU0VMX01ETQotICoKLSAqIEZpbGxp bmcgaW4gdGFibGUgYmFzZWQgb24gMjQzMC1TRFBzIHZhcmlhbnRzIGF2YWlsYWJsZS4gIFRoZXJl IGFyZQotICogcXVpdGUgYSBmZXcgbW9yZSByYXRlIGNvbWJpbmF0aW9ucyB3aGljaCBjb3VsZCBi ZSBkZWZpbmVkLgotICoKLSAqIFdoZW4gbXVsdGlwbGUgdmFsdWVzIGFyZSBkZWZpbmVkIHRoZSBz dGFydCB1cCB3aWxsIHRyeSBhbmQgY2hvb3NlCi0gKiB0aGUgZmFzdGVzdCBvbmUuIElmIGEgJ2Zh c3QnIHZhbHVlIGlzIGRlZmluZWQsIHRoZW4gYXV0b21hdGljYWxseSwKLSAqIHRoZSAvMiBvbmUg c2hvdWxkIGJlIGluY2x1ZGVkIGFzIGl0IGNhbiBiZSB1c2VkLiAgR2VuZXJhbGx5IGhhdmluZwot ICogbW9yZSB0aGFuIG9uZSBmYXN0IHNldCBkb2VzIG5vdCBtYWtlIHNlbnNlLCBhcyBzdGF0aWMg dGltaW5ncyBuZWVkCi0gKiB0byBiZSBjaGFuZ2VkIHRvIGNoYW5nZSB0aGUgc2V0LiAgVGhlIGV4 Y2VwdGlvbiBpcyB0aGUgYnlwYXNzCi0gKiBzZXR0aW5nIHdoaWNoIGlzIGF2YWlsYWJsZSBmb3Ig bG93IHBvd2VyIGJ5cGFzcy4KLSAqCi0gKiBOb3RlOiBUaGlzIHRhYmxlIG5lZWRzIHRvIGJlIHNv cnRlZCwgZmFzdGVzdCB0byBzbG93ZXN0LgotICovCi1jb25zdCBzdHJ1Y3QgcHJjbV9jb25maWcg b21hcDI0MzBfcmF0ZV90YWJsZVtdID0gewotCS8qIFBSQ00gIzQgLSByYXRpbzIgKEVTMi4xKSAt IEZBU1QgKi8KLQl7UzEzTSwgUzc5OE0sIFMzOTlNLCBSMl9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8q IDM5OU1IeiBBUk0gKi8KLQkJUjJfQ01fQ0xLU0VMX0RTUF9WQUwsIFIyX0NNX0NMS1NFTF9HRlhf VkFMLAotCQlSMl9DTV9DTEtTRUwxX0NPUkVfVkFMLCBNNF9DTV9DTEtTRUwxX1BMTF8xM19WQUws Ci0JCU1YX0NMS1NFTDJfUExMXzJ4X1ZBTCwgUjJfQ01fQ0xLU0VMX01ETV9WQUwsCi0JCVNEUkNf UkZSX0NUUkxfMTMzTUh6LAotCQlSQVRFX0lOXzI0M1h9LAotCi0JLyogUFJDTSAjMiAtIHJhdGlv MSAoRVMyKSAtIEZBU1QgKi8KLQl7UzEzTSwgUzY1OE0sIFMzMjlNLCBSMV9DTV9DTEtTRUxfTVBV X1ZBTCwJCS8qIDMzME1IeiBBUk0gKi8KLQkJUjFfQ01fQ0xLU0VMX0RTUF9WQUwsIFIxX0NNX0NM S1NFTF9HRlhfVkFMLAotCQlSMV9DTV9DTEtTRUwxX0NPUkVfVkFMLCBNMl9DTV9DTEtTRUwxX1BM TF8xM19WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzJ4X1ZBTCwgUjFfQ01fQ0xLU0VMX01ETV9WQUws Ci0JCVNEUkNfUkZSX0NUUkxfMTY1TUh6LAotCQlSQVRFX0lOXzI0M1h9LAotCi0JLyogUFJDTSAj NWEgLSByYXRpbzEgLSBGQVNUICovCi0Je1MxM00sIFM1MzJNLCBTMjY2TSwgUjFfQ01fQ0xLU0VM X01QVV9WQUwsCQkvKiAyNjZNSHogQVJNICovCi0JCVIxX0NNX0NMS1NFTF9EU1BfVkFMLCBSMV9D TV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUjFfQ01fQ0xLU0VMMV9DT1JFX1ZBTCwgTTVBX0NNX0NMS1NF TDFfUExMXzEzX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCBSMV9DTV9DTEtTRUxfTURN X1ZBTCwKLQkJU0RSQ19SRlJfQ1RSTF8xMzNNSHosCi0JCVJBVEVfSU5fMjQzWH0sCi0KLQkvKiBQ UkNNICM1YiAtIHJhdGlvMSAtIEZBU1QgKi8KLQl7UzEzTSwgUzQwME0sIFMyMDBNLCBSMV9DTV9D TEtTRUxfTVBVX1ZBTCwJCS8qIDIwME1IeiBBUk0gKi8KLQkJUjFfQ01fQ0xLU0VMX0RTUF9WQUws IFIxX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSMV9DTV9DTEtTRUwxX0NPUkVfVkFMLCBNNUJfQ01f Q0xLU0VMMV9QTExfMTNfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8yeF9WQUwsIFIxX0NNX0NMS1NF TF9NRE1fVkFMLAotCQlTRFJDX1JGUl9DVFJMXzEwME1IeiwKLQkJUkFURV9JTl8yNDNYfSwKLQot CS8qIFBSQ00gIzQgLSByYXRpbzEgKEVTMi4xKSAtIFNMT1cgKi8KLQl7UzEzTSwgUzM5OU0sIFMx OTlNLCBSMl9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDIwME1IeiBBUk0gKi8KLQkJUjJfQ01fQ0xL U0VMX0RTUF9WQUwsIFIyX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSMl9DTV9DTEtTRUwxX0NPUkVf VkFMLCBNNF9DTV9DTEtTRUwxX1BMTF8xM19WQUwsCi0JCU1YX0NMS1NFTDJfUExMXzF4X1ZBTCwg UjJfQ01fQ0xLU0VMX01ETV9WQUwsCi0JCVNEUkNfUkZSX0NUUkxfMTMzTUh6LAotCQlSQVRFX0lO XzI0M1h9LAotCi0JLyogUFJDTSAjMiAtIHJhdGlvMSAoRVMyKSAtIFNMT1cgKi8KLQl7UzEzTSwg UzMyOU0sIFMxNjRNLCBSMV9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDE2NU1IeiBBUk0gKi8KLQkJ UjFfQ01fQ0xLU0VMX0RTUF9WQUwsIFIxX0NNX0NMS1NFTF9HRlhfVkFMLAotCQlSMV9DTV9DTEtT RUwxX0NPUkVfVkFMLCBNMl9DTV9DTEtTRUwxX1BMTF8xM19WQUwsCi0JCU1YX0NMS1NFTDJfUExM XzF4X1ZBTCwgUjFfQ01fQ0xLU0VMX01ETV9WQUwsCi0JCVNEUkNfUkZSX0NUUkxfMTY1TUh6LAot CQlSQVRFX0lOXzI0M1h9LAotCi0JLyogUFJDTSAjNWEgLSByYXRpbzEgLSBTTE9XICovCi0Je1Mx M00sIFMyNjZNLCBTMTMzTSwgUjFfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAxMzNNSHogQVJNICov Ci0JCVIxX0NNX0NMS1NFTF9EU1BfVkFMLCBSMV9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUjFfQ01f Q0xLU0VMMV9DT1JFX1ZBTCwgTTVBX0NNX0NMS1NFTDFfUExMXzEzX1ZBTCwKLQkJTVhfQ0xLU0VM Ml9QTExfMXhfVkFMLCBSMV9DTV9DTEtTRUxfTURNX1ZBTCwKLQkJU0RSQ19SRlJfQ1RSTF8xMzNN SHosCi0JCVJBVEVfSU5fMjQzWH0sCi0KLQkvKiBQUkNNICM1YiAtIHJhdGlvMSAtIFNMT1cqLwot CXtTMTNNLCBTMjAwTSwgUzEwME0sIFIxX0NNX0NMS1NFTF9NUFVfVkFMLAkJLyogMTAwTUh6IEFS TSAqLwotCQlSMV9DTV9DTEtTRUxfRFNQX1ZBTCwgUjFfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVIx X0NNX0NMS1NFTDFfQ09SRV9WQUwsIE01Ql9DTV9DTEtTRUwxX1BMTF8xM19WQUwsCi0JCU1YX0NM S1NFTDJfUExMXzF4X1ZBTCwgUjFfQ01fQ0xLU0VMX01ETV9WQUwsCi0JCVNEUkNfUkZSX0NUUkxf MTAwTUh6LAotCQlSQVRFX0lOXzI0M1h9LAotCi0JLyogUFJDTS1ib290L2J5cGFzcyAqLwotCXtT MTNNLCBTMTNNLCBTMTNNLCBSQl9DTV9DTEtTRUxfTVBVX1ZBTCwJCS8qIDEzTUh6ICovCi0JCVJC X0NNX0NMS1NFTF9EU1BfVkFMLCBSQl9DTV9DTEtTRUxfR0ZYX1ZBTCwKLQkJUkJfQ01fQ0xLU0VM MV9DT1JFX1ZBTCwgTUJfQ01fQ0xLU0VMMV9QTExfMTNfVkFMLAotCQlNWF9DTEtTRUwyX1BMTF8y eF9WQUwsIFJCX0NNX0NMS1NFTF9NRE1fVkFMLAotCQlTRFJDX1JGUl9DVFJMX0JZUEFTUywKLQkJ UkFURV9JTl8yNDNYfSwKLQotCS8qIFBSQ00tYm9vdC9ieXBhc3MgKi8KLQl7UzEyTSwgUzEyTSwg UzEyTSwgUkJfQ01fQ0xLU0VMX01QVV9WQUwsCQkvKiAxMk1IeiAqLwotCQlSQl9DTV9DTEtTRUxf RFNQX1ZBTCwgUkJfQ01fQ0xLU0VMX0dGWF9WQUwsCi0JCVJCX0NNX0NMS1NFTDFfQ09SRV9WQUws IE1CX0NNX0NMS1NFTDFfUExMXzEyX1ZBTCwKLQkJTVhfQ0xLU0VMMl9QTExfMnhfVkFMLCBSQl9D TV9DTEtTRUxfTURNX1ZBTCwKLQkJU0RSQ19SRlJfQ1RSTF9CWVBBU1MsCi0JCVJBVEVfSU5fMjQz WH0sCi0KLQl7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9LAotfTsKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb3BwMnh4eC5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9v cHAyeHh4LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0NTExODJjZGMwMi4uMDAw MDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvb3BwMnh4eC5oCisrKyAvZGV2L251 bGwKQEAgLTEsNDMwICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w ICovCi0vKgotICogb3BwMnh4eC5oIC0gbWFjcm9zIGZvciBvbGQtc3R5bGUgT01BUDJ4eHggIk9Q UCIgZGVmaW5pdGlvbnMKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOSBUZXhhcyBJbnN0 cnVtZW50cywgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkgTm9raWEgQ29ycG9yYXRp b24KLSAqCi0gKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5jb20+Ci0gKgotICog VGhlIE9NQVAyIHByb2Nlc3NvciBjYW4gYmUgcnVuIGF0IHNldmVyYWwgZGlzY3JldGUgJ1BSQ00g Y29uZmlndXJhdGlvbnMnLgotICogVGhlc2UgY29uZmlndXJhdGlvbnMgYXJlIGNoYXJhY3Rlcml6 ZWQgYnkgdm9sdGFnZSBhbmQgc3BlZWQgZm9yIGNsb2Nrcy4KLSAqIFRoZSBkZXZpY2UgaXMgb25s eSB2YWxpZGF0ZWQgZm9yIGNlcnRhaW4gY29tYmluYXRpb25zLiBPbmUgd2F5IHRvIGV4cHJlc3MK LSAqIHRoZXNlIGNvbWJpbmF0aW9ucyBpcyB2aWEgdGhlICdyYXRpbydzJyB3aGljaCB0aGUgY2xv Y2tzIG9wZXJhdGUgd2l0aAotICogcmVzcGVjdCB0byBlYWNoIG90aGVyLiBUaGVzZSByYXRpbyBz ZXRzIGFyZSBmb3IgYSBnaXZlbiB2b2x0YWdlL0RQTEwKLSAqIHNldHRpbmcuIEFsbCBjb25maWd1 cmF0aW9ucyBjYW4gYmUgZGVzY3JpYmVkIGJ5IGEgRFBMTCBzZXR0aW5nIGFuZCBhIHJhdGlvCi0g KiBUaGVyZSBhcmUgMyByYXRpbyBzZXRzIGZvciB0aGUgMjQzMCBhbmQgWCByYXRpbyBzZXRzIGZv ciAyNDIwLgotICoKLSAqIDI0MzAgZGlmZmVycyBmcm9tIDI0MjAgaW4gdGhhdCB0aGVyZSBhcmUg bm8gbW9yZSBwaGFzZSBzeW5jaHJvbml6ZXJzIHVzZWQuCi0gKiBUaGV5IGJvdGggaGF2ZSBhIHNs aWdodGx5IGRpZmZlcmVudCBjbG9jayBkb21haW4gc2V0dXAuIDI0MjAoaXZhMSxkc3ApIHZzCi0g KiAyNDMwIChpdmEyLjEsIE5PZHNwLCBtZG0pCi0gKgotICogWFhYIE1pc3Npbmcgdm9sdGFnZSBk YXRhLgotICoKLSAqIFRIZSBmb3JtYXQgZGVzY3JpYmVkIGluIHRoaXMgZmlsZSBpcyBkZXByZWNh dGVkLiAgT25jZSBhIHJlYXNvbmFibGUKLSAqIE9QUCBBUEkgZXhpc3RzLCB0aGUgZGF0YSBpbiB0 aGlzIGZpbGUgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB1c2UgaXQuCi0gKgotICogVGhpcyBpcyB0 ZWNobmljYWxseSBwYXJ0IG9mIHRoZSBPTUFQMnh4eCBjbG9jayBjb2RlLgotICovCi0KLSNpZm5k ZWYgX19BUkNIX0FSTV9NQUNIX09NQVAyX09QUDJYWFhfSAotI2RlZmluZSBfX0FSQ0hfQVJNX01B Q0hfT01BUDJfT1BQMlhYWF9ICi0KLS8qKgotICogc3RydWN0IHByY21fY29uZmlnIC0gZGVmaW5l IGNsb2NrIHJhdGVzIG9uIGEgcGVyLU9QUCBiYXNpcyAoMjR4eCkKLSAqCi0gKiBLZXkgZGl2aWRl cnMgd2hpY2ggbWFrZSB1cCBhIFBSQ00gc2V0LiBSYXRpbydzIGZvciBhIFBSQ00gYXJlIG1hbmRh dGVkLgotICogeHRhbF9zcGVlZCwgZHBsbF9zcGVlZCwgbXB1X3NwZWVkLCBDTV9DTEtTRUxfTVBV LENNX0NMS1NFTF9EU1AKLSAqIENNX0NMS1NFTF9HRlgsIENNX0NMS1NFTDFfQ09SRSwgQ01fQ0xL U0VMMV9QTEwgQ01fQ0xLU0VMMl9QTEwsIENNX0NMS1NFTF9NRE0KLSAqCi0gKiBUaGlzIGlzIGRl cHJlY2F0ZWQuICBBcyBzb29uIGFzIHdlIGhhdmUgYSBkZWNlbnQgT1BQIEFQSSwgd2Ugc2hvdWxk Ci0gKiBtb3ZlIGFsbCB0aGlzIHN0dWZmIHRvIGl0LgotICovCi1zdHJ1Y3QgcHJjbV9jb25maWcg ewotCXVuc2lnbmVkIGxvbmcgeHRhbF9zcGVlZDsJLyogY3J5c3RhbCByYXRlICovCi0JdW5zaWdu ZWQgbG9uZyBkcGxsX3NwZWVkOwkvKiBkcGxsOiBvdXQqeHRhbCpNLyhOLTEpdGFibGVfcmVjYWxj ICovCi0JdW5zaWduZWQgbG9uZyBtcHVfc3BlZWQ7CS8qIHNwZWVkIG9mIE1QVSAqLwotCXVuc2ln bmVkIGxvbmcgY21fY2xrc2VsX21wdTsJLyogbXB1IGRpdmlkZXIgKi8KLQl1bnNpZ25lZCBsb25n IGNtX2Nsa3NlbF9kc3A7CS8qIGRzcCtpdmExIGRpdigyNDIwKSwgaXZhMi4xKDI0MzApICovCi0J dW5zaWduZWQgbG9uZyBjbV9jbGtzZWxfZ2Z4OwkvKiBnZnggZGl2aWRlcnMgKi8KLQl1bnNpZ25l ZCBsb25nIGNtX2Nsa3NlbDFfY29yZTsJLyogbWFqb3Igc3Vic3lzdGVtIGRpdmlkZXJzICovCi0J dW5zaWduZWQgbG9uZyBjbV9jbGtzZWwxX3BsbDsJLyogbSxuICovCi0JdW5zaWduZWQgbG9uZyBj bV9jbGtzZWwyX3BsbDsJLyogZHBsbHgxIG9yIHgyIG91dCAqLwotCXVuc2lnbmVkIGxvbmcgY21f Y2xrc2VsX21kbTsJLyogbW9kZW0gZGl2aWRlcnMgMjQzMCBvbmx5ICovCi0JdW5zaWduZWQgbG9u ZyBiYXNlX3NkcmNfcmZyOwkvKiBiYXNlIHJlZnJlc2ggdGltaW5nIGZvciBhIHNldCAqLwotCXVu c2lnbmVkIHNob3J0IGZsYWdzOwotfTsKLQotCi0vKiBDb3JlIGZpZWxkcyBmb3IgY21fY2xrc2Vs LCBub3QgcmF0aW8gZ292ZXJuZWQgKi8KLSNkZWZpbmUgUlhfQ0xLU0VMX0RTUzEJCQkoMHgxMCA8 PCA4KQotI2RlZmluZSBSWF9DTEtTRUxfRFNTMgkJCSgweDAgPDwgMTMpCi0jZGVmaW5lIFJYX0NM S1NFTF9TU0kJCQkoMHg1IDw8IDIwKQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIFZvbHRhZ2Uv RFBMTCByYXRpb3MKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLS8qIDI0MzAgUmF0aW8ncywgMjQz MC1SYXRpbyBDb25maWcgMSAqLwotI2RlZmluZSBSMV9DTEtTRUxfTDMJCQkoNCA8PCAwKQotI2Rl ZmluZSBSMV9DTEtTRUxfTDQJCQkoMiA8PCA1KQotI2RlZmluZSBSMV9DTEtTRUxfVVNCCQkJKDQg PDwgMjUpCi0jZGVmaW5lIFIxX0NNX0NMS1NFTDFfQ09SRV9WQUwJCShSMV9DTEtTRUxfVVNCIHwg UlhfQ0xLU0VMX1NTSSB8IFwKLQkJCQkJIFJYX0NMS1NFTF9EU1MyIHwgUlhfQ0xLU0VMX0RTUzEg fCBcCi0JCQkJCSBSMV9DTEtTRUxfTDQgfCBSMV9DTEtTRUxfTDMpCi0jZGVmaW5lIFIxX0NMS1NF TF9NUFUJCQkoMiA8PCAwKQotI2RlZmluZSBSMV9DTV9DTEtTRUxfTVBVX1ZBTAkJUjFfQ0xLU0VM X01QVQotI2RlZmluZSBSMV9DTEtTRUxfRFNQCQkJKDIgPDwgMCkKLSNkZWZpbmUgUjFfQ0xLU0VM X0RTUF9JRgkJKDIgPDwgNSkKLSNkZWZpbmUgUjFfQ01fQ0xLU0VMX0RTUF9WQUwJCShSMV9DTEtT RUxfRFNQIHwgUjFfQ0xLU0VMX0RTUF9JRikKLSNkZWZpbmUgUjFfQ0xLU0VMX0dGWAkJCSgyIDw8 IDApCi0jZGVmaW5lIFIxX0NNX0NMS1NFTF9HRlhfVkFMCQlSMV9DTEtTRUxfR0ZYCi0jZGVmaW5l IFIxX0NMS1NFTF9NRE0JCQkoNCA8PCAwKQotI2RlZmluZSBSMV9DTV9DTEtTRUxfTURNX1ZBTAkJ UjFfQ0xLU0VMX01ETQotCi0vKiAyNDMwLVJhdGlvIENvbmZpZyAyICovCi0jZGVmaW5lIFIyX0NM S1NFTF9MMwkJCSg2IDw8IDApCi0jZGVmaW5lIFIyX0NMS1NFTF9MNAkJCSgyIDw8IDUpCi0jZGVm aW5lIFIyX0NMS1NFTF9VU0IJCQkoMiA8PCAyNSkKLSNkZWZpbmUgUjJfQ01fQ0xLU0VMMV9DT1JF X1ZBTAkJKFIyX0NMS1NFTF9VU0IgfCBSWF9DTEtTRUxfU1NJIHwgXAotCQkJCQkgUlhfQ0xLU0VM X0RTUzIgfCBSWF9DTEtTRUxfRFNTMSB8IFwKLQkJCQkJIFIyX0NMS1NFTF9MNCB8IFIyX0NMS1NF TF9MMykKLSNkZWZpbmUgUjJfQ0xLU0VMX01QVQkJCSgyIDw8IDApCi0jZGVmaW5lIFIyX0NNX0NM S1NFTF9NUFVfVkFMCQlSMl9DTEtTRUxfTVBVCi0jZGVmaW5lIFIyX0NMS1NFTF9EU1AJCQkoMiA8 PCAwKQotI2RlZmluZSBSMl9DTEtTRUxfRFNQX0lGCQkoMyA8PCA1KQotI2RlZmluZSBSMl9DTV9D TEtTRUxfRFNQX1ZBTAkJKFIyX0NMS1NFTF9EU1AgfCBSMl9DTEtTRUxfRFNQX0lGKQotI2RlZmlu ZSBSMl9DTEtTRUxfR0ZYCQkJKDIgPDwgMCkKLSNkZWZpbmUgUjJfQ01fQ0xLU0VMX0dGWF9WQUwJ CVIyX0NMS1NFTF9HRlgKLSNkZWZpbmUgUjJfQ0xLU0VMX01ETQkJCSg2IDw8IDApCi0jZGVmaW5l IFIyX0NNX0NMS1NFTF9NRE1fVkFMCQlSMl9DTEtTRUxfTURNCi0KLS8qIDI0MzAtUmF0aW8gQm9v dG0gKEJZUEFTUykgKi8KLSNkZWZpbmUgUkJfQ0xLU0VMX0wzCQkJKDEgPDwgMCkKLSNkZWZpbmUg UkJfQ0xLU0VMX0w0CQkJKDEgPDwgNSkKLSNkZWZpbmUgUkJfQ0xLU0VMX1VTQgkJCSgxIDw8IDI1 KQotI2RlZmluZSBSQl9DTV9DTEtTRUwxX0NPUkVfVkFMCQkoUkJfQ0xLU0VMX1VTQiB8IFJYX0NM S1NFTF9TU0kgfCBcCi0JCQkJCSBSWF9DTEtTRUxfRFNTMiB8IFJYX0NMS1NFTF9EU1MxIHwgXAot CQkJCQkgUkJfQ0xLU0VMX0w0IHwgUkJfQ0xLU0VMX0wzKQotI2RlZmluZSBSQl9DTEtTRUxfTVBV CQkJKDEgPDwgMCkKLSNkZWZpbmUgUkJfQ01fQ0xLU0VMX01QVV9WQUwJCVJCX0NMS1NFTF9NUFUK LSNkZWZpbmUgUkJfQ0xLU0VMX0RTUAkJCSgxIDw8IDApCi0jZGVmaW5lIFJCX0NMS1NFTF9EU1Bf SUYJCSgxIDw8IDUpCi0jZGVmaW5lIFJCX0NNX0NMS1NFTF9EU1BfVkFMCQkoUkJfQ0xLU0VMX0RT UCB8IFJCX0NMS1NFTF9EU1BfSUYpCi0jZGVmaW5lIFJCX0NMS1NFTF9HRlgJCQkoMSA8PCAwKQot I2RlZmluZSBSQl9DTV9DTEtTRUxfR0ZYX1ZBTAkJUkJfQ0xLU0VMX0dGWAotI2RlZmluZSBSQl9D TEtTRUxfTURNCQkJKDEgPDwgMCkKLSNkZWZpbmUgUkJfQ01fQ0xLU0VMX01ETV9WQUwJCVJCX0NM S1NFTF9NRE0KLQotLyogMjQyMCBSYXRpbyBFcXVpdmFsZW50cyAqLwotI2RlZmluZSBSWFhfQ0xL U0VMX1ZMWU5RCQkoMHgxMiA8PCAxNSkKLSNkZWZpbmUgUlhYX0NMS1NFTF9TU0kJCQkoMHg4IDw8 IDIwKQotCi0vKiAyNDIwLVBSQ00gSUlJIDUzMk1IeiBjb3JlICovCi0jZGVmaW5lIFJJSUlfQ0xL U0VMX0wzCQkJKDQgPDwgMCkJLyogMTMzTUh6ICovCi0jZGVmaW5lIFJJSUlfQ0xLU0VMX0w0CQkJ KDIgPDwgNSkJLyogNjYuNU1IeiAqLwotI2RlZmluZSBSSUlJX0NMS1NFTF9VU0IJCQkoNCA8PCAy NSkJLyogMzMuMjVNSHogKi8KLSNkZWZpbmUgUklJSV9DTV9DTEtTRUwxX0NPUkVfVkFMCShSSUlJ X0NMS1NFTF9VU0IgfCBSWFhfQ0xLU0VMX1NTSSB8IFwKLQkJCQkJIFJYWF9DTEtTRUxfVkxZTlEg fCBSWF9DTEtTRUxfRFNTMiB8IFwKLQkJCQkJIFJYX0NMS1NFTF9EU1MxIHwgUklJSV9DTEtTRUxf TDQgfCBcCi0JCQkJCSBSSUlJX0NMS1NFTF9MMykKLSNkZWZpbmUgUklJSV9DTEtTRUxfTVBVCQkJ KDIgPDwgMCkJLyogMjY2TUh6ICovCi0jZGVmaW5lIFJJSUlfQ01fQ0xLU0VMX01QVV9WQUwJCVJJ SUlfQ0xLU0VMX01QVQotI2RlZmluZSBSSUlJX0NMS1NFTF9EU1AJCQkoMyA8PCAwKQkvKiBjNXgg LSAxNzcuM01IeiAqLwotI2RlZmluZSBSSUlJX0NMS1NFTF9EU1BfSUYJCSgyIDw8IDUpCS8qIGM1 eCAtIDg4LjY3TUh6ICovCi0jZGVmaW5lIFJJSUlfU1lOQ19EU1AJCQkoMSA8PCA3KQkvKiBFbmFi bGUgc3luYyAqLwotI2RlZmluZSBSSUlJX0NMS1NFTF9JVkEJCQkoNiA8PCA4KQkvKiBpdmExIC0g ODguNjdNSHogKi8KLSNkZWZpbmUgUklJSV9TWU5DX0lWQQkJCSgxIDw8IDEzKQkvKiBFbmFibGUg c3luYyAqLwotI2RlZmluZSBSSUlJX0NNX0NMS1NFTF9EU1BfVkFMCQkoUklJSV9TWU5DX0lWQSB8 IFJJSUlfQ0xLU0VMX0lWQSB8IFwKLQkJCQkJIFJJSUlfU1lOQ19EU1AgfCBSSUlJX0NMS1NFTF9E U1BfSUYgfCBcCi0JCQkJCSBSSUlJX0NMS1NFTF9EU1ApCi0jZGVmaW5lIFJJSUlfQ0xLU0VMX0dG WAkJCSgyIDw8IDApCS8qIDY2LjVNSHogKi8KLSNkZWZpbmUgUklJSV9DTV9DTEtTRUxfR0ZYX1ZB TAkJUklJSV9DTEtTRUxfR0ZYCi0KLS8qIDI0MjAtUFJDTSBJSSA2MDBNSHogY29yZSAqLwotI2Rl ZmluZSBSSUlfQ0xLU0VMX0wzCQkJKDYgPDwgMCkJLyogMTAwTUh6ICovCi0jZGVmaW5lIFJJSV9D TEtTRUxfTDQJCQkoMiA8PCA1KQkvKiA1ME1IeiAqLwotI2RlZmluZSBSSUlfQ0xLU0VMX1VTQgkJ CSgyIDw8IDI1KQkvKiA1ME1IeiAqLwotI2RlZmluZSBSSUlfQ01fQ0xLU0VMMV9DT1JFX1ZBTAkJ KFJJSV9DTEtTRUxfVVNCIHwgUlhYX0NMS1NFTF9TU0kgfCBcCi0JCQkJCSBSWFhfQ0xLU0VMX1ZM WU5RIHwgUlhfQ0xLU0VMX0RTUzIgfCBcCi0JCQkJCSBSWF9DTEtTRUxfRFNTMSB8IFJJSV9DTEtT RUxfTDQgfCBcCi0JCQkJCSBSSUlfQ0xLU0VMX0wzKQotI2RlZmluZSBSSUlfQ0xLU0VMX01QVQkJ CSgyIDw8IDApCS8qIDMwME1IeiAqLwotI2RlZmluZSBSSUlfQ01fQ0xLU0VMX01QVV9WQUwJCVJJ SV9DTEtTRUxfTVBVCi0jZGVmaW5lIFJJSV9DTEtTRUxfRFNQCQkJKDMgPDwgMCkJLyogYzV4IC0g MjAwTUh6ICovCi0jZGVmaW5lIFJJSV9DTEtTRUxfRFNQX0lGCQkoMiA8PCA1KQkvKiBjNXggLSAx MDBNSHogKi8KLSNkZWZpbmUgUklJX1NZTkNfRFNQCQkJKDAgPDwgNykJLyogQnlwYXNzIHN5bmMg Ki8KLSNkZWZpbmUgUklJX0NMS1NFTF9JVkEJCQkoMyA8PCA4KQkvKiBpdmExIC0gMjAwTUh6ICov Ci0jZGVmaW5lIFJJSV9TWU5DX0lWQQkJCSgwIDw8IDEzKQkvKiBCeXBhc3Mgc3luYyAqLwotI2Rl ZmluZSBSSUlfQ01fQ0xLU0VMX0RTUF9WQUwJCShSSUlfU1lOQ19JVkEgfCBSSUlfQ0xLU0VMX0lW QSB8IFwKLQkJCQkJIFJJSV9TWU5DX0RTUCB8IFJJSV9DTEtTRUxfRFNQX0lGIHwgXAotCQkJCQkg UklJX0NMS1NFTF9EU1ApCi0jZGVmaW5lIFJJSV9DTEtTRUxfR0ZYCQkJKDIgPDwgMCkJLyogNTBN SHogKi8KLSNkZWZpbmUgUklJX0NNX0NMS1NFTF9HRlhfVkFMCQlSSUlfQ0xLU0VMX0dGWAotCi0v KiAyNDIwLVBSQ00gSSA2NjBNSHogY29yZSAqLwotI2RlZmluZSBSSV9DTEtTRUxfTDMJCQkoNCA8 PCAwKQkvKiAxNjVNSHogKi8KLSNkZWZpbmUgUklfQ0xLU0VMX0w0CQkJKDIgPDwgNSkJLyogODIu NU1IeiAqLwotI2RlZmluZSBSSV9DTEtTRUxfVVNCCQkJKDQgPDwgMjUpCS8qIDQxLjI1TUh6ICov Ci0jZGVmaW5lIFJJX0NNX0NMS1NFTDFfQ09SRV9WQUwJCShSSV9DTEtTRUxfVVNCIHwJCVwKLQkJ CQkJIFJYWF9DTEtTRUxfU1NJIHwgUlhYX0NMS1NFTF9WTFlOUSB8IFwKLQkJCQkJIFJYX0NMS1NF TF9EU1MyIHwgUlhfQ0xLU0VMX0RTUzEgfCBcCi0JCQkJCSBSSV9DTEtTRUxfTDQgfCBSSV9DTEtT RUxfTDMpCi0jZGVmaW5lIFJJX0NMS1NFTF9NUFUJCQkoMiA8PCAwKQkvKiAzMzBNSHogKi8KLSNk ZWZpbmUgUklfQ01fQ0xLU0VMX01QVV9WQUwJCVJJX0NMS1NFTF9NUFUKLSNkZWZpbmUgUklfQ0xL U0VMX0RTUAkJCSgzIDw8IDApCS8qIGM1eCAtIDIyME1IeiAqLwotI2RlZmluZSBSSV9DTEtTRUxf RFNQX0lGCQkoMiA8PCA1KQkvKiBjNXggLSAxMTBNSHogKi8KLSNkZWZpbmUgUklfU1lOQ19EU1AJ CQkoMSA8PCA3KQkvKiBBY3RpdmF0ZSBzeW5jICovCi0jZGVmaW5lIFJJX0NMS1NFTF9JVkEJCQko NCA8PCA4KQkvKiBpdmExIC0gMTY1TUh6ICovCi0jZGVmaW5lIFJJX1NZTkNfSVZBCQkJKDAgPDwg MTMpCS8qIEJ5cGFzcyBzeW5jICovCi0jZGVmaW5lIFJJX0NNX0NMS1NFTF9EU1BfVkFMCQkoUklf U1lOQ19JVkEgfCBSSV9DTEtTRUxfSVZBIHwJXAotCQkJCQkgUklfU1lOQ19EU1AgfCBSSV9DTEtT RUxfRFNQX0lGIHwgXAotCQkJCQkgUklfQ0xLU0VMX0RTUCkKLSNkZWZpbmUgUklfQ0xLU0VMX0dG WAkJCSgxIDw8IDApCS8qIDE2NU1IeiAqLwotI2RlZmluZSBSSV9DTV9DTEtTRUxfR0ZYX1ZBTAkJ UklfQ0xLU0VMX0dGWAotCi0vKiAyNDIwLVBSQ00gVklJIChib290KSAqLwotI2RlZmluZSBSVklJ X0NMS1NFTF9MMwkJCSgxIDw8IDApCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX0w0CQkJKDEgPDwgNSkK LSNkZWZpbmUgUlZJSV9DTEtTRUxfRFNTMQkJKDEgPDwgOCkKLSNkZWZpbmUgUlZJSV9DTEtTRUxf RFNTMgkJKDAgPDwgMTMpCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX1ZMWU5RCQkoMSA8PCAxNSkKLSNk ZWZpbmUgUlZJSV9DTEtTRUxfU1NJCQkJKDEgPDwgMjApCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX1VT QgkJCSgxIDw8IDI1KQotCi0jZGVmaW5lIFJWSUlfQ01fQ0xLU0VMMV9DT1JFX1ZBTAkoUlZJSV9D TEtTRUxfVVNCIHwgUlZJSV9DTEtTRUxfU1NJIHwgXAotCQkJCQkgUlZJSV9DTEtTRUxfVkxZTlEg fCBcCi0JCQkJCSBSVklJX0NMS1NFTF9EU1MyIHwgUlZJSV9DTEtTRUxfRFNTMSB8IFwKLQkJCQkJ IFJWSUlfQ0xLU0VMX0w0IHwgUlZJSV9DTEtTRUxfTDMpCi0KLSNkZWZpbmUgUlZJSV9DTEtTRUxf TVBVCQkJKDEgPDwgMCkgLyogYWxsIGRpdmlkZSBieSAxICovCi0jZGVmaW5lIFJWSUlfQ01fQ0xL U0VMX01QVV9WQUwJCVJWSUlfQ0xLU0VMX01QVQotCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX0RTUAkJ CSgxIDw8IDApCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX0RTUF9JRgkJKDEgPDwgNSkKLSNkZWZpbmUg UlZJSV9TWU5DX0RTUAkJCSgwIDw8IDcpCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX0lWQQkJCSgxIDw8 IDgpCi0jZGVmaW5lIFJWSUlfU1lOQ19JVkEJCQkoMCA8PCAxMykKLSNkZWZpbmUgUlZJSV9DTV9D TEtTRUxfRFNQX1ZBTAkJKFJWSUlfU1lOQ19JVkEgfCBSVklJX0NMS1NFTF9JVkEgfCBcCi0JCQkJ CSBSVklJX1NZTkNfRFNQIHwgUlZJSV9DTEtTRUxfRFNQX0lGIHwgXAotCQkJCQkgUlZJSV9DTEtT RUxfRFNQKQotCi0jZGVmaW5lIFJWSUlfQ0xLU0VMX0dGWAkJCSgxIDw8IDApCi0jZGVmaW5lIFJW SUlfQ01fQ0xLU0VMX0dGWF9WQUwJCVJWSUlfQ0xLU0VMX0dGWAotCi0vKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSAqIDI0MzAgVGFyZ2V0IG1vZGVzOiBBbG9uZyB3aXRoIGVhY2ggY29uZmlndXJhdGlvbiB0 aGUgQ1BVIGhhcyBzZXZlcmFsCi0gKiBtb2RlcyB3aGljaCBnb2VzIGFsb25nIHdpdGggdGhlbS4g TW9kZXMgbWFpbmx5IGFyZSB0aGUgYWRkaXRpb24gb2YKLSAqIGRlc2NyaWJlIERQTEwgY29tYmlu YXRpb25zIHRvIGdvIGFsb25nIHdpdGggYSByYXRpby4KLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0K LS8qIEhhcmR3YXJlIGdvdmVybmVkICovCi0jZGVmaW5lIE1YXzQ4TV9TUkMJCQkoMCA8PCAzKQot I2RlZmluZSBNWF81NE1fU1JDCQkJKDAgPDwgNSkKLSNkZWZpbmUgTVhfQVBMTFNfQ0xJS0lOXzEy CQkoMyA8PCAyMykKLSNkZWZpbmUgTVhfQVBMTFNfQ0xJS0lOXzEzCQkoMiA8PCAyMykKLSNkZWZp bmUgTVhfQVBMTFNfQ0xJS0lOXzE5XzIJCSgwIDw8IDIzKQotCi0vKgotICogMjQzMCAtIHN0YW5k YWxvbmUsIDIqcmVmKk0vKG4rMSksIE0vTiBpcyBmb3IgZXhhY3RuZXNzIG5vdCByZWxvY2sgc3Bl ZWQKLSAqICM1YQkocmF0aW8xKSBiYXNlcG9ydC10YXJnZXQsIHRhcmdldCBEUExMID0gMjY2KjIg PSA1MzJNSHoKLSAqLwotI2RlZmluZSBNNUFfRFBMTF9NVUxUXzEyCQkoMTMzIDw8IDEyKQotI2Rl ZmluZSBNNUFfRFBMTF9ESVZfMTIJCQkoNSA8PCA4KQotI2RlZmluZSBNNUFfQ01fQ0xLU0VMMV9Q TExfMTJfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NSQyB8IFwKLQkJCQkJIE01QV9EUExMX0RJ Vl8xMiB8IE01QV9EUExMX01VTFRfMTIgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5fMTIpCi0j ZGVmaW5lIE01QV9EUExMX01VTFRfMTMJCSg2MSA8PCAxMikKLSNkZWZpbmUgTTVBX0RQTExfRElW XzEzCQkJKDIgPDwgOCkKLSNkZWZpbmUgTTVBX0NNX0NMS1NFTDFfUExMXzEzX1ZBTAkoTVhfNDhN X1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNNUFfRFBMTF9ESVZfMTMgfCBNNUFfRFBMTF9N VUxUXzEzIHwgXAotCQkJCQkgTVhfQVBMTFNfQ0xJS0lOXzEzKQotI2RlZmluZSBNNUFfRFBMTF9N VUxUXzE5CQkoNTUgPDwgMTIpCi0jZGVmaW5lIE01QV9EUExMX0RJVl8xOQkJCSgzIDw8IDgpCi0j ZGVmaW5lIE01QV9DTV9DTEtTRUwxX1BMTF8xOV9WQUwJKE1YXzQ4TV9TUkMgfCBNWF81NE1fU1JD IHwgXAotCQkJCQkgTTVBX0RQTExfRElWXzE5IHwgTTVBX0RQTExfTVVMVF8xOSB8IFwKLQkJCQkJ IE1YX0FQTExTX0NMSUtJTl8xOV8yKQotLyogIzViCShyYXRpbzEpIHRhcmdldCBEUExMID0gMjAw KjIgPSA0MDBNSHogKi8KLSNkZWZpbmUgTTVCX0RQTExfTVVMVF8xMgkJKDUwIDw8IDEyKQotI2Rl ZmluZSBNNUJfRFBMTF9ESVZfMTIJCQkoMiA8PCA4KQotI2RlZmluZSBNNUJfQ01fQ0xLU0VMMV9Q TExfMTJfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NSQyB8IFwKLQkJCQkJIE01Ql9EUExMX0RJ Vl8xMiB8IE01Ql9EUExMX01VTFRfMTIgfCBcCi0JCQkJCSBNWF9BUExMU19DTElLSU5fMTIpCi0j ZGVmaW5lIE01Ql9EUExMX01VTFRfMTMJCSgyMDAgPDwgMTIpCi0jZGVmaW5lIE01Ql9EUExMX0RJ Vl8xMwkJCSgxMiA8PCA4KQotCi0jZGVmaW5lIE01Ql9DTV9DTEtTRUwxX1BMTF8xM19WQUwJKE1Y XzQ4TV9TUkMgfCBNWF81NE1fU1JDIHwgXAotCQkJCQkgTTVCX0RQTExfRElWXzEzIHwgTTVCX0RQ TExfTVVMVF8xMyB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMykKLSNkZWZpbmUgTTVCX0RQ TExfTVVMVF8xOQkJKDEyNSA8PCAxMikKLSNkZWZpbmUgTTVCX0RQTExfRElWXzE5CQkJKDMxIDw8 IDgpCi0jZGVmaW5lIE01Ql9DTV9DTEtTRUwxX1BMTF8xOV9WQUwJKE1YXzQ4TV9TUkMgfCBNWF81 NE1fU1JDIHwgXAotCQkJCQkgTTVCX0RQTExfRElWXzE5IHwgTTVCX0RQTExfTVVMVF8xOSB8IFwK LQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xOV8yKQotLyoKLSAqICM0CShyYXRpbzIpLCBEUExMID0g Mzk5KjIgPSA3OThNSHosIEwzPTEzM01IegotICovCi0jZGVmaW5lIE00X0RQTExfTVVMVF8xMgkJ CSgxMzMgPDwgMTIpCi0jZGVmaW5lIE00X0RQTExfRElWXzEyCQkJKDMgPDwgOCkKLSNkZWZpbmUg TTRfQ01fQ0xLU0VMMV9QTExfMTJfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NSQyB8IFwKLQkJ CQkJIE00X0RQTExfRElWXzEyIHwgTTRfRFBMTF9NVUxUXzEyIHwgXAotCQkJCQkgTVhfQVBMTFNf Q0xJS0lOXzEyKQotCi0jZGVmaW5lIE00X0RQTExfTVVMVF8xMwkJCSgzOTkgPDwgMTIpCi0jZGVm aW5lIE00X0RQTExfRElWXzEzCQkJKDEyIDw8IDgpCi0jZGVmaW5lIE00X0NNX0NMS1NFTDFfUExM XzEzX1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNNF9EUExMX0RJVl8x MyB8IE00X0RQTExfTVVMVF8xMyB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMykKLQotI2Rl ZmluZSBNNF9EUExMX01VTFRfMTkJCQkoMTQ1IDw8IDEyKQotI2RlZmluZSBNNF9EUExMX0RJVl8x OQkJCSg2IDw8IDgpCi0jZGVmaW5lIE00X0NNX0NMS1NFTDFfUExMXzE5X1ZBTAkoTVhfNDhNX1NS QyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNNF9EUExMX0RJVl8xOSB8IE00X0RQTExfTVVMVF8x OSB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xOV8yKQotCi0vKgotICogIzMJKHJhdGlvMikg YmFzZXBvcnQtdGFyZ2V0LCB0YXJnZXQgRFBMTCA9IDMzMCoyID0gNjYwTUh6Ci0gKi8KLSNkZWZp bmUgTTNfRFBMTF9NVUxUXzEyCQkJKDU1IDw8IDEyKQotI2RlZmluZSBNM19EUExMX0RJVl8xMgkJ CSgxIDw8IDgpCi0jZGVmaW5lIE0zX0NNX0NMS1NFTDFfUExMXzEyX1ZBTAkoTVhfNDhNX1NSQyB8 IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNM19EUExMX0RJVl8xMiB8IE0zX0RQTExfTVVMVF8xMiB8 IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMikKLSNkZWZpbmUgTTNfRFBMTF9NVUxUXzEzCQkJ KDc2IDw8IDEyKQotI2RlZmluZSBNM19EUExMX0RJVl8xMwkJCSgyIDw8IDgpCi0jZGVmaW5lIE0z X0NNX0NMS1NFTDFfUExMXzEzX1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJ CSBNM19EUExMX0RJVl8xMyB8IE0zX0RQTExfTVVMVF8xMyB8IFwKLQkJCQkJIE1YX0FQTExTX0NM SUtJTl8xMykKLSNkZWZpbmUgTTNfRFBMTF9NVUxUXzE5CQkJKDE3IDw8IDEyKQotI2RlZmluZSBN M19EUExMX0RJVl8xOQkJCSgwIDw8IDgpCi0jZGVmaW5lIE0zX0NNX0NMS1NFTDFfUExMXzE5X1ZB TAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNM19EUExMX0RJVl8xOSB8IE0z X0RQTExfTVVMVF8xOSB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xOV8yKQotCi0vKgotICog IzIgICAocmF0aW8xKSBEUExMID0gMzMwKjIgPSA2NjBNSHosIEwzPTE2NU1IegotICovCi0jZGVm aW5lIE0yX0RQTExfTVVMVF8xMgkJICAgICAgICAoNTUgPDwgMTIpCi0jZGVmaW5lIE0yX0RQTExf RElWXzEyCQkgICAgICAgICgxIDw8IDgpCi0jZGVmaW5lIE0yX0NNX0NMS1NFTDFfUExMXzEyX1ZB TAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNMl9EUExMX0RJVl8xMiB8IE0y X0RQTExfTVVMVF8xMiB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMikKLQotLyogU3BlZWQg Y2hhbmdlcyAtIFVzZWQgNjU4LjdNSHogaW5zdGVhZCBvZiA2NjBNSHogZm9yIExQLVJlZnJlc2gg TT03NiBOPTIsCi0gKiByZWxvY2sgdGltZSBpc3N1ZSAqLwotLyogQ29yZSBmcmVxdWVuY3kgY2hh bmdlZCBmcm9tIDMzMC8xNjUgdG8gMzI5LzE2NCBNSHoqLwotI2RlZmluZSBNMl9EUExMX01VTFRf MTMJCSAgICAgICAgKDc2IDw8IDEyKQotI2RlZmluZSBNMl9EUExMX0RJVl8xMwkJICAgICAgICAo MiA8PCA4KQotI2RlZmluZSBNMl9DTV9DTEtTRUwxX1BMTF8xM19WQUwJKE1YXzQ4TV9TUkMgfCBN WF81NE1fU1JDIHwgXAotCQkJCQkgTTJfRFBMTF9ESVZfMTMgfCBNMl9EUExMX01VTFRfMTMgfCBc Ci0JCQkJCSBNWF9BUExMU19DTElLSU5fMTMpCi0KLSNkZWZpbmUgTTJfRFBMTF9NVUxUXzE5CQkg ICAgICAgICgxNyA8PCAxMikKLSNkZWZpbmUgTTJfRFBMTF9ESVZfMTkJCSAgICAgICAgKDAgPDwg OCkKLSNkZWZpbmUgTTJfQ01fQ0xLU0VMMV9QTExfMTlfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRN X1NSQyB8IFwKLQkJCQkJIE0yX0RQTExfRElWXzE5IHwgTTJfRFBMTF9NVUxUXzE5IHwgXAotCQkJ CQkgTVhfQVBMTFNfQ0xJS0lOXzE5XzIpCi0KLS8qIGJvb3QgKGJvb3QpICovCi0jZGVmaW5lIE1C X0RQTExfTVVMVAkJCSgxIDw8IDEyKQotI2RlZmluZSBNQl9EUExMX0RJVgkJCSgwIDw8IDgpCi0j ZGVmaW5lIE1CX0NNX0NMS1NFTDFfUExMXzEyX1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMg fCBcCi0JCQkJCSBNQl9EUExMX0RJViB8IE1CX0RQTExfTVVMVCB8IFwKLQkJCQkJIE1YX0FQTExT X0NMSUtJTl8xMikKLQotI2RlZmluZSBNQl9DTV9DTEtTRUwxX1BMTF8xM19WQUwJKE1YXzQ4TV9T UkMgfCBNWF81NE1fU1JDIHwgXAotCQkJCQkgTUJfRFBMTF9ESVYgfCBNQl9EUExMX01VTFQgfCBc Ci0JCQkJCSBNWF9BUExMU19DTElLSU5fMTMpCi0KLSNkZWZpbmUgTUJfQ01fQ0xLU0VMMV9QTExf MTlfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NSQyB8IFwKLQkJCQkJIE1CX0RQTExfRElWIHwg TUJfRFBMTF9NVUxUIHwgXAotCQkJCQkgTVhfQVBMTFNfQ0xJS0lOXzE5KQotCi0vKgotICogMjQz MCAtIGNoYXNzaXMgKHNlZG5hKQotICogMTY1IChyYXRpbzEpIHNhbWUgYXMgYWJvdmUgIzIKLSAq IDE1MCAocmF0aW8xKQotICogMTMzIChyYXRpbzIpIHNhbWUgYXMgYWJvdmUgIzQKLSAqIDExMCAo cmF0aW8yKSBzYW1lIGFzIGFib3ZlICMzCi0gKiAxMDQgKHJhdGlvMikKLSAqIGJvb3QgKGJvb3Qp Ci0gKi8KLQotLyogUFJDTSBJIHRhcmdldCBEUExMID0gMiozMzBNSHogPSA2NjBNSHogKi8KLSNk ZWZpbmUgTUlfRFBMTF9NVUxUXzEyCQkJKDU1IDw8IDEyKQotI2RlZmluZSBNSV9EUExMX0RJVl8x MgkJCSgxIDw8IDgpCi0jZGVmaW5lIE1JX0NNX0NMS1NFTDFfUExMXzEyX1ZBTAkoTVhfNDhNX1NS QyB8IE1YXzU0TV9TUkMgfCBcCi0JCQkJCSBNSV9EUExMX0RJVl8xMiB8IE1JX0RQTExfTVVMVF8x MiB8IFwKLQkJCQkJIE1YX0FQTExTX0NMSUtJTl8xMikKLQotLyoKLSAqIDI0MjAgRXF1aXZhbGVu dCAtIG1vZGUgcmVnaXN0ZXJzCi0gKiBQUkNNIElJICwgdGFyZ2V0IERQTEwgPSAyKjMwME1IeiA9 IDYwME1IegotICovCi0jZGVmaW5lIE1JSV9EUExMX01VTFRfMTIJCSg1MCA8PCAxMikKLSNkZWZp bmUgTUlJX0RQTExfRElWXzEyCQkJKDEgPDwgOCkKLSNkZWZpbmUgTUlJX0NNX0NMS1NFTDFfUExM XzEyX1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfAlcCi0JCQkJCSBNSUlfRFBMTF9ESVZf MTIgfCBNSUlfRFBMTF9NVUxUXzEyIHwgXAotCQkJCQkgTVhfQVBMTFNfQ0xJS0lOXzEyKQotI2Rl ZmluZSBNSUlfRFBMTF9NVUxUXzEzCQkoMzAwIDw8IDEyKQotI2RlZmluZSBNSUlfRFBMTF9ESVZf MTMJCQkoMTIgPDwgOCkKLSNkZWZpbmUgTUlJX0NNX0NMS1NFTDFfUExMXzEzX1ZBTAkoTVhfNDhN X1NSQyB8IE1YXzU0TV9TUkMgfAlcCi0JCQkJCSBNSUlfRFBMTF9ESVZfMTMgfCBNSUlfRFBMTF9N VUxUXzEzIHwgXAotCQkJCQkgTVhfQVBMTFNfQ0xJS0lOXzEzKQotCi0vKiBQUkNNIElJSSB0YXJn ZXQgRFBMTCA9IDIqMjY2ID0gNTMyTUh6Ki8KLSNkZWZpbmUgTUlJSV9EUExMX01VTFRfMTIJCSgx MzMgPDwgMTIpCi0jZGVmaW5lIE1JSUlfRFBMTF9ESVZfMTIJCSg1IDw8IDgpCi0jZGVmaW5lIE1J SUlfQ01fQ0xLU0VMMV9QTExfMTJfVkFMCShNWF80OE1fU1JDIHwgTVhfNTRNX1NSQyB8CVwKLQkJ CQkJIE1JSUlfRFBMTF9ESVZfMTIgfCBcCi0JCQkJCSBNSUlJX0RQTExfTVVMVF8xMiB8IE1YX0FQ TExTX0NMSUtJTl8xMikKLSNkZWZpbmUgTUlJSV9EUExMX01VTFRfMTMJCSgyNjYgPDwgMTIpCi0j ZGVmaW5lIE1JSUlfRFBMTF9ESVZfMTMJCSgxMiA8PCA4KQotI2RlZmluZSBNSUlJX0NNX0NMS1NF TDFfUExMXzEzX1ZBTAkoTVhfNDhNX1NSQyB8IE1YXzU0TV9TUkMgfAlcCi0JCQkJCSBNSUlJX0RQ TExfRElWXzEzIHwgXAotCQkJCQkgTUlJSV9EUExMX01VTFRfMTMgfCBNWF9BUExMU19DTElLSU5f MTMpCi0KLS8qIFBSQ00gVklJIChib290IGJ5cGFzcykgKi8KLSNkZWZpbmUgTVZJSV9DTV9DTEtT RUwxX1BMTF8xMl9WQUwJTUJfQ01fQ0xLU0VMMV9QTExfMTJfVkFMCi0jZGVmaW5lIE1WSUlfQ01f Q0xLU0VMMV9QTExfMTNfVkFMCU1CX0NNX0NMS1NFTDFfUExMXzEzX1ZBTAotCi0vKiBIaWdoIGFu ZCBsb3cgb3BlcmF0aW9uIHZhbHVlICovCi0jZGVmaW5lIE1YX0NMS1NFTDJfUExMXzJ4X1ZBTAkJ KDIgPDwgMCkKLSNkZWZpbmUgTVhfQ0xLU0VMMl9QTExfMXhfVkFMCQkoMSA8PCAwKQotCi0vKiBN UFUgc3BlZWQgZGVmaW5lcyAqLwotI2RlZmluZSBTMTJNCTEyMDAwMDAwCi0jZGVmaW5lIFMxM00J MTMwMDAwMDAKLSNkZWZpbmUgUzE5TQkxOTIwMDAwMAotI2RlZmluZSBTMjZNCTI2MDAwMDAwCi0j ZGVmaW5lIFMxMDBNCTEwMDAwMDAwMAotI2RlZmluZSBTMTMzTQkxMzMwMDAwMDAKLSNkZWZpbmUg UzE1ME0JMTUwMDAwMDAwCi0jZGVmaW5lIFMxNjRNCTE2NDAwMDAwMAotI2RlZmluZSBTMTY1TQkx NjUwMDAwMDAKLSNkZWZpbmUgUzE5OU0JMTk5MDAwMDAwCi0jZGVmaW5lIFMyMDBNCTIwMDAwMDAw MAotI2RlZmluZSBTMjY2TQkyNjYwMDAwMDAKLSNkZWZpbmUgUzMwME0JMzAwMDAwMDAwCi0jZGVm aW5lIFMzMjlNCTMyOTAwMDAwMAotI2RlZmluZSBTMzMwTQkzMzAwMDAwMDAKLSNkZWZpbmUgUzM5 OU0JMzk5MDAwMDAwCi0jZGVmaW5lIFM0MDBNCTQwMDAwMDAwMAotI2RlZmluZSBTNTMyTQk1MzIw MDAwMDAKLSNkZWZpbmUgUzYwME0JNjAwMDAwMDAwCi0jZGVmaW5lIFM2NThNCTY1ODAwMDAwMAot I2RlZmluZSBTNjYwTQk2NjAwMDAwMDAKLSNkZWZpbmUgUzc5OE0JNzk4MDAwMDAwCi0KLQotZXh0 ZXJuIGNvbnN0IHN0cnVjdCBwcmNtX2NvbmZpZyBvbWFwMjQyMF9yYXRlX3RhYmxlW107Ci0KLSNp ZmRlZiBDT05GSUdfU09DX09NQVAyNDMwCi1leHRlcm4gY29uc3Qgc3RydWN0IHByY21fY29uZmln IG9tYXAyNDMwX3JhdGVfdGFibGVbXTsKLSNlbHNlCi0jZGVmaW5lIG9tYXAyNDMwX3JhdGVfdGFi bGUJTlVMTAotI2VuZGlmCi1leHRlcm4gY29uc3Qgc3RydWN0IHByY21fY29uZmlnICpyYXRlX3Rh YmxlOwotZXh0ZXJuIGNvbnN0IHN0cnVjdCBwcmNtX2NvbmZpZyAqY3Vycl9wcmNtX3NldDsKLQot I2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BkYXRhLXF1aXJrcy5jIGIv YXJjaC9hcm0vbWFjaC1vbWFwMi9wZGF0YS1xdWlya3MuYwppbmRleCBiOTQ3YmFjZjIzYTMuLjhi ODAyMWIyOTdhYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wZGF0YS1xdWlya3Mu YworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BkYXRhLXF1aXJrcy5jCkBAIC0yNyw3ICsyNyw2 IEBACiAKICNpbmNsdWRlICJjbG9ja2RvbWFpbi5oIgogI2luY2x1ZGUgImNvbW1vbi5oIgotI2lu Y2x1ZGUgImNvbW1vbi1ib2FyZC1kZXZpY2VzLmgiCiAjaW5jbHVkZSAiY29udHJvbC5oIgogI2lu Y2x1ZGUgIm9tYXBfZGV2aWNlLmgiCiAjaW5jbHVkZSAib21hcC1zZWN1cmUuaCIKQEAgLTQyLDE1 ICs0MSw2IEBAIHN0cnVjdCBwZGF0YV9pbml0IHsKIAogc3RhdGljIHN0cnVjdCBvZl9kZXZfYXV4 ZGF0YSBvbWFwX2F1eGRhdGFfbG9va3VwW107CiAKLSNpZmRlZiBDT05GSUdfTUFDSF9OT0tJQV9O OFgwCi1zdGF0aWMgdm9pZCBfX2luaXQgb21hcDI0MjBfbjh4MF9sZWdhY3lfaW5pdCh2b2lkKQot ewotCW9tYXBfYXV4ZGF0YV9sb29rdXBbMF0ucGxhdGZvcm1fZGF0YSA9IG44eDBfbGVnYWN5X2lu aXQoKTsKLX0KLSNlbHNlCi0jZGVmaW5lIG9tYXAyNDIwX244eDBfbGVnYWN5X2luaXQJTlVMTAot I2VuZGlmCi0KICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogLyoKICAqIENvbmZpZ3VyZXMgR1BJ T3MgMTI2LCAxMjcgYW5kIDEyOSB0byAxLjhWIG1vZGUgaW5zdGVhZCBvZiAzLjBWCkBAIC00MzEs MjYgKzQyMSw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvbWFwM19tY2JzcF9pbml0KHZvaWQpCiBz dGF0aWMgdm9pZCBfX2luaXQgb21hcDNfbWNic3BfaW5pdCh2b2lkKSB7fQogI2VuZGlmCiAKLS8q Ci0gKiBGZXcgYm9hcmRzIHN0aWxsIG5lZWQgYXV4ZGF0YSBwb3B1bGF0ZWQgYmVmb3JlIHdlIHBv cHVsYXRlCi0gKiB0aGUgZGV2IGVudHJpZXMgaW4gb2ZfcGxhdGZvcm1fcG9wdWxhdGUoKS4KLSAq Lwotc3RhdGljIHN0cnVjdCBwZGF0YV9pbml0IGF1eGRhdGFfcXVpcmtzW10gX19pbml0ZGF0YSA9 IHsKLSNpZmRlZiBDT05GSUdfU09DX09NQVAyNDIwCi0JeyAibm9raWEsbjgwMCIsIG9tYXAyNDIw X244eDBfbGVnYWN5X2luaXQsIH0sCi0JeyAibm9raWEsbjgxMCIsIG9tYXAyNDIwX244eDBfbGVn YWN5X2luaXQsIH0sCi0JeyAibm9raWEsbjgxMC13aW1heCIsIG9tYXAyNDIwX244eDBfbGVnYWN5 X2luaXQsIH0sCi0jZW5kaWYKLQl7IC8qIHNlbnRpbmVsICovIH0sCi19OwotCiBzdHJ1Y3Qgb21h cF9zcl9kYXRhIF9fbWF5YmVfdW51c2VkIG9tYXBfc3JfcGRhdGFbT01BUF9TUl9OUl07CiAKIHN0 YXRpYyBzdHJ1Y3Qgb2ZfZGV2X2F1eGRhdGEgb21hcF9hdXhkYXRhX2xvb2t1cFtdID0gewotI2lm ZGVmIENPTkZJR19NQUNIX05PS0lBX044WDAKLQlPRl9ERVZfQVVYREFUQSgidGksb21hcDI0MjAt bW1jIiwgMHg0ODA5YzAwMCwgIm1tY2ktb21hcC4wIiwgTlVMTCksCi0JT0ZfREVWX0FVWERBVEEo Im1lbmVsYXVzIiwgMHg3MiwgIjEtMDA3MiIsICZuOHgwX21lbmVsYXVzX3BsYXRmb3JtX2RhdGEp LAotI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMKIAlPRl9ERVZfQVVYREFUQSgidGks b21hcDItaW9tbXUiLCAweDVkMDAwMDAwLCAiNWQwMDAwMDAubW11IiwKIAkJICAgICAgICZvbWFw M19pb21tdV9wZGF0YSksCkBAIC01NjAsMTMgKzUzMywxMSBAQCB2b2lkIF9faW5pdCBwZGF0YV9x dWlya3NfaW5pdChjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvbWFwX2R0X21hdGNoX3RhYmxl KQogCSAqIFdlIHN0aWxsIG5lZWQgdGhpcyBmb3Igb21hcDI0MjAgYW5kIG9tYXAzIFBNIHRvIHdv cmssIG90aGVycyBhcmUKIAkgKiB1c2luZyBkcml2ZXJzL21pc2Mvc3JhbS5jIGFscmVhZHkuCiAJ ICovCi0JaWYgKG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgidGksb21hcDI0MjAiKSB8fAotCSAg ICBvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoInRpLG9tYXAzIikpCisJaWYgKElTX0VOQUJMRUQo Q09ORklHX0FSQ0hfT01BUDMpICYmCisJICAgIG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgidGks b21hcDMiKSkgewogCQlvbWFwX3NkcmNfaW5pdChOVUxMLCBOVUxMKTsKLQotCWlmIChvZl9tYWNo aW5lX2lzX2NvbXBhdGlibGUoInRpLG9tYXAzIikpCiAJCW9tYXAzX21jYnNwX2luaXQoKTsKLQlw ZGF0YV9xdWlya3NfY2hlY2soYXV4ZGF0YV9xdWlya3MpOworCX0KIAogCXBkYXRhX3F1aXJrc19p bml0X2Nsb2NrcyhvbWFwX2R0X21hdGNoX3RhYmxlKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v bWFjaC1vbWFwMi9wbS5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wbS5oCmluZGV4IGY5N2ZmOTNm MmZiNC4uNTc1MWI4NWU5ZmZiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BtLmgK KysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wbS5oCkBAIC00MywxMSArNDMsNiBAQCBleHRlcm4g dm9pZCBwbV9kYmdfdXBkYXRlX3RpbWUoc3RydWN0IHBvd2VyZG9tYWluICpwd3JkbSwgaW50IHBy ZXYpOwogI2RlZmluZSBwbV9kYmdfdXBkYXRlX3RpbWUocHdyZG0sIHByZXYpIGRvIHt9IHdoaWxl ICgwKTsKICNlbmRpZiAvKiBDT05GSUdfUE1fREVCVUcgKi8KIAotLyogMjR4eCAqLwotZXh0ZXJu IHZvaWQgb21hcDI0eHhfY3B1X3N1c3BlbmQodTMyIGRsbF9jdHJsLCB2b2lkIF9faW9tZW0gKnNk cmNfZGxsYV9jdHJsLAotCQkJCQl2b2lkIF9faW9tZW0gKnNkcmNfcG93ZXIpOwotZXh0ZXJuIHVu c2lnbmVkIGludCBvbWFwMjR4eF9jcHVfc3VzcGVuZF9zejsKLQogLyogM3h4eCAqLwogZXh0ZXJu IHZvaWQgb21hcDM0eHhfY3B1X3N1c3BlbmQoaW50IHNhdmVfc3RhdGUpOwogCmRpZmYgLS1naXQg YS9hcmNoL2FybS9tYWNoLW9tYXAyL3Bvd2VyZG9tYWluLmggYi9hcmNoL2FybS9tYWNoLW9tYXAy L3Bvd2VyZG9tYWluLmgKaW5kZXggZmJjODk5OTk0NjBiLi5lYWY2ZDExMDRkYzIgMTAwNjQ0Ci0t LSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcG93ZXJkb21haW4uaAorKysgYi9hcmNoL2FybS9tYWNo LW9tYXAyL3Bvd2VyZG9tYWluLmgKQEAgLTI0NCw4ICsyNDQsNiBAQCBpbnQgcHdyZG1fcG9zdF90 cmFuc2l0aW9uKHN0cnVjdCBwb3dlcmRvbWFpbiAqcHdyZG0pOwogCiBleHRlcm4gaW50IG9tYXBf c2V0X3B3cmRtX3N0YXRlKHN0cnVjdCBwb3dlcmRvbWFpbiAqcHdyZG0sIHU4IHN0YXRlKTsKIAot ZXh0ZXJuIHZvaWQgb21hcDI0MnhfcG93ZXJkb21haW5zX2luaXQodm9pZCk7Ci1leHRlcm4gdm9p ZCBvbWFwMjQzeF9wb3dlcmRvbWFpbnNfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIG9tYXAzeHh4 X3Bvd2VyZG9tYWluc19pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgYW0zM3h4X3Bvd2VyZG9tYWlu c19pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgb21hcDQ0eHhfcG93ZXJkb21haW5zX2luaXQodm9p ZCk7CkBAIC0yNTMsNyArMjUxLDYgQEAgZXh0ZXJuIHZvaWQgb21hcDU0eHhfcG93ZXJkb21haW5z X2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBkcmE3eHhfcG93ZXJkb21haW5zX2luaXQodm9pZCk7 CiB2b2lkIGFtNDN4eF9wb3dlcmRvbWFpbnNfaW5pdCh2b2lkKTsKIAotZXh0ZXJuIHN0cnVjdCBw d3JkbV9vcHMgb21hcDJfcHdyZG1fb3BlcmF0aW9uczsKIGV4dGVybiBzdHJ1Y3QgcHdyZG1fb3Bz IG9tYXAzX3B3cmRtX29wZXJhdGlvbnM7CiBleHRlcm4gc3RydWN0IHB3cmRtX29wcyBhbTMzeHhf cHdyZG1fb3BlcmF0aW9uczsKIGV4dGVybiBzdHJ1Y3QgcHdyZG1fb3BzIG9tYXA0X3B3cmRtX29w ZXJhdGlvbnM7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3Bvd2VyZG9tYWluczJ4 eHhfZGF0YS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wb3dlcmRvbWFpbnMyeHh4X2RhdGEuYwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmEyNTlhZGJkYzYxLi4wMDAwMDAwMDAwMDAK LS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wb3dlcmRvbWFpbnMyeHh4X2RhdGEuYworKysgL2Rl di9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMC1vbmx5Ci0vKgotICogT01BUDJYWFggcG93ZXJkb21haW4gZGVmaW5pdGlvbnMKLSAqCi0g KiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCwgMjAxMSBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgot ICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTEgTm9raWEgQ29ycG9yYXRpb24KLSAqCi0gKiBQYXVs IFdhbG1zbGV5LCBKb3VuaSBIw7ZnYW5kZXIKLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVs Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotCi0jaW5jbHVkZSAic29jLmgiCi0jaW5jbHVk ZSAicG93ZXJkb21haW4uaCIKLSNpbmNsdWRlICJwb3dlcmRvbWFpbnMyeHh4XzN4eHhfZGF0YS5o IgotCi0jaW5jbHVkZSAicHJjbS1jb21tb24uaCIKLSNpbmNsdWRlICJwcm0yeHh4XzN4eHguaCIK LSNpbmNsdWRlICJwcm0tcmVnYml0cy0yNHh4LmgiCi0KLS8qIDI0WFggcG93ZXJkb21haW5zIGFu ZCBkZXBlbmRlbmNpZXMgKi8KLQotLyogUG93ZXJkb21haW5zICovCi0KLXN0YXRpYyBzdHJ1Y3Qg cG93ZXJkb21haW4gZHNwX3B3cmRtID0gewotCS5uYW1lCQkgID0gImRzcF9wd3JkbSIsCi0JLnBy Y21fb2ZmcwkgID0gT01BUDI0WFhfRFNQX01PRCwKLQkucHdyc3RzCQkgID0gUFdSU1RTX09GRl9S RVRfT04sCi0JLnB3cnN0c19sb2dpY19yZXQgPSBQV1JTVFNfUkVULAotCS5iYW5rcwkJICA9IDEs Ci0JLnB3cnN0c19tZW1fcmV0CSAgPSB7Ci0JCVswXSA9IFBXUlNUU19SRVQsCi0JfSwKLQkucHdy c3RzX21lbV9vbgkgID0gewotCQlbMF0gPSBQV1JTVFNfT04sCi0JfSwKLQkudm9sdGRtCQkgID0g eyAubmFtZSA9ICJjb3JlIiB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBwb3dlcmRvbWFpbiBtcHVf MjR4eF9wd3JkbSA9IHsKLQkubmFtZQkJICA9ICJtcHVfcHdyZG0iLAotCS5wcmNtX29mZnMJICA9 IE1QVV9NT0QsCi0JLnB3cnN0cwkJICA9IFBXUlNUU19PRkZfUkVUX09OLAotCS5wd3JzdHNfbG9n aWNfcmV0ID0gUFdSU1RTX09GRl9SRVQsCi0JLmJhbmtzCQkgID0gMSwKLQkucHdyc3RzX21lbV9y ZXQJICA9IHsKLQkJWzBdID0gUFdSU1RTX1JFVCwKLQl9LAotCS5wd3JzdHNfbWVtX29uCSAgPSB7 Ci0JCVswXSA9IFBXUlNUU19PTiwKLQl9LAotCS52b2x0ZG0JCSAgPSB7IC5uYW1lID0gImNvcmUi IH0sCi19OwotCi1zdGF0aWMgc3RydWN0IHBvd2VyZG9tYWluIGNvcmVfMjR4eF9wd3JkbSA9IHsK LQkubmFtZQkJICA9ICJjb3JlX3B3cmRtIiwKLQkucHJjbV9vZmZzCSAgPSBDT1JFX01PRCwKLQku cHdyc3RzCQkgID0gUFdSU1RTX09GRl9SRVRfT04sCi0JLnB3cnN0c19sb2dpY19yZXQgPSBQV1JT VFNfUkVULAotCS5iYW5rcwkJICA9IDMsCi0JLnB3cnN0c19tZW1fcmV0CSAgPSB7Ci0JCVswXSA9 IFBXUlNUU19PRkZfUkVULAkgLyogTUVNMVJFVFNUQVRFICovCi0JCVsxXSA9IFBXUlNUU19PRkZf UkVULAkgLyogTUVNMlJFVFNUQVRFICovCi0JCVsyXSA9IFBXUlNUU19PRkZfUkVULAkgLyogTUVN M1JFVFNUQVRFICovCi0JfSwKLQkucHdyc3RzX21lbV9vbgkgID0gewotCQlbMF0gPSBQV1JTVFNf T0ZGX1JFVF9PTiwgLyogTUVNMU9OU1RBVEUgKi8KLQkJWzFdID0gUFdSU1RTX09GRl9SRVRfT04s IC8qIE1FTTJPTlNUQVRFICovCi0JCVsyXSA9IFBXUlNUU19PRkZfUkVUX09OLCAvKiBNRU0zT05T VEFURSAqLwotCX0sCi0JLnZvbHRkbQkJICA9IHsgLm5hbWUgPSAiY29yZSIgfSwKLX07Ci0KLQot LyoKLSAqIDI0MzAtc3BlY2lmaWMgcG93ZXJkb21haW5zCi0gKi8KLQotLyogWFhYIDI0MzAgS0lM TERPTUFJTldLVVAgYml0PyAgTm8gY3VycmVudCB1c2VycyBhcHBhcmVudGx5ICovCi0KLXN0YXRp YyBzdHJ1Y3QgcG93ZXJkb21haW4gbWRtX3B3cmRtID0gewotCS5uYW1lCQkgID0gIm1kbV9wd3Jk bSIsCi0JLnByY21fb2ZmcwkgID0gT01BUDI0MzBfTURNX01PRCwKLQkucHdyc3RzCQkgID0gUFdS U1RTX09GRl9SRVRfT04sCi0JLnB3cnN0c19sb2dpY19yZXQgPSBQV1JTVFNfUkVULAotCS5iYW5r cwkJICA9IDEsCi0JLnB3cnN0c19tZW1fcmV0CSAgPSB7Ci0JCVswXSA9IFBXUlNUU19SRVQsIC8q IE1FTVJFVFNUQVRFICovCi0JfSwKLQkucHdyc3RzX21lbV9vbgkgID0gewotCQlbMF0gPSBQV1JT VFNfT04sICAvKiBNRU1PTlNUQVRFICovCi0JfSwKLQkudm9sdGRtCQkgID0geyAubmFtZSA9ICJj b3JlIiB9LAotfTsKLQotLyoKLSAqCi0gKi8KLQotc3RhdGljIHN0cnVjdCBwb3dlcmRvbWFpbiAq cG93ZXJkb21haW5zX29tYXAyNHh4W10gX19pbml0ZGF0YSA9IHsKLQkmd2t1cF9vbWFwMl9wd3Jk bSwKLQkmZ2Z4X29tYXAyX3B3cmRtLAotCSZkc3BfcHdyZG0sCi0JJm1wdV8yNHh4X3B3cmRtLAot CSZjb3JlXzI0eHhfcHdyZG0sCi0JTlVMTAotfTsKLQotc3RhdGljIHN0cnVjdCBwb3dlcmRvbWFp biAqcG93ZXJkb21haW5zX29tYXAyNDMwW10gX19pbml0ZGF0YSA9IHsKLQkmbWRtX3B3cmRtLAot CU5VTEwKLX07Ci0KLXZvaWQgX19pbml0IG9tYXAyNDJ4X3Bvd2VyZG9tYWluc19pbml0KHZvaWQp Ci17Ci0JaWYgKCFjcHVfaXNfb21hcDI0MjAoKSkKLQkJcmV0dXJuOwotCi0JcHdyZG1fcmVnaXN0 ZXJfcGxhdGZvcm1fZnVuY3MoJm9tYXAyX3B3cmRtX29wZXJhdGlvbnMpOwotCXB3cmRtX3JlZ2lz dGVyX3B3cmRtcyhwb3dlcmRvbWFpbnNfb21hcDI0eHgpOwotCXB3cmRtX2NvbXBsZXRlX2luaXQo KTsKLX0KLQotdm9pZCBfX2luaXQgb21hcDI0M3hfcG93ZXJkb21haW5zX2luaXQodm9pZCkKLXsK LQlpZiAoIWNwdV9pc19vbWFwMjQzMCgpKQotCQlyZXR1cm47Ci0KLQlwd3JkbV9yZWdpc3Rlcl9w bGF0Zm9ybV9mdW5jcygmb21hcDJfcHdyZG1fb3BlcmF0aW9ucyk7Ci0JcHdyZG1fcmVnaXN0ZXJf cHdyZG1zKHBvd2VyZG9tYWluc19vbWFwMjR4eCk7Ci0JcHdyZG1fcmVnaXN0ZXJfcHdyZG1zKHBv d2VyZG9tYWluc19vbWFwMjQzMCk7Ci0JcHdyZG1fY29tcGxldGVfaW5pdCgpOwotfQpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLWNvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1v bWFwMi9wcmNtLWNvbW1vbi5oCmluZGV4IDVlMzU0NGE2MzUyNi4uZTMyNmJiNmEwOWRiIDEwMDY0 NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmgKKysrIGIvYXJjaC9hcm0v bWFjaC1vbWFwMi9wcmNtLWNvbW1vbi5oCkBAIC0yNywxMiArMjcsNiBAQAogI2RlZmluZSBQTExf TU9ECQkJCQkJMHg1MDAKIAogCi0vKiBDaGlwLXNwZWNpZmljIG1vZHVsZSBvZmZzZXRzICovCi0j ZGVmaW5lIE9NQVAyNFhYX0dSX01PRAkJCQkJT0NQX01PRAotI2RlZmluZSBPTUFQMjRYWF9EU1Bf TU9ECQkJCTB4ODAwCi0KLSNkZWZpbmUgT01BUDI0MzBfTURNX01PRAkJCQkweGMwMAotCiAvKiBJ VkEyIG1vZHVsZSBpcyA8IGJhc2Ugb24gMzQzMCAqLwogI2RlZmluZSBPTUFQMzQzMF9JVkEyX01P RAkJCQktMHg4MDAKICNkZWZpbmUgT01BUDM0MzBFUzJfU0dYX01PRAkJCQlHRlhfTU9ECkBAIC02 MywxNDcgKzU3LDYgQEAKICNkZWZpbmUgVEk4MTZYX1BSTV9TR1hfTU9ECQkJCTB4MGYwMAogI2Rl ZmluZSBUSTgxWFhfUFJNX0FMV09OX01PRAkJCTB4MTgwMAogCi0vKiAyNFhYIHJlZ2lzdGVyIGJp dHMgc2hhcmVkIGJldHdlZW4gQ00gJiBQUk0gcmVnaXN0ZXJzICovCi0KLS8qIENNX0ZDTEtFTjFf Q09SRSwgQ01fSUNMS0VOMV9DT1JFLCBQTV9XS0VOMV9DT1JFIHNoYXJlZCBiaXRzICovCi0jZGVm aW5lIE9NQVAyNDIwX0VOX01NQ19TSElGVAkJCQkyNgotI2RlZmluZSBPTUFQMjQyMF9FTl9NTUNf TUFTSwkJCQkoMSA8PCAyNikKLSNkZWZpbmUgT01BUDI0WFhfRU5fVUFSVDJfU0hJRlQJCQkJMjIK LSNkZWZpbmUgT01BUDI0WFhfRU5fVUFSVDJfTUFTSwkJCQkoMSA8PCAyMikKLSNkZWZpbmUgT01B UDI0WFhfRU5fVUFSVDFfU0hJRlQJCQkJMjEKLSNkZWZpbmUgT01BUDI0WFhfRU5fVUFSVDFfTUFT SwkJCQkoMSA8PCAyMSkKLSNkZWZpbmUgT01BUDI0WFhfRU5fTUNTUEkyX1NISUZUCQkJMTgKLSNk ZWZpbmUgT01BUDI0WFhfRU5fTUNTUEkyX01BU0sJCQkJKDEgPDwgMTgpCi0jZGVmaW5lIE9NQVAy NFhYX0VOX01DU1BJMV9TSElGVAkJCTE3Ci0jZGVmaW5lIE9NQVAyNFhYX0VOX01DU1BJMV9NQVNL CQkJCSgxIDw8IDE3KQotI2RlZmluZSBPTUFQMjRYWF9FTl9NQ0JTUDJfU0hJRlQJCQkxNgotI2Rl ZmluZSBPTUFQMjRYWF9FTl9NQ0JTUDJfTUFTSwkJCQkoMSA8PCAxNikKLSNkZWZpbmUgT01BUDI0 WFhfRU5fTUNCU1AxX1NISUZUCQkJMTUKLSNkZWZpbmUgT01BUDI0WFhfRU5fTUNCU1AxX01BU0sJ CQkJKDEgPDwgMTUpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDEyX1NISUZUCQkJCTE0Ci0jZGVm aW5lIE9NQVAyNFhYX0VOX0dQVDEyX01BU0sJCQkJKDEgPDwgMTQpCi0jZGVmaW5lIE9NQVAyNFhY X0VOX0dQVDExX1NISUZUCQkJCTEzCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDExX01BU0sJCQkJ KDEgPDwgMTMpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDEwX1NISUZUCQkJCTEyCi0jZGVmaW5l IE9NQVAyNFhYX0VOX0dQVDEwX01BU0sJCQkJKDEgPDwgMTIpCi0jZGVmaW5lIE9NQVAyNFhYX0VO X0dQVDlfU0hJRlQJCQkJMTEKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUOV9NQVNLCQkJCSgxIDw8 IDExKQotI2RlZmluZSBPTUFQMjRYWF9FTl9HUFQ4X1NISUZUCQkJCTEwCi0jZGVmaW5lIE9NQVAy NFhYX0VOX0dQVDhfTUFTSwkJCQkoMSA8PCAxMCkKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BUN19T SElGVAkJCQk5Ci0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDdfTUFTSwkJCQkoMSA8PCA5KQotI2Rl ZmluZSBPTUFQMjRYWF9FTl9HUFQ2X1NISUZUCQkJCTgKLSNkZWZpbmUgT01BUDI0WFhfRU5fR1BU Nl9NQVNLCQkJCSgxIDw8IDgpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDVfU0hJRlQJCQkJNwot I2RlZmluZSBPTUFQMjRYWF9FTl9HUFQ1X01BU0sJCQkJKDEgPDwgNykKLSNkZWZpbmUgT01BUDI0 WFhfRU5fR1BUNF9TSElGVAkJCQk2Ci0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDRfTUFTSwkJCQko MSA8PCA2KQotI2RlZmluZSBPTUFQMjRYWF9FTl9HUFQzX1NISUZUCQkJCTUKLSNkZWZpbmUgT01B UDI0WFhfRU5fR1BUM19NQVNLCQkJCSgxIDw8IDUpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDJf U0hJRlQJCQkJNAotI2RlZmluZSBPTUFQMjRYWF9FTl9HUFQyX01BU0sJCQkJKDEgPDwgNCkKLSNk ZWZpbmUgT01BUDI0MjBfRU5fVkxZTlFfU0hJRlQJCQkJMwotI2RlZmluZSBPTUFQMjQyMF9FTl9W TFlOUV9NQVNLCQkJCSgxIDw8IDMpCi0KLS8qIENNX0ZDTEtFTjJfQ09SRSwgQ01fSUNMS0VOMl9D T1JFLCBQTV9XS0VOMl9DT1JFIHNoYXJlZCBiaXRzICovCi0jZGVmaW5lIE9NQVAyNDMwX0VOX0dQ SU81X1NISUZUCQkJCTEwCi0jZGVmaW5lIE9NQVAyNDMwX0VOX0dQSU81X01BU0sJCQkJKDEgPDwg MTApCi0jZGVmaW5lIE9NQVAyNDMwX0VOX01DU1BJM19TSElGVAkJCTkKLSNkZWZpbmUgT01BUDI0 MzBfRU5fTUNTUEkzX01BU0sJCQkJKDEgPDwgOSkKLSNkZWZpbmUgT01BUDI0MzBfRU5fTU1DSFMy X1NISUZUCQkJOAotI2RlZmluZSBPTUFQMjQzMF9FTl9NTUNIUzJfTUFTSwkJCQkoMSA8PCA4KQot I2RlZmluZSBPTUFQMjQzMF9FTl9NTUNIUzFfU0hJRlQJCQk3Ci0jZGVmaW5lIE9NQVAyNDMwX0VO X01NQ0hTMV9NQVNLCQkJCSgxIDw8IDcpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX1VBUlQzX1NISUZU CQkJCTIKLSNkZWZpbmUgT01BUDI0WFhfRU5fVUFSVDNfTUFTSwkJCQkoMSA8PCAyKQotI2RlZmlu ZSBPTUFQMjRYWF9FTl9VU0JfU0hJRlQJCQkJMAotI2RlZmluZSBPTUFQMjRYWF9FTl9VU0JfTUFT SwkJCQkoMSA8PCAwKQotCi0vKiBDTV9JQ0xLRU4yX0NPUkUsIFBNX1dLRU4yX0NPUkUgc2hhcmVk IGJpdHMgKi8KLSNkZWZpbmUgT01BUDI0MzBfRU5fTURNX0lOVENfU0hJRlQJCQkxMQotI2RlZmlu ZSBPTUFQMjQzMF9FTl9NRE1fSU5UQ19NQVNLCQkJKDEgPDwgMTEpCi0jZGVmaW5lIE9NQVAyNDMw X0VOX1VTQkhTX1NISUZUCQkJCTYKLSNkZWZpbmUgT01BUDI0MzBfRU5fVVNCSFNfTUFTSwkJCQko MSA8PCA2KQotI2RlZmluZSBPTUFQMjRYWF9FTl9HUE1DX1NISUZUCQkJCTEKLSNkZWZpbmUgT01B UDI0WFhfRU5fR1BNQ19NQVNLCQkJCSgxIDw8IDEpCi0KLS8qIENNX0lETEVTVDFfQ09SRSwgUE1f V0tTVDFfQ09SRSBzaGFyZWQgYml0cyAqLwotI2RlZmluZSBPTUFQMjQyMF9TVF9NTUNfU0hJRlQJ CQkJMjYKLSNkZWZpbmUgT01BUDI0MjBfU1RfTU1DX01BU0sJCQkJKDEgPDwgMjYpCi0jZGVmaW5l IE9NQVAyNFhYX1NUX1VBUlQyX1NISUZUCQkJCTIyCi0jZGVmaW5lIE9NQVAyNFhYX1NUX1VBUlQy X01BU0sJCQkJKDEgPDwgMjIpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX1VBUlQxX1NISUZUCQkJCTIx Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX1VBUlQxX01BU0sJCQkJKDEgPDwgMjEpCi0jZGVmaW5lIE9N QVAyNFhYX1NUX01DU1BJMl9TSElGVAkJCTE4Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX01DU1BJMl9N QVNLCQkJCSgxIDw8IDE4KQotI2RlZmluZSBPTUFQMjRYWF9TVF9NQ1NQSTFfU0hJRlQJCQkxNwot I2RlZmluZSBPTUFQMjRYWF9TVF9NQ1NQSTFfTUFTSwkJCQkoMSA8PCAxNykKLSNkZWZpbmUgT01B UDI0WFhfU1RfTUNCU1AyX1NISUZUCQkJMTYKLSNkZWZpbmUgT01BUDI0WFhfU1RfTUNCU1AyX01B U0sJCQkJKDEgPDwgMTYpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX01DQlNQMV9TSElGVAkJCTE1Ci0j ZGVmaW5lIE9NQVAyNFhYX1NUX01DQlNQMV9NQVNLCQkJCSgxIDw8IDE1KQotI2RlZmluZSBPTUFQ MjRYWF9TVF9HUFQxMl9TSElGVAkJCQkxNAotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQxMl9NQVNL CQkJCSgxIDw8IDE0KQotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQxMV9TSElGVAkJCQkxMwotI2Rl ZmluZSBPTUFQMjRYWF9TVF9HUFQxMV9NQVNLCQkJCSgxIDw8IDEzKQotI2RlZmluZSBPTUFQMjRY WF9TVF9HUFQxMF9TSElGVAkJCQkxMgotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQxMF9NQVNLCQkJ CSgxIDw8IDEyKQotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQ5X1NISUZUCQkJCTExCi0jZGVmaW5l IE9NQVAyNFhYX1NUX0dQVDlfTUFTSwkJCQkoMSA8PCAxMSkKLSNkZWZpbmUgT01BUDI0WFhfU1Rf R1BUOF9TSElGVAkJCQkxMAotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQ4X01BU0sJCQkJKDEgPDwg MTApCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDdfU0hJRlQJCQkJOQotI2RlZmluZSBPTUFQMjRY WF9TVF9HUFQ3X01BU0sJCQkJKDEgPDwgOSkKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BUNl9TSElG VAkJCQk4Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDZfTUFTSwkJCQkoMSA8PCA4KQotI2RlZmlu ZSBPTUFQMjRYWF9TVF9HUFQ1X1NISUZUCQkJCTcKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BUNV9N QVNLCQkJCSgxIDw8IDcpCi0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDRfU0hJRlQJCQkJNgotI2Rl ZmluZSBPTUFQMjRYWF9TVF9HUFQ0X01BU0sJCQkJKDEgPDwgNikKLSNkZWZpbmUgT01BUDI0WFhf U1RfR1BUM19TSElGVAkJCQk1Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQVDNfTUFTSwkJCQkoMSA8 PCA1KQotI2RlZmluZSBPTUFQMjRYWF9TVF9HUFQyX1NISUZUCQkJCTQKLSNkZWZpbmUgT01BUDI0 WFhfU1RfR1BUMl9NQVNLCQkJCSgxIDw8IDQpCi0jZGVmaW5lIE9NQVAyNDIwX1NUX1ZMWU5RX1NI SUZUCQkJCTMKLSNkZWZpbmUgT01BUDI0MjBfU1RfVkxZTlFfTUFTSwkJCQkoMSA8PCAzKQotCi0v KiBDTV9JRExFU1QyX0NPUkUsIFBNX1dLU1QyX0NPUkUgc2hhcmVkIGJpdHMgKi8KLSNkZWZpbmUg T01BUDI0MzBfU1RfTURNX0lOVENfU0hJRlQJCQkxMQotI2RlZmluZSBPTUFQMjQzMF9TVF9NRE1f SU5UQ19NQVNLCQkJKDEgPDwgMTEpCi0jZGVmaW5lIE9NQVAyNDMwX1NUX0dQSU81X1NISUZUCQkJ CTEwCi0jZGVmaW5lIE9NQVAyNDMwX1NUX0dQSU81X01BU0sJCQkJKDEgPDwgMTApCi0jZGVmaW5l IE9NQVAyNDMwX1NUX01DU1BJM19TSElGVAkJCTkKLSNkZWZpbmUgT01BUDI0MzBfU1RfTUNTUEkz X01BU0sJCQkJKDEgPDwgOSkKLSNkZWZpbmUgT01BUDI0MzBfU1RfTU1DSFMyX1NISUZUCQkJOAot I2RlZmluZSBPTUFQMjQzMF9TVF9NTUNIUzJfTUFTSwkJCQkoMSA8PCA4KQotI2RlZmluZSBPTUFQ MjQzMF9TVF9NTUNIUzFfU0hJRlQJCQk3Ci0jZGVmaW5lIE9NQVAyNDMwX1NUX01NQ0hTMV9NQVNL CQkJCSgxIDw8IDcpCi0jZGVmaW5lIE9NQVAyNDMwX1NUX1VTQkhTX1NISUZUCQkJCTYKLSNkZWZp bmUgT01BUDI0MzBfU1RfVVNCSFNfTUFTSwkJCQkoMSA8PCA2KQotI2RlZmluZSBPTUFQMjRYWF9T VF9VQVJUM19TSElGVAkJCQkyCi0jZGVmaW5lIE9NQVAyNFhYX1NUX1VBUlQzX01BU0sJCQkJKDEg PDwgMikKLSNkZWZpbmUgT01BUDI0WFhfU1RfVVNCX1NISUZUCQkJCTAKLSNkZWZpbmUgT01BUDI0 WFhfU1RfVVNCX01BU0sJCQkJKDEgPDwgMCkKLQotLyogQ01fRkNMS0VOX1dLVVAsIENNX0lDTEtF Tl9XS1VQLCBQTV9XS0VOX1dLVVAgc2hhcmVkIGJpdHMgKi8KLSNkZWZpbmUgT01BUDI0WFhfRU5f R1BJT1NfU0hJRlQJCQkJMgotI2RlZmluZSBPTUFQMjRYWF9FTl9HUElPU19NQVNLCQkJCSgxIDw8 IDIpCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0dQVDFfU0hJRlQJCQkJMAotI2RlZmluZSBPTUFQMjRY WF9FTl9HUFQxX01BU0sJCQkJKDEgPDwgMCkKLQotLyogUE1fV0tTVF9XS1VQLCBDTV9JRExFU1Rf V0tVUCBzaGFyZWQgYml0cyAqLwotI2RlZmluZSBPTUFQMjRYWF9TVF9HUElPU19TSElGVAkJCQky Ci0jZGVmaW5lIE9NQVAyNFhYX1NUX0dQSU9TX01BU0sJCQkJKDEgPDwgMikKLSNkZWZpbmUgT01B UDI0WFhfU1RfMzJLU1lOQ19TSElGVAkJCTEKLSNkZWZpbmUgT01BUDI0WFhfU1RfMzJLU1lOQ19N QVNLCQkJKDEgPDwgMSkKLSNkZWZpbmUgT01BUDI0WFhfU1RfR1BUMV9TSElGVAkJCQkwCi0jZGVm aW5lIE9NQVAyNFhYX1NUX0dQVDFfTUFTSwkJCQkoMSA8PCAwKQotCi0vKiBDTV9JRExFU1RfTURN IGFuZCBQTV9XS1NUX01ETSBzaGFyZWQgYml0cyAqLwotI2RlZmluZSBPTUFQMjQzMF9TVF9NRE1f U0hJRlQJCQkJMAotI2RlZmluZSBPTUFQMjQzMF9TVF9NRE1fTUFTSwkJCQkoMSA8PCAwKQotCi0K IC8qIDM0MzAgcmVnaXN0ZXIgYml0cyBzaGFyZWQgYmV0d2VlbiBDTSAmIFBSTSByZWdpc3RlcnMg Ki8KIAogLyogQ01fUkVWSVNJT04sIFBSTV9SRVZJU0lPTiBzaGFyZWQgYml0cyAqLwpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0tcmVnYml0cy0yNHh4LmggYi9hcmNoL2FybS9t YWNoLW9tYXAyL3BybS1yZWdiaXRzLTI0eHguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZmY4MzgwMWY2NDM5Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9w cm0tcmVnYml0cy0yNHh4LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCi0jaWZuZGVmIF9fQVJDSF9BUk1f TUFDSF9PTUFQMl9QUk1fUkVHQklUU18yNFhYX0gKLSNkZWZpbmUgX19BUkNIX0FSTV9NQUNIX09N QVAyX1BSTV9SRUdCSVRTXzI0WFhfSAotCi0vKgotICogT01BUDI0WFggUG93ZXIvUmVzZXQgTWFu YWdlbWVudCByZWdpc3RlciBiaXRzCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFRleGFzIElu c3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgTm9raWEgQ29ycG9yYXRpb24K LSAqCi0gKiBXcml0dGVuIGJ5IFBhdWwgV2FsbXNsZXkKLSAqLwotCi0jaW5jbHVkZSAicHJtMnh4 eC5oIgotCi0jZGVmaW5lIE9NQVAyNFhYX0VOX0NPUkVfU0hJRlQgCQkJCTAKLSNkZWZpbmUgT01B UDI0WFhfRk9SQ0VTVEFURV9NQVNLCQkJKDEgPDwgMTgpCi0jZGVmaW5lIE9NQVAyNFhYX0FVVE9J RExFX01BU0sJCQkJKDEgPDwgMCkKLSNkZWZpbmUgT01BUDI0WFhfQVVUT19FWFRWT0xUX01BU0sJ CQkoMSA8PCAxNSkKLSNkZWZpbmUgT01BUDI0WFhfU0VUT0ZGX0xFVkVMX1NISUZUCQkJMTIKLSNk ZWZpbmUgT01BUDI0WFhfTUVNUkVUQ1RSTF9NQVNLCQkJKDEgPDwgOCkKLSNkZWZpbmUgT01BUDI0 WFhfU0VUUkVUX0xFVkVMX1NISUZUCQkJNgotI2RlZmluZSBPTUFQMjRYWF9WT0xUX0xFVkVMX1NI SUZUCQkJMAotI2RlZmluZSBPTUFQMjQyMF9DTEtPVVQyX0VOX1NISUZUCQkJMTUKLSNkZWZpbmUg T01BUDI0MjBfQ0xLT1VUMl9ESVZfU0hJRlQJCQkxMQotI2RlZmluZSBPTUFQMjQyMF9DTEtPVVQy X0RJVl9XSURUSAkJCTMKLSNkZWZpbmUgT01BUDI0MjBfQ0xLT1VUMl9TT1VSQ0VfTUFTSwkJCSgw eDMgPDwgOCkKLSNkZWZpbmUgT01BUDI0WFhfQ0xLT1VUX0VOX1NISUZUCQkJNwotI2RlZmluZSBP TUFQMjRYWF9DTEtPVVRfRElWX1NISUZUCQkJMwotI2RlZmluZSBPTUFQMjRYWF9DTEtPVVRfRElW X1dJRFRICQkJMwotI2RlZmluZSBPTUFQMjRYWF9DTEtPVVRfU09VUkNFX01BU0sJCQkoMHgzIDw8 IDApCi0jZGVmaW5lIE9NQVAyNFhYX0VNVUxBVElPTl9FTl9TSElGVAkJCTAKLSNkZWZpbmUgT01B UDI0MzBfUE1fV0tERVBfTVBVX0VOX01ETV9TSElGVAkJNQotI2RlZmluZSBPTUFQMjRYWF9QTV9X S0RFUF9NUFVfRU5fRFNQX1NISUZUCQkyCi0jZGVmaW5lIE9NQVAyNFhYX0VYVFdNUFVfUlNUX1NI SUZUCQkJNgotI2RlZmluZSBPTUFQMjRYWF9TRUNVX1dEX1JTVF9TSElGVAkJCTUKLSNkZWZpbmUg T01BUDI0WFhfTVBVX1dEX1JTVF9TSElGVAkJCTQKLSNkZWZpbmUgT01BUDI0WFhfU0VDVV9WSU9M X1JTVF9TSElGVAkJCTMKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9w cm0yeHh4LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BybTJ4eHguYwpkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMzVhNThmNTRiNTI4Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0v bWFjaC1vbWFwMi9wcm0yeHh4LmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIE9NQVAyeHh4IFBS TSBtb2R1bGUgZnVuY3Rpb25zCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTIgVGV4YXMg SW5zdHJ1bWVudHMsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv bgotICogQmVub8OudCBDb3Vzc29uCi0gKiBQYXVsIFdhbG1zbGV5Ci0gKiBSYWplbmRyYSBOYXlh ayA8cm5heWFrQHRpLmNvbT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5j bHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxs aW51eC9pby5oPgotI2luY2x1ZGUgPGxpbnV4L2lycS5oPgotCi0jaW5jbHVkZSAicG93ZXJkb21h aW4uaCIKLSNpbmNsdWRlICJjbG9ja2RvbWFpbi5oIgotI2luY2x1ZGUgInBybTJ4eHguaCIKLSNp bmNsdWRlICJjbTJ4eHhfM3h4eC5oIgotI2luY2x1ZGUgInBybS1yZWdiaXRzLTI0eHguaCIKLQot LyoKLSAqIE9NQVAyNHh4IFBNX1BXU1RDVFJMXyouUE9XRVJTVEFURSBhbmQgUE1fUFdTVFNUXyou TEFTVFNUQVRFRU5URVJFRCBiaXRzIC0KLSAqIHRoZXNlIGFyZSByZXZlcnNlZCBmcm9tIHRoZSBi aXRzIHVzZWQgb24gT01BUDMrCi0gKi8KLSNkZWZpbmUgT01BUDI0WFhfUFdSRE1fUE9XRVJfT04J CQkweDAKLSNkZWZpbmUgT01BUDI0WFhfUFdSRE1fUE9XRVJfUkVUCQkweDEKLSNkZWZpbmUgT01B UDI0WFhfUFdSRE1fUE9XRVJfT0ZGCQkweDMKLQotLyoKLSAqIG9tYXAyeHh4X3BybV9yZXNldF9z cmNfbWFwIC0gbWFwIGZyb20gYml0cyBpbiB0aGUgUFJNX1JTVFNUX1dLVVAKLSAqICAgaGFyZHdh cmUgcmVnaXN0ZXIgKHdoaWNoIGFyZSBzcGVjaWZpYyB0byB0aGUgT01BUDJ4eHggU29DcykgdG8K LSAqICAgcmVzZXQgc291cmNlIElEIGJpdCBzaGlmdHMgKHdoaWNoIGlzIGFuIE9NQVAgU29DLWlu ZGVwZW5kZW50Ci0gKiAgIGVudW1lcmF0aW9uKQotICovCi1zdGF0aWMgc3RydWN0IHBybV9yZXNl dF9zcmNfbWFwIG9tYXAyeHh4X3BybV9yZXNldF9zcmNfbWFwW10gPSB7Ci0JeyBPTUFQX0dMT0JB TENPTERfUlNUX1NISUZULCBPTUFQX0dMT0JBTF9DT0xEX1JTVF9TUkNfSURfU0hJRlQgfSwKLQl7 IE9NQVBfR0xPQkFMV0FSTV9SU1RfU0hJRlQsIE9NQVBfR0xPQkFMX1dBUk1fUlNUX1NSQ19JRF9T SElGVCB9LAotCXsgT01BUDI0WFhfU0VDVV9WSU9MX1JTVF9TSElGVCwgT01BUF9TRUNVX1ZJT0xf UlNUX1NSQ19JRF9TSElGVCB9LAotCXsgT01BUDI0WFhfTVBVX1dEX1JTVF9TSElGVCwgT01BUF9N UFVfV0RfUlNUX1NSQ19JRF9TSElGVCB9LAotCXsgT01BUDI0WFhfU0VDVV9XRF9SU1RfU0hJRlQs IE9NQVBfU0VDVV9XRF9SU1RfU1JDX0lEX1NISUZUIH0sCi0JeyBPTUFQMjRYWF9FWFRXTVBVX1JT VF9TSElGVCwgT01BUF9FWFRXQVJNX1JTVF9TUkNfSURfU0hJRlQgfSwKLQl7IC0xLCAtMSB9LAot fTsKLQotLyoqCi0gKiBvbWFwMnh4eF9wcm1fcmVhZF9yZXNldF9zb3VyY2VzIC0gcmV0dXJuIHRo ZSBsYXN0IFNvQyByZXNldCBzb3VyY2UKLSAqCi0gKiBSZXR1cm4gYSB1MzIgcmVwcmVzZW50aW5n IHRoZSBsYXN0IHJlc2V0IHNvdXJjZXMgb2YgdGhlIFNvQy4gIFRoZQotICogcmV0dXJuZWQgcmVz ZXQgc291cmNlIGJpdHMgYXJlIHN0YW5kYXJkaXplZCBhY3Jvc3MgT01BUCBTb0NzLgotICovCi1z dGF0aWMgdTMyIG9tYXAyeHh4X3BybV9yZWFkX3Jlc2V0X3NvdXJjZXModm9pZCkKLXsKLQlzdHJ1 Y3QgcHJtX3Jlc2V0X3NyY19tYXAgKnA7Ci0JdTMyIHIgPSAwOwotCXUzMiB2OwotCi0JdiA9IG9t YXAyX3BybV9yZWFkX21vZF9yZWcoV0tVUF9NT0QsIE9NQVAyX1JNX1JTVFNUKTsKLQotCXAgPSBv bWFwMnh4eF9wcm1fcmVzZXRfc3JjX21hcDsKLQl3aGlsZSAocC0+cmVnX3NoaWZ0ID49IDAgJiYg cC0+c3RkX3NoaWZ0ID49IDApIHsKLQkJaWYgKHYgJiAoMSA8PCBwLT5yZWdfc2hpZnQpKQotCQkJ ciB8PSAxIDw8IHAtPnN0ZF9zaGlmdDsKLQkJcCsrOwotCX0KLQotCXJldHVybiByOwotfQotCi0v KioKLSAqIG9tYXAyeHh4X3B3cnN0X3RvX2NvbW1vbl9wd3JzdCAtIGNvbnZlcnQgT01BUDJ4eHgg cHdyc3QgdG8gY29tbW9uIHB3cnN0Ci0gKiBAb21hcDJ4eHhfcHdyc3Q6IE9NQVAyeHh4IGhhcmR3 YXJlIHBvd2VyIHN0YXRlIHRvIGNvbnZlcnQKLSAqCi0gKiBSZXR1cm4gdGhlIGNvbW1vbiBwb3dl ciBzdGF0ZSBiaXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIE9NQVAyeHh4Ci0gKiBoYXJkd2FyZSBw b3dlciBzdGF0ZSBiaXRzIEBvbWFwMnh4eF9wd3JzdCwgb3IgLUVJTlZBTCB1cG9uIGVycm9yLgot ICovCi1zdGF0aWMgaW50IG9tYXAyeHh4X3B3cnN0X3RvX2NvbW1vbl9wd3JzdCh1OCBvbWFwMnh4 eF9wd3JzdCkKLXsKLQl1OCBwd3JzdDsKLQotCXN3aXRjaCAob21hcDJ4eHhfcHdyc3QpIHsKLQlj YXNlIE9NQVAyNFhYX1BXUkRNX1BPV0VSX09GRjoKLQkJcHdyc3QgPSBQV1JETV9QT1dFUl9PRkY7 Ci0JCWJyZWFrOwotCWNhc2UgT01BUDI0WFhfUFdSRE1fUE9XRVJfUkVUOgotCQlwd3JzdCA9IFBX UkRNX1BPV0VSX1JFVDsKLQkJYnJlYWs7Ci0JY2FzZSBPTUFQMjRYWF9QV1JETV9QT1dFUl9PTjoK LQkJcHdyc3QgPSBQV1JETV9QT1dFUl9PTjsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJu IC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIHB3cnN0OwotfQotCi0vKioKLSAqIG9tYXAyeHh4X3By bV9kcGxsX3Jlc2V0IC0gdXNlIERQTEwgcmVzZXQgdG8gcmVib290IHRoZSBPTUFQIFNvQwotICoK LSAqIFNldCB0aGUgRFBMTCByZXNldCBiaXQsIHdoaWNoIHNob3VsZCByZWJvb3QgdGhlIFNvQy4g IFRoaXMgaXMgdGhlCi0gKiByZWNvbW1lbmRlZCB3YXkgdG8gcmVzdGFydCB0aGUgU29DLiAgTm8g cmV0dXJuIHZhbHVlLgotICovCi1zdGF0aWMgdm9pZCBvbWFwMnh4eF9wcm1fZHBsbF9yZXNldCh2 b2lkKQotewotCW9tYXAyX3BybV9zZXRfbW9kX3JlZ19iaXRzKE9NQVBfUlNUX0RQTEwzX01BU0ss IFdLVVBfTU9ELAotCQkJCSAgIE9NQVAyX1JNX1JTVENUUkwpOwotCS8qIE9DUCBiYXJyaWVyICov Ci0Jb21hcDJfcHJtX3JlYWRfbW9kX3JlZyhXS1VQX01PRCwgT01BUDJfUk1fUlNUQ1RSTCk7Ci19 Ci0KLS8qKgotICogb21hcDJ4eHhfcHJtX2NsZWFyX21vZF9pcnFzIC0gY2xlYXIgd2FrZXVwIHN0 YXR1cyBiaXRzIGZvciBhIG1vZHVsZQotICogQG1vZHVsZTogUFJNIG1vZHVsZSB0byBjbGVhciB3 YWtldXBzIGZyb20KLSAqIEByZWdzOiByZWdpc3RlciBvZmZzZXQgdG8gY2xlYXIKLSAqIEB3a3N0 X21hc2s6IHdha2V1cCBzdGF0dXMgbWFzayB0byBjbGVhcgotICoKLSAqIENsZWFycyB3YWtldXAg c3RhdHVzIGJpdHMgZm9yIGEgZ2l2ZW4gbW9kdWxlLCBzbyB0aGF0IHRoZSBkZXZpY2UgY2FuCi0g KiByZS1lbnRlciBpZGxlLgotICovCi1zdGF0aWMgaW50IG9tYXAyeHh4X3BybV9jbGVhcl9tb2Rf aXJxcyhzMTYgbW9kdWxlLCB1OCByZWdzLCB1MzIgd2tzdF9tYXNrKQotewotCXUzMiB3a3N0Owot Ci0Jd2tzdCA9IG9tYXAyX3BybV9yZWFkX21vZF9yZWcobW9kdWxlLCByZWdzKTsKLQl3a3N0ICY9 IHdrc3RfbWFzazsKLQlvbWFwMl9wcm1fd3JpdGVfbW9kX3JlZyh3a3N0LCBtb2R1bGUsIHJlZ3Mp OwotCXJldHVybiAwOwotfQotCi1pbnQgb21hcDJ4eHhfY2xrZG1fc2xlZXAoc3RydWN0IGNsb2Nr ZG9tYWluICpjbGtkbSkKLXsKLQlvbWFwMl9wcm1fc2V0X21vZF9yZWdfYml0cyhPTUFQMjRYWF9G T1JDRVNUQVRFX01BU0ssCi0JCQkJICAgY2xrZG0tPnB3cmRtLnB0ci0+cHJjbV9vZmZzLAotCQkJ CSAgIE9NQVAyX1BNX1BXU1RDVFJMKTsKLQlyZXR1cm4gMDsKLX0KLQotaW50IG9tYXAyeHh4X2Ns a2RtX3dha2V1cChzdHJ1Y3QgY2xvY2tkb21haW4gKmNsa2RtKQotewotCW9tYXAyX3BybV9jbGVh cl9tb2RfcmVnX2JpdHMoT01BUDI0WFhfRk9SQ0VTVEFURV9NQVNLLAotCQkJCSAgICAgY2xrZG0t PnB3cmRtLnB0ci0+cHJjbV9vZmZzLAotCQkJCSAgICAgT01BUDJfUE1fUFdTVENUUkwpOwotCXJl dHVybiAwOwotfQotCi1zdGF0aWMgaW50IG9tYXAyeHh4X3B3cmRtX3NldF9uZXh0X3B3cnN0KHN0 cnVjdCBwb3dlcmRvbWFpbiAqcHdyZG0sIHU4IHB3cnN0KQotewotCXU4IG9tYXAyNHh4X3B3cnN0 OwotCi0Jc3dpdGNoIChwd3JzdCkgewotCWNhc2UgUFdSRE1fUE9XRVJfT0ZGOgotCQlvbWFwMjR4 eF9wd3JzdCA9IE9NQVAyNFhYX1BXUkRNX1BPV0VSX09GRjsKLQkJYnJlYWs7Ci0JY2FzZSBQV1JE TV9QT1dFUl9SRVQ6Ci0JCW9tYXAyNHh4X3B3cnN0ID0gT01BUDI0WFhfUFdSRE1fUE9XRVJfUkVU OwotCQlicmVhazsKLQljYXNlIFBXUkRNX1BPV0VSX09OOgotCQlvbWFwMjR4eF9wd3JzdCA9IE9N QVAyNFhYX1BXUkRNX1BPV0VSX09OOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVJ TlZBTDsKLQl9Ci0KLQlvbWFwMl9wcm1fcm13X21vZF9yZWdfYml0cyhPTUFQX1BPV0VSU1RBVEVf TUFTSywKLQkJCQkgICAob21hcDI0eHhfcHdyc3QgPDwgT01BUF9QT1dFUlNUQVRFX1NISUZUKSwK LQkJCQkgICBwd3JkbS0+cHJjbV9vZmZzLCBPTUFQMl9QTV9QV1NUQ1RSTCk7Ci0JcmV0dXJuIDA7 Ci19Ci0KLXN0YXRpYyBpbnQgb21hcDJ4eHhfcHdyZG1fcmVhZF9uZXh0X3B3cnN0KHN0cnVjdCBw b3dlcmRvbWFpbiAqcHdyZG0pCi17Ci0JdTggb21hcDJ4eHhfcHdyc3Q7Ci0KLQlvbWFwMnh4eF9w d3JzdCA9IG9tYXAyX3BybV9yZWFkX21vZF9iaXRzX3NoaWZ0KHB3cmRtLT5wcmNtX29mZnMsCi0J CQkJCQkgICAgICAgT01BUDJfUE1fUFdTVENUUkwsCi0JCQkJCQkgICAgICAgT01BUF9QT1dFUlNU QVRFX01BU0spOwotCi0JcmV0dXJuIG9tYXAyeHh4X3B3cnN0X3RvX2NvbW1vbl9wd3JzdChvbWFw Mnh4eF9wd3JzdCk7Ci19Ci0KLXN0YXRpYyBpbnQgb21hcDJ4eHhfcHdyZG1fcmVhZF9wd3JzdChz dHJ1Y3QgcG93ZXJkb21haW4gKnB3cmRtKQotewotCXU4IG9tYXAyeHh4X3B3cnN0OwotCi0Jb21h cDJ4eHhfcHdyc3QgPSBvbWFwMl9wcm1fcmVhZF9tb2RfYml0c19zaGlmdChwd3JkbS0+cHJjbV9v ZmZzLAotCQkJCQkJICAgICAgIE9NQVAyX1BNX1BXU1RTVCwKLQkJCQkJCSAgICAgICBPTUFQX1BP V0VSU1RBVEVTVF9NQVNLKTsKLQotCXJldHVybiBvbWFwMnh4eF9wd3JzdF90b19jb21tb25fcHdy c3Qob21hcDJ4eHhfcHdyc3QpOwotfQotCi1zdHJ1Y3QgcHdyZG1fb3BzIG9tYXAyX3B3cmRtX29w ZXJhdGlvbnMgPSB7Ci0JLnB3cmRtX3NldF9uZXh0X3B3cnN0CT0gb21hcDJ4eHhfcHdyZG1fc2V0 X25leHRfcHdyc3QsCi0JLnB3cmRtX3JlYWRfbmV4dF9wd3JzdAk9IG9tYXAyeHh4X3B3cmRtX3Jl YWRfbmV4dF9wd3JzdCwKLQkucHdyZG1fcmVhZF9wd3JzdAk9IG9tYXAyeHh4X3B3cmRtX3JlYWRf cHdyc3QsCi0JLnB3cmRtX3NldF9sb2dpY19yZXRzdAk9IG9tYXAyX3B3cmRtX3NldF9sb2dpY19y ZXRzdCwKLQkucHdyZG1fc2V0X21lbV9vbnN0CT0gb21hcDJfcHdyZG1fc2V0X21lbV9vbnN0LAot CS5wd3JkbV9zZXRfbWVtX3JldHN0CT0gb21hcDJfcHdyZG1fc2V0X21lbV9yZXRzdCwKLQkucHdy ZG1fcmVhZF9tZW1fcHdyc3QJPSBvbWFwMl9wd3JkbV9yZWFkX21lbV9wd3JzdCwKLQkucHdyZG1f cmVhZF9tZW1fcmV0c3QJPSBvbWFwMl9wd3JkbV9yZWFkX21lbV9yZXRzdCwKLQkucHdyZG1fd2Fp dF90cmFuc2l0aW9uCT0gb21hcDJfcHdyZG1fd2FpdF90cmFuc2l0aW9uLAotfTsKLQotLyoKLSAq Ci0gKi8KLQotc3RhdGljIHN0cnVjdCBwcm1fbGxfZGF0YSBvbWFwMnh4eF9wcm1fbGxfZGF0YSA9 IHsKLQkucmVhZF9yZXNldF9zb3VyY2VzID0gJm9tYXAyeHh4X3BybV9yZWFkX3Jlc2V0X3NvdXJj ZXMsCi0JLmFzc2VydF9oYXJkcmVzZXQgPSAmb21hcDJfcHJtX2Fzc2VydF9oYXJkcmVzZXQsCi0J LmRlYXNzZXJ0X2hhcmRyZXNldCA9ICZvbWFwMl9wcm1fZGVhc3NlcnRfaGFyZHJlc2V0LAotCS5p c19oYXJkcmVzZXRfYXNzZXJ0ZWQgPSAmb21hcDJfcHJtX2lzX2hhcmRyZXNldF9hc3NlcnRlZCwK LQkucmVzZXRfc3lzdGVtID0gJm9tYXAyeHh4X3BybV9kcGxsX3Jlc2V0LAotCS5jbGVhcl9tb2Rf aXJxcyA9ICZvbWFwMnh4eF9wcm1fY2xlYXJfbW9kX2lycXMsCi19OwotCi1pbnQgX19pbml0IG9t YXAyeHh4X3BybV9pbml0KGNvbnN0IHN0cnVjdCBvbWFwX3ByY21faW5pdF9kYXRhICpkYXRhKQot ewotCXJldHVybiBwcm1fcmVnaXN0ZXIoJm9tYXAyeHh4X3BybV9sbF9kYXRhKTsKLX0KLQotc3Rh dGljIHZvaWQgX19leGl0IG9tYXAyeHh4X3BybV9leGl0KHZvaWQpCi17Ci0JcHJtX3VucmVnaXN0 ZXIoJm9tYXAyeHh4X3BybV9sbF9kYXRhKTsKLX0KLV9fZXhpdGNhbGwob21hcDJ4eHhfcHJtX2V4 aXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0yeHh4LmggYi9hcmNoL2Fy bS9tYWNoLW9tYXAyL3BybTJ4eHguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU5 YjkxNzM0OGY4Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0yeHh4 LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb25seSAqLwotLyoKLSAqIE9NQVAyeHh4IFBvd2VyL1Jlc2V0IE1hbmFn ZW1lbnQgKFBSTSkgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIw MDctMjAwOSwgMjAxMS0yMDEyIFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQg KEMpIDIwMDgtMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbgotICogUGF1bCBXYWxtc2xleQotICoKLSAq IFRoZSBQUk0gaGFyZHdhcmUgbW9kdWxlcyBvbiB0aGUgT01BUDIvMyBhcmUgcXVpdGUgc2ltaWxh ciB0byBlYWNoCi0gKiBvdGhlci4gIFRoZSBQUk0gb24gT01BUDQgaGFzIGEgbmV3IHJlZ2lzdGVy IGxheW91dCwgYW5kIGlzIGhhbmRsZWQKLSAqIGluIGEgc2VwYXJhdGUgZmlsZS4KLSAqLwotI2lm bmRlZiBfX0FSQ0hfQVJNX01BQ0hfT01BUDJfUFJNMlhYWF9ICi0jZGVmaW5lIF9fQVJDSF9BUk1f TUFDSF9PTUFQMl9QUk0yWFhYX0gKLQotI2luY2x1ZGUgInByY20tY29tbW9uLmgiCi0jaW5jbHVk ZSAicHJtLmgiCi0jaW5jbHVkZSAicHJtMnh4eF8zeHh4LmgiCi0KLSNkZWZpbmUgT01BUDI0MjBf UFJNX1JFR0FERFIobW9kdWxlLCByZWcpCQkJCVwKLQkJT01BUDJfTDRfSU9fQUREUkVTUyhPTUFQ MjQyMF9QUk1fQkFTRSArIChtb2R1bGUpICsgKHJlZykpCi0jZGVmaW5lIE9NQVAyNDMwX1BSTV9S RUdBRERSKG1vZHVsZSwgcmVnKQkJCQlcCi0JCU9NQVAyX0w0X0lPX0FERFJFU1MoT01BUDI0MzBf UFJNX0JBU0UgKyAobW9kdWxlKSArIChyZWcpKQotCi0vKgotICogT01BUDItc3BlY2lmaWMgZ2xv YmFsIFBSTSByZWdpc3RlcnMKLSAqIFVzZSB7cmVhZCx3cml0ZX1sX3JlbGF4ZWQoKSB3aXRoIHRo ZXNlIHJlZ2lzdGVycy4KLSAqCi0gKiBXaXRoIGEgZmV3IGV4Y2VwdGlvbnMsIHRoZXNlIGFyZSB0 aGUgcmVnaXN0ZXIgbmFtZXMgYmVnaW5uaW5nIHdpdGgKLSAqIFBSQ01fKiBvbiAyNHh4LiAgKFRo ZSBleGNlcHRpb25zIGFyZSB0aGUgSVJRU1RBVFVTIGFuZCBJUlFFTkFCTEUKLSAqIGJpdHMuKQot ICoKLSAqLwotCi0jZGVmaW5lIE9NQVAyX1BSQ01fUkVWSVNJT05fT0ZGU0VUCTB4MDAwMAotI2Rl ZmluZSBPTUFQMjQyMF9QUkNNX1JFVklTSU9OCQlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9E LCAweDAwMDApCi0jZGVmaW5lIE9NQVAyX1BSQ01fU1lTQ09ORklHX09GRlNFVAkweDAwMTAKLSNk ZWZpbmUgT01BUDI0MjBfUFJDTV9TWVNDT05GSUcJCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9N T0QsIDB4MDAxMCkKLQotI2RlZmluZSBPTUFQMl9QUkNNX0lSUVNUQVRVU19NUFVfT0ZGU0VUCTB4 MDAxOAotI2RlZmluZSBPTUFQMjQyMF9QUkNNX0lSUVNUQVRVU19NUFUJT01BUDI0MjBfUFJNX1JF R0FERFIoT0NQX01PRCwgMHgwMDE4KQotI2RlZmluZSBPTUFQMl9QUkNNX0lSUUVOQUJMRV9NUFVf T0ZGU0VUCTB4MDAxYwotI2RlZmluZSBPTUFQMjQyMF9QUkNNX0lSUUVOQUJMRV9NUFUJT01BUDI0 MjBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDFjKQotCi0jZGVmaW5lIE9NQVAyX1BSQ01fVk9M VENUUkxfT0ZGU0VUCTB4MDA1MAotI2RlZmluZSBPTUFQMjQyMF9QUkNNX1ZPTFRDVFJMCQlPTUFQ MjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNTApCi0jZGVmaW5lIE9NQVAyX1BSQ01fVk9M VFNUX09GRlNFVAkweDAwNTQKLSNkZWZpbmUgT01BUDI0MjBfUFJDTV9WT0xUU1QJCU9NQVAyNDIw X1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA1NCkKLSNkZWZpbmUgT01BUDJfUFJDTV9DTEtTUkNf Q1RSTF9PRkZTRVQJMHgwMDYwCi0jZGVmaW5lIE9NQVAyNDIwX1BSQ01fQ0xLU1JDX0NUUkwJT01B UDI0MjBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDYwKQotI2RlZmluZSBPTUFQMl9QUkNNX0NM S09VVF9DVFJMX09GRlNFVAkweDAwNzAKLSNkZWZpbmUgT01BUDI0MjBfUFJDTV9DTEtPVVRfQ1RS TAlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNzApCi0jZGVmaW5lIE9NQVAyX1BS Q01fQ0xLRU1VTF9DVFJMX09GRlNFVAkweDAwNzgKLSNkZWZpbmUgT01BUDI0MjBfUFJDTV9DTEtF TVVMX0NUUkwJT01BUDI0MjBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDc4KQotI2RlZmluZSBP TUFQMl9QUkNNX0NMS0NGR19DVFJMX09GRlNFVAkweDAwODAKLSNkZWZpbmUgT01BUDI0MjBfUFJD TV9DTEtDRkdfQ1RSTAlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwODApCi0jZGVm aW5lIE9NQVAyX1BSQ01fQ0xLQ0ZHX1NUQVRVU19PRkZTRVQJMHgwMDg0Ci0jZGVmaW5lIE9NQVAy NDIwX1BSQ01fQ0xLQ0ZHX1NUQVRVUwlPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAw ODQpCi0jZGVmaW5lIE9NQVAyX1BSQ01fVk9MVFNFVFVQX09GRlNFVAkweDAwOTAKLSNkZWZpbmUg T01BUDI0MjBfUFJDTV9WT0xUU0VUVVAJCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4 MDA5MCkKLSNkZWZpbmUgT01BUDJfUFJDTV9DTEtTU0VUVVBfT0ZGU0VUCTB4MDA5NAotI2RlZmlu ZSBPTUFQMjQyMF9QUkNNX0NMS1NTRVRVUAkJT01BUDI0MjBfUFJNX1JFR0FERFIoT0NQX01PRCwg MHgwMDk0KQotI2RlZmluZSBPTUFQMl9QUkNNX1BPTENUUkxfT0ZGU0VUCTB4MDA5OAotI2RlZmlu ZSBPTUFQMjQyMF9QUkNNX1BPTENUUkwJCU9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4 MDA5OCkKLQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX1JFVklTSU9OCQlPTUFQMjQzMF9QUk1fUkVH QUREUihPQ1BfTU9ELCAweDAwMDApCi0jZGVmaW5lIE9NQVAyNDMwX1BSQ01fU1lTQ09ORklHCQlP TUFQMjQzMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwMTApCi0KLSNkZWZpbmUgT01BUDI0MzBf UFJDTV9JUlFTVEFUVVNfTVBVCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDAxOCkK LSNkZWZpbmUgT01BUDI0MzBfUFJDTV9JUlFFTkFCTEVfTVBVCU9NQVAyNDMwX1BSTV9SRUdBRERS KE9DUF9NT0QsIDB4MDAxYykKLQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX1ZPTFRDVFJMCQlPTUFQ MjQzMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNTApCi0jZGVmaW5lIE9NQVAyNDMwX1BSQ01f Vk9MVFNUCQlPTUFQMjQzMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwNTQpCi0jZGVmaW5lIE9N QVAyNDMwX1BSQ01fQ0xLU1JDX0NUUkwJT01BUDI0MzBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgw MDYwKQotI2RlZmluZSBPTUFQMjQzMF9QUkNNX0NMS09VVF9DVFJMCU9NQVAyNDMwX1BSTV9SRUdB RERSKE9DUF9NT0QsIDB4MDA3MCkKLSNkZWZpbmUgT01BUDI0MzBfUFJDTV9DTEtFTVVMX0NUUkwJ T01BUDI0MzBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDc4KQotI2RlZmluZSBPTUFQMjQzMF9Q UkNNX0NMS0NGR19DVFJMCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA4MCkKLSNk ZWZpbmUgT01BUDI0MzBfUFJDTV9DTEtDRkdfU1RBVFVTCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9D UF9NT0QsIDB4MDA4NCkKLSNkZWZpbmUgT01BUDI0MzBfUFJDTV9WT0xUU0VUVVAJCU9NQVAyNDMw X1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA5MCkKLSNkZWZpbmUgT01BUDI0MzBfUFJDTV9DTEtT U0VUVVAJCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA5NCkKLSNkZWZpbmUgT01B UDI0MzBfUFJDTV9QT0xDVFJMCQlPTUFQMjQzMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwOTgp Ci0KLS8qCi0gKiBNb2R1bGUgc3BlY2lmaWMgUFJNIHJlZ2lzdGVyIG9mZnNldHMgZnJvbSBQUk1f QkFTRSArIGRvbWFpbiBvZmZzZXQKLSAqCi0gKiBVc2UgcHJtX3tyZWFkLHdyaXRlfV9tb2RfcmVn KCkgd2l0aCB0aGVzZSByZWdpc3RlcnMuCi0gKgotICogV2l0aCBhIGZldyBleGNlcHRpb25zLCB0 aGVzZSBhcmUgdGhlIHJlZ2lzdGVyIG5hbWVzIGJlZ2lubmluZyB3aXRoCi0gKiB7UE0sUk19Xyog b24gYm90aCBPTUFQMi8zIFNvQyBmYW1pbGllcy4uICAoVGhlIGV4Y2VwdGlvbnMgYXJlIHRoZQot ICogSVJRU1RBVFVTIGFuZCBJUlFFTkFCTEUgYml0cy4pCi0gKi8KLQotLyogUmVnaXN0ZXIgb2Zm c2V0cyBhcHBlYXJpbmcgb24gYm90aCBPTUFQMiBhbmQgT01BUDMgKi8KLQotI2RlZmluZSBPTUFQ Ml9STV9SU1RDVFJMCQkJCTB4MDA1MAotI2RlZmluZSBPTUFQMl9STV9SU1RUSU1FCQkJCTB4MDA1 NAotI2RlZmluZSBPTUFQMl9STV9SU1RTVAkJCQkJMHgwMDU4Ci0jZGVmaW5lIE9NQVAyX1BNX1BX U1RDVFJMCQkJCTB4MDBlMAotI2RlZmluZSBPTUFQMl9QTV9QV1NUU1QJCQkJCTB4MDBlNAotCi0j ZGVmaW5lIFBNX1dLRU4JCQkJCQkweDAwYTAKLSNkZWZpbmUgUE1fV0tFTjEJCQkJCVBNX1dLRU4K LSNkZWZpbmUgUE1fV0tTVAkJCQkJCTB4MDBiMAotI2RlZmluZSBQTV9XS1NUMQkJCQkJUE1fV0tT VAotI2RlZmluZSBQTV9XS0RFUAkJCQkJMHgwMGM4Ci0jZGVmaW5lIFBNX0VWR0VOQ1RSTAkJCQkJ MHgwMGQ0Ci0jZGVmaW5lIFBNX0VWR0VOT05USU0JCQkJCTB4MDBkOAotI2RlZmluZSBQTV9FVkdF Tk9GRlRJTQkJCQkJMHgwMGRjCi0KLS8qIE9NQVAyeHh4IHNwZWNpZmljIHJlZ2lzdGVyIG9mZnNl dHMgKi8KLSNkZWZpbmUgT01BUDI0WFhfUE1fV0tFTjIJCQkJMHgwMGE0Ci0jZGVmaW5lIE9NQVAy NFhYX1BNX1dLU1QyCQkJCTB4MDBiNAotCi0jZGVmaW5lIE9NQVAyNFhYX1BSQ01fSVJRU1RBVFVT X0RTUAkJCTB4MDBmMAkvKiBJVkEgbW9kICovCi0jZGVmaW5lIE9NQVAyNFhYX1BSQ01fSVJRRU5B QkxFX0RTUAkJCTB4MDBmNAkvKiBJVkEgbW9kICovCi0jZGVmaW5lIE9NQVAyNFhYX1BSQ01fSVJR U1RBVFVTX0lWQQkJCTB4MDBmOAotI2RlZmluZSBPTUFQMjRYWF9QUkNNX0lSUUVOQUJMRV9JVkEJ CQkweDAwZmMKLQotI2lmbmRlZiBfX0FTU0VNQkxFUl9fCi0vKiBGdW5jdGlvbiBwcm90b3R5cGVz ICovCi1leHRlcm4gaW50IG9tYXAyeHh4X2Nsa2RtX3NsZWVwKHN0cnVjdCBjbG9ja2RvbWFpbiAq Y2xrZG0pOwotZXh0ZXJuIGludCBvbWFwMnh4eF9jbGtkbV93YWtldXAoc3RydWN0IGNsb2NrZG9t YWluICpjbGtkbSk7Ci0KLWludCBfX2luaXQgb21hcDJ4eHhfcHJtX2luaXQoY29uc3Qgc3RydWN0 IG9tYXBfcHJjbV9pbml0X2RhdGEgKmRhdGEpOwotCi0jZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BybTJ4eHhfM3h4eC5jIGIvYXJjaC9hcm0vbWFjaC1v bWFwMi9wcm0yeHh4XzN4eHguYwppbmRleCBkOTgzZWZhYzZmNGYuLmFmYWJhNzE1M2VjZSAxMDA2 NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0yeHh4XzN4eHguYworKysgYi9hcmNoL2Fy bS9tYWNoLW9tYXAyL3BybTJ4eHhfM3h4eC5jCkBAIC0xNSw3ICsxNSw2IEBACiAKICNpbmNsdWRl ICJwb3dlcmRvbWFpbi5oIgogI2luY2x1ZGUgInBybTJ4eHhfM3h4eC5oIgotI2luY2x1ZGUgInBy bS1yZWdiaXRzLTI0eHguaCIKICNpbmNsdWRlICJjbG9ja2RvbWFpbi5oIgogCiAvKioKZGlmZiAt LWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtX2NvbW1vbi5jIGIvYXJjaC9hcm0vbWFjaC1v bWFwMi9wcm1fY29tbW9uLmMKaW5kZXggZWU0NTg4YWNkYTUwLi4zNTQ2ZTcyOTJiZmIgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtX2NvbW1vbi5jCisrKyBiL2FyY2gvYXJtL21h Y2gtb21hcDIvcHJtX2NvbW1vbi5jCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJzb2Mu aCIKICNpbmNsdWRlICJwcm0yeHh4XzN4eHguaCIKLSNpbmNsdWRlICJwcm0yeHh4LmgiCiAjaW5j bHVkZSAicHJtM3h4eC5oIgogI2luY2x1ZGUgInBybTMzeHguaCIKICNpbmNsdWRlICJwcm00NHh4 LmgiCkBAIC01ODIsMTMgKzU4MSw2IEBAIGludCBwcm1fdW5yZWdpc3RlcihzdHJ1Y3QgcHJtX2xs X2RhdGEgKnBsZCkKIAlyZXR1cm4gMDsKIH0KIAotI2lmZGVmIENPTkZJR19BUkNIX09NQVAyCi1z dGF0aWMgc3RydWN0IG9tYXBfcHJjbV9pbml0X2RhdGEgb21hcDJfcHJtX2RhdGEgX19pbml0ZGF0 YSA9IHsKLQkuaW5kZXggPSBUSV9DTEtNX1BSTSwKLQkuaW5pdCA9IG9tYXAyeHh4X3BybV9pbml0 LAotfTsKLSNlbmRpZgotCiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDMKIHN0YXRpYyBzdHJ1Y3Qg b21hcF9wcmNtX2luaXRfZGF0YSBvbWFwM19wcm1fZGF0YSBfX2luaXRkYXRhID0gewogCS5pbmRl eCA9IFRJX0NMS01fUFJNLApAQCAtNjcwLDkgKzY2Miw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkIG9tYXBfcHJjbV9kdF9tYXRjaF90YWJsZVtdIF9faW5pdGNvbnN0ID0gewog CXsgLmNvbXBhdGlibGUgPSAidGksZG04MTQtcGxsc3MiLCAuZGF0YSA9ICZkbTgxNF9wbGxzc19k YXRhIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJ0aSxkbTgxNi1wcmNtIiwgLmRhdGEgPSAmYW0zX3By bV9kYXRhIH0sCiAjZW5kaWYKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMgotCXsgLmNvbXBhdGli bGUgPSAidGksb21hcDItcHJjbSIsIC5kYXRhID0gJm9tYXAyX3BybV9kYXRhIH0sCi0jZW5kaWYK ICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMwogCXsgLmNvbXBhdGlibGUgPSAidGksb21hcDMtcHJt IiwgLmRhdGEgPSAmb21hcDNfcHJtX2RhdGEgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9zZHJjLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaAppbmRleCA0 NWIzNTQyMmI1ODcuLmMzNGZiYTRkMmYxYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFw Mi9zZHJjLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zZHJjLmgKQEAgLTkwLDE3ICs5MCw3 IEBAIHN0cnVjdCBtZW1vcnlfdGltaW5ncyB7CiAJdTMyIGJhc2VfY3M7CQkvKiBiYXNlIGNoaXAg c2VsZWN0IHRvIHVzZSBmb3IgY2FsY3VsYXRpb25zICovCiB9OwogCi1leHRlcm4gdm9pZCBvbWFw Mnh4eF9zZHJjX2luaXRfcGFyYW1zKHUzMiBmb3JjZV9sb2NrX3RvX3VubG9ja19tb2RlKTsKLQot dTMyIG9tYXAyeHh4X3NkcmNfZGxsX2lzX3VubG9ja2VkKHZvaWQpOwotdTMyIG9tYXAyeHh4X3Nk cmNfcmVwcm9ncmFtKHUzMiBsZXZlbCwgdTMyIGZvcmNlKTsKLQotCiAjZWxzZQotI2RlZmluZSBP TUFQMjQyWF9TRFJDX1JFR0FERFIocmVnKQkJCQkJXAotCQkJT01BUDJfTDNfSU9fQUREUkVTUyhP TUFQMjQyMF9TRFJDX0JBU0UgKyAocmVnKSkKLSNkZWZpbmUgT01BUDI0M1hfU0RSQ19SRUdBRERS KHJlZykJCQkJCVwKLQkJCU9NQVAyX0wzX0lPX0FERFJFU1MoT01BUDI0M1hfU0RSQ19CQVNFICsg KHJlZykpCiAjZGVmaW5lIE9NQVAzNFhYX1NEUkNfUkVHQUREUihyZWcpCQkJCQlcCiAJCQlPTUFQ Ml9MM19JT19BRERSRVNTKE9NQVAzNDNYX1NEUkNfQkFTRSArIChyZWcpKQogCkBAIC0xODQsMTcg KzE3NCw2IEBAIHUzMiBvbWFwMnh4eF9zZHJjX3JlcHJvZ3JhbSh1MzIgbGV2ZWwsIHUzMiBmb3Jj ZSk7CiAjZGVmaW5lIFNEUkNfUkZSX0NUUkxfQllQQVNTCSgweDAwMDA1MDAwIHwgMSkgLyogTmVl ZCB0byBjYWxjICovCiAKIAotLyoKLSAqIFNNUyByZWdpc3RlciBhY2Nlc3MKLSAqLwotCi0jZGVm aW5lIE9NQVAyNDJYX1NNU19SRUdBRERSKHJlZykJCQkJCVwKLQkJKHZvaWQgX19pb21lbSAqKU9N QVAyX0wzX0lPX0FERFJFU1MoT01BUDI0MjBfU01TX0JBU0UgKyByZWcpCi0jZGVmaW5lIE9NQVAy NDNYX1NNU19SRUdBRERSKHJlZykJCQkJCVwKLQkJKHZvaWQgX19pb21lbSAqKU9NQVAyX0wzX0lP X0FERFJFU1MoT01BUDI0M1hfU01TX0JBU0UgKyByZWcpCi0jZGVmaW5lIE9NQVAzNDNYX1NNU19S RUdBRERSKHJlZykJCQkJCVwKLQkJKHZvaWQgX19pb21lbSAqKU9NQVAyX0wzX0lPX0FERFJFU1Mo T01BUDM0M1hfU01TX0JBU0UgKyByZWcpCi0KIC8qIFNNUyByZWdpc3RlciBvZmZzZXRzIC0gcmVh ZC93cml0ZSB3aXRoIHNtc197cmVhZCx3cml0ZX1fcmVnKCkgKi8KIAogI2RlZmluZSBTTVNfU1lT Q09ORklHCQkJMHgwMTAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc2RyYzJ4eHgu YyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc2RyYzJ4eHguYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNWEyNzViNGZkNDA0Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1v bWFwMi9zZHJjMnh4eC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLS8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBTRFJBTSB0aW1pbmcgcmVs YXRlZCBmdW5jdGlvbnMgZm9yIE9NQVAyeHh4Ci0gKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAy MDA4IFRleGFzIEluc3RydW1lbnRzIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBO b2tpYSBDb3Jwb3JhdGlvbgotICoKLSAqIFRvbnkgTGluZGdyZW4gPHRvbnlAYXRvbWlkZS5jb20+ Ci0gKiBQYXVsIFdhbG1zbGV5Ci0gKiBSaWNoYXJkIFdvb2RydWZmIDxyLXdvb2RydWZmMkB0aS5j b20+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2tl cm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2xpc3Qu aD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0j aW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvaW8uaD4KLQotI2luY2x1ZGUg InNvYy5oIgotI2luY2x1ZGUgImlvbWFwLmgiCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0jaW5jbHVk ZSAicHJtMnh4eC5oIgotI2luY2x1ZGUgImNsb2NrLmgiCi0jaW5jbHVkZSAic2RyYy5oIgotI2lu Y2x1ZGUgInNyYW0uaCIKLQotLyogTWVtb3J5IHRpbWluZywgRExMIG1vZGUgZmxhZ3MgKi8KLSNk ZWZpbmUgTV9ERFIJCTEKLSNkZWZpbmUgTV9MT0NLX0NUUkwJKDEgPDwgMikKLSNkZWZpbmUgTV9V TkxPQ0sJMAotI2RlZmluZSBNX0xPQ0sJCTEKLQotCi1zdGF0aWMgc3RydWN0IG1lbW9yeV90aW1p bmdzIG1lbV90aW1pbmdzOwotc3RhdGljIHUzMiBjdXJyX3BlcmZfbGV2ZWwgPSBDT1JFX0NMS19T UkNfRFBMTF9YMjsKLQotc3RhdGljIHUzMiBvbWFwMnh4eF9zZHJjX2dldF9zbG93X2RsbF9jdHJs KHZvaWQpCi17Ci0JcmV0dXJuIG1lbV90aW1pbmdzLnNsb3dfZGxsX2N0cmw7Ci19Ci0KLXN0YXRp YyB1MzIgb21hcDJ4eHhfc2RyY19nZXRfZmFzdF9kbGxfY3RybCh2b2lkKQotewotCXJldHVybiBt ZW1fdGltaW5ncy5mYXN0X2RsbF9jdHJsOwotfQotCi1zdGF0aWMgdTMyIG9tYXAyeHh4X3NkcmNf Z2V0X3R5cGUodm9pZCkKLXsKLQlyZXR1cm4gbWVtX3RpbWluZ3MubV90eXBlOwotfQotCi0vKgot ICogQ2hlY2sgdGhlIERMTCBsb2NrIHN0YXRlLCBhbmQgcmV0dXJuIHR1ZSBpZiBydW5uaW5nIGlu IHVubG9jayBtb2RlLgotICogVGhpcyBpcyBuZWVkZWQgdG8gY29tcGVuc2F0ZSBmb3IgdGhlIHNo aWZ0ZWQgRExMIHZhbHVlIGluIHVubG9jayBtb2RlLgotICovCi11MzIgb21hcDJ4eHhfc2RyY19k bGxfaXNfdW5sb2NrZWQodm9pZCkKLXsKLQkvKiBkbGxhIGFuZCBkbGxiIGFyZSBhIHNldCAqLwot CXUzMiBkbGxfc3RhdGUgPSBzZHJjX3JlYWRfcmVnKFNEUkNfRExMQV9DVFJMKTsKLQotCWlmICgo ZGxsX3N0YXRlICYgKDEgPDwgMikpID09ICgxIDw8IDIpKQotCQlyZXR1cm4gMTsKLQllbHNlCi0J CXJldHVybiAwOwotfQotCi0vKgotICogJ2xldmVsJyBpcyB0aGUgdmFsdWUgdG8gc3RvcmUgdG8g Q01fQ0xLU0VMMl9QTEwuQ09SRV9DTEtfU1JDLgotICogUHJhY3RpY2FsIHZhbHVlcyBhcmUgQ09S RV9DTEtfU1JDX0RQTEwgKGZvciBDT1JFX0NMSyA9IERQTExfQ0xLKSBvcgotICogQ09SRV9DTEtf U1JDX0RQTExfWDIgKGZvciBDT1JFX0NMSyA9ICogRFBMTF9DTEsgKiAyKQotICoKLSAqIFVzZWQg YnkgdGhlIGNsb2NrIGZyYW1ld29yayBkdXJpbmcgQ09SRSBEUExMIGNoYW5nZXMKLSAqLwotdTMy IG9tYXAyeHh4X3NkcmNfcmVwcm9ncmFtKHUzMiBsZXZlbCwgdTMyIGZvcmNlKQotewotCXUzMiBk bGxfY3RybCwgbV90eXBlOwotCXUzMiBwcmV2ID0gY3Vycl9wZXJmX2xldmVsOwotCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Ci0KLQlpZiAoKGN1cnJfcGVyZl9sZXZlbCA9PSBsZXZlbCkgJiYgIWZvcmNl KQotCQlyZXR1cm4gcHJldjsKLQotCWlmIChsZXZlbCA9PSBDT1JFX0NMS19TUkNfRFBMTCkKLQkJ ZGxsX2N0cmwgPSBvbWFwMnh4eF9zZHJjX2dldF9zbG93X2RsbF9jdHJsKCk7Ci0JZWxzZSBpZiAo bGV2ZWwgPT0gQ09SRV9DTEtfU1JDX0RQTExfWDIpCi0JCWRsbF9jdHJsID0gb21hcDJ4eHhfc2Ry Y19nZXRfZmFzdF9kbGxfY3RybCgpOwotCWVsc2UKLQkJcmV0dXJuIHByZXY7Ci0KLQltX3R5cGUg PSBvbWFwMnh4eF9zZHJjX2dldF90eXBlKCk7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0J LyoKLQkgKiBYWFggVGhlc2UgY2FsbHMgc2hvdWxkIGJlIGFic3RyYWN0ZWQgb3V0IHRocm91Z2gg YQotCSAqIHBybTJ4eHguYyBmdW5jdGlvbgotCSAqLwotCWlmIChjcHVfaXNfb21hcDI0MjAoKSkK LQkJd3JpdGVsX3JlbGF4ZWQoMHhmZmZmLCBPTUFQMjQyMF9QUkNNX1ZPTFRTRVRVUCk7Ci0JZWxz ZQotCQl3cml0ZWxfcmVsYXhlZCgweGZmZmYsIE9NQVAyNDMwX1BSQ01fVk9MVFNFVFVQKTsKLQlv bWFwMl9zcmFtX3JlcHJvZ3JhbV9zZHJjKGxldmVsLCBkbGxfY3RybCwgbV90eXBlKTsKLQljdXJy X3BlcmZfbGV2ZWwgPSBsZXZlbDsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KLQlyZXR1 cm4gcHJldjsKLX0KLQotLyogVXNlZCBieSB0aGUgY2xvY2sgZnJhbWV3b3JrIGR1cmluZyBDT1JF IERQTEwgY2hhbmdlcyAqLwotdm9pZCBvbWFwMnh4eF9zZHJjX2luaXRfcGFyYW1zKHUzMiBmb3Jj ZV9sb2NrX3RvX3VubG9ja19tb2RlKQotewotCXVuc2lnbmVkIGxvbmcgZGxsX2NudDsKLQl1MzIg ZmFzdF9kbGwgPSAwOwotCi0JLyogRERSID0gMSwgU0RSID0gMCAqLwotCW1lbV90aW1pbmdzLm1f dHlwZSA9ICEoKHNkcmNfcmVhZF9yZWcoU0RSQ19NUl8wKSAmIDB4MykgPT0gMHgxKTsKLQotCS8q IDI0MjIgZXMyLjA1IGFuZCBiZXlvbmQgaGFzIGEgc2luZ2xlIFNJUCBERFIgaW5zdGVhZCBvZiAy IGxpa2Ugb3RoZXJzLgotCSAqIEluIHRoZSBjYXNlIG9mIDI0MjIsIGl0cyBvayB0byB1c2UgQ1Mx IGluc3RlYWQgb2YgQ1MwLgotCSAqLwotCWlmIChjcHVfaXNfb21hcDI0MjIoKSkKLQkJbWVtX3Rp bWluZ3MuYmFzZV9jcyA9IDE7Ci0JZWxzZQotCQltZW1fdGltaW5ncy5iYXNlX2NzID0gMDsKLQot CWlmIChtZW1fdGltaW5ncy5tX3R5cGUgIT0gTV9ERFIpCi0JCXJldHVybjsKLQotCS8qIFdpdGgg RERSIHdlIG5lZWQgdG8gZGV0ZXJtaW5lIHRoZSBsb3cgZnJlcXVlbmN5IERMTCB2YWx1ZSAqLwot CWlmICgoKG1lbV90aW1pbmdzLmZhc3RfZGxsX2N0cmwgJiAoMSA8PCAyKSkgPT0gTV9MT0NLX0NU UkwpKQotCQltZW1fdGltaW5ncy5kbGxfbW9kZSA9IE1fVU5MT0NLOwotCWVsc2UKLQkJbWVtX3Rp bWluZ3MuZGxsX21vZGUgPSBNX0xPQ0s7Ci0KLQlpZiAobWVtX3RpbWluZ3MuYmFzZV9jcyA9PSAw KSB7Ci0JCWZhc3RfZGxsID0gc2RyY19yZWFkX3JlZyhTRFJDX0RMTEFfQ1RSTCk7Ci0JCWRsbF9j bnQgPSBzZHJjX3JlYWRfcmVnKFNEUkNfRExMQV9TVEFUVVMpICYgMHhmZjAwOwotCX0gZWxzZSB7 Ci0JCWZhc3RfZGxsID0gc2RyY19yZWFkX3JlZyhTRFJDX0RMTEJfQ1RSTCk7Ci0JCWRsbF9jbnQg PSBzZHJjX3JlYWRfcmVnKFNEUkNfRExMQl9TVEFUVVMpICYgMHhmZjAwOwotCX0KLQlpZiAoZm9y Y2VfbG9ja190b191bmxvY2tfbW9kZSkgewotCQlmYXN0X2RsbCAmPSB+MHhmZjAwOwotCQlmYXN0 X2RsbCB8PSBkbGxfY250OwkJLyogQ3VycmVudCBsb2NrIG1vZGUgKi8KLQl9Ci0JLyogc2V0IGZh c3QgdGltaW5ncyB3aXRoIERMTCBmaWx0ZXIgZGlzYWJsZWQgKi8KLQltZW1fdGltaW5ncy5mYXN0 X2RsbF9jdHJsID0gKGZhc3RfZGxsIHwgKDMgPDwgOCkpOwotCi0JLyogTm8gZGlzcnVwdGlvbnMs IEREUiB3aWxsIGJlIG9mZmxpbmUgJiBDLUFCSSBub3QgZm9sbG93ZWQgKi8KLQlvbWFwMl9zcmFt X2Rkcl9pbml0KCZtZW1fdGltaW5ncy5zbG93X2RsbF9jdHJsLAotCQkJICAgIG1lbV90aW1pbmdz LmZhc3RfZGxsX2N0cmwsCi0JCQkgICAgbWVtX3RpbWluZ3MuYmFzZV9jcywKLQkJCSAgICBmb3Jj ZV9sb2NrX3RvX3VubG9ja19tb2RlKTsKLQltZW1fdGltaW5ncy5zbG93X2RsbF9jdHJsICY9IDB4 ZmYwMDsJLyogS2VlcCBsb2NrIHZhbHVlICovCi0KLQkvKiBUdXJuIHN0YXR1cyBpbnRvIHVubG9j ayBjdHJsICovCi0JbWVtX3RpbWluZ3Muc2xvd19kbGxfY3RybCB8PQotCQkoKG1lbV90aW1pbmdz LmZhc3RfZGxsX2N0cmwgJiAweEYpIHwgKDEgPDwgMikpOwotCi0JLyogOTAgZGVncmVlIHBoYXNl IGZvciBhbnl0aGluZyBiZWxvdyAxMzNNSHogKyBkaXNhYmxlIERMTCBmaWx0ZXIgKi8KLQltZW1f dGltaW5ncy5zbG93X2RsbF9jdHJsIHw9ICgoMSA8PCAxKSB8ICgzIDw8IDgpKTsKLX0KZGlmZiAt LWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc2xlZXAyNHh4LlMgYi9hcmNoL2FybS9tYWNoLW9t YXAyL3NsZWVwMjR4eC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGQ4YzQzYWQz ODIuLjAwMDAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NsZWVwMjR4eC5TCisr KyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAtb3ItbGF0ZXIgKi8KLS8qCi0gKiBsaW51eC9hcmNoL2FybS9tYWNoLW9tYXAyL3Ns ZWVwLlMKLSAqCi0gKiAoQykgQ29weXJpZ2h0IDIwMDQKLSAqIFRleGFzIEluc3RydW1lbnRzLCA8 d3d3LnRpLmNvbT4KLSAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KLSAq Ci0gKiAoQykgQ29weXJpZ2h0IDIwMDYgTm9raWEgQ29ycG9yYXRpb24KLSAqIEZpeGVkIGlkbGUg bG9vcCBzbGVlcAotICogSWdvciBTdG9wcGEgPGlnb3Iuc3RvcHBhQG5va2lhLmNvbT4KLSAqLwot Ci0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4K LQotI2luY2x1ZGUgIm9tYXAyNHh4LmgiCi0jaW5jbHVkZSAic2RyYy5oIgotCi0vKiBGaXJzdCBh ZGRyZXNzIG9mIHJlc2VydmVkIGFkZHJlc3Mgc3BhY2U/ICBhcHBhcmVudGx5IHZhbGlkIGZvciBP TUFQMiAmIDMgKi8KLSNkZWZpbmUgQV9TRFJDMF9WCQkoMHhDMDAwMDAwMCkKLQotCS50ZXh0Ci0K LS8qCi0gKiBvbWFwMjR4eF9jcHVfc3VzcGVuZCgpIC0gRm9yY2VzIE9NQVAgaW50byBkZWVwIHNs ZWVwIHN0YXRlIGJ5IGNvbXBsZXRpbmcKLSAqIFNEUkMgc2h1dGRvd24gdGhlbiBBUk0gc2h1dGRv d24uICBVcG9uIHdha2UgTVBVIGlzIGJhY2sgb24gc28ganVzdCByZXN0b3JlCi0gKiBTRFJDLgot ICoKLSAqIElucHV0OgotICogUjAgOglETEwgY3RybCB2YWx1ZSBwcmUtU2xlZXAKLSAqIFIxIDog U0RSQ19ETExBX0NUUkwKLSAqIFIyIDogU0RSQ19QT1dFUgotICoKLSAqIFRoZSBpZiB0aGUgRFBM TCBpcyBnb2luZyB0byBBdXRvSWRsZS4gSXQgc2VlbXMgbGlrZSB0aGUgRFBMTCBtYXkgYmUgYmFj ayBvbgotICogd2hlbiB3ZSBnZXQgY2FsbGVkLCBidXQgdGhlIERMTCBwcm9iYWJseSBpc24ndC4g IFdlIHdpbGwgd2FpdCBhIGJpdCBtb3JlIGluCi0gKiBjYXNlIHRoZSBEUExMIGlzbid0IHF1aXRl IHRoZXJlIHlldC4gVGhlIGNvZGUgd2lsbCB3YWl0IG9uIERMTCBmb3IgRERSIGV2ZW4KLSAqIGlm IGluIHVubG9ja2VkIG1vZGUuCi0gKgotICogRm9yIGxlc3MgdGhhbiAyNDJ4LUVTMi4yIHVwb24g d2FrZSBmcm9tIGEgc2xlZXAgbW9kZSB3aGVyZSB0aGUgZXh0ZXJuYWwKLSAqIG9zY2lsbGF0b3Ig d2FzIHN0b3BwZWQsIGEgdGltaW5nIGJ1ZyBleGlzdHMgd2hlcmUgYSBub24tc3RhYmlsaXplZCAx Mk1IegotICogY2xvY2sgY2FuIHBhc3MgaW50byB0aGUgUFJDTSBjYW4gY2F1c2UgcHJvYmxlbXMg YXQgRFNQIGFuZCBJVkEuCi0gKiBUbyB3b3JrIGFyb3VuZCB0aGlzIHRoZSBjb2RlIHdpbGwgc3dp dGNoIHRvIHRoZSAzMmtIeiBzb3VyY2UgcHJpb3IgdG8gc2xlZXAuCi0gKiBQb3N0IHNsZWVwIHdl IHdpbGwgc2hpZnQgYmFjayB0byB1c2luZyB0aGUgRFBMTC4gIEFwcGFyZW50bHksCi0gKiBDTV9J RExFU1RfQ0xLR0VOIGRvZXMgbm90IHJlZmxlY3QgdGhlIGZ1bGwgY2xvY2sgY2hhbmdlIHNvIHlv dSBuZWVkIHRvIHdhaXQKLSAqIDN4MTJNSHogKyAzeDMya0h6IGNsb2NrcyBmb3IgYSBmdWxsIHN3 aXRjaC4KLSAqCi0gKiBUaGUgRExMIGxvYWQgdmFsdWUgaXMgbm90IGtlcHQgaW4gUkVURU5USU9O IG9yIE9GRi4JSXQgbmVlZHMgdG8gYmUgcmVzdG9yZWQKLSAqIGF0IHdha2UKLSAqLwotCS5hbGln bgkzCi1FTlRSWShvbWFwMjR4eF9jcHVfc3VzcGVuZCkKLQlzdG1mZAlzcCEsIHtyMCAtIHIxMiwg bHJ9CUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKLQltb3YJcjMsICMweDAJCUAgY2xlYXIgZm9y IG1jciBjYWxsCi0JbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllciwg aG9wZSBTRFIvRERSIGZpbmlzaGVkCi0Jbm9wCi0Jbm9wCi0JbGRyCXI0LCBbcjJdCQlAIHJlYWQg U0RSQ19QT1dFUgotCW9ycglyNCwgcjQsICMweDQwCQlAIGVuYWJsZSBzZWxmIHJlZnJlc2ggb24g aWRsZSByZXEKLQltb3YJcjUsICMweDIwMDAJCUAgc2V0IGRlbGF5IChEUExMIHJlbG9jayArIERM TCByZWxvY2spCi0Jc3RyCXI0LCBbcjJdCQlAIG1ha2UgaXQgc28KLQlub3AKLQltY3IJcDE1LCAw LCByMywgYzcsIGMwLCA0CUAgd2FpdCBmb3IgaW50ZXJydXB0Ci0Jbm9wCi1sb29wOgotCXN1YnMJ cjUsIHI1LCAjMHgxCQlAIGF3YWtlLCB3YWl0IGp1c3QgYSBiaXQKLQlibmUJbG9vcAotCi0JLyog VGhlIERQTEwgaGFzIHRvIGJlIG9uIGJlZm9yZSB3ZSB0YWtlIHRoZSBERFIgb3V0IG9mIHNlbGYg cmVmcmVzaCAqLwotCWJpYwlyNCwgcjQsICMweDQwCQlAIG5vdyBjbGVhciBzZWxmIHJlZnJlc2gg Yml0LgotCXN0cglyNCwgW3IyXQkJQCB3cml0ZSB0byBTRFJDX1BPV0VSCi0JbGRyCXI0LCBBX1NE UkMwCQlAIG1ha2UgYSBjbG9jayBoYXBwZW4KLQlsZHIJcjQsIFtyNF0JCUAgcmVhZCBBX1NEUkMw Ci0Jbm9wCQkJCUAgc3RhcnQgYXV0byByZWZyZXNoIG9ubHkgYWZ0ZXIgY2xrIG9rCi0JbW92cwly MCwgcjAJCQlAIHNlZSBpZiBERFIgb3IgU0RSCi0Jc3RybmUJcjAsIFtyMV0JCUAgcmV3cml0ZSBE TExBIHRvIGZvcmNlIERMTCByZWxvYWQKLQlhZGRuZQlyMSwgcjEsICMweDgJCUAgbW92ZSB0byBE TExCCi0Jc3RybmUJcjAsIFtyMV0JCUAgcmV3cml0ZSBETExCIHRvIGZvcmNlIERMTCByZWxvYWQK LQotCW1vdglyNSwgIzB4MTAwMAotbG9vcDI6Ci0Jc3VicwlyNSwgcjUsICMweDEKLQlibmUJbG9v cDIKLQkvKiByZXN1bWUqLwotCWxkbWZkCXNwISwge3IwIC0gcjEyLCBwY30JQCByZXN0b3JlIHJl Z3MgYW5kIHJldHVybgotCi1BX1NEUkMwOgotCS53b3JkIEFfU0RSQzBfVgotCi1FTlRSWShvbWFw MjR4eF9jcHVfc3VzcGVuZF9zeikKLQkud29yZAkuIC0gb21hcDI0eHhfY3B1X3N1c3BlbmQKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc29jLmggYi9hcmNoL2FybS9tYWNoLW9tYXAy L3NvYy5oCmluZGV4IDllM2RiYjc0M2U1Yy4uOWM5ZjU2Y2E5MTQyIDEwMDY0NAotLS0gYS9hcmNo L2FybS9tYWNoLW9tYXAyL3NvYy5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc29jLmgKQEAg LTEyLDcgKzEyLDYgQEAKICAqIEFkZGVkIERSQTd4eHggc3BlY2lmaWMgZGVmaW5lcyAtIFNyaWNo YXJhbiBSPHIuc3JpY2hhcmFuQHRpLmNvbT4KICAqLwogCi0jaW5jbHVkZSAib21hcDI0eHguaCIK ICNpbmNsdWRlICJvbWFwMzR4eC5oIgogI2luY2x1ZGUgIm9tYXA0NHh4LmgiCiAjaW5jbHVkZSAi dGk4MXh4LmgiCkBAIC02Miw5ICs2MSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNvY19pc19vbWFw KHZvaWQpCiAvKgogICogTWFjcm9zIHRvIGdyb3VwIE9NQVAgaW50byBjcHUgY2xhc3Nlcy4KICAq IFRoZXNlIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzLgotICogc29jX2lzX29tYXAyNHh4KCk6 CVRydWUgZm9yIE9NQVAyNDIwLCBPTUFQMjQyMiwgT01BUDI0MjMsIE9NQVAyNDMwCi0gKiBzb2Nf aXNfb21hcDI0MngoKToJVHJ1ZSBmb3IgT01BUDI0MjAsIE9NQVAyNDIyLCBPTUFQMjQyMwotICog c29jX2lzX29tYXAyNDN4KCk6CVRydWUgZm9yIE9NQVAyNDMwCiAgKiBzb2NfaXNfb21hcDM0M3go KToJVHJ1ZSBmb3IgT01BUDM0MzAKICAqIHNvY19pc19vbWFwNDQzeCgpOglUcnVlIGZvciBPTUFQ NDQzMAogICogc29jX2lzX29tYXA0NDZ4KCk6CVRydWUgZm9yIE9NQVA0NDYwCkBAIC0xMzcsNyAr MTMzLDYgQEAgc3RhdGljIGlubGluZSBpbnQgaXNfZHJhICMjc3ViY2xhc3MgIyNfICMjcGFja2Fn ZSAodm9pZCkJCVwKIAlyZXR1cm4gKGlzX2RyYSAjI3N1YmNsYXNzICgpICYmIEdFVF9EUkFfUEFD S0FHRSA9PSBpZCkgPyAxIDogMDsJXAogfQogCi1JU19PTUFQX0NMQVNTKDI0eHgsIDB4MjQpCiBJ U19PTUFQX0NMQVNTKDM0eHgsIDB4MzQpCiBJU19PTUFQX0NMQVNTKDQ0eHgsIDB4NDQpCiBJU19B TV9DTEFTUygzNXh4LCAweDM1KQpAQCAtMTQ4LDggKzE0Myw2IEBAIElTX0FNX0NMQVNTKDQzeHgs IDB4NDMpCiBJU19USV9DTEFTUyg4MXh4LCAweDgxKQogSVNfRFJBX0NMQVNTKDd4eCwgMHg3KQog Ci1JU19PTUFQX1NVQkNMQVNTKDI0MngsIDB4MjQyKQotSVNfT01BUF9TVUJDTEFTUygyNDN4LCAw eDI0MykKIElTX09NQVBfU1VCQ0xBU1MoMzQzeCwgMHgzNDMpCiBJU19PTUFQX1NVQkNMQVNTKDM2 M3gsIDB4MzYzKQogSVNfT01BUF9TVUJDTEFTUyg0NDN4LCAweDQ0MykKQEAgLTE4NiwyMSArMTc5 LDYgQEAgSVNfRFJBX1NVQkNMQVNTKDcyeCwgMHg3MikKICNkZWZpbmUgc29jX2lzX2RyYTc0eCgp CQkJMAogI2RlZmluZSBzb2NfaXNfZHJhNzJ4KCkJCQkwCiAKLSNpZiBkZWZpbmVkKENPTkZJR19B UkNIX09NQVAyKQotIyBkZWZpbmUgc29jX2lzX29tYXAyNHh4KCkJCWlzX29tYXAyNHh4KCkKLSNl bHNlCi0jIGRlZmluZSBzb2NfaXNfb21hcDI0eHgoKQkJMAotI2VuZGlmCi0jaWYgZGVmaW5lZChD T05GSUdfU09DX09NQVAyNDIwKQotIyBkZWZpbmUgc29jX2lzX29tYXAyNDJ4KCkJCWlzX29tYXAy NDJ4KCkKLSNlbHNlCi0jIGRlZmluZSBzb2NfaXNfb21hcDI0MngoKQkJMAotI2VuZGlmCi0jaWYg ZGVmaW5lZChDT05GSUdfU09DX09NQVAyNDMwKQotIyBkZWZpbmUgc29jX2lzX29tYXAyNDN4KCkJ CWlzX29tYXAyNDN4KCkKLSNlbHNlCi0jIGRlZmluZSBzb2NfaXNfb21hcDI0M3goKQkJMAotI2Vu ZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKICMgZGVmaW5lIHNvY19pc19vbWFw MzR4eCgpCQlpc19vbWFwMzR4eCgpCiAjIGRlZmluZSBzb2NfaXNfb21hcDM0M3goKQkJaXNfb21h cDM0M3goKQpAQCAtMjEyLDEwICsxOTAsNiBAQCBJU19EUkFfU1VCQ0xBU1MoNzJ4LCAweDcyKQog LyoKICAqIE1hY3JvcyB0byBkZXRlY3QgaW5kaXZpZHVhbCBjcHUgdHlwZXMuCiAgKiBUaGVzZSBh cmUgb25seSByYXJlbHkgbmVlZGVkLgotICogc29jX2lzX29tYXAyNDIwKCk6CVRydWUgZm9yIE9N QVAyNDIwCi0gKiBzb2NfaXNfb21hcDI0MjIoKToJVHJ1ZSBmb3IgT01BUDI0MjIKLSAqIHNvY19p c19vbWFwMjQyMygpOglUcnVlIGZvciBPTUFQMjQyMwotICogc29jX2lzX29tYXAyNDMwKCk6CVRy dWUgZm9yIE9NQVAyNDMwCiAgKiBzb2NfaXNfb21hcDM0MzAoKToJVHJ1ZSBmb3IgT01BUDM0MzAK ICAqLwogI2RlZmluZSBHRVRfT01BUF9UWVBFCSgob21hcF9yZXYoKSA+PiAxNikgJiAweGZmZmYp CkBAIC0yMjYsMTYgKzIwMCw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlzX29tYXAgIyN0eXBlICh2 b2lkKQkJCVwKIAlyZXR1cm4gKEdFVF9PTUFQX1RZUEUgPT0gKGlkKSkgPyAxIDogMDsJCVwKIH0K IAotSVNfT01BUF9UWVBFKDI0MjAsIDB4MjQyMCkKLUlTX09NQVBfVFlQRSgyNDIyLCAweDI0MjIp Ci1JU19PTUFQX1RZUEUoMjQyMywgMHgyNDIzKQotSVNfT01BUF9UWVBFKDI0MzAsIDB4MjQzMCkK IElTX09NQVBfVFlQRSgzNDMwLCAweDM0MzApCiAKLSNkZWZpbmUgc29jX2lzX29tYXAyNDIwKCkJ CTAKLSNkZWZpbmUgc29jX2lzX29tYXAyNDIyKCkJCTAKLSNkZWZpbmUgc29jX2lzX29tYXAyNDIz KCkJCTAKLSNkZWZpbmUgc29jX2lzX29tYXAyNDMwKCkJCTAKICNkZWZpbmUgc29jX2lzX29tYXAz NDMwKCkJCTAKICNkZWZpbmUgc29jX2lzX29tYXAzNjMwKCkJCTAKICNkZWZpbmUgc29jX2lzX29t YXA1NDMwKCkJCTAKQEAgLTI1MiwxNyArMjE4LDYgQEAgSVNfT01BUF9UWVBFKDM0MzAsIDB4MzQz MCkKICNkZWZpbmUgY3B1X2NsYXNzX2lzX29tYXAxKCkJCTAKICNkZWZpbmUgY3B1X2NsYXNzX2lz X29tYXAyKCkJCTEKIAotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDIpCi0jIHVuZGVmICBz b2NfaXNfb21hcDI0MjAKLSMgdW5kZWYgIHNvY19pc19vbWFwMjQyMgotIyB1bmRlZiAgc29jX2lz X29tYXAyNDIzCi0jIHVuZGVmICBzb2NfaXNfb21hcDI0MzAKLSMgZGVmaW5lIHNvY19pc19vbWFw MjQyMCgpCQlpc19vbWFwMjQyMCgpCi0jIGRlZmluZSBzb2NfaXNfb21hcDI0MjIoKQkJaXNfb21h cDI0MjIoKQotIyBkZWZpbmUgc29jX2lzX29tYXAyNDIzKCkJCWlzX29tYXAyNDIzKCkKLSMgZGVm aW5lIHNvY19pc19vbWFwMjQzMCgpCQlpc19vbWFwMjQzMCgpCi0jZW5kaWYKLQogI2lmIGRlZmlu ZWQoQ09ORklHX0FSQ0hfT01BUDMpCiAjIHVuZGVmIHNvY19pc19vbWFwMzQzMAogIyB1bmRlZiBz b2NfaXNfdGk4MXh4CkBAIC0zMjYsMTMgKzI4MSw2IEBAIElTX09NQVBfVFlQRSgzNDMwLCAweDM0 MzApCiAjZW5kaWYKIAogLyogVmFyaW91cyBzaWxpY29uIHJldmlzaW9ucyBmb3Igb21hcDIgKi8K LSNkZWZpbmUgT01BUDI0MlhfQ0xBU1MJCTB4MjQyMDAwMjQKLSNkZWZpbmUgT01BUDI0MjBfUkVW X0VTMV8wCU9NQVAyNDJYX0NMQVNTCi0jZGVmaW5lIE9NQVAyNDIwX1JFVl9FUzJfMAkoT01BUDI0 MlhfQ0xBU1MgfCAoMHgxIDw8IDgpKQotCi0jZGVmaW5lIE9NQVAyNDNYX0NMQVNTCQkweDI0MzAw MDI0Ci0jZGVmaW5lIE9NQVAyNDMwX1JFVl9FUzFfMAlPTUFQMjQzWF9DTEFTUwotCiAjZGVmaW5l IE9NQVAzNDNYX0NMQVNTCQkweDM0MzAwMDM0CiAjZGVmaW5lIE9NQVAzNDMwX1JFVl9FUzFfMAlP TUFQMzQzWF9DTEFTUwogI2RlZmluZSBPTUFQMzQzMF9SRVZfRVMyXzAJKE9NQVAzNDNYX0NMQVNT IHwgKDB4MSA8PCA4KSkKQEAgLTQwMCw3ICszNDgsNiBAQCBJU19PTUFQX1RZUEUoMzQzMCwgMHgz NDMwKQogI2RlZmluZSBEUkE3MjJfUkVWX0VTMl8wCShEUkE3WFhfQ0xBU1MgfCAoMHgyMiA8PCAx NikgfCAoMHgyMCA8PCA4KSkKICNkZWZpbmUgRFJBNzIyX1JFVl9FUzJfMQkoRFJBN1hYX0NMQVNT IHwgKDB4MjIgPDwgMTYpIHwgKDB4MjEgPDwgOCkpCiAKLXZvaWQgb21hcDJ4eHhfY2hlY2tfcmV2 aXNpb24odm9pZCk7CiB2b2lkIG9tYXAzeHh4X2NoZWNrX3JldmlzaW9uKHZvaWQpOwogdm9pZCBv bWFwNHh4eF9jaGVja19yZXZpc2lvbih2b2lkKTsKIHZvaWQgb21hcDV4eHhfY2hlY2tfcmV2aXNp b24odm9pZCk7CkBAIC00ODQsMTIgKzQzMSw2IEBAIGxldmVsKF9fIyNmbik7CiAjZGVmaW5lIG9t YXBfbGF0ZV9pbml0Y2FsbF9zeW5jKGZuKQlvbWFwX2luaXRjYWxsKGxhdGVfaW5pdGNhbGxfc3lu YywgZm4pCiAKIC8qIExlZ2FjeSBkZWZpbmVzLCB0aGVzZSBjYW4gYmUgcmVtb3ZlZCB3aGVuIHVz ZXJzIGFyZSByZW1vdmVkICovCi0jZGVmaW5lIGNwdV9pc19vbWFwMjQyMCgpCXNvY19pc19vbWFw MjQyMCgpCi0jZGVmaW5lIGNwdV9pc19vbWFwMjQyMigpCXNvY19pc19vbWFwMjQyMigpCi0jZGVm aW5lIGNwdV9pc19vbWFwMjQyeCgpCXNvY19pc19vbWFwMjQyeCgpCi0jZGVmaW5lIGNwdV9pc19v bWFwMjQzMCgpCXNvY19pc19vbWFwMjQzMCgpCi0jZGVmaW5lIGNwdV9pc19vbWFwMjQzeCgpCXNv Y19pc19vbWFwMjQzeCgpCi0jZGVmaW5lIGNwdV9pc19vbWFwMjR4eCgpCXNvY19pc19vbWFwMjR4 eCgpCiAjZGVmaW5lIGNwdV9pc19vbWFwMzQzMCgpCXNvY19pc19vbWFwMzQzMCgpCiAjZGVmaW5l IGNwdV9pc19vbWFwMzQzeCgpCXNvY19pc19vbWFwMzQzeCgpCiAjZGVmaW5lIGNwdV9pc19vbWFw MzR4eCgpCXNvY19pc19vbWFwMzR4eCgpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAy L3NyYW0uYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS5jCmluZGV4IDg5OGIwMTFhZThkOS4u OGY5ODA4NDlmMjAxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0uYworKysg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0uYwpAQCAtMjgsMTUgKzI4LDEwIEBACiAjaW5jbHVk ZSAic2RyYy5oIgogI2luY2x1ZGUgInNyYW0uaCIKIAotI2RlZmluZSBPTUFQMl9TUkFNX1BVQl9Q QQkoT01BUDJfU1JBTV9QQSArIDB4ZjgwMCkKICNkZWZpbmUgT01BUDNfU1JBTV9QVUJfUEEgICAg ICAgKE9NQVAzX1NSQU1fUEEgKyAweDgwMDApCiAKICNkZWZpbmUgU1JBTV9CT09UTE9BREVSX1Na CTB4MDAKIAotI2RlZmluZSBPTUFQMjRYWF9WQV9SRVFJTkZPUEVSTTAJT01BUDJfTDNfSU9fQURE UkVTUygweDY4MDA1MDQ4KQotI2RlZmluZSBPTUFQMjRYWF9WQV9SRUFEUEVSTTAJCU9NQVAyX0wz X0lPX0FERFJFU1MoMHg2ODAwNTA1MCkKLSNkZWZpbmUgT01BUDI0WFhfVkFfV1JJVEVQRVJNMAkJ T01BUDJfTDNfSU9fQUREUkVTUygweDY4MDA1MDU4KQotCiAjZGVmaW5lIE9NQVAzNFhYX1ZBX1JF UUlORk9QRVJNMAlPTUFQMl9MM19JT19BRERSRVNTKDB4NjgwMTI4NDgpCiAjZGVmaW5lIE9NQVAz NFhYX1ZBX1JFQURQRVJNMAkJT01BUDJfTDNfSU9fQUREUkVTUygweDY4MDEyODUwKQogI2RlZmlu ZSBPTUFQMzRYWF9WQV9XUklURVBFUk0wCQlPTUFQMl9MM19JT19BRERSRVNTKDB4NjgwMTI4NTgp CkBAIC0xMjAsMTggKzExNSwxMSBAQCBzdGF0aWMgaW50IGlzX3NyYW1fbG9ja2VkKHZvaWQpCiB7 CiAJaWYgKG9tYXBfdHlwZSgpID09IE9NQVAyX0RFVklDRV9UWVBFX0dQKSB7CiAJCS8qIFJBTUZX OiBSL1cgYWNjZXNzIHRvIGFsbCBpbml0aWF0b3JzIGZvciBhbGwgcXVhbGlmaWVyIHNldHMgKi8K LQkJaWYgKGNwdV9pc19vbWFwMjQyeCgpKSB7Ci0JCQl3cml0ZWxfcmVsYXhlZCgweEZGLCBPTUFQ MjRYWF9WQV9SRVFJTkZPUEVSTTApOyAvKiBhbGwgcS12ZWN0cyAqLwotCQkJd3JpdGVsX3JlbGF4 ZWQoMHhDRkRFLCBPTUFQMjRYWF9WQV9SRUFEUEVSTTApOyAgLyogYWxsIGktcmVhZCAqLwotCQkJ d3JpdGVsX3JlbGF4ZWQoMHhDRkRFLCBPTUFQMjRYWF9WQV9XUklURVBFUk0wKTsgLyogYWxsIGkt d3JpdGUgKi8KLQkJfQotCQlpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKLQkJCXdyaXRlbF9yZWxh eGVkKDB4RkZGRiwgT01BUDM0WFhfVkFfUkVRSU5GT1BFUk0wKTsgLyogYWxsIHEtdmVjdHMgKi8K LQkJCXdyaXRlbF9yZWxheGVkKDB4RkZGRiwgT01BUDM0WFhfVkFfUkVBRFBFUk0wKTsgIC8qIGFs bCBpLXJlYWQgKi8KLQkJCXdyaXRlbF9yZWxheGVkKDB4RkZGRiwgT01BUDM0WFhfVkFfV1JJVEVQ RVJNMCk7IC8qIGFsbCBpLXdyaXRlICovCi0JCQl3cml0ZWxfcmVsYXhlZCgweDAsIE9NQVAzNFhY X1ZBX0FERFJfTUFUQ0gyKTsKLQkJCXdyaXRlbF9yZWxheGVkKDB4RkZGRkZGRkYsIE9NQVAzNFhY X1ZBX1NNU19SR19BVFQwKTsKLQkJfQorCQl3cml0ZWxfcmVsYXhlZCgweEZGRkYsIE9NQVAzNFhY X1ZBX1JFUUlORk9QRVJNMCk7IC8qIGFsbCBxLXZlY3RzICovCisJCXdyaXRlbF9yZWxheGVkKDB4 RkZGRiwgT01BUDM0WFhfVkFfUkVBRFBFUk0wKTsgIC8qIGFsbCBpLXJlYWQgKi8KKwkJd3JpdGVs X3JlbGF4ZWQoMHhGRkZGLCBPTUFQMzRYWF9WQV9XUklURVBFUk0wKTsgLyogYWxsIGktd3JpdGUg Ki8KKwkJd3JpdGVsX3JlbGF4ZWQoMHgwLCBPTUFQMzRYWF9WQV9BRERSX01BVENIMik7CisJCXdy aXRlbF9yZWxheGVkKDB4RkZGRkZGRkYsIE9NQVAzNFhYX1ZBX1NNU19SR19BVFQwKTsKIAkJcmV0 dXJuIDA7CiAJfSBlbHNlCiAJCXJldHVybiAxOyAvKiBhc3N1bWUgbG9ja2VkIHdpdGggbm8gUFBB IG9yIHNlY3VyaXR5IGRyaXZlciAqLwpAQCAtMTQ3LDMwICsxMzUsMTcgQEAgc3RhdGljIHZvaWQg X19pbml0IG9tYXBfZGV0ZWN0X3NyYW0odm9pZCkKIHsKIAlvbWFwX3NyYW1fc2tpcCA9IFNSQU1f Qk9PVExPQURFUl9TWjsKIAlpZiAoaXNfc3JhbV9sb2NrZWQoKSkgewotCQlpZiAoY3B1X2lzX29t YXAzNHh4KCkpIHsKLQkJCW9tYXBfc3JhbV9zdGFydCA9IE9NQVAzX1NSQU1fUFVCX1BBOwotCQkJ aWYgKChvbWFwX3R5cGUoKSA9PSBPTUFQMl9ERVZJQ0VfVFlQRV9FTVUpIHx8Ci0JCQkgICAgKG9t YXBfdHlwZSgpID09IE9NQVAyX0RFVklDRV9UWVBFX1NFQykpIHsKLQkJCQlvbWFwX3NyYW1fc2l6 ZSA9IDB4NzAwMDsgLyogMjhLICovCi0JCQkJb21hcF9zcmFtX3NraXAgKz0gU1pfMTZLOwotCQkJ fSBlbHNlIHsKLQkJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4ODAwMDsgLyogMzJLICovCi0JCQl9CisJ CW9tYXBfc3JhbV9zdGFydCA9IE9NQVAzX1NSQU1fUFVCX1BBOworCQlpZiAoKG9tYXBfdHlwZSgp ID09IE9NQVAyX0RFVklDRV9UWVBFX0VNVSkgfHwKKwkJICAgIChvbWFwX3R5cGUoKSA9PSBPTUFQ Ml9ERVZJQ0VfVFlQRV9TRUMpKSB7CisJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4NzAwMDsgLyogMjhL ICovCisJCQlvbWFwX3NyYW1fc2tpcCArPSBTWl8xNks7CiAJCX0gZWxzZSB7Ci0JCQlvbWFwX3Ny YW1fc3RhcnQgPSBPTUFQMl9TUkFNX1BVQl9QQTsKLQkJCW9tYXBfc3JhbV9zaXplID0gMHg4MDA7 IC8qIDJLICovCisJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4ODAwMDsgLyogMzJLICovCiAJCX0KIAl9 IGVsc2UgewotCQlpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKLQkJCW9tYXBfc3JhbV9zdGFydCA9 IE9NQVAzX1NSQU1fUEE7Ci0JCQlvbWFwX3NyYW1fc2l6ZSA9IDB4MTAwMDA7IC8qIDY0SyAqLwot CQl9IGVsc2UgewotCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDJfU1JBTV9QQTsKLQkJCWlmIChj cHVfaXNfb21hcDI0MngoKSkKLQkJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4YTAwMDA7IC8qIDY0MEsg Ki8KLQkJCWVsc2UgaWYgKGNwdV9pc19vbWFwMjQzeCgpKQotCQkJCW9tYXBfc3JhbV9zaXplID0g MHgxMDAwMDsgLyogNjRLICovCi0JCX0KKwkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDNfU1JBTV9Q QTsKKwkJb21hcF9zcmFtX3NpemUgPSAweDEwMDAwOyAvKiA2NEsgKi8KIAl9CiB9CiAKQEAgLTE4 MSwyNCArMTU2LDIwIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvbWFwMl9tYXBfc3JhbSh2b2lkKQog ewogCXVuc2lnbmVkIGxvbmcgYmFzZTsKIAlpbnQgcGFnZXM7Ci0JaW50IGNhY2hlZCA9IDE7Ci0K LQlpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKLQkJLyoKLQkJICogU1JBTSBtdXN0IGJlIG1hcmtl ZCBhcyBub24tY2FjaGVkIG9uIE9NQVAzIHNpbmNlIHRoZQotCQkgKiBDT1JFIERQTEwgTTIgZGl2 aWRlciBjaGFuZ2UgY29kZSAoaW4gU1JBTSkgcnVucyB3aXRoIHRoZQotCQkgKiBTRFJBTSBjb250 cm9sbGVyIGRpc2FibGVkLCBhbmQgaWYgaXQgaXMgbWFya2VkIGNhY2hlZCwKLQkJICogdGhlIEFS TSBtYXkgYXR0ZW1wdCB0byB3cml0ZSBjYWNoZSBsaW5lcyBiYWNrIHRvIFNEUkFNCi0JCSAqIHdo aWNoIHdpbGwgY2F1c2UgdGhlIHN5c3RlbSB0byBoYW5nLgotCQkgKi8KLQkJY2FjaGVkID0gMDsK LQl9CiAKIAlpZiAob21hcF9zcmFtX3NpemUgPT0gMCkKIAkJcmV0dXJuOwogCiAJb21hcF9zcmFt X3N0YXJ0ID0gUk9VTkRfRE9XTihvbWFwX3NyYW1fc3RhcnQsIFBBR0VfU0laRSk7Ci0Jb21hcF9z cmFtX2Jhc2UgPSBfX2FybV9pb3JlbWFwX2V4ZWMob21hcF9zcmFtX3N0YXJ0LCBvbWFwX3NyYW1f c2l6ZSwgY2FjaGVkKTsKKwkvKgorCSAqIFNSQU0gbXVzdCBiZSBtYXJrZWQgYXMgbm9uLWNhY2hl ZCBvbiBPTUFQMyBzaW5jZSB0aGUKKwkgKiBDT1JFIERQTEwgTTIgZGl2aWRlciBjaGFuZ2UgY29k ZSAoaW4gU1JBTSkgcnVucyB3aXRoIHRoZQorCSAqIFNEUkFNIGNvbnRyb2xsZXIgZGlzYWJsZWQs IGFuZCBpZiBpdCBpcyBtYXJrZWQgY2FjaGVkLAorCSAqIHRoZSBBUk0gbWF5IGF0dGVtcHQgdG8g d3JpdGUgY2FjaGUgbGluZXMgYmFjayB0byBTRFJBTQorCSAqIHdoaWNoIHdpbGwgY2F1c2UgdGhl IHN5c3RlbSB0byBoYW5nLgorCSAqLworCisJb21hcF9zcmFtX2Jhc2UgPSBfX2FybV9pb3JlbWFw X2V4ZWMob21hcF9zcmFtX3N0YXJ0LCBvbWFwX3NyYW1fc2l6ZSwgMCk7CiAJaWYgKCFvbWFwX3Ny YW1fYmFzZSkgewogCQlwcl9lcnIoIlNSQU06IENvdWxkIG5vdCBtYXBcbiIpOwogCQlyZXR1cm47 CkBAIC0yMTksNzggKzE5MCw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvbWFwMl9tYXBfc3JhbSh2 b2lkKQogCXNldF9tZW1vcnlfcm94KGJhc2UsIHBhZ2VzKTsKIH0KIAotc3RhdGljIHZvaWQgKCpf b21hcDJfc3JhbV9kZHJfaW5pdCkodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3Ry bCwKLQkJCSAgICAgIHUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKTsKLQotdm9pZCBvbWFw Ml9zcmFtX2Rkcl9pbml0KHUzMiAqc2xvd19kbGxfY3RybCwgdTMyIGZhc3RfZGxsX2N0cmwsCi0J CSAgIHUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKQotewotCUJVR19PTighX29tYXAyX3Ny YW1fZGRyX2luaXQpOwotCV9vbWFwMl9zcmFtX2Rkcl9pbml0KHNsb3dfZGxsX2N0cmwsIGZhc3Rf ZGxsX2N0cmwsCi0JCQkgICAgIGJhc2VfY3MsIGZvcmNlX3VubG9jayk7Ci19Ci0KLXN0YXRpYyB2 b2lkICgqX29tYXAyX3NyYW1fcmVwcm9ncmFtX3NkcmMpKHUzMiBwZXJmX2xldmVsLCB1MzIgZGxs X3ZhbCwKLQkJCQkJICB1MzIgbWVtX3R5cGUpOwotCi12b2lkIG9tYXAyX3NyYW1fcmVwcm9ncmFt X3NkcmModTMyIHBlcmZfbGV2ZWwsIHUzMiBkbGxfdmFsLCB1MzIgbWVtX3R5cGUpCi17Ci0JQlVH X09OKCFfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyk7Ci0JX29tYXAyX3NyYW1fcmVwcm9ncmFt X3NkcmMocGVyZl9sZXZlbCwgZGxsX3ZhbCwgbWVtX3R5cGUpOwotfQotCi1zdGF0aWMgdTMyICgq X29tYXAyX3NldF9wcmNtKSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNkcmNfcmZyX3ZhbCwgaW50 IGJ5cGFzcyk7Ci0KLXUzMiBvbWFwMl9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNk cmNfcmZyX3ZhbCwgaW50IGJ5cGFzcykKLXsKLQlCVUdfT04oIV9vbWFwMl9zZXRfcHJjbSk7Ci0J cmV0dXJuIF9vbWFwMl9zZXRfcHJjbShkcGxsX2N0cmxfdmFsLCBzZHJjX3Jmcl92YWwsIGJ5cGFz cyk7Ci19Ci0KLSNpZmRlZiBDT05GSUdfU09DX09NQVAyNDIwCi1zdGF0aWMgaW50IF9faW5pdCBv bWFwMjQyeF9zcmFtX2luaXQodm9pZCkKLXsKLQlfb21hcDJfc3JhbV9kZHJfaW5pdCA9IG9tYXBf c3JhbV9wdXNoKG9tYXAyNDJ4X3NyYW1fZGRyX2luaXQsCi0JCQkJCW9tYXAyNDJ4X3NyYW1fZGRy X2luaXRfc3opOwotCi0JX29tYXAyX3NyYW1fcmVwcm9ncmFtX3NkcmMgPSBvbWFwX3NyYW1fcHVz aChvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjLAotCQkJCQkgICAgb21hcDI0Mnhfc3JhbV9y ZXByb2dyYW1fc2RyY19zeik7Ci0KLQlfb21hcDJfc2V0X3ByY20gPSBvbWFwX3NyYW1fcHVzaChv bWFwMjQyeF9zcmFtX3NldF9wcmNtLAotCQkJCQkgb21hcDI0Mnhfc3JhbV9zZXRfcHJjbV9zeik7 Ci0KLQlyZXR1cm4gMDsKLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIGludCBvbWFwMjQyeF9zcmFt X2luaXQodm9pZCkKLXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1NP Q19PTUFQMjQzMAotc3RhdGljIGludCBfX2luaXQgb21hcDI0M3hfc3JhbV9pbml0KHZvaWQpCi17 Ci0JX29tYXAyX3NyYW1fZGRyX2luaXQgPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQzeF9zcmFtX2Rk cl9pbml0LAotCQkJCQlvbWFwMjQzeF9zcmFtX2Rkcl9pbml0X3N6KTsKLQotCV9vbWFwMl9zcmFt X3JlcHJvZ3JhbV9zZHJjID0gb21hcF9zcmFtX3B1c2gob21hcDI0M3hfc3JhbV9yZXByb2dyYW1f c2RyYywKLQkJCQkJICAgIG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmNfc3opOwotCi0JX29t YXAyX3NldF9wcmNtID0gb21hcF9zcmFtX3B1c2gob21hcDI0M3hfc3JhbV9zZXRfcHJjbSwKLQkJ CQkJIG9tYXAyNDN4X3NyYW1fc2V0X3ByY21fc3opOwotCi0JcmV0dXJuIDA7Ci19Ci0jZWxzZQot c3RhdGljIGlubGluZSBpbnQgb21hcDI0M3hfc3JhbV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7 Ci19Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19BUkNIX09NQVAzCi0KIHZvaWQgb21hcDNfc3Jh bV9yZXN0b3JlX2NvbnRleHQodm9pZCkKIHsKIAlvbWFwX3NyYW1fcmVzZXQoKTsKQEAgLTMwMywy NCArMjAyLDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IG9tYXAzNHh4X3NyYW1faW5pdCh2b2lkKQog CW9tYXAzX3NyYW1fcmVzdG9yZV9jb250ZXh0KCk7CiAJcmV0dXJuIDA7CiB9Ci0jZWxzZQotc3Rh dGljIGlubGluZSBpbnQgb21hcDM0eHhfc3JhbV9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19 Ci0jZW5kaWYgLyogQ09ORklHX0FSQ0hfT01BUDMgKi8KIAogaW50IF9faW5pdCBvbWFwX3NyYW1f aW5pdCh2b2lkKQogewogCW9tYXBfZGV0ZWN0X3NyYW0oKTsKIAlvbWFwMl9tYXBfc3JhbSgpOwot Ci0JaWYgKGNwdV9pc19vbWFwMjQyeCgpKQotCQlvbWFwMjQyeF9zcmFtX2luaXQoKTsKLQllbHNl IGlmIChjcHVfaXNfb21hcDI0MzAoKSkKLQkJb21hcDI0M3hfc3JhbV9pbml0KCk7Ci0JZWxzZSBp ZiAoY3B1X2lzX29tYXAzNHh4KCkpCi0JCW9tYXAzNHh4X3NyYW1faW5pdCgpOworCW9tYXAzNHh4 X3NyYW1faW5pdCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LW9tYXAyL3NyYW0uaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS5oCmluZGV4IDAzMGNhYmMz OTgyMS4uMmRiMmM0NTk4Y2RiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0u aAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0uaApAQCAtNSw0MyArNSwxMiBAQAogCiAj aWZuZGVmIF9fQVNTRU1CTFlfXwogCi1leHRlcm4gdm9pZCBvbWFwMl9zcmFtX2Rkcl9pbml0KHUz MiAqc2xvd19kbGxfY3RybCwgdTMyIGZhc3RfZGxsX2N0cmwsCi0JCQkJdTMyIGJhc2VfY3MsIHUz MiBmb3JjZV91bmxvY2spOwotZXh0ZXJuIHZvaWQgb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyh1 MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsCi0JCQkJICAgICAgdTMyIG1lbV90eXBlKTsKLWV4 dGVybiB1MzIgb21hcDJfc2V0X3ByY20odTMyIGRwbGxfY3RybF92YWwsIHUzMiBzZHJjX3Jmcl92 YWwsIGludCBieXBhc3MpOwotCiBleHRlcm4gdm9pZCBvbWFwM19zcmFtX3Jlc3RvcmVfY29udGV4 dCh2b2lkKTsKIAogZXh0ZXJuIGludCBfX2luaXQgb21hcF9zcmFtX2luaXQodm9pZCk7CiAKIGV4 dGVybiB2b2lkICpvbWFwX3NyYW1fcHVzaCh2b2lkICpmdW5jcCwgdW5zaWduZWQgbG9uZyBzaXpl KTsKIAotZXh0ZXJuIHZvaWQgb21hcDI0Mnhfc3JhbV9kZHJfaW5pdCh1MzIgKnNsb3dfZGxsX2N0 cmwsIHUzMiBmYXN0X2RsbF9jdHJsLAotCQkJCQkJdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxv Y2spOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zejsKLQot ZXh0ZXJuIHUzMiBvbWFwMjQyeF9zcmFtX3NldF9wcmNtKHUzMiBkcGxsX2N0cmxfdmFsLCB1MzIg c2RyY19yZnJfdmFsLAotCQkJCQkJaW50IGJ5cGFzcyk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBv bWFwMjQyeF9zcmFtX3NldF9wcmNtX3N6OwotCi1leHRlcm4gdm9pZCBvbWFwMjQyeF9zcmFtX3Jl cHJvZ3JhbV9zZHJjKHUzMiBwZXJmX2xldmVsLCB1MzIgZGxsX3ZhbCwKLQkJCQkJCXUzMiBtZW1f dHlwZSk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJj X3N6OwotCi0KLWV4dGVybiB2b2lkIG9tYXAyNDN4X3NyYW1fZGRyX2luaXQodTMyICpzbG93X2Rs bF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKLQkJCQkJCXUzMiBiYXNlX2NzLCB1MzIgZm9yY2Vf dW5sb2NrKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNDN4X3NyYW1fZGRyX2luaXRfc3o7 Ci0KLWV4dGVybiB1MzIgb21hcDI0M3hfc3JhbV9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwg dTMyIHNkcmNfcmZyX3ZhbCwKLQkJCQkJCWludCBieXBhc3MpOwotZXh0ZXJuIHVuc2lnbmVkIGxv bmcgb21hcDI0M3hfc3JhbV9zZXRfcHJjbV9zejsKLQotZXh0ZXJuIHZvaWQgb21hcDI0M3hfc3Jh bV9yZXByb2dyYW1fc2RyYyh1MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsCi0JCQkJCQl1MzIg bWVtX3R5cGUpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0M3hfc3JhbV9yZXByb2dyYW1f c2RyY19zejsKLQogI2lmZGVmIENPTkZJR19QTQogZXh0ZXJuIHZvaWQgb21hcF9wdXNoX3NyYW1f aWRsZSh2b2lkKTsKICNlbHNlCkBAIC01NCw1ICsyMyw0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBv bWFwX3B1c2hfc3JhbV9pZGxlKHZvaWQpIHt9CiAgKiBPTUFQMis6IGRlZmluZSB0aGUgU1JBTSBQ QSBhZGRyZXNzZXMuCiAgKiBVc2VkIGJ5IHRoZSBTUkFNIG1hbmFnZW1lbnQgY29kZSBhbmQgdGhl IGlkbGUgc2xlZXAgY29kZS4KICAqLwotI2RlZmluZSBPTUFQMl9TUkFNX1BBCQkweDQwMjAwMDAw CiAjZGVmaW5lIE9NQVAzX1NSQU1fUEEgICAgICAgICAgIDB4NDAyMDAwMDAKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0MnguUyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3Jh bTI0MnguUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJlZjIxYWMyYWMxLi4wMDAw MDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TCisrKyAvZGV2L251 bGwKQEAgLTEsMzE3ICswLDAgQEAKLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w LW9yLWxhdGVyICovCi0vKgotICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5T Ci0gKgotICogT21hcDIgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBydW4gaW4g aW50ZXJuYWwgU1JBTQotICoKLSAqIChDKSBDb3B5cmlnaHQgMjAwNAotICogVGV4YXMgSW5zdHJ1 bWVudHMsIDx3d3cudGkuY29tPgotICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGku Y29tPgotICoKLSAqIFJpY2hhcmQgV29vZHJ1ZmYgbm90ZXMgdGhhdCBhbnkgY2hhbmdlcyB0byB0 aGlzIGNvZGUgbXVzdCBiZSBjYXJlZnVsbHkKLSAqIGF1ZGl0ZWQgYW5kIHRlc3RlZCB0byBlbnN1 cmUgdGhhdCB0aGV5IGRvbid0IGNhdXNlIGEgVExCIG1pc3Mgd2hpbGUKLSAqIHRoZSBTRFJBTSBp cyBpbmFjY2Vzc2libGUuICBTdWNoIGEgc2l0dWF0aW9uIHdpbGwgY3Jhc2ggdGhlIHN5c3RlbQot ICogc2luY2UgaXQgd2lsbCBjYXVzZSB0aGUgQVJNIE1NVSB0byBhdHRlbXB0IHRvIHdhbGsgdGhl IHBhZ2UgdGFibGVzLgotICogVGhlc2UgY3Jhc2hlcyBtYXkgYmUgaW50ZXJtaXR0ZW50LgotICov Ci0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotCi0jaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5o PgotCi0jaW5jbHVkZSAic29jLmgiCi0jaW5jbHVkZSAiaW9tYXAuaCIKLSNpbmNsdWRlICJwcm0y eHh4LmgiCi0jaW5jbHVkZSAiY20yeHh4LmgiCi0jaW5jbHVkZSAic2RyYy5oIgotCi0JLnRleHQK LQotCS5hbGlnbgkzCi1FTlRSWShvbWFwMjQyeF9zcmFtX2Rkcl9pbml0KQotCXN0bWZkCXNwISwg e3IwIC0gcjEyLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCi0JbW92CXIxMiwgcjIJ CQlAIGNhcHR1cmUgQ1MxIHZzIENTMAotCW1vdglyOCwgcjMJCQlAIGNhcHR1cmUgZm9yY2UgcGFy YW1ldGVyCi0KLQkvKiBmcmVxdWVuY3kgc2hpZnQgZG93biAqLwotCWxkcglyMiwgb21hcDI0Mnhf c2RpX2NtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2YgZHBsbG91dCByZWcKLQltb3YJcjMs ICMweDEJCUAgdmFsdWUgZm9yIDF4IG9wZXJhdGlvbgotCXN0cglyMywgW3IyXQkJQCBnbyB0byBM MS1mcmVxIG9wZXJhdGlvbgotCi0JLyogdm9sdGFnZSBzaGlmdCBkb3duICovCi0JbW92IHI5LCAj MHgxCQkJQCBzZXQgdXAgZm9yIEwxIHZvbHRhZ2UgY2FsbAotCWJsIHZvbHRhZ2Vfc2hpZnQJCUAg Z28gZHJvcCB2b2x0YWdlCi0KLQkvKiBkbGwgbG9jayBtb2RlICovCi0JbGRyCXIxMSwgb21hcDI0 Mnhfc2RpX3NkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKLQlsZHIJcjEwLCBbcjEx XQkJQCBnZXQgY3VycmVudCB2YWwKLQljbXAJcjEyLCAjMHgxCQlAIGNzMSBiYXNlICgyNDIyIGVz Mi4wNS8xKQotCWFkZGVxCXIxMSwgcjExLCAjMHg4CQlAIGlmIGNzMSBiYXNlLCBtb3ZlIHRvIERM TEIKLQltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgotCWFuZAlyMTAsIHIx MCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlLgotCW9ycglyMTAsIHIxMCwgIzB4OAkJ QCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKLQlvcnIJcjEwLCByMTAsICMweDIJCUAg OTAgZGVncmVlIHBoYXNlIGZvciBhbGwgYmVsb3cgMTMzTUh6Ci0Jc3RyCXIxMCwgW3IxMV0JCUAg Y29tbWl0IHRvIERMTEFfQ1RSTAotCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgZGxsIHRvIGxv Y2sKLQotCS8qIGdldCBkbGwgdmFsdWUgKi8KLQlhZGQJcjExLCByMTEsICMweDQJCUAgZ2V0IGFk ZHIgb2Ygc3RhdHVzIHJlZwotCWxkcglyMTAsIFtyMTFdCQlAIGdldCBsb2NrZWQgdmFsdWUKLQot CS8qIHZvbHRhZ2Ugc2hpZnQgdXAgKi8KLQltb3YgcjksICMweDAJCQlAIHNoaWZ0IGJhY2sgdG8g TDAtdm9sdGFnZQotCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gcmFpc2Ugdm9sdGFnZQotCi0JLyog ZnJlcXVlbmN5IHNoaWZ0IHVwICovCi0JbW92CXIzLCAjMHgyCQlAIHZhbHVlIGZvciAyeCBvcGVy YXRpb24KLQlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDAtZnJlcSBvcGVyYXRpb24KLQotCS8qIHJl c2V0IGVudHJ5IG1vZGUgZm9yIGRsbGN0cmwgKi8KLQlzdWIJcjExLCByMTEsICMweDQJCUAgbW92 ZSBmcm9tIHN0YXR1cyB0byBjdHJsCi0JY21wCXIxMiwgIzB4MQkJQCBub3JtYWxpemUgaWYgY3Mx IGJhc2VkCi0Jc3ViZXEJcjExLCByMTEsICMweDgJCUAgcG9zc2libHkgYmFjayB0byBETExBCi0J Y21wCXI4LCAjMHgxCQlAIGlmIGZvcmNlZCB1bmxvY2sgZXhpdAotCW9ycmVxCXIxLCByMSwgIzB4 NAkJQCBtYWtlIHN1cmUgZXhpdCB3aXRoIHVubG9ja2VkIHZhbHVlCi0Jc3RyCXIxLCBbcjExXQkJ QCByZXN0b3JlIERMTEFfQ1RSTCBoaWdoIHZhbHVlCi0JYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1v dmUgdG8gRExMQl9DVFJMIGFkZHIKLQlzdHIJcjEsIFtyMTFdCQlAIHNldCB2YWx1ZSBETExCX0NU UkwKLQlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIHBvc3NpYmxlIGxvY2sKLQotCS8qIHNldCB1 cCBmb3IgcmV0dXJuLCBERFIgc2hvdWxkIGJlIGdvb2QgKi8KLQlzdHIgcjEwLCBbcjBdCQkJQCB3 cml0ZSBkbGxfc3RhdHVzIGFuZCByZXR1cm4gY291bnRlcgotCWxkbWZkCXNwISwge3IwIC0gcjEy LCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgotCi0JLyogZW5zdXJlIHRoZSBETEwgaGFz IHJlbG9ja2VkICovCi1pX2RsbF93YWl0OgotCW1vdglyNCwgIzB4ODAwCQlAIGRlbGF5IERMTCBy ZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKLWlfZGxsX2RlbGF5OgotCXN1YnMJcjQsIHI0LCAj MHgxCi0JYm5lCWlfZGxsX2RlbGF5Ci0JcmV0CWxyCi0KLQkvKgotCSAqIHNoaWZ0IHVwIG9yIGRv d24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCi0JICogd2FpdCBmb3Ig aXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KLQkgKi8KLXZv bHRhZ2Vfc2hpZnQ6Ci0JbGRyCXI0LCBvbWFwMjQyeF9zZGlfcHJjbV92b2x0Y3RybAlAIGdldCBh ZGRyIG9mIHZvbHQgY3RybC4KLQlsZHIJcjUsIFtyNF0JCUAgZ2V0IHZhbHVlLgotCWxkcglyNiwg cHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCi0JYW5kCXI1LCByNSwgcjYJCUAgYXBw bHkgbWFzayB0byBjbGVhciBiaXRzCi0Jb3JyCXI1LCByNSwgcjkJCUAgYnVsbGQgdmFsdWUgZm9y IEwwL0wxLXZvbHQgb3BlcmF0aW9uLgotCXN0cglyNSwgW3I0XQkJQCBzZXQgdXAgZm9yIGNoYW5n ZS4KLQltb3YJcjMsICMweDQwMDAJCUAgZ2V0IHZhbCBmb3IgZm9yY2UKLQlvcnIJcjUsIHI1LCBy MwkJQCBidWlsZCB2YWx1ZSBmb3IgZm9yY2UKLQlzdHIJcjUsIFtyNF0JCUAgRm9yY2UgdHJhbnNp dGlvbiB0byBMMQotCi0JbGRyCXIzLCBvbWFwMjQyeF9zZGlfdGltZXJfMzJrc3luY3RfY3IJQCBn ZXQgYWRkciBvZiBjb3VudGVyCi0JbGRyCXI1LCBbcjNdCQlAIGdldCB2YWx1ZQotCWFkZAlyNSwg cjUsICMweDMJCUAgZ2l2ZSBpdCBhdCBtb3N0IDkzdVMKLXZvbHRfZGVsYXk6Ci0JbGRyCXI3LCBb cjNdCQlAIGdldCB0aW1lciB2YWx1ZQotCWNtcAlyNSwgcjcJCQlAIHRpbWUgdXA/Ci0JYmhpCXZv bHRfZGVsYXkJCUAgbm90IHlldC0+YnJhbmNoCi0JcmV0CWxyCQkJQCBiYWNrIHRvIGNhbGxlci4K LQotb21hcDI0Mnhfc2RpX2NtX2Nsa3NlbDJfcGxsOgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FE RFIoUExMX01PRCwgQ01fQ0xLU0VMMikKLW9tYXAyNDJ4X3NkaV9zZHJjX2RsbGFfY3RybDoKLQku d29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCi1vbWFwMjQyeF9zZGlf cHJjbV92b2x0Y3RybDoKLQkud29yZCBPTUFQMjQyMF9QUkNNX1ZPTFRDVFJMCi1wcmNtX21hc2tf dmFsOgotCS53b3JkIDB4RkZGRjNGRkMKLW9tYXAyNDJ4X3NkaV90aW1lcl8zMmtzeW5jdF9jcjoK LQkud29yZCBPTUFQMl9MNF9JT19BRERSRVNTKE9NQVAyNDIwXzMyS1NZTkNUX0JBU0UgKyAweDAx MCkKLUVOVFJZKG9tYXAyNDJ4X3NyYW1fZGRyX2luaXRfc3opCi0JLndvcmQJLiAtIG9tYXAyNDJ4 X3NyYW1fZGRyX2luaXQKLQotLyoKLSAqIFJlcHJvZ3JhbXMgbWVtb3J5IHRpbWluZ3MuCi0gKiBy MCA9IFtQUkNNX0ZVTEwgfCBQUkNNX0hBTEZdIHIxID0gU0RSQ19ETExBX0NUUkwgdmFsdWUgcjIg PSBbRERSIHwgU0RSXQotICogUFJDTV9GVUxMID0gMiwgUFJDTV9IQUxGID0gMSwgRERSID0gMSwg U0RSID0gMAotICovCi0JLmFsaWduCTMKLUVOVFJZKG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3Nk cmMpCi0Jc3RtZmQJc3AhLCB7cjAgLSByMTAsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNr Ci0JbW92CXIzLCAjMHgwCQlAIGNsZWFyIGZvciBtcmMgY2FsbAotCW1jcglwMTUsIDAsIHIzLCBj NywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIsIGZpbmlzaCBBUk0gU0RSL0REUgotCW5vcAotCW5v cAotCWxkcglyNiwgb21hcDI0Mnhfc3JzX3NkcmNfcmZyX2N0cmwJQCBnZXQgYWRkciBvZiByZWZy ZXNoIHJlZwotCWxkcglyNSwgW3I2XQkJQCBnZXQgdmFsdWUKLQltb3YJcjUsIHI1LCBsc3IgIzgJ CUAgaXNvbGF0ZSByZnIgZmllbGQgYW5kIGRyb3AgYnVyc3QKLQotCWNtcAlyMCwgIzB4MQkJQCBn b2luZyB0byBoYWxmIHNwZWVkPwotCW1vdm5lCXI5LCAjMHgwCQlAIGlmIHVwIHNldCBmbGFnIHVw IGZvciBwcmUgdXAsIGhpIHZvbHQKLQotCWJsbmUJdm9sdGFnZV9zaGlmdF9jCQlAIGFkanVzdCB2 b2x0YWdlCi0KLQljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZCAocG9zdCBicmFu Y2ggbGluaykKLQltb3ZlcQlyNSwgcjUsIGxzciAjMQkJQCBkaXZpZGUgYnkgMiBpZiB0byBoYWxm Ci0JbW92bmUJcjUsIHI1LCBsc2wgIzEJCUAgbXVsdCBieSAyIGlmIHRvIGZ1bGwKLQltb3YJcjUs IHI1LCBsc2wgIzgJCUAgcHV0IHJmciBmaWVsZCBiYWNrIGludG8gcGxhY2UKLQlhZGQJcjUsIHI1 LCAjMHgxCQlAIHR1cm4gb24gYnVyc3Qgb2YgMQotCWxkcglyNCwgb21hcDI0Mnhfc3JzX2NtX2Ns a3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2Ygb3V0IHJlZwotCWxkcglyMywgW3I0XQkJQCBnZXQg Y3VyciB2YWx1ZQotCW9ycglyMywgcjMsICMweDMKLQliaWMJcjMsIHIzLCAjMHgzCQlAIGNsZWFy IGxvd2VyIGJpdHMKLQlvcnIJcjMsIHIzLCByMAkJQCBuZXcgc3RhdGUgdmFsdWUKLQlzdHIJcjMs IFtyNF0JCUAgc2V0IG5ldyBzdGF0ZSAocGxsL3gsIHg9MSBvciAyKQotCW5vcAotCW5vcAotCi0J bW92ZXEJcjksICMweDEJCUAgaWYgc3BlZWQgZG93biwgcG9zdCBkb3duLCBkcm9wIHZvbHQKLQli bGVxCXZvbHRhZ2Vfc2hpZnRfYwotCi0JbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1v cnkgYmFycmllcgotCXN0cglyNSwgW3I2XQkJQCBzZXQgbmV3IFJGUl8xIHZhbHVlCi0JYWRkCXI2 LCByNiwgIzB4MzAJCUAgZ2V0IFJGUl8yIGFkZHIKLQlzdHIJcjUsIFtyNl0JCUAgc2V0IFJGUl8y Ci0Jbm9wCi0JY21wCXIyLCAjMHgxCQlAIChTRFIgb3IgRERSKSBkbyB3ZSBuZWVkIHRvIGFkanVz dCBETEwKLQlibmUJZnJlcV9vdXQJCUAgbGVhdmUgaWYgU0RSLCBubyBETEwgZnVuY3Rpb24KLQot CS8qIFdpdGggRERSLCB3ZSBuZWVkIHRvIHRha2UgY2FyZSBvZiB0aGUgRExMIGZvciB0aGUgZnJl cXVlbmN5IGNoYW5nZSAqLwotCWxkcglyMiwgb21hcDI0Mnhfc3JzX3NkcmNfZGxsYV9jdHJsCUAg YWRkciBvZiBkbGxhIGN0cmwKLQlzdHIJcjEsIFtyMl0JCUAgd3JpdGUgb3V0IG5ldyBTRFJDX0RM TEFfQ1RSTAotCWFkZAlyMiwgcjIsICMweDgJCUAgYWRkciB0byBTRFJDX0RMTEJfQ1RSTAotCXN0 cglyMSwgW3IyXQkJQCBjb21taXQgdG8gU0RSQ19ETExCX0NUUkwKLQltb3YJcjEsICMweDIwMDAJ CUAgd2FpdCBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCi1kbGxfd2FpdDoKLQlzdWJz CXIxLCByMSwgIzB4MQotCWJuZQlkbGxfd2FpdAotZnJlcV9vdXQ6Ci0JbGRtZmQJc3AhLCB7cjAg LSByMTAsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLSAgICAvKgotICAgICAqIHNo aWZ0IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCi0g ICAgICoJd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9 MzF1Uy4KLSAgICAgKi8KLXZvbHRhZ2Vfc2hpZnRfYzoKLQlsZHIJcjEwLCBvbWFwMjQyeF9zcnNf cHJjbV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybAotCWxkcglyOCwgW3IxMF0JCUAg Z2V0IHZhbHVlCi0JbGRyCXI3LCBkZHJfcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNr Ci0JYW5kCXI4LCByOCwgcjcJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCi0Jb3JyCXI4LCBy OCwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgotCXN0cglyOCwg W3IxMF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCi0JbW92CXI3LCAjMHg0MDAwCQlAIGdldCB2YWwg Zm9yIGZvcmNlCi0Jb3JyCXI4LCByOCwgcjcJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCi0Jc3Ry CXI4LCBbcjEwXQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCi0KLQlsZHIJcjEwLCBvbWFwMjQy eF9zcnNfdGltZXJfMzJrc3luY3QJQCBnZXQgYWRkciBvZiBjb3VudGVyCi0JbGRyCXI4LCBbcjEw XQkJQCBnZXQgdmFsdWUKLQlhZGQJcjgsIHI4LCAjMHgyCQlAIGdpdmUgaXQgYXQgbW9zdCA2MnVT IChtaW4gMzErKQotdm9sdF9kZWxheV9jOgotCWxkcglyNywgW3IxMF0JCUAgZ2V0IHRpbWVyIHZh bHVlCi0JY21wCXI4LCByNwkJCUAgdGltZSB1cD8KLQliaGkJdm9sdF9kZWxheV9jCQlAIG5vdCB5 ZXQtPmJyYW5jaAotCXJldAlscgkJCUAgYmFjayB0byBjYWxsZXIKLQotb21hcDI0Mnhfc3JzX2Nt X2Nsa3NlbDJfcGxsOgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xL U0VMMikKLW9tYXAyNDJ4X3Nyc19zZHJjX2RsbGFfY3RybDoKLQkud29yZCBPTUFQMjQyWF9TRFJD X1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCi1vbWFwMjQyeF9zcnNfc2RyY19yZnJfY3RybDoKLQku d29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQotb21hcDI0Mnhfc3Jz X3ByY21fdm9sdGN0cmw6Ci0JLndvcmQgT01BUDI0MjBfUFJDTV9WT0xUQ1RSTAotZGRyX3ByY21f bWFza192YWw6Ci0JLndvcmQgMHhGRkZGM0ZGQwotb21hcDI0Mnhfc3JzX3RpbWVyXzMya3N5bmN0 OgotCS53b3JkIE9NQVAyX0w0X0lPX0FERFJFU1MoT01BUDI0MjBfMzJLU1lOQ1RfQkFTRSArIDB4 MDEwKQotCi1FTlRSWShvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KQotCS53b3JkCS4g LSBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjCi0KLS8qCi0gKiBTZXQgZGl2aWRlcnMgYW5k IHBsbC4gQWxzbyByZWNhbGN1bGF0ZSBETEwgdmFsdWUgZm9yIEREUiBhbmQgdW5sb2NrIG1vZGUu Ci0gKi8KLQkuYWxpZ24JMwotRU5UUlkob21hcDI0Mnhfc3JhbV9zZXRfcHJjbSkKLQlzdG1mZAlz cCEsIHtyMC1yMTIsIGxyfQlAIHJlZ3MgdG8gc3RhY2sKLQlhZHIJcjQsIHBiZWdpbgkJQCBhZGRy IG9mIHByZWxvYWQgc3RhcnQKLQlhZHIJcjgsIHBlbmQJCUAgYWRkciBvZiBwcmVsb2FkIGVuZAot CW1jcnIJcDE1LCAxLCByOCwgcjQsIGMxMglAIHByZWxvYWQgaW50byBpY2FjaGUKLXBiZWdpbjoK LQkvKiBtb3ZlIGludG8gZmFzdCByZWxvY2sgYnlwYXNzICovCi0JbGRyCXI4LCBvbWFwMjQyeF9z c3BfcGxsX2N0bAlAIGdldCBhZGRyCi0JbGRyCXI1LCBbcjhdCQlAIGdldCB2YWwKLQltdm4JcjYs ICMweDMJCUAgY2xlYXIgbWFzawotCWFuZAlyNSwgcjUsIHI2CQlAIGNsZWFyIGZpZWxkCi0Jb3Jy CXI3LCByNSwgIzB4MgkJQCBmYXN0IHJlbG9jayB2YWwKLQlzdHIJcjcsIFtyOF0JCUAgZ28gdG8g ZmFzdCByZWxvY2sKLQlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9wbGxfc3RhdAlAIGFkZHIgb2Ygc3Rh dAotYmxvY2s6Ci0JLyogd2FpdCBmb3IgYnlwYXNzICovCi0JbGRyCXI4LCBbcjRdCQlAIHN0YXQg dmFsdWUKLQlhbmQJcjgsIHI4LCAjMHgzCQlAIG1hc2sgZm9yIHN0YXQKLQljbXAJcjgsICMweDEJ CUAgdGhlcmUgeWV0Ci0JYm5lCWJsb2NrCQkJQCBsb29wIGlmIG5vdAotCi0JLyogc2V0IG5ldyBk cGxsIGRpdmlkZXJzIF9hZnRlcl8gaW4gYnlwYXNzICovCi0JbGRyCXI0LCBvbWFwMjQyeF9zc3Bf cGxsX2RpdglAIGdldCBhZGRyCi0Jc3RyCXIwLCBbcjRdCQlAIHNldCBkcGxsIGN0cmwgdmFsCi0K LQlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9zZXRfY29uZmlnCUAgZ2V0IGFkZHIKLQltb3YJcjgsICMx CQkJQCB2YWxpZCBjZmcgbXNrCi0Jc3RyCXI4LCBbcjRdCQlAIG1ha2UgZGl2aWRlcnMgdGFrZQot Ci0JbW92CXI0LCAjMTAwCQlAIGRlYWQgc3BpbiBhIGJpdAotd2FpdF9hX2JpdDoKLQlzdWJzCXI0 LCByNCwgIzEJCUAgZGVjIGxvb3AKLQlibmUJd2FpdF9hX2JpdAkJQCBkZWxheSBkb25lPwotCi0J LyogY2hlY2sgaWYgc3RheWluZyBpbiBieXBhc3MgKi8KLQljbXAJcjIsICMweDEJCUAgc3RheSBp biBieXBhc3M/Ci0JYmVxCXBlbmQJCQlAIGp1bXAgb3ZlciBkcGxsIHJlbG9jawotCi0JLyogcmVs b2NrIERQTEwgd2l0aCBuZXcgdmFscyAqLwotCWxkcglyNSwgb21hcDI0Mnhfc3NwX3BsbF9zdGF0 CUAgZ2V0IGFkZHIKLQlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9wbGxfY3RsCUAgZ2V0IGFkZHIKLQlv cnIJcjgsIHI3LCAjMHgzCQlAIHZhbCBmb3IgbG9jayBkcGxsCi0Jc3RyCXI4LCBbcjRdCQlAIHNl dCB2YWwKLQltb3YJcjAsICMxMDAwCQlAIGRlYWQgc3BpbiBhIGJpdAotd2FpdF9tb3JlOgotCXN1 YnMJcjAsIHIwLCAjMQkJQCBkZWMgbG9vcAotCWJuZQl3YWl0X21vcmUJCUAgZGVsYXkgZG9uZT8K LXdhaXRfbG9jazoKLQlsZHIJcjgsIFtyNV0JCUAgZ2V0IGxvY2sgdmFsCi0JYW5kCXI4LCByOCwg IzMJCUAgaXNvbGF0ZSBmaWVsZAotCWNtcAlyOCwgIzIJCQlAIGxvY2tlZD8KLQlibmUJd2FpdF9s b2NrCQlAIHdhaXQgaWYgbm90Ci1wZW5kOgotCS8qIHVwZGF0ZSBtZW1vcnkgdGltaW5ncyAmIGJy aWVmbHkgbG9jayBkbGwgKi8KLQlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9zZHJjX3JmcglAIGdldCBh ZGRyCi0Jc3RyCXIxLCBbcjRdCQlAIHVwZGF0ZSByZWZyZXNoIHRpbWluZwotCWxkcglyMTEsIG9t YXAyNDJ4X3NzcF9kbGxhX2N0cmwJQCBnZXQgYWRkciBvZiBETExBIGN0cmwKLQlsZHIJcjEwLCBb cjExXQkJQCBnZXQgY3VycmVudCB2YWwKLQltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xl YXIgYml0MgotCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlCi0J b3JyCXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQotCXN0 cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKLQlhZGQJcjExLCByMTEsICMweDgJ CUAgbW92ZSB0byBkbGxiCi0Jc3RyCXIxMCwgW3IxMV0JCUAgaGl0IERMTEIgYWxzbwotCi0JbW92 CXI0LCAjMHg4MDAJCUAgcmVsb2NrIHRpbWUgKG1pbiAweDQwMCBMMyBjbG9ja3MpCi13YWl0X2Rs bF9sb2NrOgotCXN1YnMJcjQsIHI0LCAjMHgxCi0JYm5lCXdhaXRfZGxsX2xvY2sKLQlub3AKLQls ZG1mZAlzcCEsIHtyMC1yMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCi0KLW9tYXAy NDJ4X3NzcF9zZXRfY29uZmlnOgotCS53b3JkIE9NQVAyNDIwX1BSQ01fQ0xLQ0ZHX0NUUkwKLW9t YXAyNDJ4X3NzcF9wbGxfY3RsOgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwg Q01fQ0xLRU4pCi1vbWFwMjQyeF9zc3BfcGxsX3N0YXQ6Ci0JLndvcmQgT01BUDI0MjBfQ01fUkVH QUREUihQTExfTU9ELCBDTV9JRExFU1QpCi1vbWFwMjQyeF9zc3BfcGxsX2RpdjoKLQkud29yZCBP TUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDEpCi1vbWFwMjQyeF9zc3Bfc2Ry Y19yZnI6Ci0JLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKLW9t YXAyNDJ4X3NzcF9kbGxhX2N0cmw6Ci0JLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNf RExMQV9DVFJMKQotCi1FTlRSWShvbWFwMjQyeF9zcmFtX3NldF9wcmNtX3N6KQotCS53b3JkCS4g LSBvbWFwMjQyeF9zcmFtX3NldF9wcmNtCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAy L3NyYW0yNDN4LlMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0yNDN4LlMKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGZhZjAzYjdmMDhmNS4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gv YXJtL21hY2gtb21hcDIvc3JhbTI0M3guUworKysgL2Rldi9udWxsCkBAIC0xLDMxNyArMCwwIEBA Ci0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlciAqLwotLyoKLSAq IGxpbnV4L2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0M3guUwotICoKLSAqIE9tYXAyIHNwZWNp ZmljIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcnVuIGluIGludGVybmFsIFNSQU0KLSAqCi0g KiAoQykgQ29weXJpZ2h0IDIwMDQKLSAqIFRleGFzIEluc3RydW1lbnRzLCA8d3d3LnRpLmNvbT4K LSAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KLSAqCi0gKiBSaWNoYXJk IFdvb2RydWZmIG5vdGVzIHRoYXQgYW55IGNoYW5nZXMgdG8gdGhpcyBjb2RlIG11c3QgYmUgY2Fy ZWZ1bGx5Ci0gKiBhdWRpdGVkIGFuZCB0ZXN0ZWQgdG8gZW5zdXJlIHRoYXQgdGhleSBkb24ndCBj YXVzZSBhIFRMQiBtaXNzIHdoaWxlCi0gKiB0aGUgU0RSQU0gaXMgaW5hY2Nlc3NpYmxlLiAgU3Vj aCBhIHNpdHVhdGlvbiB3aWxsIGNyYXNoIHRoZSBzeXN0ZW0KLSAqIHNpbmNlIGl0IHdpbGwgY2F1 c2UgdGhlIEFSTSBNTVUgdG8gYXR0ZW1wdCB0byB3YWxrIHRoZSBwYWdlIHRhYmxlcy4KLSAqIFRo ZXNlIGNyYXNoZXMgbWF5IGJlIGludGVybWl0dGVudC4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L2xp bmthZ2UuaD4KLQotI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KLQotI2luY2x1ZGUgInNvYy5o IgotI2luY2x1ZGUgImlvbWFwLmgiCi0jaW5jbHVkZSAicHJtMnh4eC5oIgotI2luY2x1ZGUgImNt Mnh4eC5oIgotI2luY2x1ZGUgInNkcmMuaCIKLQotCS50ZXh0Ci0KLQkuYWxpZ24JMwotRU5UUlko b21hcDI0M3hfc3JhbV9kZHJfaW5pdCkKLQlzdG1mZAlzcCEsIHtyMCAtIHIxMiwgbHJ9CUAgc2F2 ZSByZWdpc3RlcnMgb24gc3RhY2sKLQotCW1vdglyMTIsIHIyCQkJQCBjYXB0dXJlIENTMSB2cyBD UzAKLQltb3YJcjgsIHIzCQkJQCBjYXB0dXJlIGZvcmNlIHBhcmFtZXRlcgotCi0JLyogZnJlcXVl bmN5IHNoaWZ0IGRvd24gKi8KLQlsZHIJcjIsIG9tYXAyNDN4X3NkaV9jbV9jbGtzZWwyX3BsbAlA IGdldCBhZGRyZXNzIG9mIGRwbGxvdXQgcmVnCi0JbW92CXIzLCAjMHgxCQlAIHZhbHVlIGZvciAx eCBvcGVyYXRpb24KLQlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDEtZnJlcSBvcGVyYXRpb24KLQot CS8qIHZvbHRhZ2Ugc2hpZnQgZG93biAqLwotCW1vdiByOSwgIzB4MQkJCUAgc2V0IHVwIGZvciBM MSB2b2x0YWdlIGNhbGwKLQlibCB2b2x0YWdlX3NoaWZ0CQlAIGdvIGRyb3Agdm9sdGFnZQotCi0J LyogZGxsIGxvY2sgbW9kZSAqLwotCWxkcglyMTEsIG9tYXAyNDN4X3NkaV9zZHJjX2RsbGFfY3Ry bAlAIGFkZHIgb2YgZGxsYSBjdHJsCi0JbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQgdmFs Ci0JY21wCXIxMiwgIzB4MQkJQCBjczEgYmFzZSAoMjQyMiBlczIuMDUvMSkKLQlhZGRlcQlyMTEs IHIxMSwgIzB4OAkJQCBpZiBjczEgYmFzZSwgbW92ZSB0byBETExCCi0JbXZuCXI5LCAjMHg0CQlA IG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKLQlhbmQJcjEwLCByMTAsIHI5CQlAIGNsZWFyIGJpdDIg Zm9yIGxvY2sgbW9kZS4KLQlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAo ZXMyIGJpdCBwb3MpCi0Jb3JyCXIxMCwgcjEwLCAjMHgyCQlAIDkwIGRlZ3JlZSBwaGFzZSBmb3Ig YWxsIGJlbG93IDEzM01IegotCXN0cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwK LQlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIGRsbCB0byBsb2NrCi0KLQkvKiBnZXQgZGxsIHZh bHVlICovCi0JYWRkCXIxMSwgcjExLCAjMHg0CQlAIGdldCBhZGRyIG9mIHN0YXR1cyByZWcKLQls ZHIJcjEwLCBbcjExXQkJQCBnZXQgbG9ja2VkIHZhbHVlCi0KLQkvKiB2b2x0YWdlIHNoaWZ0IHVw ICovCi0JbW92IHI5LCAjMHgwCQkJQCBzaGlmdCBiYWNrIHRvIEwwLXZvbHRhZ2UKLQlibCB2b2x0 YWdlX3NoaWZ0CQlAIGdvIHJhaXNlIHZvbHRhZ2UKLQotCS8qIGZyZXF1ZW5jeSBzaGlmdCB1cCAq LwotCW1vdglyMywgIzB4MgkJQCB2YWx1ZSBmb3IgMnggb3BlcmF0aW9uCi0Jc3RyCXIzLCBbcjJd CQlAIGdvIHRvIEwwLWZyZXEgb3BlcmF0aW9uCi0KLQkvKiByZXNldCBlbnRyeSBtb2RlIGZvciBk bGxjdHJsICovCi0Jc3ViCXIxMSwgcjExLCAjMHg0CQlAIG1vdmUgZnJvbSBzdGF0dXMgdG8gY3Ry bAotCWNtcAlyMTIsICMweDEJCUAgbm9ybWFsaXplIGlmIGNzMSBiYXNlZAotCXN1YmVxCXIxMSwg cjExLCAjMHg4CQlAIHBvc3NpYmx5IGJhY2sgdG8gRExMQQotCWNtcAlyOCwgIzB4MQkJQCBpZiBm b3JjZWQgdW5sb2NrIGV4aXQKLQlvcnJlcQlyMSwgcjEsICMweDQJCUAgbWFrZSBzdXJlIGV4aXQg d2l0aCB1bmxvY2tlZCB2YWx1ZQotCXN0cglyMSwgW3IxMV0JCUAgcmVzdG9yZSBETExBX0NUUkwg aGlnaCB2YWx1ZQotCWFkZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIERMTEJfQ1RSTCBhZGRy Ci0Jc3RyCXIxLCBbcjExXQkJQCBzZXQgdmFsdWUgRExMQl9DVFJMCi0JYmwJaV9kbGxfd2FpdAkJ QCB3YWl0IGZvciBwb3NzaWJsZSBsb2NrCi0KLQkvKiBzZXQgdXAgZm9yIHJldHVybiwgRERSIHNo b3VsZCBiZSBnb29kICovCi0Jc3RyIHIxMCwgW3IwXQkJCUAgd3JpdGUgZGxsX3N0YXR1cyBhbmQg cmV0dXJuIGNvdW50ZXIKLQlsZG1mZAlzcCEsIHtyMCAtIHIxMiwgcGN9CUAgcmVzdG9yZSByZWdz IGFuZCByZXR1cm4KLQotCS8qIGVuc3VyZSB0aGUgRExMIGhhcyByZWxvY2tlZCAqLwotaV9kbGxf d2FpdDoKLQltb3YJcjQsICMweDgwMAkJQCBkZWxheSBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMg Y2xvY2tzCi1pX2RsbF9kZWxheToKLQlzdWJzCXI0LCByNCwgIzB4MQotCWJuZQlpX2RsbF9kZWxh eQotCXJldAlscgotCi0JLyoKLQkgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRhZ2UsIHVzZSBSOSBh cyBpbnB1dCB0byB0ZWxsIGxldmVsLgotCSAqIHdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdXNlIDMy ayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCi0JICovCi12b2x0YWdlX3NoaWZ0OgotCWxkcgly NCwgb21hcDI0M3hfc2RpX3ByY21fdm9sdGN0cmwJQCBnZXQgYWRkciBvZiB2b2x0IGN0cmwuCi0J bGRyCXI1LCBbcjRdCQlAIGdldCB2YWx1ZS4KLQlsZHIJcjYsIHByY21fbWFza192YWwJQCBnZXQg dmFsdWUgb2YgbWFzawotCWFuZAlyNSwgcjUsIHI2CQlAIGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0 cwotCW9ycglyNSwgcjUsIHI5CQlAIGJ1bGxkIHZhbHVlIGZvciBMMC9MMS12b2x0IG9wZXJhdGlv bi4KLQlzdHIJcjUsIFtyNF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCi0JbW92CXIzLCAjMHg0MDAw CQlAIGdldCB2YWwgZm9yIGZvcmNlCi0Jb3JyCXI1LCByNSwgcjMJCUAgYnVpbGQgdmFsdWUgZm9y IGZvcmNlCi0Jc3RyCXI1LCBbcjRdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKLQotCWxkcgly Mywgb21hcDI0M3hfc2RpX3RpbWVyXzMya3N5bmN0X2NyCUAgZ2V0IGFkZHIgb2YgY291bnRlcgot CWxkcglyNSwgW3IzXQkJQCBnZXQgdmFsdWUKLQlhZGQJcjUsIHI1LCAjMHgzCQlAIGdpdmUgaXQg YXQgbW9zdCA5M3VTCi12b2x0X2RlbGF5OgotCWxkcglyNywgW3IzXQkJQCBnZXQgdGltZXIgdmFs dWUKLQljbXAJcjUsIHI3CQkJQCB0aW1lIHVwPwotCWJoaQl2b2x0X2RlbGF5CQlAIG5vdCB5ZXQt PmJyYW5jaAotCXJldAlscgkJCUAgYmFjayB0byBjYWxsZXIuCi0KLW9tYXAyNDN4X3NkaV9jbV9j bGtzZWwyX3BsbDoKLQkud29yZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NF TDIpCi1vbWFwMjQzeF9zZGlfc2RyY19kbGxhX2N0cmw6Ci0JLndvcmQgT01BUDI0M1hfU0RSQ19S RUdBRERSKFNEUkNfRExMQV9DVFJMKQotb21hcDI0M3hfc2RpX3ByY21fdm9sdGN0cmw6Ci0JLndv cmQgT01BUDI0MzBfUFJDTV9WT0xUQ1RSTAotcHJjbV9tYXNrX3ZhbDoKLQkud29yZCAweEZGRkYz RkZDCi1vbWFwMjQzeF9zZGlfdGltZXJfMzJrc3luY3RfY3I6Ci0JLndvcmQgT01BUDJfTDRfSU9f QUREUkVTUyhPTUFQMjQzMF8zMktTWU5DVF9CQVNFICsgMHgwMTApCi1FTlRSWShvbWFwMjQzeF9z cmFtX2Rkcl9pbml0X3N6KQotCS53b3JkCS4gLSBvbWFwMjQzeF9zcmFtX2Rkcl9pbml0Ci0KLS8q Ci0gKiBSZXByb2dyYW1zIG1lbW9yeSB0aW1pbmdzLgotICogcjAgPSBbUFJDTV9GVUxMIHwgUFJD TV9IQUxGXSByMSA9IFNEUkNfRExMQV9DVFJMIHZhbHVlIHIyID0gW0REUiB8IFNEUl0KLSAqIFBS Q01fRlVMTCA9IDIsIFBSQ01fSEFMRiA9IDEsIEREUiA9IDEsIFNEUiA9IDAKLSAqLwotCS5hbGln bgkzCi1FTlRSWShvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjKQotCXN0bWZkCXNwISwge3Iw IC0gcjEwLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCW1vdglyMywgIzB4MAkJQCBj bGVhciBmb3IgbXJjIGNhbGwKLQltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlAIG1lbW9yeSBi YXJyaWVyLCBmaW5pc2ggQVJNIFNEUi9ERFIKLQlub3AKLQlub3AKLQlsZHIJcjYsIG9tYXAyNDN4 X3Nyc19zZHJjX3Jmcl9jdHJsCUAgZ2V0IGFkZHIgb2YgcmVmcmVzaCByZWcKLQlsZHIJcjUsIFty Nl0JCUAgZ2V0IHZhbHVlCi0JbW92CXI1LCByNSwgbHNyICM4CQlAIGlzb2xhdGUgcmZyIGZpZWxk IGFuZCBkcm9wIGJ1cnN0Ci0KLQljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZD8K LQltb3ZuZQlyOSwgIzB4MAkJQCBpZiB1cCBzZXQgZmxhZyB1cCBmb3IgcHJlIHVwLCBoaSB2b2x0 Ci0KLQlibG5lCXZvbHRhZ2Vfc2hpZnRfYwkJQCBhZGp1c3Qgdm9sdGFnZQotCi0JY21wCXIwLCAj MHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQgKHBvc3QgYnJhbmNoIGxpbmspCi0JbW92ZXEJcjUs IHI1LCBsc3IgIzEJCUAgZGl2aWRlIGJ5IDIgaWYgdG8gaGFsZgotCW1vdm5lCXI1LCByNSwgbHNs ICMxCQlAIG11bHQgYnkgMiBpZiB0byBmdWxsCi0JbW92CXI1LCByNSwgbHNsICM4CQlAIHB1dCBy ZnIgZmllbGQgYmFjayBpbnRvIHBsYWNlCi0JYWRkCXI1LCByNSwgIzB4MQkJQCB0dXJuIG9uIGJ1 cnN0IG9mIDEKLQlsZHIJcjQsIG9tYXAyNDN4X3Nyc19jbV9jbGtzZWwyX3BsbAlAIGdldCBhZGRy ZXNzIG9mIG91dCByZWcKLQlsZHIJcjMsIFtyNF0JCUAgZ2V0IGN1cnIgdmFsdWUKLQlvcnIJcjMs IHIzLCAjMHgzCi0JYmljCXIzLCByMywgIzB4MwkJQCBjbGVhciBsb3dlciBiaXRzCi0Jb3JyCXIz LCByMywgcjAJCUAgbmV3IHN0YXRlIHZhbHVlCi0Jc3RyCXIzLCBbcjRdCQlAIHNldCBuZXcgc3Rh dGUgKHBsbC94LCB4PTEgb3IgMikKLQlub3AKLQlub3AKLQotCW1vdmVxCXI5LCAjMHgxCQlAIGlm IHNwZWVkIGRvd24sIHBvc3QgZG93biwgZHJvcCB2b2x0Ci0JYmxlcQl2b2x0YWdlX3NoaWZ0X2MK LQotCW1jcglwMTUsIDAsIHIzLCBjNywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIKLQlzdHIJcjUs IFtyNl0JCUAgc2V0IG5ldyBSRlJfMSB2YWx1ZQotCWFkZAlyNiwgcjYsICMweDMwCQlAIGdldCBS RlJfMiBhZGRyCi0Jc3RyCXI1LCBbcjZdCQlAIHNldCBSRlJfMgotCW5vcAotCWNtcAlyMiwgIzB4 MQkJQCAoU0RSIG9yIEREUikgZG8gd2UgbmVlZCB0byBhZGp1c3QgRExMCi0JYm5lCWZyZXFfb3V0 CQlAIGxlYXZlIGlmIFNEUiwgbm8gRExMIGZ1bmN0aW9uCi0KLQkvKiBXaXRoIEREUiwgd2UgbmVl ZCB0byB0YWtlIGNhcmUgb2YgdGhlIERMTCBmb3IgdGhlIGZyZXF1ZW5jeSBjaGFuZ2UgKi8KLQls ZHIJcjIsIG9tYXAyNDN4X3Nyc19zZHJjX2RsbGFfY3RybAlAIGFkZHIgb2YgZGxsYSBjdHJsCi0J c3RyCXIxLCBbcjJdCQlAIHdyaXRlIG91dCBuZXcgU0RSQ19ETExBX0NUUkwKLQlhZGQJcjIsIHIy LCAjMHg4CQlAIGFkZHIgdG8gU0RSQ19ETExCX0NUUkwKLQlzdHIJcjEsIFtyMl0JCUAgY29tbWl0 IHRvIFNEUkNfRExMQl9DVFJMCi0JbW92CXIxLCAjMHgyMDAwCQlAIHdhaXQgRExMIHJlbG9jaywg bWluIDB4NDAwIEwzIGNsb2NrcwotZGxsX3dhaXQ6Ci0Jc3VicwlyMSwgcjEsICMweDEKLQlibmUJ ZGxsX3dhaXQKLWZyZXFfb3V0OgotCWxkbWZkCXNwISwge3IwIC0gcjEwLCBwY30JQCByZXN0b3Jl IHJlZ3MgYW5kIHJldHVybgotCi0gICAgLyoKLSAgICAgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRh Z2UsIHVzZSBSOSBhcyBpbnB1dCB0byB0ZWxsIGxldmVsLgotICAgICAqCXdhaXQgZm9yIGl0IHRv IGZpbmlzaCwgdXNlIDMyayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCi0gICAgICovCi12b2x0 YWdlX3NoaWZ0X2M6Ci0JbGRyCXIxMCwgb21hcDI0M3hfc3JzX3ByY21fdm9sdGN0cmwJQCBnZXQg YWRkciBvZiB2b2x0IGN0cmwKLQlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQotCWxkcglyNywg ZGRyX3ByY21fbWFza192YWwJQCBnZXQgdmFsdWUgb2YgbWFzawotCWFuZAlyOCwgcjgsIHI3CQlA IGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0cwotCW9ycglyOCwgcjgsIHI5CQlAIGJ1bGxkIHZhbHVl IGZvciBMMC9MMS12b2x0IG9wZXJhdGlvbi4KLQlzdHIJcjgsIFtyMTBdCQlAIHNldCB1cCBmb3Ig Y2hhbmdlLgotCW1vdglyNywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3JjZQotCW9ycglyOCwg cjgsIHI3CQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQotCXN0cglyOCwgW3IxMF0JCUAgRm9yY2Ug dHJhbnNpdGlvbiB0byBMMQotCi0JbGRyCXIxMCwgb21hcDI0M3hfc3JzX3RpbWVyXzMya3N5bmN0 CUAgZ2V0IGFkZHIgb2YgY291bnRlcgotCWxkcglyOCwgW3IxMF0JCUAgZ2V0IHZhbHVlCi0JYWRk CXI4LCByOCwgIzB4MgkJQCBnaXZlIGl0IGF0IG1vc3QgNjJ1UyAobWluIDMxKykKLXZvbHRfZGVs YXlfYzoKLQlsZHIJcjcsIFtyMTBdCQlAIGdldCB0aW1lciB2YWx1ZQotCWNtcAlyOCwgcjcJCQlA IHRpbWUgdXA/Ci0JYmhpCXZvbHRfZGVsYXlfYwkJQCBub3QgeWV0LT5icmFuY2gKLQlyZXQJbHIJ CQlAIGJhY2sgdG8gY2FsbGVyCi0KLW9tYXAyNDN4X3Nyc19jbV9jbGtzZWwyX3BsbDoKLQkud29y ZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpCi1vbWFwMjQzeF9zcnNf c2RyY19kbGxhX2N0cmw6Ci0JLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9D VFJMKQotb21hcDI0M3hfc3JzX3NkcmNfcmZyX2N0cmw6Ci0JLndvcmQgT01BUDI0M1hfU0RSQ19S RUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKLW9tYXAyNDN4X3Nyc19wcmNtX3ZvbHRjdHJsOgotCS53 b3JkIE9NQVAyNDMwX1BSQ01fVk9MVENUUkwKLWRkcl9wcmNtX21hc2tfdmFsOgotCS53b3JkIDB4 RkZGRjNGRkMKLW9tYXAyNDN4X3Nyc190aW1lcl8zMmtzeW5jdDoKLQkud29yZCBPTUFQMl9MNF9J T19BRERSRVNTKE9NQVAyNDMwXzMyS1NZTkNUX0JBU0UgKyAweDAxMCkKLQotRU5UUlkob21hcDI0 M3hfc3JhbV9yZXByb2dyYW1fc2RyY19zeikKLQkud29yZAkuIC0gb21hcDI0M3hfc3JhbV9yZXBy b2dyYW1fc2RyYwotCi0vKgotICogU2V0IGRpdmlkZXJzIGFuZCBwbGwuIEFsc28gcmVjYWxjdWxh dGUgRExMIHZhbHVlIGZvciBERFIgYW5kIHVubG9jayBtb2RlLgotICovCi0JLmFsaWduCTMKLUVO VFJZKG9tYXAyNDN4X3NyYW1fc2V0X3ByY20pCi0Jc3RtZmQJc3AhLCB7cjAtcjEyLCBscn0JQCBy ZWdzIHRvIHN0YWNrCi0JYWRyCXI0LCBwYmVnaW4JCUAgYWRkciBvZiBwcmVsb2FkIHN0YXJ0Ci0J YWRyCXI4LCBwZW5kCQlAIGFkZHIgb2YgcHJlbG9hZCBlbmQKLQltY3JyCXAxNSwgMSwgcjgsIHI0 LCBjMTIJQCBwcmVsb2FkIGludG8gaWNhY2hlCi1wYmVnaW46Ci0JLyogbW92ZSBpbnRvIGZhc3Qg cmVsb2NrIGJ5cGFzcyAqLwotCWxkcglyOCwgb21hcDI0M3hfc3NwX3BsbF9jdGwJQCBnZXQgYWRk cgotCWxkcglyNSwgW3I4XQkJQCBnZXQgdmFsCi0JbXZuCXI2LCAjMHgzCQlAIGNsZWFyIG1hc2sK LQlhbmQJcjUsIHI1LCByNgkJQCBjbGVhciBmaWVsZAotCW9ycglyNywgcjUsICMweDIJCUAgZmFz dCByZWxvY2sgdmFsCi0Jc3RyCXI3LCBbcjhdCQlAIGdvIHRvIGZhc3QgcmVsb2NrCi0JbGRyCXI0 LCBvbWFwMjQzeF9zc3BfcGxsX3N0YXQJQCBhZGRyIG9mIHN0YXQKLWJsb2NrOgotCS8qIHdhaXQg Zm9yIGJ5cGFzcyAqLwotCWxkcglyOCwgW3I0XQkJQCBzdGF0IHZhbHVlCi0JYW5kCXI4LCByOCwg IzB4MwkJQCBtYXNrIGZvciBzdGF0Ci0JY21wCXI4LCAjMHgxCQlAIHRoZXJlIHlldAotCWJuZQli bG9jawkJCUAgbG9vcCBpZiBub3QKLQotCS8qIHNldCBuZXcgZHBsbCBkaXZpZGVycyBfYWZ0ZXJf IGluIGJ5cGFzcyAqLwotCWxkcglyNCwgb21hcDI0M3hfc3NwX3BsbF9kaXYJQCBnZXQgYWRkcgot CXN0cglyMCwgW3I0XQkJQCBzZXQgZHBsbCBjdHJsIHZhbAotCi0JbGRyCXI0LCBvbWFwMjQzeF9z c3Bfc2V0X2NvbmZpZwlAIGdldCBhZGRyCi0JbW92CXI4LCAjMQkJCUAgdmFsaWQgY2ZnIG1zawot CXN0cglyOCwgW3I0XQkJQCBtYWtlIGRpdmlkZXJzIHRha2UKLQotCW1vdglyNCwgIzEwMAkJQCBk ZWFkIHNwaW4gYSBiaXQKLXdhaXRfYV9iaXQ6Ci0Jc3VicwlyNCwgcjQsICMxCQlAIGRlYyBsb29w Ci0JYm5lCXdhaXRfYV9iaXQJCUAgZGVsYXkgZG9uZT8KLQotCS8qIGNoZWNrIGlmIHN0YXlpbmcg aW4gYnlwYXNzICovCi0JY21wCXIyLCAjMHgxCQlAIHN0YXkgaW4gYnlwYXNzPwotCWJlcQlwZW5k CQkJQCBqdW1wIG92ZXIgZHBsbCByZWxvY2sKLQotCS8qIHJlbG9jayBEUExMIHdpdGggbmV3IHZh bHMgKi8KLQlsZHIJcjUsIG9tYXAyNDN4X3NzcF9wbGxfc3RhdAlAIGdldCBhZGRyCi0JbGRyCXI0 LCBvbWFwMjQzeF9zc3BfcGxsX2N0bAlAIGdldCBhZGRyCi0Jb3JyCXI4LCByNywgIzB4MwkJQCB2 YWwgZm9yIGxvY2sgZHBsbAotCXN0cglyOCwgW3I0XQkJQCBzZXQgdmFsCi0JbW92CXIwLCAjMTAw MAkJQCBkZWFkIHNwaW4gYSBiaXQKLXdhaXRfbW9yZToKLQlzdWJzCXIwLCByMCwgIzEJCUAgZGVj IGxvb3AKLQlibmUJd2FpdF9tb3JlCQlAIGRlbGF5IGRvbmU/Ci13YWl0X2xvY2s6Ci0JbGRyCXI4 LCBbcjVdCQlAIGdldCBsb2NrIHZhbAotCWFuZAlyOCwgcjgsICMzCQlAIGlzb2xhdGUgZmllbGQK LQljbXAJcjgsICMyCQkJQCBsb2NrZWQ/Ci0JYm5lCXdhaXRfbG9jawkJQCB3YWl0IGlmIG5vdAot cGVuZDoKLQkvKiB1cGRhdGUgbWVtb3J5IHRpbWluZ3MgJiBicmllZmx5IGxvY2sgZGxsICovCi0J bGRyCXI0LCBvbWFwMjQzeF9zc3Bfc2RyY19yZnIJQCBnZXQgYWRkcgotCXN0cglyMSwgW3I0XQkJ QCB1cGRhdGUgcmVmcmVzaCB0aW1pbmcKLQlsZHIJcjExLCBvbWFwMjQzeF9zc3BfZGxsYV9jdHJs CUAgZ2V0IGFkZHIgb2YgRExMQSBjdHJsCi0JbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQg dmFsCi0JbXZuCXI5LCAjMHg0CQlAIG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKLQlhbmQJcjEwLCBy MTAsIHI5CQlAIGNsZWFyIGJpdDIgZm9yIGxvY2sgbW9kZQotCW9ycglyMTAsIHIxMCwgIzB4OAkJ QCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKLQlzdHIJcjEwLCBbcjExXQkJQCBjb21t aXQgdG8gRExMQV9DVFJMCi0JYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUgdG8gZGxsYgotCXN0 cglyMTAsIFtyMTFdCQlAIGhpdCBETExCIGFsc28KLQotCW1vdglyNCwgIzB4ODAwCQlAIHJlbG9j ayB0aW1lIChtaW4gMHg0MDAgTDMgY2xvY2tzKQotd2FpdF9kbGxfbG9jazoKLQlzdWJzCXI0LCBy NCwgIzB4MQotCWJuZQl3YWl0X2RsbF9sb2NrCi0Jbm9wCi0JbGRtZmQJc3AhLCB7cjAtcjEyLCBw Y30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgotCi1vbWFwMjQzeF9zc3Bfc2V0X2NvbmZpZzoK LQkud29yZCBPTUFQMjQzMF9QUkNNX0NMS0NGR19DVFJMCi1vbWFwMjQzeF9zc3BfcGxsX2N0bDoK LQkud29yZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS0VOKQotb21hcDI0M3hf c3NwX3BsbF9zdGF0OgotCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURM RVNUKQotb21hcDI0M3hfc3NwX3BsbF9kaXY6Ci0JLndvcmQgT01BUDI0MzBfQ01fUkVHQUREUihQ TExfTU9ELCBDTV9DTEtTRUwxKQotb21hcDI0M3hfc3NwX3NkcmNfcmZyOgotCS53b3JkIE9NQVAy NDNYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJMXzApCi1vbWFwMjQzeF9zc3BfZGxsYV9jdHJs OgotCS53b3JkIE9NQVAyNDNYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKLQotRU5UUlko b21hcDI0M3hfc3JhbV9zZXRfcHJjbV9zeikKLQkud29yZAkuIC0gb21hcDI0M3hfc3JhbV9zZXRf cHJjbQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi91c2ItdHVzYjYwMTAuYyBiL2Fy Y2gvYXJtL21hY2gtb21hcDIvdXNiLXR1c2I2MDEwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGI0NmMyNTRjMmJjNC4uMDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21h cDIvdXNiLXR1c2I2MDEwLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMTcgKzAsMCBAQAotLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIGxpbnV4L2FyY2gvYXJt L21hY2gtb21hcDIvdXNiLXR1c2I2MDEwLmMKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgTm9r aWEgQ29ycG9yYXRpb24KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8 bGludXgvc3RyaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51 eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+Ci0jaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGF0YS91c2Itb21hcC5oPgotCi0jaW5jbHVkZSA8bGludXgvdXNiL211c2Iu aD4KLQotI2luY2x1ZGUgInVzYi10dXNiNjAxMC5oIgotI2luY2x1ZGUgImdwbWMuaCIKLQotc3Rh dGljIHU4CQlhc3luY19jcywgc3luY19jczsKLXN0YXRpYyB1bnNpZ25lZAkJcmVmY2xrX3BzZWM7 Ci0KLXN0YXRpYyBzdHJ1Y3QgZ3BtY19zZXR0aW5ncyB0dXNiX2FzeW5jID0gewotCS53YWl0X29u X3JlYWQJPSB0cnVlLAotCS53YWl0X29uX3dyaXRlCT0gdHJ1ZSwKLQkuZGV2aWNlX3dpZHRoCT0g R1BNQ19ERVZXSURUSF8xNkJJVCwKLQkubXV4X2FkZF9kYXRhCT0gR1BNQ19NVVhfQUQsCi19Owot Ci1zdGF0aWMgc3RydWN0IGdwbWNfc2V0dGluZ3MgdHVzYl9zeW5jID0gewotCS5idXJzdF9yZWFk CT0gdHJ1ZSwKLQkuYnVyc3Rfd3JpdGUJPSB0cnVlLAotCS5zeW5jX3JlYWQJPSB0cnVlLAotCS5z eW5jX3dyaXRlCT0gdHJ1ZSwKLQkud2FpdF9vbl9yZWFkCT0gdHJ1ZSwKLQkud2FpdF9vbl93cml0 ZQk9IHRydWUsCi0JLmJ1cnN0X2xlbgk9IEdQTUNfQlVSU1RfMTYsCi0JLmRldmljZV93aWR0aAk9 IEdQTUNfREVWV0lEVEhfMTZCSVQsCi0JLm11eF9hZGRfZGF0YQk9IEdQTUNfTVVYX0FELAotfTsK LQotLyogTk9URTogIHRpbWluZ3MgYXJlIGZyb20gdHVzYiA2MDEwIGRhdGFzaGVldCBSZXYgMS44 LCAxMi1TZXB0IDIwMDYgKi8KLQotc3RhdGljIGludCB0dXNiX3NldF9hc3luY19tb2RlKHVuc2ln bmVkIHN5c2Nsa19wcykKLXsKLQlzdHJ1Y3QgZ3BtY19kZXZpY2VfdGltaW5ncyBkZXZfdDsKLQlz dHJ1Y3QgZ3BtY190aW1pbmdzCXQ7Ci0JdW5zaWduZWQJCXRfYWNzbmhfYWR2bmggPSBzeXNjbGtf cHMgKyAzMDAwOwotCi0JbWVtc2V0KCZkZXZfdCwgMCwgc2l6ZW9mKGRldl90KSk7Ci0KLQlkZXZf dC50X2NlYXN1ID0gOCAqIDEwMDA7Ci0JZGV2X3QudF9hdmRhc3UgPSB0X2Fjc25oX2Fkdm5oIC0g NzAwMDsKLQlkZXZfdC50X2NlX2F2ZCA9IDEwMDA7Ci0JZGV2X3QudF9hdmRwX3IgPSB0X2Fjc25o X2Fkdm5oOwotCWRldl90LnRfb2Vhc3UgPSB0X2Fjc25oX2Fkdm5oICsgMTAwMDsKLQlkZXZfdC50 X29lID0gMzAwOwotCWRldl90LnRfY2V6X3IgPSA3MDAwOwotCWRldl90LnRfY2V6X3cgPSBkZXZf dC50X2Nlel9yOwotCWRldl90LnRfYXZkcF93ID0gdF9hY3NuaF9hZHZuaDsKLQlkZXZfdC50X3dl YXN1ID0gdF9hY3NuaF9hZHZuaCArIDEwMDA7Ci0JZGV2X3QudF93cGwgPSAzMDA7Ci0JZGV2X3Qu Y3ljX2FhdmRoX3dlID0gMTsKLQotCWdwbWNfY2FsY190aW1pbmdzKCZ0LCAmdHVzYl9hc3luYywg JmRldl90KTsKLQotCXJldHVybiBncG1jX2NzX3NldF90aW1pbmdzKGFzeW5jX2NzLCAmdCwgJnR1 c2JfYXN5bmMpOwotfQotCi1zdGF0aWMgaW50IHR1c2Jfc2V0X3N5bmNfbW9kZSh1bnNpZ25lZCBz eXNjbGtfcHMpCi17Ci0Jc3RydWN0IGdwbWNfZGV2aWNlX3RpbWluZ3MgZGV2X3Q7Ci0Jc3RydWN0 IGdwbWNfdGltaW5ncwl0OwotCXVuc2lnbmVkCQl0X3Njc25oX2Fkdm5oID0gc3lzY2xrX3BzICsg MzAwMDsKLQotCW1lbXNldCgmZGV2X3QsIDAsIHNpemVvZihkZXZfdCkpOwotCi0JZGV2X3QuY2xr ID0gMTExMDA7Ci0JZGV2X3QudF9iYWNjID0gMTAwMDsKLQlkZXZfdC50X2NlcyA9IDEwMDA7Ci0J ZGV2X3QudF9jZWFzdSA9IDggKiAxMDAwOwotCWRldl90LnRfYXZkYXN1ID0gdF9zY3NuaF9hZHZu aCAtIDcwMDA7Ci0JZGV2X3QudF9jZV9hdmQgPSAxMDAwOwotCWRldl90LnRfYXZkcF9yID0gdF9z Y3NuaF9hZHZuaDsKLQlkZXZfdC5jeWNfYWF2ZGhfb2UgPSAzOwotCWRldl90LmN5Y19vZSA9IDU7 Ci0JZGV2X3QudF9jZV9yZHl6ID0gNzAwMDsKLQlkZXZfdC50X2F2ZHBfdyA9IHRfc2NzbmhfYWR2 bmg7Ci0JZGV2X3QuY3ljX2FhdmRoX3dlID0gMzsKLQlkZXZfdC5jeWNfd3BsID0gNjsKLQotCWdw bWNfY2FsY190aW1pbmdzKCZ0LCAmdHVzYl9zeW5jLCAmZGV2X3QpOwotCi0JcmV0dXJuIGdwbWNf Y3Nfc2V0X3RpbWluZ3Moc3luY19jcywgJnQsICZ0dXNiX3N5bmMpOwotfQotCi0vKiB0dXNiIGRy aXZlciBjYWxscyB0aGlzIHdoZW4gaXQgY2hhbmdlcyB0aGUgY2hpcCdzIGNsb2NraW5nICovCi1z dGF0aWMgaW50IHR1c2I2MDEwX3BsYXRmb3JtX3JldGltZSh1bnNpZ25lZCBpc19yZWZjbGspCi17 Ci0Jc3RhdGljIGNvbnN0IGNoYXIJZXJyb3JbXSA9Ci0JCUtFUk5fRVJSICJ0dXNiNjAxMCAlcyBy ZXRpbWUgZXJyb3IgJWRcbiI7Ci0KLQl1bnNpZ25lZAlzeXNjbGtfcHM7Ci0JaW50CQlzdGF0dXM7 Ci0KLQlpZiAoIXJlZmNsa19wc2VjKQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCXN5c2Nsa19wcyA9 IGlzX3JlZmNsayA/IHJlZmNsa19wc2VjIDogVFVTQjYwMTBfT1NDQ0xLXzYwOwotCi0Jc3RhdHVz ID0gdHVzYl9zZXRfYXN5bmNfbW9kZShzeXNjbGtfcHMpOwotCWlmIChzdGF0dXMgPCAwKSB7Ci0J CXByaW50ayhlcnJvciwgImFzeW5jIiwgc3RhdHVzKTsKLQkJZ290byBkb25lOwotCX0KLQlzdGF0 dXMgPSB0dXNiX3NldF9zeW5jX21vZGUoc3lzY2xrX3BzKTsKLQlpZiAoc3RhdHVzIDwgMCkKLQkJ cHJpbnRrKGVycm9yLCAic3luYyIsIHN0YXR1cyk7Ci1kb25lOgotCXJldHVybiBzdGF0dXM7Ci19 Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdHVzYl9yZXNvdXJjZXNbXSA9IHsKLQkvKiBPcmRl ciBpcyBzaWduaWZpY2FudCEgIFRoZSBzdGFydC9lbmQgZmllbGRzCi0JICogYXJlIHVwZGF0ZWQg ZHVyaW5nIHNldHVwLi4KLQkgKi8KLQl7IC8qIEFzeW5jaHJvbm91cyBhY2Nlc3MgKi8KLQkJLmZs YWdzCT0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQl7IC8qIFN5bmNocm9ub3VzIGFjY2VzcyAqLwot CQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotfTsKLQotc3RhdGljIHU2NCB0dXNiX2Rt YW1hc2sgPSB+KHUzMikwOwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB0dXNiX2Rl dmljZSA9IHsKLQkubmFtZQkJPSAibXVzYi10dXNiIiwKLQkuaWQJCT0gLTEsCi0JLmRldiA9IHsK LQkJLmRtYV9tYXNrCQk9ICZ0dXNiX2RtYW1hc2ssCi0JCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4 ZmZmZmZmZmYsCi0JfSwKLQkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUodHVzYl9yZXNvdXJj ZXMpLAotCS5yZXNvdXJjZQk9IHR1c2JfcmVzb3VyY2VzLAotfTsKLQotCi0vKiB0aGlzIG1heSBi ZSBjYWxsZWQgb25seSBmcm9tIGJvYXJkLSouYyBzZXR1cCBjb2RlICovCi1pbnQgX19pbml0IHR1 c2I2MDEwX3NldHVwX2ludGVyZmFjZShzdHJ1Y3QgbXVzYl9oZHJjX3BsYXRmb3JtX2RhdGEgKmRh dGEsCi0JCXVuc2lnbmVkIGludCBwc19yZWZjbGssIHVuc2lnbmVkIGludCB3YWl0cGluLAotCQl1 bnNpZ25lZCBpbnQgYXN5bmMsIHVuc2lnbmVkIGludCBzeW5jLAotCQl1bnNpZ25lZCBpbnQgZG1h Y2hhbikKLXsKLQlpbnQJCXN0YXR1czsKLQlzdGF0aWMgY2hhcgllcnJvcltdIF9faW5pdGRhdGEg PQotCQlLRVJOX0VSUiAidHVzYjYwMTAgaW5pdCBlcnJvciAlZCwgJWRcbiI7Ci0KLQkvKiBBU1lO QyByZWdpb24sIHByaW1hcmlseSBmb3IgUElPICovCi0Jc3RhdHVzID0gZ3BtY19jc19yZXF1ZXN0 KGFzeW5jLCBTWl8xNk0sICh1bnNpZ25lZCBsb25nICopCi0JCQkJJnR1c2JfcmVzb3VyY2VzWzBd LnN0YXJ0KTsKLQlpZiAoc3RhdHVzIDwgMCkgewotCQlwcmludGsoZXJyb3IsIDEsIHN0YXR1cyk7 Ci0JCXJldHVybiBzdGF0dXM7Ci0JfQotCXR1c2JfcmVzb3VyY2VzWzBdLmVuZCA9IHR1c2JfcmVz b3VyY2VzWzBdLnN0YXJ0ICsgMHg5ZmY7Ci0JdHVzYl9hc3luYy53YWl0X3BpbiA9IHdhaXRwaW47 Ci0JYXN5bmNfY3MgPSBhc3luYzsKLQotCXN0YXR1cyA9IGdwbWNfY3NfcHJvZ3JhbV9zZXR0aW5n cyhhc3luY19jcywgJnR1c2JfYXN5bmMpOwotCWlmIChzdGF0dXMgPCAwKQotCQlyZXR1cm4gc3Rh dHVzOwotCi0JLyogU1lOQyByZWdpb24sIHByaW1hcmlseSBmb3IgRE1BICovCi0Jc3RhdHVzID0g Z3BtY19jc19yZXF1ZXN0KHN5bmMsIFNaXzE2TSwgKHVuc2lnbmVkIGxvbmcgKikKLQkJCQkmdHVz Yl9yZXNvdXJjZXNbMV0uc3RhcnQpOwotCWlmIChzdGF0dXMgPCAwKSB7Ci0JCXByaW50ayhlcnJv ciwgMiwgc3RhdHVzKTsKLQkJcmV0dXJuIHN0YXR1czsKLQl9Ci0JdHVzYl9yZXNvdXJjZXNbMV0u ZW5kID0gdHVzYl9yZXNvdXJjZXNbMV0uc3RhcnQgKyAweDlmZjsKLQl0dXNiX3N5bmMud2FpdF9w aW4gPSB3YWl0cGluOwotCXN5bmNfY3MgPSBzeW5jOwotCi0Jc3RhdHVzID0gZ3BtY19jc19wcm9n cmFtX3NldHRpbmdzKHN5bmNfY3MsICZ0dXNiX3N5bmMpOwotCWlmIChzdGF0dXMgPCAwKQotCQly ZXR1cm4gc3RhdHVzOwotCi0JLyogc2V0IHVwIG1lbW9yeSB0aW1pbmdzIC4uLiBjYW4gc3BlZWQg dGhlbSB1cCBsYXRlciAqLwotCWlmICghcHNfcmVmY2xrKSB7Ci0JCXByaW50ayhlcnJvciwgNCwg c3RhdHVzKTsKLQkJcmV0dXJuIC1FTk9ERVY7Ci0JfQotCXJlZmNsa19wc2VjID0gcHNfcmVmY2xr OwotCXN0YXR1cyA9IHR1c2I2MDEwX3BsYXRmb3JtX3JldGltZSgxKTsKLQlpZiAoc3RhdHVzIDwg MCkgewotCQlwcmludGsoZXJyb3IsIDUsIHN0YXR1cyk7Ci0JCXJldHVybiBzdGF0dXM7Ci0JfQot Ci0JLyogZmluaXNoIGRldmljZSBzZXR1cCAuLi4gKi8KLQlpZiAoIWRhdGEpIHsKLQkJcHJpbnRr KGVycm9yLCA2LCBzdGF0dXMpOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0JdHVzYl9kZXZpY2Uu ZGV2LnBsYXRmb3JtX2RhdGEgPSBkYXRhOwotCi0JLyogc28gZmFyIHNvIGdvb2QgLi4uIHJlZ2lz dGVyIHRoZSBkZXZpY2UgKi8KLQlzdGF0dXMgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnR1 c2JfZGV2aWNlKTsKLQlpZiAoc3RhdHVzIDwgMCkgewotCQlwcmludGsoZXJyb3IsIDcsIHN0YXR1 cyk7Ci0JCXJldHVybiBzdGF0dXM7Ci0JfQotCXJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vbWFjaC1vbWFwMi91c2ItdHVzYjYwMTAuaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvdXNi LXR1c2I2MDEwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMTBmZjYyMzhjMi4u MDAwMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvdXNiLXR1c2I2MDEwLmgKKysr IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMCAqLwotCi0jaWZuZGVmIF9fVVNCX1RVU0I2MDEwX0gKLSNkZWZpbmUgX19VU0JfVFVT QjYwMTBfSAotCi1leHRlcm4gaW50IF9faW5pdCB0dXNiNjAxMF9zZXR1cF9pbnRlcmZhY2UoCi0J CXN0cnVjdCBtdXNiX2hkcmNfcGxhdGZvcm1fZGF0YSAqZGF0YSwKLQkJdW5zaWduZWQgaW50IHBz X3JlZmNsaywgdW5zaWduZWQgaW50IHdhaXRwaW4sCi0JCXVuc2lnbmVkIGludCBhc3luY19jcywg dW5zaWduZWQgaW50IHN5bmNfY3MsCi0JCXVuc2lnbmVkIGludCBkbWFjaGFuKTsKLQotI2VuZGlm IC8qIF9fVVNCX1RVU0I2MDEwX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIv dm9sdGFnZWRvbWFpbnMyeHh4X2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvdm9sdGFnZWRv bWFpbnMyeHh4X2RhdGEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJjMTE2ZmUz YmE5Li4wMDAwMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi92b2x0YWdlZG9tYWlu czJ4eHhfZGF0YS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQotLyoKLSAqIE9NQVAzIHZvbHRhZ2UgZG9tYWlu IGRhdGEKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4K LSAqLwotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4K LQotI2luY2x1ZGUgInZvbHRhZ2UuaCIKLQotc3RhdGljIHN0cnVjdCB2b2x0YWdlZG9tYWluIG9t YXAyX3ZvbHRkbV9jb3JlID0gewotCS5uYW1lID0gImNvcmUiLAotfTsKLQotc3RhdGljIHN0cnVj dCB2b2x0YWdlZG9tYWluIG9tYXAyX3ZvbHRkbV93a3VwID0gewotCS5uYW1lID0gIndha2V1cCIs Ci19OwotCi1zdGF0aWMgc3RydWN0IHZvbHRhZ2Vkb21haW4gKnZvbHRhZ2Vkb21haW5zX29tYXAy W10gX19pbml0ZGF0YSA9IHsKLQkmb21hcDJfdm9sdGRtX2NvcmUsCi0JJm9tYXAyX3ZvbHRkbV93 a3VwLAotCU5VTEwsCi19OwotCi12b2lkIF9faW5pdCBvbWFwMnh4eF92b2x0YWdlZG9tYWluc19p bml0KHZvaWQpCi17Ci0Jdm9sdGRtX2luaXQodm9sdGFnZWRvbWFpbnNfb21hcDIpOwotfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vS2NvbmZpZyBiL2RyaXZlcnMvY3J5cHRvL0tjb25maWcK aW5kZXggMDE4OWRmZGNiYmUxLi5hMzgzZmY4ZjQ0NmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5 cHRvL0tjb25maWcKKysrIGIvZHJpdmVycy9jcnlwdG8vS2NvbmZpZwpAQCAtMzM3LDcgKzMzNyw3 IEBAIGNvbmZpZyBDUllQVE9fREVWX09NQVBfU0hBTQogCiBjb25maWcgQ1JZUFRPX0RFVl9PTUFQ X0FFUwogCXRyaXN0YXRlICJTdXBwb3J0IGZvciBPTUFQIEFFUyBodyBlbmdpbmUiCi0JZGVwZW5k cyBvbiBBUkNIX09NQVAyIHx8IEFSQ0hfT01BUDMgfHwgQVJDSF9PTUFQMlBMVVMKKwlkZXBlbmRz IG9uIEFSQ0hfT01BUDMgfHwgQVJDSF9PTUFQMlBMVVMKIAlzZWxlY3QgQ1JZUFRPX0FFUwogCXNl bGVjdCBDUllQVE9fU0tDSVBIRVIKIAlzZWxlY3QgQ1JZUFRPX0VOR0lORQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS90aS9vbWFwL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3RpL29tYXAvS2NvbmZpZwppbmRleCBhOWRiZTEwOTc3NzUuLmM0MTgxMmIzMjRhZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS90aS9vbWFwL0tjb25maWcKKysrIGIv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS90aS9vbWFwL0tjb25maWcKQEAgLTksOSArOSw5IEBAIGNv bmZpZyBWSURFT19PTUFQMl9WT1VUCiAJZGVwZW5kcyBvbiBWNExfUExBVEZPUk1fRFJJVkVSUwog CWRlcGVuZHMgb24gTU1VCiAJZGVwZW5kcyBvbiBGQl9PTUFQMiB8fCAoQ09NUElMRV9URVNUICYm IEZCX09NQVAyPW4pCi0JZGVwZW5kcyBvbiBBUkNIX09NQVAyIHx8IEFSQ0hfT01BUDMgfHwgQ09N UElMRV9URVNUCisJZGVwZW5kcyBvbiBBUkNIX09NQVAzIHx8IENPTVBJTEVfVEVTVAogCWRlcGVu ZHMgb24gVklERU9fREVWCiAJc2VsZWN0IFZJREVPQlVGMl9ETUFfQ09OVElHCi0Jc2VsZWN0IE9N QVAyX1ZSRkIgaWYgQVJDSF9PTUFQMiB8fCBBUkNIX09NQVAzCisJc2VsZWN0IE9NQVAyX1ZSRkIg aWYgQVJDSF9PTUFQMwogCWhlbHAKIAkgIFY0TDIgRGlzcGxheSBkcml2ZXIgc3VwcG9ydCBmb3Ig T01BUDIvMyBiYXNlZCBib2FyZHMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL29uZW5h bmQvS2NvbmZpZyBiL2RyaXZlcnMvbXRkL25hbmQvb25lbmFuZC9LY29uZmlnCmluZGV4IDdkNTc4 MzZiZjMyZi4uOGEzNjJmZDViZmM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL29uZW5h bmQvS2NvbmZpZworKysgYi9kcml2ZXJzL210ZC9uYW5kL29uZW5hbmQvS2NvbmZpZwpAQCAtMjMs OCArMjMsOCBAQCBjb25maWcgTVREX09ORU5BTkRfR0VORVJJQwogCSAgU3VwcG9ydCBmb3IgT25l TkFORCBmbGFzaCB2aWEgcGxhdGZvcm0gZGV2aWNlIGRyaXZlci4KIAogY29uZmlnIE1URF9PTkVO QU5EX09NQVAyCi0JdHJpc3RhdGUgIk9uZU5BTkQgb24gT01BUDIvT01BUDMgc3VwcG9ydCIKLQlk ZXBlbmRzIG9uIEFSQ0hfT01BUDIgfHwgQVJDSF9PTUFQMyB8fCAoQ09NUElMRV9URVNUICYmIEFS TSkKKwl0cmlzdGF0ZSAiT25lTkFORCBvbiBPTUFQMyBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJD SF9PTUFQMyB8fCAoQ09NUElMRV9URVNUICYmIEFSTSkKIAlkZXBlbmRzIG9uIE9GCiAJZGVwZW5k cyBvbiBPTUFQX0dQTUMKIAloZWxwCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29t YXAyL29tYXBmYi9LY29uZmlnIGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvS2Nv bmZpZwppbmRleCAyZDIwZTc5YWRlZmMuLmQ4MjI3ZjQzMjZiZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L29tYXAyL29tYXBmYi9LY29uZmlnCkBAIC04LDcgKzgsNyBAQCBtZW51Y29uZmlnIEZCX09N QVAyCiAJZGVwZW5kcyBvbiBEUk1fT01BUCA9IG4KIAlkZXBlbmRzIG9uIEdQSU9MSUIKIAlzZWxl Y3QgRkJfT01BUDJfRFNTCi0Jc2VsZWN0IE9NQVAyX1ZSRkIgaWYgQVJDSF9PTUFQMiB8fCBBUkNI X09NQVAzCisJc2VsZWN0IE9NQVAyX1ZSRkIgaWYgQVJDSF9PTUFQMwogCXNlbGVjdCBGQl9JT01F TV9IRUxQRVJTCiAJaGVscAogCSAgRnJhbWUgYnVmZmVyIGRyaXZlciBmb3IgT01BUDIrIGJhc2Vk IGJvYXJkcy4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2xrL3RpLmggYi9pbmNsdWRlL2xp bnV4L2Nsay90aS5oCmluZGV4IDU0YTNmYTM3MDAwNC4uY2ExNTExNTJkYTE5IDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L2Nsay90aS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2xrL3RpLmgKQEAg LTI2NSwxMiArMjY1LDYgQEAgaW50IG9tYXAyX2Nsa19kaXNhYmxlX2F1dG9pZGxlX2FsbCh2b2lk KTsKIGludCBvbWFwMl9jbGtfZW5hYmxlX2F1dG9pZGxlX2FsbCh2b2lkKTsKIGludCBvbWFwMl9j bGtfYWxsb3dfaWRsZShzdHJ1Y3QgY2xrICpjbGspOwogaW50IG9tYXAyX2Nsa19kZW55X2lkbGUo c3RydWN0IGNsayAqY2xrKTsKLXVuc2lnbmVkIGxvbmcgb21hcDJfZHBsbGNvcmVfcmVjYWxjKHN0 cnVjdCBjbGtfaHcgKmh3LAotCQkJCSAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKTsKLWlu dCBvbWFwMl9yZXByb2dyYW1fZHBsbGNvcmUoc3RydWN0IGNsa19odyAqY2xrLCB1bnNpZ25lZCBs b25nIHJhdGUsCi0JCQkgICAgIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpOwotdm9pZCBvbWFw Mnh4eF9jbGt0X2RwbGxjb3JlX2luaXQoc3RydWN0IGNsa19odyAqaHcpOwotdm9pZCBvbWFwMnh4 eF9jbGt0X3Zwc19pbml0KHZvaWQpOwogdW5zaWduZWQgbG9uZyBvbWFwMl9nZXRfZHBsbF9yYXRl KHN0cnVjdCBjbGtfaHdfb21hcCAqY2xrKTsKIAogdm9pZCB0aV9kdF9jbGtfaW5pdF9yZXRyeV9j bGtzKHZvaWQpOwpAQCAtMzIyLDggKzMxNiw2IEBAIHZvaWQgb21hcDNfbm9uY29yZV9kcGxsX3Jl c3RvcmVfY29udGV4dChzdHJ1Y3QgY2xrX2h3ICpodyk7CiBpbnQgb21hcDNfY29yZV9kcGxsX3Nh dmVfY29udGV4dChzdHJ1Y3QgY2xrX2h3ICpodyk7CiB2b2lkIG9tYXAzX2NvcmVfZHBsbF9yZXN0 b3JlX2NvbnRleHQoc3RydWN0IGNsa19odyAqaHcpOwogCi1leHRlcm4gY29uc3Qgc3RydWN0IGNs a19od19vbWFwX29wcyBjbGtod29wc19vbWFwMnh4eF9kcGxsOwotCiAjaWZkZWYgQ09ORklHX0FU QUdTCiBpbnQgb21hcDM0MzBfY2xrX2xlZ2FjeV9pbml0KHZvaWQpOwogaW50IG9tYXAzNDMwZXMx X2Nsa19sZWdhY3lfaW5pdCh2b2lkKTsKLS0gCjIuNTMuMAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBt YWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1tdGQvCg==