From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.5458.1678333729065948182 for ; Wed, 08 Mar 2023 19:48:49 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=C3uBPJKT; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: isaac.w.oram@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678333729; x=1709869729; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=fbfCsxXHMBfcKwv5RdcyeXjKWw+RsKbR8Ti2jWSSd7k=; b=C3uBPJKTUKJLSYkgOouU5dFbfhfb3Upfn91g5VDB7zp45ICK77vabSx6 BiOh5UD+fMm4byAXA0sEeHutzRUYZGFk7jRlfvVhDsqMos/+GAP/MsdEL tUAHq+4uOUdeMhWOlGXHYCBR1CbpocFpcNEi8SvxrmOgLf0l6QPiGNq11 R5HHclW0KOTjK0MuVHZ2Yx52NvH8ffcIIe4D8QUKQcMut+mJkL8e8Jdtb CbRWJBW5KbBp84TTocV8Jt8oJF7SvtO9T+zlFuI7QJw7bjwzHY+twKPMS PvrJfom3pVxdZ6Zper9jRmFV5QGX/KL2gpzrRqVZiOL0xXsGJFwG9fuFB Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10643"; a="401181288" X-IronPort-AV: E=Sophos;i="5.98,245,1673942400"; d="scan'208";a="401181288" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Mar 2023 19:48:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10643"; a="746155073" X-IronPort-AV: E=Sophos;i="5.98,245,1673942400"; d="scan'208";a="746155073" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP; 08 Mar 2023 19:48:48 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.21; Wed, 8 Mar 2023 19:48:47 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Wed, 8 Mar 2023 19:48:47 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.102) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Wed, 8 Mar 2023 19:48:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ADhjJ9k4h4PPe2Ga4d0rPyuvfm69sr5cHrI1HbBCaDxHTBi95C7ljf71zohcGUAvIIOHs/XnW9qmn5ucv6R/urlVOOUR7ClR670x/r6ldp1E9I5zJ5fXED7ujNAbxhAhsnYnXAaclT2Ee7rI5LFJ+n/N9zrCLVkDufWeQOdX6RCLQ5lQPxmiBUmfSCZxnIr4aBnAwLaHPXGHcxIZ4pb9icjeegvglQ25Rpo4USrHsRB1uU9K3wTIJ+CUe/voWmWeiTwfJD+MbFYNUy9bV3IBScKKOLPa7u2rEIvHEu65VuRaKcEiyyyoASqo2FUIT9qywx7h5rahHcxZgpxzxBxhcA== 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=fbfCsxXHMBfcKwv5RdcyeXjKWw+RsKbR8Ti2jWSSd7k=; b=R8FEhdl/LWoVdQnIRvt+Kkis4QTEFWwzD/brxNswoGm0GmXc2k2PqJSTGQBvaFhLbRKsAhNVuTN8ahuBaaF5GK23PrKbqKtUObGykyf5mOaQRYALwpy5v/KeOTBSOE2X8qTyO8hT6j3FCSbUpHFdjq9Qo4lncs4KCgFiZmWxMFSrFjo+kVNr8UUXW53Io9ckDv1mPU9lJQv8jJEDLzFit/BFmb8A0bAUzhFyap77L0V9MTt/e3OL1dNnDr2R+IvR0dlDp+EBRuUhpmNJ6LXfue9UXxcyvrg3FkBWBx+3rwOaiHDOhWHrjAZ4sTCYkER8HI49QvcflLaVHNjQa4OosQ== 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 SA1PR11MB5801.namprd11.prod.outlook.com (2603:10b6:806:23d::13) by DS7PR11MB7886.namprd11.prod.outlook.com (2603:10b6:8:d8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28; Thu, 9 Mar 2023 03:48:45 +0000 Received: from SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::5fe4:fb10:27ba:d2ad]) by SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::5fe4:fb10:27ba:d2ad%4]) with mapi id 15.20.6178.018; Thu, 9 Mar 2023 03:48:45 +0000 From: "Isaac Oram" To: "devel@edk2.groups.io" , "pedro.falcato@gmail.com" , Gerd Hoffmann CC: Theo Jehl Subject: Re: [edk2-devel] [PATCH edk2-platforms 1/2] QemuOpenBoardPkg: Redo PCI bus initialization Thread-Topic: [edk2-devel] [PATCH edk2-platforms 1/2] QemuOpenBoardPkg: Redo PCI bus initialization Thread-Index: AQHZJtudB5rOKi6v9EC/xE14jPrf+a6b5BUAgBsKA4CAOzQqIA== Date: Thu, 9 Mar 2023 03:48:45 +0000 Message-ID: References: <20230112231359.452800-1-pedro.falcato@gmail.com> <20230112231359.452800-2-pedro.falcato@gmail.com> <20230113063308.rzaqgegewx3pp77i@sirius.home.kraxel.org> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR11MB5801:EE_|DS7PR11MB7886:EE_ x-ms-office365-filtering-correlation-id: 61b61018-086a-4f07-a157-08db20512ecf x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: su+NwTzK17fKSLDxnq8uLTXOQSIcpEOYVrZPZXdDO0TmyiviP4kXyiHk6Q0PKkKX5w84SOqjmhk5XRmYZ5VQAtSR8+Zc1I4kQcyB07d1dkKQxRVtCMnRepEExCVKu2D5YIef0hCt92m7xcRpwR1bl9yu3hOFjnXI3g14H6vROPNPkogdsZcrCRG7n0XbndczsovYFKW4tiFn5qx4c4kfV2WP7HAF/8P3jCIavvcGzHW9awkkXiRnf2w5DaHfi2aIqrEUQbV0nVsxDdyhRzs7uDcse3AeOXybII/wcZwOchEU6h2GIS1dpBB7vanoQ1D4CV4MDsX6YizhCMRzgtYUVILqzDz3WO0YgLUu165/kxVaGVuxqSiRXiyE9o3I2y32VngmOe7/DI81q2CFyL0OwA102+aA0aXAPIYpTBo620URyCR5u06FTWUlpJN66UAAm2U+MobOdOnNG8QdntUfzlG47tU8ygHWtdDdppsZq4riQpVafcz7LDppRS/uWkYRau22Y/qF2vJN707g051ltI+DMzC9jYX41J1KVGqR6gR5/AtopdostuFc1hFwHZ3RXpaavhIngvqg1nYiWrBtiNhWuAaEFRyZHzah3pQx13wpPeJtwI1QXs4874r65ArmvT7BmEmOW4iYN9SPsK5duHo6tzRYHW7nMWRtSIPdURAXdfjDzrivcPzXtsvmjGvl0s4I2oTQMT9846MzW/GeFuCXipeWaF4CoQA9w32JfizZeKQpWPN5YklMUeLkXARq x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB5801.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(136003)(366004)(346002)(39860400002)(376002)(451199018)(26005)(966005)(6506007)(53546011)(83380400001)(33656002)(38070700005)(122000001)(38100700002)(9686003)(86362001)(55016003)(82960400001)(186003)(66556008)(66946007)(66476007)(41300700001)(66446008)(64756008)(4326008)(8676002)(76116006)(2906002)(8936002)(52536014)(5660300002)(66899018)(478600001)(71200400001)(7696005)(316002)(110136005)(49934004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bzNlZ2VIOFVxa2phOTViS0gveWVxNTR2TTY3clEwc3dWWjF5eVJLZm14VHN0?= =?utf-8?B?c3dQa3pnc1FNMWpuMnAwSFh3cVBNZlFXQUhMSzhWRlpVREpiTlF5TlorRGNZ?= =?utf-8?B?UGxTTWJ5eFdJbkpYaHdYc1JGY3haZVN2TWM2bGhPWXNEYmZoSVVUbXozTy9R?= =?utf-8?B?cGdkckFFT0ZIek92amtHUWJCL3gxWS95TDF0bmxFMCtoT255TnpLMEVnVllM?= =?utf-8?B?d0NzVCt5S05kNGo1WDNta2JNc05wczJBK2d2K1FDcjk3TGluVTJxQ0I4R2k3?= =?utf-8?B?cklpamVJeUZFLzFQN3hxbWRXdDUrK2p1UCtDWk1vV0Vad05IbGNlREdwQWZx?= =?utf-8?B?OEhWMmFzNEhRSGMvZG5MeU1KOVA1MjlWTnNuc0ptVDlWaVY3Y3U5YVJrT0Qz?= =?utf-8?B?b0JPcVZGekJqbTlQSTRLd3RKa2pZdDlYalZ6NW95SGVvSTFCbnIrcVA2eWFa?= =?utf-8?B?Qk1sZXJpRllSdFNiTHhINDZRMW9LYmh4T2c4M0lGUnk1SVprOHhDWVlpbFg0?= =?utf-8?B?V3RQUFl2dzkxQkVzdHoyNGQxNVdkV3ZLQVZpM1BHcDd5d1BzcXphYXhkOFlz?= =?utf-8?B?amYxeldEc2ZrNkJVd3ZDYmFZQVRTOVF0WjkyMTM0Sk9lOWhTaVhNWmRDbUJC?= =?utf-8?B?M1Zpd1k4aERoUDlkMFhYNENnRnQwNXl6UVJLeThZd1lrNWpUcnhIcFMzVEZM?= =?utf-8?B?U2dZSEdYK2hqYWVJRUVNMW1pd2tmRkJpbkc0eU0rYVNOSHhOM0lHVy84OHha?= =?utf-8?B?YU1UZ1NLU2UvN05odVJzNkdlTnZyY3ZWUHpSL1NQeXFQRFpLWXh5M21oNmpC?= =?utf-8?B?TXFmOWdvWEkwejVFMEM5TmJELzdjajJCZk5mUENRaDNaVHNUNU1xOGh6V2F5?= =?utf-8?B?Yk8zVENhNFlPeHgrSURBc2EwaWRsWW96aEN1Qk9KaEpjc3JoOVErRDlpY3A4?= =?utf-8?B?djEyNXJINHRCWTVzNFBuUXJVcGZHYTN5d0lKMmh4ZkEzOTcyMGhFOWxsWlVq?= =?utf-8?B?YXQ2M3pJOHFDR1lzQUdTcVpxY21ud0ZnRW5wQ1ZVN01teG43RG9neFpTY1cv?= =?utf-8?B?RzEvVHdsYVNSUW9RSjhGOW5EdlY4RkNpbmpFN3ZvQXhwZythR3JINUgzRGsr?= =?utf-8?B?RVorME5zQmNiWDZnRTRyYXp2cXYwelVXM1RhRTFVeHllQ3ZQeDVFYUN2T2Ru?= =?utf-8?B?OE9MQXhvUFZ4LzJybTFMUVVWWU1RVjFBQkpibERsckRGSFpQZlJzb20vcS9j?= =?utf-8?B?ZmxiNnJuRmhmZHF2L0xkMHQ0S1hxdU9KYjQ1YmVaTEg2S2szSDcycG9OUTJX?= =?utf-8?B?RmVRODJaOC80RWVKdVJnK0xtRjJ5MEpDT3MrSjlIUkJIME4yRWllalUxSHdD?= =?utf-8?B?UzducFZHTEc3MUdxNWZ4VStGWFRHR3pKaHBqOHdna2ZKanNEM0pOaWlSL29N?= =?utf-8?B?MjY3bndCbEcrVEZCRjRkQTVZM2l4KytNbkhkK0U3OVg1ZUZZY3VwNEpTRk1O?= =?utf-8?B?MnpTRm5wMFdRSTRNOEEvblkvSjBMYytMWVdaM21BRlBnQk9CdzVnYlZ4UFJs?= =?utf-8?B?c202VmpQRkUyam03b05kYVEyeGZZc0tqZlRCcU80aVRqSmJkZUlmUnBUeU04?= =?utf-8?B?bS94bUJyS3pvUFIzTi9vcjVKOXg4SzJQaUh4RU4vWE80VzROdTA3NG5XUFA4?= =?utf-8?B?RmFVdDdUbEVMekorWG95V1h1dzdjVVVnSlVWNDNiSlhjTW1FVUx0Q2Z6bDF3?= =?utf-8?B?OUdTRnUrWU5zZnlWem9QcHNkZ3BFNTdnVjRWWVNqUjRheDJtWFQwekRvR0w4?= =?utf-8?B?SVNFQzc2VU96NzdwVUdzQ0h3YUQ1VEttNmJBWUJscjdRdTZmekVhZE9IZnhP?= =?utf-8?B?VzJQM2I3MWtvVjF3d0ljcVBDc2lmeWdjQXdsM2tiM1VGQXFNRUEwcjJTZUZS?= =?utf-8?B?QXpRa3lRTUdZeUQ4RnpZRVZaaEtKV0ljMG1CQzNSYmhmMVVKQWpJS1VqY1pO?= =?utf-8?B?RGxYaHJDK0hrYUpnR0FwUGtianM2cDN1c05jd3JheWErOUtaaWtqTFQ1Z2ov?= =?utf-8?B?NnlwMmNzUEMyR3hjdElRK0J4VmxoNVAveW1sd1Vwb3JDemNjUXBsa2ZlbDd5?= =?utf-8?Q?J2kxVxBA14hI+gn7cYldywPKb?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB5801.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61b61018-086a-4f07-a157-08db20512ecf X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2023 03:48:45.2231 (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: x6e/nlxCjl8kWZJ7TxeRf59jV9FdcUnqZmf5C0XSbmRWBZeMi3lHe7W1t0I6beAKV9k78D5+xsQuFzAuYUSo4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7886 Return-Path: isaac.w.oram@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 V2UgYXJlIGRvaW5nIHNvbWUgd29yayB0byBlbmFibGUgQ0kgb24gZWRrMi1wbGF0Zm9ybXMgYW5k IHdvdWxkIGxpa2UgdG8gYWRkIFFlbXVPcGVuQm9hcmRQa2cgdG8gdGhlIENJIGxpc3QuICBJIGRv IHRoaW5rIHRoYXQgdGhpcyB3aWxsIGJlY29tZSBtb3JlIGFjdGl2ZSBvdmVyIHRpbWUuDQoNCklz IHRoZXJlIGEgVjIgY29taW5nPyAgSWYgc28sIEkgZm91bmQgYSBjb21waWxlciBpc3N1ZSB3aXRo IFZTMjAxOSBhbmQgVlMyMDE1Lg0KSXQgZG9lc24ndCBsaWtlIHRoZSBsb2NhbCB2YXJpYWJsZSBQ bGF0Zm9ybURhdGEgaGF2aW5nIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSBQ bGF0Zm9ybURhdGEuDQpJIHdvdWxkIHN1Z2dlc3QgY2hhbmdpbmcgdGhlIGdsb2JhbCB0byBtUGxh dGZvcm1EYXRhLg0KDQpSZWdhcmRzLA0KSXNhYWMNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24g QmVoYWxmIE9mIFBlZHJvIEZhbGNhdG8NClNlbnQ6IE1vbmRheSwgSmFudWFyeSAzMCwgMjAyMyAz OjI4IEFNDQpUbzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+DQpDYzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IE9yYW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRlbC5jb20+OyBU aGVvIEplaGwgPHRoZW9qZWhsNzZAZ21haWwuY29tPg0KU3ViamVjdDogUmU6IFtlZGsyLWRldmVs XSBbUEFUQ0ggZWRrMi1wbGF0Zm9ybXMgMS8yXSBRZW11T3BlbkJvYXJkUGtnOiBSZWRvIFBDSSBi dXMgaW5pdGlhbGl6YXRpb24NCg0KT24gRnJpLCBKYW4gMTMsIDIwMjMgYXQgNjozNCBBTSBHZXJk IEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4gd3JvdGU6DQo+DQo+ID4gZGlmZiAtLWdpdCBh L1BsYXRmb3JtL1FlbXUvUWVtdU9wZW5Cb2FyZFBrZy9QbGF0Zm9ybUluaXRQZWkvTWVtb3J5LmMg DQo+ID4gYi9QbGF0Zm9ybS9RZW11L1FlbXVPcGVuQm9hcmRQa2cvUGxhdGZvcm1Jbml0UGVpL01l bW9yeS5jDQo+ID4gaW5kZXggMjE3MDUyNTYxOTFiLi40ZjMxMmMzNjAxNmUgMTAwNjQ0DQo+ID4g LS0tIGEvUGxhdGZvcm0vUWVtdS9RZW11T3BlbkJvYXJkUGtnL1BsYXRmb3JtSW5pdFBlaS9NZW1v cnkuYw0KPiA+ICsrKyBiL1BsYXRmb3JtL1FlbXUvUWVtdU9wZW5Cb2FyZFBrZy9QbGF0Zm9ybUlu aXRQZWkvTWVtb3J5LmMNCj4NCj4gVGhlcmUgaXMgT3ZtZlBrZy9MaWJyYXJ5L1BsYXRmb3JtSW5p dExpYiB3aGljaCB5b3UgY291bGQgdXNlIGluc3RlYWQgDQo+IG9mIHJlaW52ZW50aW5nIHRoZSB3 aGVlbCAuLi4NCj4NCj4gSWYgdGhlcmUgYXJlIGNoYW5nZXMgbmVlZGVkIHRvIG1ha2UgUGxhdGZv cm1Jbml0TGliIHdvcmsgZm9yIHlvdSBmZWVsIA0KPiBmcmVlIHRvIHByb3Bvc2UgcGF0Y2hlcyAo c2FtZSBnb2VzIGZvciBldmVudHVhbGx5IG1vdmluZyBjb2RlIGZyb20gDQo+IE92bWZQa2cvUGxh dGZvcm1QZWkgdG8gdGhlIExpYnJhcnkpLg0KDQpHZXJkLA0KDQpUaGFuayB5b3UgZm9yIHRoZSBj b21tZW50cy4NCg0KVGhhdCBpcyBhbiBpbnRlcmVzdGluZyBpZGVhLCBob3dldmVyIEkgYmVsaWV2 ZSBPdm1mUGtnL0xpYnJhcnkvUGxhdGZvcm1Jbml0TGliIGlzIEFUTSBhIGJpdCB0b28gdGlnaHRs eSBjb3VwbGVkIHdpdGggdGhlIHJlc3Qgb2YgT1ZNRiBpdHNlbGYuDQpGb3IgaW5zdGFuY2UsIHRo aXMgd29yayB3YXMgcGFydGlhbGx5IGluc3BpcmVkIGJ5IHlvdXIgcmVjZW50LWlzaCB3b3JrIGlu IHNpbWlsYXIgT3ZtZlBrZyBjb2RlIGFuZCBhbHNvIGRyb3ZlIG1lIHRvIHJlbW92ZSB0aGUgZGVw ZW5kZW5jeSBvbiBQY2lIb3N0QnJpZGdlTGliLCBldCBhbCAocmVwbGFjaW5nIGl0IHdpdGggdGhl ICJzdGFuZGFyZCINCk1pblBsYXRmb3JtUGtnIFBDSSBsaWJzKS4gTXkgc29sdXRpb24gaXMgYmFz ZWQgb24gZHluYW1pYyBQQ0Qgd2FyLWNyaW1lcyBidXQgaXQgSnVzdCBXb3Jrcyh0bSkuDQpDaGFu Z2luZyBpdCBpbiBPdm1mUGtnIHdvdWxkIGJlIHRvbyBpbnZhc2l2ZSwgSSBmZWVsOyBpdCdzIG5v dCBsaWtlIG15IHNvbHV0aW9uIGlzIGdvb2Qgb3IgYW55dGhpbmcuDQoNCkFuZCBiZWNhdXNlIG9m IHRoZSB3YXkgdGhlIHJlcG9zIGFyZSBzcGxpdCwgdGhlcmUgaXMgbm8gd2F5IHRvIGN1cnJlbnRs eSBkZWR1cCBPVk1GJ3MgUGNpSG9zdEJyaWRnZUxpYiBieSBhbHNvIG1ha2luZyBPVk1GIGRlcGVu ZCBvbiBNaW5QbGF0Zm9ybVBrZydzLCBiZWNhdXNlIHdoeSB3b3VsZCB0aGVyZSBiZSwgcmlnaHQ/ DQoNCkFueXdheSwgZG9pbmcgZGVlcCBjaGFuZ2VzIHRvIE9WTUYgZm9yIFFlbXVPcGVuQm9hcmRQ a2cgaXMgdW5jb21mb3J0YWJsZSBmb3IgbWUgYmVjYXVzZSBpdHMgcGxhY2UgaW4gVGlhbm8gaXMg bm90IGRlZmluZWQuIE9WTUYgYW5kIEludGVsIGZvbGtzIGhhdmUgc2FpZCB2ZXJ5IGZldyB0aGlu Z3MgYWJvdXQgUU9CUC4NCkF0IHRoZSBtb21lbnQsIGl0J3MgdGhlIHR5cGljYWwgIkdTb0MgcHJv amVjdCBzdGFnbmF0aW5nIGluIGVkazItcGxhdGZvcm1zLy1zdGFnaW5nIiB0aGF0IFRpYW5vY29y ZSBzZWVtcyB0byBsb3ZlIHNvIG11Y2guIEkgZG9uJ3Qgc2VlIG11Y2ggcG9pbnQgaW4gaXQgYmVp bmcgdGhpcyB3YXkuDQpRZW11T0JQIGhhcyBiZWVuIGEgbmljZSBmdW4gZXhlcmNpc2UgaW4gcmVk dWNpbmcgY29kZSBkdXBsaWNhdGlvbiwgd2hpY2ggc2hvd3MgYSBsb3Qgb2YgcHJvbWlzZSwgYnV0 IGl0IGFsc28gZG9lc24ndCBzdXBwb3J0IHNvbWUgb2YgdGhlIHRoaW5ncyBPdm1mUGtnIGRvZXMs IGxpa2UgUEVJLWxlc3MgYm9vdGluZyAoYW5kIFREWC9TRVYgYnV0IHRob3NlIGNvdWxkIGNlcnRh aW5seSBiZSB3b3JrZWQgaW4pLg0KDQpJZiB0aGlzIGtpY2tzIG9mZiBkaXNjdXNzaW9uIG9uIHRo ZSBmdXR1cmUgb2YgUWVtdU9wZW5Cb2FyZFBrZywgSSdsbCBiZSBoYXBweS4NCg0KVW50aWwgdGhh dCBoYXBwZW5zLCBJIGFtIHJlbHVjdGFudCB0byBjaGFuZ2UgT1ZNRiBpbnRlcm5hbHMgZm9yIGFu IG9ic2N1cmUgUUVNVSBQbGF0Zm9ybVBrZyBoaWRkZW4gaW4gdGhlIGJlc3Qgd29yc3QgcmVwbywg ZWRrMi1wbGF0Zm9ybXMNCjopDQoNCj4gPiArICAvLyBJdCdzIHdvcnRoIG5vdGluZyB0aGF0IFFF TVUgYWxzbyBncmV3IGFuIG9wdGlvbiB0byBjaGFuZ2UgDQo+ID4gKyBsb3dtZW0gYmFzZWQgb24g dGhlICAvLyB1c2VyJ3MgcHJlZmVyZW5jZXMuIEJlY2F1c2Ugb2YgYWxsIG9mIA0KPiA+ICsgdGhp cywgaXQncyBuZWFyIGltcG9zc2libGUgdG8gaGFyZGNvZGUgIC8vIGEgcmFuZ2UsIHNvIHdlIGdy YWIgDQo+ID4gKyBUT0xVRCAobm90IGluIGEgbGl0ZXJhbCB3YXksIHNpbmNlIFFFTVUgZG9lcyBu b3QgaW1wbGVtZW50ICAvLyANCj4gPiArIHRoYXQgcmVnaXN0ZXIgOykpIGFuZCBjYWxjdWxhdGUg b3VyIFBDSSBNTUlPIGJhc2VkIG9uIHRoYXQuIFRoaXMgYWxzbyBtYWtlcyBpdCBzbyAgLy8gdGhl IERTRFQgYnVpbHQgYnkgUUVNVSB3aWxsIGhhdmUgY29ycmVjdCBfQ1JTIHJhbmdlcy4NCj4gPiAr ICAvLyBody9wY2ktaG9zdC9xMzUuYyBleHBsaWNpdGx5IHNheXMgb3VyIFBDSSBob2xlIHJhbmdl cyBmcm9tIFtUT0xVRCwgSU8gQVBJQ10uDQo+ID4gKyAgLy8gQXMgZmFyIGFzIEkgY2FuIHRlbGws IHdlIHNlZW0gdG8gYmUgYWxsb3dlZCB0byBhZGQgYSA2NC1iaXQgcmVzb3VyY2UgcmFuZ2UgYW55 d2hlcmUuDQo+DQo+IFRoZXJlIGlzIGEgZXRjL3Jlc2VydmVkLW1lbW9yeS1lbmQgZndfY2ZnIEZ3 Q2ZnIGZpbGUuICBJZiBwcmVzZW50IGl0IA0KPiB0aGUgNjQtYml0IHJlc291cmNlIHJhbmdlIHNo b3VsZCBiZSBwbGFjZWQgYWJvdmUgdGhlIGFkZHJlc3Mgc3BlY2lmaWVkIA0KPiB0aGVyZSAocWVt dSB1c2VzIHRoYXQgdG8gcmVzZXJ2ZSBhZGRyZXNzIHNwYWNlIGlmIG5lZWRlZCwgaGFwcGVucyBm b3IgDQo+IGV4YW1wbGUgd2hlbiB5b3UgZW5hYmxlIG1lbW9yeSBob3RwbHVnKS4NCg0KQUNLLCB3 aWxsIGNoYW5nZSBvbiB2MiAodG9nZXRoZXIgd2l0aCBJc2FhYydzIGNvbW1lbnRzKS4NCg0KPiBU aGUgcGF0Y2ggc2hvdWxkIGJlIHNwbGl0dGVkIHVwIGludG8gc21hbGxlciBwaWVjZXMgdG8gbWFr ZSBpdCBlYXNpZXIgDQo+IHRvIHJldmlldyB0aGUgY2hhbmdlcy4NCg0KQWdyZWVkLCB3aWxsIHRy eSB0byBkZXZpc2UgYSBzdHJhdGVneSB0byBicmVhayBpdCB1cCBpbiBzbWFsbGVyLCBsb2dpY2Fs IGNodW5rcy4NCkFnYWluLCB0aGFuayB5b3Ugc28gbXVjaCBmb3IgeW91ciB0aW1lIGxvb2tpbmcg YXQgc29tZXRoaW5nIHlvdSdyZSBub3QgZXZlbiBhIG1haW50YWluZXIgZm9yIDopKQ0KDQotLQ0K UGVkcm8NCg0KDQoNCg0KDQo=