From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B5FE9443; Fri, 27 Sep 2024 17:15:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.20 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727457341; cv=none; b=dJdFAdnyWzPh5uduGp3KDS2syGW30O4oanfgIJlPqW/XleEaJtgL2AnHwrfZNkrbIQ/9Z0++VQbXhdZhS2Vc3vhnPFiZi21vLaCAflBZSvHgmQlz6oqWX+3E3U7WD7ocrfUmH5qU3AvFC9s4d86LnRVWodVVuH0viaFe6Ome1ag= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1727457341; c=relaxed/simple; bh=aUopF3eSoG+D/H2NCArMXPmI+6A2hzqp+AOuXe57NMo=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=ao3JK+qH+rBI2vQ/25FxUDEf4MPg8OsAn2ROJIkJZkZa2A4YZceOFAkpQwIEHd797JmzucNfJIG/7HYsUdDZFa3MCUuwsXFYc0Nn17COplpTmWIXncFdKEKy3YCPG6298jlazxN8x3ijj2cXEDBmnXclt1FadUQjYEEqvN80YVA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=ijuu/ihM; arc=none smtp.client-ip=212.227.17.20 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="ijuu/ihM" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1727457309; x=1728062109; i=w_armin@gmx.de; bh=aUopF3eSoG+D/H2NCArMXPmI+6A2hzqp+AOuXe57NMo=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=ijuu/ihMPjaKLNaNk9inOy/kD/QFPk4JF9hMTqBPLyD4p4YbO5npRIat7SIJ0wyf PiLRcW3wNJVePk1Kss9WTIDJK/ghM2/cJsMgeoIuacBMBpn52S5q6tkSzcuQNHjyD o7vZRR0zAB9bcnLXZSbnIQ69zscjvwWRm36tbgiQZCkXey3sFTaofvC9eTVpNiBnz YaFxRGgAdONVerVWKoZPJvJy+InaOoBJEgK3DlmsSthLQrOfBqPkItTUjkiG9EO4A OAoCu9atQVixFK/9qN7+/99R4EqaC/xodkA7C7qRrbxZ17BGzQkhcRA+aIe04wc9l S9dDE+abR4o68KPyRw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [141.30.226.129] ([141.30.226.129]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N0G1n-1rxTvn3LVP-00s1be; Fri, 27 Sep 2024 19:15:08 +0200 Message-ID: <0787a2ca-7d77-49ea-8607-a91fdac53d49@gmx.de> Date: Fri, 27 Sep 2024 19:15:05 +0200 Precedence: bulk X-Mailing-List: linux-leds@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/1] platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices To: Werner Sembach , Hans de Goede , =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= Cc: bentiss@kernel.org, dri-devel@lists.freedesktop.org, jelle@vdwaa.nl, jikos@kernel.org, lee@kernel.org, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org, miguel.ojeda.sandonis@gmail.com, ojeda@kernel.org, onitake@gmail.com, pavel@ucw.cz, platform-driver-x86@vger.kernel.org References: <20240926174405.110748-1-wse@tuxedocomputers.com> <20240926174405.110748-2-wse@tuxedocomputers.com> <3dde4572-78a0-4a93-916a-563b7150f078@tuxedocomputers.com> Content-Language: en-US From: Armin Wolf In-Reply-To: <3dde4572-78a0-4a93-916a-563b7150f078@tuxedocomputers.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:sxbMEY1Wt6RRrrz11VTDs+T4x99thyKL/epAoEBspsu/tSsT3NH aVoL3IYEjZLKUTJsFnZ5du+t2HC4FeOP5mraTcCdYMZjfEPin2HA3y0/BhVimrM4ZIRVTS5 U6MOmZYkYgmysEHXDA/5mX34tmGsMkXGdsu/nfOCbr6+rtotHVYP8IDHE3lHAN4vEhfYZws 0T8exztKkMh+DPNF7A9xQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:uE4KMAQmwrY=;kxt5gv74f+ykJhQgpnkkqNFusRQ LKLCfVHDDn6YqtbfX7A+KHfOPfCwGLqDqGs89XKbXmexJvs/fkMeuLBSCTA7o+OWLIMlq2mLq /ucF7J+1X66OPgKC0bu4q9UQDS70qiLD2mJ0BexhGCXhdLc1HcqRuPxeoPpsf2NiaSKg+hna5 OpKoxc4DC2dJIfPUoajZRbG7rfsOEOyPBe68DTIyuO09SQybmkOaRNTlzEHFZZHcWiVe52cPe sb8sC4hpSQQRSzdGvc7xp3S9U4k90uIzfCcJShh2M7DwJLMD3AKlYlRvdzWkkmR2v1XtGaGe1 z7nTv2MiDEYOBYbfPlTvhzFXPByz6ToUPYYxqzPgqUffESg7hDUf0VoiopU4kLc78preI8u8E jgviFvh1tpfIH0DrTA7on8RQADorEVeyiBUQoEnup/7iIBF+lnb15/+e7GabQkHErzXCIPVNc nNPxM9KOIQ8NtVNv4P4IHW24Z18xnJmwczcuI6iCN5peqbsRVK6qL7OYSyAcLIteShQh8JIJq oblmsgb5gFUMc8h4BYdQdiY80HYQTrZDaDfc7rwu46D1tEp1Wm8WDUgh/6p0wtxqpEj7vKaHh 6mNFQYL0/1gecpVfXA71+mVLVdB60UQERI7IcSgjpwno1CiwYtqrgU6els/ToeTgo7uoWvmSu XFvMXfDm7bLIvkK9bQGgfKYxoBPuc4TEURMB3y4ZQ2DyREey1Jtu+fBL8Tty/v9qL2AM9Ek4u rv5/ad5etVFKp+JcWRI7USeXO2f4WxsrwkKddOE1OBe7Ba1/IdcoDXGCxpmtUO+k8Gm2rd2/F R24B1kJYUoJlbdJeR6hicrvkHvO+XRm9Zfn0p2rXxZLIM= QW0gMjcuMDkuMjQgdW0gMDg6NTkgc2NocmllYiBXZXJuZXIgU2VtYmFjaDoNCg0KPiBIaSwNCj4N Cj4gQW0gMjYuMDkuMjQgdW0gMjA6Mzkgc2NocmllYiBBcm1pbiBXb2xmOg0KPj4gQW0gMjYuMDku MjQgdW0gMTk6NDQgc2NocmllYiBXZXJuZXIgU2VtYmFjaDoNCj4+DQo+Pj4gVGhlIFRVWEVETyBT aXJpdXMgMTYgR2VuMSBhbmQgVFVYRURPIFNpcml1cyAxNiBHZW4yIGRldmljZXMgaGF2ZSBhIA0K Pj4+IHBlci1rZXkNCj4+PiBjb250cm9sbGFibGUgUkdCIGtleWJvYXJkIGJhY2tsaWdodC4gVGhl IGZpcm13YXJlIEFQSSBmb3IgaXQgaXMgDQo+Pj4gaW1wbGVtZW50ZWQNCj4+PiB2aWEgV01JLg0K Pj4+DQo+Pj4gVG8gbWFrZSB0aGUgYmFja2xpZ2h0IHVzZXJzcGFjZSBjb25maWd1cmFibGUgdGhp cyBkcml2ZXIgZW11bGF0ZXMgYQ0KPj4+IExhbXBBcnJheSBISUQgZGV2aWNlIGFuZCB0cmFuc2xh dGVzIHRoZSBpbnB1dCBmcm9tIGhpZHJhdyB0byB0aGUNCj4+PiBjb3JyZXNwb25kaW5nIFdNSSBj YWxscy4gVGhpcyBpcyBhIG5ldyBhcHByb2FjaCBhcyB0aGUgbGVkcyANCj4+PiBzdWJzeXN0ZW0g bGFja3MNCj4+PiBhIHN1aXRhYmxlIFVBUEkgZm9yIHBlci1rZXkga2V5Ym9hcmQgYmFja2xpZ2h0 cywgYW5kIGxpa2UgdGhpcyBubyANCj4+PiBuZXcgVUFQSQ0KPj4+IG5lZWRzIHRvIGJlIGVzdGFi bGlzaGVkLg0KPj4+DQo+Pj4gQ28tZGV2ZWxvcGVkLWJ5OiBDaHJpc3RvZmZlciBTYW5kYmVyZyA8 Y3NAdHV4ZWRvLmRlPg0KPj4+IFNpZ25lZC1vZmYtYnk6IENocmlzdG9mZmVyIFNhbmRiZXJnIDxj c0B0dXhlZG8uZGU+DQo+Pj4gU2lnbmVkLW9mZi1ieTogV2VybmVyIFNlbWJhY2ggPHdzZUB0dXhl ZG9jb21wdXRlcnMuY29tPg0KPj4+IExpbms6IA0KPj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2FsbC8xZmIwOGE3NC02MmM3LTRkMGMtYmE1ZC02NDhlMjMwODJkY2JAdHV4ZWRvY29tcHV0ZXJz LmNvbS8NCj4+PiAtLS0NCj4+PiDCoCBNQUlOVEFJTkVSU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDYgKw0K Pj4+IMKgIGRyaXZlcnMvcGxhdGZvcm0veDg2L0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoMKgIDIgKw0KPj4+IMKgIGRyaXZlcnMvcGxhdGZvcm0veDg2L01ha2Vm aWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMyArDQo+Pj4gwqAgZHJp dmVycy9wbGF0Zm9ybS94ODYvdHV4ZWRvL0tidWlsZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKg wqAgOSArDQo+Pj4gwqAgZHJpdmVycy9wbGF0Zm9ybS94ODYvdHV4ZWRvL0tjb25maWfCoMKgwqDC oMKgwqDCoMKgwqDCoCB8wqAgMTQgKw0KPj4+IMKgIC4uLi94ODYvdHV4ZWRvL3R1eGVkb19uYjA0 X3dtaV9hYl9pbml0LmPCoMKgwqDCoMKgIHzCoCA4NiArKw0KPj4+IMKgIC4uLi94ODYvdHV4ZWRv L3R1eGVkb19uYjA0X3dtaV9hYl9pbml0LmjCoMKgwqDCoMKgIHzCoCAyMCArDQo+Pj4gwqAgLi4u L3R1eGVkb19uYjA0X3dtaV9hYl92aXJ0dWFsX2xhbXBfYXJyYXkuY8KgwqAgfCA3NDEgDQo+Pj4g KysrKysrKysrKysrKysrKysrDQo+Pj4gwqAgLi4uL3R1eGVkb19uYjA0X3dtaV9hYl92aXJ0dWFs X2xhbXBfYXJyYXkuaMKgwqAgfMKgIDE4ICsNCj4+PiDCoCAuLi4veDg2L3R1eGVkby90dXhlZG9f bmIwNF93bWlfdXRpbC5jwqDCoMKgwqDCoMKgwqDCoCB8wqAgODUgKysNCj4+PiDCoCAuLi4veDg2 L3R1eGVkby90dXhlZG9fbmIwNF93bWlfdXRpbC5owqDCoMKgwqDCoMKgwqDCoCB8IDExMiArKysN Cj4+PiDCoCAxMSBmaWxlcyBjaGFuZ2VkLCAxMDk2IGluc2VydGlvbnMoKykNCj4+PiDCoCBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9wbGF0Zm9ybS94ODYvdHV4ZWRvL0tidWlsZA0KPj4+IMKg IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vS2NvbmZpZw0K Pj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCANCj4+PiBkcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhl ZG8vdHV4ZWRvX25iMDRfd21pX2FiX2luaXQuYw0KPj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCAN Cj4+PiBkcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vdHV4ZWRvX25iMDRfd21pX2FiX2luaXQu aA0KPj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCANCj4+PiBkcml2ZXJzL3BsYXRmb3JtL3g4Ni90 dXhlZG8vdHV4ZWRvX25iMDRfd21pX2FiX3ZpcnR1YWxfbGFtcF9hcnJheS5jDQo+Pj4gwqAgY3Jl YXRlIG1vZGUgMTAwNjQ0IA0KPj4+IGRyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby90dXhlZG9f bmIwNF93bWlfYWJfdmlydHVhbF9sYW1wX2FycmF5LmgNCj4+PiDCoCBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9wbGF0Zm9ybS94ODYvdHV4ZWRvL3R1eGVkb19uYjA0X3dtaV91dGlsLmMNCj4+ PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9wbGF0Zm9ybS94ODYvdHV4ZWRvL3R1eGVk b19uYjA0X3dtaV91dGlsLmgNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01B SU5UQUlORVJTDQo+Pj4gaW5kZXggY2M0MGE5ZDliOGNkMS4uMzM4NWFkNTFhZjE5NCAxMDA2NDQN Cj4+PiAtLS0gYS9NQUlOVEFJTkVSUw0KPj4+ICsrKyBiL01BSU5UQUlORVJTDQo+Pj4gQEAgLTIz MzU4LDYgKzIzMzU4LDEyIEBAIFQ6wqDCoMKgIGdpdCANCj4+PiBnaXQ6Ly9naXQua2VybmVsLm9y Zy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvbGVuYi9saW51eC5naXQgdHVyYm9zdGF0DQo+Pj4g wqAgRjrCoMKgwqAgdG9vbHMvcG93ZXIveDg2L3R1cmJvc3RhdC8NCj4+PiDCoCBGOsKgwqDCoCB0 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy90dXJib3N0YXQvDQo+Pj4NCj4+PiArVFVYRURPIERSSVZF UlMNCj4+PiArTTrCoMKgwqAgV2VybmVyIFNlbWJhY2ggPHdzZUB0dXhlZG9jb21wdXRlcnMuY29t Pg0KPj4+ICtMOsKgwqDCoCBwbGF0Zm9ybS1kcml2ZXIteDg2QHZnZXIua2VybmVsLm9yZw0KPj4+ ICtTOsKgwqDCoCBTdXBwb3J0ZWQNCj4+PiArRjrCoMKgwqAgZHJpdmVycy9wbGF0Zm9ybS94ODYv dHV4ZWRvLw0KPj4+ICsNCj4+PiDCoCBUVzU4NjQgVklERU80TElOVVggRFJJVkVSDQo+Pj4gwqAg TTrCoMKgwqAgQmx1ZWNoZXJyeSBNYWludGFpbmVycyA8bWFpbnRhaW5lcnNAYmx1ZWNoZXJyeWR2 ci5jb20+DQo+Pj4gwqAgTTrCoMKgwqAgQW5kcmV5IFV0a2luIDxhbmRyZXkudXRraW5AY29ycC5i bHVlY2hlcnJ5Lm5ldD4NCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvS2Nv bmZpZyANCj4+PiBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L0tjb25maWcNCj4+PiBpbmRleCBkZGZj Y2MyMjY3NTFmLi5jN2NmZmIyMjJhZGFjIDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvcGxhdGZv cm0veDg2L0tjb25maWcNCj4+PiArKysgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9LY29uZmlnDQo+ Pj4gQEAgLTExOTYsMyArMTE5Niw1IEBAIGNvbmZpZyBQMlNCDQo+Pj4gwqDCoMKgwqDCoMKgwqAg VGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIGxpYnJhcnkgaXMgdG8gdW5oaWRlIFAyU0IgZGV2aWNl IGluIA0KPj4+IGNhc2UNCj4+PiDCoMKgwqDCoMKgwqDCoCBmaXJtd2FyZSBrZXB0IGl0IGhpZGRl biBvbiBzb21lIHBsYXRmb3JtcyBpbiBvcmRlciB0byBhY2Nlc3MgDQo+Pj4gZGV2aWNlcw0KPj4+ IMKgwqDCoMKgwqDCoMKgIGJlaGluZCBpdC4NCj4+PiArDQo+Pj4gK3NvdXJjZSAiZHJpdmVycy9w bGF0Zm9ybS94ODYvdHV4ZWRvL0tjb25maWciDQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxh dGZvcm0veDg2L01ha2VmaWxlIA0KPj4+IGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvTWFrZWZpbGUN Cj4+PiBpbmRleCBlMWIxNDI5NDcwNjc0Li4xNTYyZGNkN2FkOWE1IDEwMDY0NA0KPj4+IC0tLSBh L2RyaXZlcnMvcGxhdGZvcm0veDg2L01ha2VmaWxlDQo+Pj4gKysrIGIvZHJpdmVycy9wbGF0Zm9y bS94ODYvTWFrZWZpbGUNCj4+PiBAQCAtMTUzLDMgKzE1Myw2IEBAIG9iai0kKENPTkZJR19XSU5N QVRFX0ZNMDdfS0VZUynCoMKgwqDCoMKgwqDCoCArPSANCj4+PiB3aW5tYXRlLWZtMDcta2V5cy5v DQo+Pj4NCj4+PiDCoCAjIFNFTA0KPj4+IMKgIG9iai0kKENPTkZJR19TRUwzMzUwX1BMQVRGT1JN KcKgwqDCoMKgwqDCoMKgICs9IHNlbDMzNTAtcGxhdGZvcm0ubw0KPj4+ICsNCj4+PiArIyBUVVhF RE8NCj4+PiArb2JqLXnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArPSB0 dXhlZG8vDQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby9LYnVp bGQgDQo+Pj4gYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vS2J1aWxkDQo+Pj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAwMDAwMDAwMDAwLi41YTM1MDZhYjk4MTMxDQo+ Pj4gLS0tIC9kZXYvbnVsbA0KPj4+ICsrKyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby9L YnVpbGQNCj4+PiBAQCAtMCwwICsxLDkgQEANCj4+PiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMC1vbmx5DQo+Pj4gKyMNCj4+PiArIyBUVVhFRE8gWDg2IFBsYXRmb3JtIFNwZWNp ZmljIERyaXZlcnMNCj4+PiArIw0KPj4+ICsNCj4+PiArdHV4ZWRvX25iMDRfd21pX2FiLXnCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIDo9IHR1eGVkb19uYjA0X3dtaV9hYl9pbml0Lm8NCj4+PiArdHV4 ZWRvX25iMDRfd21pX2FiLXnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICs9IHR1eGVkb19uYjA0X3dt aV91dGlsLm8NCj4+PiArdHV4ZWRvX25iMDRfd21pX2FiLXnCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICs9IA0KPj4+IHR1eGVkb19uYjA0X3dtaV9hYl92aXJ0dWFsX2xhbXBfYXJyYXkubw0KPj4+ICtv YmotJChDT05GSUdfVFVYRURPX05CMDRfV01JX0FCKcKgwqDCoCArPSB0dXhlZG9fbmIwNF93bWlf YWIubw0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vS2NvbmZp ZyANCj4+PiBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby9LY29uZmlnDQo+Pj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAwMDAwMDAwMDAwLi5iMWY3YzZjZWVhYWU0DQo+ Pj4gLS0tIC9kZXYvbnVsbA0KPj4+ICsrKyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby9L Y29uZmlnDQo+Pj4gQEAgLTAsMCArMSwxNCBAQA0KPj4+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wLW9ubHkNCj4+PiArIw0KPj4+ICsjIFRVWEVETyBYODYgUGxhdGZvcm0gU3Bl Y2lmaWMgRHJpdmVycw0KPj4+ICsjDQo+Pj4gKw0KPj4+ICttZW51Y29uZmlnIFRVWEVET19OQjA0 X1dNSV9BQg0KPj4+ICvCoMKgwqAgdHJpc3RhdGUgIlRVWEVETyBOQjA0IFdNSSBBQiBQbGF0Zm9y bSBEcml2ZXIiDQo+Pj4gK8KgwqDCoCBkZWZhdWx0IG0NCj4+PiArwqDCoMKgIGhlbHANCj4+PiAr wqDCoMKgwqDCoCBUaGlzIGRyaXZlciBpbXBsZW1lbnRzIHRoZSBXTUkgQUIgZGV2aWNlIGZvdW5k IG9uIFRVWEVETyANCj4+PiBOb3RlYm9va3MNCj4+PiArwqDCoMKgwqDCoCB3aXRoIGJvYXJkIHZl bmRvciBOQjA0LiBGb3IgdGhlIHRpbWUgYmVpbmcgb25seSB0aGUga2V5Ym9hcmQgDQo+Pj4gYmFj a2xpZ2h0DQo+Pj4gK8KgwqDCoMKgwqAgY29udHJvbCBpcyBpbXBsZW1lbnRlZC4NCj4+PiArDQo+ Pj4gK8KgwqDCoMKgwqAgV2hlbiBjb21waWxlZCBhcyBhIG1vZHVsZSBpdCB3aWxsIGJlIGNhbGxl ZCB0dXhlZG9fbmIwNF93bWlfYWIuDQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0v eDg2L3R1eGVkby90dXhlZG9fbmIwNF93bWlfYWJfaW5pdC5jIA0KPj4+IGIvZHJpdmVycy9wbGF0 Zm9ybS94ODYvdHV4ZWRvL3R1eGVkb19uYjA0X3dtaV9hYl9pbml0LmMNCj4+PiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPj4+IGluZGV4IDAwMDAwMDAwMDAwMDAuLjZlNDQ0NmIwZTNkZDgNCj4+PiAt LS0gL2Rldi9udWxsDQo+Pj4gKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvdHV4ZWRvL3R1eGVk b19uYjA0X3dtaV9hYl9pbml0LmMNCj4+PiBAQCAtMCwwICsxLDg2IEBADQo+Pj4gKy8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+Pj4gKy8qDQo+Pj4gKyAqIFRoaXMgZHJpdmVy IGltcGxlbWVudHMgdGhlIFdNSSBBQiBkZXZpY2UgZm91bmQgb24gVFVYRURPIA0KPj4+IE5vdGVi b29rcyB3aXRoIGJvYXJkDQo+Pj4gKyAqIHZlbmRvciBOQjA0Lg0KPj4+ICsgKg0KPj4+ICsgKiBD b3B5cmlnaHQgKEMpIDIwMjQgV2VybmVyIFNlbWJhY2ggd3NlQHR1eGVkb2NvbXB1dGVycy5jb20N Cj4+PiArICovDQo+Pj4gKw0KPj4+ICsjZGVmaW5lIHByX2ZtdChmbXQpIEtCVUlMRF9NT0ROQU1F ICI6ICIgZm10DQo+Pj4gKw0KPj4+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+Pj4gKyNp bmNsdWRlIDxsaW51eC93bWkuaD4NCj4+PiArI2luY2x1ZGUgPGxpbnV4L2RtaS5oPg0KPj4+ICsN Cj4+PiArI2luY2x1ZGUgInR1eGVkb19uYjA0X3dtaV9hYl92aXJ0dWFsX2xhbXBfYXJyYXkuaCIN Cj4+PiArDQo+Pj4gKyNpbmNsdWRlICJ0dXhlZG9fbmIwNF93bWlfYWJfaW5pdC5oIg0KPj4+ICsN Cj4+PiArLy8gV2UgZG9uJ3Qga25vdyBpZiB0aGUgV01JIEFQSSBpcyBzdGFibGUgYW5kIGhvdyB1 bmlxdWUgdGhlIEdVSUQgDQo+Pj4gaXMgZm9yIHRoaXMgT0RNLiBUbyBiZSBvbiB0aGUgc2FmZQ0K Pj4+ICsvLyBzaWRlIHdlIHRoZXJlZm9yZSBvbmx5IHJ1biB0aGlzIGRyaXZlciBvbiB0ZXN0ZWQg ZGV2aWNlcyBkZWZpbmVkIA0KPj4+IGJ5IHRoaXMgbGlzdC4NCj4+PiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkbWlfc3lzdGVtX2lkIHRlc3RlZF9kZXZpY2VzX2RtaV90YWJsZVtdID0gew0KPj4+ICvC oMKgwqAgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCAvLyBUVVhFRE8gU2lyaXVzIDE2IEdlbjENCj4+ PiArwqDCoMKgwqDCoMKgwqAgLm1hdGNoZXMgPSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgRE1JX0VYQUNUX01BVENIKERNSV9TWVNfVkVORE9SLCAiVFVYRURPIiksDQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgRE1JX0VYQUNUX01BVENIKERNSV9CT0FSRF9OQU1FLCAiQVBYOTU4 IiksDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIH0sDQo+Pj4gK8KgwqDCoCB9LA0KPj4+ICvCoMKgwqAg ew0KPj4+ICvCoMKgwqDCoMKgwqDCoCAvLyBUVVhFRE8gU2lyaXVzIDE2IEdlbjINCj4+PiArwqDC oMKgwqDCoMKgwqAgLm1hdGNoZXMgPSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRE1J X0VYQUNUX01BVENIKERNSV9TWVNfVkVORE9SLCAiVFVYRURPIiksDQo+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgRE1JX0VYQUNUX01BVENIKERNSV9CT0FSRF9OQU1FLCAiQUhQOTU4IiksDQo+ Pj4gK8KgwqDCoMKgwqDCoMKgIH0sDQo+Pj4gK8KgwqDCoCB9LA0KPj4+ICvCoMKgwqAgeyB9DQo+ Pj4gK307DQo+Pj4gKw0KPj4+ICtzdGF0aWMgaW50IHByb2JlKHN0cnVjdCB3bWlfZGV2aWNlICp3 ZGV2LCBjb25zdCB2b2lkIA0KPj4+IF9fYWx3YXlzX3VudXNlZCAqY29udGV4dCkNCj4+PiArew0K Pj4+ICvCoMKgwqAgc3RydWN0IHR1eGVkb19uYjA0X3dtaV9kcml2ZXJfZGF0YV90ICpkcml2ZXJf ZGF0YTsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAoZG1pX2NoZWNrX3N5c3RlbSh0ZXN0ZWRfZGV2 aWNlc19kbWlfdGFibGUpKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT0RFVjsNCj4+ DQo+PiBIaSwNCj4+DQo+PiBwbGVhc2UgZG8gdGhpcyBETUkgY2hlY2sgZHVyaW5nIG1vZHVsZSBp bml0aWFsaXphdGlvbi4gVGhpcyBhdm9pZHMgDQo+PiBoYXZpbmcgYW4gdXNlbGVzcyBXTUkgZHJp dmVyDQo+PiBvbiB1bnN1cHBvcnRlZCBtYWNoaW5lcyBhbmQgYWxsb3dzIGZvciBtYXJraW5nIA0K Pj4gdGVzdGVkX2RldmljZXNfZG1pX3RhYmxlIGFzIF9faW5pdGNvbnN0Lg0KPj4NCj4+IEJlc2lk ZXMgdGhhdCwgbWF5YmUgYSAiZm9yY2UiIG1vZHVsZSBwYXJhbWV0ZXIgZm9yIG92ZXJyaWRpbmcg dGhlIERNSSANCj4+IGNoZWNraW5nIGNvdWxkIGJlDQo+PiB1c2VmdWw/DQo+Pg0KPj4+ICsNCj4+ PiArwqDCoMKgIGRyaXZlcl9kYXRhID0gZGV2bV9remFsbG9jKCZ3ZGV2LT5kZXYsIHNpemVvZihz dHJ1Y3QgDQo+Pj4gdHV4ZWRvX25iMDRfd21pX2RyaXZlcl9kYXRhX3QpLA0KPj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR0ZQX0tFUk5FTCk7DQo+Pg0KPj4gUGxlYXNl IHVzZSBzaXplb2YoKmRyaXZlcl9kYXRhKS4NCj4+DQo+Pj4gK8KgwqDCoCBpZiAoIWRyaXZlcl9k YXRhKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT01FTTsNCj4+PiArDQo+Pj4gK8Kg wqDCoCBtdXRleF9pbml0KCZkcml2ZXJfZGF0YS0+d21pX2FjY2Vzc19tdXRleCk7DQo+Pg0KPj4g UGxlYXNlIHVzZSBkZXZtX211dGV4X2luaXQoKSwgc28gdGhlIG11dGV4IGlzIHByb3Blcmx5IGRl c3Ryb3llZCB3aGVuIA0KPj4gdW5iaW5kaW5nLg0KPj4NCj4+PiArDQo+Pj4gK8KgwqDCoCBkZXZf c2V0X2RydmRhdGEoJndkZXYtPmRldiwgZHJpdmVyX2RhdGEpOw0KPj4+ICsNCj4+PiArwqDCoMKg IHR1eGVkb19uYjA0X3ZpcnR1YWxfbGFtcF9hcnJheV9hZGRfZGV2aWNlKHdkZXYsIA0KPj4+ICZk cml2ZXJfZGF0YS0+dmlydHVhbF9sYW1wX2FycmF5X2hkZXYpOw0KPj4NCj4+IEVycm9yIGhhbmRs aW5nIG1pc3NpbmcuDQo+Pg0KPj4+ICsNCj4+PiArwqDCoMKgIHJldHVybiAwOw0KPj4+ICt9DQo+ Pj4gKw0KPj4+ICtzdGF0aWMgdm9pZCByZW1vdmUoc3RydWN0IHdtaV9kZXZpY2UgKndkZXYpDQo+ Pj4gK3sNCj4+PiArwqDCoMKgIHN0cnVjdCB0dXhlZG9fbmIwNF93bWlfZHJpdmVyX2RhdGFfdCAq ZHJpdmVyX2RhdGEgPSANCj4+PiB3ZGV2LT5kZXYuZHJpdmVyX2RhdGE7DQo+Pj4gKw0KPj4+ICsg aGlkX2Rlc3Ryb3lfZGV2aWNlKGRyaXZlcl9kYXRhLT52aXJ0dWFsX2xhbXBfYXJyYXlfaGRldik7 DQo+Pj4gK30NCj4+PiArDQo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgd21pX2RldmljZV9pZCB0 dXhlZG9fbmIwNF93bWlfYWJfZGV2aWNlX2lkc1tdID0gew0KPj4+ICvCoMKgwqAgeyAuZ3VpZF9z dHJpbmcgPSAiODBDOUJBQTYtQUM0OC00NTM4LTkyMzQtOUY4MUE1NUU3Qzg1IiB9LA0KPj4+ICvC oMKgwqAgeyB9DQo+Pj4gK307DQo+Pj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUod21pLCB0dXhlZG9f bmIwNF93bWlfYWJfZGV2aWNlX2lkcyk7DQo+Pj4gKw0KPj4+ICtzdGF0aWMgc3RydWN0IHdtaV9k cml2ZXIgdHV4ZWRvX25iMDRfd21pX2FiX2RyaXZlciA9IHsNCj4+PiArwqDCoMKgIC5kcml2ZXIg PSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIC5uYW1lID0gInR1eGVkb19uYjA0X3dtaV9hYiIsDQo+ Pj4gK8KgwqDCoMKgwqDCoMKgIC5vd25lciA9IFRISVNfTU9EVUxFDQo+Pj4gK8KgwqDCoCB9LA0K Pj4+ICvCoMKgwqAgLmlkX3RhYmxlID0gdHV4ZWRvX25iMDRfd21pX2FiX2RldmljZV9pZHMsDQo+ Pj4gK8KgwqDCoCAucHJvYmUgPSBwcm9iZSwNCj4+PiArwqDCoMKgIC5yZW1vdmUgPSByZW1vdmUN Cj4+DQo+PiBJIHJlY29tbWVuZCBzZXR0aW5nIHByb2JlX3R5cGUgPSBQUk9CRV9QUkVGRVJfQVNZ TkNIUk9OT1VTLCBzZWUgDQo+PiBEb2N1bWVudGF0aW9uL3dtaS9kcml2ZXItZGV2ZWxvcG1lbnQt Z3VpZGUucnN0Lg0KPj4gQWxzbyBwbGVhc2Ugc2V0IG5vX3NpbmdsZXRvbiA9IHRydWUuDQo+Pg0K Pj4+ICt9Ow0KPj4+ICttb2R1bGVfd21pX2RyaXZlcih0dXhlZG9fbmIwNF93bWlfYWJfZHJpdmVy KTsNCj4+PiArDQo+Pj4gK01PRFVMRV9ERVNDUklQVElPTigiVmlydHVhbCBISUQgTGFtcEFycmF5 IGludGVyZmFjZSBmb3IgVFVYRURPIE5CMDQgDQo+Pj4gZGV2aWNlcyIpOw0KPj4+ICtNT0RVTEVf QVVUSE9SKCJXZXJuZXIgU2VtYmFjaCA8d3NlQHR1eGVkb2NvbXB1dGVycy5jb20+Iik7DQo+Pj4g K01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9y bS94ODYvdHV4ZWRvL3R1eGVkb19uYjA0X3dtaV9hYl9pbml0LmggDQo+Pj4gYi9kcml2ZXJzL3Bs YXRmb3JtL3g4Ni90dXhlZG8vdHV4ZWRvX25iMDRfd21pX2FiX2luaXQuaA0KPj4+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+Pj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uYWViZmQ0NjVjOWI2MQ0KPj4+ IC0tLSAvZGV2L251bGwNCj4+PiArKysgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vdHV4 ZWRvX25iMDRfd21pX2FiX2luaXQuaA0KPj4+IEBAIC0wLDAgKzEsMjAgQEANCj4+PiArLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCj4+PiArLyoNCj4+PiArICogVGhpcyBk cml2ZXIgaW1wbGVtZW50cyB0aGUgV01JIEFCIGRldmljZSBmb3VuZCBvbiBUVVhFRE8gDQo+Pj4g Tm90ZWJvb2tzIHdpdGggYm9hcmQNCj4+PiArICogdmVuZG9yIE5CMDQuDQo+Pj4gKyAqDQo+Pj4g KyAqIENvcHlyaWdodCAoQykgMjAyNCBXZXJuZXIgU2VtYmFjaCB3c2VAdHV4ZWRvY29tcHV0ZXJz LmNvbQ0KPj4+ICsgKi8NCj4+PiArDQo+Pj4gKyNpZm5kZWYgVFVYRURPX05CMDRfV01JX0FCX0lO SVRfSA0KPj4+ICsjZGVmaW5lIFRVWEVET19OQjA0X1dNSV9BQl9JTklUX0gNCj4+PiArDQo+Pj4g KyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPg0KPj4+ICsjaW5jbHVkZSA8bGludXgvaGlkLmg+DQo+ Pj4gKw0KPj4+ICtzdHJ1Y3QgdHV4ZWRvX25iMDRfd21pX2RyaXZlcl9kYXRhX3Qgew0KPj4+ICvC oMKgwqAgc3RydWN0IG11dGV4IHdtaV9hY2Nlc3NfbXV0ZXg7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3Qg aGlkX2RldmljZSAqdmlydHVhbF9sYW1wX2FycmF5X2hkZXY7DQo+Pj4gK307DQo+Pj4gKw0KPj4+ ICsjZW5kaWYNCj4+PiBkaWZmIC0tZ2l0IA0KPj4+IGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvdHV4 ZWRvL3R1eGVkb19uYjA0X3dtaV9hYl92aXJ0dWFsX2xhbXBfYXJyYXkuYyANCj4+PiBiL2RyaXZl cnMvcGxhdGZvcm0veDg2L3R1eGVkby90dXhlZG9fbmIwNF93bWlfYWJfdmlydHVhbF9sYW1wX2Fy cmF5LmMNCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+IGluZGV4IDAwMDAwMDAwMDAwMDAu LjA0YWYxOWFhNmFkNWYNCj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4gKysrIA0KPj4+IGIvZHJpdmVy cy9wbGF0Zm9ybS94ODYvdHV4ZWRvL3R1eGVkb19uYjA0X3dtaV9hYl92aXJ0dWFsX2xhbXBfYXJy YXkuYw0KPj4+IEBAIC0wLDAgKzEsNzQxIEBADQo+Pj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wDQo+Pj4gKy8qDQo+Pj4gKyAqIFRoaXMgY29kZSBnaXZlcyB0aGUgYnVpbHQg aW4gUkdCIGxpZ2h0aW5nIG9mIHRoZSBUVVhFRE8gTkIwNCANCj4+PiBkZXZpY2VzIGENCj4+PiAr ICogc3RhbmRhcmRpc2VkIGludGVyZmFjZSwgbmFtZWx5IEhJRCBMYW1wQXJyYXkuDQo+Pj4gKyAq DQo+Pj4gKyAqIENvcHlyaWdodCAoQykgMjAyNCBXZXJuZXIgU2VtYmFjaCB3c2VAdHV4ZWRvY29t cHV0ZXJzLmNvbQ0KPj4+ICsgKi8NCj4+PiArDQo+Pj4gKyNkZWZpbmUgcHJfZm10KGZtdCkgS0JV SUxEX01PRE5BTUUgIjogIiBmbXQNCj4+PiArDQo+Pj4gKyNpbmNsdWRlICJ0dXhlZG9fbmIwNF93 bWlfdXRpbC5oIg0KPj4+ICsNCj4+PiArI2luY2x1ZGUgInR1eGVkb19uYjA0X3dtaV9hYl92aXJ0 dWFsX2xhbXBfYXJyYXkuaCINCj4+PiArDQo+Pj4gKyNkZWZpbmUgZGV2X3RvX3dkZXYoX19kZXYp wqDCoMKgIGNvbnRhaW5lcl9vZihfX2Rldiwgc3RydWN0IA0KPj4+IHdtaV9kZXZpY2UsIGRldikN Cj4+DQo+PiBQbGVhc2UgdXNlIHRvX3dtaV9kZXZpY2UoKSBpbnN0ZWFkLg0KPj4NCj4+PiArDQo+ Pj4gK2VudW0gcmVwb3J0X2lkcyB7DQo+Pj4gK8KgwqDCoCBMQU1QX0FSUkFZX0FUVFJJQlVURVNf UkVQT1JUX0lEwqDCoMKgwqDCoMKgwqAgPSAweDAxLA0KPj4+ICvCoMKgwqAgTEFNUF9BVFRSSUJV VEVTX1JFUVVFU1RfUkVQT1JUX0lEwqDCoMKgID0gMHgwMiwNCj4+PiArwqDCoMKgIExBTVBfQVRU UklCVVRFU19SRVNQT05TRV9SRVBPUlRfSUTCoMKgwqAgPSAweDAzLA0KPj4+ICvCoMKgwqAgTEFN UF9NVUxUSV9VUERBVEVfUkVQT1JUX0lEwqDCoMKgwqDCoMKgwqAgPSAweDA0LA0KPj4+ICvCoMKg wqAgTEFNUF9SQU5HRV9VUERBVEVfUkVQT1JUX0lEwqDCoMKgwqDCoMKgwqAgPSAweDA1LA0KPj4+ ICvCoMKgwqAgTEFNUF9BUlJBWV9DT05UUk9MX1JFUE9SVF9JRMKgwqDCoMKgwqDCoMKgID0gMHgw NiwNCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0YXRpYyBjb25zdCB1aW50OF90IHNpcml1c18xNl9h bnNpaV9rYmxfbWFwcGluZ1tdID0gew0KPj4+ICvCoMKgwqAgMHgyOSwgMHgzYSwgMHgzYiwgMHgz YywgMHgzZCwgMHgzZSwgMHgzZiwgMHg0MCwgMHg0MSwgMHg0MiwNCj4+PiArwqDCoMKgIDB4NDMs IDB4NDQsIDB4NDUsIDB4ZjEsIDB4NDYsIDB4NGMswqDCoCAweDRhLCAweDRkLCAweDRiLCAweDRl LA0KPj4+ICvCoMKgwqAgMHgzNSwgMHgxZSwgMHgxZiwgMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywg MHgyNCwgMHgyNSwgMHgyNiwNCj4+PiArwqDCoMKgIDB4MjcsIDB4MmQsIDB4MmUsIDB4MmEswqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDUzLCAweDU1LCAweDU0LCAweDU2LA0KPj4+ICvC oMKgwqAgMHgyYiwgMHgxNCwgMHgxYSwgMHgwOCwgMHgxNSwgMHgxNywgMHgxYywgMHgxOCwgMHgw YywgMHgxMiwNCj4+PiArwqDCoMKgIDB4MTMsIDB4MmYsIDB4MzAsIDB4MzEswqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAweDVmLCAweDYwLCAweDYxLA0KPj4+ICvCoMKgwqAgMHgzOSwgMHgw NCwgMHgxNiwgMHgwNywgMHgwOSwgMHgwYSwgMHgwYiwgMHgwZCwgMHgwZSwgMHgwZiwNCj4+PiAr wqDCoMKgIDB4MzMsIDB4MzQsIDB4MjgswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAweDVjLCAweDVkLCAweDVlLCAweDU3LA0KPj4+ICvCoMKgwqAgMHhlMSwgMHgxZCwg MHgxYiwgMHgwNiwgMHgxOSwgMHgwNSwgMHgxMSwgMHgxMCwgMHgzNiwgMHgzNywNCj4+PiArwqDC oMKgIDB4MzgsIDB4ZTUsIDB4NTIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAweDU5LCAweDVhLCAweDViLA0KPj4+ICvCoMKgwqAgMHhlMCwgMHhmZSwgMHhlMywgMHhl MiwgMHgyYywgMHhlNiwgMHg2NSwgMHhlNCwgMHg1MCwgMHg1MSwNCj4+PiArwqDCoMKgIDB4NGYs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAweDYyLCAweDYzLCAweDU4DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICtzdGF0aWMgY29u c3QgdWludDMyX3Qgc2lyaXVzXzE2X2Fuc2lpX2tibF9tYXBwaW5nX3Bvc194W10gPSB7DQo+Pj4g K8KgwqDCoMKgIDI1MDAwLMKgIDQxNzAwLMKgIDU4NDAwLMKgIDc1MTAwLMKgIDkxODAwLCAxMDg1 MDAsIDEyNTIwMCwgMTQxOTAwLCANCj4+PiAxNTg2MDAsIDE3NTMwMCwNCj4+PiArwqDCoMKgIDE5 MjAwMCwgMjA4NzAwLCAyMjU0MDAsIDI0MjEwMCwgMjU4ODAwLCAyNzU1MDAswqDCoCAyOTQ1MDAs IA0KPj4+IDMxMTIwMCwgMzI3OTAwLCAzNDQ2MDAsDQo+Pj4gK8KgwqDCoMKgIDI0NTAwLMKgIDQy NTAwLMKgIDYxMDAwLMKgIDc5NTAwLMKgIDk4MDAwLCAxMTY1MDAsIDEzNTAwMCwgMTUzNTAwLCAN Cj4+PiAxNzIwMDAsIDE5MDUwMCwNCj4+PiArwqDCoMKgIDIwOTAwMCwgMjI3NTAwLCAyNDYwMDAs IDI2OTUwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjk0NTAwLCANCj4+ PiAzMTEyMDAsIDMyNzkwMCwgMzQ0NjAwLA0KPj4+ICvCoMKgwqDCoCAzMTAwMCzCoCA1MTUwMCzC oCA3MDAwMCzCoCA4ODUwMCwgMTA3MDAwLCAxMjU1MDAsIDE0NDAwMCwgMTYyNTAwLCANCj4+PiAx ODEwMDAsIDE5OTUwMCwNCj4+PiArwqDCoMKgIDIxODAwMCwgMjM2NTAwLCAyNTUwMDAsIDI3MzUw MCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjk0NTAwLCANCj4+PiAzMTEy MDAsIDMyNzkwMCwNCj4+PiArwqDCoMKgwqAgMzMwMDAswqAgNTcwMDAswqAgNzU1MDAswqAgOTQw MDAsIDExMjUwMCwgMTMxMDAwLCAxNDk1MDAsIDE2ODAwMCwgDQo+Pj4gMTg2NTAwLCAyMDUwMDAs DQo+Pj4gK8KgwqDCoCAyMjM1MDAsIDI0MjAwMCwgMjY3NTAwLMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjk0NTAwLCANCj4+PiAzMTEyMDAsIDMy NzkwMCwgMzQ0NjAwLA0KPj4+ICvCoMKgwqDCoCAzNzAwMCzCoCA2NjAwMCzCoCA4NDUwMCwgMTAz MDAwLCAxMjE1MDAsIDE0MDAwMCwgMTU4NTAwLCAxNzcwMDAsIA0KPj4+IDE5NTUwMCwgMjE0MDAw LA0KPj4+ICvCoMKgwqAgMjMyNTAwLCAyNTE1MDAsIDI3MzUwMCzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDI5NDUwMCwgDQo+Pj4gMzExMjAwLCAz Mjc5MDAsDQo+Pj4gK8KgwqDCoMKgIDI4MDAwLMKgIDQ3NTAwLMKgIDY2MDAwLMKgIDg0NTAwLCAx NDAwMDAsIDE5NTUwMCwgMjE0MDAwLCAyMzQwMDAsIA0KPj4+IDI1NTAwMCwgMjczNTAwLA0KPj4+ ICvCoMKgwqAgMjkyMDAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAzMTEyMDAsIA0KPj4+ IDMyNzkwMCwgMzQ0NjAwDQo+Pj4gK307DQo+Pj4gKw0KPj4+ICtzdGF0aWMgY29uc3QgdWludDMy X3Qgc2lyaXVzXzE2X2Fuc2lpX2tibF9tYXBwaW5nX3Bvc195W10gPSB7DQo+Pj4gK8KgwqDCoMKg IDUzMDAwLMKgIDUzMDAwLMKgIDUzMDAwLMKgIDUzMDAwLMKgIDUzMDAwLMKgIDUzMDAwLMKgIDUz MDAwLCA1MzAwMCzCoCANCj4+PiA1MzAwMCzCoCA1MzAwMCwNCj4+PiArwqDCoMKgwqAgNTMwMDAs wqAgNTMwMDAswqAgNTMwMDAswqAgNTMwMDAswqAgNTMwMDAswqAgNTMwMDAswqDCoMKgIDUzMDAw LCANCj4+PiA1MzAwMCzCoCA1MzAwMCzCoCA1MzAwMCwNCj4+PiArwqDCoMKgwqAgNjc1MDAswqAg Njc1MDAswqAgNjc1MDAswqAgNjc1MDAswqAgNjc1MDAswqAgNjc1MDAswqAgNjc1MDAsIDY3NTAw LMKgIA0KPj4+IDY3NTAwLMKgIDY3NTAwLA0KPj4+ICvCoMKgwqDCoCA2NzUwMCzCoCA2NzUwMCzC oCA2NzUwMCzCoCA2NzUwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA2 NzUwMCwgDQo+Pj4gNjc1MDAswqAgNjc1MDAswqAgNjc1MDAsDQo+Pj4gK8KgwqDCoMKgIDg1NTAw LMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAwLCA4 NTUwMCzCoCANCj4+PiA4NTUwMCzCoCA4NTUwMCwNCj4+PiArwqDCoMKgwqAgODU1MDAswqAgODU1 MDAswqAgODU1MDAswqAgODU1MDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgODU1MDAsIA0KPj4+IDg1NTAwLMKgIDg1NTAwLA0KPj4+ICvCoMKgwqAgMTAzNTAwLCAxMDM1 MDAsIDEwMzUwMCwgMTAzNTAwLCAxMDM1MDAsIDEwMzUwMCwgMTAzNTAwLCAxMDM1MDAsIA0KPj4+ IDEwMzUwMCwgMTAzNTAwLA0KPj4+ICvCoMKgwqAgMTAzNTAwLCAxMDM1MDAsIDEwMzUwMCzCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEwMzUwMCwg DQo+Pj4gMTAzNTAwLCAxMDM1MDAswqAgOTQ1MDAsDQo+Pj4gK8KgwqDCoCAxMjE1MDAsIDEyMTUw MCwgMTIxNTAwLCAxMjE1MDAsIDEyMTUwMCwgMTIxNTAwLCAxMjE1MDAsIDEyMTUwMCwgDQo+Pj4g MTIxNTAwLCAxMjE1MDAsDQo+Pj4gK8KgwqDCoCAxMjE1MDAsIDEyMTUwMCwgMTI5MDAwLMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTIxNTAwLCAN Cj4+PiAxMjE1MDAsIDEyMTUwMCwNCj4+PiArwqDCoMKgIDEzOTUwMCwgMTM5NTAwLCAxMzk1MDAs IDEzOTUwMCwgMTM5NTAwLCAxMzk1MDAsIDEzOTUwMCwgMTM5NTAwLCANCj4+PiAxNDcwMDAsIDE0 NzAwMCwNCj4+PiArwqDCoMKgIDE0NzAwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTM5 NTAwLCANCj4+PiAxMzk1MDAsIDEzMDUwMA0KPj4+ICt9Ow0KPj4+ICsNCj4+PiArc3RhdGljIGNv bnN0IHVpbnQzMl90IHNpcml1c18xNl9hbnNpaV9rYmxfbWFwcGluZ19wb3NfeltdID0gew0KPj4+ ICvCoMKgwqDCoMKgIDUwMDAswqDCoCA1MDAwLMKgwqAgNTAwMCzCoMKgIDUwMDAswqDCoCA1MDAw LMKgwqAgNTAwMCzCoMKgIDUwMDAsIDUwMDAswqDCoCANCj4+PiA1MDAwLMKgwqAgNTAwMCwNCj4+ PiArwqDCoMKgwqDCoCA1MDAwLMKgwqAgNTAwMCzCoMKgIDUwMDAswqDCoCA1MDAwLMKgwqAgNTAw MCzCoMKgIDUwMDAswqDCoMKgwqAgNTAwMCwgDQo+Pj4gNTAwMCzCoMKgIDUwMDAswqDCoCA1MDAw LA0KPj4+ICvCoMKgwqDCoMKgIDUyNTAswqDCoCA1MjUwLMKgwqAgNTI1MCzCoMKgIDUyNTAswqDC oCA1MjUwLMKgwqAgNTI1MCzCoMKgIDUyNTAsIDUyNTAswqDCoCANCj4+PiA1MjUwLMKgwqAgNTI1 MCwNCj4+PiArwqDCoMKgwqDCoCA1MjUwLMKgwqAgNTI1MCzCoMKgIDUyNTAswqDCoCA1MjUwLMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTI1MCwgDQo+Pj4gNTI1MCzC oMKgIDUyNTAswqDCoCA1MjUwLA0KPj4+ICvCoMKgwqDCoMKgIDU1MDAswqDCoCA1NTAwLMKgwqAg NTUwMCzCoMKgIDU1MDAswqDCoCA1NTAwLMKgwqAgNTUwMCzCoMKgIDU1MDAsIDU1MDAswqDCoCAN Cj4+PiA1NTAwLMKgwqAgNTUwMCwNCj4+PiArwqDCoMKgwqDCoCA1NTAwLMKgwqAgNTUwMCzCoMKg IDU1MDAswqDCoCA1NTAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg NTUwMCwgDQo+Pj4gNTUwMCzCoMKgIDU1MDAsDQo+Pj4gK8KgwqDCoMKgwqAgNTc1MCzCoMKgIDU3 NTAswqDCoCA1NzUwLMKgwqAgNTc1MCzCoMKgIDU3NTAswqDCoCA1NzUwLMKgwqAgNTc1MCwgNTc1 MCzCoMKgIA0KPj4+IDU3NTAswqDCoCA1NzUwLA0KPj4+ICvCoMKgwqDCoMKgIDU3NTAswqDCoCA1 NzUwLMKgwqAgNTc1MCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCA1NzUwLCANCj4+PiA1NzUwLMKgwqAgNTc1MCzCoMKgIDU2MjUsDQo+Pj4g K8KgwqDCoMKgwqAgNjAwMCzCoMKgIDYwMDAswqDCoCA2MDAwLMKgwqAgNjAwMCzCoMKgIDYwMDAs wqDCoCA2MDAwLMKgwqAgNjAwMCwgNjAwMCzCoMKgIA0KPj4+IDYwMDAswqDCoCA2MDAwLA0KPj4+ ICvCoMKgwqDCoMKgIDYwMDAswqDCoCA2MDAwLMKgwqAgNjEyNSzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA2MDAwLCANCj4+PiA2MDAwLMKg wqAgNjAwMCwNCj4+PiArwqDCoMKgwqDCoCA2MjUwLMKgwqAgNjI1MCzCoMKgIDYyNTAswqDCoCA2 MjUwLMKgwqAgNjI1MCzCoMKgIDYyNTAswqDCoCA2MjUwLCA2MjUwLMKgwqAgDQo+Pj4gNjM3NSzC oMKgIDYzNzUsDQo+Pj4gK8KgwqDCoMKgwqAgNjM3NSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIDYyNTAsIA0KPj4+IDYyNTAswqDCoCA2MTI1DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICtz dGF0aWMgY29uc3QgdWludDhfdCBzaXJpdXNfMTZfaXNvX2tibF9tYXBwaW5nW10gPSB7DQo+Pj4g K8KgwqDCoCAweDI5LCAweDNhLCAweDNiLCAweDNjLCAweDNkLCAweDNlLCAweDNmLCAweDQwLCAw eDQxLCAweDQyLA0KPj4+ICvCoMKgwqAgMHg0MywgMHg0NCwgMHg0NSwgMHhmMSwgMHg0NiwgMHg0 YyzCoMKgIDB4NGEsIDB4NGQsIDB4NGIsIDB4NGUsDQo+Pj4gK8KgwqDCoCAweDM1LCAweDFlLCAw eDFmLCAweDIwLCAweDIxLCAweDIyLCAweDIzLCAweDI0LCAweDI1LCAweDI2LA0KPj4+ICvCoMKg wqAgMHgyNywgMHgyZCwgMHgyZSwgMHgyYSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4 NTMsIDB4NTUsIDB4NTQsIDB4NTYsDQo+Pj4gK8KgwqDCoCAweDJiLCAweDE0LCAweDFhLCAweDA4 LCAweDE1LCAweDE3LCAweDFjLCAweDE4LCAweDBjLCAweDEyLA0KPj4+ICvCoMKgwqAgMHgxMywg MHgyZiwgMHgzMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4NWYs IDB4NjAsIDB4NjEsDQo+Pj4gK8KgwqDCoCAweDM5LCAweDA0LCAweDE2LCAweDA3LCAweDA5LCAw eDBhLCAweDBiLCAweDBkLCAweDBlLCAweDBmLA0KPj4+ICvCoMKgwqAgMHgzMywgMHgzNCwgMHgz MiwgMHgyOCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4NWMsIDB4NWQsIDB4NWUsIDB4 NTcsDQo+Pj4gK8KgwqDCoCAweGUxLCAweDY0LCAweDFkLCAweDFiLCAweDA2LCAweDE5LCAweDA1 LCAweDExLCAweDEwLCAweDM2LA0KPj4+ICvCoMKgwqAgMHgzNywgMHgzOCwgMHhlNSwgMHg1MizC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4NTksIDB4NWEsIDB4NWIsDQo+Pj4gK8KgwqDC oCAweGUwLCAweGZlLCAweGUzLCAweGUyLCAweDJjLCAweGU2LCAweDY1LCAweGU0LCAweDUwLCAw eDUxLA0KPj4+ICvCoMKgwqAgMHg0ZizCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4NjIsIDB4NjMsIDB4NTgNCj4+PiArfTsN Cj4+PiArDQo+Pj4gK3N0YXRpYyBjb25zdCB1aW50MzJfdCBzaXJpdXNfMTZfaXNvX2tibF9tYXBw aW5nX3Bvc194W10gPSB7DQo+Pj4gK8KgwqDCoMKgIDI1MDAwLMKgIDQxNzAwLMKgIDU4NDAwLMKg IDc1MTAwLMKgIDkxODAwLCAxMDg1MDAsIDEyNTIwMCwgMTQxOTAwLCANCj4+PiAxNTg2MDAsIDE3 NTMwMCwNCj4+PiArwqDCoMKgIDE5MjAwMCwgMjA4NzAwLCAyMjU0MDAsIDI0MjEwMCwgMjU4ODAw LCAyNzU1MDAswqDCoCAyOTQ1MDAsIA0KPj4+IDMxMTIwMCwgMzI3OTAwLCAzNDQ2MDAsDQo+Pj4g K8KgwqDCoMKgIDI0NTAwLMKgIDQyNTAwLMKgIDYxMDAwLMKgIDc5NTAwLMKgIDk4MDAwLCAxMTY1 MDAsIDEzNTAwMCwgMTUzNTAwLCANCj4+PiAxNzIwMDAsIDE5MDUwMCwNCj4+PiArwqDCoMKgIDIw OTAwMCwgMjI3NTAwLCAyNDYwMDAsIDI2OTUwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgMjk0NTAwLCANCj4+PiAzMTEyMDAsIDMyNzkwMCwgMzQ0NjAwLA0KPj4+ICvCoMKg wqDCoCAzMTAwMCzCoCA1MTUwMCzCoCA3MDAwMCzCoCA4ODUwMCwgMTA3MDAwLCAxMjU1MDAsIDE0 NDAwMCwgMTYyNTAwLCANCj4+PiAxODEwMDAsIDE5OTUwMCwNCj4+PiArwqDCoMKgIDIxODAwMCwg MjM0NTAwLCAyNTEwMDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAyOTQ1MDAsIA0KPj4+IDMxMTIwMCwgMzI3OTAwLA0KPj4+ICvCoMKgwqDCoCAz MzAwMCzCoCA1NzAwMCzCoCA3NTUwMCzCoCA5NDAwMCwgMTEyNTAwLCAxMzEwMDAsIDE0OTUwMCwg MTY4MDAwLCANCj4+PiAxODY1MDAsIDIwNTAwMCwNCj4+PiArwqDCoMKgIDIyMzUwMCwgMjQwMDAw LCAyNTY1MDAsIDI3MTUwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjk0 NTAwLCANCj4+PiAzMTEyMDAsIDMyNzkwMCwgMzQ0NjAwLA0KPj4+ICvCoMKgwqDCoCAyODAwMCzC oCA0NzUwMCzCoCA2NjAwMCzCoCA4NDUwMCwgMTAzMDAwLCAxMjE1MDAsIDE0MDAwMCwgMTU4NTAw LCANCj4+PiAxNzcwMDAsIDE5NTUwMCwNCj4+PiArwqDCoMKgIDIxNDAwMCwgMjMyNTAwLCAyNTE1 MDAsIDI3MzUwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjk0NTAwLCAN Cj4+PiAzMTEyMDAsIDMyNzkwMCwNCj4+PiArwqDCoMKgwqAgMjgwMDAswqAgNDc1MDAswqAgNjYw MDAswqAgODQ1MDAsIDE0MDAwMCwgMTk1NTAwLCAyMTQwMDAsIDIzNDAwMCwgDQo+Pj4gMjU1MDAw LCAyNzM1MDAsDQo+Pj4gK8KgwqDCoCAyOTIwMDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDMxMTIwMCwgDQo+Pj4gMzI3OTAwLCAzNDQ2MDANCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0YXRp YyBjb25zdCB1aW50MzJfdCBzaXJpdXNfMTZfaXNvX2tibF9tYXBwaW5nX3Bvc195W10gPSB7DQo+ Pj4gK8KgwqDCoMKgIDUzMDAwLMKgIDUzMDAwLMKgIDUzMDAwLMKgIDUzMDAwLMKgIDUzMDAwLMKg IDUzMDAwLMKgIDUzMDAwLCA1MzAwMCzCoCANCj4+PiA1MzAwMCzCoCA1MzAwMCwNCj4+PiArwqDC oMKgwqAgNTMwMDAswqAgNTMwMDAswqAgNTMwMDAswqAgNTMwMDAswqAgNTMwMDAswqAgNTMwMDAs wqDCoMKgIDUzMDAwLCANCj4+PiA1MzAwMCzCoCA1MzAwMCzCoCA1MzAwMCwNCj4+PiArwqDCoMKg wqAgNjc1MDAswqAgNjc1MDAswqAgNjc1MDAswqAgNjc1MDAswqAgNjc1MDAswqAgNjc1MDAswqAg Njc1MDAsIDY3NTAwLMKgIA0KPj4+IDY3NTAwLMKgIDY3NTAwLA0KPj4+ICvCoMKgwqDCoCA2NzUw MCzCoCA2NzUwMCzCoCA2NzUwMCzCoCA2NzUwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCA2NzUwMCwgDQo+Pj4gNjc1MDAswqAgNjc1MDAswqAgNjc1MDAsDQo+Pj4gK8Kg wqDCoMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAwLMKgIDg1NTAw LMKgIDg1NTAwLCA4NTUwMCzCoCANCj4+PiA4NTUwMCzCoCA4NTUwMCwNCj4+PiArwqDCoMKgwqAg ODU1MDAswqAgODU1MDAswqAgODU1MDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDg1NTAwLCANCj4+PiA4NTUwMCzCoCA4NTUwMCwNCj4+PiAr wqDCoMKgIDEwMzUwMCwgMTAzNTAwLCAxMDM1MDAsIDEwMzUwMCwgMTAzNTAwLCAxMDM1MDAsIDEw MzUwMCwgMTAzNTAwLCANCj4+PiAxMDM1MDAsIDEwMzUwMCwNCj4+PiArwqDCoMKgIDEwMzUwMCwg MTAzNTAwLCAxMDM1MDAswqAgOTQ1MDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDEwMzUwMCwgDQo+Pj4gMTAzNTAwLCAxMDM1MDAswqAgOTQ1MDAsDQo+Pj4gK8KgwqDCoCAx MjE1MDAsIDEyMTUwMCwgMTIxNTAwLCAxMjE1MDAsIDEyMTUwMCwgMTIxNTAwLCAxMjE1MDAsIDEy MTUwMCwgDQo+Pj4gMTIxNTAwLCAxMjE1MDAsDQo+Pj4gK8KgwqDCoCAxMjE1MDAsIDEyMTUwMCwg MTIxNTAwLCAxMjkwMDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEyMTUw MCwgDQo+Pj4gMTIxNTAwLCAxMjE1MDAsDQo+Pj4gK8KgwqDCoCAxMzk1MDAsIDEzOTUwMCwgMTM5 NTAwLCAxMzk1MDAsIDEzOTUwMCwgMTM5NTAwLCAxMzk1MDAsIDEzOTUwMCwgDQo+Pj4gMTQ3MDAw LCAxNDcwMDAsDQo+Pj4gK8KgwqDCoCAxNDcwMDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDEzOTUwMCwgDQo+Pj4gMTM5NTAwLCAxMzA1MDANCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0YXRp YyBjb25zdCB1aW50MzJfdCBzaXJpdXNfMTZfaXNvX2tibF9tYXBwaW5nX3Bvc196W10gPSB7DQo+ Pj4gK8KgwqDCoMKgwqAgNTAwMCzCoMKgIDUwMDAswqDCoCA1MDAwLMKgwqAgNTAwMCzCoMKgIDUw MDAswqDCoCA1MDAwLMKgwqAgNTAwMCwgNTAwMCzCoMKgIA0KPj4+IDUwMDAswqDCoCA1MDAwLA0K Pj4+ICvCoMKgwqDCoMKgIDUwMDAswqDCoCA1MDAwLMKgwqAgNTAwMCzCoMKgIDUwMDAsIDUwMDAs IDUwMDAswqDCoMKgwqDCoMKgwqDCoCA1MDAwLCANCj4+PiA1MDAwLMKgwqAgNTAwMCzCoMKgIDUw MDAsDQo+Pj4gK8KgwqDCoMKgwqAgNTI1MCzCoMKgIDUyNTAswqDCoCA1MjUwLMKgwqAgNTI1MCzC oMKgIDUyNTAswqDCoCA1MjUwLMKgwqAgNTI1MCwgNTI1MCzCoMKgIA0KPj4+IDUyNTAswqDCoCA1 MjUwLA0KPj4+ICvCoMKgwqDCoMKgIDUyNTAswqDCoCA1MjUwLMKgwqAgNTI1MCzCoMKgIDUyNTAs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MjUwLCANCj4+PiA1MjUw LMKgwqAgNTI1MCzCoMKgIDUyNTAsDQo+Pj4gK8KgwqDCoMKgwqAgNTUwMCzCoMKgIDU1MDAswqDC oCA1NTAwLMKgwqAgNTUwMCzCoMKgIDU1MDAswqDCoCA1NTAwLMKgwqAgNTUwMCwgNTUwMCzCoMKg IA0KPj4+IDU1MDAswqDCoCA1NTAwLA0KPj4+ICvCoMKgwqDCoMKgIDU1MDAswqDCoCA1NTAwLMKg wqAgNTUwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCA1NTAwLCANCj4+PiA1NTAwLMKgwqAgNTUwMCwNCj4+PiArwqDCoMKgwqDCoCA1NzUw LMKgwqAgNTc1MCzCoMKgIDU3NTAswqDCoCA1NzUwLMKgwqAgNTc1MCzCoMKgIDU3NTAswqDCoCA1 NzUwLCA1NzUwLMKgwqAgDQo+Pj4gNTc1MCzCoMKgIDU3NTAsDQo+Pj4gK8KgwqDCoMKgwqAgNTc1 MCzCoMKgIDU3NTAswqDCoCA1NzUwLMKgwqAgNTc1MCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDU3NTAsIA0KPj4+IDU3NTAswqDCoCA1NzUwLMKgwqAgNTYyNSwNCj4+ PiArwqDCoMKgwqDCoCA2MDAwLMKgwqAgNjAwMCzCoMKgIDYwMDAswqDCoCA2MDAwLMKgwqAgNjAw MCzCoMKgIDYwMDAswqDCoCA2MDAwLCA2MDAwLMKgwqAgDQo+Pj4gNjAwMCzCoMKgIDYwMDAsDQo+ Pj4gK8KgwqDCoMKgwqAgNjAwMCzCoMKgIDYwMDAswqDCoCA2MDAwLMKgwqAgNjEyNSzCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDYwMDAsIA0KPj4+IDYwMDAswqDCoCA2 MDAwLA0KPj4+ICvCoMKgwqDCoMKgIDYyNTAswqDCoCA2MjUwLMKgwqAgNjI1MCzCoMKgIDYyNTAs wqDCoCA2MjUwLMKgwqAgNjI1MCzCoMKgIDYyNTAsIDYyNTAswqDCoCANCj4+PiA2Mzc1LMKgwqAg NjM3NSwNCj4+PiArwqDCoMKgwqDCoCA2Mzc1LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgNjI1MCwgDQo+Pj4gNjI1MCzCoMKgIDYxMjUNCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0cnVj dCBkcml2ZXJfZGF0YV90IHsNCj4+PiArwqDCoMKgIHVpbnQ4X3Qga2V5Ym9hcmRfdHlwZTsNCj4+ PiArwqDCoMKgIHVpbnQ4X3QgbGFtcF9jb3VudDsNCj4+PiArwqDCoMKgIHVpbnQ4X3QgbmV4dF9s YW1wX2lkOw0KPj4+ICvCoMKgwqAgdW5pb24gdHV4ZWRvX25iMDRfd21pXzQ5Nl9iX2luXzgwX2Jf b3V0X2lucHV0IA0KPj4+IG5leHRfa2JsX3NldF9tdWx0aXBsZV9rZXlzX2lucHV0Ow0KPj4+ICt9 Ow0KPj4+ICsNCj4+PiArDQo+Pj4gK3N0YXRpYyBpbnQgbGxfc3RhcnQoc3RydWN0IGhpZF9kZXZp Y2UgKmhkZXYpDQo+Pj4gK3sNCj4+PiArwqDCoMKgIGludCByZXQ7DQo+Pj4gK8KgwqDCoCBzdHJ1 Y3QgZHJpdmVyX2RhdGFfdCAqZHJpdmVyX2RhdGE7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3Qgd21pX2Rl dmljZSAqd2RldiA9IGRldl90b193ZGV2KGhkZXYtPmRldi5wYXJlbnQpOw0KPj4+ICvCoMKgwqAg dW5pb24gdHV4ZWRvX25iMDRfd21pXzhfYl9pbl84MF9iX291dF9pbnB1dCBpbnB1dDsNCj4+PiAr wqDCoMKgIHVuaW9uIHR1eGVkb19uYjA0X3dtaV84X2JfaW5fODBfYl9vdXRfb3V0cHV0IG91dHB1 dDsNCj4+PiArDQo+Pj4gK8KgwqDCoCBkcml2ZXJfZGF0YSA9IGRldm1fa3phbGxvYygmaGRldi0+ ZGV2LCBzaXplb2Yoc3RydWN0IA0KPj4+IGRyaXZlcl9kYXRhX3QpLCBHRlBfS0VSTkVMKTsNCj4+ PiArwqDCoMKgIGlmICghZHJpdmVyX2RhdGEpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAt RU5PTUVNOw0KPj4NCj4+IFBsZWFzZSB1c2Ugc2l6ZW9mKCpkcml2ZXJfZGF0YSkuDQo+IEFsbCBv ZiB0aGUgYWJvdmU6IEFjaywgd2lsbCBiZSBpbiB2Mi4NCj4+DQo+Pj4gKw0KPj4+ICvCoMKgwqAg aW5wdXQuZ2V0X2RldmljZV9zdGF0dXNfaW5wdXQuZGV2aWNlX3R5cGUgPSANCj4+PiBXTUlfQUJf R0VUX0RFVklDRV9TVEFUVVNfREVWSUNFX0lEX0tFWUJPQVJEOw0KPj4+ICvCoMKgwqAgcmV0ID0g dHV4ZWRvX25iMDRfd21pXzhfYl9pbl84MF9iX291dCh3ZGV2LCANCj4+PiBXTUlfQUJfR0VUX0RF VklDRV9TVEFUVVMsICZpbnB1dCwgJm91dHB1dCk7DQo+Pj4gK8KgwqDCoCBpZiAocmV0KQ0KPj4+ ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPj4+ICsNCj4+PiArwqDCoMKgIGRyaXZlcl9k YXRhLT5rZXlib2FyZF90eXBlID0gDQo+Pj4gb3V0cHV0LmdldF9kZXZpY2Vfc3RhdHVzX291dHB1 dC5rZXlib2FyZF9waHlzaWNhbF9sYXlvdXQ7DQo+Pj4gK8KgwqDCoCBkcml2ZXJfZGF0YS0+bGFt cF9jb3VudCA9IHNpemVvZihzaXJpdXNfMTZfYW5zaWlfa2JsX21hcHBpbmcpOw0KPj4+ICvCoMKg wqAgZHJpdmVyX2RhdGEtPm5leHRfbGFtcF9pZCA9IDA7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgaGRl di0+ZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YTsNCj4+PiArDQo+Pj4gK8KgwqDCoCByZXR1cm4g cmV0Ow0KPj4+ICt9DQo+Pj4gKw0KPj4+ICsNCj4+PiArc3RhdGljIHZvaWQgbGxfc3RvcChzdHJ1 Y3QgaGlkX2RldmljZSBfX2Fsd2F5c191bnVzZWQgKmhkZXYpDQo+Pj4gK3sNCj4+PiArfQ0KPj4+ ICsNCj4+PiArDQo+Pj4gK3N0YXRpYyBpbnQgbGxfb3BlbihzdHJ1Y3QgaGlkX2RldmljZSBfX2Fs d2F5c191bnVzZWQgKmhkZXYpDQo+Pj4gK3sNCj4+PiArwqDCoMKgIHJldHVybiAwOw0KPj4+ICt9 DQo+Pj4gKw0KPj4+ICsNCj4+PiArc3RhdGljIHZvaWQgbGxfY2xvc2Uoc3RydWN0IGhpZF9kZXZp Y2UgX19hbHdheXNfdW51c2VkICpoZGV2KQ0KPj4+ICt7DQo+Pj4gK30NCj4+DQo+PiBJIGhhdmUg bm8gZXhwZXJpZW5jZSB3aXRoIHRoZSBISUQgc3Vic3lzdGVtLCBidXQgdGhpcyBsb29rcyBzdXNw aWNpb3VzLg0KPg0KPiBzdG9wKCkgaXMgdG8gY2xlYW51cCBzdHVmZiBmcm9tIHN0YXJ0KCksIGJ1 dCB0aGUgb25seSB0aGluZyBpIGFsbG9jIGluIA0KPiBzdGFydCgpIGlzIHdpdGggZGV2bV9remFs bG9jLCBzbyBpdCBnZXRzIGNsZWFuZWQgdXAgYXV0b21hdGljYWxseS4NCj4NCj4gb3BlbiBhbmQg Y2xvc2UgaXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBoaWRyYXcgZmlsZSBkZXNjcmlwdG9yIGdldHMg DQo+IG9wZW5lZC9jbG9zZWQgaW4gdXNlcnNwYWNlLCBub3RoaW5nIHRvIGRvIGhlcmUgZm9yIHRo aXMgZHJpdmVyLg0KPg0KPiBsZWF2aW5nIHRoZXNlIGZ1bmN0aW9ucyBwb2ludGVyIGFzIE5VTEwg aW4gdGhlIGxsX2RyaXZlciBzdHJ1Y3QgDQo+IGNyYXNoZXMgdGhlIGtlcm5lbCwgc28gaSBwbGFj ZWQgbm9vcCBmdW5jdGlvbnMgdGhlcmUuIERvbid0IGtub3cgaWYgDQo+IHRoZXJlIGlzIGEgbW9y ZSBlbGVnYW50IHdheS4NCj4NCj4+DQo+Pj4gKw0KPj4+ICsNCj4+PiArc3RhdGljIHVpbnQ4X3Qg cmVwb3J0X2Rlc2NyaXB0b3JbMzI3XSA9IHsNCj4+PiArwqDCoMKgIDB4MDUsIDB4NTkswqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAvLyBVc2FnZSBQYWdlIChMaWdodGluZyBhbmQgSWxsdW1pbmF0aW9u KQ0KPj4+ICvCoMKgwqAgMHgwOSwgMHgwMSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIFVzYWdl IChMYW1wIEFycmF5KQ0KPj4+ICvCoMKgwqAgMHhhMSwgMHgwMSzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC8vIENvbGxlY3Rpb24gKEFwcGxpY2F0aW9uKQ0KPj4+ICvCoMKgwqAgMHg4NSwgTEFNUF9B UlJBWV9BVFRSSUJVVEVTX1JFUE9SVF9JRCwgLy/CoCBSZXBvcnQgSUQgKDEpDQo+Pj4gK8KgwqDC oCAweDA5LCAweDAyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoCBVc2FnZSAoTGFtcCBBcnJh eSBBdHRyaWJ1dGVzIFJlcG9ydCkNCj4+PiArwqDCoMKgIDB4YTEsIDB4MDIswqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAvL8KgIENvbGxlY3Rpb24gKExvZ2ljYWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAw eDAzLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChMYW1wIENvdW50KQ0KPj4+ ICvCoMKgwqAgMHgxNSwgMHgwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBMb2dpY2Fs IE1pbmltdW0gKDApDQo+Pj4gK8KgwqDCoCAweDI3LCAweGZmLCAweGZmLCAweDAwLCAweDAwLMKg wqDCoCAvL8KgwqAgTG9naWNhbCBNYXhpbXVtICg2NTUzNSkNCj4+PiArwqDCoMKgIDB4NzUsIDB4 MTAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IFNpemUgKDE2KQ0KPj4+ICvC oMKgwqAgMHg5NSwgMHgwMSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBSZXBvcnQgQ291 bnQgKDEpDQo+Pj4gK8KgwqDCoCAweGIxLCAweDAzLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/C oMKgIEZlYXR1cmUgKENuc3QsVmFyLEFicykNCj4+PiArwqDCoMKgIDB4MDksIDB4MDQswqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKEJvdW5kaW5nIEJveCBXaWR0aCBJbiANCj4+ PiBNaWNyb21ldGVycykNCj4+PiArwqDCoMKgIDB4MDksIDB4MDUswqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAvL8KgwqAgVXNhZ2UgKEJvdW5kaW5nIEJveCBIZWlnaHQgSW4gDQo+Pj4gTWljcm9tZXRl cnMpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDA2LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKg IFVzYWdlIChCb3VuZGluZyBCb3ggRGVwdGggSW4gDQo+Pj4gTWljcm9tZXRlcnMpDQo+Pj4gK8Kg wqDCoCAweDA5LCAweDA3LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChMYW1w IEFycmF5IEtpbmQpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDA4LMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFVzYWdlIChNaW4gVXBkYXRlIEludGVydmFsIEluIA0KPj4+IE1pY3Jvc2Vjb25k cykNCj4+PiArwqDCoMKgIDB4MTUsIDB4MDAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAg TG9naWNhbCBNaW5pbXVtICgwKQ0KPj4+ICvCoMKgwqAgMHgyNywgMHhmZiwgMHhmZiwgMHhmZiwg MHg3ZizCoMKgwqAgLy/CoMKgIExvZ2ljYWwgTWF4aW11bSAoMjE0NzQ4MzY0NykNCj4+PiArwqDC oMKgIDB4NzUsIDB4MjAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IFNpemUg KDMyKQ0KPj4+ICvCoMKgwqAgMHg5NSwgMHgwNSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDC oCBSZXBvcnQgQ291bnQgKDUpDQo+Pj4gK8KgwqDCoCAweGIxLCAweDAzLMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLy/CoMKgIEZlYXR1cmUgKENuc3QsVmFyLEFicykNCj4+PiArwqDCoMKgIDB4YzAs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqAgRW5kIENvbGxlY3Rpb24NCj4+PiAr wqDCoMKgIDB4ODUsIExBTVBfQVRUUklCVVRFU19SRVFVRVNUX1JFUE9SVF9JRCwgLy/CoCBSZXBv cnQgSUQgKDIpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDIwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Ly/CoCBVc2FnZSAoTGFtcCBBdHRyaWJ1dGVzIFJlcXVlc3QgUmVwb3J0KQ0KPj4+ICvCoMKgwqAg MHhhMSwgMHgwMizCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqAgQ29sbGVjdGlvbiAoTG9naWNh bCkNCj4+PiArwqDCoMKgIDB4MDksIDB4MjEswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAg VXNhZ2UgKExhbXAgSWQpDQo+Pj4gK8KgwqDCoCAweDE1LCAweDAwLMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLy/CoMKgIExvZ2ljYWwgTWluaW11bSAoMCkNCj4+PiArwqDCoMKgIDB4MjcsIDB4ZmYs IDB4ZmYsIDB4MDAsIDB4MDAswqDCoMKgIC8vwqDCoCBMb2dpY2FsIE1heGltdW0gKDY1NTM1KQ0K Pj4+ICvCoMKgwqAgMHg3NSwgMHgxMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBSZXBv cnQgU2l6ZSAoMTYpDQo+Pj4gK8KgwqDCoCAweDk1LCAweDAxLMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFJlcG9ydCBDb3VudCAoMSkNCj4+PiArwqDCoMKgIDB4YjEsIDB4MDIswqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgRmVhdHVyZSAoRGF0YSxWYXIsQWJzKQ0KPj4+ICvCoMKg wqAgMHhjMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoCBFbmQgQ29sbGVjdGlv bg0KPj4+ICvCoMKgwqAgMHg4NSwgTEFNUF9BVFRSSUJVVEVTX1JFU1BPTlNFX1JFUE9SVF9JRCwg Ly/CoCBSZXBvcnQgSUQgKDMpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDIyLMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLy/CoCBVc2FnZSAoTGFtcCBBdHRyaWJ1dGVzIFJlc3BvbnNlIFJlcG9ydCkNCj4+ PiArwqDCoMKgIDB4YTEsIDB4MDIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgIENvbGxlY3Rp b24gKExvZ2ljYWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDIxLMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFVzYWdlIChMYW1wIElkKQ0KPj4+ICvCoMKgwqAgMHgxNSwgMHgwMCzCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBMb2dpY2FsIE1pbmltdW0gKDApDQo+Pj4gK8KgwqDCoCAw eDI3LCAweGZmLCAweGZmLCAweDAwLCAweDAwLMKgwqDCoCAvL8KgwqAgTG9naWNhbCBNYXhpbXVt ICg2NTUzNSkNCj4+PiArwqDCoMKgIDB4NzUsIDB4MTAswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAv L8KgwqAgUmVwb3J0IFNpemUgKDE2KQ0KPj4+ICvCoMKgwqAgMHg5NSwgMHgwMSzCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC8vwqDCoCBSZXBvcnQgQ291bnQgKDEpDQo+Pj4gK8KgwqDCoCAweGIxLCAw eDAyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIEZlYXR1cmUgKERhdGEsVmFyLEFicykN Cj4+PiArwqDCoMKgIDB4MDksIDB4MjMswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNh Z2UgKFBvc2l0aW9uIFggSW4gTWljcm9tZXRlcnMpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDI0LMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChQb3NpdGlvbiBZIEluIE1pY3JvbWV0 ZXJzKQ0KPj4+ICvCoMKgwqAgMHgwOSwgMHgyNSzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDC oCBVc2FnZSAoUG9zaXRpb24gWiBJbiBNaWNyb21ldGVycykNCj4+PiArwqDCoMKgIDB4MDksIDB4 MjcswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKFVwZGF0ZSBMYXRlbmN5IElu IE1pY3Jvc2Vjb25kcykNCj4+PiArwqDCoMKgIDB4MDksIDB4MjYswqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAvL8KgwqAgVXNhZ2UgKExhbXAgUHVycG9zZXMpDQo+Pj4gK8KgwqDCoCAweDE1LCAweDAw LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIExvZ2ljYWwgTWluaW11bSAoMCkNCj4+PiAr wqDCoMKgIDB4MjcsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4N2YswqDCoMKgIC8vwqDCoCBMb2dpY2Fs IE1heGltdW0gKDIxNDc0ODM2NDcpDQo+Pj4gK8KgwqDCoCAweDc1LCAweDIwLMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLy/CoMKgIFJlcG9ydCBTaXplICgzMikNCj4+PiArwqDCoMKgIDB4OTUsIDB4 MDUswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IENvdW50ICg1KQ0KPj4+ICvC oMKgwqAgMHhiMSwgMHgwMizCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBGZWF0dXJlIChE YXRhLFZhcixBYnMpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDI4LMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFVzYWdlIChSZWQgTGV2ZWwgQ291bnQpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDI5 LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChHcmVlbiBMZXZlbCBDb3VudCkN Cj4+PiArwqDCoMKgIDB4MDksIDB4MmEswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNh Z2UgKEJsdWUgTGV2ZWwgQ291bnQpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDJiLMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChJbnRlbnNpdHkgTGV2ZWwgQ291bnQpDQo+Pj4gK8Kg wqDCoCAweDA5LCAweDJjLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChJcyBQ cm9ncmFtbWFibGUpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDJkLMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFVzYWdlIChJbnB1dCBCaW5kaW5nKQ0KPj4+ICvCoMKgwqAgMHgxNSwgMHgwMCzC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBMb2dpY2FsIE1pbmltdW0gKDApDQo+Pj4gK8Kg wqDCoCAweDI2LCAweGZmLCAweDAwLMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBMb2dpY2FsIE1heGlt dW0gKDI1NSkNCj4+PiArwqDCoMKgIDB4NzUsIDB4MDgswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAv L8KgwqAgUmVwb3J0IFNpemUgKDgpDQo+Pj4gK8KgwqDCoCAweDk1LCAweDA2LMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLy/CoMKgIFJlcG9ydCBDb3VudCAoNikNCj4+PiArwqDCoMKgIDB4YjEsIDB4 MDIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgRmVhdHVyZSAoRGF0YSxWYXIsQWJzKQ0K Pj4+ICvCoMKgwqAgMHhjMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoCBFbmQg Q29sbGVjdGlvbg0KPj4+ICvCoMKgwqAgMHg4NSwgTEFNUF9NVUxUSV9VUERBVEVfUkVQT1JUX0lE LCAvL8KgIFJlcG9ydCBJRCAoNCkNCj4+PiArwqDCoMKgIDB4MDksIDB4NTAswqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAvL8KgIFVzYWdlIChMYW1wIE11bHRpIFVwZGF0ZSBSZXBvcnQpDQo+Pj4gK8Kg wqDCoCAweGExLCAweDAyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoCBDb2xsZWN0aW9uIChM b2dpY2FsKQ0KPj4+ICvCoMKgwqAgMHgwOSwgMHgwMyzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8v wqDCoCBVc2FnZSAoTGFtcCBDb3VudCkNCj4+PiArwqDCoMKgIDB4MDksIDB4NTUswqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKExhbXAgVXBkYXRlIEZsYWdzKQ0KPj4+ICvCoMKg wqAgMHgxNSwgMHgwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBMb2dpY2FsIE1pbmlt dW0gKDApDQo+Pj4gK8KgwqDCoCAweDI1LCAweDA4LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/C oMKgIExvZ2ljYWwgTWF4aW11bSAoOCkNCj4+PiArwqDCoMKgIDB4NzUsIDB4MDgswqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IFNpemUgKDgpDQo+Pj4gK8KgwqDCoCAweDk1LCAw eDAyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFJlcG9ydCBDb3VudCAoMikNCj4+PiAr wqDCoMKgIDB4YjEsIDB4MDIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgRmVhdHVyZSAo RGF0YSxWYXIsQWJzKQ0KPj4+ICvCoMKgwqAgMHgwOSwgMHgyMSzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC8vwqDCoCBVc2FnZSAoTGFtcCBJZCkNCj4+PiArwqDCoMKgIDB4MTUsIDB4MDAswqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgTG9naWNhbCBNaW5pbXVtICgwKQ0KPj4+ICvCoMKgwqAg MHgyNywgMHhmZiwgMHhmZiwgMHgwMCwgMHgwMCzCoMKgwqAgLy/CoMKgIExvZ2ljYWwgTWF4aW11 bSAoNjU1MzUpDQo+Pj4gK8KgwqDCoCAweDc1LCAweDEwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Ly/CoMKgIFJlcG9ydCBTaXplICgxNikNCj4+PiArwqDCoMKgIDB4OTUsIDB4MDgswqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IENvdW50ICg4KQ0KPj4+ICvCoMKgwqAgMHhiMSwg MHgwMizCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBGZWF0dXJlIChEYXRhLFZhcixBYnMp DQo+Pj4gK8KgwqDCoCAweDA5LCAweDUxLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVz YWdlIChSZWQgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUyLMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChHcmVlbiBVcGRhdGUgQ2hhbm5lbCkNCj4+PiAr wqDCoMKgIDB4MDksIDB4NTMswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKEJs dWUgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDU0LMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLy/CoMKgIFVzYWdlIChJbnRlbnNpdHkgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8Kg wqDCoCAweDA5LCAweDUxLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChSZWQg VXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUyLMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLy/CoMKgIFVzYWdlIChHcmVlbiBVcGRhdGUgQ2hhbm5lbCkNCj4+PiArwqDCoMKgIDB4 MDksIDB4NTMswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKEJsdWUgVXBkYXRl IENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDU0LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Ly/CoMKgIFVzYWdlIChJbnRlbnNpdHkgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5 LCAweDUxLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChSZWQgVXBkYXRlIENo YW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/C oMKgIFVzYWdlIChHcmVlbiBVcGRhdGUgQ2hhbm5lbCkNCj4+PiArwqDCoMKgIDB4MDksIDB4NTMs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKEJsdWUgVXBkYXRlIENoYW5uZWwp DQo+Pj4gK8KgwqDCoCAweDA5LCAweDU0LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVz YWdlIChJbnRlbnNpdHkgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUxLMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChSZWQgVXBkYXRlIENoYW5uZWwpDQo+ Pj4gK8KgwqDCoCAweDA5LCAweDUyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdl IChHcmVlbiBVcGRhdGUgQ2hhbm5lbCkNCj4+PiArwqDCoMKgIDB4MDksIDB4NTMswqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKEJsdWUgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8Kg wqDCoCAweDA5LCAweDU0LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChJbnRl bnNpdHkgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUxLMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChSZWQgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDC oCAweDA5LCAweDUyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChHcmVlbiBV cGRhdGUgQ2hhbm5lbCkNCj4+PiArwqDCoMKgIDB4MDksIDB4NTMswqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAvL8KgwqAgVXNhZ2UgKEJsdWUgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5 LCAweDU0LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChJbnRlbnNpdHkgVXBk YXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUxLMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFVzYWdlIChSZWQgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAw eDUyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChHcmVlbiBVcGRhdGUgQ2hh bm5lbCkNCj4+PiArwqDCoMKgIDB4MDksIDB4NTMswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8Kg wqAgVXNhZ2UgKEJsdWUgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDU0LMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChJbnRlbnNpdHkgVXBkYXRlIENoYW5u ZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUxLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKg IFVzYWdlIChSZWQgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUyLMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChHcmVlbiBVcGRhdGUgQ2hhbm5lbCkNCj4+ PiArwqDCoMKgIDB4MDksIDB4NTMswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2Ug KEJsdWUgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDU0LMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChJbnRlbnNpdHkgVXBkYXRlIENoYW5uZWwpDQo+Pj4g K8KgwqDCoCAweDA5LCAweDUxLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChS ZWQgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUyLMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLy/CoMKgIFVzYWdlIChHcmVlbiBVcGRhdGUgQ2hhbm5lbCkNCj4+PiArwqDCoMKg IDB4MDksIDB4NTMswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgVXNhZ2UgKEJsdWUgVXBk YXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDU0LMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFVzYWdlIChJbnRlbnNpdHkgVXBkYXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAw eDE1LCAweDAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIExvZ2ljYWwgTWluaW11bSAo MCkNCj4+PiArwqDCoMKgIDB4MjYsIDB4ZmYsIDB4MDAswqDCoMKgwqDCoMKgwqAgLy/CoMKgIExv Z2ljYWwgTWF4aW11bSAoMjU1KQ0KPj4+ICvCoMKgwqAgMHg3NSwgMHgwOCzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC8vwqDCoCBSZXBvcnQgU2l6ZSAoOCkNCj4+PiArwqDCoMKgIDB4OTUsIDB4MjAs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IENvdW50ICgzMikNCj4+PiArwqDC oMKgIDB4YjEsIDB4MDIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgRmVhdHVyZSAoRGF0 YSxWYXIsQWJzKQ0KPj4+ICvCoMKgwqAgMHhjMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoCBFbmQgQ29sbGVjdGlvbg0KPj4+ICvCoMKgwqAgMHg4NSwgTEFNUF9SQU5HRV9VUERB VEVfUkVQT1JUX0lELCAvL8KgIFJlcG9ydCBJRCAoNSkNCj4+PiArwqDCoMKgIDB4MDksIDB4NjAs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgIFVzYWdlIChMYW1wIFJhbmdlIFVwZGF0ZSBSZXBv cnQpDQo+Pj4gK8KgwqDCoCAweGExLCAweDAyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoCBD b2xsZWN0aW9uIChMb2dpY2FsKQ0KPj4+ICvCoMKgwqAgMHgwOSwgMHg1NSzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC8vwqDCoCBVc2FnZSAoTGFtcCBVcGRhdGUgRmxhZ3MpDQo+Pj4gK8KgwqDCoCAw eDE1LCAweDAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIExvZ2ljYWwgTWluaW11bSAo MCkNCj4+PiArwqDCoMKgIDB4MjUsIDB4MDgswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAg TG9naWNhbCBNYXhpbXVtICg4KQ0KPj4+ICvCoMKgwqAgMHg3NSwgMHgwOCzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC8vwqDCoCBSZXBvcnQgU2l6ZSAoOCkNCj4+PiArwqDCoMKgIDB4OTUsIDB4MDEs wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IENvdW50ICgxKQ0KPj4+ICvCoMKg wqAgMHhiMSwgMHgwMizCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBGZWF0dXJlIChEYXRh LFZhcixBYnMpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDYxLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Ly/CoMKgIFVzYWdlIChMYW1wIElkIFN0YXJ0KQ0KPj4+ICvCoMKgwqAgMHgwOSwgMHg2MizCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBVc2FnZSAoTGFtcCBJZCBFbmQpDQo+Pj4gK8KgwqDC oCAweDE1LCAweDAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIExvZ2ljYWwgTWluaW11 bSAoMCkNCj4+PiArwqDCoMKgIDB4MjcsIDB4ZmYsIDB4ZmYsIDB4MDAsIDB4MDAswqDCoMKgIC8v wqDCoCBMb2dpY2FsIE1heGltdW0gKDY1NTM1KQ0KPj4+ICvCoMKgwqAgMHg3NSwgMHgxMCzCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBSZXBvcnQgU2l6ZSAoMTYpDQo+Pj4gK8KgwqDCoCAw eDk1LCAweDAyLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFJlcG9ydCBDb3VudCAoMikN Cj4+PiArwqDCoMKgIDB4YjEsIDB4MDIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgRmVh dHVyZSAoRGF0YSxWYXIsQWJzKQ0KPj4+ICvCoMKgwqAgMHgwOSwgMHg1MSzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC8vwqDCoCBVc2FnZSAoUmVkIFVwZGF0ZSBDaGFubmVsKQ0KPj4+ICvCoMKgwqAg MHgwOSwgMHg1MizCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBVc2FnZSAoR3JlZW4gVXBk YXRlIENoYW5uZWwpDQo+Pj4gK8KgwqDCoCAweDA5LCAweDUzLMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLy/CoMKgIFVzYWdlIChCbHVlIFVwZGF0ZSBDaGFubmVsKQ0KPj4+ICvCoMKgwqAgMHgwOSwg MHg1NCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBVc2FnZSAoSW50ZW5zaXR5IFVwZGF0 ZSBDaGFubmVsKQ0KPj4+ICvCoMKgwqAgMHgxNSwgMHgwMCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC8vwqDCoCBMb2dpY2FsIE1pbmltdW0gKDApDQo+Pj4gK8KgwqDCoCAweDI2LCAweGZmLCAweDAw LMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBMb2dpY2FsIE1heGltdW0gKDI1NSkNCj4+PiArwqDCoMKg IDB4NzUsIDB4MDgswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVwb3J0IFNpemUgKDgp DQo+Pj4gK8KgwqDCoCAweDk1LCAweDA0LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFJl cG9ydCBDb3VudCAoNCkNCj4+PiArwqDCoMKgIDB4YjEsIDB4MDIswqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAvL8KgwqAgRmVhdHVyZSAoRGF0YSxWYXIsQWJzKQ0KPj4+ICvCoMKgwqAgMHhjMCzCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoCBFbmQgQ29sbGVjdGlvbg0KPj4+ICvCoMKg wqAgMHg4NSwgTEFNUF9BUlJBWV9DT05UUk9MX1JFUE9SVF9JRCwgLy/CoCBSZXBvcnQgSUQgKDYp DQo+Pj4gK8KgwqDCoCAweDA5LCAweDcwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoCBVc2Fn ZSAoTGFtcCBBcnJheSBDb250cm9sIFJlcG9ydCkNCj4+PiArwqDCoMKgIDB4YTEsIDB4MDIswqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgIENvbGxlY3Rpb24gKExvZ2ljYWwpDQo+Pj4gK8KgwqDC oCAweDA5LCAweDcxLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/CoMKgIFVzYWdlIChBdXRvbm9t b3VzIE1vZGUpDQo+Pj4gK8KgwqDCoCAweDE1LCAweDAwLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Ly/CoMKgIExvZ2ljYWwgTWluaW11bSAoMCkNCj4+PiArwqDCoMKgIDB4MjUsIDB4MDEswqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgTG9naWNhbCBNYXhpbXVtICgxKQ0KPj4+ICvCoMKgwqAg MHg3NSwgMHgwOCzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vwqDCoCBSZXBvcnQgU2l6ZSAoOCkN Cj4+PiArwqDCoMKgIDB4OTUsIDB4MDEswqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgUmVw b3J0IENvdW50ICgxKQ0KPj4+ICvCoMKgwqAgMHhiMSwgMHgwMizCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC8vwqDCoCBGZWF0dXJlIChEYXRhLFZhcixBYnMpDQo+Pj4gK8KgwqDCoCAweGMwLMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgIEVuZCBDb2xsZWN0aW9uDQo+Pj4gK8KgwqDC oCAweGMwwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIEVuZCBDb2xsZWN0aW9uDQo+ Pj4gK307DQo+Pj4gKw0KPj4+ICtzdGF0aWMgaW50IGxsX3BhcnNlKHN0cnVjdCBoaWRfZGV2aWNl ICpoZGV2KQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCByZXR1cm4gaGlkX3BhcnNlX3JlcG9ydChoZGV2 LCByZXBvcnRfZGVzY3JpcHRvciwgDQo+Pj4gc2l6ZW9mKHJlcG9ydF9kZXNjcmlwdG9yKSk7DQo+ Pj4gK30NCj4+PiArDQo+Pj4gKw0KPj4+ICtzdHJ1Y3QgX19wYWNrZWQgbGFtcF9hcnJheV9hdHRy aWJ1dGVzX3JlcG9ydF90IHsNCj4+PiArwqDCoMKgIGNvbnN0IHVpbnQ4X3QgcmVwb3J0X2lkOw0K Pj4+ICvCoMKgwqAgdWludDE2X3QgbGFtcF9jb3VudDsNCj4+PiArwqDCoMKgIHVpbnQzMl90IGJv dW5kaW5nX2JveF93aWR0aF9pbl9taWNyb21ldGVyczsNCj4+PiArwqDCoMKgIHVpbnQzMl90IGJv dW5kaW5nX2JveF9oZWlnaHRfaW5fbWljcm9tZXRlcnM7DQo+Pj4gK8KgwqDCoCB1aW50MzJfdCBi b3VuZGluZ19ib3hfZGVwdGhfaW5fbWljcm9tZXRlcnM7DQo+Pj4gK8KgwqDCoCB1aW50MzJfdCBs YW1wX2FycmF5X2tpbmQ7DQo+Pj4gK8KgwqDCoCB1aW50MzJfdCBtaW5fdXBkYXRlX2ludGVydmFs X2luX21pY3Jvc2Vjb25kczsNCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0YXRpYyBpbnQgaGFuZGxl X2xhbXBfYXJyYXlfYXR0cmlidXRlc19yZXBvcnQoc3RydWN0IGhpZF9kZXZpY2UgDQo+Pj4gKmhk ZXYsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc3RydWN0IGxhbXBfYXJyYXlfYXR0cmlidXRlc19yZXBvcnRfdCAqcmVwKQ0KPj4+ICt7 DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgZHJpdmVyX2RhdGFfdCAqZHJpdmVyX2RhdGEgPSBoZGV2LT5k cml2ZXJfZGF0YTsNCj4+PiArDQo+Pj4gK8KgwqDCoCByZXAtPmxhbXBfY291bnQgPSBkcml2ZXJf ZGF0YS0+bGFtcF9jb3VudDsNCj4+PiArwqDCoMKgIHJlcC0+Ym91bmRpbmdfYm94X3dpZHRoX2lu X21pY3JvbWV0ZXJzID0gMzY4MDAwOw0KPj4+ICvCoMKgwqAgcmVwLT5ib3VuZGluZ19ib3hfaGVp Z2h0X2luX21pY3JvbWV0ZXJzID0gMjY2MDAwOw0KPj4+ICvCoMKgwqAgcmVwLT5ib3VuZGluZ19i b3hfZGVwdGhfaW5fbWljcm9tZXRlcnMgPSAzMDAwMDsNCj4+PiArwqDCoMKgIC8vIExhbXBBcnJh eUtpbmRLZXlib2FyZCwgc2VlICIyNi4yLjEgTGFtcEFycmF5S2luZCBWYWx1ZXMiIG9mIA0KPj4+ ICJISUQgVXNhZ2UgVGFibGVzIHYxLjUiDQo+Pj4gK8KgwqDCoCByZXAtPmxhbXBfYXJyYXlfa2lu ZCA9IDE7DQo+Pj4gK8KgwqDCoCAvLyBTb21lIGd1ZXNzZWQgdmFsdWUgZm9yIGludGVydmFsIG1p Y3Jvc2Vjb25kcw0KPj4+ICvCoMKgwqAgcmVwLT5taW5fdXBkYXRlX2ludGVydmFsX2luX21pY3Jv c2Vjb25kcyA9IDUwMDsNCj4+PiArDQo+Pj4gK8KgwqDCoCByZXR1cm4gc2l6ZW9mKHN0cnVjdCBs YW1wX2FycmF5X2F0dHJpYnV0ZXNfcmVwb3J0X3QpOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ICsNCj4+ PiArc3RydWN0IF9fcGFja2VkIGxhbXBfYXR0cmlidXRlc19yZXF1ZXN0X3JlcG9ydF90IHsNCj4+ PiArwqDCoMKgIGNvbnN0IHVpbnQ4X3QgcmVwb3J0X2lkOw0KPj4+ICvCoMKgwqAgdWludDE2X3Qg bGFtcF9pZDsNCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0YXRpYyBpbnQgaGFuZGxlX2xhbXBfYXR0 cmlidXRlc19yZXF1ZXN0X3JlcG9ydChzdHJ1Y3QgaGlkX2RldmljZSANCj4+PiAqaGRldiwNCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVj dCBsYW1wX2F0dHJpYnV0ZXNfcmVxdWVzdF9yZXBvcnRfdCAqcmVwKQ0KPj4+ICt7DQo+Pj4gK8Kg wqDCoCBzdHJ1Y3QgZHJpdmVyX2RhdGFfdCAqZHJpdmVyX2RhdGEgPSBoZGV2LT5kcml2ZXJfZGF0 YTsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAocmVwLT5sYW1wX2lkIDwgZHJpdmVyX2RhdGEtPmxh bXBfY291bnQpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGRyaXZlcl9kYXRhLT5uZXh0X2xhbXBfaWQg PSByZXAtPmxhbXBfaWQ7DQo+Pj4gK8KgwqDCoCBlbHNlDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGRy aXZlcl9kYXRhLT5uZXh0X2xhbXBfaWQgPSAwOw0KPj4+ICsNCj4+PiArwqDCoMKgIHJldHVybiBz aXplb2Yoc3RydWN0IGxhbXBfYXR0cmlidXRlc19yZXF1ZXN0X3JlcG9ydF90KTsNCj4+PiArfQ0K Pj4+ICsNCj4+PiArDQo+Pj4gK3N0cnVjdCBfX3BhY2tlZCBsYW1wX2F0dHJpYnV0ZXNfcmVzcG9u c2VfcmVwb3J0X3Qgew0KPj4+ICvCoMKgwqAgY29uc3QgdWludDhfdCByZXBvcnRfaWQ7DQo+Pj4g K8KgwqDCoCB1aW50MTZfdCBsYW1wX2lkOw0KPj4+ICvCoMKgwqAgdWludDMyX3QgcG9zaXRpb25f eF9pbl9taWNyb21ldGVyczsNCj4+PiArwqDCoMKgIHVpbnQzMl90IHBvc2l0aW9uX3lfaW5fbWlj cm9tZXRlcnM7DQo+Pj4gK8KgwqDCoCB1aW50MzJfdCBwb3NpdGlvbl96X2luX21pY3JvbWV0ZXJz Ow0KPj4+ICvCoMKgwqAgdWludDMyX3QgdXBkYXRlX2xhdGVuY3lfaW5fbWljcm9zZWNvbmRzOw0K Pj4+ICvCoMKgwqAgdWludDMyX3QgbGFtcF9wdXJwb3NlOw0KPj4+ICvCoMKgwqAgdWludDhfdCBy ZWRfbGV2ZWxfY291bnQ7DQo+Pj4gK8KgwqDCoCB1aW50OF90IGdyZWVuX2xldmVsX2NvdW50Ow0K Pj4+ICvCoMKgwqAgdWludDhfdCBibHVlX2xldmVsX2NvdW50Ow0KPj4+ICvCoMKgwqAgdWludDhf dCBpbnRlbnNpdHlfbGV2ZWxfY291bnQ7DQo+Pj4gK8KgwqDCoCB1aW50OF90IGlzX3Byb2dyYW1t YWJsZTsNCj4+PiArwqDCoMKgIHVpbnQ4X3QgaW5wdXRfYmluZGluZzsNCj4+PiArfTsNCj4+PiAr DQo+Pj4gK3N0YXRpYyBpbnQgaGFuZGxlX2xhbXBfYXR0cmlidXRlc19yZXNwb25zZV9yZXBvcnQo c3RydWN0IGhpZF9kZXZpY2UgDQo+Pj4gKmhkZXYsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBsYW1wX2F0dHJpYnV0ZXNfcmVz cG9uc2VfcmVwb3J0X3QgDQo+Pj4gKnJlcCkNCj4+PiArew0KPj4+ICvCoMKgwqAgc3RydWN0IGRy aXZlcl9kYXRhX3QgKmRyaXZlcl9kYXRhID0gaGRldi0+ZHJpdmVyX2RhdGE7DQo+Pj4gK8KgwqDC oCB1aW50MTZfdCBsYW1wX2lkID0gZHJpdmVyX2RhdGEtPm5leHRfbGFtcF9pZDsNCj4+PiArwqDC oMKgIGNvbnN0IHVpbnQ4X3QgKmtibF9tYXBwaW5nOw0KPj4+ICvCoMKgwqAgY29uc3QgdWludDMy X3QgKmtibF9tYXBwaW5nX3Bvc194LCAqa2JsX21hcHBpbmdfcG9zX3ksIA0KPj4+ICprYmxfbWFw cGluZ19wb3NfejsNCj4+PiArDQo+Pj4gK8KgwqDCoCByZXAtPmxhbXBfaWQgPSBsYW1wX2lkOw0K Pj4+ICvCoMKgwqAgLy8gU29tZSBndWVzc2VkIHZhbHVlIGZvciBsYXRlbmN5IG1pY3Jvc2Vjb25k cw0KPj4+ICvCoMKgwqAgcmVwLT51cGRhdGVfbGF0ZW5jeV9pbl9taWNyb3NlY29uZHMgPSAxMDA7 DQo+Pj4gK8KgwqDCoMKgIC8vIExhbXBQdXJwb3NlQ29udHJvbCwgc2VlICIyNi4zLjEgTGFtcFB1 cnBvc2VzIEZsYWdzIiBvZiAiSElEIA0KPj4+IFVzYWdlIFRhYmxlcyB2MS41Ig0KPj4+ICvCoMKg wqAgcmVwLT5sYW1wX3B1cnBvc2UgPSAxOw0KPj4+ICvCoMKgwqAgcmVwLT5yZWRfbGV2ZWxfY291 bnQgPSAweGZmOw0KPj4+ICvCoMKgwqAgcmVwLT5ncmVlbl9sZXZlbF9jb3VudCA9IDB4ZmY7DQo+ Pj4gK8KgwqDCoCByZXAtPmJsdWVfbGV2ZWxfY291bnQgPSAweGZmOw0KPj4+ICvCoMKgwqAgcmVw LT5pbnRlbnNpdHlfbGV2ZWxfY291bnQgPSAweGZmOw0KPj4+ICvCoMKgwqAgcmVwLT5pc19wcm9n cmFtbWFibGUgPSAxOw0KPj4+ICsNCj4+PiArwqDCoMKgIGlmIChkcml2ZXJfZGF0YS0+a2V5Ym9h cmRfdHlwZSA9PSANCj4+PiBXTUlfQUJfR0VUX0RFVklDRV9TVEFUVVNfS0VZQk9BUkRfTEFZT1VU X0FOU0lJKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGtibF9tYXBwaW5nID0gJnNpcml1c18xNl9h bnNpaV9rYmxfbWFwcGluZ1swXTsNCj4+PiArwqDCoMKgwqDCoMKgwqAga2JsX21hcHBpbmdfcG9z X3ggPSAmc2lyaXVzXzE2X2Fuc2lpX2tibF9tYXBwaW5nX3Bvc194WzBdOw0KPj4+ICvCoMKgwqDC oMKgwqDCoCBrYmxfbWFwcGluZ19wb3NfeSA9ICZzaXJpdXNfMTZfYW5zaWlfa2JsX21hcHBpbmdf cG9zX3lbMF07DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGtibF9tYXBwaW5nX3Bvc196ID0gJnNpcml1 c18xNl9hbnNpaV9rYmxfbWFwcGluZ19wb3NfelswXTsNCj4+PiArwqDCoMKgIH0gZWxzZSBpZiAo ZHJpdmVyX2RhdGEtPmtleWJvYXJkX3R5cGUgPT0gDQo+Pj4gV01JX0FCX0dFVF9ERVZJQ0VfU1RB VFVTX0tFWUJPQVJEX0xBWU9VVF9JU08pIHsNCj4+PiArwqDCoMKgwqDCoMKgwqAga2JsX21hcHBp bmcgPSAmc2lyaXVzXzE2X2lzb19rYmxfbWFwcGluZ1swXTsNCj4+PiArwqDCoMKgwqDCoMKgwqAg a2JsX21hcHBpbmdfcG9zX3ggPSAmc2lyaXVzXzE2X2lzb19rYmxfbWFwcGluZ19wb3NfeFswXTsN Cj4+PiArwqDCoMKgwqDCoMKgwqAga2JsX21hcHBpbmdfcG9zX3kgPSAmc2lyaXVzXzE2X2lzb19r YmxfbWFwcGluZ19wb3NfeVswXTsNCj4+PiArwqDCoMKgwqDCoMKgwqAga2JsX21hcHBpbmdfcG9z X3ogPSAmc2lyaXVzXzE2X2lzb19rYmxfbWFwcGluZ19wb3NfelswXTsNCj4+PiArwqDCoMKgIH0g ZWxzZQ0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+PiArDQo+Pj4gK8Kg wqDCoCBpZiAoa2JsX21hcHBpbmdbbGFtcF9pZF0gPD0gMHhlOCkNCj4+PiArwqDCoMKgwqDCoMKg wqAgcmVwLT5pbnB1dF9iaW5kaW5nID0ga2JsX21hcHBpbmdbbGFtcF9pZF07DQo+Pj4gK8KgwqDC oCBlbHNlDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIC8vIEV2ZXJ5dGhpbmcgYmlnZ2VyIGlzIHJlc2Vy dmVkL3VuZGVmaW5lZCwgc2VlICIxMCANCj4+PiBLZXlib2FyZC9LZXlwYWQgUGFnZSAoMHgwNyki IG9mDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIC8vICJISUQgVXNhZ2UgVGFibGVzIHYxLjUiIGFuZCBz aG91bGQgcmV0dXJuIDAsIHNlZSAiMjYuOC4zIA0KPj4+IExhbXAgQXR0cmlidXRlcyIgb2YgdGhl DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIC8vIHNhbWUgZG9jdW1lbnQuDQo+Pj4gK8KgwqDCoMKgwqDC oMKgIHJlcC0+aW5wdXRfYmluZGluZyA9IDA7DQo+Pj4gK8KgwqDCoCByZXAtPnBvc2l0aW9uX3hf aW5fbWljcm9tZXRlcnMgPSBrYmxfbWFwcGluZ19wb3NfeFtsYW1wX2lkXTsNCj4+PiArwqDCoMKg IHJlcC0+cG9zaXRpb25feV9pbl9taWNyb21ldGVycyA9IGtibF9tYXBwaW5nX3Bvc195W2xhbXBf aWRdOw0KPj4+ICvCoMKgwqAgcmVwLT5wb3NpdGlvbl96X2luX21pY3JvbWV0ZXJzID0ga2JsX21h cHBpbmdfcG9zX3pbbGFtcF9pZF07DQo+Pj4gKw0KPj4+ICvCoMKgwqAgZHJpdmVyX2RhdGEtPm5l eHRfbGFtcF9pZCA9IChkcml2ZXJfZGF0YS0+bmV4dF9sYW1wX2lkICsgMSkgJSANCj4+PiBkcml2 ZXJfZGF0YS0+bGFtcF9jb3VudDsNCj4+PiArDQo+Pj4gK8KgwqDCoCByZXR1cm4gc2l6ZW9mKHN0 cnVjdCBsYW1wX2F0dHJpYnV0ZXNfcmVzcG9uc2VfcmVwb3J0X3QpOw0KPj4+ICt9DQo+Pj4gKw0K Pj4+ICsNCj4+PiArI2RlZmluZSBMQU1QX1VQREFURV9GTEFHU19MQU1QX1VQREFURV9DT01QTEVU RcKgwqDCoCBCSVQoMCkNCj4+PiArDQo+Pj4gK3N0cnVjdCBfX3BhY2tlZCBsYW1wX211bHRpX3Vw ZGF0ZV9yZXBvcnRfdCB7DQo+Pj4gK8KgwqDCoCBjb25zdCB1aW50OF90IHJlcG9ydF9pZDsNCj4+ PiArwqDCoMKgIHVpbnQ4X3QgbGFtcF9jb3VudDsNCj4+PiArwqDCoMKgIHVpbnQ4X3QgbGFtcF91 cGRhdGVfZmxhZ3M7DQo+Pj4gK8KgwqDCoCB1aW50MTZfdCBsYW1wX2lkWzhdOw0KPj4+ICvCoMKg wqAgc3RydWN0IHsNCj4+PiArwqDCoMKgwqDCoMKgwqAgdWludDhfdCByZWQ7DQo+Pj4gK8KgwqDC oMKgwqDCoMKgIHVpbnQ4X3QgZ3JlZW47DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgYmx1 ZTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgdWludDhfdCBpbnRlbnNpdHk7DQo+Pj4gK8KgwqDCoCB9 IHVwZGF0ZV9jaGFubmVsc1s4XTsNCj4+PiArfTsNCj4+PiArDQo+Pj4gK3N0YXRpYyBpbnQgaGFu ZGxlX2xhbXBfbXVsdGlfdXBkYXRlX3JlcG9ydChzdHJ1Y3QgaGlkX2RldmljZSAqaGRldiwNCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGxh bXBfbXVsdGlfdXBkYXRlX3JlcG9ydF90ICpyZXApDQo+Pj4gK3sNCj4+PiArwqDCoMKgIGludCBy ZXQ7DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgZHJpdmVyX2RhdGFfdCAqZHJpdmVyX2RhdGEgPSBoZGV2 LT5kcml2ZXJfZGF0YTsNCj4+PiArwqDCoMKgIHN0cnVjdCB3bWlfZGV2aWNlICp3ZGV2ID0gZGV2 X3RvX3dkZXYoaGRldi0+ZGV2LnBhcmVudCk7DQo+Pj4gK8KgwqDCoCB1aW50OF90IGxhbXBfY291 bnQsIGtleV9pZCwga2V5X2lkX2o7DQo+Pj4gK8KgwqDCoCB1bmlvbiB0dXhlZG9fbmIwNF93bWlf NDk2X2JfaW5fODBfYl9vdXRfaW5wdXQgKm5leHQgPQ0KPj4+ICsgJmRyaXZlcl9kYXRhLT5uZXh0 X2tibF9zZXRfbXVsdGlwbGVfa2V5c19pbnB1dDsNCj4+PiArwqDCoMKgIHVuaW9uIHR1eGVkb19u YjA0X3dtaV80OTZfYl9pbl84MF9iX291dF9vdXRwdXQgb3V0cHV0Ow0KPj4+ICsNCj4+PiArwqDC oMKgIC8vIENhdGNoaW5nIG1pc3Nmb3JtYXRlZCBsYW1wX211bHRpX3VwZGF0ZV9yZXBvcnQgYW5k IGZhaWwgDQo+Pj4gc2lsZW50bHkgYWNjb3JkaW5nIHRvDQo+Pj4gK8KgwqDCoCAvLyAiSElEIFVz YWdlIFRhYmxlcyB2MS41Ig0KPj4+ICvCoMKgwqAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXAtPmxh bXBfY291bnQ7ICsraSkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoZHJpdmVyX2RhdGEtPmtl eWJvYXJkX3R5cGUgPT0gDQo+Pj4gV01JX0FCX0dFVF9ERVZJQ0VfU1RBVFVTX0tFWUJPQVJEX0xB WU9VVF9BTlNJSSkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsYW1wX2NvdW50ID0gc2l6 ZW9mKHNpcml1c18xNl9hbnNpaV9rYmxfbWFwcGluZyk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGVs c2UgaWYgKGRyaXZlcl9kYXRhLT5rZXlib2FyZF90eXBlID09IA0KPj4+IFdNSV9BQl9HRVRfREVW SUNFX1NUQVRVU19LRVlCT0FSRF9MQVlPVVRfSVNPKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGxhbXBfY291bnQgPSBzaXplb2Yoc2lyaXVzXzE2X2Fuc2lpX2tibF9tYXBwaW5nKTsNCj4+ PiArDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyZXAtPmxhbXBfaWRbaV0gPiBsYW1wX2NvdW50 KSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJfZGVidWcoIk91dCBvZiBib3VuZHMg bGFtcF9pZCBpbiANCj4+PiBsYW1wX211bHRpX3VwZGF0ZV9yZXBvcnQuIFNraXBwbmcgd2hvbGUg cmVwb3J0IVxuIik7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHNpemVvZihz dHJ1Y3QgbGFtcF9tdWx0aV91cGRhdGVfcmVwb3J0X3QpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB9 DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBmb3IgKGludCBqID0gaSArIDE7IGogPCByZXAt PmxhbXBfY291bnQ7ICsraikgew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXAt PmxhbXBfaWRbaV0gPT0gcmVwLT5sYW1wX2lkW2pdKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwcl9kZWJ1ZygiRHVwbGljYXRlIGxhbXBfaWQgaW4gDQo+Pj4gbGFtcF9t dWx0aV91cGRhdGVfcmVwb3J0LiBTa2lwcG5nIHdob2xlIHJlcG9ydCFcbiIpOw0KPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHNpemVvZihzdHJ1Y3QgbGFtcF9tdWx0 aV91cGRhdGVfcmVwb3J0X3QpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+PiAr wqDCoMKgwqDCoMKgwqAgfQ0KPj4+ICvCoMKgwqAgfQ0KPj4+ICsNCj4+PiArwqDCoMKgIGZvciAo aW50IGkgPSAwOyBpIDwgcmVwLT5sYW1wX2NvdW50OyArK2kpIHsNCj4+PiArwqDCoMKgwqDCoMKg wqAgaWYgKGRyaXZlcl9kYXRhLT5rZXlib2FyZF90eXBlID09IA0KPj4+IFdNSV9BQl9HRVRfREVW SUNFX1NUQVRVU19LRVlCT0FSRF9MQVlPVVRfQU5TSUkpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAga2V5X2lkID0gc2lyaXVzXzE2X2Fuc2lpX2tibF9tYXBwaW5nW3JlcC0+bGFtcF9pZFtp XV07DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKGRyaXZlcl9kYXRhLT5rZXlib2FyZF90 eXBlID09IA0KPj4+IFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19LRVlCT0FSRF9MQVlPVVRfSVNP KQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGtleV9pZCA9IHNpcml1c18xNl9pc29fa2Js X21hcHBpbmdbcmVwLT5sYW1wX2lkW2ldXTsNCj4+PiArDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGZv ciAoaW50IGogPSAwOyBqIDwgDQo+Pj4gV01JX0FCX0tCTF9TRVRfTVVMVElQTEVfS0VZU19MSUdI VElOR19TRVRUSU5HU19DT1VOVF9NQVg7ICsraikgew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGtleV9pZF9qID0gDQo+Pj4gbmV4dC0+a2JsX3NldF9tdWx0aXBsZV9rZXlzX2lucHV0Lmxp Z2h0aW5nX3NldHRpbmdzW2pdLmtleV9pZDsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp ZiAoa2V5X2lkX2ogPT0gMHgwMCB8fCBrZXlfaWRfaiA9PSBrZXlfaWQpIHsNCj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChrZXlfaWRfaiA9PSAweDAwKQ0KPj4+ICsgbmV4 dC0+a2JsX3NldF9tdWx0aXBsZV9rZXlzX2lucHV0LmxpZ2h0aW5nX3NldHRpbmdfY291bnQgPQ0K Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGogKyAx Ow0KPj4+ICsgbmV4dC0+a2JsX3NldF9tdWx0aXBsZV9rZXlzX2lucHV0LmxpZ2h0aW5nX3NldHRp bmdzW2pdLmtleV9pZCA9DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGtleV9pZDsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIFdoaWxl IHRoaXMgZHJpdmVyIHJlc3BlY3RzDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAvLyBpbnRlbnNpdHlfdXBkYXRlX2NoYW5uZWwgYWNjb3JkaW5nIHRvICJISUQNCj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIFVzYWdlIFRhYmxlcyB2MS41IiBhbHNvIG9u IFJHQiBsZWRzLCB0aGUNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIE1p Y3Jvc29mdCBNYWNyb1BhZCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24NCj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIA0KPj4+IChodHRwczovL2dpdGh1Yi5jb20vbWljcm9z b2Z0L1JQMjA0ME1hY3JvcGFkSGlkU2FtcGxlDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAvLyAxZDZjM2FkKSBkb2VzIG5vdCBhbmQgaWdub3JlcyBpdC4gSWYgaXQgdHVybnMN Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIG91dCB0aGF0IFdpbmRvd3Mg d3JpdGVzIGludGVuc2l0eSA9IDAgZm9yIFJHQg0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLy8gbGVkcyBpbnN0ZWFkIG9mIGludGVuc2l0eSA9IDI1NSwgdGhpcyBkcml2ZXIN Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIHNob3VsZCBhbHNvIGlyZ25v cmUgdGhlDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBpbnRlbnNpdHlf dXBkYXRlX2NoYW5uZWwuDQo+Pj4gKyBuZXh0LT5rYmxfc2V0X211bHRpcGxlX2tleXNfaW5wdXQu bGlnaHRpbmdfc2V0dGluZ3Nbal0ucmVkID0NCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcmVwLT51cGRhdGVfY2hhbm5lbHNbaV0ucmVkDQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiByZXAtPnVwZGF0ZV9jaGFu bmVsc1tpXS5pbnRlbnNpdHkgLyAweGZmOw0KPj4+ICsgbmV4dC0+a2JsX3NldF9tdWx0aXBsZV9r ZXlzX2lucHV0LmxpZ2h0aW5nX3NldHRpbmdzW2pdLmdyZWVuID0NCj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVwLT51cGRhdGVfY2hhbm5lbHNbaV0uZ3JlZW4N Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIHJl cC0+dXBkYXRlX2NoYW5uZWxzW2ldLmludGVuc2l0eSAvIDB4ZmY7DQo+Pj4gKyBuZXh0LT5rYmxf c2V0X211bHRpcGxlX2tleXNfaW5wdXQubGlnaHRpbmdfc2V0dGluZ3Nbal0uYmx1ZSA9DQo+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlcC0+dXBkYXRlX2NoYW5u ZWxzW2ldLmJsdWUNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqIHJlcC0+dXBkYXRlX2NoYW5uZWxzW2ldLmludGVuc2l0eSAvIDB4ZmY7DQo+Pj4g Kw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4gK8KgwqDCoCB9 DQo+Pj4gKw0KPj4+ICvCoMKgwqAgaWYgKHJlcC0+bGFtcF91cGRhdGVfZmxhZ3MgJiANCj4+PiBM QU1QX1VQREFURV9GTEFHU19MQU1QX1VQREFURV9DT01QTEVURSkgew0KPj4+ICvCoMKgwqDCoMKg wqDCoCByZXQgPSB0dXhlZG9fbmIwNF93bWlfNDk2X2JfaW5fODBfYl9vdXQod2RldiwgDQo+Pj4g V01JX0FCX0tCTF9TRVRfTVVMVElQTEVfS0VZUywgbmV4dCwNCj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZvdXRwdXQpOw0KPj4+ICvC oMKgwqDCoMKgwqDCoCBtZW1zZXQobmV4dCwgMCwgc2l6ZW9mKHVuaW9uIA0KPj4+IHR1eGVkb19u YjA0X3dtaV80OTZfYl9pbl84MF9iX291dF9pbnB1dCkpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBp ZiAocmV0KQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7DQo+Pj4gK8Kg wqDCoCB9DQo+Pj4gKw0KPj4+ICvCoMKgwqAgcmV0dXJuIHNpemVvZihzdHJ1Y3QgbGFtcF9tdWx0 aV91cGRhdGVfcmVwb3J0X3QpOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ICsNCj4+PiArc3RydWN0IF9f cGFja2VkIGxhbXBfcmFuZ2VfdXBkYXRlX3JlcG9ydF90IHsNCj4+PiArwqDCoMKgIGNvbnN0IHVp bnQ4X3QgcmVwb3J0X2lkOw0KPj4+ICvCoMKgwqAgdWludDhfdCBsYW1wX3VwZGF0ZV9mbGFnczsN Cj4+PiArwqDCoMKgIHVpbnQxNl90IGxhbXBfaWRfc3RhcnQ7DQo+Pj4gK8KgwqDCoCB1aW50MTZf dCBsYW1wX2lkX2VuZDsNCj4+PiArwqDCoMKgIHVpbnQ4X3QgcmVkX3VwZGF0ZV9jaGFubmVsOw0K Pj4+ICvCoMKgwqAgdWludDhfdCBncmVlbl91cGRhdGVfY2hhbm5lbDsNCj4+PiArwqDCoMKgIHVp bnQ4X3QgYmx1ZV91cGRhdGVfY2hhbm5lbDsNCj4+PiArwqDCoMKgIHVpbnQ4X3QgaW50ZW5zaXR5 X3VwZGF0ZV9jaGFubmVsOw0KPj4+ICt9Ow0KPj4+ICsNCj4+PiArc3RhdGljIGludCBoYW5kbGVf bGFtcF9yYW5nZV91cGRhdGVfcmVwb3J0KHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LA0KPj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbGFtcF9y YW5nZV91cGRhdGVfcmVwb3J0X3QgKnJlcG9ydCkNCj4+PiArew0KPj4+ICvCoMKgwqAgaW50IHJl dDsNCj4+PiArwqDCoMKgIHN0cnVjdCBkcml2ZXJfZGF0YV90ICpkcml2ZXJfZGF0YSA9IGhkZXYt PmRyaXZlcl9kYXRhOw0KPj4+ICvCoMKgwqAgdWludDhfdCBsYW1wX2NvdW50Ow0KPj4+ICvCoMKg wqAgc3RydWN0IGxhbXBfbXVsdGlfdXBkYXRlX3JlcG9ydF90IGxhbXBfbXVsdGlfdXBkYXRlX3Jl cG9ydCA9IHsNCj4+PiArwqDCoMKgwqDCoMKgwqAgLnJlcG9ydF9pZCA9IExBTVBfTVVMVElfVVBE QVRFX1JFUE9SVF9JRA0KPj4+ICvCoMKgwqAgfTsNCj4+PiArDQo+Pj4gK8KgwqDCoCAvLyBDYXRj aGluZyBtaXNzZm9ybWF0ZWQgbGFtcF9yYW5nZV91cGRhdGVfcmVwb3J0IGFuZCBmYWlsIA0KPj4+ IHNpbGVudGx5IGFjY29yZGluZyB0bw0KPj4+ICvCoMKgwqAgLy8gIkhJRCBVc2FnZSBUYWJsZXMg djEuNSINCj4+PiArwqDCoMKgIGlmIChyZXBvcnQtPmxhbXBfaWRfc3RhcnQgPiByZXBvcnQtPmxh bXBfaWRfZW5kKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHByX2RlYnVnKCJsYW1wX2lkX3N0YXJ0 ID4gbGFtcF9pZF9lbmQgaW4gDQo+Pj4gbGFtcF9yYW5nZV91cGRhdGVfcmVwb3J0LiBTa2lwcG5n IHdob2xlIHJlcG9ydCFcbiIpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gc2l6ZW9mKHN0 cnVjdCBsYW1wX3JhbmdlX3VwZGF0ZV9yZXBvcnRfdCk7DQo+Pj4gK8KgwqDCoCB9DQo+Pj4gKw0K Pj4+ICvCoMKgwqAgaWYgKGRyaXZlcl9kYXRhLT5rZXlib2FyZF90eXBlID09IA0KPj4+IFdNSV9B Ql9HRVRfREVWSUNFX1NUQVRVU19LRVlCT0FSRF9MQVlPVVRfQU5TSUkpDQo+Pj4gK8KgwqDCoMKg wqDCoMKgIGxhbXBfY291bnQgPSBzaXplb2Yoc2lyaXVzXzE2X2Fuc2lpX2tibF9tYXBwaW5nKTsN Cj4+PiArwqDCoMKgIGVsc2UgaWYgKGRyaXZlcl9kYXRhLT5rZXlib2FyZF90eXBlID09IA0KPj4+ IFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19LRVlCT0FSRF9MQVlPVVRfSVNPKQ0KPj4+ICvCoMKg wqDCoMKgwqDCoCBsYW1wX2NvdW50ID0gc2l6ZW9mKHNpcml1c18xNl9hbnNpaV9rYmxfbWFwcGlu Zyk7DQo+Pj4gKw0KPj4+ICvCoMKgwqAgaWYgKHJlcG9ydC0+bGFtcF9pZF9lbmQgPiBsYW1wX2Nv dW50IC0gMSkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCBwcl9kZWJ1ZygiT3V0IG9mIGJvdW5kcyBs YW1wX2lkXyogaW4gDQo+Pj4gbGFtcF9yYW5nZV91cGRhdGVfcmVwb3J0LiBTa2lwcG5nIHdob2xl IHJlcG9ydCFcbiIpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gc2l6ZW9mKHN0cnVjdCBs YW1wX3JhbmdlX3VwZGF0ZV9yZXBvcnRfdCk7DQo+Pj4gK8KgwqDCoCB9DQo+Pj4gKw0KPj4+ICvC oMKgwqAgLy8gQnJlYWsgaGFuZGxlX2xhbXBfcmFuZ2VfdXBkYXRlX3JlcG9ydCBjYWxsIGRvd24g dG8gbXVsdGlwbGUNCj4+PiArwqDCoMKgIC8vIGhhbmRsZV9sYW1wX211bHRpX3VwZGF0ZV9yZXBv cnQgY2FsbHMgdG8gZWFzaWx5IGVuc3VyZSB0aGF0IA0KPj4+IG1peGluZw0KPj4+ICvCoMKgwqAg Ly8gaGFuZGxlX2xhbXBfcmFuZ2VfdXBkYXRlX3JlcG9ydCBhbmQgDQo+Pj4gaGFuZGxlX2xhbXBf bXVsdGlfdXBkYXRlX3JlcG9ydA0KPj4+ICvCoMKgwqAgLy8gZG9lcyBub3QgYnJlYWsgdGhpbmdz Lg0KPj4+ICvCoMKgwqAgZm9yIChpbnQgaSA9IHJlcG9ydC0+bGFtcF9pZF9zdGFydDsgaSA8IHJl cG9ydC0+bGFtcF9pZF9lbmQgKyANCj4+PiAxOyBpID0gaSArIDgpIHsNCj4+PiArwqDCoMKgwqDC oMKgwqAgbGFtcF9tdWx0aV91cGRhdGVfcmVwb3J0LmxhbXBfY291bnQgPSANCj4+PiBNSU4ocmVw b3J0LT5sYW1wX2lkX2VuZCArIDEgLSBpLCA4KTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKGkg KyBsYW1wX211bHRpX3VwZGF0ZV9yZXBvcnQubGFtcF9jb3VudCA9PSANCj4+PiByZXBvcnQtPmxh bXBfaWRfZW5kICsgMSkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsYW1wX211bHRpX3Vw ZGF0ZV9yZXBvcnQubGFtcF91cGRhdGVfZmxhZ3MgfD0NCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIExBTVBfVVBEQVRFX0ZMQUdTX0xBTVBfVVBEQVRFX0NPTVBMRVRFOw0KPj4+ ICsNCj4+PiArwqDCoMKgwqDCoMKgwqAgZm9yIChpbnQgaiA9IDA7IGogPCBsYW1wX211bHRpX3Vw ZGF0ZV9yZXBvcnQubGFtcF9jb3VudDsgDQo+Pj4gKytqKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgbGFtcF9tdWx0aV91cGRhdGVfcmVwb3J0LmxhbXBfaWRbal0gPSBpICsgajsNCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsYW1wX211bHRpX3VwZGF0ZV9yZXBvcnQudXBkYXRl X2NoYW5uZWxzW2pdLnJlZCA9DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXBvcnQtPnJlZF91cGRhdGVfY2hhbm5lbDsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBs YW1wX211bHRpX3VwZGF0ZV9yZXBvcnQudXBkYXRlX2NoYW5uZWxzW2pdLmdyZWVuID0NCj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlcG9ydC0+Z3JlZW5fdXBkYXRlX2NoYW5u ZWw7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGFtcF9tdWx0aV91cGRhdGVfcmVwb3J0 LnVwZGF0ZV9jaGFubmVsc1tqXS5ibHVlID0NCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHJlcG9ydC0+Ymx1ZV91cGRhdGVfY2hhbm5lbDsNCj4+PiArIGxhbXBfbXVsdGlfdXBk YXRlX3JlcG9ydC51cGRhdGVfY2hhbm5lbHNbal0uaW50ZW5zaXR5ID0NCj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlcG9ydC0+aW50ZW5zaXR5X3VwZGF0ZV9jaGFubmVsOw0K Pj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSBo YW5kbGVfbGFtcF9tdWx0aV91cGRhdGVfcmVwb3J0KGhkZXYsIA0KPj4+ICZsYW1wX211bHRpX3Vw ZGF0ZV9yZXBvcnQpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAocmV0IDwgMCkNCj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPj4+ICvCoMKgwqDCoMKgwqDCoCBlbHNl IGlmIChyZXQgIT0gc2l6ZW9mKHN0cnVjdCBsYW1wX211bHRpX3VwZGF0ZV9yZXBvcnRfdCkpDQo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU87DQo+Pj4gK8KgwqDCoCB9DQo+ Pj4gKw0KPj4+ICvCoMKgwqAgcmV0dXJuIHNpemVvZihzdHJ1Y3QgbGFtcF9yYW5nZV91cGRhdGVf cmVwb3J0X3QpOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ICsNCj4+PiArc3RydWN0IF9fcGFja2VkIGxh bXBfYXJyYXlfY29udHJvbF9yZXBvcnRfdCB7DQo+Pj4gK8KgwqDCoCBjb25zdCB1aW50OF90IHJl cG9ydF9pZDsNCj4+PiArwqDCoMKgIHVpbnQ4X3QgYXV0b25vbW91c19tb2RlOw0KPj4+ICt9Ow0K Pj4+ICsNCj4+PiArc3RhdGljIGludCBoYW5kbGVfbGFtcF9hcnJheV9jb250cm9sX3JlcG9ydChz dHJ1Y3QgaGlkX2RldmljZSANCj4+PiBfX2Fsd2F5c191bnVzZWQgKmhkZXYsDQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGxhbXBfYXJy YXlfY29udHJvbF9yZXBvcnRfdCANCj4+PiBfX2Fsd2F5c191bnVzZWQgKnJlcCkNCj4+PiArew0K Pj4+ICvCoMKgwqAgLy8gVGhlIGtleWJvYXJkIGZpcm13YXJlIGRvZXNuJ3QgaGF2ZSBhbnkgYnVp bHQgaW4gZWZmZWN0cyBvciANCj4+PiBjb250cm9scw0KPj4+ICvCoMKgwqAgLy8gc28gdGhpcyBp cyBhIE5PT1AuDQo+Pj4gK8KgwqDCoCAvLyBBY2NvcmRpbmcgdG8gdGhlIEhJRCBEb2N1bWVudGF0 aW9uIChISUQgVXNhZ2UgVGFibGVzIHYxLjUpIHRoaXMNCj4+PiArwqDCoMKgIC8vIGZ1bmN0aW9u IGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBISUQgUmVwb3J0DQo+Pj4g K8KgwqDCoCAvLyBEZXNjcmlwdG9yLCBidXQgaXQgc2hvdWxkIGZpcnN0IGJlIGNvbmZpcm1lZCB0 aGF0IHVzZXJzcGFjZSANCj4+PiByZXNwZWN0cw0KPj4+ICvCoMKgwqAgLy8gdGhpcyBwb3NzaWJp bGl0eSB0b28uIFRoZSBNaWNyb3NvZnQgTWFjcm9QYWQgcmVmZXJlbmNlIA0KPj4+IGltcGxlbWVu dGF0aW9uDQo+Pj4gK8KgwqDCoCAvLyAoaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9SUDIw NDBNYWNyb3BhZEhpZFNhbXBsZSAxZDZjM2FkKQ0KPj4+ICvCoMKgwqAgLy8gYWxyZWFkeSBkZXZp YXRlcyBmcm9tIHRoZSBzcGVjIGF0IGFub3RoZXIgcG9pbnQsIHNlZQ0KPj4+ICvCoMKgwqAgLy8g aGFuZGxlX2xhbXBfKl91cGRhdGVfcmVwb3J0Lg0KPj4+ICsNCj4+PiArwqDCoMKgIHJldHVybiBz aXplb2Yoc3RydWN0IGxhbXBfYXJyYXlfY29udHJvbF9yZXBvcnRfdCk7DQo+Pj4gK30NCj4+PiAr DQo+Pj4gKw0KPj4+ICtzdGF0aWMgaW50IGxsX3Jhd19yZXF1ZXN0KHN0cnVjdCBoaWRfZGV2aWNl ICpoZGV2LCB1bnNpZ25lZCBjaGFyIA0KPj4+IHJlcG9ydG51bSwgX191OCAqYnVmLCBzaXplX3Qg bGVuLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGNoYXIgcnR5 cGUsIGludCByZXF0eXBlKQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCBpbnQgcmV0Ow0KPj4+ICsNCj4+ PiArwqDCoMKgIHByX2RlYnVnKCJSZWNpdmVkIHJlcG9ydDogcnR5cGU6ICV1LCByZXF0eXBlOiAl dSwgcmVwb3J0bnVtOiANCj4+PiAldSwgbGVuOiAlbHUgYnVmOlxuIiwgcnR5cGUsDQo+Pj4gK8Kg wqDCoMKgwqDCoMKgwqAgcmVxdHlwZSwgcmVwb3J0bnVtLCBsZW4pOw0KPj4+ICvCoMKgwqAgcHJp bnRfaGV4X2R1bXBfYnl0ZXMoIiIsIERVTVBfUFJFRklYX09GRlNFVCwgYnVmLCBsZW4pOw0KPj4+ ICsNCj4+PiArwqDCoMKgIHJldCA9IC1FSU5WQUw7DQo+Pj4gK8KgwqDCoCBpZiAocnR5cGUgPT0g SElEX0ZFQVRVUkVfUkVQT1JUKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyZXF0eXBlID09 IEhJRF9SRVFfR0VUX1JFUE9SVCkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChy ZXBvcnRudW0gPT0gTEFNUF9BUlJBWV9BVFRSSUJVVEVTX1JFUE9SVF9JRA0KPj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJiYgbGVuID09IHNpemVvZihzdHJ1Y3QgDQo+Pj4gbGFt cF9hcnJheV9hdHRyaWJ1dGVzX3JlcG9ydF90KSkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJldCA9IGhhbmRsZV9sYW1wX2FycmF5X2F0dHJpYnV0ZXNfcmVwb3J0KA0KPj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBoZGV2LCAoc3RydWN0IGxh bXBfYXJyYXlfYXR0cmlidXRlc19yZXBvcnRfdCANCj4+PiAqKWJ1Zik7DQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZWxzZSBpZiAocmVwb3J0bnVtID09IExBTVBfQVRUUklCVVRFU19SRVNQ T05TRV9SRVBPUlRfSUQNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICYmIGxl biA9PSBzaXplb2Yoc3RydWN0IA0KPj4+IGxhbXBfYXR0cmlidXRlc19yZXNwb25zZV9yZXBvcnRf dCkpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBoYW5kbGVfbGFt cF9hdHRyaWJ1dGVzX3Jlc3BvbnNlX3JlcG9ydCgNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaGRldiwgKHN0cnVjdCBsYW1wX2F0dHJpYnV0ZXNfcmVzcG9uc2Vf cmVwb3J0X3QgDQo+Pj4gKilidWYpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKHJl cXR5cGUgPT0gSElEX1JFUV9TRVRfUkVQT1JUKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaWYgKHJlcG9ydG51bSA9PSBMQU1QX0FUVFJJQlVURVNfUkVRVUVTVF9SRVBPUlRfSUQNCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICYmIGxlbiA9PSBzaXplb2Yoc3RydWN0 IA0KPj4+IGxhbXBfYXR0cmlidXRlc19yZXF1ZXN0X3JlcG9ydF90KSkNCj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IGhhbmRsZV9sYW1wX2F0dHJpYnV0ZXNfcmVxdWVz dF9yZXBvcnQoDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGhk ZXYsIChzdHJ1Y3QgbGFtcF9hdHRyaWJ1dGVzX3JlcXVlc3RfcmVwb3J0X3QgDQo+Pj4gKilidWYp Ow0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKHJlcG9ydG51bSA9PSBMQU1Q X01VTFRJX1VQREFURV9SRVBPUlRfSUQNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICYmIGxlbiA9PSBzaXplb2Yoc3RydWN0IGxhbXBfbXVsdGlfdXBkYXRlX3JlcG9ydF90KSkN Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IGhhbmRsZV9sYW1wX211 bHRpX3VwZGF0ZV9yZXBvcnQoDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGhkZXYsIChzdHJ1Y3QgbGFtcF9tdWx0aV91cGRhdGVfcmVwb3J0X3QgKilidWYpOw0K Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKHJlcG9ydG51bSA9PSBMQU1QX1JB TkdFX1VQREFURV9SRVBPUlRfSUQNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICYmIGxlbiA9PSBzaXplb2Yoc3RydWN0IGxhbXBfcmFuZ2VfdXBkYXRlX3JlcG9ydF90KSkNCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IGhhbmRsZV9sYW1wX3Jhbmdl X3VwZGF0ZV9yZXBvcnQoDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGhkZXYsIChzdHJ1Y3QgbGFtcF9yYW5nZV91cGRhdGVfcmVwb3J0X3QgKilidWYpOw0KPj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKHJlcG9ydG51bSA9PSBMQU1QX0FSUkFZ X0NPTlRST0xfUkVQT1JUX0lEDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAm JiBsZW4gPT0gc2l6ZW9mKHN0cnVjdCBsYW1wX2FycmF5X2NvbnRyb2xfcmVwb3J0X3QpKQ0KPj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gaGFuZGxlX2xhbXBfYXJyYXlf Y29udHJvbF9yZXBvcnQoDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGhkZXYsIChzdHJ1Y3QgbGFtcF9hcnJheV9jb250cm9sX3JlcG9ydF90ICopYnVmKTsNCj4+ PiArwqDCoMKgwqDCoMKgwqAgfQ0KPj4+ICvCoMKgwqAgfQ0KPj4+ICsNCj4+PiArwqDCoMKgIHJl dHVybiByZXQ7DQo+Pj4gK30NCj4+PiArDQo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2xs X2RyaXZlciBsbF9kcml2ZXIgPSB7DQo+Pj4gK8KgwqDCoCAuc3RhcnQgPSAmbGxfc3RhcnQsDQo+ Pj4gK8KgwqDCoCAuc3RvcCA9ICZsbF9zdG9wLA0KPj4+ICvCoMKgwqAgLm9wZW4gPSAmbGxfb3Bl biwNCj4+PiArwqDCoMKgIC5jbG9zZSA9ICZsbF9jbG9zZSwNCj4+PiArwqDCoMKgIC5wYXJzZSA9 ICZsbF9wYXJzZSwNCj4+PiArwqDCoMKgIC5yYXdfcmVxdWVzdCA9ICZsbF9yYXdfcmVxdWVzdCwN Cj4+PiArfTsNCj4+PiArDQo+Pj4gK2ludCB0dXhlZG9fbmIwNF92aXJ0dWFsX2xhbXBfYXJyYXlf YWRkX2RldmljZShzdHJ1Y3Qgd21pX2RldmljZSANCj4+PiAqd2Rldiwgc3RydWN0IGhpZF9kZXZp Y2UgKipoZGV2X291dCkNCj4+PiArew0KPj4+ICvCoMKgwqAgaW50IHJldDsNCj4+PiArwqDCoMKg IHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2Ow0KPj4+ICsNCj4+PiArwqDCoMKgIHByX2RlYnVnKCJB ZGRpbmcgVFVYRURPIE5CMDQgVmlydHVhbCBMYW1wQXJyYXkgZGV2aWNlLlxuIik7DQo+Pj4gKw0K Pj4+ICvCoMKgwqAgaGRldiA9IGhpZF9hbGxvY2F0ZV9kZXZpY2UoKTsNCj4+PiArwqDCoMKgIGlm IChJU19FUlIoaGRldikpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBQVFJfRVJSKGhkZXYp Ow0KPj4+ICvCoMKgwqAgKmhkZXZfb3V0ID0gaGRldjsNCj4+PiArDQo+Pj4gK8KgwqDCoCBzdHJz Y3B5KGhkZXYtPm5hbWUsICJUVVhFRE8gTkIwNCBSR0IgTGlnaHRpbmciLCANCj4+PiBzaXplb2Yo aGRldi0+bmFtZSkpOw0KPj4+ICsNCj4+PiArwqDCoMKgIGhkZXYtPmxsX2RyaXZlciA9ICZsbF9k cml2ZXI7DQo+Pj4gK8KgwqDCoCBoZGV2LT5idXMgPSBCVVNfVklSVFVBTDsNCj4+PiArwqDCoMKg IGhkZXYtPnZlbmRvciA9IDB4MjFiYTsNCj4+PiArwqDCoMKgIGhkZXYtPnByb2R1Y3QgPSAweDA0 MDA7DQo+Pj4gK8KgwqDCoCBoZGV2LT5kZXYucGFyZW50ID0gJndkZXYtPmRldjsNCj4+PiArDQo+ Pj4gK8KgwqDCoCByZXQgPSBoaWRfYWRkX2RldmljZShoZGV2KTsNCj4+PiArwqDCoMKgIGlmIChy ZXQpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGhpZF9kZXN0cm95X2RldmljZShoZGV2KTsNCj4+PiAr wqDCoMKgIHJldHVybiByZXQ7DQo+Pj4gK30NCj4+PiArRVhQT1JUX1NZTUJPTCh0dXhlZG9fbmIw NF92aXJ0dWFsX2xhbXBfYXJyYXlfYWRkX2RldmljZSk7DQo+Pj4gZGlmZiAtLWdpdCANCj4+PiBh L2RyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby90dXhlZG9fbmIwNF93bWlfYWJfdmlydHVhbF9s YW1wX2FycmF5LmggDQo+Pj4gYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vdHV4ZWRvX25i MDRfd21pX2FiX3ZpcnR1YWxfbGFtcF9hcnJheS5oDQo+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4+PiBpbmRleCAwMDAwMDAwMDAwMDAwLi5mZGMyYTAxZDk1YzI0DQo+Pj4gLS0tIC9kZXYvbnVs bA0KPj4+ICsrKyANCj4+PiBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby90dXhlZG9fbmIw NF93bWlfYWJfdmlydHVhbF9sYW1wX2FycmF5LmgNCj4+PiBAQCAtMCwwICsxLDE4IEBADQo+Pj4g Ky8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQo+Pj4gKy8qDQo+Pj4gKyAq IFRoaXMgY29kZSBnaXZlcyB0aGUgYnVpbHQgaW4gUkdCIGxpZ2h0aW5nIG9mIHRoZSBUVVhFRE8g TkIwNCANCj4+PiBkZXZpY2VzIGENCj4+PiArICogc3RhbmRhcmRpc2VkIGludGVyZmFjZSwgbmFt ZWx5IEhJRCBMYW1wQXJyYXkuDQo+Pj4gKyAqDQo+Pj4gKyAqIENvcHlyaWdodCAoQykgMjAyNCBX ZXJuZXIgU2VtYmFjaCB3c2VAdHV4ZWRvY29tcHV0ZXJzLmNvbQ0KPj4+ICsgKi8NCj4+PiArDQo+ Pj4gKyNpZm5kZWYgVFVYRURPX05CMDRfV01JX0FCX1ZJUlRVQUxfTEFNUF9BUlJBWV9IDQo+Pj4g KyNkZWZpbmUgVFVYRURPX05CMDRfV01JX0FCX1ZJUlRVQUxfTEFNUF9BUlJBWV9IDQo+Pj4gKw0K Pj4+ICsjaW5jbHVkZSA8bGludXgvd21pLmg+DQo+Pj4gKyNpbmNsdWRlIDxsaW51eC9oaWQuaD4N Cj4+PiArDQo+Pj4gK2ludCB0dXhlZG9fbmIwNF92aXJ0dWFsX2xhbXBfYXJyYXlfYWRkX2Rldmlj ZShzdHJ1Y3Qgd21pX2RldmljZSAqd2RldiwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGhpZF9kZXZpY2UgKipoZGV2X291dCk7 DQo+Pj4gKw0KPj4+ICsjZW5kaWYNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS94 ODYvdHV4ZWRvL3R1eGVkb19uYjA0X3dtaV91dGlsLmMgDQo+Pj4gYi9kcml2ZXJzL3BsYXRmb3Jt L3g4Ni90dXhlZG8vdHV4ZWRvX25iMDRfd21pX3V0aWwuYw0KPj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+Pj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uZGJhYmRiOWRkNjBjNw0KPj4+IC0tLSAvZGV2 L251bGwNCj4+PiArKysgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vdHV4ZWRvX25iMDRf d21pX3V0aWwuYw0KPj4+IEBAIC0wLDAgKzEsODUgQEANCj4+PiArLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjANCj4+PiArLyoNCj4+PiArICogVGhpcyBjb2RlIGdpdmVzIGZ1bmN0 aW9ucyB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uIHdoaWxlIA0KPj4+IGludGVyYWN0aW5nIHdp dGgNCj4+PiArICogdGhlIFRVWEVETyBOQjA0IHdtaSBpbnRlcmZhY2VzLg0KPj4+ICsgKg0KPj4+ ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjQgV2VybmVyIFNlbWJhY2ggd3NlQHR1eGVkb2NvbXB1dGVy cy5jb20NCj4+PiArICovDQo+Pj4gKw0KPj4+ICsjZGVmaW5lIHByX2ZtdChmbXQpIEtCVUlMRF9N T0ROQU1FICI6ICIgZm10DQo+Pj4gKw0KPj4+ICsjaW5jbHVkZSAidHV4ZWRvX25iMDRfd21pX2Fi X2luaXQuaCINCj4+PiArDQo+Pj4gKyNpbmNsdWRlICJ0dXhlZG9fbmIwNF93bWlfdXRpbC5oIg0K Pj4+ICsNCj4+PiArc3RhdGljIGludCBfX3dtaV9tZXRob2RfYWNwaV9vYmplY3Rfb3V0KHN0cnVj dCB3bWlfZGV2aWNlICp3ZGV2LCANCj4+PiB1aW50MzJfdCB3bWlfbWV0aG9kX2lkLA0KPj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90ICppbiwgYWNwaV9z aXplIGluX2xlbiwgdW5pb24gDQo+Pj4gYWNwaV9vYmplY3QgKipvdXQpDQo+Pg0KPj4gUGxlYXNl IHVzZSBzaXplX3QgaW5zdGVhZCBvZiBhY3BpX3NpemUuDQo+Pg0KPj4+ICt7DQo+Pj4gK8KgwqDC oCBzdHJ1Y3QgdHV4ZWRvX25iMDRfd21pX2RyaXZlcl9kYXRhX3QgKmRyaXZlcl9kYXRhID0gDQo+ Pj4gd2Rldi0+ZGV2LmRyaXZlcl9kYXRhOw0KPj4NCj4+IFBsZWFzZSB1c2UgZGV2X2dldF9kcnZk YXRhKCkuDQo+IEFjayBhbmQgQWNrIC0+IHYyDQo+Pg0KPj4+ICvCoMKgwqAgc3RydWN0IGFjcGlf YnVmZmVyIGFjcGlfYnVmZmVyX2luID0geyBpbl9sZW4sIGluIH07DQo+Pj4gK8KgwqDCoCBzdHJ1 Y3QgYWNwaV9idWZmZXIgYWNwaV9idWZmZXJfb3V0ID0geyBBQ1BJX0FMTE9DQVRFX0JVRkZFUiwg DQo+Pj4gTlVMTCB9Ow0KPj4+ICsNCj4+PiArwqDCoMKgIHByX2RlYnVnKCJFdmFsdWF0ZSBXTUkg bWV0aG9kOiAldSBpbjpcbiIsIHdtaV9tZXRob2RfaWQpOw0KPj4+ICvCoMKgwqAgcHJpbnRfaGV4 X2R1bXBfYnl0ZXMoIiIsIERVTVBfUFJFRklYX09GRlNFVCwgaW4sIGluX2xlbik7DQo+Pg0KPj4g SSBkbyBub3QgdGhpbmsgdGhpcyBpcyB1c2VmdWwsIHBsZWFzZSByZW1vdmUuDQo+IFdpbGwgZG8g aW4gdGhlIGZpbmFsIHJlbGVhc2UsIGN1cnJlbnRseSBpdCdzIGhlbHBpbmcgbWUgd3JpdGluZyB0 aGUgDQo+IHVzZXJzcGFjZSBwYXJ0Lg0KDQpJZiBzbywgcGxlYXNlIG1hcmsgeW91ciBwYXRjaGVz IGFzICJSRkMiIGlmIHRoZXkgYXJlIG5vdCBjb25zaWRlcmVkIGFzIGEgcG90ZW50aWFsbHkgImZp bmFsIiByZWxlYXNlLg0KT3RoZXJ3aXNlIHRoZXkgbWlnaHQgZ2V0IGFjY2VwdGVkIHdpdGggdGhl IGRlYnVnIHByaW50aW5nIHN0aWxsIGluc2lkZS4NCg0KPj4NCj4+PiArDQo+Pj4gK8KgwqDCoCBt dXRleF9sb2NrKCZkcml2ZXJfZGF0YS0+d21pX2FjY2Vzc19tdXRleCk7DQo+Pg0KPj4gRG9lcyB0 aGUgdW5kZXJseWluZyBBQ1BJIG1ldGhvZCByZWFsbHkgcmVxdWlyZSBleHRlcm5hbCBsb2NraW5n PyBJZiANCj4+IG5vdCwgdGhlbiBwbGVhc2UgcmVtb3ZlIHRoaXMgbXV0ZXguDQo+IFRha2VuIGZy b20gdGhlIG91dCBvZiB0cmVlIGRyaXZlciB3cml0dGVuIGJ5IENocmlzdG9mZmVyLCBJIHdpbGwg YXNrIA0KPiBoaW0gYWJvdXQgdGhpcy4NCj4+DQo+Pj4gK8KgwqDCoCBhY3BpX3N0YXR1cyBzdGF0 dXMgPSB3bWlkZXZfZXZhbHVhdGVfbWV0aG9kKHdkZXYsIDAsIA0KPj4+IHdtaV9tZXRob2RfaWQs ICZhY3BpX2J1ZmZlcl9pbiwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICZhY3BpX2J1ZmZlcl9vdXQpOw0KPj4+ICvCoMKgwqAgbXV0 ZXhfdW5sb2NrKCZkcml2ZXJfZGF0YS0+d21pX2FjY2Vzc19tdXRleCk7DQo+Pj4gK8KgwqDCoCBp ZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHsNCj4+PiArwqDCoMKgwqDCoMKgwqAgcHJfZXJyKCJG YWlsZWQgdG8gZXZhbHVhdGUgV01JIG1ldGhvZC5cbiIpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gLUVJTzsNCj4+PiArwqDCoMKgIH0NCj4+PiArwqDCoMKgIGlmICghYWNwaV9idWZmZXJf b3V0LnBvaW50ZXIpIHsNCj4+PiArwqDCoMKgwqDCoMKgwqAgcHJfZXJyKCJVbmV4cGVjdGVkIGVt cHR5IG91dCBidWZmZXIuXG4iKTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9EQVRB Ow0KPj4+ICvCoMKgwqAgfQ0KPj4NCj4+IEkgYmVsaWV2ZSB0aGF0IHByaW50aW5nIGVycm9yIG1l c3NhZ2VzIHNob3VsZCBiZSBkb25lIGJ5IHRoZSBjYWxsZXJzIA0KPj4gb2YgdGhpcyBtZXRob2Qu DQo+Pg0KPj4+ICsNCj4+PiArwqDCoMKgICpvdXQgPSBhY3BpX2J1ZmZlcl9vdXQucG9pbnRlcjsN Cj4+PiArDQo+Pj4gK8KgwqDCoCByZXR1cm4gMDsNCj4+PiArfQ0KPj4+ICsNCj4+PiArc3RhdGlj IGludCBfX3dtaV9tZXRob2RfYnVmZmVyX291dChzdHJ1Y3Qgd21pX2RldmljZSAqd2RldiwgDQo+ Pj4gdWludDMyX3Qgd21pX21ldGhvZF9pZCwgdWludDhfdCAqaW4sDQo+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhY3BpX3NpemUgaW5fbGVuLCB1aW50OF90ICpvdXQs IGFjcGlfc2l6ZSBvdXRfbGVuKQ0KPj4NCj4+IFBsZWFzZSB1c2Ugc2l6ZV90IGluc3RlYWQgb2Yg YWNwaV9zaXplLg0KPj4NCj4+PiArew0KPj4+ICvCoMKgwqAgaW50IHJldDsNCj4+PiArwqDCoMKg IHVuaW9uIGFjcGlfb2JqZWN0ICphY3BpX29iamVjdF9vdXQgPSBOVUxMOw0KPj4NCj4+IHVuaW9u IGFjcGlfb2JqZWN0ICpvYmo7DQo+PiBpbnQgcmV0Ow0KPiBhY2sgYWNrIGFjaw0KPj4NCj4+PiAr DQo+Pj4gK8KgwqDCoCByZXQgPSBfX3dtaV9tZXRob2RfYWNwaV9vYmplY3Rfb3V0KHdkZXYsIHdt aV9tZXRob2RfaWQsIGluLCANCj4+PiBpbl9sZW4sICZhY3BpX29iamVjdF9vdXQpOw0KPj4+ICvC oMKgwqAgaWYgKHJldCkNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4+PiArDQo+ Pj4gK8KgwqDCoCBpZiAoYWNwaV9vYmplY3Rfb3V0LT50eXBlICE9IEFDUElfVFlQRV9CVUZGRVIp IHsNCj4+PiArwqDCoMKgwqDCoMKgwqAgcHJfZXJyKCJVbmV4cGVjdGVkIG91dCBidWZmZXIgdHlw ZS4gRXhwZWN0ZWQ6ICV1IEdvdDogDQo+Pj4gJXVcbiIsIEFDUElfVFlQRV9CVUZGRVIsDQo+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWNwaV9vYmplY3Rfb3V0LT50eXBlKTsNCj4+ PiArwqDCoMKgwqDCoMKgwqAga2ZyZWUoYWNwaV9vYmplY3Rfb3V0KTsNCj4+PiArwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FSU87DQo+Pj4gK8KgwqDCoCB9DQo+Pj4gK8KgwqDCoCBpZiAoYWNwaV9v YmplY3Rfb3V0LT5idWZmZXIubGVuZ3RoICE9IG91dF9sZW4pIHsNCj4+DQo+PiBUaGUgV2luZG93 cyBBQ1BJLVdNSSBtYXBwZXJzIGFjY2VwdHMgb3ZlcnNpemVkIGJ1ZmZlcnMgYW5kIGlnbm9yZXMg DQo+PiBhbnkgYWRkaXRpb25hbCBkYXRhLA0KPj4gc28gcGxlYXNlIGNoYW5nZSB0aGlzIGNvZGUg dG8gYWxzbyBhY2NlcHQgb3ZlcnNpemVkIGJ1ZmZlcnMuDQo+IE9ubHkgZm9yIGlucHV0IG9yIGFs c28gZm9yIG91dHB1dD8NCg0KT25seSBmb3JidWZmZXJzIGNvbWluZyBmcm9tIHRoZSBBQ1BJIGZp cm13YXJlLg0KDQo+Pg0KPj4+ICvCoMKgwqDCoMKgwqDCoCBwcl9lcnIoIlVuZXhwZWN0ZWQgb3V0 IGJ1ZmZlciBsZW5ndGguXG4iKTsNCj4+PiArwqDCoMKgwqDCoMKgwqAga2ZyZWUoYWNwaV9vYmpl Y3Rfb3V0KTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU87DQo+Pj4gK8KgwqDCoCB9 DQo+Pj4gKw0KPj4+ICvCoMKgwqAgbWVtY3B5KG91dCwgYWNwaV9vYmplY3Rfb3V0LT5idWZmZXIu cG9pbnRlciwgb3V0X2xlbik7DQo+Pj4gK8KgwqDCoCBrZnJlZShhY3BpX29iamVjdF9vdXQpOw0K Pj4+ICsNCj4+PiArwqDCoMKgIHJldHVybiByZXQ7DQo+Pj4gK30NCj4+PiArDQo+Pj4gK2ludCB0 dXhlZG9fbmIwNF93bWlfOF9iX2luXzgwX2Jfb3V0KHN0cnVjdCB3bWlfZGV2aWNlICp3ZGV2LA0K Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnVtIHR1eGVkb19u YjA0X3dtaV84X2JfaW5fODBfYl9vdXRfbWV0aG9kcyANCj4+PiBtZXRob2QsDQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuaW9uIHR1eGVkb19uYjA0X3dtaV84 X2JfaW5fODBfYl9vdXRfaW5wdXQgDQo+Pj4gKmlucHV0LA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bmlvbiB0dXhlZG9fbmIwNF93bWlfOF9iX2luXzgwX2Jf b3V0X291dHB1dCANCj4+PiAqb3V0cHV0KQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCByZXR1cm4gX193 bWlfbWV0aG9kX2J1ZmZlcl9vdXQod2RldiwgbWV0aG9kLCBpbnB1dC0+cmF3LCA4LCANCj4+PiBv dXRwdXQtPnJhdywgODApOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ICtpbnQgdHV4ZWRvX25iMDRfd21p XzQ5Nl9iX2luXzgwX2Jfb3V0KHN0cnVjdCB3bWlfZGV2aWNlICp3ZGV2LA0KPj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSANCj4+PiB0dXhlZG9fbmIw NF93bWlfNDk2X2JfaW5fODBfYl9vdXRfbWV0aG9kcyBtZXRob2QsDQo+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bmlvbiB0dXhlZG9fbmIwNF93bWlfNDk2 X2JfaW5fODBfYl9vdXRfaW5wdXQgDQo+Pj4gKmlucHV0LA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5pb24gDQo+Pj4gdHV4ZWRvX25iMDRfd21pXzQ5 Nl9iX2luXzgwX2Jfb3V0X291dHB1dCAqb3V0cHV0KQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCByZXR1 cm4gX193bWlfbWV0aG9kX2J1ZmZlcl9vdXQod2RldiwgbWV0aG9kLCBpbnB1dC0+cmF3LCA0OTYs IA0KPj4+IG91dHB1dC0+cmF3LCA4MCk7DQo+Pj4gK30NCj4+DQo+PiBUaG9zZSB0d28gZnVuY3Rp b25zIHNlZW0gdXNlbGVzcyB0byBtZSwgcGxlYXNlIHVzZSANCj4+IHdtaV9tZXRob2RfYnVmZmVy X291dCgpIGRpcmVjdGx5IGJ5IHBhc3NpbmcNCj4+IGEgcG9pbnRlciB0byB0aGUgdW5kZXJseWlu ZyBzdHJ1Y3QgYXMgZGF0YSBhbmQgdGhlIG91dHB1dCBvZiBzaXplb2YoKSANCj4+IGFzIGxlbmd0 aC4NCj4gVGhleSBhcmUgdGhvdWdodCBvZiBicmluZ2luZyBzb21lIHR5cGUgc2FmZXR5IGludG8g dGhlIG1peCBzbyB0aGF0IGZvciANCj4gYW55IG1ldGhvZCBpZCB0aGUgaW5wdXQvb3V0cHV0IHNp emUgaXMgY29ycmVjdC4NCg0KSSBkbyBub3QgdGhpbmsgdGhhdCB0aGlzIGJyaW5ncyBhbnkgcmVh bCBiZW5lZml0cyB3aGVuIGl0IGNvbWVzIHRvIHR5cGUgc2FmZXR5LiBVc2luZyBwcmVkZWZpbmVk IHN0cnVjdHMgYW5kIHNpemVvZigpDQphbHJlYWR5IHRha2VzIGNhcmUgdGhhdCB0aGUgYnVmZmVy IHNpemUgaXMgY29ycmVjdCwgYW5kIGNob29zaW5nIHRoZSBjb3JyZWN0IG1ldGhvZCBpZCBhbHJl YWR5IG5lZWRzIHRvIGJlIGRvbmUgYnkNCnRoZSBkcml2ZXIgaXRzZWxmLg0KDQo+Pg0KPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni90dXhlZG8vdHV4ZWRvX25iMDRfd21pX3V0 aWwuaCANCj4+PiBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L3R1eGVkby90dXhlZG9fbmIwNF93bWlf dXRpbC5oDQo+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAwMDAwMDAwMDAw Li4yNzY1Y2JlOWZjZmVmDQo+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+ICsrKyBiL2RyaXZlcnMvcGxh dGZvcm0veDg2L3R1eGVkby90dXhlZG9fbmIwNF93bWlfdXRpbC5oDQo+Pj4gQEAgLTAsMCArMSwx MTIgQEANCj4+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCj4+PiAr LyoNCj4+PiArICogVGhpcyBjb2RlIGdpdmVzIGZ1bmN0aW9ucyB0byBhdm9pZCBjb2RlIGR1cGxp Y2F0aW9uIHdoaWxlIA0KPj4+IGludGVyYWN0aW5nIHdpdGgNCj4+PiArICogdGhlIFRVWEVETyBO QjA0IHdtaSBpbnRlcmZhY2VzLg0KPj4+ICsgKg0KPj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjQg V2VybmVyIFNlbWJhY2ggd3NlQHR1eGVkb2NvbXB1dGVycy5jb20NCj4+PiArICovDQo+Pj4gKw0K Pj4+ICsjaWZuZGVmIFRVWEVET19OQjA0X1dNSV9VVElMX0gNCj4+PiArI2RlZmluZSBUVVhFRE9f TkIwNF9XTUlfVVRJTF9IDQo+Pj4gKw0KPj4+ICsjaW5jbHVkZSA8bGludXgvd21pLmg+DQo+Pj4g Kw0KPj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19ERVZJQ0VfSURfVE9VQ0hQ QUTCoMKgwqAgMQ0KPj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19ERVZJQ0Vf SURfS0VZQk9BUkTCoMKgwqAgMg0KPj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NUQVRV U19ERVZJQ0VfSURfQVBQX1BBR0VTwqDCoMKgIDMNCj4+PiArDQo+Pj4gKyNkZWZpbmUgV01JX0FC X0dFVF9ERVZJQ0VfU1RBVFVTX0tCTF9UWVBFX05PTkXCoMKgwqDCoMKgwqDCoCAwDQo+Pj4gKyNk ZWZpbmUgV01JX0FCX0dFVF9ERVZJQ0VfU1RBVFVTX0tCTF9UWVBFX1BFUl9LRVnCoMKgwqAgMQ0K Pj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19LQkxfVFlQRV9GT1VSX1pPTkXC oMKgwqAgMg0KPj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19LQkxfVFlQRV9X SElURV9PTkxZwqDCoMKgIDMNCj4+PiArDQo+Pj4gKyNkZWZpbmUgV01JX0FCX0dFVF9ERVZJQ0Vf U1RBVFVTX0tFWUJPQVJEX0xBWU9VVF9BTlNJScKgwqDCoCAwDQo+Pj4gKyNkZWZpbmUgV01JX0FC X0dFVF9ERVZJQ0VfU1RBVFVTX0tFWUJPQVJEX0xBWU9VVF9JU0/CoMKgwqAgMQ0KPj4+ICsNCj4+ PiArI2RlZmluZSBXTUlfQUJfR0VUX0RFVklDRV9TVEFUVVNfQ09MT1JfSURfUkVEwqDCoMKgwqDC oMKgwqAgMQ0KPj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19DT0xPUl9JRF9H UkVFTsKgwqDCoMKgwqDCoMKgIDINCj4+PiArI2RlZmluZSBXTUlfQUJfR0VUX0RFVklDRV9TVEFU VVNfQ09MT1JfSURfWUVMTE9XwqDCoMKgIDMNCj4+PiArI2RlZmluZSBXTUlfQUJfR0VUX0RFVklD RV9TVEFUVVNfQ09MT1JfSURfQkxVRcKgwqDCoMKgwqDCoMKgIDQNCj4+PiArI2RlZmluZSBXTUlf QUJfR0VUX0RFVklDRV9TVEFUVVNfQ09MT1JfSURfUFVSUExFwqDCoMKgIDUNCj4+PiArI2RlZmlu ZSBXTUlfQUJfR0VUX0RFVklDRV9TVEFUVVNfQ09MT1JfSURfSU5ESUdPwqDCoMKgIDYNCj4+PiAr I2RlZmluZSBXTUlfQUJfR0VUX0RFVklDRV9TVEFUVVNfQ09MT1JfSURfV0hJVEXCoMKgwqDCoMKg wqDCoCA3DQo+Pj4gKw0KPj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NUQVRVU19BUFBf UEFHRVNfREFTSEJPQVJEIEJJVCgwKQ0KPj4+ICsjZGVmaW5lIFdNSV9BQl9HRVRfREVWSUNFX1NU QVRVU19BUFBfUEFHRVNfU1lTVEVNSU5GT1MgQklUKDEpDQo+Pj4gKyNkZWZpbmUgV01JX0FCX0dF VF9ERVZJQ0VfU1RBVFVTX0FQUF9QQUdFU19LQkzCoMKgwqDCoMKgwqDCoCBCSVQoMikNCj4+PiAr I2RlZmluZSBXTUlfQUJfR0VUX0RFVklDRV9TVEFUVVNfQVBQX1BBR0VTX0hPVEtFWVPCoMKgwqAg QklUKDMpDQo+Pj4gKw0KPj4+ICsNCj4+PiArdW5pb24gdHV4ZWRvX25iMDRfd21pXzhfYl9pbl84 MF9iX291dF9pbnB1dCB7DQo+Pj4gK8KgwqDCoCB1aW50OF90IHJhd1s4XTsNCj4+PiArwqDCoMKg IHN0cnVjdCBfX3BhY2tlZCB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgZGV2aWNlX3R5 cGU7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgcmVzZXJ2ZWRfMFs3XTsNCj4+PiArwqDC oMKgIH0gZ2V0X2RldmljZV9zdGF0dXNfaW5wdXQ7DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICt1bmlv biB0dXhlZG9fbmIwNF93bWlfOF9iX2luXzgwX2Jfb3V0X291dHB1dCB7DQo+Pj4gK8KgwqDCoCB1 aW50OF90IHJhd1s4MF07DQo+Pj4gK8KgwqDCoCBzdHJ1Y3QgX19wYWNrZWQgew0KPj4+ICvCoMKg wqDCoMKgwqDCoCB1aW50MTZfdCByZXR1cm5fc3RhdHVzOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB1 aW50OF90IGRldmljZV9lbmFibGVkOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50OF90IGtibF90 eXBlOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50OF90IGtibF9zaWRlX2Jhcl9zdXBwb3J0ZWQ7 DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ4X3Qga2V5Ym9hcmRfcGh5c2ljYWxfbGF5b3V0Ow0K Pj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50OF90IGFwcF9wYWdlczsNCj4+PiArwqDCoMKgwqDCoMKg wqAgdWludDhfdCBwZXJfa2V5X2tibF9kZWZhdWx0X2NvbG9yOw0KPj4+ICvCoMKgwqDCoMKgwqDC oCB1aW50OF90IGZvdXJfem9uZV9rYmxfZGVmYXVsdF9jb2xvcl8xOw0KPj4+ICvCoMKgwqDCoMKg wqDCoCB1aW50OF90IGZvdXJfem9uZV9rYmxfZGVmYXVsdF9jb2xvcl8yOw0KPj4+ICvCoMKgwqDC oMKgwqDCoCB1aW50OF90IGZvdXJfem9uZV9rYmxfZGVmYXVsdF9jb2xvcl8zOw0KPj4+ICvCoMKg wqDCoMKgwqDCoCB1aW50OF90IGZvdXJfem9uZV9rYmxfZGVmYXVsdF9jb2xvcl80Ow0KPj4+ICvC oMKgwqDCoMKgwqDCoCB1aW50OF90IGxpZ2h0X2Jhcl9rYmxfZGVmYXVsdF9jb2xvcjsNCj4+PiAr wqDCoMKgwqDCoMKgwqAgdWludDhfdCByZXNlcnZlZF8wWzFdOw0KPj4+ICvCoMKgwqDCoMKgwqDC oCB1aW50MTZfdCBkZWRpY2F0ZWRfZ3B1X2lkOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50OF90 IHJlc2VydmVkXzFbNjRdOw0KPj4+ICvCoMKgwqAgfSBnZXRfZGV2aWNlX3N0YXR1c19vdXRwdXQ7 DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICtlbnVtIHR1eGVkb19uYjA0X3dtaV84X2JfaW5fODBfYl9v dXRfbWV0aG9kcyB7DQo+Pj4gK8KgwqDCoCBXTUlfQUJfR0VUX0RFVklDRV9TVEFUVVPCoMKgwqAg PSAyLA0KPj4+ICt9Ow0KPj4+ICsNCj4+PiArDQo+Pj4gKyNkZWZpbmUgV01JX0FCX0tCTF9TRVRf TVVMVElQTEVfS0VZU19MSUdIVElOR19TRVRUSU5HU19DT1VOVF9NQVggMTIwDQo+Pj4gKw0KPj4+ ICt1bmlvbiB0dXhlZG9fbmIwNF93bWlfNDk2X2JfaW5fODBfYl9vdXRfaW5wdXQgew0KPj4+ICvC oMKgwqAgdWludDhfdCByYXdbNDk2XTsNCj4+PiArwqDCoMKgIHN0cnVjdCBfX3BhY2tlZCB7DQo+ Pj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgcmVzZXJ2ZWRfMFsxNV07DQo+Pj4gK8KgwqDCoMKg wqDCoMKgIHVpbnQ4X3QgbGlnaHRpbmdfc2V0dGluZ19jb3VudDsNCj4+PiArwqDCoMKgwqDCoMKg wqAgc3RydWN0IHsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90IGtleV9pZDsN Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50OF90IHJlZDsNCj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1aW50OF90IGdyZWVuOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHVpbnQ4X3QgYmx1ZTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgfSANCj4+PiBsaWdodGluZ19zZXR0 aW5nc1tXTUlfQUJfS0JMX1NFVF9NVUxUSVBMRV9LRVlTX0xJR0hUSU5HX1NFVFRJTkdTX0NPVU5U X01BWF07DQo+Pj4gK8KgwqDCoCB9wqAga2JsX3NldF9tdWx0aXBsZV9rZXlzX2lucHV0Ow0KPj4+ ICt9Ow0KPj4+ICsNCj4+PiArdW5pb24gdHV4ZWRvX25iMDRfd21pXzQ5Nl9iX2luXzgwX2Jfb3V0 X291dHB1dCB7DQo+Pj4gK8KgwqDCoCB1aW50OF90IHJhd1s4MF07DQo+Pj4gK8KgwqDCoCBzdHJ1 Y3QgX19wYWNrZWQgew0KPj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50OF90IHJldHVybl92YWx1ZTsN Cj4+PiArwqDCoMKgwqDCoMKgwqAgdWludDhfdCByZXNlcnZlZF8wWzc5XTsNCj4+PiArwqDCoMKg IH0ga2JsX3NldF9tdWx0aXBsZV9rZXlzX291dHB1dDsNCj4+PiArfTsNCj4+PiArDQo+Pj4gK2Vu dW0gdHV4ZWRvX25iMDRfd21pXzQ5Nl9iX2luXzgwX2Jfb3V0X21ldGhvZHMgew0KPj4+ICvCoMKg wqAgV01JX0FCX0tCTF9TRVRfTVVMVElQTEVfS0VZU8KgwqDCoCA9IDYsDQo+Pj4gK307DQo+Pj4g Kw0KPj4+ICsNCj4+PiAraW50IHR1eGVkb19uYjA0X3dtaV84X2JfaW5fODBfYl9vdXQoc3RydWN0 IHdtaV9kZXZpY2UgKndkZXYsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGVudW0gdHV4ZWRvX25iMDRfd21pXzhfYl9pbl84MF9iX291dF9tZXRob2RzIA0KPj4+ IG1ldGhvZCwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5p b24gdHV4ZWRvX25iMDRfd21pXzhfYl9pbl84MF9iX291dF9pbnB1dCANCj4+PiAqaW5wdXQsDQo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuaW9uIHR1eGVkb19u YjA0X3dtaV84X2JfaW5fODBfYl9vdXRfb3V0cHV0IA0KPj4+ICpvdXRwdXQpOw0KPj4+ICtpbnQg dHV4ZWRvX25iMDRfd21pXzQ5Nl9iX2luXzgwX2Jfb3V0KHN0cnVjdCB3bWlfZGV2aWNlICp3ZGV2 LA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSAN Cj4+PiB0dXhlZG9fbmIwNF93bWlfNDk2X2JfaW5fODBfYl9vdXRfbWV0aG9kcyBtZXRob2QsDQo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bmlvbiB0dXhl ZG9fbmIwNF93bWlfNDk2X2JfaW5fODBfYl9vdXRfaW5wdXQgDQo+Pj4gKmlucHV0LA0KPj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5pb24gDQo+Pj4gdHV4 ZWRvX25iMDRfd21pXzQ5Nl9iX2luXzgwX2Jfb3V0X291dHB1dCAqb3V0cHV0KTsNCj4+PiArDQo+ Pj4gKyNlbmRpZg0K