From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.8.89; helo=nam03-dm3-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-oln040092008089.outbound.protection.outlook.com [40.92.8.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BD8B8210E8D7E for ; Thu, 9 Aug 2018 21:00:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FoWQnjbbgyecW6BryX3xW9GUXTgghfNF8tQsIDCONZs=; b=at/ks/Gfj73h/zfY9Rx1sUqUF7tAnJsjUMWnVe2BegtzcDokJq1ekowflch8WX/NIN7jFxeqWY4YMnmetZx1qX7ig77fHZpPoPAHedTtdXs9ahVDY0ZTDtK40Png+6mCC16CIeR6agrapL+Do3996BtSzYAwGRrg5K97urDCIiG/WEAR0OsNTMk8tqsz64QhhSQToGOOqPRaWZOS7Cgdvoif+//5wHyC+9vWDHf986nA39d6+FU9+5iepdfTYth/mqc5TPbV5L5leXVEzO3TLAr2d5Wgf9qq3kSh7Hp3Jp3FH9+DB9ZsJ4t2WIxqqC/+FomVlaSpr/QnNgVXYHfQRg== Received: from DM3NAM03FT005.eop-NAM03.prod.protection.outlook.com (10.152.82.52) by DM3NAM03HT217.eop-NAM03.prod.protection.outlook.com (10.152.82.169) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.1038.13; Fri, 10 Aug 2018 04:00:14 +0000 Received: from SN6PR19MB2269.namprd19.prod.outlook.com (10.152.82.57) by DM3NAM03FT005.mail.protection.outlook.com (10.152.82.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.1038.3 via Frontend Transport; Fri, 10 Aug 2018 04:00:14 +0000 Received: from SN6PR19MB2269.namprd19.prod.outlook.com ([fe80::5d26:33cc:d7fe:4a38]) by SN6PR19MB2269.namprd19.prod.outlook.com ([fe80::5d26:33cc:d7fe:4a38%3]) with mapi id 15.20.1017.019; Fri, 10 Aug 2018 04:00:08 +0000 From: Fan Jeff To: "Dong, Eric" , 'Laszlo Ersek' CC: "Ni, Ruiyu" , "Kinney, Michael D" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [Patch v2 2/2] UefiCpuPkg/CpuS3DataDxe: Change Memory Type and address limitation. Thread-Index: AQHULusKfi4oJoIxZ06IUqOTuZNRXKS2E1wAgAJGOgCAAAUK2A== Date: Fri, 10 Aug 2018 04:00:08 +0000 Message-ID: References: <20180808074006.21360-1-eric.dong@intel.com> <20180808074006.21360-2-eric.dong@intel.com> , In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:F306797E78DE7A468B0AA386EAD618273837C5827028B958BBC7ADCD9AE35440; UpperCasedChecksum:91B75155611E6C73F9C111F47F5110B58806DD9A8716162135D95778BF901A18; SizeAsReceived:7571; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [iol9eXBh+d4102qqV03wu62YKsc3qhjm] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM3NAM03HT217; 6:vS4Q3fCCB/oLSuzpj6pFBSryNO0e4/aqNJYCA7sFcQLo1KlxB2y1bY2nF6JoHppiGtq8SMy6nn/ll5R6wnQpOBwLIAEyjRvvWDIO4now7Lw2VIea7N5pxoZsYib91vSFxcNzm8u9eNbgNTYc5aIn4DfhQvq1qqXi5qfNjQlnH0hzaokJ8ED801nDP8HxUIoDbhtdHdjVSFE7XfyuB/7B+5phez1nr+y5VZ5RFCzw4s7+yTNrhE5RIF6idYRVHONdsqb7dBWiCd9fApJCBbg2L9xZYuspq3OGvVbPXP7a9pnVu0h/U2JFr7pfPUb/ZzK6zM6XLgKIP6hoSiGCgGKyGwtpnYkVNmG6YDJBrSVTwVNXfwMGoNjKVbeLE+LbFItVLm62NkQOWsF9TCuOxluOB6wqI9YvDwOtF/1suV/AVDTMWOH5uV0fCzdIiXWdsO4XnTEf7vk7yLX3MnyZb+90HQ==; 5:uk6wGTvyFP3y29NvmndeDztQvebNlxZ5BqaK2DAIWwY5VUAB1d0EqJj21GK/zvdeE76Vwu7NBlnfxUxqyiAmBIdL0kOGEMrnIXatXxa8cU9Z4pYizqbmREOhrgyVPmaXjqs46FDAF9rq5bLV29DmCEXzABodQbrxnEJ7jaMbX6Y=; 7:kOBpYBqy2WdjGBJbSkL60k71h80Fb9eChA1JEYelYvaxYoJ2KXMGcj3ghAsOFNIF0Pds4Ix3DFei8oDtJ22l5ElZEYfEBMDXI5ifyo1y5kz3v5zpJ1fosp4OBdMAArHVANBsvIXP7trz0j6HH4TMiGA8xJrwrNQKPZs3HZFSX/JVluuLDNKc0bUFV+46tgwDPzsqqpGdBL/svBW9I+Tn3h82PZb+bRYS4g4klQQMiqp1ceT9xxRdmLk3c/dG/83B x-incomingheadercount: 47 x-eopattributedmessage: 0 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101475)(1601125500)(1701031045); SRVR:DM3NAM03HT217; x-ms-traffictypediagnostic: DM3NAM03HT217: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(4566010)(82015058); SRVR:DM3NAM03HT217; BCL:0; PCL:0; RULEID:; SRVR:DM3NAM03HT217; x-forefront-prvs: 07607ED19A x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(13464003)(199004)(189003)(106356001)(5660300001)(73972006)(966005)(99286004)(54906003)(68736007)(81156014)(33656002)(53546011)(110136005)(476003)(224303003)(14444005)(20460500001)(105586002)(256004)(11346002)(102836004)(446003)(56003)(45080400002)(26005)(6346003)(82202002)(606006)(83332001)(4001150100001)(8936002)(6506007)(97736004)(14454004)(93886005)(6436002)(55016002)(74316002)(5250100002)(2900100001)(25786009)(45954006)(87572001)(4326008)(104016004)(76176011)(486006)(9686003)(54896002)(86362001)(575784001)(236005)(6306002)(7696005)(19627235002)(15852004); DIR:OUT; SFP:1901; SCL:1; SRVR:DM3NAM03HT217; H:SN6PR19MB2269.namprd19.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: hotmail.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vanjeff_919@hotmail.com; x-microsoft-antispam-message-info: 7HH5jWoY71xz667JCMvxNEIZN+cBNKfuVKJ+N3bXunpUrSb9eul+xKSMsRj74pwxGkj9if3oGQuPtj4mbBc5cWe3+3q6Okbe8ZecdcNngmPAXMh/4nZLCNz4LRLLph0Z0JY0yo+YjhivlZDRVSSauyAc7ywWqOkvE3uJ2mw93ji5WdGBTYDcXy/unkc6xoudcRHPucjg+FAhPjlqZXVSOfrX/U+LBKCawgpd2/JPDcg= MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: d4d70346-2c10-4f39-8c00-e767963926d9 X-MS-Exchange-CrossTenant-Network-Message-Id: 3c8098b2-41ad-448b-ed11-08d5fe75c35f X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: d4d70346-2c10-4f39-8c00-e767963926d9 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2018 04:00:08.4565 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3NAM03HT217 X-Content-Filtered-By: Mailman/MimeDel 2.1.27 Subject: =?UTF-8?B?562U5aSNOiBbUGF0Y2ggdjIgMi8yXSBVZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZTogQ2hhbmdlIE1lbW9yeSBUeXBlIGFuZCBhZGRyZXNzIGxpbWl0YXRpb24u?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Aug 2018 04:00:17 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCg0KDQpBQ1BJIE5WUyBhbmQgNEcgbGltaXRhdGlvbiBhcmUgaGlzdG9yeSByZWFzb24g YW5kIGFyZSBuZWNlc3NhcnkgY3VycmVudGx5LiAgSSBhZ3JlZSB0byBkbyBzdWNoIGNsZWFudXAg ZnJvbSBoZWFkZXIgZmlsZSBhbmQgaW1wbGVtZW50YXRpb24uDQoNCg0KDQpMb25nIHRlcm0sIGNv dWxkIHdlIHRoaW5rIG9mIGNvbWJpbmUgQ3B1RmVhdHVyZXNEeGUgYW5kIENwdVMzRGF0YUR4ZT8N Cg0KDQoNCkplZmYNCg0KDQoNCuWPkemAgeiHqiBXaW5kb3dzIDEwIOeJiOmCruS7tjxodHRwczov L2dvLm1pY3Jvc29mdC5jb20vZndsaW5rLz9MaW5rSWQ9NTUwOTg2PuW6lOeUqA0KDQoNCg0KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCuWPkeS7tuS6ujogZWRrMi1kZXZlbCA8ZWRr Mi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZz4g5Luj6KGoIERvbmcsIEVyaWMgPGVyaWMuZG9u Z0BpbnRlbC5jb20+DQrlj5HpgIHml7bpl7Q6IEZyaWRheSwgQXVndXN0IDEwLCAyMDE4IDExOjM5 OjE2IEFNDQrmlLbku7bkuro6ICdMYXN6bG8gRXJzZWsnDQrmioTpgIE6IE5pLCBSdWl5dTsgS2lu bmV5LCBNaWNoYWVsIEQ7IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQrkuLvpopg6IFJlOiBbZWRr Ml0gW1BhdGNoIHYyIDIvMl0gVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGU6IENoYW5nZSBNZW1vcnkg VHlwZSBhbmQgYWRkcmVzcyBsaW1pdGF0aW9uLg0KDQpIaSBMYXN6bG8sDQoNCg0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRl dmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YNCj4gTGFzemxvIEVyc2VrDQo+ IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgOSwgMjAxOCAxMjo1NSBBTQ0KPiBUbzogRG9uZywgRXJp YyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwu Y29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsg ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUGF0Y2ggdjIg Mi8yXSBVZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZTogQ2hhbmdlDQo+IE1lbW9yeSBUeXBlIGFuZCBh ZGRyZXNzIGxpbWl0YXRpb24uDQo+DQo+IEhlbGxvIEVyaWMsDQo+DQo+IE9uIDA4LzA4LzE4IDA5 OjQwLCBFcmljIERvbmcgd3JvdGU6DQo+ID4gQmVjYXVzZSBDcHVTM0RhdGEgbWVtb3J5IHdpbGwg YmUgY29weSB0byBzbXJhbSBhdCBTbW1SZWFkVG9Mb2NrDQo+IHBvaW50LA0KPiA+IHNvIHRoZSBt ZW1vcnkgdHlwZSBubyBuZWVkIHRvIGJlIEFDUEkgTlZTIHR5cGUsIGFsc28gdGhlIGFkZHJlc3Mg bm90DQo+ID4gbGltaXQgdG8gYmVsb3cgNEcuDQo+ID4gVGhpcyBjaGFuZ2UgcmVtb3ZlIHRoZSBs aW1pdCBvZiBBQ1BJIE5WUyBtZW1vcnkgdHlwZSBhbmQgYmVsb3cgNEcuDQo+ID4NCj4gPiBQYXNz IE9TIGJvb3QgYW5kIHJlc3VtZSBmcm9tIFMzIHRlc3QuDQo+ID4NCj4gPiBCdWd6OiBodHRwczov L2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTk1OQ0KPiA+DQo+ID4gUmVw b3J0ZWQtYnk6IE1hcnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT4NCj4g PiBTdWdnZXN0ZWQtYnk6IEZhbiBKZWZmIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNvbT4NCj4NCj4g KDEpIEkgYmVsaWV2ZSB0aGVzZSB0YWdzIGRvbid0IGFwcGx5IHRvIHRoaXMgcGF0Y2ggLS0gdGhp cyBwYXRjaCBzZWVtcyB0byBiZSBhDQo+IG5ldyBpZGVhIC8gYWRkaXRpb24uDQo+DQoNClllcywg d2lsbCByZW1vdmUgaXQgaW4gbXkgbmV4dCB2ZXJzaW9uIHBhdGNoLg0KDQo+DQo+ID4gQ2M6IE1h cnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFldXNlckBvdXRsb29rLmNvbT4NCj4gPiBDYzogRmFuIEpl ZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPg0KPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPg0KPiA+IENjOiBSdWl5dSBOaSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+ IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjEN Cj4gPiBTaWduZWQtb2ZmLWJ5OiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4g LS0tDQo+ID4gIFVlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0YS5jICAgICAgfCA2MCAr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0NCj4gPiAgVWVmaUNwdVBrZy9DcHVT M0RhdGFEeGUvQ3B1UzNEYXRhRHhlLmluZiB8ICAxICsNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAx NCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9V ZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGEuYw0KPiA+IGIvVWVmaUNwdVBrZy9DcHVT M0RhdGFEeGUvQ3B1UzNEYXRhLmMNCj4gPiBpbmRleCBkY2NiNDA2YjhkLi5kOGViOGM5NzZmIDEw MDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0YS5jDQo+ID4g KysrIGIvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhLmMNCj4gPiBAQCAtMzEsNiAr MzEsNyBAQCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GDQo+IEFOWSBL SU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9V ZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvRGVidWdM aWIuaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvTXRyckxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8 TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4NCj4gPiAgI2luY2x1ZGUgPFByb3Rv Y29sL01wU2VydmljZS5oPg0KPiA+ICAjaW5jbHVkZSA8R3VpZC9FdmVudEdyb3VwLmg+DQo+ID4g QEAgLTQ1LDQyICs0Niw2IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gPiAgICBJQTMyX0RFU0NSSVBU T1IgICAgICAgICAgIElkdHJQcm9maWxlOw0KPiA+ICB9IEFDUElfQ1BVX0RBVEFfRVg7DQo+ID4N Cj4gPiAtLyoqDQo+ID4gLSAgQWxsb2NhdGUgRWZpQUNQSU1lbW9yeU5WUyBiZWxvdyA0RyBtZW1v cnkgYWRkcmVzcy4NCj4gPiAtDQo+ID4gLSAgVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgRWZpQUNQ SU1lbW9yeU5WUyBiZWxvdyA0RyBtZW1vcnkgYWRkcmVzcy4NCj4gPiAtDQo+ID4gLSAgQHBhcmFt W2luXSBTaXplICAgU2l6ZSBvZiBtZW1vcnkgdG8gYWxsb2NhdGUuDQo+ID4gLQ0KPiA+IC0gIEBy ZXR1cm4gICAgICAgQWxsb2NhdGVkIGFkZHJlc3MgZm9yIG91dHB1dC4NCj4gPiAtDQo+ID4gLSoq Lw0KPiA+IC1WT0lEICoNCj4gPiAtQWxsb2NhdGVBY3BpTnZzTWVtb3J5QmVsb3c0RyAoDQo+ID4g LSAgSU4gVUlOVE4gIFNpemUNCj4gPiAtICApDQo+ID4gLXsNCj4gPiAtICBFRklfUEhZU0lDQUxf QUREUkVTUyAgQWRkcmVzczsNCj4gPiAtICBFRklfU1RBVFVTICAgICAgICAgICAgU3RhdHVzOw0K PiA+IC0gIFZPSUQgICAgICAgICAgICAgICAgICAqQnVmZmVyOw0KPiA+IC0NCj4gPiAtICBBZGRy ZXNzID0gQkFTRV80R0IgLSAxOw0KPiA+IC0gIFN0YXR1cyAgPSBnQlMtPkFsbG9jYXRlUGFnZXMg KA0KPiA+IC0gICAgICAgICAgICAgICAgICAgQWxsb2NhdGVNYXhBZGRyZXNzLA0KPiA+IC0gICAg ICAgICAgICAgICAgICAgRWZpQUNQSU1lbW9yeU5WUywNCj4gPiAtICAgICAgICAgICAgICAgICAg IEVGSV9TSVpFX1RPX1BBR0VTIChTaXplKSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICZBZGRy ZXNzDQo+ID4gLSAgICAgICAgICAgICAgICAgICApOw0KPiA+IC0gIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gPiAtICAgIHJldHVybiBOVUxMOw0KPiA+IC0gIH0NCj4gPiAtDQo+ID4gLSAg QnVmZmVyID0gKFZPSUQgKikoVUlOVE4pQWRkcmVzczsNCj4gPiAtICBaZXJvTWVtIChCdWZmZXIs IFNpemUpOw0KPiA+IC0NCj4gPiAtICByZXR1cm4gQnVmZmVyOw0KPiA+IC19DQo+ID4gLQ0KPiA+ ICAvKioNCj4gPiAgICBDYWxsYmFjayBmdW5jdGlvbiBleGVjdXRlZCB3aGVuIHRoZSBFbmRPZkR4 ZSBldmVudCBncm91cCBpcyBzaWduYWxlZC4NCj4gPg0KPiA+IEBAIC0xNTAsNyArMTE1LDYgQEAg Q3B1UzNEYXRhSW5pdGlhbGl6ZSAoDQo+ID4gICAgRUZJX01QX1NFUlZJQ0VTX1BST1RPQ09MICAg Kk1wU2VydmljZXM7DQo+ID4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgTnVtYmVyT2ZD cHVzOw0KPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgIE51bWJlck9mRW5hYmxlZFBy b2Nlc3NvcnM7DQo+ID4gLSAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgKlN0YWNrOw0KPiA+ ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgIFRhYmxlU2l6ZTsNCj4gPiAgICBDUFVfUkVH SVNURVJfVEFCTEUgICAgICAgICAqUmVnaXN0ZXJUYWJsZTsNCj4gPiAgICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICBJbmRleDsNCj4gPiBAQCAtMTcxLDEwICsxMzUsNyBAQCBDcHVTM0RhdGFJ bml0aWFsaXplICgNCj4gPiAgICAvLw0KPiA+ICAgIE9sZEFjcGlDcHVEYXRhID0gKEFDUElfQ1BV X0RBVEEgKikgKFVJTlROKSBQY2RHZXQ2NA0KPiA+IChQY2RDcHVTM0RhdGFBZGRyZXNzKTsNCj4g Pg0KPiA+IC0gIC8vDQo+ID4gLSAgLy8gQWxsb2NhdGUgQUNQSSBOVlMgbWVtb3J5IGJlbG93IDRH IG1lbW9yeSBmb3IgdXNlIG9uIEFDUEkgUzMNCj4gcmVzdW1lLg0KPiA+IC0gIC8vDQo+ID4gLSAg QWNwaUNwdURhdGFFeCA9IEFsbG9jYXRlQWNwaU52c01lbW9yeUJlbG93NEcgKHNpemVvZg0KPiA+ IChBQ1BJX0NQVV9EQVRBX0VYKSk7DQo+ID4gKyAgQWNwaUNwdURhdGFFeCA9IEFsbG9jYXRlUGFn ZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChzaXplb2YNCj4gPiArIChBQ1BJX0NQVV9EQVRBX0VYKSkp Ow0KPg0KPiAoMikgSW4gdGhlIG9yaWdpbmFsIEFsbG9jYXRlQWNwaU52c01lbW9yeUJlbG93NEco KSBmdW5jdGlvbiwgd2UgaGF2ZSBhDQo+IFplcm9NZW0oKSBjYWxsLiBGb3IgY29tcGF0aWJpbGl0 eSwgSSB0aGluayB3ZSBzaG91bGQgY2FsbA0KPiBBbGxvY2F0ZVplcm9QYWdlcygpIGhlcmUuDQo+ DQo+IChQcmV2aW91c2x5LCB0aGUgdHJhaWxpbmcgcG9ydGlvbiBvZiB0aGUgbGFzdCBwYWdlIG1h eSBub3QgaGF2ZSBiZWVuIHplcm9lZCwNCj4gYnV0IGl0J3Mgbm90IGEgcHJvYmxlbSB0byB6ZXJv IG1vcmUgdGhhbiBiZWZvcmUuKQ0KPg0KDQpBZ3JlZSwgd2lsbCB1c2UgQWxsb2NhdGVaZXJvUGFn ZXMuDQoNCj4NCj4gKDMpIFRoZSAiVWVmaUNwdVBrZy9JbmNsdWRlL0FjcGlDcHVEYXRhLmgiIGhl YWRlciBzdGF0ZXMgdGhhdA0KPiBBQ1BJX0NQVV9EQVRBICh0aGUgc3RydWN0dXJlIGl0c2VsZikg Im11c3QgYmUgYWxsb2NhdGVkIGJlbG93IDRHQiBmcm9tDQo+IG1lbW9yeSBvZiB0eXBlIEVmaUFD UElNZW1vcnlOVlMiLg0KPg0KPiBJZiB3ZSBoYXZlIGRldGVybWluZWQgdGhhdCB0aGlzIGlzIG5v IGxvbmdlciBuZWNlc3NhcnksIHRoZW46DQo+IC0gd2Ugc2hvdWxkIGZpcnN0IHVwZGF0ZSB0aGUg ZG9jdW1lbnRhdGlvbiBpbiAiQWNwaUNwdURhdGEuaCIgZmlyc3QsDQo+IC0gdGhlIGNvbW1pdCBt ZXNzYWdlIHNob3VsZCBjYXJlZnVsbHkgZXhwbGFpbiB3aHkgdGhlIGNoYW5nZSBpcyB2YWxpZC4N Cj4NCg0KQWdyZWUsIHdpbGwgZG8gaXQuDQoNCj4gSW4gcGFydGljdWxhciwgbXkgY29uY2VybiBp cyBub3QgYWJvdXQgdGhlIG5vcm1hbCBib290IHBhdGguIChUaGUgbm9ybWFsIGJvb3QNCj4gcGF0 aCBpcyBleHBsYWluZWQgZm9yIGV4YW1wbGUgaW4gdGhlIG1lc3NhZ2Ugb2YgY29tbWl0IDkyYjg3 ZjFjOGMwYiwNCj4gIk92bWZQa2c6IGJ1aWxkIENwdVMzRGF0YUR4ZSBmb3IgLUQgU01NX1JFUVVJ UkUiLA0KPiAyMDE1LTExLTMwLikgSSBhZ3JlZSB0aGF0IGNvcHlpbmcgZnJvbSBCb290U2Vydmlj ZXNEYXRhIHR5cGUgbWVtb3J5IGludG8NCj4gU01SQU0gaXMgZmluZSwgZHVyaW5nIG5vcm1hbCBi b290Lg0KPg0KPiBJbnN0ZWFkLCBteSBjb25jZXJuIGlzIHdpdGggdGhlIFMzIHJlc3VtZSBwYXRo LCB3aGVuIHRoZSBkYXRhIGZyb20gdGhlDQo+IFNNUkFNIGJ1ZmZlciBpcyAqcmVzdG9yZWQqLiBJ IHNlZW0gdG8gcmVjYWxsIGEgY2FzZSB3aGVuIHRoZSBkYXRhIHdhcyBmaXJzdA0KPiByZXN0b3Jl ZCBmcm9tIFNNUkFNIHRvIHRoZSBvcmlnaW5hbCBBY3BpTlZTIGFsbG9jYXRpb24uDQoNCkkgc2Vh cmNoZWQgdGhlIGNvZGUgYmFzZSBhbmQgbm90IGZvdW5kIGFueSBjb2RlIG5lZWRzIHRvIHJlc3Rv cmUgdGhlIG9yaWdpbmFsIEFjcGlOVlMgbWVtb3J5Lg0KDQo+IElmIHdlIG1ha2UgdGhhdA0KPiBh cmVhIEJvb3RTZXJ2aWNlc0RhdGEgbm93LCB0aGVuIHRoZSBPUyB3aWxsIHJldXNlIGl0LCBhbmQg dGhlbiBhdA0KPiBTMyByZXN1bWUsIHdlIG92ZXJ3cml0ZSBPUyBkYXRhLg0KPg0KDQo+IC4uLiBB ZnRlciByZXZpZXdpbmcgdGhlIEdldEFjcGlDcHVEYXRhKCkgZnVuY3Rpb24gaW4NCj4gIlVlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1UzMuYyIsIEkgKnRoaW5rKiB0aGlzIGlzIGEgdmFsaWQg Y2hhbmdlLA0KPiBiZWNhdXNlIEdldEFjcGlDcHVEYXRhKCkgbmV2ZXIgcmVtZW1iZXJzIHRoZSBh ZGRyZXNzIG9mIHRoZQ0KPiBBQ1BJX0NQVV9EQVRBIHN0cnVjdHVyZSwgb3IgdGhlIGFkZHJlc3Nl cyBvZiBpdHMgZmllbGRzLg0KPg0KPiBIb3dldmVyLCBJIHdvdWxkIGxpa2UgTWlrZSB0byByZXZp ZXcgdGhpcyBhcyB3ZWxsIChDQydpbmcgaGltKS4NCj4NCj4NCj4gKDQpIEJlY2F1c2UgQUNQSV9D UFVfREFUQV9FWCBjb250YWlucyBNdHJyVGFibGUsIEdkdHJQcm9maWxlIGFuZA0KPiBJZHRyUHJv ZmlsZSB0b28sIG5vdCBqdXN0IEFDUElfQ1BVX0RBVEEsIHRoZSBhYm92ZSBjaGFuZ2UgbW92ZXMg YWxsIG9mIHRob3NlDQo+IGZpZWxkcyBpbnRvIEJvb3RTZXJ2aWNlc0RhdGEgdHlwZSBtZW1vcnku IEluIHR1cm4sIHRoZQ0KPiBFRklfUEhZU0lDQUxfQUREUkVTUyBmaWVsZHMgaW4gQUNQSV9DUFVf REFUQSB0aGF0IGhhdmUgdGhlIHNhbWUgbmFtZXMNCj4gd2lsbCBwb2ludCBpbnRvIEJvb3RTZXJ2 aWNlc0RhdGEgdHlwZSBtZW1vcnkuDQo+DQo+IFRoaXMgY29uZmxpY3RzIHdpdGggdGhlIHJlcXVp cmVtZW50cyB0aGF0IGFyZSBkb2N1bWVudGVkIGluDQo+ICJVZWZpQ3B1UGtnL0luY2x1ZGUvQWNw aUNwdURhdGEuaCIgZm9yIGFsbCB0aHJlZSBmaWVsZHM6IE10cnJUYWJsZSwNCj4gR2R0clByb2Zp bGUgYW5kIElkdHJQcm9maWxlLg0KPg0KDQpJIHdpbGwgYWRkIGEgc2VwYXJhdGUgcGF0Y2ggdG8g cmVtb3ZlIHRoZSBtZW1vcnkgdHlwZSBhbmQgYmVsb3cgNEcgbGltaXRhdGlvbiBpbiB0aGUgaGVh ZGVyIGZpbGUuDQoNCj4gSWYgd2Ugd2FudCB0byBjaGFuZ2UgdGhlIGFsbG9jYXRpb24gb2YgdGhl c2Ugb2JqZWN0cyAob2YgdHlwZSBNVFJSX1NFVFRJTkdTLA0KPiBJQTMyX0RFU0NSSVBUT1IgYW5k IElBMzJfREVTQ1JJUFRPUiwgcmVzcGVjdGl2ZWx5KSwgdGhlbiB3ZSBzaG91bGQgYXVkaXQNCj4g dGhlaXIgdXNlIGR1cmluZyBTMyByZXN1bWUgaW4gdGhlIFBpU21tQ3B1RHhlU21tIGRyaXZlciwg YW5kIGRvY3VtZW50DQo+IHRoZW0gb25lLWJ5LW9uZS4NCj4NCj4gLi4uIEJhc2VkIG9uIEdldEFj cGlDcHVEYXRhKCkgYWdhaW4sIEkgKnRoaW5rKiB0aGlzIGlzIHZhbGlkIGNoYW5nZSwNCj4gZnVu Y3Rpb25hbGx5IHNwZWFraW5nLCBidXQgSSdkIGxpa2UgTWlrZSB0byByZXZpZXcgYXMgd2VsbC4N Cj4NCj4NCj4gPiAgICBBU1NFUlQgKEFjcGlDcHVEYXRhRXggIT0gTlVMTCk7DQo+ID4gICAgQWNw aUNwdURhdGEgPSAmQWNwaUNwdURhdGFFeC0+QWNwaUNwdURhdGE7DQo+ID4NCj4gPiBAQCAtMjEw LDExICsxNzEsMTYgQEAgQ3B1UzNEYXRhSW5pdGlhbGl6ZSAoDQo+ID4gICAgQWNwaUNwdURhdGEt Pk10cnJUYWJsZSAgICA9DQo+IChFRklfUEhZU0lDQUxfQUREUkVTUykoVUlOVE4pJkFjcGlDcHVE YXRhRXgtPk10cnJUYWJsZTsNCj4gPg0KPiA+ICAgIC8vDQo+ID4gLSAgLy8gQWxsb2NhdGUgc3Rh Y2sgc3BhY2UgZm9yIGFsbCBDUFVzDQo+ID4gKyAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2UgZm9y IGFsbCBDUFVzLCB1c2UgQUNQSSBOVlMgbWVtb3J5IHR5cGUNCj4gPiArIGJlY2F1c2UgaXQgd2ls bCAgLy8gbm90IGNvcHkgdG8gc21yYW0gYXQgU21tIHJlYWR5IHRvIGxvY2sgcG9pbnQuDQo+ID4g ICAgLy8NCj4gPiAtICBTdGFjayA9IEFsbG9jYXRlQWNwaU52c01lbW9yeUJlbG93NEcgKE51bWJl ck9mQ3B1cyAqDQo+ID4gQWNwaUNwdURhdGEtPlN0YWNrU2l6ZSk7DQo+ID4gLSAgQVNTRVJUIChT dGFjayAhPSBOVUxMKTsNCj4gPiAtICBBY3BpQ3B1RGF0YS0+U3RhY2tBZGRyZXNzID0gKEVGSV9Q SFlTSUNBTF9BRERSRVNTKShVSU5UTilTdGFjazsNCj4gPiArICBTdGF0dXMgID0gZ0JTLT5BbGxv Y2F0ZVBhZ2VzICgNCj4gPiArICAgICAgICAgICAgICAgICAgIEFsbG9jYXRlQW55UGFnZXMsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICBFZmlBQ1BJTWVtb3J5TlZTLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgRUZJX1NJWkVfVE9fUEFHRVMgKE51bWJlck9mQ3B1cyAqIEFjcGlDcHVEYXRhLQ0K PiA+U3RhY2tTaXplKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICZBY3BpQ3B1RGF0YS0+U3Rh Y2tBZGRyZXNzDQo+ID4gKyAgICAgICAgICAgICAgICAgICApOw0KPiA+ICsgIEFTU0VSVF9FRklf RVJST1IgKFN0YXR1cyk7DQo+DQo+ICg1KSBUaGUgbGVhZGluZyBjb21tZW50IHNob3VsZCBiZSBj bGFyaWZpZWQuIFdlIHNob3VsZCBzdGF0ZSB0aGF0IGR1cmluZw0KPiBTMyByZXN1bWUsIHRoZSBz dGFjayB3aWxsIG9ubHkgYmUgdXNlZCBhcyBzY3JhdGNoIHNwYWNlLCBpLmUuIHdlIHdvbid0IHJl YWQNCj4gYW55dGhpbmcgZnJvbSBpdCBiZWZvcmUgd2Ugd3JpdGUgdG8gaXQsIGluIFBpU21tQ3B1 RHhlU2VtbS4NCj4gT3RoZXJ3aXNlLCBpdCB3b3VsZCBiZSBhIHNlY3VyaXR5IGJ1ZyB0byBrZWVw IHRoZSBhcmVhIGluIEFjcGlOVlMgYW5kIG5vdCBpbg0KPiBTTVJBTS4NCg0KQWdyZWUsIHdpbGwg dXBkYXRlIHRoZSBjb21tZW50cy4NCg0KPg0KPg0KPiAoNikgVGhpcyBjaGFuZ2UgcmVxdWlyZXMg YSBzZXBhcmF0ZSBpbnZlc3RpZ2F0aW9uIGZyb20gdGhlIHJlc3Qgb2YgdGhlIHBhdGNoLA0KPiBz byBpdCBzaG91bGQgYmUgaW4gYSBzZXBhcmF0ZSBwYXRjaC4NCj4NCj4gVGhhdCBpbXBsaWVzIHdl IHNob3VsZCBmaXJzdCBjaGFuZ2UgdGhpcyBjYWxsIHNpdGUsIGFuZCB0aGVuIHJlbW92ZQ0KPiBB bGxvY2F0ZUFjcGlOdnNNZW1vcnlCZWxvdzRHKCkgaW4gYSBmaW5hbCBwYXRjaC4NCg0KQWdyZWUs IHdpbGwgY3JlYXRlIGEgc2VwYXJhdGUgcGF0Y2ggZm9yIHRoaXMgaXNzdWUuDQoNCj4NCj4NCj4g KDcpIFdoeSBpcyBpdCBPSyB0byBsaWZ0IHRoZSA0R0IgbGltaXRhdGlvbj8gLi4uIEkgdGhpbmsg aXQgbWF5IGJlIHZhbGlkIGluZGVlZCwNCj4gYmVjYXVzZSBQcmVwYXJlQXBTdGFydHVwVmVjdG9y KCkgc3RvcmVzIFN0YWNrQWRkcmVzcyB0byAibUV4Y2hhbmdlSW5mby0NCj4gPlN0YWNrU3RhcnQi ICh3aGljaCBoYXMgdHlwZSAoVk9JRCopKSwgYW5kIGJlY2F1c2UNCj4gIlVlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vWDY0L01wRnVuY3MubmFzbSIgcmVhZHMgdGhlIGxhdHRlciB3aXRoOg0KPg0K PiAgICAgICAgIGFkZCAgZWRpLCBTdGFja1N0YXJ0QWRkcmVzc0xvY2F0aW9uDQo+ICAgICAgICAg YWRkICByYXgsIHF3b3JkIFtlZGldDQo+ICAgICAgICAgbW92ICByc3AsIHJheA0KPiAgICAgICAg IG1vdiAgcXdvcmQgW2VkaV0sIHJheA0KPg0KPiBpbiBsb25nLW1vZGUgY29kZS4gQnV0LCBhZ2Fp biwgdGhpcyBzaG91bGQgYmUgZG9jdW1lbnRlZCBpbiB0aGUNCj4gKHNlcGFyYXRlKSBwYXRjaCdz IGNvbW1pdCBtZXNzYWdlLg0KPg0KPg0KPiAoOCkgVGhlIGNoYW5nZSBicmVha3MgdGhlIGRvY3Vt ZW50YXRpb24gb24gIkFDUElfQ1BVX0RBVEEuU3RhY2tBZGRyZXNzIiwNCj4gaW4gIlVlZmlDcHVQ a2cvSW5jbHVkZS9BY3BpQ3B1RGF0YS5oIi4gVGhlIGRvY3VtZW50YXRpb24gc2hvdWxkIGJlDQo+ IHVwZGF0ZWQuDQo+DQo+DQo+ID4NCj4gPiAgICAvLw0KPiA+ICAgIC8vIEdldCB0aGUgYm9vdCBw cm9jZXNzb3IncyBHRFQgYW5kIElEVCBAQCAtMjI3LDcgKzE5Myw3IEBADQo+ID4gQ3B1UzNEYXRh SW5pdGlhbGl6ZSAoDQo+ID4gICAgLy8NCj4gPiAgICBHZHRTaXplID0gQWNwaUNwdURhdGFFeC0+ R2R0clByb2ZpbGUuTGltaXQgKyAxOw0KPiA+ICAgIElkdFNpemUgPSBBY3BpQ3B1RGF0YUV4LT5J ZHRyUHJvZmlsZS5MaW1pdCArIDE7DQo+ID4gLSAgR2R0ID0gQWxsb2NhdGVBY3BpTnZzTWVtb3J5 QmVsb3c0RyAoR2R0U2l6ZSArIElkdFNpemUpOw0KPiA+ICsgIEdkdCA9IEFsbG9jYXRlUGFnZXMg KEVGSV9TSVpFX1RPX1BBR0VTIChHZHRTaXplICsgSWR0U2l6ZSkpOw0KPiA+ICAgIEFTU0VSVCAo R2R0ICE9IE5VTEwpOw0KPiA+ICAgIElkdCA9IChWT0lEICopKChVSU5UTilHZHQgKyBHZHRTaXpl KTsNCj4gPiAgICBDb3B5TWVtIChHZHQsIChWT0lEICopQWNwaUNwdURhdGFFeC0+R2R0clByb2Zp bGUuQmFzZSwgR2R0U2l6ZSk7DQo+DQo+ICg5KSBUaGlzIGNoYW5nZSBicmVha3MgdGhlIHJlcXVp cmVtZW50cyBpbg0KPiAiVWVmaUNwdVBrZy9JbmNsdWRlL0FjcGlDcHVEYXRhLmgiIHRoYXQgYm90 aCAiQUNQSV9DUFVfREFUQS5HZHRyUHJvZmlsZS0NCj4gPkJhc2UiIGFuZCAiQUNQSV9DUFVfREFU QS5JZHRyUHJvZmlsZS0+QmFzZSINCj4gcG9pbnQgaW50byBBY3BpTlZTIGRhdGEuDQo+DQo+ICgi VGhlIGJ1ZmZlciBmb3IgR0RUIG11c3QgYWxzbyBiZSBhbGxvY2F0ZWQgYmVsb3cgNEdCIGZyb20g bWVtb3J5IG9mIHR5cGUNCj4gRWZpQUNQSU1lbW9yeU5WUyIgLyAiVGhlIGJ1ZmZlciBmb3IgSURU IG11c3QgYWxzbyBiZSBhbGxvY2F0ZWQgYmVsb3cgNEdCDQo+IGZyb20gbWVtb3J5IG9mIHR5cGUg RWZpQUNQSU1lbW9yeU5WUyIuKQ0KPg0KPg0KPiAoMTApIEFuZCwgaW5kZWVkLCB0aGlzIGlzIHRo ZSBidWcgdGhhdCBJIHN1c3BlY3RlZCBpbiBwb2ludCAoMyksIHdpdGggcmVnYXJkIHRvDQo+IHRo ZSBTMyByZXN1bWUgcGF0aC4gTmFtZWx5Og0KPg0KPg0KPiBQbGVhc2UgY29uc2lkZXIgdGhlIEdl dEFjcGlDcHVEYXRhKCkgZnVuY3Rpb24gaW4NCj4gIlVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v Q3B1UzMuYyIuIFRoaXMgZnVuY3Rpb246DQo+DQo+ICgxMGEpIGNvcGllcyB0aGUgSURUIGFuZCBH RFQgKmRlc2NyaXB0b3JzKiBpbnRvIGR5bmFtaWNhbGx5IGFsbG9jYXRlZA0KPiBTTVJBTSwgcG9p bnRlZC10byBieSB0aGUgIm1BY3BpQ3B1RGF0YS5HZHRyUHJvZmlsZSIgYW5kDQo+ICJtQWNwaUNw dURhdGEuSWR0clByb2ZpbGUiIGZpZWxkczsNCj4NCj4gKDEwYikgY29waWVzIHRoZSBJRFQgYW5k IEdEVCB0aGVtc2VsdmVzIGludG8gZHluYW1pY2FsbHkgYWxsb2NhdGVkIFNNUkFNLA0KPiBwb2lu dGVkLXRvIGJ5IHRoZSAibUdkdEZvckFwIiBhbmQgIm1JZHRGb3JBcCIgZ2xvYmFsIHZhcmlhYmxl cywNCj4NCj4gKDEwYykgKmRvZXMgbm90KiB1cGRhdGUgdGhlICJCYXNlIiBtZW1iZXJzIG9mIHRo ZSBJRFQgYW5kIEdEVCBkZXNjcmlwdG9ycw0KPiB0aGF0IGFyZSBzYXZlZCBpbiBTTVJBTSBpbiBz dGVwICgxMGEpLiBUaG9zZSBjb250aW51ZSB0byBwb2ludCB0byBtZW1vcnkNCj4gdGhhdCB3YXMg YWxsb2NhdGVkIGJ5IENwdVMzRGF0YUR4ZSBpbiB0aGUNCj4gQ3B1UzNEYXRhSW5pdGlhbGl6ZSgp IGZ1bmN0aW9uLg0KDQpBZ3JlZSB0aGlzIGlzIGEgYnVnLCB3aWxsIGNyZWF0ZSBhIHNlcGFyYXRl IHBhdGNoIHRvIGZpeCB0aGlzIGlzc3VlLg0KDQo+DQo+DQo+IE5vdywgY29uc2lkZXIgdGhlIFBy ZXBhcmVBcFN0YXJ0dXBWZWN0b3IoKSBmdW5jdGlvbiBpbg0KPiAiVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9DcHVTMy5jIiwgd2hpY2ggcnVucyBkdXJpbmcgUzMgcmVzdW1lLg0KPiBUaGF0DQo+ IGZ1bmN0aW9uOg0KPg0KPiAoMTBkKSBjb3BpZXMgdGhlIElEVCBhbmQgR0RUIGRlc2NyaXB0b3Jz IHRoYXQgd2VyZSBzYXZlZCBpbiAoMTBhKSBpbnRvDQo+ICJtRXhjaGFuZ2VJbmZvIiAtLSB0aGlz IGlzIGp1c3QgYW4gU01SQU0tdG8tU01SQU0gY29weSwgaG93ZXZlciB0aGUgQmFzZQ0KPiBtZW1i ZXJzIG9mIHRoZSBkZXNjcmlwdG9ycyBwb2ludCB0byB0aGUgb3JpZ2luYWwgQ3B1UzNEYXRhRHhl IGFsbG9jYXRpb24sDQo+DQo+ICgxMGUpIHRoZSBJRFQgYW5kIHRoZSBHRFQgYXJlIHRoZW1zZWx2 ZXMgcmVzdG9yZWQgZnJvbSBzdGVwICgxMGIpLCBpLmUuDQo+IGZyb20gdGhlICJtR2R0Rm9yQXAi IGFuZCAibUlkdEZvckFwIiBTTVJBTSBnbG9iYWwgdmFyaWFibGVzLCB0byB0aGUNCj4gb3JpZ2lu YWwgQ3B1UzNEYXRhRHhlIGFsbG9jYXRpb24gYWRkcmVzcy4gVGhlIGNvbW1lbnQgc2F5czoNCj4N Cj4gPiAgIC8vDQo+ID4gICAvLyBDb3B5IEFQJ3MgR0RULCBJRFQgYW5kIE1hY2hpbmUgQ2hlY2sg aGFuZGxlciBmcm9tIFNNUkFNIHRvIEFDUEkNCj4gTlZTIG1lbW9yeQ0KPiA+ICAgLy8NCj4NCj4g SW4gb3RoZXIgd29yZHMsIHdoaWxlIHRoZSBJRFQgYW5kIEdEVCAqZGVzY3JpcHRvcnMqIGFyZW4n dCByZXN0b3JlZCBpbi1wbGFjZSwNCj4gdGhlIElEVCBhbmQgR0RUIHRoZW1zZWx2ZXMgYXJlLg0K Pg0KPiBUaGlzIG1lYW5zIHRoYXQgdGhlIGFib3ZlIGNvZGUgY2hhbmdlIGNhdXNlcyBQaVNtbUNw dUR4ZVNtbSB0bw0KPiBvdmVyd3JpdGUgT1MgbWVtb3J5IGF0IFMzIHJlc3VtZS4NCj4NCj4NCj4g Q29udGludWluZzoNCj4NCj4gT24gMDgvMDgvMTggMDk6NDAsIEVyaWMgRG9uZyB3cm90ZToNCj4g PiBAQCAtMjQzLDcgKzIwOSw3IEBAIENwdVMzRGF0YUluaXRpYWxpemUgKA0KPiA+ICAgICAgLy8g QWxsb2NhdGUgYnVmZmVyIGZvciBlbXB0eSBSZWdpc3RlclRhYmxlIGFuZCBQcmVTbW1Jbml0UmVn aXN0ZXJUYWJsZQ0KPiBmb3IgYWxsIENQVXMNCj4gPiAgICAgIC8vDQo+ID4gICAgICBUYWJsZVNp emUgPSAyICogTnVtYmVyT2ZDcHVzICogc2l6ZW9mIChDUFVfUkVHSVNURVJfVEFCTEUpOw0KPiA+ IC0gICAgUmVnaXN0ZXJUYWJsZSA9IChDUFVfUkVHSVNURVJfVEFCTEUNCj4gKilBbGxvY2F0ZUFj cGlOdnNNZW1vcnlCZWxvdzRHIChUYWJsZVNpemUpOw0KPiA+ICsgICAgUmVnaXN0ZXJUYWJsZSA9 IEFsbG9jYXRlUGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChUYWJsZVNpemUpKTsNCj4gPiAgICAg IEFTU0VSVCAoUmVnaXN0ZXJUYWJsZSAhPSBOVUxMKTsNCj4gPg0KPiA+ICAgICAgZm9yIChJbmRl eCA9IDA7IEluZGV4IDwgTnVtYmVyT2ZDcHVzOyBJbmRleCsrKSB7DQo+DQo+ICgxMSkgVGhpcyBs b29rcyB2YWxpZCwgYmV5b25kIGJyZWFraW5nIHRoZSBkb2N1bWVudGF0aW9uIGluDQo+ICJVZWZp Q3B1UGtnL0luY2x1ZGUvQWNwaUNwdURhdGEuaCIsIG9mIHRoZSBtZW1iZXJzDQo+ICJQcmVTbW1J bml0UmVnaXN0ZXJUYWJsZSIgYW5kICJSZWdpc3RlclRhYmxlIi4NCj4NCj4NCj4gPiBkaWZmIC0t Z2l0IGEvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhRHhlLmluZg0KPiA+IGIvVWVm aUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhRHhlLmluZg0KPiA+IGluZGV4IDQ4MGM5OGVi Y2QuLmMxNjczMTUyOWMgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUv Q3B1UzNEYXRhRHhlLmluZg0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMz RGF0YUR4ZS5pbmYNCj4gPiBAQCAtNTEsNiArNTEsNyBAQA0KPiA+ICAgIERlYnVnTGliDQo+ID4g ICAgQmFzZUxpYg0KPiA+ICAgIE10cnJMaWINCj4gPiArICBNZW1vcnlBbGxvY2F0aW9uTGliDQo+ ID4NCj4gPiAgW0d1aWRzXQ0KPiA+ICAgIGdFZmlFbmRPZkR4ZUV2ZW50R3JvdXBHdWlkICAgICAg ICAgIyMgQ09OU1VNRVMgICAjIyBFdmVudA0KPiA+DQo+DQo+IEkgZmVlbCB1bmNvbWZvcnRhYmxl IGFib3V0IHRoaXMgcGF0Y2guIEl0IGlzIHZlcnkgdHJpY2t5IHRvIHJldmlldywgYW5kIGlmIHdl DQo+IG1ha2UgbWlzdGFrZXMsIHdlIGNvdWxkIGNvcnJ1cHQgT1MgZGF0YSwgb3IgKHdvcnNlKSBw ZXJoYXBzIGV2ZW4NCj4gY29tcHJvbWlzZSBTTVJBTS4NCj4NCj4gQW5kLCBhbGwgdGhlIGdhaW5z IHRoYXQgSSBjYW4gaW1hZ2luZSBhcmUsICJzYXZlIGEgZmV3IDMyLWJpdCBBY3BpTlZTIHBhZ2Vz Ii4gSQ0KPiBoYXZlbid0IG1lYXN1cmVkLCBidXQgaXQgZG9lc24ndCBsb29rIGxpa2UgYW4gYXR0 cmFjdGl2ZSB0cmFkZS1vZmYgdG8gbWUuIEFuZCwNCj4gcGxhdGZvcm1zIHRoYXQgZGlzYWJsZSBT MyB2aWEgIlBjZEFjcGlTM0VuYWJsZSINCj4gZG9uJ3QgYWxsb2NhdGUgdGhpcyBtZW1vcnkgYW55 d2F5Lg0KPg0KPiBGdXJ0aGVybW9yZSwgdGhlIG1lbW9yeSBmb290cHJpbnQgb3B0aW1pemF0aW9u IGRvZXMgbm90IHNlZW0gcmVsYXRlZCB0byB0aGUNCj4gQ3B1UzNEYXRhRHhlIC8gRHhlUmVnaXN0 ZXJDcHVGZWF0dXJlc0xpYiBkZXBlbmRlbmN5IGlzc3VlIHRoYXQgTWFydmluDQo+IHJlcG9ydGVk IChhbmQgdGhhdCBpcyB0cmFja2VkIGluIGJ1ZyAjOTU5KS4NCj4NCj4gSSBzdWdnZXN0IHRoYXQg d2UgZHJvcCB0aGlzIHBhdGNoLg0KDQpXZSBoYXZlIHJlYWNoIHRoZSBhZ3JlZW1lbnQgdGhhdCB0 aGlzIGlzIGEgIk5vdCBhIGNvcnJlY3RseSB1c2VkIiBjb2RlIGJ1ZywgYW5kIGl0IGlzIGNhdXNl ZCBieSBub3QgZG8gdGhlIHJlbGF0ZWQgY29kZSBjbGVhbiB3aGVuIGVuYWJsZSBuZXcgZmVhdHVy ZXMuICBTbyBJIHByZWZlciB0byBkbyB0aGlzIGNsZWFuIHVwIHRvIG1ha2UgY29kZSBtb3JlIGNs ZWFuLg0KDQo+DQo+IFRoYW5rcywNCj4gTGFzemxvDQo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlz dGluZm8vZWRrMi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCmVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQplZGsyLWRldmVsQGxpc3RzLjAxLm9y Zw0KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=