Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp4135355pxt; Tue, 10 Aug 2021 21:33:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzb2nbnnixLr5GJfm6UiU7EvVsG41MhnzVUj5JdcCJPOUO8edSNhn4qVgwqhfwkULlciQF5 X-Received: by 2002:a92:dc4f:: with SMTP id x15mr183084ilq.64.1628656415325; Tue, 10 Aug 2021 21:33:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628656415; cv=none; d=google.com; s=arc-20160816; b=RhH1IkTrvTaOaH7eqMXI4EbtgVkWfbwz9fRj2CPlbt3+aniyeAi1geYLUPrFSmgwRN ymCOcP2KPrNxqIUcZj5A2EfVoX695o/U0t6x4iWQRu49imgyk0g6trsWBFA7LkfhrXyk wSj+hanRV/jRroIRMFDBwC6ns22auEdcPRTN/8O7cYmPV8b3vvFKF/ImfVa0hmS1dutv rdkrmrApWOcOVZRW+UX7hYWX3QWdFL1p0vdl61Cng94oBTv1X1GBBAfaXwLry+M78C5Y gBHq1BSnxoEe9YwivdQqpMJNVqlll13+a2LCctW9FUzwnAEe4SaxhuVa3BnqyQuSsQgN e+FQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=DbN4d9yiOok1XouWAXK3f40biBAS2lwFP4DcGtsQfWg=; b=kHWVPUrh8hrLMufD1wjaCgal+8DRn8bYW4BErIzQq31jGHOOjQZtiwhnSB+XHfIStt ThgQ34BhPVcnnooZgoMuWzpv5Ko1CCEC6geKrlc0MvD1y/d2XO3WqJj0I7IzSEIPKXmQ Hi/aO7puWRr4z+ow7NfyJdhfuUXGqOmQ3XSsbSJ+hp5tIGNmgT8jy20ttLCMoKUdjfem emMfBfApDqUXwCsbux/J+zVo5ybcK4OqbsPGP/9jra82VIrbjB8b7vJstaXYLkIORTWj qBpZIi40UMgd5DPGiUleY5TzottIVtSz/D6Rrn+kLeom1sp9TRAw3A8Z4n4IWUXR5ngm M9iA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=Hr7SEK4f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y5si22893981ilb.113.2021.08.10.21.33.23; Tue, 10 Aug 2021 21:33:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=Hr7SEK4f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229534AbhHKEb6 (ORCPT + 99 others); Wed, 11 Aug 2021 00:31:58 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:46436 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S233637AbhHKEb5 (ORCPT ); Wed, 11 Aug 2021 00:31:57 -0400 X-UUID: f2e6abf2ea16452c839f8038c4d25179-20210811 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=DbN4d9yiOok1XouWAXK3f40biBAS2lwFP4DcGtsQfWg=; b=Hr7SEK4fZYS1PmTcVZYYkd5hgUZuKax8TMty66TVSwvXSUQH4inlgYv3MKwyOK5iLmYQvnqZ9MSWkA/bZFgA+umjyEW244aO0BJuULwTzmqNYYCz3uQjORb+HT10hW4d6h4JE9MJtgLLtbc+q4izL5Rw/nywoNK2Gm83jD/hk3o=; X-UUID: f2e6abf2ea16452c839f8038c4d25179-20210811 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 584568526; Wed, 11 Aug 2021 12:31:27 +0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 11 Aug 2021 12:31:26 +0800 Received: from mtksdccf07 (172.21.84.99) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 11 Aug 2021 12:31:26 +0800 Message-ID: Subject: Re: [PATCH 04/22] clk: mediatek: Add MT8195 basic clocks support From: Chun-Jie Chen To: Chen-Yu Tsai CC: Matthias Brugger , Stephen Boyd , Nicolas Boichat , Rob Herring , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "linux-clk@vger.kernel.org" , "devicetree@vger.kernel.org" , srv_heupstream , Project_Global_Chrome_Upstream_Group Date: Wed, 11 Aug 2021 12:31:26 +0800 In-Reply-To: References: <20210616224743.5109-1-chun-jie.chen@mediatek.com> <20210616224743.5109-5-chun-jie.chen@mediatek.com> <1626913060.1546.4.camel@mtksdaap41> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVGh1LCAyMDIxLTA3LTIyIGF0IDE1OjQ0ICswODAwLCBDaGVuLVl1IFRzYWkgd3JvdGU6DQo+ IEhpLA0KPiANCj4gSXQgc2VlbXMgeW91ciByZXBseSBpbmNsdWRlZCBIVE1MLCB3aGljaCBtZWFu cyB0aGF0IGl0IG5ldmVyIHJlYWNoZWQNCj4gdGhlIG1haWxpbmcgbGlzdHMuIFBsZWFzZSBhbHdh eXMgdXNlIHBsYWludGV4dCBvbmx5Lg0KPiANCj4gT24gVGh1LCBKdWwgMjIsIDIwMjEgYXQgMDg6 MTc6NDBBTSArMDgwMCwgQ2h1bi1KaWUgQ2hlbiB3cm90ZToNCj4gPiBPbiBGcmksIDIwMjEtMDct MDIgYXQgMTk6NDQgKzA4MDAsIENoZW4tWXUgVHNhaSB3cm90ZToNCj4gPiA+ID4gT24gVGh1LCBK dW4gMTcsIDIwMjEgYXQgNzowNSBBTSBDaHVuLUppZSBDaGVuDQo+ID4gPiA+IDxjaHVuLWppZS5j aGVuQG1lZGlhdGVrLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEFkZCBN VDgxOTUgYmFzaWMgY2xvY2sgcHJvdmlkZXJzLCBpbmNsdWRlIHRvcGNrZ2VuLA0KPiA+ID4gPiA+ ID4gYXBtaXhlZHN5cywNCj4gPiA+ID4gPiA+IGluZnJhY2ZnX2FvIGFuZCBwZXJpY2ZnX2FvLg0K PiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBDaHVuLUppZSBDaGVuIDxj aHVuLWppZS5jaGVuQG1lZGlhdGVrLmNvbT4NCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4g IGRyaXZlcnMvY2xrL21lZGlhdGVrL0tjb25maWcgICAgICB8ICAgIDggKw0KPiA+ID4gPiA+ID4g IGRyaXZlcnMvY2xrL21lZGlhdGVrL01ha2VmaWxlICAgICB8ICAgIDEgKw0KPiA+ID4gPiA+ID4g IGRyaXZlcnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxOTUuYyB8IDE5NTgNCj4gPiA+ID4gPiA+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ID4gPiAgMyBmaWxlcyBjaGFuZ2Vk LCAxOTY3IGluc2VydGlvbnMoKykNCj4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ODE5NS5jDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tZWRpYXRlay9LY29uZmlnDQo+ID4gPiA+ID4gPiBi L2RyaXZlcnMvY2xrL21lZGlhdGVrL0tjb25maWcNCj4gPiA+ID4gPiA+IGluZGV4IDU3NmJhYmQ4 NmY5OC4uNjcwN2FiYTNkNTAwIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9jbGsv bWVkaWF0ZWsvS2NvbmZpZw0KPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9jbGsvbWVkaWF0ZWsv S2NvbmZpZw0KPiA+ID4gPiA+ID4gQEAgLTU4MCw2ICs1ODAsMTQgQEAgY29uZmlnIENPTU1PTl9D TEtfTVQ4MTkyX1ZFTkNTWVMNCj4gPiA+ID4gPiA+ICAgICAgICAgaGVscA0KPiA+ID4gPiA+ID4g ICAgICAgICAgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1lZGlhVGVrIE1UODE5MiB2ZW5jc3lzDQo+ ID4gPiA+ID4gPiBjbG9ja3MuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ICtjb25maWcgQ09N TU9OX0NMS19NVDgxOTUNCj4gPiA+ID4gPiA+ICsgICAgICAgYm9vbCAiQ2xvY2sgZHJpdmVyIGZv ciBNZWRpYVRlayBNVDgxOTUiDQo+ID4gPiA+ID4gPiArICAgICAgIGRlcGVuZHMgb24gQVJNNjQg fHwgQ09NUElMRV9URVNUDQo+ID4gPiA+ID4gPiArICAgICAgIHNlbGVjdCBDT01NT05fQ0xLX01F RElBVEVLDQo+ID4gPiA+ID4gPiArICAgICAgIGRlZmF1bHQgQVJNNjQNCj4gPiA+ID4gPiA+ICsg ICAgICAgaGVscA0KPiA+ID4gPiA+ID4gKyAgICAgICAgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1l ZGlhVGVrIE1UODE5NSBiYXNpYw0KPiA+ID4gPiA+ID4gY2xvY2tzLg0KPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gIGNvbmZpZyBDT01NT05fQ0xLX01UODUxNg0KPiA+ID4gPiA+ID4gICAgICAg ICBib29sICJDbG9jayBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UODUxNiINCj4gPiA+ID4gPiA+ICAg ICAgICAgZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVA0KPiA+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21lZGlhdGVrL01ha2VmaWxlDQo+ID4gPiA+ID4g PiBiL2RyaXZlcnMvY2xrL21lZGlhdGVrL01ha2VmaWxlDQo+ID4gPiA+ID4gPiBpbmRleCAxNWJj MDQ1ZjBiNzEuLmY4MDAyZDg5NjZlMSAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMv Y2xrL21lZGlhdGVrL01ha2VmaWxlDQo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2Nsay9tZWRp YXRlay9NYWtlZmlsZQ0KPiA+ID4gPiA+ID4gQEAgLTgwLDUgKzgwLDYgQEAgb2JqLSQoQ09ORklH X0NPTU1PTl9DTEtfTVQ4MTkyX01TREMpICs9DQo+ID4gPiA+ID4gPiBjbGstDQo+ID4gPiA+ID4g PiBtdDgxOTItbXNkYy5vDQo+ID4gPiA+ID4gPiAgb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ4 MTkyX1NDUF9BRFNQKSArPQ0KPiA+ID4gPiANCj4gPiA+ID4gY2xrLW10ODE5Mi1zY3BfYWRzcC5v DQo+ID4gPiA+ID4gPiAgb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ4MTkyX1ZERUNTWVMpICs9 IGNsay1tdDgxOTItDQo+ID4gPiA+ID4gPiB2ZGVjLm8NCj4gPiA+ID4gPiA+ICBvYmotJChDT05G SUdfQ09NTU9OX0NMS19NVDgxOTJfVkVOQ1NZUykgKz0gY2xrLW10ODE5Mi0NCj4gPiA+ID4gPiA+ IHZlbmMubw0KPiA+ID4gPiA+ID4gK29iai0kKENPTkZJR19DT01NT05fQ0xLX01UODE5NSkgKz0g Y2xrLW10ODE5NS5vDQo+ID4gPiA+ID4gPiAgb2JqLSQoQ09ORklHX0NPTU1PTl9DTEtfTVQ4NTE2 KSArPSBjbGstbXQ4NTE2Lm8NCj4gPiA+ID4gPiA+ICBvYmotJChDT05GSUdfQ09NTU9OX0NMS19N VDg1MTZfQVVEU1lTKSArPSBjbGstbXQ4NTE2LWF1ZC5vDQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbGsvbWVkaWF0ZWsvY2xrLW10ODE5NS5jDQo+ID4gPiA+ID4gPiBiL2RyaXZl cnMvY2xrL21lZGlhdGVrL2Nsay1tdDgxOTUuYw0KPiA+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiA+ID4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uYWVhOWViZTRjMDUxDQo+ID4g PiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2Nsay9tZWRp YXRlay9jbGstbXQ4MTk1LmMNCj4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMTk1OCBAQA0KPiA+ID4g PiA+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gPiA+ID4g PiA+ICsvLw0KPiA+ID4gPiA+ID4gKy8vIENvcHlyaWdodCAoYykgMjAyMSBNZWRpYVRlayBJbmMu DQo+ID4gPiA+ID4gPiArLy8gQXV0aG9yOiBDaHVuLUppZSBDaGVuIDxjaHVuLWppZS5jaGVuQG1l ZGlhdGVrLmNvbT4NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgv Y2xrLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQo+ID4gPiA+ID4g PiArI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4NCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8 bGludXgvb2YuaD4NCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPg0K PiA+ID4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCj4gPiA+ID4gPiA+ICsj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ID4gPiA+ID4gPiArI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsjaW5jbHVkZSAiY2xr LW10ay5oIg0KPiA+ID4gPiA+ID4gKyNpbmNsdWRlICJjbGstbXV4LmgiDQo+ID4gPiA+ID4gPiAr I2luY2x1ZGUgImNsay1nYXRlLmgiDQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArI2luY2x1 ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL210ODE5NS1jbGsuaD4NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ICtzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG10ODE5NV9jbGtfbG9jayk7DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZml4ZWRfY2xrIHRv cF9maXhlZF9jbGtzW10gPSB7DQo+ID4gPiA+ID4gPiArICAgICAgIEZJWEVEX0NMSyhDTEtfVE9Q X0lOX0RHSSwgImluX2RnaSIsIE5VTEwsDQo+ID4gPiA+ID4gPiAxNjUwMDAwMDApLA0KPiA+ID4g PiA+ID4gKyAgICAgICBGSVhFRF9DTEsoQ0xLX1RPUF9VTFBPU0MsICJ1bHBvc2MiLCBOVUxMLA0K PiA+ID4gPiA+ID4gMjQ4MDAwMDAwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRklYRURfQ0xLKENM S19UT1BfVUxQT1NDMiwgInVscG9zYzIiLCBOVUxMLA0KPiA+ID4gPiA+ID4gMzI2MDAwMDAwKSwN Cj4gPiA+ID4gPiA+ICsgICAgICAgRklYRURfQ0xLKENMS19UT1BfTUVNXzQ2Nk0sICJtZW1fNDY2 bSIsIE5VTEwsDQo+ID4gPiA+IA0KPiA+ID4gPiA1MzMwMDAwMDApLA0KPiA+ID4gPiA+ID4gKyAg ICAgICBGSVhFRF9DTEsoQ0xLX1RPUF9NUEhPTkVfU0xBVkVfQiwgIm1waG9uZV9zbGF2ZV9iIiwN Cj4gPiA+ID4gDQo+ID4gPiA+IE5VTEwsDQo+ID4gPiA+ID4gPiA0OTE1MjAwMCksDQo+ID4gPiA+ ID4gPiArICAgICAgIEZJWEVEX0NMSyhDTEtfVE9QX1BFWFRQX1BJUEUsICJwZXh0cF9waXBlIiwg TlVMTCwNCj4gPiA+ID4gPiA+IDI1MDAwMDAwMCksDQo+ID4gPiA+ID4gPiArICAgICAgIEZJWEVE X0NMSyhDTEtfVE9QX1VGU19SWF9TWU1CT0wsICJ1ZnNfcnhfc3ltYm9sIiwNCj4gPiA+ID4gPiA+ IE5VTEwsDQo+ID4gPiA+ID4gPiAxNjYwMDAwMDApLA0KPiA+ID4gPiA+ID4gKyAgICAgICBGSVhF RF9DTEsoQ0xLX1RPUF9VRlNfVFhfU1lNQk9MLCAidWZzX3R4X3N5bWJvbCIsDQo+ID4gPiA+ID4g PiBOVUxMLA0KPiA+ID4gPiA+ID4gMTY2MDAwMDAwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRklY RURfQ0xLKENMS19UT1BfU1NVU0JfVTNQSFlfUDFfUF9QMCwNCj4gPiA+ID4gPiA+ICJzc3VzYl91 M3BoeV9wMV9wX3AwIiwgTlVMTCwgMTMxMDAwMDAwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRklY RURfQ0xLKENMS19UT1BfVUZTX1JYX1NZTUJPTDEsICJ1ZnNfcnhfc3ltYm9sMSIsDQo+ID4gPiA+ IA0KPiA+ID4gPiBOVUxMLA0KPiA+ID4gPiA+ID4gMTY2MDAwMDAwKSwNCj4gPiA+ID4gPiA+ICsg ICAgICAgRklYRURfQ0xLKENMS19UT1BfRlBDLCAiZnBjIiwgTlVMTCwgNTAwMDAwMDApLA0KPiA+ ID4gPiA+ID4gKyAgICAgICBGSVhFRF9DTEsoQ0xLX1RPUF9IRE1JUlhfUCwgImhkbWlyeF9wIiwg TlVMTCwNCj4gPiA+ID4gDQo+ID4gPiA+IDU5NDAwMDAwMCksDQo+ID4gPiA+IA0KPiA+ID4gPiBJ IGFzc3VtZSB0aGVzZSBhcmUgZml4ZWQgUExMcz8gVGhleSBzaG91bGQgaGF2ZSBpbnB1dHMNCj4g PiA+ID4gKHBhcmVudHMpLg0KPiA+ID4gPiANCj4gPiA+ID4gTW9yZW92ZXIsIGF0IGxlYXN0IFVM UE9TQyBhbmQgVUxQT1NDMiBsb29rIGxpa2UgdGhleSBhcmUgaW4NCj4gPiA+ID4gQVBNSVhFRFNZ Uw0KPiA+ID4gPiANCj4gPiANCj4gPiBUaGUgY2xvY2sgaW4gdG9wX2ZpeGVkX2Nsa3MgaXMgc3Bl Y2lhbCBjbG9jayB0aGF0IGdlbmVyYXRlZCBmcm9tDQo+ID4gdGhlDQo+ID4gc3BlY2lmaWMgaGFy ZHdhcmUgYmxvY2ssIG5vdCBQTExzIGluIEFQTUlYRURTWVMuIFVMUE9TQyBhbmQgVUxQT1NDMg0K PiA+IGhhcw0KPiA+IGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgaW4gQVBNSVhFRFNZUywgYnV0IHRo ZWlyIGNsb2NrIHNvdXJjZSBhcmUNCj4gPiBub3QNCj4gPiAiY2xrMjZtIiAob3RoZXIgcGxscyBp biBBUE1JWEVEU1lTIGluIGlzIGdlbmVyYXRlZCBmcm9tICJjbGsyNm0iKQ0KPiANCj4gSSBzZWUu IFN1cmVseSB0aGV5IGhhdmUgc29tZSBpbnB1dCB0aG91Z2guIEl0IHdvdWxkIGJlIG5pY2UgdG8g YmUNCj4gYWJsZQ0KPiB0byBoYXZlIHRoZW0gZGVzY3JpYmVkLg0KPiANCj4gPiA+ID4gPiA+ICt9 O1QNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19m aXhlZF9mYWN0b3IgdG9wX2Vhcmx5X2RpdnNbXSA9IHsNCj4gPiA+ID4gPiA+ICsgICAgICAgRkFD VE9SKENMS19UT1BfQ0xLMjZNX0QyLCAiY2xrMjZtX2QyIiwgImNsazI2bSIsIDEsDQo+ID4gPiA+ ID4gPiAyKSwNCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2ZpeGVkX2ZhY3RvciB0b3BfZGl2c1tdID0gew0KPiA+ID4g PiA+ID4gKyAgICAgICBGQUNUT1IoQ0xLX1RPUF9DTEsyNk1fRDUyLCAiY2xrMjZtX2Q1MiIsICJj bGsyNm0iLA0KPiA+ID4gPiA+ID4gMSwNCj4gPiA+ID4gDQo+ID4gPiA+IDUyKSwNCj4gPiA+ID4g PiA+ICsgICAgICAgRkFDVE9SKENMS19UT1BfSU5fREdJX0QyLCAiaW5fZGdpX2QyIiwgImluX2Rn aSIsIDEsDQo+ID4gPiA+ID4gPiAyKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRkFDVE9SKENMS19U T1BfSU5fREdJX0Q0LCAiaW5fZGdpX2Q0IiwgImluX2RnaSIsIDEsDQo+ID4gPiA+ID4gPiA0KSwN Cj4gPiA+ID4gPiA+ICsgICAgICAgRkFDVE9SKENMS19UT1BfSU5fREdJX0Q2LCAiaW5fZGdpX2Q2 IiwgImluX2RnaSIsIDEsDQo+ID4gPiA+ID4gPiA2KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRkFD VE9SKENMS19UT1BfSU5fREdJX0Q4LCAiaW5fZGdpX2Q4IiwgImluX2RnaSIsIDEsDQo+ID4gPiA+ ID4gPiA4KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRkFDVE9SKENMS19UT1BfTUZHUExMX09QUCwg Im1mZ3BsbF9vcHAiLCAibWZncGxsIiwNCj4gPiA+ID4gPiA+IDEsDQo+ID4gPiA+IA0KPiA+ID4g PiAxKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRkFDVE9SKENMS19UT1BfTUFJTlBMTCwgIm1haW5w bGxfY2siLCAibWFpbnBsbCIsIDEsDQo+ID4gPiA+ID4gPiAxKSwNCj4gPiA+ID4gDQo+ID4gPiA+ IFdoeSBhcmUgdGhpcyBhbmQgb3RoZXIgMToxIGZhY3RvciBjbGtzIG5lZWRlZD8gVGhleSBsb29r IGxpa2UNCj4gPiA+ID4gcGxhY2Vob2xkZXJzLg0KPiA+ID4gPiBQbGVhc2UgcmVtb3ZlIHRoZW0u DQo+ID4gDQo+ID4gDQo+ID4gDQo+ID4gVGhlc2UgMToxIGZhY3RvcnMgbWFrZSBtb3JlIHJlYWRh YmxlIGJldHdlZW4gZGl2aWRlcnMuIEZvciBleGFtcGxlLA0KPiA+IENMS19BUE1JWEVEX01BSU5Q TEwgYW5kIENMS19UT1BfTUFJTlBMTF9EMyBpcyBub3QgZWFzeSB0byBzZWUgdGhlDQo+ID4gcmVs YXRpb24sIGJ1dCBDTEtfVE9QX01BSU5QTEwgYW5kIENMS19UT1BfTUFJTlBMTF9EMyBpcyBtb3Jl IGNsZWFyDQo+ID4gdG8NCj4gPiBzZWUgdGhlIHJlbGF0aW9uLg0KPiANCj4gSWYgdGhlIGNsb2Nr cyBhcmUgbmFtZWQgYXBwcm9wcmlhdGVseSwgaXQgc2hvdWxkIGJlIGNsZWFyIHRoYXQNCj4gIm1h aW5wbGxfZFgiDQo+IGlzIGRlcml2ZWQgZnJvbSAibWFpbnBsbCIuIFdlIHJlYWxseSBkb24ndCBu ZWVkIGFuIGV4dHJhICJtYWlucGxsX2NrIg0KPiBpbg0KPiBiZXR3ZWVuLg0KPiANCj4gVGhlIG9u bHkgdGhpbmcgZ2FpbmVkIGhlcmUgaXMgaGF2aW5nIHRoZSBwYXJlbnQgY2xvY2sgaW4gdGhlIHNh bWUNCj4gZHJpdmVyLg0KPiBCdXQgdGhhdCBpcyBvbmx5IGEgcHJvYmxlbSBiZWNhdXNlIHdlIGFy ZSBkaXJlY3RseSB1c2luZyBnbG9iYWwgY2xvY2sNCj4gbmFtZXMNCj4gZm9yIHBhcmVudCBuYW1l cy4gVGhpcyBpc24ndCB0aGUgcHJlZmVycmVkIHdheSBmb3IgY2xvY2sgcGFyZW50aW5nLg0KPiAN Cj4gRm9yIHByb3BlciBwYXJlbnRpbmcsIHRoZSBkcml2ZXIgc2hvdWxkIGJlIHVzaW5nIGBzdHJ1 Y3QNCj4gY2xrX3BhcmVudF9kYXRhYA0KPiBpZiBwb3NzaWJsZSwgb3IgdXNpbmcgb2ZfY2xrX2dl dF9wYXJlbnRfbmFtZSgpIG9yIG9mX2Nsa19nZXRfaHcoKQ0KPiBtYW51YWxseQ0KPiB0byBnZXQg dGhlIHBhcmVudCdzIGdsb2JhbCBuYW1lIG9yIGEgcmVmZXJlbmNlIHRvIGl0LiBUaGlzIGlzDQo+ IHNvbWV0aGluZw0KPiB0aGUgY2xrIGRyaXZlcnMgc2hvdWxkIHNsb3dseSBiZSBjb252ZXJ0ZWQg dG8gZG9pbmcuDQo+IA0KPiBJJ20gbm90IHNheWluZyB3ZSBzaG91bGQgZG8gZXZlcnl0aGluZyBu b3csIGJ1dCB3ZSBjYW4gc3RhcnQgYnkNCj4gZ2V0dGluZw0KPiByaWQgb2Ygc29tZSBvZiB0aGUg ZXhjZXNzIGJhZ2dhZ2UuDQo+IA0KPiBbLi4uXQ0KDQpPaywgSSB3aWxsIHJlbW92ZSB0aGUgMS10 by0xIGRpdmlkZXIgaW4gbmV4dCB2ZXJzaW9uLg0KVGhhbmtzIGZvciB5b3VyIGNvbW1lbnQuDQoN Cj4gDQo+ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkc3A3X3BhcmVudHNb XSA9IHsNCj4gPiA+ID4gPiA+ICsgICAgICAgImNsazI2bSIsDQo+ID4gPiA+ID4gPiArICAgICAg ICJ1bml2cGxsX2Q2X2QyIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgInVuaXZwbGxfZDRfZDIiLA0K PiA+ID4gPiA+ID4gKyAgICAgICAidW5pdnBsbF9kNSIsDQo+ID4gPiA+ID4gPiArICAgICAgICJ1 bml2cGxsX2Q0IiwNCj4gPiA+ID4gPiA+ICsgICAgICAgIm1tcGxsX2Q0IiwNCj4gPiA+ID4gPiA+ ICsgICAgICAgIm1haW5wbGxfZDMiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAidW5pdnBsbF9kMyIN Cj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiANCj4gPiA+ID4gSWYgZHNwfmRzcDdfcGFyZW50cyBh cmUgYWxsIHRoZSBzYW1lLCBwbGVhc2UgbWVyZ2UgdGhlbSBhbmQNCj4gPiA+ID4gc2hhcmUNCj4g PiA+IA0KPiA+ID4gb25lDQo+ID4gPiA+IGluc3RhbmNlLiBBbmQgc2luY2UgdGhleSBhcmUgbG9j YXRlZCBhIGJpdCBmYXIgZnJvbSB0aGUgY2xvY2sNCj4gPiA+ID4gZGVmaW5pdGlvbnMNCj4gPiA+ ID4gaW4gdGhpcyBmaWxlLCBwbGVhc2UgYWRkIGNvbW1lbnRzIGRlc2NyaWJpbmcgd2hpY2ggY2xv Y2tzIHNoYXJlDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiBzYW1lDQo+ID4gPiA+IHNldCBvZiBwYXJl bnRzLg0KPiA+ID4gPiANCj4gPiANCj4gPiBJIHdpbGwgbWVyZ2UgaXQgaWYgdGhleSBjYW4gc2hh cmUgdGhlIHNhbWUgcGFyZW50IHNvdXJjZSBkYXRhDQo+ID4gKGluY2x1ZGUNCj4gPiB5b3UgbWVu dGlvbiBiZWxvdyksIHRoYW5rcyBmb3IgeW91ciBjb21tZW50Lg0KPiANCj4gR3JlYXQhDQo+IA0K PiBbLi4uXQ0KPiANCj4gVGlwOiBZb3UgY2FuIHRyaW0gb3V0IHBvcnRpb25zIG9mIHRoZSBvcmln aW5hbCBlbWFpbCBmcm9tIHlvdXIgcmVwbHksDQo+IGxpa2UNCj4gd2hhdCBJIGRpZCBoZXJlLCBz byB0aGF0IHRoZSBlbWFpbHMgYXJlIHNob3J0ZXIuIEtlZXBpbmcganVzdCB0aGUNCj4gYml0cyB0 aGF0DQo+IGFyZSByZWxldmFudCB0byB0aGUgZGlzY3Vzc2lvbiBpcyBiZXR0ZXIgZm9yIHRoZSBy ZWFkZXIuIEluIGNhc2VzDQo+IGhlcmUgYQ0KPiBsb3Qgb2YgaXQgYXJlIHJlbGF0ZWQgY2FzZXMs IHlvdSBjb3VsZCBrZWVwIGp1c3QgdGhlIG9uZSBuZWFyZXN0IHRvDQo+IHlvdXINCj4gcmVwbHku DQo+IA0KPiA+ID4gPiA+ID4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3Bpbm9yX3BhcmVu dHNbXSA9IHsNCj4gPiA+ID4gPiA+ICsgICAgICAgImNsazI2bSIsDQo+ID4gPiA+IA0KPiA+ID4g PiBEYXRhc2hlZXQgc2F5cyBmaXJzdCBwYXJlbnQgaXMgInVuaXZwbGxfZDVfZDgiLiBQbGVhc2Ug Y2hlY2sNCj4gPiA+ID4gd2l0aA0KPiA+ID4gPiBoYXJkd2FyZQ0KPiA+ID4gPiBlbmdpbmVlcnMu IElmIHRoZSBkYXRhc2hlZXQgaXMgd3JvbmcgcGxlYXNlIGFkZCBhIGNvbW1lbnQNCj4gPiA+ID4g c2F5aW5nIHNvLg0KPiA+ID4gPiANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiA+ID4gPiArICAgICAg ICJjbGsyNm1fZDIiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAibWFpbnBsbF9kN19kOCIsDQo+ID4g PiA+ID4gPiArICAgICAgICJ1bml2cGxsX2Q2X2Q4Ig0KPiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ ID4gPiArDQo+ID4gDQo+ID4gVGhlIHBhcmVudCBzb3VyY2UgaGVyZSBpcyBjb3JyZWN0LCBidXQg bm90IHVwZGF0ZSB0byB0aGUgbGF0ZXN0IGluDQo+ID4gZGF0YXNoZWV0Lg0KPiANCj4gRm9yIGZ1 dHVyZSByZWZlcmVuY2UsIGNvdWxkIHlvdSBsZWF2ZSBhIGNvbW1lbnQgc3RhdGluZyB0aGF0IHRo ZQ0KPiBkYXRhc2hlZXQNCj4gaGFzIG5vdCBiZWVuIHVwZGF0ZWQgdGhlbj8gUGxlYXNlIGluY2x1 ZGUgdGhlIHZlcnNpb24gb2YgdGhlDQo+IGRhdGFzaGVldC4NCj4gDQoNClRoZSBwYXJlbnQgc291 cmNlIGhlcmUgd2FzIHVwZGF0ZWQgYXQgdjI1IGludGVybmFsIHZlcnNpb24uDQoNCj4gPiA+ID4g PiA+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGR2aW9fZGdpX3JlZl9wYXJlbnRzW10gPSB7 DQo+ID4gPiA+ID4gPiArICAgICAgICJjbGsyNm0iLA0KPiA+ID4gPiA+ID4gKyAgICAgICAiaW5f ZGdpIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgImluX2RnaV9kMiIsDQo+ID4gPiA+ID4gPiArICAg ICAgICJpbl9kZ2lfZDQiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAiaW5fZGdpX2Q2IiwNCj4gPiA+ ID4gPiA+ICsgICAgICAgImluX2RnaV9kOCIsDQo+ID4gPiA+ID4gPiArICAgICAgICJtbXBsbF9k NF9kNCINCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3Qgc3Jja19wYXJlbnRzW10gPSB7DQo+ID4gPiA+ID4gPiArICAg ICAgICJ1bHBvc2NfZDEwIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgImNsazI2bSINCj4gPiA+ID4g PiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBjb25zdCBjaGFyICog Y29uc3QgcnN2ZDFfcGFyZW50c1tdID0gew0KPiA+ID4gPiA+ID4gKyAgICAgICAiY2xrMjZtIiwN Cj4gPiA+ID4gPiA+ICsgICAgICAgIm1haW5wbGxfZDRfZDQiLA0KPiA+ID4gPiA+ID4gKyAgICAg ICAibWFpbnBsbF9kNV9kNCIsDQo+ID4gPiA+ID4gPiArICAgICAgICJtYWlucGxsX2Q2X2Q0IiwN Cj4gPiA+ID4gPiA+ICsgICAgICAgIm1haW5wbGxfZDdfZDQiLA0KPiA+ID4gPiA+ID4gKyAgICAg ICAidW5pdnBsbF9kNl9kNCIsDQo+ID4gPiA+IA0KPiA+ID4gPiBUaGVzZSBhcmUgY29tcGxldGVs eSBkaWZmZXJlbnQgZnJvbSB0aGUgZGF0YXNoZWV0LiBQbGVhc2UNCj4gPiA+ID4gY2hlY2suDQo+ ID4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+ID4gPiA+ICsgICAgICAgInVscG9zYyIsDQo+ ID4gPiA+ID4gPiArICAgICAgICJ1bHBvc2MyIg0KPiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ID4g PiArDQo+ID4gDQo+ID4gVGhlIHBhcmVudCBzb3VyY2UgaGVyZSBpcyBjb3JyZWN0LCBidXQgbm90 IHVwZGF0ZSB0byB0aGUgbGF0ZXN0IGluDQo+ID4gZGF0YXNoZWV0Lg0KPiANCj4gU2FtZSBmb3Ig dGhpcyBvbmUuDQo+IA0KDQpUaGUgcGFyZW50IHNvdXJjZSBoZXJlIHdhcyB1cGRhdGVkIGF0IHYy NSBpbnRlcm5hbCB2ZXJzaW9uLg0KDQo+ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBtZmdfZmFzdF9wYXJlbnRzW10gPSB7DQo+ID4gPiA+ID4gPiArICAgICAgICJtZmdfc2Vs IiwNCj4gPiA+ID4gPiA+ICsgICAgICAgIm1mZ3BsbF9vcHAiDQo+ID4gPiA+ID4gPiArfTsNCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19tdXggdG9w X210a19tdXhlc1tdID0gew0KPiA+ID4gPiA+ID4gKyAgICAgICAvKiBDTEtfQ0ZHXzAgKi8NCj4g PiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUERfRkxBR1MoQ0xLX1RPUF9BWElf U0VMLA0KPiA+ID4gPiA+ID4gImF4aV9zZWwiLA0KPiA+ID4gPiANCj4gPiA+ID4gUGxlYXNlIGRy b3AgdGhlICJfc2VsIiBzdWZmaXggZnJvbSB0aGUgY2xvY2sgbmFtZXMuIEl0IHdvdWxkDQo+ID4g PiA+IGhhdmUNCj4gPiA+ID4gbWFkZQ0KPiA+ID4gPiBzZW5zZSBpZiB0aGlzIHdlcmUgcHVyZWx5 IGEgbXV4LCBhbmQgdGhlcmUgd2FzIGFub3RoZXIgY2xvY2sNCj4gPiA+ID4gZ2F0ZS4NCj4gPiA+ ID4gQnV0DQo+ID4gPiA+IHNpbmNlIHRoZSBkcml2ZXIgY29tYmluZXMgdGhlIHR3byBjb21wb25l bnRzIGludG8gb25lDQo+ID4gPiANCj4gPiA+IHJlcHJlc2VudGF0aW9uLA0KPiA+ID4gPiBwbGVh c2UganVzdCBkcm9wIHRoZSBzdWZmaXggdGhhdCBpbXBsaWVzIGp1c3QgYSBtdXguIFRoaXMgZ29l cw0KPiA+ID4gPiBmb3INCj4gPiA+ID4gYWxsDQo+ID4gPiA+IGNsb2NrcyBpbiB0aGUgc2VyaWVz IGFuZCBhbHNvIHRoZSBtYWNybyBiaW5kaW5ncy4NCj4gPiANCj4gPiANCj4gPiANCj4gPiBJZiB3 ZSBtb3ZlIHRoZSAiX3NlbCIgc3VmZml4IGZyb20gY2xvY2sgbmFtZXMsIGl0J3MgaGFyZCB0bw0K PiA+IHJlcHJlc2VudA0KPiA+IHRoaXMgbXV4IHdpdGggZ2F0ZSBjb250cm9sLiBEbyB5b3UgdGhp bmsgcmV2aXNlIGl0IHRvDQo+ID4gIlhYWF9zZWxfZ2F0ZSIgaW4NCj4gPiBDQ0YgbmFtZSBidXQg a2VlcCB0aGUgYmluZGluZyBuYW1lIGJlY2F1c2UgY2hhbmdlIHRoZSBiaW5kaW5nIG5hbWUNCj4g PiBuZWVkDQo+ID4gYWxsIENDRiBjb25zdW1lciBjaGFuZ2VzLg0KPiANCj4gUGxlYXNlIGVsYWJv cmF0ZS4gRG9lcyB0aGUgInR5cGUiIG9mIHRoZSBjbG9jayBtYXR0ZXI/IEFsbCB0aGF0IGlzDQo+ IHJlYWxseSBuZWVkZWQgaXMgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUsIG1hdGNoZXMgdGhlIGRh dGFzaGVldCBtb3JlDQo+IG9yDQo+IGxlc3MsIGFuZCBkZXNjcmliZXMgdGhlIHVzYWdlIG9yIHB1 cnBvc2Ugb2YgdGhlIGNsb2NrLg0KPiANCj4gRm9yIGV4YW1wbGUsIG9uIEFsbHdpbm5lciBzdW54 aSBwbGF0Zm9ybXMsIHdlIGRvbid0IGluY2x1ZGUgdGhlIHR5cGUNCj4gb2YgdGhlIGNsb2NrIGlu IHRoZSBjbG9jayBuYW1lcy4gT25seSB0aGUgYmFzZSBjbG9jayBuYW1lIGlzIHVzZWQuDQo+IFRo YXQgaXMgYmVjYXVzZSB0aGUgY2xvY2tzIGFyZSBtb2RlbGVkIGFzIGNvbXBvc2l0ZS1pc2ggY2xv Y2tzLCBzbw0KPiBvbmx5IG9uZSBjbG9jayBpcyBuZWVkZWQgdG8gZGVzY3JpYmUgYSBmdWxsIG11 eCtkaXZpZGVyK2dhdGUuDQo+IA0KPiBPbiBvdGhlciBwbGF0Zm9ybXMsIHRoZSBjbG9jayBkcml2 ZXIgZGVsaWJlcmF0ZWx5IHVzZXMgYmFzZSBjbG9jaw0KPiB0eXBlcywNCj4gbXV4LCBkaXYsIGFu ZCBnYXRlLCB0byBidWlsZCB1cCBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmdWxsIGNsb2NrDQo+ IHVuaXQuDQo+IEluIHRoZXNlIGNhc2VzLCB3ZSBlbmQgdXAgd2l0aCAiWFhYX211eCIsICJYWFhf ZGl2IiwgYW5kICJYWFhfZ2F0ZSIuDQo+IA0KPiBTaW5jZSB0aGUgTWVkaWF0ZWsgY2xvY2sgZHJp dmVyIGlzIG1vcmUgbGlrZSB0aGUgZmlyc3QgY2FzZSwgSSB3b3VsZA0KPiBwcmVmZXIgdG8gc2Vl IGNsb2NrIG5hbWVzIHdpdGgganVzdCB0aGUgYmFzZSBuYW1lLCBhbmQgbm9uZSBvZiB0aGUNCj4g dHlwaW5nLg0KPiANCj4gQW5kIHJlZ2FyZGluZyBiaW5kaW5nIG5hbWVzLCBwbGVhc2UgY2hhbmdl IHRoZW0gYXMgd2VsbC4gUmlnaHQgbm93DQo+IHRoZQ0KPiBvbmx5IHBsYWNlIHRoYXQgbmVlZHMg dG8gYmUgY2hhbmdlZCBhcmUgdGhlIGhlYWRlciBmaWxlcy4gVGhpcyBpcyB0aGUNCj4gdGltZSB0 byBnZXQgdGhlbSByaWdodC4NCj4gDQoNCk9rLCBJIHdpbGwgcmVtb3ZlIHN1ZmZpeCAiX1NFTCIg aW4gYmluZGluZyBuYW1lIGFuZCBjaGFuZ2UNCmNsb2NrIG5hbWUgZnJvbSAieHh4X3NlbCIgdG8g InRvcF94eHgiLg0KVGhhbmtzIGZvciB5b3VyIGNvbW1lbnQuDQoNCj4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICBheGlfcGFyZW50cywgMHgwMjAsIDB4MDI0LCAweDAyOCwgMCwgMywgNywNCj4g PiA+ID4gPiA+IDB4MDQsDQo+ID4gPiA+IA0KPiA+ID4gPiAwLA0KPiA+ID4gPiA+ID4gQ0xLX0lT X0NSSVRJQ0FMKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUERfRkxB R1MoQ0xLX1RPUF9TUE1fU0VMLA0KPiA+ID4gPiA+ID4gInNwbV9zZWwiLA0KPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgIHNwbV9wYXJlbnRzLCAweDAyMCwgMHgwMjQsIDB4MDI4LCA4LCAyLCAx NSwNCj4gPiA+ID4gDQo+ID4gPiA+IDB4MDQsDQo+ID4gPiA+ID4gPiAxLCBDTEtfSVNfQ1JJVElD QUwpLA0KPiA+ID4gPiANCj4gPiA+ID4gV2hlcmUgaXMgdGhlIFNDUCBjbG9jaz8NCj4gPiANCj4g PiANCj4gPiANCj4gPiBCZWNhdXNlIFNDUCBpcyBhbHdheXMgb24gYW5kIG5vIG90aGVyIGNsb2Nr IGdhdGVzIG5lZWQgdG8gcmVmZXJlbmNlDQo+ID4gaXQsDQo+ID4gc28gbW92ZSBpdC4NCj4gDQo+ IFBsZWFzZSBhZGQgYSBjb21tZW50IGFzIGEgcGxhY2Vob2xkZXIgdGhlbi4gVGhlIGNvbW1lbnQg Y291bGQgc2ltcGx5DQo+IHN0YXRlICJjbG9jayBpcyBhbHdheXMgb24gYW5kIHNob3VsZCBub3Qg YmUgaGFuZGxlZCBieSBMaW51eCIuDQo+IA0KPiBbLi4uXQ0KPiANCg0KT2ssIEkgd2lsbCBsZWF2 ZSBzb21lIGNvbW1lbnQgdG8gZGVzY3JpYmUgd2h5IHNraXAgb3Igd2h5IG1ha2UgaXMNCmNyaXRp Y2FsIGluIG5leHQgdmVyc2lvbi4NCg0KPiA+ID4gPiA+ID4gKyAgICAgICAvKiBDTEtfQ0ZHXzEx ICovDQo+ID4gPiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfVVNC X1NFTCwgInVzYl9zZWwiLA0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIGRhdGFzaGVldCBsaXN0cyB0 aGVzZSBhcyAidXNiX3RvcCIgYW5kICJ1c2JfdG9wX1hwIi4gUGxlYXNlDQo+ID4gPiA+IGtlZXAN Cj4gPiA+ID4gdGhlIG5hbWUNCj4gPiA+ID4gdGhlIHNhbWUgYXMgdGhlIGRhdGFzaGVldCBzbyBp dCBpcyBlYXN5IHRvIHNlYXJjaCBmb3IuIEFsc28NCj4gPiA+ID4gbm90ZSB0aGUNCj4gPiA+ID4g ZGlzY3JlcGVuY3kNCj4gPiA+ID4gYmV0d2VlbiB0aGUgbWFjcm8gbmFtZSBhbmQgdGhlIGNsb2Nr IG5hbWUuIFNhbWUgZ29lcyBmb3IgdGhlDQo+ID4gPiA+IHRocmVlDQo+ID4gPiA+IG90aGVyIFVT Qg0KPiA+ID4gPiBjbG9ja3MuDQo+ID4gDQo+ID4gDQo+ID4gDQo+ID4gRG8geW91IHRoaW5rIHJl dmlzZSB0aGUgbmFtZSB0aGUgc2FtZSBhcyBkYXRhc2hlZXQgaW4gQ0NGIG5hbWUgYnV0DQo+ID4g a2VlcA0KPiA+IGJpbmRpbmcgbmFtZT8NCj4gDQo+IFBsZWFzZSBoYXZlIHRoZW0gbWF0Y2ggZWFj aCBvdGhlci4gVGhlIHdob2xlIHBvaW50IG9mIGtlZXBpbmcgbmFtZXMNCj4gY29uc2lzdGVudCBp cyB0byBiZSBhYmxlIHRvIHNlYXJjaCBmb3IgdGhlbSBlYXNpbHkuDQo+IA0KDQpPaywgSSB3aWxs IHJldmlzZSB0aGUgY2xvY2sgbmFtZSB3aGljaCBjYW4gbWF0Y2ggaW4gZGF0YXNoZWV0Lg0KDQo+ ID4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICB1c2Jf cGFyZW50cywgMHgwQTQsIDB4MEE4LCAweDBBQywgMCwgMiwgNywNCj4gPiA+ID4gPiA+IDB4MDgs DQo+ID4gPiA+ID4gPiAxMiksDQo+ID4gPiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRf VVBEKENMS19UT1BfU1NVU0JfWEhDSV9TRUwsDQo+ID4gPiA+ID4gPiAic3N1c2JfeGhjaV9zZWwi LA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHNzdXNiX3hoY2lfcGFyZW50cywgMHgwQTQs IDB4MEE4LCAweDBBQywgOCwNCj4gPiA+ID4gPiA+IDIsDQo+ID4gPiA+IA0KPiA+ID4gPiAxNSwN Cj4gPiA+ID4gPiA+IDB4MDgsIDEzKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xS X1NFVF9VUEQoQ0xLX1RPUF9VU0JfMVBfU0VMLA0KPiA+ID4gPiA+ID4gInVzYl8xcF9zZWwiLA0K PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHVzYl8xcF9wYXJlbnRzLCAweDBBNCwgMHgwQTgs IDB4MEFDLCAxNiwgMiwNCj4gPiA+ID4gPiA+IDIzLA0KPiA+ID4gPiA+ID4gMHgwOCwgMTQpLA0K PiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX1NTVVNCX1hI Q0lfMVBfU0VMLA0KPiA+ID4gPiA+ID4gInNzdXNiX3hoY2lfMXBfc2VsIiwNCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICBzc3VzYl94aGNpXzFwX3BhcmVudHMsIDB4MEE0LCAweDBBOCwgMHgw QUMsDQo+ID4gPiA+ID4gPiAyNCwNCj4gPiA+ID4gDQo+ID4gPiA+IDIsDQo+ID4gPiA+ID4gPiAz MSwgMHgwOCwgMTUpLA0KPiA+ID4gPiA+ID4gKyAgICAgICAvKiBDTEtfQ0ZHXzEyICovDQo+ID4g PiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfVVNCXzJQX1NFTCwN Cj4gPiA+ID4gPiA+ICJ1c2JfMnBfc2VsIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICB1 c2JfMnBfcGFyZW50cywgMHgwQjAsIDB4MEI0LCAweDBCOCwgMCwgMiwNCj4gPiA+ID4gPiA+IDcs DQo+ID4gPiA+IA0KPiA+ID4gPiAweDA4LA0KPiA+ID4gPiA+ID4gMTYpLA0KPiA+ID4gPiA+ID4g KyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX1NTVVNCX1hIQ0lfMlBfU0VMLA0K PiA+ID4gPiA+ID4gInNzdXNiX3hoY2lfMnBfc2VsIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICBzc3VzYl94aGNpXzJwX3BhcmVudHMsIDB4MEIwLCAweDBCNCwgMHgwQjgsDQo+ID4gPiA+ ID4gPiA4LA0KPiA+ID4gPiANCj4gPiA+ID4gMiwNCj4gPiA+ID4gPiA+IDE1LCAweDA4LCAxNyks DQo+ID4gPiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfVVNCXzNQ X1NFTCwNCj4gPiA+ID4gPiA+ICJ1c2JfM3Bfc2VsIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICB1c2JfM3BfcGFyZW50cywgMHgwQjAsIDB4MEI0LCAweDBCOCwgMTYsIDIsDQo+ID4gPiA+ ID4gPiAyMywNCj4gPiA+ID4gPiA+IDB4MDgsIDE4KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVY X0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9TU1VTQl9YSENJXzNQX1NFTCwNCj4gPiA+ID4gPiA+ ICJzc3VzYl94aGNpXzNwX3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgc3N1c2Jf eGhjaV8zcF9wYXJlbnRzLCAweDBCMCwgMHgwQjQsIDB4MEI4LA0KPiA+ID4gPiA+ID4gMjQsDQo+ ID4gPiA+IA0KPiA+ID4gPiAyLA0KPiA+ID4gPiA+ID4gMzEsIDB4MDgsIDE5KSwNCj4gPiA+ID4g PiA+ICsgICAgICAgLyogQ0xLX0NGR18xMyAqLw0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FU RV9DTFJfU0VUX1VQRChDTEtfVE9QX0kyQ19TRUwsICJpMmNfc2VsIiwNCj4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICBpMmNfcGFyZW50cywgMHgwQkMsIDB4MEMwLCAweDBDNCwgMCwgMiwgNywN Cj4gPiA+ID4gPiA+IDB4MDgsDQo+ID4gPiA+ID4gPiAyMCksDQo+ID4gPiA+ID4gPiArICAgICAg IE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU0VOSU5GX1NFTCwNCj4gPiA+ID4gPiA+ICJz ZW5pbmZfc2VsIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBzZW5pbmZfcGFyZW50cywg MHgwQkMsIDB4MEMwLCAweDBDNCwgOCwgMywNCj4gPiA+ID4gPiA+IDE1LA0KPiA+ID4gPiA+ID4g MHgwOCwgMjEpLA0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtf VE9QX1NFTklORjFfU0VMLA0KPiA+ID4gPiANCj4gPiA+ID4gInNlbmluZjFfc2VsIiwNCj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICBzZW5pbmYxX3BhcmVudHMsIDB4MEJDLCAweDBDMCwgMHgw QzQsIDE2LA0KPiA+ID4gPiA+ID4gMywgMjMsDQo+ID4gPiA+ID4gPiAweDA4LCAyMiksDQo+ID4g PiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU0VOSU5GMl9TRUws DQo+ID4gPiA+IA0KPiA+ID4gPiAic2VuaW5mMl9zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgIHNlbmluZjJfcGFyZW50cywgMHgwQkMsIDB4MEMwLCAweDBDNCwgMjQsDQo+ID4gPiA+ ID4gPiAzLCAzMSwNCj4gPiA+ID4gPiA+IDB4MDgsIDIzKSwNCj4gPiA+ID4gPiA+ICsgICAgICAg LyogQ0xLX0NGR18xNCAqLw0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQ RChDTEtfVE9QX1NFTklORjNfU0VMLA0KPiA+ID4gPiANCj4gPiA+ID4gInNlbmluZjNfc2VsIiwN Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBzZW5pbmYzX3BhcmVudHMsIDB4MEM4LCAweDBD QywgMHgwRDAsIDAsIDMsDQo+ID4gPiA+ID4gPiA3LA0KPiA+ID4gPiA+ID4gMHgwOCwgMjQpLA0K PiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0dDUFVfU0VM LCAiZ2NwdV9zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGdjcHVfcGFyZW50cywg MHgwQzgsIDB4MENDLCAweDBEMCwgOCwgMywNCj4gPiA+ID4gPiA+IDE1LA0KPiA+ID4gPiANCj4g PiA+ID4gMHgwOCwNCj4gPiA+ID4gPiA+IDI1KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dB VEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9EWENDX1NFTCwgImR4Y2Nfc2VsIiwNCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICBkeGNjX3BhcmVudHMsIDB4MEM4LCAweDBDQywgMHgwRDAsIDE2LCAy LA0KPiA+ID4gPiA+ID4gMjMsDQo+ID4gPiA+IA0KPiA+ID4gPiAweDA4LA0KPiA+ID4gPiA+ID4g MjYpLA0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0RQ TUFJRl9TRUwsDQo+ID4gPiA+ID4gPiAiZHBtYWlmX3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgZHBtYWlmX3BhcmVudHMsIDB4MEM4LCAweDBDQywgMHgwRDAsIDI0LCAzLA0KPiA+ ID4gPiA+ID4gMzEsDQo+ID4gPiA+ID4gPiAweDA4LCAyNyksDQo+ID4gPiA+ID4gPiArICAgICAg IC8qIENMS19DRkdfMTUgKi8NCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9V UEQoQ0xLX1RPUF9BRVNfVUZTRkRFX1NFTCwNCj4gPiA+ID4gPiA+ICJhZXNfdWZzZmRlX3NlbCIs DQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgYWVzX3Vmc2ZkZV9wYXJlbnRzLCAweDBENCwg MHgwRDgsIDB4MERDLCAwLA0KPiA+ID4gPiA+ID4gMywNCj4gPiA+ID4gDQo+ID4gPiA+IDcsDQo+ ID4gPiA+ID4gPiAweDA4LCAyOCksDQo+ID4gPiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9T RVRfVVBEKENMS19UT1BfVUZTX1NFTCwgInVmc19zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgIHVmc19wYXJlbnRzLCAweDBENCwgMHgwRDgsIDB4MERDLCA4LCAzLCAxNSwNCj4gPiA+ ID4gDQo+ID4gPiA+IDB4MDgsDQo+ID4gPiA+ID4gPiAyOSksDQo+ID4gPiA+ID4gPiArICAgICAg IE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfVUZTX1RJQ0sxVVNfU0VMLA0KPiA+ID4gPiA+ ID4gInVmc190aWNrMXVzX3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgdWZzX3Rp Y2sxdXNfcGFyZW50cywgMHgwRDQsIDB4MEQ4LCAweDBEQywNCj4gPiA+ID4gPiA+IDE2LCAxLA0K PiA+ID4gPiA+ID4gMjMsIDB4MDgsIDMwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVf Q0xSX1NFVF9VUEQoQ0xLX1RPUF9VRlNfTVBfU0FQX1NFTCwNCj4gPiA+ID4gPiA+ICJ1ZnNfbXBf c2FwX3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgdWZzX21wX3NhcF9wYXJlbnRz LCAweDBENCwgMHgwRDgsIDB4MERDLA0KPiA+ID4gPiA+ID4gMjQsIDEsDQo+ID4gPiA+IA0KPiA+ ID4gPiAzMSwNCj4gPiA+ID4gPiA+IDB4MDgsIDMxKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgLyog Q0xLX0NGR18xNiAqLw0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChD TEtfVE9QX1ZFTkNfU0VMLCAidmVuY19zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg IHZlbmNfcGFyZW50cywgMHgwRTAsIDB4MEU0LCAweDBFOCwgMCwgNCwgNywNCj4gPiA+ID4gDQo+ ID4gPiA+IDB4MEMsDQo+ID4gPiA+ID4gPiAwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dB VEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9WREVDX1NFTCwgInZkZWNfc2VsIiwNCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICB2ZGVjX3BhcmVudHMsIDB4MEUwLCAweDBFNCwgMHgwRTgsIDgsIDQs DQo+ID4gPiA+ID4gPiAxNSwNCj4gPiA+ID4gDQo+ID4gPiA+IDB4MEMsDQo+ID4gPiA+ID4gPiAx KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9QV01f U0VMLCAicHdtX3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgcHdtX3BhcmVudHMs IDB4MEUwLCAweDBFNCwgMHgwRTgsIDE2LCAxLA0KPiA+ID4gPiA+ID4gMjMsDQo+ID4gPiA+IA0K PiA+ID4gPiAweDBDLA0KPiA+ID4gPiA+ID4gMiksDQo+ID4gPiA+IA0KPiA+ID4gPiBNQ1UgY2xv Y2s/IE5vdCBzdXJlIHdoYXQgaXQncyBzdXBwb3NlZCB0byBiZSBjYWxsZWQgc2luY2UgdGhlDQo+ ID4gPiA+IG5hbWluZw0KPiA+ID4gPiBoYXMgYQ0KPiA+ID4gPiBzbGlnaHRseSBkaWZmZXJlbnQg Zm9ybWF0Lg0KPiA+ID4gPiANCj4gPiA+ID4gSWYgeW91IGFyZSBza2lwcGluZyBjbG9ja3MsIHBs ZWFzZSBsZWF2ZSBhIGNvbW1lbnQgaW4gdGhlIGxpc3QNCj4gPiA+ID4gZXhwbGFpbmluZw0KPiA+ ID4gPiB3aHkuDQo+ID4gPiA+IA0KPiA+ID4gDQo+ID4gPiAibWN1cG0iIGlzIGFub3RoZXIgbWlj cm8tcHJvY2Vzc29yIGFuZCBpcyBhbHdheXMgb24sIGFuZCBubw0KPiA+ID4gb3RoZXJzDQo+ID4g PiBjbG9jayBnYXRlcyBuZWVkIHRvIHJlZmVyZW5jZSBpdCwgc28gcmVtb3ZlIGl0Lg0KPiANCj4g UGxlYXNlIGFkZCBhIGNvbW1lbnQsIGp1c3QgbGlrZSBpbiB0aGUgU0NQIGNsb2NrIGNhc2UuDQo+ IA0KPiA+ID4gPiA+ID4gKyAgICAgICAvKiBDTEtfQ0ZHXzE3ICovDQo+ID4gPiA+ID4gPiArICAg ICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU1BNSV9QX01TVF9TRUwsDQo+ID4gPiA+ ID4gPiAic3BtaV9wX21zdF9zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHNwbWlf cF9tc3RfcGFyZW50cywgMHgwRUMsIDB4MEYwLCAweDBGNCwgMCwNCj4gPiA+ID4gPiA+IDQsDQo+ ID4gPiA+IA0KPiA+ID4gPiA3LA0KPiA+ID4gPiA+ID4gMHgwQywgNCksDQo+ID4gPiA+ID4gPiAr ICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfU1BNSV9NX01TVF9TRUwsDQo+ID4g PiA+ID4gPiAic3BtaV9tX21zdF9zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHNw bWlfbV9tc3RfcGFyZW50cywgMHgwRUMsIDB4MEYwLCAweDBGNCwgOCwNCj4gPiA+ID4gPiA+IDQs DQo+ID4gPiA+IA0KPiA+ID4gPiAxNSwNCj4gPiA+ID4gPiA+IDB4MEMsIDUpLA0KPiA+ID4gPiAN Cj4gPiA+ID4gRFZGU1JDIGNsb2NrPw0KPiA+ID4gPiANCj4gPiA+IA0KPiA+ID4gIkRWRlNSQyIg SVAgYmxvY2sgaXMgYWx3YXlzIG9uICBhbmQgbm8gb3RoZXJzIGNsb2NrIGdhdGVzIG5lZWQgdG8N Cj4gPiA+IHJlZmVyZW5jZSBpdCwgc28gcmVtb3ZlIGl0Lg0KPiANCj4gVGhpcyBvbmUgYXMgd2Vs bC4NCj4gDQo+IFsuLi5dDQo+IA0KPiA+ID4gPiA+ID4gKyAgICAgICAvKiBDTEtfQ0ZHXzI0ICov DQo+ID4gPiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfQVBMTDVf U0VMLA0KPiA+ID4gPiA+ID4gImFwbGw1X3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgYXBsbDVfcGFyZW50cywgMHgwMTQwLCAweDAxNDQsIDB4MDE0OCwgMCwNCj4gPiA+ID4gPiA+ IDEsIDcsDQo+ID4gPiA+ID4gPiAweDAxMCwgMCksDQo+ID4gPiA+IA0KPiA+ID4gPiBGb3IgdGhl IEFQTExzLCB5b3Ugd2lsbCBuZWVkIHRvIGRpZmZlcmVudGlhdGUgdGhlbSBmcm9tIHRoZQ0KPiA+ ID4gPiBhY3R1YWwNCj4gPiA+ID4gUExMcyBpbg0KPiA+ID4gPiB0aGUgQVBNSVhFRFNZUyBibG9j ay4NCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IEFQTExYIHByb3ZpZGVycyBtb3JlIHByZWNpc2Ug Y2xvY2sgc28gaXQgaGFzIG1vcmUgY29uZmlndXJhdGlvbg0KPiA+ID4gcmVnaXN0ZXIsIGJ1dCBp dCBzdGlsbCBoYXMgc2FtZSBjb250cm9sIGZsb3cgbGlrZSBvdGhlciBQTExzIGluDQo+ID4gPiBB UE1JWEVEU1lTLg0KPiANCj4gSSB0aGluayB3aGF0IEkgbWVhbnQgd2FzLCBiZWNhdXNlIEkgYXNr ZWQgdG8gcmVtb3ZlIHRoZSAiX3NlbCINCj4gc3VmZml4LA0KPiB0aGUgZ2xvYmFsIGNsb2NrIG5h bWVzIGhlcmUgbm93IGNvbGxpZGUgd2l0aCB0aGUgb25lcyBpbiBBUE1JWEVEU1lTLg0KPiBTbyB3 aGF0IEkgd2FzIGFza2luZyB3YXMgdGhlIG5hbWVzIGhlcmUgbmVlZCB0byBiZSBjaGFuZ2VkLCBt YXliZSB0bw0KPiBzb21ldGhpbmcgbGlrZSAidG9wX2FwbGxYIi4NCj4gDQo+ID4gPiA+ID4gPiAr ICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfSTJTTzFfTV9TRUwsDQo+ID4gPiA+ IA0KPiA+ID4gPiAiaTJzbzFfbV9zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGky c28xX21fcGFyZW50cywgMHgwMTQwLCAweDAxNDQsIDB4MDE0OCwgOCwNCj4gPiA+ID4gPiA+IDMs DQo+ID4gPiA+IA0KPiA+ID4gPiAxNSwNCj4gPiA+ID4gPiA+IDB4MDEwLCAxKSwNCj4gPiA+ID4g PiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9JMlNPMl9NX1NFTCwNCj4g PiA+ID4gDQo+ID4gPiA+ICJpMnNvMl9tX3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgaTJzbzJfbV9wYXJlbnRzLCAweDAxNDAsIDB4MDE0NCwgMHgwMTQ4LA0KPiA+ID4gPiA+ID4g MTYsIDMsDQo+ID4gPiA+IA0KPiA+ID4gPiAyMywNCj4gPiA+ID4gPiA+IDB4MDEwLCAyKSwNCj4g PiA+ID4gDQo+ID4gPiA+IEkyU080X00/DQo+ID4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+ ID4gPiA+ICsgICAgICAgLyogQ0xLX0NGR18yNSAqLw0KPiA+ID4gPiANCj4gPiA+ID4gSTJTTzVf TT8NCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FU RV9DTFJfU0VUX1VQRChDTEtfVE9QX0kyU0kxX01fU0VMLA0KPiA+ID4gPiANCj4gPiA+ID4gImky c2kxX21fc2VsIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBpMnNpMV9tX3BhcmVudHMs IDB4MDE0QywgMHgwMTUwLCAweDAxNTQsIDgsDQo+ID4gPiA+ID4gPiAzLA0KPiA+ID4gPiANCj4g PiA+ID4gMTUsDQo+ID4gPiA+ID4gPiAweDAxMCwgNSksDQo+ID4gPiA+ID4gPiArICAgICAgIE1V WF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfSTJTSTJfTV9TRUwsDQo+ID4gPiA+IA0KPiA+ID4g PiAiaTJzaTJfbV9zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGkyc2kyX21fcGFy ZW50cywgMHgwMTRDLCAweDAxNTAsIDB4MDE1NCwNCj4gPiA+ID4gPiA+IDE2LCAzLA0KPiA+ID4g PiANCj4gPiA+ID4gMjMsDQo+ID4gPiA+ID4gPiAweDAxMCwgNiksDQo+ID4gPiA+IA0KPiA+ID4g PiBJMlNJNF9NPw0KPiA+ID4gPiANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiA+ID4gPiArICAgICAg IC8qIENMS19DRkdfMjYgKi8NCj4gPiA+ID4gDQo+ID4gPiA+IEkyU0k1X00/DQo+ID4gPiA+IA0K PiA+ID4gDQo+ID4gPiBJMlNPNC9JMlNPNS9JMlNJNF9NL0kyU0k1X00gaXMgbm90IHVzZWQgaW4g TVQ4MTk1LCBzbyByZW1vdmUgaXQNCj4gPiA+IGhlcmUuDQo+IA0KPiBQbGVhc2UgYWRkIGNvbW1l bnRzIGFzIHBsYWNlaG9sZGVycyBmb3IgdGhlbS4gVGhlIGNvbW1lbnQgY291bGQgc3RhdGUNCj4g dGhhdCB0aGUgY2xvY2sgaXMgdW51c2VkIGluIHRoZSBoYXJkd2FyZSBkZXNpZ24sIHNvIGl0IHdh cyBza2lwcGVkLg0KPiANCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUEQo Q0xLX1RPUF9EUFRYX01fU0VMLA0KPiA+ID4gPiA+ID4gImRwdHhfbV9zZWwiLA0KPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgIGRwdHhfbV9wYXJlbnRzLCAweDAxNTgsIDB4MDE1QywgMHgwMTYw LCA4LA0KPiA+ID4gPiA+ID4gMywNCj4gPiA+ID4gDQo+ID4gPiA+IDE1LA0KPiA+ID4gPiA+ID4g MHgwMTAsIDkpLA0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtf VE9QX0FVRF9JRUNfU0VMLA0KPiA+ID4gPiANCj4gPiA+ID4gImF1ZF9pZWNfc2VsIiwNCj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICBhdWRfaWVjX3BhcmVudHMsIDB4MDE1OCwgMHgwMTVDLCAw eDAxNjAsDQo+ID4gPiA+ID4gPiAxNiwgMywNCj4gPiA+ID4gDQo+ID4gPiA+IDIzLA0KPiA+ID4g PiA+ID4gMHgwMTAsIDEwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9V UEQoQ0xLX1RPUF9BMVNZU19IUF9TRUwsDQo+ID4gPiA+IA0KPiA+ID4gPiAiYTFzeXNfaHBfc2Vs IiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBhMXN5c19ocF9wYXJlbnRzLCAweDAxNTgs IDB4MDE1QywgMHgwMTYwLA0KPiA+ID4gPiA+ID4gMjQsIDEsDQo+ID4gPiA+ID4gPiAzMSwgMHgw MTAsIDExKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgLyogQ0xLX0NGR18yNyAqLw0KPiA+ID4gPiA+ ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0EyU1lTX1NFTCwNCj4gPiA+ ID4gPiA+ICJhMnN5c19zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGEyc3lzX3Bh cmVudHMsIDB4MDE2NCwgMHgwMTY4LCAweDAxNkMsIDAsDQo+ID4gPiA+ID4gPiAxLCA3LA0KPiA+ ID4gPiA+ID4gMHgwMTAsIDEyKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NF VF9VUEQoQ0xLX1RPUF9BM1NZU19TRUwsDQo+ID4gPiA+ID4gPiAiYTNzeXNfc2VsIiwNCj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICBhM3N5c19wYXJlbnRzLCAweDAxNjQsIDB4MDE2OCwgMHgw MTZDLCA4LA0KPiA+ID4gPiA+ID4gMywgMTUsDQo+ID4gPiA+ID4gPiAweDAxMCwgMTMpLA0KPiA+ ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VUX1VQRChDTEtfVE9QX0E0U1lTX1NFTCwN Cj4gPiA+ID4gPiA+ICJhNHN5c19zZWwiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGE0 c3lzX3BhcmVudHMsIDB4MDE2NCwgMHgwMTY4LCAweDAxNkMsIDE2LA0KPiA+ID4gPiA+ID4gMywN Cj4gPiA+ID4gDQo+ID4gPiA+IDIzLA0KPiA+ID4gPiA+ID4gMHgwMTAsIDE0KSwNCj4gPiA+ID4g PiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9TUElORklfQl9TRUwsDQo+ ID4gPiA+IA0KPiA+ID4gPiAic3BpbmZpX2Jfc2VsIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICBzcGluZmlfYl9wYXJlbnRzLCAweDAxNjQsIDB4MDE2OCwgMHgwMTZDLA0KPiA+ID4gPiA+ ID4gMjQsIDMsDQo+ID4gPiA+ID4gPiAzMSwgMHgwMTAsIDE1KSwNCj4gPiA+ID4gPiA+ICsgICAg ICAgLyogQ0xLX0NGR18yOCAqLw0KPiA+ID4gPiA+ID4gKyAgICAgICBNVVhfR0FURV9DTFJfU0VU X1VQRChDTEtfVE9QX05GSTFYX1NFTCwNCj4gPiA+ID4gPiA+ICJuZmkxeF9zZWwiLA0KPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgIG5maTF4X3BhcmVudHMsIDB4MDE3MCwgMHgwMTc0LCAweDAx NzgsIDAsDQo+ID4gPiA+ID4gPiAzLCA3LA0KPiA+ID4gPiA+ID4gMHgwMTAsIDE2KSwNCj4gPiA+ ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUEQoQ0xLX1RPUF9FQ0NfU0VMLCAiZWNj X3NlbCIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgZWNjX3BhcmVudHMsIDB4MDE3MCwg MHgwMTc0LCAweDAxNzgsIDgsIDMsDQo+ID4gPiA+ID4gPiAxNSwNCj4gPiA+ID4gPiA+IDB4MDEw LCAxNyksDQo+ID4gPiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1Bf QVVESU9fTE9DQUxfQlVTX1NFTCwNCj4gPiA+ID4gPiA+ICJhdWRpb19sb2NhbF9idXNfc2VsIiwN Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBhdWRpb19sb2NhbF9idXNfcGFyZW50cywgMHgw MTcwLCAweDAxNzQsDQo+ID4gPiA+ID4gPiAweDAxNzgsDQo+ID4gPiA+ID4gPiAxNiwgNCwgMjMs IDB4MDEwLCAxOCksDQo+ID4gPiA+ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENM S19UT1BfU1BJTk9SX1NFTCwNCj4gPiA+ID4gPiA+ICJzcGlub3Jfc2VsIiwNCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICBzcGlub3JfcGFyZW50cywgMHgwMTcwLCAweDAxNzQsIDB4MDE3OCwg MjQsDQo+ID4gPiA+ID4gPiAyLA0KPiA+ID4gPiANCj4gPiA+ID4gMzEsDQo+ID4gPiA+ID4gPiAw eDAxMCwgMTkpLA0KPiA+ID4gPiA+ID4gKyAgICAgICAvKiBDTEtfQ0ZHXzI5ICovDQo+ID4gPiA+ ID4gPiArICAgICAgIE1VWF9HQVRFX0NMUl9TRVRfVVBEKENMS19UT1BfRFZJT19ER0lfUkVGX1NF TCwNCj4gPiA+ID4gPiA+ICJkdmlvX2RnaV9yZWZfc2VsIiwNCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICBkdmlvX2RnaV9yZWZfcGFyZW50cywgMHgwMTdDLCAweDAxODAsDQo+ID4gPiA+ID4g PiAweDAxODQsIDAsDQo+ID4gPiA+IA0KPiA+ID4gPiAzLA0KPiA+ID4gPiA+ID4gNywgMHgwMTAs IDIwKSwNCj4gPiA+ID4gDQo+ID4gPiA+IFVMUE9TQyBhbmQgVUxQT1NDX0NPUkU/DQo+ID4gPiA+ IA0KPiA+IA0KPiA+IA0KPiA+IA0KPiA+IFVMUE9TQyBhbmQgVUxQT1NDX0NPUkUgaXMgYWx3YXlz IG9uIGFuZCBubyBvdGhlciBjbG9jayBnYXRlIG5lZWRzDQo+ID4gdG8NCj4gPiByZWZlcmVuY2Ug aXQsIHNvIGp1c3QgcmVtb3ZlIGl0Lg0KPiANCj4gUGxlYXNlIGFkZCBwbGFjZWhvbGRlciBjb21t ZW50cyBkZXNjcmliaW5nIHRoZW0sIHNwZWNpZmljYWxseSB3aHkNCj4gdGhleQ0KPiBhcmUgbWlz c2luZyBmcm9tIHRoZSBkcml2ZXIuIEFyZSB0aGUgY2xvY2tzIHVzZWQgYXQgYWxsIGluIHRoZQ0K PiBoYXJkd2FyZQ0KPiBkZXNpZ24/IElmIHNvIHRoZW4gaXQgbWlnaHQgYmUgYmV0dGVyIHRvIGFk ZCB0aGVtIHRvIHRoZSBjbG9jaw0KPiBkcml2ZXIuDQo+IA0KPiBBbHNvLCBldmVuIGlmIHRoZXks IGluY2x1ZGluZyBTQ1AgYW5kIE1DVSBhYm92ZSwgYXJlIGFsd2F5cyBvbiwgaXQNCj4gbWlnaHQN Cj4gc3RpbGwgYmUgbmljZSB0byBoYXZlIGRyaXZlciBzdXBwb3J0IGZvciB0aGVtLCBqdXN0IHRv IGJlIGFibGUgdG8NCj4gcmVhZA0KPiB0aGVpciBzdGF0ZSBmcm9tIExpbnV4LiBXZSBjb3VsZCBo YXZlIENMS19JU19DUklUSUNBTCBzZXQgc28gdGhleQ0KPiBkb24ndA0KPiBnZXQgZGlzYWJsZWQs IGFuZCBDTEtfR0VUX1JBVEVfTk9DQUNIRSBpZiB0aGUgY2xvY2tzIGFyZSBleHBlY3RlZCB0bw0K PiBiZQ0KPiBjaGFuZ2VkIGJ5IGZpcm13YXJlIHJ1bm5pbmcgYWxvbmdzaWRlIG9mIExpbnV4Lg0K PiANCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9VUERfRkxBR1MoQ0xLX1RP UF9TUkNLX1NFTCwNCj4gPiA+ID4gDQo+ID4gPiA+ICJzcmNrX3NlbCIsDQo+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgc3Jja19wYXJlbnRzLCAweDAxN0MsIDB4MDE4MCwgMHgwMTg0LCAyNCwN Cj4gPiA+ID4gPiA+IDEsIDMxLA0KPiA+ID4gPiA+ID4gMHgwMTAsIDIzLCBDTEtfSVNfQ1JJVElD QUwpLA0KPiA+ID4gPiANCj4gPiA+ID4gV2hhdCBoYXBwZW5lZCB0byBDTEtfQ0ZHXzMwfjM2Pw0K PiA+ID4gPiANCj4gPiANCj4gPiBUaGUgbXV4ZXMgaW4gQ0xLX0NGR18zMCB+IDM2IGFyZSBub3Qg dXNlZCwgc28ganVzdCByZW1vdmUgaXQgZnJvbQ0KPiA+IENDRi4NCj4gDQo+IFBsZWFzZSBhZGQg cGxhY2Vob2xkZXIgY29tbWVudHMgYWJvdXQgdGhlbS4NCj4gDQo+ID4gPiA+ID4gPiArICAgICAg IC8qIENMS19DRkdfMzcgKi8NCj4gPiA+ID4gPiA+ICsgICAgICAgTVVYX0dBVEVfQ0xSX1NFVF9V UERfRkxBR1MoQ0xLX1RPUF9SU1ZEMV9TRUwsDQo+ID4gPiA+IA0KPiA+ID4gPiAicnN2ZDFfc2Vs IiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICByc3ZkMV9wYXJlbnRzLCAweDAxREMsIDB4 MDFFMCwgMHgwMUU0LCAwLA0KPiA+ID4gPiA+ID4gMywgNywNCj4gPiA+ID4gPiA+IDB4MDE0LCAy MCwgQ0xLX0lTX0NSSVRJQ0FMKSwNCj4gPiA+ID4gDQo+ID4gPiA+IFdoYXQgYWJvdXQgdGhlIG90 aGVyIHRocmVlPw0KPiA+ID4gPiANCj4gPiANCj4gPiANCj4gPiAicnN2ZDIiIGFuZCAicnN2ZDMi IGlzIG5vdCB1c2VkLCBzbyByZW1vdmUgaXQuDQo+IA0KPiBTYW1lIGhlcmUuDQo+IA0KPiBUbyBi ZSBob25lc3QsIGEgInJzdmQiLCB3aGljaCBJIGludGVycHJldCBhcyAicmVzZXJ2ZWQiLCBjbG9j ayBiZWluZw0KPiB1c2VkIHNlZW1zIGtpbmQgb2YgY29udHJhZGljdGluZy4gRG8gd2Uga25vdyB3 aGF0IGhhcmR3YXJlIGlzIHVzaW5nDQo+IHJzdmQxPw0KPiANCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBzdHJ1Y3QgbXRrX2NvbXBvc2l0ZSB0b3Bf bXV4ZXNbXSA9IHsNCj4gPiA+ID4gPiA+ICsgICAgICAgLyogQ0xLX01JU0NfQ0ZHXzMgKi8NCj4g PiA+ID4gPiA+ICsgICAgICAgTVVYKENMS19UT1BfTUZHX0ZBU1RfU0VMLCAibWZnX2Zhc3Rfc2Vs IiwNCj4gPiA+ID4gDQo+ID4gPiA+IG1mZ19mYXN0X3BhcmVudHMsDQo+ID4gPiA+ID4gPiAweDAy NTAsIDgsIDEpLA0KPiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfY29tcG9zaXRlIHRvcF9hZGpfZGl2c1tdID0gew0KPiA+ ID4gPiA+ID4gKyAgICAgICBESVZfR0FURShDTEtfVE9QX0FQTEwxMl9ESVYwLCAiYXBsbDEyX2Rp djAiLA0KPiA+ID4gPiANCj4gPiA+ID4gImkyc2kxX21fc2VsIiwNCj4gPiA+ID4gPiA+IDB4MDMy MCwgMCwgMHgwMzI4LCA4LCAwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRElWX0dBVEUoQ0xLX1RP UF9BUExMMTJfRElWMSwgImFwbGwxMl9kaXYxIiwNCj4gPiA+ID4gDQo+ID4gPiA+ICJpMnNpMl9t X3NlbCIsDQo+ID4gPiA+ID4gPiAweDAzMjAsIDEsIDB4MDMyOCwgOCwgOCksDQo+ID4gPiA+ID4g PiArICAgICAgIERJVl9HQVRFKENMS19UT1BfQVBMTDEyX0RJVjIsICJhcGxsMTJfZGl2MiIsDQo+ ID4gPiA+IA0KPiA+ID4gPiAiaTJzbzFfbV9zZWwiLA0KPiA+ID4gPiA+ID4gMHgwMzIwLCAyLCAw eDAzMjgsIDgsIDE2KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgRElWX0dBVEUoQ0xLX1RPUF9BUExM MTJfRElWMywgImFwbGwxMl9kaXYzIiwNCj4gPiA+ID4gDQo+ID4gPiA+ICJpMnNvMl9tX3NlbCIs DQo+ID4gPiA+ID4gPiAweDAzMjAsIDMsIDB4MDMyOCwgOCwgMjQpLA0KPiA+ID4gPiA+ID4gKyAg ICAgICBESVZfR0FURShDTEtfVE9QX0FQTEwxMl9ESVY0LCAiYXBsbDEyX2RpdjQiLA0KPiA+ID4g PiANCj4gPiA+ID4gImF1ZF9pZWNfc2VsIiwNCj4gPiA+ID4gPiA+IDB4MDMyMCwgNCwgMHgwMzM0 LCA4LCAwKSwNCj4gPiA+ID4gDQo+ID4gPiA+IFdoYXQgYWJvdXQgNX44Pw0KPiA+ID4gPiANCj4g PiA+IA0KPiA+ID4gZGl2NSB+IDggYXJlIG5vdCB1c2VkIGluIE1UODE5NSwgc28gcmVtb3ZlIGl0 Lg0KPiANCj4gUGxhY2Vob2xkZXIgY29tbWVudHMgcGxlYXNlLg0KPiANCj4gWy4uLl0NCj4gDQo+ ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZV9yZWdzIHRvcDBfY2dfcmVn cyA9IHsNCj4gPiA+ID4gPiA+ICsgICAgICAgLnNldF9vZnMgPSAweDIzOCwNCj4gPiA+ID4gPiA+ ICsgICAgICAgLmNscl9vZnMgPSAweDIzOCwNCj4gPiA+ID4gPiA+ICsgICAgICAgLnN0YV9vZnMg PSAweDIzOCwNCj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2dhdGVfcmVncyB0b3AxX2NnX3JlZ3MgPSB7DQo+ID4gPiA+ ID4gPiArICAgICAgIC5zZXRfb2ZzID0gMHgyNTAsDQo+ID4gPiA+ID4gPiArICAgICAgIC5jbHJf b2ZzID0gMHgyNTAsDQo+ID4gPiA+ID4gPiArICAgICAgIC5zdGFfb2ZzID0gMHgyNTAsDQo+ID4g PiA+ID4gPiArfTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsjZGVmaW5lIEdBVEVfVE9Q MF9GTEFHUyhfaWQsIF9uYW1lLCBfcGFyZW50LCBfc2hpZnQsDQo+ID4gPiA+ID4gPiBfZmxhZykg ICAgICAgICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgIEdBVEVfTVRLX0ZMQUdTKF9pZCwgX25h bWUsIF9wYXJlbnQsICZ0b3AwX2NnX3JlZ3MsDQo+ID4gPiA+ID4gPiBfc2hpZnQsICAgICAgXA0K PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNscl9p bnYsIF9mbGFnKQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgR0FURV9UT1Aw KF9pZCwgX25hbWUsIF9wYXJlbnQsDQo+ID4gPiA+IA0KPiA+ID4gPiBfc2hpZnQpICAgICAgICAg ICAgICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgIEdBVEVfVE9QMF9GTEFHUyhfaWQsIF9uYW1l LCBfcGFyZW50LCBfc2hpZnQsIDApDQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArI2RlZmlu ZSBHQVRFX1RPUDEoX2lkLCBfbmFtZSwgX3BhcmVudCwNCj4gPiA+ID4gDQo+ID4gPiA+IF9zaGlm dCkgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gPiA+ICsgICAgICAgR0FURV9NVEsoX2lkLCBf bmFtZSwgX3BhcmVudCwgJnRvcDFfY2dfcmVncywNCj4gPiA+ID4gPiA+IF9zaGlmdCwNCj4gPiA+ ID4gPiA+ICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNscl9pbnYpDQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSB0b3BfY2xrc1tdID0gew0K PiA+ID4gPiA+ID4gKyAgICAgICAvKiBUT1AwICovDQo+ID4gPiA+ID4gPiArICAgICAgIEdBVEVf VE9QMChDTEtfVE9QX0NGR19WUFAwLCAiY2ZnX3ZwcDAiLCAidnBwX3NlbCIsDQo+ID4gPiA+ID4g PiAwKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgR0FURV9UT1AwKENMS19UT1BfQ0ZHX1ZQUDEsICJj ZmdfdnBwMSIsICJ2cHBfc2VsIiwNCj4gPiA+ID4gPiA+IDEpLA0KPiA+ID4gPiA+ID4gKyAgICAg ICBHQVRFX1RPUDAoQ0xLX1RPUF9DRkdfVkRPMCwgImNmZ192ZG8wIiwgInZwcF9zZWwiLA0KPiA+ ID4gPiA+ID4gMiksDQo+ID4gPiA+ID4gPiArICAgICAgIEdBVEVfVE9QMChDTEtfVE9QX0NGR19W RE8xLCAiY2ZnX3ZkbzEiLCAidnBwX3NlbCIsDQo+ID4gPiA+ID4gPiAzKSwNCj4gPiA+ID4gPiA+ ICsgICAgICAgR0FURV9UT1AwKENMS19UT1BfQ0ZHX1VOSVBMTF9TRVMsICJjZmdfdW5pcGxsX3Nl cyIsDQo+ID4gPiA+ID4gPiAidW5pdnBsbF9kMiIsIDQpLA0KPiA+ID4gPiA+ID4gKyAgICAgICBH QVRFX1RPUDAoQ0xLX1RPUF9DRkdfMjZNX1ZQUDAsICJjZmdfMjZtX3ZwcDAiLA0KPiA+ID4gPiAN Cj4gPiA+ID4gImNsazI2bSIsDQo+ID4gPiA+ID4gPiA1KSwNCj4gPiA+ID4gPiA+ICsgICAgICAg R0FURV9UT1AwKENMS19UT1BfQ0ZHXzI2TV9WUFAxLCAiY2ZnXzI2bV92cHAxIiwNCj4gPiA+ID4g DQo+ID4gPiA+ICJjbGsyNm0iLA0KPiA+ID4gPiA+ID4gNiksDQo+ID4gPiA+ID4gPiArICAgICAg IEdBVEVfVE9QMChDTEtfVE9QX0NGR18yNk1fQVVELCAiY2ZnXzI2bV9hdWQiLA0KPiA+ID4gPiA+ ID4gImNsazI2bSIsDQo+ID4gPiA+IA0KPiA+ID4gPiA5KSwNCj4gPiA+ID4gPiA+ICsgICAgICAg R0FURV9UT1AwX0ZMQUdTKENMS19UT1BfQ0ZHX0FYSV9FQVNULA0KPiA+ID4gPiA+ID4gImNmZ19h eGlfZWFzdCIsDQo+ID4gPiA+ID4gPiAiYXhpX3NlbCIsIDEwLCBDTEtfSVNfQ1JJVElDQUwpLA0K PiA+ID4gPiA+ID4gKyAgICAgICBHQVRFX1RPUDBfRkxBR1MoQ0xLX1RPUF9DRkdfQVhJX0VBU1Rf Tk9SVEgsDQo+ID4gPiA+ID4gPiAiY2ZnX2F4aV9lYXN0X25vcnRoIiwgImF4aV9zZWwiLCAxMSwN Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBDTEtfSVNfQ1JJVElDQUwpLA0KPiA+ID4gPiA+ ID4gKyAgICAgICBHQVRFX1RPUDBfRkxBR1MoQ0xLX1RPUF9DRkdfQVhJX05PUlRILA0KPiA+ID4g PiA+ID4gImNmZ19heGlfbm9ydGgiLA0KPiA+ID4gPiA+ID4gImF4aV9zZWwiLCAxMiwgQ0xLX0lT X0NSSVRJQ0FMKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgR0FURV9UT1AwX0ZMQUdTKENMS19UT1Bf Q0ZHX0FYSV9TT1VUSCwNCj4gPiA+ID4gPiA+ICJjZmdfYXhpX3NvdXRoIiwNCj4gPiA+ID4gPiA+ ICJheGlfc2VsIiwgMTMsIENMS19JU19DUklUSUNBTCksDQo+ID4gPiA+ID4gPiArICAgICAgIEdB VEVfVE9QMChDTEtfVE9QX0NGR19FWFRfVEVTVCwgImNmZ19leHRfdGVzdCIsDQo+ID4gPiA+ID4g PiAibXNkY3BsbF9kMiIsIDE1KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgLyogVE9QMSAqLw0KPiA+ ID4gPiA+ID4gKyAgICAgICBHQVRFX1RPUDEoQ0xLX1RPUF9TU1VTQl9SRUYsICJzc3VzYl9yZWYi LCAiY2xrMjZtIiwNCj4gPiA+ID4gPiA+IDApLA0KPiA+ID4gPiA+ID4gKyAgICAgICBHQVRFX1RP UDEoQ0xLX1RPUF9TU1VTQl9QSFlfUkVGLCAic3N1c2JfcGh5X3JlZiIsDQo+ID4gPiA+IA0KPiA+ ID4gPiAiY2xrMjZtIiwNCj4gPiA+ID4gPiA+IDEpLA0KPiA+ID4gPiA+ID4gKyAgICAgICBHQVRF X1RPUDEoQ0xLX1RPUF9TU1VTQl9QMV9SRUYsICJzc3VzYl9wMV9yZWYiLA0KPiA+ID4gPiANCj4g PiA+ID4gImNsazI2bSIsDQo+ID4gPiA+ID4gPiAyKSwNCj4gPiA+ID4gPiA+ICsgICAgICAgR0FU RV9UT1AxKENMS19UT1BfU1NVU0JfUEhZX1AxX1JFRiwNCj4gPiA+ID4gPiA+ICJzc3VzYl9waHlf cDFfcmVmIiwNCj4gPiA+ID4gPiA+ICJjbGsyNm0iLCAzKSwNCj4gPiA+ID4gPiA+ICsgICAgICAg R0FURV9UT1AxKENMS19UT1BfU1NVU0JfUDJfUkVGLCAic3N1c2JfcDJfcmVmIiwNCj4gPiA+ID4g DQo+ID4gPiA+ICJjbGsyNm0iLA0KPiA+ID4gPiA+ID4gNCksDQo+ID4gPiA+ID4gPiArICAgICAg IEdBVEVfVE9QMShDTEtfVE9QX1NTVVNCX1BIWV9QMl9SRUYsDQo+ID4gPiA+ID4gPiAic3N1c2Jf cGh5X3AyX3JlZiIsDQo+ID4gPiA+ID4gPiAiY2xrMjZtIiwgNSksDQo+ID4gPiA+ID4gPiArICAg ICAgIEdBVEVfVE9QMShDTEtfVE9QX1NTVVNCX1AzX1JFRiwgInNzdXNiX3AzX3JlZiIsDQo+ID4g PiA+IA0KPiA+ID4gPiAiY2xrMjZtIiwNCj4gPiA+ID4gPiA+IDYpLA0KPiA+ID4gPiA+ID4gKyAg ICAgICBHQVRFX1RPUDEoQ0xLX1RPUF9TU1VTQl9QSFlfUDNfUkVGLA0KPiA+ID4gPiA+ID4gInNz dXNiX3BoeV9wM19yZWYiLA0KPiA+ID4gPiA+ID4gImNsazI2bSIsIDcpLA0KPiA+ID4gPiA+ID4g K307DQo+ID4gPiA+IA0KPiA+ID4gPiBUaGVzZSBzaG91bGQgYmUgZ3JvdXBlZCB3aXRoIHRoZSBv dGhlciBUT1BDS0dFTiBjbG9ja3MuIEFub3RoZXINCj4gPiA+ID4gcmVhc29uIHRvDQo+ID4gPiA+ IHNwbGl0IHRoaXMgZHJpdmVyIGludG8gbXVsdGlwbGUgb25lcy4NCj4gPiA+ID4gDQo+ID4gDQo+ ID4gDQo+ID4gDQo+ID4gVGhlc2UgY2xvY2tzIGFyZSAiY2xvY2sgZ2F0ZSIgaW4gVE9QQ0tHRU4s IHNvIHdlIHNlcGFyYXRlIHRoZSBkYXRhDQo+ID4gb2YNCj4gPiAiY2xvY2sgZ2F0ZSIgZnJvbSAi Y2xvY2sgbXV4Ii4NCj4gDQo+IFJpZ2h0LCBidXQgaXQgZ2V0cyByZWFsbHkgY29uZnVzaW5nIHdo ZW4gdGhlIGRyaXZlciBpcyBtaXhpbmcgY2xvY2tzDQo+IGZyb20gZGlmZmVyZW50IGNsb2NrIGNv bnRyb2xsZXJzLiBDb2RlIHRoYXQgZ2V0cyB1c2VkIHRvZ2V0aGVyIHNob3VsZA0KPiBiZSBncm91 cGVkIHRvZ2V0aGVyLiBJbiB0aGlzIGNhc2UsIGNvZGUgZm9yIHRoZSBzYW1lIGhhcmR3YXJlIGJs b2NrDQo+IHNob3VsZCBiZSBncm91cGVkIHRvZ2V0aGVyLiBTbyBwbGVhc2Ugc3BsaXQgdGhlIGRy aXZlcnMgdXAgaWYgdGhleQ0KPiBlbmQNCj4gdXAgYmVpbmcgcmVhbGx5IGJpZywgYW5kIHRoZW4g Z3JvdXAgdGhlIHJlbWFpbmluZyBvbmVzIGJ5IGhhcmR3YXJlDQo+IGJsb2NrIGZpcnN0LCB0aGVu IHR5cGUgc2Vjb25kLg0KPiANCg0KSSB3aWxsIHNlcGFyYXRlIHRoZSBjbG9ja3MgaGVyZSB0byBk aWZmZXJlbnQgY2xvY2sgZHJpdmVyLCBlYWNoIGRyaXZlcg0Kb25seSBrZWVwIHRoZSBjbG9ja3Mg dGhhdCBwcm92aWRlZCBieSBzYW1lIElQIGJsb2NrLg0KDQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZV9yZWdzIGFwbWl4ZWRfY2dfcmVncyA9 IHsNCj4gPiA+ID4gPiA+ICsgICAgICAgLnNldF9vZnMgPSAweDgsDQo+ID4gPiA+ID4gPiArICAg ICAgIC5jbHJfb2ZzID0gMHg4LA0KPiA+ID4gPiA+ID4gKyAgICAgICAuc3RhX29mcyA9IDB4OCwN Cj4gPiA+ID4gPiA+ICt9Ow0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgR0FU RV9BUE1JWEVEKF9pZCwgX25hbWUsIF9wYXJlbnQsDQo+ID4gPiA+ID4gPiBfc2hpZnQpICAgICAg ICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gPiA+ICsgICAgICAgR0FURV9NVEsoX2lkLCBfbmFt ZSwgX3BhcmVudCwgJmFwbWl4ZWRfY2dfcmVncywNCj4gPiA+ID4gPiA+IF9zaGlmdCwNCj4gPiA+ ID4gPiA+ICZtdGtfY2xrX2dhdGVfb3BzX25vX3NldGNscl9pbnYpDQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZ2F0ZSBhcG1peGVkX2Nsa3NbXSA9 IHsNCj4gPiA+ID4gPiA+ICsgICAgICAgR0FURV9BUE1JWEVEKENMS19BUE1JWEVEX1BMTF9TU1VT QjI2TSwNCj4gPiA+ID4gPiA+ICJwbGxfc3N1c2IyNm0iLA0KPiA+ID4gPiA+ID4gImNsazI2bSIs IDEpLA0KPiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArI2RlZmlu ZSBNVDgxOTVfUExMX0ZNQVggICAgICAgICAgICAgICAgKDM4MDBVTCAqIE1IWikNCj4gPiA+ID4g PiA+ICsjZGVmaW5lIE1UODE5NV9QTExfRk1JTiAgICAgICAgICAgICAgICAoMTUwMFVMICogTUha KQ0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgTVQ4MTk1X0lOVEVHRVJfQklUUyAgICA4DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiArI2RlZmluZSBQTEwoX2lkLCBfbmFtZSwgX3JlZywgX3B3cl9y ZWcsIF9lbl9tYXNrLA0KPiA+ID4gPiANCj4gPiA+ID4gX2ZsYWdzLCAgICAgIFwNCj4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIF9yc3RfYmFyX21hc2ssIF9wY3diaXRzLCBfcGRf cmVnLA0KPiA+ID4gPiA+ID4gX3BkX3NoaWZ0LCAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICBfdHVuZXJfcmVnLCBfdHVuZXJfZW5fcmVnLA0KPiA+ID4gPiA+ID4gX3R1 bmVyX2VuX2JpdCwgICAgICAgXA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg X3Bjd19yZWcsIF9wY3dfc2hpZnQsDQo+ID4gPiA+ID4gPiBfcGN3X2NoZ19yZWcsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBfZW5fcmVnLCBfcGxsX2VuX2JpdCkNCj4gPiA+ID4gPiA+IHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLmlkID0NCj4gPiA+ ID4gPiA+IF9pZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC5uYW1lID0NCj4gPiA+ID4gPiA+IF9uYW1l LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAucmVnID0NCj4gPiA+ID4gPiA+IF9yZWcsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgLnB3cl9yZWcgPQ0KPiA+ID4gPiA+ID4gX3B3cl9yZWcsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC5lbl9tYXNrID0N Cj4gPiA+ID4gPiA+IF9lbl9tYXNrLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAuZmxhZ3MgPQ0KPiA+ID4gPiA+ID4gX2Zs YWdzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgLnJzdF9iYXJfbWFzayA9DQo+ID4gPiA+ID4gPiBfcnN0X2Jhcl9t YXNrLCAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgIC5mbWF4ID0NCj4gPiA+ID4gPiA+IE1UODE5NV9QTExfRk1BWCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAuZm1pbiA9DQo+ ID4gPiA+ID4gPiBNVDgxOTVfUExMX0ZNSU4sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLnBjd2JpdHMgPQ0KPiA+ID4gPiA+ID4g X3Bjd2JpdHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgIC5wY3dpYml0cyA9DQo+ID4gPiA+ID4gPiBNVDgxOTVfSU5URUdF Ul9CSVRTLCAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAucGRfcmVnID0NCj4gPiA+ID4gPiA+IF9wZF9yZWcsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLnBkX3NoaWZ0 ID0NCj4gPiA+ID4gPiA+IF9wZF9zaGlmdCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC50dW5lcl9yZWcgPQ0KPiA+ID4gPiA+ ID4gX3R1bmVyX3JlZywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAudHVuZXJfZW5fcmVnID0NCj4gPiA+ID4gPiA+IF90dW5lcl9l bl9yZWcsICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgICAg ICAgICAgLnR1bmVyX2VuX2JpdCA9DQo+ID4gPiA+ID4gPiBfdHVuZXJfZW5fYml0LCAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC5wY3dfcmVn ID0NCj4gPiA+ID4gPiA+IF9wY3dfcmVnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAucGN3X3NoaWZ0ID0NCj4gPiA+ID4g PiA+IF9wY3dfc2hpZnQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgLnBjd19jaGdfcmVnID0NCj4gPiA+ID4gPiA+IF9wY3dfY2hn X3JlZywgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgIC5lbl9yZWcgPQ0KPiA+ID4gPiA+ID4gX2VuX3JlZywgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAucGxsX2Vu X2JpdCA9DQo+ID4gPiA+ID4gPiBfcGxsX2VuX2JpdCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQo+ID4gPiA+ID4gPiArICAgICAgIH0NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19wbGxfZGF0YSBwbGxzW10gPSB7DQo+ID4gPiA+ID4g PiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9OTkFQTEwsICJubmFwbGwiLCAweDAzOTAsIDB4MDNh MCwNCj4gPiA+ID4gPiA+IDAsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgMCwgMCwgMjIs IDB4MDM5OCwgMjQsIDAsIDAsIDAsIDB4MDM5OCwgMCwNCj4gPiA+ID4gDQo+ID4gPiA+IDB4MDM5 OCwNCj4gPiA+ID4gPiA+IDAsIDkpLA0KPiA+ID4gPiA+ID4gKyAgICAgICBQTEwoQ0xLX0FQTUlY RURfUkVTUExMLCAicmVzcGxsIiwgMHgwMTkwLCAweDAzMjAsDQo+ID4gPiA+ID4gPiAwLA0KPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgIDAsIDAsIDIyLCAweDAxOTgsIDI0LCAwLCAwLCAwLCAw eDAxOTgsIDAsDQo+ID4gPiA+IA0KPiA+ID4gPiAweDAxOTgsDQo+ID4gPiA+ID4gPiAwLCA5KSwN Cj4gPiA+ID4gPiA+ICsgICAgICAgUExMKENMS19BUE1JWEVEX0VUSFBMTCwgImV0aHBsbCIsIDB4 MDM2MCwgMHgwMzcwLA0KPiA+ID4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAwLCAwLCAyMiwgMHgwMzY4LCAyNCwgMCwgMCwgMCwgMHgwMzY4LCAwLA0KPiA+ID4gPiANCj4g PiA+ID4gMHgwMzY4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBM TChDTEtfQVBNSVhFRF9NU0RDUExMLCAibXNkY3BsbCIsIDB4MDcxMCwgMHgwNzIwLA0KPiA+ID4g PiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAwLCAwLCAyMiwgMHgwNzE4LCAy NCwgMCwgMCwgMCwgMHgwNzE4LCAwLA0KPiA+ID4gPiANCj4gPiA+ID4gMHgwNzE4LA0KPiA+ID4g PiA+ID4gMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9UVkRQTEwx LCAidHZkcGxsMSIsIDB4MDBhMCwgMHgwMGIwLA0KPiA+ID4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAwLCAwLCAyMiwgMHgwMGE4LCAyNCwgMCwgMCwgMCwgMHgwMGE4LCAw LA0KPiA+ID4gPiANCj4gPiA+ID4gMHgwMGE4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ ID4gPiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9UVkRQTEwyLCAidHZkcGxsMiIsIDB4MDBjMCwg MHgwMGQwLA0KPiA+ID4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAwLCAw LCAyMiwgMHgwMGM4LCAyNCwgMCwgMCwgMCwgMHgwMGM4LCAwLA0KPiA+ID4gPiANCj4gPiA+ID4g MHgwMGM4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtf QVBNSVhFRF9NTVBMTCwgIm1tcGxsIiwgMHgwMGUwLCAweDAwZjAsDQo+ID4gPiA+IA0KPiA+ID4g PiAweGZmMDAwMDAwLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIEhBVkVfUlNUX0JBUiwg QklUKDIzKSwgMjIsIDB4MDBlOCwgMjQsIDAsDQo+ID4gPiA+ID4gPiAwLCAwLA0KPiA+ID4gPiA+ ID4gMHgwMGU4LCAwLCAweDAwZTgsIDAsIDkpLA0KPiA+ID4gPiA+ID4gKyAgICAgICBQTEwoQ0xL X0FQTUlYRURfTUFJTlBMTCwgIm1haW5wbGwiLCAweDAxZDAsIDB4MDFlMCwNCj4gPiA+ID4gPiA+ IDB4ZmYwMDAwMDAsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgSEFWRV9SU1RfQkFSLCBC SVQoMjMpLCAyMiwgMHgwMWQ4LCAyNCwgMCwNCj4gPiA+ID4gPiA+IDAsIDAsDQo+ID4gPiA+ID4g PiAweDAxZDgsIDAsIDB4MDFkOCwgMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtf QVBNSVhFRF9WREVDUExMLCAidmRlY3BsbCIsIDB4MDg5MCwgMHgwOGEwLA0KPiA+ID4gPiA+ID4g MCwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAwLCAwLCAyMiwgMHgwODk4LCAyNCwgMCwg MCwgMCwgMHgwODk4LCAwLA0KPiA+ID4gPiANCj4gPiA+ID4gMHgwODk4LA0KPiA+ID4gPiA+ID4g MCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9JTUdQTEwsICJpbWdw bGwiLCAweDAxMDAsIDB4MDExMCwNCj4gPiA+ID4gPiA+IDAsDQo+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgMCwgMCwgMjIsIDB4MDEwOCwgMjQsIDAsIDAsIDAsIDB4MDEwOCwgMCwNCj4gPiA+ ID4gDQo+ID4gPiA+IDB4MDEwOCwNCj4gPiA+ID4gPiA+IDAsIDkpLA0KPiA+ID4gPiA+ID4gKyAg ICAgICBQTEwoQ0xLX0FQTUlYRURfVU5JVlBMTCwgInVuaXZwbGwiLCAweDAxZjAsIDB4MDcwMCwN Cj4gPiA+ID4gPiA+IDB4ZmYwMDAwMDAsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgSEFW RV9SU1RfQkFSLCBCSVQoMjMpLCAyMiwgMHgwMWY4LCAyNCwgMCwNCj4gPiA+ID4gPiA+IDAsIDAs DQo+ID4gPiA+ID4gPiAweDAxZjgsIDAsIDB4MDFmOCwgMCwgOSksDQo+ID4gPiA+ID4gPiArICAg ICAgIFBMTChDTEtfQVBNSVhFRF9IRE1JUExMMSwgImhkbWlwbGwxIiwgMHgwOGMwLA0KPiA+ID4g PiA+ID4gMHgwOGQwLA0KPiA+ID4gPiANCj4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAwLCAwLCAyMiwgMHgwOGM4LCAyNCwgMCwgMCwgMCwgMHgwOGM4LCAwLA0KPiA+ID4g PiANCj4gPiA+ID4gMHgwOGM4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ID4gPiArICAg ICAgIFBMTChDTEtfQVBNSVhFRF9IRE1JUExMMiwgImhkbWlwbGwyIiwgMHgwODcwLA0KPiA+ID4g PiA+ID4gMHgwODgwLA0KPiA+ID4gPiANCj4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAwLCAwLCAyMiwgMHgwODc4LCAyNCwgMCwgMCwgMCwgMHgwODc4LCAwLA0KPiA+ID4g PiANCj4gPiA+ID4gMHgwODc4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ID4gPiArICAg ICAgIFBMTChDTEtfQVBNSVhFRF9IRE1JUlhfQVBMTCwgImhkbWlyeF9hcGxsIiwgMHgwOGUwLA0K PiA+ID4gPiANCj4gPiA+ID4gMHgwZGQ0LA0KPiA+ID4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAwLCAwLCAzMiwgMHgwOGU4LCAyNCwgMCwgMCwgMCwgMHgwOGVjLCAwLA0K PiA+ID4gPiANCj4gPiA+ID4gMHgwOGU4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ID4g PiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9VU0IxUExMLCAidXNiMXBsbCIsIDB4MDFhMCwgMHgw MWIwLA0KPiA+ID4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAwLCAwLCAy MiwgMHgwMWE4LCAyNCwgMCwgMCwgMCwgMHgwMWE4LCAwLA0KPiA+ID4gPiANCj4gPiA+ID4gMHgw MWE4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtfQVBN SVhFRF9BRFNQUExMLCAiYWRzcHBsbCIsIDB4MDdlMCwgMHgwN2YwLA0KPiA+ID4gPiA+ID4gMCwN Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAwLCAwLCAyMiwgMHgwN2U4LCAyNCwgMCwgMCwg MCwgMHgwN2U4LCAwLA0KPiA+ID4gPiANCj4gPiA+ID4gMHgwN2U4LA0KPiA+ID4gPiA+ID4gMCwg OSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9BUExMMSwgImFwbGwxIiwg MHgwN2MwLCAweDBkYzAsIDAsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgMCwgMCwgMzIs IDB4MDdjOCwgMjQsIDB4MDQ3MCwgMHgwMDAwLCAxMiwNCj4gPiA+ID4gDQo+ID4gPiA+IDB4MDdj YywNCj4gPiA+ID4gPiA+IDAsIDB4MDdjOCwgMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBM TChDTEtfQVBNSVhFRF9BUExMMiwgImFwbGwyIiwgMHgwNzgwLCAweDBkYzQsIDAsDQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgMCwgMCwgMzIsIDB4MDc4OCwgMjQsIDB4MDQ3NCwgMHgwMDAw LCAxMywNCj4gPiA+ID4gDQo+ID4gPiA+IDB4MDc4YywNCj4gPiA+ID4gPiA+IDAsIDB4MDc4OCwg MCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9BUExMMywgImFwbGwz IiwgMHgwNzYwLCAweDBkYzgsIDAsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgMCwgMCwg MzIsIDB4MDc2OCwgMjQsIDB4MDQ3OCwgMHgwMDAwLCAxNCwNCj4gPiA+ID4gDQo+ID4gPiA+IDB4 MDc2YywNCj4gPiA+ID4gPiA+IDAsIDB4MDc2OCwgMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAg IFBMTChDTEtfQVBNSVhFRF9BUExMNCwgImFwbGw0IiwgMHgwNzQwLCAweDBkY2MsIDAsDQo+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgMCwgMCwgMzIsIDB4MDc0OCwgMjQsIDB4MDQ3QywgMHgw MDAwLCAxNSwNCj4gPiA+ID4gDQo+ID4gPiA+IDB4MDc0YywNCj4gPiA+ID4gPiA+IDAsIDB4MDc0 OCwgMCwgOSksDQo+ID4gPiA+ID4gPiArICAgICAgIFBMTChDTEtfQVBNSVhFRF9BUExMNSwgImFw bGw1IiwgMHgwN2EwLCAweDBkZDAsDQo+ID4gPiA+IA0KPiA+ID4gPiAweDEwMDAwMCwNCj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAwLCAwLCAzMiwgMHgwN2E4LCAyNCwgMHgwNDgwLCAweDAw MDAsIDE2LA0KPiA+ID4gPiANCj4gPiA+ID4gMHgwN2FjLA0KPiA+ID4gPiA+ID4gMCwgMHgwN2E4 LCAwLCA5KSwNCj4gPiA+ID4gPiA+ICsgICAgICAgUExMKENMS19BUE1JWEVEX01GR1BMTCwgIm1m Z3BsbCIsIDB4MDM0MCwgMHgwMzUwLA0KPiA+ID4gPiA+ID4gMCwNCj4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAwLCAwLCAyMiwgMHgwMzQ4LCAyNCwgMCwgMCwgMCwgMHgwMzQ4LCAwLA0KPiA+ ID4gPiANCj4gPiA+ID4gMHgwMzQ4LA0KPiA+ID4gPiA+ID4gMCwgOSksDQo+ID4gPiA+ID4gPiAr ICAgICAgIFBMTChDTEtfQVBNSVhFRF9ER0lQTEwsICJkZ2lwbGwiLCAweDAxNTAsIDB4MDE2MCwN Cj4gPiA+ID4gPiA+IDAsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgMCwgMCwgMjIsIDB4 MDE1OCwgMjQsIDAsIDAsIDAsIDB4MDE1OCwgMCwNCj4gPiA+ID4gDQo+ID4gPiA+IDB4MDE1OCwN Cj4gPiA+ID4gPiA+IDAsIDkpLA0KPiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiArc3RhdGljIHN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICp0b3BfY2xrX2RhdGE7DQo+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIHZvaWQgY2xrX210ODE5NV90b3BfaW5p dF9lYXJseShzdHJ1Y3QgZGV2aWNlX25vZGUNCj4gPiA+ID4gDQo+ID4gPiA+ICpub2RlKQ0KPiA+ ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsgICAgICAgaW50IGk7DQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArICAgICAgIHRvcF9jbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtf VE9QX05SX0NMSyk7DQo+ID4gPiA+ID4gPiArICAgICAgIGlmICghdG9wX2Nsa19kYXRhKQ0KPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IENMS19UT1BfTlJfQ0xLOyBpKyspDQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgdG9wX2Nsa19kYXRhLT5jbGtzW2ldID0gRVJSX1BUUigtDQo+ ID4gPiA+ID4gPiBFUFJPQkVfREVGRVIpOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKyAg ICAgICBtdGtfY2xrX3JlZ2lzdGVyX2ZhY3RvcnModG9wX2Vhcmx5X2RpdnMsDQo+ID4gPiA+ID4g PiBBUlJBWV9TSVpFKHRvcF9lYXJseV9kaXZzKSwgdG9wX2Nsa19kYXRhKTsNCj4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ICsgICAgICAgb2ZfY2xrX2FkZF9wcm92aWRlcihub2RlLCBvZl9jbGtf c3JjX29uZWNlbGxfZ2V0LA0KPiA+ID4gPiA+ID4gdG9wX2Nsa19kYXRhKTsNCj4gPiA+ID4gPiA+ ICt9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArQ0xLX09GX0RFQ0xBUkVfRFJJVkVSKG10 ODE5NV90b3Bja2dlbiwNCj4gPiA+ID4gDQo+ID4gPiA+ICJtZWRpYXRlayxtdDgxOTUtdG9wY2tn ZW4iLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY2xrX210ODE5NV90b3Bf aW5pdF9lYXJseSk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGludCBjbGtf bXQ4MTk1X3RvcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gPiA+ID4gPiAqcGRl dikNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbm9kZSA9IHBkZXYtPmRldi5vZl9ub2RlOw0KPiA+ID4gPiA+ID4gKyAgICAgICBpbnQgcjsN Cj4gPiA+ID4gPiA+ICsgICAgICAgdm9pZCBfX2lvbWVtICpiYXNlOw0KPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gKyAgICAgICBiYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNl KHBkZXYsIDApOw0KPiA+ID4gPiA+ID4gKyAgICAgICBpZiAoSVNfRVJSKGJhc2UpKQ0KPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGJhc2UpOw0KPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gKyAgICAgICBtdGtfY2xrX3JlZ2lzdGVyX2ZpeGVkX2Nsa3ModG9wX2Zp eGVkX2Nsa3MsDQo+ID4gPiA+ID4gPiBBUlJBWV9TSVpFKHRvcF9maXhlZF9jbGtzKSwNCj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHRvcF9jbGtfZGF0YSk7DQo+ID4gPiA+ID4g PiArICAgICAgIG10a19jbGtfcmVnaXN0ZXJfZmFjdG9ycyh0b3BfZWFybHlfZGl2cywNCj4gPiA+ ID4gPiA+IEFSUkFZX1NJWkUodG9wX2Vhcmx5X2RpdnMpLCB0b3BfY2xrX2RhdGEpOw0KPiA+ID4g PiA+ID4gKyAgICAgICBtdGtfY2xrX3JlZ2lzdGVyX2ZhY3RvcnModG9wX2RpdnMsDQo+ID4gPiA+ ID4gPiBBUlJBWV9TSVpFKHRvcF9kaXZzKSwNCj4gPiA+ID4gPiA+IHRvcF9jbGtfZGF0YSk7DQo+ ID4gPiA+ID4gPiArICAgICAgIG10a19jbGtfcmVnaXN0ZXJfbXV4ZXModG9wX210a19tdXhlcywN Cj4gPiA+ID4gPiA+IEFSUkFZX1NJWkUodG9wX210a19tdXhlcyksIG5vZGUsDQo+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAmbXQ4MTk1X2Nsa19sb2NrLCB0b3BfY2xrX2RhdGEp Ow0KPiA+ID4gPiA+ID4gKyAgICAgICBtdGtfY2xrX3JlZ2lzdGVyX2NvbXBvc2l0ZXModG9wX211 eGVzLA0KPiA+ID4gPiA+ID4gQVJSQVlfU0laRSh0b3BfbXV4ZXMpLCBiYXNlLA0KPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgJm10ODE5NV9jbGtfbG9jaywgdG9wX2Nsa19kYXRh KTsNCj4gPiA+ID4gPiA+ICsgICAgICAgbXRrX2Nsa19yZWdpc3Rlcl9jb21wb3NpdGVzKHRvcF9h ZGpfZGl2cywNCj4gPiA+ID4gPiA+IEFSUkFZX1NJWkUodG9wX2Fkal9kaXZzKSwgYmFzZSwNCj4g PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICZtdDgxOTVfY2xrX2xvY2ssIHRvcF9j bGtfZGF0YSk7DQo+ID4gPiA+IA0KPiA+ID4gPiBGdXR1cmUgd29yazogdGhlc2UgZnVuY3Rpb25z IHByb2JhYmx5IHNob3VsZCBiZSBtYWRlIHRvIHJldHVybg0KPiA+ID4gPiBlcnJvcnMuDQo+ID4g PiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+ID4gPiA+ICsgICAgICAgciA9IG10a19jbGtfcmVn aXN0ZXJfZ2F0ZXMobm9kZSwgdG9wX2Nsa3MsDQo+ID4gPiA+ID4gPiBBUlJBWV9TSVpFKHRvcF9j bGtzKSwgdG9wX2Nsa19kYXRhKTsNCj4gPiA+ID4gPiA+ICsgICAgICAgaWYgKHIpDQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiArICAgICAgIHJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsDQo+ID4gPiA+ID4gPiBv Zl9jbGtfc3JjX29uZWNlbGxfZ2V0LA0KPiA+ID4gPiA+ID4gdG9wX2Nsa19kYXRhKTsNCj4gPiA+ ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGludCBjbGtfbXQ4 MTk1X2luZnJhX2FvX3Byb2JlKHN0cnVjdA0KPiA+ID4gPiA+ID4gcGxhdGZvcm1fZGV2aWNlDQo+ ID4gPiA+IA0KPiA+ID4gPiAqcGRldikNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArICAg ICAgIHN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsNCj4gPiA+ID4gPiA+ICsgICAg ICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7DQo+ID4gPiA+ ID4gPiArICAgICAgIGludCByOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKyAgICAgICBj bGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfSU5GUkFfQU9fTlJfQ0xLKTsNCj4gPiA+ ID4gPiA+ICsgICAgICAgaWYgKCFjbGtfZGF0YSkNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsgICAgICAgciA9 IG10a19jbGtfcmVnaXN0ZXJfZ2F0ZXMobm9kZSwgaW5mcmFfYW9fY2xrcywNCj4gPiA+ID4gPiA+ IEFSUkFZX1NJWkUoaW5mcmFfYW9fY2xrcyksIGNsa19kYXRhKTsNCj4gPiA+ID4gPiA+ICsgICAg ICAgaWYgKHIpDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiArICAgICAgIHJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5v ZGUsDQo+ID4gPiA+ID4gPiBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LA0KPiA+ID4gPiA+ID4gY2xr X2RhdGEpOw0KPiA+ID4gPiANCj4gPiA+ID4gWW91IGFyZSBsZWFraW5nIGNsa19kYXRhIGlmIG10 a19jbGtfcmVnaXN0ZXJfZ2F0ZXMoKSBvcg0KPiA+ID4gPiBvZl9jbGtfYWRkX3Byb3ZpZGVyKCkN Cj4gPiA+ID4gZmFpbC4NCj4gPiA+ID4gDQo+ID4gDQo+ID4gDQo+ID4gDQo+ID4gT2ssIEkgd2ls bCBmaXggaXQgaW5jbHVkZSB5b3UgbWVudGlvbiBiZWxvdywgdGhhbmtzIGZvciB5b3UNCj4gPiBj b21tZW50Lg0KPiA+IA0KPiA+IA0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ICtzdGF0aWMgaW50IGNsa19tdDgxOTVfYXBtaXhlZF9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlDQo+ID4gPiA+IA0KPiA+ID4gPiAqcGRldikNCj4gPiA+ID4gPiA+ICt7DQo+ID4g PiA+ID4gPiArICAgICAgIHN0cnVjdCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsNCj4gPiA+ ID4gPiA+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25v ZGU7DQo+ID4gPiA+ID4gPiArICAgICAgIGludCByOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gKyAgICAgICBjbGtfZGF0YSA9IG10a19hbGxvY19jbGtfZGF0YShDTEtfQVBNSVhFRF9OUl9D TEspOw0KPiA+ID4gPiA+ID4gKyAgICAgICBpZiAoIWNsa19kYXRhKQ0KPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g KyAgICAgICBtdGtfY2xrX3JlZ2lzdGVyX3BsbHMobm9kZSwgcGxscywgQVJSQVlfU0laRShwbGxz KSwNCj4gPiA+ID4gPiA+IGNsa19kYXRhKTsNCj4gPiA+ID4gPiA+ICsgICAgICAgciA9IG10a19j bGtfcmVnaXN0ZXJfZ2F0ZXMobm9kZSwgYXBtaXhlZF9jbGtzLA0KPiA+ID4gPiA+ID4gQVJSQVlf U0laRShhcG1peGVkX2Nsa3MpLCBjbGtfZGF0YSk7DQo+ID4gPiA+ID4gPiArICAgICAgIGlmIChy KQ0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiByOw0KPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gKyAgICAgICByZXR1cm4gb2ZfY2xrX2FkZF9wcm92aWRlcihub2RlLA0KPiA+ ID4gPiA+ID4gb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwNCj4gPiA+ID4gPiA+IGNsa19kYXRhKTsN Cj4gPiA+ID4gDQo+ID4gPiA+IFNhbWUgaGVyZS4NCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IA0K PiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW50IGNs a19tdDgxOTVfcGVyaV9hb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gPiA+IA0K PiA+ID4gPiAqcGRldikNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArICAgICAgIHN0cnVj dCBjbGtfb25lY2VsbF9kYXRhICpjbGtfZGF0YTsNCj4gPiA+ID4gPiA+ICsgICAgICAgc3RydWN0 IGRldmljZV9ub2RlICpub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7DQo+ID4gPiA+ID4gPiArICAg ICAgIGludCByOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKyAgICAgICBjbGtfZGF0YSA9 IG10a19hbGxvY19jbGtfZGF0YShDTEtfUEVSSV9BT19OUl9DTEspOw0KPiA+ID4gPiA+ID4gKyAg ICAgICBpZiAoIWNsa19kYXRhKQ0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKyAgICAgICByID0gbXRrX2Nsa19y ZWdpc3Rlcl9nYXRlcyhub2RlLCBwZXJpX2FvX2Nsa3MsDQo+ID4gPiA+ID4gPiBBUlJBWV9TSVpF KHBlcmlfYW9fY2xrcyksIGNsa19kYXRhKTsNCj4gPiA+ID4gPiA+ICsgICAgICAgaWYgKHIpDQo+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiArICAgICAgIHJldHVybiBvZl9jbGtfYWRkX3Byb3ZpZGVyKG5vZGUsDQo+ID4gPiA+ ID4gPiBvZl9jbGtfc3JjX29uZWNlbGxfZ2V0LA0KPiA+ID4gPiA+ID4gY2xrX2RhdGEpOw0KPiA+ ID4gPiANCj4gPiA+ID4gQW5kIGhlcmUuDQo+ID4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gPiA+ ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgb2ZfbWF0Y2hfY2xrX210ODE5NVtdID0gew0KPiA+ID4gPiA+ID4gKyAg ICAgICB7DQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAibWVkaWF0 ZWssbXQ4MTk1LWFwbWl4ZWRzeXMiLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC5kYXRh ID0gY2xrX210ODE5NV9hcG1peGVkX3Byb2JlLA0KPiA+ID4gPiA+ID4gKyAgICAgICB9LCB7DQo+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1 LXRvcGNrZ2VuIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAuZGF0YSA9IGNsa19tdDgx OTVfdG9wX3Byb2JlLA0KPiA+ID4gPiA+ID4gKyAgICAgICB9LCB7DQo+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LQ0KPiA+ID4gPiA+ID4g aW5mcmFjZmdfYW8iLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC5kYXRhID0gY2xrX210 ODE5NV9pbmZyYV9hb19wcm9iZSwNCj4gPiA+ID4gPiA+ICsgICAgICAgfSwgew0KPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgIC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5NS1wZXJpY2Zn X2FvIiwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAuZGF0YSA9IGNsa19tdDgxOTVfcGVy aV9hb19wcm9iZSwNCj4gPiA+ID4gDQo+ID4gPiA+IFRoaXMgZmlsZSBjb250YWlucyBmb3VyIGRy aXZlcnMuIFRoZXkgZG8gbm90IGhhdmUgZGVwZW5kIG9uDQo+ID4gPiA+IGVhY2gNCj4gPiA+ID4g b3RoZXIsDQo+ID4gPiA+IGFuZCBkbyBub3QgbmVlZCB0byBiZSBpbiB0aGUgc2FtZSBmaWxlLiBQ bGVhc2Ugc3BsaXQgdGhlbSBpbnRvDQo+ID4gPiA+IGRpZmZlcmVudA0KPiA+ID4gPiBmaWxlcyBh bmQgcHJlZmVyYWJseSBkaWZmZXJlbnQgcGF0Y2hlcyBzbyBwZW9wbGUgcmVhZGluZyB0aGVtDQo+ ID4gPiA+IGRvbid0DQo+ID4gPiA+IGhhdmUNCj4gPiA+ID4gdG8gbG9vayB0aHJvdWdoIHVucmVs YXRlZCBkYXRhLiBUaGVuIHlvdSBkb24ndCBuZWVkIHRoZSBwb2ludGVyDQo+ID4gPiA+IHRvDQo+ ID4gPiA+IHRoZQ0KPiA+ID4gPiBwcm9iZSBmdW5jdGlvbi4NCj4gPiA+ID4gDQo+ID4gDQo+ID4g DQo+ID4gDQo+ID4gT2ssIEkgd2lsbCBzcGxpdCB0byBkaWZmZXJlbnQgZHJpdmVyLg0KPiA+IA0K PiA+IA0KPiA+ID4gPiBZb3UgY2FuIGtlZXAgdGhlbSB1bmRlciB0aGUgc2FtZSBLY29uZmlnIHN5 bWJvbC4NCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gPiA+ID4gKyAgICAgICB9LCB7 DQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLyogc2VudGluZWwgKi8NCj4gPiA+ID4gPiA+ ICsgICAgICAgfQ0KPiA+ID4gPiA+ID4gK307DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAr c3RhdGljIGludCBjbGtfbXQ4MTk1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp DQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gKyAgICAgICBpbnQgKCpjbGtfcHJvYmUpKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOw0KPiA+ID4gPiA+ID4gKyAgICAgICBpbnQgcjsN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsgICAgICAgY2xrX3Byb2JlID0gb2ZfZGV2aWNl X2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOw0KPiA+ID4gPiA+ID4gKyAgICAgICBpZiAoIWNs a19wcm9iZSkNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsgICAgICAgciA9IGNsa19wcm9iZShwZGV2KTsNCj4g PiA+ID4gPiA+ICsgICAgICAgaWYgKHIpDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgZGV2 X2VycigmcGRldi0+ZGV2LA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgImNv dWxkIG5vdCByZWdpc3RlciBjbG9jayBwcm92aWRlcjoNCj4gPiA+ID4gPiA+ICVzOg0KPiA+ID4g PiA+ID4gJWRcbiIsDQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5u YW1lLCByKTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsgICAgICAgcmV0dXJuIHI7DQo+ ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIGNsa19tdDgxOTVfZHJ2ID0gew0KPiA+ID4gPiA+ID4gKyAgICAgICAu cHJvYmUgPSBjbGtfbXQ4MTk1X3Byb2JlLA0KPiA+ID4gPiA+ID4gKyAgICAgICAuZHJpdmVyID0g ew0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC5uYW1lID0gImNsay1tdDgxOTUiLA0KPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX2Nsa19t dDgxOTUsDQo+ID4gPiA+ID4gPiArICAgICAgIH0sDQo+ID4gPiA+ID4gPiArfTsNCj4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW50IF9faW5pdCBjbGtfbXQ4MTk1X2luaXQodm9p ZCkNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArICAgICAgIHJldHVybiBwbGF0Zm9ybV9k cml2ZXJfcmVnaXN0ZXIoJmNsa19tdDgxOTVfZHJ2KTsNCj4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiArYXJjaF9pbml0Y2FsbChjbGtfbXQ4MTk1X2luaXQpOw0KPiA+ ID4gPiANCj4gPiA+ID4gSXMgdGhlcmUgYW55IHBhcnRpY3VsYXIgcmVhc29uIGZvciBhcmNoX2lu aXRjYWxsPw0KPiA+ID4gPiANCj4gPiANCj4gPiANCj4gPiBBUE1JWEVEU1lTL1RPUENLR0VOIGFy ZSBjbG9jayBzb3VyY2Ugb2Ygb3RoZXJzIElQIGJsb2NrIGFuZA0KPiA+IFBFUklDRkcvSU5GUkFD RkcgcHJvdmlkZSBwZXJpcGhlcmFsIGFuZCBidXMgY2xvY2tzIGNvbnRyb2wsIHNvIHdlDQo+ID4g d2FudA0KPiA+IHRvIGluaXQgZWFybHkuDQo+IA0KPiBTdXJlLCBidXQgdGhpcyBzaG91bGQgcmVh bGx5IGJlIGRvbmUgdGhyb3VnaCBzdGFuZGFyZCBkZXBlbmRlbmN5DQo+IGhhbmRsaW5nLCBhbmQg bm90IHRyeWluZyB0byBzZXF1ZW5jZSB0aGVtIGJ5IGhhbmQuDQo+IA0KPiBJcyB0aGVyZSBhbiBv YnNlcnZhYmxlIGJlbmVmaXQgdG8gaGF2aW5nIGFyY2hfaW5pdGNhbGwoKSB2cyB0aGUNCj4gc3Rh bmRhcmQNCj4gb3JkZXIgd2l0aCBidWlsdGluX3BsYXRmb3JtX2RyaXZlcigpPyBJZiBzbywgdGhp cyBzaG91bGQgYmUNCj4gZG9jdW1lbnRlZA0KPiBoZXJlIGFzIGEganVzdGlmY2F0aW9uIGZvciBh cmNoX2luaXRjYWxsKCkuDQo+IA0KDQpJIHdpbGwgdXNlIGJ1aWx0aW5fcGxhdGZvcm1fZHJpdmVy IGxpa2Ugb3RoZXIgc3Vic3lzIGlwIGJsb2NrDQppbiBuZXh0IHZlcnNpb24uDQoNCkJlc3QgUmVn YXJkcywNCkNodW4tSmllDQoNCj4gDQo+IFJlZ2FyZHMNCj4gQ2hlbll1DQo=