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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E1506C6FA9D for ; Wed, 1 Mar 2023 14:42:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229693AbjCAOmJ (ORCPT ); Wed, 1 Mar 2023 09:42:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229600AbjCAOmH (ORCPT ); Wed, 1 Mar 2023 09:42:07 -0500 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77DD134F5A; Wed, 1 Mar 2023 06:42:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677681725; x=1709217725; h=message-id:subject:from:to:cc:date:in-reply-to: references:content-transfer-encoding:mime-version; bh=qf5c3OcXmb7uiP/lhAr/PAh3qrdRtnNooteLD32Encs=; b=eleJ/TVSKaSN+fMdS0ddsVJ95Rm28aTmO69+QfX0OoOEe8kBj4Ph5oXS luXN0i1wpmdV/at7OnI8ci9KqVoE7kmg7mtSIJqSruqq7tlQXjivw9agF 9c4O0ZN29Dp5VtBwoVPGYvsG+HemAK8Nvda6hwrvoBzkdtRZWMipw7sII +pJvhcNObeNIVOv3Rtv+ghqdrwGFQBqySXoGSNuJOVok3KShVurZtHlHI kJf0e6ktROzPpoHChAaNIjbBQGoumkld5ihpG5Xa6S23sMd4zR+/JFKvD 0arag9FD2HtzjsVCdSmUCtwUgpAyCIMvHlxT26/YBSAOwR2XFIjpcG9su g==; X-IronPort-AV: E=McAfee;i="6500,9779,10636"; a="336715586" X-IronPort-AV: E=Sophos;i="5.98,225,1673942400"; d="scan'208";a="336715586" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2023 06:42:04 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10636"; a="676787326" X-IronPort-AV: E=Sophos;i="5.98,225,1673942400"; d="scan'208";a="676787326" Received: from smeeranx-mobl2.gar.corp.intel.com ([10.213.113.101]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2023 06:42:01 -0800 Message-ID: Subject: Re: [PATCH 05/12] platform/x86: ISST: Add support for MSR 0x54 From: srinivas pandruvada To: Hans de Goede , markgross@kernel.org Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Date: Wed, 01 Mar 2023 06:41:57 -0800 In-Reply-To: <1950741c-b5a9-6883-0c16-391001540a25@redhat.com> References: <20230211063257.311746-1-srinivas.pandruvada@linux.intel.com> <20230211063257.311746-6-srinivas.pandruvada@linux.intel.com> <1950741c-b5a9-6883-0c16-391001540a25@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gV2VkLCAyMDIzLTAzLTAxIGF0IDE1OjMwICswMTAwLCBIYW5zIGRlIEdvZWRlIHdyb3RlOgo+ IEhpLAo+IAo+IE9uIDIvMTEvMjMgMDc6MzIsIFNyaW5pdmFzIFBhbmRydXZhZGEgd3JvdGU6Cj4g PiBUbyBtYXAgTGludXggQ1BVIG51bWJlcmluZyBzY2hlbWUgdG8gaGFyZHdhcmUgQ1BVIG51bWJl cmluZyBzY2hlbWUKPiA+IE1TUiAweDUzIGlzIGdldHRpbmcgdXNlZC4gQnV0IGZvciBuZXcgZ2Vu ZXJhdGlvbiBvZiBDUFVzLCB0aGlzIE1TUgo+ID4gaXMgbm90IHZhbGlkLiBTaW5jZSB0aGlzIGlz IG1vZGVsIHNwZWNpZmljIE1TUiwgdGhpcyBpcyBwb3NzaWJsZS4KPiA+IAo+ID4gQSBuZXcgTVNS IDB4NTQgaXMgZGVmaW5lZC4gVXNlIHRoaXMgTVNSIGFuZCBjb252ZXJ0IHRoZSBJT0NUTAo+ID4g Zm9ybWF0Cj4gPiB0byBtYXRjaCBleGlzdGluZyBNU1IgMHg1MywgaW4gdGhpcyBjYXNlIHVzZXIg c3BhY2VzIGRvbid0IG5lZWQgdG8KPiA+IGJlIGF3YXJlIG9mIHRoaXMgY2hhbmdlLgo+ID4gCj4g PiBTaWduZWQtb2ZmLWJ5OiBTcmluaXZhcyBQYW5kcnV2YWRhCj4gPiA8c3Jpbml2YXMucGFuZHJ1 dmFkYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4gSSBhbSBub3QgYSBmYW4gb2YgdGhpcy4gSSBleHBl Y3QgdGhhdCB1c2VycyBvZiB0aGVzZSBuZXcgQ1BVcyB3aWxsCj4gdmVyeSBsaWtlbHkgYWxzbyBu ZWVkIGEgbmV3IGludGVsLXNwZWVkLXNlbGVjdCB1c2Vyc3BhY2UgdG9vbAo+IHJlZ2FyZGxlc3MK PiBvZiBkb2luZyB0aGlzIE1TUiBtdW5naW5nL3NodWZmbGluZyBpbiB0aGUga2VybmVsLiBTbyB3 aHkgbm90IGZpeAo+IHRoZSB0b29sIHRvIHRlYWNoIGl0IGFib3V0IHRoZSBNU1IgaW5zdGVhZCA/ CgpTdXJlLgoKSSBjYW4gcmVtb3ZlIHRoZSBmb3JtYXQgY29udmVyc2lvbiBpbiB0aGUga2VybmVs LCBzbyB0aGF0IHVzZXIgc3BhY2UKdG9vbCB3aWxsIGRvIHRoYXQuCgpJIHRoaW5rIHRoYXQncyB3 aGF0IHlvdSBtZWFuLgoKCgo+IAo+IElmIHlvdSBoYXZlIGdvb2QgYXJndW1lbnRzIGZvciBkb2lu ZyB0aGlzIGluIHRoZSBrZXJuZWwgcGxlYXNlCj4gYWRkIHRoZW0gdGhlIGNvbW1pdCBtZXNzYWdl IGZvciB0aGUgbmV4dCB2ZXJzaW9uLCBidXQgbXkgaW5pdGlhbAo+IHJlYWN0aW9uIHRvIHRoaXMg aXMgdGhhdCBpdCBpcyB3cm9uZyB0byBkbyB0aGlzIGluIHRoZSBrZXJuZWwKPiBhbmQgdGhhdCB0 aGUgdG9vbCBzaG91bGQgYmUgZml4ZWQgaW5zdGVhZC4gU28gbXkgcHJlZmVyZW5jZQo+IHdvdWxk IGJlIGZvciB0aGlzIHBhdGNoIHRvIGJlIGRyb3BwZWQgZnJvbSB0aGUgbmV4dCB2ZXJzaW9uIG9m Cj4gdGhlIHBhdGNoLXNldC4KClNpbmNlIHdlIGNhbid0IHJlYWQgTVNSIGZyb20gdXNlciBzcGFj ZSwgdGhpcyBwYXRjaCBpcyBzdGlsbCByZXF1aXJlZAp0byByZWFkIG9ubHkgTVNSIDB4NTQuIEp1 c3QgaXQgd2lsbCBub3QgZG8gYW55IGZvcm1hdCBjb252ZXJzaW9uLiBTbwpmb3JtYXQgY29udmVy c2lvbiB3aWxsIGhhcHBlbiBpbiB1c2VyIHNwYWNlIHRvb2wuCgpUaGFua3MsClNyaW5pdmFzCgoK PiAKPiBSZWdhcmRzLAo+IAo+IEhhbnMKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiA+IC0tLQo+ID4g wqAuLi4vaW50ZWwvc3BlZWRfc2VsZWN0X2lmL2lzc3RfaWZfY29tbW9uLmPCoMKgwqAgfCA1MQo+ ID4gKysrKysrKysrKysrKysrKysrKwo+ID4gwqAxIGZpbGUgY2hhbmdlZCwgNTEgaW5zZXJ0aW9u cygrKQo+ID4gCj4gPiBkaWZmIC0tZ2l0Cj4gPiBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L2ludGVs L3NwZWVkX3NlbGVjdF9pZi9pc3N0X2lmX2NvbW1vbi5jCj4gPiBiL2RyaXZlcnMvcGxhdGZvcm0v eDg2L2ludGVsL3NwZWVkX3NlbGVjdF9pZi9pc3N0X2lmX2NvbW1vbi5jCj4gPiBpbmRleCA2MGU1 OGIwYjM4MzUuLjk3ZDFiNDU2NjUzNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvcGxhdGZvcm0v eDg2L2ludGVsL3NwZWVkX3NlbGVjdF9pZi9pc3N0X2lmX2NvbW1vbi5jCj4gPiArKysgYi9kcml2 ZXJzL3BsYXRmb3JtL3g4Ni9pbnRlbC9zcGVlZF9zZWxlY3RfaWYvaXNzdF9pZl9jb21tb24uYwo+ ID4gQEAgLTE5LDkgKzE5LDEzIEBACj4gPiDCoCNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+Cj4g PiDCoCNpbmNsdWRlIDx1YXBpL2xpbnV4L2lzc3RfaWYuaD4KPiA+IMKgCj4gPiArI2luY2x1ZGUg PGFzbS9jcHVfZGV2aWNlX2lkLmg+Cj4gPiArI2luY2x1ZGUgPGFzbS9pbnRlbC1mYW1pbHkuaD4K PiA+ICsKPiA+IMKgI2luY2x1ZGUgImlzc3RfaWZfY29tbW9uLmgiCj4gPiDCoAo+ID4gwqAjZGVm aW5lIE1TUl9USFJFQURfSURfSU5GT8KgwqDCoMKgwqAweDUzCj4gPiArI2RlZmluZSBNU1JfUE1f TE9HSUNBTF9JRMKgwqDCoMKgwqDCoDB4NTQKPiA+IMKgI2RlZmluZSBNU1JfQ1BVX0JVU19OVU1C RVLCoMKgwqDCoMKgMHgxMjgKPiA+IMKgCj4gPiDCoHN0YXRpYyBzdHJ1Y3QgaXNzdF9pZl9jbWRf Y2IgcHVuaXRfY2FsbGJhY2tzW0lTU1RfSUZfREVWX01BWF07Cj4gPiBAQCAtMzEsNiArMzUsNyBA QCBzdGF0aWMgaW50IHB1bml0X21zcl93aGl0ZV9saXN0W10gPSB7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgTVNSX0NPTkZJR19URFBfQ09OVFJPTCwKPiA+IMKgwqDCoMKgwqDCoMKgwqBNU1JfVFVSQk9f UkFUSU9fTElNSVQxLAo+ID4gwqDCoMKgwqDCoMKgwqDCoE1TUl9UVVJCT19SQVRJT19MSU1JVDIs Cj4gPiArwqDCoMKgwqDCoMKgwqBNU1JfUE1fTE9HSUNBTF9JRCwKPiA+IMKgfTsKPiA+IMKgCj4g PiDCoHN0cnVjdCBpc3N0X3ZhbGlkX2NtZF9yYW5nZXMgewo+ID4gQEAgLTczLDYgKzc4LDggQEAg c3RydWN0IGlzc3RfY21kIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqB1MzIgcGFyYW07Cj4gPiDCoH07 Cj4gPiDCoAo+ID4gK3N0YXRpYyBib29sIGlzc3RfaHBtX3N1cHBvcnQ7Cj4gPiArCj4gPiDCoHN0 YXRpYyBERUNMQVJFX0hBU0hUQUJMRShpc3N0X2hhc2gsIDgpOwo+ID4gwqBzdGF0aWMgREVGSU5F X01VVEVYKGlzc3RfaGFzaF9sb2NrKTsKPiA+IMKgCj4gPiBAQCAtNDExLDExICs0MTgsNDMgQEAg c3RhdGljIGludCBpc3N0X2lmX2NwdV9vbmxpbmUodW5zaWduZWQgaW50Cj4gPiBjcHUpCj4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlzc3RfY3B1X2luZm9bY3B1XS5wY2lfZGV2 WzFdID0KPiA+IF9pc3N0X2lmX2dldF9wY2lfZGV2KGNwdSwgMSwgMzAsIDEpOwo+ID4gwqDCoMKg wqDCoMKgwqDCoH0KPiA+IMKgCj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoaXNzdF9ocG1fc3VwcG9y dCkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHU2NCByYXdfZGF0YTsKPiA+ ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSByZG1zcmxfc2FmZShN U1JfUE1fTE9HSUNBTF9JRCwgJnJhd19kYXRhKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoIXJldCkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAvKgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKiBVc2UgdGhlIHNhbWUgZm9ybWF0IGFzIE1TUiA1MywgZm9yIHVzZXIKPiA+ IHNwYWNlIGhhcm1vbnkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICrCoCBGb3JtYXQKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICrCoMKgwqDCoMKgwqBCaXQgMCDigJMgdGhyZWFkIElECj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqwqDCoMKgwqDCoMKg Qml0IDg6MSDigJMgY29yZSBJRAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKsKgwqDCoMKgwqDCoEJpdCAxMzo5IOKAkyBDb21wdXRlIGRvbWFpbiBJ RCAoYWthCj4gPiBkaWUgSUQpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAqIEZyb20gdGhlIE1TUiAweDU0IGZvcm1hdAo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKsKgwqDCoMKgwqDCoFsxNToxMV0g UE1fRE9NQUlOX0lECj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqwqDCoMKgwqDCoMKgWzEwOjNdIE1PRFVMRV9JRCAoYWthIElESV9BR0VOVF9JRCkK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICrCoMKg wqDCoMKgwqBbMjowXSBMUF9JRCAoV2UgZG9uJ3QgY2FyZSBhYm91dAo+ID4gdGhlc2UgYml0cyB3 ZSBvbmx5Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXJlIGRpZSBh bmQgY29yZQo+ID4gaWQKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICrCoMKgwqDCoMKgwqBGb3IgQXRvbToKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg WzJdIEFsd2F5cyAwCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFsxOjBdIGNvcmUgSUQgd2l0aGlu IG1vZHVsZQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKsKgwqDCoMKgwqDCoEZvciBDb3JlCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFsyOjFdIEFs d2F5cyAwCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFswXSB0aHJlYWQgSUQKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICovCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEgPSAocmF3X2RhdGEgPj4g MTEpICYgMHgxZjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgZGF0YSA8PD0gOTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZGF0YSB8PSAoKChyYXdfZGF0YSA+PiAzKSAmIDB4ZmYpIDw8IDEpOwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIHNldF9w dW5pdF9pZDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gPiArwqDCoMKg wqDCoMKgwqB9Cj4gPiArCj4gPiDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gcmRtc3JsX3NhZmUoTVNS X1RIUkVBRF9JRF9JTkZPLCAmZGF0YSk7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpc3N0X2NwdV9pbmZvW2NwdV0ucHVu aXRfY3B1X2lkID0gLTE7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy biByZXQ7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gKwo+ID4gK3NldF9wdW5pdF9pZDoKPiA+ IMKgwqDCoMKgwqDCoMKgwqBpc3N0X2NwdV9pbmZvW2NwdV0ucHVuaXRfY3B1X2lkID0gZGF0YTsK PiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgaXNzdF9yZXN0b3JlX21zcl9sb2NhbChjcHUpOwo+ ID4gQEAgLTcwNCw2ICs3NDMsMTIgQEAgc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIGlzc3RfaWZf Y2hhcl9kcml2ZXIgPQo+ID4gewo+ID4gwqDCoMKgwqDCoMKgwqDCoC5mb3BzwqDCoMKgwqDCoMKg wqDCoMKgwqDCoD0gJmlzc3RfaWZfY2hhcl9kcml2ZXJfb3BzLAo+ID4gwqB9Owo+ID4gwqAKPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IHg4Nl9jcHVfaWQgaHBtX2NwdV9pZHNbXSA9IHsKPiA+ICvC oMKgwqDCoMKgwqDCoFg4Nl9NQVRDSF9JTlRFTF9GQU02X01PREVMKEdSQU5JVEVSQVBJRFNfWCzC oMKgwqDCoMKgTlVMTCksCj4gPiArwqDCoMKgwqDCoMKgwqBYODZfTUFUQ0hfSU5URUxfRkFNNl9N T0RFTChTSUVSUkFGT1JFU1RfWCzCoMKgwqDCoMKgwqBOVUxMKSwKPiA+ICvCoMKgwqDCoMKgwqDC oHt9Cj4gPiArfTsKPiA+ICsKPiA+IMKgc3RhdGljIGludCBpc3N0X21pc2NfcmVnKHZvaWQpCj4g PiDCoHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBtdXRleF9sb2NrKCZwdW5pdF9taXNjX2Rldl9yZWdf bG9jayk7Cj4gPiBAQCAtNzExLDYgKzc1NiwxMiBAQCBzdGF0aWMgaW50IGlzc3RfbWlzY19yZWco dm9pZCkKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byB1bmxvY2tfZXhp dDsKPiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYgKCFtaXNjX3VzYWdlX2NvdW50KSB7Cj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0IHg4Nl9jcHVfaWQg KmlkOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlkID0geDg2X21h dGNoX2NwdShocG1fY3B1X2lkcyk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgKGlkKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpc3N0X2hwbV9zdXBwb3J0ID0gdHJ1ZTsKPiA+ICsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgbWlzY19kZXZpY2VfcmV0ID0gaXNzdF9pZl9jcHVfaW5mb19pbml0KCk7Cj4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChtaXNjX2RldmljZV9yZXQpCj4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIHVu bG9ja19leGl0Owo+IAoK