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.web09.33279.1629996583175513739 for ; Thu, 26 Aug 2021 09:49:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=J6OXTbNS; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10088"; a="303363349" X-IronPort-AV: E=Sophos;i="5.84,354,1620716400"; d="scan'208";a="303363349" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Aug 2021 09:44:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,354,1620716400"; d="scan'208";a="495256037" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga008.fm.intel.com with ESMTP; 26 Aug 2021 09:44:49 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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 09:44:48 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx612.amr.corp.intel.com (10.18.126.92) 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 09:44:48 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx606.amr.corp.intel.com (10.18.126.86) 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 09:44:48 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100) 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 09:44:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nJ3aL7RrIuUN8lW4e/9OWHPqD1/A/AMzDgIcHsETcupXgrWHw7DazY2VkxnvQuIOWvtSuwmCFgbx6bsIcd+E1yQJ29yA/h7sX58qXMdKfUl9U1+gAr6Fm434Zik5a2zcgUNQymjMzWrk1ehwpQt831QD3EM7g1kTyShR2rflWAUM8sNBqHtE9cNSyncOUw9aNJR61rop4asJWCRkCTcM+LHZ+5or/ZKjyywoK0r4G2OEx0Lp5WHtPU/l/jlhavzRWY/u5N+COkIWh5LAVKqeaDDhz6028+nXaiULIrixslZ4UhkCHKE138dnAoJjb9BWNRI/kswdllF1KdZEyB9MpQ== 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=/pZf+V/zc8cn3/yyBrOWpUk28zGZttEYhSPm2cpKouk=; b=A4wfeCxqxVTjwBkx9D7qYLsQ3LpgDIukAUIQ5RpiQ/dfkeA+cquZDGhdyoiCc7E63ULoqhj+D7C0hW/bkK+QCtAi5x/7Hs+lAjxfOo1PvaJ5FvN49bqfdA/lyYWz9T94HDKJ/2WQpVoSrN9s3i1VCzFBTNA54cuDtJNh8fPS2BJ0BuPs46eK/J8uBjZz01AntbWtA/HmwbYd3DF5GorU6Xj+BoH3L8fbHeO+luPpTDpEEnOkfz2puiE8EIg0UFYGwnULNRw1OuEQoDl5curXopiC1r/ZT2HfyOB5uqzUl3776sts6UEkBL59cUKPzUQOcEpBCfuB82cCNigbL725pQ== 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=/pZf+V/zc8cn3/yyBrOWpUk28zGZttEYhSPm2cpKouk=; b=J6OXTbNSnvmW84ROFGUwaCERi24mzUsp/HRdQmWHy5xuJBrXmhW/pUKOaKEOpeh+2+hxXStFTfVo6PIGsOPcr14UcLTX/jUDOBRdf5mj+C9/TUHbfiBhe9ABf6hEmpxt3rpYpDCtYuErRxUR2+BhZtvwZ519wuRpmLd5VrACm+k= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MW3PR11MB4668.namprd11.prod.outlook.com (2603:10b6:303:54::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Thu, 26 Aug 2021 16:44:45 +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 16:44:45 +0000 From: "Michael D Kinney" To: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "tim.lewis@insyde.com" , "devel@edk2.groups.io" , "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+KIIAAGO+AgAABdICAAAhYQA== Date: Thu, 26 Aug 2021 16:44:45 +0000 Message-ID: References: <1e7201d79a93$b5386140$1fa923c0$@insyde.com> <8ea3fa57-3091-b2c5-dba2-c3eca153b697@posteo.de> In-Reply-To: <8ea3fa57-3091-b2c5-dba2-c3eca153b697@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: posteo.de; dkim=none (message not signed) header.d=none;posteo.de; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ac07d45a-8d95-4e3c-192c-08d968b0cf62 x-ms-traffictypediagnostic: MW3PR11MB4668: 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: /Ze8CTkYDfJf8sInhiis7SUxYZCJKPkh3t/Ifae0zkjPNrymmbHPmMftq4bhD6Z/Qz3I8o9dXIuiKcn4sWLNbnQWr1ncAd01VXhz3yZnC96WFUjlvCcyaJt64s5OmVKoqtMvFP2v6cx5jGPrB0vnzaeDqhfWow2wsixKsopwnPPoO/mAZasg+rpLOgZjrdiE9a3lhP0YQiiruHyyiaH53ZUW71um9ZbrofwCD3GN3EOlutDeRgxHARCvQdZhInWFg6NsCNan7V0mWVtge2td3xxWoyCB1RKTglBlSypdmfQGF45S0yrXrrH10UHM0Q+mS3g9pfe2VAnIWi0CtStowyHICo1dyhVIr3Q/yzI9lLTj5K7hRtCW/VypW3MZhdz7upHPEp0z0N6IbUdbQVliqcFxEQTM+sYc0r+QkgAbx/KRh4OC+ydzGn0PiUxWzFky3Ly+kPG6TNZS1DH+CW/ezOaVRkAEuE3SMCsbMdMBRjWEr9+QUqbZFsl8M8p/L6RMVbaciDvn+awmgi19tuPbgkgKe5Bre7q/oAJ+FDMM9F+sMb6h5V/1YKpUvKmwB5Vu7AvTHOQVWe2ccRqrZUqbEba6A4wdfLuWGitiNUBCkmL+lsps/ax468jWfaL/GSRWlyxR20vNSPjQlppNi+8s5irg4Cg/s2RNjlMRZKZ6CGKRV/n4XVgubKbG7VpHMHDVLZ5yhygQSo4h0nJShdN/3Jbx5NkukW2qUJl03To/mraG/LYD0eIOn1P8PGKGRz1L4qchTYVG1v3Ay48XxJt5vP6D6oOiqYmOgbYp06OR/tIcOBBTSXTkqirCRZnXNfEVRVnnZg2Rca5xYGfwyEyetg== 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)(376002)(396003)(366004)(136003)(346002)(2906002)(33656002)(316002)(86362001)(122000001)(15974865002)(54906003)(110136005)(8936002)(52536014)(66556008)(66446008)(66476007)(64756008)(186003)(478600001)(7696005)(26005)(71200400001)(9686003)(66574015)(4326008)(53546011)(30864003)(19627235002)(6506007)(83380400001)(38070700005)(55016002)(5660300002)(66946007)(38100700002)(76116006)(966005)(8676002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a280aW4zUDFtcExHOVljL1VLWEJYQUVMQ0VrNHRjaGVwTTYyVDltWDVPbDRy?= =?utf-8?B?TnNkMDRnMW8wSGxSWDlzZDNEcytqaTNFVzJ3V3czd1hxWmMxTWEvRlJuWTQ5?= =?utf-8?B?aFY1L3VrVUExSHpBRW1HeFZodmhuQmtIaGN6dHRtK3lyK2t1aFRjeXZma0xH?= =?utf-8?B?T3gvSW1aU0dmMnJIVlVEcTZqQ05YSld5UE55ckV5VGp2aWk3K1FYbng3azZH?= =?utf-8?B?dTdENjIycDRBc3FHNy9FbTFiY3VTOGg4T3UrVzFuNDFxNW9mdUNMYkk4cTc3?= =?utf-8?B?YTQzSXcvRXRBK0pRay9mNFdOczJrS3NkWHFYdkk5NzZzZVMvaWZHZVZybm53?= =?utf-8?B?aDdYcWh3cFVrbTd5SFdiQVlHcWk0WU0ya3hUWU5pZ0U5M0dBTG1aSStTMyts?= =?utf-8?B?SitZSlROUmRVUzU1QjBGakdCN0pKa3RqRENWUWt0RWluNk5GbHl5dFk1RENL?= =?utf-8?B?YmxLdkhqQW1mWENYeStSL3BLYmdRZFRocTZmVitpdmlmTmZaVW1OVEh3bWUv?= =?utf-8?B?SzlqYm54WEZ3QTI2SmF6M3lkYjBjS1dqdTFkc3Q5YXdxQW03N1BTamFRbmls?= =?utf-8?B?UnY0a0IxNDYwS2dJbk5vRE5wRURsRjh4ekw3OXpJUFo4M1pvOWgwUTNPeFgz?= =?utf-8?B?SVFTQnd0d0YvLzR6MzFoS2ErVEhLd3Z6LzUrazZ3UzFKUWRJdFREbkM1ME1u?= =?utf-8?B?bDhxbFM2RUNhTUEyL0VLWW5mQ3ErMFZNV0U2YnF0UDd1eFdxM2VHMG1ZZkY1?= =?utf-8?B?WWFnOEZoQnFsQXQ5Wlg0OXkzTWNKUk5GYnJuS1dUMkx5RVVlZVhDSTJqcEhD?= =?utf-8?B?dk1FMXVzaVpDK2x6VWF6bDRGb21id0o2dTJEQXpGc1lOOG5mSVl4MlpxcUpF?= =?utf-8?B?Qzg4dWx3aUU5V3gwQ3ZzRktvOFUwYmhnRldtNWY0clcyV2pUZjdYS0c3TkI4?= =?utf-8?B?RlYrNEhXNnpLRHlUU241Z0VLajV4eVdsMnloUVNvSnZyRUdMNW52a3MyZlFG?= =?utf-8?B?N2krdURwKzNVYUxzNHozeU9VY2lCQmx1WEhhdk85WURSM1VDMHhzTkR4a3ow?= =?utf-8?B?bm5teVZxL080U2t6N1FGWGs3VWh2ci9lbUVFUTBETndZTWFZYVJRR0dpekhG?= =?utf-8?B?MG9VcGtHbnl0UmJVYklhcU9LbmVqN0p1TWR5c05MRDI5eWJuSTE5SFFsV3kv?= =?utf-8?B?TzRmTFBFOXM3OVJlWS9TZSt5NDFCcDU5WXhpenV4M2ZOcTZEeGhDTDY2ZFBn?= =?utf-8?B?SjVxQTBMSjZHbWlhazdtc1F5M2VZbEVzdnpoNm9wRVdXSGhWcW5Qc21La0h5?= =?utf-8?B?WXFYSWJmR2VhRWdRUWpGWnZqUzJIRVZVcGNJOURiSlZtcEhLckdZd0d4TjM5?= =?utf-8?B?ZnNrRUZaL1prYWE2aUlncU10L0lVZ2xuMXYzODBzV2QzOFhhbk8vTFRSZTFM?= =?utf-8?B?VkszL2FwY1dkeGJvazlIcXR3aXREcjNySGV3UUhIdHBDWDBNMDBvV0l2ZmZL?= =?utf-8?B?em9SVUpETEFsVVNtMlpCZlgrUlBxcSsxdE9ydmQvdGZTRWJOZ1I0VHJUTUpQ?= =?utf-8?B?T0FJZXRNM0Q3cDZyUW5KMXRQV3BVZjNxMnRzNjExR2Y1cllWTC9IUmtoWW9u?= =?utf-8?B?VUVjNWQ4dFRDMzJZQ1NDWHpreURxQ0ZNNWY2SklVZFU4ZU5nUXQyeU1lS0Mz?= =?utf-8?B?a1dNd0VLaGF5eTV3emM0UFluNlhpTG4wME0zR3FNVXR2cWQzdVMvd0NLNnlL?= =?utf-8?Q?SWmuRAYDHs+ituAEPY=3D?= 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: ac07d45a-8d95-4e3c-192c-08d968b0cf62 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2021 16:44:45.1236 (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: nubRNHUNnqwnIbfcZLkTlWNtBX2vUZnaccuUaJfDtW4k6YJrIr15hdGzXooeshtRVX+XLcraJatgNcbjlIlXl08rLswbH7SnBRuck8q+W8Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4668 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 TWFydmluLA0KDQpUaGUgbWFpbiByZWFzb24gbW9zdCBjb21wb25lbnRzIGluIHRoZSBFREsgSUkg cmVwb3MgY29udGludWUgdG8gdXNlIHRoZSB2YXJpYWJsZXMgaXMgDQpiZWNhdXNlIHRoZXJlIGFy ZSBpbmNvbXBsZXRlIHRvb2xzIHRvIGdlbmVyYXRlIFBFL0NPRkYgcmVzb3VyY2Ugc2VjdGlvbnMg Zm9yIGFsbA0KdGhlIE9TL2NvbXBpbGVyIGNvbWJpbmF0aW9ucyB0aGF0IEVESyBJSSBzdXBwb3J0 cy4NCg0KVGhlIHByZWZlcmVuY2Ugd291bGQgYmUgdG8gdXNlIFBFL0NPRkYgcmVzb3VyY2Ugc2Vj dGlvbnMgYW5kIHdlIHdvdWxkIGhhdmUgY29udmVydGVkDQphbGwgY29tcG9uZW50cyB0byB0aGF0 IHN0eWxlIGxvbmcgYWdvIGlmIHRoZSB0b29scyBleGlzdGVkIHRvIGJlIGFsaWduZWQgd2l0aCB0 aGUNClVFRkkgU3BlY2lmaWNhdGlvbiBpbnN0ZWFkIG9mIGFuIEVESyBJSSBzcGVjaWZpYyBpbXBs ZW1lbnRhdGlvbiBmZWF0dXJlLg0KDQpBbHNvLCBpdCBpcyBub3QgYSBnb29kIGlkZWEgdG8gb25s eSBsb29rIGF0IHRoZSBvcGVuIHNvdXJjZSBFREsgSUkgcmVwb3MgdG8NCnVuZGVyc3RhbmQgaG93 IGEgZmVhdHVyZSBpcyB1c2VkLiAgVGhlcmUgYXJlIG1hbnkgZG93bnN0cmVhbSBjb25zdW1lcnMg b2YgdGhlDQpFREsgSUkgcmVwb3MuDQoNClRoZSBVRUZJIERyaXZlciBXcml0ZXIncyBHdWlkZSAq b25seSogZG9jdW1lbnRzIHRoZSBQRS9DT0ZGIHJlc291cmNlIHNlY3Rpb24NCm1ldGhvZC4NCg0K aHR0cHM6Ly90aWFub2NvcmUtZG9jcy5naXRodWIuaW8vZWRrMi1VZWZpRHJpdmVyV3JpdGVyc0d1 aWRlL2RyYWZ0LzdfZHJpdmVyX2VudHJ5X3BvaW50Lzc0X2FkZGluZ19oaWlfcGFja2FnZXNfZmVh dHVyZS5odG1sIzc0LWFkZGluZy1oaWktcGFja2FnZXMtZmVhdHVyZQ0KDQpCZXN0IHJlZ2FyZHMs DQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJ2aW4g SMOkdXNlciA8bWhhZXVzZXJAcG9zdGVvLmRlPg0KPiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDI2 LCAyMDIxIDk6MDcgQU0NCj4gVG86IHRpbS5sZXdpc0BpbnN5ZGUuY29tOyBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K PiBDYzogJ0FuZHJldyBGaXNoJyA8YWZpc2hAYXBwbGUuY29tPjsgbGVpZkBudXZpYWluYy5jb207 IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGlu dGVsLmNvbT47DQo+IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhh byBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBCaSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29t PjsgRG9uZywgRXJpYw0KPiA8ZXJpYy5kb25nQGludGVsLmNvbT47ICdCcmV0IEJhcmtlbGV3JyA8 QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPjsgJ1ZpdGFseSBDaGVwdHNvdicgPHZpdDk2OTZA cHJvdG9ubWFpbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1JGQ10gRXhwb3Nl IEhJSSBwYWNrYWdlIGxpc3QgdmlhIEMgdmFyaWFibGVzDQo+IA0KPiBIZXkgVGltLA0KPiANCj4g SW50ZXJlc3RpbmcsIGRvIHlvdSBoYXBwZW4gdG8gaGF2ZSBzb21lIHRvb2wgb3IgY29kZSB0aGF0 IHBlcmZvcm1zIHN1Y2gNCj4gZWRpdHMgYXQgaGFuZCB0byB0YWtlIGEgbG9vayBhdD8gU2VlbXMg bGlrZSBtb3N0IG1vZHVsZXMgYWxyZWFkeSB1c2UNCj4gdmFyaWFibGVzIGFuZCB0aHVzIGNhbm5v dCBiZSBtb2RpZmllZCBpbiBzdWNoIGEgd2F5IGV2ZW4gcmlnaHQgbm93Pw0KPiANCj4gVGhhdCdz IHRoZSBraW5kIG9mIGluZm9ybWF0aW9uIEkgYW0gbG9va2luZyBmb3IsIHRoYW5rcyBhIGxvdCEN Cj4gDQo+IEJlc3QgcmVnYXJkcywNCj4gTWFydmluDQo+IA0KPiBPbiAyNi8wOC8yMDIxIDE4OjAx LCB0aW0ubGV3aXNAaW5zeWRlLmNvbSB3cm90ZToNCj4gPiBIaSBNYXJ2aW4gLS0NCj4gPg0KPiA+ IEkgd291bGQgbGlrZSB0byBhZGQgc29tZSBoaXN0b3JpY2FsIHBlcnNwZWN0aXZlIG9uIHRoaXMu IE9uZSBvZiB0aGUgZGVzaWduIHJlcXVpcmVtZW50cyBiYWNrIHdoZW4gSElJIHdhcyBmaXJzdA0K PiBpbnRyb2R1Y2VkIGludG8gdGhlIFVFRkkgc3BlY2lmaWNhdGlvbiBhZnRlciBJbnRlbCdzIGlu aXRpYWwgY29udHJpYnV0aW9uIHdhcyB0aGF0IG9mIGJpbmFyeSBlZGl0YWJpbGl0eS4gSW4gb3Jk ZXIgdG8gYmUNCj4gYWJsZSB0byByZWxpYWJseSBmaW5kLCBleHRyYWN0IGFuZCB0aGVuIHJlLWlu c2VydCB0aGUgSElJIGRhdGEgaW50byB0aGUgYmluYXJ5LCBpdCBuZWVkZWQgdG8gYmUgZGlzY292 ZXJhYmxlIGFuZCBub3QNCj4gYWZmZWN0IHRoZSBvZmZzZXRzIG9mIHRoZSBjb2RlIGFuZCBkYXRh IGluIHRoZSBiaW5hcnkuDQo+ID4NCj4gPiBXaGlsZSBpdCB3YXMgcG9zc2libGUgdG8gcHV0IHNv bWUgc29ydCBvZiBzaWduYXR1cmUgaW4gdGhlIHJlYWQtb25seSBkYXRhIHNlY3Rpb25zIG9mIHRo ZSBiaW5hcnkgYW5kIGxlYXZlIHBhZGRpbmcgZm9yDQo+IHBvc3NpYmxlIGZ1dHVyZSBlZGl0cywg aXQgd2FzIGZlbHQgdGhhdCB1c2luZyBhIFBFL0NPRkYgc2VjdGlvbiBzaW1pbGFyIHRvIHRoZSBy ZXNvdXJjZSBzZWN0aW9ucyB3YXMgYmV0dGVyLiBSZXNvdXJjZQ0KPiBzZWN0aW9ucyBhcmUgY29t bW9ubHkgaW4gdXNlIGZvciBQRS9DT0ZGIGZpbGVzIChpbiBXaW5kb3dzKSBhbmQgdGhlIHNpbWls YXIgaWRlYSBleGlzdGVkIGluIHRoZSB0aGVuLWV4dGFudCBNYWMgYmluYXJ5DQo+IGZvcm1hdCAo cmVzb3VyY2UgZm9yaz8pLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4gVGltIExld2lzDQo+ ID4gQ1RPLCBJbnN5ZGUgU29mdHdhcmUNCj4gPiB3d3cuaW5zeWRlLmNvbQ0KPiA+DQo+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8 ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBNaWNoYWVsIEQgS2lubmV5DQo+ID4g U2VudDogVGh1cnNkYXksIEF1Z3VzdCAyNiwgMjAyMSA3OjM3IEFNDQo+ID4gVG86IGRldmVsQGVk azIuZ3JvdXBzLmlvOyBtaGFldXNlckBwb3N0ZW8uZGU7IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxl LmNvbT47IGxlaWZAbnV2aWFpbmMuY29tOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgR2Fv LCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+Ow0KPiBXYW5nLCBKaWFuIEogPGppYW4u ai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgQmksIERh bmRhbiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IERvbmcsIEVyaWMNCj4gPGVyaWMuZG9uZ0BpbnRl bC5jb20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBWaXRh bHkgQ2hlcHRzb3YgPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtl ZGsyLWRldmVsXSBbUkZDXSBFeHBvc2UgSElJIHBhY2thZ2UgbGlzdCB2aWEgQyB2YXJpYWJsZXMN Cj4gPg0KPiA+IE1hcnZpbiwNCj4gPg0KPiA+IE9uZSBjb25zdHJhaW50IGluIHRoaXMgZGlzY3Vz c2lvbiBpcyB0aGF0IHRoZSBISUkgY29udGVudCBpbiBhIFBFL0NPRkYgcmVzb3VyY2Ugc2VjdGlv biBpcyBkZWZpbmVkIGluIHRoZSBVRUZJDQo+IFNwZWNpZmljYXRpb24sIFdoaWNoIG1lYW5zIFVF RkkgQXBwcyBhbmQgVUVGSSBEcml2ZXJzIGZyb20gbWVkaWEgYW5kIG9wdGlvbiBST01zIHRoYXQg YXJlIG5vdCBwYXJ0IG9mIHRoZSBzeXN0ZW0gRlcgaW1hZ2UNCj4gYXJlIGFsbG93ZWQgdG8gdXNl IHRoaXMgZmVhdHVyZSwgIFRoaXMgbWVhbnMgdGhlIHN5c3RlbSBGVyBQRS9DT0ZGIGxvYWRlciBt dXN0IHN1cHBvcnQgbG9hZGluZyBISUkgY29udGVudCBmcm9tIHRoaXMNCj4gUEUvQ09GRiByZXNv dXJjZSBzZWN0aW9uIHRvIGJlIFVFRkkgY29uZm9ybWFudC4gIFNvIHdlIGNhbm5vdCByZW1vdmUg dGhpcyBmZWF0dXJlIGZyb20gdGhlIFBFL0NPRkYgbG9hZGVyIHdpdGhvdXQgY2hhbmdlcw0KPiB0 byB0aGUgVUVGSSBTcGVjaWZpY2F0aW9uLiAgRXZlbiBpZiBjaGFuZ2VzIHRvIHRoZSBVRUZJIFNw ZWNpZmljYXRpb24gd2UgbWFkZSwgd2Ugd291bGQgaGF2ZSB0byBjb250aW51ZSB0byBzdXBwb3J0 IHRoaXMNCj4gZmVhdHVyZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5n IFVFRkkgQXBwcy9Ecml2ZXJzIHRoYXQgbWF5IGJlIHVzaW5nIHRoaXMgZmVhdHVyZS4NCj4gPg0K PiA+IFRoYW5rcywNCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZiBNYXJ2aW4NCj4gPj4gSMOkdXNlcg0KPiA+PiBTZW50OiBUaHVy c2RheSwgQXVndXN0IDI2LCAyMDIxIDE6NTEgQU0NCj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+ID4+IENjOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxl LmNvbT47DQo+ID4+IGxlaWZAbnV2aWFpbmMuY29tOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29t PjsgR2FvLCBaaGljaGFvDQo+ID4+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFu IEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8NCj4gPj4gQSA8aGFvLmEud3VAaW50 ZWwuY29tPjsgQmksIERhbmRhbiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IERvbmcsIEVyaWMNCj4g Pj4gPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1p Y3Jvc29mdC5jb20+Ow0KPiA+PiBWaXRhbHkgQ2hlcHRzb3YgPHZpdDk2OTZAcHJvdG9ubWFpbC5j b20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1JGQ10gRXhwb3NlIEhJSSBwYWNr YWdlIGxpc3QgdmlhIEMNCj4gPj4gdmFyaWFibGVzDQo+ID4+DQo+ID4+IEhleSBNaWtlLA0KPiA+ Pg0KPiA+PiBUaGFua3MgZm9yIHlvdXIgcmVwbHkhDQo+ID4+DQo+ID4+IFdlbGwsIHRoaXMgc3dp dGNoIGlzIG5vdCB3ZWxsLWRvY3VtZW50ZWQuIExvb2tpbmcgbm93IGF0IGJvdGggdGhlDQo+ID4+ IGdlbmVyYXRpb24gY29kZSBhbmQgdGhlIGVtaXR0ZWQgY29kZSwgaXQgZG9lcyBub3QgZ2VuZXJh dGUgYSBwYWNrYWdlDQo+ID4+IGxpc3QgbGlrZSBteSBjb2RlIGRvZXMsIGJ1dCBzZXBhcmF0ZSBk YXRhIHZhcmlhYmxlcyAoc3RyaW5ncyBhbmQNCj4gPj4gaW1hZ2VzKSB0aGF0IGNhbm5vdCBlYXNp bHkgYmUgcGFzc2VkIHRvIEhpaURhdGFiYXNlIGFzLWlzLiBIb3dldmVyDQo+ID4+IGFwcGFyZW50 bHkgdGhlcmUgYXJlIGRyaXZlcnMgdGhhdCB1c2UgdGhpcyBmdW5jdGlvbmFsaXR5IHN1Y2Nlc3Nm dWxseQ0KPiA+PiBieSBjb21wb3NpbmcgdGhlIHBhY2thZ2UgbGlzdCBhdCBydW50aW1lIFsxXS4N Cj4gPj4NCj4gPj4gTG9va2luZyB3aXRoIHRoaXMgaW5mb3JtYXRpb24gbm93IGF0IHRoZSBwYXR0 ZXJuIG9mIHVzaW5nIEhJSSBDDQo+ID4+IHZhcmlhYmxlcyAod2hpY2ggSSBkaWQgbm90IGtub3cg ZXhpc3RlZCBiZWZvcmUpIHZzIHRoZSBQRS9DT0ZGIEhJSQ0KPiA+PiBzZWN0aW9uLCBtb3N0IHRo YXQgdXNlIGxhdHRlciBhcmUgU2hlbGwgYXBwbGljYXRpb25zLCB3aGljaCBJIGd1ZXNzDQo+ID4+ IG1lYW5zIHRoZSBzZWN0aW9uIGhhcyBhY3R1YWxseSBiZWVuIGludHJvZHVjZWQgdG8gcmVzb2x2 ZSBELj8gVGhlcmUNCj4gPj4gYXJlIGV4Y2VwdGlvbnMgc3VjaCBhcyBMb2dvRHhlIFsyXSwgd2hp Y2ggdXNlIHRoZSBQRS9DT0ZGIHNlY3Rpb24gd2hpbGUgRC4NCj4gPj4gaXMgbm90IGEgcHJvYmxl bSwgaGVuY2UgSSBnb3QgY29uZnVzZWQsIHNvcnJ5LiBJIHRoaW5rIHRoZXNlIG1vZHVsZXMNCj4g Pj4gc2hvdWxkIGJlIHVwZGF0ZWQgaW4gYW55IGNhc2UuIERvIHlvdSBhZ3JlZT8NCj4gPj4NCj4g Pj4gU28sIGZvciBtb2R1bGVzIHRoYXQgdXNlIEMgdmFyaWFibGVzIGFscmVhZHksIG15IHBhdGNo IHdvdWxkIHNhdmUgc29tZQ0KPiA+PiBydW50aW1lIGdlbmVyYXRpb24gY29kZSBhbmQgZHluYW1p YyBtZW1vcnkgYWxsb2NhdGlvbiBmb3IgdGhlIEhJSQ0KPiA+PiBwYWNrYWdlIGxpc3QuIFRoaXMg d2FzIG5vdCBteSBnb2FsIChhcyBJIHNhaWQsIEkgZGlkbid0IHJlYWxpc2UgSElJIEMNCj4gPj4g dmFyaWFibGVzIGFscmVhZHkgd2VyZSBhIHRoaW5nIGluIHRoZSBmaXJzdCBwbGFjZSksIGJ1dCB0 aGUgY2hhbmdlcw0KPiA+PiBhcmUgc21hbGwgZW5vdWdoIHRoYXQgaXQgbWlnaHQgYmUgd29ydGgg Y29uc2lkZXJpbmcgYW55d2F5LCBpbiBteSBvcGluaW9uLg0KPiA+PiBJZiBhIEhJSSBwYWNrYWdl IGxpc3QgaXMgZ2VuZXJhdGVkIGZvciBib3RoIFNoZWxsIGFuZCBub24tU2hlbGwgYXBwcywNCj4g Pj4gdGhpcyBhbHNvIG1lYW5zIGNvZGUgcGF0aHMgY2FuIGJlIHVuaWZpZWQuIEZvciBleGFtcGxl LCB0aGVyZSBjb3VsZCBiZQ0KPiA+PiBhIGxpYnJhcnkgY2xhc3Mgd2l0aCBjb25zdHJ1Y3RvciBh bmQgZGVzdHJ1Y3RvciB0byBhZGQvcmVtb3ZlIHBhY2thZ2VzDQo+ID4+IGZyb20gdGhlIEhJSSBk YXRhYmFzZSBmb3IgYWxsIG1vZHVsZXMgdGhhdCB1c2Ugc3VjaCwgU2hlbGwgb3Igbm90LiBGb3IN Cj4gPj4gQmFzZVRvb2xzIGl0IG1lYW5zIHRoYXQgdGhlcmUgaXMgbm8gcmVhbCBuZWVkIGZvciBz ZXBhcmF0ZSBQeXRob24gYW5kDQo+ID4+IEMgcGF0aHMgYXMgaWRlYWxseSB0aGV5IGp1c3QgZ2Vu ZXJhdGUgdGhlIGV4YWN0IHNhbWUgZGF0YS4NCj4gPj4NCj4gPj4gTm93IHRvIEQuLCB0aGUgb25s eSB1c2FnZSBmb3IgdGhpcyBzZWVtcyB0byBiZSB0aGF0IFNoZWxsIGNhbiBsb2NhdGUNCj4gPj4g dGhlIGhlbHAgdGV4dCBpbiB0aGUgZXhlY3V0YWJsZSB3aXRob3V0IGV4ZWN1dGluZyBpdCwgeWV0 IGl0IGlzIGZ1bGx5DQo+ID4+IGxvYWRlZCBhbnl3YXkgWzNdLiBUbyBiZSBob25lc3QsIEkgZmlu ZCBpdCBoYXJkIHRvIGp1c3RpZnkgbG9hZGluZyBhbg0KPiA+PiBleGVjdXRhYmxlIChQRS9DT0ZG IGxvYWRpbmcsIG1lbW9yeSBwZXJtaXNzaW9uIGFwcGxpY2F0aW9uLCB0aGUgZnVsbA0KPiA+PiBw cm9jZXNzKSB0byByZXRyaWV2ZSBhIGhlbHAgdGV4dCBhbmQgdGhlbiB1bmxvYWRpbmcgaXQgYWdh aW4sDQo+ID4+IGVzcGVjaWFsbHkgd2l0aCB0aGUgSElJIGNvZGUgYmVpbmcgb24gYSBjb3JlIGRp c3BhdGNoZXIgbGV2ZWwuIDEuIHRvDQo+ID4+IDcuIHN0aWxsIGhvbGQgdHJ1ZSBpbiBteSBvcGlu aW9uLiBXYXMgdGhlcmUgYW55IGRpc2N1c3Npb24gSSBjb3VsZA0KPiA+PiByZWFkIHRocm91Z2gg d2h5IFNoZWxsIGFwcHMgY2Fubm90IHNpbXBseSBzdXBwb3J0IGEgIi0taGVscCIgb3IgIi0/Ig0K PiA+PiBjb21tYW5kIGFuZCBvdXRwdXQgdGhlIHN0cmluZyB0aGVtc2VsdmVzPyBQdXNoaW5nIHRo ZSBidXJkZW4gdG8gdGhlDQo+ID4+IFNoZWxsIGFwcHMgZG9lcyBwcmVzZXJ2ZSB0aGUgImRyYXdi YWNrIiB0aGF0IGEgZnVsbCBsb2FkaW5nIGlzDQo+ID4+IHJlcXVpcmVkICh3aGljaCBob25lc3Rs eSBkb2VzIG5vdCBtYXR0ZXIgZm9yIGEgZGVidWdnaW5nIGFwcGxpY2F0aW9uDQo+ID4+IGxpa2Ug U2hlbGwpLCBob3dldmVyIGl0IGRvZXMgcmVsaWV2ZSB0aGUgYnVyZGVuIG9mIFBFL0NPRkYgSElJ IHBhcnNpbmcNCj4gPj4gZnJvbSB0aGUgY29yZSBkaXNwYXRjaGVyICh3aGljaCBtYXR0ZXJzIGEg bG90IGluIG15IG9waW5pb24gdG8ga2VlcA0KPiA+PiB0aGUgY29yZSBzaW1wbGUpLiBJdCB3b3Vs ZCBzaW1wbHkgYmUgYSBub3JtYWwgU2hlbGwgYXBwIGV4ZWN1dGlvbiBhcw0KPiA+PiBhbnkgb3Ro ZXIgaG93ZXZlci4gSWYgc29tZW9uZSB3YW50cyB0byBhdm9pZCB0aGUgUEUvQ09GRiBidXJkZW4N Cj4gPj4gYWx0b2dldGhlciwgdGhleSBjYW4gc3RpbGwgcHJvdmlkZSBhIC5tYW4gZmlsZS4NCj4g Pj4NCj4gPj4gQXMgZm9yIG15IHBvaW50cyA2LiBhbmQgNy4sIG1heWJlIEkgc2hvdWxkIHByb3Zp ZGUgc29tZSBjb250ZXh0LiBEdWUNCj4gPj4gdG8gbWFueSBpc3N1ZXMgd2l0aCBURSBmaWxlcywg cGxhdGZvcm1zIHN0YXJ0ZWQgYWJhbmRvbmluZyB0aGVtIGFuZA0KPiA+PiByZXR1cm5lZCB0byBQ RS9DT0ZGIEltYWdlcy4gSSB0aGluayBhIGJpZyByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCBURQ0K PiA+PiBpcyBub3QgcmVhbGx5IGEgc291bmQgYW5kIGNvbXBsZXRlIGZvcm1hdCwgYnV0IGEgc3Ry aXBwZWQgdmVyc2lvbiBvZg0KPiA+PiBQRS9DT0ZGIHdpdGggbm9uZSBvZiB0aGUgbmVjZXNzYXJ5 IGZpeHVwcyBhcHBsaWVkLiBJJ20gY3VycmVudGx5DQo+ID4+IHNrZXRjaGluZyBhIHBvc3NpYmxl IGFsdGVybmF0aXZlIFs0XSwgYW5kIEkgd291bGQgcmVhbGx5IGxpa2UgdG8gbm90DQo+ID4+IGhh dmluZyB0byBzcGVjaWZ5IGEgSElJIHNlY3Rpb24gdHlwZSwgd2hpbGUgc3RpbGwgcHJlc2Vydmlu Zw0KPiA+PiBjb21wYXRpYmlsaXR5IHdpdGggYWxsIG9mIHRoZSBVRUZJIEltYWdlIHR5cGVzIGFu ZCB1c2UtY2FzZXMgWzRdLg0KPiA+Pg0KPiA+PiBUaGFua3MgYWdhaW4hDQo+ID4+DQo+ID4+IEJl c3QgcmVnYXJkcywNCj4gPj4gTWFydmluDQo+ID4+DQo+ID4+DQo+ID4+IFsxXQ0KPiA+PiBodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxvYi83YjRhOTliZThhMzljMTJkM2E3ZmM0 YjhkYjlmMGVhDQo+ID4+IGI0YWM2ODhkNS9NZGVNb2R1bGVQa2cvQXBwbGljYXRpb24vQm9vdE1h bmFnZXJNZW51QXANCj4gPj4gcC9Cb290TWFuYWdlck1lbnUuYyNMOTI5LUw5MzQNCj4gPj4NCj4g Pj4gWzJdDQo+ID4+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iLzdiNGE5 OWJlOGEzOWMxMmQzYTdmYzRiOGRiOWYwZWENCj4gPj4gYjRhYzY4OGQ1L01kZU1vZHVsZVBrZy9M b2dvL0xvZ29EeGUuaW5mI0wyMw0KPiA+Pg0KPiA+PiBbM10NCj4gPj4NCj4gaHR0cHM6Ly9naXRo dWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvN2I0YTk5YmU4YTM5YzEyZDNhN2ZjNGI4ZGI5ZjBl YWI0YWM2ODhkNS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbE1hblBhcnNlci4NCj4g Pj4gYyNMNjQ2LUw2NzENCj4gPj4NCj4gPj4gWzRdDQo+ID4+IGh0dHBzOi8vZ2l0aHViLmNvbS9t aGFldXNlci9lZGsyL2Jsb2IvdWVfcG9jL01kZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3QNCj4gPj4g YW5kYXJkL1VlSW1hZ2UuaA0KPiA+Pg0KPiA+PiAyNi4wOC4yMDIxIDAwOjM0OjEyIE1pY2hhZWwg RCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjoNCj4gPj4NCj4gPj4+IEhpIE1h cnZpbiwNCj4gPj4+DQo+ID4+PiBJIHRoaW5rIHRoaXMgZmVhdHVyZSBpcyBhbHJlYWR5IHRoZXJl IGFuZCBzdXBwb3J0ZWQuDQo+ID4+Pg0KPiA+Pj4gSElJIGNhbiBlaXRoZXIgYmUgaW4gYSBnbG9i YWwgdmFyaWFibGUgb3IgaW4gYSBQRS9DT0ZGIHJlc291cmNlIHNlY3Rpb24uDQo+ID4+PiBUaGUg ZGVmYXVsdCBpcyBhIGdsb2JhbCB2YXJpYWJsZSBiZWNhdXNlIEhJSSB3YXMgaW1wbGVtZW50ZWQg YmVmb3JlDQo+ID4+PiB0aGUgUEUvQ09GRiByZXNvdXJjZSBzZWN0aW9uIGZlYXR1cmUgd2FzIGFk ZGVkIHRvIHRoZSBVRUZJIFNwZWNpZmljYXRpb24uDQo+ID4+Pg0KPiA+Pj4gVGhlcmUgaXMgYW4g SU5GIFtEZWZpbmVzXSBzZWN0aW9uIHN0YXRlbWVudCB0byBlbmFibGUgdGhlIFBFL0NPRkYNCj4g Pj4+IHNlY3Rpb24uIFNlZSBVZWZpSGlpUmVzb3VyY2UgaW4gdGhlIGZvbGxvd2luZyBsaW5rLg0K PiA+Pj4NCj4gPj4+IGh0dHBzOi8vdGlhbm9jb3JlLWRvY3MuZ2l0aHViLmlvL2VkazItSW5mU3Bl Y2lmaWNhdGlvbi9kcmFmdC8zX2Vka19pDQo+ID4+PiBpX2luZl9maWxlX2Zvcm1hdC8zNF9bZGVm aW5lc11fc2VjdGlvbi5odG1sIzM0LQ0KPiA+PiBkZWZpbmVzLXNlY3Rpb24NCj4gPj4+IEhvdyBp cyB5b3VyIHByb3Bvc2FsIGRpZmZlcmVudCB0aGFuIHRoaXMgZXhpc3RpbmcgY2FwYWJpbGl0eT8N Cj4gPj4+DQo+ID4+PiBUaGFua3MsDQo+ID4+Pg0KPiA+Pj4gTWlrZQ0KPiA+Pj4NCj4gPj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBz LmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ID4+Pj4gTWFydmluIEjD pHVzZXINCj4gPj4+PiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyNSwgMjAyMSAyOjIxIFBNDQo+ ID4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+Pj4gQ2M6IEFuZHJldyBGaXNoIDxh ZmlzaEBhcHBsZS5jb20+OyBsZWlmQG51dmlhaW5jLmNvbTsgS2lubmV5LA0KPiA+Pj4+IE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwu Y29tPjsNCj4gPj4+PiBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IFdhbmcs IEppYW4gSg0KPiA+Pj4+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBXdSwgSGFvIEEgPGhhby5h Lnd1QGludGVsLmNvbT47IEJpLCBEYW5kYW4NCj4gPj4+PiA8ZGFuZGFuLmJpQGludGVsLmNvbT47 IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBCcmV0DQo+ID4+Pj4gQmFya2VsZXcg PEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT47IFZpdGFseSBDaGVwdHNvdg0KPiA+Pj4+IDx2 aXQ5Njk2QHByb3Rvbm1haWwuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUkZD XSBFeHBvc2UgSElJIHBhY2thZ2UgbGlzdCB2aWEgQyB2YXJpYWJsZXMNCj4gPj4+Pg0KPiA+Pj4+ IEdvb2QgZGF5IGV2ZXJ5b25lLA0KPiA+Pj4+DQo+ID4+Pj4gQ3VycmVudGx5LCB0aGUgSElJIHBh Y2thZ2UgbGlzdCBpcyBzdG9yZWQgaW4gYSBQRS9DT0ZGIHJlc291cmNlDQo+ID4+Pj4gc2VjdGlv biBbMV0uIEkgcHJvcG9zZSB0byBzdG9yZSBpdCBpbiBhIEMgdmFyaWFibGUgKGJ5dGUgYXJyYXkg d2l0aA0KPiA+Pj4+IGEgcG9pbnRlciB0byBpdCBhbmQgaXRzIHNpemUgZXhwb3NlZCkgaW5zdGVh ZC4gRHhlQ29yZSB3b3VsZCBoYXZlIGENCj4gPj4+PiBndWFyZCB0byB0b2dnbGUgdGhlIGRlcHJl Y2F0ZWQgc3VwcG9ydCBmb3IgdGhlIGF1dG9tYXRpYyBwcm90b2NvbA0KPiA+Pj4+IGluc3RhbGxh dGlvbi4gVGhpcyBoYXMgdGhlIGZvbGxvd2luZyBhZHZhbnRhZ2VzOg0KPiA+Pj4+DQo+ID4+Pj4g MS4gRml4ZXMgQlogKGluY2wuIGZ1dHVyZSB0b29sY2hhaW5zKToNCj4gPj4+PiBodHRwczovL2J1 Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1Nw0KPiA+Pj4+IDIuIFVuaXZl cnNhbCBtZXRob2QgYWNyb3NzIGFsbCB0b29sY2hhaW5zIGFuZCBvdXRwdXQgZmlsZSBmb3JtYXRz DQo+ID4+Pj4gMy4gU2F2ZXMgZXJyb3ItcHJvbmUgcGFyc2luZyB3b3JrIDQuIFNhdmVzIHByb3Rv Y29sIGluc3RhbGwvbG9jYXRlDQo+ID4+Pj4gd29yaywgdGhlIGRhdGEgaXMgYXZhaWxhYmxlIHJp Z2h0IGF3YXkgNS4gVGhlIG9taXNzaW9uIG9mIGENCj4gPj4+PiBkZWRpY2F0ZWQgc2VjdGlvbiBj YW4gc2F2ZSBzcGFjZSA2LiBUZXJzZSBmaWxlIGZvcm1hdHMgY2FuIHN1cHBvcnQNCj4gPj4+PiB0 aGlzIGFuZCByZW1haW4gdGVyc2UgOikgNy4gUmVtb3ZlcyBhIGRlcGVuZGVuY3kgb24gdGhlIFBF L0NPRkYNCj4gPj4+PiBmb3JtYXQgc3BlY2lmaWNhbGx5DQo+ID4+Pj4NCj4gPj4+PiBBICp2ZXJ5 IHJvdWdoKiBQb0MgZGlmZiBjYW4gYmUgZm91bmQgaGVyZToNCj4gPj4+PiBodHRwczovL2dpdGh1 Yi5jb20vbWhhZXVzZXIvZWRrMi9jb21wYXJlL21hc3Rlci4uLndpcF9oaWlfY3Zhcg0KPiA+Pj4+ IElmIHRoZSBmZWVkYmFjayBpcyBwb3NpdGl2ZSwgSSB3aWxsIGNsZWFuIGl0IHVwIG9mIGNvdXJz ZS4gT1ZNRg0KPiA+Pj4+IGJvb3RzIHdpdGggZXZlcnl0aGluZyB3b3JraW5nIGZpbmUuDQo+ID4+ Pj4NCj4gPj4+PiBJJ2QgZXhwbGljaXRseSBsaWtlIGZlZWRiYWNrIG9uIHRoZSBmb2xsb3dpbmc6 DQo+ID4+Pj4gQS4gSXMgdGhpcyBhbiBhY2NlcHRhYmxlIHNvbHV0aW9uIHRvIEJaIDU1NyAoQW5k cmV3Pyk/DQo+ID4+Pj4gQi4gSXMgdGhpcyBhbiBhY2NlcHRhYmxlIHNvbHV0aW9uIGZvciB0aGUg IkhJSSB3b3JrZmxvdyIgKE1kZU1vZHVsZQ0KPiA+Pj4+IG1haW50YWluZXJzPyk/DQo+ID4+Pj4g Qy4gSXMgaXQgYWNjZXB0YWJsZSB0byBtYWtlIHN1cHBvcnQgVUVGSS1zaWRlIHN1cHBvcnQgZm9y IHRoZSBvbGQNCj4gPj4+PiBtZWNoYW5pc20gb3B0aW9uYWwgKFN0ZXdhcmRzPyk/DQo+ID4+Pj4g RC4gQ2FuIGFuIGFjY2VwdGFibGUgYWx0ZXJuYXRpdmUgYmUgZm91bmQgZm9yIHRoZSByZW1vdmVk IFNoZWxsUGtnDQo+ID4+Pj4gY29kZSAoU2hlbGwgbWFpbnRhaW5lcnM/KT8NCj4gPj4+Pg0KPiA+ Pj4+IEFzIHlvdSBjYW4gc2VlIHRoZSBCYXNlVG9vbHMgcGFydCBhbHNvIGlzIHJvdWdoLCBidXQg dGhhdCBpcyBtb3JlIGENCj4gPj4+PiBxdWVzdGlvbiBvZiAiaG93IiByYXRoZXIgdGhhbiAid2hl dGhlciIsIHNvIEknbGwgcG9zdHBvbmUgYXNraW5nIGFib3V0IGl0Lg0KPiA+Pj4+DQo+ID4+Pj4g VGhhbmtzIGZvciB5b3VyIHRpbWUgYW5kIGZlZWRiYWNrIQ0KPiA+Pj4+DQo+ID4+Pj4gQmVzdCBy ZWdhcmRzLA0KPiA+Pj4+IE1hcnZpbg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBbMV0gIk9uY2Ug dGhlIGltYWdlIGlzIGxvYWRlZCwgTG9hZEltYWdlKCkgaW5zdGFsbHMNCj4gPj4+PiBFRklfSElJ X1BBQ0tBR0VfTElTVF9QUk9UT0NPTCBvbiB0aGUgaGFuZGxlIGlmIHRoZSBpbWFnZSBjb250YWlu cyBhDQo+ID4+Pj4gY3VzdG9tIFBFL0NPRkYgcmVzb3VyY2Ugd2l0aCB0aGUgdHlwZSAnSElJJy4i DQo+ID4+Pj4gLSBVRUZJIDIuOSwgNy40LCAiRUZJX0JPT1RfU0VSVklDRVMuTG9hZEltYWdlKCki DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4g Pj4NCj4gPj4NCj4gPj4NCj4gPg0KPiA+DQo+ID4gDQo+ID4NCj4gPg0KPiA+DQoNCg==