From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40067.outbound.protection.outlook.com [40.107.4.67]) by sourceware.org (Postfix) with ESMTPS id 6A4B23858D28 for ; Sat, 23 Oct 2021 14:35:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6A4B23858D28 Received: from DU2PR04CA0064.eurprd04.prod.outlook.com (2603:10a6:10:232::9) by AM8PR08MB5587.eurprd08.prod.outlook.com (2603:10a6:20b:1dd::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16; Sat, 23 Oct 2021 14:35:09 +0000 Received: from DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:232:cafe::9a) by DU2PR04CA0064.outlook.office365.com (2603:10a6:10:232::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Sat, 23 Oct 2021 14:35:09 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT045.mail.protection.outlook.com (10.152.21.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Sat, 23 Oct 2021 14:35:09 +0000 Received: ("Tessian outbound 16951d3c485e:v103"); Sat, 23 Oct 2021 14:35:09 +0000 X-CR-MTA-TID: 64aa7808 Received: from b1e806bc9cc6.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 88B8CA23-DAA7-4126-8453-2C73D8CF06F3.1; Sat, 23 Oct 2021 14:35:03 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b1e806bc9cc6.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Sat, 23 Oct 2021 14:35:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WcT4CWU4XSNdKlVPL9BztGZbKQr3Skb+Z9sn8lgcBZ/vBATGaf3Pt07KcLfMd9FRDKoq7+MY9kLEDI8Q2a/x20etta+KFEZIYZPBC6KsSmxxRfiVKXDw5d1pDRDRBtfZQ5hRdu3V2Vf6s6iBnip688Hxs4H9Xtzff1sfmWtX65Jj2YFFJ3ay4Nwm8/1HORM/f0QrQ5ku4VI0n5Dp3g8ciHy0KIR260gBxovZ1B0C3qdkVFOLYPJA0dQeG12p6OJioJDgy+1/bJKDwU+0IuwvyMZOTiIlEo1UMYlP3nny3zVC3QJSyfTcQXsMky31+cqFBx/ub0IEGw2XSSMDG4N+5Q== 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=m4b8Mr97RU+sdTjCaonGQapTDmfnZ4iwy7THqT4Jwgk=; b=FI30QPdcFy6Ca6JEpld/4dY27aD4dTt4u9sMUcO0wg4n5hIBmKUh2O21FX92O/v2zCCXcmPOxM0yCMT3gIYNFPm7bijl5tSwMKadG+kTrakppHxEVRr/pBWz6ERWcac9ba2FE8B99hs55Elw4CUq9RYjk18ZM1bMvaTINfZ/ZGBulcu+ftAUarXVoM0xHCuAs2VFU4fuigTtuBuYuWOTs/1cCUReQ2TBU2J0fAs6Vml9lPkQEmygGHoTNEz+iyx3VSURm31f44M26koSIbYEXExGxx+HK291w4nmNlBOyvgCPQtwMT2fml6sQTe3A1Z6x+ZoA4w+qIfRP/d6QhAdRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VE1PR08MB4768.eurprd08.prod.outlook.com (2603:10a6:802:ab::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16; Sat, 23 Oct 2021 14:34:59 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::31cf:ea55:2234:c50b]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::31cf:ea55:2234:c50b%6]) with mapi id 15.20.4628.020; Sat, 23 Oct 2021 14:34:59 +0000 From: Tamar Christina To: Richard Sandiford , Tamar Christina via Gcc-patches CC: Richard Earnshaw , nd , Marcus Shawcroft Subject: RE: [PATCH 2/2]AArch64: Add better costing for vector constants and operations Thread-Topic: [PATCH 2/2]AArch64: Add better costing for vector constants and operations Thread-Index: AQHXnmxMS8vPR1UI0UqiAQ/zUoepGquNuNUzgAAAlFCAAA5bl4AAATdAgAAo2lCADC6fEIBGl198gAA9fHA= Date: Sat, 23 Oct 2021 14:34:59 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: DD8E6D351767AF48991668F42E8DFBD0.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 51fed888-dfc2-469d-7fb1-08d9963250c1 x-ms-traffictypediagnostic: VE1PR08MB4768:|AM8PR08MB5587: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: MGHOl/NutqF8tJAAElZv/4s139FjEw0V0vQEyC5Y64Np+cWFXAf8DMiKSJ8Mu4lvXftEjcqELSg7o/MHWh5skWxGXkY2V26KEUvpCQY/QDNZHOGOeRmJaMxDCrGnAZwXS/Esf+6ZvohRhSZrTAG8nyQMOxgK+npIhykTjPOqqmw6pXH8nrBFX0yxjtr20pkpYbyvEbyTJY7gYFDAJwfNWM+YuXdNmtemi5cAkKxDIR64SuFxuV0o15h7ThVotcaeH9hqlU6YzotaYay/WSHdcvPhhPLY1756OxGDMrgH3ABJEKbq09JtbyQF1kFg/vvjYVN+x/zw/soozVVhXLOjuMEZsql3bBkop5xGmuyB+l+a8obvf6gsO7RAqSB68G9/RPVQ6hpDsAhM1tQmWM91DlBEouwkuRvSGPZhdaqFMEfII/qA/RWyQ4fvFcx5HP6rV7eoWs/KqAo6oD1hUytq46y9Eeqh2SKbi2+LikeMSp3w1PqLZynObprOOm2v+uYrwhvIcAhmeN1GCU44Jqhn427NCmkB74uiBAiLUeexPNRMS6TMfPULA4eV+Gqw5PqjuXkeE1zr1IFxm2SCFdl6CP7ux1X/z7gIAuLQ5prcZ99A6Zhy8VpvLo1LzsqLWGEkLXVKKfSZWoxgWFwUbkWq17OqxpULdo7dGBeWrbgYk9zojHwH/smuKPMi4/Pfw+wu8DVvqa6oZfdT0eeBYibMWA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(53546011)(2906002)(7696005)(52536014)(55016002)(4326008)(38070700005)(316002)(6506007)(9686003)(83380400001)(76116006)(54906003)(38100700002)(5660300002)(508600001)(110136005)(26005)(86362001)(8936002)(122000001)(33656002)(66946007)(66556008)(66476007)(186003)(64756008)(66446008)(8676002)(71200400001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4768 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: b144ec14-74d9-49a5-3bfd-08d996324a98 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hDureeU/NVOGEth13yOMn1Czk0IgJp7/uGfqzcilpTE0ONt3VOKJUgcY/JxpekDRfv9dWFZkEb+GWdVJkSb3ssT6KT9c4njAaiqfPxQMtHac9Pdy0meQyEUxpTkxpdnfhWHCKLJVbcuvwDFdG17o/uextOfBLFxxF+jgc9Qw0fqBLCCDmRUGez3UoMY6IFexq7C2VV5+a+UG2HZUCpj+qLg9IMvFeUDy3Xd3x2Go7z1PYTNGtiqaXz3iD1yBmd+btGsFYvCXJuQq1s1M4G/Z0ZzXk4S8tomNfg1RtZ5/GMX5SpgQf4YakJ4Hw4ZiAL4b8Re8ZDNOegMMhQsFfr3/d7aC+KpqBE+Rpw7imThp+nabVB+EW+MGOHj+fQYIr7qcrMw3CsEexMkpWbOhsWejo3hQhyneI2bIA+c/3pc/sOk8Jh34EHlTmW+1qQdPAjHO0OPpL9+rhXa/+sto9LkJBOGqmp5l8zkE1AE+EEzQGl0cPMumDKnn7uBvT9630z2NHfN7ozdePwnkHWF0PwWwbxORz4ONnd/QJGE9Hecu16FCHSl2+1bhW71PzwAejflmQelPHpB4Od4tUKpOLYFEFsjZC8uqfIiFOBof3Qc/2APO1fBnYw7rVy7mWYGpLiQzbIPa1z8fSrvWpHvA0MpJa2hJSdWC+yrSC3WqkdDTDd3BGvlpoi+Cv47S0THjjPeJ5Z9JoxJ2JdboggUwLXhwkg== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(36840700001)(46966006)(81166007)(356005)(36860700001)(26005)(316002)(508600001)(54906003)(53546011)(110136005)(7696005)(4326008)(186003)(82310400003)(336012)(83380400001)(9686003)(6506007)(47076005)(55016002)(70586007)(33656002)(5660300002)(70206006)(52536014)(8936002)(8676002)(2906002)(86362001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2021 14:35:09.6945 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 51fed888-dfc2-469d-7fb1-08d9963250c1 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5587 X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Oct 2021 14:35:15 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZCBTYW5kaWZv cmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+DQo+IFNlbnQ6IFNhdHVyZGF5LCBPY3RvYmVy IDIzLCAyMDIxIDExOjQwIEFNDQo+IFRvOiBUYW1hciBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVz IDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4NCj4gQ2M6IFRhbWFyIENocmlzdGluYSA8VGFtYXIu Q2hyaXN0aW5hQGFybS5jb20+OyBSaWNoYXJkIEVhcm5zaGF3DQo+IDxSaWNoYXJkLkVhcm5zaGF3 QGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47IE1hcmN1cyBTaGF3Y3JvZnQNCj4gPE1hcmN1cy5T aGF3Y3JvZnRAYXJtLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdQUFyY2g2NDogQWRk IGJldHRlciBjb3N0aW5nIGZvciB2ZWN0b3IgY29uc3RhbnRzDQo+IGFuZCBvcGVyYXRpb25zDQo+ IA0KPiBUYW1hciBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZz4gd3JpdGVzOg0KPiA+PiBJJ20gc3RpbGwgYSBiaXQgc2NlcHRpY2FsIGFib3V0IHRyZWF0 aW5nIHRoZSBoaWdoLXBhcnQgY29zdCBhcyBsb3dlci4NCj4gPj4gSVNUTSB0aGF0IHRoZSBzdWJy ZWcgY2FzZXMgYXJlIHRoZSBvbmVzIHRoYXQgYXJlIHRydWx5IOKAnGZyZWXigJ0gYW5kIGFueQ0K PiA+PiBvdGhlcnMgc2hvdWxkIGhhdmUgYSBub3JtYWwgY29zdC4gIFNvIGlmIENTRSBoYW5kbGVk IHRoZSBzdWJyZWcgY2FzZQ0KPiA+PiBpdHNlbGYgKHRvIG1vZGVsIGhvdyB0aGUgcnR4IHdvdWxk IGFjdHVhbGx5IGJlIGdlbmVyYXRlZCkgdGhlbg0KPiA+PiBhYXJjaDY0IGNvZGUgd291bGQgaGF2 ZSB0byBkbyBsZXNzIHdvcmsuICBJIGltYWdpbmUgdGhhdCB3aWxsIGJlIHRydWUgZm9yDQo+IG90 aGVyIHRhcmdldHMgYXMgd2VsbC4NCj4gPg0KPiA+IEkgZ3Vlc3MgdGhlIG1haW4gcHJvYmxlbSBp cyB0aGF0IENTRSBsYWNrcyBjb250ZXh0IGJlY2F1c2UgaXQncyBub3QNCj4gPiB1bnRpbCBhZnRl ciBjb21iaW5lIHRoYXQgdGhlIGhpZ2ggcGFydCBiZWNvbWVzIHRydWx5ICJmcmVlIiB3aGVuIHB1 c2hlZA0KPiBpbnRvIGEgaGlnaCBvcGVyYXRpb24uDQo+IA0KPiBZZWFoLiAgQW5kIHRoZSBhYXJj aDY0IGNvZGUgaXMganVzdCBiZWluZyBhc2tlZCB0byBjb3N0IHRoZSBvcGVyYXRpb24gaXQncw0K PiBnaXZlbiwgd2hpY2ggY291bGQgZm9yIGV4YW1wbGUgY29tZSBmcm9tIGFuIGV4aXN0aW5nDQo+ IGFhcmNoNjRfc2ltZF9tb3ZfZnJvbV88bW9kZT5oaWdoLiAgSSB0aGluayB3ZSBzaG91bGQgdHJ5 IHRvIGVuc3VyZSB0aGF0DQo+IGEgYWFyY2g2NF9zaW1kX21vdl9mcm9tXzxtb2RlPmhpZ2ggZm9s bG93ZWQgYnkgc29tZSBhcml0aG1ldGljIG9uDQo+IHRoZSByZXN1bHQgaXMgbW9yZSBleHBlbnNp dmUgdGhhbiB0aGUgZnVzZWQgb3BlcmF0aW9uICh3aGVuIGZ1c2luZyBpcw0KPiBwb3NzaWJsZSku DQo+IA0KPiBBbiBhbmFsb2d5IG1pZ2h0IGJlOiBpZiB0aGUgY29zdCBjb2RlIGlzIGdpdmVuOg0K PiANCj4gICAoYWRkIChyZWcgWCkgKHJlZyBZKSkNCj4gDQo+IHRoZW4sIGF0IHNvbWUgbGF0ZXIg cG9pbnQsIHRoZSAocmVnIFgpIG1pZ2h0IGJlIHJlcGxhY2VkIHdpdGggYSBtdWx0aXBsaWNhdGlv biwNCj4gaW4gd2hpY2ggY2FzZSB3ZSdkIGhhdmUgYSBNQUREIG9wZXJhdGlvbiBhbmQgdGhlIGFk ZGl0aW9uIGlzIGVmZmVjdGl2ZWx5DQo+IGZyZWUuICBTb21ldGhpbmcgc2ltaWxhciB3b3VsZCBo YXBwZW4gaWYgKHJlZyBYKSBiZWNhbWUgYSBzaGlmdCBieSBhIHNtYWxsDQo+IGFtb3VudCBvbiBu ZXdlciBjb3JlcywgYWx0aG91Z2ggSSBndWVzcyB0aGVuIHlvdSBjb3VsZCBhcmd1ZSBlaXRoZXIg dGhhdA0KPiB0aGUgY29zdCBvZiB0aGUgYWRkIGRpc2FwcGVhcnMgb3IgdGhhdCB0aGUgY29zdCBv ZiB0aGUgc2hpZnQgZGlzYXBwZWFycy4NCj4gDQo+IEJ1dCB3ZSBzaG91bGRuJ3QgY291bnQgQURE IGFzIGZyZWUgb24gdGhlIGJhc2lzIHRoYXQgaXQgY291bGQgYmUgY29tYmluZWQNCj4gd2l0aCBh IG11bHRpcGxpY2F0aW9uIG9yIHNoaWZ0IGluIGZ1dHVyZS4gIFdlIGhhdmUgdG8gY29zdCB3aGF0 IHdlJ3JlIGdpdmVuLiAgSQ0KPiB0aGluayB0aGUgc2FtZSB0aGluZyBhcHBsaWVzIHRvIHRoZSBo aWdoIHBhcnQuDQo+IA0KPiBIZXJlIHdlJ3JlIHRyeWluZyB0byBwcmV2ZW50IGNzZTEgZnJvbSBy ZXBsYWNpbmcgYSBEVVAgKGxhbmUpIHdpdGggYSBNT1ZJDQo+IGJ5IHNheWluZyB0aGF0IHRoZSBE VVAgaXMgc3RyaWN0bHkgY2hlYXBlciB0aGFuIHRoZSBNT1ZJLg0KPiBJIGRvbid0IHRoaW5rIHRo YXQncyByZWFsbHkgdHJ1ZSB0aG91Z2gsIGFuZCB0aGUgY29zdCB0YWJsZXMgaW4gdGhlIHBhdGNo IHNheSB0aGF0DQo+IERVUCBpcyBtb3JlIGV4cGVuc2l2ZSAocmF0aGVyIHRoYW4gbGVzcyBleHBl bnNpdmUpIHRoYW4gTU9WSS4NCg0KTm8gd2UncmUgbm90LiBUaGUgZnJvbnQgZW5kIGhhcyBhbHJl YWR5IHB1c2hlZCB0aGUgY29uc3RhbnQgaW50byBlYWNoIG9wZXJhdGlvbiB0aGF0IG5lZWRzIGl0 DQp3aGljaCBpcyB0aGUgZW50aXJlIHByb2JsZW0uDQoNCk1PVkkgYXMgSSBtZW50aW9uZWQgYmVm b3JlIGlzIHRoZSBvbmUgY2FzZSB3aGVyZSB0aGlzIGlzIGEgdG9zcyB1cC4gIEJ1dCB0aGVyZSBh cmUgZmFyDQptb3JlIGNvbnN0YW50cyB0aGF0IGNhbm5vdCBiZSBjcmVhdGVkIHdpdGggYSBtb3Zp LiAgQSBzaW1wbGUgZXhhbXBsZSBpcw0KDQojaW5jbHVkZSA8YXJtX25lb24uaD4NCg0KaW50OHgx Nl90IHNxdWFyZShpbnQ4eDE2X3QgZnVsbCwgaW50OHg4X3Qgc21hbGwpIHsNCiAgICBpbnQ4eDE2 X3QgY3N0ID0gezAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTV9Ow0KICAgIGludDh4 OF90IGxvdyA9IHZnZXRfaGlnaF9zOCAoY3N0KTsNCiAgICBpbnQ4eDhfdCByZXMxID0gdm11bF9z OCAoc21hbGwsIGxvdyk7DQogICAgcmV0dXJuIHZhZGRxX3M4ICh2bXVscV9zOCAoZnVsbCwgY3N0 KSwgdmNvbWJpbmVfczggKHJlczEsIHJlczEpKTsNCn0NCg0KV2hlcmUgaW4gR2ltcGxlIHdlIGdl dA0KDQogIDxiYiAyPiBbbG9jYWwgY291bnQ6IDEwNzM3NDE4MjRdOg0KICBfMiA9IF9fYnVpbHRp bl9hYXJjaDY0X2dldF9oaWdodjE2cWkgKHsgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwg MTAsIDExLCAxMiwgMTMsIDE1LCAwIH0pOw0KICBfNCA9IF8yICogc21hbGxfMyhEKTsNCiAgXzYg PSBmdWxsXzUoRCkgKiB7IDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIs IDEzLCAxNSwgMCB9Ow0KICBfNyA9IF9fYnVpbHRpbl9hYXJjaDY0X2NvbWJpbmV2OHFpIChfNCwg XzQpOw0KICBfOCA9IF82ICsgXzc7DQogIHJldHVybiBfODsNCg0KUmVnYXJkbGVzcyBvZiB3aGF0 IGhhcHBlbnMgdG8gX19idWlsdGluX2FhcmNoNjRfZ2V0X2hpZ2h2MTZxaSBub3RoaW5nIHdpbGwg cmVjcmVhdGUgdGhlIHJlbGF0aW9uc2hpcA0Kd2l0aCBjc3QsIHdoZXRoZXIgX19idWlsdGluX2Fh cmNoNjRfZ2V0X2hpZ2h2MTZxaSBpcyBsb3dlcmVkIG9yIG5vdCwgY29uc3RhbnQgcHJvcCB3aWxs IHN0aWxsIHB1c2ggaW4gY29uc3RhbnRzLg0KDQpUaGlzIGNvZGVnZW4gcmVzdWx0cyBpbiB1cyBy ZW1hdGVyaWFsaXppbmcgdGhlIGNvbnN0YW50IHR3aWNlLg0KDQpzcXVhcmU6DQogICAgICAgIGFk cnAgICAgeDAsIC5MQzANCiAgICAgICAgbGRyICAgICBkMiwgW3gwLCAjOmxvMTI6LkxDMF0NCiAg ICAgICAgYWRycCAgICB4MCwgLkxDMQ0KICAgICAgICBsZHIgICAgIHEzLCBbeDAsICM6bG8xMjou TEMxXQ0KICAgICAgICBtdWwgICAgIHYxLjhiLCB2Mi44YiwgdjEuOGINCiAgICAgICAgZHVwICAg ICBkMiwgdjEuZFswXQ0KICAgICAgICBpbnMgICAgIHYyLmRbMV0sIHYxLmRbMF0NCiAgICAgICAg bWxhICAgICB2Mi4xNmIsIHYwLjE2YiwgdjMuMTZiDQogICAgICAgIG1vdiAgICAgdjAuMTZiLCB2 Mi4xNmINCiAgICAgICAgcmV0DQouTEMxOg0KICAgICAgICAuYnl0ZSAgIDANCiAgICAgICAgLmJ5 dGUgICAxDQogICAgICAgIC5ieXRlICAgMg0KICAgICAgICAuYnl0ZSAgIDMNCiAgICAgICAgLmJ5 dGUgICA0DQogICAgICAgIC5ieXRlICAgNQ0KICAgICAgICAuYnl0ZSAgIDYNCiAgICAgICAgLmJ5 dGUgICA3DQogICAgICAgIC5ieXRlICAgOA0KICAgICAgICAuYnl0ZSAgIDkNCiAgICAgICAgLmJ5 dGUgICAxMA0KICAgICAgICAuYnl0ZSAgIDExDQogICAgICAgIC5ieXRlICAgMTINCiAgICAgICAg LmJ5dGUgICAxMw0KICAgICAgICAuYnl0ZSAgIDE1DQogICAgICAgIC5ieXRlICAgMA0KDQpSZWdh cmRsZXNzIHdoZXRoZXIgaXQncyBwdXNoZWQgaW50byBhIGhpZ2ggb3BlcmF0aW9uIG9yIG5vdCB0 aGlzIGNvZGVnZW4gaXQncyBzdGlsbCBmYXIgbW9yZSBleHBlbnNpdmUgdG8gZG8gdGhpcyBjb2Rl Z2VuLg0KDQo+IA0KPiBBbHNvLCBpZiBJJ3ZlIHVuZGVyc3Rvb2QgY29ycmVjdGx5LCBpdCBsb29r cyBsaWtlIHdlJ2QgYmUgcmVseWluZyBvbiB0aGUNCj4gdmdldF9oaWdoIG9mIGEgY29uc3RhbnQg cmVtYWluaW5nIHVuZm9sZGVkIHVudGlsIFJUTCBjc2UxLg0KPiBJIHRoaW5rIGl0J3MgbGlrZWx5 IGluIGZ1dHVyZSB0aGF0IHdlJ2QgdHJ5IHRvIGZvbGQgdmdldF9oaWdoIGF0IHRoZSBnaW1wbGUg bGV2ZWwNCj4gaW5zdGVhZCwgc2luY2UgdGhhdCBjb3VsZCBleHBvc2UgbW9yZSBvcHRpbWlzYXRp b25zIG9mIGEgZGlmZmVyZW50IGtpbmQuICBUaGUNCj4gZ2ltcGxlIG9wdGltaXNlcnMgd291bGQg dGhlbiBmb2xkIHZnZXRfaGlnaChjb25zdGFudCkgaW4gYSBzaW1pbGFyIHdheSB0bw0KPiBjc2Ux IGRvZXMgbm93Lg0KPiANCj4gU28gcGVyaGFwcyB3ZSBzaG91bGQgY29udGludWUgdG8gYWxsb3cg dGhlIHZnZXRfaGlnaChjb25zdGFudCkgdG8gYmUNCj4gZm9sb2RlZCBpbiBjc2UxIGFuZCBjb21l IHVwIHdpdGggc29tZSB3YXkgb2YgY29waW5nIHdpdGggdGhlIGZvbGRlZCBmb3JtLg0KDQpDU0Ux IGRvZXNuJ3QgZm9sZCBpdCwgYmVjYXVzZSBmb3IgQ1NFIHRoZSBjb3N0IGlzIHRvbyBoaWdoIHRv IGRvIHNvLiBXaGljaCBpcyB3aGF0IHRoaXMgY29zdGluZyB3YXMgYXR0ZW1wdGluZyB0byBmaXgu DQpDU0Ugc2ltcGx5IGRvZXMgbm90IHRvdWNoIGl0LiBJdCBsZWF2ZXMgaXQgYXMNCg0KKGluc24g MTEgMTAgMTIgMiAoc2V0IChyZWc6VjE2UUkgOTUgWyBfNyBdKQ0KICAgICAgICAodmVjX2NvbmNh dDpWMTZRSSAodmVjX3NlbGVjdDpWOFFJIChyZWc6VjE2UUkgOTUgWyBfNyBdKQ0KICAgICAgICAg ICAgICAgIChwYXJhbGxlbDpWMTZRSSBbDQogICAgICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDAgWzBdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxIFsweDFdKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAzIFsweDNdKQ0KICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCA0IFsweDRdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1 IFsweDVdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA2IFsweDZdKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA3IFsweDddKQ0KICAgICAgICAgICAgICAg ICAgICBdKSkNCiAgICAgICAgICAgIChyZWc6VjhRSSA5MyBbIF80IF0pKSkgIiI6NjUwNjoxMCAx OTA4IHthYXJjaDY0X3NpbWRfbW92ZV9oaV9xdWFkX3YxNnFpfQ0KICAgICAobmlsKSkNCihpbnNu IDEyIDExIDEzIDIgKHNldCAocmVnOlYxNlFJIDEwMikNCiAgICAgICAgKGNvbnN0X3ZlY3RvcjpW MTZRSSBbDQogICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkNCiAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDEgWzB4MV0pDQogICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJd KQ0KICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMyBbMHgzXSkNCiAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDQgWzB4NF0pDQogICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1IFsweDVdKQ0K ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNiBbMHg2XSkNCiAgICAgICAgICAgICAgICAoY29u c3RfaW50IDcgWzB4N10pDQogICAgICAgICAgICAgICAgKGNvbnN0X2ludCA4IFsweDhdKQ0KICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgOSBbMHg5XSkNCiAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDEwIFsweGFdKQ0KICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTEgWzB4Yl0pDQogICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAxMiBbMHhjXSkNCiAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDEzIFsweGRdKQ0KICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTUgWzB4Zl0pDQogICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkNCiAgICAgICAgICAgIF0pKSAiIjoxNDY2OjE0 IDExNjYgeyphYXJjaDY0X3NpbWRfbW92djE2cWl9DQogICAgIChuaWwpKQ0KDQpBbmQgSSBkb24n dCBzZWUgYW55IHdheSB0byBmaXggdGhpcyB3aXRob3V0IGhhdmluZyBHaW1wbGUgbm90IHB1c2gg Y29uc3RhbnRzIGluLCB3aGljaCB3b3VsZCBsZWFkIHRvIHdvcnNlIHJlZ3Jlc3Npb25zLg0KSSBj YW4gY2hhbmdlIHRoZSBwYXRjaCB0byBjb3N0IHRoZSBoaWdoIGFzIGEgZHVwIHdoaWNoIGZpeGVz IHRoaXMgY29kZWdlbiBhdCBsZWFzdCBhbmQgaGFzIHlvdSByZW1hdGVyaWFsaXplIG1vdmkuICAg SWYgdGhhdCdzDQpub3QgYWNjZXB0YWJsZSBJIGNhbiBkcm9wIGNvc3RpbmcgZm9yIEhpZ2ggZW50 aXJlbHkgdGhlbiwgaXQncyBub3QgdGhlIG1haW4gdGhpbmcgSSBhbSBmaXhpbmcuDQoNClRhbWFy DQoNCj4gDQo+IFRoYW5rcywNCj4gUmljaGFyZA0K