From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web12.5227.1610429160200299164 for ; Mon, 11 Jan 2021 21:26:00 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=YM5JVW9b; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: heng.luo@intel.com) IronPort-SDR: QDSESreBSVbUCvA8xWlcfjKOzLff632PDY0fw1PyOaUIzi0YI619ZCeYNNY12nZ5HiQ3mtdhcS uAuLalKAi+1g== X-IronPort-AV: E=McAfee;i="6000,8403,9861"; a="262769321" X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="262769321" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jan 2021 21:25:58 -0800 IronPort-SDR: ZzA57C7AXGlEcYFL5mg/8qfXEol+qzjbcOGKqoMcERXNUu8RLiqW7yXneBNMYxRFygGQqWgvPY Wl2igDKvVLOQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="498811119" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga004.jf.intel.com with ESMTP; 11 Jan 2021 21:25:58 -0800 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 11 Jan 2021 21:25:58 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 11 Jan 2021 21:25:58 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 11 Jan 2021 21:25:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d4EShRWN69vlwXs8UHlP7AvFtjgHoXfzTO0e6qMhoHOBpCrTc/kuQSm+rIeLejWOzrrq5s9Y9+GDBue3NTVBPWj+tBvMFvMTTruHr4KgebdtKYfu8qeevdouhUh95HU3L1WoGof7wbsBnZsnSD06I3i8N93iMf/lkbmWICINqTWTEcqDP9RDxqaqKW0LokajbBQhqZFM+7w0qPNF9Fq8NXRDuYxkbkecE1jffURHj55aq4YnzznkqOqFdj+4viKUbuh+/gpmpunjI2yZXwO69l8r6/bq4ZOgTlhKrKxgiPwAXPtGOeupV/E8mRR6GLTIFhCGsEKhDEgplrQnNaRowQ== 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-SenderADCheck; bh=RUVd0TCkzh/bJMnJAtHzDmBHsY7NIvBTOfRHkSsSXmo=; b=Y4rteKoS/iY7pYkPmUjrvoDuVSfGW4WpF/HLF5dkboUuJDtTUe8Io9cP04/6coVw272ZWF26y04bg3pDKpOGx+UXie3daUUZz056sec7ehpQJ3e5pz5TZFnCYUx3ytIG2i85oej0+NDav5yRgGJ2JpwEEdrYT2H6HMRbeGnpRNAxpWnEtpk45j/4mf4h58xmTIXbjMR/WTH0SDOy72H9xquqew+2yBfMeTnxr/QfnB11ZpYKgyl0PmXy0Ks+QrqTmd1BlxDcxv9zrnZHFGkU0rIHKPD97TpVarmXHn3XubzP1yiM7QE2AB9YJojk/PjR/WNBD2gK7ARTYd0UO7GvLA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RUVd0TCkzh/bJMnJAtHzDmBHsY7NIvBTOfRHkSsSXmo=; b=YM5JVW9bk5PofJIAhm/23RA//vZ+VZrlY2JrXqvNqCgPzRtk2STEg+A8JPMLH370Z2kGKewxBdE66pXWRkrXNpbmvVTXECf7oUh5A8q9lyiAObvQdnBb2sEEL0/r3WsHRnLeb9vhDtIzBYer07nOMoj1A+/A//nS5sVbx2nBi1k= Received: from MWHPR11MB1805.namprd11.prod.outlook.com (2603:10b6:300:114::14) by CO1PR11MB5186.namprd11.prod.outlook.com (2603:10b6:303:95::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.9; Tue, 12 Jan 2021 05:25:56 +0000 Received: from MWHPR11MB1805.namprd11.prod.outlook.com ([fe80::9dfe:4053:9b88:6786]) by MWHPR11MB1805.namprd11.prod.outlook.com ([fe80::9dfe:4053:9b88:6786%4]) with mapi id 15.20.3742.012; Tue, 12 Jan 2021 05:25:56 +0000 From: "Heng Luo" To: "Ni, Ray" , Laszlo Ersek , "devel@edk2.groups.io" CC: "Wu, Hao A" , "Kinney, Michael D" Subject: Re: [edk2-devel] [Patch V3 2/2] MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable BAR Capability Thread-Topic: [edk2-devel] [Patch V3 2/2] MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable BAR Capability Thread-Index: AQHW6FFFlEH83ht3wk2zgGGJisNY3KojRIMAgAAw/kA= Date: Tue, 12 Jan 2021 05:25:56 +0000 Message-ID: References: <20210104065954.3901-1-heng.luo@intel.com> <20210104065954.3901-2-heng.luo@intel.com> <9a081622-94c8-d921-1631-b595f189c807@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.39] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3060bce8-1118-4a10-6643-08d8b6ba89f9 x-ms-traffictypediagnostic: CO1PR11MB5186: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EMTx9vOG5FqRRlMxLSLNHZp7SbzGSDbBOnyff0Akprk+uwmnjCpzbwDXO15pF+GW8LOtWt7NaazkuaHwnPiilsWDEqqtAGtlL3UZkTa+E/d1HDqrKbNYWjshwhq5yYuaSWUx3CAKFOVdjJUgXNURZqvuE4g1sXIGPYHWTszDn3Z7Fv0c2w7865Tk0u+ufod84w1kPp4fEJndSRAXSIey3ko/ta1FktCn1TeY8cry7rvp2iic9UKtkdj1746MSdyTmTxGuSp56gFD5OpXPcRLQJoaxhekerk/+iETdQ9i2Vlp7+/ZpYr/3Drk9nO6tsx2EfDgLmWBSdtqNExyK0P/WcRA5nDkjCaOB2rAELL3S1nsCXWxwah6utGQwQtb/Zj2970T8PMb6R8NnvlApXP6v950BiwjRxayyDMq9CXmJpMB/FODHMTveKDU2SnMweEi94h4N2AYuZ5GAdoV5RpPMg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1805.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(376002)(39860400002)(346002)(396003)(366004)(52536014)(107886003)(26005)(8676002)(186003)(53546011)(316002)(110136005)(7696005)(83380400001)(54906003)(966005)(55016002)(8936002)(6506007)(9686003)(478600001)(33656002)(66946007)(64756008)(66476007)(66446008)(66556008)(76116006)(4326008)(2906002)(71200400001)(86362001)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?RVVvNkxmU2U2Q3BnaERnaWZLSElQTUp3eGtuWW4yUVp0NEV0cDdkUVlHYVB2?= =?utf-8?B?VnVVTk5mSXI3TTcrSDlUejdlQUhrNXFEOGxwUkFldis3NDhYSDBhQkYrZ2Vp?= =?utf-8?B?akNldlk5dFpMNUlITjl4K2N3aWRSZlg1M1FSODNxdFY2d1BrbUNUS0FCeGxu?= =?utf-8?B?ZkFNUUpmRG41Rk02S1Z1bzlNNmJnSSs2bHVYWDVFRGpJRkdzWHZ3c2pnTGhH?= =?utf-8?B?bkI3OFkvWHdtaTVERjJpVHNtakEwUGhkczByUXprVnR1VlpYbFR2N09tWS96?= =?utf-8?B?dzdxMy9iWlQ4NkswdmFTZGsvbmFCbXljbTRPUXhYNHFDT2ZMV3A0dG00aVUy?= =?utf-8?B?U3hNODBRUlVFTmNLYS9pSlozUjBadDVqMkJRZThhSG1YbWg2TStSa2tiRWdK?= =?utf-8?B?RW1mUUNZblkrVFNBRWpBOWVYSUoydFF3N21DbUo0SUdkQTlnTUVTMEpDOCtL?= =?utf-8?B?VkhNV3dPQUZpd1hWMzZsRGJqVmo0QXlMTkFRclVrYzBMcWlxMktqSmtwVHFy?= =?utf-8?B?ZVZhTE42b0ozcE83YXFqKzQvL3pRWENlMTF5aEJoK0dxM1I0OWRhQ01DMHRm?= =?utf-8?B?cFdMVG5vdkgxYXo5eWl6QS9rY3ZuQkpCNVZOTG9GMFBaVm1OZTlzRk1obmhQ?= =?utf-8?B?OVFjL08xNmZYZFFyZEFyL0M1VExBak16SlZiTzN3WGlqYXRPWmNEMEg4MjJu?= =?utf-8?B?aG44ZWNNeDJIV2lhajhnNjlsMjgzSXFDZk9TV1dKK3BIeitvQU9JS1RUaWxN?= =?utf-8?B?TUxGeVd3THJtTjh4V01RZjBoRTd3MitXQ0puK3ppNThpMHNNSHV2M0FRMVQw?= =?utf-8?B?c0RIaXdoTEJCbThZcDNDWlJRTWVucUNYQVBQRUcvQTN0SENFSkZyMXJqbDFD?= =?utf-8?B?eEVUTktnaEtxanQ0aXphZkFYSkM5YmNPRXJDcGJiMGUwMWZNZDhaRnhYRjdG?= =?utf-8?B?UXpuTThFSFRTZFZ3SXhmbS9wSDBwN21QaWdhZVZGTkhsSHVXYzJ3eEZjWDdZ?= =?utf-8?B?eVN2V2RuOXhzdkpJendDSnBMa1h2VzUyWVFDVWx3cHhlUENaZENlU3BiaEIy?= =?utf-8?B?cmdSWkZWTnh5VXpLUWdOcnhWK2g1QzQvdisyS0h2Y0VORWduQnJta0pMUnZv?= =?utf-8?B?VzdpbmpqUDJhSnFReWYzVERYaDBqQ3ZGY3ZZU0JlR0w2WlpqcVhPZjFvZWpN?= =?utf-8?B?K0ZkdzFTTVhmRlBHMjBtVnpUUEdhUEttZXNicFVyekF3ZHlZYWNFZFBGcTE1?= =?utf-8?B?Lzk2S0FROEc2UWNkeTNyVFQ0YUNPekxRbHlQRVFCMTBManI1cU9zVVl5VGsy?= =?utf-8?Q?MLY0I1Hgep4X0=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1805.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3060bce8-1118-4a10-6643-08d8b6ba89f9 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2021 05:25:56.5951 (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: 4MX4QrPGFRrB9yxLlrhOnqkxE3yqeW/1vfaWwkqm0YUBS44Qr1BpNLLZhsbakRCkalaVSdGaFbPfB3JImFeF/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5186 Return-Path: heng.luo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmsgUmF5IGFuZCBMYXN6bG8hIEkgaGF2ZSBzZW50IDIgcGF0Y2hlcyBmb3IgdGhpcywgcGxl YXNlIGhlbHAgdG8gcmV2aWV3Lg0KaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3Nh Z2UvNzAxMzkNCmh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzcwMTQwDQoN ClRoYW5rcywNCkhlbmcgDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog TmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgSmFudWFyeSAxMiwg MjAyMSAxMDoyOCBBTQ0KPiBUbzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBMdW8sIEhlbmcNCj4gPGhlbmcubHVvQGludGVsLmNvbT4NCj4g Q2M6IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4g PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxd IFtQYXRjaCBWMyAyLzJdIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1BjaUJ1c0R4ZToNCj4gU3VwcG9y dCBQQ0llIFJlc2l6YWJsZSBCQVIgQ2FwYWJpbGl0eQ0KPiANCj4gPiA+IEl0IHNlZW1zIGxpa2Ug dGhlIG1heCBCQVIgc2l6ZSBpcyBzZWxlY3RlZCBmaXJzdCwgYnV0IGlmIHRoZXJlJ3MgYQ0KPiA+ ID4gInJlc291cmNlIGNvbmZsaWN0IiAocnVubmluZyBvdXQgb2YgYSBwYXJ0aWN1bGFyIHJlc291 cmNlIHR5cGUNCj4gPiA+IGFwZXJ0dXJlKSwgdGhlbiB0aGUgbWluaW11bSBCQVIgc2l6ZSBpcyBz ZWxlY3RlZC4gSSBkb24ndCBrbm93IHdoYXQNCj4gPiA+IHNldCBvZiBkZXZpY2VzIGFuZC9vciBy ZXNpemFibGUgQkFScyB0aGlzIGxvZ2ljIGFwcGxpZXMgdG8sIGlmIHRoZXJlDQo+ID4gPiBhcmUg bXVsdGlwbGUgb2YgdGhlbS4NCj4gDQo+ID4gPiBQZXIgdGhlIFBDSWUgc3BlY2lmaWNhdGlvbiAo cmV2aXNpb24gNS4wLCB2ZXJzaW9uIDAuOSkgNy44LjY6DQo+ID4gPg0KPiA+ID4gICBTb2Z0d2Fy ZSBkZXRlcm1pbmVzLCB0aHJvdWdoIGEgcHJvcHJpZXRhcnkgbWVjaGFuaXNtLCB3aGF0IHRoZQ0K PiA+ID4gICBvcHRpbWFsIHNpemUgaXMgZm9yIHRoZSByZXNvdXJjZSwgYW5kIHByb2dyYW1zIHRo YXQgc2l6ZSB2aWEgdGhlIEJBUg0KPiA+ID4gICBTaXplIGZpZWxkIG9mIHRoZSBSZXNpemFibGUg QkFSIENvbnRyb2wgcmVnaXN0ZXIuDQo+ID4gPg0KPiA+ID4gRnVydGhlcm1vcmUsIFRhYmxlIDct MTE0IGRlZmluZXMgdGhlIEJhciBTaXplIGZpZWxkIG9mIHRoZSBjb250cm9sDQo+ID4gPiByZWdp c3RlciBzdGF0aW5nOg0KPiA+ID4NCj4gPiA+ICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhpcyBm aWVsZCBpcyBlcXVhbCB0byB0aGUgZGVmYXVsdCBzaXplIG9mIHRoZQ0KPiA+ID4gICBhZGRyZXNz IHNwYWNlIHRoYXQgdGhlIEJBUiByZXNvdXJjZSBpcyByZXF1ZXN0aW5nIHZpYSB0aGUgQkFSJ3MN Cj4gPiA+ICAgcmVhZC1vbmx5IGJpdHMuDQo+ID4gPg0KPiA+ID4gVGhlcmVmb3JlIHRoZSBtYXhp bXVtIHNpemUgaXMgbm90IG5lY2Vzc2FyaWx5IG9wdGltYWwsIG5vciBzaG91bGQNCj4gPiA+IHRo ZSBtaW5pbXVtIHNpemUgYmUgY29uc2lkZXJlZCB0aGUgZGVmYXVsdC4gIEluIGZhY3QsIFt3ZV0g dGVzdGVkDQo+ID4gPiB2YXJpb3VzIGhhbmRvZmYgQkFSIHNpemVzIGZvciBbYSBwYXJ0aWN1bGFy XSBHUFUgYW5kIGZvdW5kIHRoYXQNCj4gPiA+IFdpbmRvd3MgZGlkbid0IGxpa2UgdGhlIG1heGlt dW0gQkFSIHNpemUuDQo+ID4gPg0KPiA+ID4gRWxzZXdoZXJlIGluIHRoZSBkaXNjdXNzaW9uIFsx XSB0aGUgQU1EIGF1dGhvciBvZiB0aGUga2VybmVsIHN1cHBvcnQNCj4gPiA+IGZvciByZXNpemVh YmxlIEJBUnMgaW5kaWNhdGVzIHRoYXQgRlBHQSBkZXZpY2VzIG1pZ2h0IGltcGxlbWVudCB0aGUN Cj4gPiA+IFJFQkFSIGNhcGFiaWxpdHkgYXMgcGFydCBvZiB0aGVpciBzdGFuZGFyZCBQQ0kgd3Jh cHBlciAoW291cl0NCj4gPiA+IGludGVycHJldGF0aW9uKSwgYnV0IHRoZSBCQVIgdXNhZ2Ugd291 bGQgYmUgZGV0ZXJtaW5lZCBieSB0aGUgYWN0dWFsDQo+ID4gPiBiaXRzdHJlYW0gd3JpdHRlbiB0 byB0aGUgZGV2aWNlLCB0aGVyZWZvcmUgdGhlcmUgbWlnaHQgYmUgYSBmdWxsDQo+ID4gPiBiaXRt YXNrIGZvciB0aGUgQkFSIHNpemVzIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLg0KPiA+ID4NCj4g PiA+IFsxXQ0KPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJp LWRldmVsLzIwMjEtSmFudWFyeS90aHJlYWQNCj4gPiA+IC5odG1sDQo+ID4gPg0KPiA+ID4gSXQg d291bGQgY2VydGFpbmx5IG1ha2Ugc2Vuc2UgZm9yIHRoZSBmaXJtd2FyZSB0byB0YWtlIFJFQkFS DQo+ID4gPiBjYXBhYmlsaXRpZXMgaW50byBhY2NvdW50IHdoZW4gc2l6aW5nIGJyaWRnZSBhcGVy dHVyZXMsIGJ1dCB0bw0KPiA+ID4gZ2VuZXJpY2FsbHkgZW5hYmxlIGV4dGVuZGVkIEJBUiBzaXpl cyB3b3VsZCBtYWtlIGxvdHMgb2YgYXNzdW1wdGlvbnMNCj4gPiA+IGFib3V0IHRoZSBkZXZpY2Ug dXNhZ2UgYW5kIGNvbXBhdGliaWxpdHkuDQo+ID4gPg0KPiA+ID4gWy4uLl0gQXQgbGVhc3QgZm9y IEdQVXMgdGhlIGV4cGVjdGF0aW9uIHdvdWxkIGJlIGEgZGVmYXVsdCwgc21hbGxlcg0KPiA+ID4g Y29tcGF0aWJpbGl0eSBzaXplIGV4cGFuZGluZyB0byBzb21lIHJlcHJlc2VudGF0aW9uIHRoYXQg YWxsb3dzDQo+ID4gPiBkaXJlY3QgRE1BIHRvIHRoZSBlbnRpcmUgbWVtb3J5IG9mIHRoZSBjYXJk Lg0KPiA+DQo+ID4gU28gdGhpcyBwYXRjaCBzaG91bGQgZWl0aGVyIGJlIHJldmVydGVkOyBvciBt aW5pbWFsbHksIHRoZSBkZWZhdWx0DQo+ID4gdmFsdWUgb2YgIlBjZFBjaWVSZXNpemFibGVCYXJT dXBwb3J0IiBzaG91bGQgYmUgc2V0IHRvIEZBTFNFLCBhcyB0aGUNCj4gPiBwb2xpY3kgZm9yIEJB UiBzaXppbmcgZG9lc24ndCBsb29rIHJvYnVzdCBvciBwb3J0YWJsZS4NCj4gPg0KPiA+DQo+ID4g R2VuZXJhbCByZXF1ZXN0IGZvciB0aGUgZnV0dXJlOiBpZiB5b3UgaW1wbGVtZW50IHNvbWUga2lu ZCBvZiBwb2xpY3kNCj4gPiBpbiBjb3JlIGVkazIsIHBsZWFzZSBhdCBsZWFzdCAqZG9jdW1lbnQq IHRoZSBwb2xpY3kgc29tZXdoZXJlLiBJdCdzDQo+ID4gdW5hY2NlcHRhYmxlIHRvIGhhdmUgdG8g ZGVjaXBoZXIgdGhlIHNvdXJjZSBjb2RlIGZvciBzdWNoIGEgcG9zc2libHkNCj4gPiBpbXBhY3Rm dWwgY2hhbmdlIGluIHRoZSBjb3JlLiBUaGVyZSBpcyBubyBuZWVkIGZvciBhIHdpa2kgcGFnZSBv ciBhbg0KPiA+IFJGQywgYnV0IGEgc2FuZSBidWd6aWxsYSB0aWNrZXQgYW5kIGEgc2FuZSBjb21t aXQgbWVzc2FnZSBhcmUgcmVxdWlyZWQuDQo+ID4NCj4gPiAoVGhlIGRvY3VtZW50YXRpb24gb2Yg dGhlIFBDRCBpbiB0aGUgIk1kZU1vZHVsZVBrZy5kZWMiIGZpbGUgaXMNCj4gPiB1bnNhdGlzZmFj dG9yeSB0b28sIGFuZCB0aGUgVU5JIGZpbGUgaGFzIG5vdCBiZWVuIHVwZGF0ZWQgYXQgYWxsLikN Cj4gPg0KPiANCj4gDQo+IA0KPiBZb3VyIHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdC4gT3JpZ2lu YWwgaWRlYSBpcyB0byBsZXQgcGxhdGZvcm0gc3VwcGx5IHRoZQ0KPiBwb2xpY3kgYWJvdXQgd2hh dCB0aGUgb3B0aW1hbCBCQVIgc2l6ZSBpcyBmb3IgZWFjaCByZXNpemFibGUgQkFSLg0KPiBUaGUg Y3VycmVudCBpbXBsZW1lbnRhdGlvbiBpcyBhIHRyeSB0byBhdm9pZCBhc2tpbmcgcGxhdGZvcm0g Y29kZSBmb3Igc3VjaA0KPiBwb2xpY3kgYmVjYXVzZSB3ZSB0aG91Z2h0IGl0J3MgYSBidXJkZW4g Zm9yIHBsYXRmb3JtIHRvIHN1cHBseSB0aGUgcG9saWN5DQo+IGRhdGEuDQo+IA0KPiBJIGFncmVl IHRoYXQgd2Ugc2V0IHRoZSBQQ0QgZGVmYXVsdCB2YWx1ZSBhcyBkaXNhYmxlZCBhbmQgYWZ0ZXIg YSBwZXJpb2Qgb2YNCj4gc3R1ZHksIHdlIHdpbGwgdW5kZXJzdGFuZCB3aGV0aGVyIGEgcGxhdGZv cm0gcG9saWN5IGlzIHJlYWxseSBuZWVkZWQuDQo+IA0KPiBUaGFua3MsDQo+IFJheQ0K