From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 5A803740035 for ; Wed, 15 Nov 2023 19:36:21 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=a6vom30r5p+D0bppQWDPsLw9I4fXxc8AziJyXhKikKU=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1700076979; v=1; b=rmleAq4Dnm7nqJt2LFg+wmhNCSJUMh51fabRhOQy0GPCR46JNqqMWIMUpEIwanhC4LTBVy9L lO8OhSuwnDpBTe1L7WmJsWPonviZaeDfmRq7m7GOWNaqQlTggmEk7E4Ky145+JzBhJ/C53fACsK FNF0qFZDU6vTJeRxbd03yaAg= X-Received: by 127.0.0.2 with SMTP id XXcWYY7687511xxE6cnb8u7C; Wed, 15 Nov 2023 11:36:19 -0800 X-Received: from NAM04-MW2-obe.outbound.protection.outlook.com (NAM04-MW2-obe.outbound.protection.outlook.com [40.107.101.44]) by mx.groups.io with SMTP id smtpd.web10.22739.1700076979076766134 for ; Wed, 15 Nov 2023 11:36:19 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IbuT90st/2ZNoRLHMdz778IOyOB+BSjQ0lwmin8zvCM6OQ6Ne6m+hbemf5ZvJsbL/jqbz4t5t/i072hsuW+smrZxULVcZvzi0vMLPr3P/J0sZpjo9DNzhuG/BK1s+JDi0PukthPJW4JVoiQEyexsM8Yz1V9DpkjE6LVfv0DIV/kCIFjrNMxqCGGswgZm51HsIEpapXJW1+lf/OtiOFLxfcciovZm/Ece3pn6qu4pupQvXyFzxsp3wF8ETAfs/CY/lQ3yq52z4F8P1vUtl0pSLjp8+O5MQkvYxx358VyYKAFUUuuHOpzeSM5vyPlSgnGuisvBUQ0FJ4c0NJGBtSAhTA== 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=cgGFNstEr0rMgf4DZoaSykCCu7+YD1wRSkIk8Qc1bys=; b=ktsdxuTxGHGiMmiVb9nl4b8mm0wyCBlndgwQdnJFhfOIfCzJvJw0DymELu+Gas3d3DPM9MhyKE3LVp23azoPqsvw+x3pnqh+guk4cJp9+XUuni2tKbq7NeSXquDQpvKe7hZjxlqcJj8owxC3ZcoyXuQTGWtrneFirPwymNUcXDHCfaSwJu/Wdrko1FqcdTFkUvEYhE61LZr3dAyRVVj93B2xl/AyXbagcYizoF0/a/SIA8OnhKnlPegv3ero4VJVyF2IFW/O4lwhw7pti1q6A5RYMSUpidG8ZIBfZrRNxCYI6U7FFPsJpmzkAZeDEqx2AoQ3tDS4VmvEoME5WgkYdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ami.com; dmarc=pass action=none header.from=ami.com; dkim=pass header.d=ami.com; arc=none X-Received: from BLAPR10MB5185.namprd10.prod.outlook.com (2603:10b6:208:328::16) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.21; Wed, 15 Nov 2023 19:36:12 +0000 X-Received: from BLAPR10MB5185.namprd10.prod.outlook.com ([fe80::9dc0:d4e1:1d40:3e33]) by BLAPR10MB5185.namprd10.prod.outlook.com ([fe80::9dc0:d4e1:1d40:3e33%4]) with mapi id 15.20.7002.015; Wed, 15 Nov 2023 19:36:09 +0000 From: "Igor Kulchytskyy via groups.io" To: Mike Maslenkin CC: Leif Lindholm , "devel@edk2.groups.io" , Abner Chang , Nickle Wang Subject: Re: [edk2-devel] [PATCH v5 2/2] RedfishPkg: RedfishDiscoverDxe: Optimize the Redfish Discover flow Thread-Topic: [EXTERNAL] Re: [edk2-devel] [PATCH v5 2/2] RedfishPkg: RedfishDiscoverDxe: Optimize the Redfish Discover flow Thread-Index: AQHaFwbPXAEHRBmyU0+CgaKub9bN4rB6EVqAgAAYklCAAFNSgIAAy7OAgAAXrlCAAFQXAIAAAeRwgAAOYICAAAHo0A== Date: Wed, 15 Nov 2023 19:36:09 +0000 Message-ID: References: <20231114142815.1604-1-igork@ami.com> <3e8c08dc-a665-41f1-8c51-d4e2743bdac1@quicinc.com> <2f8fbb9f-bca8-4771-9178-6f0507ad089e@quicinc.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BLAPR10MB5185:EE_|PH7PR10MB5830:EE_ x-ms-office365-filtering-correlation-id: d95b01a5-dd1a-4fd5-e2c3-08dbe6121e43 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: otdUFsfl46PTeW5T0RzKRm6v6NgY7HXxVFRlkdti1+zcVo1i+j7UyKUaEWnUL4323mwi95lqZdNwdf8jyWwyYGv9bsIcHrclJ0gjMoaOdER7svMfl52OdjnwgteCQu+mP/OnnUoa0MTcfDS2BQTG1iAhx6vJNrth+3gjGcfINUsUo4Y1rTMd6D5aAp7RcCUREQCYI7BYQRs/+9JDnDj8+Iv3hVvI5Cwzjz7Ng7gNMeOywRQ1whg7ZAz6DiJHWoCmoUNnpfiMzdbNbxExe3s97ZW2ZdNb8HefQRUwnUYkU9TfeahmTnHJr6tIahN+AYAOZM6QLzfJno14Pj/3rlI9a+bCqbHcAXRSTWPGN2YMLfODp8p9PtSbUqhGiaVjd4BZNQEfj50ska66ZZvEXc19geNUT7DOaeVCHrqADypVaBsHJq1m2CnHBSwhOokCQDKmVUHMcrpadc5qrXJRg5n+9P7CjL6yWwhzwp8gNP41e4DLaAFP7OeAqx1O/mSZWZwTaOiGOm/tcNWtzEzYJ63XFWGy7n8u6w0rO7NM0P2LcT222b7nHyHIDRIdNuuBgJLiuIaF/ooYxTZWfWzmNt5xgxkZDeAUQgrXnyxMvpjSAlnqs+/xd3GyUFCbJNuRmY6HfmohKqtGoj46Y2SMUUV2RzNSoCufhchaMOn/6UjLOX8= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L2hMSFNGeEJOcHdCb0ZwMm96MUorcUV6NFpwYk1NRE9uajdMdEV3MDBoZjJa?= =?utf-8?B?Qkp5ZXVhQ2x6MTZZVXJ1YnU4WWhKQnc0VlpLenVsdnFOVWx0NHFKNEtWT1h0?= =?utf-8?B?RkZ2bWdVdnFMaFFIOC9COHBZTnJkUWJ3UDM5Y2pWYjUwK3E1U2tQRExxbFo3?= =?utf-8?B?bGJ2cGVSWGc5Rk5UNTdlekhqc0ZpUU9NeDBRNzRNdit2RnRXaHVBYUZRMGd1?= =?utf-8?B?NXZhRlJPUzlBQmI1aW8wSDltUllEWk5wVU1GVnZMQStHWVNUbk5SVC93Z3c1?= =?utf-8?B?MDVyY2ZEMWhxOU9XV3E2cU9WaFdkV1RlUFAvNXZucmRZOXJMNnZocGwwVVJI?= =?utf-8?B?V0dnb2E3c1BVVVB3dGJvSWF6U3JTR29oZXg0cUhJQzNzdC9HL1FIS0VOclFu?= =?utf-8?B?ODBWOVgrVHcramZ0cFE5cW5DWk1LR2RWR3V4WXNLMmRFU1hxR0VWQVBMcStk?= =?utf-8?B?a0U1SWxLdDlLaDQrVVY4VXYySEVLd2RhYi9zeXAvN3ozU3JMQk92Y0dCRDVj?= =?utf-8?B?Mm1LL1Q3RkZSdWhON2dXZ0RpbktkTGo4dW80K3NPeHVoNmFaSjVoQ1BYNHBm?= =?utf-8?B?SkVrbzJoR3NhOENHOHN5UVZvYWtkSW5uVWdERjZDTi9TbE9sakI3N1V5bTE5?= =?utf-8?B?MmdVanozN3ZhVThLam44MXdMYlNxdmMrVXRXOHpUV0lSQ2swbzllbkJ2d1Iy?= =?utf-8?B?M1czVEYvUDYyVWVUSVFiRGpuU1RZeFI1TzNXcS9yZEhSVmJJR2N3SmU5Tzdn?= =?utf-8?B?L3RkVTUvbDdFMm1lK0kwU2o0RGZ6SFVPK0JWNmEyWXRiNmIwNGlLcTN3VEQv?= =?utf-8?B?SW9wR1B4VE1vcjQ1dVFLcmRRR1NPZUhlWXc3Vk1GUGRsUzhnT3JLRkZHU3Nj?= =?utf-8?B?bFJvRjdaaWY5SEt0Q1hXQzNnRFZnTGYxWkY0YjZyejZqaVh4c1UreTVjbSt3?= =?utf-8?B?Z0RKckRVRjJYSFhLWGFuTHBZQitCZTVVRDFHbHpicUo0bGVPYzB0QTB2QzJT?= =?utf-8?B?dC9WcW9FUVFVaHgyM3BXS2JhNk91TFJqUTlkTitGQTViNVQ2WFNLTGZqV1Zz?= =?utf-8?B?Qmh6QmJwVElsT3YvbDZ6WlY1R0h5K0VHNTdrRVVFc0xLMnVkd3RaSDFoYmZa?= =?utf-8?B?OTFtNk9OclBiNzduTFJxVTAwaXR3Ynk3ZlprN0Q3Z3FrUjQ5aEs2Tms0K2Nv?= =?utf-8?B?TlBLUjB4V1ZkRTdxSDE3eHlwZnhHaWNsYzQxWkFKYzl5SzVsL2x6ZVh5UTBH?= =?utf-8?B?cjJCVHJSVlVjZGdzbVIyRzVSSVdqS1ZzTDU0eEhnSTFBT2N1czNtRHorRnZo?= =?utf-8?B?SWcxRnRkWDNqOEFzdEtUOWd3VnR3SURPcHA3b1RCSTN3VGZhSzFVcGVmdkJ1?= =?utf-8?B?Z0pFMTVRUFJvU0IxNGFHRVA1bEZCYnhnZWVWWTdYR3FaYVZBWG9vSWMraVBh?= =?utf-8?B?citRTXdXRHo2eTJ1aDdUdDFVMW55NUpoM2hHbjZwZEMxZG0wRHNaTzJFWGxx?= =?utf-8?B?QzRxcEcvT2JpRFgzWkxtZFg5d3NCY0w5RTl3ODI5VGJUaERUVCtKcHJUOHFh?= =?utf-8?B?clhuN1M1NUhoZTJ2MWZvbWdZc2ZKNmMzNExUMFRlNWZFRWhoUkdjTnFGeGFx?= =?utf-8?B?dzJuSGFOaHVIQ3NDcUNtZXdsaEVYUFBmNzZ2V0U1ekJjenNtK3ZsSmVMak9F?= =?utf-8?B?YSthbUhZek5wOHFyTWVYNUs3TzVPSnJXN1psSmw5S25KMTgvVWVLTVlucUQr?= =?utf-8?B?L1BpcThVRTNtT2p4STAzRm5jVTJNb1pZL05kQTF1bys1ZGV6MnFYSVkrbTlS?= =?utf-8?B?amsrWkIzaGJLTXFOVVEwQ2JKTnd3aVZBa2NNRStuMDhXTUkxdGpqa296WE5Q?= =?utf-8?B?WlVRakMrV21FY3RLMHR6SUNoZW1BZ0FnQ0EzVWNxcUw2ZjBXU0k5dHU3djZ2?= =?utf-8?B?MGUyZ2kvaWhRN0FQalVmZFVoUkJDd1N5T0RzcmFaalZOMngyUnVvajhuaThx?= =?utf-8?B?bzcyZHMvYVRGalJMMURmNHloQ3NUZWg2MGdCOUorYVNwN0grZFN0U1d5Y05S?= =?utf-8?B?Y2dtRGx0RkhnMno5c1diTTZZamhrbjFqSnp3ODI1KzBuTzJtUkdkQlZJN3p6?= =?utf-8?Q?IUAw=3D?= MIME-Version: 1.0 X-OriginatorOrg: ami.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB5185.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d95b01a5-dd1a-4fd5-e2c3-08dbe6121e43 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2023 19:36:09.4161 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 27e97857-e15f-486c-b58e-86c2b3040f93 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: syUHEcsrwGWw5IisE34q3n2C2FQzEbmJAuY7KC7TeEFCornak1Sza93mfpVaJIkr X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,igork@ami.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: Y6J7omYyqyWaU4rqLG2JQDS9x7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=rmleAq4D; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBNaWtlIE1hc2xlbmtpbiA8bWlr ZS5tYXNsZW5raW5AZ21haWwuY29tPg0KU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAxNSwgMjAy MyAyOjI2IFBNDQpUbzogSWdvciBLdWxjaHl0c2t5eSA8aWdvcmtAYW1pLmNvbT4NCkNjOiBMZWlm IExpbmRob2xtIDxxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW87IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPjsgTmlja2xlIFdhbmcgPG5pY2ts ZXdAbnZpZGlhLmNvbT4NClN1YmplY3Q6IFJlOiBbRVhURVJOQUxdIFJlOiBbZWRrMi1kZXZlbF0g W1BBVENIIHY1IDIvMl0gUmVkZmlzaFBrZzogUmVkZmlzaERpc2NvdmVyRHhlOiBPcHRpbWl6ZSB0 aGUgUmVkZmlzaCBEaXNjb3ZlciBmbG93DQoNCkhpIElnb3IsDQoNCk9uIFdlZCwgTm92IDE1LCAy MDIzIGF0IDk6MzfigK9QTSBJZ29yIEt1bGNoeXRza3l5IDxpZ29ya0BhbWkuY29tPiB3cm90ZToN Cj4NCj4gSGkgTWlrZSwNCj4gTXkgaW1wbGVtZW50YXRpb24gb2YgY2hlY2tpbmcgdGhlIElwVHlw ZSBzdXBwb3NlZCB0byBiZSBsaWtlIHRoaXM6DQo+IC8qKg0KPiAgIENoZWNrIGlmIE5ldHdvcmsg UHJvdG9jb2wgVHlwZSBtYXRjaGVzIHdpdGggU01CSU9TIFR5cGUgNDIgSVAgQWRkcmVzcyBUeXBl Lg0KPg0KPiAgIEBwYXJhbVtpbl0gIE5ldHdvcmtQcm90b2NvbFR5cGUgIFRoZSBOZXR3b3JrIFBy b3RvY29sIFR5cGUgdG8gY2hlY2sgd2l0aC4NCj4gICBAcGFyYW1baW5dICBJcFR5cGUgICAgICAg ICAgICAgICBUaGUgSG9zdCBJUCBBZGRyZXNzIFR5cGUgZnJvbSBTTUJJT1MgVHlwZSA0Mi4NCj4g KiovDQo+IFNUQVRJQw0KPiBCT09MRUFODQo+IElzVGNwVHlwZU1hdGNoICgNCj4gICBJTiBVSU5U MzIgTmV0d29ya1Byb3RvY29sVHlwZSwNCg0KTmV0d29ya1Byb3RvY29sVHlwZSBoYXMgZGVmaW5l ZCB0eXBlIC0NCk5FVFdPUktfSU5URVJGQUNFX1BST1RPQ09MX1RZUEUsIHdoeSBkb24ndCB5b3Ug dXNlIGl0Lg0KQWguIEkgc2VlIGl0IGlzIGRlY2xhcmVkIGFzIFVJTlQzMiBpbiBSRURGSVNIX0RJ U0NPVkVSX1JFUVVJUkVEX1BST1RPQ09MLi4uIE9rLg0KSXQncyBub3QgY2xlYXIgd2h5LCBiZWNh dXNlIGl0IGlzIGludGVybmFsIHN0cnVjdHVyZS4NCg0KPiAgIElOIFVJTlQ4IElwVHlwZQ0KPiAg ICkNCj4gew0KPiAgIGlmICgoTmV0d29ya1Byb3RvY29sVHlwZSA9PSBQcm90b2NvbFR5cGVUY3A0 KSAmJiAoSXBUeXBlID09IFJFREZJU0hfSE9TVF9JTlRFUkZBQ0VfSE9TVF9JUF9BRERSRVNTX0ZP Uk1BVF9JUDQpKSB7DQo+ICAgICByZXR1cm4gVFJVRTsNCj4gICB9DQo+ICAgaWYgKChOZXR3b3Jr UHJvdG9jb2xUeXBlID09IFByb3RvY29sVHlwZVRjcDYpICYmIChJcFR5cGUgPT0gUkVERklTSF9I T1NUX0lOVEVSRkFDRV9IT1NUX0lQX0FERFJFU1NfRk9STUFUX0lQNikpIHsNCj4gICAgIHJldHVy biBUUlVFOw0KPiAgIH0NCj4gICByZXR1cm4gRkFMU0U7DQo+IH0NCj4NCj4gQW5kIHRoZW4gaW4g QnVpbGR1cE5ldHdvcmtJbnRlcmZhY2UgZnVuY3Rpb24uDQo+DQo+ICAgLy8gR2V0IElQIFR5cGUg dG8gZmlsdGVyIG91dCB1bm5lY2Vzc2FyeSBuZXR3b3JrIHByb3RvY29sIGlmIHBvc3NpYmxlDQo+ ICAgSXBUeXBlID0gR2V0SGlJcFByb3RvY29sVHlwZSAoKTsNCj4NCj4gICBmb3IgKEluZGV4ID0g MDsgSW5kZXggPCBMaXN0Q291bnQ7IEluZGV4KyspIHsNCj4gICAgIC8vIENoZWNrIElQIFR5cGUg YW5kIHNraXAgYW4gdW5uZWNlc3NhcnkgbmV0d29yayBwcm90b2NvbCBpZiBkb2VzIG5vdCBtYXRj aA0KPiAgICAgaWYgKCFJc1RjcFR5cGVNYXRjaCAobVJlcXVpcmVkUHJvdG9jb2xbSW5kZXhdLlBy b3RvY29sVHlwZSwgSXBUeXBlKSkgew0KPiAgICAgICBjb250aW51ZTsNCj4gICAgIH0NCg0KU28s IHdoZXJlIGlzIFJFREZJU0hfSE9TVF9JTlRFUkZBQ0VfSE9TVF9JUF9BRERSRVNTX0ZPUk1BVF9V TktOT1dOIGhhbmRsZWQgbm93Pw0KDQpJZiBJcFR5cGUgPT0gUkVERklTSF9IT1NUX0lOVEVSRkFD RV9IT1NUX0lQX0FERFJFU1NfRk9STUFUX1VOS05PV04NCklzVGNwVHlwZU1hdGNoKCkgYWx3YXlz IHJldHVybnMgRkFMU0UsDQpzbyAhSXNUY3BUeXBlTWF0Y2goKSBnaXZlcyBUUlVFIGFuZCB3ZSBz a2lwIHRoaXMgaXRlcmF0aW9uLg0KRWZmZWN0aXZlbHkgdGhpcyBtZWFucw0KaWYgKElwVHlwZSAg PT0gUkVERklTSF9IT1NUX0lOVEVSRkFDRV9IT1NUX0lQX0FERFJFU1NfRk9STUFUX1VOS05PV04g KSB7DQogIHJldHVybiBFRklfREVWSUNFX0VSUk9SDQp9DQpKdXN0IGJlY2F1c2UgdGhlcmUgaXMg bm90aGluZyBhZnRlciB0aGlzIGxvb3AuDQpBbmQgdGhpcyBpcyBub3Qgd2hhdCB3ZSB3YW50ZWQs IGFuZCByZWNvZ25pemVkIGFzIG15IG1pc3Rha2UgcHJldmlvdXNseS4NCg0KSWdvcjoNCkFncmVl LiBXZSBkaWQgcmVjb2duaXplIGl0IGFzIG1pc3Rha2UuIE15IGZhdWx0Lg0KTGV0cyBzdGljayB3 aXRoIHlvdXIgdmVyc2lvbiBhbmQgc2VlIHdoYXQgTGVpZiBzYXkuDQoNCg0KPg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNaWtlIE1hc2xlbmtpbiA8bWlrZS5tYXNsZW5r aW5AZ21haWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDE1LCAyMDIzIDE6Mjcg UE0NCj4gVG86IElnb3IgS3VsY2h5dHNreXkgPGlnb3JrQGFtaS5jb20+DQo+IENjOiBMZWlmIExp bmRob2xtIDxxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87 IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPjsgTmlja2xlIFdhbmcgPG5pY2tsZXdA bnZpZGlhLmNvbT4NCj4gU3ViamVjdDogUmU6IFtFWFRFUk5BTF0gUmU6IFtlZGsyLWRldmVsXSBb UEFUQ0ggdjUgMi8yXSBSZWRmaXNoUGtnOiBSZWRmaXNoRGlzY292ZXJEeGU6IE9wdGltaXplIHRo ZSBSZWRmaXNoIERpc2NvdmVyIGZsb3cNCj4NCj4gT24gV2VkLCBOb3YgMTUsIDIwMjMgYXQgNDo1 MuKAr1BNIElnb3IgS3VsY2h5dHNreXkgPGlnb3JrQGFtaS5jb20+IHdyb3RlOg0KPiA+DQo+ID4g SGVsbG8gTGVpZiBhbmQgTWlrZSwNCj4gPiBMZXQgbWUgdHJ5IHRvIGV4cGxhaW4gdGhlIGlkZWEg b2YgdGhlIGZpbHRlcmluZyBJUC4NCj4gPiBUaGF0IGZpbHRlcmluZyBzaG91bGQgd29yayBvbmx5 IGlmIHdlIGtub3cgZXhhY3RseSB0aGF0IElQIGlzIElQdjQgb3IgSVB2NiBpbiBTTUJJT1MgVHlw ZSA0Mi4NCj4gSG0uIEkndmUgYWxyZWFkeSBjb21wb3NlZCBhIHJlcGx5IGJlbG93LCBidXQgdGhl biBhIHJldHVybmVkIHRvIHRoaXMNCj4gc3RhdGVtZW50Li4uDQo+DQo+IElzIHRoaXMgYSBkaWZm ZXJlbmNlIGluIGNvbmRpdGlvbiBiZXR3ZWVuIHYzIGFuZCB2NT8gSSBjYW1lIHRvIHRoZQ0KPiBj b25jbHVzaW9uIHRoYXQgYXQgdGhlIHBsYWNlIHdlIGFyZSBkaXNjdXNzaW5nDQo+IFNNQklPUyB0 YWJsZSA0MmggY2FuIGJlIGFic2VudCBiZWNhdXNlDQo+IFBsYXRmb3JtSG9zdEludGVyZmFjZUlu Zm9ybWF0aW9uUmVhZHkgaGFzbid0IGJlZW4gY2FsbGVkIHlldCwNCj4gc28gUkVERklTSF9IT1NU X0lOVEVSRkFDRV9IT1NUX0lQX0FERFJFU1NfRk9STUFUX1VOS05PV04gaXMgZXhwZWN0ZWQuDQo+ DQo+DQo+ID4gQW5kIGl0IGp1c3QgaGVscGluZyB0byByZWR1Y2UgdGhlIHdvcmsgaW4gY2FzZSB3 ZSBrbm93IHRoZSBleGFjdCB0eXBlIG9mIElQLCB3aGljaCBzdXBwb3NlZCB0byBiZSB1c2VkIGlu IEJJT1MgQk1DIGNvbW11bmljYXRpb24uDQo+ID4gSW4gdGhhdCBjYXNlIHRoZXJlIGlzIG5vIG5l ZWQgdG8gYnVpbGQgbmV0d29yayBpbnRlcmZhY2UgZm9yIHRoZSB1bnVzZWQgSVAgVHlwZS4NCj4g PiBPbiBzb21lIHN5c3RlbXMgSVAgYWRkcmVzcyBjb3VsZCBiZSBkeW5hbWljIGFuZCB3ZSB3aWxs IG5vdCBiZSBhYmxlIHRvIGtub3cgdGhlIHZlcnNpb24gb2YgSVAgZnJvbSBTTUJJT1MuDQo+ID4g SWYgeW91IHNlZSBJIGNoZWNrIEhvc3RJcEFzc2lnbm1lbnRUeXBlIGluIEdldEhpSXBQcm90b2Nv bFR5cGUgZnVuY3Rpb24uIEFuZCByZXR1cm4gSVAgdHlwZSBVTktOT1dOIGlmIGl0IGlzIG5vdCBz dGF0aWMuDQo+ID4gSWYgd2UgZ2V0IGFuIHVua25vd24gSVAgdHlwZSwgd2Ugc2hvdWxkIG5vdCBy ZXR1cm4gZnJvbSBCdWlsZHVwTmV0d29ya0ludGVyZmFjZSBmdW5jdGlvbiwgYnV0IGp1c3QgcHJv Y2VlZCBhbmQgYnVpbGQgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGZvciBhbGwgSVBzLg0KPiA+IFNv LCBsYXRlciBSZWRmaXNoIERpc2NvdmVyIGRyaXZlciBjYW4gZmluZCB0aGUgcmlnaHQgb25lLg0K PiA+IEJhc2VkIG9uIHRoaXMgbG9naWMgSSdtIGdvaW5nIHRvIHByZXBhcmUgdGhlIHBhdGNoIHY2 Lg0KPiA+IFRoYW5rIHlvdSwNCj4gPiBJZ29yDQo+DQo+IEFncmVlLi4gSSB3YXMgZm9jdXNlZCBv biBlZGsyIGltcGxlbWVudGF0aW9uIG9mDQo+IFJlZGZpc2hQbGF0Zm9ybUhvc3RJbnRlcmZhY2VM aWIgYW5kIFBsYXRmb3JtSG9zdEludGVyZmFjZUJtY1VzYk5pY0xpYg0KPiB3aGVyZSBIb3N0SXBB ZGRyZXNzRm9ybWF0IGlzIHNwZWNpZmllZCAoaGFyZGNvZGVkKS4gSSBndWVzcw0KPiBIb3N0SXBB ZGRyZXNzRm9ybWF0ICBhcyB3ZWxsIGFzIFNNQklPUyB0YWJsZSA0MmggbXVzdCBiZSBhdmFpbGFi bGUNCj4gYnkgdGhlIHRpbWUgUmVkZmlzaFNlcnZpY2VBY3F1aXJlU2VydmljZSgpLT5EaXNjb3Zl clJlZGZpc2hIb3N0SW50ZXJmYWNlKCkNCj4gY2FsbCwgd2hpbGUgaXQgbWlnaHQgYmUgbm90IGF2 YWlsYWJsZSBhdCB0aGUgbW9tZW50DQo+IFJlZGZpc2hEaXNjb3ZlckRyaXZlckJpbmRpbmdTdGFy dCgpLT5CdWlsZHVwTmV0d29ya0ludGVyZmFjZSgpLiBTbywNCj4gY29uZGl0aW9uIGZyb20gdjMg bG9va3MgY29ycmVjdCB0byBtZS4NCj4NCj4gTXkgbWFpbiBjb25jZXJuIHdhcyBpbnRyb2R1Y3Rp b24gb2YgZGVmaW5lcy4gVGhvc2UgZG9uJ3QgbG9vayBncmVhdC4NCj4gVGhvc2UgYXJlIGh1Z2Ug KGl0IGV2ZW4gZG9lc24ndCBmaXQgaW50byB0aGUgc2NyZWVuKSBhbmQgbWlzbGVhZGluZyBhDQo+ IGJpdC4NCj4gRm9yIGV4YW1wbGU6DQo+ICsjZGVmaW5lIE1BQ19DT01QQVJFKFRoaXNOZXR3b3Jr SW50ZXJmYWNlLCBUYXJnZXROZXR3b3JrSW50ZXJmYWNlKQ0KPiAoQ29tcGFyZU1lbSAoKFZPSUQg KikmVGhpc05ldHdvcmtJbnRlcmZhY2UtPk1hY0FkZHJlc3MsDQo+ICZUYXJnZXROZXR3b3JrSW50 ZXJmYWNlLT5NYWNBZGRyZXNzLA0KPiBUaGlzTmV0d29ya0ludGVyZmFjZS0+SHdBZGRyZXNzU2l6 ZSkpDQo+DQo+IFRoZSBwcm9wb3NlZCB2YXJpYW50IGlzIGVxdWFsIHRvICNkZWZpbmUgTUFDX0NP TVBBUkUoQSwgQikNCj4gKENvbXBhcmVNZW0gKChWT0lEICopJlRoaXNOZXR3b3JrSW50ZXJmYWNl LT5NYWNBZGRyZXNzLA0KPiAmVGFyZ2V0TmV0d29ya0ludGVyZmFjZS0+TWFjQWRkcmVzcywNCj4g VGhpc05ldHdvcmtJbnRlcmZhY2UtPkh3QWRkcmVzc1NpemUpKSwgaS5lIGEgYml0IHVzZWxlc3Mu DQo+DQo+IEkgd291bGQgZXhwZWN0IGl0IGNvdWxkIGJlIGRlY2xhcmVkIGF0IGxlYXN0IGFzOg0K PiAjZGVmaW5lIE1BQ19DT01QQVJFKFRoaXMsIFRhcmdldCkgIENvbXBhcmVNZW0gKChWT0lEDQo+ ICopJihUaGlzKS0+TWFjQWRkcmVzcywgJihUYXJnZXQpLT5NYWNBZGRyZXNzLCAoVGhpcyktPkh3 QWRkcmVzc1NpemUpDQo+IEkuZSBkZWZpbmUgc2hvdWxkIHJlYWxseSByZXBsYWNlIHNvbWUgYXJn dW1lbnRzICBhbHNvIHJlZHVjaW5nIHRoZSBsaW5lIGxlbmd0aC4NCj4NCj4gQlRXOiB0aGVyZSBp cyBhIHBsYWNlIGluIFZhbGlkYXRlVGFyZ2V0TmV0d29ya0ludGVyZmFjZSgpIHdoZXJlDQo+IENv bXBhcmVNZW0gIGNhbiBiZSByZXBsYWNlZCB3aXRoIE1BQ19DT01QQVJFIHRvby4NCj4NCj4gQWxz bywgSSBmb3VuZCBJUDZfTElOS19FUVVBTChNYWMxLCBNYWMyKSBkZWZpbmUsIHRoYXQgaXMgdW51 c2VkIGluDQo+IGVkazIuIEJ1dCBhY2NvcmRpbmcgdG8gdGhhdCBvbmUsIHBsZWFzZSBjb25zaWRl ciBtb3ZpbmcgIj09IDAiIGNoZWNrDQo+IHRvICNkZWZpbmUgZGVjbGFyYXRpb24uDQo+IEJ1dCBJ IGRvIG5vdCB0aGluayB0aGlzIG1hY3JvIGlzIHJlcXVpcmVkIGF0IGFsbCwgYmVjYXVzZSB0aGVy ZSBhcmUgNQ0KPiBNQUMgY29tcGFyZXMgbGVmdCBpbiB0aGlzIG1vZHVsZS4gU28sIGl0IGp1c3Qg YnJpbmdzIHNvbWUNCj4gaW5jb25zaXN0ZW5jeS4NCj4NCj4gQWdyZWVkIHRoYXQgc3RhdGljIGhl bHBlciBmdW5jdGlvbiB3b3VsZCBiZSB0aGUgYmVzdC4NCj4NCj4gTGVpZiwgZG8geW91IGV4cGVj dCBzb21ldGhpbmcgbGlrZSB0aGlzPw0KPiBTVEFUSUMNCj4gQk9PTEVBTg0KPiBGaWx0ZXJJbnRl cmZhY2UgKA0KPiAgIElOIE5FVFdPUktfSU5URVJGQUNFX1BST1RPQ09MX1RZUEUgUHJvdG9jb2xU eXBlLA0KPiAgIElOIFVJTlQ4IEhvc3RJcEFkZHJlc3NGb3JtYXQNCj4gICApDQo+IHsNCj4gICAv LyBUaGlzIGlzIGJhc2VkIG9uIHY1LCBidXQgYWNjb3JkaW5nIHRvIHRoZSBjb21tZW50cyBhYm92 ZQ0KPiAgIC8vIHYzIGlzIGNvcnJlY3QgYXMgaXQgYWxsb3dzDQo+IFJFREZJU0hfSE9TVF9JTlRF UkZBQ0VfSE9TVF9JUF9BRERSRVNTX0ZPUk1BVF9VTktOT1dODQo+DQo+ICAgaWYgKFByb3RvY29s VHlwZSA9PSBQcm90b2NvbFR5cGVUY3A0KSB7DQo+ICAgICByZXR1cm4gSXBUeXBlICE9IFJFREZJ U0hfSE9TVF9JTlRFUkZBQ0VfSE9TVF9JUF9BRERSRVNTX0ZPUk1BVF9JUDQ7DQo+ICAgfSBlbHNl IGlmIChQcm90b2NvbFR5cGUgPT0gUHJvdG9jb2xUeXBlVGNwNikgew0KPiAgICAgcmV0dXJuIElw VHlwZSAhPSBSRURGSVNIX0hPU1RfSU5URVJGQUNFX0hPU1RfSVBfQUREUkVTU19GT1JNQVRfSVA2 Ow0KPiAgIH0NCj4gICByZXR1cm4gZmFsc2U7DQo+IH0NCj4NCj4gYW5kIHRoZW46Og0KPg0KPiAv LyBHZXQgSVAgVHlwZSB0byBmaWx0ZXIgb3V0IHVubmVjZXNzYXJ5IG5ldHdvcmsgcHJvdG9jb2wg aWYgcG9zc2libGUNCj4gSXBUeXBlID0gR2V0SGlJcFByb3RvY29sVHlwZSAoKTsNCj4NCj4gZm9y IChJbmRleCA9IDA7IEluZGV4IDwgTGlzdENvdW50OyBJbmRleCsrKSB7DQo+ICAgLy8gQ2hlY2sg SVAgVHlwZSBhbmQgc2tpcCBhbiB1bm5lY2Vzc2FyeSBuZXR3b3JrIHByb3RvY29sIGlmIGRvZXMg bm90IG1hdGNoDQo+ICBpZiAoRmlsdGVySW50ZXJmYWNlIChnUmVxdWlyZWRQcm90b2NvbFtJbmRl eF0uUHJvdG9jb2xUeXBlLCBJcFR5cGUpKSB7DQo+ICAgICBjb250aW51ZTsNCj4gICB9DQo+DQo+ IFJlZ2FyZHMsDQo+IE1pa2UuDQo+IC1UaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMg bWVzc2FnZSBtYXkgYmUgY29uZmlkZW50aWFsIGFuZCBwcm9wcmlldGFyeSB0byBBbWVyaWNhbiBN ZWdhdHJlbmRzIChBTUkpLiBUaGlzIGNvbW11bmljYXRpb24gaXMgaW50ZW5kZWQgdG8gYmUgcmVh ZCBvbmx5IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIGl0IGlzIGFkZHJlc3Nl ZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlIHJlYWRlciBvZiB0aGlzIG1lc3NhZ2UgaXMg bm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUgb24gbm90aWNlIHRoYXQgYW55IGRp c3RyaWJ1dGlvbiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFueSBmb3JtLCBpcyBzdHJpY3RseSBwcm9o aWJpdGVkLiBQbGVhc2UgcHJvbXB0bHkgbm90aWZ5IHRoZSBzZW5kZXIgYnkgcmVwbHkgZS1tYWls IG9yIGJ5IHRlbGVwaG9uZSBhdCA3NzAtMjQ2LTg2MDAsIGFuZCB0aGVuIGRlbGV0ZSBvciBkZXN0 cm95IGFsbCBjb3BpZXMgb2YgdGhlIHRyYW5zbWlzc2lvbi4NCi1UaGUgaW5mb3JtYXRpb24gY29u dGFpbmVkIGluIHRoaXMgbWVzc2FnZSBtYXkgYmUgY29uZmlkZW50aWFsIGFuZCBwcm9wcmlldGFy eSB0byBBbWVyaWNhbiBNZWdhdHJlbmRzIChBTUkpLiBUaGlzIGNvbW11bmljYXRpb24gaXMgaW50 ZW5kZWQgdG8gYmUgcmVhZCBvbmx5IGJ5IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9t IGl0IGlzIGFkZHJlc3NlZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlIHJlYWRlciBvZiB0 aGlzIG1lc3NhZ2UgaXMgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUgb24gbm90 aWNlIHRoYXQgYW55IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIG1lc3NhZ2UsIGluIGFueSBmb3JtLCBp cyBzdHJpY3RseSBwcm9oaWJpdGVkLiBQbGVhc2UgcHJvbXB0bHkgbm90aWZ5IHRoZSBzZW5kZXIg YnkgcmVwbHkgZS1tYWlsIG9yIGJ5IHRlbGVwaG9uZSBhdCA3NzAtMjQ2LTg2MDAsIGFuZCB0aGVu IGRlbGV0ZSBvciBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIHRyYW5zbWlzc2lvbi4NCg0KCi09 LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1l c3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMTEyOTEpOiBo dHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTEyOTEKTXV0ZSBUaGlzIFRv cGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDI1ODQxNDAvNzY4NjE3NgpHcm91cCBPd25lcjog ZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91 cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0t PS09LT0tCgoNCg==