From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web08.971.1664563943237386577 for ; Fri, 30 Sep 2022 11:52:24 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ljAIb0R2; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664563943; x=1696099943; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=k0342Cq/C2lFli18Si1LF34dff5g4kmMbi6lNSebgmE=; b=ljAIb0R2wDucNvHY0T/YArAOVgDURY5LlZXew6TnVfUFmpMLj4USvque PWIYGkSHUVBJZYNnRjsUBawSpYZdHZ8oAXZ19F47YaWG9DWBatVDNGNM5 KtQjEazwKc88RJpRg5chK1mb2H9nosL+utHkYmhReGqrQmZRLLzdr8qlE 4vZ9ftVfrghK7T50DgyxEvpN8p0B7WP/ZupCmZLSvvbahvXXwAWhm4utM LUvWSN8xiUrPeuFylryeeow3AbSxcK3Q89PSD+jsoo3QwCQse/XOIKbZa dkyWPVYka7WLEshxKE8Ex7pr57umSqX/xnhnmCNYJbJ+4Zi5/pngnMCX9 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10486"; a="328651249" X-IronPort-AV: E=Sophos;i="5.93,358,1654585200"; d="scan'208";a="328651249" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2022 11:52:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10486"; a="600512942" X-IronPort-AV: E=Sophos;i="5.93,358,1654585200"; d="scan'208";a="600512942" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga006.jf.intel.com with ESMTP; 30 Sep 2022 11:52:21 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 30 Sep 2022 11:52:21 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 30 Sep 2022 11:52:20 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Fri, 30 Sep 2022 11:52:20 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Fri, 30 Sep 2022 11:52:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RW6CeiM8vYZlxZayKfni8TBLabCOYnGQK/53zy6VPee3QCHYoD64om4ZIA4kKTAUek8nm0T3D3H/lScGfPZpmg8ZIwniQPr45TThwNjaOWAGki2A5H3WDlMFS9D/npnC09wa9a77+hcGBClcJZMZJPs2IgN8Lv32RUPt1JMVTGVK0QKBHG6IbI5pO3VOLlFd4Mte3SxNMsFCmExkfFyKFmJwQgmebiqi6rExRvU5MDa9qtt8vyc/PXJBOOjk3Db1yVlBKXR0Hswf/fvKUhTrNNhmpy1Csn9YHRhEOhPQkzujldN8RRhPHNerxHkilGuoSce0PrQb6pRRteAxro1i/Q== 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=k0342Cq/C2lFli18Si1LF34dff5g4kmMbi6lNSebgmE=; b=V5bexmPuikv+O948p93Bv9L6OsFdEAfFgJHud5ryXKfw8ZxdGAkiZprFgcwcjSHF86ag/pM1grNeqQdMzlaotJLwWoGcl78z4pmtMtmIPOddBs5r47wH0g4fdB9L03cuc2xYOxqKX9WtnLNdWKlvgYKeaX2O0iJ7DxsFucFZkdYtdK1SH0eVXOmYHyctsP0LolawPrbhg6xOQu3WRKWNrUsrfd3ljlGuxrxANjHT21VNA1RxSukPV46zBeLo2dK02A9t1xYk0VMo2MOGvU7ULITcANme3BA+9RI8mHYhsDOnPJ/MHsGmwnh4nAvj68h8IZlfwQ/knSLTwXjc3O2r4g== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by PH7PR11MB5888.namprd11.prod.outlook.com (2603:10b6:510:137::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Fri, 30 Sep 2022 18:52:13 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ce64:b1b4:e087:4cc2]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ce64:b1b4:e087:4cc2%8]) with mapi id 15.20.5676.023; Fri, 30 Sep 2022 18:52:13 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "quic_llindhol@quicinc.com" , "Chang, Abner" , "Ni, Ray" , "Attar, AbdulLateef (Abdul Lateef)" , Sunil V L , "Kinney, Michael D" CC: lichao , "Kirkendall, Garrett" , "Grimes, Paul" , "He, Jiangang" , Andrew Fish Subject: Re: [edk2-devel] The principles of EDK2 module reconstruction for archs Thread-Topic: [edk2-devel] The principles of EDK2 module reconstruction for archs Thread-Index: AdjPX4ZZG0rDXS4WTdOIWvoiYOLYcgC9rttQAC2dmIAADxJbkAAiVmtwAABqVrAAMdRUkAARY7IwAAF/rYAABYT70A== Date: Fri, 30 Sep 2022 18:52:12 +0000 Message-ID: References: <0c1ee7b8-9ecf-3f46-ac36-9d1464831263@quicinc.com> In-Reply-To: <0c1ee7b8-9ecf-3f46-ac36-9d1464831263@quicinc.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 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: CO1PR11MB4929:EE_|PH7PR11MB5888:EE_ x-ms-office365-filtering-correlation-id: ee16d196-2673-415e-d00a-08daa314e318 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: L9WnFplUc8lgr1rTHXrEfS3RuHppb5VpM4ALAu5P/bXi5HyZSWbhT1Ok+ExLGoV213d+rgeicwb451BWU8fOSjDe5P0QiDZMrwdhPePcJlOvQ+Zogp8wlYTxZ35MzCKMEa107PiqCDxb02vEeDmrFwnyZiI1a3SSVeTxsoDkRZXLKPUxlcihCp9s8J70suSxGmE4h3HSi/LMgRMtZh4dc2PpsGlSlMF7/PbhDOzZCHaU6zn8sZ5ENactCexTlb9R3IjfRivq2eXUo7DKHOuvhqtJ08owECQURKUszF73X1qtW3H/3RT8ikDUn1f2hJzpnLG1J2wvHKCy9GCzUzDrsMPRCbCfeTjUxGBX10zdJ/aa2IjSBGr1l7SgRpKLprv6P3z656MJJUUJQcCu5oQ7GKdPD3mv8NxsQTLoXUR5xCq/pjGWWDYV0xWkA/7y4IqMfHZSI7lOnV4IjNVx67+CvEaljJW7lhlN6DsYGhyfYQXzw0lAcBg/XaC8vN6XxMjjtSWPDk29wJu07kpnFhqSRZcxZ4M6Ju0Yv0FHC9A/Fa7aodl2FYI+WLad+JJcMbOT3nN8VMYOEMUnFVO/kTTZEeUQLT+VufNziSxmY1uC24lLuaP8qVVG7wCpP/FQjeYhMch+Yswej64G5kaa1tJsLYMB9TioBfWd8NB4uylQiWDlWB7dcy8HRPHmQK4Ko3v2XcUviBI8i4zKoK2Avx79yVGJjH9pBF9gHJulUDp9C+HVxw32Jqdh1ivxGT3+nyITqwrabMoTyiVYTKJ687FhvYtgHfE8KM+4tJaGwHPzhyR6mo7oJlsNPAioGD/oyrF7ab3YRsGuhHPpdcX4tzh7Ikd5Zw9iHjr7HelhqeuiMZM= 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:(13230022)(39860400002)(396003)(366004)(346002)(136003)(376002)(451199015)(64756008)(55016003)(2906002)(54906003)(110136005)(122000001)(921005)(38100700002)(30864003)(52536014)(38070700005)(8936002)(41300700001)(83380400001)(66556008)(71200400001)(66946007)(8676002)(66446008)(7416002)(5660300002)(4326008)(76116006)(82960400001)(33656002)(86362001)(19627235002)(66899015)(45080400002)(478600001)(9686003)(186003)(66476007)(53546011)(7696005)(6506007)(26005)(966005)(316002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MkFhNXA0TUtyQnZxQm9nV1JUalpvRzJDc0FBSE5BdFRYZlFOelFLSTZOcDc5?= =?utf-8?B?dTZFTnAxdWdJOTB2ekVZbVloM0p6RENKOHFWMHNleEoyelBEN0FpS3ZTcTNN?= =?utf-8?B?TzVUY0VodlhzSm5uRWp0L3JsWU5ROGVJVkpHQm52NW9XTEpZZytVdXlOOWxU?= =?utf-8?B?MVE3TG1Ud2tzZHRpcVVkemg3MUtTOHpLRXlCczI5Nk1BWTBJbE0weHk3U3hy?= =?utf-8?B?cVNYbE5jcUllWitTUVZ1dnAxREs4Qi8yeExYbjVpUTJOS0hxWmZ0OWE4NEd5?= =?utf-8?B?OFVIRTJQTXc2b3plc2lxcjRqTExzRDRIV0sxM1owOHd6eS9EdFo0Mlg0MkVj?= =?utf-8?B?ZDNTZklHVEtHRTJkMEh0OHR6NklVOHJKelJkN0hqVlRndklLMGJRakZHdlA2?= =?utf-8?B?VVU2cHR0Wm01aVBscmZwT1RnYUFlOHg1RHl6OFFmRCsxUk9sS2pHVG44bm5F?= =?utf-8?B?V3dGaHdFaWtwc3FoWHFUenoxcnVqdSsrUlJ0UVZ0SURxcUZLSHo0RERzWnFC?= =?utf-8?B?VTEvam9Nb2pENlpwTVFZb2IzWmduelhhMnB0d3Q1eGRlc3FTOThvbEttSzlW?= =?utf-8?B?VkJGU2JXbU5HWmRXL0VOUENnSnNodDRyRHNkeVFkd1QxWW51WkxEMG0rZXFv?= =?utf-8?B?RFlJYzJUQTVqNkZ6Vnhwb0pRWFhRZDZHS0RsdVlqZlc3bWVXV3NOM2VKRWdW?= =?utf-8?B?YWMwdWpqVnBkMUp2dGZOY1ZUTm9OZFZiSkZOL01WUk55bGRLNVUrWVY4WXpS?= =?utf-8?B?aEtUQ21DemdlOTRLZEY2c3FFZnArNGtkSjYzcXpXKzNGNDRMcUhWZ1dvN3ZD?= =?utf-8?B?S081TTBQMnVlOU9nZ091TXlQUjdxZC9zSU9VL0FiKzlTZlpMcFl4RytaTEZO?= =?utf-8?B?cGpRUWF2YlVMZmp3bVpuSHppU2FJbTMyUnpuZVFOL1JOY054UzhYR2ROUmFz?= =?utf-8?B?NHZDL21oY0grREZyUHdyampibjFyc2JGeFlMeTFwcWI5RmVoZk9CRC9lMDJ2?= =?utf-8?B?YzdvRld3UDhOUk05a2hYci95TmF6YTY5dmhlYTc5Y3JGRW8rWUN0dVhTaEEx?= =?utf-8?B?Nnc3MmprWkZ6cUZXbFJXOTJCSVZReTZmUWU0TllpeVNhQWlWdjh4ZUdaVS8x?= =?utf-8?B?a3JoZmEzeXY3S1BHK1MzMTQ4R1BycjNZZThyZEVMODlFeHJlNytraFlsMFpm?= =?utf-8?B?bEUzT1N5L1g2NjZKZ3lNQVVkNFA3dEVEczV6cnpSc05wc1NqSU1zTVRqbml6?= =?utf-8?B?THRHWlRySzlpQXIrWElCV0c0NTV3Yk1LU1BMSW5VR1FyQ3p3OXc2cFBkelZ6?= =?utf-8?B?RXg0MGFzTk4zWFpuTjlseVJZUk5QbDV5UDloZlVKTTJmQmk3Z2JNdEVyU1Qv?= =?utf-8?B?Sy85a3lNcHJTeXp2UkhmRFp4c1JUaEQ2VlhHQjd1Yko2YTE0RTRsWSt6QW9p?= =?utf-8?B?RkRjR1B0YTRUSDlEeVhBRFFxNWptOHM5MXVqeDBWV1QxUmoxNVRSa0x0MExv?= =?utf-8?B?blpZbk1MRTAyWXpxczltUmpUVFExWjYwSkpTMGxtdmxROWpmY2hWNlphNE1S?= =?utf-8?B?YloxRUR4TVJXeFFueVlBSjNVcFo0RWJkTWlaTXpMQVIwNDBHdmJyZThodnFJ?= =?utf-8?B?VjU1TFZvVU9Ea1pKS2FqTER0WThHb25BL3NUemM5d2paUDJmMzQ2a1VRcGQ5?= =?utf-8?B?SUJISy9OaCtsQldGczBQUGRDVmMxUmZZZ3Q5N3lVQmNNWjU2L2JhOGhYa3FB?= =?utf-8?B?ZlpLem5tY1pESUorenJkOGZ2NW0wM3RpMGt1eTBHbWNqQ0xLb1F3M2hibWxm?= =?utf-8?B?TWsxSGpLbDBLTWRaWVhDekEwM0ZlTTVaKzVlbllpRXRJZEpadVpDZHlyZzE5?= =?utf-8?B?UGZmRkNkOUh4elJLVVVadU1TZC9XSEhwNXZLL0k2a1p0T2lpYXFpTzNyUFpl?= =?utf-8?B?dXMrUjZ4RGJhSmdqM3dvVGNVSFNtN1p6ejFxT0NtY1lSRUE1bU1ra05rYUl5?= =?utf-8?B?ZVVJYnNzdXJQbDRaUHR2U3NYUkJ5cmZDU2hKR1VvV2NhNTROcXVwbjlQZ0pM?= =?utf-8?B?SFlrd1BkM2lLMDkvU0I4QThqOVI0c25Cakp5QzlTOENRRm4wb01xL2o3WmU0?= =?utf-8?B?WEZXdzlqSHNtbFVFM3NXTEFKS284UUxlMzgwcFRISEhRbGR0azJlOWFKM1Bh?= =?utf-8?B?R2c9PQ==?= 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: ee16d196-2673-415e-d00a-08daa314e318 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2022 18:52:13.0448 (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: glq93r5ZYSyeHuQtWDWWlgzGfF8yH15VmDtidH6mrsNYjmdB3GD2qlcCPmmbXwNAXSCPT0kuwrCtnw8GPRU9z7XrKT23WVRfM0SB3bVxpRo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5888 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 SGkgTGVpZiwNCg0KQ29uY2F0ZW5hdGlvbiBpcyBhIGdvb2QgaWRlYS4gIE1ha2VzIGl0IG1vcmUg b2J2aW91cyBhbmQgY2FuIGJlIGVhc2lseQ0KYWRvcHRlZCBmb3IgbmV3IENQVSBhcmNocy4NCg0K VGhlcmUgaXMgYW4gYWRkaXRpb25hbCBjYXNlIHdoZXJlIGFuIGltcGxlbWVudGF0aW9uIGRvZXMg bm90IGhhdmUgDQpkaWZmZXJlbmNlcyBiYXNlZCBvbiBDUFUgQXJjaCBvciBWZW5kb3IsIGJ1dCBp dCBkb2VzIGhhdmUgZGlmZmVyZW5jZXMNCmJhc2VkIG9uIHRoZSBiaXQtd2lkdGggb2YgdGhlIENQ VS4gIFRha2UgQmFzZVNhZmVJbnRMaWIgYXMgYW4gZXhhbXBsZS4NCkl0IGhhcyBzb3VyY2UgZmls ZXMgZm9yIDMyLWJpdCBDUFVzLCA2NC1iaXQgQ1BVcywgYW5kIENQVSBhcmNoDQpzcGVjaWZpYyBm aWxlIGZvciBFYmMgYmVjYXVzZSBFYmMgYWRhcHRzIHRvIDMyLWJpdCBvciA2NC1iaXQgZGVwZW5k aW5nDQpvbiB0aGUgQ1BVIHR5cGUgdGhlIEVCQyBJbnRlcnByZXRlciBpcyBydW5uaW5nLg0KDQpN ZGVQa2cvTGlicmFyeS9CYXNlU2FmZUludExpYi8NCiAgQmFzZVNhZmVJbnRMaWIuaW5mDQogIFNh ZmVJbnRMaWIuYw0KICBTYWZlSW50TGliMzIuYw0KICBTYWZlSW50TGliNjQuYw0KICBTYWZlSW50 TGliRWJjLmMNCg0KU2hvdWxkIHdlIGFkZCAiMzIiIGFuZCAiNjQiIGFzIHN1cHBvcnRlZCBzdWZm aWNlcyBpbiBmaWxlIG5hbWVzPw0KDQpJZiB3ZSB3YW50ZWQgdG8gcHV0IHR5cGUgY29udGVudCBp bnRvIGEgc3ViZGlyZWN0b3J5LCB3aGF0IHdvdWxkIA0KYmUgdGhlIHN1Z2dlc3RlZCBkaXJlY3Rv cnkgbmFtZSBmb3IgIjMyIiBhbmQgIjY0Ii4gIE9yIGRvIHdlIHdhbnQNCnRvIHJlcXVpcmUgdGhp cyB0eXBlIG9mIGRpZmZlcmVuY2UgdG8gYWx3YXlzIGJlIGZpbGVzIGluIHRvcA0KbGV2ZWwgZGly ZWN0b3J5IG9mIHRoZSBtb2R1bGVzL2xpYnJhcnk/DQoNCkJlc3QgcmVnYXJkcywNCg0KTWlrZQ0K DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTGVpZiBMaW5kaG9sbQ0K PiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAzMCwgMjAyMiA5OjA5IEFNDQo+IFRvOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPjsgQ2hhbmcsIEFibmVyIDxBYm5lci5DaGFuZ0BhbWQuY29tPjsgTmksIFJheQ0KPiA8cmF5 Lm5pQGludGVsLmNvbT47IEF0dGFyLCBBYmR1bExhdGVlZiAoQWJkdWwgTGF0ZWVmKSA8QWJkdWxM YXRlZWYuQXR0YXJAYW1kLmNvbT47IFN1bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29t Pg0KPiBDYzogbGljaGFvIDxsaWNoYW9AbG9vbmdzb24uY24+OyBLaXJrZW5kYWxsLCBHYXJyZXR0 IDxHYXJyZXR0LktpcmtlbmRhbGxAYW1kLmNvbT47IEdyaW1lcywgUGF1bCA8UGF1bC5HcmltZXNA YW1kLmNvbT47IEhlLA0KPiBKaWFuZ2FuZyA8SmlhbmdhbmcuSGVAYW1kLmNvbT47IEFuZHJldyBG aXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gVGhlIHBy aW5jaXBsZXMgb2YgRURLMiBtb2R1bGUgcmVjb25zdHJ1Y3Rpb24gZm9yIGFyY2hzDQo+IA0KPiBJ IGFncmVlIHNpbWlsYXIgdGhpbmdzIHdpbGwgY2VydGFpbmx5IGhhcHBlbiBmb3IgQVJNL0FBUkNI NjQsIHdoaWNoIHdpbGwNCj4gcHJvYmFibHkgYmUgbm90aWNlYWJsZSB3aGVuIEkgc3RhcnQgZXJh ZGljYXRpbmcgQXJtUGtnIGFuZCBwdXR0aW5nIHRoZQ0KPiBhcmNoLXN0YW5kYXJkIGJpdHMgaW50 byAobW9zdGx5KSBNZGVQa2cuDQo+IA0KPiBCdXQgSSBsaWtlIHRoZSBhYmlsaXR5IHRvIHNlZSBh bHJlYWR5IGF0IHRoZSBmaWxlc3lzdGVtIGxldmVsIHdoaWNoDQo+IGZpbGVzIGJlbG9uZyB0byB0 aGUgYXJjaGl0ZWN0dXJlIEknbSBjdXJyZW50bHkgd29ya2luZyBvbiBhbmQgd2hpY2ggZG9uJ3Qu DQo+IA0KPiBDb3VsZCB3ZSBjb25jYXRlbmF0ZSBhcmNoaXRlY3R1cmVzPw0KPiBJLmUuIEFBUkNI NjRfQVJNLCBJQTMyX1g2NCwgQUFSQ0g2NF9SSVNDVjY0Li4uID8NCj4gDQo+IC8NCj4gICAgICBM ZWlmDQo+IA0KPiBPbiAyMDIyLTA5LTMwIDA4OjI4LCBNaWNoYWVsIEQgS2lubmV5IHdyb3RlOg0K PiA+IEhpIEFibmVyLA0KPiA+DQo+ID4gT25lIGNvbW1lbnQgaXMgb24gYWRkaW5nIGEgbmV3IENQ VSB0eXBlIGRpciBuYW1lIG9mICdYODYnIGZvcg0KPiA+IGNvbnRlbnQgdGhhdCBpcyBjb21tb24g Zm9yIElBMzIvWDY0Lg0KPiA+DQo+ID4gSSBjYW4gaW1hZ2luZSBhIHNpbWlsYXIgY2FzZSBmb3Ig QVJNL0FBUkNINjQgYW5kIGZvciB0aGUNCj4gPiBSSVNDViAoMzIsIDY0LCAxMjgpIGNhc2VzLg0K PiA+DQo+ID4gSSB0aGluayBJIHdvdWxkIHByZWZlciB0byBkcm9wIFg4NiBhbmQgaWYgdGhlcmUg YXJlIGZpbGVzDQo+ID4gdGhhdCBhcmUgY29tbW9uIHRvIG11bHRpcGxlIENQVSBhcmNoaXRlY3R1 cmVzIHRoZW4gdGhleQ0KPiA+IGFyZSBjb25zaWRlcmVkIGNvbW1vbiBhbmQgYXJlIGluIHRvcCBk aXJlY3Rvcnkgb2YgbW9kdWxlDQo+ID4gYW5kIHRoZSBmaWxlIGhlYWRlciBhbmQgSU5GIGZpbGUg Y2FuIGNsZWFybHkgZG9jdW1lbnQNCj4gPiB3aGljaCBDUFUgYXJjaHMgdGhlIGZpbGUgYXBwbGll cy4NCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+PiBGcm9tOiBDaGFuZywgQWJuZXIgPEFibmVyLkNoYW5nQGFtZC5jb20+DQo+ID4+IFNlbnQ6 IEZyaWRheSwgU2VwdGVtYmVyIDMwLCAyMDIyIDEyOjExIEFNDQo+ID4+IFRvOiBOaSwgUmF5IDxy YXkubmlAaW50ZWwuY29tPjsgQXR0YXIsIEFiZHVsTGF0ZWVmIChBYmR1bCBMYXRlZWYpIDxBYmR1 bExhdGVlZi5BdHRhckBhbWQuY29tPjsgU3VuaWwgViBMDQo+ID4+IDxzdW5pbHZsQHZlbnRhbmFt aWNyby5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+PiBDYzogbGljaGFvIDxsaWNoYW9AbG9vbmdzb24u Y24+OyBLaXJrZW5kYWxsLCBHYXJyZXR0IDxHYXJyZXR0LktpcmtlbmRhbGxAYW1kLmNvbT47IEdy aW1lcywgUGF1bCA8UGF1bC5HcmltZXNAYW1kLmNvbT47IEhlLA0KPiA+PiBKaWFuZ2FuZyA8Smlh bmdhbmcuSGVAYW1kLmNvbT47IExlaWYgTGluZGhvbG0gPHF1aWNfbGxpbmRob2xAcXVpY2luYy5j b20+OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0KPiA+PiBTdWJqZWN0OiBSRTogW2Vk azItZGV2ZWxdIFRoZSBwcmluY2lwbGVzIG9mIEVESzIgbW9kdWxlIHJlY29uc3RydWN0aW9uIGZv ciBhcmNocw0KPiA+Pg0KPiA+PiBbQU1EIE9mZmljaWFsIFVzZSBPbmx5IC0gR2VuZXJhbF0NCj4g Pj4NCj4gPj4gVGhhbmtzIFJheSwgaGVyZSBhcmUgbXkgcmVzcG9uc2VzLg0KPiA+PiBodHRwczov L2dpdGh1Yi5jb20vdGlhbm9jb3JlLWRvY3MvZWRrMi1DQ29kaW5nU3RhbmRhcmRzU3BlY2lmaWNh dGlvbi9wdWxsLzINCj4gPj4NCj4gPj4gQEtpbm5leSwgTWljaGFlbCBEIHdlIG1heSBhbHNvIG5l ZWQgeW91ciBjbGFyaWZpY2F0aW9uIG9uIHRoZSBjb21tZW50cy4NCj4gPj4NCj4gPj4NCj4gPj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBGcm9tOiBOaSwgUmF5IDxyYXkubmlA aW50ZWwuY29tPg0KPiA+Pj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyOSwgMjAyMiAzOjQy IFBNDQo+ID4+PiBUbzogQXR0YXIsIEFiZHVsTGF0ZWVmIChBYmR1bCBMYXRlZWYpIDxBYmR1bExh dGVlZi5BdHRhckBhbWQuY29tPjsgQ2hhbmcsDQo+ID4+PiBBYm5lciA8QWJuZXIuQ2hhbmdAYW1k LmNvbT47IFN1bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29tPjsNCj4gPj4+IGRldmVs QGVkazIuZ3JvdXBzLmlvDQo+ID4+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsgbGljaGFvDQo+ID4+PiA8bGljaGFvQGxvb25nc29uLmNuPjsgS2ly a2VuZGFsbCwgR2FycmV0dCA8R2FycmV0dC5LaXJrZW5kYWxsQGFtZC5jb20+Ow0KPiA+Pj4gR3Jp bWVzLCBQYXVsIDxQYXVsLkdyaW1lc0BhbWQuY29tPjsgSGUsIEppYW5nYW5nDQo+ID4+PiA8Smlh bmdhbmcuSGVAYW1kLmNvbT47IExlaWYgTGluZGhvbG0gPHF1aWNfbGxpbmRob2xAcXVpY2luYy5j b20+Ow0KPiA+Pj4gQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT4NCj4gPj4+IFN1YmplY3Q6 IFJFOiBbZWRrMi1kZXZlbF0gVGhlIHByaW5jaXBsZXMgb2YgRURLMiBtb2R1bGUgcmVjb25zdHJ1 Y3Rpb24gZm9yDQo+ID4+PiBhcmNocw0KPiA+Pj4NCj4gPj4+IENhdXRpb246IFRoaXMgbWVzc2Fn ZSBvcmlnaW5hdGVkIGZyb20gYW4gRXh0ZXJuYWwgU291cmNlLiBVc2UgcHJvcGVyDQo+ID4+PiBj YXV0aW9uIHdoZW4gb3BlbmluZyBhdHRhY2htZW50cywgY2xpY2tpbmcgbGlua3MsIG9yIHJlc3Bv bmRpbmcuDQo+ID4+Pg0KPiA+Pj4NCj4gPj4+IEFibmVyLA0KPiA+Pj4gQ29tbWVudHMgaW4NCj4g Pj4+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1o dHRwcyUzQSUyRiUyRmdpdGgNCj4gPj4+IHViLmNvbSUyRnRpYW5vY29yZS1kb2NzJTJGZWRrMi0N Cj4gPj4+IENDb2RpbmdTdGFuZGFyZHNTcGVjaWZpY2F0aW9uJTJGcHVsbCUyRjIlMjNwdWxscmVx dWVzdHJldmlldy0NCj4gPj4+IDExMjQ3NjMzMTEmYW1wO2RhdGE9MDUlN0MwMSU3Q0FibmVyLkNo YW5nJTQwYW1kLmNvbSU3Q2Q4MjVlMjQNCj4gPj4+IDg2MjU1NDFlM2Y0M2UwOGRhYTFlZTI4ODMl N0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzANCj4gPj4+ICU3QzAlN0M2Mzgw MDAzNDE1MDI4ODU1NjUlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQw0KPiA+Pj4g NHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0Ql N0MzMDAwJQ0KPiA+Pj4gN0MlN0MlN0MmYW1wO3NkYXRhPVJYeGdwYkVyNml2YnFQMVI2JTJCM1J4 bCUyQnlKQW5hVUp1YVlZS2RmQ0gNCj4gPj4+IDhqbzglM0QmYW1wO3Jlc2VydmVkPTANCj4gPj4+ DQo+ID4+PiBXZSBjYW4gZGlzY3VzcyBtb3JlIGluIHRvbW9ycm93J3MgbWVldGluZy4NCj4gPj4+ DQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTog QXR0YXIsIEFiZHVsTGF0ZWVmIChBYmR1bCBMYXRlZWYpIDxBYmR1bExhdGVlZi5BdHRhckBhbWQu Y29tPg0KPiA+Pj4+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgMjksIDIwMjIgMzoxMSBQTQ0K PiA+Pj4+IFRvOiBDaGFuZywgQWJuZXIgPEFibmVyLkNoYW5nQGFtZC5jb20+OyBTdW5pbCBWIEwN Cj4gPj4+PiA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87 IE5pLCBSYXkNCj4gPj4+PiA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+PiBDYzogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgbGljaGFvDQo+ID4+Pj4gPGxp Y2hhb0Bsb29uZ3Nvbi5jbj47IEtpcmtlbmRhbGwsIEdhcnJldHQNCj4gPj4+PiA8R2FycmV0dC5L aXJrZW5kYWxsQGFtZC5jb20+OyBHcmltZXMsIFBhdWwgPFBhdWwuR3JpbWVzQGFtZC5jb20+Ow0K PiA+Pj4gSGUsDQo+ID4+Pj4gSmlhbmdhbmcgPEppYW5nYW5nLkhlQGFtZC5jb20+OyBMZWlmIExp bmRob2xtDQo+ID4+Pj4gPHF1aWNfbGxpbmRob2xAcXVpY2luYy5jb20+OyBBbmRyZXcgRmlzaCA8 YWZpc2hAYXBwbGUuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gVGhlIHBy aW5jaXBsZXMgb2YgRURLMiBtb2R1bGUgcmVjb25zdHJ1Y3Rpb24NCj4gPj4+PiBmb3IgYXJjaHMN Cj4gPj4+Pg0KPiA+Pj4+IEhpIEFibmVyLA0KPiA+Pj4+ICAgICAgTG9va3MgZ29vZCB0byBtZS4N Cj4gPj4+PiBSZXZpZXdlZC1ieTogIEFiZHVsIExhdGVlZiBBdHRhciA8YWJkYXR0YXJAYW1kLmNv bT4NCj4gPj4+Pg0KPiA+Pj4+IFRoYW5rcw0KPiA+Pj4+IEFiZHVMDQo+ID4+Pj4NCj4gPj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IENoYW5nLCBBYm5lciA8QWJu ZXIuQ2hhbmdAYW1kLmNvbT4NCj4gPj4+PiBTZW50OiAyOCBTZXB0ZW1iZXIgMjAyMiAyMDozMQ0K PiA+Pj4+IFRvOiBTdW5pbCBWIEwgPHN1bmlsdmxAdmVudGFuYW1pY3JvLmNvbT47IGRldmVsQGVk azIuZ3JvdXBzLmlvOw0KPiA+Pj4+IHJheS5uaUBpbnRlbC5jb20NCj4gPj4+PiBDYzogS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgbGljaGFvDQo+ID4+Pj4g PGxpY2hhb0Bsb29uZ3Nvbi5jbj47IEtpcmtlbmRhbGwsIEdhcnJldHQNCj4gPj4+PiA8R2FycmV0 dC5LaXJrZW5kYWxsQGFtZC5jb20+OyBHcmltZXMsIFBhdWwgPFBhdWwuR3JpbWVzQGFtZC5jb20+ Ow0KPiA+Pj4gSGUsDQo+ID4+Pj4gSmlhbmdhbmcgPEppYW5nYW5nLkhlQGFtZC5jb20+OyBBdHRh ciwgQWJkdWxMYXRlZWYgKEFiZHVsIExhdGVlZikNCj4gPj4+PiA8QWJkdWxMYXRlZWYuQXR0YXJA YW1kLmNvbT47IExlaWYgTGluZGhvbG0NCj4gPj4+PiA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNv bT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+ID4+Pj4gU3ViamVjdDogUkU6IFtl ZGsyLWRldmVsXSBUaGUgcHJpbmNpcGxlcyBvZiBFREsyIG1vZHVsZSByZWNvbnN0cnVjdGlvbg0K PiA+Pj4+IGZvciBhcmNocw0KPiA+Pj4+DQo+ID4+Pj4gW0FNRCBPZmZpY2lhbCBVc2UgT25seSAt IEdlbmVyYWxdDQo+ID4+Pj4NCj4gPj4+PiBJIGp1c3QgaGFkIGNyZWF0ZWQgUFIgdG8gdXBkYXRl IGVka0lJIEMgY29kaW5nIHN0YW5kYXJkIHNwZWMgZm9yIHRoZQ0KPiA+Pj4+IGZpbGUgYW5kIGRp cmVjdG9yeSBuYW1pbmcuIFdlIGNhbiByZXZpZXcgYW5kIGNvbmZpcm0gdGhpcyB1cGRhdGUgZmly c3QNCj4gPj4+PiBhbmQgdGhlbiBnbyBiYWNrIHRvIHRoZSBwcmluY2lwbGVzIG9mIEVESzIgbW9k dWxlIHJlY29uc3RydWN0aW9uIGZvciBhcmNocy4NCj4gPj4+PiBIZXJlIGlzIHRoZSBQUjoNCj4g Pj4+Pg0KPiA+Pj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNv bS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0aA0KPiA+Pj4+IHViLmNvbSUyRnRpYW5vY29yZS1kb2Nz JTJGZWRrMi0NCj4gPj4+ICZhbXA7ZGF0YT0wNSU3QzAxJTdDQWJuZXIuQ2hhbmclNDBhbWQuYw0K PiA+Pj4+DQo+ID4+PiBvbSU3Q2Q4MjVlMjQ4NjI1NTQxZTNmNDNlMDhkYWExZWUyODgzJTdDM2Rk ODk2MWZlNDg4NGU2MDhlMTFhODINCj4gPj4+IGQ5OTRlMTgNCj4gPj4+Pg0KPiA+Pj4gM2QlN0Mw JTdDMCU3QzYzODAwMDM0MTUwMjg4NTU2NSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUoNCj4g Pj4+IFdJam9pTUM0d0xqDQo+ID4+Pj4NCj4gPj4+IEF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pC VGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJTdDJQ0KPiA+Pj4gN0MlN0MmYQ0KPiA+ Pj4+DQo+ID4+PiBtcDtzZGF0YT1YNHo5cHVqODFuSUdUcXRNeEM5aWdEWnlCUE9UNk9UV1NVJTJC am9Jb3dvJTJCRSUzRCZhDQo+ID4+PiBtcDtyZXNlcnYNCj4gPj4+PiBlZD0wDQo+ID4+Pj4gQ0Nv ZGluZ1N0YW5kYXJkc1NwZWNpZmljYXRpb24vcHVsbC8yDQo+ID4+Pj4NCj4gPj4+PiBUaGUgbmFt aW5nIHJ1bGUgaXMgbWFpbmx5IGZvciB0aGUgbmV3IG1vZHVsZSBvciBuZXcgZmlsZSBJTU8uIFNv bWUNCj4gPj4+PiBleGlzdGluZyBtb2R1bGUgbWF5IG5vdCBtZWV0IHRoZSBndWlkZWxpbmVzIG1l bnRpb25lZCBpbiB0aGlzIHNwZWMuDQo+ID4+Pj4gVGh1cyB3ZSBuZWVkIHRoZSBwcmluY2lwbGVz IG9mIEVESzIgbW9kdWxlIHJlY29uc3RydWN0aW9uIG9uIHRoZQ0KPiA+Pj4+IGV4aXN0aW5nIG1v ZHVsZSB0byBzdXBwb3J0IG90aGVyIHByb2Nlc3NvciBhcmNocyBhbmQgbm90IGltcGFjdGluZyB0 aGUNCj4gPj4+IGV4aXN0aW5nIHBsYXRmb3JtcyAoZS5nLg0KPiA+Pj4+IHJlbmFtZSB0aGUgSU5G IGZpbGUgb3IgZGlyZWN0b3J5IHRvIG1lZXQgdGhlIGd1aWRlbGluZXMpLg0KPiA+Pj4+DQo+ID4+ Pj4gU3VuaWwsIHNlZW1zIFJJU0MtViBDcHVEeGUgbWVldCB0aGUgZ3VpZGVsaW5lLiBQbGVhc2Ug Y2hlY2sgaXQuDQo+ID4+Pj4gSnVzdCBmZWVsIHRoYXQgaGF2aW5nICBDcHVEeGUuYyB0byBSaXNj djY0IGZvbGRlciBpcyBub3QgcXVpdGUgYSBiZXN0DQo+ID4+Pj4gc29sdXRpb24uIEkgdGhpbmsg YXQgbGVhc3Qgd2UgY2FuIGFic3RyYWN0IHRoZSBwcm90b2NvbCBzdHJ1Y3R1cmUgYW5kDQo+ID4+ Pj4gcHJvdG9jb2wgaW5zdGFsbGF0aW9uIHVuZGVyIENwdUR4ZVwgYW5kIGhhdmUgdGhlIGFyY2gg aW1wbGVtZW50YXRpb24NCj4gPj4+PiB1bmRlciBhcmNoIGZvbGRlci4gV2UgY2FuIGRpc2N1c3Mg dGhpcyBsYXRlciBhZnRlciB3ZSBjb25maXJtaW5nIHRoZQ0KPiA+Pj4gZ3VpZGVsaW5lIGFuZCBw cmluY2lwbGVzLg0KPiA+Pj4+DQo+ID4+Pj4gVGhhbmtzDQo+ID4+Pj4gQWJuZXINCj4gPj4+Pg0K PiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBTdW5pbCBW IEwgPHN1bmlsdmxAdmVudGFuYW1pY3JvLmNvbT4NCj4gPj4+Pj4gU2VudDogV2VkbmVzZGF5LCBT ZXB0ZW1iZXIgMjgsIDIwMjIgMzozNCBQTQ0KPiA+Pj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW87IHJheS5uaUBpbnRlbC5jb20NCj4gPj4+Pj4gQ2M6IENoYW5nLCBBYm5lciA8QWJuZXIuQ2hh bmdAYW1kLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ID4+Pj4+IDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IGxpY2hhbyA8bGljaGFvQGxvb25nc29uLmNuPjsNCj4gPj4+Pj4gS2lya2Vu ZGFsbCwgR2FycmV0dCA8R2FycmV0dC5LaXJrZW5kYWxsQGFtZC5jb20+OyBHcmltZXMsIFBhdWwN Cj4gPj4+Pj4gPFBhdWwuR3JpbWVzQGFtZC5jb20+OyBIZSwgSmlhbmdhbmcgPEppYW5nYW5nLkhl QGFtZC5jb20+OyBBdHRhciwNCj4gPj4+Pj4gQWJkdWxMYXRlZWYgKEFiZHVsIExhdGVlZikgPEFi ZHVsTGF0ZWVmLkF0dGFyQGFtZC5jb20+OyBMZWlmDQo+ID4+Pj4+IExpbmRob2xtIDxxdWljX2xs aW5kaG9sQHF1aWNpbmMuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT4NCj4gPj4+ Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBUaGUgcHJpbmNpcGxlcyBvZiBFREsyIG1vZHVs ZQ0KPiA+Pj4+PiByZWNvbnN0cnVjdGlvbiBmb3IgYXJjaHMNCj4gPj4+Pj4NCj4gPj4+Pj4gQ2F1 dGlvbjogVGhpcyBtZXNzYWdlIG9yaWdpbmF0ZWQgZnJvbSBhbiBFeHRlcm5hbCBTb3VyY2UuIFVz ZSBwcm9wZXINCj4gPj4+Pj4gY2F1dGlvbiB3aGVuIG9wZW5pbmcgYXR0YWNobWVudHMsIGNsaWNr aW5nIGxpbmtzLCBvciByZXNwb25kaW5nLg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBPbiBX ZWQsIFNlcCAyOCwgMjAyMiBhdCAwMzozMzo0NUFNICswMDAwLCBOaSwgUmF5IHdyb3RlOg0KPiA+ Pj4+PiBIaSBSYXksDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gICAgMS4gIFdoZW4gYSBuZXcgYXJjaCdz IGltcGxlbWVudGF0aW9uIGlzIGludHJvZHVjZWQgdG8gdGhlDQo+ID4+Pj4+PiBleGlzdGluZw0K PiA+Pj4+PiBtb2R1bGUgd2hpY2ggd2FzIGRldmVsb3BlZCBmb3IgdGhlIHNwZWNpZmljIGFyY2g6 DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gICAgMS4gIFRoZSBmb2xkZXIgcmVjb25zdHJ1Y3Rpb246DQo+ ID4+Pj4+Pg0KPiA+Pj4+Pj4gICAgKiAgIENyZWF0ZSBhcmNoIGZvbGRlciBmb3IgdGhlIGV4aXN0 aW5nIGFyY2ggaW1wbGVtZW50YXRpb24NCj4gPj4+Pj4+IFtSYXldIERvIHlvdSBtb3ZlIGV4aXN0 aW5nIGFyY2ggaW1wbGVtZW50YXRpb24gdG8gdGhhdCBhcmNoIGZvbGRlcj8NCj4gPj4+Pj4+IEl0 IHdpbGwNCj4gPj4+Pj4gYnJlYWsgZXhpc3RpbmcgcGxhdGZvcm1zIGEgbG90Lg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+ICAgICogICBDcmVhdGUgdGhlIGFyY2ggZm9sZGVyIGZvciB0aGUgbmV3IGludHJv ZHVjZWQgYXJjaA0KPiA+Pj4+Pj4gW1JheV0gSSBhZ3JlZS4gQnV0IGlmIHdlIGRvbid0IGNyZWF0 ZSBhcmNoIGZvbGRlciBmb3IgZXhpc3RpbmcNCj4gPj4+Pj4+IGFyY2gNCj4gPj4+Pj4gaW1wbGVt ZW50YXRpb24sIHRoZSBwa2cgbGF5b3V0IHdpbGwgYmUgYSBtZXNzLg0KPiA+Pj4+Pj4NCj4gPj4+ Pj4+IFtSYXldIEhhcmQgZm9yIG1lIHRvIHVuZGVyc3RhbmQgYWxsIHRoZSBwcmluY2lwbGVzIGhl cmUuIE1heWJlIHdlDQo+ID4+Pj4+PiByZXZpZXcNCj4gPj4+Pj4gZXhpc3RpbmcgY29kZSBpbmNs dWRpbmcgdG8tYmUtdXBzdHJlYW1lZCBjb2RlIGFuZCBkZWNpZGUgaG93IHRvIGdvLg0KPiA+Pj4+ Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gQ291bGQgeW91IHBsZWFzZSB0YWtlIGEgbG9vayBiZWxvdyBj aGFuZ2VzIHdoaWNoIGlzIHRyeWluZyB0byBhZGQNCj4gPj4+Pj4gUklTQy1WIHN1cHBvcnQgZm9y IENwdUR4ZT8NCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3Mu cHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0aA0KPiA+Pj4+PiB1 Yi5jb20lMkZ0aWFub2NvcmUlMkZlZGsyLQ0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+PiBzdGFnaW5n JTJGY29tbWl0JTJGYmJhMWExMWJlNDdkZDA5MTczNGUxODVhZmJlZDczZWE3NTcwODc0OSZhbXA7 DQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+IGRhdGE9MDUlN0MwMSU3Q2FibmVyLmNoYW5nJTQwYW1k LmNvbSU3Q2E0MTllNmEwMTBkMzRmZGU0NjRiMDhkDQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+IGFh MTIzZTA4MCU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTExYTgyZDk5NGUxODNkJTdDMCU3QzAlN0M2Mzc5 OTk0Nw0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+PiAyNzMyNDk0NTI3JTdDVW5rbm93biU3Q1RXRnBi R1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqDQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+ IG9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJTdDJTdDJTdD JmFtcDtzZA0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+PiBhdGE9VnE2cEpMbm44eUpySmhGWm43TGZM Ylp6cnRwRzRuMVZMV2dBaWw2SjM4VSUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+Pj4+Pg0KPiA+Pj4+ DQo+ID4+PiBodHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91 cmw9aHR0cHMlM0ElMkYlMkZnaXRoDQo+ID4+Pj4+IHViLmNvbSUyRnRpYW5vY29yZSUyRmVkazIt DQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+IHN0YWdpbmclMkZjb21taXQlMkY3ZmNjZjkyYTk3YTZk MDYxOGEyMGYxMDYyMjIyMGU3OGIzNjg3OTA2JmFtcDtkYQ0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+ PiB0YT0wNSU3QzAxJTdDYWJuZXIuY2hhbmclNDBhbWQuY29tJTdDYTQxOWU2YTAxMGQzNGZkZTQ2 NGIwOGRhYTENCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4gMjNlMDgwJTdDM2RkODk2MWZlNDg4NGU2 MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzk5OTQ3MjczDQo+ID4+Pj4+DQo+ID4+Pj4N Cj4gPj4+IDI0OTQ1MjclN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01E QWlMQ0pRSWpvaVYNCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4gMmx1TXpJaUxDSkJUaUk2SWsxaGFX d2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAlN0MlN0MlN0MmYW1wO3NkYXRhDQo+ID4+Pj4+DQo+ID4+ Pj4NCj4gPj4+ID14Rm12VXY1OHZoNEFVQU0xN1F5OUc1alpXRlpsSzJPenQzbmpwRzFlOCUyQlkl M0QmYW1wO3Jlc2Vydg0KPiA+Pj4+PiBlZD0wDQo+ID4+Pj4+DQo+ID4+Pj4+IFdoYXQgZG8geW91 IHN1Z2dlc3Qgd2l0aCBhYm92ZSBleGFtcGxlPw0KPiA+Pj4+Pg0KPiA+Pj4+PiAxKSBDb21tb24g SU5GIGZvciBhbGwgYXJjaGl0ZWN0dXJlcyAtIGJ1dCBtb2RpZnkgSU5GIGFsb25lLCBubyBYODYN Cj4gPj4+Pj4gZm9sZGVyIGNyZWF0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGlzIGlzIHdoYXQg SSBoYXZlIGRvbmUgaW4gdGhlIGNvbW1pdCBhYm92ZS4gTWF5IGJlIG9mIGxlYXN0IGltcGFjdA0K PiA+Pj4+PiB0byBleGlzdGluZyBjb2RlIHNpbmNlIGl0IGlzIG9ubHkgSU5GIGNoYW5nZS4gQnV0 IGxpa2UgeW91IG1lbnRpb25lZA0KPiA+Pj4+PiB0aGlzIGlzIGJpdCB3ZWlyZCB0aGF0IFg4NiBm aWxlcyB3aWxsIHJlbWFpbiBpbiByb290IGZvbGRlciBkaXJlY3RseQ0KPiA+Pj4+PiBhbG9uZyB3 aXRoIHNvbWUgY29tbW9uIGZpbGVzLg0KPiA+Pj4+Pg0KPiA+Pj4+PiAyKSBDb21tb24gSU5GIChD cHVEeGUuaW5mKSArIGNyZWF0ZSBhcmNoIGZvbGRlcnMgWDg2LCBYNjQsIElBMzIsDQo+ID4+Pj4+ IFJpc2NWNjQgZXRjDQo+ID4+Pj4+DQo+ID4+Pj4+IElNTywgdGhpcyBpcyBwcm9iYWJseSB0aGUg YmVzdCBhcHByb2FjaC4gV2hhdCB3b3VsZCBiZSB0aGUNCj4gPj4+Pj4gY2hhbGxlbmdlcyB3aXRo IHRoaXM/DQo+ID4+Pj4+DQo+ID4+Pj4+IDMpIFNlcGFyYXRlIElORiBmb3IgYXJjaCBsaWtlIENw dUR4ZS5pbmYgZm9yIHg4NiwgQ3B1RHhlUmlzY1Y2NC5pbmYNCj4gPj4+Pj4gZm9yDQo+ID4+Pj4g UklTQy1WLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGlzIGFnYWluIHByb2JhYmx5IGlzIG5vdCBhIGdv b2QgaWRlYS4NCj4gPj4+Pj4NCj4gPj4+Pj4gNCkgSWYgdGhlIG1vZHVsZS9saWJyYXJ5IGlzIHNw ZWNpZmljIHRvIG9uZSBhcmNoIChleDogU01NKFg4NiksDQo+ID4+Pj4+IFNCSShSSVNDLVYpKSwg dGhlbiBjcmVhdGUgc2VwYXJhdGUgSU5GLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGFua3MhDQo+ID4+ Pj4+IFN1bmlsDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KPiANCj4gDQoN Cg==