Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rZch3-005XHk-SF for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Feb 2024 20:14:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rZch3-00CjNu-3Q for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Feb 2024 20:14:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rZch2-00CjNm-F9 for pgsql-hackers@lists.postgresql.org; Mon, 12 Feb 2024 20:14:20 +0000 Received: from mgamail.intel.com ([198.175.65.17]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rZcgx-006re1-Tl for pgsql-hackers@lists.postgresql.org; Mon, 12 Feb 2024 20:14:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1707768856; x=1739304856; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=y8o+5fg6/kEsjmvHQYmybdzIOMh2I7K16X+RwiyPUek=; b=YwRMB0v3PaZi/kZD0mw6rDR9eeIPuCf1Ljxro8rPdHIajmhaE51+LFtY 0I+f5RJHha3jUNt8GAM6lSh6qhePGH2PFvSWPtGS1qm+xRtpkqLEjdAA3 hLrwaa7fsZq5Sp1AobiM+0ogrenB75w2PBoZeFLdBDKWmd7Cd3QTiINgK mmWMnLb7NtpI/Y8UNz/V0lqGv/FcC5tcgR/V1nuNePRqeZtuW+ZO7Rr+k Y5+C6+7O3eJzYQIBnbAVfrxD3mq8IMK9QBJRiJBotAMCZkP7uVV1rMYsm LN33SI/wjhwQuiF7s/z7JRqXsWl8xOBvik6zQhQKppUkiXanq7C4bIpOs g==; X-IronPort-AV: E=McAfee;i="6600,9927,10982"; a="1900200" X-IronPort-AV: E=Sophos;i="6.06,155,1705392000"; d="scan'208";a="1900200" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Feb 2024 12:14:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,155,1705392000"; d="scan'208";a="2989805" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 12 Feb 2024 12:14:11 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.2507.35; Mon, 12 Feb 2024 12:14:11 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 12 Feb 2024 12:14:10 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2507.35 via Frontend Transport; Mon, 12 Feb 2024 12:14:10 -0800 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.169) 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.2507.35; Mon, 12 Feb 2024 12:14:10 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UiJ+xXauHM4O3z2AWsef+eNM8LY+U2yfpoybVM82dQC0Fr8kxGcmWCPUU1SyKIWY0VFiW0ul6BPj4YbPlPMOsEvXglydLCCvWd71cURYhDdrBx9YsryOhlPFXuejhjCfcsdw2T4bNZjTXqQHrc6WZVqqGjgpDiZwgsDrsfzHgEqfN5dBCqsihdmV1JEeaPBt5Ot4cwYxEqymb+yIq6DtLoyzwF5huN5UfrTbFr+txAJ6Lo31aQKyoTGmeJNHnQ69j5grLWhCF16rY2dKDYAGZgTEgD6Aq5+Y4lTG7Buk5wvQjtzXzmIJoYo2Xgj5M15aTg12W4ncHIWaiLC5WctLlQ== 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=y8o+5fg6/kEsjmvHQYmybdzIOMh2I7K16X+RwiyPUek=; b=kWHzKNmYbJP/E+3g6NiSBSZ3FWvWQjjp9pLe7caxhUeNI/uYZ2yEbJtJwmWZ38zVv6Fbr17uRmkBd9Xx4oSQgAjEd/rWxFsbybKVAVnoccK3REGnLKrcvI5Pbs2moefsB6VZfrnrMBAn7ay47m/mnNhx8BzP8KnyBVi8ZZ652ydaZ5o1y2JZZVaGqfFL9/rPLRxmB0oeVH87O/97ycW91xHdh/dOv/v/vC5YkTbrZPQSP35DATeYUu7oIwCGoVcB4sd9DWJuauLl/mcHrla59OD1QnnLfOLRO6p7zA/DNw0sr0E7AEOtUmX8gEbjFoK5BuRPbIhdRrP1mNc9Bujg7w== 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 BL1PR11MB5304.namprd11.prod.outlook.com (2603:10b6:208:316::20) by PH0PR11MB7636.namprd11.prod.outlook.com (2603:10b6:510:26f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.35; Mon, 12 Feb 2024 20:14:06 +0000 Received: from BL1PR11MB5304.namprd11.prod.outlook.com ([fe80::5b2e:5fe9:2a34:a44b]) by BL1PR11MB5304.namprd11.prod.outlook.com ([fe80::5b2e:5fe9:2a34:a44b%6]) with mapi id 15.20.7270.036; Mon, 12 Feb 2024 20:14:06 +0000 From: "Amonson, Paul D" To: Andres Freund CC: Alvaro Herrera , "Shankaran, Akash" , Nathan Bossart , "Noah Misch" , Tom Lane , "Matthias van de Meent" , "pgsql-hackers@lists.postgresql.org" Subject: RE: Popcount optimization using AVX512 Thread-Topic: Popcount optimization using AVX512 Thread-Index: AdoNliAXaie8RHrzTICrAiLVKKiYCgAsQKyAALaJTAAAAQ7nAAAAxSWAAAGNHgAAA/mZgAAeFdGAAZKQbBAAAw6egA3NuLcAAAvVM4ACbQuxsAAhlXkAAHPWMbAAAkOrAACYCUjg Date: Mon, 12 Feb 2024 20:14:06 +0000 Message-ID: References: <202402071013.reqe3bdnjjuj@alvherre.pgsql> <20240209183450.snllkk7erharc73y@awork3.anarazel.de> In-Reply-To: <20240209183450.snllkk7erharc73y@awork3.anarazel.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: BL1PR11MB5304:EE_|PH0PR11MB7636:EE_ x-ms-office365-filtering-correlation-id: b03fed09-884c-48a0-4c80-08dc2c072a1d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2VobhWEME+qQkxAUI2QWb1YczcrVyu+gytkd5fvsBJaqXSK6mHTEfMYaLnFMZBeGGvDeBsZS1ZnG/VtVazr8PflyAPfzKSP+c37SZmfSDqB/WSPm4v5PTxpyNZzKTEsnodQ1p3QGVJSakzjO/bU62KScgpecUUb0sgpb6HuCPlKi2t+yWtjUtAd7Ls6lpYl1CnRc4HlpLeDVlaJWYsAytaD91nLPInIZHY05PinvC3jXgxuhEwCpU4wmz/AFyezHcUl5TucvuDm9UTo+NN3Oj8ucOMI9QxsmNZ9IIe6K9HiW3OO72a7HGfVM1TngVQu6L5+eZZdDkMwahRZ68B1nO/wPCsQU1VEQ+6C537GrbwBNS2OrftWAfJ5HydCpSYkc7TYR88XeAIDQH4ywA7/gR/biVykw5OX+nzeyQUyZ7ekM3vMCT5QDSJANBg0yQTuAPdobT+EEgquNxDzwSr1b0FDICsDjnls7Laaim3fwT4YFM6H9toyeDE5q9hlGwvnG2Dvkaae52i6UiP5VaiRw7650CjaP6wQQXvzTAWVOhnpjwJiME+FqLNq+9k7qW1csNffPmY6AquPoLwzIE+ZWexc+msBEz/6B+ixx+wrY3zOfbd80e2ao4Mwqvj1D2jE1 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5304.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(376002)(136003)(346002)(396003)(39860400002)(230922051799003)(186009)(1800799012)(451199024)(64100799003)(9686003)(478600001)(41300700001)(55016003)(52536014)(8676002)(4326008)(8936002)(2906002)(5660300002)(6916009)(38070700009)(54906003)(7696005)(6506007)(53546011)(66446008)(316002)(66476007)(64756008)(66946007)(76116006)(71200400001)(66556008)(83380400001)(122000001)(86362001)(26005)(82960400001)(38100700002)(33656002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aGRIUW1sbGd1NzVodWlKczdER1ZtQnRLUUdGWFptS21xQUtOUm5rMDc3Ym9h?= =?utf-8?B?OC9FSEVUNlhDUjl6bzZhNkxJVitEYmdRbExGcGN0a0VzeHlDMUxNalpEdWtw?= =?utf-8?B?RzhYUVR2TnB4ZWlJRExXOHM1L2YydFB1TDZsV1JybVNXM3c0YzZZZnJNY0lG?= =?utf-8?B?dFBUUHR4NmcyVUVOWllrOW5hb0hzMVM0MlNxendKVWM2cjdHRGhMa1ZOdFZ2?= =?utf-8?B?RnY1Zk5hSXlJb0R3STg3dU1TL2RHSHBQTVJ1dDc3clc2N290R0VMb1hZbHpu?= =?utf-8?B?WEVZbVlwYlhnYUswYUFtTUJXSUVLemcyRjA0ZkNoYURQYUJQcWZLWVNXSjZi?= =?utf-8?B?UDNLb0JTcTJmTzE0cGNXUmE1VEFXMWxLeUt1dDV0Z01kWE9OaDdiUDZlditZ?= =?utf-8?B?dllqOWJRYXZJY1BlZE02Vk1pVUlmRjJrSHRYNkJ0OWsrRitxYmkxQms0OGhk?= =?utf-8?B?QjZ1a2FSY1N5MHIrSHpaS3RnbmRac3V2UldFZFhmVm02bzd0WTdhaGxiZS9T?= =?utf-8?B?RGxQUzdwN05pK01pL1FhN1l1bEJINmpmTGRPZndaTkJ1dTR5WFZmQ3VXK0tu?= =?utf-8?B?WlhoeS9MUkJ4ekJrU1orS3dzUjF4QktmZ0JyaWJGM2QzNGtrditCQVhNQkhB?= =?utf-8?B?OGcvR1RSOFQvZEJweGFtMFBISGRobHVmaG9PNGtuZGpjQ1Q2dVRyUmloWHE0?= =?utf-8?B?bzh1azJLS2dLZkNLVHFsUG5rZlY4UGZiUjBUTFcyNkpjYjdQWVRjMzQzSlpG?= =?utf-8?B?Yldzd2poeEdDbjR1VkNsVVdka3RIRmw5SDUweDVMZ2dpWENoQkVWaGl6MVkz?= =?utf-8?B?cVNqZmR6VHQ4Q21iT1VNYldPRGsvdHJKNWdkWWEwSElzZ0FKS3FFeWMzMTNx?= =?utf-8?B?czdEM3VSR0Z1MVh2KzN3VUtJc1JsTmRES2x1MFlGL1gvUGg0SXBxU0dweXU4?= =?utf-8?B?bkIxVTVlL1VUMENibFZiQVI3djlBbisyYUg0cnlhN1BVSlRMWTYvZDdzT3k5?= =?utf-8?B?bHdSRUM4R3czc3F5Q1JnZnZ0ZDNZd0Q1djlqKzUxUmtWakR5NFVKOEdRYmZ4?= =?utf-8?B?dnhYQnlQbVFIaE45MGQrbjNFZUJTUmIxQnc4WGpwUWJZeEZka3hERHRUdWRk?= =?utf-8?B?SGNTMExjTnQvMm0wdmtTeHZCNlBDUGlXOVNIYmRqMUpjWFF4Tkx5TWptWFpI?= =?utf-8?B?Vi9aMVpGK0dJcjRnQTNGcGlPYWxIWit0dlNaVmtEYkpZaG1vMmRuSGFLVDRD?= =?utf-8?B?WFF0T0o4SEhmdUVQNkdXL0pCMTFpK2dNZjBRUjA0RmRvZzFTR0xSMXlkMzVL?= =?utf-8?B?UkRMdVVJL1N1ZXQ0d25EK1ZCamdHZTRJNThmaU5Ub2ZKVURDRHNuS2JSRzRz?= =?utf-8?B?c1ZKcURSVWlJeWNJMWdvZUJUM0k2bkNJQ0VPV3pyWTlMSnpuVGNneGtZUk1a?= =?utf-8?B?elo1TnpsRTB0YTJxV2xmSGZnNnJyM1NWM1FSWFRLUEpNcWJOQ1NkUEdnRFNY?= =?utf-8?B?eFpXdnI4ekYwWnkyekNnaEZDaVdOUzVXZ3RMZmhNZzc5VDhTR3k2QmJmR3BQ?= =?utf-8?B?Y2VWTnlYYVVzMjc3VjhFKzd0MnNlWTU0WkVqTnlsY1JKWkZSQm42Z3hFcm1H?= =?utf-8?B?NWRGOHdRWWdqT2NkVzJVRU5mV0drN1RwRk5pTUxNeHpJQjhFM0RoU0ExaHZM?= =?utf-8?B?ZExpNVRNTzJmZlpLc2xVYm5ML3JrWjlXb25ZU1BseGtyVWlBSFFhRWpPZEt3?= =?utf-8?B?Wmx6bzMvcUxSNkxNT2RENHc1NU92S0x6VmphUnVvcWV4TUhVMFF4S1V3MzFw?= =?utf-8?B?ZkFVckJaVWtNZFJER2I5dk9JUHppVXNldDFQaVhVNUlGelRibnpGTzMyMHkz?= =?utf-8?B?MEsxVlhNR0xhLzkrL1I0MitiRmQxUmRPUXpiRFdJVmt6OEdnWmYvNWVLZy82?= =?utf-8?B?alVvdWEvcXdiYlM4TEcxTFR2TS8yRWsxamdvUTY0TGkxdWxEOXkycWxNbVhy?= =?utf-8?B?c01OME9lYWRzdTh5OU5ETzY5eS8wcWVIVUluREgyc1ArcWp6QS85SzlYZnNY?= =?utf-8?B?ZS9uSXlSbFZGU3RRYlo3V1pCTVM4d0hMK2ZLVGRJYWVxRHA3Um9DRFNlbG5k?= =?utf-8?Q?e1dWgZlo7ycY4cd6i5npCjL8o?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5304.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b03fed09-884c-48a0-4c80-08dc2c072a1d X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2024 20:14:06.2385 (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: HDNxM17/kMFL5DL+965NQ9L8Hs96ptJeVjYm5GZ8MI/W+U033V4U5s/JY6Io3Ci+HnYRCXwXYiTilY1BPopZeKWxU6x307PFJxA2fTx1oxI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7636 X-OriginatorOrg: intel.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk TXkgcmVzcG9uc2VzIHdpdGggcXVlc3Rpb25zLA0KDQo+ID4gKyMgWFhYOiBUaGUgY29uZmlndXJl LmFjIGNoZWNrIGZvciBfX2NwdWlkZXgoKSBpcyBicm9rZW4sIHdlIGRvbid0IA0KPiA+ICtjb3B5 IHRoYXQgIyBoZXJlLiBUbyBwcmV2ZW50IHByb2JsZW1zIGR1ZSB0byB0d28gZGV0ZWN0aW9uIG1l dGhvZHMgDQo+ID4gK3dvcmtpbmcsIHN0b3AgIyBjaGVja2luZyBhZnRlciBvbmUuDQo+DQo+IFRo aXMgc2VlbXMgbGlrZSBhIGJvZ3VzIGNvcHktcGFzdGUuDQoNCk15IGJhZC4gV2lsbCByZW1vdmUg dGhlIG9mZmVuZGluZyBjb21tZW50LiAgOikNCg0KPiA+ICsjIENoZWNrIGZvciBoZWFkZXIgaW1t aW50cmluLmgNCj4gLi4uDQo+IERvIHRoZXNlIGFsbCBhY3R1YWxseSBoYXZlIHRvIGxpbms/ICBJ bnZva2luZyB0aGUgbGlua2VyIGlzIHNsb3cuDQo+IEkgdGhpbmsgeW91IG1pZ2h0IGJlIGFibGUg dG8ganVzdCB1c2UgY2MuaGFzX2hlYWRlcl9zeW1ib2woKS4NCg0KSSB0b29rIHRoaXMgdG8gbWVh biB0aGUgbGFzdCBvZiB0aGUgMyBuZXcgYmxvY2tzLiBJIGNoYW5nZWQgdGhpcyBvbmUgdG8gdGhl IGNjX2hhc19oZWFkZXIgbWV0aG9kLiBJIHRoaW5rIEkgZG8gd2FudCB0aGUgZmlyc3QgMiBjaGVj a2luZyB0aGUgbGluayBhcyB3ZWxsLiBJZiB0aGUgZG9uJ3QgbGluayBoZXJlIHRoZXkgd29uJ3Qg bGluayBpbiB0aGUgYWN0dWFsIGJ1aWxkLg0KDQo+IERvZXMgdGhpcyB3b3JrIHdpdGggbXN2Yz8N Cg0KSSB0aGluayBpdCB3aWxsIHdvcmsgYnV0IEkgaGF2ZSBubyB3YXkgdG8gdmFsaWRhdGUgaXQu IEkgcHJvcG9zZSB3ZSByZW1vdmUgdGhlIEFWWC01MTIgcG9wY291bnQgZmVhdHVyZSBmcm9tIE1T VkMgYnVpbGRzLiBTb3VuZCBvaz8NCg0KPiBUaGF0J3MgYSB2ZXJ5IGxvbmcgbGluZSBpbiB0aGUg b3V0cHV0LCBob3cgYWJvdXQgdXNpbmcgdGhlIGF2eCBmZWF0dXJlIG5hbWUgb3Igc29tZXRoaW5n Pw0KDQpBZ3JlZSwgd2lsbCBmaXguDQoNCj4gVGhpcyB3aWxsIGJ1aWxkIGFsbCBvZiBwZ3BvcnQg d2l0aCB0aGUgYXZ4IGZsYWdzLCB3aGljaCB3b3VsZG4ndCBiZSBjb3JyZWN0LCBJIHRoaW5rPyBU aGUgY29tcGlsZXIgbWlnaHQgaW5qZWN0IGF1dG9tYXRpYyB1c2VzIG9mIGF2eDUxMiBpbiBwbGFj ZXMsIHdoaWNoIHdvdWxkIGNhdXNlIHByb2JsZW1zLCBubz8NCg0KVGhpcyB3aWxsIHRha2UgbWUg c29tZSB0aW1lIHRvIGxlYXJuIGhvdyB0byBkbyB0aGlzIGluIG1lc29uLiBBbnkgcG9pbnRlcnMg aGVyZSB3b3VsZCBiZSBoZWxwZnVsLiANCg0KPiBXaGlsZSB5b3UgZG9uJ3QgZG8gdGhlIHNhbWUg Zm9yIG1ha2UsIGlzbid0IGV2ZW4ganVzdCB1c2luZyB0aGUgYXZ4NTEyIGZvciBhbGwgb2YgcGdf Yml0dXRpbHMuYyBicm9rZW4gZm9yIGV4YWN0bHkgdGhhdCByZXNvbj8gVGhhdCdzIHdoeSB0aGUg ZXhpc3RpbmcgY29kZSBidWlsZHMgdGhlIGZpbGVzIGZvciB2YXJpb3VzIGNyYyB2YXJpYW50cyBh cyB0aGVpciBvd24gZmlsZS4NCg0KSSBkb24ndCB0aGluayBpdHMgYnJva2VuLCBub3RoaW5nIGVs c2UgaW4gcGdfYml0dXRpbHMuYyB3aWxsIG1ha2UgdXNlIG9mIEFWWC01MTIsIHNvIEkgYW0gbm90 IHN1cmUgd2hhdCBkaXZpZGluZyB0aGlzIHVwIGludG8gbXVsdGlwbGUgZmlsZXMgd2lsbCB5aWVs ZCBiZW5lZml0cyBiZXlvbmQgY29kZSByZWFkYWJpbGl0eSBhcyB0aGV5IHdpbGwgYWxsIGJlIG5l ZWRlZCBkdXJpbmcgY29tcGlsZSB0aW1lLiBJIHByZWZlciB0byBub3Qgc3BsaXQgaWYgdGhlIGNv bW11bml0eSBhZ3JlZXMgdG8gaXQuDQogDQpJZiBzcGxpdHRpbmcgc3RpbGwgbWFrZXMgc2Vuc2Us IEkgcHJvcG9zZSBzcGxpdHRpbmcgaW50byAzIGZpbGVzOiAgcGdfYml0dXRpbHMuYyAoZW50cnkg cG9pbnQgK3N3IHBvcGNudCBpbXBsZW1lbnRhdGlvbiksIHBnX3BvcGNudF9jaG9vc2UuYyAoQ1BV SUQgYW5kIHhnZXRidiBjaGVjaykgYW5kIHBnX3BvcGNudF94ODZfNjRfYWNjZWwuYyAoNjQvNTEy Yml0IHg4NiBpbXBsZW1lbnRhdGlvbnMpLiANCkknbSBub3QgYW4gZXhwZXJ0IGluIG1lc29uLCBi dXQgc3BsaXR0aW5nIG1pZ2h0IGFkZCBjb21wbGV4aXR5IHRvIG1lc29uLmJ1aWxkLiANCg0KQ291 bGQgeW91IGVsYWJvcmF0ZSBpZiB0aGVyZSBhcmUgb3RoZXIgYmVuZWZpdHMgdG8gdGhlIHNwbGl0 IGZpbGUgYXBwcm9hY2g/DQoNClBhdWwNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPiANClNlbnQ6IEZyaWRheSwg RmVicnVhcnkgOSwgMjAyNCAxMDozNSBBTQ0KVG86IEFtb25zb24sIFBhdWwgRCA8cGF1bC5kLmFt b25zb25AaW50ZWwuY29tPg0KQ2M6IEFsdmFybyBIZXJyZXJhIDxhbHZoZXJyZUBhbHZoLm5vLWlw Lm9yZz47IFNoYW5rYXJhbiwgQWthc2ggPGFrYXNoLnNoYW5rYXJhbkBpbnRlbC5jb20+OyBOYXRo YW4gQm9zc2FydCA8bmF0aGFuZGJvc3NhcnRAZ21haWwuY29tPjsgTm9haCBNaXNjaCA8bm9haEBs ZWFkYm9hdC5jb20+OyBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+OyBNYXR0aGlhcyB2YW4g ZGUgTWVlbnQgPGJvZWtld3VybStwb3N0Z3Jlc0BnbWFpbC5jb20+OyBwZ3NxbC1oYWNrZXJzQGxp c3RzLnBvc3RncmVzcWwub3JnDQpTdWJqZWN0OiBSZTogUG9wY291bnQgb3B0aW1pemF0aW9uIHVz aW5nIEFWWDUxMg0KDQpIaSwNCg0KT24gMjAyNC0wMi0wOSAxNzozOTo0NiArMDAwMCwgQW1vbnNv biwgUGF1bCBEIHdyb3RlOg0KDQo+IGRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1 aWxkIGluZGV4IDhlZDUxYjZhYWUuLjFlN2E0ZGM5NDIgDQo+IDEwMDY0NA0KPiAtLS0gYS9tZXNv bi5idWlsZA0KPiArKysgYi9tZXNvbi5idWlsZA0KPiBAQCAtMTc3Myw2ICsxNzczLDQ1IEBAIGVs aWYgY2MubGlua3MoJycnDQo+ICBlbmRpZg0KPiAgDQo+ICANCj4gKyMgWFhYOiBUaGUgY29uZmln dXJlLmFjIGNoZWNrIGZvciBfX2NwdWlkZXgoKSBpcyBicm9rZW4sIHdlIGRvbid0IA0KPiArY29w eSB0aGF0ICMgaGVyZS4gVG8gcHJldmVudCBwcm9ibGVtcyBkdWUgdG8gdHdvIGRldGVjdGlvbiBt ZXRob2RzIA0KPiArd29ya2luZywgc3RvcCAjIGNoZWNraW5nIGFmdGVyIG9uZS4NCg0KVGhpcyBz ZWVtcyBsaWtlIGEgYm9ndXMgY29weS1wYXN0ZS4NCg0KDQo+ICtpZiBjYy5saW5rcygnJycNCj4g KyAgICAjaW5jbHVkZSA8Y3B1aWQuaD4NCj4gKyAgICBpbnQgbWFpbihpbnQgYXJnLCBjaGFyICoq YXJndikNCj4gKyAgICB7DQo+ICsgICAgICAgIHVuc2lnbmVkIGludCBleHhbNF0gPSB7MCwgMCwg MCwgMH07DQo+ICsgICAgICAgIF9fZ2V0X2NwdWlkX2NvdW50KDcsIDAsICZleHhbMF0sICZleHhb MV0sICZleHhbMl0sICZleHhbM10pOw0KPiArICAgIH0NCj4gKyAgICAnJycsIG5hbWU6ICdfX2dl dF9jcHVpZF9jb3VudCcsDQo+ICsgICAgYXJnczogdGVzdF9jX2FyZ3MpDQo+ICsgIGNkYXRhLnNl dCgnSEFWRV9fR0VUX0NQVUlEX0NPVU5UJywgMSkgZWxpZiBjYy5saW5rcygnJycNCj4gKyAgICAj aW5jbHVkZSA8aW50cmluLmg+DQo+ICsgICAgaW50IG1haW4oaW50IGFyZywgY2hhciAqKmFyZ3Yp DQo+ICsgICAgew0KPiArICAgICAgICB1bnNpZ25lZCBpbnQgZXh4WzRdID0gezAsIDAsIDAsIDB9 Ow0KPiArICAgICAgICBfX2NwdWlkZXgoZXh4LCA3LCAwKTsNCj4gKyAgICB9DQo+ICsgICAgJycn LCBuYW1lOiAnX19jcHVpZGV4JywNCj4gKyAgICBhcmdzOiB0ZXN0X2NfYXJncykNCj4gKyAgY2Rh dGEuc2V0KCdIQVZFX19DUFVJREVYJywgMSkNCj4gK2VuZGlmDQo+ICsNCj4gKw0KPiArIyBDaGVj ayBmb3IgaGVhZGVyIGltbWludHJpbi5oDQo+ICtpZiBjYy5saW5rcygnJycNCj4gKyAgICAjaW5j bHVkZSA8aW1taW50cmluLmg+DQo+ICsgICAgaW50IG1haW4oaW50IGFyZywgY2hhciAqKmFyZ3Yp DQo+ICsgICAgew0KPiArICAgICAgcmV0dXJuIDE3MDE7DQo+ICsgICAgfQ0KPiArICAgICcnJywg bmFtZTogJ19faW1taW50cmluJywNCj4gKyAgICBhcmdzOiB0ZXN0X2NfYXJncykNCj4gKyAgY2Rh dGEuc2V0KCdIQVZFX19JTU1JTlRSSU4nLCAxKQ0KPiArZW5kaWYNCg0KRG8gdGhlc2UgYWxsIGFj dHVhbGx5IGhhdmUgdG8gbGluaz8gIEludm9raW5nIHRoZSBsaW5rZXIgaXMgc2xvdy4NCg0KSSB0 aGluayB5b3UgbWlnaHQgYmUgYWJsZSB0byBqdXN0IHVzZSBjYy5oYXNfaGVhZGVyX3N5bWJvbCgp Lg0KDQoNCg0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjDQo+ICsjIEFWWCA1MTIgUE9QQ05UIEludHJpbnNpYyBjaGVjaw0K PiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjDQo+ICtoYXZlX2F2eDUxMl9wb3BjbnQgPSBmYWxzZQ0KPiArY2ZsYWdzX2F2eDUx Ml9wb3BjbnQgPSBbXQ0KPiAraWYgaG9zdF9jcHUgPT0gJ3g4Nl82NCcNCj4gKyAgcHJvZyA9ICcn Jw0KPiArICAgICAgI2luY2x1ZGUgPGltbWludHJpbi5oPg0KPiArICAgICAgI2luY2x1ZGUgPHN0 ZGludC5oPg0KPiArICAgICAgdm9pZCBtYWluKHZvaWQpDQo+ICsgICAgICB7DQo+ICsgICAgICAg IF9fbTUxMmkgdG1wIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNjQpKSk7DQo+ICsgICAgICAgIF9f bTUxMmkgaW5wdXQgPSBfbW01MTJfc2V0emVyb19zaTUxMigpOw0KPiArICAgICAgICBfX201MTJp IG91dHB1dCA9IF9tbTUxMl9wb3BjbnRfZXBpNjQoaW5wdXQpOw0KPiArICAgICAgICB1aW50NjRf dCBjbnQgPSA5OTk7DQo+ICsgICAgICAgIF9tbTUxMl9zdG9yZV9zaTUxMigmdG1wLCBvdXRwdXQp Ow0KPiArICAgICAgICBjbnQgPSBfbW01MTJfcmVkdWNlX2FkZF9lcGk2NCh0bXApOw0KPiArICAg ICAgICAvKiByZXR1cm4gY29tcHV0ZWQgdmFsdWUsIHRvIHByZXZlbnQgdGhlIGFib3ZlIGJlaW5n IG9wdGltaXplZCBhd2F5ICovDQo+ICsgICAgICAgIHJldHVybiBjbnQgPT0gMDsNCj4gKyAgICAg IH0nJycNCg0KRG9lcyB0aGlzIHdvcmsgd2l0aCBtc3ZjPw0KDQoNCj4gKyAgICBpZiBjYy5saW5r cyhwcm9nLCBuYW1lOiAnX21tNTEyX3NldHplcm9fc2k1MTIsIA0KPiArIF9tbTUxMl9wb3BjbnRf ZXBpNjQsIF9tbTUxMl9zdG9yZV9zaTUxMiwgYW5kIF9tbTUxMl9yZWR1Y2VfYWRkX2VwaTY0IA0K PiArIHdpdGggLW1hdng1MTJ2cG9wY250ZHEgLW1hdng1MTJmJywNCg0KVGhhdCdzIGEgdmVyeSBs b25nIGxpbmUgaW4gdGhlIG91dHB1dCwgaG93IGFib3V0IHVzaW5nIHRoZSBhdnggZmVhdHVyZSBu YW1lIG9yIHNvbWV0aGluZz8NCg0KDQoNCj4gZGlmZiAtLWdpdCBhL3NyYy9wb3J0L01ha2VmaWxl IGIvc3JjL3BvcnQvTWFrZWZpbGUgaW5kZXggDQo+IGRjYzg3MzdlNjguLjZhMDFhN2Q4OWEgMTAw NjQ0DQo+IC0tLSBhL3NyYy9wb3J0L01ha2VmaWxlDQo+ICsrKyBiL3NyYy9wb3J0L01ha2VmaWxl DQo+IEBAIC04Nyw2ICs4NywxMSBAQCBwZ19jcmMzMmNfc3NlNDIubzogQ0ZMQUdTKz0kKENGTEFH U19DUkMpDQo+ICBwZ19jcmMzMmNfc3NlNDJfc2hsaWIubzogQ0ZMQUdTKz0kKENGTEFHU19DUkMp DQo+ICBwZ19jcmMzMmNfc3NlNDJfc3J2Lm86IENGTEFHUys9JChDRkxBR1NfQ1JDKQ0KPiAgDQo+ ICsjIE5ld2VyIEludGVsIHByb2Nlc3NvcnMgY2FuIHVzZSBBVlgtNTEyIFBPUENOVCBDYXBhYmls aXRpZXMgDQo+ICsoMDEvMzAvMjAyNCkNCj4gK3BnX2JpdHV0aWxzLm86IENGTEFHUys9JChDRkxB R1NfQVZYNTEyX1BPUENOVCkNCj4gK3BnX2JpdHV0aWxzX3NobGliLm86IENGTEFHUys9JChDRkxB R1NfQVZYNTEyX1BPUENOVCkNCj4gK3BnX2JpdHV0aWxzX3Nydi5vOkNGTEFHUys9JChDRkxBR1Nf QVZYNTEyX1BPUENOVCkNCj4gKw0KPiAgIyBhbGwgdmVyc2lvbnMgb2YgcGdfY3JjMzJjX2FybXY4 Lm8gbmVlZCBDRkxBR1NfQ1JDDQo+ICBwZ19jcmMzMmNfYXJtdjgubzogQ0ZMQUdTKz0kKENGTEFH U19DUkMpDQo+ICBwZ19jcmMzMmNfYXJtdjhfc2hsaWIubzogQ0ZMQUdTKz0kKENGTEFHU19DUkMp IGRpZmYgLS1naXQgDQo+IGEvc3JjL3BvcnQvbWVzb24uYnVpbGQgYi9zcmMvcG9ydC9tZXNvbi5i dWlsZCBpbmRleCANCj4gNjliMzBhYjIxYi4uMWM0OGEzYjA3ZSAxMDA2NDQNCj4gLS0tIGEvc3Jj L3BvcnQvbWVzb24uYnVpbGQNCj4gKysrIGIvc3JjL3BvcnQvbWVzb24uYnVpbGQNCj4gQEAgLTE4 NCw2ICsxODQsNyBAQCBmb3JlYWNoIG5hbWUsIG9wdHMgOiBwZ3BvcnRfdmFyaWFudHMNCj4gICAg ICAgIGxpbmtfd2l0aDogY2ZsYWdfbGlicywNCj4gICAgICAgIGNfcGNoOiBwY2hfY19oLA0KPiAg ICAgICAga3dhcmdzOiBvcHRzICsgew0KPiArICAgICAgICAnY19hcmdzJzogb3B0cy5nZXQoJ2Nf YXJncycsIFtdKSArIGNmbGFnc19hdng1MTJfcG9wY250LA0KPiAgICAgICAgICAnZGVwZW5kZW5j aWVzJzogb3B0c1snZGVwZW5kZW5jaWVzJ10gKyBbc3NsXSwNCj4gICAgICAgIH0NCj4gICAgICAp DQoNClRoaXMgd2lsbCBidWlsZCBhbGwgb2YgcGdwb3J0IHdpdGggdGhlIGF2eCBmbGFncywgd2hp Y2ggd291bGRuJ3QgYmUgY29ycmVjdCwgSSB0aGluaz8gVGhlIGNvbXBpbGVyIG1pZ2h0IGluamVj dCBhdXRvbWF0aWMgdXNlcyBvZiBhdng1MTIgaW4gcGxhY2VzLCB3aGljaCB3b3VsZCBjYXVzZSBw cm9ibGVtcywgbm8/DQoNCldoaWxlIHlvdSBkb24ndCBkbyB0aGUgc2FtZSBmb3IgbWFrZSwgaXNu J3QgZXZlbiBqdXN0IHVzaW5nIHRoZSBhdng1MTIgZm9yIGFsbCBvZiBwZ19iaXR1dGlscy5jIGJy b2tlbiBmb3IgZXhhY3RseSB0aGF0IHJlc29uPyBUaGF0J3Mgd2h5IHRoZSBleGlzdGluZyBjb2Rl IGJ1aWxkcyB0aGUgZmlsZXMgZm9yIHZhcmlvdXMgY3JjIHZhcmlhbnRzIGFzIHRoZWlyIG93biBm aWxlLg0KDQoNCkdyZWV0aW5ncywNCg0KQW5kcmVzIEZyZXVuZA0K