From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A33978029E for ; Sun, 12 Mar 2017 19:31:41 -0700 (PDT) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP; 12 Mar 2017 19:31:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,156,1486454400"; d="scan'208";a="833836612" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by FMSMGA003.fm.intel.com with ESMTP; 12 Mar 2017 19:31:41 -0700 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 12 Mar 2017 19:31:40 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx101.amr.corp.intel.com (10.18.124.199) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 12 Mar 2017 19:31:40 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.177]) by shsmsx102.ccr.corp.intel.com ([169.254.2.88]) with mapi id 14.03.0248.002; Mon, 13 Mar 2017 10:31:36 +0800 From: "Tian, Feng" To: "Ni, Ruiyu" , "Wang, Sunny (HPS SW)" , "edk2-devel@lists.01.org" CC: "Haskell, Darrell" , "Tian, Feng" Thread-Topic: [edk2] [PATCH] MdeModulePkg/UefiBootManagerLib: Generate boot description for NVME Thread-Index: AQHSmXQTEsro/s+lZkOtWhtu4ZOzFaGNVESAgAQ0koCAAIe8wA== Date: Mon, 13 Mar 2017 02:31:36 +0000 Message-ID: <7F1BAD85ADEA444D97065A60D2E97EE5699B8EE4@SHSMSX101.ccr.corp.intel.com> References: <20170310075759.79780-1-ruiyu.ni@intel.com> <734D49CCEBEEF84792F5B80ED585239D5B8C88CB@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5B8C88CB@SHSMSX104.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/UefiBootManagerLib: Generate boot description for NVME X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2017 02:31:41 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgbm8gc3VjaCBsaWJyYXJ5IGNsYXNzL2luc3RhbmNlLiBJdCBzaG91bGQgYmUgSFBF LXNwZWNpZmljIHN0dWZmLg0KDQpSZXZpZXdlZC1ieTogRmVuZyBUaWFuIDxmZW5nLnRpYW5AaW50 ZWwuY29tPg0KDQpUaGFua3MNCkZlbmcNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy b206IE5pLCBSdWl5dSANClNlbnQ6IE1vbmRheSwgTWFyY2ggMTMsIDIwMTcgMTA6MjQgQU0NClRv OiBXYW5nLCBTdW5ueSAoSFBTIFNXKSA8c3Vubnl3YW5nQGhwZS5jb20+OyBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KQ2M6IFRpYW4sIEZlbmcgPGZlbmcudGlhbkBpbnRlbC5jb20+OyBIYXNrZWxs LCBEYXJyZWxsIDxkYXJyZWxsLmhhc2tlbGxAaHBlLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMl0g W1BBVENIXSBNZGVNb2R1bGVQa2cvVWVmaUJvb3RNYW5hZ2VyTGliOiBHZW5lcmF0ZSBib290IGRl c2NyaXB0aW9uIGZvciBOVk1FDQoNCkkgZGlkbid0IGZpbmQgdGhpcyBsaWJyYXJ5IGluIEVES0lJ Lg0KV2hlbiBJIGZpcnN0bHkgc2F3IHlvdXIgY29tbWVudHMsIEkgd2FzIGEgbGl0dGxlIGJpdCB1 bndpbGxpbmcgdG8gY2hhbmdlIFVlZmlCb290TWFuYWdlckxpYiB0byBkZXBlbmQgb24gVWVmaU52 bUV4cHJlc3NMaWIuIEJlY2F1c2UgaXQgd291bGQgcmVxdWlyZSBhbGwgcGxhdGZvcm1zIHRvIGlu Y2x1ZGUgVWVmaU52bUV4cHJlc3NMaWIgaW4gRFNDLg0KQnV0IHNpbmNlIG5vdyBJIGZpbmQgbm8g c3VjaCBsaWJyYXJ5LCBJIGZlZWwgbXVjaCBiZXR0ZXLwn5iKDQoNClRoYW5rcy9SYXkNCg0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRr Mi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIA0KPiBXYW5nLCBTdW5u eSAoSFBTIFNXKQ0KPiBTZW50OiBGcmlkYXksIE1hcmNoIDEwLCAyMDE3IDY6MTEgUE0NCj4gVG86 IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4gQ2M6IFRpYW4sIEZlbmcgPGZlbmcudGlhbkBpbnRlbC5jb20+OyBIYXNrZWxsLCBEYXJyZWxs IA0KPiA8ZGFycmVsbC5oYXNrZWxsQGhwZS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BB VENIXSBNZGVNb2R1bGVQa2cvVWVmaUJvb3RNYW5hZ2VyTGliOg0KPiBHZW5lcmF0ZSBib290IGRl c2NyaXB0aW9uIGZvciBOVk1FDQo+IA0KPiBIaSBSYXksDQo+IEp1c3QgYSBxdWVzdGlvbiBvdXQg b2YgY3VyaW9zaXR5LiBXaHkgZG9uJ3Qgd2UgdXNlIFVlZmlOdm1FeHByZXNzTGliJ3MNCj4gTnZt RXhwcmVzc0lkZW50aWZ5KCkgZm9yIHNlbmRpbmcgQURNSU5fSURFTlRJRlkgY29tbWFuZCB0byBO Vk1FIA0KPiBjb250cm9sbGVyPw0KPiBPdGhlcnMgbG9vayBnb29kIHRvIG1lLg0KPiANCj4gUmVn YXJkcywNCj4gU3VubnkgV2FuZw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmdd IE9uIEJlaGFsZiBPZiANCj4gUnVpeXUgTmkNCj4gU2VudDogRnJpZGF5LCBNYXJjaCAxMCwgMjAx NyAzOjU4IFBNDQo+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBDYzogRmVuZyBUaWFu IDxmZW5nLnRpYW5AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZWRrMl0gW1BBVENIXSBNZGVNb2R1 bGVQa2cvVWVmaUJvb3RNYW5hZ2VyTGliOiBHZW5lcmF0ZSBib290IA0KPiBkZXNjcmlwdGlvbiBm b3IgTlZNRQ0KPiANCj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24g QWdyZWVtZW50IDEuMA0KPiBTaWduZWQtb2ZmLWJ5OiBSdWl5dSBOaSA8cnVpeXUubmlAaW50ZWwu Y29tPg0KPiBDYzogRmVuZyBUaWFuIDxmZW5nLnRpYW5AaW50ZWwuY29tPg0KPiAtLS0NCj4gIC4u Li9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9CbUJvb3REZXNjcmlwdGlvbi5jIHwgMTA0DQo+ ICsrKysrKysrKysrKysrKysrKysrLQ0KPiAgLi4uL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGli L0ludGVybmFsQm0uaCAgICAgICAgfCAgIDQgKy0NCj4gIC4uLi9VZWZpQm9vdE1hbmFnZXJMaWIv VWVmaUJvb3RNYW5hZ2VyTGliLmluZiAgICAgIHwgICAxICsNCj4gIDMgZmlsZXMgY2hhbmdlZCwg MTA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0DQo+IGEv TWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtQm9vdERlc2NyaXB0aW9u LmMNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvQm1Cb290RGVz Y3JpcHRpb24uYw0KPiBpbmRleCAwNTA2NDdkLi41MDFhMGNjIDEwMDY0NA0KPiAtLS0gYS9NZGVN b2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvQm1Cb290RGVzY3JpcHRpb24uYw0K PiArKysgYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvQm1Cb290RGVz Y3JpcHRpb24uYw0KPiBAQCAtMSw3ICsxLDcgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBMaWJyYXJ5 IGZ1bmN0aW9ucyB3aGljaCByZWxhdGUgd2l0aCBib290IG9wdGlvbiBkZXNjcmlwdGlvbi4NCj4g DQo+IC1Db3B5cmlnaHQgKGMpIDIwMTEgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0KPiArQ29weXJpZ2h0IChjKSAyMDExIC0gMjAxNywgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ICtyZXNlcnZlZC48QlI+DQo+ICAoQykgQ29w eXJpZ2h0IDIwMTUgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+ ICANCj4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAgYXJlIGxp Y2Vuc2VkIGFuZCBtYWRlIA0KPiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRp b25zIG9mIHRoZSBCU0QgTGljZW5zZSBAQCAtNTAxLDYgDQo+ICs1MDEsMTA3IEBAIEJtR2V0TG9h ZEZpbGVEZXNjcmlwdGlvbiAoICB9DQo+IA0KPiAgLyoqDQo+ICsgIFJldHVybiB0aGUgYm9vdCBk ZXNjcmlwdGlvbiBmb3IgTlZNRSBib290IGRldmljZS4NCj4gKw0KPiArICBAcGFyYW0gSGFuZGxl ICAgICAgICAgICAgICAgIENvbnRyb2xsZXIgaGFuZGxlLg0KPiArDQo+ICsgIEByZXR1cm4gIFRo ZSBkZXNjcmlwdGlvbiBzdHJpbmcuDQo+ICsqKi8NCj4gK0NIQVIxNiAqDQo+ICtCbUdldE52bWVE ZXNjcmlwdGlvbiAoDQo+ICsgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgICAgSGFu ZGxlDQo+ICsgICkNCj4gK3sNCj4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdGF0dXM7DQo+ICsgIEVGSV9OVk1fRVhQUkVTU19QQVNTX1RIUlVfUFJPVE9DT0wg ICAgICAgKk52bWVQYXNzdGhydTsNCj4gKyAgRUZJX0RFVl9QQVRIX1BUUiAgICAgICAgICAgICAg ICAgICAgICAgICBEZXZpY2VQYXRoOw0KPiArICBFRklfTlZNX0VYUFJFU1NfUEFTU19USFJVX0NP TU1BTkRfUEFDS0VUIENvbW1hbmRQYWNrZXQ7DQo+ICsgIEVGSV9OVk1fRVhQUkVTU19DT01NQU5E ICAgICAgICAgICAgICAgICAgQ29tbWFuZDsNCj4gKyAgRUZJX05WTV9FWFBSRVNTX0NPTVBMRVRJ T04gICAgICAgICAgICAgICBDb21wbGV0aW9uOw0KPiArICBOVk1FX0FETUlOX0NPTlRST0xMRVJf REFUQSAgICAgICAgICAgICAgIENvbnRyb2xsZXJEYXRhOw0KPiArICBDSEFSMTYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICpEZXNjcmlwdGlvbjsNCj4gKyAgQ0hBUjE2ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqQ2hhcjsNCj4gKyAgVUlOVE4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4gKw0KPiArICBTdGF0dXMgPSBnQlMt PkhhbmRsZVByb3RvY29sIChIYW5kbGUsICZnRWZpRGV2aWNlUGF0aFByb3RvY29sR3VpZCwgDQo+ ICsgKFZPSUQgKiopICZEZXZpY2VQYXRoLkRldlBhdGgpOyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVz KSkgew0KPiArICAgIHJldHVybiBOVUxMOw0KPiArICB9DQo+ICsNCj4gKyAgU3RhdHVzID0gZ0JT LT5Mb2NhdGVEZXZpY2VQYXRoIA0KPiArICgmZ0VmaU52bUV4cHJlc3NQYXNzVGhydVByb3RvY29s R3VpZCwNCj4gKyAmRGV2aWNlUGF0aC5EZXZQYXRoLCAmSGFuZGxlKTsgIGlmIChFRklfRVJST1Ig KFN0YXR1cykgfHwNCj4gKyAgICAgIChEZXZpY2VQYXRoVHlwZSAoRGV2aWNlUGF0aC5EZXZQYXRo KSAhPSBNRVNTQUdJTkdfREVWSUNFX1BBVEgpDQo+IHx8DQo+ICsgICAgICAoRGV2aWNlUGF0aFN1 YlR5cGUgKERldmljZVBhdGguRGV2UGF0aCkgIT0NCj4gTVNHX05WTUVfTkFNRVNQQUNFX0RQKSkg ew0KPiArICAgIC8vDQo+ICsgICAgLy8gRG8gbm90IHJldHVybiBkZXNjcmlwdGlvbiB3aGVuIHRo ZSBIYW5kbGUgaXMgbm90IGEgY2hpbGQgb2YgDQo+ICsgTlZNRQ0KPiBjb250cm9sbGVyLg0KPiAr ICAgIC8vDQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICsgIH0NCj4gKw0KPiArICAvLw0KPiArICAv LyBTZW5kIEFETUlOX0lERU5USUZZIGNvbW1hbmQgdG8gTlZNRSBjb250cm9sbGVyIHRvIGdldCB0 aGUgbW9kZWwNCj4gYW5kIHNlcmlhbCBudW1iZXIuDQo+ICsgIC8vDQo+ICsgIFN0YXR1cyA9IGdC Uy0+SGFuZGxlUHJvdG9jb2wgKEhhbmRsZSwgDQo+ICsgJmdFZmlOdm1FeHByZXNzUGFzc1RocnVQ cm90b2NvbEd1aWQsIChWT0lEICoqKSAmTnZtZVBhc3N0aHJ1KTsgDQo+ICsgQVNTRVJUX0VGSV9F UlJPUiAoU3RhdHVzKTsNCj4gKw0KPiArICBaZXJvTWVtICgmQ29tbWFuZFBhY2tldCwNCj4gKyBz aXplb2YoRUZJX05WTV9FWFBSRVNTX1BBU1NfVEhSVV9DT01NQU5EX1BBQ0tFVCkpOw0KPiArICBa ZXJvTWVtICgmQ29tbWFuZCwgc2l6ZW9mKEVGSV9OVk1fRVhQUkVTU19DT01NQU5EKSk7DQo+IFpl cm9NZW0NCj4gKyAoJkNvbXBsZXRpb24sIHNpemVvZihFRklfTlZNX0VYUFJFU1NfQ09NUExFVElP TikpOw0KPiArDQo+ICsgIENvbW1hbmQuQ2R3MC5PcGNvZGUgPSBOVk1FX0FETUlOX0lERU5USUZZ X0NNRDsgIC8vICAvLw0KPiBBY2NvcmRpbmcgdG8NCj4gKyBOdm0gRXhwcmVzcyAxLjEgc3BlYyBG aWd1cmUgMzgsIFdoZW4gbm90IHVzZWQsIHRoZSBmaWVsZCBzaGFsbCBiZSANCj4gKyBjbGVhcmVk DQo+IHRvIDBoLg0KPiArICAvLyBGb3IgdGhlIElkZW50aWZ5IGNvbW1hbmQsIHRoZSBOYW1lc3Bh Y2UgSWRlbnRpZmllciBpcyBvbmx5IHVzZWQgDQo+ICsgZm9yIHRoZQ0KPiBOYW1lc3BhY2UgZGF0 YSBzdHJ1Y3R1cmUuDQo+ICsgIC8vDQo+ICsgIENvbW1hbmQuTnNpZCAgICAgICAgPSAwOw0KPiAr ICBDb21tYW5kUGFja2V0Lk52bWVDbWQgICAgICAgID0gJkNvbW1hbmQ7DQo+ICsgIENvbW1hbmRQ YWNrZXQuTnZtZUNvbXBsZXRpb24gPSAmQ29tcGxldGlvbjsgDQo+ICsgQ29tbWFuZFBhY2tldC5U cmFuc2ZlckJ1ZmZlciA9ICZDb250cm9sbGVyRGF0YTsgDQo+ICsgQ29tbWFuZFBhY2tldC5UcmFu c2Zlckxlbmd0aCA9IHNpemVvZiAoQ29udHJvbGxlckRhdGEpOyANCj4gKyBDb21tYW5kUGFja2V0 LkNvbW1hbmRUaW1lb3V0ID0gRUZJX1RJTUVSX1BFUklPRF9TRUNPTkRTICg1KTsNCj4gKyAgQ29t bWFuZFBhY2tldC5RdWV1ZVR5cGUgICAgICA9IE5WTUVfQURNSU5fUVVFVUU7DQo+ICsgIC8vDQo+ ICsgIC8vIFNldCBiaXQgMCAoQ25zIGJpdCkgdG8gMSB0byBpZGVudGlmeSBhIGNvbnRyb2xsZXIg IC8vDQo+ICsgIENvbW1hbmQuQ2R3MTAgICAgICAgICAgICAgICAgPSAxOw0KPiArICBDb21tYW5k LkZsYWdzICAgICAgICAgICAgICAgID0gQ0RXMTBfVkFMSUQ7DQo+ICsNCj4gKyAgU3RhdHVzID0g TnZtZVBhc3N0aHJ1LT5QYXNzVGhydSAoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTnZtZVBhc3N0aHJ1LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbW1hbmRQYWNrZXQsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7DQo+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICByZXR1 cm4gTlVMTDsNCj4gKyAgfQ0KPiArDQo+ICsgIERlc2NyaXB0aW9uID0gQWxsb2NhdGVaZXJvUG9v bCAoDQo+ICsgICAgICAgICAgICAgICAgICAoQVJSQVlfU0laRSAoQ29udHJvbGxlckRhdGEuTW4p ICsgMQ0KPiArICAgICAgICAgICAgICAgICAgICsgQVJSQVlfU0laRSAoQ29udHJvbGxlckRhdGEu U24pICsgMQ0KPiArICAgICAgICAgICAgICAgICAgICsgTUFYSU1VTV9WQUxVRV9DSEFSQUNURVJT ICsgMQ0KPiArICAgICAgICAgICAgICAgICAgICkgKiBzaXplb2YgKENIQVIxNikpOyAgaWYgKERl c2NyaXB0aW9uICE9IE5VTEwpIHsNCj4gKyAgICBDaGFyID0gRGVzY3JpcHRpb247DQo+ICsgICAg Zm9yIChJbmRleCA9IDA7IEluZGV4IDwgQVJSQVlfU0laRSAoQ29udHJvbGxlckRhdGEuTW4pOyBJ bmRleCsrKSB7DQo+ICsgICAgICAqKENoYXIrKykgPSAoQ0hBUjE2KSBDb250cm9sbGVyRGF0YS5N bltJbmRleF07DQo+ICsgICAgfQ0KPiArICAgICooQ2hhcisrKSA9IEwnICc7DQo+ICsgICAgZm9y IChJbmRleCA9IDA7IEluZGV4IDwgQVJSQVlfU0laRSAoQ29udHJvbGxlckRhdGEuU24pOyBJbmRl eCsrKSB7DQo+ICsgICAgICAqKENoYXIrKykgPSAoQ0hBUjE2KSBDb250cm9sbGVyRGF0YS5TbltJ bmRleF07DQo+ICsgICAgfQ0KPiArICAgICooQ2hhcisrKSA9IEwnICc7DQo+ICsgICAgVW5pY29k ZVZhbHVlVG9TdHJpbmdTICgNCj4gKyAgICAgIENoYXIsIHNpemVvZiAoQ0hBUjE2KSAqIChNQVhJ TVVNX1ZBTFVFX0NIQVJBQ1RFUlMgKyAxKSwNCj4gKyAgICAgIDAsIERldmljZVBhdGguTnZtZU5h bWVzcGFjZS0+TmFtZXNwYWNlSWQsIDANCj4gKyAgICAgICk7DQo+ICsgICAgQm1FbGltaW5hdGVF eHRyYVNwYWNlcyAoRGVzY3JpcHRpb24pOyAgfQ0KPiArDQo+ICsgIHJldHVybiBEZXNjcmlwdGlv bjsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICAgIFJldHVybiB0aGUgYm9vdCBkZXNjcmlwdGlvbiBm b3IgdGhlIGNvbnRyb2xsZXIgYmFzZWQgb24gdGhlIHR5cGUuDQo+IA0KPiAgICBAcGFyYW0gSGFu ZGxlICAgICAgICAgICAgICAgIENvbnRyb2xsZXIgaGFuZGxlLg0KPiBAQCAtNjA2LDYgKzcwNyw3 IEBAIEJNX0dFVF9CT09UX0RFU0NSSVBUSU9OIA0KPiBtQm1Cb290RGVzY3JpcHRpb25IYW5kbGVy c1tdID0gew0KPiAgICBCbUdldERlc2NyaXB0aW9uRnJvbURpc2tJbmZvLA0KPiAgICBCbUdldE5l dHdvcmtEZXNjcmlwdGlvbiwNCj4gICAgQm1HZXRMb2FkRmlsZURlc2NyaXB0aW9uLA0KPiArICBC bUdldE52bWVEZXNjcmlwdGlvbiwNCj4gICAgQm1HZXRNaXNjRGVzY3JpcHRpb24NCj4gIH07DQo+ IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGli L0ludGVybmFsQm0uaA0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxp Yi9JbnRlcm5hbEJtLmgNCj4gaW5kZXggNDQ0ZDRhNS4uOGQ3MjE1YSAxMDA2NDQNCj4gLS0tIGEv TWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0ludGVybmFsQm0uaA0KPiAr KysgYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvSW50ZXJuYWxCbS5o DQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIEJEUyBsaWJyYXJ5IGRlZmlu aXRpb24sIGluY2x1ZGUgdGhlIGZpbGUgYW5kIGRhdGEgc3RydWN0dXJlDQo+IA0KPiAtQ29weXJp Z2h0IChjKSAyMDA0IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+IHJl c2VydmVkLjxCUj4NCj4gK0NvcHlyaWdodCAoYykgMjAwNCAtIDIwMTcsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIA0KPiArcmVzZXJ2ZWQuPEJSPg0KPiAgKEMpIENvcHlyaWdodCAyMDE1 IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPiAgDQo+IFRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIGFyZSBsaWNlbnNlZCBhbmQg bWFkZSANCj4gYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUg QlNEIExpY2Vuc2UgQEAgLTIyLDYgDQo+ICsyMiw3IEBAIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBS RVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiANCj4gRVhQUkVTUyBPUiBJTVBMSUVE Lg0KPiAgI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvUGVJbWFnZS5oPiAgI2luY2x1ZGUgDQo+ IDxJbmR1c3RyeVN0YW5kYXJkL0F0YXBpLmg+ICAjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9T Y3NpLmg+DQo+ICsjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9Odm1lLmg+DQo+IA0KPiAgI2lu Y2x1ZGUgPFByb3RvY29sL1BjaVJvb3RCcmlkZ2VJby5oPiAgI2luY2x1ZGUgPFByb3RvY29sL0Js b2NrSW8uaD4gDQo+IEBAIC0zOCw2ICszOSw3IEBAIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBS RVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIA0KPiBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0K PiAgI2luY2x1ZGUgPFByb3RvY29sL0dyYXBoaWNzT3V0cHV0Lmg+DQo+ICAjaW5jbHVkZSA8UHJv dG9jb2wvVXNiSW8uaD4NCj4gICNpbmNsdWRlIDxQcm90b2NvbC9EaXNrSW5mby5oPg0KPiArI2lu Y2x1ZGUgPFByb3RvY29sL052bUV4cHJlc3NQYXNzdGhydS5oPg0KPiAgI2luY2x1ZGUgPFByb3Rv Y29sL0lkZUNvbnRyb2xsZXJJbml0Lmg+ICAjaW5jbHVkZSANCj4gPFByb3RvY29sL0Jvb3RMb2dv Lmg+ICNpbmNsdWRlIDxQcm90b2NvbC9Ecml2ZXJIZWFsdGguaD4gZGlmZiAtLWdpdCANCj4gYS9N ZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvVWVmaUJvb3RNYW5hZ2VyTGli LmluZg0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9VZWZpQm9v dE1hbmFnZXJMaWIuaW5mDQo+IGluZGV4IDY0NDJmMjIuLjI2NGQ3MjYgMTAwNjQ0DQo+IC0tLSBh L01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9VZWZpQm9vdE1hbmFnZXJM aWIuaW5mDQo+ICsrKw0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxp Yi9VZWZpQm9vdE1hbmFnZXJMaWIuaW5mDQo+IEBAIC0xMDksNiArMTA5LDcgQEAgW1Byb3RvY29s c10NCj4gICAgZ0Vka2lpVmFyaWFibGVMb2NrUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICMj IFNPTUVUSU1FU19DT05TVU1FUw0KPiAgICBnRWZpR3JhcGhpY3NPdXRwdXRQcm90b2NvbEd1aWQg ICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ICAgIGdFZmlVc2JJb1Byb3Rv Y29sR3VpZCAgICAgICAgICAgICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4g KyAgZ0VmaU52bUV4cHJlc3NQYXNzVGhydVByb3RvY29sR3VpZCAgICAgICAgICAgICMjIFNPTUVU SU1FU19DT05TVU1FUw0KPiAgICBnRWZpRGlza0luZm9Qcm90b2NvbEd1aWQgICAgICAgICAgICAg ICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ICAgIGdFZmlEcml2ZXJIZWFsdGhQcm90 b2NvbEd1aWQgICAgICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4gICAgZ0Vm aUZvcm1Ccm93c2VyMlByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICMjIFNPTUVUSU1FU19D T05TVU1FUw0KPiAtLQ0KPiAyLjkuMC53aW5kb3dzLjENCj4gDQo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0 DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxt YW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXw0KPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Vk azItZGV2ZWwNCg==