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 60154C4332F for ; Tue, 8 Nov 2022 22:17:53 +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:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:References:Cc:To: Subject:MIME-Version:Date:Message-ID:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FgXhSD8+adZ+jCluDIEfRRsFjNKZdcIsgNgm3KSdtsY=; b=DVzH8Ip737OKKT Yn0Wpmv9REWhR7WU2Fi7InjehqG/xbmrQGGHpbiVWXgy5MTwwukImuWjyo6HSNxtLkQaMgeIUZW/Q yQt5E5DxkRyEd+XQZ4PpzsBLDyunGLKjanuApiDF79EdmaIYUFLdlxPjnTHjiR9gNsryMpFR2Ouv1 0rO0EsdfOvvLp0sd73LAwnyZLsOMjchTiTPy6SVWbmVpO7csEUenWyDLwak11kNaWELieaPv76b5/ N9goaxXZ3oV9D62UivLoV/hqCEGRCuqhBf1vZzNcyC6omjW9p5vF4sdKnQJeMaCcTU7q272ws0Een osiOz9mlPsPMS9Gfmx2w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1osWtV-008i7U-1V; Tue, 08 Nov 2022 22:16:33 +0000 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1osWtR-008i6t-42 for linux-arm-kernel@lists.infradead.org; Tue, 08 Nov 2022 22:16:31 +0000 Received: by mail-lf1-x132.google.com with SMTP id g12so23128869lfh.3 for ; Tue, 08 Nov 2022 14:16:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:references:cc:to :content-language:subject:reply-to:user-agent:mime-version:date :message-id:from:from:to:cc:subject:date:message-id:reply-to; bh=NtwsQ3gidzESt2kFCVdtlss3L/VOyObE+9Zu1FVQJqM=; b=fVzvtBWNhshjyjYovUQGIibF6vUrBH2VbFfqJ7T4w9NyZBksRCcnhbaL4M5QsfpdwQ YJegQc8gUgGQy6xj8MJuf7+OQOVD5MWKKAyOS8lrJjp5DUmAgQmddWHIskkpu/BzZKQq 1rv9bopMI6VmlMz2/C+oGWw8CroX5j7ZX7xD4K2/HF3yve7KYFO4a9AB6sN+N2TQ5Cym lGmtcgYS0dYxEFtQV/GcxW+1UNNw+9uNwYv2ZFatbmv+Z38JE6WS8bZ3oqUTE/ad7Odq utuxkE57gnrnFQjHiUgZpzRLrfJm3wAU+QRbuNz9HCz69LTpnlQO8pIlX9I+DtQpDSu/ 2vaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:references:cc:to :content-language:subject:reply-to:user-agent:mime-version:date :message-id:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NtwsQ3gidzESt2kFCVdtlss3L/VOyObE+9Zu1FVQJqM=; b=skE9mCOAQyx6cym8r51AmUNCui0Gx557Uv5HM8QQEfBRKklr7FbVH5cIdv57xrwJrq XpbsGta41Fsq3wl0UaT1s6ujEQ2ifS/K+r+VuMWiLsR/meLWPVo4Muzb7Pq+od7VLfk0 gO00J6sk5JXR2CJtB4bq0FHPYSPp9Jgsensz93J0ntoqWXNqPWY1X6h8Tjt02WweYqZu LeDr28IlqC/xId0ZYZsMiBnbB2uMrsmuAjzDd7F3A2EK6dfIxCPb1dds8c7ravGEomeg FwG1YeOlbxWtX7yidBDSkUGuz+9xAyDj/Gra1pGYqQ0/k7IiPJFpM4G/0HXGZnI95xyJ Lrhg== X-Gm-Message-State: ACrzQf32ImVAEBBYVlD6D86R5ZWxqtvgNdeAB8oelKi7N83v3ADpDjkP d90acm3kTfJSrRSeP8/Aw5o= X-Google-Smtp-Source: AMsMyM77qvcMxyrwPALZwxY+K2q6Edks3WL4j3/Qml+1dYBrXETAkECQR7yCMrLsx34kG+eukvfSFA== X-Received: by 2002:a05:6512:224d:b0:4a2:7710:9b8b with SMTP id i13-20020a056512224d00b004a277109b8bmr18805622lfu.128.1667945786604; Tue, 08 Nov 2022 14:16:26 -0800 (PST) Received: from ?IPV6:2a02:a31a:a240:1700:c55e:6e7d:cf12:d8b7? ([2a02:a31a:a240:1700:c55e:6e7d:cf12:d8b7]) by smtp.googlemail.com with ESMTPSA id a14-20020a056512200e00b004979ec19387sm1938366lfb.305.2022.11.08.14.16.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Nov 2022 14:16:25 -0800 (PST) From: Mateusz Kwiatkowski X-Google-Original-From: Mateusz Kwiatkowski Message-ID: <137895ef-b2c4-6e10-e245-125745b882bc@gmail.com> Date: Tue, 8 Nov 2022 23:16:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [Nouveau] [PATCH v7 22/23] drm/vc4: vec: Add support for more analog TV standards Content-Language: pl To: Lukas Satin , Maxime Ripard Cc: Jani Nikula , Joonas Lahtinen , Tvrtko Ursulin , Ben Skeggs , Rodrigo Vivi , Maxime Ripard , Samuel Holland , Jernej Skrabec , Maarten Lankhorst , Emma Anholt , Karol Herbst , Daniel Vetter , Chen-Yu Tsai , Lyude Paul , Thomas Zimmermann , David Airlie , Dom Cobley , nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Phil Elwell , Hans de Goede , =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , Geert Uytterhoeven , linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org References: <20220728-rpi-analog-tv-properties-v7-0-7072a478c6b3@cerno.tech> <20220728-rpi-analog-tv-properties-v7-22-7072a478c6b3@cerno.tech> In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221108_141629_193617_E32FB643 X-CRM114-Status: GOOD ( 44.29 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: kfyatek+publicgit@gmail.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTHVrYXMsIE1heGltZSBhbmQgZXZlcnlvbmUsCgpXIGRuaXUgOC4xMS4yMDIyIG8gMTQ6MTcs IEx1a2FzIFNhdGluIHBpc3plOgo+IFRoZXkgYXJlIGltcG9ydGFudCBmb3IgcmV0cm9nYW1pbmcg YW5kIGNvbm5lY3RpbmcgVFYgb3V0IHRvIENSVCBUViBvciB1c2luZwo+IGVtdWxhdG9yLgo+Cj4g SSBoYXZlIFBTMSB0aGF0IGlzIHVzaW5nIFBBTC02MCBmb3IgZXhhbXBsZS4KPgo+IENhbiB5b3Ug YWRkIDI0MHAgYW5kIDI4OHAgbm9uLWludGVybGFjZWQgbW9kZXMgZm9yIE5UU0MgYW5kIFBBTCwg cGxlYXNlPwoKVG8gYWRkIHByb2dyZXNzaXZlIG1vZGUgc3VwcG9ydCwgYXQgbGVhc3QgZm9yIHRo ZSBWQzQvVkVDIGRldmljZSB0aGF0J3MgdXNlZApvbiB0aGUgUmFzcGJlcnJ5IFBpLCBhbGwgdGhh dCdzIG5lY2Vzc2FyeSBpcyBhIHBhdGNoIGxpa2U6CgotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF92ZWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92ZWMuYwpAQCAtNjIzLDcg KzYyMyw5IEBAIHN0YXRpYyB2b2lkIHZjNF92ZWNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAogCVZFQ19XUklURShWRUNfQ0xNUDBfU1RBUlQsIDB4YWMpOwogCVZF Q19XUklURShWRUNfQ0xNUDBfRU5ELCAweGVjKTsKIAlWRUNfV1JJVEUoVkVDX0NPTkZJRzIsCi0J CSAgVkVDX0NPTkZJRzJfVVZfRElHX0RJUyB8IFZFQ19DT05GSUcyX1JHQl9ESUdfRElTKTsKKwkJ ICBWRUNfQ09ORklHMl9VVl9ESUdfRElTIHwKKwkJICBWRUNfQ09ORklHMl9SR0JfRElHX0RJUyB8 CisJCSAgKChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSA/ IDAgOiBWRUNfQ09ORklHMl9QUk9HX1NDQU4pKTsKIAlWRUNfV1JJVEUoVkVDX0NPTkZJRzMsIFZF Q19DT05GSUczX0hPUklaX0xFTl9TVEQpOwogCVZFQ19XUklURShWRUNfREFDX0NPTkZJRywgdmVj LT52YXJpYW50LT5kYWNfY29uZmlnKTsKIAoKYW5kIHRoZW4geW91IGNhbiBqdXN0IGFkZCBjdXN0 b20gbW9kZXMsIGZvciBleGFtcGxlIHdpdGhpbiBYb3JnOgoKeHJhbmRyIC0tbmV3bW9kZSA3MjB4 MjQwIDEzLjUgNzIwIDczNiA4MDAgODU4IDI0MCAyNDMgMjQ2IDI2Mgp4cmFuZHIgLS1uZXdtb2Rl IDcyMHgyODggMTMuNSA3MjAgNzQwIDgwNCA4NjQgMjg4IDI5MCAyOTMgMzEyCgpOb3RlIHRoYXQg dGhlIHBpeGVsIGFzcGVjdCByYXRpbyB3aWxsIGJlIGFsbCBvdmVyIHRoZSBwbGFjZSAtIHVuZm9y dHVuYXRlbHkgdGhpcwppcyBuZWNlc3NhcnkgYXQgdGhlIGRyaXZlciBsZXZlbCwgYmVjYXVzZSBW QzQncyBWRUMgZG9lcyBub3Qgc3VwcG9ydCBwaXhlbApjbG9ja3Mgb3RoZXIgdGhhbiAxMy41IE1I ei4gSG93ZXZlciwgeW91IGNhbiBmaXggaXQgYnkgcnVubmluZyBzb21ldGhpbmcgbGlrZQoieHJh bmRyIC0tc2NhbGUtZnJvbSAzMjB4MjQwIiBvciAieHJhbmRyIC0tc2NhbGUtZnJvbSAzODR4Mjg4 Ii4gT3RoZXIgKG5vbi1YKQphcHBsaWNhdGlvbnMgd291bGQgbmVlZCB0byBiZSBhZGFwdGVkIHRv IHNpbWlsYXJseSBjb25maWd1cmUgRFJNIHNjYWxpbmcuCgpJJ20gbm90IHN1cmUgaWYgTWF4aW1l IHdhbnRzIHRvIGludHJvZHVjZSBhbnkgbW9yZSBjb2RlIGxpa2UgdGhlIHBhdGNoIGFib3ZlIHRv CmZhY2lsaXRhdGUgcHJvZ3Jlc3NpdmUgc2NhbiBzdXBwb3J0LCB0aG91Z2ggKEBNYXhpbWU6IGZl ZWwgZnJlZSB0byBncmFiIHRoZSBjb2RlCmZyb20gYWJvdmUgb3IgYW55dGhpbmcgZWxzZSBmcm9t IGh0dHBzOi8vZ2l0aHViLmNvbS9yYXNwYmVycnlwaS9saW51eC9wdWxsLzQ0MDYKaWYgeW91IGRv LCBob3dldmVyISkuIFdlIHRhbGtlZCByZWNlbnRseSB0aGF0IHRoZSBwcmlvcml0eSBpcyB0byBm aW5hbGx5IG1lcmdlCmV4aXN0aW5nIGZ1bmN0aW9uYWxpdHkgZmlyc3QsIHNlZSB0aGlzIG1lc3Nh Z2U6Cmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2RyaS1kZXZlbC8yMDIyMTAyNzExNTgyMi41dmQz ZnFsY3B5NGdmcTV2QGhvdWF0LwoKSSdtIHdpbGxpbmcgdG8gcG9zdCBhIGNvdXBsZSBvZiBmb2xs b3ctdXAgcGF0Y2hlcyB0byBpbXByb3ZlIHRoaW5ncyBsaWtlCnN1cHBvcnQgZm9yIHByb2dyZXNz aXZlIG1vZGVzIG9yIGV4b3RpYyBUViBub3JtcyAoc3VjaCBhcyBQQUwtTS01MCBvciBQQUwtTi02 MCkKd2l0aGluIHRoZSBWQzQgZHJpdmVyIG9uY2UgdGhpcyBwYXRjaHNldCBsYW5kcyAtIGJ1dCBJ IGFncmVlIHdpdGggTWF4aW1lJ3MgcG9pbnQKdG8gZm9jdXMgb24gbWVyZ2luZyBleGlzdGluZyBm dW5jdGlvbmFsaXR5IGZpcnN0LgoKPiBMdWthcwoKQmVzdCByZWdhcmRzLApNYXRldXN6IEt3aWF0 a293c2tpCgo+IE9uIE1vbiwgTm92IDcsIDIwMjIgYXQgMzoxOSBQTSBNYXhpbWUgUmlwYXJkIDxt YXhpbWVAY2Vybm8udGVjaD4gd3JvdGU6Cj4KPiAgICAgRnJvbTogTWF0ZXVzeiBLd2lhdGtvd3Nr aSA8a2Z5YXRlaytwdWJsaWNnaXRAZ21haWwuY29tPgo+Cj4gICAgIEFkZCBzdXBwb3J0IGZvciB0 aGUgZm9sbG93aW5nIGNvbXBvc2l0ZSBvdXRwdXQgbW9kZXMgKGFsbCBvZiB0aGVtIGFyZQo+ICAg ICBzb21ld2hhdCBtb3JlIG9ic2N1cmUgdGhhbiB0aGUgcHJldmlvdXNseSBkZWZpbmVkIG9uZXMp Ogo+Cj4gICAgIC0gTlRTQ180NDMgLSBOVFNDLXN0eWxlIHNpZ25hbCB3aXRoIHRoZSBjaHJvbWEg c3ViY2FycmllciBzaGlmdGVkIHRvCj4gICAgICAgNC40MzM2MTg3NSBNSHogKHRoZSBQQUwgc3Vi Y2FycmllciBmcmVxdWVuY3kpLiBOZXZlciB1c2VkIGZvcgo+ICAgICAgIGJyb2FkY2FzdGluZywg YnV0IHNvbWV0aW1lcyB1c2VkIGFzIGEgaGFjayB0byBwbGF5IE5UU0MgY29udGVudCBpbiBQQUwK PiAgICAgICByZWdpb25zIChlLmcuIG9uIFZDUnMpLgo+ICAgICAtIFBBTF9OIC0gUEFMIHdpdGgg YWx0ZXJuYXRpdmUgY2hyb21hIHN1YmNhcnJpZXIgZnJlcXVlbmN5LAo+ICAgICAgIDMuNTgyMDU2 MjUgTUh6LiBVc2VkIGFzIGEgYnJvYWRjYXN0IHN0YW5kYXJkIGluIEFyZ2VudGluYSwgUGFyYWd1 YXkKPiAgICAgICBhbmQgVXJ1Z3VheSB0byBmaXQgNTc2aTUwIHdpdGggY29sb3VyIGluIDYgTUh6 IGNoYW5uZWwgcmFzdGVyLgo+ICAgICAtIFBBTDYwIC0gNDgwaTYwIHNpZ25hbCB3aXRoIFBBTC1z dHlsZSBjb2xvciBhdCBub3JtYWwgRXVyb3BlYW4gUEFMCj4gICAgICAgZnJlcXVlbmN5LiBBbm90 aGVyIG5vbi1zdGFuZGFyZCwgbm9uLWJyb2FkY2FzdCBtb2RlLCB1c2VkIGluIHNpbWlsYXIKPiAg ICAgICBjb250ZXh0cyBhcyBOVFNDXzQ0My4gU29tZSBkaXNwbGF5cyBzdXBwb3J0IG9uZSBidXQg bm90IHRoZSBvdGhlci4KPiAgICAgLSBTRUNBTSAtIEZyZW5jaCBmcmVxdWVuY3ktbW9kdWxhdGVk IGFuYWxvZyBjb2xvciBzdGFuZGFyZDsgYWxzbyBoYXZlCj4gICAgICAgYmVlbiBicm9hZGNhc3Qg aW4gRWFzdGVybiBFdXJvcGUgYW5kIHZhcmlvdXMgcGFydHMgb2YgQWZyaWNhIGFuZCBBc2lhLgo+ ICAgICAgIFVzZXMgdGhlIHNhbWUgNTc2aTUwIHRpbWluZ3MgYXMgUEFMLgo+Cj4gICAgIEFsc28g YWRkZWQgc29tZSBjb21tZW50cyBleHBsYWluaW5nIGNvbG9yIHN1YmNhcnJpZXIgZnJlcXVlbmN5 Cj4gICAgIHJlZ2lzdGVycy4KPgo+ICAgICBBY2tlZC1ieTogTm9yYWxmIFRyw7hubmVzIDxub3Jh bGZAdHJvbm5lcy5vcmc+Cj4gICAgIFNpZ25lZC1vZmYtYnk6IE1hdGV1c3ogS3dpYXRrb3dza2kg PGtmeWF0ZWsrcHVibGljZ2l0QGdtYWlsLmNvbT4KPiAgICAgU2lnbmVkLW9mZi1ieTogTWF4aW1l IFJpcGFyZCA8bWF4aW1lQGNlcm5vLnRlY2g+Cj4KPiAgICAgLS0tCj4gICAgIENoYW5nZXMgaW4g djY6Cj4gICAgIC0gU3VwcG9ydCBQQUw2MCBhZ2Fpbgo+ICAgICAtLS0KPiAgICAgIGRyaXZlcnMv Z3B1L2RybS92YzQvdmM0X3ZlYy5jIHwgMTExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQo+ICAgICAgMSBmaWxlIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQo+Cj4gICAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3Zj NF92ZWMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3ZlYy5jCj4gICAgIGluZGV4IGE4Mjhm YzZmYjc3Ni4uZDIzZGJhZDNjYmY2IDEwMDY0NAo+ICAgICAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v dmM0L3ZjNF92ZWMuYwo+ICAgICArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92ZWMuYwo+ ICAgICBAQCAtNDYsNiArNDYsNyBAQAo+ICAgICAgI2RlZmluZSBWRUNfQ09ORklHMF9ZREVMKHgp ICAgICAgICAgICAgKCh4KSA8PCAyNikKPiAgICAgICNkZWZpbmUgVkVDX0NPTkZJRzBfQ0RFTF9N QVNLICAgICAgICAgIEdFTk1BU0soMjUsIDI0KQo+ICAgICAgI2RlZmluZSBWRUNfQ09ORklHMF9D REVMKHgpICAgICAgICAgICAgKCh4KSA8PCAyNCkKPiAgICAgKyNkZWZpbmUgVkVDX0NPTkZJRzBf U0VDQU1fU1REICAgICAgICAgIEJJVCgyMSkKPiAgICAgICNkZWZpbmUgVkVDX0NPTkZJRzBfUEJQ Ul9GSUwgICAgICAgICAgIEJJVCgxOCkKPiAgICAgICNkZWZpbmUgVkVDX0NPTkZJRzBfQ0hST01B X0dBSU5fTUFTSyAgIEdFTk1BU0soMTcsIDE2KQo+ICAgICAgI2RlZmluZSBWRUNfQ09ORklHMF9D SFJPTUFfR0FJTl9VTklUWSAgKDAgPDwgMTYpCj4gICAgIEBAIC03Niw2ICs3NywyNyBAQAo+ICAg ICAgI2RlZmluZSBWRUNfU09GVF9SRVNFVCAgICAgICAgICAgICAgICAgMHgxMGMKPiAgICAgICNk ZWZpbmUgVkVDX0NMTVAwX1NUQVJUICAgICAgICAgICAgICAgICAgICAgICAgMHgxNDQKPiAgICAg ICNkZWZpbmUgVkVDX0NMTVAwX0VORCAgICAgICAgICAgICAgICAgIDB4MTQ4Cj4gICAgICsKPiAg ICAgKy8qCj4gICAgICsgKiBUaGVzZSBzZXQgdGhlIGNvbG9yIHN1YmNhcnJpZXIgZnJlcXVlbmN5 Cj4gICAgICsgKiBpZiBWRUNfQ09ORklHMV9DVVNUT01fRlJFUSBpcyBlbmFibGVkLgo+ICAgICAr ICoKPiAgICAgKyAqIFZFQ19GUkVRMV8wIGNvbnRhaW5zIHRoZSBtb3N0IHNpZ25pZmljYW50IDE2 LWJpdCBoYWxmLXdvcmQsCj4gICAgICsgKiBWRUNfRlJFUTNfMiBjb250YWlucyB0aGUgbGVhc3Qg c2lnbmlmaWNhbnQgMTYtYml0IGhhbGYtd29yZC4KPiAgICAgKyAqIDB4ODAwMDAwMDAgc2VlbXMg dG8gYmUgZXF1aXZhbGVudCB0byB0aGUgcGl4ZWwgY2xvY2sKPiAgICAgKyAqICh3aGljaCBpdHNl bGYgaXMgdGhlIFZFQyBjbG9jayBkaXZpZGVkIGJ5IDgpLgo+ICAgICArICoKPiAgICAgKyAqIFJl ZmVyZW5jZSB2YWx1ZXMgKHdpdGggdGhlIGRlZmF1bHQgcGl4ZWwgY2xvY2sgb2YgMTMuNSBNSHop Ogo+ICAgICArICoKPiAgICAgKyAqIE5UU0MgICgzNTc5NTQ1Lls0NV0gSHopICAgICAtIDB4MjFG MDdDMUYKPiAgICAgKyAqIFBBTCAgICg0NDMzNjE4Ljc1IEh6KSAgICAgICAtIDB4MkEwOThBQ0IK PiAgICAgKyAqIFBBTC1NICgzNTc1NjExLls4ODgxMTFdIEh6KSAtIDB4MjFFNkVGRTMKPiAgICAg KyAqIFBBTC1OICgzNTgyMDU2LjI1IEh6KSAgICAgICAtIDB4MjFGNjk0NDYKPiAgICAgKyAqCj4g ICAgICsgKiBOT1RFOiBGb3IgU0VDQU0sIGl0IGlzIHVzZWQgYXMgdGhlIERyIGNlbnRlciBmcmVx dWVuY3ksCj4gICAgICsgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgVkVDX0NPTkZJRzFfQ1VTVE9N X0ZSRVEgaXMgZW5hYmxlZCBvciBub3Q7Cj4gICAgICsgKiB0aGF0IGlzIHNwZWNpZmllZCBhcyA0 NDA2MjUwIEh6LCB3aGljaCBjb3JyZXNwb25kcyB0byAweDI5QzcxQzcyLgo+ICAgICArICovCj4g ICAgICAjZGVmaW5lIFZFQ19GUkVRM18yICAgICAgICAgICAgICAgICAgICAweDE4MAo+ICAgICAg I2RlZmluZSBWRUNfRlJFUTFfMCAgICAgICAgICAgICAgICAgICAgMHgxODQKPgo+ICAgICBAQCAt MTE4LDYgKzE0MCwxNCBAQAo+Cj4gICAgICAjZGVmaW5lIFZFQ19JTlRFUlJVUFRfQ09OVFJPTCAg ICAgICAgICAweDE5MAo+ICAgICAgI2RlZmluZSBWRUNfSU5URVJSVVBUX1NUQVRVUyAgICAgICAg ICAgMHgxOTQKPiAgICAgKwo+ICAgICArLyoKPiAgICAgKyAqIERiIGNlbnRlciBmcmVxdWVuY3kg Zm9yIFNFQ0FNOyB0aGUgY2xvY2sgZm9yIHRoaXMgaXMgdGhlIHNhbWUgYXMgZm9yCj4gICAgICsg KiBWRUNfRlJFUTNfMi9WRUNfRlJFUTFfMCwgd2hpY2ggaXMgdXNlZCBmb3IgRHIgY2VudGVyIGZy ZXF1ZW5jeS4KPiAgICAgKyAqCj4gICAgICsgKiBUaGlzIGlzIHNwZWNpZmllZCBhcyA0MjUwMDAw IEh6LCB3aGljaCBjb3JyZXNwb25kcyB0byAweDI4NEJEQTEzLgo+ICAgICArICogVGhhdCBpcyBh bHNvIHRoZSBkZWZhdWx0IHZhbHVlLCBzbyBubyBuZWVkIHRvIHNldCBpdCBleHBsaWNpdGx5Lgo+ ICAgICArICovCj4gICAgICAjZGVmaW5lIFZFQ19GQ1dfU0VDQU1fQiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MTk4Cj4gICAgICAjZGVmaW5lIFZFQ19TRUNBTV9HQUlOX1ZBTCAgICAgICAgICAg ICAweDE5Ywo+Cj4gICAgIEBAIC0xOTcsMTAgKzIyNywxNSBAQCBlbnVtIHZjNF92ZWNfdHZfbW9k ZV9pZCB7Cj4gICAgICAgICAgICAgVkM0X1ZFQ19UVl9NT0RFX05UU0NfSiwKPiAgICAgICAgICAg ICBWQzRfVkVDX1RWX01PREVfUEFMLAo+ICAgICAgICAgICAgIFZDNF9WRUNfVFZfTU9ERV9QQUxf TSwKPiAgICAgKyAgICAgICBWQzRfVkVDX1RWX01PREVfTlRTQ180NDMsCj4gICAgICsgICAgICAg VkM0X1ZFQ19UVl9NT0RFX1BBTF82MCwKPiAgICAgKyAgICAgICBWQzRfVkVDX1RWX01PREVfUEFM X04sCj4gICAgICsgICAgICAgVkM0X1ZFQ19UVl9NT0RFX1NFQ0FNLAo+ICAgICAgfTsKPgo+ICAg ICAgc3RydWN0IHZjNF92ZWNfdHZfbW9kZSB7Cj4gICAgICAgICAgICAgdW5zaWduZWQgaW50IG1v ZGU7Cj4gICAgICsgICAgICAgdTE2IGV4cGVjdGVkX2h0b3RhbDsKPiAgICAgICAgICAgICB1MzIg Y29uZmlnMDsKPiAgICAgICAgICAgICB1MzIgY29uZmlnMTsKPiAgICAgICAgICAgICB1MzIgY3Vz dG9tX2ZyZXE7Cj4gICAgIEBAIC0yMzYsMzUgKzI3MSw2OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGRlYnVnZnNfcmVnMzIgdmVjX3JlZ3NbXSA9IHsKPiAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dmM0X3ZlY190dl9tb2RlIHZjNF92ZWNfdHZfbW9kZXNbXSA9IHsKPiAgICAgICAgICAgICB7Cj4g ICAgICAgICAgICAgICAgICAgICAubW9kZSA9IERSTV9NT0RFX1RWX01PREVfTlRTQywKPiAgICAg KyAgICAgICAgICAgICAgIC5leHBlY3RlZF9odG90YWwgPSA4NTgsCj4gICAgICAgICAgICAgICAg ICAgICAuY29uZmlnMCA9IFZFQ19DT05GSUcwX05UU0NfU1REIHwgVkVDX0NPTkZJRzBfUERFTiwK PiAgICAgICAgICAgICAgICAgICAgIC5jb25maWcxID0gVkVDX0NPTkZJRzFfQ19DVkJTX0NWQlMs Cj4gICAgICAgICAgICAgfSwKPiAgICAgKyAgICAgICB7Cj4gICAgICsgICAgICAgICAgICAgICAu bW9kZSA9IERSTV9NT0RFX1RWX01PREVfTlRTQ180NDMsCj4gICAgICsgICAgICAgICAgICAgICAu ZXhwZWN0ZWRfaHRvdGFsID0gODU4LAo+ICAgICArICAgICAgICAgICAgICAgLmNvbmZpZzAgPSBW RUNfQ09ORklHMF9OVFNDX1NURCwKPiAgICAgKyAgICAgICAgICAgICAgIC5jb25maWcxID0gVkVD X0NPTkZJRzFfQ19DVkJTX0NWQlMgfCBWRUNfQ09ORklHMV9DVVNUT01fRlJFUSwKPiAgICAgKyAg ICAgICAgICAgICAgIC5jdXN0b21fZnJlcSA9IDB4MmEwOThhY2IsCj4gICAgICsgICAgICAgfSwK PiAgICAgICAgICAgICB7Cj4gICAgICAgICAgICAgICAgICAgICAubW9kZSA9IERSTV9NT0RFX1RW X01PREVfTlRTQ19KLAo+ICAgICArICAgICAgICAgICAgICAgLmV4cGVjdGVkX2h0b3RhbCA9IDg1 OCwKPiAgICAgICAgICAgICAgICAgICAgIC5jb25maWcwID0gVkVDX0NPTkZJRzBfTlRTQ19TVEQs Cj4gICAgICAgICAgICAgICAgICAgICAuY29uZmlnMSA9IFZFQ19DT05GSUcxX0NfQ1ZCU19DVkJT LAo+ICAgICAgICAgICAgIH0sCj4gICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgICAg Lm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1BBTCwKPiAgICAgKyAgICAgICAgICAgICAgIC5leHBl Y3RlZF9odG90YWwgPSA4NjQsCj4gICAgICAgICAgICAgICAgICAgICAuY29uZmlnMCA9IFZFQ19D T05GSUcwX1BBTF9CREdISV9TVEQsCj4gICAgICAgICAgICAgICAgICAgICAuY29uZmlnMSA9IFZF Q19DT05GSUcxX0NfQ1ZCU19DVkJTLAo+ICAgICAgICAgICAgIH0sCj4gICAgICsgICAgICAgewo+ ICAgICArICAgICAgICAgICAgICAgLyogUEFMLTYwICovCj4gICAgICsgICAgICAgICAgICAgICAu bW9kZSA9IERSTV9NT0RFX1RWX01PREVfUEFMLAo+ICAgICArICAgICAgICAgICAgICAgLmV4cGVj dGVkX2h0b3RhbCA9IDg1OCwKPiAgICAgKyAgICAgICAgICAgICAgIC5jb25maWcwID0gVkVDX0NP TkZJRzBfUEFMX01fU1RELAo+ICAgICArICAgICAgICAgICAgICAgLmNvbmZpZzEgPSBWRUNfQ09O RklHMV9DX0NWQlNfQ1ZCUyB8IFZFQ19DT05GSUcxX0NVU1RPTV9GUkVRLAo+ICAgICArICAgICAg ICAgICAgICAgLmN1c3RvbV9mcmVxID0gMHgyYTA5OGFjYiwKPiAgICAgKyAgICAgICB9LAo+ICAg ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAgICAgIC5tb2RlID0gRFJNX01PREVfVFZfTU9E RV9QQUxfTSwKPiAgICAgKyAgICAgICAgICAgICAgIC5leHBlY3RlZF9odG90YWwgPSA4NTgsCj4g ICAgICAgICAgICAgICAgICAgICAuY29uZmlnMCA9IFZFQ19DT05GSUcwX1BBTF9NX1NURCwKPiAg ICAgICAgICAgICAgICAgICAgIC5jb25maWcxID0gVkVDX0NPTkZJRzFfQ19DVkJTX0NWQlMsCj4g ICAgICAgICAgICAgfSwKPiAgICAgKyAgICAgICB7Cj4gICAgICsgICAgICAgICAgICAgICAubW9k ZSA9IERSTV9NT0RFX1RWX01PREVfUEFMX04sCj4gICAgICsgICAgICAgICAgICAgICAuZXhwZWN0 ZWRfaHRvdGFsID0gODY0LAo+ICAgICArICAgICAgICAgICAgICAgLmNvbmZpZzAgPSBWRUNfQ09O RklHMF9QQUxfTl9TVEQsCj4gICAgICsgICAgICAgICAgICAgICAuY29uZmlnMSA9IFZFQ19DT05G SUcxX0NfQ1ZCU19DVkJTLAo+ICAgICArICAgICAgIH0sCj4gICAgICsgICAgICAgewo+ICAgICAr ICAgICAgICAgICAgICAgLm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1NFQ0FNLAo+ICAgICArICAg ICAgICAgICAgICAgLmV4cGVjdGVkX2h0b3RhbCA9IDg2NCwKPiAgICAgKyAgICAgICAgICAgICAg IC5jb25maWcwID0gVkVDX0NPTkZJRzBfU0VDQU1fU1RELAo+ICAgICArICAgICAgICAgICAgICAg LmNvbmZpZzEgPSBWRUNfQ09ORklHMV9DX0NWQlNfQ1ZCUywKPiAgICAgKyAgICAgICAgICAgICAg IC5jdXN0b21fZnJlcSA9IDB4MjljNzFjNzIsCj4gICAgICsgICAgICAgfSwKPiAgICAgIH07Cj4K PiAgICAgIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IHZjNF92ZWNfdHZfbW9kZSAqCj4gICAg IC12YzRfdmVjX3R2X21vZGVfbG9va3VwKHVuc2lnbmVkIGludCBtb2RlKQo+ICAgICArdmM0X3Zl Y190dl9tb2RlX2xvb2t1cCh1bnNpZ25lZCBpbnQgbW9kZSwgdTE2IGh0b3RhbCkKPiAgICAgIHsK PiAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaTsKPgo+ICAgICAgICAgICAgIGZvciAoaSA9IDA7 IGkgPCBBUlJBWV9TSVpFKHZjNF92ZWNfdHZfbW9kZXMpOyBpKyspIHsKPiAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHN0cnVjdCB2YzRfdmVjX3R2X21vZGUgKnR2X21vZGUgPSAmdmM0X3ZlY190 dl9tb2Rlc1tpXTsKPgo+ICAgICAtICAgICAgICAgICAgICAgaWYgKHR2X21vZGUtPm1vZGUgPT0g bW9kZSkKPiAgICAgKyAgICAgICAgICAgICAgIGlmICh0dl9tb2RlLT5tb2RlID09IG1vZGUgJiYK PiAgICAgKyAgICAgICAgICAgICAgICAgICB0dl9tb2RlLT5leHBlY3RlZF9odG90YWwgPT0gaHRv dGFsKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHZfbW9kZTsKPiAgICAg ICAgICAgICB9Cj4KPiAgICAgQEAgLTI3Myw5ICszNDEsMTMgQEAgdmM0X3ZlY190dl9tb2RlX2xv b2t1cCh1bnNpZ25lZCBpbnQgbW9kZSkKPgo+ICAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f cHJvcF9lbnVtX2xpc3QgbGVnYWN5X3R2X21vZGVfbmFtZXNbXSA9IHsKPiAgICAgICAgICAgICB7 IFZDNF9WRUNfVFZfTU9ERV9OVFNDLCAiTlRTQyIsIH0sCj4gICAgICsgICAgICAgeyBWQzRfVkVD X1RWX01PREVfTlRTQ180NDMsICJOVFNDLTQ0MyIsIH0sCj4gICAgICAgICAgICAgeyBWQzRfVkVD X1RWX01PREVfTlRTQ19KLCAiTlRTQy1KIiwgfSwKPiAgICAgICAgICAgICB7IFZDNF9WRUNfVFZf TU9ERV9QQUwsICJQQUwiLCB9LAo+ICAgICArICAgICAgIHsgVkM0X1ZFQ19UVl9NT0RFX1BBTF82 MCwgIlBBTC02MCIsIH0sCj4gICAgICAgICAgICAgeyBWQzRfVkVDX1RWX01PREVfUEFMX00sICJQ QUwtTSIsIH0sCj4gICAgICsgICAgICAgeyBWQzRfVkVDX1RWX01PREVfUEFMX04sICJQQUwtTiIs IH0sCj4gICAgICsgICAgICAgeyBWQzRfVkVDX1RWX01PREVfU0VDQU0sICJTRUNBTSIsIH0sCj4g ICAgICB9Owo+Cj4gICAgICBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ICAgICBA QCAtMzA2LDExICszNzgsMTYgQEAgdmM0X3ZlY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+ dHYubW9kZSA9IERSTV9NT0RFX1RWX01PREVfTlRTQzsKPiAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwo+Cj4gICAgICsgICAgICAgY2FzZSBWQzRfVkVDX1RWX01PREVfTlRTQ180NDM6Cj4gICAg ICsgICAgICAgICAgICAgICBzdGF0ZS0+dHYubW9kZSA9IERSTV9NT0RFX1RWX01PREVfTlRTQ180 NDM7Cj4gICAgICsgICAgICAgICAgICAgICBicmVhazsKPiAgICAgKwo+ICAgICAgICAgICAgIGNh c2UgVkM0X1ZFQ19UVl9NT0RFX05UU0NfSjoKPiAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT50 di5tb2RlID0gRFJNX01PREVfVFZfTU9ERV9OVFNDX0o7Cj4gICAgICAgICAgICAgICAgICAgICBi cmVhazsKPgo+ICAgICAgICAgICAgIGNhc2UgVkM0X1ZFQ19UVl9NT0RFX1BBTDoKPiAgICAgKyAg ICAgICBjYXNlIFZDNF9WRUNfVFZfTU9ERV9QQUxfNjA6Cj4gICAgICAgICAgICAgICAgICAgICBz dGF0ZS0+dHYubW9kZSA9IERSTV9NT0RFX1RWX01PREVfUEFMOwo+ICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Cj4KPiAgICAgQEAgLTMxOCw2ICszOTUsMTQgQEAgdmM0X3ZlY19jb25uZWN0b3Jf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gICAgICAgICAg ICAgICAgICAgICBzdGF0ZS0+dHYubW9kZSA9IERSTV9NT0RFX1RWX01PREVfUEFMX007Cj4gICAg ICAgICAgICAgICAgICAgICBicmVhazsKPgo+ICAgICArICAgICAgIGNhc2UgVkM0X1ZFQ19UVl9N T0RFX1BBTF9OOgo+ICAgICArICAgICAgICAgICAgICAgc3RhdGUtPnR2Lm1vZGUgPSBEUk1fTU9E RV9UVl9NT0RFX1BBTF9OOwo+ICAgICArICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICsKPiAg ICAgKyAgICAgICBjYXNlIFZDNF9WRUNfVFZfTU9ERV9TRUNBTToKPiAgICAgKyAgICAgICAgICAg ICAgIHN0YXRlLT50di5tb2RlID0gRFJNX01PREVfVFZfTU9ERV9TRUNBTTsKPiAgICAgKyAgICAg ICAgICAgICAgIGJyZWFrOwo+ICAgICArCj4gICAgICAgICAgICAgZGVmYXVsdDoKPiAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ICAgICAgICAgICAgIH0KPiAgICAgQEAgLTM0 MSw2ICs0MjYsMTAgQEAgdmM0X3ZlY19jb25uZWN0b3JfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gICAgICAgICAgICAgICAgICAgICAqdmFsID0gVkM0X1ZF Q19UVl9NT0RFX05UU0M7Cj4gICAgICAgICAgICAgICAgICAgICBicmVhazsKPgo+ICAgICArICAg ICAgIGNhc2UgRFJNX01PREVfVFZfTU9ERV9OVFNDXzQ0MzoKPiAgICAgKyAgICAgICAgICAgICAg ICp2YWwgPSBWQzRfVkVDX1RWX01PREVfTlRTQ180NDM7Cj4gICAgICsgICAgICAgICAgICAgICBi cmVhazsKPiAgICAgKwo+ICAgICAgICAgICAgIGNhc2UgRFJNX01PREVfVFZfTU9ERV9OVFNDX0o6 Cj4gICAgICAgICAgICAgICAgICAgICAqdmFsID0gVkM0X1ZFQ19UVl9NT0RFX05UU0NfSjsKPiAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICBAQCAtMzUzLDYgKzQ0MiwxNCBAQCB2YzRf dmVjX2Nvbm5lY3Rvcl9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiAgICAgICAgICAgICAgICAgICAgICp2YWwgPSBWQzRfVkVDX1RWX01PREVfUEFMX007Cj4g ICAgICAgICAgICAgICAgICAgICBicmVhazsKPgo+ICAgICArICAgICAgIGNhc2UgRFJNX01PREVf VFZfTU9ERV9QQUxfTjoKPiAgICAgKyAgICAgICAgICAgICAgICp2YWwgPSBWQzRfVkVDX1RWX01P REVfUEFMX047Cj4gICAgICsgICAgICAgICAgICAgICBicmVhazsKPiAgICAgKwo+ICAgICArICAg ICAgIGNhc2UgRFJNX01PREVfVFZfTU9ERV9TRUNBTToKPiAgICAgKyAgICAgICAgICAgICAgICp2 YWwgPSBWQzRfVkVDX1RWX01PREVfU0VDQU07Cj4gICAgICsgICAgICAgICAgICAgICBicmVhazsK PiAgICAgKwo+ICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKPiAgICAgICAgICAgICB9Cj4gICAgIEBAIC00NDgsMTMgKzU0NSwxNiBAQCBz dGF0aWMgdm9pZCB2YzRfdmVjX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKPiAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJnZl Yy0+Y29ubmVjdG9yOwo+ICAgICAgICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uX3N0YXRlID0KPiAgICAgICAgICAgICAgICAgICAgIGRybV9hdG9taWNfZ2V0X25ld19jb25u ZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gICAgICsgICAgICAgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ICAgICArICAgICAgICAgICAgICAgJmVuY29k ZXItPmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+ICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCB2YzRfdmVjX3R2X21vZGUgKnR2X21vZGU7Cj4gICAgICAgICAgICAgaW50IGlkeCwgcmV0Owo+ Cj4gICAgICAgICAgICAgaWYgKCFkcm1fZGV2X2VudGVyKGRybSwgJmlkeCkpCj4gICAgICAgICAg ICAgICAgICAgICByZXR1cm47Cj4KPiAgICAgLSAgICAgICB0dl9tb2RlID0gdmM0X3ZlY190dl9t b2RlX2xvb2t1cChjb25uX3N0YXRlLT50di5tb2RlKTsKPiAgICAgKyAgICAgICB0dl9tb2RlID0g dmM0X3ZlY190dl9tb2RlX2xvb2t1cChjb25uX3N0YXRlLT50di5tb2RlLAo+ICAgICArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdGVkX21vZGUtPmh0b3RhbCk7 Cj4gICAgICAgICAgICAgaWYgKCF0dl9tb2RlKQo+ICAgICAgICAgICAgICAgICAgICAgZ290byBl cnJfZGV2X2V4aXQ7Cj4KPiAgICAgQEAgLTY0OCw5ICs3NDgsMTIgQEAgc3RhdGljIGludCB2YzRf dmVjX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQg KmRhdGEpCj4KPiAgICAgICAgICAgICByZXQgPSBkcm1fbW9kZV9jcmVhdGVfdHZfcHJvcGVydGll cyhkcm0sCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QklUKERSTV9NT0RFX1RWX01PREVfTlRTQykgfAo+ICAgICArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJJVChEUk1fTU9ERV9UVl9NT0RFX05UU0NfNDQzKSB8Cj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKERSTV9N T0RFX1RWX01PREVfTlRTQ19KKSB8Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQklUKERSTV9NT0RFX1RWX01PREVfUEFMKSB8Cj4gICAgIC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKERSTV9NT0RFX1RWX01PREVf UEFMX00pKTsKPiAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCSVQoRFJNX01PREVfVFZfTU9ERV9QQUxfTSkgfAo+ICAgICArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJJVChEUk1fTU9ERV9UVl9NT0RFX1BBTF9OKSB8Cj4g ICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKERSTV9N T0RFX1RWX01PREVfU0VDQU0pKTsKPiAgICAgICAgICAgICBpZiAocmV0KQo+ICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsKPgo+Cj4gICAgIC0tIAo+ICAgICBiNCAwLjExLjAtZGV2LTk5 ZTNhIAo+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=