From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2076.outbound.protection.outlook.com [40.107.241.76]) by sourceware.org (Postfix) with ESMTPS id A33F73858C54 for ; Wed, 8 Mar 2023 09:25:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A33F73858C54 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zvEuafiNiRJDzZFwCJxsFOKMg2EWksUghhe0w365oNE=; b=ZAUYXvVGD8rH99P77Gs6myVDIVQj0sxiVmRTeOg6vZBezQ8/f3kQyXvSPLBLEMyJRamZgQkK0dkvEXPuR6/uRvfgE5A6I8mA4fuTGvVJTSf4VA2q2v/COzegJMhdXczzedeyTDBfpl6SuOMt1oML273+Uk/cFNnrAyrv4NbVat8= Received: from DB6PR0202CA0009.eurprd02.prod.outlook.com (2603:10a6:4:29::19) by DB4PR08MB9190.eurprd08.prod.outlook.com (2603:10a6:10:3fd::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.27; Wed, 8 Mar 2023 09:25:32 +0000 Received: from DBAEUR03FT016.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:29:cafe::f5) by DB6PR0202CA0009.outlook.office365.com (2603:10a6:4:29::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28 via Frontend Transport; Wed, 8 Mar 2023 09:25:32 +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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT016.mail.protection.outlook.com (100.127.142.204) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28 via Frontend Transport; Wed, 8 Mar 2023 09:25:32 +0000 Received: ("Tessian outbound fcd8b5fba459:v135"); Wed, 08 Mar 2023 09:25:31 +0000 X-CR-MTA-TID: 64aa7808 Received: from bc349a5e7353.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D1B52E23-2052-4229-B1DC-50F4C1198AB8.1; Wed, 08 Mar 2023 09:25:25 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id bc349a5e7353.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 08 Mar 2023 09:25:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RuIiziYd/LjxHP1JYCYERP8ur3ZLj5caxx3e1n0kDjK9go3WMfV5M2QXPnt7etgEwX+ci7/ESUBT3oURd/jJCSKnUARn+F9HgrAWQ2DzyGBPUNvp0/71ycYwhNrqjXDjTW6/Kj6ifkohnfLh7kRkbqAuUO/42rgvVMCx6h9cVCdsJBTxA+EGPwuRuFDLJD3Oi8kWL48oZVkIQkYl2dUEqokWEEfPDc+dT7uOQ7QscXSKBJC1RQWVRyXMqywHerNKa2n4dAnlmJUsM+frvshtatKBQfLafLpuFim6ru8paS6HaXqveI/DQBBuH58pTG+eGwpnXXcEHBIWEvDjX2oEXA== 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=zvEuafiNiRJDzZFwCJxsFOKMg2EWksUghhe0w365oNE=; b=VSKfS/DRVoAHO/uYzbooaA5HZUX6x70hI9ojqBn5tLzCmVL6l5ta9G0uqTjZJ7xAMhDczfnBovrxbqWCj37fZaG02pTTn+JfftdDBwhpGK5hG7E5YATnBBJ8dMLfZeD2Gff8rdL9zIrcsjiJJdeyR8XSc+F5p3AZw/vdxtOVEQR8R+JfbOtJfJ8veawRJVs5MhdCn1MWd6iUiPYpR90jkS0UUFpqm/o6fJMJuirjcKEAeRr0BBj4Mx+qyG9GTw4Gc1g8b412wfjIoaZrnow4VyxoOpD1a2ZhLmKPaiwoUtcwxdiZ0x1UooDtRw/1uwKzhuRLzD5xgyaQ372kxz9QUA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zvEuafiNiRJDzZFwCJxsFOKMg2EWksUghhe0w365oNE=; b=ZAUYXvVGD8rH99P77Gs6myVDIVQj0sxiVmRTeOg6vZBezQ8/f3kQyXvSPLBLEMyJRamZgQkK0dkvEXPuR6/uRvfgE5A6I8mA4fuTGvVJTSf4VA2q2v/COzegJMhdXczzedeyTDBfpl6SuOMt1oML273+Uk/cFNnrAyrv4NbVat8= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by DBBPR08MB6265.eurprd08.prod.outlook.com (2603:10a6:10:207::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.29; Wed, 8 Mar 2023 09:25:22 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe%9]) with mapi id 15.20.6156.029; Wed, 8 Mar 2023 09:25:22 +0000 From: Tamar Christina To: Richard Sandiford CC: "gcc-patches@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov Subject: RE: [PATCH 4/4]AArch64 Update div-bitmask to implement new optab instead of target hook [PR108583] Thread-Topic: [PATCH 4/4]AArch64 Update div-bitmask to implement new optab instead of target hook [PR108583] Thread-Index: AQHZSqfRwvv2ri/czUG6eiryGd3Sd67tphpQgAMCWB+AAAF7kA== Date: Wed, 8 Mar 2023 09:25:22 +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: D5C638CA4B264B459CFC2BA9A2B4CB28.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-traffictypediagnostic: VI1PR08MB5325:EE_|DBBPR08MB6265:EE_|DBAEUR03FT016:EE_|DB4PR08MB9190:EE_ X-MS-Office365-Filtering-Correlation-Id: 03a3ebd1-81a8-49f7-3aaa-08db1fb71091 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: vQ5IQvpoasEcXs4axaGEh9uZkGt/9XzWvv5O30KRRohLBjzEb9tpOE8GrX+GDdn03mEC0Mfdx0WjitbMaXKwz5Qa4hu2aZKcgCiVAkyIRcy3fzfChDtIkBiyts0EzmgiHdwrQTVRp+DWHbU54JzKqQVrHTiTRdOFDV+4rKEVAz/QoPbaYFh0RevkXzFfhQf6pNlFydlnY+hEhB9/sotLi4yeU2H4zaQ/hZOFdYISIDT8C7p4sTNz4vv2/cCsSVDoxAFU3tBpUsEH0r7LXsrAGI7n1wjOVDCcrDZxUN+3AAK0WvEV+FxwXpzjocvVMcrdpIgmHwFXqt7eyOLql4wrInZ3hfNlD9iVzNMShVQdWySBVMtZTj9XFLKLttQUrZpzsKRNOG974YCfTFL+Qccb74xCxxMhVhFI/oC79mophjJlvPEYgTQaU7tprGmTe8mRQOe3Y/Gyi2wj+/Watqjs0H4FpVQOH8jOfQo82d+w6SznugKk/rnF5gShKgHPSs4RohCMwuX0pRAiCqlX54l1ctJEloycYZ31WmqYNWiaTjzQeTUFDo+sphmkGuNwTRx1VYXaBNMfKEclm0XnDa7TSw4f56mr35H5vmcHB4I+frmxskhdaPMI//xhVVrpnZKkj+ZJ7HiCjA0+KkwI+x53+xmU0Fu0MYSoCSB5q1HJqK4pMcPN6GODNYcoDaHQQ3vvdKg2PbpMGXE8O+GouvWOvw== 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:(13230025)(4636009)(136003)(396003)(366004)(346002)(39860400002)(376002)(451199018)(122000001)(38100700002)(33656002)(86362001)(38070700005)(6862004)(71200400001)(8676002)(66556008)(41300700001)(5660300002)(30864003)(2906002)(66446008)(66476007)(76116006)(4326008)(8936002)(64756008)(15650500001)(66946007)(52536014)(9686003)(186003)(26005)(53546011)(83380400001)(6506007)(55016003)(54906003)(6636002)(7696005)(316002)(478600001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6265 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: DBAEUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 00c8f7b0-4d6c-47bb-49f7-08db1fb70adf X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TSQU1zk9Lbuq5jyITbcVvX8ZmHRae90k6f1eVkmMf8LendTbfI72c7PNZbHT0sWmXbgeLtKPNbgwjIHVO25dvV8+HAeQ4aapJsjiKPBKVD0UcaFFk1vEk86d5WHY9AjoIJ/sfvlNedtinnxxEYAw9juj3iwjhOToW6HcB6HMcG6fqVBvPe7DWaSCZYPMaHZ7NlGKnVp0KmjOkaOmWpMt981qMYpqq5j2otcRrs4eKIdugHMNzqLjMtT43w/1ISXgm3+ukYYNXXQnWMEpI6UNRYktfn3RkmDJnlXRY5kdvXA2Rtca+1cG/ZQ/WCcjRwZFW4BohGk21qjx+X2sEWdIsc5w1MU8aM3CYQsDFnjLwpqCLAUK1r7NQjxj/zcQkXg2pgbe7Ex7XOQinT7w9SeQvDzWKXjh6WMBJwd43jaw/GHWSSR5o6APMsocYgROXmnKKIr+rtcCTvBrKRCMvQIH/Kt3z2bhUrDnXvuNrgu6e9/Nv+0JOrKAyE0BvqgDMRwR2wpuLvMGNjcWiXBDU8QjK7PcU8ZRT3pRxXkxJ1S0SKOkCJ8PMMZsIxcEJaeex+HmZU2nDNLXu97/Bd4cqvzpH8lGg3ACkv2j17Fjj+Z/WJ4RPiUsrkZ6LqZjJsRaKKbhHmVB4Q3VXxSVobH1x/7scxR+a8apSsfym9nQigXCRyPKNs9Kvdxb61iwdqbv90wYrkYH6KpznZPHNWLjYviczQ== 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:(13230025)(4636009)(39860400002)(346002)(376002)(136003)(396003)(451199018)(46966006)(36840700001)(40470700004)(54906003)(33656002)(6636002)(316002)(82310400005)(55016003)(83380400001)(40480700001)(86362001)(336012)(9686003)(40460700003)(186003)(7696005)(30864003)(15650500001)(5660300002)(6506007)(6862004)(4326008)(70586007)(8936002)(70206006)(8676002)(47076005)(2906002)(82740400003)(478600001)(26005)(53546011)(36860700001)(52536014)(41300700001)(356005)(81166007);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2023 09:25:32.0330 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 03a3ebd1-81a8-49f7-3aaa-08db1fb71091 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: DBAEUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9190 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIFNhbmRpZm9yZCA8 cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCA4LCAy MDIzIDk6MTggQU0NCj4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5j b20+DQo+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsgbmQgPG5kQGFybS5jb20+OyBSaWNo YXJkIEVhcm5zaGF3DQo+IDxSaWNoYXJkLkVhcm5zaGF3QGFybS5jb20+OyBNYXJjdXMgU2hhd2Ny b2Z0DQo+IDxNYXJjdXMuU2hhd2Nyb2Z0QGFybS5jb20+OyBLeXJ5bG8gVGthY2hvdiA8S3lyeWxv LlRrYWNob3ZAYXJtLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCA0LzRdQUFyY2g2NCBVcGRh dGUgZGl2LWJpdG1hc2sgdG8gaW1wbGVtZW50IG5ldw0KPiBvcHRhYiBpbnN0ZWFkIG9mIHRhcmdl dCBob29rIFtQUjEwODU4M10NCj4gDQo+IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5h QGFybS5jb20+IHdyaXRlczoNCj4gPiBQaW5nLA0KPiA+DQo+ID4gQW5kIHVwZGF0aW5nIHRoZSBo b29rLg0KPiA+DQo+ID4gVGhlcmUgYXJlIG5vIG5ldyB0ZXN0IGFzIG5ldyBjb3JyZWN0bmVzcyB0 ZXN0cyB3ZXJlIGFkZGVkIHRvIHRoZQ0KPiA+IG1pZC1lbmQgYW5kIHRoZSBleGlzdGluZyBjb2Rl Z2VuIHRlc3RzIGZvciB0aGlzIGFscmVhZHkgZXhpc3QuDQo+ID4NCj4gPiBCb290c3RyYXBwZWQg UmVndGVzdGVkIG9uIGFhcmNoNjQtbm9uZS1saW51eC1nbnUgYW5kIG5vIGlzc3Vlcy4NCj4gPg0K PiA+IE9rIGZvciBtYXN0ZXI/DQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gVGFtYXINCj4gPg0KPiA+ IGdjYy9DaGFuZ2VMb2c6DQo+ID4NCj4gPiAgICAgICAgIFBSIHRhcmdldC8xMDg1ODMNCj4gPiAg ICAgICAgICogY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zaW1kLm1kDQo+IChAYWFyY2g2NF9iaXRt YXNrX3VkaXY8bW9kZT4zKTogUmVtb3ZlLg0KPiA+ICAgICAgICAgKCpiaXRtYXNrX3NoaWZ0X3Bs dXM8bW9kZT4pOiBOZXcuDQo+ID4gICAgICAgICAqIGNvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc3Zl Mi5tZCAoKmJpdG1hc2tfc2hpZnRfcGx1czxtb2RlPik6IE5ldy4NCj4gPiAgICAgICAgIChAYWFy Y2g2NF9iaXRtYXNrX3VkaXY8bW9kZT4zKTogUmVtb3ZlLg0KPiA+ICAgICAgICAgKiBjb25maWcv YWFyY2g2NC9hYXJjaDY0LmNjDQo+ID4gICAgICAgICAoYWFyY2g2NF92ZWN0b3JpemVfY2FuX3Nw ZWNpYWxfZGl2X2J5X2NvbnN0YW50LA0KPiA+ICAgICAgICAgVEFSR0VUX1ZFQ1RPUklaRV9DQU5f U1BFQ0lBTF9ESVZfQllfQ09OU1QpOiBSZW1vdmVkLg0KPiA+ICAgICAgICAgKFRBUkdFVF9WRUNU T1JJWkVfUFJFRkVSUkVEX0RJVl9BU19TSElGVFNfT1ZFUl9NVUxULA0KPiA+ICAgICAgICAgYWFy Y2g2NF92ZWN0b3JpemVfcHJlZmVycmVkX2Rpdl9hc19zaGlmdHNfb3Zlcl9tdWx0KTogTmV3Lg0K PiA+DQo+ID4gLS0tIGlubGluZSBjb3B5IG9mIHBhdGNoIC0tLQ0KPiA+DQo+ID4gZGlmZiAtLWdp dCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQNCj4gPiBiL2djYy9jb25maWcv YWFyY2g2NC9hYXJjaDY0LXNpbWQubWQNCj4gPiBpbmRleA0KPiA+DQo+IDdmMjEyYmYzN2NkMmMx MjBkY2ViN2VmYTczM2M5ZmE3NjIyNmYwMjkuLmUxZWNiODg2MzRmOTNkMzgwZWY1MzQNCj4gMDkz ZWE2DQo+ID4gNTk5ZGM3Mjc4MTA4IDEwMDY0NA0KPiA+IC0tLSBhL2djYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0LXNpbWQubWQNCj4gPiArKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1z aW1kLm1kDQo+ID4gQEAgLTQ4NjcsNjAgKzQ4NjcsMjcgQEAgKGRlZmluZV9leHBhbmQNCj4gImFh cmNoNjRfPHN1cj48YWRkc3ViPmhuMjxtb2RlPiINCj4gPiAgICB9DQo+ID4gICkNCj4gPg0KPiA+ IC07OyBkaXYgb3B0aW1pemF0aW9ucyB1c2luZyBuYXJyb3dpbmdzIC07OyB3ZSBjYW4gZG8gdGhl IGRpdmlzaW9uIGUuZy4NCj4gPiBzaG9ydHMgYnkgMjU1IGZhc3RlciBieSBjYWxjdWxhdGluZyBp dCBhcyAtOzsgKHggKyAoKHggKyAyNTcpID4+IDgpKQ0KPiA+ID4+IDggYXNzdW1pbmcgdGhlIG9w ZXJhdGlvbiBpcyBkb25lIGluIC07OyBkb3VibGUgdGhlIHByZWNpc2lvbiBvZiB4Lg0KPiA+IC07 Ow0KPiA+IC07OyBJZiB3ZSBpbWFnaW5lIGEgc2hvcnQgYXMgYmVpbmcgY29tcG9zZWQgb2YgdHdv IGJsb2NrcyBvZiBieXRlcw0KPiA+IHRoZW4gLTs7IGFkZGluZyAyNTcgb3IgMGIwMDAwXzAwMDFf MDAwMF8wMDAxIHRvIHRoZSBudW1iZXIgaXMNCj4gPiBlcXVpdmFsZW50IHRvIC07OyBhZGRpbmcg MSB0byBlYWNoIHN1YiBjb21wb25lbnQ6DQo+ID4gLTs7DQo+ID4gLTs7ICAgICAgc2hvcnQgdmFs dWUgb2YgMTYtYml0cw0KPiA+IC07OyDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilJANCj4gPiAtOzsg4pSCICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSC DQo+ID4gLTs7IOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU tOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmA0KPiA+ IC07OyAgIDgtYml0IHBhcnQxIOKWsiAgOC1iaXQgcGFydDIgICDilrINCj4gPiAtOzsgICAgICAg ICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCDQo+ID4gLTs7ICAgICAgICAgICAgICAg4pSC ICAgICAgICAgICAgICAgIOKUgg0KPiA+IC07OyAgICAgICAgICAgICAgKzEgICAgICAgICAgICAg ICArMQ0KPiA+IC07Ow0KPiA+IC07OyBhZnRlciB0aGUgZmlyc3QgYWRkaXRpb24sIHdlIGhhdmUg dG8gc2hpZnQgcmlnaHQgYnkgOCwgYW5kIG5hcnJvdw0KPiA+IHRoZSAtOzsgcmVzdWx0cyBiYWNr IHRvIGEgYnl0ZS4gIFJlbWVtYmVyIHRoYXQgdGhlIGFkZGl0aW9uIG11c3QgYmUNCj4gPiBkb25l IGluIC07OyBkb3VibGUgdGhlIHByZWNpc2lvbiBvZiB0aGUgaW5wdXQuICBTaW5jZSA4IGlzIGhh bGYgdGhlDQo+ID4gc2l6ZSBvZiBhIHNob3J0IC07OyB3ZSBjYW4gdXNlIGEgbmFycm93aW5nIGhh bGZpbmcgaW5zdHJ1Y3Rpb24gaW4NCj4gPiBBQXJjaDY0LCBhZGRobiB3aGljaCBhbHNvIC07OyBk b2VzIHRoZSBhZGRpdGlvbiBpbiBhIHdpZGVyIHByZWNpc2lvbg0KPiA+IGFuZCBuYXJyb3dzIGJh Y2sgdG8gYSBieXRlLiAgVGhlIC07OyBzaGlmdCBpdHNlbGYgaXMgaW1wbGljaXQgaW4gdGhlDQo+ ID4gb3BlcmF0aW9uIGFzIGl0IHdyaXRlcyBiYWNrIG9ubHkgdGhlIHRvcCAtOzsgaGFsZiBvZiB0 aGUgcmVzdWx0LiBpLmUuIGJpdHMgMiplc2l6ZS0NCj4gMTplc2l6ZS4NCj4gPiAtOzsNCj4gPiAt OzsgU2luY2Ugd2UgaGF2ZSBuYXJyb3dlZCB0aGUgcmVzdWx0IG9mIHRoZSBmaXJzdCBwYXJ0IGJh Y2sgdG8gYQ0KPiA+IGJ5dGUsIGZvciAtOzsgdGhlIHNlY29uZCBhZGRpdGlvbiB3ZSBjYW4gdXNl IGEgd2lkZW5pbmcgYWRkaXRpb24sIHVhZGR3Lg0KPiA+IC07Ow0KPiA+IC07OyBGb3IgdGhlIGZp bmFsIHNoaWZ0LCBzaW5jZSBpdCdzIHVuc2lnbmVkIGFyaXRobWV0aWMgd2UgZW1pdCBhbiB1c2hy IGJ5IDguDQo+ID4gLTs7DQo+ID4gLTs7IFRoZSBzaGlmdCBpcyBsYXRlciBvcHRpbWl6ZWQgYnkg Y29tYmluZSB0byBhIHV6cDIgd2l0aCBtb3ZpICMwLg0KPiA+IC0oZGVmaW5lX2V4cGFuZCAiQGFh cmNoNjRfYml0bWFza191ZGl2PG1vZGU+MyINCj4gPiAtICBbKG1hdGNoX29wZXJhbmQ6VlFOIDAg InJlZ2lzdGVyX29wZXJhbmQiKQ0KPiA+IC0gICAobWF0Y2hfb3BlcmFuZDpWUU4gMSAicmVnaXN0 ZXJfb3BlcmFuZCIpDQo+ID4gLSAgIChtYXRjaF9vcGVyYW5kOlZRTiAyICJpbW1lZGlhdGVfb3Bl cmFuZCIpXQ0KPiA+ICs7OyBPcHRpbWl6ZSAoKGEgKyBiKSA+PiBuKSArIGMgd2hlcmUgbiBpcyBo YWxmIHRoZSBiaXRzaXplIG9mIHRoZQ0KPiA+ICt2ZWN0b3IgKGRlZmluZV9pbnNuX2FuZF9zcGxp dCAiKmJpdG1hc2tfc2hpZnRfcGx1czxtb2RlPiINCj4gPiArICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWUU4gMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mdyIpDQo+ID4gKyAgICAgICAocGx1czpWUU4N Cj4gPiArICAgICAgICAgKGxzaGlmdHJ0OlZRTg0KPiA+ICsgICAgICAgICAgIChwbHVzOlZRTiAo bWF0Y2hfb3BlcmFuZDpWUU4gMSAicmVnaXN0ZXJfb3BlcmFuZCIgInciKQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gMiAicmVnaXN0ZXJfb3BlcmFuZCIgInci KSkNCj4gPiArICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gMw0KPiA+ICsiYWFyY2g2NF9z aW1kX3NoaWZ0X2ltbV92ZWNfZXhhY3RfdG9wIiAiRHIiKSkNCj4gDQo+IEkgZ3Vlc3MgdGhpcyBp cyBwZXJzb25hbCBwcmVmZXJlbmNlLCBzb3JyeSwgYnV0IEkgdGhpbmsgd2Ugc2hvdWxkIGRyb3Ag dGhlDQo+IGNvbnN0cmFpbnQuICBUaGUgcHJlZGljYXRlIGRvZXMgdGhlIHJlYWwgY2hlY2ssIGFu ZCB0aGUgb3BlcmFuZCBpcyBuZXZlcg0KPiByZWxvYWRlZCwgc28gIkRyIiBpc24ndCBhbnkgbW9y ZSBoZWxwZnVsIHRoYW4gYW4gZW1wdHkgY29uc3RyYWludCwgYW5kIElNTw0KPiBjYW4gYmUgY29u ZnVzaW5nLg0KPiANCj4gPiArICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VlFOIDQgInJlZ2lzdGVy X29wZXJhbmQiICJ3IikpKV0NCj4gPiAgICAiVEFSR0VUX1NJTUQiDQo+ID4gKyAgIiMiDQo+ID4g KyAgIiYmIHRydWUiDQo+ID4gKyAgWyhjb25zdF9pbnQgMCldDQo+ID4gIHsNCj4gPiAtICB1bnNp Z25lZCBIT1NUX1dJREVfSU5UIHNpemUNCj4gPiAtICAgID0gKDFVTEwgPDwgR0VUX01PREVfVU5J VF9CSVRTSVpFICg8Vk5BUlJPV1E+bW9kZSkpIC0gMTsNCj4gPiAtICBydHggZWx0ID0gdW53cmFw X2NvbnN0X3ZlY19kdXBsaWNhdGUgKG9wZXJhbmRzWzJdKTsNCj4gPiAtICBpZiAoIUNPTlNUX0lO VF9QIChlbHQpIHx8IFVJTlRWQUwgKGVsdCkgIT0gc2l6ZSkNCj4gPiAtICAgIEZBSUw7DQo+ID4g LQ0KPiA+IC0gIHJ0eCBhZGRlbmQgPSBnZW5fcmVnX3J0eCAoPE1PREU+bW9kZSk7DQo+ID4gLSAg cnR4IHZhbCA9IGFhcmNoNjRfc2ltZF9nZW5fY29uc3RfdmVjdG9yX2R1cCAoPFZOQVJST1dRMj5t b2RlLCAxKTsNCj4gPiAtICBlbWl0X21vdmVfaW5zbiAoYWRkZW5kLCBsb3dwYXJ0X3N1YnJlZyAo PE1PREU+bW9kZSwgdmFsLA0KPiA+IDxWTkFSUk9XUTI+bW9kZSkpOw0KPiA+IC0gIHJ0eCB0bXAx ID0gZ2VuX3JlZ19ydHggKDxWTkFSUk9XUT5tb2RlKTsNCj4gPiAtICBydHggdG1wMiA9IGdlbl9y ZWdfcnR4ICg8TU9ERT5tb2RlKTsNCj4gPiAtICBlbWl0X2luc24gKGdlbl9hYXJjaDY0X2FkZGhu PG1vZGU+ICh0bXAxLCBvcGVyYW5kc1sxXSwgYWRkZW5kKSk7DQo+ID4gLSAgdW5zaWduZWQgYml0 c2l6ZSA9IEdFVF9NT0RFX1VOSVRfQklUU0laRSAoPFZOQVJST1dRPm1vZGUpOw0KPiA+IC0gIHJ0 eCBzaGlmdF92ZWN0b3IgPSBhYXJjaDY0X3NpbWRfZ2VuX2NvbnN0X3ZlY3Rvcl9kdXAgKDxNT0RF Pm1vZGUsDQo+ID4gYml0c2l6ZSk7DQo+ID4gLSAgZW1pdF9pbnNuIChnZW5fYWFyY2g2NF91YWRk dzxWbmFycm93cT4gKHRtcDIsIG9wZXJhbmRzWzFdLCB0bXAxKSk7DQo+ID4gLSAgZW1pdF9pbnNu IChnZW5fYWFyY2g2NF9zaW1kX2xzaHI8bW9kZT4gKG9wZXJhbmRzWzBdLCB0bXAyLA0KPiA+IHNo aWZ0X3ZlY3RvcikpOw0KPiA+ICsgIHJ0eCB0bXA7DQo+ID4gKyAgaWYgKGNhbl9jcmVhdGVfcHNl dWRvX3AgKCkpDQo+ID4gKyAgICB0bXAgPSBnZW5fcmVnX3J0eCAoPFZOQVJST1dRPm1vZGUpOyAg ZWxzZQ0KPiA+ICsgICAgdG1wID0gZ2VuX3J0eF9SRUcgKDxWTkFSUk9XUT5tb2RlLCBSRUdOTyAo b3BlcmFuZHNbMF0pKTsNCj4gPiArIGVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfYWRkaG48bW9kZT4g KHRtcCwgb3BlcmFuZHNbMV0sDQo+IG9wZXJhbmRzWzJdKSk7DQo+ID4gKyBlbWl0X2luc24gKGdl bl9hYXJjaDY0X3VhZGR3PFZuYXJyb3dxPiAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzRdLA0KPiA+ ICsgdG1wKSk7DQo+ID4gICAgRE9ORTsNCj4gPiAgfSkNCj4gDQo+IEluIHRoZSBwcmV2aW91cyBy ZXZpZXcsIEkgc2FpZDoNCj4gDQo+ICAgSG93ZXZlciwgSUlVQywgdGhpcyBwYXR0ZXJuIHdvdWxk IG9ubHkgYmUgZm9ybWVkIGZyb20gY29tYmluaW5nDQo+ICAgdGhyZWUgZGlzdGluY3QgcGF0dGVy bnMuICBJcyB0aGF0IHJpZ2h0PyAgSWYgc28sIHdlIHNob3VsZCBiZSBhYmxlDQo+ICAgdG8gaGFu ZGxlIGl0IGFzIGEgcGxhaW4gZGVmaW5lX3NwbGl0LCB3aXRoIG5vIGRlZmluZV9pbnNuLg0KPiAg IFRoYXQgc2hvdWxkIG1ha2UgdGhpbmdzIHNpbXBsZXIsIHNvIHdvdWxkIGJlIHdvcnRoIHRyeWlu ZyBiZWZvcmUNCj4gICB0aGUgY2hhbmdlcyBJIG1lbnRpb25lZCBhYm92ZS4NCj4gDQo+IERpZCB5 b3UgdHJ5IHRoYXQ/ICBJIHN0aWxsIHRoaW5rIGl0J2QgYmUgcHJlZmVyYWJsZSB0byBkZWZpbmlu ZyBhIG5ldyBpbnNuLg0KDQpZZXMgSSBkaWQhIFNvcnJ5IEkgZm9yZ290IHRvIG1lbnRpb24gdGhh dC4gIFdoZW4gSSBtYWRlIGl0IGEgc3BsaXQgZm9yIHNvbWUNCnJlYXNvbiBJdCB3YXNuJ3QgbWF0 Y2hpbmcgaXQgYW55bW9yZS4NCg0KUmVnYXJkcywNClRhbWFyDQo+IA0KPiA+IGRpZmYgLS1naXQg YS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUyLm1kDQo+ID4gYi9nY2MvY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC1zdmUyLm1kDQo+ID4gaW5kZXgNCj4gPg0KPiA0MGMwNzI4YTdlNmYwMGMz OTVjMzYwY2U3NjI1YmMyZTRhMDE4ODA5Li5iZWQ0NGQ3ZDY4NzM4NzczODYyMg0KPiAyZDU2MTQ0 Yw0KPiA+IGMxMTVlMzk1M2E2MSAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC1zdmUyLm1kDQo+ID4gKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc3Zl Mi5tZA0KPiA+IEBAIC0yMzE3LDQxICsyMzE3LDI0IEBAIChkZWZpbmVfaW5zbg0KPiAiQGFhcmNo NjRfc3ZlXzxvcHRhYj48bW9kZT4iDQo+ID4gIDs7IC0tLS0gW0lOVF0gTWlzYyBvcHRhYiBpbXBs ZW1lbnRhdGlvbnMgIDs7DQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+IC0tLQ0KPiA+ICA7OyBJbmNs dWRlczoNCj4gPiAtOzsgLSBhYXJjaDY0X2JpdG1hc2tfdWRpdg0KPiA+ICs7OyAtIGJpdG1hc2tf c2hpZnRfcGx1cw0KPiANCj4gVGhpcyBpcyBubyBsb25nZXIgYW4gb3B0YWIuDQo+IA0KPiBUaGUg b3JpZ2luYWwgcHVycG9zZSBvZiB0aGUgIkluY2x1ZGVzOiIgY29tbWVudHMgd2FzIHRvIGxpc3Qg dGhlIElTQQ0KPiBpbnN0cnVjdGlvbnMgdGhhdCBhcmUgYWN0dWFsbHkgYmVpbmcgZ2VuZXJhdGVk LCBhcyBhIHNob3J0LWN1dCB0byB3b3JraW5nDQo+IHRocm91Z2ggYWxsIHRoZSBhYnN0cmFjdGlv bnMuICBKdXN0IGxpc3RpbmcgZGVmaW5lX2luc24gbmFtZXMgZG9lc24ndCByZWFsbHkgYWRkDQo+ IGFueXRoaW5nIG92ZXIgcmVhZGluZyB0aGUgaW5zbnMgdGhlbXNlbHZlcy4NCj4gDQo+IFNpbmNl IHRoZSBuZXcgcGF0dGVybiBpcyBhbiBhbHRlcm5hdGl2ZSB3YXkgb2YgZ2VuZXJhdGluZyBBRERI TkIsIGl0IHByb2JhYmx5DQo+IGJlbG9uZ3MgaW4gdGhlICJOYXJyb3dpbmcgYmluYXJ5IGFyaXRo bWV0aWMiIHNlY3Rpb24uDQo+IA0KPiA+ICA7Ow0KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAtLS0N Cj4gPg0KPiA+IC07OyBkaXYgb3B0aW1pemF0aW9ucyB1c2luZyBuYXJyb3dpbmdzIC07OyB3ZSBj YW4gZG8gdGhlIGRpdmlzaW9uIGUuZy4NCj4gPiBzaG9ydHMgYnkgMjU1IGZhc3RlciBieSBjYWxj dWxhdGluZyBpdCBhcyAtOzsgKHggKyAoKHggKyAyNTcpID4+IDgpKQ0KPiA+ID4+IDggYXNzdW1p bmcgdGhlIG9wZXJhdGlvbiBpcyBkb25lIGluIC07OyBkb3VibGUgdGhlIHByZWNpc2lvbiBvZiB4 Lg0KPiA+IC07Ow0KPiA+IC07OyBTZWUgYWFyY2g2NC1zaW1kLm1kIGZvciBiaWdnZXIgZXhwbGFu YXRpb24uDQo+ID4gLShkZWZpbmVfZXhwYW5kICJAYWFyY2g2NF9iaXRtYXNrX3VkaXY8bW9kZT4z Ig0KPiA+IC0gIFsobWF0Y2hfb3BlcmFuZDpTVkVfRlVMTF9IU0RJIDAgInJlZ2lzdGVyX29wZXJh bmQiKQ0KPiA+IC0gICAobWF0Y2hfb3BlcmFuZDpTVkVfRlVMTF9IU0RJIDEgInJlZ2lzdGVyX29w ZXJhbmQiKQ0KPiA+IC0gICAobWF0Y2hfb3BlcmFuZDpTVkVfRlVMTF9IU0RJIDIgImltbWVkaWF0 ZV9vcGVyYW5kIildDQo+ID4gKzs7IE9wdGltaXplICgoYSArIGIpID4+IG4pIHdoZXJlIG4gaXMg aGFsZiB0aGUgYml0c2l6ZSBvZiB0aGUgdmVjdG9yDQo+ID4gKyhkZWZpbmVfaW5zbiAiKmJpdG1h c2tfc2hpZnRfcGx1czxtb2RlPiINCj4gPiArICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTVkVfRlVM TF9IU0RJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpDQo+ID4gKyAgICAgICAodW5zcGVjOlNW RV9GVUxMX0hTREkNCj4gPiArICAgICAgICAgIFsobWF0Y2hfb3BlcmFuZDo8VlBSRUQ+IDEpDQo+ ID4gKyAgICAgICAgICAgKGxzaGlmdHJ0OlNWRV9GVUxMX0hTREkNCj4gPiArICAgICAgICAgICAg IChwbHVzOlNWRV9GVUxMX0hTREkNCj4gPiArICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 U1ZFX0ZVTExfSFNESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIpDQo+ID4gKyAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlNWRV9GVUxMX0hTREkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgInci KSkNCj4gPiArICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNWRV9GVUxMX0hTREkgNA0KPiA+ ICsgICAgICAgICAgICAgICAgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjX2V4YWN0X3RvcCIg IkRyIikpXQ0KPiANCj4gU2FtZSBjb21tZW50IGFib3V0IHRoZSBjb25zdHJhaW50cyBoZXJlLg0K PiANCj4gPiArICAgICAgICAgIFVOU1BFQ19QUkVEX1gpKV0NCj4gPiAgICAiVEFSR0VUX1NWRTIi DQo+ID4gLXsNCj4gPiAtICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHNpemUNCj4gPiAtICAgID0g KDFVTEwgPDwgR0VUX01PREVfVU5JVF9CSVRTSVpFICg8Vk5BUlJPVz5tb2RlKSkgLSAxOw0KPiA+ IC0gIHJ0eCBlbHQgPSB1bndyYXBfY29uc3RfdmVjX2R1cGxpY2F0ZSAob3BlcmFuZHNbMl0pOw0K PiA+IC0gIGlmICghQ09OU1RfSU5UX1AgKGVsdCkgfHwgVUlOVFZBTCAoZWx0KSAhPSBzaXplKQ0K PiA+IC0gICAgRkFJTDsNCj4gPiAtDQo+ID4gLSAgcnR4IGFkZGVuZCA9IGdlbl9yZWdfcnR4ICg8 TU9ERT5tb2RlKTsNCj4gPiAtICBydHggdG1wMSA9IGdlbl9yZWdfcnR4ICg8Vk5BUlJPVz5tb2Rl KTsNCj4gPiAtICBydHggdG1wMiA9IGdlbl9yZWdfcnR4ICg8Vk5BUlJPVz5tb2RlKTsNCj4gPiAt ICBydHggdmFsID0gYWFyY2g2NF9zaW1kX2dlbl9jb25zdF92ZWN0b3JfZHVwICg8Vk5BUlJPVz5t b2RlLCAxKTsNCj4gPiAtICBlbWl0X21vdmVfaW5zbiAoYWRkZW5kLCBsb3dwYXJ0X3N1YnJlZyAo PE1PREU+bW9kZSwgdmFsLA0KPiA+IDxWTkFSUk9XPm1vZGUpKTsNCj4gPiAtICBlbWl0X2luc24g KGdlbl9hYXJjaDY0X3N2ZSAoVU5TUEVDX0FEREhOQiwgPE1PREU+bW9kZSwgdG1wMSwNCj4gb3Bl cmFuZHNbMV0sDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZW5kKSk7DQo+ ID4gLSAgZW1pdF9pbnNuIChnZW5fYWFyY2g2NF9zdmUgKFVOU1BFQ19BRERITkIsIDxNT0RFPm1v ZGUsIHRtcDIsDQo+IG9wZXJhbmRzWzFdLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxvd3BhcnRfc3VicmVnICg8TU9ERT5tb2RlLCB0bXAxLA0KPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vk5BUlJPVz5tb2RlKSkpOw0KPiA+IC0g IGVtaXRfbW92ZV9pbnNuIChvcGVyYW5kc1swXSwNCj4gPiAtICAgICAgICAgICAgICAgICBsb3dw YXJ0X3N1YnJlZyAoPE1PREU+bW9kZSwgdG1wMiwgPFZOQVJST1c+bW9kZSkpOw0KPiA+IC0gIERP TkU7DQo+ID4gLX0pDQo+ID4gKyAgImFkZGhuYlx0JTAuPFZlbnR5cGU+LCAlMi48VmV0eXBlPiwg JTMuPFZldHlwZT4iDQo+ID4gKykNCj4gDQo+IFRoZSBwYXR0ZXJuIExHVE0gb3RoZXJ3aXNlLg0K PiANCj4gPiAgOzsNCj4gPg0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PQ0KPiA+ID09PQ0KPiA+ICA7OyA9 PSBQZXJtdXRhdGlvbg0KPiA+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2 NC5jYw0KPiA+IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuY2MgaW5kZXgNCj4gPg0KPiBl NmY0N2NiYmIwZDA0YTZmMzNiOWE3NDFlYmI2MTRjYWJkMDIwNGI5Li5lYjRmOTllZTUyNDg0NGVk NWIzNg0KPiA4NGM2ZmU4MA0KPiA+IDdhNDEyODY4NTQyMyAxMDA2NDQNCj4gPiAtLS0gYS9nY2Mv Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jYw0KPiA+ICsrKyBiL2djYy9jb25maWcvYWFyY2g2NC9h YXJjaDY0LmNjDQo+ID4gQEAgLTM4NDksNiArMzg0OSwxOSBAQCBhYXJjaDY0X3ZlY3Rvcml6ZV9y ZWxhdGVkX21vZGUNCj4gKG1hY2hpbmVfbW9kZSB2ZWN0b3JfbW9kZSwNCj4gPiAgICByZXR1cm4g ZGVmYXVsdF92ZWN0b3JpemVfcmVsYXRlZF9tb2RlICh2ZWN0b3JfbW9kZSwgZWxlbWVudF9tb2Rl LA0KPiA+IG51bml0cyk7ICB9DQo+ID4NCj4gPiArLyogSW1wbGVtZW50DQo+IFRBUkdFVF9WRUNU T1JJWkVfUFJFRkVSUkVEX0RJVl9BU19TSElGVFNfT1ZFUl9NVUxULiAgKi8NCj4gPiArDQo+ID4g K3N0YXRpYyBib29sDQo+ID4gK2FhcmNoNjRfdmVjdG9yaXplX3ByZWZlcnJlZF9kaXZfYXNfc2hp ZnRzX292ZXJfbXVsdCAoY29uc3RfdHJlZSB0eXBlKQ0KPiA+ICt7DQo+ID4gKyAgbWFjaGluZV9t b2RlIG1vZGUgPSBUWVBFX01PREUgKHR5cGUpOw0KPiA+ICsgIHVuc2lnbmVkIGludCB2ZWNfZmxh Z3MgPSBhYXJjaDY0X2NsYXNzaWZ5X3ZlY3Rvcl9tb2RlIChtb2RlKTsNCj4gPiArICBib29sIHN2 ZV9wID0gKHZlY19mbGFncyAmIFZFQ19BTllfU1ZFKTsNCj4gPiArICBib29sIHNpbWRfcCA9ICh2 ZWNfZmxhZ3MgJiBWRUNfQURWU0lNRCk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiAoc3ZlX3AgJiYg VEFSR0VUX1NWRTIpIHx8IChzaW1kX3AgJiYgVEFSR0VUX1NJTUQpOyB9DQo+ID4gKw0KPiANCj4g QW5kIHRoZSBob29rIExHVE0gdG9vLg0KPiANCj4gVGhhbmtzLA0KPiBSaWNoYXJkDQo+IA0KPiA+ ICAvKiBJbXBsZW1lbnQgVEFSR0VUX1BSRUZFUlJFRF9FTFNFX1ZBTFVFLiAgRm9yIGJpbmFyeSBv cGVyYXRpb25zLA0KPiA+ICAgICBwcmVmZXIgdG8gdXNlIHRoZSBmaXJzdCBhcml0aG1ldGljIG9w ZXJhbmQgYXMgdGhlIGVsc2UgdmFsdWUgaWYNCj4gPiAgICAgdGhlIGVsc2UgdmFsdWUgZG9lc24n dCBtYXR0ZXIsIHNpbmNlIHRoYXQgZXhhY3RseSBtYXRjaGVzIHRoZSBTVkUNCj4gPiBAQCAtMjQz NjMsNDYgKzI0Mzc2LDYgQEAgYWFyY2g2NF92ZWN0b3JpemVfdmVjX3Blcm1fY29uc3QNCj4gPiAo bWFjaGluZV9tb2RlIHZtb2RlLCBtYWNoaW5lX21vZGUgb3BfbW9kZSwNCj4gPg0KPiA+ICAgIHJl dHVybiByZXQ7DQo+ID4gIH0NCj4gPiAtDQo+ID4gLS8qIEltcGxlbWVudCBUQVJHRVRfVkVDVE9S SVpFX0NBTl9TUEVDSUFMX0RJVl9CWV9DT05TVC4gICovDQo+ID4gLQ0KPiA+IC1ib29sDQo+ID4g LWFhcmNoNjRfdmVjdG9yaXplX2Nhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdGFudCAoZW51bSB0cmVl X2NvZGUgY29kZSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRyZWUgdmVjdHlwZSwgd2lkZV9pbnQgY3N0LA0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnR4ICpvdXRwdXQsIHJ0eCBpbjAsIHJ0eCBp bjEpDQo+ID4gLXsNCj4gPiAtICBpZiAoY29kZSAhPSBUUlVOQ19ESVZfRVhQUg0KPiA+IC0gICAg ICB8fCAhVFlQRV9VTlNJR05FRCAodmVjdHlwZSkpDQo+ID4gLSAgICByZXR1cm4gZmFsc2U7DQo+ ID4gLQ0KPiA+IC0gIG1hY2hpbmVfbW9kZSBtb2RlID0gVFlQRV9NT0RFICh2ZWN0eXBlKTsNCj4g PiAtICB1bnNpZ25lZCBpbnQgZmxhZ3MgPSBhYXJjaDY0X2NsYXNzaWZ5X3ZlY3Rvcl9tb2RlICht b2RlKTsNCj4gPiAtICBpZiAoKGZsYWdzICYgVkVDX0FOWV9TVkUpICYmICFUQVJHRVRfU1ZFMikN Cj4gPiAtICAgIHJldHVybiBmYWxzZTsNCj4gPiAtDQo+ID4gLSAgaW50IHBvdyA9IHdpOjpleGFj dF9sb2cyIChjc3QgKyAxKTsNCj4gPiAtICBhdXRvIGluc25fY29kZSA9IG1heWJlX2NvZGVfZm9y X2FhcmNoNjRfYml0bWFza191ZGl2MyAoVFlQRV9NT0RFDQo+ID4gKHZlY3R5cGUpKTsNCj4gPiAt ICAvKiBTVkUgYWN0dWFsbHkgaGFzIGEgZGl2IG9wZXJhdG9yLCB3ZSBtYXkgaGF2ZSBnb3R0ZW4g aGVyZSB0aHJvdWdoDQo+ID4gLSAgICAgdGhhdCByb3V0ZS4gICovDQo+ID4gLSAgaWYgKHBvdyAh PSAoaW50KSAoZWxlbWVudF9wcmVjaXNpb24gKHZlY3R5cGUpIC8gMikNCj4gPiAtICAgICAgfHwg aW5zbl9jb2RlID09IENPREVfRk9SX25vdGhpbmcpDQo+ID4gLSAgICByZXR1cm4gZmFsc2U7DQo+ ID4gLQ0KPiA+IC0gIC8qIFdlIGNhbiB1c2UgdGhlIG9wdGltaXplZCBwYXR0ZXJuLiAgKi8NCj4g PiAtICBpZiAoaW4wID09IE5VTExfUlRYICYmIGluMSA9PSBOVUxMX1JUWCkNCj4gPiAtICAgIHJl dHVybiB0cnVlOw0KPiA+IC0NCj4gPiAtICBnY2NfYXNzZXJ0IChvdXRwdXQpOw0KPiA+IC0NCj4g PiAtICBleHBhbmRfb3BlcmFuZCBvcHNbM107DQo+ID4gLSAgY3JlYXRlX291dHB1dF9vcGVyYW5k ICgmb3BzWzBdLCAqb3V0cHV0LCBtb2RlKTsNCj4gPiAtICBjcmVhdGVfaW5wdXRfb3BlcmFuZCAo Jm9wc1sxXSwgaW4wLCBtb2RlKTsNCj4gPiAtICBjcmVhdGVfZml4ZWRfb3BlcmFuZCAoJm9wc1sy XSwgaW4xKTsNCj4gPiAtICBleHBhbmRfaW5zbiAoaW5zbl9jb2RlLCAzLCBvcHMpOw0KPiA+IC0g ICpvdXRwdXQgPSBvcHNbMF0udmFsdWU7DQo+ID4gLSAgcmV0dXJuIHRydWU7DQo+ID4gLX0NCj4g PiAtDQo+ID4gIC8qIEdlbmVyYXRlIGEgYnl0ZSBwZXJtdXRlIG1hc2sgZm9yIGEgcmVnaXN0ZXIg b2YgbW9kZSBNT0RFLA0KPiA+ICAgICB3aGljaCBoYXMgTlVOSVRTIHVuaXRzLiAgKi8NCj4gPg0K PiA+IEBAIC0yNzkwNCwxMyArMjc4NzcsMTMgQEANCj4gYWFyY2g2NF9saWJnY2NfZmxvYXRpbmdf bW9kZV9zdXBwb3J0ZWRfcA0KPiA+ICAjdW5kZWYgVEFSR0VUX01BWF9BTkNIT1JfT0ZGU0VUDQo+ ID4gICNkZWZpbmUgVEFSR0VUX01BWF9BTkNIT1JfT0ZGU0VUIDQwOTUNCj4gPg0KPiA+ICsjdW5k ZWYgVEFSR0VUX1ZFQ1RPUklaRV9QUkVGRVJSRURfRElWX0FTX1NISUZUU19PVkVSX01VTFQNCj4g PiArI2RlZmluZSBUQVJHRVRfVkVDVE9SSVpFX1BSRUZFUlJFRF9ESVZfQVNfU0hJRlRTX09WRVJf TVVMVCBcDQo+ID4gKyAgYWFyY2g2NF92ZWN0b3JpemVfcHJlZmVycmVkX2Rpdl9hc19zaGlmdHNf b3Zlcl9tdWx0DQo+ID4gKw0KPiA+ICAjdW5kZWYgVEFSR0VUX1ZFQ1RPUl9BTElHTk1FTlQNCj4g PiAgI2RlZmluZSBUQVJHRVRfVkVDVE9SX0FMSUdOTUVOVCBhYXJjaDY0X3NpbWRfdmVjdG9yX2Fs aWdubWVudA0KPiA+DQo+ID4gLSN1bmRlZiBUQVJHRVRfVkVDVE9SSVpFX0NBTl9TUEVDSUFMX0RJ Vl9CWV9DT05TVA0KPiA+IC0jZGVmaW5lIFRBUkdFVF9WRUNUT1JJWkVfQ0FOX1NQRUNJQUxfRElW X0JZX0NPTlNUIFwNCj4gPiAtICBhYXJjaDY0X3ZlY3Rvcml6ZV9jYW5fc3BlY2lhbF9kaXZfYnlf Y29uc3RhbnQNCj4gPiAtDQo+ID4gICN1bmRlZiBUQVJHRVRfVkVDVE9SSVpFX1BSRUZFUlJFRF9W RUNUT1JfQUxJR05NRU5UDQo+ID4gICNkZWZpbmUgVEFSR0VUX1ZFQ1RPUklaRV9QUkVGRVJSRURf VkVDVE9SX0FMSUdOTUVOVCBcDQo+ID4gICAgYWFyY2g2NF92ZWN0b3JpemVfcHJlZmVycmVkX3Zl Y3Rvcl9hbGlnbm1lbnQNCg==