From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 DEA8238C42D; Mon, 23 Mar 2026 10:23:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774261384; cv=none; b=YxW7JsZ71ZpPu+imj34iCDj9znOed6kOz9WfppUqgzcnpQMY3dBhuhAJzlJF/mxGRPxYY8dXinx6cQuytlECXA8+ElCLOKx7sX12JTCLqfyUe5cZ0Pj27xYt5P8JhuvDg3Nmjgndi4AC0C/Y301C7Ootj4SJ4AQPp0fShbkEfYE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774261384; c=relaxed/simple; bh=U7i/kQTrxgdfXDeBmdFRPY3n76zYgfQiBxfEt4HI4Fo=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=FuTunovvEsG+nEfiPt1tW+9Cel3cYBM8WDJfBCBaPnYEdmSfai3KfvokFzC0jlWoWERZRsIoYQxc5VIydXpHUoIrt+oSxJJ4vVh/CUVLuB0JfL5f5vSDUZrLjAmPwp3PjZ4mFPeWmmyQVP3iZoBoF8RW1ULU5GifQRwMKe5swuo= 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=mO2uio9K; arc=none smtp.client-ip=212.227.15.18 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="mO2uio9K" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1774261379; x=1774866179; i=w_armin@gmx.de; bh=U7i/kQTrxgdfXDeBmdFRPY3n76zYgfQiBxfEt4HI4Fo=; 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=mO2uio9K9fiwkrNlgbOAh9cOsAhj48+uFimtEnJ6tKmbrG2aemR8DbzE+mAMYat9 sWGDwZ727mRD7pt0dXjXChZkH2OuBlzgrxXRFB7fFNnF9G/60uKro0m2meo1e2/CI GUDFb0EMyMXxPcTiXUCY/tBlhyW0bAbDE4zwgrz+qfsE+Kktwac+aSL3WYH/5Ve6o LotuqXuY71VpYq4wdzjhO6TU/Xi3jpAlurxA8B/cdkhip8hIFShkr/BJlTKD7n6Yh rbvftnajIEgyD1d/7TKuyZgl7V9DNOZxuHyWjz07JLLoYqD8Hh4/Nkrr4j0od8LZN fVzRt4DH5HZaHqZ+GQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N3KTo-1vNPkW3EmY-00rSWq; Mon, 23 Mar 2026 11:22:58 +0100 Message-ID: Date: Mon, 23 Mar 2026 11:22:57 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 1/1] leds: Introduce the multi_max_intensity sysfs attribute To: Jacek Anaszewski , lee@kernel.org, pavel@kernel.org Cc: corbet@lwn.net, skhan@linuxfoundation.org, linux-leds@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, wse@tuxedocomputers.com, pobrn@protonmail.com References: <20260314230107.65444-1-W_Armin@gmx.de> <20260314230107.65444-2-W_Armin@gmx.de> Content-Language: en-US From: Armin Wolf In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:xdPN3pBhiYZENUSukVFMrQ7XlWGoktavq/IZhk8VlHM0PCWUkSd qY/Hh8E+aD0T1VNhIEiN+w/zpVk8u5p0NRIGBiM5fi4j7N4D+orL1AkLaHGWJeAEZn180SW 9VMj6C6amoBv/37oJbq8/1KIAXRm7h4dXfApNhf9MfLpEw77FX/VOFDbrBRA9FkqjGoTX8f hALZWFHi3JYcCzf0NY6Nw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:UcDbEda6ccM=;yBbE14B0f61f8iIirzUYJnMLLXB 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 qe QW0gMjIuMDMuMjYgdW0gMTY6NTMgc2NocmllYiBKYWNlayBBbmFzemV3c2tpOg0KDQo+IEhpIEFy bWluLA0KPg0KPiBPbiAzLzE1LzI2IDEyOjAxIEFNLCBBcm1pbiBXb2xmIHdyb3RlOg0KPj4gU29t ZSBtdWx0aWNvbG9yIExFRHMgc3VwcG9ydCBnbG9iYWwgYnJpZ2h0bmVzcyBjb250cm9sIGluIGhh cmR3YXJlLA0KPj4gbWVhbmluZyB0aGF0IHRoZSBtYXhpbXVtIGludGVuc2l0eSBvZiB0aGUgY29s b3IgY29tcG9uZW50cyBpcyBub3QNCj4+IGNvbm5lY3RlZCB0byB0aGUgbWF4aW11bSBnbG9iYWwg YnJpZ2h0bmVzcy4gU3VjaCBMRURzIGNhbm5vdCBiZQ0KPj4gZGVzY3JpYmVkIHByb3Blcmx5IGJ5 IHRoZSBjdXJyZW50IG11bHRpY29sb3IgTEVEIGNsYXNzIGludGVyZmFjZSwNCj4+IGJlY2F1c2Ug aXQgYXNzdW1lcyB0aGF0IHRoZSBtYXhpbXVtIGludGVuc2l0eSBvZiBlYWNoIGNvbG9yIGNvbXBv bmVudA0KPj4gaXMgZGVzY3JpYmVkIGJ5IHRoZSBtYXhpbXVtIGdsb2JhbCBicmlnaHRuZXNzIG9m IHRoZSBMRUQuDQo+Pg0KPj4gRml4IHRoaXMgYnkgaW50cm9kdWNpbmcgYSBuZXcgc3lzZnMgYXR0 cmlidXRlIGNhbGxlZA0KPj4gIm11bHRpX21heF9pbnRlbnNpdHkiIGhvbGRpbmcgdGhlIG1heGlt dW0gaW50ZW5zaXR5IHZhbHVlcyBmb3IgdGhlDQo+PiBjb2xvciBjb21wb25lbnRzIG9mIGEgbXVs dGljb2xvciBMRUQgY2xhc3MgZGV2aWNlLiBEcml2ZXJzIGNhbiB1c2UNCj4+IHRoZSBuZXcgbWF4 X2ludGVuc2l0eSBmaWVsZCBpbnNpZGUgc3RydWN0IG1jX3N1YmxlZCB0byB0ZWxsIHRoZQ0KPj4g bXVsdGljb2xvciBMRUQgY2xhc3MgY29kZSBhYm91dCB0aG9zZSB2YWx1ZXMuIEludGVuc2l0eSB2 YWx1ZXMgd3JpdHRlbg0KPj4gYnkgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyB3aWxsIGJlIGxpbWl0 ZWQgdG8gdGhpcyBtYXhpbXVtIHZhbHVlLg0KPj4NCj4+IERyaXZlcnMgZm9yIG11bHRpY29sb3Ig TEVEcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGdsb2JhbCBicmlnaHRuZXNzDQo+PiBjb250cm9sIGlu IGhhcmR3YXJlIG1pZ2h0IHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBtYXhpbXVtIGdsb2JhbCBMRUQN Cj4+IGJyaWdodG5lc3Mgc3VwcGxpZWQgdmlhIGRldmljZXRyZWUgYXMgdGhlIG1heGltdW0gaW50 ZW5zaXR5IG9mIGVhY2gNCj4+IGluZGl2aWR1YWwgY29sb3IgY29tcG9uZW50LiBTdWNoIGRyaXZl cnMgc2hvdWxkIHNldCBtYXhfaW50ZW5zaXR5DQo+PiB0byBMRURfVVNFX01BWF9CUklHSFRORVNT IHNvIHRoYXQgdGhlIG11bHRpY29sb3IgTEVEIGNvcmUgY2FuIGFjdA0KPg0KPiBTaW5jZSBMRURf VVNFX01BWF9CUklHSFRORVNTIHZhbHVlIGlzIDAsIHRoZW4gSSBwcm9wb3NlIG5vdCB0byB0b3Vj aA0KPiB0aGUgZHJpdmVycyB3aGljaCB3ZSB3YW50IHRvIHN0aWNrIHRvIHRoZSBkZWZhdWx0IG1h eF9pbnRlbnNpdHksDQo+IHVubGVzcyB0aGV5IGRvbid0IGluaXRpYWxpemUgdGhlaXIgbWNfc3Vi bGVkIHN0cnVjdHMgdG8gMCwgb3IgZG9uJ3QNCj4gdXNlIHN0cnVjdCBpbml0aWFsaXphdGlvbiBs aXN0LCB3aGljaCBpbiBjYXNlIHRoZSBwcm9wZXJ0eSBpcyBvbWl0dGVkLA0KPiBpbml0aWFsaXpl cyBpdCB0byAwLg0KPg0KQWdyZWUsIGkgd2lsbCBjaGVjayB3aGljaCBkcml2ZXJzIGRvIHRoaXMg d2hlbiBzZW5kaW5nIHRoZSB2MSByZXZpc2lvbi4NCg0KPj4gYWNjb3JkaW5nbHkuDQo+Pg0KPj4g Q29tcGlsZS10ZXN0ZWQgb25seS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBBcm1pbiBXb2xmIDxX X0FybWluQGdteC5kZT4NCj4+IC0tLQ0KPj4gwqAgLi4uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNz LWxlZC1tdWx0aWNvbG9ywqDCoMKgIHwgMTYgKysrKysrKy0tDQo+PiDCoCBEb2N1bWVudGF0aW9u L2xlZHMvbGVkcy1jbGFzcy1tdWx0aWNvbG9yLnJzdMKgIHwgMjEgKysrKysrKysrKy0NCj4+IMKg IGRyaXZlcnMvaGlkL2hpZC1sZy1nMTUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqAgMyArKw0KPj4gwqAgZHJpdmVycy9oaWQvaGlkLXBsYXlzdGF0aW9uLmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArKw0KPj4gwqAgZHJpdmVycy9s ZWRzL2ZsYXNoL2xlZHMtbXQ2MzYwLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgOCAr Ky0tLQ0KPj4gwqAgZHJpdmVycy9sZWRzL2xlZC1jbGFzcy1tdWx0aWNvbG9yLmPCoMKgwqDCoMKg wqDCoMKgwqDCoCB8IDM2ICsrKysrKysrKysrKysrKysrLS0NCj4+IMKgIGRyaXZlcnMvbGVkcy9s ZWRzLWJsaW5rbS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDMg KysNCj4+IMKgIGRyaXZlcnMvbGVkcy9sZWRzLWNyb3NfZWMuY8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgMSArDQo+PiDCoCBkcml2ZXJzL2xlZHMvbGVkcy1scDUweHgu Y8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxICsNCj4+IMKgIGRy aXZlcnMvbGVkcy9sZWRzLWxwNTV4eC1jb21tb24uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqAgNyArKy0tDQo+PiDCoCBkcml2ZXJzL2xlZHMvbGVkcy1tYXg3NzcwNS5jwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMSArDQo+PiDCoCBkcml2ZXJzL2xlZHMvbGVkcy1z dW41MGktYTEwMC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArKw0KPj4gwqAg ZHJpdmVycy9sZWRzL2xlZHMtdHVycmlzLW9tbmlhLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB8wqAgMSArDQo+PiDCoCBkcml2ZXJzL2xlZHMvcmdiL2xlZHMtZ3JvdXAtbXVsdGljb2xvci5j wqDCoMKgwqDCoCB8wqAgMSArDQo+PiDCoCBkcml2ZXJzL2xlZHMvcmdiL2xlZHMta3RkMjAyeC5j wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMSArDQo+PiDCoCBkcml2ZXJzL2xlZHMv cmdiL2xlZHMtbHA1ODEyLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKw0K Pj4gwqAgZHJpdmVycy9sZWRzL3JnYi9sZWRzLW10NjM3MC1yZ2IuY8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfMKgIDggKystLS0NCj4+IMKgIGRyaXZlcnMvbGVkcy9yZ2IvbGVkcy1uY3A1NjIzLmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICstLQ0KPj4gwqAgZHJpdmVycy9sZWRz L3JnYi9sZWRzLXB3bS1tdWx0aWNvbG9yLmPCoMKgwqDCoMKgwqDCoCB8wqAgMSArDQo+PiDCoCBk cml2ZXJzL2xlZHMvcmdiL2xlZHMtcWNvbS1scGcuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCAxICsNCj4+IMKgIGRyaXZlcnMvcGxhdGZvcm0veDg2L3NpbGljb20tcGxhdGZvcm0uY8Kg wqDCoMKgwqDCoCB8IDMwICsrKysrKysrKysrKysrKysNCj4+IMKgIGRyaXZlcnMvcGxhdGZvcm0v eDg2L3VuaXdpbGwvdW5pd2lsbC1hY3BpLmPCoMKgIHzCoCA0ICstLQ0KPj4gwqAgaW5jbHVkZS9s aW51eC9sZWQtY2xhc3MtbXVsdGljb2xvci5owqDCoMKgwqDCoMKgwqDCoMKgIHwgMzIgKysrKysr KysrKysrKysrKy0NCj4+IMKgIDIzIGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspLCAy MyBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVz dGluZy9zeXNmcy1jbGFzcy1sZWQtbXVsdGljb2xvciANCj4+IGIvRG9jdW1lbnRhdGlvbi9BQkkv dGVzdGluZy9zeXNmcy1jbGFzcy1sZWQtbXVsdGljb2xvcg0KPj4gaW5kZXggMTZmYzgyN2IxMGNi Li5mYmQ5NWM1MDAzZTIgMTAwNjQ0DQo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5n L3N5c2ZzLWNsYXNzLWxlZC1tdWx0aWNvbG9yDQo+PiArKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90 ZXN0aW5nL3N5c2ZzLWNsYXNzLWxlZC1tdWx0aWNvbG9yDQo+PiBAQCAtMTcsOCArMTcsMjAgQEAg S2VybmVsVmVyc2lvbjrCoMKgwqAgNS45DQo+PiDCoCBDb250YWN0OsKgwqDCoCBEYW4gTXVycGh5 IDxkbXVycGh5QHRpLmNvbT4NCj4+IMKgIERlc2NyaXB0aW9uOsKgwqDCoCByZWFkL3dyaXRlDQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgVGhpcyBmaWxlIGNvbnRhaW5zIGFycmF5IG9mIGludGVnZXJz LiBPcmRlciBvZiBjb21wb25lbnRzIGlzDQo+PiAtwqDCoMKgwqDCoMKgwqAgZGVzY3JpYmVkIGJ5 IHRoZSBtdWx0aV9pbmRleCBhcnJheS4gVGhlIG1heGltdW0gaW50ZW5zaXR5IA0KPj4gc2hvdWxk DQo+PiAtwqDCoMKgwqDCoMKgwqAgbm90IGV4Y2VlZCAvc3lzL2NsYXNzL2xlZHMvPGxlZD4vbWF4 X2JyaWdodG5lc3MuDQo+PiArwqDCoMKgwqDCoMKgwqAgZGVzY3JpYmVkIGJ5IHRoZSBtdWx0aV9p bmRleCBhcnJheS4NCj4+ICvCoMKgwqDCoMKgwqDCoCBGb3IgYWRkaXRpb25hbCBkZXRhaWxzIHBs ZWFzZSByZWZlciB0bw0KPj4gK8KgwqDCoMKgwqDCoMKgIERvY3VtZW50YXRpb24vbGVkcy9sZWRz LWNsYXNzLW11bHRpY29sb3IucnN0Lg0KPg0KPiBXaHkgbm90IHRvIHJlZmVyIHRvIHRoZSBuZXds eSBpbnRyb2R1Y2VkIG11bHRpX21heF9pbnRlbnNpdHkgZmlsZSBoZXJlDQo+IGluc3RlYWQ/DQo+ DQpHb29kIHBvaW50LCBpIGNvcGllZCB0aGlzIGZyb20gdGhlIG90aGVyIGRlc2NyaXB0aW9ucy4g SSB3aWxsIHJld29yayB0aGlzIGZvcg0KdGhlIHYxIHJldmlzaW9uLg0KDQo+PiArDQo+PiArV2hh dDrCoMKgwqDCoMKgwqDCoCAvc3lzL2NsYXNzL2xlZHMvPGxlZD4vbXVsdGlfbWF4X2ludGVuc2l0 eQ0KPj4gK0RhdGU6wqDCoMKgwqDCoMKgwqAgTWFyY2ggMjAyNg0KPj4gK0tlcm5lbFZlcnNpb246 wqDCoMKgIDcuMQ0KPj4gK0NvbnRhY3Q6wqDCoMKgIEFybWluIFdvbGYgPFdfQXJtaW5AZ214LmRl Pg0KPj4gK0Rlc2NyaXB0aW9uOsKgwqDCoCByZWFkDQo+PiArwqDCoMKgwqDCoMKgwqAgVGhpcyBm aWxlIGNvbnRhaW5zIGFuIGFycmF5IG9mIGludGVnZXJzIGRlc2NyaWJpbmcgdGhlIG1heGltdW0N Cj4+ICvCoMKgwqDCoMKgwqDCoCBpbnRlbnNpdHkgdmFsdWUgZm9yIGVhY2ggaW50ZW5zaXR5IGNv bXBvbmVudC4gV3JpdGluZyBpbnRlbnNpdHkNCj4+ICvCoMKgwqDCoMKgwqDCoCB2YWx1ZXMgbGFy Z2VyIHRoYW4gdGhlIG1heGltdW0gdmFsdWUgb2YgYSBnaXZlbiBjb21wb25lbnQgd2lsbA0KPj4g K8KgwqDCoMKgwqDCoMKgIHJlc3VsdCBpbiB0aG9zZSB2YWx1ZXMgYmVpbmcgY2xhbXBlZC4NCj4+ IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBGb3IgYWRkaXRpb25hbCBkZXRhaWxzIHBsZWFzZSByZWZl ciB0bw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIERvY3VtZW50YXRpb24vbGVkcy9sZWRzLWNsYXNz LW11bHRpY29sb3IucnN0Lg0KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbGVkcy9sZWRz LWNsYXNzLW11bHRpY29sb3IucnN0IA0KPj4gYi9Eb2N1bWVudGF0aW9uL2xlZHMvbGVkcy1jbGFz cy1tdWx0aWNvbG9yLnJzdA0KPj4gaW5kZXggYzZiNDdiNDA5M2M0Li44ZjQyZjEwMDc4YWQgMTAw NjQ0DQo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2xlZHMvbGVkcy1jbGFzcy1tdWx0aWNvbG9yLnJz dA0KPj4gKysrIGIvRG9jdW1lbnRhdGlvbi9sZWRzL2xlZHMtY2xhc3MtbXVsdGljb2xvci5yc3QN Cj4+IEBAIC0yNSwxMCArMjUsMTQgQEAgY29sb3IgbmFtZSB0byBpbmRleGVkIHZhbHVlLg0KPj4g wqAgVGhlIGBgbXVsdGlfaW5kZXhgYCBmaWxlIGlzIGFuIGFycmF5IHRoYXQgY29udGFpbnMgdGhl IHN0cmluZyBsaXN0IA0KPj4gb2YgdGhlIGNvbG9ycyBhcw0KPj4gwqAgdGhleSBhcmUgZGVmaW5l ZCBpbiBlYWNoIGBgbXVsdGlfKmBgIGFycmF5IGZpbGUuDQo+PiDCoCAtVGhlIGBgbXVsdGlfaW50 ZW5zaXR5YGAgaXMgYW4gYXJyYXkgdGhhdCBjYW4gYmUgcmVhZCBvciB3cml0dGVuIHRvIA0KPj4g Zm9yIHRoZQ0KPj4gK1RoZSBgYG11bHRpX2ludGVuc2l0eWBgIGZpbGUgaXMgYW4gYXJyYXkgdGhh dCBjYW4gYmUgcmVhZCBvciB3cml0dGVuIA0KPj4gdG8gZm9yIHRoZQ0KPj4gwqAgaW5kaXZpZHVh bCBjb2xvciBpbnRlbnNpdGllcy7CoCBBbGwgZWxlbWVudHMgd2l0aGluIHRoaXMgYXJyYXkgbXVz dCANCj4+IGJlIHdyaXR0ZW4gaW4NCj4+IMKgIG9yZGVyIGZvciB0aGUgY29sb3IgTEVEIGludGVu c2l0aWVzIHRvIGJlIHVwZGF0ZWQuDQo+PiDCoCArVGhlIGBgbXVsdGlfbWF4X2ludGVuc2l0eWBg IGZpbGUgaXMgYW4gYXJyYXkgdGhhdCBjb250YWlucyB0aGUgDQo+PiBtYXhpbXVtIGludGVuc2l0 eQ0KPj4gK3ZhbHVlIHN1cHBvcnRlZCBieSBlYWNoIGNvbG9yIGludGVuc2l0eS4gSW50ZW5zaXR5 IHZhbHVlcyBhYm92ZSB0aGlzIA0KPj4gd2lsbCBiZQ0KPj4gK2F1dG9tYXRpY2FsbHkgY2xhbXBl ZCBpbnRvIHRoZSBzdXBwb3J0ZWQgcmFuZ2UuDQo+PiArDQo+PiDCoCBEaXJlY3RvcnkgTGF5b3V0 IEV4YW1wbGUNCj4+IMKgID09PT09PT09PT09PT09PT09PT09PT09PQ0KPj4gwqAgLi4gY29kZS1i bG9jazo6IGNvbnNvbGUNCj4+IEBAIC0zOCw2ICs0Miw3IEBAIERpcmVjdG9yeSBMYXlvdXQgRXhh bXBsZQ0KPj4gwqDCoMKgwqDCoCAtci0tci0tci0twqDCoMKgIDEgcm9vdMKgwqDCoMKgIHJvb3TC oMKgwqDCoMKgwqDCoMKgwqAgNDA5NiBPY3QgMTkgMTY6MTYgDQo+PiBtYXhfYnJpZ2h0bmVzcw0K Pj4gwqDCoMKgwqDCoCAtci0tci0tci0twqDCoMKgIDEgcm9vdMKgwqDCoMKgIHJvb3TCoMKgwqDC oMKgwqDCoMKgwqAgNDA5NiBPY3QgMTkgMTY6MTYgDQo+PiBtdWx0aV9pbmRleA0KPj4gwqDCoMKg wqDCoCAtcnctci0tci0twqDCoMKgIDEgcm9vdMKgwqDCoMKgIHJvb3TCoMKgwqDCoMKgwqDCoMKg wqAgNDA5NiBPY3QgMTkgMTY6MTYgDQo+PiBtdWx0aV9pbnRlbnNpdHkNCj4+ICvCoMKgwqAgLXIt LXItLXItLcKgwqDCoCAxIHJvb3TCoMKgwqDCoCByb290wqDCoMKgwqDCoMKgwqDCoMKgIDQwOTYg T0N0IDE5IDE2OjE2IA0KPj4gbXVsdGlfbWF4X2ludGVuc2l0eQ0KPj4gwqAgwqAgLi4NCj4+IMKg IEBAIC0xMDQsMyArMTA5LDE3IEBAIHRoZSBjb2xvciBMRUQgZ3JvdXAuDQo+PiDCoMKgwqDCoMKg IDEyOA0KPj4gwqAgwqAgLi4NCj4+ICsNCj4+ICtXcml0aW5nIGludGVuc2l0eSB2YWx1ZXMgbGFy Z2VyIHRoYW4gdGhlIG1heGltdW0gc3BlY2lmaWVkIGluIA0KPj4gYGBtdWx0aV9tYXhfaW50ZW5z aXR5YGANCj4+ICt3aWxsIHJlc3VsdCBpbiB0aG9zZSB2YWx1ZXMgYmVpbmcgY2xhbXBlZCBpbnRv IHRoZSBzdXBwb3J0ZWQgcmFuZ2UuDQo+PiArDQo+PiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUN Cj4+ICsNCj4+ICvCoMKgICMgY2F0IC9zeXMvY2xhc3MvbGVkcy9tdWx0aWNvbG9yOnN0YXR1cy9t dWx0aV9tYXhfaW50ZW5zaXR5DQo+PiArwqDCoCAyNTUgMjU1IDI1NQ0KPj4gKw0KPj4gK8KgwqAg IyBlY2hvIDUxMiA1MTIgNTEyID4gDQo+PiAvc3lzL2NsYXNzL2xlZHMvbXVsdGljb2xvcjpzdGF0 dXMvbXVsdGlfaW50ZW5zaXR5DQo+PiArwqDCoCAjIGNhdCAvc3lzL2NsYXNzL2xlZHMvbXVsdGlj b2xvcjpzdGF0dXMvbXVsdGlfaW50ZW5zaXR5DQo+PiArwqDCoCAyNTUgMjU1IDI1NQ0KPj4gKw0K Pj4gKy4uDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWxnLWcxNS5jIGIvZHJpdmVy cy9oaWQvaGlkLWxnLWcxNS5jDQo+PiBpbmRleCAxYTg4YmM0NGFkYTQuLjIyN2Y1MGIyMWMwNiAx MDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvaGlkL2hpZC1sZy1nMTUuYw0KPj4gKysrIGIvZHJpdmVy cy9oaWQvaGlkLWxnLWcxNS5jDQo+PiBAQCAtOTc1LDE0ICs5NzUsMTcgQEAgc3RhdGljIHZvaWQg bGdfZzE1X3NldHVwX2xlZF9yZ2Ioc3RydWN0IA0KPj4gbGdfZzE1X2RhdGEgKmcxNSwgaW50IGlu ZGV4KQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgTEVEX0NPTE9SX0lEX1JFRDoNCj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1YmxlZF9pbmZvW2ldLmNvbG9yX2luZGV4ID0gTEVE X0NPTE9SX0lEX1JFRDsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1YmxlZF9pbmZv W2ldLmludGVuc2l0eSA9IGdsZWQtPnJlZDsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1 YmxlZF9pbmZvW2ldLm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg Y2FzZSBMRURfQ09MT1JfSURfR1JFRU46DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBz dWJsZWRfaW5mb1tpXS5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9HUkVFTjsNCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1YmxlZF9pbmZvW2ldLmludGVuc2l0eSA9IGdsZWQtPmdy ZWVuOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3VibGVkX2luZm9baV0ubWF4X2ludGVu c2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBicmVhazsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIExFRF9DT0xPUl9JRF9CTFVF Og0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3VibGVkX2luZm9baV0uY29sb3JfaW5k ZXggPSBMRURfQ09MT1JfSURfQkxVRTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1 YmxlZF9pbmZvW2ldLmludGVuc2l0eSA9IGdsZWQtPmJsdWU7DQo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBzdWJsZWRfaW5mb1tpXS5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hU TkVTUzsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgIH0NCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzdWJsZWRfaW5mb1tpXS5jaGFubmVs ID0gaTsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtcGxheXN0YXRpb24uYyANCj4+ IGIvZHJpdmVycy9oaWQvaGlkLXBsYXlzdGF0aW9uLmMNCj4+IGluZGV4IDNjMGRiOGY5M2M4Mi4u YTZkZTRkZDQ5NzUwIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9oaWQvaGlkLXBsYXlzdGF0aW9u LmMNCj4+ICsrKyBiL2RyaXZlcnMvaGlkL2hpZC1wbGF5c3RhdGlvbi5jDQo+PiBAQCAtODc0LDgg Kzg3NCwxMSBAQCBzdGF0aWMgaW50IHBzX2xpZ2h0YmFyX3JlZ2lzdGVyKHN0cnVjdCBwc19kZXZp Y2UgDQo+PiAqcHNfZGV2LCBzdHJ1Y3QgbGVkX2NsYXNzZGV2X21jDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FTk9NRU07DQo+PiDCoCDCoMKgwqDCoMKgIG1jX2xlZF9pbmZvWzBdLmNv bG9yX2luZGV4ID0gTEVEX0NPTE9SX0lEX1JFRDsNCj4+ICvCoMKgwqAgbWNfbGVkX2luZm9bMF0u bWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoMKgwqDCoMKgIG1j X2xlZF9pbmZvWzFdLmNvbG9yX2luZGV4ID0gTEVEX0NPTE9SX0lEX0dSRUVOOw0KPj4gK8KgwqDC oCBtY19sZWRfaW5mb1sxXS5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUzsN Cj4+IMKgwqDCoMKgwqAgbWNfbGVkX2luZm9bMl0uY29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURf QkxVRTsNCj4+ICvCoMKgwqAgbWNfbGVkX2luZm9bMl0ubWF4X2ludGVuc2l0eSA9IExFRF9VU0Vf TUFYX0JSSUdIVE5FU1M7DQo+PiDCoCDCoMKgwqDCoMKgIGxpZ2h0YmFyX21jX2Rldi0+c3VibGVk X2luZm8gPSBtY19sZWRfaW5mbzsNCj4+IMKgwqDCoMKgwqAgbGlnaHRiYXJfbWNfZGV2LT5udW1f Y29sb3JzID0gMzsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2xlZHMvZmxhc2gvbGVkcy1tdDYz NjAuYyANCj4+IGIvZHJpdmVycy9sZWRzL2ZsYXNoL2xlZHMtbXQ2MzYwLmMNCj4+IGluZGV4IDQ2 MmE5MDJmNTRlMC4uZjAzMzFjYmVjNmFhIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9sZWRzL2Zs YXNoL2xlZHMtbXQ2MzYwLmMNCj4+ICsrKyBiL2RyaXZlcnMvbGVkcy9mbGFzaC9sZWRzLW10NjM2 MC5jDQo+PiBAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBpbnQgbXQ2MzYwX21jX2JyaWdodG5l c3Nfc2V0KHN0cnVjdCANCj4+IGxlZF9jbGFzc2RldiAqbGNkZXYsDQo+PiDCoMKgwqDCoMKgIHN0 cnVjdCBsZWRfY2xhc3NkZXZfbWMgKm1jY2RldiA9IGxjZGV2X3RvX21jY2RldihsY2Rldik7DQo+ PiDCoMKgwqDCoMKgIHN0cnVjdCBtdDYzNjBfbGVkICpsZWQgPSBjb250YWluZXJfb2YobWNjZGV2 LCBzdHJ1Y3QgDQo+PiBtdDYzNjBfbGVkLCBtYyk7DQo+PiDCoMKgwqDCoMKgIHN0cnVjdCBtdDYz NjBfcHJpdiAqcHJpdiA9IGxlZC0+cHJpdjsNCj4+IC3CoMKgwqAgdTMyIHJlYWxfYnJpZ2h0LCBl bmFibGVfbWFzayA9IDAsIGVuYWJsZSA9IDA7DQo+PiArwqDCoMKgIHUzMiBlbmFibGVfbWFzayA9 IDAsIGVuYWJsZSA9IDA7DQo+PiDCoMKgwqDCoMKgIGludCBpLCByZXQ7DQo+PiDCoCDCoMKgwqDC oMKgIG11dGV4X2xvY2soJnByaXYtPmxvY2spOw0KPj4gQEAgLTExMCwxNCArMTEwLDEzIEBAIHN0 YXRpYyBpbnQgbXQ2MzYwX21jX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCANCj4+IGxlZF9jbGFzc2Rl diAqbGNkZXYsDQo+PiDCoMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBtY2NkZXYtPm51bV9jb2xv cnM7IGkrKykgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBtY19zdWJsZWQgKnN1Ymxl ZCA9IG1jY2Rldi0+c3VibGVkX2luZm8gKyBpOw0KPj4gwqAgLcKgwqDCoMKgwqDCoMKgIHJlYWxf YnJpZ2h0ID0gbWluKGxjZGV2LT5tYXhfYnJpZ2h0bmVzcywgc3VibGVkLT5icmlnaHRuZXNzKTsN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVn bWFwLCBNVDYzNjBfUkVHX0lTTksoaSksDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBNVDYzNjBfSVNOS19NQVNLLCByZWFsX2JyaWdodCk7DQo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBNVDYzNjBfSVNOS19NQVNLLCBzdWJs ZWQtPmJyaWdodG5lc3MpOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXQpDQo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIG91dDsNCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDC oCBlbmFibGVfbWFzayB8PSBNVDYzNjBfSVNOS19FTk1BU0soc3VibGVkLT5jaGFubmVsKTsNCj4+ IC3CoMKgwqDCoMKgwqDCoCBpZiAocmVhbF9icmlnaHQpDQo+PiArwqDCoMKgwqDCoMKgwqAgaWYg KHN1YmxlZC0+YnJpZ2h0bmVzcykNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVuYWJs ZSB8PSBNVDYzNjBfSVNOS19FTk1BU0soc3VibGVkLT5jaGFubmVsKTsNCj4+IMKgwqDCoMKgwqAg fQ0KPj4gwqAgQEAgLTY2MCw2ICs2NTksNyBAQCBzdGF0aWMgaW50IG10NjM2MF9pbml0X2lzbmtf cHJvcGVydGllcyhzdHJ1Y3QgDQo+PiBtdDYzNjBfbGVkICpsZWQsDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwcml2LT5sZWRzX2FjdGl2ZSB8PSBCSVQocmVnKTsNCj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHN1Yl9sZWRbbnVtX2NvbG9yXS5jb2xvcl9pbmRleCA9IGNvbG9y Ow0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3ViX2xlZFtudW1fY29sb3JdLmNoYW5u ZWwgPSByZWc7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdWJfbGVkW251bV9jb2xvcl0u bWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBudW1fY29sb3IrKzsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9DQo+PiDC oCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL2xlZC1jbGFzcy1tdWx0aWNvbG9yLmMgDQo+PiBi L2RyaXZlcnMvbGVkcy9sZWQtY2xhc3MtbXVsdGljb2xvci5jDQo+PiBpbmRleCA2YjY3MWYzZjlj NjEuLjcyMzIzZTgyNTMzMSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvbGVkcy9sZWQtY2xhc3Mt bXVsdGljb2xvci5jDQo+PiArKysgYi9kcml2ZXJzL2xlZHMvbGVkLWNsYXNzLW11bHRpY29sb3Iu Yw0KPj4gQEAgLTcsNiArNyw3IEBADQo+PiDCoCAjaW5jbHVkZSA8bGludXgvaW5pdC5oPg0KPj4g wqAgI2luY2x1ZGUgPGxpbnV4L2xlZC1jbGFzcy1tdWx0aWNvbG9yLmg+DQo+PiDCoCAjaW5jbHVk ZSA8bGludXgvbWF0aC5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9taW5tYXguaD4NCj4+IMKgICNp bmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCj4+IMKgICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+ PiDCoCAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPg0KPj4gQEAgLTI3LDYgKzI4LDMwIEBAIGlu dCBsZWRfbWNfY2FsY19jb2xvcl9jb21wb25lbnRzKHN0cnVjdCANCj4+IGxlZF9jbGFzc2Rldl9t YyAqbWNsZWRfY2RldiwNCj4+IMKgIH0NCj4+IMKgIEVYUE9SVF9TWU1CT0xfR1BMKGxlZF9tY19j YWxjX2NvbG9yX2NvbXBvbmVudHMpOw0KPj4gwqAgK3N0YXRpYyBzc2l6ZV90IG11bHRpX21heF9p bnRlbnNpdHlfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmludGVuc2l0eV9h dHRyLCBjaGFyICpidWYpDQo+PiArew0KPj4gK8KgwqDCoCBzdHJ1Y3QgbGVkX2NsYXNzZGV2ICps ZWRfY2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgbGVkX2Ns YXNzZGV2X21jICptY2xlZF9jZGV2ID0gbGNkZXZfdG9fbWNjZGV2KGxlZF9jZGV2KTsNCj4+ICvC oMKgwqAgdW5zaWduZWQgaW50IG1heF9pbnRlbnNpdHk7DQo+PiArwqDCoMKgIGludCBsZW4gPSAw Ow0KPj4gK8KgwqDCoCBpbnQgaTsNCj4+ICsNCj4+ICvCoMKgwqAgZm9yIChpID0gMDsgaSA8IG1j bGVkX2NkZXYtPm51bV9jb2xvcnM7IGkrKykgew0KPj4gK8KgwqDCoMKgwqDCoMKgIG1heF9pbnRl bnNpdHkgPSBtY2xlZF9jZGV2LT5zdWJsZWRfaW5mb1tpXS5tYXhfaW50ZW5zaXR5Ow0KPj4gK8Kg wqDCoMKgwqDCoMKgIGlmIChtYXhfaW50ZW5zaXR5ID09IExFRF9VU0VfTUFYX0JSSUdIVE5FU1Mp DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXhfaW50ZW5zaXR5ID0gbGVkX2NkZXYtPm1h eF9icmlnaHRuZXNzOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIGxlbiArPSBzcHJpbnRmKGJ1 ZiArIGxlbiwgIiV1IiwgbWF4X2ludGVuc2l0eSk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKGkg PCBtY2xlZF9jZGV2LT5udW1fY29sb3JzIC0gMSkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGxlbiArPSBzcHJpbnRmKGJ1ZiArIGxlbiwgIiAiKTsNCj4+ICvCoMKgwqAgfQ0KPj4gKw0KPj4g K8KgwqDCoCBidWZbbGVuKytdID0gJ1xuJzsNCj4+ICvCoMKgwqAgcmV0dXJuIGxlbjsNCj4+ICt9 DQo+PiArc3RhdGljIERFVklDRV9BVFRSX1JPKG11bHRpX21heF9pbnRlbnNpdHkpOw0KPj4gKw0K Pj4gwqAgc3RhdGljIHNzaXplX3QgbXVsdGlfaW50ZW5zaXR5X3N0b3JlKHN0cnVjdCBkZXZpY2Ug KmRldiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmludGVuc2l0eV9hdHRyLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBzaXplKQ0KPj4gQEAgLTM1LDYgKzYw LDcgQEAgc3RhdGljIHNzaXplX3QgbXVsdGlfaW50ZW5zaXR5X3N0b3JlKHN0cnVjdCBkZXZpY2Ug DQo+PiAqZGV2LA0KPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgbGVkX2NsYXNzZGV2X21jICptY2xlZF9j ZGV2ID0gbGNkZXZfdG9fbWNjZGV2KGxlZF9jZGV2KTsNCj4+IMKgwqDCoMKgwqAgaW50IG5yY2hh cnMsIG9mZnNldCA9IDA7DQo+PiDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBpbnRlbnNpdHlfdmFs dWVbTEVEX0NPTE9SX0lEX01BWF07DQo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBtYXhfaW50ZW5z aXR5Ow0KPj4gwqDCoMKgwqDCoCBpbnQgaTsNCj4+IMKgwqDCoMKgwqAgc3NpemVfdCByZXQ7DQo+ PiDCoCBAQCAtNTYsOCArODIsMTMgQEAgc3RhdGljIHNzaXplX3QgbXVsdGlfaW50ZW5zaXR5X3N0 b3JlKHN0cnVjdCANCj4+IGRldmljZSAqZGV2LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8g ZXJyX291dDsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gwqAgLcKgwqDCoCBmb3IgKGkgPSAwOyBpIDwg bWNsZWRfY2Rldi0+bnVtX2NvbG9yczsgaSsrKQ0KPj4gLcKgwqDCoMKgwqDCoMKgIG1jbGVkX2Nk ZXYtPnN1YmxlZF9pbmZvW2ldLmludGVuc2l0eSA9IGludGVuc2l0eV92YWx1ZVtpXTsNCj4+ICvC oMKgwqAgZm9yIChpID0gMDsgaSA8IG1jbGVkX2NkZXYtPm51bV9jb2xvcnM7IGkrKykgew0KPj4g K8KgwqDCoMKgwqDCoMKgIG1heF9pbnRlbnNpdHkgPSBtY2xlZF9jZGV2LT5zdWJsZWRfaW5mb1tp XS5tYXhfaW50ZW5zaXR5Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChtYXhfaW50ZW5zaXR5ID09 IExFRF9VU0VfTUFYX0JSSUdIVE5FU1MpDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXhf aW50ZW5zaXR5ID0gbGVkX2NkZXYtPm1heF9icmlnaHRuZXNzOw0KPj4gKw0KPj4gK8KgwqDCoMKg wqDCoMKgIG1jbGVkX2NkZXYtPnN1YmxlZF9pbmZvW2ldLmludGVuc2l0eSA9IA0KPj4gbWluKGlu dGVuc2l0eV92YWx1ZVtpXSwgbWF4X2ludGVuc2l0eSk7DQo+PiArwqDCoMKgIH0NCj4+IMKgIMKg wqDCoMKgwqAgaWYgKCF0ZXN0X2JpdChMRURfQkxJTktfU1csICZsZWRfY2Rldi0+d29ya19mbGFn cykpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbGVkX3NldF9icmlnaHRuZXNzKGxlZF9jZGV2LCBs ZWRfY2Rldi0+YnJpZ2h0bmVzcyk7DQo+PiBAQCAtMTExLDYgKzE0Miw3IEBAIHN0YXRpYyBzc2l6 ZV90IG11bHRpX2luZGV4X3Nob3coc3RydWN0IGRldmljZSAqZGV2LA0KPj4gwqAgc3RhdGljIERF VklDRV9BVFRSX1JPKG11bHRpX2luZGV4KTsNCj4+IMKgIMKgIHN0YXRpYyBzdHJ1Y3QgYXR0cmli dXRlICpsZWRfbXVsdGljb2xvcl9hdHRyc1tdID0gew0KPj4gK8KgwqDCoCAmZGV2X2F0dHJfbXVs dGlfbWF4X2ludGVuc2l0eS5hdHRyLA0KPj4gwqDCoMKgwqDCoCAmZGV2X2F0dHJfbXVsdGlfaW50 ZW5zaXR5LmF0dHIsDQo+PiDCoMKgwqDCoMKgICZkZXZfYXR0cl9tdWx0aV9pbmRleC5hdHRyLA0K Pj4gwqDCoMKgwqDCoCBOVUxMLA0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWRzLWJs aW5rbS5jIGIvZHJpdmVycy9sZWRzL2xlZHMtYmxpbmttLmMNCj4+IGluZGV4IDU3NzQ5N2I5ZDQy Ni4uN2QxMTQwNzY3Yzc2IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9sZWRzL2xlZHMtYmxpbmtt LmMNCj4+ICsrKyBiL2RyaXZlcnMvbGVkcy9sZWRzLWJsaW5rbS5jDQo+PiBAQCAtNjk0LDggKzY5 NCwxMSBAQCBzdGF0aWMgaW50IHJlZ2lzdGVyX211bHRpY29sb3Ioc3RydWN0IGkyY19jbGllbnQg DQo+PiAqY2xpZW50LCBzdHJ1Y3QgYmxpbmttX2RhdGEgKmRhDQo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIC1FTk9NRU07DQo+PiDCoCDCoMKgwqDCoMKgIG1jX2xlZF9pbmZvW1JFRF0uY29s b3JfaW5kZXggPSBMRURfQ09MT1JfSURfUkVEOw0KPj4gK8KgwqDCoCBtY19sZWRfaW5mb1tSRURd Lm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4gwqDCoMKgwqDCoCBt Y19sZWRfaW5mb1tHUkVFTl0uY29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfR1JFRU47DQo+PiAr wqDCoMKgIG1jX2xlZF9pbmZvW0dSRUVOXS5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJ R0hUTkVTUzsNCj4+IMKgwqDCoMKgwqAgbWNfbGVkX2luZm9bQkxVRV0uY29sb3JfaW5kZXggPSBM RURfQ09MT1JfSURfQkxVRTsNCj4+ICvCoMKgwqAgbWNfbGVkX2luZm9bQkxVRV0ubWF4X2ludGVu c2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoCDCoMKgwqDCoMKgIG1jX2xlZC0+ Y2Rldi5tY2xlZF9jZGV2LnN1YmxlZF9pbmZvID0gbWNfbGVkX2luZm87DQo+PiDCoMKgwqDCoMKg IG1jX2xlZC0+Y2Rldi5tY2xlZF9jZGV2Lm51bV9jb2xvcnMgPSBOVU1fTEVEUzsNCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2xlZHMvbGVkcy1jcm9zX2VjLmMgYi9kcml2ZXJzL2xlZHMvbGVkcy1j cm9zX2VjLmMNCj4+IGluZGV4IGJlYTNjYzNmYmZkMi4uYjg5MTQ3MTgxMmZmIDEwMDY0NA0KPj4g LS0tIGEvZHJpdmVycy9sZWRzL2xlZHMtY3Jvc19lYy5jDQo+PiArKysgYi9kcml2ZXJzL2xlZHMv bGVkcy1jcm9zX2VjLmMNCj4+IEBAIC0yMDIsNiArMjAyLDcgQEAgc3RhdGljIGludCBjcm9zX2Vj X2xlZF9wcm9iZV9vbmUoc3RydWN0IGRldmljZSANCj4+ICpkZXYsIHN0cnVjdCBjcm9zX2VjX2Rl dmljZSAqY3Jvcw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGludWU7DQo+PiDC oCDCoMKgwqDCoMKgwqDCoMKgwqAgc3VibGVkc1tzdWJsZWRdLmNvbG9yX2luZGV4ID0gY3Jvc19l Y19sZWRfdG9fbGludXhfaWRbaV07DQo+PiArwqDCoMKgwqDCoMKgwqAgc3VibGVkc1tzdWJsZWRd Lm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4gwqDCoMKgwqDCoMKg wqDCoMKgIGlmIChzdWJsZWQgPT0gMCkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1 YmxlZHNbc3VibGVkXS5pbnRlbnNpdHkgPSAxMDA7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc3Vi bGVkKys7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL2xlZHMtbHA1MHh4LmMgYi9kcml2 ZXJzL2xlZHMvbGVkcy1scDUweHguYw0KPj4gaW5kZXggZTJhOWM4NTkyOTUzLi42OWMzNTUwZjFh MzEgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2xlZHMvbGVkcy1scDUweHguYw0KPj4gKysrIGIv ZHJpdmVycy9sZWRzL2xlZHMtbHA1MHh4LmMNCj4+IEBAIC01MjUsNiArNTI1LDcgQEAgc3RhdGlj IGludCBscDUweHhfcHJvYmVfZHQoc3RydWN0IGxwNTB4eCAqcHJpdikNCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIH0NCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1jX2xl ZF9pbmZvW211bHRpX2luZGV4XS5jb2xvcl9pbmRleCA9IGNvbG9yX2lkOw0KPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbWNfbGVkX2luZm9bbXVsdGlfaW5kZXhdLm1heF9pbnRlbnNpdHkgPSAy NTU7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBudW1fY29sb3JzKys7DQo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgfQ0KPj4gwqAgZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9sZWRzLWxw NTV4eC1jb21tb24uYyANCj4+IGIvZHJpdmVycy9sZWRzL2xlZHMtbHA1NXh4LWNvbW1vbi5jDQo+ PiBpbmRleCBlYTEzMTE3N2RlOTYuLmY2MzdlNzRlODc4MCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZl cnMvbGVkcy9sZWRzLWxwNTV4eC1jb21tb24uYw0KPj4gKysrIGIvZHJpdmVycy9sZWRzL2xlZHMt bHA1NXh4LWNvbW1vbi5jDQo+PiBAQCAtNDk1LDEwICs0OTUsOSBAQCBzdGF0aWMgaW50IGxwNTV4 eF9pbml0X2xlZChzdHJ1Y3QgbHA1NXh4X2xlZCAqbGVkLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg IGxlZF9jZGV2LT5icmlnaHRuZXNzX3NldF9ibG9ja2luZyA9IGxwNTV4eF9zZXRfbWNfYnJpZ2h0 bmVzczsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBsZWQtPm1jX2NkZXYubnVtX2NvbG9ycyA9IHBk YXRhLT5sZWRfY29uZmlnW2NoYW5dLm51bV9jb2xvcnM7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg Zm9yIChpID0gMDsgaSA8IGxlZC0+bWNfY2Rldi5udW1fY29sb3JzOyBpKyspIHsNCj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG1jX2xlZF9pbmZvW2ldLmNvbG9yX2luZGV4ID0NCj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGRhdGEtPmxlZF9jb25maWdbY2hhbl0uY29sb3Jf aWRbaV07DQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtY19sZWRfaW5mb1tpXS5jaGFubmVs ID0NCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwZGF0YS0+bGVk X2NvbmZpZ1tjaGFuXS5vdXRwdXRfbnVtW2ldOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg bWNfbGVkX2luZm9baV0uY29sb3JfaW5kZXggPSANCj4+IHBkYXRhLT5sZWRfY29uZmlnW2NoYW5d LmNvbG9yX2lkW2ldOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWNfbGVkX2luZm9baV0u Y2hhbm5lbCA9IA0KPj4gcGRhdGEtPmxlZF9jb25maWdbY2hhbl0ub3V0cHV0X251bVtpXTsNCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1jX2xlZF9pbmZvW2ldLm1heF9pbnRlbnNpdHkgPSBM RURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+IMKgIMKg wqDCoMKgwqDCoMKgwqDCoCBsZWQtPm1jX2NkZXYuc3VibGVkX2luZm8gPSBtY19sZWRfaW5mbzsN Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2xlZHMvbGVkcy1tYXg3NzcwNS5jIGIvZHJpdmVycy9s ZWRzL2xlZHMtbWF4Nzc3MDUuYw0KPj4gaW5kZXggMWUyMDU0YzFiZjgwLi5iZDJjMDc4YjQyZjMg MTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2xlZHMvbGVkcy1tYXg3NzcwNS5jDQo+PiArKysgYi9k cml2ZXJzL2xlZHMvbGVkcy1tYXg3NzcwNS5jDQo+PiBAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0YXRp YyBpbnQgbWF4Nzc3MDVfcGFyc2Vfc3VibGVkKHN0cnVjdCBkZXZpY2UgDQo+PiAqZGV2LCBzdHJ1 Y3QgZndub2RlX2hhbmRsZSAqbnAsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAiZmFpbGVkIHRvIHBhcnNlIFwiY29sb3JcIiBvZiAlcE9GXG4iLCBucCk7 DQo+PiDCoCDCoMKgwqDCoMKgIGluZm8tPmNvbG9yX2luZGV4ID0gY29sb3I7DQo+PiArwqDCoMKg IGluZm8tPm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4gwqAgwqDC oMKgwqDCoCByZXR1cm4gMDsNCj4+IMKgIH0NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2xlZHMv bGVkcy1zdW41MGktYTEwMC5jIA0KPj4gYi9kcml2ZXJzL2xlZHMvbGVkcy1zdW41MGktYTEwMC5j DQo+PiBpbmRleCAyYzliZDM2MGFiODEuLjZlNzdjYmNiOGI1NCAxMDA2NDQNCj4+IC0tLSBhL2Ry aXZlcnMvbGVkcy9sZWRzLXN1bjUwaS1hMTAwLmMNCj4+ICsrKyBiL2RyaXZlcnMvbGVkcy9sZWRz LXN1bjUwaS1hMTAwLmMNCj4+IEBAIC01MDQsMTAgKzUwNCwxMyBAQCBzdGF0aWMgaW50IHN1bjUw aV9hMTAwX2xlZGNfcHJvYmUoc3RydWN0IA0KPj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgIGZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3UzMihjaGlsZCwgInJlZyIs ICZsZWQtPmFkZHIpOw0KPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGxlZC0+c3VibGVkX2luZm9b MF0uY29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfUkVEOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGxl ZC0+c3VibGVkX2luZm9bMF0ubWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1M7 DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbGVkLT5zdWJsZWRfaW5mb1swXS5jaGFubmVsID0gMDsN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBsZWQtPnN1YmxlZF9pbmZvWzFdLmNvbG9yX2luZGV4ID0g TEVEX0NPTE9SX0lEX0dSRUVOOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGxlZC0+c3VibGVkX2luZm9b MV0ubWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgbGVkLT5zdWJsZWRfaW5mb1sxXS5jaGFubmVsID0gMTsNCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCBsZWQtPnN1YmxlZF9pbmZvWzJdLmNvbG9yX2luZGV4ID0gTEVEX0NPTE9SX0lEX0JM VUU7DQo+PiArwqDCoMKgwqDCoMKgwqAgbGVkLT5zdWJsZWRfaW5mb1syXS5tYXhfaW50ZW5zaXR5 ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUzsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBsZWQtPnN1 YmxlZF9pbmZvWzJdLmNoYW5uZWwgPSAyOw0KPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGxlZC0+ bWNfY2Rldi5udW1fY29sb3JzID0gQVJSQVlfU0laRShsZWQtPnN1YmxlZF9pbmZvKTsNCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2xlZHMvbGVkcy10dXJyaXMtb21uaWEuYyANCj4+IGIvZHJpdmVy cy9sZWRzL2xlZHMtdHVycmlzLW9tbmlhLmMNCj4+IGluZGV4IDI1ZWU1YzFlYjgyMC4uZmM0MTg5 MWZlOTcxIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9sZWRzL2xlZHMtdHVycmlzLW9tbmlhLmMN Cj4+ICsrKyBiL2RyaXZlcnMvbGVkcy9sZWRzLXR1cnJpcy1vbW5pYS5jDQo+PiBAQCAtMjMzLDYg KzIzMyw3IEBAIHN0YXRpYyBpbnQgb21uaWFfbGVkX3JlZ2lzdGVyKHN0cnVjdCBpMmNfY2xpZW50 IA0KPj4gKmNsaWVudCwgc3RydWN0IG9tbmlhX2xlZCAqbGVkLA0KPj4gwqDCoMKgwqDCoCAvKiBJ bml0aWFsIGNvbG9yIGlzIHdoaXRlICovDQo+PiDCoMKgwqDCoMKgIGZvciAoaW50IGkgPSAwOyBp IDwgT01OSUFfTEVEX05VTV9DSEFOTkVMUzsgKytpKSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg bGVkLT5zdWJsZWRfaW5mb1tpXS5pbnRlbnNpdHkgPSAyNTU7DQo+PiArwqDCoMKgwqDCoMKgwqAg bGVkLT5zdWJsZWRfaW5mb1tpXS5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVT UzsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBsZWQtPnN1YmxlZF9pbmZvW2ldLmJyaWdodG5lc3Mg PSAyNTU7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbGVkLT5zdWJsZWRfaW5mb1tpXS5jaGFubmVs ID0gaTsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9yZ2Iv bGVkcy1ncm91cC1tdWx0aWNvbG9yLmMgDQo+PiBiL2RyaXZlcnMvbGVkcy9yZ2IvbGVkcy1ncm91 cC1tdWx0aWNvbG9yLmMNCj4+IGluZGV4IDU0OGM3ZGQ2M2JhMS4uYzQ3MmNjYmQ1MDZlIDEwMDY0 NA0KPj4gLS0tIGEvZHJpdmVycy9sZWRzL3JnYi9sZWRzLWdyb3VwLW11bHRpY29sb3IuYw0KPj4g KysrIGIvZHJpdmVycy9sZWRzL3JnYi9sZWRzLWdyb3VwLW11bHRpY29sb3IuYw0KPj4gQEAgLTEx MSw2ICsxMTEsNyBAQCBzdGF0aWMgaW50IGxlZHNfZ21jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgDQo+PiAqcGRldikNCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBDb25maWd1cmUg dGhlIExFRCBpbnRlbnNpdHkgdG8gaXRzIG1heGltdW0gKi8NCj4+IMKgwqDCoMKgwqDCoMKgwqDC oCBzdWJsZWRbaV0uaW50ZW5zaXR5ID0gbWF4X2JyaWdodG5lc3M7DQo+PiArwqDCoMKgwqDCoMKg wqAgc3VibGVkW2ldLm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4g wqDCoMKgwqDCoCB9DQo+PiDCoCDCoMKgwqDCoMKgIC8qIEluaXRpYWxpc2UgdGhlIG11bHRpY29s b3IncyBMRUQgY2xhc3MgZGV2aWNlICovDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL3Jn Yi9sZWRzLWt0ZDIwMnguYyANCj4+IGIvZHJpdmVycy9sZWRzL3JnYi9sZWRzLWt0ZDIwMnguYw0K Pj4gaW5kZXggZTRmMGYyNWE1ZTQ1Li40YjA1NDE3NWIzYjUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2 ZXJzL2xlZHMvcmdiL2xlZHMta3RkMjAyeC5jDQo+PiArKysgYi9kcml2ZXJzL2xlZHMvcmdiL2xl ZHMta3RkMjAyeC5jDQo+PiBAQCAtNDIzLDYgKzQyMyw3IEBAIHN0YXRpYyBpbnQga3RkMjAyeF9z ZXR1cF9sZWRfcmdiKHN0cnVjdCBrdGQyMDJ4IA0KPj4gKmNoaXAsIHN0cnVjdCBmd25vZGVfaGFu ZGxlICpmd24NCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbmZvW2ldLmNvbG9yX2luZGV4ID0gbW9u b19jb2xvcjsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbmZvW2ldLmNoYW5uZWwgPSByZWc7DQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgaW5mb1tpXS5pbnRlbnNpdHkgPSBLVEQyMDJYX01BWF9CUklH SFRORVNTOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGluZm9baV0ubWF4X2ludGVuc2l0eSA9IExFRF9V U0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaSsrOw0KPj4gwqDCoMKg wqDCoCB9DQo+PiDCoCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZWRzL3JnYi9sZWRzLWxwNTgxMi5j IA0KPj4gYi9kcml2ZXJzL2xlZHMvcmdiL2xlZHMtbHA1ODEyLmMNCj4+IGluZGV4IGNlNmQ3MDM2 NDFlOC4uNjFmYThkZjQ5M2ZiIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9sZWRzL3JnYi9sZWRz LWxwNTgxMi5jDQo+PiArKysgYi9kcml2ZXJzL2xlZHMvcmdiL2xlZHMtbHA1ODEyLmMNCj4+IEBA IC0zNTMsNiArMzUzLDcgQEAgc3RhdGljIGludCBscDU4MTJfaW5pdF9sZWQoc3RydWN0IGxwNTgx Ml9sZWQgDQo+PiAqbGVkLCBzdHJ1Y3QgbHA1ODEyX2NoaXAgKmNoaXAsIGludA0KPj4gwqDCoMKg wqDCoMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBsZWQtPm1jX2NkZXYubnVtX2NvbG9yczsgaSsr KSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtY19sZWRfaW5mb1tpXS5jb2xvcl9p bmRleCA9IA0KPj4gY2hpcC0+bGVkX2NvbmZpZ1tjaGFuXS5jb2xvcl9pZFtpXTsNCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1jX2xlZF9pbmZvW2ldLmNoYW5uZWwgPSBjaGlwLT5sZWRf Y29uZmlnW2NoYW5dLmxlZF9pZFtpXTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1jX2xl ZF9pbmZvW2ldLm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4gwqDC oMKgwqDCoMKgwqDCoMKgIH0NCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBsZWQtPm1jX2NkZXYu c3VibGVkX2luZm8gPSBtY19sZWRfaW5mbzsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2xlZHMv cmdiL2xlZHMtbXQ2MzcwLXJnYi5jIA0KPj4gYi9kcml2ZXJzL2xlZHMvcmdiL2xlZHMtbXQ2Mzcw LXJnYi5jDQo+PiBpbmRleCBjNTkyN2QwZWI4MzAuLmVhMTFjYTlkMzMyNiAxMDA2NDQNCj4+IC0t LSBhL2RyaXZlcnMvbGVkcy9yZ2IvbGVkcy1tdDYzNzAtcmdiLmMNCj4+ICsrKyBiL2RyaXZlcnMv bGVkcy9yZ2IvbGVkcy1tdDYzNzAtcmdiLmMNCj4+IEBAIC00MzcsMTAgKzQzNyw3IEBAIHN0YXRp YyBpbnQgbXQ2MzcwX21jX2JyaWdodG5lc3Nfc2V0KHN0cnVjdCANCj4+IGxlZF9jbGFzc2RldiAq bGNkZXYsIGVudW0gbGVkX2JyaWdodG4NCj4+IMKgwqDCoMKgwqAgZGlzYWJsZSA9IGVuYWJsZTsN Cj4+IMKgIMKgwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IG1jY2Rldi0+bnVtX2NvbG9yczsgaSsr KSB7DQo+PiAtwqDCoMKgwqDCoMKgwqAgdTMyIGJyaWdodG5lc3M7DQo+PiAtDQo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgc3VibGVkID0gbWNjZGV2LT5zdWJsZWRfaW5mbyArIGk7DQo+PiAtwqDCoMKg wqDCoMKgwqAgYnJpZ2h0bmVzcyA9IG1pbihzdWJsZWQtPmJyaWdodG5lc3MsIGxjZGV2LT5tYXhf YnJpZ2h0bmVzcyk7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZGlzYWJsZSAmPSB+TVQ2MzcwX0NI RU5fQklUKHN1YmxlZC0+Y2hhbm5lbCk7DQo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGxl dmVsID09IDApIHsNCj4+IEBAIC00NTMsMTQgKzQ1MCwxNCBAQCBzdGF0aWMgaW50IG10NjM3MF9t Y19icmlnaHRuZXNzX3NldChzdHJ1Y3QgDQo+PiBsZWRfY2xhc3NkZXYgKmxjZGV2LCBlbnVtIGxl ZF9icmlnaHRuDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsNCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCB9DQo+PiDCoCAtwqDCoMKgwqDCoMKgwqAgaWYgKGJyaWdodG5lc3Mg PT0gMCkgew0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChzdWJsZWQtPmJyaWdodG5lc3MgPT0gMCkg ew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5hYmxlICY9IH5NVDYzNzBfQ0hFTl9C SVQoc3VibGVkLT5jaGFubmVsKTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRp bnVlOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBl bmFibGUgfD0gTVQ2MzcwX0NIRU5fQklUKHN1YmxlZC0+Y2hhbm5lbCk7DQo+PiDCoCAtwqDCoMKg wqDCoMKgwqAgcmV0ID0gbXQ2MzcwX3NldF9sZWRfYnJpZ2h0bmVzcyhwcml2LCBzdWJsZWQtPmNo YW5uZWwsIA0KPj4gYnJpZ2h0bmVzcyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0ID0gbXQ2Mzcw X3NldF9sZWRfYnJpZ2h0bmVzcyhwcml2LCBzdWJsZWQtPmNoYW5uZWwsIA0KPj4gc3VibGVkLT5i cmlnaHRuZXNzKTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocmV0KQ0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZ290byBvdXRfdW5sb2NrOw0KPj4gwqDCoMKgwqDCoCB9DQo+PiBA QCAtNzQyLDYgKzczOSw3IEBAIHN0YXRpYyBpbnQgbXQ2MzcwX2Fzc2lnbl9tdWx0aWNvbG9yX2lu Zm8oc3RydWN0IA0KPj4gZGV2aWNlICpkZXYsIHN0cnVjdCBtdDYzNzBfbGVkICoNCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBzdWJfbGVkW251bV9jb2xvcl0uY29sb3JfaW5kZXggPSBjb2xvcjsNCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBzdWJfbGVkW251bV9jb2xvcl0uY2hhbm5lbCA9IHJlZzsNCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBzdWJfbGVkW251bV9jb2xvcl0uaW50ZW5zaXR5ID0gMDsNCj4+ ICvCoMKgwqDCoMKgwqDCoCBzdWJfbGVkW251bV9jb2xvcl0ubWF4X2ludGVuc2l0eSA9IExFRF9V U0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbnVtX2NvbG9yKys7DQo+ PiDCoMKgwqDCoMKgIH0NCj4+IMKgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2xlZHMvcmdiL2xlZHMt bmNwNTYyMy5jIA0KPj4gYi9kcml2ZXJzL2xlZHMvcmdiL2xlZHMtbmNwNTYyMy5jDQo+PiBpbmRl eCA4NWQ2YmU2ZmZmMmIuLmYyNTI4ZjA2NTA3ZCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvbGVk cy9yZ2IvbGVkcy1uY3A1NjIzLmMNCj4+ICsrKyBiL2RyaXZlcnMvbGVkcy9yZ2IvbGVkcy1uY3A1 NjIzLmMNCj4+IEBAIC01Niw4ICs1Niw3IEBAIHN0YXRpYyBpbnQgbmNwNTYyM19icmlnaHRuZXNz X3NldChzdHJ1Y3QgDQo+PiBsZWRfY2xhc3NkZXYgKmNkZXYsDQo+PiDCoMKgwqDCoMKgIGZvciAo aW50IGkgPSAwOyBpIDwgbWNfY2Rldi0+bnVtX2NvbG9yczsgaSsrKSB7DQo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgcmV0ID0gbmNwNTYyM193cml0ZShuY3AtPmNsaWVudCwNCj4+IE5DUDU2MjNfUFdN X1JFRyhtY19jZGV2LT5zdWJsZWRfaW5mb1tpXS5jaGFubmVsKSwNCj4+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtaW4obWNfY2Rldi0+c3VibGVkX2luZm9baV0uaW50 ZW5zaXR5LA0KPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE5DUDU2 MjNfTUFYX0JSSUdIVE5FU1MpKTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBtY19jZGV2LT5zdWJsZWRfaW5mb1tpXS5pbnRlbnNpdHkpOw0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgIGlmIChyZXQpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g cmV0Ow0KPj4gwqDCoMKgwqDCoCB9DQo+PiBAQCAtMTkwLDYgKzE4OSw3IEBAIHN0YXRpYyBpbnQg bmNwNTYyM19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQ0KPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZ290byByZWxlYXNlX2xlZF9ub2RlOw0KPj4gwqAgwqDCoMKgwqDCoMKg wqDCoMKgIHN1YmxlZF9pbmZvW25jcC0+bWNfZGV2Lm51bV9jb2xvcnNdLmNoYW5uZWwgPSByZWc7 DQo+PiArwqDCoMKgwqDCoMKgwqAgc3VibGVkX2luZm9bbmNwLT5tY19kZXYubnVtX2NvbG9yc10u bWF4X2ludGVuc2l0eSA9IA0KPj4gTkNQNTYyM19NQVhfQlJJR0hUTkVTUzsNCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCBzdWJsZWRfaW5mb1tuY3AtPm1jX2Rldi5udW1fY29sb3JzKytdLmNvbG9yX2lu ZGV4ID0gDQo+PiBjb2xvcl9pbmRleDsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gwqAgZGlmZiAtLWdp dCBhL2RyaXZlcnMvbGVkcy9yZ2IvbGVkcy1wd20tbXVsdGljb2xvci5jIA0KPj4gYi9kcml2ZXJz L2xlZHMvcmdiL2xlZHMtcHdtLW11bHRpY29sb3IuYw0KPj4gaW5kZXggZTBkN2QzYzkyMTVjLi41 NzhlNjdkY2M4ODEgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2xlZHMvcmdiL2xlZHMtcHdtLW11 bHRpY29sb3IuYw0KPj4gKysrIGIvZHJpdmVycy9sZWRzL3JnYi9sZWRzLXB3bS1tdWx0aWNvbG9y LmMNCj4+IEBAIC05NSw2ICs5NSw3IEBAIHN0YXRpYyBpbnQgaXRlcmF0ZV9zdWJsZWRzKHN0cnVj dCBkZXZpY2UgKmRldiwgDQo+PiBzdHJ1Y3QgcHdtX21jX2xlZCAqcHJpdiwNCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCB9DQo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgc3VibGVkW3ByaXYtPm1jX2Nk ZXYubnVtX2NvbG9yc10uY29sb3JfaW5kZXggPSBjb2xvcjsNCj4+ICvCoMKgwqDCoMKgwqDCoCBz dWJsZWRbcHJpdi0+bWNfY2Rldi5udW1fY29sb3JzXS5tYXhfaW50ZW5zaXR5ID0gDQo+PiBMRURf VVNFX01BWF9CUklHSFRORVNTOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHByaXYtPm1jX2NkZXYu bnVtX2NvbG9ycysrOw0KPj4gwqDCoMKgwqDCoCB9DQo+PiDCoCBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9sZWRzL3JnYi9sZWRzLXFjb20tbHBnLmMgDQo+PiBiL2RyaXZlcnMvbGVkcy9yZ2IvbGVkcy1x Y29tLWxwZy5jDQo+PiBpbmRleCBmNjA2MWM0N2Y4NjMuLjM5MGRjYmUxY2QxOCAxMDA2NDQNCj4+ IC0tLSBhL2RyaXZlcnMvbGVkcy9yZ2IvbGVkcy1xY29tLWxwZy5jDQo+PiArKysgYi9kcml2ZXJz L2xlZHMvcmdiL2xlZHMtcWNvbS1scGcuYw0KPj4gQEAgLTE0MTEsNiArMTQxMSw3IEBAIHN0YXRp YyBpbnQgbHBnX2FkZF9sZWQoc3RydWN0IGxwZyAqbHBnLCBzdHJ1Y3QgDQo+PiBkZXZpY2Vfbm9k ZSAqbnApDQo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbmZvW2ldLmNvbG9yX2lu ZGV4ID0gbGVkLT5jaGFubmVsc1tpXS0+Y29sb3I7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpbmZvW2ldLmludGVuc2l0eSA9IDA7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp bmZvW2ldLm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTOw0KPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaSsrOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+IMKg IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9zaWxpY29tLXBsYXRmb3JtLmMgDQo+ PiBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L3NpbGljb20tcGxhdGZvcm0uYw0KPj4gaW5kZXggMjY2 ZjdiYzVlNDE2Li41ZWQxMTViN2RjMDEgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL3BsYXRmb3Jt L3g4Ni9zaWxpY29tLXBsYXRmb3JtLmMNCj4+ICsrKyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L3Np bGljb20tcGxhdGZvcm0uYw0KPj4gQEAgLTI4MywxOCArMjgzLDIxIEBAIHN0YXRpYyBzdHJ1Y3Qg bWNfc3VibGVkIA0KPj4gcGxhdF8wMjIyX3dhbl9tY19zdWJsZWRfaW5mb1tdIF9faW5pdGRhdGEg PSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbG9yX2luZGV4ID0gTEVEX0NPTE9SX0lEX1dI SVRFLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5icmlnaHRuZXNzID0gMSwNCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCAuaW50ZW5zaXR5ID0gMCwNCj4+ICvCoMKgwqDCoMKgwqDCoCAubWF4X2ludGVu c2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1MsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNo YW5uZWwgPSBPRkZTRVRfQklUX1RPX0NIQU5ORUwoMHgwYywgNyksDQo+PiDCoMKgwqDCoMKgIH0s DQo+PiDCoMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY29sb3JfaW5kZXggPSBM RURfQ09MT1JfSURfWUVMTE9XLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5icmlnaHRuZXNzID0g MSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW50ZW5zaXR5ID0gMCwNCj4+ICvCoMKgwqDCoMKg wqDCoCAubWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1MsDQo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgLmNoYW5uZWwgPSBPRkZTRVRfQklUX1RPX0NIQU5ORUwoMHgwYywgNiksDQo+ PiDCoMKgwqDCoMKgIH0sDQo+PiDCoMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAu Y29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfUkVELA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5i cmlnaHRuZXNzID0gMSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW50ZW5zaXR5ID0gMCwNCj4+ ICvCoMKgwqDCoMKgwqDCoCAubWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1Ms DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNoYW5uZWwgPSBPRkZTRVRfQklUX1RPX0NIQU5ORUwo MHgwYywgNSksDQo+PiDCoMKgwqDCoMKgIH0sDQo+PiDCoCB9Ow0KPj4gQEAgLTMwNCwxOCArMzA3 LDIxIEBAIHN0YXRpYyBzdHJ1Y3QgbWNfc3VibGVkIA0KPj4gcGxhdF8wMjIyX3N5c19tY19zdWJs ZWRfaW5mb1tdIF9faW5pdGRhdGEgPSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbG9yX2lu ZGV4ID0gTEVEX0NPTE9SX0lEX1dISVRFLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5icmlnaHRu ZXNzID0gMSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW50ZW5zaXR5ID0gMCwNCj4+ICvCoMKg wqDCoMKgwqDCoCAubWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1MsDQo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgLmNoYW5uZWwgPSBPRkZTRVRfQklUX1RPX0NIQU5ORUwoMHgwYywg NCksDQo+PiDCoMKgwqDCoMKgIH0sDQo+PiDCoMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCAuY29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfQU1CRVIsDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkg PSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJ R0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9f Q0hBTk5FTCgweDBjLCAzKSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9SRUQsDQo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg IC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVE X1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9G RlNFVF9CSVRfVE9fQ0hBTk5FTCgweDBjLCAyKSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgIH07 DQo+PiBAQCAtMzI1LDI0ICszMzEsMjggQEAgc3RhdGljIHN0cnVjdCBtY19zdWJsZWQgDQo+PiBw bGF0XzAyMjJfc3RhdDFfbWNfc3VibGVkX2luZm9bXSBfX2luaXRkYXRhID0gew0KPj4gwqDCoMKg wqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9SRUQsDQo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRl bnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9N QVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9C SVRfVE9fQ0hBTk5FTCgweDBjLCAxKSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAg ew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9HUkVF TiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuYnJpZ2h0bmVzcyA9IDEsDQo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgLmludGVuc2l0eSA9IDAsDQo+PiArwqDCoMKgwqDCoMKgwqAgLm1heF9pbnRlbnNp dHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jaGFu bmVsID0gT0ZGU0VUX0JJVF9UT19DSEFOTkVMKDB4MGMsIDApLA0KPj4gwqDCoMKgwqDCoCB9LA0K Pj4gwqDCoMKgwqDCoCB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbG9yX2luZGV4ID0gTEVE X0NPTE9SX0lEX0JMVUUsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0K Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKg IC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgweDBkLCA3KSwNCj4+IMKg wqDCoMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xv cl9pbmRleCA9IExFRF9DT0xPUl9JRF9ZRUxMT1csDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJy aWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4g K8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgw eDBkLCA2KSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgIH07DQo+PiBAQCAtMzUyLDI0ICszNjIs MjggQEAgc3RhdGljIHN0cnVjdCBtY19zdWJsZWQgDQo+PiBwbGF0XzAyMjJfc3RhdDJfbWNfc3Vi bGVkX2luZm9bXSBfX2luaXRkYXRhID0gew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9p bmRleCA9IExFRF9DT0xPUl9JRF9SRUQsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5l c3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDC oMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgweDBkLCA1 KSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDC oMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9HUkVFTiwNCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCAuYnJpZ2h0bmVzcyA9IDEsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmludGVuc2l0eSA9 IDAsDQo+PiArwqDCoMKgwqDCoMKgwqAgLm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklH SFRORVNTLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jaGFubmVsID0gT0ZGU0VUX0JJVF9UT19D SEFOTkVMKDB4MGQsIDQpLA0KPj4gwqDCoMKgwqDCoCB9LA0KPj4gwqDCoMKgwqDCoCB7DQo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgLmNvbG9yX2luZGV4ID0gTEVEX0NPTE9SX0lEX0JMVUUsDQo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg IC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVE X1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9G RlNFVF9CSVRfVE9fQ0hBTk5FTCgweDBkLCAzKSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgwqDC oMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9J RF9ZRUxMT1csDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDC oMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhf aW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDC oCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgweDBkLCAyKSwNCj4+IMKgwqDCoMKg wqAgfSwNCj4+IMKgIH07DQo+PiBAQCAtMzc5LDI0ICszOTMsMjggQEAgc3RhdGljIHN0cnVjdCBt Y19zdWJsZWQgDQo+PiBwbGF0XzAyMjJfc3RhdDNfbWNfc3VibGVkX2luZm9bXSBfX2luaXRkYXRh ID0gew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9S RUQsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5z aXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hh bm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgweDBkLCAxKSwNCj4+IMKgwqDCoMKgwqAgfSwN Cj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExF RF9DT0xPUl9JRF9HUkVFTiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuYnJpZ2h0bmVzcyA9IDEs DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmludGVuc2l0eSA9IDAsDQo+PiArwqDCoMKgwqDCoMKg wqAgLm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTLA0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgIC5jaGFubmVsID0gT0ZGU0VUX0JJVF9UT19DSEFOTkVMKDB4MGQsIDApLA0KPj4g wqDCoMKgwqDCoCB9LA0KPj4gwqDCoMKgwqDCoCB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNv bG9yX2luZGV4ID0gTEVEX0NPTE9SX0lEX0JMVUUsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJy aWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4g K8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgw eDBlLCAxKSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9ZRUxMT1csDQo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRl bnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9N QVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9C SVRfVE9fQ0hBTk5FTCgweDBlLCAwKSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgIH07DQo+PiBA QCAtNDk3LDI0ICs1MTUsMjggQEAgc3RhdGljIHN0cnVjdCBtY19zdWJsZWQgDQo+PiBjb3Jkb2Jh X2ZwX2xlZnRfbWNfc3VibGVkX2luZm9bXSBfX2luaXRkYXRhID0gew0KPj4gwqDCoMKgwqDCoMKg wqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9SRUQsDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkg PSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJ R0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9f Q0hBTk5FTCgweDA4LCA2KSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9HUkVFTiwNCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCAuYnJpZ2h0bmVzcyA9IDEsDQo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgLmludGVuc2l0eSA9IDAsDQo+PiArwqDCoMKgwqDCoMKgwqAgLm1heF9pbnRlbnNpdHkgPSBM RURfVVNFX01BWF9CUklHSFRORVNTLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jaGFubmVsID0g T0ZGU0VUX0JJVF9UT19DSEFOTkVMKDB4MDgsIDUpLA0KPj4gwqDCoMKgwqDCoCB9LA0KPj4gwqDC oMKgwqDCoCB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbG9yX2luZGV4ID0gTEVEX0NPTE9S X0lEX0JMVUUsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDC oMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhf aW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDC oCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgweDA5LCA3KSwNCj4+IMKgwqDCoMKg wqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRl eCA9IExFRF9DT0xPUl9JRF9BTUJFUiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuYnJpZ2h0bmVz cyA9IDEsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmludGVuc2l0eSA9IDAsDQo+PiArwqDCoMKg wqDCoMKgwqAgLm1heF9pbnRlbnNpdHkgPSBMRURfVVNFX01BWF9CUklHSFRORVNTLA0KPj4gwqDC oMKgwqDCoMKgwqDCoMKgIC5jaGFubmVsID0gT0ZGU0VUX0JJVF9UT19DSEFOTkVMKDB4MDksIDQp LA0KPj4gwqDCoMKgwqDCoCB9LA0KPj4gwqAgfTsNCj4+IEBAIC01MjQsMjQgKzU0NiwyOCBAQCBz dGF0aWMgc3RydWN0IG1jX3N1YmxlZCANCj4+IGNvcmRvYmFfZnBfY2VudGVyX21jX3N1YmxlZF9p bmZvW10gX19pbml0ZGF0YSA9IHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY29sb3JfaW5kZXgg PSBMRURfQ09MT1JfSURfUkVELA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5icmlnaHRuZXNzID0g MSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW50ZW5zaXR5ID0gMCwNCj4+ICvCoMKgwqDCoMKg wqDCoCAubWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1MsDQo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgLmNoYW5uZWwgPSBPRkZTRVRfQklUX1RPX0NIQU5ORUwoMHgwOCwgNyksDQo+ PiDCoMKgwqDCoMKgIH0sDQo+PiDCoMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAu Y29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfR1JFRU4sDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg LmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0K Pj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVT UywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5F TCgweDA4LCA0KSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKg wqDCoMKgwqDCoMKgIC5jb2xvcl9pbmRleCA9IExFRF9DT0xPUl9JRF9CTFVFLA0KPj4gwqDCoMKg wqDCoMKgwqDCoMKgIC5icmlnaHRuZXNzID0gMSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW50 ZW5zaXR5ID0gMCwNCj4+ICvCoMKgwqDCoMKgwqDCoCAubWF4X2ludGVuc2l0eSA9IExFRF9VU0Vf TUFYX0JSSUdIVE5FU1MsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNoYW5uZWwgPSBPRkZTRVRf QklUX1RPX0NIQU5ORUwoMHgwOCwgMyksDQo+PiDCoMKgwqDCoMKgIH0sDQo+PiDCoMKgwqDCoMKg IHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfQU1C RVIsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5z aXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hh bm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgweDA5LCA2KSwNCj4+IMKgwqDCoMKgwqAgfSwN Cj4+IMKgIH07DQo+PiBAQCAtNTUxLDI0ICs1NzcsMjggQEAgc3RhdGljIHN0cnVjdCBtY19zdWJs ZWQgDQo+PiBjb3Jkb2JhX2ZwX3JpZ2h0X21jX3N1YmxlZF9pbmZvW10gX19pbml0ZGF0YSA9IHsN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfUkVELA0K Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5icmlnaHRuZXNzID0gMSwNCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCAuaW50ZW5zaXR5ID0gMCwNCj4+ICvCoMKgwqDCoMKgwqDCoCAubWF4X2ludGVuc2l0eSA9 IExFRF9VU0VfTUFYX0JSSUdIVE5FU1MsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNoYW5uZWwg PSBPRkZTRVRfQklUX1RPX0NIQU5ORUwoMHgwOCwgMiksDQo+PiDCoMKgwqDCoMKgIH0sDQo+PiDC oMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY29sb3JfaW5kZXggPSBMRURfQ09M T1JfSURfR1JFRU4sDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkgPSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5t YXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJR0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9fQ0hBTk5FTCgweDA4LCAxKSwNCj4+IMKgwqDC oMKgwqAgfSwNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5jb2xvcl9p bmRleCA9IExFRF9DT0xPUl9JRF9CTFVFLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5icmlnaHRu ZXNzID0gMSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuaW50ZW5zaXR5ID0gMCwNCj4+ICvCoMKg wqDCoMKgwqDCoCAubWF4X2ludGVuc2l0eSA9IExFRF9VU0VfTUFYX0JSSUdIVE5FU1MsDQo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgLmNoYW5uZWwgPSBPRkZTRVRfQklUX1RPX0NIQU5ORUwoMHgwOCwg MCksDQo+PiDCoMKgwqDCoMKgIH0sDQo+PiDCoMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCAuY29sb3JfaW5kZXggPSBMRURfQ09MT1JfSURfQU1CRVIsDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgLmJyaWdodG5lc3MgPSAxLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5pbnRlbnNpdHkg PSAwLA0KPj4gK8KgwqDCoMKgwqDCoMKgIC5tYXhfaW50ZW5zaXR5ID0gTEVEX1VTRV9NQVhfQlJJ R0hUTkVTUywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAuY2hhbm5lbCA9IE9GRlNFVF9CSVRfVE9f Q0hBTk5FTCgweDA5LCA1KSwNCj4+IMKgwqDCoMKgwqAgfSwNCj4+IMKgIH07DQo+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvdW5pd2lsbC91bml3aWxsLWFjcGkuYyANCj4+IGIv ZHJpdmVycy9wbGF0Zm9ybS94ODYvdW5pd2lsbC91bml3aWxsLWFjcGkuYw0KPj4gaW5kZXggZmVl OTM1MzdhYTQzLi45NDY4YTkzZjdhNTkgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL3BsYXRmb3Jt L3g4Ni91bml3aWxsL3VuaXdpbGwtYWNwaS5jDQo+PiArKysgYi9kcml2ZXJzL3BsYXRmb3JtL3g4 Ni91bml3aWxsL3VuaXdpbGwtYWNwaS5jDQo+PiBAQCAtMTA4Miw4ICsxMDgyLDcgQEAgc3RhdGlj IGludCB1bml3aWxsX2xlZF9icmlnaHRuZXNzX3NldChzdHJ1Y3QgDQo+PiBsZWRfY2xhc3NkZXYg KmxlZF9jZGV2LCBlbnVtIGxlZF9icg0KPj4gwqDCoMKgwqDCoCBndWFyZChtdXRleCkoJmRhdGEt PmxlZF9sb2NrKTsNCj4+IMKgIMKgwqDCoMKgwqAgZm9yIChpbnQgaSA9IDA7IGkgPCBMRURfQ0hB Tk5FTFM7IGkrKykgew0KPj4gLcKgwqDCoMKgwqDCoMKgIC8qIFByZXZlbnQgdGhlIGJyaWdodG5l c3MgdmFsdWVzIGZyb20gb3ZlcmZsb3dpbmcgKi8NCj4+IC3CoMKgwqDCoMKgwqDCoCB2YWx1ZSA9 IG1pbihMRURfTUFYX0JSSUdIVE5FU1MsIA0KPj4gZGF0YS0+bGVkX21jX3N1YmxlZF9pbmZvW2ld LmJyaWdodG5lc3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZhbHVlID0gZGF0YS0+bGVkX21jX3N1 YmxlZF9pbmZvW2ldLmJyaWdodG5lc3M7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gcmVn bWFwX3dyaXRlKGRhdGEtPnJlZ21hcCwgDQo+PiB1bml3aWxsX2xlZF9jaGFubmVsX3RvX2FjX3Jl Z1tpXSwgdmFsdWUpOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXQgPCAwKQ0KPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4+IEBAIC0xMTgyLDYgKzExODEs NyBAQCBzdGF0aWMgaW50IHVuaXdpbGxfbGVkX2luaXQoc3RydWN0IHVuaXdpbGxfZGF0YSANCj4+ ICpkYXRhKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4+IMKg IMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLT5sZWRfbWNfc3VibGVkX2luZm9baV0uaW50ZW5zaXR5 ID0gdmFsdWU7DQo+PiArwqDCoMKgwqDCoMKgwqAgZGF0YS0+bGVkX21jX3N1YmxlZF9pbmZvW2ld Lm1heF9pbnRlbnNpdHkgPSANCj4+IExFRF9VU0VfTUFYX0JSSUdIVE5FU1M7DQo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgZGF0YS0+bGVkX21jX3N1YmxlZF9pbmZvW2ldLmNoYW5uZWwgPSBpOw0KPj4g wqDCoMKgwqDCoCB9DQo+PiDCoCBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9sZWQtY2xhc3Mt bXVsdGljb2xvci5oIA0KPj4gYi9pbmNsdWRlL2xpbnV4L2xlZC1jbGFzcy1tdWx0aWNvbG9yLmgN Cj4+IGluZGV4IGRiOWYzNGM2NzM2ZS4uNjdhYzBhYzBmZDU0IDEwMDY0NA0KPj4gLS0tIGEvaW5j bHVkZS9saW51eC9sZWQtY2xhc3MtbXVsdGljb2xvci5oDQo+PiArKysgYi9pbmNsdWRlL2xpbnV4 L2xlZC1jbGFzcy1tdWx0aWNvbG9yLmgNCj4+IEBAIC05LDEwICs5LDMzIEBADQo+PiDCoCAjaW5j bHVkZSA8bGludXgvbGVkcy5oPg0KPj4gwqAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2xlZHMvY29t bW9uLmg+DQo+PiDCoCArI2RlZmluZSBMRURfVVNFX01BWF9CUklHSFRORVNTIDANCj4+ICsNCj4+ ICsvKioNCj4+ICsgKiBzdHJ1Y3QgbWNfc3VibGVkIC0gQ29sb3IgY29tcG9uZW50IGRlc2NyaXB0 aW9uLg0KPj4gKyAqIEBjb2xvcl9pbmRleDogQ29sb3IgSUQuDQo+PiArICogQGJyaWdodG5lc3M6 IFNjYWxlZCBpbnRlbnNpdHkuDQo+PiArICogQGludGVuc2l0eTogQ3VycmVudCBpbnRlbnNpdHku DQo+PiArICogQG1heF9pbnRlbnNpdHk6IE1heGltdW0gc3VwcG9ydGVkIGludGVuc2l0eSB2YWx1 ZS4NCj4+ICsgKiBAY2hhbm5lbDogQ2hhbm5lbCBpbmRleC4NCj4+ICsgKg0KPj4gKyAqIERlc2Ny aWJlcyBhIGNvbG9yIGNvbXBvbmVudCBvZiBhIG11bHRpY29sb3IgTEVELiBNYW55IG11bHRpY29s b3IgDQo+PiBMRURzDQo+PiArICogZG8gbm8gc3VwcG9ydCBnb2JhbCBicmlnaHRuZXNzIGNvbnRy b2wgaW4gaGFyZHdhcmUsIHNvIHRoZXkgdXNlDQo+PiArICogdGhlIGJyaWdodG5lc3MgZmllbGQg aW4gY29ubmVjdGlvbiB3aXRoIA0KPj4gbGVkX21jX2NhbGNfY29sb3JfY29tcG9uZW50cygpDQo+ PiArICogdG8gcGVyZm9ybSB0aGUgaW50ZW5zaXR5IHNjYWxpbmcgaW4gc29mdHdhcmUuDQo+PiAr ICogU3VjaCBkcml2ZXJzIHNob3VsZCBzZXQgbWF4X2ludGVuc2l0eSB0byBMRURfVVNFX01BWF9C UklHSFRORVNTDQo+DQo+IEknZCBqdXN0IG1lbnRpb24gaGVyZSB0aGF0IHRoZSBmaWVsZCBuZWVk cyB0byBiZSBsZWZ0IGluaXRpYWxpemVkIHRvIDAsDQo+IHRvIGxldCB0aGUgTEVEIHN1YnN5c3Rl bSB0byBhZGp1c3QgaXQgdG8gbWF4X2JyaWdodG5lc3MuIE5vdGUgdGhhdCBpbg0KPiBjYXNlIG9m IG1heF9icmlnaHRuZXNzIHdlIGFsbG93IGZvciB0aGUgc2FtZSAtIGlmIGl0IGlzIDAsIHRoZW4N Cj4gbGVkLWNsYXNzLmMgYWRqdXN0cyBpdCB0byBsZWdhY3kgTEVEX0ZVTEwgKDI1NSkuDQo+DQpP SywgZG8geW91IHRoaW5rIHRoYXQgaGF2aW5nIExFRF9VU0VfTUFYX0JSSUdIVE5FU1MgbWFrZXMg c2Vuc2U/DQoNCj4+ICsgKiB0byBzaWduYWwgdGhlIG11bHRpY29sb3IgTEVEIGNvcmUgdGhhdCB0 aGUgbWF4aW11bSBnbG9iYWwgDQo+PiBicmlnaHRuZXNzIG9mIHRoZQ0KPj4gKyAqIExFRCBjbGFz cyBkZXZpY2Ugc2hvdWxkIGJlIHVzZWQgZm9yIGxpbWl0aW5nIGluY29taW5nIGludGVuc2l0eSAN Cj4+IHZhbHVlcy4NCj4+ICsgKg0KPj4gKyAqIE11bHRpY29sb3IgTEVEcyB0aGF0IGRvIHN1cHBv cnQgZ2xvYmFsIGJyaWdodG5lc3MgY29udHJvbCBpbiANCj4+IGhhcmR3YXJlDQo+PiArICogc2hv dWxkIGluc3RlYWQgc2V0IG1heF9pbnRlbnNpdHkgdG8gdGhlIG1heGltdW0gaW50ZW5zaXR5IHZh bHVlIA0KPj4gc3VwcG9ydGVkDQo+PiArICogYnkgdGhlIGhhcmR3YXJlIGZvciBhIGdpdmVuIGNv bG9yIGNvbXBvbmVudC4NCj4+ICsgKi8NCj4+IMKgIHN0cnVjdCBtY19zdWJsZWQgew0KPj4gwqDC oMKgwqDCoCB1bnNpZ25lZCBpbnQgY29sb3JfaW5kZXg7DQo+PiDCoMKgwqDCoMKgIHVuc2lnbmVk IGludCBicmlnaHRuZXNzOw0KPj4gwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgaW50ZW5zaXR5Ow0K Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgbWF4X2ludGVuc2l0eTsNCj4+IMKgwqDCoMKgwqAgdW5z aWduZWQgaW50IGNoYW5uZWw7DQo+PiDCoCB9Ow0KPj4gwqAgQEAgLTUzLDcgKzc2LDE0IEBAIGlu dCBsZWRfY2xhc3NkZXZfbXVsdGljb2xvcl9yZWdpc3Rlcl9leHQoc3RydWN0IA0KPj4gZGV2aWNl ICpwYXJlbnQsDQo+PiDCoMKgICovDQo+PiDCoCB2b2lkIGxlZF9jbGFzc2Rldl9tdWx0aWNvbG9y X3VucmVnaXN0ZXIoc3RydWN0IGxlZF9jbGFzc2Rldl9tYyANCj4+ICptY2xlZF9jZGV2KTsNCj4+ IMKgIC0vKiBDYWxjdWxhdGUgYnJpZ2h0bmVzcyBmb3IgdGhlIG1vbm9jaHJvbWUgTEVEIGNsdXN0 ZXIgKi8NCj4+ICsvKioNCj4+ICsgKiBsZWRfbWNfY2FsY19jb2xvcl9jb21wb25lbnRzKCkgLSBD YWxjdWxhdGUgYnJpZ2h0bmVzcyBmb3IgdGhlIA0KPj4gbW9ub2Nocm9tZSBMRUQgY2x1c3Rlci4N Cj4NCj4gSXQgZG9lcyBub3QgY2FsY3VsYXRlIGJyaWdodG5lc3MgZm9yIHRoZSB3aG9sZSBMRUQg Y2x1c3RlciwgYnV0IGZvciBlYWNoDQo+IHN1Yi1MRUQgaW5kaXZpZHVhbGx5LiBCcmlnaHRuZXNz IG9mIHRoZSB3aG9sZSBjbHVzdGVyIGNhbiBiZSBkZWVtZWQgYQ0KPiBsaWdodG5lc3Mgb2YgdGhl IG11bHRpY29sb3IgTEVELCBhbmQgdGhlIGJsZW5kIG9mIHRoZSBjb2xvciBjb21wb25lbnRzDQo+ IGNhbiBiZSBkZWVtZWQgaXRzIGh1ZS4NCj4NCj4gSW4gdGhpcyBjYXNlIEknZCBkb2N1bWVudCBp dCBhcyAiQ2FsY3VsYXRlcyBicmlnaHRuZXNzIHZhbHVlcyBmb3IgdGhlDQo+IExFRHMgb2YgdGhl IG1vbm9jaHJvbWUgTEVEIGNsdXN0ZXIiLg0KPg0KT0suDQoNClRoYW5rcywNCkFybWluIFdvbGYN Cg0KPj4gKyAqIEBtY2xlZF9jZGV2IC0gTXVsdGljb2xvciBMRUQgY2xhc3MgZGV2aWNlIG9mIHRo ZSBMRUQgY2x1c3Rlci4NCj4+ICsgKiBAbGVkX2JyaWdodG5lc3MgLSBHbG9iYWwgYnJpZ2h0bmVz cyBvZiB0aGUgTEVEIGNsdXN0ZXIuDQo+PiArICoNCj4+ICsgKiBDYWxjdWxhdGVzIHRoZSBicmln aHRuZXNzIHZhbHVlcyBmb3IgZWFjaCBjb2xvciBjb21wb25lbnQgb2YgYSANCj4+IG1vbm9jaHJv bWUgTEVEIGNsdXN0ZXIsDQo+PiArICogc2VlIERvY3VtZW50YXRpb24vbGVkcy9sZWRzLWNsYXNz LW11bHRpY29sb3IucnN0IGZvciBkZXRhaWxzLg0KPj4gKyAqLw0KPj4gwqAgaW50IGxlZF9tY19j YWxjX2NvbG9yX2NvbXBvbmVudHMoc3RydWN0IGxlZF9jbGFzc2Rldl9tYyAqbWNsZWRfY2RldiwN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnVtIGxlZF9icmlnaHRu ZXNzIGJyaWdodG5lc3MpOw0KPg0K