From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web08.31278.1629988639670010090 for ; Thu, 26 Aug 2021 07:37:20 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=mTZxMNXQ; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10088"; a="278768789" X-IronPort-AV: E=Sophos;i="5.84,353,1620716400"; d="scan'208";a="278768789" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2021 07:37:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,353,1620716400"; d="scan'208";a="684955067" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga006.fm.intel.com with ESMTP; 26 Aug 2021 07:37:18 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 26 Aug 2021 07:37:18 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 26 Aug 2021 07:37:17 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Thu, 26 Aug 2021 07:37:17 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) 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.2242.10; Thu, 26 Aug 2021 07:37:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ihC9PQqE4l6/5lJJN4HO5mgjCUDrWWtSSM0D78Tn/j1UP25l2mB30gAfhUIVWJHNn8z2gmFyoOle9UqCQ5SrywOiAA5Daix7fdukPpup7XgNroAsjtLNhiT6hxG0aNEmja7/k5Ag9dy4O9FaRgVoax0NYCF1IUoUELLPC/6anAIqWAiSZGtr07QuIGvGLf1BzhsC3rMrh2sgksbloO06dqd4oE+pvUwWxT/HGD5CiPEj9lCbcbBt8fshabcrxHN+tK6MLuCC8h0/50P5lr0MhRy2tYkAqahrL+nD0dwRWRMZFtj2dT9YG2yCiNaZKGV7XdHDi0lRonE3StOv0ttZyQ== 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=OihO0vka+uuxRBgnIu0dFysBDhMQqieFiPEM+9vpfC0=; b=dnbvp2I/FXJSq/1tt+Ty3LMMYTmTxOan5l+fBgZl6qKtIQ2ORLac/jEH1zsBzqxVIgr4A2EdpGyenjoGAQYQKd2Wr7EnMcxie+fhEK3MkrJ7VR/gjaUlxRA8HuY6mmIWEYDC4ArmJimzAgNBS8MzHWzb913Oz2r91/O9wFwwRe3zBnTwknrhCae4d4IRPrcgmUOixBGX0J4+TvaW6Ww4MOmu9c6NMHIcArPS0GpdjixgAYdgDe+fo5eZgTuTpf6HV/nSBvv4ERuCfbBXMh4oFJaNlIh1rOaMuHOc/qqzTmxdc/fcVJ593OrLqzTnBQ1qjYWDdh0Xb7FSqfIIdS008A== 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=OihO0vka+uuxRBgnIu0dFysBDhMQqieFiPEM+9vpfC0=; b=mTZxMNXQ/mu7JLOSE9yE7M8PbGvMlPporGrNZdWfFsVUOmC9rs/XUrCg/VRBanjwwsiGXhxkX4j+yKspwO0fQLzGl7Bri/X/o4eKvEoad5xUuadi9Ht3+CbUi1bqNgbRWoFynMNXul0FLf6KnyfuR1aMc9lJfmmk/Dh7bGt2ntk= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB1647.namprd11.prod.outlook.com (2603:10b6:301:d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Thu, 26 Aug 2021 14:37:15 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::41d4:9acf:4230:9084]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::41d4:9acf:4230:9084%8]) with mapi id 15.20.4436.025; Thu, 26 Aug 2021 14:37:15 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mhaeuser@posteo.de" , "Kinney, Michael D" CC: Andrew Fish , "leif@nuviainc.com" , "Ni, Ray" , "Gao, Zhichao" , "Wang, Jian J" , "Wu, Hao A" , "Bi, Dandan" , "Dong, Eric" , "Bret Barkelew" , Vitaly Cheptsov Subject: Re: [edk2-devel] [RFC] Expose HII package list via C variables Thread-Topic: [edk2-devel] [RFC] Expose HII package list via C variables Thread-Index: AQHXmfcmFVgngD0ybUapWtXnAR2dw6uEzI/QgACubYCAAF+KIA== Date: Thu, 26 Aug 2021 14:37:15 +0000 Message-ID: References: <56820ad5-5fb8-f93d-60f5-15fa6e9d347d@posteo.de> In-Reply-To: <56820ad5-5fb8-f93d-60f5-15fa6e9d347d@posteo.de> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.100.41 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5153bc33-c461-4907-407a-08d9689eff96 x-ms-traffictypediagnostic: MWHPR11MB1647: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2uEW+9pVhoeWBqTvBAIyI1WainyHlMrkdKpBZM2m6ysHEagEUvX/toCMkw/ZhL1Ufvevqkdp6sNIbJ3DxlP1xZyihs485Xxacl4A9zARwk3pvDLPfCnAj1Rgt2v0/D01lVq7PY0BWUtfZczb76XeCyf4uvaVknfLc1dLxdQiWGjels5YFpapWgt+1dG/fi7sCaIz5wf8fNN2JQQaTccbJqcnRZbe9CnlhThs9wGrU1w0atE+27R9cdcehI7Vxb8wU6RQeKxTHUdZOn9A9nZ1tn6WtILVYr3EOzhtZ+vRjpo9xjCiDIl65w+zIvCX3Dj8e/AchIBOiuiFEk5l77Il0MQ4Nn3ioriKZtgNUVXFxPXuS7eOEfBH8N9SAlfJYY0wT80TRtSGNFejzPs+pM8do2GmWJJSOqZ2c0hQZw1CCw5yQp0MmKVMlzAXV6gsheilE05obT8B7leZZu73hMbECZXBd7WCb7uhgfRJTvjCgp8IKvIIIjVdYbAnZm67HyFjewgx+M4yZ5RNezBv8P20Q2pB0/p7ydFjfUmgpigatgoTfD2C5ftmlknRB0IrbGap6BiNkKDM++9nsJXK+fcn8sDFrJpDjFhN/FPMmyeSzmflwTplScKFvS+mpEspSU3mRPGXB0wH4TcVYlvhNqfPLEOFQUn3Iday/eru5kTc9xedI8Npk6klYC5KAYBrxhJfv+MUod/zyYLNgbNj7GK9oN7ierv6egz2RUyc3GuUDbwLJm/52T37zUuL8Fl+TGnD0NH8fQxeu7/JcC3pWXYyXsR2WQLP5gyS7t/suLwK66ZsfDjN2IO+uZ8TnLx+Wc1tfU8BEBNSmp/Lk2PhYMNoWQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(136003)(376002)(346002)(366004)(396003)(122000001)(54906003)(19627235002)(110136005)(52536014)(66476007)(53546011)(66946007)(64756008)(66446008)(86362001)(66556008)(71200400001)(6506007)(7696005)(478600001)(2906002)(38100700002)(55016002)(9686003)(83380400001)(5660300002)(76116006)(966005)(38070700005)(316002)(8936002)(186003)(4326008)(66574015)(26005)(33656002)(8676002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VEtDM1JqYjg3YUxRU3M3ZHltVmlyQUdwU1RWQ1NEU2hwTnpMOGM1bmd6SENI?= =?utf-8?B?WWNwemJKMGVZSGg3aGlWOXFmbzdpeENQbEsvYm9nTXBrVjJGQ1B5MU94dVZH?= =?utf-8?B?eHRWQzg4QWp6UkxiK3NiTHZyNnRxZVNEYlZLdVpOaURwUTM0V3ZrQ2VUYmFk?= =?utf-8?B?SzUvVUFiOS8wUDNDQzhJOW9OcHhaU25EeUdBSDNPRnBpVmgrRjRMNU91MVJ0?= =?utf-8?B?Q0JmMWtycmFPYWFCVSs2T3lTNjFJMHQ5M0o3QTNnY084VVRXMnN5SElyRzJB?= =?utf-8?B?TDlJcFZFTWpPcmlPTFgveHVGeTFoWkVZaWhyMkorcHRLUU1BTklHc05zVWRE?= =?utf-8?B?cko1bnMyNzZpL05ERkZFZDJpaWZDT0Uzc0ZROHR3dnNyWGdzaG9SMDg3YWF4?= =?utf-8?B?Tjd0K1BKV1crelRCeGppMEFrVi9tZDlMM2UyUzFQbTAwVjdzSEp1UWZYNVR0?= =?utf-8?B?T3BYRmd5SWtEYk1zWDNmdjRuRlJoYm5mV3QwTGY2QWRkTE5pQUVqV3docGFJ?= =?utf-8?B?MTluS210d04wSnBGbmdkTzFLeDQxM0cyTTlRSnhobUQ1bHlzTHdJMHorUEVu?= =?utf-8?B?VVFsbTNoTHZycGVnSE5qUjV3S2tHYmg1K0Uxbm9vc1hITXVQUGh4UTV6NkhZ?= =?utf-8?B?VXBrNHRJazY5WlBLL1BZcVFLVHBqOFRDejBXSmxuVzhmS0Y2cTB0NTNjSm1k?= =?utf-8?B?M1JhZ20zMUxWSit4NUNPUnFtcTNUbnk1SStpR0lsa2dTSnZVWkpHSVphZVl2?= =?utf-8?B?c1J1Ni9sVWFqdHNDejFaQk9paDBPKzJ0Z0hrV0h2SVhSbzM3TEtwL1dBczRP?= =?utf-8?B?MVFJS242MkNlTjlUQXRxOGxLU2ducHpUR2lpeDBCbmd5VzE1b1AyZEhCb1NN?= =?utf-8?B?L0lvTlhvMmxzbE91elRldW9KRmdmK3pRQlA5UmVXdy90VGsxWXVZY3I5Wm9U?= =?utf-8?B?UHZ2cWptS2xkT3h2Vjdja2FyOTQ3U01aNENrK3JtTjNpdkoyVmtqR3V4T3JS?= =?utf-8?B?WkVVc2FyOTBIVlJ0UzU2cEN4M0hjQzJuQW14ZVNESFIvZVpIMkpGek1Vd0tq?= =?utf-8?B?YnhVYXhieTIxeGg1cjZEejZMVkREZjR2MnZ2UGNUT1NhWlhjRGJWcmxnbFNv?= =?utf-8?B?TTAySWwrYW1aQ1pCcVp6UGN4NzJqYkJORE52U1FyU2w3dU9Kdk94VnhBT3pE?= =?utf-8?B?SU9OV2ZUejQwTjVYR2Erdm5lenBYTllvdlRNMTZPK2ZaZEpKOFJxbk4vWVRs?= =?utf-8?B?YjJwUFpXblQva1ppTU5sTXhYaHVxV0dLakYvMFpxRW55VWtOR2pJalhhQlVX?= =?utf-8?B?Z0NtM0N4MitHdWQ5anpEZWYzQkNJVE9XU1UxaTNPcFo0S1pwYk9JWHp6eHQv?= =?utf-8?B?MzFzU3BsYVhzTUtkdUxQL1RZMkROK2FPajhrbzNkSEVLR1d4WW5MWWpnRGdO?= =?utf-8?B?RWFnVVUyY1ZMVDI5R2VYU09SaXdrclkzVzFoOWRrOWovajJ3RHFBYUtyZG91?= =?utf-8?B?Ti9ZSGkxTzcvSSt1Q2VnMnFuczhlelU0RDFmcEdHS1MvSTcwbkJVcDlPRldW?= =?utf-8?B?b1RMZEh5VitmZGtxcy9yOURKakZHcXBzaVlOajJFams5T2k0U1pxRlRFR2lj?= =?utf-8?B?SVJVSUVLNzZ3azcwMTY5a1NmS3l5bitjemJzWC90RUpudzcyb09pUE1ublZS?= =?utf-8?B?QlV0N3dXR1JPZ1BEdGZPclNTUXB2ZmR1ZTJ0NkxhTlFBMXFRZXhxdlJyM1Z3?= =?utf-8?Q?UHvI5xZNpsdmKQvN0tlzkIv8eHv4EQMBP+RZJ9O?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5153bc33-c461-4907-407a-08d9689eff96 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2021 14:37:15.0768 (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: d8CEjvzdXtn9A5OqxWWmnbx7/uXcU/LyI7kpUpxM+MT4CkQ78/w2XaDn6z6XZbwQdV1n6gum/j9lPzYuAH/xHTCEQK4lPX5B3lYNOXFYr2w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1647 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWFydmluLA0KDQpPbmUgY29uc3RyYWludCBpbiB0aGlzIGRpc2N1c3Npb24gaXMgdGhhdCB0aGUg SElJIGNvbnRlbnQgaW4gDQphIFBFL0NPRkYgcmVzb3VyY2Ugc2VjdGlvbiBpcyBkZWZpbmVkIGlu IHRoZSBVRUZJIFNwZWNpZmljYXRpb24sDQpXaGljaCBtZWFucyBVRUZJIEFwcHMgYW5kIFVFRkkg RHJpdmVycyBmcm9tIG1lZGlhIGFuZCBvcHRpb24gUk9Ncw0KdGhhdCBhcmUgbm90IHBhcnQgb2Yg dGhlIHN5c3RlbSBGVyBpbWFnZSBhcmUgYWxsb3dlZCB0byB1c2UgdGhpcyANCmZlYXR1cmUsICBU aGlzIG1lYW5zIHRoZSBzeXN0ZW0gRlcgUEUvQ09GRiBsb2FkZXIgbXVzdCBzdXBwb3J0DQpsb2Fk aW5nIEhJSSBjb250ZW50IGZyb20gdGhpcyBQRS9DT0ZGIHJlc291cmNlIHNlY3Rpb24gdG8gYmUg VUVGSQ0KY29uZm9ybWFudC4gIFNvIHdlIGNhbm5vdCByZW1vdmUgdGhpcyBmZWF0dXJlIGZyb20g dGhlIFBFL0NPRkYgDQpsb2FkZXIgd2l0aG91dCBjaGFuZ2VzIHRvIHRoZSBVRUZJIFNwZWNpZmlj YXRpb24uICBFdmVuIGlmDQpjaGFuZ2VzIHRvIHRoZSBVRUZJIFNwZWNpZmljYXRpb24gd2UgbWFk ZSwgd2Ugd291bGQgaGF2ZSB0bw0KY29udGludWUgdG8gc3VwcG9ydCB0aGlzIGZlYXR1cmUgZm9y IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgDQp3aXRoIGV4aXN0aW5nIFVFRkkgQXBwcy9Ecml2ZXJz IHRoYXQgbWF5IGJlIHVzaW5nIHRoaXMgDQpmZWF0dXJlLg0KDQpUaGFua3MsDQoNCk1pa2UNCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5p byA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBNYXJ2aW4gSMOkdXNlcg0KPiBT ZW50OiBUaHVyc2RheSwgQXVndXN0IDI2LCAyMDIxIDE6NTEgQU0NCj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+IENjOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNv bT47IGxlaWZAbnV2aWFpbmMuY29tOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgR2FvLCBa aGljaGFvDQo+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgQmksIERhbmRh bg0KPiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5j b20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBWaXRhbHkg Q2hlcHRzb3YNCj4gPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW1JGQ10gRXhwb3NlIEhJSSBwYWNrYWdlIGxpc3QgdmlhIEMgdmFyaWFibGVzDQo+ IA0KPiBIZXkgTWlrZSwNCj4gDQo+IFRoYW5rcyBmb3IgeW91ciByZXBseSENCj4gDQo+IFdlbGws IHRoaXMgc3dpdGNoIGlzIG5vdCB3ZWxsLWRvY3VtZW50ZWQuIExvb2tpbmcgbm93IGF0IGJvdGgg dGhlDQo+IGdlbmVyYXRpb24gY29kZSBhbmQgdGhlIGVtaXR0ZWQgY29kZSwgaXQgZG9lcyBub3Qg Z2VuZXJhdGUgYSBwYWNrYWdlDQo+IGxpc3QgbGlrZSBteSBjb2RlIGRvZXMsIGJ1dCBzZXBhcmF0 ZSBkYXRhIHZhcmlhYmxlcyAoc3RyaW5ncyBhbmQgaW1hZ2VzKQ0KPiB0aGF0IGNhbm5vdCBlYXNp bHkgYmUgcGFzc2VkIHRvIEhpaURhdGFiYXNlIGFzLWlzLiBIb3dldmVyIGFwcGFyZW50bHkNCj4g dGhlcmUgYXJlIGRyaXZlcnMgdGhhdCB1c2UgdGhpcyBmdW5jdGlvbmFsaXR5IHN1Y2Nlc3NmdWxs eSBieSBjb21wb3NpbmcNCj4gdGhlIHBhY2thZ2UgbGlzdCBhdCBydW50aW1lIFsxXS4NCj4gDQo+ IExvb2tpbmcgd2l0aCB0aGlzIGluZm9ybWF0aW9uIG5vdyBhdCB0aGUgcGF0dGVybiBvZiB1c2lu ZyBISUkgQw0KPiB2YXJpYWJsZXMgKHdoaWNoIEkgZGlkIG5vdCBrbm93IGV4aXN0ZWQgYmVmb3Jl KSB2cyB0aGUgUEUvQ09GRiBISUkNCj4gc2VjdGlvbiwgbW9zdCB0aGF0IHVzZSBsYXR0ZXIgYXJl IFNoZWxsIGFwcGxpY2F0aW9ucywgd2hpY2ggSSBndWVzcw0KPiBtZWFucyB0aGUgc2VjdGlvbiBo YXMgYWN0dWFsbHkgYmVlbiBpbnRyb2R1Y2VkIHRvIHJlc29sdmUgRC4/IFRoZXJlIGFyZQ0KPiBl eGNlcHRpb25zIHN1Y2ggYXMgTG9nb0R4ZSBbMl0sIHdoaWNoIHVzZSB0aGUgUEUvQ09GRiBzZWN0 aW9uIHdoaWxlIEQuDQo+IGlzIG5vdCBhIHByb2JsZW0sIGhlbmNlIEkgZ290IGNvbmZ1c2VkLCBz b3JyeS4gSSB0aGluayB0aGVzZSBtb2R1bGVzDQo+IHNob3VsZCBiZSB1cGRhdGVkIGluIGFueSBj YXNlLiBEbyB5b3UgYWdyZWU/DQo+IA0KPiBTbywgZm9yIG1vZHVsZXMgdGhhdCB1c2UgQyB2YXJp YWJsZXMgYWxyZWFkeSwgbXkgcGF0Y2ggd291bGQgc2F2ZSBzb21lDQo+IHJ1bnRpbWUgZ2VuZXJh dGlvbiBjb2RlIGFuZCBkeW5hbWljIG1lbW9yeSBhbGxvY2F0aW9uIGZvciB0aGUgSElJDQo+IHBh Y2thZ2UgbGlzdC4gVGhpcyB3YXMgbm90IG15IGdvYWwgKGFzIEkgc2FpZCwgSSBkaWRuJ3QgcmVh bGlzZSBISUkgQw0KPiB2YXJpYWJsZXMgYWxyZWFkeSB3ZXJlIGEgdGhpbmcgaW4gdGhlIGZpcnN0 IHBsYWNlKSwgYnV0IHRoZSBjaGFuZ2VzIGFyZQ0KPiBzbWFsbCBlbm91Z2ggdGhhdCBpdCBtaWdo dCBiZSB3b3J0aCBjb25zaWRlcmluZyBhbnl3YXksIGluIG15IG9waW5pb24uDQo+IElmIGEgSElJ IHBhY2thZ2UgbGlzdCBpcyBnZW5lcmF0ZWQgZm9yIGJvdGggU2hlbGwgYW5kIG5vbi1TaGVsbCBh cHBzLA0KPiB0aGlzIGFsc28gbWVhbnMgY29kZSBwYXRocyBjYW4gYmUgdW5pZmllZC4gRm9yIGV4 YW1wbGUsIHRoZXJlIGNvdWxkIGJlIGENCj4gbGlicmFyeSBjbGFzcyB3aXRoIGNvbnN0cnVjdG9y IGFuZCBkZXN0cnVjdG9yIHRvIGFkZC9yZW1vdmUgcGFja2FnZXMNCj4gZnJvbSB0aGUgSElJIGRh dGFiYXNlIGZvciBhbGwgbW9kdWxlcyB0aGF0IHVzZSBzdWNoLCBTaGVsbCBvciBub3QuIEZvcg0K PiBCYXNlVG9vbHMgaXQgbWVhbnMgdGhhdCB0aGVyZSBpcyBubyByZWFsIG5lZWQgZm9yIHNlcGFy YXRlIFB5dGhvbiBhbmQgQw0KPiBwYXRocyBhcyBpZGVhbGx5IHRoZXkganVzdCBnZW5lcmF0ZSB0 aGUgZXhhY3Qgc2FtZSBkYXRhLg0KPiANCj4gTm93IHRvIEQuLCB0aGUgb25seSB1c2FnZSBmb3Ig dGhpcyBzZWVtcyB0byBiZSB0aGF0IFNoZWxsIGNhbiBsb2NhdGUgdGhlDQo+IGhlbHAgdGV4dCBp biB0aGUgZXhlY3V0YWJsZSB3aXRob3V0IGV4ZWN1dGluZyBpdCwgeWV0IGl0IGlzIGZ1bGx5IGxv YWRlZA0KPiBhbnl3YXkgWzNdLiBUbyBiZSBob25lc3QsIEkgZmluZCBpdCBoYXJkIHRvIGp1c3Rp ZnkgbG9hZGluZyBhbg0KPiBleGVjdXRhYmxlIChQRS9DT0ZGIGxvYWRpbmcsIG1lbW9yeSBwZXJt aXNzaW9uIGFwcGxpY2F0aW9uLCB0aGUgZnVsbA0KPiBwcm9jZXNzKSB0byByZXRyaWV2ZSBhIGhl bHAgdGV4dCBhbmQgdGhlbiB1bmxvYWRpbmcgaXQgYWdhaW4sIGVzcGVjaWFsbHkNCj4gd2l0aCB0 aGUgSElJIGNvZGUgYmVpbmcgb24gYSBjb3JlIGRpc3BhdGNoZXIgbGV2ZWwuIDEuIHRvIDcuIHN0 aWxsIGhvbGQNCj4gdHJ1ZSBpbiBteSBvcGluaW9uLiBXYXMgdGhlcmUgYW55IGRpc2N1c3Npb24g SSBjb3VsZCByZWFkIHRocm91Z2ggd2h5DQo+IFNoZWxsIGFwcHMgY2Fubm90IHNpbXBseSBzdXBw b3J0IGEgIi0taGVscCIgb3IgIi0/IiBjb21tYW5kIGFuZCBvdXRwdXQNCj4gdGhlIHN0cmluZyB0 aGVtc2VsdmVzPyBQdXNoaW5nIHRoZSBidXJkZW4gdG8gdGhlIFNoZWxsIGFwcHMgZG9lcw0KPiBw cmVzZXJ2ZSB0aGUgImRyYXdiYWNrIiB0aGF0IGEgZnVsbCBsb2FkaW5nIGlzIHJlcXVpcmVkICh3 aGljaCBob25lc3RseQ0KPiBkb2VzIG5vdCBtYXR0ZXIgZm9yIGEgZGVidWdnaW5nIGFwcGxpY2F0 aW9uIGxpa2UgU2hlbGwpLCBob3dldmVyIGl0IGRvZXMNCj4gcmVsaWV2ZSB0aGUgYnVyZGVuIG9m IFBFL0NPRkYgSElJIHBhcnNpbmcgZnJvbSB0aGUgY29yZSBkaXNwYXRjaGVyDQo+ICh3aGljaCBt YXR0ZXJzIGEgbG90IGluIG15IG9waW5pb24gdG8ga2VlcCB0aGUgY29yZSBzaW1wbGUpLiBJdCB3 b3VsZA0KPiBzaW1wbHkgYmUgYSBub3JtYWwgU2hlbGwgYXBwIGV4ZWN1dGlvbiBhcyBhbnkgb3Ro ZXIgaG93ZXZlci4gSWYgc29tZW9uZQ0KPiB3YW50cyB0byBhdm9pZCB0aGUgUEUvQ09GRiBidXJk ZW4gYWx0b2dldGhlciwgdGhleSBjYW4gc3RpbGwgcHJvdmlkZSBhDQo+IC5tYW4gZmlsZS4NCj4g DQo+IEFzIGZvciBteSBwb2ludHMgNi4gYW5kIDcuLCBtYXliZSBJIHNob3VsZCBwcm92aWRlIHNv bWUgY29udGV4dC4gRHVlIHRvDQo+IG1hbnkgaXNzdWVzIHdpdGggVEUgZmlsZXMsIHBsYXRmb3Jt cyBzdGFydGVkIGFiYW5kb25pbmcgdGhlbSBhbmQNCj4gcmV0dXJuZWQgdG8gUEUvQ09GRiBJbWFn ZXMuIEkgdGhpbmsgYSBiaWcgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgVEUgaXMNCj4gbm90IHJl YWxseSBhIHNvdW5kIGFuZCBjb21wbGV0ZSBmb3JtYXQsIGJ1dCBhIHN0cmlwcGVkIHZlcnNpb24g b2YNCj4gUEUvQ09GRiB3aXRoIG5vbmUgb2YgdGhlIG5lY2Vzc2FyeSBmaXh1cHMgYXBwbGllZC4g SSdtIGN1cnJlbnRseQ0KPiBza2V0Y2hpbmcgYSBwb3NzaWJsZSBhbHRlcm5hdGl2ZSBbNF0sIGFu ZCBJIHdvdWxkIHJlYWxseSBsaWtlIHRvIG5vdA0KPiBoYXZpbmcgdG8gc3BlY2lmeSBhIEhJSSBz ZWN0aW9uIHR5cGUsIHdoaWxlIHN0aWxsIHByZXNlcnZpbmcNCj4gY29tcGF0aWJpbGl0eSB3aXRo IGFsbCBvZiB0aGUgVUVGSSBJbWFnZSB0eXBlcyBhbmQgdXNlLWNhc2VzIFs0XS4NCj4gDQo+IFRo YW5rcyBhZ2FpbiENCj4gDQo+IEJlc3QgcmVnYXJkcywNCj4gTWFydmluDQo+IA0KPiANCj4gWzFd DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iLzdiNGE5OWJlOGEzOWMx MmQzYTdmYzRiOGRiOWYwZWFiNGFjNjg4ZDUvTWRlTW9kdWxlUGtnL0FwcGxpY2F0aW9uL0Jvb3RN YW5hZ2VyTWVudUFwDQo+IHAvQm9vdE1hbmFnZXJNZW51LmMjTDkyOS1MOTM0DQo+IA0KPiBbMl0N Cj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvN2I0YTk5YmU4YTM5YzEy ZDNhN2ZjNGI4ZGI5ZjBlYWI0YWM2ODhkNS9NZGVNb2R1bGVQa2cvTG9nby9Mb2dvRHhlLmluZiNM MjMNCj4gDQo+IFszXQ0KPiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxvYi83 YjRhOTliZThhMzljMTJkM2E3ZmM0YjhkYjlmMGVhYjRhYzY4OGQ1L1NoZWxsUGtnL0FwcGxpY2F0 aW9uL1NoZWxsL1NoZWxsTWFuUGFyc2VyLg0KPiBjI0w2NDYtTDY3MQ0KPiANCj4gWzRdDQo+IGh0 dHBzOi8vZ2l0aHViLmNvbS9taGFldXNlci9lZGsyL2Jsb2IvdWVfcG9jL01kZVBrZy9JbmNsdWRl L0luZHVzdHJ5U3RhbmRhcmQvVWVJbWFnZS5oDQo+IA0KPiAyNi4wOC4yMDIxIDAwOjM0OjEyIE1p Y2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjoNCj4gDQo+ID4gSGkg TWFydmluLA0KPiA+DQo+ID4gSSB0aGluayB0aGlzIGZlYXR1cmUgaXMgYWxyZWFkeSB0aGVyZSBh bmQgc3VwcG9ydGVkLg0KPiA+DQo+ID4gSElJIGNhbiBlaXRoZXIgYmUgaW4gYSBnbG9iYWwgdmFy aWFibGUgb3IgaW4gYSBQRS9DT0ZGIHJlc291cmNlIHNlY3Rpb24uDQo+ID4gVGhlIGRlZmF1bHQg aXMgYSBnbG9iYWwgdmFyaWFibGUgYmVjYXVzZSBISUkgd2FzIGltcGxlbWVudGVkIGJlZm9yZSB0 aGUNCj4gPiBQRS9DT0ZGIHJlc291cmNlIHNlY3Rpb24gZmVhdHVyZSB3YXMgYWRkZWQgdG8gdGhl IFVFRkkgU3BlY2lmaWNhdGlvbi4NCj4gPg0KPiA+IFRoZXJlIGlzIGFuIElORiBbRGVmaW5lc10g c2VjdGlvbiBzdGF0ZW1lbnQgdG8gZW5hYmxlIHRoZSBQRS9DT0ZGDQo+ID4gc2VjdGlvbi4gU2Vl IFVlZmlIaWlSZXNvdXJjZSBpbiB0aGUgZm9sbG93aW5nIGxpbmsuDQo+ID4NCj4gPiBodHRwczov L3RpYW5vY29yZS1kb2NzLmdpdGh1Yi5pby9lZGsyLUluZlNwZWNpZmljYXRpb24vZHJhZnQvM19l ZGtfaWlfaW5mX2ZpbGVfZm9ybWF0LzM0X1tkZWZpbmVzXV9zZWN0aW9uLmh0bWwjMzQtDQo+IGRl ZmluZXMtc2VjdGlvbg0KPiA+DQo+ID4gSG93IGlzIHlvdXIgcHJvcG9zYWwgZGlmZmVyZW50IHRo YW4gdGhpcyBleGlzdGluZyBjYXBhYmlsaXR5Pw0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4g TWlrZQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE1h cnZpbiBIw6R1c2VyDQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDI1LCAyMDIxIDI6MjEg UE0NCj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+IENjOiBBbmRyZXcgRmlzaCA8 YWZpc2hAYXBwbGUuY29tPjsgbGVpZkBudXZpYWluYy5jb207IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE5pLCBSYXkNCj4gPj4gPHJheS5uaUBpbnRlbC5j b20+OyBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8 amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBDQo+ID4+IDxoYW8uYS53dUBpbnRlbC5j b20+OyBCaSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5k b25nQGludGVsLmNvbT47IEJyZXQgQmFya2VsZXcNCj4gPj4gPEJyZXQuQmFya2VsZXdAbWljcm9z b2Z0LmNvbT47IFZpdGFseSBDaGVwdHNvdiA8dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4gPj4g U3ViamVjdDogW2VkazItZGV2ZWxdIFtSRkNdIEV4cG9zZSBISUkgcGFja2FnZSBsaXN0IHZpYSBD IHZhcmlhYmxlcw0KPiA+Pg0KPiA+PiBHb29kIGRheSBldmVyeW9uZSwNCj4gPj4NCj4gPj4gQ3Vy cmVudGx5LCB0aGUgSElJIHBhY2thZ2UgbGlzdCBpcyBzdG9yZWQgaW4gYSBQRS9DT0ZGIHJlc291 cmNlIHNlY3Rpb24NCj4gPj4gWzFdLiBJIHByb3Bvc2UgdG8gc3RvcmUgaXQgaW4gYSBDIHZhcmlh YmxlIChieXRlIGFycmF5IHdpdGggYSBwb2ludGVyIHRvDQo+ID4+IGl0IGFuZCBpdHMgc2l6ZSBl eHBvc2VkKSBpbnN0ZWFkLiBEeGVDb3JlIHdvdWxkIGhhdmUgYSBndWFyZCB0byB0b2dnbGUNCj4g Pj4gdGhlIGRlcHJlY2F0ZWQgc3VwcG9ydCBmb3IgdGhlIGF1dG9tYXRpYyBwcm90b2NvbCBpbnN0 YWxsYXRpb24uIFRoaXMgaGFzDQo+ID4+IHRoZSBmb2xsb3dpbmcgYWR2YW50YWdlczoNCj4gPj4N Cj4gPj4gMS4gRml4ZXMgQlogKGluY2wuIGZ1dHVyZSB0b29sY2hhaW5zKToNCj4gPj4gaHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTcNCj4gPj4gMi4gVW5p dmVyc2FsIG1ldGhvZCBhY3Jvc3MgYWxsIHRvb2xjaGFpbnMgYW5kIG91dHB1dCBmaWxlIGZvcm1h dHMNCj4gPj4gMy4gU2F2ZXMgZXJyb3ItcHJvbmUgcGFyc2luZyB3b3JrDQo+ID4+IDQuIFNhdmVz IHByb3RvY29sIGluc3RhbGwvbG9jYXRlIHdvcmssIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSByaWdo dCBhd2F5DQo+ID4+IDUuIFRoZSBvbWlzc2lvbiBvZiBhIGRlZGljYXRlZCBzZWN0aW9uIGNhbiBz YXZlIHNwYWNlDQo+ID4+IDYuIFRlcnNlIGZpbGUgZm9ybWF0cyBjYW4gc3VwcG9ydCB0aGlzIGFu ZCByZW1haW4gdGVyc2UgOikNCj4gPj4gNy4gUmVtb3ZlcyBhIGRlcGVuZGVuY3kgb24gdGhlIFBF L0NPRkYgZm9ybWF0IHNwZWNpZmljYWxseQ0KPiA+Pg0KPiA+PiBBICp2ZXJ5IHJvdWdoKiBQb0Mg ZGlmZiBjYW4gYmUgZm91bmQgaGVyZToNCj4gPj4gaHR0cHM6Ly9naXRodWIuY29tL21oYWV1c2Vy L2VkazIvY29tcGFyZS9tYXN0ZXIuLi53aXBfaGlpX2N2YXINCj4gPj4gSWYgdGhlIGZlZWRiYWNr IGlzIHBvc2l0aXZlLCBJIHdpbGwgY2xlYW4gaXQgdXAgb2YgY291cnNlLiBPVk1GIGJvb3RzDQo+ ID4+IHdpdGggZXZlcnl0aGluZyB3b3JraW5nIGZpbmUuDQo+ID4+DQo+ID4+IEknZCBleHBsaWNp dGx5IGxpa2UgZmVlZGJhY2sgb24gdGhlIGZvbGxvd2luZzoNCj4gPj4gQS4gSXMgdGhpcyBhbiBh Y2NlcHRhYmxlIHNvbHV0aW9uIHRvIEJaIDU1NyAoQW5kcmV3Pyk/DQo+ID4+IEIuIElzIHRoaXMg YW4gYWNjZXB0YWJsZSBzb2x1dGlvbiBmb3IgdGhlICJISUkgd29ya2Zsb3ciIChNZGVNb2R1bGUN Cj4gPj4gbWFpbnRhaW5lcnM/KT8NCj4gPj4gQy4gSXMgaXQgYWNjZXB0YWJsZSB0byBtYWtlIHN1 cHBvcnQgVUVGSS1zaWRlIHN1cHBvcnQgZm9yIHRoZSBvbGQNCj4gPj4gbWVjaGFuaXNtIG9wdGlv bmFsIChTdGV3YXJkcz8pPw0KPiA+PiBELiBDYW4gYW4gYWNjZXB0YWJsZSBhbHRlcm5hdGl2ZSBi ZSBmb3VuZCBmb3IgdGhlIHJlbW92ZWQgU2hlbGxQa2cgY29kZQ0KPiA+PiAoU2hlbGwgbWFpbnRh aW5lcnM/KT8NCj4gPj4NCj4gPj4gQXMgeW91IGNhbiBzZWUgdGhlIEJhc2VUb29scyBwYXJ0IGFs c28gaXMgcm91Z2gsIGJ1dCB0aGF0IGlzIG1vcmUgYQ0KPiA+PiBxdWVzdGlvbiBvZiAiaG93IiBy YXRoZXIgdGhhbiAid2hldGhlciIsIHNvIEknbGwgcG9zdHBvbmUgYXNraW5nIGFib3V0IGl0Lg0K PiA+Pg0KPiA+PiBUaGFua3MgZm9yIHlvdXIgdGltZSBhbmQgZmVlZGJhY2shDQo+ID4+DQo+ID4+ IEJlc3QgcmVnYXJkcywNCj4gPj4gTWFydmluDQo+ID4+DQo+ID4+DQo+ID4+IFsxXSAiT25jZSB0 aGUgaW1hZ2UgaXMgbG9hZGVkLCBMb2FkSW1hZ2UoKSBpbnN0YWxscw0KPiA+PiBFRklfSElJX1BB Q0tBR0VfTElTVF9QUk9UT0NPTCBvbiB0aGUgaGFuZGxlIGlmDQo+ID4+IHRoZSBpbWFnZSBjb250 YWlucyBhIGN1c3RvbSBQRS9DT0ZGIHJlc291cmNlIHdpdGggdGhlIHR5cGUgJ0hJSScuIg0KPiA+ PiAtIFVFRkkgMi45LCA3LjQsICJFRklfQk9PVF9TRVJWSUNFUy5Mb2FkSW1hZ2UoKSINCj4gPj4N Cj4gPj4NCj4gPj4NCj4gPj4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KPiANCg0K