From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web09.6032.1645150623791771033 for ; Thu, 17 Feb 2022 18:17:04 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Ain+WTP/; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: hao.a.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645150623; x=1676686623; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=SgTiC9mI2+ZX9pZw7/4EOIkatAWlQHuuO381Mnpub+A=; b=Ain+WTP/AGnV/R6XBcjhBocMNTsOe+xY7co2a2+pNXwkv2f4/IQqd9Fi v39n6ErakaHN5I25rvEddbLmc6STymVfBgzaA+g+hgPZiTkn/ZciHRK44 wcb070UrU3kazoRYnZdQWLJchFyenXRJQYORYB4Pz3DNdF2KtawueM5qc 8z1JUPbYHFArXqU6mp9MHtMJmARdb3qB9DKfMJQDRjDHR2OcHEDNJFHHc Yfw1BpgBw1XurfEruJuqWqMCaQ6DDJZYwjBaZLje3BifuB+HEVWlrqAXF t8zcdr3SgJXFrONdhX7oaemSxL1cVPIoWu2Rr+UDLwFSXGbqHzmjrAGvN A==; X-IronPort-AV: E=McAfee;i="6200,9189,10261"; a="250787375" X-IronPort-AV: E=Sophos;i="5.88,377,1635231600"; d="scan'208";a="250787375" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Feb 2022 18:17:02 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,377,1635231600"; d="scan'208";a="705159867" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga005.jf.intel.com with ESMTP; 17 Feb 2022 18:17:02 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 17 Feb 2022 18:17:02 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Thu, 17 Feb 2022 18:17:01 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.177) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Thu, 17 Feb 2022 18:17:01 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MX9gisLbqR6YqHOknc3sY5HpnOWlp/AT8/LWf4967UY65AKuPwP/cXIhPPUqu9+tw0btBWFEIwQdgmg3XCGWyhDyTge36eL1uCzosVwGrsyLWHs5EIdBXHLC0IiXIsk1Yqxh4EZ006Y2zCrNJZKg+5nmz6DhABlm5Vex5aowP57a3EHxfoNqfQ8vM+smiuvDK8rrqSt8VClKq4Dh3sbNYcOct0cvwJrpx7Hch2hZ/8CSz43tGERoV+EaFb8qtYBe8HsL/j2ZtJLODTfwDTljLvMF7K4bYH9fuPfxNL/qPBWmgujuKfWZQhgec7p7orW0unVKDQsgjdLI8+TRZ9Vr8A== 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=SgTiC9mI2+ZX9pZw7/4EOIkatAWlQHuuO381Mnpub+A=; b=gJKVvoxtqAW7+LYptvmKhtc5FqDjrzuO3JTF8opE2ERKM7VXlJxNK21pATdMB6LZqjDiB2RrbHJi27bcDDMekVO//3xFMy1YQgRDQlFCwh1HKuD6UqeK5T3rUXCpjtIMZJfTVn1ARjZKKAjoRp5HX6vzRgSVBKeRcs9Z61xbgxYjDNCupzr2DN5fSQ/2X8DJRW+bAIbXZx1u3cg8Ngru8Fk34kZjzHxp15PIMf0Zyrof1wba3rKgCqLdqCpm8weZ0CazmaVFsjgawZpJ4Zb7Ic7FFWDTLKxwFSs4T98N5lKAS+4d7BYPgyJQBNfY2R7hezFpcV1RzSjVNBCmQKR9+g== 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 DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by CY4PR1101MB2152.namprd11.prod.outlook.com (2603:10b6:910:23::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.16; Fri, 18 Feb 2022 02:17:00 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::707a:603c:30eb:bcdd]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::707a:603c:30eb:bcdd%3]) with mapi id 15.20.4975.019; Fri, 18 Feb 2022 02:17:00 +0000 From: "Wu, Hao A" To: "devel@edk2.groups.io" , "matt.devillier@gmail.com" CC: "Rhodes, Sean" , Patrick Rudolph , "Wang, Jian J" , "Gao, Liming" , "Ni, Ray" Subject: Re: [edk2-devel] [PATCH 13/18] MdeModulePkg/Usb/Keyboard.c: don't request protocol before setting Thread-Topic: [edk2-devel] [PATCH 13/18] MdeModulePkg/Usb/Keyboard.c: don't request protocol before setting Thread-Index: AQHYHsT7V49JCe8y9Uqi15enICqQlqyNre4wgAFGzQCACaZJQA== Date: Fri, 18 Feb 2022 02:17:00 +0000 Message-ID: References: <5527aab4cdea820aa58de36fd8d58ef88f24da82.1644527848.git.sean@starlabs.systems> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 95cdc48b-31f7-4778-d229-08d9f284bee3 x-ms-traffictypediagnostic: CY4PR1101MB2152:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Yv2cHKqN8901bDvbE4Q6IrOaDlrLJ6Azp+wxITXydrb04D2e5GrwoP0A5h7ezYGF36BAC0/Zl8KCKEiAA54E56Sr0PB3sXqAZu7VDIAcPCwsu6fzTKID2Lyb4+pEM/v2hf8vX0yAHzrgK83jMe2xP3wylZozwLamg8rN1a1q86f3lOv7XhO9kIyGpE2Ms4zW2TSyFrTe1QaJVA0CjhY2ZGk5UdJ4Fup4iGNQFAk6lQ+jNK5TJuQvwDJ7PKx7zptTC+D7a1E3Xl8klHbUkqin6xfAN7pAk8dLnnFozx/k5s0lq4bzS7n+GOpm3kLzakOK7CfehaVMXsckDDZyOPzMucClkHKNKGRQcPBTVIdJ6ziNb4fBE9q2OUP/+ktkv2LIMSavz04MPhug451nao7xy3oflvfmYWjvPzXEAt+sxklCUu07LrHWQUQH/XPUxomyTJCcYXoIU2MIs9RNn0wFTCKvJCIhaxJqh9ihkgacvsiM1sylSXINy3xVUhIPj1PElYRBs3zkGJKM6d/aX87WyFWkiY/yMNg1yq5hhwY8sxf0OrElU3ulozEz3g5rka6YJt7FgbZLEYdeRzzXtFuj+vnEdOYp7XpYEeUxt6ugU1DOBwquagAbtWF4KN8SncQMc2cfPGPS2MOxppSZp7wKg0oJSvqgx8EOV2C+bewkNXvTf921kQk5fdKjr4tSfcRK3DWyoxVI9aR7+YzC2Q+APFDzs4qN9Q/Y8QasbmxIijdcNliQlgSUDfG+geMAnb9/NAXm8rtlq7KD/j8qCHwgzuuknKan0jhBzQguKi3nPBc54zxnYiqRp9StuSDrV6bZLmgC+9Y5ktWNlM+yeqHSpQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4025.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(966005)(508600001)(316002)(8936002)(53546011)(186003)(26005)(33656002)(38070700005)(110136005)(107886003)(71200400001)(83380400001)(52536014)(54906003)(122000001)(55016003)(5660300002)(82960400001)(6506007)(8676002)(9686003)(76116006)(66446008)(66556008)(7696005)(86362001)(66476007)(66946007)(4326008)(2906002)(64756008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aFZvR0xXOFVhbmUyWGtta0FOMjN3K2JmeExVRHdGN3FzL3ZBejRjVEdPcmtl?= =?utf-8?B?TjQ1TElyMkZLeFZYcm05TVVtUFZGbFBqYWpuU1N4QjF4cCtzZHRYaHlBSkoy?= =?utf-8?B?eXNhdW11VlJBMVloMkVreC9Ka3dXTzZ3Q0lOVWFqTFJHRVhoV3psSzVGQXRm?= =?utf-8?B?a2MvMzVNK3BjWXM0SHVoQWt3YWVVdFI1L2JtNUZvUVpCZ21KZEFmVTNZTGUr?= =?utf-8?B?VmZyQWgvOExMZFpGWXM5QVdseFR0RjhZVXUvYkdZa3IwYU1HaDNiUGRNOTZq?= =?utf-8?B?SzhPY201Y0RrQjR0QTVsRjN2TEJ5YzRBS3djbHMvRVdmS2JsWnlFdExUR2Jm?= =?utf-8?B?ZHNZTC9ObHJCSnJGVm9TWlZOUG9oWDFMZHZrVitBMVdRbXdrYkdTL01QNld4?= =?utf-8?B?MWNtbGl4THkzRWJsVVRQNHJ1eE9WZHlzcm0xOXlqaEI3M1dBV1I2aW5PTktQ?= =?utf-8?B?STBFNytqbkhad0Q4bnBVbXBzQVBBdkJjVmVrQ3orWHhIRThOaVZISVJYa3Bh?= =?utf-8?B?UGcxMmxZOHlsdS9oR3ZzTTFQQVA0YnVXNGdVY05aL3RKOEp4NkFUZWlGcEVI?= =?utf-8?B?bE44bmw1V3NYUDZLVnNvOXNPMCsvVjZEOW1Fek04d0lQVUVzY3Z0WWloM3dt?= =?utf-8?B?eDJNT3ByeUxOeU5BSHUxRjhZQ2pBaWNqNGIwOWptSWNGcUhaNkpHVko2bXdS?= =?utf-8?B?RVdxa3Q3cDM2TEpPeU9EaW4zeVBIQjRyRnFXWDVMK3dEdWFzditBbWMreTZ5?= =?utf-8?B?MUE5cEs2aXpEbVdhYnVDQlF3TkR4SkJrV1N6S1VjRFhqNms3UTFTcDIxNnhN?= =?utf-8?B?Qzk4TzJtR0I3V3lWcDAwaXBxY3hYN0F3Y3pzTkdCN2ZqZjVOTG1Tais5Um9Y?= =?utf-8?B?WHZKYkJ2VzMwZjJENlJxaHBNWUh0L0VoSjgyVndTUVhXU3V5NFVkRHc5VFd6?= =?utf-8?B?eXJTY3M2VXo5UlpTNFpodC9udHJDQWpGWXA0ajliQjdxS2lCMnd2cWhjaDhF?= =?utf-8?B?aEhIUEd1Qmw3OEZaNERITlppVEZWMnlORURxV1p4anM5Um9MNEFZRkcxeHRz?= =?utf-8?B?VUdLVFVKbDlOUG44OVdDZDlzMzh4Q282S1RGRVl6bDFXdWgwVjRPWWh6aU5Z?= =?utf-8?B?Z2l0UXd4VElObWlQZ3o5T1p6U2tRYTJKS2d2SUdYQjZUaXBNNEVoSHQyWS96?= =?utf-8?B?UWE5Tzc2VWZWTHh6OGRVdGwvQ2c0azhMUFV0Qm1LS2hEdVdydkZBZTRRTldw?= =?utf-8?B?cTcrQTBPYnRuZ3h1KzRyd2NzRDhOUGEzL2dOMkQ1R0Y4MHo1dWdOeWFMMDVM?= =?utf-8?B?cEVTTzlzYVhqbVdsMXJQbEQxcEY5cUdobnE5SFRycUlIdGNQSVY1WHM4UzVI?= =?utf-8?B?ZkVOTkpQTzJKS1k5RHdZQzlmVTJWSEZnTGx4ZUo3M1dkOEpGcUtGenZPaURO?= =?utf-8?B?TXJjMHJ0VlpHTVp4OXIrNkN5OTZFYjlVV2drYzJPMzZGK3FGZFBkSHFVZm5Q?= =?utf-8?B?QWR1WE9SY2NSU1ZFU2J0dEZNQ2x4Vm5TYWR3V2trM2xjUmZucXphYkdFUjJm?= =?utf-8?B?WEMzbC92RzFyaEJYaHppUEU3WjUwYjUxMVg4OXlzblNUbzd6dGJwbk1LdG1C?= =?utf-8?B?aU50NWxkbjExcUpNamhONmE2RlRKTm9ZYnlsUDV2MXJWbHBqTUp5VzJidVBI?= =?utf-8?B?eXBFc0VXdWhjWVpBNGg0ZHpWNmM4NG9uVG5FMWNGTnJMMVI1RHdRWDlROWlS?= =?utf-8?B?R3d6Q2x6eTR5ZTJSZXpaU1NxSFhjbTZDS0FESkd0TDhLQlQwT2NUTWhidUR5?= =?utf-8?B?Z29mc1NRc3VmWVZkelFzWFJocS9TTkR6QXhNM2luQXBsNjh2REI1UEpRckl1?= =?utf-8?B?a0JOZ29qMXdkdUU0WEh2b0pXYnc3bmlMVVIrNTdzSk5SSUMyV0wra0w0ZHE1?= =?utf-8?B?aUd0UndQTUN1ZktJUUU3ZjcvVjhDU0IvYXprQXlBYmpTTHlSUFVtejBFMDgv?= =?utf-8?B?SHc5bklleEFQblRBN0N6WUxwYnM5VVk4Y2s0QkNWUFRHQzNWeXF5aVBVRW55?= =?utf-8?B?RE5leFBWdmhJNFBzQnljYjZUTU96VUVPdTBPc1hLeGxCZ1VLRnQyVURPZm1m?= =?utf-8?B?SDFnWmwzcHJOaVRnZTNKdTM0NlRuT3B3dW1KMHcwZnQ0RCtUaDZqa0g0UTYz?= =?utf-8?Q?+5Cp9p/LooAMUs45F/81AXk=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95cdc48b-31f7-4778-d229-08d9f284bee3 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Feb 2022 02:17:00.0748 (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: G28kXRaZFlpmVSUlD0DQkh5NIAaJWOuwOJ6LdTQUdk38gWIoXEswdu3MzPddXgo7+3U6P1w2GOYM2dUNGvBVow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2152 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SW5saW5lIGNvbW1lbnRzIGJlbG93Og0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBC ZWhhbGYgT2YNCj4gTXJDaHJvbWVib3gNCj4gU2VudDogU2F0dXJkYXksIEZlYnJ1YXJ5IDEyLCAy MDIyIDY6NDYgQU0NCj4gVG86IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPg0KPiBDYzog UmhvZGVzLCBTZWFuIDxzZWFuQHN0YXJsYWJzLnN5c3RlbXM+OyBQYXRyaWNrIFJ1ZG9scGgNCj4g PHBhdHJpY2sucnVkb2xwaEA5ZWxlbWVudHMuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IFdh bmcsIEppYW4gSg0KPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xp bWluZ0BieW9zb2Z0LmNvbS5jbj47IE5pLCBSYXkNCj4gPHJheS5uaUBpbnRlbC5jb20+DQo+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEzLzE4XSBNZGVNb2R1bGVQa2cvVXNiL0tl eWJvYXJkLmM6DQo+IGRvbid0IHJlcXVlc3QgcHJvdG9jb2wgYmVmb3JlIHNldHRpbmcNCj4gDQo+ IHNlZW1zIHRoaXMgcGF0Y2ggZ290IHRydW5jYXRlZCBkdXJpbmcgYSByZWJhc2UsIGhlcmUgaXMg dGhlIGNvcnJlY3QgdmVyc2lvbi4NCj4gDQo+IEZvciBkZXZpY2UgdGhhdCBkb2VzIG5vdCByZXNw b25kIHRvIEdldFByb3RvY29sUmVxdWVzdCgpLCB0aGUgb3JpZ2luYWwgZmxvdw0KPiBpczoNCj4g YS4xIEV4ZWN1dGUgR2V0UHJvdG9jb2xSZXF1ZXN0KCkNCj4gYS4yIFRpbWVvdXQgb2NjdXJzIGZv ciBHZXRQcm90b2NvbFJlcXVlc3QoKQ0KPiBhLjMgQ29uZGl0aW9uYWxseSBleGVjdXRlIFVzYlNl dFByb3RvY29sUmVxdWVzdCgpDQo+IA0KPiBUaGUgcHJvcG9zZWQgbmV3IGZsb3cgaXM6DQo+IGIu MSBBbHdheXMgZXhlY3V0ZSBVc2JTZXRQcm90b2NvbFJlcXVlc3QoKQ0KPiANCj4gVGhlIHRpbWVv dXQgZGVsYXkgZm9yIGtleWJvYXJkcyB3aGljaCBkbyBub3Qgc3VwcG9ydA0KPiBHZXRQcm90b2Nv bFJlcXVlc3QoKSB0aGF0IHdlJ3ZlIHNlZW4gaXMgc2lnbmlmaWNhbnQgKD41cywgSUlSQykNCj4g DQo+ICBNZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JLYkR4ZS9LZXlCb2FyZC5jIHwgMjggKysrKysr KysrKysrKystLS0tDQo+IC0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMv VXNiL1VzYktiRHhlL0tleUJvYXJkLmMNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JLYkR4 ZS9LZXlCb2FyZC5jDQo+IGluZGV4IDVhOTRhNGRkYTcuLmFkNTVmYTMzMzAgMTAwNjQ0DQo+IC0t LSBhL01kZU1vZHVsZVBrZy9CdXMvVXNiL1VzYktiRHhlL0tleUJvYXJkLmMNCj4gKysrIGIvTWRl TW9kdWxlUGtnL0J1cy9Vc2IvVXNiS2JEeGUvS2V5Qm9hcmQuYw0KPiBAQCAtODA1LDcgKzgwNSw2 IEBAIEluaXRVU0JLZXlib2FyZCAoDQo+ICAgICkNCj4gIHsNCj4gICAgVUlOVDE2ICAgICAgQ29u ZmlnVmFsdWU7DQo+IC0gIFVJTlQ4ICAgICAgIFByb3RvY29sOw0KPiAgICBFRklfU1RBVFVTICBT dGF0dXM7DQo+ICAgIFVJTlQzMiAgICAgIFRyYW5zZmVyUmVzdWx0Ow0KPiANCj4gQEAgLTg1NCwy MSArODUzLDI4IEBAIEluaXRVU0JLZXlib2FyZCAoDQo+ICAgICAgfQ0KPiAgICB9DQo+IA0KPiAt ICBVc2JHZXRQcm90b2NvbFJlcXVlc3QgKA0KPiAtICAgIFVzYktleWJvYXJkRGV2aWNlLT5Vc2JJ bywNCj4gLSAgICBVc2JLZXlib2FyZERldmljZS0+SW50ZXJmYWNlRGVzY3JpcHRvci5JbnRlcmZh Y2VOdW1iZXIsDQo+IC0gICAgJlByb3RvY29sDQo+IC0gICAgKTsNCj4gICAgLy8NCj4gICAgLy8g U2V0IGJvb3QgcHJvdG9jb2wgZm9yIHRoZSBVU0IgS2V5Ym9hcmQuDQo+ICAgIC8vIFRoaXMgZHJp dmVyIG9ubHkgc3VwcG9ydHMgYm9vdCBwcm90b2NvbC4NCj4gICAgLy8NCj4gLSAgaWYgKFByb3Rv Y29sICE9IEJPT1RfUFJPVE9DT0wpIHsNCj4gLSAgICBVc2JTZXRQcm90b2NvbFJlcXVlc3QgKA0K PiAtICAgICAgVXNiS2V5Ym9hcmREZXZpY2UtPlVzYklvLA0KPiAtICAgICAgVXNiS2V5Ym9hcmRE ZXZpY2UtPkludGVyZmFjZURlc2NyaXB0b3IuSW50ZXJmYWNlTnVtYmVyLA0KPiAtICAgICAgQk9P VF9QUk9UT0NPTA0KPiArICBTdGF0dXMgPSBVc2JTZXRQcm90b2NvbFJlcXVlc3QgKA0KPiArICAg ICAgICAgICAgIFVzYktleWJvYXJkRGV2aWNlLT5Vc2JJbywNCj4gKyAgICAgICAgICAgICBVc2JL ZXlib2FyZERldmljZS0+SW50ZXJmYWNlRGVzY3JpcHRvci5JbnRlcmZhY2VOdW1iZXIsDQo+ICsg ICAgICAgICAgICAgQk9PVF9QUk9UT0NPTA0KPiArICAgICAgICAgICAgICk7DQo+ICsgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICAvLw0KPiArICAgIC8vIElmIHByb3RvY29sIGNv dWxkIG5vdCBiZSBzZXQgaGVyZSwgaXQgbWVhbnMNCj4gKyAgICAvLyB0aGUga2V5Ym9hcmQgaW50 ZXJmYWNlIGhhcyBzb21lIGVycm9ycyBhbmQgY291bGQNCj4gKyAgICAvLyBub3QgYmUgaW5pdGlh bGl6ZWQNCj4gKyAgICAvLw0KPiArICAgIFJFUE9SVF9TVEFUVVNfQ09ERV9XSVRIX0RFVklDRV9Q QVRIICgNCj4gKyAgICAgIEVGSV9FUlJPUl9DT0RFIHwgRUZJX0VSUk9SX01JTk9SLA0KPiArICAg ICAgKEVGSV9QRVJJUEhFUkFMX0tFWUJPQVJEIHwgRUZJX1BfRUNfSU5URVJGQUNFX0VSUk9SKSwN Cj4gKyAgICAgIFVzYktleWJvYXJkRGV2aWNlLT5EZXZpY2VQYXRoDQo+ICAgICAgICApOw0KPiAr DQo+ICsgICAgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1I7DQo+ICAgIH0NCg0KDQpJIGFtIG9rYXkg d2l0aCB1bmNvbmRpdGlvbmFsbHkgc2VuZGluZyB0aGUgU2V0X1Byb3RvY29sIGNvbW1hbmQuDQpD b3VsZCB5b3UgaGVscCB0bzoNCjEuIEp1c3Qga2VlcCB0aGUgcHJldmlvdXMgYmVoYXZpb3IgZm9y IGNhbGxpbmcgVXNiU2V0UHJvdG9jb2xSZXF1ZXN0KCkgd2l0aCBubyBlcnJvciBoYW5kbGluZyBs b2dpYz8NCg0KMi4gQ2hlY2sgaWYgc2ltaWxhciBjaGFuZ2VzIG5lZWQgdG8gYmUgYXBwbGllZCBp bjoNCiAgKiBNZGVNb2R1bGVQa2dcQnVzXFVzYlxVc2JNb3VzZUFic29sdXRlUG9pbnRlckR4ZQ0K ICAqIE1kZU1vZHVsZVBrZ1xCdXNcVXNiXFVzYk1vdXNlRHhlDQpJZiB5b3UgZG8gbm90IGhhdmUg ZGV2aWNlIGZvciB2ZXJpZnlpbmcgdGhlIGNoYW5nZSwgSSBzdWdnZXN0IHRvIG1ha2UgdGhlIGNo YW5nZSBvbmx5IGluIFVzYktiRHhlLg0KDQozLiBTZW5kIG91dCBhIG5ldyBWMiBwYXRjaCByYXRo ZXIgdGhhbiByZXBseWluZyB0aGUgcHJldmlvdXMgcGF0Y2ggbWFpbC4NCg0KVGhhbmtzIGluIGFk dmFuY2UuDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQoNCj4gDQo+ICAgIFVzYktleWJvYXJk RGV2aWNlLT5DdHJsT24gICAgPSBGQUxTRTsNCj4gLS0NCj4gMi4zMi4wDQo+IA0KPiBPbiBUaHUs IEZlYiAxMCwgMjAyMiBhdCA5OjMyIFBNIFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPiB3 cm90ZToNCj4gPg0KPiA+IEhlbGxvLA0KPiA+DQo+ID4gSW5saW5lIGNvbW1lbnRzIGJlbG93Og0K PiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBT ZWFuIFJob2RlcyA8c2VhbkBzdGFybGFicy5zeXN0ZW1zPg0KPiA+ID4gU2VudDogRnJpZGF5LCBG ZWJydWFyeSAxMSwgMjAyMiA1OjI3IEFNDQo+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gPiA+IENjOiBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IE1hdHQgRGVWaWxsaWVy DQo+ID4gPiA8bWF0dC5kZXZpbGxpZXJAZ21haWwuY29tPjsgUGF0cmljayBSdWRvbHBoDQo+ID4g PiA8cGF0cmljay5ydWRvbHBoQDllbGVtZW50cy5jb20+DQo+ID4gPiBTdWJqZWN0OiBbUEFUQ0gg MTMvMThdIE1kZU1vZHVsZVBrZy9Vc2IvS2V5Ym9hcmQuYzogZG9uJ3QgcmVxdWVzdA0KPiA+ID4g cHJvdG9jb2wgYmVmb3JlIHNldHRpbmcNCj4gPiA+DQo+ID4gPiBGcm9tOiBNYXR0IERlVmlsbGll ciA8bWF0dC5kZXZpbGxpZXJAZ21haWwuY29tPg0KPiA+ID4NCj4gPiA+IE5vIG5lZWQgdG8gY2hl Y2sgdGhlIGludGVyZmFjZSBwcm90b2NvbCB0aGVuIGNvbmRpdGlvbmFsbHkgc2V0dGluZywNCj4g PiA+IGp1c3Qgc2V0IGl0IHRvIEJPT1RfUFJPVE9DT0wgYW5kIGNoZWNrIGZvciBlcnJvci4NCj4g PiA+DQo+ID4gPiBUaGlzIGlzIHdoYXQgTGludXggZG9lcyBmb3IgSElEIGRldmljZXMgYXMgc29t ZSBkb24ndCBmb2xsb3cgdGhlIFVTQiBzcGVjLg0KPiA+ID4gT25lIGV4YW1wbGUgaXMgdGhlIEFz cGVlZCBCTUMgSElEIGtleWJvYXJkIGRldmljZSwgd2hpY2ggYWRkcyBhDQo+ID4gPiBtYXNzaXZl IGJvb3QgZGVsYXkgd2l0aG91dCB0aGlzIHBhdGNoIGFzIGl0IGRvZXNuJ3QgcmVzcG9uZCB0bw0K PiAnR2V0UHJvdG9jb2xSZXF1ZXN0Jy4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYXR0 IERlVmlsbGllciA8bWF0dC5kZXZpbGxpZXJAZ21haWwuY29tPg0KPiA+ID4gU2lnbmVkLW9mZi1i eTogUGF0cmljayBSdWRvbHBoIDxwYXRyaWNrLnJ1ZG9scGhAOWVsZW1lbnRzLmNvbT4NCj4gPiA+ IC0tLQ0KPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvVXNiL1VzYktiRHhlL0tleUJvYXJkLmMgfCAy Mg0KPiA+ID4gKysrKysrKysrKysrKysrKystLS0tLQ0KPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAx NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQg YS9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JLYkR4ZS9LZXlCb2FyZC5jDQo+ID4gPiBiL01kZU1v ZHVsZVBrZy9CdXMvVXNiL1VzYktiRHhlL0tleUJvYXJkLmMNCj4gPiA+IGluZGV4IDVhOTRhNGRk YTcuLjU2ZDI0OWY5MzcgMTAwNjQ0DQo+ID4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1VzYi9V c2JLYkR4ZS9LZXlCb2FyZC5jDQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1VzYi9Vc2JL YkR4ZS9LZXlCb2FyZC5jDQo+ID4gPiBAQCAtODYzLDEyICs4NjMsMjQgQEAgSW5pdFVTQktleWJv YXJkICgNCj4gPiA+ICAgIC8vIFNldCBib290IHByb3RvY29sIGZvciB0aGUgVVNCIEtleWJvYXJk Lg0KPiA+ID4NCj4gPiA+ICAgIC8vIFRoaXMgZHJpdmVyIG9ubHkgc3VwcG9ydHMgYm9vdCBwcm90 b2NvbC4NCj4gPiA+DQo+ID4gPiAgICAvLw0KPiA+ID4NCj4gPiA+IC0gIGlmIChQcm90b2NvbCAh PSBCT09UX1BST1RPQ09MKSB7DQo+ID4gPg0KPiA+ID4gLSAgICBVc2JTZXRQcm90b2NvbFJlcXVl c3QgKA0KPiA+ID4NCj4gPiA+IC0gICAgICBVc2JLZXlib2FyZERldmljZS0+VXNiSW8sDQo+ID4g Pg0KPiA+ID4gLSAgICAgIFVzYktleWJvYXJkRGV2aWNlLT5JbnRlcmZhY2VEZXNjcmlwdG9yLklu dGVyZmFjZU51bWJlciwNCj4gPiA+DQo+ID4gPiAtICAgICAgQk9PVF9QUk9UT0NPTA0KPiA+ID4N Cj4gPiA+ICsgIFN0YXR1cyA9IFVzYlNldFByb3RvY29sUmVxdWVzdCAoDQo+ID4gPg0KPiA+ID4g KyAgICAgICAgICAgICBVc2JLZXlib2FyZERldmljZS0+VXNiSW8sDQo+ID4gPg0KPiA+ID4gKw0K PiA+ID4gKyBVc2JLZXlib2FyZERldmljZS0+SW50ZXJmYWNlRGVzY3JpcHRvci5JbnRlcmZhY2VO dW1iZXIsDQo+ID4gPg0KPiA+ID4gKyAgICAgICAgICAgICBCT09UX1BST1RPQ09MDQo+ID4gPg0K PiA+ID4gKyAgICAgICAgICAgICApOw0KPiA+ID4NCj4gPiA+ICsgIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gPiA+DQo+ID4gPiArICAgIC8vDQo+ID4gPg0KPiA+ID4gKyAgICAvLyBJZiBw cm90b2NvbCBjb3VsZCBub3QgYmUgc2V0IGhlcmUsIGl0IG1lYW5zDQo+ID4gPg0KPiA+ID4gKyAg ICAvLyB0aGUga2V5Ym9hcmQgaW50ZXJmYWNlIGhhcyBzb21lIGVycm9ycyBhbmQgY291bGQNCj4g PiA+DQo+ID4gPiArICAgIC8vIG5vdCBiZSBpbml0aWFsaXplZA0KPiA+ID4NCj4gPiA+ICsgICAg Ly8NCj4gPiA+DQo+ID4gPiArICAgIFJFUE9SVF9TVEFUVVNfQ09ERV9XSVRIX0RFVklDRV9QQVRI ICgNCj4gPiA+DQo+ID4gPiArICAgICAgRUZJX0VSUk9SX0NPREUgfCBFRklfRVJST1JfTUlOT1Is DQo+ID4gPg0KPiA+ID4gKyAgICAgIChFRklfUEVSSVBIRVJBTF9LRVlCT0FSRCB8IEVGSV9QX0VD X0lOVEVSRkFDRV9FUlJPUiksDQo+ID4gPg0KPiA+ID4gKyAgICAgIFVzYktleWJvYXJkRGV2aWNl LT5EZXZpY2VQYXRoDQo+ID4gPg0KPiA+ID4gICAgICAgICk7DQo+ID4gPg0KPiA+ID4gKw0KPiA+ ID4NCj4gPiA+ICsgICAgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1I7DQo+ID4gPg0KPiA+ID4gICAg fQ0KPiA+DQo+ID4NCj4gPiBTb3JyeSBmb3IgYSBxdWVzdGlvbiwgSSBkbyBub3QgdW5kZXJzdGFu ZCB3aHkgdGhlIHByb3Bvc2VkIGNoYW5nZSB3aWxsDQo+IGVsaW1pbmF0ZSB0aGUgYm9vdCBkZWxh eS4NCj4gPiBGb3IgZGV2aWNlIHRoYXQgZG9lcyBub3QgcmVzcG9uZCB0byBHZXRQcm90b2NvbFJl cXVlc3QoKSwgdGhlIG9yaWdpbiBmbG93DQo+IGlzIGxpa2U6DQo+ID4gYS4xIFRpbWVvdXQgb2Nj dXJzIGZvciBHZXRQcm90b2NvbFJlcXVlc3QoKQ0KPiA+IGEuMiBDb25kaXRpb25hbGx5IGV4ZWN1 dGUgVXNiU2V0UHJvdG9jb2xSZXF1ZXN0KCkNCj4gPg0KPiA+IFRoZSBwcm9wb3NlZCBuZXcgZmxv dyBpcyBsaWtlOg0KPiA+IGIuMSBUaW1lb3V0IG9jY3VycyBmb3IgR2V0UHJvdG9jb2xSZXF1ZXN0 KCkNCj4gPiBiLjIgQWx3YXlzIGV4ZWN1dGUgVXNiU2V0UHJvdG9jb2xSZXF1ZXN0KCkNCj4gPg0K PiA+IENvdWxkIHlvdSBoZWxwIHRvIGVsYWJvcmF0ZSBvbiB0aGUgY2hhbmdlPyBUaGFua3MgaW4g YWR2YW5jZS4NCj4gPg0KPiA+IEJlc3QgUmVnYXJkcywNCj4gPiBIYW8gV3UNCj4gPg0KPiA+DQo+ ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiAgICBVc2JLZXlib2FyZERldmljZS0+Q3RybE9uICAg ID0gRkFMU0U7DQo+ID4gPg0KPiA+ID4gLS0NCj4gPiA+IDIuMzIuMA0KPiA+DQo+IA0KPiANCj4g DQo+IA0KDQo=