From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web08.134.1633626368823326076 for ; Thu, 07 Oct 2021 10:06:09 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=oqKhyR02; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10130"; a="206433876" X-IronPort-AV: E=Sophos;i="5.85,355,1624345200"; d="scan'208";a="206433876" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Oct 2021 10:05:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,355,1624345200"; d="scan'208";a="440340174" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga003.jf.intel.com with ESMTP; 07 Oct 2021 10:05:26 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 7 Oct 2021 10:05:25 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.12; Thu, 7 Oct 2021 10:05:25 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2242.12 via Frontend Transport; Thu, 7 Oct 2021 10:05:25 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.44) 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.12; Thu, 7 Oct 2021 10:05:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bvee7unAuNLe9NywKt792UnIQgabw7Ot6bzapDv+3YIcPQO9itieyvKPckOqX/FMBoVRLFTk2lwye38O7FFlgzu7O6JAGppu4NsSiV+szKZ/2Z39xosDX1XsuQqYY/NlHbGI79BkH8/RofVBe0SWPnsPlgf21A8geMmve+LUxG5JrdGP6lrevgkz9Uo0HFeUAkacewOrlqJKPumCf7NvVYtm91Cabdu7ZrnSPR2O3jP5bz+jDQrNu5hi04CYJZ0ewGY1e7IXF42AeVYYg3U0jnVPpBtfnTuLghMPV3sdsMLBhj6qfpSVT0K8wsPelXYzZZotQl9Sz09S0dE575Edkg== 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=OKmGT66UuWBSCbV/FPjCKxIfOPhBpjhLRioSbPLrO28=; b=fH7rWowZCNHc4yeoLqgL8uJnTbYQfkWC/jxjzPkkLGFkK+BZs7bo8Jmd/ChnWzG637nBcK5Psod0A0Lk7XjemVUzPN8fjAuwPhZxg5ZmmrwBPv6lv9uRptF/wwnvSZkymAUy/dgAr/4S8EzkadRHSLMOZSenfD8xc8dYRMtzjK0kQZVfhlO1az3Fky6A37HqC0LwP60ujStQ0uIY/a8J3+D8zpoCyyTato30hFT+NDEck46AW44JDwsNpBjumnVjC7rjXehaeKdIyy289+Yxqx00RBnSPfwe9UYt+j1pL5PSCw/w4qwufl6xIc0B7jMLISH4bKhYd4j5LSASuQJ9IA== 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=OKmGT66UuWBSCbV/FPjCKxIfOPhBpjhLRioSbPLrO28=; b=oqKhyR02iroqpup6ZWJiwxALlBRJDBNDNJ7PPPQGPha4/HUdfOXQIqJUCwc1qKw9aJCiICUBaeZ/9mLMy618h1cb4pIbCi5Kjo5gNq7zAyHto92MDiiezJ6LBSuSWisOtB4Lj5VV/7zZHmwBE/DmjBsF1Zy7/IQsVjpCBjptdZQ= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR1101MB2208.namprd11.prod.outlook.com (2603:10b6:301:4d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.20; Thu, 7 Oct 2021 17:05:23 +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.4587.019; Thu, 7 Oct 2021 17:05:23 +0000 From: "Michael D Kinney" To: Leif Lindholm , "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" , "Kinney, Michael D" CC: "mhaeuser@posteo.de" , "rebecca@nuviainc.com" , Michael Kubacki , "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+rpv6t2hbMAgAABlQCAAAXQAIBRHuOAgABiGnA= Date: Thu, 7 Oct 2021 17:05:23 +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> In-Reply-To: <20211007104813.wa4rmfsqgcpvnzwt@leviathan> 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: nuviainc.com; dkim=none (message not signed) header.d=none;nuviainc.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5183c970-7d63-449d-4f1c-08d989b4a712 x-ms-traffictypediagnostic: MWHPR1101MB2208: 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: 9wZ46RCWwb8bMqF3isimAKeDea+PHTXHq/o2puxhM7ERCm/2Q1USv0zOcnTLsHdgW0nj3pQkHfhHlr/l+pui7VybdWqqB51aaVdmgM/sWV0kXrJBol4hMCP9qj3gIwYZXQxT0yr3di5SVTHFX7+s1zickaGAj3suoNLwJ79Z0VvDmqodMY9FURAjKGZz3Ftmo4sOREFHMMIdTyIAe8B0SWoxxYtaLCJpVqM5zp+5mzd8/BBdOoQ5PUQhRamddsbahgnnJ75BYnxsEfoz0L+20FLL+bDxE2bVUXh7/g+qR9Zj0XR6FXhNymkmOq3KeT7iVznjzRLo2wj4hPEQVfNWXnSS0U73onURfpYsVtNniUvUZnEVTl4NKDh6gVRZWqBG8Sgel1AiLyorD7WAM8qDk49XUtPo9vRsqIcGzPUc0jx1lWfaj2BPy1IKdtLwz75iXswvGJ7QQU0wgN+TBs6h26sZNnnOJ1CyA5mXESahZ9TRRG5i+1gl1uWO+pyC4JKrp2k7dH0t5g/zKstKCPK2jB44Y1pkF6Oy+Oda9VuxeTm5maIOxYpl6StQ7logjZAaxyXBLHqV0lpwLa4AnGwu2Zc9xxeXqQvb97qu5rIcAMYw3z5N37d5+RJfCAWWCUDyd3ewIn0Qzjh6L1DphLnCgcL9sE+ESVY9EnDVGrSVbyqLMKs2nZitE1zsHzPyDepDS0qGN36OR55ghQ76jCNQ8OOeHV0+k3P7M/5+kLX6zLRlIUD2z+RyU/oh47hAkTKqcIh2dF0OYtfCwxR5PSiT3huIlmEfk1ro9QmmNRwjT575ghHNSF7PcKEGD3Jp6g8xpj12wE/TvZbuyJo7VuC7OA== 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)(366004)(9686003)(508600001)(33656002)(2906002)(5660300002)(86362001)(54906003)(64756008)(66556008)(110136005)(66476007)(71200400001)(55016002)(8936002)(66946007)(316002)(38100700002)(66446008)(38070700005)(66574015)(122000001)(83380400001)(186003)(966005)(7696005)(26005)(8676002)(53546011)(6506007)(4326008)(52536014)(76116006);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d2ppbnhWMXR6SUl3dU1Yc2VFblVrci80M29pTWxselhzMzlwTjhYcHRVRjA0?= =?utf-8?B?amxhdzQvR1VwcFprN1dhdEhYMktIK2x2alN6T3hlbUI0RDZieU5ja0UzYkZW?= =?utf-8?B?L2JhSThKVXdDNGhDZDByM1ErV2x2TkhsWDBXRzh2WXltZ1JzbHVPWk8ydmRp?= =?utf-8?B?S053Y2IwdXRKS1hvSXhORUIxNEZUYUEwYWx2NGoxcjk5WHM3Z0Z4dGZiQmp3?= =?utf-8?B?eHN5dzJDNXp1ejFKZVA2NFd3dXVHU2ZCR0RnVUd3c3lMQ0pYRVpCNUZxcnVu?= =?utf-8?B?NTFjNkM5T2h0WlZyZ3NtMzRGYWhCM3o4ajF5M2JxWloyNW50TlZoZDBVbXFM?= =?utf-8?B?M2FJOTJHdjZqZUhyTVhzRXVFV2I1V3M1UE5ENjRpc0NmVFlHa2xiOW4yLzN4?= =?utf-8?B?UG5Ja1VBNVlLMzZzN2cyb3FjNENBVWFGdklVZDFkUlJZVTRhTWhidVBRU3VT?= =?utf-8?B?RDdBT2h6bDBrVHZuUlcvdkk2amI5eVhiYUFNTEQvYmNDem5oU3Q0RGRzUzZX?= =?utf-8?B?WmVCdHlRRGpFL214dmhyMldhWVVOYlNtR1A5U3NHQmxpb1grUnowNGxCaTZu?= =?utf-8?B?eVhLQlVveTFQMnRmNWxHU1MxbmRwZ1ZoWlhqTjFqWnZPb05zd3VOWktHSGdl?= =?utf-8?B?MzBjQzNYaCtmUnMzaUdFRHorZUdQMjlhWjMwQ3F2aVM1dzRrSGpuK0pNWUtw?= =?utf-8?B?elRmak45Ti9aVmJFNkZvdnJPYnJuMjdHSGg4cWpRY2xOMVhtTStMUE1YRzlo?= =?utf-8?B?dFJadzEvZElrU3FwQmIySUljaCt3YWlYM1pVMUpSRXNXb3dSUEF0NjF6UE1t?= =?utf-8?B?NTV3aWRtU01KakFsQSt6aVFBQ0dzVVpad3E1bklGY0ZBTzV2T0s2aXpJUVJX?= =?utf-8?B?MkNEcnNhcU9GbjdNcTdydUNYQk9sUEN4eFlSUFUzeDJreWJ2b1oyOE4vbFBw?= =?utf-8?B?d3ZKb1I5V0JvVWdEV0c1KzZCdTFDcXhBanJQd2ZHd204NlRNL0hoZlBidEtO?= =?utf-8?B?MHlNOXZmQzBLVkMva2tMWW1Wb2IvZFlYK1M0Z0twQ3pSVTRRMHRDVWcySGgx?= =?utf-8?B?SHIrRG5tQncxblNVZHJ0ejVOalFOWU94NzU0VjBNUmJrWHRObmtjaDkwbnRB?= =?utf-8?B?NXdEK2tMVTUxVk9rR3luSllJaUc3UExhU0xtbWg2djFodGgza200NEt2NExG?= =?utf-8?B?VDRlTFpiS0Jid01rVWNTd2xLbnVzdjB6cWZDU2w4VThqOGNOckkyOHdXREJU?= =?utf-8?B?R0pxR3F6WEl1R3YrbDhYSTFuSStSMGJ3dDZMZFNZMER4MXFiSUczdU5VMFFU?= =?utf-8?B?Qkh6c2R6UytHZldXdUNkVjAzSnJsZ2gzcnUyTXVzNUVpV2JoNStkenAzVjYv?= =?utf-8?B?VTN2SmdBQnNzUVBnRTZJRFp2TGpFUDdJZGNZQlNaeHhoajVPZDhieGkxTnFs?= =?utf-8?B?QmlnVGRmejVTWjZtYlludjFmZVVIV2VUc0xsYmt5TFlzK3dCc1BZeEoxeXpl?= =?utf-8?B?cXFPTVE2alRnSFBkaEZ0dGxFQ0VjRzNxRmYvcW4zNXluelRlTFdZT0RWcVF2?= =?utf-8?B?UVVFZjZ1eXFtM2c5c2thWE9GZVV4WjRjaGc3Qy9tSS9WUG5nbW9aZERwS2Ri?= =?utf-8?B?RGkrejZSR3huYlNWb01wVWQ4aVExWDY1TXdNRFd0YytYMTY3UVQ0NldUR1pX?= =?utf-8?B?ekJIYWJOVU9ycmNiWWkxZkpuYndZZ01hTzd3TitaNzNYdkV0L0tXaDRLU1I3?= =?utf-8?Q?X+e76c0I/WYuGC9Vag=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: 5183c970-7d63-449d-4f1c-08d989b4a712 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2021 17:05:23.7807 (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: dp00YIsotbBwlgFMymGvhJbMPPGv/Dv3TQNHoCUA0hkkzL7su6J9pn8mtWP/Zk/o1A9hlA1VZiHLfa1NqCiHY/BYzYsg3n6Dph8YveoldLQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2208 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 SGkgTGVpZiwNCg0KVGhhbmtzIGZvciB0aGUgZmVlZGJhY2suICBBZGp1c3RpbmcgdGhlIEVESyBJ SSBDIENvZGluZyBTdHlsZSBzaG91bGQgYWJzb2x1dGVseQ0KYmUgcGFydCBvZiB0aGlzIGRpc2N1 c3Npb24uICBXZSBuZWVkIHRvIHdvcmsgdG93YXJkcyBzcGVjaWZpYyBwcm9wb3NhbHMuICBIZXJl IGFyZQ0KdGhlIGN1cnJlbnQgb3BlbiBidWdzIGFnYWluc3QgdGhlIEVESyBJSSBDIENvZGluZyBT dHlsZS4gIFBsZWFzZSB1cGRhdGUgb3IgYWRkIG5ldyANCmZvciB0aGUgY2hhbmdlcyB5b3UgYXJl IHN1Z2dlc3RpbmcuDQoNCmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9idWdsaXN0LmNn aT9idWdfc3RhdHVzPVVOQ09ORklSTUVEJmJ1Z19zdGF0dXM9Q09ORklSTUVEJmJ1Z19zdGF0dXM9 SU5fUFJPR1JFU1MmY29sdW1ubGlzdD1wcm9kdWN0JTJDY29tcG9uZW50JTJDc2hvcnRfZGVzYyUy Q3JlcG9ydGVyJmNvbXBvbmVudD1Eb2N1bWVudGF0aW9uJmYxPWNmX2RvY3VtZW50cyZsaXN0X2lk PTIzOTQ0Jm8xPWVxdWFscyZwcm9kdWN0PUVESzImcXVlcnlfZm9ybWF0PWFkdmFuY2VkJnJlc29s dXRpb249LS0tJnYxPUVESyUyMElJJTIwQyUyMENvZGluZyUyMFN0YW5kYXJkcw0KDQogIDI2NjQg IERpc2NyZXBhbmNpZXMvaW5jb25zaXN0ZW5jaWVzIGluIGNvZGluZyBzdGFuZGFyZHMsIHN0eWxl IGFuZCBleGFtcGxlcyANCiAgMTY5OCAgU3B1cmlvdXMgcnVsZSBhYm91dCBjb21tZW50IHN0eWxl IGluIENDUyA2LjIuMyANCiAgNzEzICAgVXBkYXRlIEVESyBJSSBDIENvZGluZyBzdGFuZGFyZCB0 byBzdGF0ZSBhIHN0cm9uZ2VyIHByZWZlcmVuY2UgZm9yIDgwIGNvbHVtbiBsaW5lIHdpZHRocyAN CiAgNzE0ICAgVXBkYXRlIEVESyBJSSBDIENvZGluZyBTdGFuZGFyZHMgdG8gYWxsb3cgbXVsdGlw bGUgYXJndW1lbnRzIHBlciBsaW5lIGluIGEgZnVuY3Rpb24gY2FsbCANCiAgMTc2NiAgUmVtb3Zl IHVzZSBvZiBTVEFUSUMgbWFjcm9zIGZyb20gRURLIElJIEMgQ29kaW5nIFN0YW5kYXJkIFNwZWNp ZmljYXRpb24gDQogIDIzOTEgIERhbmdsaW5nIHdvcmQgYXQgZW5kIG9mIFNlY3Rpb24gNS4xLjkg SW4tbGluZSBhc3NlbWJsZXIgc2hhbGwgbm90IGJlIHVzZWQNCiAgNzIzICAgNS4xLjggVHlwbyBw cm92aWRlZCBzaG91bGQgYmUgcHJvdmVuIA0KICA4ODQgICBUaGUgY292ZXIuanBnIGZpbGUgZm9y IHRoZSBFREsgSUkgc3BlY3MgaGFzIHRoZSBvbGQgc3R5bGUgbG9nbyANCiAgODM5ICAgTWlub3Ig dHlwb2dyYXBoaWNhbCBlcnJvcnMgDQoNCkFkZGl0aW9uYWwgY29tbWVudHMgYmVsb3cuDQoNClRo YW5rcywNCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExl aWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2Jl ciA3LCAyMDIxIDM6NDggQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBtaWt1YmFja0Bs aW51eC5taWNyb3NvZnQuY29tDQo+IENjOiBtaGFldXNlckBwb3N0ZW8uZGU7IHJlYmVjY2FAbnV2 aWFpbmMuY29tOyBNaWNoYWVsIEt1YmFja2kgPE1pY2hhZWwuS3ViYWNraUBtaWNyb3NvZnQuY29t PjsgQnJldCBCYXJrZWxldw0KPiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPjsgS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFByb2dyZXNzIG9uIGdldHRpbmcgVW5jcnVzdGlmeSB3b3JraW5nIGZvciBF REsyPw0KPiANCj4gSGkgTWljaGFlbCwNCj4gDQo+IEFwb2xvZ2llcywgSSd2ZSBvd2VkIHlvdSBh IHJlc3BvbnNlIChwcm9taXNlZCBvZmYtbGlzdCkgZm9yIGEgd2hpbGUNCj4gbm93Lg0KPiANCj4g Rmlyc3QsIGxldCBtZSBzYXkgSSBodWdlbHkgYXBwcmVjaWF0ZSB0aGlzIGVmZm9ydC4gQXBhcnQg ZnJvbSBhbGlnbmluZw0KPiB0aGUgY29kZWJhc2UocyksIHRoaXMgd2lsbCByZWR1Y2UgbWFudWFs IHJldmlld2luZyBlZmZvcnQNCj4gc3Vic3RhbnRpYWxseSwgYXMgd2VsbCBhcyBjdXR0aW5nIGRv d24gb24gbnVtYmVyIG9mIHJld29yayBjeWNsZXMgZm9yDQo+IGRldmVsb3BlcnMuDQo+IA0KPiBM b29raW5nIGF0IHRoZSBjaGFuZ2VzIHRvICh3ZWxsLCB0aGUgY29tbWVudHMgaW4pIHVuY3J1c3Rp ZnksIHRoaXMNCj4gc2VlbXMgdG8gYmUgY29uc3RyYWluZWQgdG86DQo+IC0gTmV3bGluZSBhZnRl ciAnKCcgZm9yIG11bHRpLWxpbmUgZnVuY3Rpb24gY2FsbHMuDQo+IC0gRGVhbGluZyB3aXRoICIo KCIvIikpIiBmb3IgREVCVUcgbWFjcm9zLg0KPiAtIEZ1bmN0aW9uIHBvaW50ZXIgdHlwZWRlZnM6 DQo+ICAgLSB0eXBlZGVmXG5FRklBUEkNCj4gICAtIGNsb3NpbmcgcGFyZW50aGVzZXMgaW5kZW50 YXRpb24NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgSSd2ZSBtYWRlIGFueSBzZWNyZXQgb3ZlciB0aGUg eWVhcnMgdGhhdCBJIGFtIG5vdCBhDQo+IG1hc3NpdmUgZmFuIG9mIHRoZSBFREsyIGNvZGluZyBz dHlsZSBpbiBnZW5lcmFsLiBTbyBJIHRoaW5rIGZvciBhbnkNCj4gb2YgaXRzIHF1aXJrcyB0aGF0 IGFyZSBzdWJzdGFudGlhbCBlbm91Z2ggdGhhdCB0aGV5IHJlcXVpcmUgbm90IGp1c3QNCj4gY3Vz dG9tIGNvbmZpZ3VyYXRpb24gYnV0IGFjdHVhbCBuZXcgZnVuY3Rpb24gYWRkZWQgdG8gZXhpc3Rp bmcgY29kZQ0KPiBjb25mb3JtYW5jZSB0b29scywgdGhpcyB3b3VsZCBiZSBhbiBleGNlbGxlbnQg cG9pbnQgdG8gc2FuaXRpc2UgdGhlDQo+IGNvZGluZyBzdHlsZSBpbnN0ZWFkLg0KPiANCj4gVGFr aW5nIHRoZXNlIGluIG9yZGVyOg0KPiANCj4gTmV3bGluZSBhZnRlciAnKCcNCj4gLS0tLS0tLS0t LS0tLS0tLS0NCj4gSSB0aGluayB3ZSBhbHJlYWR5IHJlYWNoZWQgYSBsZXZlbCBvZiBmbGV4aWJp bGl0eSBhcm91bmQgdGhpcywgd2hlcmUNCj4gd2UgZG9uJ3QgYWN0dWFsbHkgZW5mb3JjZSB0aGlz IChvciBzaW5nbGUgYXJndW1lbnQgcGVyDQo+IGxpbmUpLiBQZXJzb25hbGx5LCBJJ2QgYmUgaGFw cHkgdG8gdXBkYXRlIHRoZSBjb2Rpbmcgc3R5bGUgYXMNCj4gcmVxdWlyZWQgaW5zdGVhZC4NCg0K DQpIZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSBjaGFuZ2UgdGhhdCB1bmNydXN0aWZ5IGRpZCB0aGF0 IEkgdGhpbmsgeW91DQphcmUgc3VnZ2VzdGluZyBpcyBub3QgcmVxdWlyZWQgd2l0aCBzdXBwb3J0 IGZvciBtdWx0aXBsZSBwYXJhbXMNCnBlciBsaW5lLiAgQ29ycmVjdD8NCg0KQmVmb3JlIFVuY3Jp c3RpZnkNCj09PT09PT09PT09PT09PT09DQogIEFzbUNwdWlkRXggKA0KICAgIENQVUlEX0VYVEVO REVEX1NUQVRFLCBDUFVJRF9FWFRFTkRFRF9TVEFURV9TVUJfTEVBRiwNCiAgICAmRWF4LlVpbnQz MiwgJkVieCwgJkVjeC5VaW50MzIsICZFZHgNCiAgICApOw0KDQpBZnRlciBVbmNyaXN0aWZ5DQo9 PT09PT09PT09PT09PT09PQ0KICBBc21DcHVpZEV4ICgNCiAgICBDUFVJRF9FWFRFTkRFRF9TVEFU RSwNCiAgICBDUFVJRF9FWFRFTkRFRF9TVEFURV9TVUJfTEVBRiwNCiAgICAmRWF4LlVpbnQzMiwN CiAgICAmRWJ4LA0KICAgICZFY3guVWludDMyLA0KICAgICZFZHgNCiAgICApOw0KDQpIZXJlIGlz IHRoZSBCWiBvbiB0aGUgdG9waWMuDQoNCmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9NzE0DQoNCkkgdGhpbmsgeW91IGFyZSBzdWdnZXN0aW5nIHRoYXQgYSA0 dGggc3R5bGUgbWF5IGJlIGFsbG93ZWQNCndoaWNoIHdvdWxkIGJlIHRvIHN1cHBvcnQgYXJndW1l bnRzIGluIHRoZSBzYW1lIGxpbmUgYXMNCnRoZSBmdW5jdGlvbiBuYW1lIGFuZCBhZGRpdGlvbmFs IGFyZ3VtZW50cyBvbiBhZGRpdGlvbmFsDQpsaW5lcy4gIERvIHlvdSB3YW50IHRvIHVwZGF0ZSB0 aGlzIEJaIHdpdGggeW91ciBhZGRpdGlvbmFsDQp0aG91Z2h0cz8NCg0KPiANCj4gREVCVUcgbWFj cm8gcGFyZW50aGVzZXMNCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gSG93IGRvZXMgdW5j cnVzdGlmeSB0cmVhdCBERUJVRyBtYWNyb3Mgd2l0aG91dCB0aGlzIG1vZGlmaWNhdGlvbj8NCj4g RG8gd2Ugc3RhcnQgZ2V0dGluZyBldmVyeXRoaW5nIHR1cm5lZCBpbnRvIG11bHRpLWxldmVsIGlu ZGVudGVkDQo+IG11bHRpLWxpbmUgc3RhdGVtZW50cyB3aXRob3V0IHRoaXMgY2hhbmdlPw0KDQpJ IHRoaW5rIHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgREVCVUcoKSBtYWNybyB1c2luZyBkb3VibGUg KCggYW5kIGRvdWJsZSApKQ0KcGFyZW5zLg0KDQo+IA0KPiBGdW5jdGlvbiBwb2ludGVyIHR5cGVk ZWZzOg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBJIGRvbid0IHNlZSB0aGF0IGZ1 bmN0aW9uIHBvaW50ZXIgdHlwZWRlZnMgbmVlZCB0byByaWdpZGx5IGZvbGxvdyB0aGUNCj4gc2Ft ZSBwYXR0ZXJuIGFzIHRoZSBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbnMgaW1wbGVtZW50aW5nIHRo ZW0uIENvdWxkDQo+IHdlIHVwZGF0ZSB0aGUgY29kaW5nIHN0eWxlIChpZiBuZWVkZWQpIGluc3Rl YWQ/DQoNCkkga25vdyBvbmUgaXNzdWUgd2l0aCBmdW5jdGlvbiBwb2ludGVyIHR5cGVkZWZzIGlz IG1ha2luZyBzdXJlIHRoZSBmb3JtYXQNCmlzIGNvbXBhdGlibGUgd2l0aCBEb3h5Z2VuIGRvY3Vt ZW50IGdlbmVyYXRpb24uICANCg0KICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi90cmVlL21hc3Rlci9CYXNlVG9vbHMvU2NyaXB0cy9QYWNrYWdlRG9jdW1lbnRUb29scw0KDQo+ IA0KPiBCZXN0IFJlZ2FyZHMsDQo+IA0KPiBMZWlmDQo+IA0KPiBPbiBNb24sIEF1ZyAxNiwgMjAy MSBhdCAxNjowMDozOCAtMDQwMCwgTWljaGFlbCBLdWJhY2tpIHdyb3RlOg0KPiA+IFRoZSBlZGsy IGJyYW5jaCB3YXMgY3JlYXRlZCBoZXJlOg0KPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFj a2kvZWRrMi90cmVlL3VuY3J1c3RpZnlfcG9jXzINCj4gPg0KPiA+IFdlIGhhdmUgYSBQcm9qZWN0 IE11IGZvcmsgd2l0aCBjdXN0b20gY2hhbmdlcyB0byB0aGUgVW5jcnVzdGlmeSB0b29sIHRvIGhl bHANCj4gPiBjb21wbHkgd2l0aCBFREsgSUkgZm9ybWF0dGluZyBoZXJlOg0KPiA+IGh0dHBzOi8v ZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvX2dpdC9VbmNydXN0aWZ5DQo+ID4NCj4gPiBUaGUgbGF0 ZXN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGF0dXMgYW5kIGhvdyB0byBleHBlcmltZW50IHdp dGggdGhlDQo+ID4gY29uZmlndXJhdGlvbiBmaWxlIGFuZCB0aGUgdG9vbCBhcmUgaW4gdGhhdCBm b3JrOg0KPiBodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3dpa2kv d2lraXMvVW5jcnVzdGlmeS53aWtpLzEvUHJvamVjdC1NdS0oRURLLUlJKS1Gb3JrLVJlYWRtZQ0K PiA+DQo+ID4gVGhhdCBzYWlkLCBJIGhhdmUgYWxzbyBmaW5pc2hlZCBhIENJIHBsdWdpbiB0byBy dW4gVW5jcnVzdGlmeSB0aGF0IHNob3VsZCBiZQ0KPiA+IHJlYWR5IHNvb24gdG8gaW5pdGlhbGx5 IGRlcGxveSBpbiBQcm9qZWN0IE11LiBCZWZvcmUgZG9pbmcgc28sIEkgYW0gdHJ5aW5nDQo+ID4g dG8gc2V0dGxlIG9uIGFuIGluaXRpYWwgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgbGVzcyBzdHJp Y3RseSBidXQgbW9yZQ0KPiA+IHJlbGlhYmx5IGZvcm1hdHMgdGhlIGNvZGUgdGhhbiBpbiB0aGUg ZXhhbXBsZXMgaW4gdGhvc2UgYnJhbmNoZXMuIEZvcg0KPiA+IGV4YW1wbGUsIHJlbW92ZSBoZXVy aXN0aWNzIHRoYXQgd2hlbiBydW4gYWdhaW5zdCB0aGUgc2FtZSBzZXQgb2YgY29kZQ0KPiA+IG11 bHRpcGxlIHRpbWVzIGNhbiBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRzLiBBbiBleGFtcGxlIHdv dWxkIGJlIGEgcnVsZQ0KPiA+IHRoYXQgcmVmb3JtYXRzIGNvZGUgYmVjYXVzZSBpdCBleGNlZWRz IGEgc3BlY2lmaWVkIGNvbHVtbiB3aWR0aCBvbiBvbmUgcnVuDQo+ID4gYnV0IG9uIHRoZSBuZXh0 IHJ1biB0aGF0IHJlZm9ybWF0dGVkIGNvZGUgdHJpZ2dlcnMgYSBkaWZmZXJlbnQgcnVsZSB0bw0K PiA+IGZ1cnRoZXIgYWxpZ24gdGhlIGNvZGUgYW5kIHNvIG9uLiBBdCBsZWFzdCBpbml0aWFsbHks IHNvbWUgcnVsZXMgbWlnaHQgYmUNCj4gPiB0d2Vha2VkIGluIGEgbW9yZSBjb25zZXJ2YXRpdmUg YXBwcm9hY2ggdGhhdCBjYW4gYmUgdGlnaHRlbmVkIGluIHRoZSBmdXR1cmUuDQo+ID4gT25jZSB0 aGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyByZWFkeSwgd2Ugd2lsbCBiYXNlbGluZSBQcm9qZWN0 IE11IGNvZGUgYXMNCj4gPiBhbiBleGFtcGxlIGFuZCB0dXJuIG9uIHRoZSBwbHVnaW4uIFRoZSBD SSBwbHVnaW4gcnVucyBVbmNydXN0aWZ5IGFnYWluc3QNCj4gPiBtb2RpZmllZCBmaWxlcyBhbmQg aWYgdGhlcmUncyBhbnkgY2hhbmdlcywgaW5kaWNhdGluZyBhIGZvcm1hdHRpbmcNCj4gPiBkZXZp YXRpb24sIHRoZSBkaWZmIGNodW5rcyBhcmUgc2F2ZWQgaW4gYSBsb2cgc28gdGhleSBjYW4gYmUg dmlld2VkIGFzIGENCj4gPiBidWlsZCBhcnRpZmFjdC4NCj4gPg0KPiA+IEkgYW0gbWFraW5nIHBy b2dyZXNzIG9uIHRoZSB1cGRhdGVkIGNvbmZpZyBmaWxlIGFuZCBJIHNob3VsZCBiZSBhYmxlIHRv IHBvc3QNCj4gPiBhICJ1bmNydXN0aWZ5X3BvY18zIiBicmFuY2ggc29vbiB3aXRoIHRoZSByZXN1 bHRzLg0KPiA+DQo+ID4gUmVnYXJkaW5nIGluZGVudGF0aW9uLCBNYXJ2aW4gaXMgcmlnaHQgdGhh dCBVbmNydXN0aWZ5IGNhbm5vdCBzdXBwb3J0IGVkazINCj4gPiBpbmRlbnRhdGlvbiBzdHlsZSBv dXQtb2YtYm94LiBTb21lIGNoYW5nZXMgYXJlIG1hZGUgaW4gdGhhdCBmb3JrIHRvIGhhbmRsZQ0K PiA+IHRoZSBmb3JtYXR0aW5nLiBBdCB0aGlzIHBvaW50LCBpdCBjYW4gaGFuZGxlIHRoZSBpbmRl bnRhdGlvbiBpbiB0aGUgY2FzZXMNCj4gPiBJJ3ZlIHNlZW4uIFVuY3J1c3RpZnkgZG9lcyBwb3Rl bnRpYWxseSBnaXZlIHVzIHRoZSBhYmlsaXR5IHRvIG1hc3NpdmVseQ0KPiA+IGRlcGxveSBjaGFu Z2VzIGFjcm9zcyB0aGUgY29kZWJhc2UgaW4gY2FzZSBhIGRlY2lzaW9uIHdlcmUgbWFkZSB0byBj aGFuZ2UNCj4gPiB0aGUgc3R5bGUuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gTWljaGFlbA0KPiA+ DQo+ID4gT24gOC8xNi8yMDIxIDM6MzkgUE0sIE1hcnZpbiBIw6R1c2VyIHdyb3RlOg0KPiA+ID4g SGV5IFJlYmVjY2EsDQo+ID4gPg0KPiA+ID4gSSB0aGluayBldmVuIFVuY3J1c3RpZnkgaGFzIGlz c3VlcyB3aXRoIHRoZSBFREsgSUkgaW5kZW50YXRpb24gc3R5bGUuDQo+ID4gPiBZb3UgbWlnaHQg d2FudCB0byBjaGVjayB0aGUgVUVGSSBUYWxrYm94IERpc2NvcmQgc2VydmVyLCBJIGhhZCBhIGJy aWVmDQo+ID4gPiBjaGF0IHdpdGggTWljaGFlbCBhYm91dCBpdCB0aGVyZS4gSSBkb24ndCB0aGlu ayByZWFsaXN0aWNhbGx5IGFueSB0b29sDQo+ID4gPiBzdXBwb3J0cyBFREsgSUkncyBpbmRlbnRh dGlvbiBzdHlsZSBob3dldmVyLCBzbyBJJ2QgcHJvcG9zZSBpdCBpcw0KPiA+ID4gY2hhbmdlZC4g VGhpcyBjb3VsZCBiZSBmb3IgbmV3IHN1Ym1pc3Npb25zIG9ubHksIG9yIGFjdHVhbGx5IHRoZSBl bnRpcmUNCj4gPiA+IGNvZGViYXNlIGNvdWxkIGJlIHJlZm9ybWF0dGVkIGF0IG9uY2Ugd2l0aCBh IGdvb2QgdG9vbCBzZXR1cC4gV2hpbGUgdGhpcw0KPiA+ID4gc2NyZXdzIHdpdGggZ2l0IGJsYW1l LCB0aGUgKHRvIG15IHVuZGVyc3RhbmRpbmcpIGRlY2lkZWQgb24gQ1JMRiAtPiBMRg0KPiA+ID4g Y2hhbmdlIGRvZXMgdGhhdCBhbnl3YXksIHNvIGF0IGxlYXN0IHR3byBldmlscyBjb3VsZCBiZSBk ZWFsdCB3aXRoIGluDQo+ID4gPiBvbmUgZ28gcmVhbGx5Lg0KPiA+ID4NCj4gPiA+IEJlc3QgcmVn YXJkcywNCj4gPiA+IE1hcnZpbg0KPiA+ID4NCj4gPiA+IE9uIDE2LzA4LzIwMjEgMjE6MzQsIFJl YmVjY2EgQ3JhbiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gY2MgZGV2ZWxAIC4NCj4gPiA+ID4N Cj4gPiA+ID4gT24gOC8xNi8yMSAxOjMzIFBNLCBSZWJlY2NhIENyYW4gd3JvdGU6DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBJIG5vdGljZWQgYSBtZXNzYWdlIG9uIFR3aXR0ZXIgYWJvdXQgYW4gaWRl YSBvZiB1c2luZyBVbmNydXN0aWZ5DQo+ID4gPiA+ID4gZm9yIEVESzIgaW5zdGVhZCBvZiB0aGUg RUNDIHRvb2wsIGFuZCBjYW1lIGFjcm9zcyBodHRwczovL3d3dy5tYWlsLQ0KPiBhcmNoaXZlLmNv bS9zZWFyY2g/bD1kZXZlbEBlZGsyLmdyb3Vwcy5pbyZxPXN1YmplY3Q6JTIyUmUlNUMlM0ErJTVD JTVCZWRrMiU1Qy0NCj4gZGV2ZWwlNUMlNUQrVGlhbm9Db3JlK0NvbW11bml0eStNZWV0aW5nK01p bnV0ZXMrJTVDLSsyJTVDJTJGNCUyMiZvPW5ld2VzdCZmPTENCj4gPiA+ID4gPiAuDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBJIHdhcyB3b25kZXJpbmcgaWYgdGhlcmUncyBiZWVuIGFueSBwcm9ncmVz cyBvbiBpdCB0aGF0IEkgY291bGQNCj4gPiA+ID4gPiBjaGVjayBvdXQ/DQo+ID4gPiA+ID4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IE1pY2hhZWwgS3ViYWNraTogaW4gdGhhdCBtZXNzYWdlLCB5b3Ug c2FpZDoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICJJJ20gcGxhbm5pbmcgdG8gcHV0IHVwIGEgYnJh bmNoIHRoYXQgd2UgY2FuIHVzZSBhcyBhIHJlZmVyZW5jZQ0KPiA+ID4gPiA+IGZvciBhIGNvbnZl cnNhdGlvbiBhcm91bmQgdW5jcnVzdGlmeSBpbiB0aGUgbmV4dCBjb3VwbGUgb2YNCj4gPiA+ID4g PiB3ZWVrcy4iDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IERpZCB5b3UgZW5kIHVw IGNyZWF0aW5nIHRoYXQgYnJhbmNoLCBhbmQgaWYgc28gY291bGQgeW91IHByb3ZpZGUNCj4gPiA+ ID4gPiBhIGxpbmsgdG8gaXQgcGxlYXNlPw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiAtLQ0KPiA+ID4gPiA+IFJlYmVjY2EgQ3Jhbg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0K PiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KPiA+ DQo=