From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 64416A31F3 for ; Fri, 18 Oct 2019 21:04:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2EBD41C07F; Fri, 18 Oct 2019 21:04:09 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00055.outbound.protection.outlook.com [40.107.0.55]) by dpdk.org (Postfix) with ESMTP id 34DDB1BE81 for ; Fri, 18 Oct 2019 21:04:07 +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=UdwJUbSqia+XSgnF7rvdFyBgAzHF2Q56Opf3o7fXuQE=; b=n+vCQk/+m/j4aYcm8jhh4jSnS3jyvJ/LQBUyW6LTqkI7UgwBLs8sB5ygYg3lCs1+2Gdz/XzqkKreWXu5seeuafl4Guu/lHW3zMTxCamtlpkXH2WOGuM0E5CLAYf1UZBe1mRinoxdw1qUK3+/YccqRRlNuupkUwhbpT3LEs6yq9I= Received: from VI1PR08CA0132.eurprd08.prod.outlook.com (2603:10a6:800:d4::34) by VI1PR0801MB2061.eurprd08.prod.outlook.com (2603:10a6:800:8e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.18; Fri, 18 Oct 2019 19:04:03 +0000 Received: from AM5EUR03FT019.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::207) by VI1PR08CA0132.outlook.office365.com (2603:10a6:800:d4::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2347.18 via Frontend Transport; Fri, 18 Oct 2019 19:04:03 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=none action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT019.mail.protection.outlook.com (10.152.16.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2305.15 via Frontend Transport; Fri, 18 Oct 2019 19:04:02 +0000 Received: ("Tessian outbound 851a1162fca7:v33"); Fri, 18 Oct 2019 19:03:55 +0000 X-CR-MTA-TID: 64aa7808 Received: from 03cf728a66a6.2 (ip-172-16-0-2.eu-west-1.compute.internal [104.47.2.52]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id B9CCD2CD-6190-44FE-96C8-1AE805DA949C.1; Fri, 18 Oct 2019 19:03:50 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2052.outbound.protection.outlook.com [104.47.2.52]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 03cf728a66a6.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 18 Oct 2019 19:03:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DNp1vYRxgGz3dIi7v4PleBMJ067sW2c9TZCtj2eGo57g8mxRUOEskDFERhBpifTRM6X0h+JDC7BVUiXYTkjeRO3t6QK0MgMlC3IEPM50EN/NMYwHA8pach3kULr3ts2Gx4DKPebru/2j/zltrdZ8MYgr7rleMlARws4Ytsx6as+ShCnz3UgcrcdakZOSy4g52jJOiztUMxu/d/LPSCQI1WlgsTFy6M7HIzWvYJVYHN24FwhuwRE2YoUnVDvXKjv4FcDwl6qGIoheblNGt++KcLyVmiUhJXLpfKtgLLcvpNOOyN0/YWWBZWbTNX934J76y8OhJESFijNSZcrbIsVvzQ== 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-SenderADCheck; bh=UdwJUbSqia+XSgnF7rvdFyBgAzHF2Q56Opf3o7fXuQE=; b=SAuc11xcgegNlLw4dtjNwRkdLcS4DNtVPeE8xyRuJ/NpmCp7poj5Zzt8293npRfktqQt0MbHSGhA0kpjm7yi+Ib8d6g/VgzmwFFWfTimGB1cZ16g1xV4x5hKvVqElPU5qISStOS0/kOatVpkJWEEFjgOz1VNkNR+QXxBAEEaj+pMSR4mtSXh3IDpG2uq0OI55K0T3WLrZNau50kA/4ujIGRTZL0y7csj2iYz4q9Is2v1y0LdqfWGR5szeyPiK6VdBWQmUf9oL8dGXglGsGMkmkGu71w+sRJSUUGRw020RswCvbXYY6O2CQ3wECAxYDF5RlFTPcvdAqVZaEZoxOXh3g== 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=UdwJUbSqia+XSgnF7rvdFyBgAzHF2Q56Opf3o7fXuQE=; b=n+vCQk/+m/j4aYcm8jhh4jSnS3jyvJ/LQBUyW6LTqkI7UgwBLs8sB5ygYg3lCs1+2Gdz/XzqkKreWXu5seeuafl4Guu/lHW3zMTxCamtlpkXH2WOGuM0E5CLAYf1UZBe1mRinoxdw1qUK3+/YccqRRlNuupkUwhbpT3LEs6yq9I= Received: from VE1PR08MB5149.eurprd08.prod.outlook.com (20.179.30.27) by VE1PR08MB4943.eurprd08.prod.outlook.com (10.255.159.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.21; Fri, 18 Oct 2019 19:03:48 +0000 Received: from VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::8c82:8d9c:c78d:22a6]) by VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::8c82:8d9c:c78d:22a6%7]) with mapi id 15.20.2347.026; Fri, 18 Oct 2019 19:03:48 +0000 From: Honnappa Nagarahalli To: "Ananyev, Konstantin" , Jerin Jacob CC: David Christensen , "olivier.matz@6wind.com" , "sthemmin@microsoft.com" , "jerinj@marvell.com" , "Richardson, Bruce" , "david.marchand@redhat.com" , "pbhagavatula@marvell.com" , "dev@dpdk.org" , Dharmik Thakkar , "Ruifeng Wang (Arm Technology China)" , "Gavin Hu (Arm Technology China)" , "stephen@networkplumber.org" , nd , Honnappa Nagarahalli , nd Thread-Topic: [dpdk-dev] [PATCH v4 1/2] lib/ring: apis to support configurable element size Thread-Index: AQHVgGkjycLlQ66roUqbf1hqE7rJk6dVxOuAgASfoeCAAGP4AIAAqIDwgALNTICAAIYKsIAAfeKAgAAyfYCAAENBAIAAUAoAgACYtzCAACd9cA== Date: Fri, 18 Oct 2019 19:03:48 +0000 Message-ID: References: <20190906190510.11146-1-honnappa.nagarahalli@arm.com> <20191009024709.38144-1-honnappa.nagarahalli@arm.com> <20191009024709.38144-2-honnappa.nagarahalli@arm.com> <2601191342CEEE43887BDE71AB97725801A8C68545@IRSMSX104.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725801A8C68A99@IRSMSX104.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725801A8C6A2DA@IRSMSX104.ger.corp.intel.com> <7df09c22-5b8b-77d8-1e8a-a2714e732036@linux.vnet.ibm.com> <2601191342CEEE43887BDE71AB97725801A8C6B54E@IRSMSX104.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB97725801A8C6B54E@IRSMSX104.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 631b635c-a1e1-43a0-9386-d8f67ebef503.0 x-checkrecipientchecked: true Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: af9b8b3c-d2b2-4e60-9793-08d753fdf085 X-MS-Office365-Filtering-HT: Tenant X-MS-TrafficTypeDiagnostic: VE1PR08MB4943:|VE1PR08MB4943:|VI1PR0801MB2061: X-MS-Exchange-PUrlCount: 1 x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; x-forefront-prvs: 01949FE337 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(366004)(396003)(346002)(136003)(376002)(53754006)(199004)(189003)(51234002)(256004)(7416002)(8676002)(14454004)(5660300002)(52536014)(6246003)(8936002)(66066001)(71200400001)(478600001)(71190400001)(9686003)(14444005)(5024004)(6306002)(25786009)(74316002)(81156014)(81166006)(966005)(7736002)(305945005)(316002)(66476007)(64756008)(66946007)(66446008)(26005)(54906003)(110136005)(99286004)(6506007)(53546011)(102836004)(186003)(76176011)(7696005)(55016002)(229853002)(6436002)(486006)(4326008)(446003)(11346002)(476003)(6116002)(3846002)(33656002)(30864003)(66556008)(76116006)(86362001)(2906002); DIR:OUT; SFP:1101; SCL:1; SRVR:VE1PR08MB4943; H:VE1PR08MB5149.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: gLynXUeHdOGBtaQU45Vu6J6AeBty46dCaLAyC4CfH8OW0Q2bs2Ea0H7wagB/y+4k/1zRdirvwlT5dlxOfKOXGo/7P2+b7RAvGfFYYU3IuLBzCN2bdkmusdgEV12GE4/V5Jm46WOxk/KxNg6rI9qJwROPc0HWJcYPYfvH+OGdmDVlHymKNSs6uX19UEk+aLQVEwj9UAKS5JAvUd2AiGVj3WWjDIxWHNxCRLjRwcXZccg4onr5DuTjL19dE/5VLZZOsnoIH7WrcSz0jGRGnwq/p7WqSPTz7WAzLStjmh+wFu2UjSNlsrnYiDWVhn0a1pfUKjDbJ/vVN+ykRSc4RA7VyiXzKUQXeFysrscxjT5LZ4UI5+3GApWJfBwQx/d/MO0nmbY8NdzNRDUDWec3WT3b5kfqeORgxSV4dFvbgstNpBzAxTdcnAyN6CXS+d7SwWkG+4fFbK5EawgnSJDjRfcL4g== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4943 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT019.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; IPV:CAL; SCL:-1; CTRY:IE; EFV:NLI; SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(136003)(396003)(376002)(346002)(53754006)(189003)(51234002)(199004)(50466002)(26005)(70206006)(6246003)(14444005)(33656002)(25786009)(70586007)(316002)(102836004)(186003)(76130400001)(336012)(6116002)(36906005)(23676004)(110136005)(86362001)(6506007)(22756006)(66066001)(55016002)(2906002)(4326008)(76176011)(2486003)(26826003)(7696005)(47776003)(229853002)(54906003)(3846002)(5024004)(53546011)(9686003)(6306002)(8676002)(74316002)(81166006)(7736002)(305945005)(14454004)(30864003)(81156014)(126002)(966005)(99286004)(356004)(11346002)(52536014)(436003)(63350400001)(8936002)(446003)(5660300002)(486006)(478600001)(476003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0801MB2061; H:64aa7808-outbound-1.mta.getcheckrecipient.com; FPR:; SPF:TempError; LANG:en; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; MX:1; A:1; X-MS-Office365-Filtering-Correlation-Id-Prvs: 693482f6-0a54-4cfe-9ac0-08d753fde880 NoDisclaimer: True X-Forefront-PRVS: 01949FE337 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 72bL7x8oA8iQeLwBCYvwylq2yc8VYZQk/aD5h8RtWxp4HtmfDpEEnx9p2Nk6XqGEnA9jdxrcVwdxc1PcCkOq2pESfJ1/mStJgodSR9Bnyj5uyrrLwINirqmAVyTyYyq2us0nY2zQYrmP1Flc03q0U31TAJPltSiiIO56xRdp1He8wJPNHRzntC7wLNRXVSb9W/vMXyZdCKptTIfDon437ctdg09YNWDyE2z+a1pJnlLNFFvd1vjItNC89cK/IZJoaOVcC/08JDIr39VmKa7Hj3NnGHiL0kQEHvY9Cbid60zor1Hy8GmX71jNYVR9Qju4R107nuahWXQ68Z5K6nCnF5bZEr8fVU9bsFF9bB3/5doWV3j9GL7SYGd/5zId5ivPBixUNL9Lx3sfKTXopUGyQQ4hlFwRlnJN8LAobpUnMf7zVNq9N9IZWcZSRZ+LRyGlgkVd5NxgSPdwmLlvMWT+Uw== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2019 19:04:02.2582 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: af9b8b3c-d2b2-4e60-9793-08d753fdf085 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-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB2061 Subject: Re: [dpdk-dev] [PATCH v4 1/2] lib/ring: apis to support configurable element size X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" PHNuaXA+DQoNCj4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BBVENIIHY0IDEvMl0gbGliL3Jp bmc6IGFwaXMgdG8gc3VwcG9ydCBjb25maWd1cmFibGUNCj4gZWxlbWVudCBzaXplDQo+IA0KPiAN Cj4gSGkgZXZlcnlvbmUsDQo+IA0KPiANCj4gPiA+ID4gPj4+IEkgdHJpZWQgdGhpcy4gT24geDg2 IChYZW9uKFIpIEdvbGQgNjEzMiBDUFUgQCAyLjYwR0h6KSwgdGhlDQo+ID4gPiA+ID4+PiByZXN1 bHRzIGFyZSBhcw0KPiA+ID4gPiA+PiBmb2xsb3dzLiBUaGUgbnVtYmVycyBpbiBicmFja2V0cyBh cmUgd2l0aCB0aGUgY29kZSBvbiBtYXN0ZXIuDQo+ID4gPiA+ID4+PiBnY2MgKFVidW50dSA3LjQu MC0xdWJ1bnR1MX4xOC4wNC4xKSA3LjQuMA0KPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPj4+IFJURT4+ cmluZ19wZXJmX2VsZW1fYXV0b3Rlc3QNCj4gPiA+ID4gPj4+ICMjIyBUZXN0aW5nIHNpbmdsZSBl bGVtZW50IGFuZCBidXJzdCBlbnEvZGVxICMjIyBTUC9TQyBzaW5nbGUNCj4gPiA+ID4gPj4+IGVu cS9kZXF1ZXVlOiA1IE1QL01DIHNpbmdsZSBlbnEvZGVxdWV1ZTogNDAgKDM1KSBTUC9TQyBidXJz dA0KPiA+ID4gPiA+Pj4gZW5xL2RlcXVldWUgKHNpemU6IDgpOiAyIE1QL01DIGJ1cnN0IGVucS9k ZXF1ZXVlIChzaXplOiA4KTogNg0KPiA+ID4gPiA+Pj4gU1AvU0MgYnVyc3QgZW5xL2RlcXVldWUg KHNpemU6IDMyKTogMSAoMikgTVAvTUMgYnVyc3QNCj4gZW5xL2RlcXVldWUgKHNpemU6DQo+ID4g PiA+ID4+PiAzMik6IDINCj4gPiA+ID4gPj4+DQo+ID4gPiA+ID4+PiAjIyMgVGVzdGluZyBlbXB0 eSBkZXF1ZXVlICMjIw0KPiA+ID4gPiA+Pj4gU0MgZW1wdHkgZGVxdWV1ZTogMi4xMQ0KPiA+ID4g PiA+Pj4gTUMgZW1wdHkgZGVxdWV1ZTogMS40MSAoMi4xMSkNCj4gPiA+ID4gPj4+DQo+ID4gPiA+ ID4+PiAjIyMgVGVzdGluZyB1c2luZyBhIHNpbmdsZSBsY29yZSAjIyMgU1AvU0MgYnVsayBlbnEv ZGVxdWV1ZSAoc2l6ZToNCj4gPiA+ID4gPj4+IDgpOiAyLjE1ICgyLjg2KSBNUC9NQyBidWxrIGVu cS9kZXF1ZXVlDQo+ID4gPiA+ID4+PiAoc2l6ZTogOCk6IDYuMzUgKDYuOTEpIFNQL1NDIGJ1bGsg ZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMS4zNQ0KPiA+ID4gPiA+Pj4gKDIuMDYpIE1QL01DIGJ1 bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMi4zOCAoMi45NSkNCj4gPiA+ID4gPj4+DQo+ID4g PiA+ID4+PiAjIyMgVGVzdGluZyB1c2luZyB0d28gcGh5c2ljYWwgY29yZXMgIyMjIFNQL1NDIGJ1 bGsgZW5xL2RlcXVldWUNCj4gKHNpemU6DQo+ID4gPiA+ID4+PiA4KTogNzMuODEgKDE1LjMzKSBN UC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogNzUuMTANCj4gPiA+ID4gPj4+ICg3MS4y NykgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAyMS4xNCAoOS41OCkgTVAvTUMN Cj4gPiA+ID4gPj4+IGJ1bGsgZW5xL2RlcXVldWUNCj4gPiA+ID4gPj4+IChzaXplOiAzMik6IDI1 Ljc0ICgyMC45MSkNCj4gPiA+ID4gPj4+DQo+ID4gPiA+ID4+PiAjIyMgVGVzdGluZyB1c2luZyB0 d28gTlVNQSBub2RlcyAjIyMgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZQ0KPiAoc2l6ZToNCj4gPiA+ ID4gPj4+IDgpOiAxNjQuMzIgKDUwLjY2KSBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4 KTogMTc2LjAyDQo+ID4gPiA+ID4+PiAoMTczLjQzKSBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChz aXplOg0KPiA+ID4gPiA+Pj4gMzIpOiA1MC43OCAoMjMpIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUg KHNpemU6IDMyKTogNjMuMTcNCj4gPiA+ID4gPj4+ICg0Ni43NCkNCj4gPiA+ID4gPj4+DQo+ID4g PiA+ID4+PiBPbiBvbmUgb2YgdGhlIEFybSBwbGF0Zm9ybQ0KPiA+ID4gPiA+Pj4gTVAvTUMgYnVs ayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAwLjM3ICgwLjMzKSAofjEyJSBoaXQsIHRoZQ0KPiA+ ID4gPiA+Pj4gcmVzdCBhcmUNCj4gPiA+ID4gPj4+IG9rKQ0KPiA+ID4gPg0KPiA+ID4gPiBUcmll ZCB0aGlzIG9uIGEgUG93ZXI5IHBsYXRmb3JtICgzLjZHSHopLCB3aXRoIHR3byBudW1hIG5vZGVz IGFuZA0KPiA+ID4gPiAxNiBjb3Jlcy9ub2RlIChTTVQ9NCkuICBBcHBsaWVkIGFsbCAzIHBhdGNo ZXMgaW4gdjUsIHRlc3QgcmVzdWx0cw0KPiA+ID4gPiBhcmUgYXMNCj4gPiA+ID4gZm9sbG93czoN Cj4gPiA+ID4NCj4gPiA+ID4gUlRFPj5yaW5nX3BlcmZfZWxlbV9hdXRvdGVzdA0KPiA+ID4gPiAj IyMgVGVzdGluZyBzaW5nbGUgZWxlbWVudCBhbmQgYnVyc3QgZW5xL2RlcSAjIyMgU1AvU0Mgc2lu Z2xlDQo+IGVucS9kZXF1ZXVlOg0KPiA+ID4gPiA0MiBNUC9NQyBzaW5nbGUgZW5xL2RlcXVldWU6 IDU5IFNQL1NDIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXplOiA4KToNCj4gPiA+ID4gNSBNUC9NQyBi dXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDcgU1AvU0MgYnVyc3QgZW5xL2RlcXVldWUNCj4g PiA+ID4gKHNpemU6IDMyKTogMiBNUC9NQyBidXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAy DQo+ID4gPiA+DQo+ID4gPiA+ICMjIyBUZXN0aW5nIGVtcHR5IGRlcXVldWUgIyMjDQo+ID4gPiA+ IFNDIGVtcHR5IGRlcXVldWU6IDcuODENCj4gPiA+ID4gTUMgZW1wdHkgZGVxdWV1ZTogNy44MQ0K PiA+ID4gPg0KPiA+ID4gPiAjIyMgVGVzdGluZyB1c2luZyBhIHNpbmdsZSBsY29yZSAjIyMgU1Av U0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZToNCj4gPiA+ID4gOCk6IDUuNzYgTVAvTUMgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDcuNjYgU1AvU0MgYnVsaw0KPiA+ID4gPiBlbnEvZGVxdWV1 ZSAoc2l6ZTogMzIpOiAyLjEwIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKToNCj4g PiA+ID4gMi41Nw0KPiA+ID4gPg0KPiA+ID4gPiAjIyMgVGVzdGluZyB1c2luZyB0d28gaHlwZXJ0 aHJlYWRzICMjIyBTUC9TQyBidWxrIGVucS9kZXF1ZXVlDQo+ID4gPiA+IChzaXplOiA4KTogMTMu MTMgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDEzLjk4IFNQL1NDDQo+ID4gPiA+ IGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMy40MSBNUC9NQyBidWxrIGVucS9kZXF1ZXVl IChzaXplOg0KPiA+ID4gPiAzMik6IDQuNDUNCj4gPiA+ID4NCj4gPiA+ID4gIyMjIFRlc3Rpbmcg dXNpbmcgdHdvIHBoeXNpY2FsIGNvcmVzICMjIyBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXpl Og0KPiA4KToNCj4gPiA+ID4gMTEuMDAgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6 IDEwLjk1IFNQL1NDIGJ1bGsNCj4gPiA+ID4gZW5xL2RlcXVldWUNCj4gPiA+ID4gKHNpemU6IDMy KTogMy4wOCBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDMuNDANCj4gPiA+ID4N Cj4gPiA+ID4gIyMjIFRlc3RpbmcgdXNpbmcgdHdvIE5VTUEgbm9kZXMgIyMjIFNQL1NDIGJ1bGsg ZW5xL2RlcXVldWUgKHNpemU6DQo+ID4gPiA+IDgpOiA2My40MSBNUC9NQyBidWxrIGVucS9kZXF1 ZXVlIChzaXplOiA4KTogNjIuNzAgU1AvU0MgYnVsaw0KPiA+ID4gPiBlbnEvZGVxdWV1ZSAoc2l6 ZTogMzIpOiAxNS4zOSBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOg0KPiA+ID4gPiAzMik6 IDIyLjk2DQo+ID4gPiA+DQo+ID4gPiBUaGFua3MgZm9yIHJ1bm5pbmcgdGhpcy4gVGhlcmUgaXMg YW5vdGhlciB0ZXN0ICdyaW5nX3BlcmZfYXV0b3Rlc3QnDQo+ID4gPiB3aGljaCBwcm92aWRlcyB0 aGUgbnVtYmVycyB3aXRoIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbi4gVGhlDQo+ID4gPiBn b2FsDQo+ID4gaXMgdG8gbWFrZSBzdXJlIHRoZSBudW1iZXJzIHdpdGggdGhlIG9yaWdpbmFsIGlt cGxlbWVudGF0aW9uIGFyZSB0aGUgc2FtZQ0KPiBhcyB0aGVzZS4gQ2FuIHlvdSBwbGVhc2UgcnVu IHRoYXQgYXMgd2VsbD8NCj4gPg0KPiA+IEhvbm5hcHBhLA0KPiA+DQo+ID4gWW91ciBlYXJsaWVy IHBlcmYgcmVwb3J0IHNob3dzIHRoZSBjeWNsZXMgYXJlIGluIGxlc3MgdGhhbiAxLiBUaGF0J3MN Cj4gPiBpcyBkdWUgdG8gaXQgaXMgdXNpbmcgNTAgb3IgMTAwTUh6IGNsb2NrIGluIEVMMC4NCj4g PiBQbGVhc2UgY2hlY2sgd2l0aCBQTVUgY291bnRlci4gU2VlICJBUk02NCBwcm9maWxpbmciIGlu DQo+ID4NCj4gPiBodHRwOi8vZG9jLmRwZGsub3JnL2d1aWRlcy9wcm9nX2d1aWRlL3Byb2ZpbGVf YXBwLmh0bWwNCj4gPg0KPiA+DQo+ID4gSGVyZSBpcyB0aGUgb2N0ZW9udHgyIHZhbHVlcy4gVGhl cmUgaXMgYSByZWdyZXNzaW9uIGluIHR3byBjb3JlIGNhc2VzDQo+ID4gYXMgeW91IHJlcG9ydGVk IGVhcmxpZXIgaW4geDg2Lg0KPiA+DQo+ID4NCj4gPiBSVEU+PnJpbmdfcGVyZl9hdXRvdGVzdA0K PiA+ICMjIyBUZXN0aW5nIHNpbmdsZSBlbGVtZW50IGFuZCBidXJzdCBlbnEvZGVxICMjIyBTUC9T QyBzaW5nbGUNCj4gPiBlbnEvZGVxdWV1ZTogMjg4IE1QL01DIHNpbmdsZSBlbnEvZGVxdWV1ZTog NDUyIFNQL1NDIGJ1cnN0DQo+IGVucS9kZXF1ZXVlDQo+ID4gKHNpemU6IDgpOiAzOSBNUC9NQyBi dXJzdCBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDYxIFNQL1NDIGJ1cnN0DQo+ID4gZW5xL2RlcXVl dWUgKHNpemU6IDMyKTogMTMgTVAvTUMgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMjEN Cj4gPg0KPiA+ICMjIyBUZXN0aW5nIGVtcHR5IGRlcXVldWUgIyMjDQo+ID4gU0MgZW1wdHkgZGVx dWV1ZTogNi4zMw0KPiA+IE1DIGVtcHR5IGRlcXVldWU6IDYuNjcNCj4gPg0KPiA+ICMjIyBUZXN0 aW5nIHVzaW5nIGEgc2luZ2xlIGxjb3JlICMjIw0KPiA+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUg KHNpemU6IDgpOiAzOC4zNSBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOg0KPiA+IDgpOiA2 Ny4zNiBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDEzLjEwIE1QL01DIGJ1bGsN Cj4gPiBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAyMS42NA0KPiA+DQo+ID4gIyMjIFRlc3Rpbmcg dXNpbmcgdHdvIHBoeXNpY2FsIGNvcmVzICMjIyBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXpl Og0KPiA+IDgpOiA3NS45NCBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogMTA3LjY2 IFNQL1NDIGJ1bGsNCj4gPiBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAyNC41MSBNUC9NQyBidWxr IGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDMzLjIzDQo+ID4gVGVzdCBPSw0KPiA+IFJURT4+DQo+ ID4NCj4gPiAtLS0tIGFmdGVyIGFwcGx5aW5nIHY1IG9mIHRoZSBwYXRjaCAtLS0tLS0NCj4gPg0K PiA+IFJURT4+cmluZ19wZXJmX2F1dG90ZXN0DQo+ID4gIyMjIFRlc3Rpbmcgc2luZ2xlIGVsZW1l bnQgYW5kIGJ1cnN0IGVucS9kZXEgIyMjIFNQL1NDIHNpbmdsZQ0KPiA+IGVucS9kZXF1ZXVlOiAy ODkgTVAvTUMgc2luZ2xlIGVucS9kZXF1ZXVlOiA0NTIgU1AvU0MgYnVyc3QNCj4gZW5xL2RlcXVl dWUNCj4gPiAoc2l6ZTogOCk6IDQwIE1QL01DIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXplOiA4KTog NjQgU1AvU0MgYnVyc3QNCj4gPiBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxMyBNUC9NQyBidXJz dCBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAyMg0KPiA+DQo+ID4gIyMjIFRlc3RpbmcgZW1wdHkg ZGVxdWV1ZSAjIyMNCj4gPiBTQyBlbXB0eSBkZXF1ZXVlOiA2LjMzDQo+ID4gTUMgZW1wdHkgZGVx dWV1ZTogNi42Nw0KPiA+DQo+ID4gIyMjIFRlc3RpbmcgdXNpbmcgYSBzaW5nbGUgbGNvcmUgIyMj DQo+ID4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDM5LjczIE1QL01DIGJ1bGsg ZW5xL2RlcXVldWUgKHNpemU6DQo+ID4gOCk6IDY5LjEzIFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUg KHNpemU6IDMyKTogMTMuNDQgTVAvTUMgYnVsaw0KPiA+IGVucS9kZXF1ZXVlIChzaXplOiAzMik6 IDIyLjAwDQo+ID4NCj4gPiAjIyMgVGVzdGluZyB1c2luZyB0d28gcGh5c2ljYWwgY29yZXMgIyMj IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6DQo+ID4gOCk6IDc2LjAyIE1QL01DIGJ1bGsg ZW5xL2RlcXVldWUgKHNpemU6IDgpOiAxMTIuNTAgU1AvU0MgYnVsaw0KPiA+IGVucS9kZXF1ZXVl IChzaXplOiAzMik6IDI0LjcxIE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMzMu MzQNCj4gPiBUZXN0IE9LDQo+ID4gUlRFPj4NCj4gPg0KPiA+IFJURT4+cmluZ19wZXJmX2VsZW1f YXV0b3Rlc3QNCj4gPiAjIyMgVGVzdGluZyBzaW5nbGUgZWxlbWVudCBhbmQgYnVyc3QgZW5xL2Rl cSAjIyMgU1AvU0Mgc2luZ2xlDQo+ID4gZW5xL2RlcXVldWU6IDI5MCBNUC9NQyBzaW5nbGUgZW5x L2RlcXVldWU6IDUwMyBTUC9TQyBidXJzdA0KPiBlbnEvZGVxdWV1ZQ0KPiA+IChzaXplOiA4KTog MzkgTVAvTUMgYnVyc3QgZW5xL2RlcXVldWUgKHNpemU6IDgpOiA2MyBTUC9TQyBidXJzdA0KPiA+ IGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDExIE1QL01DIGJ1cnN0IGVucS9kZXF1ZXVlIChzaXpl OiAzMik6IDE5DQo+ID4NCj4gPiAjIyMgVGVzdGluZyBlbXB0eSBkZXF1ZXVlICMjIw0KPiA+IFND IGVtcHR5IGRlcXVldWU6IDYuMzMNCj4gPiBNQyBlbXB0eSBkZXF1ZXVlOiA2LjY3DQo+ID4NCj4g PiAjIyMgVGVzdGluZyB1c2luZyBhIHNpbmdsZSBsY29yZSAjIyMNCj4gPiBTUC9TQyBidWxrIGVu cS9kZXF1ZXVlIChzaXplOiA4KTogMzguOTIgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZToN Cj4gPiA4KTogNjIuNTQgU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAxMS40NiBN UC9NQyBidWxrDQo+ID4gZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMTkuODkNCj4gPg0KPiA+ICMj IyBUZXN0aW5nIHVzaW5nIHR3byBwaHlzaWNhbCBjb3JlcyAjIyMgU1AvU0MgYnVsayBlbnEvZGVx dWV1ZSAoc2l6ZToNCj4gPiA4KTogODcuNTUgTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTog OCk6IDk5LjEwIFNQL1NDIGJ1bGsNCj4gPiBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAyNi42MyBN UC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDI5LjkxDQo+ID4gVGVzdCBPSw0KPiA+ IFJURT4+DQo+ID4NCj4gDQo+IEFzIEkgY2FuIHNlZSwgdGhlcmUgaXMgY29weSZwYXN0ZSBidWcg aW4gcGF0Y2ggIzMgKHRoYXQncyB3aHkgaXQgcHJvYmFibHkNCj4gcHJvZHVjZWQgc29tZSB3ZWly ZCBudW1iZXJzIGZvciBtZSBmaXJzdCkuDQpBcG9sb2dpZXMgb24gdGhpcy4gSW4gdGhlIGhpbmRz aWdodCwgc2hvdWxkIGhhdmUgYWRkZWQgdGhlIHVuaXQgdGVzdHMuDQoNCj4gQWZ0ZXIgZml4IGFw cGxpZWQgKHNlZSBwYXRjaCBiZWxvdyksIHRoaW5ncyBsb29rIHByZXR0eSBnb29kIG9uIG15IGJv eC4NCj4gQXMgSSBjYW4gc2VlIHRoZXJlIGFyZSBvbmx5IDMgcmVzdWx0cyBub3RpY2FibHkgbG93 ZXI6DQo+ICAgIFNQL1NDIChzaXplPTgpIG92ZXIgMiBwaHlzaWNhbCBjb3JlcyBzYW1lIG51bWEg c29ja2V0DQo+ICAgIE1QL01DIChzaXplPTgpIG92ZXIgMiBwaHlzaWNhbCBjb3JlcyBvbiBkaWZm ZXJlbnQgbnVtYSBzb2NrZXRzLg0KSXMgdGhpcyBvayBmb3IgeW91Pw0KDQo+IEFsbCBvdGhlcnMg c2VlbXMgYWJvdXQgc2FtZSBvciBiZXR0ZXIuDQo+IEFueXdheSBJIHdlbnQgYWhlYWQgYW5kIHJl d29ya2VkIGNvZGUgYSBiaXQgKGFzIEkgc3VnZ2VzdGVkIGJlZm9yZSkgdG8gZ2V0DQo+IHJpZCBv ZiB0aGVzZSBodWdlIEVOUVVFVUUvREVRVUVVRSBtYWNyb3MuDQo+IFJlc3VsdHMgYXJlIHZlcnkg Y2xvc2UgdG8gZml4ZWQgcGF0Y2ggIzMgdmVyc2lvbiAocGF0Y2ggaXMgYWxzbyBhdHRhY2hlZCku DQo+IFRob3VnaCBJIHN1Z2dlc3QgcGVvcGxlIGhvbGQgb24gdG8gcmUtcnVuIHBlcmYgdGVzdHMg dGlsbCB3ZSdsbCBtYWtlIHJpbmcNCj4gZnVuY3Rpb25hbCB0ZXN0IHRvIHJ1biBmb3IgX2VsZW1f IGZ1bmN0aW9ucyB0b28uDQo+IEkgc3RhcnRlZCB0byB3b3JrIG9uIHRoYXQsIGJ1dCBub3Qgc3Vy ZSBJJ2xsIGZpbmlzaCB0b2RheSAobW9zdCBsaWtlbHkgTW9uZGF5KS4NCj4gUGVyZiByZXN1bHRz IGZyb20gbXkgYm94LCBwbHVzIHBhdGNoZXMgYmVsb3cuDQo+IEtvbnN0YW50aW4NCj4gDQo+IHBl cmYgcmVzdWx0cw0KPiA9PT09PT09PT09DQo+IA0KPiBJbnRlbChSKSBYZW9uKFIpIFBsYXRpbnVt IDgxNjAgQ1BVIEAgMi4xMEdIeg0KPiANCj4gQSAtIHJpbmdfcGVyZl9hdXRvdGVzdA0KPiBCIC0g cmluZ19wZXJmX2VsZW1fYXV0b3Rlc3QgKyBwYXRjaCAjMyArIGZpeCBDIC0gQiArIHVwZGF0ZQ0K PiANCj4gIyMjIFRlc3RpbmcgdXNpbmcgYSBzaW5nbGUgbGNvcmUgIyMjCUEJQglDDQo+IFNQL1ND IGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAJNC4wNgkzLjA2CTMuMjINCj4gTVAvTUMgYnVs ayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IAkxMC4wNQk5LjA0CTkuMzgNCj4gU1AvU0MgYnVsayBl bnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAJMi45MwkxLjkxCTEuODQNCj4gTVAvTUMgYnVsayBlbnEv ZGVxdWV1ZSAoc2l6ZTogMzIpOiAJNC4xMgkzLjM5CTMuMzUNCj4gDQo+ICMjIyBUZXN0aW5nIHVz aW5nIHR3byBoeXBlcnRocmVhZHMgIyMjDQo+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6 IDgpOiAJOS4yNAk4LjkyCTguODkNCj4gTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6 IAkxNS40NwkxNS4zOQkxNi4wMg0KPiBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6 IAk1Ljc4CTMuODcJMy44Ng0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IAk2 LjQxCTQuNTcJNC40NQ0KPiANCj4gIyMjIFRlc3RpbmcgdXNpbmcgdHdvIHBoeXNpY2FsIGNvcmVz ICMjIw0KPiBTUC9TQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogCTI0LjE0CTI5Ljg5CTI3 LjA1DQo+IE1QL01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAJNjguNjEJNzAuNTUJNjku ODUNCj4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAJMTIuMTEJMTIuOTkJMTMu MDQNCj4gTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAJMjIuMTQJMTcuODYJMTgu MjUNCj4gDQo+ICMjIyBUZXN0aW5nIHVzaW5nIHR3byBOVU1BIG5vZGVzICMjIw0KPiBTUC9TQyBi dWxrIGVucS9kZXF1ZXVlIChzaXplOiA4KTogCTQ4Ljc4CTMxLjk4CTMzLjU3DQo+IE1QL01DIGJ1 bGsgZW5xL2RlcXVldWUgKHNpemU6IDgpOiAJMTY3LjUzCTE5Ny4yOQkxOTIuMTMNCj4gU1AvU0Mg YnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAJMzEuMjgJMjEuNjgJMjEuNjENCj4gTVAvTUMg YnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAJNTMuNDUJNDkuOTQJNDguODENCj4gDQo+IGZp eCBwYXRjaA0KPiA9PT09PT09DQo+IA0KPiBGcm9tIGEyYmU1YTliMTM2MzMzYTU2ZDQ2NmVmMDQy YzY1NWU1MjJjYTcwMTIgTW9uIFNlcCAxNyAwMDowMDowMA0KPiAyMDAxDQo+IEZyb206IEtvbnN0 YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4NCj4gRGF0ZTogRnJp LCAxOCBPY3QgMjAxOSAxNTo1MDo0MyArMDEwMA0KPiBTdWJqZWN0OiBbUEFUQ0hdIGZpeDENCj4g DQo+IFNpZ25lZC1vZmYtYnk6IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2 QGludGVsLmNvbT4NCj4gLS0tDQo+ICBsaWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oIHwg NCArKy0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQ0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmggYi9s aWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oDQo+IGluZGV4IDkyZTkyZjE1MC4uNWUxODE5 MDY5IDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5oDQo+ICsr KyBiL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmgNCj4gQEAgLTExOCw3ICsxMTgsNyBA QCBzdHJ1Y3QgcnRlX3JpbmcgKnJ0ZV9yaW5nX2NyZWF0ZV9lbGVtKGNvbnN0IGNoYXINCj4gKm5h bWUsIHVuc2lnbmVkIGNvdW50LA0KPiAgICAgICAgIHVpbnQzMl90IHN6ID0gbiAqIChlc2l6ZSAv IHNpemVvZih1aW50MzJfdCkpOyBcDQo+ICAgICAgICAgaWYgKGxpa2VseShpZHggKyBuIDwgc2l6 ZSkpIHsgXA0KPiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IChzeiAmICgofih1bnNp Z25lZCkweDcpKSk7IGkgKz0gOCwgaWR4ICs9IDgpIHsgXA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICBtZW1jcHkgKHJpbmcgKyBpLCBvYmogKyBpLCA4ICogc2l6ZW9mICh1aW50MzJfdCkpOyBc DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweSAocmluZyArIGlkeCwgb2JqICsgaSwg OCAqIHNpemVvZg0KPiArICh1aW50MzJfdCkpOyBcDQo+ICAgICAgICAgICAgICAgICB9IFwNCj4g ICAgICAgICAgICAgICAgIHN3aXRjaCAobiAmIDB4NykgeyBcDQo+ICAgICAgICAgICAgICAgICBj YXNlIDc6IFwNCj4gQEAgLTE1Myw3ICsxNTMsNyBAQCBzdHJ1Y3QgcnRlX3JpbmcgKnJ0ZV9yaW5n X2NyZWF0ZV9lbGVtKGNvbnN0IGNoYXINCj4gKm5hbWUsIHVuc2lnbmVkIGNvdW50LA0KPiAgICAg ICAgIHVpbnQzMl90IHN6ID0gbiAqIChlc2l6ZSAvIHNpemVvZih1aW50MzJfdCkpOyBcDQo+ICAg ICAgICAgaWYgKGxpa2VseShpZHggKyBuIDwgc2l6ZSkpIHsgXA0KPiAgICAgICAgICAgICAgICAg Zm9yIChpID0gMDsgaSA8IChzeiAmICgofih1bnNpZ25lZCkweDcpKSk7IGkgKz0gOCwgaWR4ICs9 IDgpIHsgXA0KPiAtICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkgKG9iaiArIGksIHJpbmcg KyBpLCA4ICogc2l6ZW9mICh1aW50MzJfdCkpOyBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAg IG1lbWNweSAob2JqICsgaSwgcmluZyArIGlkeCwgOCAqIHNpemVvZg0KPiArICh1aW50MzJfdCkp OyBcDQo+ICAgICAgICAgICAgICAgICB9IFwNCj4gICAgICAgICAgICAgICAgIHN3aXRjaCAobiAm IDB4NykgeyBcDQo+ICAgICAgICAgICAgICAgICBjYXNlIDc6IFwNCj4gLS0NCj4gMi4xNy4xDQo+ IA0KPiB1cGRhdGUgcGF0Y2ggKHJlbW92ZSBtYWNyb3MpDQo+ID09PT09PT09PT09PT09PT09PT09 PT09PT0NCj4gDQo+IEZyb20gMThiMzg4ZTg3N2I5N2UyNDNmODA3ZjI3YTMyM2U4NzZiMzA4Njlk ZCBNb24gU2VwIDE3IDAwOjAwOjAwDQo+IDIwMDENCj4gRnJvbTogS29uc3RhbnRpbiBBbmFueWV2 IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiBEYXRlOiBGcmksIDE4IE9jdCAyMDE5 IDE3OjM1OjQzICswMTAwDQo+IFN1YmplY3Q6IFtQQVRDSF0gdXBkYXRlMQ0KPiANCj4gU2lnbmVk LW9mZi1ieTogS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29t Pg0KPiAtLS0NCj4gIGxpYi9saWJydGVfcmluZy9ydGVfcmluZ19lbGVtLmggfCAxNDEgKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCA3MCBpbnNlcnRp b25zKCspLCA3MSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Jp bmcvcnRlX3JpbmdfZWxlbS5oIGIvbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2VsZW0uaA0KPiBp bmRleCA1ZTE4MTkwNjkuLmViNzA2YjEyZiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9yaW5n L3J0ZV9yaW5nX2VsZW0uaA0KPiArKysgYi9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZWxlbS5o DQo+IEBAIC0xMDksNzUgKzEwOSw3NCBAQCBfX3J0ZV9leHBlcmltZW50YWwgIHN0cnVjdCBydGVf cmluZw0KPiAqcnRlX3JpbmdfY3JlYXRlX2VsZW0oY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQg Y291bnQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZXNpemUs IGludCBzb2NrZXRfaWQsIHVuc2lnbmVkIGZsYWdzKTsNCj4gDQo+IC0jZGVmaW5lIEVOUVVFVUVf UFRSU19HRU4ociwgcmluZ19zdGFydCwgcHJvZF9oZWFkLCBvYmpfdGFibGUsIGVzaXplLCBuKQ0K PiBkbyB7IFwNCj4gLSAgICAgICB1bnNpZ25lZCBpbnQgaTsgXA0KPiAtICAgICAgIGNvbnN0IHVp bnQzMl90IHNpemUgPSAociktPnNpemU7IFwNCj4gLSAgICAgICB1aW50MzJfdCBpZHggPSBwcm9k X2hlYWQgJiAociktPm1hc2s7IFwNCj4gLSAgICAgICB1aW50MzJfdCAqcmluZyA9ICh1aW50MzJf dCAqKXJpbmdfc3RhcnQ7IFwNCj4gLSAgICAgICB1aW50MzJfdCAqb2JqID0gKHVpbnQzMl90ICop b2JqX3RhYmxlOyBcDQo+IC0gICAgICAgdWludDMyX3Qgc3ogPSBuICogKGVzaXplIC8gc2l6ZW9m KHVpbnQzMl90KSk7IFwNCj4gLSAgICAgICBpZiAobGlrZWx5KGlkeCArIG4gPCBzaXplKSkgeyBc DQo+IC0gICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgKHN6ICYgKCh+KHVuc2lnbmVkKTB4 NykpKTsgaSArPSA4LCBpZHggKz0gOCkgeyBcDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIG1l bWNweSAocmluZyArIGlkeCwgb2JqICsgaSwgOCAqIHNpemVvZiAodWludDMyX3QpKTsgXA0KPiAt ICAgICAgICAgICAgICAgfSBcDQo+IC0gICAgICAgICAgICAgICBzd2l0Y2ggKG4gJiAweDcpIHsg XA0KPiAtICAgICAgICAgICAgICAgY2FzZSA3OiBcDQo+IC0gICAgICAgICAgICAgICAgICAgICAg IHJpbmdbaWR4KytdID0gb2JqW2krK107IC8qIGZhbGx0aHJvdWdoICovIFwNCj4gLSAgICAgICAg ICAgICAgIGNhc2UgNjogXA0KPiAtICAgICAgICAgICAgICAgICAgICAgICByaW5nW2lkeCsrXSA9 IG9ialtpKytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQo+IC0gICAgICAgICAgICAgICBjYXNlIDU6 IFwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgrK10gPSBvYmpbaSsrXTsgLyog ZmFsbHRocm91Z2ggKi8gXA0KPiAtICAgICAgICAgICAgICAgY2FzZSA0OiBcDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIHJpbmdbaWR4KytdID0gb2JqW2krK107IC8qIGZhbGx0aHJvdWdoICov IFwNCj4gLSAgICAgICAgICAgICAgIGNhc2UgMzogXA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICByaW5nW2lkeCsrXSA9IG9ialtpKytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQo+IC0gICAgICAg ICAgICAgICBjYXNlIDI6IFwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHgrK10g PSBvYmpbaSsrXTsgLyogZmFsbHRocm91Z2ggKi8gXA0KPiAtICAgICAgICAgICAgICAgY2FzZSAx OiBcDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIHJpbmdbaWR4KytdID0gb2JqW2krK107IC8q IGZhbGx0aHJvdWdoICovIFwNCj4gLSAgICAgICAgICAgICAgIH0gXA0KPiAtICAgICAgIH0gZWxz ZSB7IFwNCj4gLSAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGlkeCA8IHNpemU7IGkrKywgaWR4 KyspXA0KPiAtICAgICAgICAgICAgICAgICAgICAgICByaW5nW2lkeF0gPSBvYmpbaV07IFwNCj4g LSAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaSA8IG47IGkrKywgaWR4KyspIFwNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgcmluZ1tpZHhdID0gb2JqW2ldOyBcDQo+IC0gICAgICAgfSBc DQo+IC19IHdoaWxlICgwKQ0KPiAtDQo+IC0jZGVmaW5lIERFUVVFVUVfUFRSU19HRU4ociwgcmlu Z19zdGFydCwgY29uc19oZWFkLCBvYmpfdGFibGUsIGVzaXplLCBuKQ0KPiBkbyB7IFwNCj4gLSAg ICAgICB1bnNpZ25lZCBpbnQgaTsgXA0KPiAtICAgICAgIHVpbnQzMl90IGlkeCA9IGNvbnNfaGVh ZCAmIChyKS0+bWFzazsgXA0KPiAtICAgICAgIGNvbnN0IHVpbnQzMl90IHNpemUgPSAociktPnNp emU7IFwNCj4gLSAgICAgICB1aW50MzJfdCAqcmluZyA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQ7 IFwNCj4gLSAgICAgICB1aW50MzJfdCAqb2JqID0gKHVpbnQzMl90ICopb2JqX3RhYmxlOyBcDQo+ IC0gICAgICAgdWludDMyX3Qgc3ogPSBuICogKGVzaXplIC8gc2l6ZW9mKHVpbnQzMl90KSk7IFwN Cj4gLSAgICAgICBpZiAobGlrZWx5KGlkeCArIG4gPCBzaXplKSkgeyBcDQo+IC0gICAgICAgICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgKHN6ICYgKCh+KHVuc2lnbmVkKTB4NykpKTsgaSArPSA4LCBp ZHggKz0gOCkgeyBcDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIG1lbWNweSAob2JqICsgaSwg cmluZyArIGlkeCwgOCAqIHNpemVvZiAodWludDMyX3QpKTsgXA0KPiAtICAgICAgICAgICAgICAg fSBcDQo+IC0gICAgICAgICAgICAgICBzd2l0Y2ggKG4gJiAweDcpIHsgXA0KPiAtICAgICAgICAg ICAgICAgY2FzZSA3OiBcDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIG9ialtpKytdID0gcmlu Z1tpZHgrK107IC8qIGZhbGx0aHJvdWdoICovIFwNCj4gLSAgICAgICAgICAgICAgIGNhc2UgNjog XA0KPiAtICAgICAgICAgICAgICAgICAgICAgICBvYmpbaSsrXSA9IHJpbmdbaWR4KytdOyAvKiBm YWxsdGhyb3VnaCAqLyBcDQo+IC0gICAgICAgICAgICAgICBjYXNlIDU6IFwNCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgb2JqW2krK10gPSByaW5nW2lkeCsrXTsgLyogZmFsbHRocm91Z2ggKi8g XA0KPiAtICAgICAgICAgICAgICAgY2FzZSA0OiBcDQo+IC0gICAgICAgICAgICAgICAgICAgICAg IG9ialtpKytdID0gcmluZ1tpZHgrK107IC8qIGZhbGx0aHJvdWdoICovIFwNCj4gLSAgICAgICAg ICAgICAgIGNhc2UgMzogXA0KPiAtICAgICAgICAgICAgICAgICAgICAgICBvYmpbaSsrXSA9IHJp bmdbaWR4KytdOyAvKiBmYWxsdGhyb3VnaCAqLyBcDQo+IC0gICAgICAgICAgICAgICBjYXNlIDI6 IFwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgb2JqW2krK10gPSByaW5nW2lkeCsrXTsgLyog ZmFsbHRocm91Z2ggKi8gXA0KPiAtICAgICAgICAgICAgICAgY2FzZSAxOiBcDQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIG9ialtpKytdID0gcmluZ1tpZHgrK107IC8qIGZhbGx0aHJvdWdoICov IFwNCj4gLSAgICAgICAgICAgICAgIH0gXA0KPiAtICAgICAgIH0gZWxzZSB7IFwNCj4gLSAgICAg ICAgICAgICAgIGZvciAoaSA9IDA7IGlkeCA8IHNpemU7IGkrKywgaWR4KyspIFwNCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgb2JqW2ldID0gcmluZ1tpZHhdOyBcDQo+IC0gICAgICAgICAgICAg ICBmb3IgKGlkeCA9IDA7IGkgPCBuOyBpKyssIGlkeCsrKSBcDQo+IC0gICAgICAgICAgICAgICAg ICAgICAgIG9ialtpXSA9IHJpbmdbaWR4XTsgXA0KPiAtICAgICAgIH0gXA0KPiAtfSB3aGlsZSAo MCkNCj4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gK2NvcHlfZWxlbXModWlu dDMyX3QgZHUzMltdLCBjb25zdCB1aW50MzJfdCBzdTMyW10sIHVpbnQzMl90IG51bSwNCj4gK3Vp bnQzMl90IGVzaXplKSB7DQo+ICsgICAgICAgdWludDMyX3QgaSwgc3o7DQo+ICsNCj4gKyAgICAg ICBzeiA9IChudW0gKiBlc2l6ZSkgLyBzaXplb2YodWludDMyX3QpOw0KPiArDQo+ICsgICAgICAg Zm9yIChpID0gMDsgaSA8IChzeiAmIH43KTsgaSArPSA4KQ0KPiArICAgICAgICAgICAgICAgbWVt Y3B5KGR1MzIgKyBpLCBzdTMyICsgaSwgOCAqIHNpemVvZih1aW50MzJfdCkpOw0KPiArDQo+ICsg ICAgICAgc3dpdGNoIChzeiAmIDcpIHsNCj4gKyAgICAgICBjYXNlIDc6IGR1MzJbc3ogLSA3XSA9 IHN1MzJbc3ogLSA3XTsgLyogZmFsbHRocm91Z2ggKi8NCj4gKyAgICAgICBjYXNlIDY6IGR1MzJb c3ogLSA2XSA9IHN1MzJbc3ogLSA2XTsgLyogZmFsbHRocm91Z2ggKi8NCj4gKyAgICAgICBjYXNl IDU6IGR1MzJbc3ogLSA1XSA9IHN1MzJbc3ogLSA1XTsgLyogZmFsbHRocm91Z2ggKi8NCj4gKyAg ICAgICBjYXNlIDQ6IGR1MzJbc3ogLSA0XSA9IHN1MzJbc3ogLSA0XTsgLyogZmFsbHRocm91Z2gg Ki8NCj4gKyAgICAgICBjYXNlIDM6IGR1MzJbc3ogLSAzXSA9IHN1MzJbc3ogLSAzXTsgLyogZmFs bHRocm91Z2ggKi8NCj4gKyAgICAgICBjYXNlIDI6IGR1MzJbc3ogLSAyXSA9IHN1MzJbc3ogLSAy XTsgLyogZmFsbHRocm91Z2ggKi8NCj4gKyAgICAgICBjYXNlIDE6IGR1MzJbc3ogLSAxXSA9IHN1 MzJbc3ogLSAxXTsgLyogZmFsbHRocm91Z2ggKi8NCj4gKyAgICAgICB9DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gK2VucXVldWVfZWxlbXMoc3RydWN0 IHJ0ZV9yaW5nICpyLCB2b2lkICpyaW5nX3N0YXJ0LCB1aW50MzJfdCBwcm9kX2hlYWQsDQo+ICsg ICAgICAgICAgICAgICB2b2lkICpvYmpfdGFibGUsIHVpbnQzMl90IG51bSwgdWludDMyX3QgZXNp emUpIHsNCj4gKyAgICAgICB1aW50MzJfdCBpZHgsIG47DQo+ICsgICAgICAgdWludDMyX3QgKmR1 MzI7DQo+ICsgICAgICAgY29uc3QgdWludDMyX3QgKnN1MzI7DQo+ICsNCj4gKyAgICAgICBjb25z dCB1aW50MzJfdCBzaXplID0gci0+c2l6ZTsNCj4gKw0KPiArICAgICAgIGlkeCA9IHByb2RfaGVh ZCAmIChyKS0+bWFzazsNCj4gKw0KPiArICAgICAgIGR1MzIgPSAodWludDMyX3QgKilyaW5nX3N0 YXJ0ICsgaWR4Ow0KPiArICAgICAgIHN1MzIgPSBvYmpfdGFibGU7DQo+ICsNCj4gKyAgICAgICBp ZiAoaWR4ICsgbnVtIDwgc2l6ZSkNCj4gKyAgICAgICAgICAgICAgIGNvcHlfZWxlbXMoZHUzMiwg c3UzMiwgbnVtLCBlc2l6ZSk7DQo+ICsgICAgICAgZWxzZSB7DQo+ICsgICAgICAgICAgICAgICBu ID0gc2l6ZSAtIGlkeDsNCj4gKyAgICAgICAgICAgICAgIGNvcHlfZWxlbXMoZHUzMiwgc3UzMiwg biwgZXNpemUpOw0KPiArICAgICAgICAgICAgICAgY29weV9lbGVtcyhyaW5nX3N0YXJ0LCBzdTMy ICsgbiwgbnVtIC0gbiwgZXNpemUpOw0KPiArICAgICAgIH0NCj4gK30NCj4gKw0KPiArc3RhdGlj IF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiArZGVxdWV1ZV9lbGVtcyhzdHJ1Y3QgcnRlX3Jp bmcgKnIsIHZvaWQgKnJpbmdfc3RhcnQsIHVpbnQzMl90IGNvbnNfaGVhZCwNCj4gKyAgICAgICAg ICAgICAgIHZvaWQgKm9ial90YWJsZSwgdWludDMyX3QgbnVtLCB1aW50MzJfdCBlc2l6ZSkgew0K PiArICAgICAgIHVpbnQzMl90IGlkeCwgbjsNCj4gKyAgICAgICB1aW50MzJfdCAqZHUzMjsNCj4g KyAgICAgICBjb25zdCB1aW50MzJfdCAqc3UzMjsNCj4gKw0KPiArICAgICAgIGNvbnN0IHVpbnQz Ml90IHNpemUgPSByLT5zaXplOw0KPiArDQo+ICsgICAgICAgaWR4ID0gY29uc19oZWFkICYgKHIp LT5tYXNrOw0KPiArDQo+ICsgICAgICAgc3UzMiA9ICh1aW50MzJfdCAqKXJpbmdfc3RhcnQgKyBp ZHg7DQo+ICsgICAgICAgZHUzMiA9IG9ial90YWJsZTsNCj4gKw0KPiArICAgICAgIGlmIChpZHgg KyBudW0gPCBzaXplKQ0KPiArICAgICAgICAgICAgICAgY29weV9lbGVtcyhkdTMyLCBzdTMyLCBu dW0sIGVzaXplKTsNCj4gKyAgICAgICBlbHNlIHsNCj4gKyAgICAgICAgICAgICAgIG4gPSBzaXpl IC0gaWR4Ow0KPiArICAgICAgICAgICAgICAgY29weV9lbGVtcyhkdTMyLCBzdTMyLCBuLCBlc2l6 ZSk7DQo+ICsgICAgICAgICAgICAgICBjb3B5X2VsZW1zKGR1MzIgKyBuLCByaW5nX3N0YXJ0LCBu dW0gLSBuLCBlc2l6ZSk7DQo+ICsgICAgICAgfQ0KPiArfQ0KPiANCj4gIC8qIEJldHdlZW4gbG9h ZCBhbmQgbG9hZC4gdGhlcmUgbWlnaHQgYmUgY3B1IHJlb3JkZXIgaW4gd2VhayBtb2RlbA0KPiAg ICogKHBvd2VycGMvYXJtKS4NCj4gQEAgLTIzMiw3ICsyMzEsNyBAQCBfX3J0ZV9yaW5nX2RvX2Vu cXVldWVfZWxlbShzdHJ1Y3QgcnRlX3JpbmcgKnIsIHZvaWQNCj4gKiBjb25zdCBvYmpfdGFibGUs DQo+ICAgICAgICAgaWYgKG4gPT0gMCkNCj4gICAgICAgICAgICAgICAgIGdvdG8gZW5kOw0KPiAN Cj4gLSAgICAgICBFTlFVRVVFX1BUUlNfR0VOKHIsICZyWzFdLCBwcm9kX2hlYWQsIG9ial90YWJs ZSwgZXNpemUsIG4pOw0KPiArICAgICAgIGVucXVldWVfZWxlbXMociwgJnJbMV0sIHByb2RfaGVh ZCwgb2JqX3RhYmxlLCBuLCBlc2l6ZSk7DQo+IA0KPiAgICAgICAgIHVwZGF0ZV90YWlsKCZyLT5w cm9kLCBwcm9kX2hlYWQsIHByb2RfbmV4dCwgaXNfc3AsIDEpOw0KPiAgZW5kOg0KPiBAQCAtMjc5 LDcgKzI3OCw3IEBAIF9fcnRlX3JpbmdfZG9fZGVxdWV1ZV9lbGVtKHN0cnVjdCBydGVfcmluZyAq ciwgdm9pZA0KPiAqb2JqX3RhYmxlLA0KPiAgICAgICAgIGlmIChuID09IDApDQo+ICAgICAgICAg ICAgICAgICBnb3RvIGVuZDsNCj4gDQo+IC0gICAgICAgREVRVUVVRV9QVFJTX0dFTihyLCAmclsx XSwgY29uc19oZWFkLCBvYmpfdGFibGUsIGVzaXplLCBuKTsNCj4gKyAgICAgICBkZXF1ZXVlX2Vs ZW1zKHIsICZyWzFdLCBjb25zX2hlYWQsIG9ial90YWJsZSwgbiwgZXNpemUpOw0KPiANCj4gICAg ICAgICB1cGRhdGVfdGFpbCgmci0+Y29ucywgY29uc19oZWFkLCBjb25zX25leHQsIGlzX3NjLCAw KTsNCj4gDQo+IC0tDQo+IDIuMTcuMQ0KPiANCg0K