From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.45]) by mx.groups.io with SMTP id smtpd.web11.29426.1676326313658369770 for ; Mon, 13 Feb 2023 14:11:53 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=Enqjyg2u; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.94.45, mailfrom: jeshuas@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AOH5h+tk5eTZK5bLKWcT4HTiBGj+sUjVCq4x9qK5teCK+dKD6L5NRSL9WCj6kul2OCgqlJxIykpIRPyy99U7y5lIu5odB2bTYgm3MXKAKkvswyIJn5TtwN2PUeaFUHhUJXS8VkYyX4ACako094yqTmdNtAkxCqpALyBEXVQk9ZwGclQKTxuOzFxb7DtCNwp8s0FUsifmm4ZN3POyVOhpk/D8bQb1vBfWXWcIWMCF6XPWiPCPY6RMwrI4j0q6qptYHRoUgGKvIezc37fulK5TsD+fP/gG2m1VLy5ZGDaKSKzMoQ5eKoT/7+fp+mGKw2O6/ZCOb3KCHGgr6cMu59LZ4A== 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=sqn7dSLSfQWbYNCHw9pJPAzlzPVUSi0szxPZZOveFgQ=; b=m1zHciQREWSozE+CBLZjJcXtyo8hPRQs8K/aqGLVb/6x1pI/Bh1X1wOV/RajCitLjb2bUyB/jo9VOVS48OkX9Z23ory6nduUyXIhhoOj6H/q2JVxT5CpaEg6X2XJDe/0e+2nXTHjpq3ik+5wD/loPwAjNDLfmSYRoS6+XKSOcgHu79s7/pH1LmXyMEnPjUUOxqZBat9EI5cI6OsKcmLdOU4HncJqCNhQh67yi8Ynfx5E1wl/gWjuoZZP0PTh3DmApSO5RSOoDiLl3t/HIIWMuIX1258LeMSpEZ4pSUphPE2tDmp/c4iLGLHkidz82Ev26T20h1nV6GDy0fIeGqOK4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sqn7dSLSfQWbYNCHw9pJPAzlzPVUSi0szxPZZOveFgQ=; b=Enqjyg2uf5EoKaUwe1lSRKn4/WQrYcZmKzqpS/bStDyMTlJ3qYeLww+LhiyTdgf72ngHTfptpl/+MLPUm1F2AbZjyMwnhjCRAgD8OjRUj1n6H+SM2jjtilvKQleaQ7X2jH5ZmckGC3sdeoNIwaOS3p+XDgWgFrUv66qf/hg5L4uQCOVwc4t1NJOZN0X276Pz2IbXaY9m02GQxNrkDNZxTmq7elPAvv9XP1hLrueBfltzYFy3oJ7YMfanCfy7HBvbH70KPSyzMXPxRGTR4H/kMMriaAlG2YISeG8cZ+9HX8IeXDnNDetnzH85Z64WJaxvGvJ5o2iZQJAeOaZIVcLrbA== Received: from DM6PR12MB3371.namprd12.prod.outlook.com (2603:10b6:5:116::27) by PH7PR12MB5654.namprd12.prod.outlook.com (2603:10b6:510:137::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.22; Mon, 13 Feb 2023 22:11:51 +0000 Received: from DM6PR12MB3371.namprd12.prod.outlook.com ([fe80::16b4:6123:2a9a:8355]) by DM6PR12MB3371.namprd12.prod.outlook.com ([fe80::16b4:6123:2a9a:8355%7]) with mapi id 15.20.6086.023; Mon, 13 Feb 2023 22:11:50 +0000 From: "Jeshua Smith" To: "Ni, Ray" , "Kinney, Michael D" , "devel@edk2.groups.io" , "Demeter, Miki" , "Wang, Jian J" , "Gao, Liming" , "Gao, Zhichao" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg: allow PlatformBootManagerLib to use BootNext Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg: allow PlatformBootManagerLib to use BootNext Thread-Index: AQHZLCyFFUH/0EdIn0Kgv2hFwtSKLq7HAM6AgACredCAAB95wIAFq2fg Date: Mon, 13 Feb 2023 22:11:50 +0000 Message-ID: References: <173BC657AC8EE47A.24231@groups.io> In-Reply-To: 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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR12MB3371:EE_|PH7PR12MB5654:EE_ x-ms-office365-filtering-correlation-id: 4325f242-c995-4814-f788-08db0e0f4e84 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: r62U9zt9QTdFs5BeKPfbmAmRYUa1wPHBQg6DxvW+Wu7OH3UJGhVZERJ19baNH9hLdupOlL5qHQ4eI1U6KnBS9WXsXl9uMhPwQcMbUqwhaNum4LGGSzCl0M3bezic+BVqVPABHixnu7yY4V9jAMO+CnwG7wBs8+GCZpSP4z0wqHnme5T7jyb8lE82TpmdJjT644Tj8jI0NykQrxQJ6xv/aktjXj+Hf4TRndkGPkzUqhm/u9bKIGHd9Gcsk0/o+lii6HasEJIrSZyOSGrf8VMdCkin1HVuJegP0kzsWFMpBcAYiCm2yX4ELR837md+5l6e0dsG2p+HEjM+6VyZvafdWFrtUS5qJe6Lmhkg5SxOxIDcQrRKCHguMTd9zGHlT//twB8ujFWiov/mtjCB+tOQoQ55jybvFCyeONG0cYmdAMVUb05n44uxwURgtmnjdIV1iRPssHGJxRjkR2elbWib2W+efLs7J9njcJi+XuwvnUhT221xmKX3piW9e0MKe9I6/GbRlAGRnddYaeinlr4gVEESN1Jufk2pHoHy3D5VqVzKGhULBxZKaWIJX3XwY2vwQSuH/qSKc1lyhlm28W1qT9BKg9pkQhtmNGDG1+nIlmmr6fksmRdcSF6xiZK0YOO1Imlhz+JlvK/AsLoKWi1keoBaAm8fq6io7iVoX89+PZ+lEiWHpRu0SioGq4nJsuF3Ak878Aqm84XSXRe3X+PzoE3BIJTjfGkOsHiz9isJC+40RoogNPhO+VzR2dQJaLSz x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3371.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(376002)(396003)(366004)(346002)(136003)(451199018)(2906002)(71200400001)(83380400001)(30864003)(5660300002)(8936002)(41300700001)(52536014)(38100700002)(6506007)(26005)(9686003)(86362001)(33656002)(186003)(478600001)(966005)(66899018)(7696005)(53546011)(19627235002)(110136005)(316002)(66446008)(64756008)(66476007)(66556008)(76116006)(66946007)(55016003)(8676002)(38070700005)(122000001)(921005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SDFsUUl4VkJQUHFpRjNjalBuMGIyZkhvRHdCelppTzVqMnQxOG42L2crMEJ6?= =?utf-8?B?RnBQbnpFUThrRnRhQXl5ekxWeWR1Tlljc0VUeWRjd0ZvOWw1SC9MZlQ3ZHVL?= =?utf-8?B?V1h2YlRLSlR2cW5pcDZ6eDBubGVDOTBGaUtENWpqZEFrdVAxTDl4V28xRDl1?= =?utf-8?B?cnl3a2NpYityNmhadVpuc3hFQXZkaGUzbUh2YnlnRE8vcnJDTFBQVnlGa1VI?= =?utf-8?B?T092OWhUTmRERGszSGp1ZGNTV2lrNlRaZEY2Y1NkdFlkcE9SWXZhOS9wRHdE?= =?utf-8?B?bzgyUjlSdjlMc2ZMMmllNUZ4VmRJcUpkL3ZlQmVsM2xkeDJ2Qm5NYlE2bmRr?= =?utf-8?B?aTBSWk1RZWx3YWxMQXpITGJ2aDl0RVNaQlRVOGxYL3NERC9ublBrOTN2bHNF?= =?utf-8?B?Y1VwcnM1aWdyVzdLMWovaUZzQ2dwTitYSVp2UVZwc21BWlYraExocCtXWnZE?= =?utf-8?B?UFlRYVFKN0xEYmw0S3Z2TnhQcXNGQnk0NkkzRVp4RWVYeUljS29FaHJEc2VP?= =?utf-8?B?SUFoRm5QL1o1TXBMUUxWRU0vZW12dER6bVFhQkk3U21FcWErK1IzWlovS3hk?= =?utf-8?B?aWZlTmpXMHVWeWFhbzk5ejFOazl4amhIL0Qzc25tMkFvd1dBOURzYTlhQzlq?= =?utf-8?B?UndEaENSenZKbERUbkFObHMxOXVPVmZiMk5UejM2dXNVODljR25TT0Y1QTVs?= =?utf-8?B?dFF1NHJDdHh4OURPRVI2K3pRa2Z5VkZxK2ViYnNZMzNSTTBsU2JzMzM4VjF2?= =?utf-8?B?SmZaR2Z0Sm1iQVFPajRkSXJ1VVVLeWhNSUVWRkpKZVp4Rzd2V3g4VlRUZmhp?= =?utf-8?B?bTAzNG5oV1htQkJZYURQbDc4S0VvaTRlVDUwaXkwY25ka2ZaZFdhN0lPZ3ow?= =?utf-8?B?M0JwZEl4dnVxNHpNU2FYN1ZlN2ZJMlVSbExlQWdGeDA5VFl2VVRzb29JWElv?= =?utf-8?B?U3pnbm9laEtadDc3eENLRGNPT3c3N0RzaWhGZVlnQ2lQMGwrZm5ZZUwzWU9x?= =?utf-8?B?RkhCRTVDUmFva0pRUTN1WndTMFVTQ2ZNbjdVbjlFVTdQVmdBVnVwZlBvK2oy?= =?utf-8?B?ZnJRQjNSVmVzYW5lZENoeXloR2pFSEhPYW90OWhFYW9Dc0I0RzBPUGdtTlRz?= =?utf-8?B?aWtkNXFiT205bmxFZ09tWlRKc0MwckVjT1hkZUJXKzFBd0h5aVhDaUp2K0lr?= =?utf-8?B?UjJzVnBZdkZiSVBIZm5DNlQxcFNqMzJpMHgzcnlnNkFZZXpBdWJINWE4MWNt?= =?utf-8?B?VHFrZDJ1c2dTN2JwTlNKdFNHUFZHS3U2QVRSZlhBaFdCTXNTNU91WVVSKzNF?= =?utf-8?B?UnpnVnJzeVJWaHA1V0prN0lMS2k0dWdZVjM0R0F6bkF6K0RyTWh0RVI2L000?= =?utf-8?B?eWJ0QkNtQ3orR2ZQWlg2Y1RrcnVQRDVuYms4VllleVNwUVA0NjcyV2JGQzlu?= =?utf-8?B?Y0xmbE5iS05hYm5KRWJzckpCQ3dSRFRFTjZKWEo3VVpaSmdPaEN0M2NoSE9U?= =?utf-8?B?bG9vQnlwM2RDeFBTeXQvK0hiWnJiUEZRRjZZcWRsbEY5eUYwTkRDZ0ZkeEha?= =?utf-8?B?THdSalM2WjdpZFEzenh0ZWloSkd1UUVtdzd1ZzI4SXdRUlR2T0lIY25oWS85?= =?utf-8?B?L3VWM2ZFcFk1UURXaVUrdElnNC9KNXh2SEF0UFMxQjQyanJKSzhRVmllWDBl?= =?utf-8?B?R3hENHVOczNOWllzSTN5RnhMYndXamxWK1dpME02WlkwSDQxa2pjNWlTRzR2?= =?utf-8?B?Ym8rWkV2cmRXVTFPbUJON1BKMWRROXg5WWgwc0daL1B6eFpKbHJ2QVNPNGs3?= =?utf-8?B?Yy82dUpRTmhEUnFmVnhKZGVBZitYZG1WL1dodDFMZEFZaCtMN29LZXlpOFNj?= =?utf-8?B?MWw0QjNaNlJZbnBUMm55cTd6aUJoc2dGSWpodjU2eW96dkE0TWFreVFMZzN1?= =?utf-8?B?blZIM2pKeU1GTCtka2owMmg5U3ZmR2psRjM2NXVncGgydnNVYWFNWjF2L3p4?= =?utf-8?B?VmYrUWFtSURsS2NPT29ta1p5cmpJV3o2RDh2TGl2ZmIxYnplV25XdUwyc2Rk?= =?utf-8?B?dzk4enpPWDdiRXhqWHladmpzRjZWblVYT0Y5ZlRyWnU5WkFjSk5kQ2lhYXIy?= =?utf-8?Q?qllIyd2ueKO+QOi1QoQ2FoT19?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3371.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4325f242-c995-4814-f788-08db0e0f4e84 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2023 22:11:50.7536 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0LRfFtuY6KLG7GO0OnPpifoPXXTzggzWcvDopa+bWCfWdM9SLTnuFVhtT6EVfKAyX60gxXmJsqQBKiEJSoK5VA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5654 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VEw7RFIgLSBUaGUgc3BlYyBpbmRpY2F0ZXMgQm9vdE5leHQgYW5kIEJvb3RPcmRlciBhcmUgdG8g YmUgcHJvY2Vzc2VkIHRvZ2V0aGVyIGF0IHRoZSBwb2ludCBpbiB0aW1lIHdoZXJlIHRoZSBjaG9p Y2UgYWJvdXQgYm9vdCBkZXZpY2UgaXMgYmVpbmcgbWFkZS4gVGhlIGN1cnJlbnQgaW1wbGVtZW50 YXRpb24gYWxsb3dzIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdG8gZnJlZWx5IGNvbnRyb2wgQm9v dE9yZGVyLCBidXQgZXhwbGljaXRseSB0YWtlcyBjb250cm9sIG9mIEJvb3ROZXh0IGF3YXkgZnJv bSBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliLiBUaGlzIHNlZW1zIGNvdW50ZXIgdG8gdGhlIGludGVu dCBvZiB0aGVtIGJlaW5nIHByb2Nlc3NlZCBhbmQgdXNlZCB0b2dldGhlci4NCg0KRGV0YWlsczoN ClRoZSBzcGVjIHNheXMgIlRoZSBCb290TmV4dCB2YXJpYWJsZSBpcyBhIHNpbmdsZSBVSU5UMTYg dGhhdCBkZWZpbmVzIHRoZSBCb290IyMjIyBvcHRpb24gdGhhdCBpcyB0byBiZSB0cmllZCBmaXJz dCBvbiB0aGUgbmV4dCBib290LiBBZnRlciB0aGUgQm9vdE5leHQgYm9vdCBvcHRpb24gaXMgdHJp ZWQgdGhlIG5vcm1hbCBCb290T3JkZXIgbGlzdCBpcyB1c2VkLiIgYW5kICJUaGUgQm9vdEN1cnJl bnQgdmFyaWFibGUgaXMgYSBzaW5nbGUgVUlOVDE2IHRoYXQgZGVmaW5lcyB0aGUgQm9vdCMjIyMg b3B0aW9uIHRoYXQgd2FzIHNlbGVjdGVkIG9uIHRoZSBjdXJyZW50IGJvb3QuIFRoZSBwbGF0Zm9y bSBzZXRzIHRoaXMgdmFyaWFibGUgYmVmb3JlIHNpZ25hbGluZyBFRklfRVZFTlRfR1JPVVBfUkVB RFlfVE9fQk9PVC4iDQoNCkl0IHNlZW1zIGxpa2UgdGhlIHNwZWMgZWZmZWN0aXZlbHkgc2F5cyB0 aGlzIHByb2Nlc3MgaXMgZm9sbG93ZWQ6DQoxLiBTZWxlY3QgYSBkZXZpY2UgZm9yIHRoZSB1cGNv bWluZyBib290LCBwcmVmZXJyaW5nIEJvb3ROZXh0IGFuZCB0aGVuIHRoZSBkZXZpY2VzIGluIEJv b3RPcmRlcidzIG9yZGVyDQoyLiBTZXQgQm9vdEN1cnJlbnQgdG8gdGhlIHNlbGVjdGVkIGRldmlj ZQ0KMy4gU2lnbmFsIEVGSV9FVkVOVF9HUk9VUF9SRUFEWV9UT19CT09UDQo0LiBBdHRlbXB0IHRv IGJvb3QgZnJvbSB0aGUgZGV2aWNlIHNwZWNpZmllZCBieSBCb290Q3VycmVudA0KDQpVbmZvcnR1 bmF0ZWx5LCBpbiBFbmdsaXNoICJuZXh0IiBoYXMgYSBuZWJ1bG91cyBtZWFuaW5nLiBJZiBJIHNh eSB0dXJuIGF0IHRoZSAibmV4dCIgc3RvcGxpZ2h0LCBtb3N0IHBlb3BsZSB1bmRlcnN0YW5kIHRo YXQgSSBtZWFuIHRoZSBsaWdodCBJJ20gYXBwcm9hY2hpbmcgcmlnaHQgbm93IHJhdGhlciB0aGFu IG1lYW5pbmcgc2tpcHBpbmcgInRoaXMiIG9uZSBhbmQgZ29pbmcgdG8gdGhlIG9uZSBhZnRlci4g QW5kIGlmIEkgc2F5IEknbSBnb2luZyB0byBkbyBzb21ldGhpbmcgIm5leHQiIFNhdHVyZGF5LCBt b3N0IHBlb3BsZSBjb25zaWRlciB0aGF0IHRvIG1lYW4gdGhlIHVwY29taW5nIChha2EgInRoaXMi KSBTYXR1cmRheSwgcmF0aGVyIHRoYW4gdGhlIG9uZSBhZnRlciA3IG9yIG1vcmUgZGF5cyBoYXZl IHBhc3NlZC4gU2ltaWxhcmx5LCBmb3IgdGhlIFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgY29kZSB0 aGF0IGlzIHJ1bm5pbmcgYmVmb3JlIHRoZSBib290IGRldmljZSBpcyBzZWxlY3RlZCAoZWZmZWN0 aXZlbHkgU3RlcCAwIGluIHRoZSBsaXN0IEkgd3JvdGUgYWJvdmUpLCBJIHdvdWxkIGV4cGVjdCB0 aGUgIm5leHQiIGJvb3QgdG8gYmUgdGhlIHVwY29taW5nIGF0dGVtcHQgdG8gYm9vdCBhIGRldmlj ZSAoc3RlcCA0KSwgcmF0aGVyIHRoYW4gbWVhbmluZyBza2lwIHRoZSB1cGNvbWluZyBib290IGF0 dGVtcHQgKHN0ZXAgNCkgYW5kIGFwcGx5IGl0IHRvIHRoZSBzdWJzZXF1ZW50IG9uZSAoaS5lLiBz b21ldGltZSBhZnRlciBzdGVwIDQgd2hlbiB5b3UncmUgc3RhcnRpbmcgdGhlIHN0ZXBzIG92ZXIp Lg0KDQpOb3RlOiBUaGUgY3VycmVudCBjb2RlIHdyYXBzIHN0ZXBzIDItNCB1cCBpbnRvIHRoZSBF ZmlCb290TWFuYWdlckJvb3QoJHNlbGVjdGVkX2RldmljZSkgY2FsbC4NCg0KVGhlIGN1cnJlbnQg QmRzRW50cnkgaW1wbGVtZW50YXRpb24gbGltaXRzIHRoZSBhYmlsaXR5IGZvciBjb2RlIHRoYXQg cnVucyBiZWZvcmUgc3RlcCAxIHRvIGNvbnRyb2wgdGhlIGJvb3QgZGV2aWNlIHNlbGVjdGlvbiBw cm9jZXNzIChzdGVwIDEpIGluIHRoZXNlIHdheXM6DQotIEl0IGFsbG93cyBQbGF0Zm9ybUJvb3RN YW5hZ2VyTGliIHRvIHJlYXJyYW5nZSB0aGUgQm9vdE9yZGVyIGxpc3QgdG8gd2hhdGV2ZXIgaXQg d2FudHMgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSB1cGNvbWluZyBib290IGF0dGVtcHQgKHN0ZXAg NCksIGJ1dCBhdCB0aGUgc2FtZSB0aW1lIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhbHNvIHNwZWNp ZmljYWxseSBibG9ja2luZyB0aGF0IHNhbWUgY29kZSBmcm9tIHRlbXBvcmFyaWx5IHNldHRpbmcg YSBCb290TmV4dCB0byBiZSB1c2VkIHdpdGggdGhhdCByZS1hcnJhbmdlZCBsaXN0LiBJbiBvdGhl ciB3b3JkcywgdGhlIGNoYW5nZXMgdG8gdGhlIG5vcm1hbCBCb290T3JkZXIgbGlzdCBhZmZlY3Qg dGhlIHVwY29taW5nIHVzZSBvZiB0aGUgQm9vdE9yZGVyIGxpc3QgKHN0ZXAgMSksIGJ1dCB0aGUg Y2hhbmdlcyB0byBCb290TmV4dCBhcmUgYmVpbmcgZGVsYXllZCB1bnRpbCB0aGUgdXNlIGFmdGVy IHRoYXQgdXBjb21pbmcgdXNlIChzdGVwIHNvbWV0aW1lLWluLXRoZS1mdXR1cmUpLiBUaGlzIHNl ZW1zIGluY29uc2lzdGVudCBzaW5jZSBJIHdvdWxkIGV4cGVjdCBjaGFuZ2VzIHRoYXQgYXJlIG1h ZGUgYXQgdGhlIHNhbWUgdGltZSBieSB0aGUgc2FtZSBjb2RlIHRvIHRoZXNlIHBhaXJlZCB2YXJp YWJsZXMgdG8gYmUgYXBwbGllZCBhdCB0aGUgc2FtZSBwb2ludCBpbiB0aW1lIChpLmUuIHN0ZXAg MSksIG5vdCBzcGxpdCBhY3Jvc3Mgc2VwYXJhdGUgdXNlcyBvZiB0aGUgQm9vdE9yZGVyIGxpc3Qu DQotIElmIHRoZXJlIGhhcHBlbnMgdG8gYmUgYW4gZXhpc3RpbmcgKGNhY2hlZCkgQm9vdE5leHQg dmFsdWUgd2hlbiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIGlzIGNhbGxlZCAoc3RlcCAwKSwgdGhl IGNoYW5nZXMgUGxhdGZvcm1Cb290TWFuYWdlckxpYiBtYWtlcyB0byBCb290T3JkZXIgd2lsbCBi ZSBob25vcmVkIGluIHN0ZXAgNCwgYnV0IHRoZSBjaGFuZ2VzIGl0IG1ha2VzIHRvIEJvb3ROZXh0 IHdpbGwgYmUgc2lsZW50bHkgZGVsZXRlZC4NCg0KDQpBcyBmb3IgdGhlIHR3byBvcHRpb25zIFJh eSBzdWdnZXN0czoNCi0gQ2hhbmdpbmcgQm9vdE9yZGVyIGlzICJwZXJtYW5lbnQiLiBJdCBzZWVt cyBsaWtlbHkgdGhhdCBCb290TmV4dCB3YXMgY3JlYXRlZCBzcGVjaWZpY2FsbHkgdG8gYXZvaWQg bmVlZGluZyB0byBjaGFuZ2UgQm9vdE9yZGVyIHdoZW4geW91IHNpbXBseSBuZWVkIGEgdGVtcG9y YXJ5IGNoYW5nZS4gSXQncyBub3QgY2xlYXIgdG8gbWUgd2hhdCBwdXJwb3NlIGlzIHNlcnZlZCBi eSBkZWxheWluZyBCb290TmV4dCdzIGVmZmVjdCB0byBhIGJvb3QgYWZ0ZXIgdGhlIHVwY29taW5n IG9uZSBvciBieSBzaWxlbnRseSBkZWxldGluZyBpdCBpbnN0ZWFkIG9mIGhvbm9yaW5nIGl0IHdo ZW4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiBtYWtlcyB0aGUgcmVxdWVzdC4NCi0gQ2FsbGluZyBF ZmlCb290TWFuYWdlckJvb3QoKSBkaXJlY3RseSAoZWZmZWN0aXZlbHkgc3RlcHMgMi00KSBmcm9t IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgKGVmZmVjdGl2ZWx5IHN0ZXAgMCkgcmVzdWx0cyBpbiBz a2lwcGluZyB0aGUgZm9sbG93aW5nIHN0ZXBzIHRoYXQgQmRzRW50cnkgZG9lcyBiZXR3ZWVuIFBs YXRmb3JtQm9vdE1hbmFnZXJCZWZvcmVDb25zb2xlKCkgYW5kIHRoZSBjYWxsIHRvIEVmaUJvb3RN YW5hZ2VyQm9vdCgpLiBJdCBzZWVtcyB1bmRlc2lyYWJsZSB0byBza2lwIHRoZW0gb3IgZHVwbGlj YXRlIHRoZW0gaW4gUGxhdGZvcm1Cb290TWFuYWdlckxpYjoNCgktIFN0YXJ0aW5nIEhvdGtleSBT ZXJ2aWNlDQoJLSBQcm9jZXNzaW5nIExvYWQgT3B0aW9ucw0KCS0gQ29ubmVjdGluZyBDb25zb2xl cw0KCS0gUGxhdGZvcm1Cb290TWFuYWdlckFmdGVyQ29uc29sZSgpDQoJLSBFdmFsdWF0aW5nIFBj ZFRlc3RLZXlVc2VkDQoJLSBEdW1waW5nIExvYWRPcHRpb25zDQoJLSBMYXVuY2hpbmcgQm9vdCBN YW5hZ2VyIE1lbnUgYmFzZWQgb24gT3NJbmRpY2F0aW9ucw0KCS0gTGF1bmNoaW5nIFBsYXRmb3Jt UmVjb3ZlcnkgYmFzZWQgb24gT3NJbmRpY2F0aW9ucw0KCS0gQ2xlYXJpbmcgT3NJbmRpY2F0aW9u cyBmb3IgdGhlIHR3byBhYm92ZSB1c2VzDQoJLSBQcm9jZXNzaW5nIGhvdGtleXMNCg0KDQpBcyBm b3IgTWlrZSdzIHF1ZXN0aW9uLCBZZXMgSSB0aGluayB0aGUgVFJVRSBiZWhhdmlvciBpcyB0aGUg Y29ycmVjdCBiZWhhdmlvciBhbmQgSSB3b3VsZCBiZSBoYXBweSB0byBoYXZlIGl0IGJlIHRoYXQg d2F5IGFsd2F5cyB3aXRob3V0IGEgUENEIChzZWUgbXkgZGlzY3Vzc2lvbiBhYm92ZSksIGJ1dCBz aW5jZSBpdCdzIHBvc3NpYmxlIHRoYXQgc29tZW9uZSBzb21ld2hlcmUgd2FzIHJlbHlpbmcgb24g dGhlIGV4aXN0aW5nIGJlaGF2aW9yIEkgZGlkbid0IHdhbnQgdG8gYnJlYWsgdGhlbS4gSSBjYW4n dCB0aGluayBvZiBhbnkgYWR2YW50YWdlIHRoZSBleGlzdGluZyAoRkFMU0UpIGJlaGF2aW9yIGhh cywgYnV0IHRoYXQgYmVoYXZpb3IgZG9lcyBzZWVtIHRvIGJlIGludGVudGlvbmFsIGJhc2VkIG9u IFJheSdzIHJlc3BvbnNlLg0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBO aSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPiANClNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSA5LCAy MDIzIDEwOjQyIFBNDQpUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IEplc2h1YSBTbWl0aCA8amVzaHVhc0Budmlk aWEuY29tPjsgRGVtZXRlciwgTWlraSA8bWlraS5kZW1ldGVyQGludGVsLmNvbT47IFdhbmcsIEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbj47IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KU3ViamVj dDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZzogYWxsb3cgUGxhdGZvcm1C b290TWFuYWdlckxpYiB0byB1c2UgQm9vdE5leHQNCg0KRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0 aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCg0KDQpJdCdzIHRoZSBpbnRlbnRpb24g dG8gY2FjaGUgQm9vdE5leHQgdG8gYXZvaWQgQm9vdE5leHQgY2hhbmdlIGZyb20gUGxhdGZvcm1C b290TWFuYWdlckxpYiB0YWtpbmcgYWZmZWN0IGluIHRoaXMgYm9vdC4NClBlciBzcGVjLCBCb290 TmV4dCBzZWxlY3RzIHRoZSBib290IG9wdGlvbiBvZiBuZXh0IGJvb3QuDQpJZiBQbGF0Zm9ybUJv b3RNYW5hZ2VyTGliIHdhbnRzIHRvIGNoYW5nZSB0aGUgYm9vdCBvcHRpb24gZm9yIHRoaXMgYm9v dCwgZWl0aGVyIGl0IGNhbiBjaGFuZ2UgdGhlIEJvb3RPcmRlciwgb3IgaXQgY2FuIHVzZSBFZmlC b290TWFuYWdlckJvb3QoKSBBUEkgdG8gYm9vdCBkaXJlY3RseS4NCg0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAxMCwgMjAyMyAxMTo1MCBB TQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGplc2h1YXNAbnZpZGlhLmNvbTsgRGVtZXRl ciwgTWlraSANCj4gPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPjsgV2FuZywgSmlhbiBKIA0KPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBM aW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEdhbywgDQo+IFpoaWNoYW8gPHpoaWNo YW8uZ2FvQGludGVsLmNvbT4NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1v ZHVsZVBrZzogYWxsb3cgDQo+IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdG8gdXNlIEJvb3ROZXh0 DQo+DQo+IEhpIEplc2h1YSwNCj4NCj4gSSBwcmVmZXIgdG8gbm90IGFkZCBtb3JlIFBDRHMgaWYg aXQgY2FuIGJlIGF2b2lkZWQuDQo+DQo+IERvIHlvdSB0aGluayB0aGUgY3VycmVudCBiZWhhdmlv ciBpcyBhIGJ1Zy9nYXAgYW5kIHRoYXQgdGhlIHByb3Bvc2VkIA0KPiBuZXcgYmVoYXZpb3Igd2hl biB0aGUgUENEIGlzIFRSVUUgaXMgdGhlIGNvcnJlY3QgYmVoYXZpb3I/DQo+DQo+IFdoYXQgd291 bGQgYmUgdGhlIGltcGFjdCBvZiBub3QgYWRkaW5nIHRoZSBQQ0QgYW5kIGp1c3QgaW1wbGVtZW50 aW5nIA0KPiB0aGUgbmV3IGJlaGF2aW9yPw0KPg0KPiBNaWtlDQo+DQo+DQo+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiBKZXNodWEgU21pdGggdmlhIGdyb3Vwcy5p bw0KPiA+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSA5LCAyMDIzIDEyOjAxIFBNDQo+ID4gVG86 IERlbWV0ZXIsIE1pa2kgPG1pa2kuZGVtZXRlckBpbnRlbC5jb20+DQo+ID4gQ2M6IGRldmVsQGVk azIuZ3JvdXBzLmlvDQo+ID4gU3ViamVjdDogRlc6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1v ZHVsZVBrZzogYWxsb3cNCj4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiB0byB1c2UgQm9vdE5leHQN Cj4gPg0KPiA+IE1pa2ksIHRoaXMgcGF0Y2gsIGFzIHdlbGwgYXMgbXkgcXVlcmllcyBvbiB0aGUg bWFpbGluZyBsaXN0IGFib3V0IA0KPiA+IHRoaXMgdG9waWMNCj4gcHJpb3IgdG8gdGhlIHBhdGNo LCBoYXNuJ3QgcmVjZWl2ZWQgYW55IHJlc3BvbnNlIG9uDQo+ID4gdGhlIG1haWxpbmcgbGlzdC4g T25lIGtpbmQgcGVyc29uIGRpZCByZXNwb25kIHByaXZhdGVseSB3aXRoIHNvbWUNCj4gaW5mb3Jt YXRpb24gYWJvdXQgbXkgcXVlc3Rpb25zLg0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMu aW8+IE9uIEJlaGFsZiBPZg0KPiBKZXNodWEgU21pdGggdmlhIGdyb3Vwcy5pbw0KPiA+IFNlbnQ6 IFRodXJzZGF5LCBKYW51YXJ5IDE5LCAyMDIzIDEwOjM2IEFNDQo+ID4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvDQo+ID4gQ2M6IGppYW4uai53YW5nQGludGVsLmNvbTsgZ2FvbGltaW5nQGJ5b3Nv ZnQuY29tLmNuOw0KPiB6aGljaGFvLmdhb0BpbnRlbC5jb207IHJheS5uaUBpbnRlbC5jb207IEpl c2h1YSBTbWl0aCANCj4gPGplc2h1YXNAbnZpZGlhLmNvbT4NCj4gPiBTdWJqZWN0OiBbZWRrMi1k ZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2c6IGFsbG93DQo+IFBsYXRmb3JtQm9vdE1hbmFnZXJM aWIgdG8gdXNlIEJvb3ROZXh0DQo+ID4NCj4gPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24g b3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiA+DQo+ID4NCj4gPiBDdXJyZW50bHkgQmRz RW50cnkgY2FjaGVzIEJvb3ROZXh0IGJlZm9yZSBjYWxsaW5nDQo+IFBsYXRmb3JtQm9vdE1hbmFn ZXJMaWIgQVBJcywgd2l0aCB0aGUgcmVzdWx0IHRoYXQ6DQo+ID4gLSBJZiBCb290TmV4dCBpcyBh bHJlYWR5IHNldCwgYSBCb290TmV4dCB2YWx1ZSB3cml0dGVuIGJ5IHRoZSBBUElzIA0KPiA+IHdp bGwgYmUNCj4gaWdub3JlZCBhbmQgZGVsZXRlZCwgYW5kIHRoZSBjdXJyZW50IGJvb3Qgd2lsbCB1 c2UNCj4gPiB0aGUgY2FjaGVkIEJvb3ROZXh0IHZhbHVlLg0KPiA+IC0gSWYgQm9vdE5leHQgaXMg bm90IHByZXNlbnQsIGEgQm9vdE5leHQgdmFsdWUgd3JpdHRlbiBieSB0aGUgQVBJcyANCj4gPiB3 aWxsIGhhdmUNCj4gbm8gZWZmZWN0IG9uIHRoZSBjdXJyZW50IGJvb3QsIGJ1dCB3aWxsIGJlIHVz ZWQgYnkNCj4gPiB0aGUgbmV4dCBib290Lg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBhZGRzIFBjZEFs bG93Qm9vdE5leHRGcm9tUGxhdGZvcm1Cb290TWFuYWdlckxpYiBzbyB0aGF0IGENCj4gcGxhdGZv cm0gY2FuIGVuYWJsZSBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIEFQSSBjYWxscyB0byBzZXQNCj4g PiBCb290TmV4dCB0byBjb250cm9sIHRoZSBjdXJyZW50IGJvb3QuDQo+ID4gLSBJZiB0aGUgUENE IGlzIEZBTFNFIChkZWZhdWx0KSwgdGhlcmUgaXMgbm8gY2hhbmdlLg0KPiA+IC0gSWYgdGhlIFBD RCBpcyBUUlVFLCB0aGVuIGEgQm9vdE5leHQgdmFsdWUgd3JpdHRlbiBieSB0aGUNCj4gUGxhdGZv cm1Cb290TWFuYWdlckxpYiBBUElzIHdpbGwgYWZmZWN0IHRoZSBjdXJyZW50IGJvb3QuDQo+ID4N Cj4gPiBTaWduZWQtb2ZmLWJ5OiBKZXNodWEgU21pdGggPGplc2h1YXNAbnZpZGlhLmNvbT4NCj4g PiAtLS0NCj4gPiAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMgICAgICAgICAgICB8ICA3 ICsrKysrDQo+ID4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0R4ZS5pbmYgfCAy NyArKysrKysrKysrLS0tLS0tLS0tDQo+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jk c0VudHJ5LmMgfCAzNA0KPiA+ICsrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiA+ICAzIGZpbGVz IGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+IGIvTWRlTW9kdWxlUGtn L01kZU1vZHVsZVBrZy5kZWMgaW5kZXggOTYwNWM2MTdiNy4uMGU3NDEzMTcxMg0KPiAxMDA2NDQN Cj4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ICsrKyBiL01kZU1v ZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gQEAgLTEwOTMsNiArMTA5MywxMyBAQA0KPiA+ ICAgICMgQFByb21wdCBFbmFibGUgVUVGSSBTdGFjayBHdWFyZC4NCj4gPg0KPiBnRWZpTWRlTW9k dWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U3RhY2tHdWFyZHxGQUxTRXxCT09MRUFOfDANCj4g eDMwMDAxMDU1DQo+ID4NCj4gPiArICAjIyBJbmRpY2F0ZXMgd2hldGhlciBQbGF0Zm9ybUJvb3RN YW5hZ2VyTGliIGNvZGUgY2FuIHNldCBCb290TmV4dA0KPiBmb3IgdGhlIGN1cnJlbnQgYm9vdC4N Cj4gPiArICAjICBJZiBlbmFibGVkLCBzZXR0aW5nIEJvb3ROZXh0IGluIFBsYXRmb3JtQm9vdE1h bmFnZXJMaWIgDQo+ID4gKyBjb250cm9scyB0aGUNCj4gY3VycmVudCBib290LjxCUj48QlI+DQo+ ID4gKyAgIyAgIFRSVUUgIC0gQm9vdE5leHQgdmFsdWUgZnJvbSBQbGF0Zm9ybUJvb3RNYW5hZ2Vy TGliIHdpbGwgYWZmZWN0IHRoZQ0KPiBjdXJyZW50IGJvb3QuPEJSPg0KPiA+ICsgICMgICBGQUxT RSAtIEJvb3ROZXh0IHZhbHVlIGZyb20gUGxhdGZvcm1Cb290TWFuYWdlckxpYiB3aWxsIGFmZmVj dCB0aGUNCj4gc3Vic2VxdWVudCBib290IChvciBiZSBpZ25vcmVkIGlmIGFscmVhZHkgc2V0KS48 QlI+DQo+ID4gKyAgIyBAUHJvbXB0IEFsbG93IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgdG8gc2V0 IEJvb3ROZXh0IGZvciB0aGUNCj4gY3VycmVudCBib290Lg0KPiA+ICsNCj4gPiArDQo+IGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RBbGxvd0Jvb3ROZXh0RnJvbVBsYXRmb3JtQm9v dE0NCj4gYW5hZ2VyDQo+ID4gKyBMaWJ8RkFMU0V8Qk9PTEVBTnwweDMwMDAxMDU2DQo+ID4gKw0K PiA+ICBbUGNkc0ZpeGVkQXRCdWlsZCwgUGNkc1BhdGNoYWJsZUluTW9kdWxlXQ0KPiA+ICAgICMj IER5bmFtaWMgdHlwZSBQQ0QgY2FuIGJlIHJlZ2lzdGVyZWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9y IFBjZCANCj4gPiBzZXR0aW5nDQo+IGFjdGlvbi4NCj4gPiAgICAjICBQY2RNYXhQZWlQY2RDYWxs QmFja051bWJlclBlclBjZEVudHJ5IGluZGljYXRlcyB0aGUgbWF4aW11bQ0KPiBudW1iZXIgb2Yg Y2FsbGJhY2sgZnVuY3Rpb24gZGlmZiAtLWdpdA0KPiA+IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9CZHNEeGUvQmRzRHhlLmluZg0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jk c0R4ZS5pbmYNCj4gPiBpbmRleCA1YmFjNjM1ZGVmLi5iN2EzNTYwZjVmIDEwMDY0NA0KPiA+IC0t LSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0R4ZS5pbmYNCj4gPiArKysgYi9N ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNEeGUuaW5mDQo+ID4gQEAgLTg1LDE5ICs4 NSwyMCBAQA0KPiA+ICAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RVZWZpVmFyaWFibGVE ZWZhdWx0TGFuZ0RlcHJlY2F0ZSAgICAjIw0KPiBDT05TVU1FUw0KPiA+DQo+ID4gIFtQY2RdDQo+ ID4gLSAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFVlZmlWYXJpYWJsZURlZmF1bHRMYW5n Q29kZXMgICAgICAgICAgICAjIw0KPiBDT05TVU1FUw0KPiA+IC0gIGdFZmlNZGVQa2dUb2tlblNw YWNlR3VpZC5QY2RVZWZpVmFyaWFibGVEZWZhdWx0TGFuZyAgICAgICAgICAgICAgICAgIyMNCj4g U09NRVRJTUVTX0NPTlNVTUVTDQo+ID4gLSAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFVl ZmlWYXJpYWJsZURlZmF1bHRQbGF0Zm9ybUxhbmdDb2Rlcw0KPiAjIyBDT05TVU1FUw0KPiA+IC0g IGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RVZWZpVmFyaWFibGVEZWZhdWx0UGxhdGZvcm1M YW5nICAgICAgICAgIyMNCj4gQ09OU1VNRVMNCj4gPiAtICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkSGFyZHdhcmVFcnJvclJlY29yZExldmVsICAgICAgICAgICAgICAgICMjDQo+IENPTlNV TUVTDQo+ID4gLSAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFBsYXRmb3JtQm9vdFRpbWVP dXQgICAgICAgICAgICAgICAgICAgICAjIw0KPiBDT05TVU1FUw0KPiA+IC0gIGdFZmlNZGVNb2R1 bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RGaXJtd2FyZVZlbmRvciAgICAgICAgICAgICAgICAgICAg IyMNCj4gQ09OU1VNRVMNCj4gPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNk RmlybXdhcmVSZXZpc2lvbiAgICAgICAgICAgICAgICAgICMjDQo+IENPTlNVTUVTDQo+ID4gLSAg Z0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENvbkluQ29ubmVjdE9uRGVtYW5kDQo+ ICMjIENPTlNVTUVTDQo+ID4gLSAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVy cm9yQ29kZVNldFZhcmlhYmxlICAgICAgICAgICAgICAjIw0KPiBTT01FVElNRVNfQ09OU1VNRVMN Cj4gPiAtICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVGVzdEtleVVzZWQgICAg ICAgICAgICAgICAgICAgICAgICMjDQo+IENPTlNVTUVTDQo+ID4gLSAgZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZENhcHN1bGVPbkRpc2tTdXBwb3J0ICAgICAgICAgICAgICAjIw0K PiBDT05TVU1FUw0KPiA+IC0gIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RQbGF0 Zm9ybVJlY292ZXJ5U3VwcG9ydA0KPiAjIyBDT05TVU1FUw0KPiA+ICsgIGdFZmlNZGVQa2dUb2tl blNwYWNlR3VpZC5QY2RVZWZpVmFyaWFibGVEZWZhdWx0TGFuZ0NvZGVzDQo+ICMjIENPTlNVTUVT DQo+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFVlZmlWYXJpYWJsZURlZmF1bHRM YW5nICAgICAgICAgICAgICAgICAgICAgICAjIw0KPiBTT01FVElNRVNfQ09OU1VNRVMNCj4gPiAr ICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVWVmaVZhcmlhYmxlRGVmYXVsdFBsYXRmb3Jt TGFuZ0NvZGVzDQo+ICMjIENPTlNVTUVTDQo+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlk LlBjZFVlZmlWYXJpYWJsZURlZmF1bHRQbGF0Zm9ybUxhbmcNCj4gIyMgQ09OU1VNRVMNCj4gPiAr ICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkSGFyZHdhcmVFcnJvclJlY29yZExldmVsDQo+ ICMjIENPTlNVTUVTDQo+ID4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFBsYXRmb3Jt Qm9vdFRpbWVPdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAjIw0KPiBDT05TVU1FUw0KPiA+ ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RGaXJtd2FyZVZlbmRvcg0KPiAj IyBDT05TVU1FUw0KPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RGaXJt d2FyZVJldmlzaW9uDQo+ICMjIENPTlNVTUVTDQo+ID4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZENvbkluQ29ubmVjdE9uRGVtYW5kDQo+ICMjIENPTlNVTUVTDQo+ID4gKyAg Z0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEVycm9yQ29kZVNldFZhcmlhYmxlDQo+ ICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RUZXN0S2V5VXNlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMNCj4gQ09O U1VNRVMNCj4gPiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ2Fwc3VsZU9u RGlza1N1cHBvcnQNCj4gIyMgQ09OU1VNRVMNCj4gPiArICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5T cGFjZUd1aWQuUGNkUGxhdGZvcm1SZWNvdmVyeVN1cHBvcnQNCj4gIyMgQ09OU1VNRVMNCj4gPiAr DQo+ID4gKw0KPiBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQWxsb3dCb290TmV4 dEZyb21QbGF0Zm9ybUJvb3RNDQo+IGFuYWdlcg0KPiA+ICsgTGliICMjIENPTlNVTUVTDQo+ID4N Cj4gPiAgW0RlcGV4XQ0KPiA+ICAgIFRSVUUNCj4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtn L1VuaXZlcnNhbC9CZHNEeGUvQmRzRW50cnkuYw0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwv QmRzRHhlL0Jkc0VudHJ5LmMNCj4gPiBpbmRleCA3NjZkZGUzYWFlLi42NDUwNDA2Y2NlIDEwMDY0 NA0KPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0VudHJ5LmMNCj4g PiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jDQo+ID4gQEAg LTc4NywxNSArNzg3LDE5IEBAIEJkc0VudHJ5ICgNCj4gPg0KPiA+ICAgIC8vDQo+ID4gICAgLy8g Q2FjaGUgdGhlICJCb290TmV4dCIgTlYgdmFyaWFibGUgYmVmb3JlIGNhbGxpbmcgYW55DQo+IFBs YXRmb3JtQm9vdE1hbmFnZXJMaWIgQVBJcw0KPiA+IC0gIC8vIFRoaXMgY291bGQgYXZvaWQgdGhl ICJCb290TmV4dCIgc2V0IGJ5IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIgDQo+ID4gYmUNCj4gY29u c3VtZWQgaW4gdGhpcyBib290Lg0KPiA+IC0gIC8vDQo+ID4gLSAgR2V0RWZpR2xvYmFsVmFyaWFi bGUyIChFRklfQk9PVF9ORVhUX1ZBUklBQkxFX05BTUUsIChWT0lEDQo+ICoqKSZCb290TmV4dCwg JkRhdGFTaXplKTsNCj4gPiAtICBpZiAoRGF0YVNpemUgIT0gc2l6ZW9mIChVSU5UMTYpKSB7DQo+ ID4gLSAgICBpZiAoQm9vdE5leHQgIT0gTlVMTCkgew0KPiA+IC0gICAgICBGcmVlUG9vbCAoQm9v dE5leHQpOw0KPiA+IC0gICAgfQ0KPiA+ICsgIC8vIGlmIHRoZSBQbGF0Zm9ybSBpc24ndCBhbGxv d2VkIHRvIG92ZXJyaWRlIEJvb3ROZXh0Lg0KPiA+ICsgIC8vIElmICJCb290TmV4dCIgd2FzIGFs cmVhZHkgc2V0LCBhICJCb290TmV4dCIgdmFsdWUgc2V0IGluIA0KPiA+ICsgUGxhdGZvcm1Cb290 TWFuYWdlckxpYiBBUElzICAvLyB3aWxsIGJlIGlnbm9yZWQ7IG90aGVyd2lzZSBpdCB3aWxsIA0K PiA+ICsgbm90DQo+IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IGJvb3QuDQo+ID4gKyAgLy8N Cj4gPiArICBpZiAoIVBjZEdldEJvb2wgKFBjZEFsbG93Qm9vdE5leHRGcm9tUGxhdGZvcm1Cb290 TWFuYWdlckxpYikpIHsNCj4gPiArICAgIEdldEVmaUdsb2JhbFZhcmlhYmxlMiAoRUZJX0JPT1Rf TkVYVF9WQVJJQUJMRV9OQU1FLCAoVk9JRA0KPiAqKikmQm9vdE5leHQsICZEYXRhU2l6ZSk7DQo+ ID4gKyAgICBpZiAoRGF0YVNpemUgIT0gc2l6ZW9mIChVSU5UMTYpKSB7DQo+ID4gKyAgICAgIGlm IChCb290TmV4dCAhPSBOVUxMKSB7DQo+ID4gKyAgICAgICAgRnJlZVBvb2wgKEJvb3ROZXh0KTsN Cj4gPiArICAgICAgfQ0KPiA+DQo+ID4gLSAgICBCb290TmV4dCA9IE5VTEw7DQo+ID4gKyAgICAg IEJvb3ROZXh0ID0gTlVMTDsNCj4gPiArICAgIH0NCj4gPiAgICB9DQo+ID4NCj4gPiAgICAvLw0K PiA+IEBAIC0xMDQ4LDYgKzEwNTIsMjAgQEAgQmRzRW50cnkgKA0KPiA+DQo+ID4gICAgICBFZmlC b290TWFuYWdlckhvdGtleUJvb3QgKCk7DQo+ID4NCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBJ ZiBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIEFQSXMgYXJlIGFsbG93ZWQgdG8gb3ZlcnJpZGUgDQo+ ID4gKyBCb290TmV4dCwNCj4gcmVhZCBpdCBqdXN0IGJlZm9yZSB1c2UNCj4gPiArICAgIC8vDQo+ ID4gKyAgICBpZiAoUGNkR2V0Qm9vbCAoUGNkQWxsb3dCb290TmV4dEZyb21QbGF0Zm9ybUJvb3RN YW5hZ2VyTGliKSkgew0KPiA+ICsgICAgICBHZXRFZmlHbG9iYWxWYXJpYWJsZTIgKEVGSV9CT09U X05FWFRfVkFSSUFCTEVfTkFNRSwgKFZPSUQNCj4gKiopJkJvb3ROZXh0LCAmRGF0YVNpemUpOw0K PiA+ICsgICAgICBpZiAoRGF0YVNpemUgIT0gc2l6ZW9mIChVSU5UMTYpKSB7DQo+ID4gKyAgICAg ICAgaWYgKEJvb3ROZXh0ICE9IE5VTEwpIHsNCj4gPiArICAgICAgICAgIEZyZWVQb29sIChCb290 TmV4dCk7DQo+ID4gKyAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICBCb290TmV4dCA9IE5V TEw7DQo+ID4gKyAgICAgIH0NCj4gPiArICAgIH0NCj4gPiArDQo+ID4gICAgICBpZiAoQm9vdE5l eHQgIT0gTlVMTCkgew0KPiA+ICAgICAgICAvLw0KPiA+ICAgICAgICAvLyBEZWxldGUgIkJvb3RO ZXh0IiBOViB2YXJpYWJsZSBiZWZvcmUgdHJhbnNmZXJyaW5nIGNvbnRyb2wgDQo+ID4gdG8gaXQg dG8NCj4gcHJldmVudCBsb29wcy4NCj4gPiAtLQ0KPiA+IDIuMTcuMQ0KPiA+DQo+ID4NCj4gPg0K PiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KDQo=