From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3743DA0C47; Tue, 26 Oct 2021 03:09:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F421940A4B; Tue, 26 Oct 2021 03:09:03 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00044.outbound.protection.outlook.com [40.107.0.44]) by mails.dpdk.org (Postfix) with ESMTP id 0A4A74003E for ; Tue, 26 Oct 2021 03:09:02 +0200 (CEST) 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=K8+MHe0E5fkIjiVSyfaQf/oOWjDOVjfqMG1yLLCSHr4=; b=WVEh8ZnBwN9UN1mGuIhNlMKDI7H8wSzN11sH5UcNzJGz4f3Ra6Ef0RVrQIqoKFo1PTw71bBO9hd48pnty9zsC5rJZzToVbx3ifY6T2OkX4XNmN+ksCd+MvW17lsGmVr1BM6BuuB0pYv1D/TUXECDd+8/UvNSnlkTag2bbFlXKE8= Received: from AS9PR0301CA0024.eurprd03.prod.outlook.com (2603:10a6:20b:468::31) by PA4PR08MB6142.eurprd08.prod.outlook.com (2603:10a6:102:ee::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Tue, 26 Oct 2021 01:09:00 +0000 Received: from VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:468:cafe::ee) by AS9PR0301CA0024.outlook.office365.com (2603:10a6:20b:468::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Tue, 26 Oct 2021 01:09:00 +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 VE1EUR03FT057.mail.protection.outlook.com (10.152.19.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Tue, 26 Oct 2021 01:08:59 +0000 Received: ("Tessian outbound a8bfe25d7364:v103"); Tue, 26 Oct 2021 01:08:59 +0000 X-CR-MTA-TID: 64aa7808 Received: from 92ec5641f983.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6F82B368-7C84-4965-82B0-6E33701C385F.1; Tue, 26 Oct 2021 01:08:53 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 92ec5641f983.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 26 Oct 2021 01:08:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gMfUkZfrCsLfjQoZtRmOmyrkpHaaPbNCNH0RgPR1WedI89RHsZFwtkbftGMn5NrnbfShU7BO3mu6lWDVFNqi++3MpNfjmBbHZrNBzACPJyxpnXDlph2aszfvNlGQ5kVLoJH1hZGiuUU2oAm5R/pgkskO+00k2fAm7u+E4JYuTdcFKeFcNsb4zibVxdp2spp5/k2To86SKl0eUViN9lPL8dlT7NuYVFsrGPcK9W97xvB+yVtE+i+K8XiU4vUsnRk7crlmh59MJ0/fE+doyR9pxnRLZXCPo+daEKbOtZTc9KGUhZW+j1C0OIql3eAjrzHoYloAfsNTfD4EbOH7CYeQ7g== 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=K8+MHe0E5fkIjiVSyfaQf/oOWjDOVjfqMG1yLLCSHr4=; b=OAELy1DS9sq4K8HcFggK/RygjidwdMgJBAGENiwCOfOAOlDNudi4h1/p/b1FWkkZBQVJZ6yLpj4iNKkc8Ylmc2vBrJFU1izmgtUNMYT+5XGQ/dLX44Y+hmTOsJ2N9TJb4BFDLmg6sM+TvNpaBOd6KwfIzH3JIgsFGesZJk2I2mtzaT3x16U9L/19LBuWg7BqO2dIjviBR6kVMmgySglZO8brzm5AVn/YNcHV3kEJJaTTY/gV8gVz/Wwzk8braK1eb5AE3ZvhA7lQVfmOLI9ix74/MaK8ZE+ZNVE5IBJpcYREMnbjkCeDAk2PzBC69Mfc5J5Ue84NqN/P6QLXtv8U6g== 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=K8+MHe0E5fkIjiVSyfaQf/oOWjDOVjfqMG1yLLCSHr4=; b=WVEh8ZnBwN9UN1mGuIhNlMKDI7H8wSzN11sH5UcNzJGz4f3Ra6Ef0RVrQIqoKFo1PTw71bBO9hd48pnty9zsC5rJZzToVbx3ifY6T2OkX4XNmN+ksCd+MvW17lsGmVr1BM6BuuB0pYv1D/TUXECDd+8/UvNSnlkTag2bbFlXKE8= Received: from DB9PR08MB6923.eurprd08.prod.outlook.com (2603:10a6:10:2ac::6) by DB7PR08MB4618.eurprd08.prod.outlook.com (2603:10a6:10:78::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Tue, 26 Oct 2021 01:08:51 +0000 Received: from DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::705e:f09f:7dd:500a]) by DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::705e:f09f:7dd:500a%6]) with mapi id 15.20.4628.020; Tue, 26 Oct 2021 01:08:51 +0000 From: Feifei Wang To: "Ananyev, Konstantin" , Ruifeng Wang CC: "dev@dpdk.org" , nd , nd , nd Thread-Topic: [PATCH v4 1/5] eal: add new definitions for wait scheme Thread-Index: AQHXxY7xtCrADdTHBUS7GQmhbwWV7KvdpUAAgAXP5rCAAFj+gIAAsfXA Date: Tue, 26 Oct 2021 01:08:51 +0000 Message-ID: References: <20210926063302.1541193-1-feifei.wang2@arm.com> <20211020084523.1309177-1-feifei.wang2@arm.com> <20211020084523.1309177-2-feifei.wang2@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 94FB333FB5B3FD45B258323BEFB38EB6.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: d1017539-4c7a-45f6-d59a-08d9981d3156 x-ms-traffictypediagnostic: DB7PR08MB4618:|PA4PR08MB6142: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: tZXky+HdQNGRZg7/aueu1fK/lSLkJ5nwL+fPFJ6VJ375tF0CBVo9Uz7+XqvxCOmdSvElUlj6EELsy6KOscAziiLD3pFoRdqquE7JaGPsMjpuLIov9AgJbRItmsht+ZdI2TrnCppp9zsf+KIkjkq5zk2+qDMbbBkYAVPo1HAYQSsDGDwAkw5JVElpXS7KpVrJKQD69SbUmHhPdlpI8jSBtiQtuxygSRmSzAUGgtyQNWJCOUiesrf99Q7X1kjyszlA4fuKsaogEeIZa5L+qJvE+9N5BmrlKoH7/+8OXXf+ftRhzPEuDvNnvkGSS58SXgc8bcerrcbdqU0eBRRwFLvcDrSbW2FHsRZx1HSQbDuDxRN9o9CZoythFxD+VoOkjycmwjL57h1yBmGhmXpGBQIvdksbKO7aF6Eglw4Eq30/8G1CdqPazOK8YKYz8psj0KtMVdc3hJGTrP0CWmbSlz5AbCpauOl8ZgktfAXlVCVlKRXqHLSxU8Ddeu+S0bCIdNhLWANsBgp0HlcUCGzh0GNUSYJ3SFlf+9+YPyWjJLxVD7m89AXhnTP6IB5joT2v1TdNFjAsIL+GfJweNYpUiaFCzazTMBaAwvO/dqxl8znL8AbAHdQfHlrwuXfCxCZtPiING9d2hlnNCey5j6j/0iIoUjrDB1YyGicqNW2MsLVxX2yqGrurMj2//DfZzdsyw7OVAzXQuZuSMcCGuEKa3NpMrQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6923.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(186003)(66446008)(86362001)(52536014)(66946007)(83380400001)(64756008)(122000001)(66556008)(66476007)(30864003)(224303003)(4326008)(38100700002)(7696005)(508600001)(2906002)(110136005)(6506007)(76116006)(8936002)(316002)(9686003)(71200400001)(54906003)(55016002)(38070700005)(26005)(5660300002)(33656002)(6636002); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB4618 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: VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: c31118e6-4936-4bd0-13c4-08d9981d2c3b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qYh39gsFV4/ZZfvCpo70uJ6Dc2JptgD4aoi+NRiKGv6FpFh37JNPws3XSNM3OknOpK2NkAGpz7tL3hz1DtAgv93d2ymT2GDll2SXPMfYNFJXFSDU78lRxjiUhXIOlRBuAdnWxxO2qbTiTPNDOIJC0zo+p0T57cijii+bONUb8L1ooB9+PryF+0LE4D8xw1kKE/gqEJT4sk7HTQUx54ArQdsm6qCJDuGcgg08Z0kDW+JUtynaKOf8FPcFz7/6ZM7m7VwApPDH6JVF5VPWJ+hoPgWSyJn3e5ADrECxe7GxYxbAH7ITUU4ZjRlSuXFEGDVEWtCRBALtjg69gz20m/pSOX9vz9qJotKfaESc+1o1MtqlLfZAy7KKvdfAOk7fkqlblA3SiRNHg5OWcRZQt89slvvrKEG3aD17+jVXGV9pbm2Fpn7AmPMt9Vuewb2oFITGHDqGKuqASvbXcVeuEmmi+UmnuoAqnjmi5I1vJmgIkKxNkMUMA7O6TL7tniOiVed6zctx20rOY1zxGFB8nIZbMLV9/3PHYNQIg/9kO0MPXWOuFCZx7ZAkIwbpw4AvkDn/cWetrItoQ8uFPAr/QPkH5sgfP2QiwBePJhPEh0KQwG/SScTA0YKGrtW37CkLQinbBYNPX49YP+Vzq2225dAaLn7Ai1T1Lj5G3Ax0TYbpN/yh/DTnlo/RNxWffYmPr/bYdFMtRCz7zmMiPXTcD37MjA== 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)(55016002)(52536014)(9686003)(86362001)(316002)(110136005)(54906003)(8936002)(224303003)(4326008)(81166007)(508600001)(5660300002)(70206006)(47076005)(6636002)(7696005)(186003)(356005)(6506007)(36860700001)(336012)(83380400001)(2906002)(70586007)(30864003)(26005)(82310400003)(33656002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2021 01:08:59.7441 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d1017539-4c7a-45f6-d59a-08d9981d3156 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: VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6142 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjQgMS81XSBlYWw6IGFk?= =?utf-8?q?d_new_definitions_for_wait_scheme?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEFuYW55ZXYsIEtvbnN0 YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+IOWPkemAgeaXtumXtDogTW9u ZGF5LCBPY3RvYmVyIDI1LCAyMDIxIDEwOjI5IFBNDQo+IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcg PEZlaWZlaS5XYW5nMkBhcm0uY29tPjsgUnVpZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdAYXJt LmNvbT4NCj4g5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgbmQgPG5kQGFy bS5jb20+DQo+IOS4u+mimDogUkU6IFtQQVRDSCB2NCAxLzVdIGVhbDogYWRkIG5ldyBkZWZpbml0 aW9ucyBmb3Igd2FpdCBzY2hlbWUNCj4gDQo+IA0KPiA+ID4gPiBJbnRyb2R1Y2UgbWFjcm9zIGFz IGdlbmVyaWMgaW50ZXJmYWNlIGZvciBhZGRyZXNzIG1vbml0b3JpbmcuDQo+ID4gPiA+DQo+ID4g PiA+IFNpZ25lZC1vZmYtYnk6IEZlaWZlaSBXYW5nIDxmZWlmZWkud2FuZzJAYXJtLmNvbT4NCj4g PiA+ID4gUmV2aWV3ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5nQGFybS5jb20+DQo+ ID4gPiA+IC0tLQ0KPiA+ID4gPiAgbGliL2VhbC9hcm0vaW5jbHVkZS9ydGVfcGF1c2VfNjQuaCAg fCAxMjYNCj4gPiA+ID4gKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLSAgbGliL2VhbC9pbmNs dWRlL2dlbmVyaWMvcnRlX3BhdXNlLmgNCj4gPiA+ID4gKysrKysrKysrKysrKysrK3wNCj4gPiA+ ID4gMzIgKysrKysrKw0KPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygr KSwgNTQgZGVsZXRpb25zKC0pDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvZWFs L2FybS9pbmNsdWRlL3J0ZV9wYXVzZV82NC5oDQo+ID4gPiA+IGIvbGliL2VhbC9hcm0vaW5jbHVk ZS9ydGVfcGF1c2VfNjQuaA0KPiA+ID4gPiBpbmRleCBlODdkMTBiOGNjLi4yMzk1NGMyZGUyIDEw MDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9wYXVzZV82NC5oDQo+ ID4gPiA+ICsrKyBiL2xpYi9lYWwvYXJtL2luY2x1ZGUvcnRlX3BhdXNlXzY0LmgNCj4gPiA+ID4g QEAgLTMxLDIwICszMSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcnRlX3BhdXNlKHZvaWQpDQo+ ID4gPiA+ICAvKiBQdXQgcHJvY2Vzc29yIGludG8gbG93IHBvd2VyIFdGRShXYWl0IEZvciBFdmVu dCkgc3RhdGUuICovDQo+ID4gPiA+ICNkZWZpbmUgX19XRkUoKSB7IGFzbSB2b2xhdGlsZSgid2Zl IiA6IDogOiAibWVtb3J5Iik7IH0NCj4gPiA+ID4NCj4gPiA+ID4gLXN0YXRpYyBfX3J0ZV9hbHdh eXNfaW5saW5lIHZvaWQNCj4gPiA+ID4gLXJ0ZV93YWl0X3VudGlsX2VxdWFsXzE2KHZvbGF0aWxl IHVpbnQxNl90ICphZGRyLCB1aW50MTZfdCBleHBlY3RlZCwNCj4gPiA+ID4gLQkJaW50IG1lbW9y ZGVyKQ0KPiA+ID4gPiAtew0KPiA+ID4gPiAtCXVpbnQxNl90IHZhbHVlOw0KPiA+ID4gPiAtDQo+ ID4gPiA+IC0JYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwgbWVtb3JkZXIg PT0NCj4gPiA+IF9fQVRPTUlDX1JFTEFYRUQpOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0JLyoNCj4g PiA+ID4gLQkgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRo ZSAxNi1iaXQgY29udGVudCBvZg0KPiA+ID4gPiAtCSAqICphZGRyIHdoaWxlIG1ha2luZyBpdCAn bW9uaXRvcmVkJyx3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gPiAtCSAqIGVs c2UsIHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVy YXRlZA0KPiA+ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiA+IC0JICov DQo+ID4gPiA+ICsvKg0KPiA+ID4gPiArICogQXRvbWljIGV4Y2x1c2l2ZSBsb2FkIGZyb20gYWRk ciwgaXQgcmV0dXJucyB0aGUgMTYtYml0IGNvbnRlbnQNCj4gPiA+ID4gK29mDQo+ID4gPiA+ICsg KiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0b3JlZCcsIHdoZW4gaXQgaXMgd3JpdHRlbiBi eQ0KPiA+ID4gPiArc29tZW9uZQ0KPiA+ID4gPiArICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0 YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZlbnQgaXMNCj4gPiA+ID4gK2dlbmVyYXRlZA0KPiA+ID4g PiArICogaW1wbGljaXRseSB0byBleGl0IFdGRS4NCj4gPiA+ID4gKyAqLw0KPiA+ID4gPiAgI2Rl ZmluZSBfX0xPQURfRVhDXzE2KHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgIFwN Cj4gPiA+ID4gIAlpZiAobWVtb3JkZXIgPT0gX19BVE9NSUNfUkVMQVhFRCkgeyAgICAgICAgICAg ICAgIFwNCj4gPiA+ID4gIAkJYXNtIHZvbGF0aWxlKCJsZHhyaCAld1t0bXBdLCBbJXhbYWRkcl1d IiAgXCBAQCAtNTgsNiArNTAsNTINCj4gPiA+IEBADQo+ID4gPiA+IHJ0ZV93YWl0X3VudGlsX2Vx dWFsXzE2KHZvbGF0aWxlIHVpbnQxNl90ICphZGRyLCB1aW50MTZfdCBleHBlY3RlZCwNCj4gPiA+ ID4gIAkJCTogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICAJfSB9 DQo+ID4gPiA+DQo+ID4gPiA+ICsvKg0KPiA+ID4gPiArICogQXRvbWljIGV4Y2x1c2l2ZSBsb2Fk IGZyb20gYWRkciwgaXQgcmV0dXJucyB0aGUgMzItYml0IGNvbnRlbnQNCj4gPiA+ID4gK29mDQo+ ID4gPiA+ICsgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0b3JlZCcsIHdoZW4gaXQgaXMg d3JpdHRlbiBieQ0KPiA+ID4gPiArc29tZW9uZQ0KPiA+ID4gPiArICogZWxzZSwgdGhlICdtb25p dG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZlbnQgaXMNCj4gPiA+ID4gK2dlbmVyYXRl ZA0KPiA+ID4gPiArICogaW1wbGljaXRseSB0byBleGl0IFdGRS4NCj4gPiA+ID4gKyAqLw0KPiA+ ID4gPiArI2RlZmluZSBfX0xPQURfRVhDXzMyKHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAg ICAgICAgXA0KPiA+ID4gPiArCWlmIChtZW1vcmRlciA9PSBfX0FUT01JQ19SRUxBWEVEKSB7ICAg ICAgICAgICAgICBcDQo+ID4gPiA+ICsJCWFzbSB2b2xhdGlsZSgibGR4ciAld1t0bXBdLCBbJXhb YWRkcl1dIiAgXA0KPiA+ID4gPiArCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAg XA0KPiA+ID4gPiArCQkJOiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ID4g PiArCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCX0gZWxz ZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJ CWFzbSB2b2xhdGlsZSgibGRheHIgJXdbdG1wXSwgWyV4W2FkZHJdXSIgXA0KPiA+ID4gPiArCQkJ OiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQkJOiBbYWRkcl0g InIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQkJOiAibWVtb3J5Iik7ICAgICAg ICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCX0gfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKg0K PiA+ID4gPiArICogQXRvbWljIGV4Y2x1c2l2ZSBsb2FkIGZyb20gYWRkciwgaXQgcmV0dXJucyB0 aGUgNjQtYml0IGNvbnRlbnQNCj4gPiA+ID4gK29mDQo+ID4gPiA+ICsgKiAqYWRkciB3aGlsZSBt YWtpbmcgaXQgJ21vbml0b3JlZCcsIHdoZW4gaXQgaXMgd3JpdHRlbiBieQ0KPiA+ID4gPiArc29t ZW9uZQ0KPiA+ID4gPiArICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQg YW5kIGEgZXZlbnQgaXMNCj4gPiA+ID4gK2dlbmVyYXRlZA0KPiA+ID4gPiArICogaW1wbGljaXRs eSB0byBleGl0IFdGRS4NCj4gPiA+ID4gKyAqLw0KPiA+ID4gPiArI2RlZmluZSBfX0xPQURfRVhD XzY0KHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCWlmICht ZW1vcmRlciA9PSBfX0FUT01JQ19SRUxBWEVEKSB7ICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJ CWFzbSB2b2xhdGlsZSgibGR4ciAleFt0bXBdLCBbJXhbYWRkcl1dIiAgXA0KPiA+ID4gPiArCQkJ OiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQkJOiBbYWRkcl0g InIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQkJOiAibWVtb3J5Iik7ICAgICAg ICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJCWFzbSB2b2xhdGlsZSgibGRheHIgJXhb dG1wXSwgWyV4W2FkZHJdXSIgXA0KPiA+ID4gPiArCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAg ICAgICAgICAgXA0KPiA+ID4gPiArCQkJOiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAg XA0KPiA+ID4gPiArCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4g PiArCX0gfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2 b2lkDQo+ID4gPiA+ICtydGVfd2FpdF91bnRpbF9lcXVhbF8xNih2b2xhdGlsZSB1aW50MTZfdCAq YWRkciwgdWludDE2X3QgZXhwZWN0ZWQsDQo+ID4gPiA+ICsJCWludCBtZW1vcmRlcikNCj4gPiA+ ID4gK3sNCj4gPiA+ID4gKwl1aW50MTZfdCB2YWx1ZTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWFz c2VydChtZW1vcmRlciA9PSBfX0FUT01JQ19BQ1FVSVJFIHx8IG1lbW9yZGVyID09DQo+ID4gPiA+ ICtfX0FUT01JQ19SRUxBWEVEKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiAgCV9fTE9BRF9FWENfMTYo YWRkciwgdmFsdWUsIG1lbW9yZGVyKQ0KPiA+ID4gPiAgCWlmICh2YWx1ZSAhPSBleHBlY3RlZCkg ew0KPiA+ID4gPiAgCQlfX1NFVkwoKQ0KPiA+ID4gPiBAQCAtNjYsNyArMTA0LDYgQEAgcnRlX3dh aXRfdW50aWxfZXF1YWxfMTYodm9sYXRpbGUgdWludDE2X3QNCj4gPiA+ID4gKmFkZHIsDQo+ID4g PiB1aW50MTZfdCBleHBlY3RlZCwNCj4gPiA+ID4gIAkJCV9fTE9BRF9FWENfMTYoYWRkciwgdmFs dWUsIG1lbW9yZGVyKQ0KPiA+ID4gPiAgCQl9IHdoaWxlICh2YWx1ZSAhPSBleHBlY3RlZCk7DQo+ ID4gPiA+ICAJfQ0KPiA+ID4gPiAtI3VuZGVmIF9fTE9BRF9FWENfMTYNCj4gPiA+ID4gIH0NCj4g PiA+ID4NCj4gPiA+ID4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiA+ID4g QEAgLTc3LDI1ICsxMTQsNiBAQCBydGVfd2FpdF91bnRpbF9lcXVhbF8zMih2b2xhdGlsZSB1aW50 MzJfdA0KPiA+ID4gPiAqYWRkciwgdWludDMyX3QgZXhwZWN0ZWQsDQo+ID4gPiA+DQo+ID4gPiA+ ICAJYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwgbWVtb3JkZXIgPT0NCj4g PiA+ID4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4gPiA+DQo+ID4gPiA+IC0JLyoNCj4gPiA+ID4g LQkgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSAzMi1i aXQgY29udGVudCBvZg0KPiA+ID4gPiAtCSAqICphZGRyIHdoaWxlIG1ha2luZyBpdCAnbW9uaXRv cmVkJyx3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gPiAtCSAqIGVsc2UsIHRo ZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVyYXRlZA0K PiA+ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiA+IC0JICovDQo+ID4g PiA+IC0jZGVmaW5lIF9fTE9BRF9FWENfMzIoc3JjLCBkc3QsIG1lbW9yZGVyKSB7ICAgICAgICAg ICAgICBcDQo+ID4gPiA+IC0JaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFYRUQpIHsgICAg ICAgICAgICAgIFwNCj4gPiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZHhyICV3W3RtcF0sIFsleFth ZGRyXV0iICBcDQo+ID4gPiA+IC0JCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBc DQo+ID4gPiA+IC0JCQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ IC0JCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JfSBlbHNl IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gLQkJ YXNtIHZvbGF0aWxlKCJsZGF4ciAld1t0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ID4gPiA+IC0JCQk6 IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JCQk6IFthZGRyXSAi ciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JCQk6ICJtZW1vcnkiKTsgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JfSB9DQo+ID4gPiA+IC0NCj4gPiA+ID4gIAlfX0xP QURfRVhDXzMyKGFkZHIsIHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ID4gIAlpZiAodmFsdWUgIT0g ZXhwZWN0ZWQpIHsNCj4gPiA+ID4gIAkJX19TRVZMKCkNCj4gPiA+ID4gQEAgLTEwNCw3ICsxMjIs NiBAQCBydGVfd2FpdF91bnRpbF9lcXVhbF8zMih2b2xhdGlsZSB1aW50MzJfdA0KPiA+ID4gPiAq YWRkciwNCj4gPiA+IHVpbnQzMl90IGV4cGVjdGVkLA0KPiA+ID4gPiAgCQkJX19MT0FEX0VYQ18z MihhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gPiA+ICAJCX0gd2hpbGUgKHZhbHVlICE9IGV4 cGVjdGVkKTsNCj4gPiA+ID4gIAl9DQo+ID4gPiA+IC0jdW5kZWYgX19MT0FEX0VYQ18zMg0KPiA+ ID4gPiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9p ZA0KPiA+ID4gPiBAQCAtMTE1LDI1ICsxMzIsNiBAQCBydGVfd2FpdF91bnRpbF9lcXVhbF82NCh2 b2xhdGlsZSB1aW50NjRfdA0KPiA+ID4gPiAqYWRkciwgdWludDY0X3QgZXhwZWN0ZWQsDQo+ID4g PiA+DQo+ID4gPiA+ICAJYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwgbWVt b3JkZXIgPT0NCj4gPiA+ID4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4gPiA+DQo+ID4gPiA+IC0J LyoNCj4gPiA+ID4gLQkgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1 cm5zIHRoZSA2NC1iaXQgY29udGVudCBvZg0KPiA+ID4gPiAtCSAqICphZGRyIHdoaWxlIG1ha2lu ZyBpdCAnbW9uaXRvcmVkJyx3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gPiAt CSAqIGVsc2UsIHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlz IGdlbmVyYXRlZA0KPiA+ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiA+ IC0JICovDQo+ID4gPiA+IC0jZGVmaW5lIF9fTE9BRF9FWENfNjQoc3JjLCBkc3QsIG1lbW9yZGVy KSB7ICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JF TEFYRUQpIHsgICAgICAgICAgICAgIFwNCj4gPiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZHhyICV4 W3RtcF0sIFsleFthZGRyXV0iICBcDQo+ID4gPiA+IC0JCQk6IFt0bXBdICI9JnIiIChkc3QpICAg ICAgICAgICAgICBcDQo+ID4gPiA+IC0JCQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAg ICBcDQo+ID4gPiA+IC0JCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4g PiA+IC0JfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Cj4gPiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZGF4ciAleFt0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ ID4gPiA+IC0JCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0J CQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JCQk6ICJtZW1v cnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JfSB9DQo+ID4gPiA+IC0NCj4g PiA+ID4gIAlfX0xPQURfRVhDXzY0KGFkZHIsIHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ID4gIAlp ZiAodmFsdWUgIT0gZXhwZWN0ZWQpIHsNCj4gPiA+ID4gIAkJX19TRVZMKCkNCj4gPiA+ID4gQEAg LTE0Myw2ICsxNDEsMjYgQEAgcnRlX3dhaXRfdW50aWxfZXF1YWxfNjQodm9sYXRpbGUgdWludDY0 X3QNCj4gPiA+ID4gKmFkZHIsDQo+ID4gPiB1aW50NjRfdCBleHBlY3RlZCwNCj4gPiA+ID4gIAkJ fSB3aGlsZSAodmFsdWUgIT0gZXhwZWN0ZWQpOw0KPiA+ID4gPiAgCX0NCj4gPiA+ID4gIH0NCj4g PiA+ID4gKw0KPiA+ID4gPiArI2RlZmluZSBydGVfd2FpdF9ldmVudChhZGRyLCBtYXNrLCBleHBl Y3RlZCwgY29uZCwgbWVtb3JkZXIsIHNpemUpIFwNCj4gPiA+ID4gK2RvIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4g PiA+ICsJUlRFX0JVSUxEX0JVR19PTighX19idWlsdGluX2NvbnN0YW50X3AobWVtb3JkZXIpKTsg ICAgICAgICBcDQo+ID4gPiA+ICsJUlRFX0JVSUxEX0JVR19PTihtZW1vcmRlciAhPSBfX0FUT01J Q19BQ1FVSVJFICYmICAgICAgICAgICBcDQo+ID4gPiA+ICsJbWVtb3JkZXIgIT0gX19BVE9NSUNf UkVMQVhFRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJUlRFX0JV SUxEX0JVR19PTihzaXplICE9IDE2ICYmIHNpemUgIT0gMzIgJiYgc2l6ZSAhPSA2NCk7ICBcDQo+ ID4gPiA+ICsJdWludCMjc2l6ZV90IHZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQo+ID4gPiA+ICsJX19MT0FEX0VYQ18jI3NpemUoYWRkciwgdmFsdWUsIG1l bW9yZGVyKSAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJaWYgKCh2YWx1ZSAmIG1hc2sp IGNvbmQgZXhwZWN0ZWQpIHsJCSAgICAgICAgICAgXA0KPiA+ID4gPiArCQlfX1NFVkwoKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJCWRvIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4g KwkJCV9fV0ZFKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ ICsJCQlfX0xPQURfRVhDXyMjc2l6ZShhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpICAgXA0KPiA+ID4g PiArCQl9IHdoaWxlICgodmFsdWUgJiBtYXNrKSBjb25kIGV4cGVjdGVkKTsgICAgICAgICAgICBc DQo+ID4gPiA+ICsJfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4gPiA+ICt9IHdoaWxlICgwKQ0KPiA+ID4gPiArDQo+ID4gPiA+ ICsjdW5kZWYgX19MT0FEX0VYQ18xNg0KPiA+ID4gPiArI3VuZGVmIF9fTE9BRF9FWENfMzINCj4g PiA+ID4gICN1bmRlZiBfX0xPQURfRVhDXzY0DQo+ID4gPiA+DQo+ID4gPiA+ICAjdW5kZWYgX19T RVZMDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1 c2UuaA0KPiA+ID4gPiBiL2xpYi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4g PiA+IGluZGV4IDY2OGVlNGExODQuLjIwYTVkMmE5ZmQgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2xp Yi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4gPiA+ICsrKyBiL2xpYi9lYWwv aW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4gPiA+IEBAIC0xMTEsNiArMTExLDM4IEBA IHJ0ZV93YWl0X3VudGlsX2VxdWFsXzY0KHZvbGF0aWxlIHVpbnQ2NF90DQo+ID4gPiA+ICphZGRy LA0KPiA+ID4gdWludDY0X3QgZXhwZWN0ZWQsDQo+ID4gPiA+ICAJd2hpbGUgKF9fYXRvbWljX2xv YWRfbihhZGRyLCBtZW1vcmRlcikgIT0gZXhwZWN0ZWQpDQo+ID4gPiA+ICAJCXJ0ZV9wYXVzZSgp Ow0KPiA+ID4gPiAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKg0KPiA+ID4gPiArICogV2FpdCB1 bnRpbCAqYWRkciBicmVha3MgdGhlIGNvbmRpdGlvbiwgd2l0aCBhIHJlbGF4ZWQgbWVtb3J5DQo+ ID4gPiA+ICsgKiBvcmRlcmluZyBtb2RlbCBtZWFuaW5nIHRoZSBsb2FkcyBhcm91bmQgdGhpcyBB UEkgY2FuIGJlIHJlb3JkZXJlZC4NCj4gPiA+ID4gKyAqDQo+ID4gPiA+ICsgKiBAcGFyYW0gYWRk cg0KPiA+ID4gPiArICogIEEgcG9pbnRlciB0byB0aGUgbWVtb3J5IGxvY2F0aW9uLg0KPiA+ID4g PiArICogQHBhcmFtIG1hc2sNCj4gPiA+ID4gKyAqICBBIG1hc2sgb2YgdmFsdWUgYml0cyBpbiBp bnRlcmVzdC4NCj4gPiA+ID4gKyAqIEBwYXJhbSBleHBlY3RlZA0KPiA+ID4gPiArICogIEEgMTYt Yml0IGV4cGVjdGVkIHZhbHVlIHRvIGJlIGluIHRoZSBtZW1vcnkgbG9jYXRpb24uDQo+ID4gPiA+ ICsgKiBAcGFyYW0gY29uZA0KPiA+ID4gPiArICogIEEgc3ltYm9sIHJlcHJlc2VudGluZyB0aGUg Y29uZGl0aW9uICg9PSwgIT0pLg0KPiA+ID4gPiArICogQHBhcmFtIG1lbW9yZGVyDQo+ID4gPiA+ ICsgKiAgVHdvIGRpZmZlcmVudCBtZW1vcnkgb3JkZXJzIHRoYXQgY2FuIGJlIHNwZWNpZmllZDoN Cj4gPiA+ID4gKyAqICBfX0FUT01JQ19BQ1FVSVJFIGFuZCBfX0FUT01JQ19SRUxBWEVELiBUaGVz ZSBtYXAgdG8NCj4gPiA+ID4gKyAqICBDKysxMSBtZW1vcnkgb3JkZXJzIHdpdGggdGhlIHNhbWUg bmFtZXMsIHNlZSB0aGUgQysrMTENCj4gPiA+ID4gK3N0YW5kYXJkIG9yDQo+ID4gPiA+ICsgKiAg dGhlIEdDQyB3aWtpIG9uIGF0b21pYyBzeW5jaHJvbml6YXRpb24gZm9yIGRldGFpbGVkIGRlZmlu aXRpb24uDQo+ID4gPiA+ICsgKiBAcGFyYW0gc2l6ZQ0KPiA+ID4gPiArICogVGhlIGJpdCBzaXpl IG9mICphZGRyOg0KPiA+ID4gPiArICogSXQgaXMgdXNlZCBmb3IgYXJtIGFyY2hpdGVjdHVyZSB0 byBjaG9vc2UgbG9hZCBpbnN0cnVjdGlvbnMsDQo+ID4gPiA+ICsgKiBhbmQgdGhlIG9wdGlvbmFs IHZhbHVlIGlzIDE2LCAzMiBhbmQgNjQuDQo+ID4gPiA+ICsgKi8NCj4gPiA+ID4gKyNkZWZpbmUg cnRlX3dhaXRfZXZlbnQoYWRkciwgbWFzaywgZXhwZWN0ZWQsIGNvbmQsIG1lbW9yZGVyLCBzaXpl KQ0KPiBcDQo+ID4gPiA+ICtkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKwlSVEVfQlVJTERfQlVH X09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChtZW1vcmRlcikpOyAgICAgICAgICAgICBcDQo+ID4g PiA+ICsJUlRFX0JVSUxEX0JVR19PTihtZW1vcmRlciAhPSBfX0FUT01JQ19BQ1FVSVJFICYmICAg ICAgICAgICAgICAgXA0KPiA+ID4gPiArCQkJCW1lbW9yZGVyICE9IF9fQVRPTUlDX1JFTEFYRUQp OyAgICAgICAgIFwNCj4gPiA+ID4gKwlSVEVfQlVJTERfQlVHX09OKHNpemUgIT0gMTYgJiYgc2l6 ZSAhPSAzMiAmJiBzaXplICE9IDY0KTsgICAgICBcDQo+ID4gPg0KPiA+ID4gSSBkb24ndCcgcmVh bGx5IHVuZGVyc3RhbmQgd2h5IHlvdSBkbyBuZWVkICdzaXplJyBwYXNzZWQgYXMgcGFyYW1ldGVy Lg0KPiA+ID4gQ2FuJ3QgaXQgYmU6DQo+ID4gPiBzaXplX3Qgc2l6ZSA9IHNpemVvZigqKGFkZHIp KTsNCj4gPiA+IEFuZCB0aGVuOg0KPiA+ID4gUlRFX0JVSUxEX0JVR19PTihzaXplICE9IHNpemVv Zih1aW50MTZfdCkgJiYgc2l6ZSAhPQ0KPiA+ID4gc2l6ZW9mKHVpbnQzMl90KSAmJiBzaXplICE9 IHNpemVvZih1aW50NjRfdCkpOyA/DQo+ID4gPg0KPiA+ID4gPiArCXdoaWxlICgoX19hdG9taWNf bG9hZF9uKGFkZHIsIG1lbW9yZGVyKSAmIG1hc2spIGNvbmQgZXhwZWN0ZWQpIFwNCj4gPiA+ID4g KwkJcnRlX3BhdXNlKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gPiA+DQo+ID4gPiBKdXN0IHRvIHJlcGVhdCBteSBvd24gY29tbWVudCBmcm9tIHByZXZp b3VzIHZlcnNpb24gcmV2aWV3Og0KPiA+ID4gcHV0ICgpIGFyb3VuZCBtYWNybyBwYXJhbWV0ZXJz IGluIHRoZSBtYWNybyBib2R5Lg0KPiA+ID4gV2lsbCBzYXZlIGZyb20gYSBsb3Qgb2YgdW5leHBl Y3RlZCB0cm91Ymxlcy4NCj4gPg0KPiA+IFNvcnJ5IEkgZGlkbid0IGNhdGNoIHRoZSBwb2ludC4N Cj4gPiBJbiB0aGlzIHZlcnNpb24sIEkgZmlyc3RseSB3YW50IHRvIHVzZSAnX19MT0FEX0VYQ18j I3NpemUnIHRvIGNob29zZSAsDQo+ID4gc28gSSB1c2Ugc2l6ZSBhcyBhIHBhcmFtZXRlci4gIEFu ZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLCBJIHdpbGwgdXBkYXRlDQo+ID4gdGhpcyBhc++8mg0KPiA+ DQo+ID4gI2RlZmluZSBfX0xPQURfRVhDKHNyYywgZHN0LCBtZW1vcmRlciwgc2l6ZSkgeyAgICBc DQo+ID4gCWlmIChzaXplID09IDE2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ ID4gCQlfX0xPQURfRVhDXzE2KHNyYywgZHN0LCBtZW1vcmRlcikgICAgIFwNCj4gPiAJZWxzZSBp ZiAoc2l6ZSA9PSAzMikgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAJCV9fTE9BRF9F WENfMzIoc3JjLCBkc3QsIG1lbW9yZGVyKSAgICAgXA0KPiA+IAllbHNlIGlmIChzaXplID09IDY0 KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+IAkJX19MT0FEX0VYQ182NChzcmMsIGRz dCwgbWVtb3JkZXIpICAgICBcDQo+ID4gfQ0KPiA+DQo+ID4gI2RlZmluZSBydGVfd2FpdF9ldmVu dChhZGRyLCBtYXNrLCBjb25kLCBleHBlY3RlZCwgbWVtb3JkZXIpICAgIFwNCj4gPiBkbyB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KPiA+IAlSVEVfQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChtZW1vcmRlcikp OyAgICAgIFwNCj4gPiAJUlRFX0JVSUxEX0JVR19PTihtZW1vcmRlciAhPSBfX0FUT01JQ19BQ1FV SVJFICYmICAgICAgICBcDQo+ID4gCQkJCW1lbW9yZGVyICE9IF9fQVRPTUlDX1JFTEFYRUQpOyAg XA0KPiA+IAl1aW50MzJfdCBzaXplID0gc2l6ZW9mKCphZGRyKSA8PCAzOyAgICAgICAgICAgICAg ICAgICAgIFwNCj4gPiAJdHlwZW9mKCphZGRyKSB2YWx1ZSA9IDA7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4gCV9fTE9BRF9FWEMoYWRkciwgdmFsdWUsIG1lbW9yZGVyLCBz aXplKSAgICAgICAgICAgICAgICAgXA0KPiA+IAlpZiAoKHZhbHVlICYgbWFzaykgY29uZCBleHBl Y3RlZCkgeyAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAJCV9fU0VWTCgpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAJCWRvIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAJCQlfX1dGRSgpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+IAkJCV9fTE9BRF9FWEMoYWRkciwgdmFsdWUsIG1l bW9yZGVyLCBzaXplKSBcDQo+ID4gCQl9IHdoaWxlICgodmFsdWUgJiBtYXNrKSBjb25kIGV4cGVj dGVkKTsgICAgICAgICBcDQo+ID4gCX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+IH0gd2hpbGUgKDApDQo+IA0KPiBTb3JyeSwgSSBw cm9iYWJseSB3YXNuJ3QgY2xlYXIgZW5vdWdoLg0KPiBJIG1lYW50IHVzZSAnKCcgJyknIGFyb3Vu ZCAgbWFjcm8gYXJndW1lbnRzICh0byBhdm9pZCB1bi1wcmVkaWN0ZWQgc2lkZS1lZmZlY3RzDQo+ IHdpdGggb3BlcmFuZHMgYXNzb2NpYXRpdml0eSk6DQo+IHVpbnQzMl90IHNpemUgPSBzaXplb2Yo KihhZGRyKSkgLi4uOw0KPiAuLi4NCj4gaWYgKCh2YWx1ZSAmIChtYXNrKSkgY29uZCAoZXhwZWN0 ZWQpKQ0KPiAuLi4NClRoYXQncyBPay4gU28gaW4gdGhlIG5leHQgdmVyc2lvbiwgSSB3aWxsIGNo YW5nZSB0aGUgZm9sbG93aW5nOg0KMS4gc2l6ZSB3aWxsIG5vdCBiZSBhcyBhIHBhcmFtZXRlcg0K Mi4gSSB3aWxsIGFkZCAnKCknIGFyb3VuZCBtYWNybyBhcmd1bWVudHMNCj4gDQo+IA0KPiANCj4g DQo+IA0KDQo=