From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3A497C44529 for ; Tue, 21 Jul 2026 08:48:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZlOqENLzHXZijkfWkyzgfaLjsS4o+15HZGR2iRQG23Q=; b=0XJNhaTgPlIfWz h8Qp4WGAQjQ5StqCcPpSnvUZI3yWDfNnVhOV/S+MMS/dpE33F7D8ZRWY9NyMlqBJlk71yNeONOigv 9UoZ6vkHI2fMe+jYmczvaqiO+7yBueyI8+K9xtq06WUoF7tJolphsu3uBw59RzM1qASzBhhCY8B/t OEsXqm59ZsX5y6F8xQm/pz4vzMQXmpgMOKWhdMO2lembM9MCLAKG8v6Lo8iT0roH7mqLZ+TFzLpx2 lSiHUoQaDzFGUlKRyVeZpgxlykYD4BI0eHP6BQQCNg6exBQ0WKZhMR+iCuIwZIVlyBfUkpVpe4T6x PqQjHPB6Gzsi5QNycM+w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wm69F-00000008sRJ-2Xfe; Tue, 21 Jul 2026 08:48:21 +0000 Received: from mail-m82218.xmail.ntesmail.com ([156.224.82.218]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wm69B-00000008sQU-2LDz; Tue, 21 Jul 2026 08:48:20 +0000 Received: from [172.16.12.90] (unknown [58.22.7.114]) by smtp.qiye.163.com (Hmail) with ESMTP id 46fd7cbde; Tue, 21 Jul 2026 16:48:10 +0800 (GMT+08:00) Message-ID: Date: Tue, 21 Jul 2026 16:48:09 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/4] drm/rockchip: lvds: add RK3568 support To: =?UTF-8?Q?Rok_Markovi=C4=8D?= Cc: Heiko Stuebner , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Alibek Omarov References: <20260717120005.2087386-1-rok@kanardia.eu> <20260717120005.2087386-4-rok@kanardia.eu> <9219738d-c3f2-4034-b88f-84335f77fbad@rock-chips.com> <3a5685992b5e335f2ebf50ee740b8a36@kanardia.eu> Content-Language: en-US From: Chaoyi Chen In-Reply-To: <3a5685992b5e335f2ebf50ee740b8a36@kanardia.eu> X-HM-Tid: 0a9f83dc72e703a7kunmfe88d93e2be2a2 X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1kYFggdWUFKV1ktWUFJV1kPCRoVCBIfWUFZQksdSVYeSEpOT0hISE wZTUpWFRQJFhoXVRMBExYaEhckFA4PWVdZGBILWUFZTkNVSUlVTFVKSk9ZV1kWGg8SFR0UWUFZT0 tIVUpLSEpKQk1VSktLVUpCWQY+ DKIM-Signature: a=rsa-sha256; b=XjRzXw7MwJLm9McXvDow27Pg+1obxCpoSzcZkszDWvMrRG59L4CLwFNojND9xtfzan/5I4qO/VcDyFQjxXH6wV6a58h/64teTRyFuMcY32miB7ZlEia7cOEjFXZWFvRCI7WnDEf7LXw8hAL178AwXaEA1vOEcsq/XQmxBTGuEmU=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=VbdYabY6304wmkQVRhzKWa2oeZwqHMjq8WamtfsNPII=; h=date:mime-version:subject:message-id:from; X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260721_014818_284833_93521F6B X-CRM114-Status: GOOD ( 39.34 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gNy8yMS8yMDI2IDQ6MzEgUE0sIFJvayBNYXJrb3ZpxI0gd3JvdGU6Cj4gMjAuNy4yMDI2IDM6 NTQsIGplIENoYW95aSBDaGVuIG5hcGlzYWwKPj4gSGVsbG8gUm9rLAo+Pgo+PiBUaGFuayB5b3Ug Zm9yIHlvdXIgcGF0Y2guIFBsZWFzZSBzZWUgdGhlIGNvbW1lbnQgYmVsb3c6Cj4+Cj4+IE9uIDcv MTcvMjAyNiA4OjAwIFBNLCBSb2sgTWFya292aWMgd3JvdGU6Cj4+PiBUaGUgUkszNTY4IExWRFMg dHJhbnNtaXR0ZXIgaGFzIG5vIHJlZ2lzdGVyIGJsb2NrIG9mIGl0cyBvd24uIEl0IGlzCj4+PiBk cml2ZW4gZW50aXJlbHkgdGhyb3VnaCB0aGUgR1JGIGFuZCByZS11c2VzIHRoZSBNSVBJIERTSTAg RC1QSFkgaW4KPj4+IFBIWV9NT0RFX0xWRFMsIHdoaWNoIHBoeS1yb2NrY2hpcC1pbm5vLWRzaWRw aHkgYWxyZWFkeSBzdXBwb3J0cy4KPj4+Cj4+PiBCYXNlZCBvbiBBbGliZWsgT21hcm92J3MgZWFy bGllciBwb3N0aW5nIFsxXSwgd2l0aCB0aGUgY2hhbmdlcyBiZWxvdy4KPj4+Cj4+PiBQb3dlciB0 aGUgRC1QSFkgZnJvbSB0aGUgZW5jb2RlciBlbmFibGUgcGF0aCByYXRoZXIgdGhhbiBmcm9tIHBy b2JlLgo+Pj4gcGh5X3Bvd2VyX29uKCkgcnVucyB0aGUgcGh5IGRyaXZlcidzIHdob2xlIExWRFMg YnJpbmctdXA6IFBMTCBhbmQKPj4+IGJhbmRnYXAgcG93ZXItb24sIGEgc2V0dGxlLCBQTEwgbW9k ZSBzZWxlY3QsIHRoZW4gYSByZXNldCBwdWxzZSBvZiB0aGUKPj4+IHNlcmlhbGl6ZXIgYW5kIHRo ZSBsYW5lIGVuYWJsZXMuIE5vbmUgb2YgdGhhdCBpcyBzYWZlIGF0IHByb2JlIHRpbWUgLQo+Pj4g dGhlIEdSRiBoYXMgbm90IHlldCBzd2l0Y2hlZCB0aGUgYmxvY2sgdG8gTFZEUyBtb2RlIChMVkRT MF9NT0RFX0VOIGlzCj4+PiBzZXQgZnJvbSByazM1NjhfbHZkc19wb3dlcm9uKCksIGkuZS4gdGhl IGVuYWJsZSBwYXRoKSBhbmQgdGhlIFZPUCBpcwo+Pj4gbm90IGRyaXZpbmcgZGNsay4gVGhlIHNl cmlhbGl6ZXIgaXMgY2xvY2tlZCBmcm9tIGRjbGsgYW5kIGxhdGNoZXMgaXRzCj4+PiBzdGF0ZSBj b21pbmcgb3V0IG9mIHRoYXQgcmVzZXQsIHNvIGl0IGNvbWVzIHVwIGRlYWQgYW5kIHN0YXlzIGRl YWQuCj4+PiBUaGUgZmFpbHVyZSBpcyBzaWxlbnQ6IGV2ZXJ5IHJlZ2lzdGVyIGluIHRoZSBwaHks IHRoZSBHUkYgYW5kIHRoZSBWT1AKPj4+IHJlYWRzIGJhY2sgZXhhY3RseSBhcyBvbiBhIHdvcmtp bmcgc3lzdGVtIHdoaWxlIHRoZSBsYW5lcyBzaXQgYXQKPj4+IGNvbW1vbiBtb2RlIGFuZCBuZXZl ciB0b2dnbGUuCj4+Pgo+Pgo+PiBDb3VsZCB5b3UgcGxlYXNlIGNvbmZpcm0gdGhpcz8gQmFzZWQg b24gbXkgZWFybGllciB0ZXN0cywgYWZ0ZXIgUEhZCj4+IHBvd2Vyb24sIHJlLWRpc2FibGluZyBh bmQgcmUtZW5hYmxpbmcgdGhlIEdSRiBkaWQgbm90IHJlcHJvZHVjZSB0aGUKPj4gaXNzdWUgeW91 IGRlc2NyaWJlZC4KPiAKPiBJIGNhbiBjb25maXJtIHRoYXQgdGhpcyBpcyBub3Qgd29ya2luZyBi dXQgSSB0ZXN0ZWR3aXRoIHdyaXRpbmcgcmVnaXN0ZXJzCj4gbWFudWFsbHkgd2l0aCBkZXZtZW0g YW5kIEkgY291bGQgbWFrZSBzb21ldGhpbmcgd3JvbmcuCj4gCj4gU2hvdWxkIEkgbGVhdmUgaXQg dGhpcyB3YXkgb3Igc2hvdWxkIEkgbW92ZSB0aGlzIGJhY2sgdG8gcHJvYmUgYW5kIHRyeSB0bwo+ IG1ha2UgaXQgd29yayBpbiBlbmFibGUgYnkgc29tZSB0cmljayAoZGlzYWJlbC9lbmFibGUgR1JG KT8KPiAKCkp1c3Qgb3V0IG9mIGN1cmlvc2l0eS4gSSB0aGluayBpdCdzIGZpbmUgYXMgaXQgaXMg bm93IDopCgoKPj4KPj4+IFByb2dyYW0gUkszNTY4X0xWRFMwX0RDTEtfSU5WX1NFTCBmcm9tIHRo ZSBDUlRDIHN0YXRlJ3MgYnVzX2ZsYWdzIHNvCj4+PiB0aGUgcGFuZWwncyBkZWNsYXJlZCBwaXhl bGNsay1hY3RpdmUgaXMgaG9ub3VyZWQgb24gdGhlIExWRFMgYmxvY2sgYXMKPj4+IHdlbGwgYXMg b24gdGhlIFZPUCBwaW4gcG9sYXJpdHkuIEJvdGggaGF2ZSB0byBhZ3JlZSB3aXRoIHRoZSBlZGdl IHRoZQo+Pj4gcGFuZWwgc2FtcGxlcyBvbi4KPj4+Cj4+PiBSZS1hc3NlcnQgUkszNTY4X0xWRFMw X1AyU19FTiBpbiByazM1NjhfbHZkc19wb3dlcm9uKCkuCj4+PiByazM1NjhfbHZkc19wb3dlcm9m ZigpIGNsZWFycyBNT0RFX0VOIGFuZCBQMlNfRU4gdG9nZXRoZXIsIHNvIHNldHRpbmcKPj4+IFAy U19FTiBvbmNlIGF0IHByb2JlIHdvdWxkIGxlYXZlIHRoZSBwYXJhbGxlbC10by1zZXJpYWwgY29u dmVydGVyIG9mZgo+Pj4gYWZ0ZXIgdGhlIGZpcnN0IGRpc2FibGUvZW5hYmxlIGN5Y2xlLgo+Pj4K Pj4+IFVzZSByZWdtYXBfd3JpdGUoKSByYXRoZXIgdGhhbiByZWdtYXBfdXBkYXRlX2JpdHMoKSBm b3IgdGhlIEdSRi4gVGhlc2UKPj4+IHJlZ2lzdGVycyBhcmUgd3JpdGUtbWFza2VkIC0gdGhlIHVw cGVyIDE2IGJpdHMgc2VsZWN0IHdoaWNoIG9mIHRoZQo+Pj4gbG93ZXIgMTYgYSB3cml0ZSBtYXkg Y2hhbmdlIC0gc28gdGhlcmUgaXMgbm90aGluZyB0byBwcmVzZXJ2ZSBhbmQgbm8KPj4+IHJlYXNv biB0byByZWFkIGZpcnN0LiBQYXNzaW5nIGEgRklFTERfUFJFUF9XTTE2KCkgdmFsdWUgYXMgYm90 aCB0aGUKPj4+IG1hc2sgYW5kIHRoZSB2YWx1ZSBvZiBhbiB1cGRhdGVfYml0cygpIGFwcGxpZXMg dGhlIG1hc2tpbmcgdHdpY2UgYW5kCj4+PiBvbmx5IHdvcmtzIGJ5IGFjY2lkZW50Lgo+Pj4KPj4+ IEJldHdlZW4gdGhlIHR3bywgbm90aGluZyBuZWVkcyBwcm9ncmFtbWluZyBhdCBwcm9iZSBhdCBh bGw6IHRoZSBHUkYgaXMKPj4+IHdyaXR0ZW4gZW50aXJlbHkgZnJvbSB0aGUgZW5hYmxlIHBhdGgs IHNvIHB4MzBfbHZkc19wcm9iZSgpIGlzIGxlZnQKPj4+IGFsb25lIHJhdGhlciB0aGFuIGJlaW5n IHJlZmFjdG9yZWQgaW50byBhIHNoYXJlZCBwaHkgaGVscGVyLgo+Pj4KPj4+IFsxXSBodHRwczov L2xvcmUua2VybmVsLm9yZy9hbGwvMjAyMzAxMTkxODQ4MDcuMTcxMTMyLTEtYTFiYS5vbWFyb3ZA Z21haWwuY29tLwo+Pj4KPj4+IENvLWRldmVsb3BlZC1ieTogQWxpYmVrIE9tYXJvdiA8YTFiYS5v bWFyb3ZAZ21haWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogQWxpYmVrIE9tYXJvdiA8YTFiYS5v bWFyb3ZAZ21haWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogUm9rIE1hcmtvdmljIDxyb2tAa2Fu YXJkaWEuZXU+Cj4+PiBBc3Npc3RlZC1ieTogQ2xhdWRlOmNsYXVkZS1vcHVzLTQtOAo+Pj4gLS0t Cj4+PiDCoGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMgfCAxNjEgKysr KysrKysrKysrKysrKysrKysrKysKPj4+IMKgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2x2ZHMuaCB8wqAgMTAgKysKPj4+IMKgMiBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9u cygrKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMuYwo+Pj4g aW5kZXggOTVmYTBhOS4uZjQ1ZDA0YSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9sdmRzLmMKPj4+IEBAIC00MzUsNiArNDM1LDEzMyBAQCBzdGF0aWMgdm9pZCBw eDMwX2x2ZHNfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPj4+ IMKgwqDCoMKgIGRybV9wYW5lbF91bnByZXBhcmUobHZkcy0+cGFuZWwpOwo+Pj4gwqB9Cj4+Pgo+ Pj4gK3N0YXRpYyBpbnQgcmszNTY4X2x2ZHNfcG93ZXJvbihzdHJ1Y3Qgcm9ja2NoaXBfbHZkcyAq bHZkcykKPj4+ICt7Cj4+PiArwqDCoMKgIGludCByZXQ7Cj4+PiArCj4+PiArwqDCoMKgIHJldCA9 IGNsa19lbmFibGUobHZkcy0+cGNsayk7Cj4+PiArwqDCoMKgIGlmIChyZXQgPCAwKSB7Cj4+PiAr wqDCoMKgwqDCoMKgwqAgRFJNX0RFVl9FUlJPUihsdmRzLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxl IGx2ZHMgcGNsayAlZFxuIiwgcmV0KTsKPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+ Pj4gK8KgwqDCoCB9Cj4+PiArCj4+PiArwqDCoMKgIHJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMo bHZkcy0+ZGV2KTsKPj4+ICvCoMKgwqAgaWYgKHJldCA8IDApIHsKPj4+ICvCoMKgwqDCoMKgwqDC oCBEUk1fREVWX0VSUk9SKGx2ZHMtPmRldiwgImZhaWxlZCB0byBnZXQgcG0gcnVudGltZTogJWRc biIsIHJldCk7Cj4+PiArwqDCoMKgwqDCoMKgwqAgY2xrX2Rpc2FibGUobHZkcy0+cGNsayk7Cj4+ PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+ICvCoMKgwqAgfQo+Pj4gKwo+Pj4gK8Kg wqDCoCAvKgo+Pj4gK8KgwqDCoMKgICogRW5hYmxlIExWRFMgbW9kZSBhbmQgdGhlIHBhcmFsbGVs LXRvLXNlcmlhbCBjb252ZXJ0ZXIuIFRoZXNlIGFyZQo+Pj4gK8KgwqDCoMKgICogd3JpdGUtbWFz a2VkIHJlZ2lzdGVycywgc28gYSBwbGFpbiB3cml0ZSBvbmx5IHRvdWNoZXMgdGhlIGJpdHMgbmFt ZWQKPj4+ICvCoMKgwqDCoCAqIGhlcmU7IHRoZXJlIGlzIG5vdGhpbmcgdG8gcHJlc2VydmUgYW5k IG5vIG5lZWQgdG8gcmVhZCBmaXJzdC4KPj4+ICvCoMKgwqDCoCAqLwo+Pgo+PiBJIHRoaW5rIHRo aXMgY29tbWVudCBpcyByZWR1bmRhbnQuIFdlIGFsbCBrbm93IHRoaXMgaXMgYSBjb21tb24gZGVz aWduCj4+IG9uIFJvY2tjaGlwIHBsYXRmb3JtLCByaWdodD8gOikKPj4KPiAKPiBEb25lCj4gCj4+ PiArwqDCoMKgIHJldHVybiByZWdtYXBfd3JpdGUobHZkcy0+Z3JmLCBSSzM1NjhfR1JGX1ZPX0NP TjIsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFJLMzU2OF9MVkRTMF9NT0RF X0VOKDEpIHwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUkszNTY4X0xWRFMw X1AyU19FTigxKSk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyB2b2lkIHJrMzU2OF9sdmRzX3Bv d2Vyb2ZmKHN0cnVjdCByb2NrY2hpcF9sdmRzICpsdmRzKQo+Pj4gK3sKPj4+ICvCoMKgwqAgcmVn bWFwX3dyaXRlKGx2ZHMtPmdyZiwgUkszNTY4X0dSRl9WT19DT04yLAo+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBSSzM1NjhfTFZEUzBfTU9ERV9FTigwKSB8IFJLMzU2OF9MVkRTMF9QMlNf RU4oMCkpOwo+Pj4gKwo+Pj4gK8KgwqDCoCBwbV9ydW50aW1lX3B1dChsdmRzLT5kZXYpOwo+Pj4g K8KgwqDCoCBjbGtfZGlzYWJsZShsdmRzLT5wY2xrKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGlj IGludCByazM1NjhfbHZkc19ncmZfY29uZmlnKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwK Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlKQo+Pj4gK3sKPj4+ICvCoMKgwqAgc3RydWN0IHJvY2tjaGlwX2x2ZHMgKmx2 ZHMgPSBlbmNvZGVyX3RvX2x2ZHMoZW5jb2Rlcik7Cj4+PiArwqDCoMKgIHN0cnVjdCByb2NrY2hp cF9jcnRjX3N0YXRlICpzID0KPj4+ICvCoMKgwqDCoMKgwqDCoCB0b19yb2NrY2hpcF9jcnRjX3N0 YXRlKGVuY29kZXItPmNydGMtPnN0YXRlKTsKPj4+ICvCoMKgwqAgYm9vbCBuZWdlZGdlID0gISEo cy0+YnVzX2ZsYWdzICYgRFJNX0JVU19GTEFHX1BJWERBVEFfRFJJVkVfTkVHRURHRSk7Cj4+PiAr Cj4+PiArwqDCoMKgIGlmIChsdmRzLT5vdXRwdXQgIT0gRElTUExBWV9PVVRQVVRfTFZEUykgewo+ Pj4gK8KgwqDCoMKgwqDCoMKgIERSTV9ERVZfRVJST1IobHZkcy0+ZGV2LCAiVW5zdXBwb3J0ZWQg ZGlzcGxheSBvdXRwdXQgJWRcbiIsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBsdmRzLT5vdXRwdXQpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+ Pj4gK8KgwqDCoCB9Cj4+PiArCj4+PiArwqDCoMKgIC8qCj4+PiArwqDCoMKgwqAgKiBUaGUgTFZE UyBibG9jayBoYXMgaXRzIG93biBkY2xrIGludmVyc2lvbiBzZWxlY3QsIHNlcGFyYXRlIGZyb20g dGhlCj4+PiArwqDCoMKgwqAgKiBWT1AncyBwaW4gcG9sYXJpdHkuIEJvdGggaGF2ZSB0byBhZ3Jl ZSB3aXRoIHdoYXQgdGhlIHBhbmVsIHNhbXBsZXMgb24uCj4+PiArwqDCoMKgwqAgKi8KPj4+ICvC oMKgwqAgcmVnbWFwX3dyaXRlKGx2ZHMtPmdyZiwgUkszNTY4X0dSRl9WT19DT04yLAo+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSSzM1NjhfTFZEUzBfRENMS19JTlZfU0VMKG5lZ2VkZ2Up KTsKPj4+ICsKPj4+ICvCoMKgwqAgLyogU2V0IGZvcm1hdCAqLwo+Pj4gK8KgwqDCoCByZXR1cm4g cmVnbWFwX3dyaXRlKGx2ZHMtPmdyZiwgUkszNTY4X0dSRl9WT19DT04wLAo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSSzM1NjhfTFZEUzBfU0VMRUNUKGx2ZHMtPmZvcm1hdCkg fAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSSzM1NjhfTFZEUzBfTVNCU0VM KDEpKTsKPj4+ICt9Cj4+Cj4+IEkgdGhpbmsgcmszNTY4X2x2ZHNfcG93ZXJvbigpIGFuZCByazM1 NjhfbHZkc19ncmZfY29uZmlnKCkgY2FuIGJlIG1lcmdlZAo+PiB0byByZWR1Y2UgZXh0cmEgcmVn aXN0ZXIgb3BlcmF0aW9ucy4KPiAKPiBEb25lCj4gCj4+PiArCj4+PiArc3RhdGljIHZvaWQgcmsz NTY4X2x2ZHNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+Pj4g K3sKPj4+ICvCoMKgwqAgc3RydWN0IHJvY2tjaGlwX2x2ZHMgKmx2ZHMgPSBlbmNvZGVyX3RvX2x2 ZHMoZW5jb2Rlcik7Cj4+PiArwqDCoMKgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0g JmVuY29kZXItPmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+Pj4gK8KgwqDCoCBpbnQgcmV0 Owo+Pj4gKwo+Pj4gK8KgwqDCoCBkcm1fcGFuZWxfcHJlcGFyZShsdmRzLT5wYW5lbCk7Cj4+PiAr Cj4+PiArwqDCoMKgIHJldCA9IHJrMzU2OF9sdmRzX3Bvd2Vyb24obHZkcyk7Cj4+PiArwqDCoMKg IGlmIChyZXQpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCBEUk1fREVWX0VSUk9SKGx2ZHMtPmRldiwg ImZhaWxlZCB0byBwb3dlciBvbiBMVkRTOiAlZFxuIiwgcmV0KTsKPj4+ICvCoMKgwqDCoMKgwqDC oCBkcm1fcGFuZWxfdW5wcmVwYXJlKGx2ZHMtPnBhbmVsKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBy ZXR1cm47Cj4+PiArwqDCoMKgIH0KPj4+ICsKPj4+ICvCoMKgwqAgcmV0ID0gcmszNTY4X2x2ZHNf Z3JmX2NvbmZpZyhlbmNvZGVyLCBtb2RlKTsKPj4+ICvCoMKgwqAgaWYgKHJldCkgewo+Pj4gK8Kg wqDCoMKgwqDCoMKgIERSTV9ERVZfRVJST1IobHZkcy0+ZGV2LCAiZmFpbGVkIHRvIGNvbmZpZ3Vy ZSBMVkRTOiAlZFxuIiwgcmV0KTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBkcm1fcGFuZWxfdW5wcmVw YXJlKGx2ZHMtPnBhbmVsKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+PiArwqDCoMKg IH0KPj4+ICsKPj4+ICvCoMKgwqAgLyoKPj4+ICvCoMKgwqDCoCAqIE9ubHkgbm93IGJyaW5nIHRo ZSBELVBIWSB1cC4gcGh5X3Bvd2VyX29uKCkgcnVucyB0aGUgd2hvbGUKPj4+ICvCoMKgwqDCoCAq IGlubm9fZHNpZHBoeV9sdmRzX21vZGVfZW5hYmxlKCkgc2VxdWVuY2UgLSBQTEwgYW5kIGJhbmRn YXAgcG93ZXItb24sCj4+PiArwqDCoMKgwqAgKiBhIHNldHRsZSwgUExMIG1vZGUgc2VsZWN0LCB0 aGVuIGEgcmVzZXQgcHVsc2Ugb2YgdGhlIHNlcmlhbGl6ZXIgYW5kCj4+PiArwqDCoMKgwqAgKiB0 aGUgbGFuZSBlbmFibGVzLiBBbGwgb2YgdGhhdCBoYXMgdG8gaGFwcGVuIHdpdGggdGhlIGJsb2Nr IGFscmVhZHkKPj4+ICvCoMKgwqDCoCAqIHN3aXRjaGVkIHRvIExWRFMgbW9kZSBpbiB0aGUgR1JG IChhYm92ZSkgYW5kIHdpdGggdGhlIFZPUCdzIGRjbGsKPj4+ICvCoMKgwqDCoCAqIHJ1bm5pbmcs IGJlY2F1c2UgdGhlIHNlcmlhbGl6ZXIgaXMgY2xvY2tlZCBmcm9tIGRjbGsgYW5kIGxhdGNoZXMg aXRzCj4+PiArwqDCoMKgwqAgKiBzdGF0ZSBvdXQgb2YgdGhhdCByZXNldC4KPj4+ICvCoMKgwqDC oCAqCj4+PiArwqDCoMKgwqAgKiBEb2luZyBpdCBhdCBwcm9iZSBpbnN0ZWFkIC0gYXMgdGhpcyBk cml2ZXIgdXNlZCB0byAtIHJlc2V0cyBhbmQKPj4+ICvCoMKgwqDCoCAqIGVuYWJsZXMgdGhlIHNl cmlhbGl6ZXIgYWdhaW5zdCBhIGJsb2NrIHRoYXQgaXMgbm90IGluIExWRFMgbW9kZSB5ZXQKPj4+ ICvCoMKgwqDCoCAqIGFuZCBoYXMgbm8gaW5wdXQgY2xvY2suIEV2ZXJ5IHJlZ2lzdGVyIHRoZW4g cmVhZHMgYmFjayBjb3JyZWN0IHdoaWxlCj4+PiArwqDCoMKgwqAgKiB0aGUgbGFuZXMgc2l0IGF0 IGNvbW1vbiBtb2RlIGZvcmV2ZXIuIFJvY2tjaGlwJ3MgQlNQIG9yZGVycyBpdCB0aGlzCj4+PiAr wqDCoMKgwqAgKiB3YXkgKEdSRiB3cml0ZXMsIHRoZW4gcGh5X3NldF9tb2RlICsgcGh5X3Bvd2Vy X29uKS4KPj4+ICvCoMKgwqDCoCAqLwo+Pgo+PiBJIHRoaW5rIHRoaXMgY29tbWVudCBpcyByZWR1 bmRhbnQuIFRoZXNlIGFyZSBpbnRlcm5hbCBkZXRhaWxzIG9mCj4+IHBoeV9zZXRfbW9kZSgpIGFu ZCBkb24ndCBuZWVkIHRvIGJlIGV4cGxhaW5lZCBoZXJlLiBBbHNvLCB0aGUKPj4gb3JkZXJpbmcg cmVxdWlyZW1lbnRzIGFyZSBxdWl0ZSBjb21tb24uIFlvdSBjYW4gZGVzY3JpYmUgdGhlbSBpbiB0 aGUKPj4gY29tbWl0IG1lc3NhZ2UuCj4+Cj4gCj4gRG9uZQo+IAo+Pj4gK8KgwqDCoCByZXQgPSBw aHlfc2V0X21vZGUobHZkcy0+ZHBoeSwgUEhZX01PREVfTFZEUyk7Cj4+PiArwqDCoMKgIGlmIChy ZXQpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCBEUk1fREVWX0VSUk9SKGx2ZHMtPmRldiwgImZhaWxl ZCB0byBzZXQgcGh5IG1vZGU6ICVkXG4iLCByZXQpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGRybV9w YW5lbF91bnByZXBhcmUobHZkcy0+cGFuZWwpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybjsK Pj4+ICvCoMKgwqAgfQo+Pj4gKwo+Pj4gK8KgwqDCoCByZXQgPSBwaHlfcG93ZXJfb24obHZkcy0+ ZHBoeSk7Cj4+PiArwqDCoMKgIGlmIChyZXQpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCBEUk1fREVW X0VSUk9SKGx2ZHMtPmRldiwgImZhaWxlZCB0byBwb3dlciBvbiBwaHk6ICVkXG4iLCByZXQpOwo+ Pj4gK8KgwqDCoMKgwqDCoMKgIGRybV9wYW5lbF91bnByZXBhcmUobHZkcy0+cGFuZWwpOwo+Pj4g K8KgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4+ICvCoMKgwqAgfQo+Pj4gKwo+Pj4gK8KgwqDCoCBk cm1fcGFuZWxfZW5hYmxlKGx2ZHMtPnBhbmVsKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIHZv aWQgcmszNTY4X2x2ZHNfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKPj4+ICt7Cj4+PiArwqDCoMKgIHN0cnVjdCByb2NrY2hpcF9sdmRzICpsdmRzID0gZW5jb2Rl cl90b19sdmRzKGVuY29kZXIpOwo+Pj4gKwo+Pj4gK8KgwqDCoCBkcm1fcGFuZWxfZGlzYWJsZShs dmRzLT5wYW5lbCk7Cj4+PiArwqDCoMKgIHBoeV9wb3dlcl9vZmYobHZkcy0+ZHBoeSk7Cj4+PiAr wqDCoMKgIHJrMzU2OF9sdmRzX3Bvd2Vyb2ZmKGx2ZHMpOwo+Pj4gK8KgwqDCoCBkcm1fcGFuZWxf dW5wcmVwYXJlKGx2ZHMtPnBhbmVsKTsKPj4+ICt9Cj4+PiArCj4+PiDCoHN0YXRpYyBjb25zdAo+ Pj4gwqBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIHJrMzI4OF9sdmRzX2VuY29kZXJf aGVscGVyX2Z1bmNzID0gewo+Pj4gwqDCoMKgwqAgLmVuYWJsZSA9IHJrMzI4OF9sdmRzX2VuY29k ZXJfZW5hYmxlLAo+Pj4gQEAgLTQ0OSw2ICs1NzYsMTMgQEAgc3RydWN0IGRybV9lbmNvZGVyX2hl bHBlcl9mdW5jcyBweDMwX2x2ZHNfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7Cj4+PiDCoMKgwqDC oCAuYXRvbWljX2NoZWNrID0gcm9ja2NoaXBfbHZkc19lbmNvZGVyX2F0b21pY19jaGVjaywKPj4+ IMKgfTsKPj4+Cj4+PiArc3RhdGljIGNvbnN0Cj4+PiArc3RydWN0IGRybV9lbmNvZGVyX2hlbHBl cl9mdW5jcyByazM1NjhfbHZkc19lbmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsKPj4+ICvCoMKgwqAg LmVuYWJsZSA9IHJrMzU2OF9sdmRzX2VuY29kZXJfZW5hYmxlLAo+Pj4gK8KgwqDCoCAuZGlzYWJs ZSA9IHJrMzU2OF9sdmRzX2VuY29kZXJfZGlzYWJsZSwKPj4+ICvCoMKgwqAgLmF0b21pY19jaGVj ayA9IHJvY2tjaGlwX2x2ZHNfZW5jb2Rlcl9hdG9taWNfY2hlY2ssCj4+PiArfTsKPj4+ICsKPj4+ IMKgc3RhdGljIGludCByazMyODhfbHZkc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2LAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgcm9ja2No aXBfbHZkcyAqbHZkcykKPj4+IMKgewo+Pj4gQEAgLTUxMiw2ICs2NDYsMjIgQEAgc3RhdGljIGlu dCBweDMwX2x2ZHNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPj4+IMKgwqDC oMKgIHJldHVybiBwaHlfcG93ZXJfb24obHZkcy0+ZHBoeSk7Cj4+PiDCoH0KPj4+Cj4+PiArc3Rh dGljIGludCByazM1NjhfbHZkc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCByb2NrY2hpcF9sdmRz ICpsdmRzKQo+Pj4gK3sKPj4+ICvCoMKgwqAgLyoKPj4+ICvCoMKgwqDCoCAqIEdyYWIgYW5kIGlu aXQgdGhlIHBoeSwgYnV0IGRvIE5PVCBwb3dlciBpdCBvbiBoZXJlIC0gdGhhdCBpcyBkb25lIGlu Cj4+PiArwqDCoMKgwqAgKiByazM1NjhfbHZkc19lbmNvZGVyX2VuYWJsZSgpIG9uY2UgdGhlIEdS RiBpcyBpbiBMVkRTIG1vZGUgYW5kIGRjbGsgaXMKPj4+ICvCoMKgwqDCoCAqIHJ1bm5pbmcuIFNl ZSB0aGUgY29tbWVudCB0aGVyZS4gVGhlIEdSRiBpcyBub3QgdG91Y2hlZCBhdCBwcm9iZQo+Pj4g K8KgwqDCoMKgICogZWl0aGVyOiBldmVyeSBiaXQgb2YgaXQgaXMgcHJvZ3JhbW1lZCBmcm9tIHRo ZSBlbmFibGUgcGF0aC4KPj4+ICvCoMKgwqDCoCAqLwo+Pgo+PiBQbGVhc2Ugc2VlIHRoZSBjb21t ZW50cyBhYm92ZS4KPiAKPiBEb25lCj4gCj4+Cj4+PiArwqDCoMKgIGx2ZHMtPmRwaHkgPSBkZXZt X3BoeV9nZXQoJnBkZXYtPmRldiwgImRwaHkiKTsKPj4+ICvCoMKgwqAgaWYgKElTX0VSUihsdmRz LT5kcGh5KSkKPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gUFRSX0VSUihsdmRzLT5kcGh5KTsK Pj4+ICsKPj4+ICvCoMKgwqAgcmV0dXJuIHBoeV9pbml0KGx2ZHMtPmRwaHkpOwo+Pj4gK30KPj4+ ICsKPj4+IMKgc3RhdGljIGNvbnN0IHN0cnVjdCByb2NrY2hpcF9sdmRzX3NvY19kYXRhIHJrMzI4 OF9sdmRzX2RhdGEgPSB7Cj4+PiDCoMKgwqDCoCAucHJvYmUgPSByazMyODhfbHZkc19wcm9iZSwK Pj4+IMKgwqDCoMKgIC5oZWxwZXJfZnVuY3MgPSAmcmszMjg4X2x2ZHNfZW5jb2Rlcl9oZWxwZXJf ZnVuY3MsCj4+PiBAQCAtNTIyLDYgKzY3MiwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJvY2tj aGlwX2x2ZHNfc29jX2RhdGEgcHgzMF9sdmRzX2RhdGEgPSB7Cj4+PiDCoMKgwqDCoCAuaGVscGVy X2Z1bmNzID0gJnB4MzBfbHZkc19lbmNvZGVyX2hlbHBlcl9mdW5jcywKPj4+IMKgfTsKPj4+Cj4+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCByb2NrY2hpcF9sdmRzX3NvY19kYXRhIHJrMzU2OF9sdmRz X2RhdGEgPSB7Cj4+PiArwqDCoMKgIC5wcm9iZSA9IHJrMzU2OF9sdmRzX3Byb2JlLAo+Pj4gK8Kg wqDCoCAuaGVscGVyX2Z1bmNzID0gJnJrMzU2OF9sdmRzX2VuY29kZXJfaGVscGVyX2Z1bmNzLAo+ Pj4gK307Cj4+PiArCj4+PiDCoHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJvY2tj aGlwX2x2ZHNfZHRfaWRzW10gPSB7Cj4+PiDCoMKgwqDCoCB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKg IC5jb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzI4OC1sdmRzIiwKPj4+IEBAIC01MzEsNiArNjg2 LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJvY2tjaGlwX2x2ZHNfZHRf aWRzW10gPSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIC5jb21wYXRpYmxlID0gInJvY2tjaGlwLHB4 MzAtbHZkcyIsCj4+PiDCoMKgwqDCoMKgwqDCoMKgIC5kYXRhID0gJnB4MzBfbHZkc19kYXRhCj4+ PiDCoMKgwqDCoCB9LAo+Pj4gK8KgwqDCoCB7Cj4+PiArwqDCoMKgwqDCoMKgwqAgLmNvbXBhdGli bGUgPSAicm9ja2NoaXAscmszNTY4LWx2ZHMiLAo+Pj4gK8KgwqDCoMKgwqDCoMKgIC5kYXRhID0g JnJrMzU2OF9sdmRzX2RhdGEKPj4+ICvCoMKgwqAgfSwKPj4+IMKgwqDCoMKgIHt9Cj4+PiDCoH07 Cj4+PiDCoE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJvY2tjaGlwX2x2ZHNfZHRfaWRzKTsKPj4+ IEBAIC02MDEsNiArNzYwLDggQEAgc3RhdGljIGludCByb2NrY2hpcF9sdmRzX2JpbmQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4+PiDCoMKgwqDCoCBlbmNvZGVy ID0gJmx2ZHMtPmVuY29kZXIuZW5jb2RlcjsKPj4+IMKgwqDCoMKgIGVuY29kZXItPnBvc3NpYmxl X2NydGNzID0gZHJtX29mX2ZpbmRfcG9zc2libGVfY3J0Y3MoZHJtX2RldiwKPj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBkZXYtPm9mX25vZGUpOwo+Pj4gK8KgwqDCoCByb2NrY2hpcF9kcm1fZW5jb2Rlcl9zZXRfY3J0 Y19lbmRwb2ludF9pZCgmbHZkcy0+ZW5jb2RlciwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXYtPm9mX25vZGUsIDAsIDApOwo+Pj4KPj4+ IMKgwqDCoMKgIHJldCA9IGRybV9zaW1wbGVfZW5jb2Rlcl9pbml0KGRybV9kZXYsIGVuY29kZXIs IERSTV9NT0RFX0VOQ09ERVJfTFZEUyk7Cj4+PiDCoMKgwqDCoCBpZiAocmV0IDwgMCkgewo+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmggYi9k cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfbHZkcy5oCj4+PiBpbmRleCAyZDkyNDQ3 Li45M2QzNDE1IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2x2ZHMuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2 ZHMuaAo+Pj4gQEAgLTEyMSw0ICsxMjEsMTQgQEAKPj4+IMKgI2RlZmluZcKgwqAgUFgzMF9MVkRT X1AyU19FTih2YWwpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBGSUVMRF9QUkVQX1dNMTYoQklUKDYp LCAodmFsKSkKPj4+IMKgI2RlZmluZcKgwqAgUFgzMF9MVkRTX1ZPUF9TRUwodmFsKcKgwqDCoMKg wqDCoMKgIEZJRUxEX1BSRVBfV00xNihCSVQoMSksICh2YWwpKQo+Pj4KPj4+ICsjZGVmaW5lIFJL MzU2OF9HUkZfVk9fQ09OMMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgwMzYwCj4+PiArI2RlZmlu ZcKgwqAgUkszNTY4X0xWRFMwX1NFTEVDVCh2YWwpwqDCoMKgwqDCoMKgwqAgRklFTERfUFJFUF9X TTE2KEdFTk1BU0soNSwgNCksICh2YWwpKQo+Pj4gKyNkZWZpbmXCoMKgIFJLMzU2OF9MVkRTMF9N U0JTRUwodmFsKcKgwqDCoMKgwqDCoMKgIEZJRUxEX1BSRVBfV00xNihCSVQoMyksICh2YWwpKQo+ Pj4gKwo+Pj4gKyNkZWZpbmUgUkszNTY4X0dSRl9WT19DT04ywqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAweDAzNjgKPj4+ICsjZGVmaW5lwqDCoCBSSzM1NjhfTFZEUzBfRENMS19JTlZfU0VMKHZhbCnC oMKgwqAgRklFTERfUFJFUF9XTTE2KEJJVCg5KSwgKHZhbCkpCj4+PiArI2RlZmluZcKgwqAgUksz NTY4X0xWRFMwX0RDTEtfRElWMl9TRUwodmFsKcKgwqDCoCBGSUVMRF9QUkVQX1dNMTYoQklUKDgp LCAodmFsKSkKPj4+ICsjZGVmaW5lwqDCoCBSSzM1NjhfTFZEUzBfTU9ERV9FTih2YWwpwqDCoMKg wqDCoMKgwqAgRklFTERfUFJFUF9XTTE2KEJJVCgxKSwgKHZhbCkpCj4+PiArI2RlZmluZcKgwqAg UkszNTY4X0xWRFMwX1AyU19FTih2YWwpwqDCoMKgwqDCoMKgwqAgRklFTERfUFJFUF9XTTE2KEJJ VCgwKSwgKHZhbCkpCj4+PiArCj4+PiDCoCNlbmRpZiAvKiBfUk9DS0NISVBfTFZEU18gKi8KPiAK PiAKCi0tIApCZXN0LCAKQ2hhb3lpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlw QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1yb2NrY2hpcAo=