From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by mx.groups.io with SMTP id smtpd.web11.19058.1675957656870145304
 for <devel@edk2.groups.io>;
 Thu, 09 Feb 2023 07:47:37 -0800
Authentication-Results: mx.groups.io;
 dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=X5Kld3jC;
 spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: michael.d.kinney@intel.com)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1675957656; x=1707493656;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=LMmrX5+fib6TzR/B7fXzZKhEmKxOaBic77vsoQKCbQU=;
  b=X5Kld3jCJzpUJZOlETxBK4y+NGtzBY07RjC248JHeeeeZq9npzVxKA9k
   mBP08HLcZtbEgTjgf2Y0FUBjHgYJBm1SpWDdM9jOFXIvA/5/iz1DEYOx/
   9XLDCd7oi7HK9hsjP5eGYNn7r0pubhG/AjbLFh8kjiCSCb+EEDDZxrHNL
   OABXU1hIBjHzK+w2JTojpXBE7kWt7C8aRFXOanDIrOKU+a8oLkIq/0CHT
   J1hW9yaZhaJgdzP87RJ/AqOrj7en6ZV4jNINgwBs8dZiNxAOC7YAC2lnj
   9e+MitWpjKME99YhOtZWtIXOaTAPAvHHoV1tpqZdsu7A0h2XrUx38Q7D1
   g==;
X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="357543703"
X-IronPort-AV: E=Sophos;i="5.97,284,1669104000"; 
   d="scan'208";a="357543703"
Received: from fmsmga008.fm.intel.com ([10.253.24.58])
  by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 07:47:25 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="731363164"
X-IronPort-AV: E=Sophos;i="5.97,284,1669104000"; 
   d="scan'208";a="731363164"
Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16])
  by fmsmga008.fm.intel.com with ESMTP; 09 Feb 2023 07:47:20 -0800
Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by
 ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.16; Thu, 9 Feb 2023 07:47:20 -0800
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.16 via Frontend Transport; Thu, 9 Feb 2023 07:47:20 -0800
Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.43) by
 edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.16; Thu, 9 Feb 2023 07:47:19 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=U6fssg0+C+TmBbqtcUjol0myoUMt2upWgufnuaaCSsgGQ86KFXdT1FBUoUNmfu7je9bObnX0CF2ni9Sw7hsFsykDvWmlDar1A7vd8hrLCs/ciSH+xGSxw47UpXRB8eBffFDalfpFqLmLmg/k9UKCUN7/ArbpO64JOYR8ks5/Av6GCSIn8YNL315xEYhBKcwS+wgAfxAD/fP/gQuIe7SqtvySmd/KZocgy5/hQhSa0J/dyAJTpsIh+opa+Zf+O50JDxqTsQn0lEo/am6M+zYbYSEVD2ukPdgaSS5gbkRixxgom2PrGy9lSe0RQhHKBtKUMDpqpPBA4OYTkMi4StJEnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LMmrX5+fib6TzR/B7fXzZKhEmKxOaBic77vsoQKCbQU=;
 b=awTU6V4rlpAH+JDfaLYpgOSXb7eYD5V3xyOPUkLHpNWJiPxL77keZBIaVdtbS5IOfcnZNWIHzNGkYWOaupRePbipVIbHZdgI0EM//Yy49AQ6OGmQYo+PrBHjFuwNS7pqN+j2rDqls66K+Lf+K9S8tgYGbLtWx5DIRgDc46WQdk3Xdp1W6Y4ADvV7oTaEbZKuE0RPZfDiaJqHI1y4bJKrxXA6ZAjXBeEZpkWP9aKF0gyOj1H9a2D2xQZAi5zxohQaqo1ZcbvuUVeV+EUxvqMSekXhLHzXlbAF/PmtHTPpbF/UZDM8+ipn4sFX8bbEo0aMuDVqCrtc1Ey0thkVrRimbQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19)
 by SN7PR11MB6702.namprd11.prod.outlook.com (2603:10b6:806:269::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Thu, 9 Feb
 2023 15:47:14 +0000
Received: from CO1PR11MB4929.namprd11.prod.outlook.com
 ([fe80::c4d0:989a:e319:fe68]) by CO1PR11MB4929.namprd11.prod.outlook.com
 ([fe80::c4d0:989a:e319:fe68%7]) with mapi id 15.20.6086.019; Thu, 9 Feb 2023
 15:47:14 +0000
From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: Sunil V L <sunilvl@ventanamicro.com>, "devel@edk2.groups.io"
	<devel@edk2.groups.io>
CC: "Gao, Liming" <gaoliming@byosoft.com.cn>, "Liu, Zhiguang"
	<zhiguang.liu@intel.com>, Abner Chang <abner.chang@amd.com>, "Kinney, Michael
 D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V7 03/20] MdePkg: Add BaseRiscVSbiLib Library for RISC-V
Thread-Topic: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V7 03/20]
 MdePkg: Add BaseRiscVSbiLib Library for RISC-V
Thread-Index: AQHZM01XBrJ8kPdYlUK+QcpFNnx0ga7F6ZKwgABdVgCAAI3UsA==
Date: Thu, 9 Feb 2023 15:47:13 +0000
Message-ID: <CO1PR11MB492984E0BA56CF5ED8AE5660D2D99@CO1PR11MB4929.namprd11.prod.outlook.com>
References: <20230128191807.2080547-1-sunilvl@ventanamicro.com>
 <20230128191807.2080547-4-sunilvl@ventanamicro.com>
 <CO1PR11MB492967020422D9DEC7D90FF1D2D99@CO1PR11MB4929.namprd11.prod.outlook.com>
 <Y+SeWlg8sVRX3MjA@sunil-laptop>
In-Reply-To: <Y+SeWlg8sVRX3MjA@sunil-laptop>
Accept-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|SN7PR11MB6702:EE_
x-ms-office365-filtering-correlation-id: fa8dd322-26cc-410f-03fc-08db0ab4e9d4
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 1tTXwhahd6+el9i73pXXwauevsmG78bFS9WTNava6GrzmYH30CywY/DRErEp/W79QNrcVnlb5My3/atj/deEk+UWAku88hCLCOx6Le5LkBa+YdNrRCrFFbfw1n7AOk2QPtfqXOxJPxt0dV1WORR5gaTfUpNxgR/K0uqEGgcu956A8bqem0FAg0pytjlhGtM+iB0q7GbKVCPVuhEnW8vVDY7jiuTb64WWgtoprhwgR/FQukimC+O1uNucCb4Ok+zGu5/RB7JOvpV45bdSwB4qi6aIrT9M8ZYcAbdzQNJdUwFtd1pLVpKN5vGFb/cvNlTA2g2KifQ4b0/0w+lRw5wRghzXXzaA7ef6W94ruGFRTqQRSSYaosKq5MOVUzPo3VBEw8A+1yvOsnydaplI57x2aP9UUNTavh3bDTPnj4giyf2sRWWGAPqg+qaVpwP5RBYAbIOk8Z/FUEJgdXzJKWkh1ZHFYiPSMqXcqaNrNJ52frBkMaqUxYrEZchbtch6FItu+2rEQbt3qXp32ID5C93FOPoyxJ7pSVUsdhKvLcXl3Y3v0hOz66UFMp/ZOMlCntkgX44tZw/U9RZXvgV1w34FmD8CPAzSO7yE2ERBJjLZRCDQIYXnnLPS12NzKlEszWb5gVFLsSsNEdGcpwuPWjlrfOu/L2rcbIdkuyrIZ031MzWcBxk7doKA1pG537QOGNckFZyjDFMyZ1dXHyZcSN4eI9pBJb4QeKkzqnC7/Ju79/Q=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(376002)(366004)(346002)(396003)(136003)(39860400002)(451199018)(2906002)(8936002)(52536014)(55016003)(30864003)(71200400001)(5660300002)(66556008)(86362001)(64756008)(8676002)(66476007)(4326008)(76116006)(66446008)(66946007)(54906003)(41300700001)(33656002)(83380400001)(316002)(110136005)(966005)(478600001)(38070700005)(7696005)(122000001)(186003)(26005)(82960400001)(53546011)(6506007)(38100700002)(9686003)(107886003);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MnFUSHBUUzU0YStWMUZ1SythdDR2Yjc5cXkwVUtQWUtBTVdiMWh6REhDQWl5?=
 =?utf-8?B?NWZaQ09ud3Z3NWNCWjc4SlNFUFNjZUFhdGJTYjdCRTFzalM1aUduLzVhbnJ4?=
 =?utf-8?B?WGxQSi9FZ2Fray9xUUJWUHJDM05oRjdiWlBEOGRYMVNmd2Zoa0lzZE1IN2Fi?=
 =?utf-8?B?NXBQQStCdldrWnUrVUJ3NzRlQi9NV1dKQ0tlL1pzMzl2eDArMDkvRktES08x?=
 =?utf-8?B?MEcrRGRBM1NIUmw5bVhBU2g3WUJjTzNwYXUvR3YwSnljeVIyTjNYSjBUZVZq?=
 =?utf-8?B?Qm9VU2lYMHpQQ3JQcFZ3aFFGdHUyMjd6UGFsbkd0dndDVnVjazBwTTZXbHhX?=
 =?utf-8?B?NnZDK2hhZkJkNTVyZWRubGF3b0psV2ROZXFDMlZiQjhNUEkrQnV1YnBTcEdq?=
 =?utf-8?B?NVhtUGpEYkpPU1RtSTJBaktBaGtlTFpYellKeTBPSjdla2FmVnNIMk9oQXhy?=
 =?utf-8?B?WVRSKzI4TThIV3h1RkZscFowUUk4ekxIdUl6enRYRkNMbUhmSDNGVzVwQ0VV?=
 =?utf-8?B?YXNuc1VPSmJBK0U5WE1CeDdkbnBnNFdtNzhaN2M1QkdpZ3FVZEdjdHhuZFhD?=
 =?utf-8?B?bXVIaHNvRmJuU3RReGhveUdDR2I0U0NMZWNIT3dYSkhKaklaTkVSb0c3dmpw?=
 =?utf-8?B?TDQrOWRMOFRTcG56a2l3Qlg1Znc5Mlh4NGdsbFc5TDJIMjdPbUFMbWExQkUr?=
 =?utf-8?B?VG4rM3pWR1VKZFh6c2NnUEVEV1pLYXBVUHh5SndKdi9jRmU3OEg3ZUc1VEsx?=
 =?utf-8?B?ZlN4c0hLY1pvbHQwWlppUjBWekpVaU1YTk5yaHptSC9tNE5Qd2lsQlhwR2F4?=
 =?utf-8?B?WFlBVnBaOFZTL3lzVEY4STJUdmY2b2F3OVJBeVloOG1JMXJDY01qd1JYbWR1?=
 =?utf-8?B?Q2EzU3BnbzhXTjN4a2gyOCt1Z0lTeDF0N2U3QVRRVEtlYjVLVVAyZUFGWXN2?=
 =?utf-8?B?OFkwVnc0RDk0NmhhMTQvUHpTeDE0eThldUs5Zm9GRlJjMU1DMDFmU2pick44?=
 =?utf-8?B?WitHWmZjRm5lUEZQaXdxWUZJV0tMU2VoUkFZNEpQU2IzdXdmTGU3YTAzSXpN?=
 =?utf-8?B?WjZGVU5ZSk9SZndIR0VhVldFTW1iY2hiOUhzall0RUZZdTFlcDhLZDcvellK?=
 =?utf-8?B?TDEwU1ZmTnFaWHlNU01XKzhWQ3NzUmw0ZFlSSEp3aUwxMkp3bW5IQ25mNnBH?=
 =?utf-8?B?ZklwemdvMjFVbmhqMlJhNHBtamZBY3UyTlFnSUI1U1NBNi9mR29ZelFZOTRv?=
 =?utf-8?B?aUtkeVdXUmdPcXAwOTBDWnh4MEV2dFF1ZXp4L0RuZ21LWHJTdDZtMzNqTkRv?=
 =?utf-8?B?a0xtUHRjR2xEZktzSmd0THQwQWdwRE9MMXNzMGczT1NCU3hmV2NKZ09ldW1h?=
 =?utf-8?B?TFVndDBrNk9LOWZiZ3BjUkEwbW80cElHaEtVamRtalhVR0UvLzFKNWN5eWdP?=
 =?utf-8?B?MnUzRDkzd0ZoZFhDd0xRMFRCcHV2TllCVWRZdi9wWkJMeVF1ZXZwQTBWSUhv?=
 =?utf-8?B?QWFuOUFqN2ErdE5hUS9nUDFCaTdxdmM5VjRPYVBqUHBPZGJhMmhDWTJKdWVS?=
 =?utf-8?B?NUhHOTlLbmtCVE52cnZDRS9WRERJYnR4SXpjNHBQQnZrMUZnZWFBaWdyTy82?=
 =?utf-8?B?TFVTUTlqam91ZzZvaER0TGJtNENjUUdWT20zaCs2NFR5Y2VxMVZKSm8rREVt?=
 =?utf-8?B?aXRzMW12Y25rUVBrMzh3eHNGZ1BtakphYWZtYUdnUWdxbXhPRDUvNkcxTmhT?=
 =?utf-8?B?SUNtbjZFSTRObWtBcXk0V3RWcVlEVVEzWnZ5YVZrcFl0SmdpdTlwaHBXZUUr?=
 =?utf-8?B?REo2aW9Wd0pKNFptSVhhRkt0UW1lbUd5VHdEeVgxaGltY2JJNWI0UDZNeXdG?=
 =?utf-8?B?RThMSVdROUlOZ1ZwL244RG54TnFkcXUzL2Z3OUpteXQ2R1ZjZXRTUVJRbmIv?=
 =?utf-8?B?Qm90aHBlT3ArK1BwSkNNaHluR1NOQ0wwcW05a2pxY2lTb1M2S0M1aEVpQjJM?=
 =?utf-8?B?K2dKL2Z0QTFJczhPTkV1NEEzOTAwT3BxMVFmbERYSWp6QmZXWVpmSGFPNmxr?=
 =?utf-8?B?UzQ2RVUwd2JCU0pmTWRPNFh3aEVVM3Vsa0VNSnNiVDd1RmkvZUx2MEk0aTdt?=
 =?utf-8?B?NkxHVlc2Ui9vT1FVNTdhRUc4UkFjWmp6akc4MW9LZWlsUWpocjdIZ1I1N0Zi?=
 =?utf-8?B?anc9PQ==?=
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fa8dd322-26cc-410f-03fc-08db0ab4e9d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 15:47:13.6277
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ezpkp/mO6nm+0tebkNnkOT6TaqU0pp5r22zyOH7+U0WRV9WSQO4lAJGtZuVGHBjXKXuasp0BFYUZIvMjOIleM0ibHSZYC6O0zCQ4Lu4X8QQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6702
Return-Path: michael.d.kinney@intel.com
X-OriginatorOrg: intel.com
Content-Language: en-US
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SSBhZ3JlZSB3aXRoIGtlZXBpbmcgdGhlIC5TIGZpbGUgaW4gdGhpcyBjb21wb25lbnQuDQoNCkkg
d2FzIG9ubHkgcmVmZXJyaW5nIHRvIEJhc2VMaWIgYXMgb3RoZXIgZXhhbXBsZXMgdGhhdCB1c2Vk
DQouUyBpbnN0ZWFkIG9mIGlubGluZSBhc3NlbWJseS4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2lu
YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFN1bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8u
Y29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDgsIDIwMjMgMTE6MTkgUE0NCj4gVG86
IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5l
eUBpbnRlbC5jb20+DQo+IENjOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu
PjsgTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47IEFibmVyIENoYW5nIDxh
Ym5lci5jaGFuZ0BhbWQuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyLXN0
YWdpbmcvUmlzY1Y2NFFlbXVWaXJ0IFBBVENIIFY3IDAzLzIwXSBNZGVQa2c6IEFkZCBCYXNlUmlz
Y1ZTYmlMaWIgTGlicmFyeSBmb3IgUklTQy1WDQo+IA0KPiBIaSBNaWtlLA0KPiANCj4gT24gVGh1
LCBGZWIgMDksIDIwMjMgYXQgMDE6NDU6NDhBTSArMDAwMCwgTWljaGFlbCBEIEtpbm5leSB3cm90
ZToNCj4gPiBPbmUgY29tbWVudCBiZWxvdy4NCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+ID4gLS0t
LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IFN1bmlsIFYgTCA8c3VuaWx2bEB2
ZW50YW5hbWljcm8uY29tPg0KPiA+ID4gU2VudDogU2F0dXJkYXksIEphbnVhcnkgMjgsIDIwMjMg
MTE6MTggQU0NCj4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IEtpbm5l
eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywgTGltaW5nIDxn
YW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nDQo+IDx6aGlndWFuZy5saXVA
aW50ZWwuY29tPjsNCj4gPiA+IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPiA+
ID4gU3ViamVjdDogW2VkazItc3RhZ2luZy9SaXNjVjY0UWVtdVZpcnQgUEFUQ0ggVjcgMDMvMjBd
IE1kZVBrZzogQWRkIEJhc2VSaXNjVlNiaUxpYiBMaWJyYXJ5IGZvciBSSVNDLVYNCj4gPiA+DQo+
ID4gPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDA3Ng0KPiA+ID4NCj4gPiA+IFRoaXMgbGlicmFyeSBpcyByZXF1aXJlZCB0byBtYWtlIFNCSSBl
Y2FsbHMgZnJvbSB0aGUgUy1tb2RlIEVESzIuDQo+ID4gPiBUaGlzIGlzIG1vc3RseSBjb3BpZWQg
ZnJvbQ0KPiA+ID4gZWRrMi1wbGF0Zm9ybXMvU2lsaWNvbi9SSVNDLVYvUHJvY2Vzc29yUGtnL0xp
YnJhcnkvUmlzY1ZFZGsyU2JpTGliDQo+ID4gPg0KPiA+ID4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkg
PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xp
bWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+IENjOiBaaGlndWFuZyBMaXUgPHpoaWd1YW5nLmxp
dUBpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTdW5pbCBWIEwgPHN1bmlsdmxAdmVu
dGFuYW1pY3JvLmNvbT4NCj4gPiA+IEFja2VkLWJ5OiBBYm5lciBDaGFuZyA8YWJuZXIuY2hhbmdA
YW1kLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCj4gPiA+ICBNZGVQa2cvTWRlUGtnLmRzYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArDQo+ID4gPiAgTWRlUGtnL0xp
YnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNjVlNiaUxpYi5pbmYgfCAgMjUgKysrDQo+ID4g
PiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIuaCAgICAgICAgICAgfCAx
MjcgKysrKysrKysrKysNCj4gPiA+ICBNZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFz
ZVJpc2NWU2JpTGliLmMgICB8IDIyNyArKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gIDUgZmls
ZXMgY2hhbmdlZCwgMzg2IGluc2VydGlvbnMoKykNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEv
TWRlUGtnL01kZVBrZy5kZWMgYi9NZGVQa2cvTWRlUGtnLmRlYw0KPiA+ID4gaW5kZXggM2QwOGYy
MGQxNWIwLi5jYTJlNGRjZjgxNWMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9NZGVQa2cvTWRlUGtnLmRl
Yw0KPiA+ID4gKysrIGIvTWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+IEBAIC0zMTYsNiArMzE2LDEw
IEBAIFtMaWJyYXJ5Q2xhc3Nlcy5JQTMyLCBMaWJyYXJ5Q2xhc3Nlcy5YNjRdDQo+ID4gPiAgICAj
IyAgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgZnVuY3Rpb24gdG8gc3VwcG9ydCBURFggcHJvY2Vz
c2luZy4NCj4gPiA+ICAgIFRkeExpYnxJbmNsdWRlL0xpYnJhcnkvVGR4TGliLmgNCj4gPiA+DQo+
ID4gPiArW0xpYnJhcnlDbGFzc2VzLlJJU0NWNjRdDQo+ID4gPiArICAjIyAgQGxpYnJhcnljbGFz
cyAgUHJvdmlkZXMgZnVuY3Rpb24gdG8gbWFrZSBlY2FsbHMgdG8gU0JJDQo+ID4gPiArICBCYXNl
UmlzY1ZTYmlMaWJ8SW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi5oDQo+ID4gPiArDQo+
ID4gPiAgW0d1aWRzXQ0KPiA+ID4gICAgIw0KPiA+ID4gICAgIyBHVUlEIGRlZmluZWQgaW4gVUVG
STIuMS9VRUZJMi4wL0VGSTEuMQ0KPiA+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZHNj
IGIvTWRlUGtnL01kZVBrZy5kc2MNCj4gPiA+IGluZGV4IDMyYTg1MmRjNDY2ZS4uMGFjNzYxOGI0
NjIzIDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRlUGtnL01kZVBrZy5kc2MNCj4gPiA+ICsrKyBiL01k
ZVBrZy9NZGVQa2cuZHNjDQo+ID4gPiBAQCAtMTkwLDQgKzE5MCw3IEBAIFtDb21wb25lbnRzLkFS
TSwgQ29tcG9uZW50cy5BQVJDSDY0XQ0KPiA+ID4gICAgTWRlUGtnL0xpYnJhcnkvQmFzZUlvTGli
SW50cmluc2ljL0Jhc2VJb0xpYkludHJpbnNpY0FybVZpcnQuaW5mDQo+ID4gPiAgICBNZGVQa2cv
TGlicmFyeS9CYXNlU3RhY2tDaGVja0xpYi9CYXNlU3RhY2tDaGVja0xpYi5pbmYNCj4gPiA+DQo+
ID4gPiArW0NvbXBvbmVudHMuUklTQ1Y2NF0NCj4gPiA+ICsgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VS
aXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuaW5mDQo+ID4gPiArDQo+ID4gPiAgW0J1aWxkT3B0
aW9uc10NCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIv
QmFzZVJpc2NWU2JpTGliLmluZiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNl
UmlzY1ZTYmlMaWIuaW5mDQo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXgg
MDAwMDAwMDAwMDAwLi5kMDMxMzJiZjAxYzENCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsr
KyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuaW5mDQo+
ID4gPiBAQCAtMCwwICsxLDI1IEBADQo+ID4gPiArIyMgQGZpbGUNCj4gPiA+ICsjIFJJU0MtViBM
aWJyYXJ5IHRvIGNhbGwgU0JJIGVjYWxscw0KPiA+ID4gKyMNCj4gPiA+ICsjICBDb3B5cmlnaHQg
KGMpIDIwMjAsIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQLiBBbGwg
cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsjDQo+ID4gPiArIyAgU1BEWC1MaWNlbnNlLUlk
ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsjDQo+ID4gPiArIyMNCj4gPiA+
ICsNCj4gPiA+ICtbRGVmaW5lc10NCj4gPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgPSAweDAw
MDEwMDFiDQo+ID4gPiArICBCQVNFX05BTUUgICAgICAgICAgID0gQmFzZVJpc2NWU2JpTGliDQo+
ID4gPiArICBGSUxFX0dVSUQgICAgICAgICAgID0gRDc0MkNGM0QtRTYwMC00MDA5LThGQjUtMzE4
MDczMDA4NTA4DQo+ID4gPiArICBNT0RVTEVfVFlQRSAgICAgICAgID0gQkFTRQ0KPiA+ID4gKyAg
VkVSU0lPTl9TVFJJTkcgICAgICA9IDEuMA0KPiA+ID4gKyAgTElCUkFSWV9DTEFTUyAgICAgICA9
IFJpc2NWU2JpTGliDQo+ID4gPiArDQo+ID4gPiArW1NvdXJjZXNdDQo+ID4gPiArICBCYXNlUmlz
Y1ZTYmlMaWIuYw0KPiA+ID4gKw0KPiA+ID4gK1tQYWNrYWdlc10NCj4gPiA+ICsgIE1kZVBrZy9N
ZGVQa2cuZGVjDQo+ID4gPiArDQo+ID4gPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiA+ID4gKyAgQmFz
ZUxpYg0KPiA+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVJpc2NW
U2JpTGliLmggYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi5oDQo+ID4g
PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4zYTNjYmZi
ODc5ZjENCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xp
YnJhcnkvQmFzZVJpc2NWU2JpTGliLmgNCj4gPiA+IEBAIC0wLDAgKzEsMTI3IEBADQo+ID4gPiAr
LyoqIEBmaWxlDQo+ID4gPiArICBMaWJyYXJ5IHRvIGNhbGwgdGhlIFJJU0MtViBTQkkgZWNhbGxz
DQo+ID4gPiArDQo+ID4gPiArICBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgSGV3bGV0dCBQYWNr
YXJkIERldmVsb3BtZW50IExQLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsNCj4g
PiA+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4g
PiArDQo+ID4gPiArICBAcGFyIEdsb3NzYXJ5Og0KPiA+ID4gKyAgICAtIEhhcnQgLSBIYXJkd2Fy
ZSBUaHJlYWQsIHNpbWlsYXIgdG8gYSBDUFUgY29yZQ0KPiA+ID4gKw0KPiA+ID4gKyAgQ3VycmVu
dGx5LCBFREsyIG5lZWRzIHRvIGNhbGwgU0JJIG9ubHkgdG8gc2V0IHRoZSB0aW1lIGFuZCB0byBk
byBzeXN0ZW0gcmVzZXQuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lm
bmRlZiBSSVNDVl9TQklfTElCX0hfDQo+ID4gPiArI2RlZmluZSBSSVNDVl9TQklfTElCX0hfDQo+
ID4gPiArDQo+ID4gPiArI2luY2x1ZGUgPFVlZmkuaD4NCj4gPiA+ICsNCj4gPiA+ICsvKiBTQkkg
RXh0ZW5zaW9uIElEcyAqLw0KPiA+ID4gKyNkZWZpbmUgU0JJX0VYVF9USU1FICAweDU0NDk0RDQ1
DQo+ID4gPiArI2RlZmluZSBTQklfRVhUX1NSU1QgIDB4NTM1MjUzNTQNCj4gPiA+ICsNCj4gPiA+
ICsvKiBTQkkgZnVuY3Rpb24gSURzIGZvciBUSU1FIGV4dGVuc2lvbiovDQo+ID4gPiArI2RlZmlu
ZSBTQklfRVhUX1RJTUVfU0VUX1RJTUVSICAweDANCj4gPiA+ICsNCj4gPiA+ICsvKiBTQkkgZnVu
Y3Rpb24gSURzIGZvciBTUlNUIGV4dGVuc2lvbiAqLw0KPiA+ID4gKyNkZWZpbmUgU0JJX0VYVF9T
UlNUX1JFU0VUICAweDANCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1RZ
UEVfU0hVVERPV04gICAgIDB4MA0KPiA+ID4gKyNkZWZpbmUgU0JJX1NSU1RfUkVTRVRfVFlQRV9D
T0xEX1JFQk9PVCAgMHgxDQo+ID4gPiArI2RlZmluZSBTQklfU1JTVF9SRVNFVF9UWVBFX1dBUk1f
UkVCT09UICAweDINCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1JFQVNP
Tl9OT05FICAgICAweDANCj4gPiA+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1JFQVNPTl9TWVNG
QUlMICAweDENCj4gPiA+ICsNCj4gPiA+ICsvKiBTQkkgcmV0dXJuIGVycm9yIGNvZGVzICovDQo+
ID4gPiArI2RlZmluZSBTQklfU1VDQ0VTUyAgICAgICAgICAgICAgICAwDQo+ID4gPiArI2RlZmlu
ZSBTQklfRVJSX0ZBSUxFRCAgICAgICAgICAgICAtMQ0KPiA+ID4gKyNkZWZpbmUgU0JJX0VSUl9O
T1RfU1VQUE9SVEVEICAgICAgLTINCj4gPiA+ICsjZGVmaW5lIFNCSV9FUlJfSU5WQUxJRF9QQVJB
TSAgICAgIC0zDQo+ID4gPiArI2RlZmluZSBTQklfRVJSX0RFTklFRCAgICAgICAgICAgICAtNA0K
PiA+ID4gKyNkZWZpbmUgU0JJX0VSUl9JTlZBTElEX0FERFJFU1MgICAgLTUNCj4gPiA+ICsjZGVm
aW5lIFNCSV9FUlJfQUxSRUFEWV9BVkFJTEFCTEUgIC02DQo+ID4gPiArI2RlZmluZSBTQklfRVJS
X0FMUkVBRFlfU1RBUlRFRCAgICAtNw0KPiA+ID4gKyNkZWZpbmUgU0JJX0VSUl9BTFJFQURZX1NU
T1BQRUQgICAgLTgNCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIFNCSV9MQVNUX0VSUiAgU0JJX0VS
Ul9BTFJFQURZX1NUT1BQRUQNCj4gPiA+ICsNCj4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4g
PiArICBVSU5UNjQgICAgQm9vdEhhcnRJZDsNCj4gPiA+ICsgIFZPSUQgICAgICAqUGVpU2Vydmlj
ZVRhYmxlOyAgICAvLyBQRUkgU2VydmljZSB0YWJsZQ0KPiA+ID4gKyAgVk9JRCAgICAgICpQcmVQ
aUhvYkxpc3Q7ICAgICAgIC8vIFByZSBQSSBIb2IgTGlzdA0KPiA+ID4gKyAgVUlOVDY0ICAgIEZs
YXR0ZW5lZERldmljZVRyZWU7IC8vIFBvaW50ZXIgdG8gRmxhdHRlbmVkIERldmljZSB0cmVlDQo+
ID4gPiArfSBFRklfUklTQ1ZfRklSTVdBUkVfQ09OVEVYVDsNCj4gPiA+ICsNCj4gPiA+ICsvLw0K
PiA+ID4gKy8vIEVESzIgT3BlblNCSSBmaXJtd2FyZSBleHRlbnNpb24gcmV0dXJuIHN0YXR1cy4N
Cj4gPiA+ICsvLw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ICsgIFVJTlROICAgIEVy
cm9yOyAvLy88IFNCSSBzdGF0dXMgY29kZQ0KPiA+ID4gKyAgVUlOVE4gICAgVmFsdWU7IC8vLzwg
VmFsdWUgcmV0dXJuZWQNCj4gPiA+ICt9IFNCSV9SRVQ7DQo+ID4gPiArDQo+ID4gPiArVk9JRA0K
PiA+ID4gK0VGSUFQSQ0KPiA+ID4gK1NiaVNldFRpbWVyICgNCj4gPiA+ICsgIElOICBVSU5UNjQg
IFRpbWUNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gK0VG
SUFQSQ0KPiA+ID4gK1NiaVN5c3RlbVJlc2V0ICgNCj4gPiA+ICsgIElOICBVSU5UTiAgUmVzZXRU
eXBlLA0KPiA+ID4gKyAgSU4gIFVJTlROICBSZXNldFJlYXNvbg0KPiA+ID4gKyAgKTsNCj4gPiA+
ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIEdldCBmaXJtd2FyZSBjb250ZXh0IG9mIHRoZSBjYWxs
aW5nIGhhcnQuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1bb3V0XSBGaXJtd2FyZUNvbnRleHQg
ICAgICBUaGUgZmlybXdhcmUgY29udGV4dCBwb2ludGVyLg0KPiA+ID4gKyoqLw0KPiA+ID4gK1ZP
SUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtHZXRGaXJtd2FyZUNvbnRleHQgKA0KPiA+ID4gKyAg
T1VUIEVGSV9SSVNDVl9GSVJNV0FSRV9DT05URVhUICAqKkZpcm13YXJlQ29udGV4dA0KPiA+ID4g
KyAgKTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIFNldCBmaXJtd2FyZSBjb250ZXh0
IG9mIHRoZSBjYWxsaW5nIGhhcnQuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1baW5dIEZpcm13
YXJlQ29udGV4dCAgICAgICBUaGUgZmlybXdhcmUgY29udGV4dCBwb2ludGVyLg0KPiA+ID4gKyoq
Lw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtTZXRGaXJtd2FyZUNvbnRleHQg
KA0KPiA+ID4gKyAgSU4gRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICpGaXJtd2FyZUNvbnRl
eHQNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBHZXQgcG9pbnRl
ciB0byBPcGVuU0JJIEZpcm13YXJlIENvbnRleHQNCj4gPiA+ICsNCj4gPiA+ICsgIEdldCB0aGUg
cG9pbnRlciBvZiBmaXJtd2FyZSBjb250ZXh0Lg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICAg
IEZpcm13YXJlQ29udGV4dFB0ciAgIFBvaW50ZXIgdG8gcmV0cmlldmUgcG9pbnRlciB0byB0aGUN
Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXJtd2FyZSBDb250ZXh0
Lg0KPiA+ID4gKyoqLw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtHZXRGaXJt
d2FyZUNvbnRleHRQb2ludGVyICgNCj4gPiA+ICsgIElOIE9VVCBFRklfUklTQ1ZfRklSTVdBUkVf
Q09OVEVYVCAgKipGaXJtd2FyZUNvbnRleHRQdHINCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4g
PiArLyoqDQo+ID4gPiArICBTZXQgcG9pbnRlciB0byBPcGVuU0JJIEZpcm13YXJlIENvbnRleHQN
Cj4gPiA+ICsNCj4gPiA+ICsgIFNldCB0aGUgcG9pbnRlciBvZiBmaXJtd2FyZSBjb250ZXh0Lg0K
PiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICAgIEZpcm13YXJlQ29udGV4dFB0ciAgIFBvaW50ZXIg
dG8gRmlybXdhcmUgQ29udGV4dC4NCj4gPiA+ICsqKi8NCj4gPiA+ICtWT0lEDQo+ID4gPiArRUZJ
QVBJDQo+ID4gPiArU2V0RmlybXdhcmVDb250ZXh0UG9pbnRlciAoDQo+ID4gPiArICBJTiBFRklf
UklTQ1ZfRklSTVdBUkVfQ09OVEVYVCAgKkZpcm13YXJlQ29udGV4dFB0cg0KPiA+ID4gKyAgKTsN
Cj4gPiA+ICsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFy
eS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmMgYi9NZGVQa2cvTGlicmFyeS9CYXNl
UmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmMNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0
DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjE1MjIyYTUyODc1Mw0KPiA+ID4gLS0tIC9kZXYv
bnVsbA0KPiA+ID4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNj
VlNiaUxpYi5jDQo+ID4gPiBAQCAtMCwwICsxLDIyNyBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+
ID4gKyAgSW5zdGFuY2Ugb2YgdGhlIFNCSSBlY2FsbCBsaWJyYXJ5Lg0KPiA+ID4gKw0KPiA+ID4g
KyAgSXQgYWxsb3dzIGNhbGxpbmcgYW4gU0JJIGZ1bmN0aW9uIHZpYSBhbiBlY2FsbCBmcm9tIFMt
TW9kZS4NCj4gPiA+ICsNCj4gPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBIZXdsZXR0
IFBhY2thcmQgRGV2ZWxvcG1lbnQgTFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4g
Kw0KPiA+ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN
Cj4gPiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICsNCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9C
YXNlTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+
ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJh
cnkvQmFzZVJpc2NWU2JpTGliLmg+DQo+ID4gPiArDQo+ID4gPiArLy8NCj4gPiA+ICsvLyBNYXhp
bXVtIGFyZ3VtZW50cyBmb3IgU0JJIGVjYWxsDQo+ID4gPiArI2RlZmluZSBTQklfQ0FMTF9NQVhf
QVJHUyAgNg0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgQ2FsbCBTQkkgY2FsbCB1c2lu
ZyBlY2FsbCBpbnN0cnVjdGlvbi4NCj4gPiA+ICsNCj4gPiA+ICsgIEFzc2VydHMgd2hlbiBOdW1B
cmdzIGV4Y2VlZHMgU0JJX0NBTExfTUFYX0FSR1MuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1b
aW5dIEV4dElkICAgIFNCSSBleHRlbnNpb24gSUQuDQo+ID4gPiArICBAcGFyYW1baW5dIEZ1bmNJ
ZCAgIFNCSSBmdW5jdGlvbiBJRC4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gTnVtQXJncyAgTnVtYmVy
IG9mIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBlY2FsbC4NCj4gPiA+ICsgIEBwYXJhbVtpbl0g
Li4uICAgICAgQXJndW1lbnQgbGlzdCBmb3IgdGhlIGVjYWxsLg0KPiA+ID4gKw0KPiA+ID4gKyAg
QHJldHZhbCAgUmV0dXJucyBTQklfUkVUIHN0cnVjdHVyZSB3aXRoIHZhbHVlIGFuZCBlcnJvciBj
b2RlLg0KPiA+ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4gK1NUQVRJQw0KPiA+ID4gK1NCSV9SRVQN
Cj4gPiA+ICtFRklBUEkNCj4gPiA+ICtTYmlDYWxsICgNCj4gPiA+ICsgIElOICBVSU5UTiAgRXh0
SWQsDQo+ID4gPiArICBJTiAgVUlOVE4gIEZ1bmNJZCwNCj4gPiA+ICsgIElOICBVSU5UTiAgTnVt
QXJncywNCj4gPiA+ICsgIC4uLg0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIFVJTlRO
ICAgIEk7DQo+ID4gPiArICBTQklfUkVUICBSZXQ7DQo+ID4gPiArICBVSU5UTiAgICBBcmdzW1NC
SV9DQUxMX01BWF9BUkdTXTsNCj4gPiA+ICsgIFZBX0xJU1QgIEFyZ0xpc3Q7DQo+ID4gPiArDQo+
ID4gPiArICBWQV9TVEFSVCAoQXJnTGlzdCwgTnVtQXJncyk7DQo+ID4gPiArDQo+ID4gPiArICBp
ZiAoTnVtQXJncyA+IFNCSV9DQUxMX01BWF9BUkdTKSB7DQo+ID4gPiArICAgIFJldC5FcnJvciA9
IFNCSV9FUlJfSU5WQUxJRF9QQVJBTTsNCj4gPiA+ICsgICAgUmV0LlZhbHVlID0gLTE7DQo+ID4g
PiArICAgIHJldHVybiBSZXQ7DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICBmb3IgKEkg
PSAwOyBJIDwgU0JJX0NBTExfTUFYX0FSR1M7IEkrKykgew0KPiA+ID4gKyAgICBpZiAoSSA8IE51
bUFyZ3MpIHsNCj4gPiA+ICsgICAgICBBcmdzW0ldID0gVkFfQVJHIChBcmdMaXN0LCBVSU5UTik7
DQo+ID4gPiArICAgIH0gZWxzZSB7DQo+ID4gPiArICAgICAgLy8gRGVmYXVsdCB0byAwIGZvciBh
bGwgYXJndW1lbnRzIHRoYXQgYXJlIG5vdCBnaXZlbg0KPiA+ID4gKyAgICAgIEFyZ3NbSV0gPSAw
Ow0KPiA+ID4gKyAgICB9DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICBWQV9FTkQgKEFy
Z0xpc3QpOw0KPiA+ID4gKw0KPiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGEwIGFzbSAoImEwIikg
PSBBcmdzWzBdOw0KPiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGExIGFzbSAoImExIikgPSBBcmdz
WzFdOw0KPiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGEyIGFzbSAoImEyIikgPSBBcmdzWzJdOw0K
PiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGEzIGFzbSAoImEzIikgPSBBcmdzWzNdOw0KPiA+ID4g
KyAgcmVnaXN0ZXIgVUlOVE4gIGE0IGFzbSAoImE0IikgPSBBcmdzWzRdOw0KPiA+ID4gKyAgcmVn
aXN0ZXIgVUlOVE4gIGE1IGFzbSAoImE1IikgPSBBcmdzWzVdOw0KPiA+ID4gKyAgcmVnaXN0ZXIg
VUlOVE4gIGE2IGFzbSAoImE2IikgPSAoVUlOVE4pKEZ1bmNJZCk7DQo+ID4gPiArICByZWdpc3Rl
ciBVSU5UTiAgYTcgYXNtICgiYTciKSA9IChVSU5UTikoRXh0SWQpOw0KPiA+ID4gKw0KPiA+ID4g
KyAgYXNtIHZvbGF0aWxlICgiZWNhbGwiIFwNCj4gPiA+ICsgICAgICAgOiAiK3IiIChhMCksICIr
ciIgKGExKSBcDQo+ID4gPiArICAgICAgIDogInIiIChhMiksICJyIiAoYTMpLCAiciIgKGE0KSwg
InIiIChhNSksICJyIiAoYTYpLCAiciIgKGE3KSBcDQo+ID4gPiArICAgICAgIDogIm1lbW9yeSIp
OyBcDQo+ID4gPiArICBSZXQuRXJyb3IgPSBhMDsNCj4gPiA+ICsgIFJldC5WYWx1ZSA9IGExOw0K
PiA+DQo+ID4gV2h5IGlzIGlubGluZSBhc3NlbWJseSB1c2VkIGhlcmU/ICBJIHNlZSB1c2Ugb2Yg
LlMgZmlsZXMgaW4gQmFzZUxpYg0KPiA+IENhbiB0aGlzIGJlIGNvbnZlcnRlZCB0byAuUyBmaWxl
Pw0KPiA+DQo+IEl0IHdhcyBwb3J0ZWQgYXMgaXMgZnJvbSBlZGsyLXBsYXRmb3Jtcy4gSSBjYW4g
Y29udmVydCBpbnRvIC5TIGZpbGUgYW5kDQo+IEkgcHJlZmVyIHRvIGFkZCBpdCBpbiB0aGlzIGxp
YnJhcnkgaXRzZWxmIHRoYW4gQmFzZUxpYi4NCj4gDQo+IFRoYW5rcyEsDQo+IFN1bmlsDQo=