From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web12.13879.1636472612522016128 for ; Tue, 09 Nov 2021 07:43:33 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=j/8cKigm; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10163"; a="232309228" X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="232309228" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2021 07:43:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,220,1631602800"; d="scan'208";a="731930259" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga006.fm.intel.com with ESMTP; 09 Nov 2021 07:43:31 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) 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.2242.12; Tue, 9 Nov 2021 07:43:30 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 9 Nov 2021 07:43:30 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 9 Nov 2021 07:43:30 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nZjAkYr6oO9ReGMKcv9c11pMwUpX/BUzvCS5O1oipmmCvmPrd7PT2xSggjXh07buVwPdnL5xJnEX6QcVZcHjKemA8dg2XyQe5HuejWq32sUnajMg1ephpwsyrNHJgYaFCq12Az813Hm2QLM3NWMSbc4G3PoB/KQJv479jN38wwUFFv+mxcqHjKRTRDYj6wIl2q+qu/Wyo7V5UIgC+yIT741pQsmsTaTrj2ViP9gcHeuB7y+2/e4V9EW0/YYEkegZcsmDe0aJOJYEeh/wAKYY3sZw0ppJ6J1EVRXeRIkPoqnX9V2N7hl2b+1JxZNv+SjrUMHsec/N3lIBLy1QMSk/8A== 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=jRAr8H+qeG2CwCTiBWQ9aiwE5tBYWBtm9OI6GmAcZJs=; b=gT5tcKl2j74zGuj4bYVE8Dwz5C5bYY23DM9bfN3xB6qxWJaTm4zEHcMfE8nT01aD0XnW0Ctkg67Aq0jEBCY1hqGap//bIgEXJM3u6JMt1uqxif7RJFHHG+KJkxYNipASuewMr7L1Ol7MpC/VMWQnoDg6SbbX6QwR/6yx+TGtue5qFkQgQaZ+m6mOHBJYCdW1wWU4KQLIxGXvIsGCrCQLJNC4PbUg+KMaSxyjc/sZDbywBVRk4QDRThNAVLG2SizmyaKRqTKgnipgaPUXueooBBHCNe2SgyfJYjhE2cUW9ZJsJ5G3mC1F7T8r/RKfEgaJXVQiYGn4tk+PpVHiyjL6OQ== 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=jRAr8H+qeG2CwCTiBWQ9aiwE5tBYWBtm9OI6GmAcZJs=; b=j/8cKigmOhkrbRlmJd2qjSbK2vJxdVGpCYBKeY6oe+/e9tffa0rRTv+UhZGwhZrKpMNiq4q6uPBFaLPHM/hn3tH5O8CDft+OTd+wjYNK2IDw7qKeKaBMIaps2XuOlpuC3tb1OqJRqpAL08+FD93VDglYxB+k4ZiAEmGRFQ1nJ9g= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB1341.namprd11.prod.outlook.com (2603:10b6:300:2b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Tue, 9 Nov 2021 15:43:27 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%6]) with mapi id 15.20.4690.015; Tue, 9 Nov 2021 15:43:27 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mhaeuser@posteo.de" , "Kinney, Michael D" CC: Andrew Fish , Michael Kubacki , Leif Lindholm , "mikuback@linux.microsoft.com" , "rebecca@nuviainc.com" , Bret Barkelew Subject: Re: [edk2-devel] Progress on getting Uncrustify working for EDK2? Thread-Topic: [edk2-devel] Progress on getting Uncrustify working for EDK2? Thread-Index: AQHXktW1F/CJbarBAE2s9kKUu+rpv6t2hbMAgAABlQCAAAXQAIBRHuOAgACBL4D//+ir8IAACBaAgAACIoCAADl6AIAycxlwgAAahgCAAAC2oIAAGoYAgAACyTCAAE0aAIAAg6mQ Date: Tue, 9 Nov 2021 15:43:26 +0000 Message-ID: References: <07a6ecff-f7bf-083a-f24d-246ca6c7988b@nuviainc.com> <2679bfa3-b4ec-d8e9-7e56-54ebe42d9001@posteo.de> <9fe0f984-db9d-9aec-0b44-5d30791a2855@linux.microsoft.com> <20211007104813.wa4rmfsqgcpvnzwt@leviathan> <07d5c8bc-40b2-4e99-3b3d-4c8ac4e14220@posteo.de> <438B4D66-2CFB-45E3-AF75-42342F0B1E67@apple.com> <07F39C4E-DA8E-4650-A48B-66DA2E08314B@apple.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 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: 803915c8-540f-4d6d-c15b-08d9a397ac08 x-ms-traffictypediagnostic: MWHPR11MB1341: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qrEIYXN11wAlSY4/5N263trwYQL3Hxe9k9OsTSxFFfoKk3A9eCe/wWyhgKT1E61LB+nb34hSOLvtMxCBpoCpqocw+8xE9LgMC1jLXh31TMatHBMU3KvAKlugCgD6FPK83fQP3ImlEyzx0OwEeFzNrSSDrKJNmv8OFS7hhw9jAowVcgKJtfxP6IkMAqUYaSgdMeBK/gYfHN6q89sEVBrYBsPwLSK9KdX2EUF8VB4OKBWJVb1Hs8Ou02h27GAel8a70whr1Fc8DGhZP0YejE1c61U/xH4RZWCcQfQuXlpUvuH8RnG0HT4fSEt+8Oq+P4xZxXLQpuugym2nYr0HCViz9E/BqVTpx1E5LZOaVTwqsU54rNkZx0x98/cHDKZrgp0C4MYJNJHIVZuqJWE0wgpWUQ15iiIgXw6WDp82r6ctO9eCcnpwhkjq4H9WJcS4dUwXe7ZvtM3IbxI18Y8VCzH5X17qAdhcevpZCFU5M7Zskb2qxDGgab/OGOL/q1g2q3OCkqzApkMqc2ZKJ2/L6XnYqKNH7KRbbdNUbzwmeEB4GNQBtF8C4PEESi6ctx6UHIqvhOUy+N/kAckJJoI3dd2MvVZPEMuOGwxO6LjKyvBlkdFm/JOsYRieqYp7OojyFlyiENFFu5m14aQuMjzNE78jRkKKDkmfqkrCjxL23DLSemccEd96gy9sSFPH8PeCi7b6rSruzMVYj8ahiOubdoUjPJvQjlbbMRRcblTlchnJcpw/l8JLMn6wc5YYQtBXGKLzHAZOrnpb+zg1o/EW+EJfVL1g3C7duic1DAN7BLOrO83/MYg2HHhmnRxVsHZtA6ikeA8RWKMRuPrrT3R20UzyYw== 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:(366004)(33656002)(9686003)(64756008)(83380400001)(8676002)(54906003)(110136005)(316002)(76116006)(30864003)(2906002)(71200400001)(66446008)(66946007)(6506007)(966005)(66556008)(66476007)(508600001)(53546011)(82960400001)(86362001)(5660300002)(122000001)(38100700002)(4001150100001)(7696005)(66574015)(55016002)(186003)(4326008)(52536014)(26005)(38070700005)(8936002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Z0xhc1NCR2FFajB2d0M4OUNYeXo5WTVQUHcyMStJUi9vZ1djUlgxcVE3OUFx?= =?utf-8?B?NVl2KzFBQlpuUmpVVm9VdXVsNlZCR0txT2haZ29NTllEcXRERjZxVzVGY09v?= =?utf-8?B?Z2MrajhTVkxIalhxYzNRa3JvdzZjSGJDckEycnVVaUpIN1VwUnpEK2tBS2p2?= =?utf-8?B?ZTZmb3pqZHpjS3hnRlJYa0xrYzRwRVdpZ2xWRzRZTWxMMU1Tcnk0TWNUby9t?= =?utf-8?B?Q2xYajB6ZHlyR1htemhYa2h3TXFUZmJuYlNKTkplU3RLdkpYK0I3SUxpY3d1?= =?utf-8?B?RlMraE1tbUZuSFpGTm56UWNPT1Y4dHc5bzIzSGN2THZKRFordFpwa21MKzh0?= =?utf-8?B?RjFmcHlUcmE3YWtXdHlxNGxYSUJCcFF5cFhlMW9wMGxGNXM0RzhSRFpGY0Zo?= =?utf-8?B?WmJCTGxvejJIL0JlYVg3WnFJdklnU1N1QjRqQ1FnVUFpVE9FSG4wL240MEpv?= =?utf-8?B?dXZJNG8xRldodk9pMklYbmxoQ3g4UVBMb1BiU0JVaWJYem5TNDVUTTZ1T2JR?= =?utf-8?B?NzZ3Vzd6VnNWS3c5aU5ZUVJoeGtNamR3ZlM2M3lPSEM3WjJlaUxwcjhtcGJq?= =?utf-8?B?bW9KdUNtamVacFEyM1pKaFdkV05QYk5HLzV6SkNGeWJSQk5HdVdPZEtyQ083?= =?utf-8?B?MW9kM1VpUFFXZ1gwSVBjQ0NyT3IxdGhIS25BWkZSclQ0S0luRzkwOWg2NGhu?= =?utf-8?B?Y29zK2REbmxjWXk0Vy9VUS9BdW4zTW1hNjEzL1hiWGhJb1BGZUg2cnBUeVpr?= =?utf-8?B?REpBOXdFSWsyQTkyR0hiQTZ3YWNodXBIUHpMdFlseGZ3cERUNDI5Y2N3U05t?= =?utf-8?B?TWY2Sml0aUZjN085dG16Y3N6cVhYb2NndVdZZWxOaTBDWkpZUzIrZlQvcWti?= =?utf-8?B?T3hzTmVQQVY2ZFZhVGhzSGxRUVJld0tVVGtmcFF3RlB5anZDcU43WnEyOXRG?= =?utf-8?B?MGNoOW5Uc1JEam5lQS91ZmpEWk5hZUtINWcxbUxyRmExUFgrZ3dOU0p1Vi9m?= =?utf-8?B?aytVbkVDK0t2QXBtdWdRa0d1SzVSdDNnanFMa0p1Rmw5SGMrMGx0enh0ZEMx?= =?utf-8?B?TmNoLzlyYWVGb2Vnb3VWTVJ3STlGZmFVbUVLaHJ3S2dFZUViazB4ZTlsOGJq?= =?utf-8?B?RmphQnRLTWVBN0krUHlyWTRYVktUQ2RtY2FPSWhpTVdhTFRiaHFwcU9TT3A4?= =?utf-8?B?Q2N1NlVWTVh4TmRtSkNRaHZ0US9paGJmQzhUR0ExTXhOTGRnN3pUQkNnSUtT?= =?utf-8?B?VndZYkhSbGUyd2RTeWFMbENEMitwOStsN2g2enMrbkh0d0FNZkZPanFJcHg4?= =?utf-8?B?ZW9lWmtGSkhMMDJFK3ZSTVRDUDVZQ2hOWDdiaExjYkpLVkRUWTQ4dkJMR1pS?= =?utf-8?B?SFkzeURrME1nUjFhQ2N6RWZBTit6Ryt3UnI5U3N0VUFRenlxbkRaVTA2TENZ?= =?utf-8?B?NWRYRDhCbm9odStTWDZiT3lZWWMvWHM1VVcyUDZ6NndrQ0pLTmRBNWJrRHZM?= =?utf-8?B?Q1Q2N1dMYmQ1QjM0cXhwYm1RRTZ3eEpSWmdvb015clowTXc2Ynh2MDh5T2JK?= =?utf-8?B?TXYxVXd4L0FIMGtkTk9IWjlxN29IaWxwRU5DeVFMVzlLKzBab0R0SlNnaTdZ?= =?utf-8?B?Q0lEVVJKcElJMmZGUVBFZjFCcjJRRXRtdnBqZmErUit1T0VScVcrcmUyRm9W?= =?utf-8?B?Z2p0RGNSaGFNVzE0Z21jRm1TaWQ4eFVxTTZnK0NuaTdSWWpCWUFOSjVHMU43?= =?utf-8?B?dFVCRTJhdFRxa3dXSjhBVkpKY3g4Rm5wcU1jdTZ5UFFUaE5qWlhVVlFNSGFa?= =?utf-8?B?SG9pSU9OSEtkOWY4NkN6WkJmbFE5UGZ5bGFMVmxhRWdKYzlUNlI1OVErR0M2?= =?utf-8?B?VFN1Qk5obHAvSTI2amRBSHVESFJnWWdLWFF0UXlIY2R3eER1MkRTT3NGQmFh?= =?utf-8?B?SWVXbHd6Sk5ZSzlaNm1EQjlHbkluaVNOTmFZRVlxaHVhTHMxWUxGbHJLSFNr?= =?utf-8?B?TmNycCtjcE8yTmpoYjlFUllPbEVudmRPTWJXQ1JKOTVjb0cxUUIxM3NiMVZU?= =?utf-8?B?TFMrOXpOYW9DckFTT2FVdzlOQXEzZjQyazVDZWhKVHllNWlHSFNQUjVmeXBr?= =?utf-8?B?dWlUYnZJeFRJNEJ2SjVzcHUvTExFVE5VZkVEWk5FRWNXRHFZQnczN1JPTzRk?= =?utf-8?B?Q3hjUWxWZGhqNk1haWlXVk1GeFFNSGVwNmJJa1FSNVN1Z1NlbUpiODJ4d1BM?= =?utf-8?B?Z2JRSEowYlU2QjMrYXBKTjBQNE9RPT0=?= 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: 803915c8-540f-4d6d-c15b-08d9a397ac08 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2021 15:43:26.9637 (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: NL0x9KESAb8C49Vd3rBLPpmesS2xAiTY/HQ+vdvWpX+xUqdaXuUWEdb2X9bTmGFhm6PCUOALYihXErwFqTTDRX0gMGtWSNnzCwnyrKS9RSM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1341 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 SGkgTWFydmluLA0KDQpDb21tZW50cyBiZWxvdy4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdy b3Vwcy5pbz4gT24gQmVoYWxmIE9mIE1hcnZpbiBIw6R1c2VyDQo+IFNlbnQ6IE1vbmRheSwgTm92 ZW1iZXIgOCwgMjAyMSAxMTozMyBQTQ0KPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT47 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBNaWNoYWVsIEt1YmFja2kgPE1pY2hhZWwuS3ViYWNraUBt aWNyb3NvZnQuY29tPjsgTGVpZiBMaW5kaG9sbQ0KPiA8bGVpZkBudXZpYWluYy5jb20+OyBtaWt1 YmFja0BsaW51eC5taWNyb3NvZnQuY29tOyByZWJlY2NhQG51dmlhaW5jLmNvbTsgQnJldCBCYXJr ZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazIt ZGV2ZWxdIFByb2dyZXNzIG9uIGdldHRpbmcgVW5jcnVzdGlmeSB3b3JraW5nIGZvciBFREsyPw0K PiANCj4gSGV5IGFsbCwNCj4gDQo+IFRoYW5rcyBmb3IgdGhlIGVmZm9ydCENCj4gDQo+IDEuIElm IHZpcnR1YWxseSBldmVyeW9uZSB3aWxsIG5lZWQgVW5jcnVzdGlmeSwgd2h5IGNhbm5vdCBpdCBi ZSBidWlsdCBhbG9uZyB3aXRoIEJhc2VUb29scyBmcm9tIGEgc3VibW9kdWxlPyBFc3BlY2lhbGx5 DQo+IHdpdGggdGhlIGZvcmsgdGhhdCBtYWtlcyBzZW5zZSwgYWZ0ZXIgdGhhdCBpdCBkZXBlbmRz IG9uIHRoZSB1cHN0cmVhbSAoaXQgZG9lcyBub3QgbG9vayB0b28gbmljZSB0byBtZSkuDQoNCk5v IG1hdHRlciB3aGVyZSB1bmNydXN0aWZ5IHNvdXJjZXMgYXJlIGhvc3RlZCwgZGV2ZWxvcGVycyBj YW4gYWx3YXlzIGNob29zZSB0byBidWlsZCB0aGUgdW5jcnVzdGlmeSB0b29sIGxvY2FsbHkuDQpQ cm92aWRpbmcgcmVsZWFzZSBiaW5hcmllcyBmb3IgdGhlIHRvb2wgbWF5IGJlIHNpbXBsZXIgZm9y IHNvbWUgY3VzdG9tZXJzLg0KVXNpbmcgcmVsZWFzZSBiaW5hcmllcyBmcm9tIEVESyBJSSBDSSBh Z2VudHMgd2lsbCByZWR1Y2UgQ0kgZXhlY3V0aW9uIHRpbWUuDQoNClRoZSBnb2FsIGlzIHRvIHVw c3RyZWFtIGFsbCBjaGFuZ2VzIHRvIHVuY3J1c3RpZnkgcHJvamVjdC4gIEhvd2V2ZXIsIHdlIG5l ZWQgdG8gZ2V0IHRoZSBFREsgSUkgY29tbXVuaXR5IHRvIHJldmlldw0KYW5kIGFjY2VwdCB0aGUg c3R5bGUgb2YgdGhlIHNvdXJjZSBjb2RlIHByb2R1Y2VkIGJ5IHRoaXMgZm9yayBvZiB1bmNydXN0 aWZ5LiAgV2UgZG8gbm90IHdhbnQgdG8gZG8gdGhpcyB0eXBlIG9mDQpjaGFuZ2UgbW9yZSB0aGFu IG9uY2UsIHNvIGdldHRpbmcgZXZlcnlvbmUgdG8gYWdyZWUgdG8gYSBzcGVjaWZpYyBmb3JtYXQg aXMgY3JpdGljYWwuDQoNCk9uY2UgdGhlIGNvbnRlbnQgaXMgdXBzdHJlYW1lZCwgdGhlbiB0aGUg RURLIElJIGNvbW11bml0aWVzIG1haW50ZW5hbmNlIG9mIGEgZm9yayBjYW4gZW5kIGFuZCB0aGUg RURLIElJIA0KY29tbXVuaXR5IGNhbiB3b3JrIHdpdGggdGhlIHVuY3J1c3RpZnkgY29tbXVuaXR5 IGZvciBhbnkgZnV0dXJlIGNoYW5nZXMgYW5kIGRldmVsb3BlcnMgYW5kIENJIGFnZW50cyBjYW4N CnVzZSB0aGUgcmVsZWFzZSBiaW5hcmllcyBhbmQvb3Igc291cmNlcyBmcm9tIHRoZSB1bmNydXN0 aWZ5IHByb2plY3QuDQoNCj4gDQo+IDIuIERvZXMgdGhpcyBjb3ZlciBDUkxGLT5MRj8NCg0KQXJl IHlvdSByZWZlcnJpbmcgdG8gdXBkYXRpbmcgdGhlIEdpdEh1YiByZXBvIGxpbmUgZW5kaW5ncyBv biB0aGUgR2l0SHViIHNlcnZlciBzaWRlPyAgVGhhdCBpcyBhIGRpZmZlcmVudA0KdG9waWMgYW5k IHdpbGwgcmVxdWlyZSBhIGRpZmZlcmVudCB0b29sIGFuZCBkZXZlbG9wZXIgcHJvY2VzcyBjaGFu Z2VzLg0KDQo+IA0KPiAzLiBXaWxsIHRoZXJlIGJlIGEgbGlzdCBvZiBpbXBsaWNpdCBjaGFuZ2Vz IGZyb20gdGhlIGN1cnJlbnQgY29kZSBzdHlsZT8NCg0KDQpJIGJlbGlldmUgdGhlIHVuY3J1c3Rp ZnkgdG9vbCBiZWluZyBkaXNjdXNzZWQgaGVyZSBpcyBjb25mb3JtYW50IHdpdGggdGhlIGN1cnJl bnQgRURLIElJIEMgQ29kaW5nIFN0eWxlIFNwZWNpZmljYXRpb24uDQpJIGFtIG5vdCBhd2FyZSBv ZiBhbnkgY2hhbmdlcyB0aGF0IGFyZSByZXF1aXJlZCB0byB0aGF0IHNwZWMuDQoNCj4gDQo+IDQu IEkgZmVlbCBsaWtlIGlmIHRoZSBvdGhlciBjb2RlIHN0eWxlIGNoYW5nZXMgYXJlIG5vdCB0YWNr bGVkIG5vdywgdGhleSB3aWxsIG5ldmVyIGJlLCBiZWNhdXNlIHdobyB3YW50cyB0byBkZWFsIHdp dGgNCj4gY29udGludW91cyBjb3NtZXRpYyBjb21taXRzLiBCdXQgYXMgbG9uZyBhcyB0aGVyZSBp cyBhIHRvb2wgbm93IHRvIGVuZm9yY2UgdGhlIGN1cnJlbnQgb25lLCB0aGF0J3Mgbm90IGEgZGVh bGJyZWFrZXIgYXQNCj4gYWxsLiA6KQ0KDQpUaGUgYWRkaXRpb25hbCBkaXNjdXNzaW9uIHRvcGlj cyBJIGhhdmUgc2VlbiB0aGF0IGFyZSBub3QgYWRkcmVzc2VkIGJ5IHNvdXJjZSBmb3JtYXQgdG9v bHM6DQoNCjEpIEFsbG93aW5nIGxvY2FsIHZhcmlhYmxlcyB0byBiZSBkZWNsYXJlZCBpbiBzY29w ZSBvZiBpZi93aGlsZS9jYXNlLiAgDQogICAqIEN1cnJlbnQgc3R5bGUgb25seSBhbGxvd3MgbG9j YWxzIHRvIGJlIGRlY2xhcmVkIGF0IHRvcCBvZiBmdW5jdGlvbi4NCjIpIEFsbG93IGxvY2FsIHZh cmlhYmxlcyB0byBiZSBhc3NpZ25lZCB0byBhIHZhbHVlIGluIHRoZWlyIGRlY2xhcmF0aW9uLg0K MykgQWxsb3cgbG9jYWwgdmFyaWFibGVzIHRoYXQgYXJlIHN0cnVjdC9hcnJheSB0byBiZSBhc3Np Z25lZCBhIHZhbHVlIGluIHRoZWlyIGRlY2xhcmF0aW9uDQogICAqIERlcGVuZHMgb24gc3VwcG9y dCBmb3IgbWVtY3B5KCkvbWVtc2V0KCkgaW50cmluc2ljcyBmb3IgYWxsIHN1cHBvcnRlZCB0b29s IGNoYWlucy4NCjQpIFVzZSBvZiBTVEFUSUMgdnMgc3RhdGljLg0KDQpQbGVhc2UgbGV0IG1lIGtu b3cgaWYgSSBtaXNzZWQgYW55IG9mIHRoZSBhZGRpdGlvbmFsIHRvcGljcy4NCg0KPiANCj4gQmVz dCByZWdhcmRzLA0KPiBNYXJ2aW4NCj4gDQo+IDA5LjExLjIwMjEgMDQ6MDM6MDYgS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjoNCj4gDQo+ID4gQW5kcmV3LA0K PiA+DQo+ID4gSSB0aGluayBNaWNoYWVsIEt1YmFja2kgc3RhcnRlZCB3aXRoIGEgbnVnZXQgZmVl ZCBiZWNhdXNlIHRoYXQgY2FuIGJlIGVhc2lseSB1c2VkIGJ5IEVESyBJSSBDSSBhZ2VudHMuDQo+ ID4NCj4gPiBIb3dldmVyLCB0aGF0IGRvZXMgbm90IHdvcmsgYXMgZWFzaWx5IGZvciBhbGwgZGV2 ZWxvcG1lbnQgZW52aXJvbm1lbnRzIHVzaW5nIFdpbmRvd3MsIExpbnV4LCBhbmQgTWFjT1MuwqAg Q3JlYXRpbmcNCj4gcmVsZWFzZXMgdGhhdCBjYW4gYmUgZWFzaWx5IGluc3RhbGxlZCBieSBkZXZl bG9wZXJzIGlzIGNyaXRpY2FsIGZvciBzdWNjZXNzLg0KPiA+DQo+ID4gRm9yIE1hY09TLCB0aGVy ZSBpcyBhIGhvbWVicmV3IHJlY2lwZS7CoCBZb3Ugc2hvdWxkIGp1c3QgaGF2ZSB0byB1cGRhdGUg dGhlIFVSTCB0byB0aGUgdW5jcnVzdGlmeSBmb3JrLg0KPiA+DQo+ID4gaHR0cHM6Ly9tYWNhcHBz dG9yZS5vcmcvdW5jcnVzdGlmeS8NCj4gPg0KPiA+IEFkZGluZyB0aGUgaW5zdGFsbGF0aW9uIGlu Zm9ybWF0aW9uIHRvIHRoZSBFREsgSUkgR2V0dGluZyBTdGFydGVkIHBhZ2Ugd291bGQgYmUgYSBn b29kIHBsYWNlIHRvIGNhcHR1cmUgdGhlIGRldmVsb3Blcg0KPiBpbnN0YWxsLg0KPiA+DQo+ID4g TWlrZQ0KPiA+DQo+ID4gKkZyb206KiBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0KPiA+ ICpTZW50OiogTW9uZGF5LCBOb3ZlbWJlciA4LCAyMDIxIDY6NDcgUE0NCj4gPiAqVG86KiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gKkNjOiogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+OyBN aWNoYWVsIEt1YmFja2kgPE1pY2hhZWwuS3ViYWNraUBtaWNyb3NvZnQuY29tPjsgTGVpZg0KPiBM aW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+OyBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29t OyByZWJlY2NhQG51dmlhaW5jLmNvbTsgQnJldCBCYXJrZWxldw0KPiA8QnJldC5CYXJrZWxld0Bt aWNyb3NvZnQuY29tPg0KPiA+ICpTdWJqZWN0OiogUmU6IFtlZGsyLWRldmVsXSBQcm9ncmVzcyBv biBnZXR0aW5nIFVuY3J1c3RpZnkgd29ya2luZyBmb3IgRURLMj8NCj4gPg0KPiA+DQo+ID4NCj4g Pg0KPiA+IE9uIE5vdiA4LCAyMDIxLCBhdCA1OjEzIFBNLCBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gSEkgQW5kcmV3LA0KPiA+ DQo+ID4gR3JlYXQgZmVlZGJhY2suDQo+ID4NCj4gPiBXaGF0IHlvdXIgcHJlZmVycmVkIHdheSB0 byBpbnN0YWxsIGEgdG9vbCBsaWtlIHRoaXM/wqDCoElmIHdlIGNvbGxlY3QgdGhhdCBkYXRhIGZy b20gdGhlIGNvbW11bml0eSwgd2UgY2FuIG1ha2Ugc3VyZSB0aGUNCj4gcGlwZWxpbmUgZ2VuZXJh dGVzIHRoZSByaWdodCB0eXBlIG9mIGluc3RhbGxlcnMuDQo+ID4NCj4gPg0KPiA+IEkgY291bGQg bm90IGZpZ3VyZSBvdXQgaG93IHRvIGRvd25sb2FkIGFuIGluc3RhbGxlciBmcm9tIHRoZSBsaW5r cy4NCj4gPg0KPiA+IElmIEkgZ28gdG/CoGh0dHA6Ly91bmNydXN0aWZ5LnNvdXJjZWZvcmdlLm5l dMKgSSBzZWXCoGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3VuY3J1c3RpZnkvZmls ZXMvwqBhbmQgYSBidXR0b24gdG8NCj4gZG93bmxvYWQgYmluYXJpZXMuIE5vdCBpZGVhbCB0aGF0 IGl0IGlzIG9ubHkgZm9yIFdpbmRvd3MgYnV0IGF0IGxlYXN0IHRoZSB3b3JrZmxvdyB3YXMgb2J2 aW91cy4gTG9va3MgbGlrZSBJIG5lZWQgdG8gYnVpbGQNCj4gbXkgb3duIHZlcnNpb24gZm9yIG1h Y09TLCBub3QgaWRlYWwgYnV0IEkgY2FuIGF0IGxlYXN0IGZpZ3VyZSB0aGF0IG91dC4NCj4gPg0K PiA+IFdvcnN0IGNhc2Ugd2UgY2FuIGhhdmUgYSBUaWFub2NvcmUub3JnW2h0dHA6Ly9UaWFub2Nv cmUub3JnXcKgcGFnZSB0byBkZXNjcmliZSBhIHNpbXBsZSByZWNpcGUgdG8gaW5zdGFsbCB0aGUg dG9vbC4gV2l0aA0KPiBzdGVwIGJ5IHN0ZXAgaW5zdHJ1Y3Rpb25zIHNvbWUgb25lIGNhbiBqdXN0 IHR5cGUgaW4gd2l0aG91dCB0aGlua2luZyB0b28gbXVjaC4NCj4gPg0KPiA+IFRoYW5rcywNCj4g Pg0KPiA+IEFuZHJldyBGaXNoDQo+ID4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPg0KPiA+IE1pa2UN Cj4gPg0KPiA+ICpGcm9tOirCoEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+ID4gKlNl bnQ6KsKgTW9uZGF5LCBOb3ZlbWJlciA4LCAyMDIxIDU6MDkgUE0NCj4gPiAqVG86KsKgZGV2ZWxA ZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gPiAqQ2M6KsKgTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT47IE1p Y2hhZWwgS3ViYWNraSA8TWljaGFlbC5LdWJhY2tpQG1pY3Jvc29mdC5jb20+OyBMZWlmIExpbmRo b2xtDQo+IDxsZWlmQG51dmlhaW5jLmNvbT47IG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb207 IHJlYmVjY2FAbnV2aWFpbmMuY29tOyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jv c29mdC5jb20+DQo+ID4gKlN1YmplY3Q6KsKgUmU6IFtlZGsyLWRldmVsXSBQcm9ncmVzcyBvbiBn ZXR0aW5nIFVuY3J1c3RpZnkgd29ya2luZyBmb3IgRURLMj8NCj4gPg0KPiA+IE1Ja2UsDQo+ID4N Cj4gPiBJIGNvdWxkIG5vdCBmaWd1cmUgb3V0IGhvdyB0byBkb3dubG9hZCB1bmNydXN0aWZ5IHRv b2wgZnJvbSB0aGUgcHJvdmlkZWQgbGluay4gOTklIG9mIHRoZSBwZW9wbGUgYXJlIGp1c3QgZ29p bmcgdG8gd2FudA0KPiB0byBpbnN0YWxsIHRoZSB0b29sLCBub3QgYmUgYSBkZXZlbG9wZXIgb2Yg dGhlIGZvcmsuIFdlIHNob3VsZCBoYXZlIHNvbWUgc2ltcGxlIGluc3RydWN0aW9ucyBvbiBob3cg dG8gZG93bmxvYWQgdGhlIHRvb2wuDQo+ID4NCj4gPiBUaGUgbGluayBwb2ludHMgdG8gc29tZXRo aW5nIGdpdCB3ZWIgdmlldyBsb29raW5nIEF6dXJlIERldk9wcyBwYWdlIGFuZCB0YWxrcyBhYm91 dCB0aGlzIE51Z2V0IHRoaW5nIEkga25vdyBub3RoaW5nDQo+IGFib3V0LiBJIHJhbiBvdXQgb2Yg dGltZSBhbmQgaGFkIHRvIGdpdmUgdXAgdHJ5aW5nIHRvIGRvd25sb2FkIHRoZSB0b29sLg0KPiA+ DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4gQW5kcmV3IEZpc2gNCj4gPg0KPiA+DQo+ID4NCj4gPiBP biBOb3YgOCwgMjAyMSwgYXQgNDoyMyBQTSwgTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gSGVsbG8sDQo+ID4NCj4gPiBHb29kIGlu Zm9ybWF0aW9uIGluIHRoaXMgdGhyZWFkIG9uIGNvZGUgc3R5bGUuDQo+ID4NCj4gPiBTb21lIG9m IHRoZSB0b3BpY3MgYXBwbHkgdG/CoHVuY3J1c3RpZnnCoGFuZCBzb21lIGFyZSBvdXQgb2Ygc2Nv cGUgZm9yIHdoYXTCoHVuY3J1c3RpZnnCoGNhbiBmaXggb24gaXRzIG93bi4NCj4gPg0KPiA+IEkg d291bGQgbGlrZSB0byBmb2N1cyBvbiBhIGRhdGUgdG8gY29udmVydCBhbGwgc291cmNlIGNvZGUg aW4gZWRrMiByZXBvIHVzaW5nIHRoZcKgdW5jcnVzdGlmecKgdG9vbCBhbmQgdG8gY2FwdHVyZSB0 aGUNCj4gb3RoZXIgY29kZSBzdHlsZSB0b3BpY3MgaW50byB0aGVpciBvd24gdGhyZWFkIGFuZGJ1 Z3ppbGxhcy4NCj4gPg0KPiA+IEkgd291bGQgbGlrZSB0byBwcm9wb3NlIGEgY29udmVyc2lvbiBk YXRlIGZvcsKgdW5jcnVzdGlmecKgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGVkazItc3RhYmxlMjAy MTExIHJlbGVhc2Ugb24gMjAyMS0xMS0yNi4NCj4gPg0KPiA+IEkgaGF2ZSBiZWVuIHdvcmtpbmcg d2l0aCBNaWNoYWVsIEt1YmFja2kgb24gYSBidWlsZCBjb21wYXJpc29uIHRvb2wgdGhhdCB2ZXJp ZmllcyB0aGF0IHRoZSBidWlsZCBnZW5lcmF0ZSB0aGUgc2FtZQ0KPiBvYmovbGliL2RsbC9lZmkv ZnYvZmTCoGZpbGVzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlwqB1bmNydXN0aWZ5wqBjaGFuZ2VzLsKg wqBXZSB3b3VsZCBydW4gYW5kIHB1Ymxpc2ggdGhlIHJlc3VsdHMgZnJvbSB0aGlzIHRvb2wNCj4g YmVmb3JlIGNvbW1pdHRpbmcgdGhlIGNoYW5nZXMuDQo+ID4NCj4gPiBXZSBuZWVkwqBUaWFub0Nv cmXCoGNvbW11bml0eSBhcHByb3ZhbCBvZiB0aGUgZm9sbG93aW5nOg0KPiA+DQo+IDEuID4gQXBw cm92ZSBmb3JtYXQgb2YgQyBzb3VyY2UgZ2VuZXJhdGVkIGJ5IHRoZcKgdW5jcnVzdGlmeS4NCj4g Mi4gPiBBcHByb3ZlwqB1bmNydXN0aWZ5wqBjaGFuZ2VzIHJpZ2h0IGFmdGVyIGVkazItc3RhYmxl LTIwMjExMSByZWxlYXNlLg0KPiAgIDEuID4gRXh0ZW5kIGNvZGUgZnJlZXplIHVudGlsIHRoZXNl IGNoYW5nZXMgYXJlIGNvbW1pdHRlZC4NCj4gMy4gPiBSZXF1aXJlIHVzZSBvZsKgdW5jcnVzdGlm ecKgdG9vbCBiZWZvcmUgc3VibWl0dGluZyBwYXRjaCByZXZpZXcgZW1haWxzIG9yIFBScy4NCj4g ICAxLiA+IFRoZSByZXF1aXJlZCB2ZXJzaW9uIHdvdWxkIGJlIGEgZm9ybWFsbHkgcmVsZWFzZWQg dmVyc2lvbsKgwqBmcm9tIHRoZSBmb3JrIG1haW50YWluZWQgYnkgTWljaGFlbCBLdWJhY2tpIHVu dGlsIHRoZQ0KPiBjaGFuZ2VzIGNhbiBiZcKgdXBzdHJlYW1lZC4NCj4gICAyLiA+IGh0dHBzOi8v ZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvVW5jcnVzdGlmeQ0KPiA0LiA+IEFkZCBFREsgSUkgQ0kg Y2hlY2sgdG8gdmVyaWZ5IHRoYXQgYWxsIFBScyBzdWJtaXR0ZWQgZXhhY3RseSBtYXRjaMKgdW5j cnVzdGlmaWVkwqB2ZXJzaW9uLsKgwqBSZWplY3QgUFJzIHRoYXQgZG8gbm90DQo+IG1hdGNoIGV4 YWN0bHkuDQo+IDUuID4gSW1wbGVtZW50IGEgZ2l0IGhvb2sgYXZhaWxhYmxlIHRoYXQgd291bGQg YXV0b21hdGljYWxseSBydW7CoHVuY3Jpc3R1ZnnCoGJlZm9yZSBjb21taXR0aW5nIGNoYW5nZXMg dG8gYSBsb2NhbCBicmFuY2ggb2YNCj4gYW4gZWRrMiByZXBvLg0KPiA+DQo+ID4gVGhhbmtzLA0K PiA+DQo+ID4gTWlrZQ0KPiA+DQo+ID4gKkZyb206KsKgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxl LmNvbT4NCj4gPiAqU2VudDoqwqBUaHVyc2RheSwgT2N0b2JlciA3LCAyMDIxIDI6MDkgUE0NCj4g PiAqVG86KsKgTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gPiAqQ2M6KsKg ZWRrMi1kZXZlbC1ncm91cHMtaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPjsgS2lubmV5LCBNaWNo YWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTGVpZiBMaW5kaG9sbQ0KPiA8bGVp ZkBudXZpYWluYy5jb20+O8KgbWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbTvCoHJlYmVjY2FA bnV2aWFpbmMuY29tOyBNaWNoYWVsIEt1YmFja2kgPE1pY2hhZWwuS3ViYWNraUBtaWNyb3NvZnQu Y29tPjsNCj4gQnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+ ICpTdWJqZWN0OirCoFJlOiBbZWRrMi1kZXZlbF0gUHJvZ3Jlc3Mgb24gZ2V0dGluZyBVbmNydXN0 aWZ5IHdvcmtpbmcgZm9yIEVESzI/DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4g T24gT2N0IDcsIDIwMjEsIGF0IDE6NDMgUE0sIE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0 ZW8uZGU+IHdyb3RlOg0KPiA+DQo+ID4gSGV5IE1pa2UsDQo+ID4gSGV5IEFuZHJldywNCj4gPg0K PiA+IEknbGwganVzdCByZXBseSB0byBib3RoIG1haWxzIGF0IG9uY2UgOikNCj4gPg0KPiA+IE9u IDA3LzEwLzIwMjEgMTk6MzYsIEFuZHJldyBGaXNoIHdyb3RlOg0KPiA+DQo+ID4NCj4gPg0KPiA+ DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiDigKYNCj4gPg0KPiA+IFRoYW5rcyEgSSdkIGtlZXAg U1RBVElDIGFjdHVhbGx5IGp1c3QgZm9yIHRoZSBzYWtlIG9mIG5vdCBkb2luZyBuby1vcCBjaGFu Z2VzIHRoYXQgZG8gbm90IHJlYWxseSBkbyBhbnl0aGluZyBhbmQgZm9yDQo+IGNvbnNpc3RlbmN5 IHdpdGggQ09OU1QsIGJ1dCB3aGF0ZXZlciB3b3JrcyByZWFsbHkuDQo+ID4NCj4gPg0KPiA+DQo+ ID4NCj4gPiDigKYNCj4gPg0KPiA+IFllcy4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+IOKApg0K PiA+DQo+ID4gVGhpcyBpc3N1ZSBpcyBpbmRlcGVuZGVudCBvZiBDT05TVC4gSeKAmW0gbm90IHN1 cmUgYSBjb2Rpbmcgc3R5bGUgdG9vbCBpcyBzbWFydCBlbm91Z2ggdG8gY2F0Y2ggdGhpcyBnZW5l cmljYWxseT8gWW91IG5lZWQNCj4gYW4gdW5kZXJzdGFuZGluZyBvZiBDIHR5cGVzIHRvIGtub3cg aWYgdGhlIGxvY2FsIHZhcmlhYmxlIGFzc2lnbm1lbnQgaXMgZ29pbmcgdG8gdHJpZ2dlciBhIG1l bWNweSgpLg0KPiA+DQo+ID4gV2hhdCBJ4oCZdmUgc2VlbiBpbiB0aGUgcmVhbCB3b3JsZCBpcyB0 aGUgZmlybXdhcmUgY29tcGlsZXMgd2l0aCAtT3Mgb3IgTFRPIHRvIGZpdCBpbnQgaGUgUk9NIGZv ciBERUJVRyBhbmQgUkVMRUFTRSwgYW5kDQo+IHRoZSBvcHRpbWl6ZXIgb3B0aW1pemVzIGF3YXkg dGhlIGNhbGwgdG8gbWVtY3B5LiBUaGVuIGlmIHlvdSB0cnkgdG8gYnVpbGQgTk9PUFQgKG9yIG92 ZXIgcmlkZSB0aGUgY29tcGlsZXIgZmxhZ3Mgb24gYW4NCj4gaW5kaXZpZHVhbCBkcml2ZXIvbGli KSB5b3UgZmFpbCB0byBsaW5rIGFzIG9ubHkgdGhlIE5PT1BUIGJ1aWxkIGluamVjdHMgdGhlIG1l bWNweS4NCj4gPg0KPiA+ICsxDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+IFRodXMgSSB0 aGluayB0aGUgYmVzdCB3YXkgdG8gZW5mb3JjZSB0aGlzIHJ1bGUgaXMgdG8gY29tcGlsZSBhIHBy b2plY3QgTk9PUFQuIEnigJltIHRyeWluZyB0byByZW1lbWJlciBhcmUgdGhlcmUgZmxhZ3MgdG8N Cj4gYnVpbHQgdG8gdGVsbCBpdCB0byBjb21waWxlIGFuZCBza2lwIHRoZSBGRCBjb25zdHJ1Y3Rp b24/IE1heWJlIHdlIHNob3VsZCBhZHZvY2F0ZSBwbGF0Zm9ybXMgYWRkIGEgTk9PUFQgYnVpbGQg dGFyZ2V0IHRoYXQNCj4ganVzdCBjb21waWxlcyB0aGUgY29kZSwgYnV0IGRvZXMgbm90IGNyZWF0 ZSB0aGUgRkQ/DQo+ID4NCj4gPiBJIGtub3cgdGhlcmUgd2VyZSBzdGFiaWxpdHkgY29uY2VybnMg d2l0aCBpbnRyaW5zaWNzIGluIHRoZSBwYXN0LCBidXQgbWVtY3B5KCkgaXMgaW4gdGhlIHN0YW5k YXJkLCBhbmQgdGhlIHJlc3QgcmVtYWluZWQNCj4gc3RhYmxlIHRvIG15IGtub3dsZWRnZS4gTWF5 YmUgaXQncyB0aW1lIHRvIGZpeCB0aGUgaXNzdWVzIGF0IHRoZSByb290PyBXb3JrcyBmb3IgdXM6 DQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FjaWRhbnRoZXJhL09wZW5Db3JlUGtnL3RyZWUvbWFz dGVyL0xpYnJhcnkvT2NDb21waWxlckludHJpbnNpY3NMaWINCj4gPg0KPiA+DQo+ID4NCj4gPiBN YXJ2aW4sDQo+ID4NCj4gPiBHb29kIHBvaW50LiBUaGlzIHdvdWxkIG1ha2UgdGhlIHJ1bGUgbW9v dC4gU28gbWF5YmUganVzdCByZW1vdmluZyB0aGUgcmVxdWlyZW1lbnQgd291bGQgYmUgdGhlIGVh c2llc3QgbG9uZyB0ZXJtIGZpeC4NCj4gPg0KPiA+IE90aGVyIGVtYmVkZGVkIHByb2plY3RzIEkg a25vdyBvZiBkbyB0aGlzIHRvbywgYW5kIGFzIHlvdSBwb2ludCBvdXQgdGhlIGNvbXBpbGVycyBr ZWVwIHRoZXNlIEFQSXMgc3RhbmRhcmQgZm9yIGZvbGtzIHRoZQ0KPiBwcm92aWRlIHRoZWlyIG93 biBydW50aW1lcy4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPg0KPiA+IEFuZHJldyBGaXNoDQo+ID4N Cj4gPg0KPiA+DQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gTWFydmluDQo+ID4NCj4gPg0K PiA+DQo+ID4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPg0KPiA+IEFuZHJldyBGaXNoDQo+ID4NCj4g Pg0KPiA+DQo+ID4NCj4gPiDigKYNCj4gPg0KPiA+DQo+ID4NCj4gDQo+IA0KPiANCj4gDQoNCg==