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 48AEAA0548; Mon, 19 Apr 2021 20:50:44 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 223D041448; Mon, 19 Apr 2021 20:50:44 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2042.outbound.protection.outlook.com [40.107.244.42]) by mails.dpdk.org (Postfix) with ESMTP id D1148413DE; Mon, 19 Apr 2021 20:50:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hj9Q4+5BI55NqJiundwWhIptc9KbOi11J612EcB8s9pMyE3QhdRkykjv1g4iIi5qPHGxGXku/1N5T3sCIdNIZW6Qu2emP4h04DpHS4809bw1DI8fxxXgD1j4g5/FpVCDq1wt+/+GCutPZmYdtomXruJMMDjfnYoXzTjBkRhBL2jlxXptZVHug0K7M6cHQmwsD1eQ1kIgqbqksl1rbqHxGA6Fb5FYC4ZxAthXgf25f/XhipaErqVUfvDyzLuwoZtknkKbor0QO0VDyjEDHe4THWnoMNAk/i2LHew+6sPfvPnm0F70VmcxkbMOqxD+wydQgL6gWxansLmp9/I8q3i4ZQ== 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=V1hTbYoLA+W2EIwCNC1kC2id0v+pk7g6pZey+kg0tDU=; b=l9fyC3LU6yD79NTrnJ7Erdy7lMCdINiB+s+C2lKCksEx/xWP9lq4EdKGIwanWnqIEXtfafDDiJl19/O8PV0mYSG8ZZLWtjtzeFDJDWHwuvaH5iGkf88TzeHQING6R+Er5TL0pa2QgdPiU9RsyhT54ZidMQh1z/psERowAJeb9W/bHSJmEqvHmxrnsBi8EazhBZMYZTXvIfy9g0ffcEyqn6+qG92T1tM5MKjj3tWtLjbKNCGN4T+09cELzYBba6C0A3dEhv1imFRpEezCepyuOZ7BJZxw4SLiYaBbdWcdCJ1Bw18WFeKYcu3PtmjRlfx3SouBDEo2pXphrHQD1jl3ww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V1hTbYoLA+W2EIwCNC1kC2id0v+pk7g6pZey+kg0tDU=; b=rW/zB9OyEqhl+hUbGxL1o397+mobyK7CZHNUOyNcHXjnuwUE7tkqyYY6WHzIxF2fZXUlhczYg5rls8MzY55Z36SZFyQakikYeH4DTkoYGLxf8hpZbDlBbxVMK6OoCrSm0vcBVX6o6IasZYvO2WZ9HChrzHoRA5u1rai53SoMwTn132+nN6t2AYMdS2O2CZ5PS8iVb6/MHEpVCQAcZmNcR9xzFU5cGrSBJXNqqM8MnGFOOWseDYsVAoKNDqBgm6ni4HKDg9cebCMr2xNuviweYNtJKDV04QlgGi8YPxeXcaejlK6gubrJvfe2MF0fA0BIK70D0OvLwn7Oo9exLeBXNA== Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by DM6PR12MB4386.namprd12.prod.outlook.com (2603:10b6:5:28f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Mon, 19 Apr 2021 18:50:39 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::20f7:11fc:9d46:9258]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::20f7:11fc:9d46:9258%6]) with mapi id 15.20.4042.024; Mon, 19 Apr 2021 18:50:39 +0000 From: Slava Ovsiienko To: Feifei Wang , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , nd , "stable@dpdk.org" , Ruifeng Wang , nd Thread-Topic: [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache Thread-Index: AQHXG8cWFxZYWyFpJUm7yYF997hX4qqwqlRAgAFnd4CACkdrsA== Date: Mon, 19 Apr 2021 18:50:39 +0000 Message-ID: References: <20210318071840.359957-1-feifei.wang2@arm.com> <20210318071840.359957-4-feifei.wang2@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8d4efc20-7bd7-4bbf-ac32-08d903640708 x-ms-traffictypediagnostic: DM6PR12MB4386: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LfRSEGatto+nt2JXvFmpxvBGYyjKwujlh9lBT0HUvJVJH+pjy/IQkvwsjjYHbdL/w0xY6ucjQ9SZcchAc0EKpx65/fUypsY0dATDdFlhPR5dBPB7ZEzwCEx9MiHkUbirenrTy0rkZANwm6D9QkIh5uzIPm/P0acSaVCYU4aIKus/aAuSRxI3pkvF1JL2zEyhX0ioAtnt4bMQ0pjEDyFOgCb62wW2+7yFThfqv7xcduG299WbHa++rrqqXZuQH86Oh7q814DQIsl2vpYVO0x67wwpHnCbyyFw9dllorwqO81auZLN6v+LP/7VPlvoGvQVj9eonXlyZs5DQpEzPgJXo4AO11SeqDBn9bq27KpArW7lZDPj8xNk6lwZ2I54x8rF2c9EBAvahS5pOMTGkT5nyvwmrQ21smoBDvHtTdPqwBdw1yz9tsgKyFQZXWFI0tyrhf3VVzgFPjLtMWdugcBv/h1MdJuXl+RGXBkQwxn5273ikIGxi3CUJs0rntzDKWHPr9/6Eo0+EC5rJ2diO/1mLpkPuHVwul2hKwbSTXfkSNO7cXunEepunKS3yN1DgSbAwGrwpJLbBLBNdj7mG8/cynhyucxF/hDv5bLPsh19XAI= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(376002)(396003)(346002)(366004)(39860400002)(5660300002)(38100700002)(122000001)(55016002)(110136005)(6636002)(52536014)(33656002)(76116006)(86362001)(8936002)(66946007)(66476007)(54906003)(26005)(2906002)(9686003)(4326008)(7696005)(6506007)(478600001)(83380400001)(316002)(186003)(66446008)(64756008)(66556008)(30864003)(8676002)(53546011)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?cElITkpPOXkwV2hySTJrZzNXaWROZ1VMdEx6VzdhS005TlpLM21jbitMU3NI?= =?utf-8?B?cFE5QWhTTzNsU1MvbmZmZlByVDV4NVJHeUZiZnRVSzZYd0NYTkhKT0NhSFBN?= =?utf-8?B?Vk5QOElZc1JyZDlLT2ZXcUl6RmJ4R0k3SE05WTFJNENTRDRRMGJWQ1pweU5y?= =?utf-8?B?TFhKWHpnNEVrenRyN1NUakFYaE4xSVltcFZ1Q1FqQWVZQ2ltOVMrdWtEa1Vx?= =?utf-8?B?V3JCL3RtTHZINU1EdldFWFNidDVkcy8xY0Q1OCtvM1p4RXdxS1JlZ0FhRWly?= =?utf-8?B?VnlZSDNMLzFFRkloai9Ta01wN0l5bzE0TkpGc3l5QlU0dmZueDVBQWZQYTRx?= =?utf-8?B?M3ZEQ0tUL29TSmRXczU0ZG5lSTZ4V3MzbEVVSjUxYXlNTnQwRlZlcWh3SW9K?= =?utf-8?B?dncxenFIbzM4eEtXSGNLQkRNYnhQTnMycXVCc2pMS0ttWTIwMzBoa3JWU3M2?= =?utf-8?B?Wm1yOXErMEVkYmY4N0FLZXdYTGVud0hLUG5CME85S1gzeXhwQ0NnYjMvNVpQ?= =?utf-8?B?V2FobVNac05KVk1FaGZ6aDhOdWNwVm4rcjdreWJyUnNsdG9IcjdjNzdacTUy?= =?utf-8?B?WGVoMDRIQjA2UTdSUE5NWDJuUDY1d3BJdTJQaHlMWTVmSi9Cc1FpNW9xcERv?= =?utf-8?B?L1hWQ0kxU0toSUZPcTdQSFU5UzU2U1M4RmFBN3FSNHR0dWZDdWNET1VDd0FV?= =?utf-8?B?YnJzS3lCZGQrU0NEMWVSelErSmlQQlRDZGpJSUVLNm93SWJnbzVsS1dIcXZF?= =?utf-8?B?OHAvY0QzZTBBeTFJOCtibFNlWnl3OUZEaGdPY1REMUttMHpBM3VqK2NSNmpV?= =?utf-8?B?NDVycHpZR1VjUVVhQy9DMkt6REptelpseExQTGxzR2xJUlFCQ0k3blZiTGxK?= =?utf-8?B?cFZtMllaYUtvZy9OcmlHOWNHUTdQWTRjR1VxRTdQU241Ynk0eU5salVVazE2?= =?utf-8?B?ZkE3SXlhamMzb3c2QWM3dlpnWXcrYVpFd3dLMjRxaFF4UTRicW1oSVVVVGR2?= =?utf-8?B?eVFJT0RWRnA0djJIRHlvTEw5VW5lR3Z0K0tlZTg5ekJUaDFoekExMC9QQiti?= =?utf-8?B?YzQvOTJDMkdvcEhiYnltQ2pMcVM0NWh2bEdEL2JWZ0duR21peGthaVhBWEE5?= =?utf-8?B?T0dxMzVRdVRKUnhXMnlHTHgrUDBsUXRDSUdpNXR3enhaWW9NYS9zZDVmaHM3?= =?utf-8?B?VUw4bXpvdkQ2NFBJelBVempZdjdmYzlPZ2ZiZGszQnRodVFaNmNIQ2lvNWdS?= =?utf-8?B?ZFFwbE0yNUduTWpzTEJXRnRHSlhFOTJjWW1NK284bmg1eXVvWTA5K2JTeE5B?= =?utf-8?B?MXdESi9rNHRkMWZZWW5KY1lISmJOeFoxeWtIaTZRUFdXbjJnRnlWYUpzZkVY?= =?utf-8?B?Ulc1RjNoYmljQkErcDJYNEdES3JSSVBlVGJ1RW04REZaaXNFVC9Wc0o3R1JQ?= =?utf-8?B?YkhoMnVKdEk5d0JHWUlUNDBMczkreU5xRjgwaTVOL1hnUW1Kd1dicWlKZVhP?= =?utf-8?B?ZGVnVFMzcFV4dGFCMHNIN2hYZnQ2WTVGNDZYaFB5MTdPRmEyTytFckpNUklK?= =?utf-8?B?MWVNdjE2bTFmTHlYRUhWdXBPZGg5VVVOeHNDMFFwUEFVcDZOVW85QmxFS0do?= =?utf-8?B?SGQrY2xIbUh3NEYrRXRkOG8rTWN2b1pxWjFxYTVpaFhIMTRMUlVXQmI5R0tS?= =?utf-8?B?QU1tcVJudVZaRThhU2MycHUvUHl1Si9odE1MMUN1ekUzdm1LWmZkdHVseExz?= =?utf-8?Q?Jc5vzkvoiJpCUVeALJ4hGDIDUyNRuMSSjKXtEN+?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d4efc20-7bd7-4bbf-ac32-08d903640708 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2021 18:50:39.8458 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3BvC1CBHQi+Cjudgqo5mp/duqb6sS2kzzrkVFLDVq/sYy2h6NXsEIW4Keu9Zl3mavtMiEdi/GfB1YgAMfDmlgw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4386 Subject: Re: [dpdk-dev] [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache 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" SGksIEZlaWZlaQ0KDQpQbGVhc2UsIHNlZSBiZWxvdw0KDQouLi4uDQoNCj4gPiBIaSwgRmVpZmVp DQo+ID4NCj4gPiBTb3JyeSwgSSBkbyBub3QgZm9sbG93IHdoYXQgdGhpcyBwYXRjaCBmaXhlcy4g RG8gd2UgaGF2ZSBzb21lDQo+ID4gaXNzdWUvYnVnIHdpdGggTVIgY2FjaGUgaW4gcHJhY3RpY2U/ DQo+IA0KPiBUaGlzIHBhdGNoIGZpeGVzIHRoZSBidWcgd2hpY2ggaXMgYmFzZWQgb24gbG9naWNh bCBkZWR1Y3Rpb24sIGFuZCBpdCBkb2Vzbid0DQo+IGFjdHVhbGx5IGhhcHBlbi4NCj4gDQo+ID4N Cj4gPiBFYWNoIFR4IHF1ZXVlIGhhcyBpdHMgb3duIGRlZGljYXRlZCAibG9jYWwiIGNhY2hlIGZv ciBNUnMgdG8gY29udmVydA0KPiA+IGJ1ZmZlciBhZGRyZXNzIGluIG1idWZzIGJlaW5nIHRyYW5z bWl0dGVkIHRvIExLZXlzIChIVy1yZWxhdGVkIGVudGl0eQ0KPiA+IGhhbmRsZSkgYW5kIHRoZSAi Z2xvYmFsIiBjYWNoZSBmb3IgYWxsIE1SIHJlZ2lzdGVyZWQgb24gdGhlIGRldmljZS4NCj4gPg0K PiA+IEFGQUlLLCBob3cgY29udmVyc2lvbiBoYXBwZW5zIGluIGRhdGFwYXRoOg0KPiA+IC0gY2hl Y2sgdGhlIGxvY2FsIHF1ZXVlIGNhY2hlIGZsdXNoIHJlcXVlc3QNCj4gPiAtIGxvb2t1cCBpbiBs b2NhbCBjYWNoZQ0KPiA+IC0gaWYgbm90IGZvdW5kOg0KPiA+IC0gYWNxdWlyZSBsb2NrIGZvciBn bG9iYWwgY2FjaGUgcmVhZCBhY2Nlc3MNCj4gPiAtIGxvb2t1cCBpbiBnbG9iYWwgY2FjaGUNCj4g PiAtIHJlbGVhc2UgbG9jayBmb3IgZ2xvYmFsIGNhY2hlDQo+ID4NCj4gPiBIb3cgY2FjaGUgdXBk YXRlIG9uIG1lbW9yeSBmcmVlaW5nL3VucmVnaXN0ZXJpbmcgaGFwcGVuczoNCj4gPiAtIGFjcXVp cmUgbG9jayBmb3IgZ2xvYmFsIGNhY2hlIHdyaXRlIGFjY2Vzcw0KPiA+IC0gW2FdIHJlbW92ZSBy ZWxldmFudCBNUnMgZnJvbSB0aGUgZ2xvYmFsIGNhY2hlDQo+ID4gLSBbYl0gc2V0IGxvY2FsIGNh Y2hlcyBmbHVzaCByZXF1ZXN0DQo+ID4gLSBmcmVlIGdsb2JhbCBjYWNoZSBsb2NrDQo+ID4NCj4g PiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCB5b3VyIHBhdGNoIHN3YXBzIFthXSBhbmQgW2Jd LCBhbmQgbG9jYWwNCj4gPiBjYWNoZXMgZmx1c2ggaXMgcmVxdWVzdGVkIGVhcmxpZXIuIFdoYXQg cHJvYmxlbSBkb2VzIGl0IHNvbHZlPw0KPiA+IEl0IGlzIG5vdCBzdXBwb3NlZCB0aGVyZSBhcmUg aW4gZGF0YXBhdGggc29tZSBtYnVmcyByZWZlcmVuY2luZyB0byB0aGUNCj4gPiBtZW1vcnkgYmVp bmcgZnJlZWQuIEFwcGxpY2F0aW9uIG11c3QgZW5zdXJlIHRoaXMgYW5kIG11c3Qgbm90IGFsbG9j YXRlDQo+ID4gbmV3IG1idWZzIGZyb20gdGhpcyBtZW1vcnkgcmVnaW9ucyBiZWluZyBmcmVlZC4g SGVuY2UsIHRoZSBsb29rdXBzIGZvcg0KPiA+IHRoZXNlIE1ScyBpbiBjYWNoZXMgc2hvdWxkIG5v dCBvY2N1ci4NCj4gDQo+IEZvciB5b3VyIGZpcnN0IHBvaW50IHRoYXQsIGFwcGxpY2F0aW9uIGNh biB0YWtlIGNoYXJnZSBvZiBwcmV2ZW50aW5nIE1SIGZyZWVkDQo+IG1lbW9yeSBiZWluZyBhbGxv Y2F0ZWQgdG8gZGF0YSBwYXRoLg0KPiANCj4gRG9lcyBpdCBtZWFucyB0aGF0IElmIHRoZXJlIGlz IGFuIGVtZXJnZW5jeSBvZiBNUiBmcmFnbWVudCwgc3VjaCBhcyBob3RwbHVnLA0KPiB0aGUgYXBw bGljYXRpb24gbXVzdCBpbmZvcm0gdGhlZGF0YSBwYXRoIGluIGFkdmFuY2UsIGFuZCB0aGlzIG1l bW9yeSB3aWxsDQo+IG5vdCBiZSBhbGxvY2F0ZWQsIGFuZCB0aGVuIHRoZSBjb250cm9sIHBhdGgg d2lsbCBmcmVlIHRoaXMgbWVtb3J5PyBJZg0KPiBhcHBsaWNhdGlvbiAgY2FuIGRvIGxpa2UgdGhp cywgSSBhZ3JlZSB0aGF0IHRoaXMgYnVnIGNhbm5vdCBoYXBwZW4uDQoNCkFjdHVhbGx5LCAgdGhp cyBpcyB0aGUgb25seSBjb3JyZWN0IHdheSBmb3IgYXBwbGljYXRpb24gdG8gb3BlcmF0ZS4NCkxl dCdzIHN1cHBvc2Ugd2UgaGF2ZSBzb21lIG1lbW9yeSBhcmVhIHRoYXQgYXBwbGljYXRpb24gd2Fu dHMNCnRvIGZyZWUuIEFMTCByZWZlcmVuY2VzIHRvIHRoaXMgYXJlYSBtdXN0IGJlIHJlbW92ZWQu IElmIHdlIGhhdmUNCnNvbWUgbWJ1ZnMgYWxsb2NhdGVkIGZyb20gdGhpcyBhcmVhLCBpdCBtZWFu cyB0aGF0IHdlIGhhdmUgbWVtb3J5IHBvb2wNCmNyZWF0ZWQgdGhlcmUuDQoNCldoYXQgYXBwbGlj YXRpb24gc2hvdWxkIGRvOg0KLSBub3RpZnkgYWxsIGl0cyBjb21wb25lbnRzL2FnZW50cyB0aGUg bWVtb3J5IGFyZWEgaXMgZ29pbmcgdG8gYmUgZnJlZWQNCi0gYWxsIGNvbXBvbmVudHMvYWdlbnRz IGZyZWUgdGhlIG1idWZzIHRoZXkgbWlnaHQgb3duDQotIFBNRCBtaWdodCBub3Qgc3VwcG9ydCBm cmVlaW5nIGZvciBzb21lIG1idWZzIChmb3IgZXhhbXBsZSBiZWluZw0Kc2VudCBhbmQgYXdhaXRp bmcgZm9yIGNvbXBsZXRpb24pLCBzbyBhcHAgc2hvdWxkIGp1c3Qgd2FpdA0KLSB3YWl0IHRpbGwg YWxsIG1idWZzIGFyZSByZXR1cm5lZCB0byB0aGUgbWVtb3J5IHBvb2wgKGJ5IG1vbml0b3Jpbmcg YXZhaWxhYmxlIG9iaiA9PSBwb29sIHNpemUpDQoNCk90aGVyd2lzZSAtIGl0IGlzIGRhbmdlcm91 cyB0byBmcmVlIHRoZSBtZW1vcnkuIFRoZXJlIGFyZSBqdXN0IHNvbWUgbWJ1ZnMgc3RpbGwgYWxs b2NhdGVkLA0KaXQgaXMgcmVnYXJkbGVzcyB0byBidWYgYWRkcmVzcyB0byBNUiB0cmFuc2xhdGlv bi4gV2UganVzdCBjYW4ndCBmcmVlIHRoZSBtZW1vcnkgLSB0aGUgbWFwcGluZw0Kd2lsbCBiZSBk ZXN0cm95ZWQgYW5kIG1pZ2h0IGNhdXNlIHRoZSBzZWdtZW50YXRpb24gZmF1bHQgYnkgU1cgb3Ig c29tZSBIVyBpc3N1ZXMgb24NCkRNQSBhY2Nlc3MgdG8gdW5tYXBwZWQgbWVtb3J5LiAgSXQgaXMg dmVyeSBnZW5lcmljIHNhZmV0eSBhcHByb2FjaCAtIGRvIG5vdCBmcmVlIHRoZSBtZW1vcnkNCnRo YXQgaXMgc3RpbGwgaW4gdXNlLiBIZW5jZSwgYXQgdGhlIG1vbWVudCBvZiBmcmVlaW5nIGFuZCB1 bnJlZ2lzdGVyaW5nIHRoZSBNUiwNCnRoZXJlIE1VU1QgQkUgTk8gYW55IG1idWZzIGluIGZsaWdo dCByZWZlcmVuY2luZyB0byB0aGUgYWRkcmVzc2VzDQpiZWluZyBmcmVlZC4gTm8gdHJhbnNsYXRp b24gdG8gTVIgYmVpbmcgaW52YWxpZGF0ZWQgY2FuIGhhcHBlbi4NCg0KPiANCj4gPiBGb3Igb3Ro ZXIgc2lkZSwgdGhlIGNhY2hlIGZsdXNoIGhhcyBuZWdhdGl2ZSBlZmZlY3QgLSB0aGUgbG9jYWwg Y2FjaGUNCj4gPiBpcyBnZXR0aW5nIGVtcHR5IGFuZCBjYW4ndCBwcm92aWRlIHRyYW5zbGF0aW9u IGZvciBvdGhlciB2YWxpZCAobm90DQo+ID4gYmVpbmcgcmVtb3ZlZCkgTVJzLCBhbmQgdGhlIHRy YW5zbGF0aW9uIGhhcyB0byBsb29rIHVwIGluIHRoZSBnbG9iYWwNCj4gPiBjYWNoZSwgdGhhdCBp cyBsb2NrZWQgbm93IGZvciByZWJ1aWxkaW5nLCB0aGlzIGNhdXNlcyB0aGUgZGVsYXlzIGluIGRh dGFwYXRjaA0KPiBvbiBhY3F1aXJpbmcgZ2xvYmFsIGNhY2hlIGxvY2suDQo+ID4gU28sIEkgc2Vl IHNvbWUgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcGFjdC4NCj4gDQo+IElmIGFib3ZlIGFzc3Vt cHRpb24gaXMgdHJ1ZSwgd2UgY2FuIGdvIHRvIHlvdXIgc2Vjb25kIHBvaW50LiBJIHRoaW5rIHRo aXMgaXMgYQ0KPiBwcm9ibGVtIG9mIHRoZSB0cmFkZW9mZiBiZXR3ZWVuIGNhY2hlIGNvaGVyZW5j ZSBhbmQgcGVyZm9ybWFuY2UuDQo+IA0KPiBJIGNhbiB1bmRlcnN0YW5kIHlvdXIgbWVhbmluZyB0 aGF0IHRob3VnaCBnbG9iYWwgY2FjaGUgaGFzIGJlZW4gY2hhbmdlZCwNCj4gd2Ugc2hvdWxkIGtl ZXAgdGhlIHZhbGlkIE1SIGluIGxvY2FsIGNhY2hlIGFzIGxvbmcgYXMgcG9zc2libGUgdG8gZW5z dXJlIHRoZQ0KPiBmYXN0IHNlYXJjaGluZyBzcGVlZC4NCj4gSW4gdGhlIG1lYW53aGlsZSwgdGhl IGxvY2FsIGNhY2hlIGNhbiBiZSByZWJ1aWx0IGxhdGVyIHRvIHJlZHVjZSBpdHMgd2FpdGluZw0K PiB0aW1lIGZvciBhY3F1aXJpbmcgdGhlIGdsb2JhbCBjYWNoZSBsb2NrLg0KPiANCj4gSG93ZXZl ciwgIHRoaXMgbWVjaGFuaXNtIGp1c3QgZW5zdXJlcyB0aGUgcGVyZm9ybWFuY2UgdW5jaGFuZ2Vk IGZvciAgdGhlDQo+IGZpcnN0IGZldyBtYnVmcy4NCj4gRHVyaW5nIHRoZSBuZXh0IG1idWZzIGxr ZXkgc2VhcmNoaW5nIGFmdGVyICdkZXZfZ2VuJyB1cGRhdGVkLCBpdCBpcyBzdGlsbA0KPiBuZWNl c3NhcnkgdG8gdXBkYXRlIHRoZSBsb2NhbCBjYWNoZS4gQW5kIHRoZSBwZXJmb3JtYW5jZSBjYW4g Zmlyc3RseSByZWR1Y2UNCj4gYW5kIHRoZW4gcmV0dXJucy4gVGh1cywgbm8gbWF0dGVyIHdoZXRo ZXIgdGhlcmUgaXMgdGhpcyBwYXRjaCBvciBub3QsICB0aGUNCj4gcGVyZm9ybWFuY2Ugd2lsbCBq aXR0ZXIgaW4gYSBjZXJ0YWluIHBlcmlvZCBvZiB0aW1lLg0KDQpMb2NhbCBjYWNoZSBzaG91bGQg YmUgdXBkYXRlZCB0byByZW1vdmUgTVJzIG5vIGxvbmdlciB2YWxpZC4gQnV0IHdlDQpqdXN0IGZs dXNoIHRoZSBlbnRpcmUgY2FjaGUuDQpMZXQncyBzdXBwb3NlIHdlIGhhdmUgdmFsaWQgTVIwLCBN UjEsIGFuZCBub3QgdmFsaWQgTVJYIGluIGxvY2FsIGNhY2hlLg0KQW5kIHRoZXJlIGFyZSB0cmFm ZmljIGluIHRoZSBkYXRhcGF0aCBmb3IgTVIwIGFuZCBNUjEsIGFuZCBubyB0cmFmZmljDQpmb3Ig TVJYIGFueW1vcmUuDQoNCjEpIElmIHdlIGRvIGFzIHlvdSBwcm9wb3NlOg0KYSkgdGFrZSBhIGxv Y2sNCmIpIHJlcXVlc3QgZmx1c2ggbG9jYWwgY2FjaGUgZmlyc3QgLSBhbGwgTVIwLCBNUjEsIE1S WCB3aWxsIGJlIHJlbW92ZWQgb24gdHJhbnNsYXRpb24gaW4gZGF0YXBhdGgNCmMpIHVwZGF0ZSBn bG9iYWwgY2FjaGUsDQpkKSBmcmVlIGxvY2sNCkFsbCB0aGUgdHJhZmZpYyBmb3IgdmFsaWQgTVIw LCBNUjEgQUxXQVlTIHdpbGwgYmUgYmxvY2tlZA0Kb24gbG9jayB0YWtlbiBmb3IgY2FjaGUgdXBk YXRlIHNpbmNlIHBvaW50IGIpIHRpbGwgcG9pbnQgZCkuDQoNCjIpIElmIHdlIGRvIGFzIGl0IGlz IGltcGxlbWVudGVkIG5vdzoNCmEpIHRha2UgYSBsb2NrDQpiKSB1cGRhdGUgZ2xvYmFsIGNhY2hl DQpjKSByZXF1ZXN0IGZsdXNoIGxvY2FsIGNhY2hlDQpkKSBmcmVlIGxvY2sNClRoZSB0cmFmZmlj IE1JR0hUIGJlIGxvY2tlZCBPTkxZIGZvciBNUnMgbm9uLWV4aXN0aW5nIGluIGxvY2FsIGNhY2hl IChub3QgaGFwcGVucyBmb3IgTVIwDQphbmQgTVIxLCBtdXN0IG5vdCBoYXBwZW4gZm9yIE1SWCks ICBhbmQgcHJvYmFiaWxpdHkgc2hvdWxkIGJlIG1pbm9yLiBBbmQgbG9jayBtaWdodCBoYXBwZW4N CnNpbmNlIGMpIHRpbGwgZCkgLSBxdWl0ZSBzaG9ydCBwZXJpb2Qgb2YgdGltZQ0KDQpTdW1tYXJ5 LCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIDEpIGFuZCAyKSANCg0KTG9jayBwcm9iYWJpbGl0eToN Ci0gMSkgbG9jayBBTFdBWVMgaGFwcGVuIGZvciBBTlkgTVIgdHJhbnNsYXRpb24gYWZ0ZXIgYiks DQogIDIpIGxvY2sgTUlHSFQgaGFwcGVuLCBmb3IgY2FjaGUgbWlzcyBPTkxZLCBhZnRlciBjKQ0K DQpMb2NrIGR1cmF0aW9uOg0KLSAxKSBsb2NrIHNpbmNlIGIpIHRpbGwgZCksDQogIDIpIGxvY2sg c2luY2UgYykgdGlsbCBkKSwgdGhhdCBzZWVtcyB0byBiZSAgbXVjaCBzaG9ydGVyLg0KDQo+IA0K PiBGaW5hbGx5LCBpbiBjb25jbHVzaW9uLCBJIHRlbmQgdG8gdGhpbmsgdGhhdCB0aGUgYm90dG9t IGxheWVyIGNhbiBkbyBtb3JlIHRoaW5ncw0KPiB0byBlbnN1cmUgdGhlIGNvcnJlY3QgZXhlY3V0 aW9uIG9mIHRoZSBwcm9ncmFtLCB3aGljaCBtYXkgaGF2ZSBhIG5lZ2F0aXZlDQo+IGltcGFjdCBv biB0aGUgcGVyZm9ybWFuY2UgaW4gYSBzaG9ydCB0aW1lLCBidXQgaW4gdGhlIGxvbmcgcnVuLCB0 aGUNCj4gcGVyZm9ybWFuY2Ugd2lsbCBldmVudHVhbGx5IGNvbWUgYmFjay4gIEZ1cnRoZXJtb3Jl LCBtYXliZSB3ZSBzaG91bGQgcGF5DQo+IGF0dGVudGlvbiB0byB0aGUgcGVyZm9ybWFuY2UgaW4g dGhlIHN0YWJsZSBwZXJpb2QsIGFuZCB0cnkgb3VyIGJlc3QgdG8gZW5zdXJlDQo+IHRoZSBjb3Jy ZWN0bmVzcyBvZiB0aGUgcHJvZ3JhbSBpbiBjYXNlIG9mIGVtZXJnZW5jaWVzLg0KDQpJZiB3ZSBo YXZlIHNvbWUgbWJ1ZnMgc3RpbGwgYWxsb2NhdGVkIGluIG1lbW9yeSBiZWluZyBmcmVlZCAtIHRo ZXJlIGlzIG5vdGhpbmcNCnRvIHNheSBhYm91dCBjb3JyZWN0bmVzcywgaXQgaXMgdG90YWxseSBp bmNvcnJlY3QuIEluIG15IG9waW5pb24sIHdlIHNob3VsZCBub3QgdGhpbmsgaG93DQp0byBtaXRp Z2F0ZSB0aGlzIGluY29ycmVjdCBiZWhhdmlvciwgd2Ugc2hvdWxkIG5vdCBlbmNvdXJhZ2UgYXBw bGljYXRpb24gZGV2ZWxvcGVycw0KdG8gZm9sbG93IHRoZSB3cm9uZyBhcHByb2FjaGVzLg0KDQpX aXRoIGJlc3QgcmVnYXJkcywNClNsYXZhDQoNCj4gDQo+IEJlc3QgUmVnYXJkcw0KPiBGZWlmZWkN Cj4gDQo+ID4gV2l0aCBiZXN0IHJlZ2FyZHMsDQo+ID4gU2xhdmENCj4gPg0KPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEZlaWZlaSBXYW5nIDxmZWlmZWkud2Fu ZzJAYXJtLmNvbT4NCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAxOCwgMjAyMSA5OjE5DQo+ ID4gPiBUbzogTWF0YW4gQXpyYWQgPG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyDQo+ ID4gPiA8c2hhaGFmc0BudmlkaWEuY29tPjsgU2xhdmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0Bu dmlkaWEuY29tPjsNCj4gPiA+IFlvbmdzZW9rIEtvaCA8eXNrb2hAbWVsbGFub3guY29tPg0KPiA+ ID4gQ2M6IGRldkBkcGRrLm9yZzsgbmRAYXJtLmNvbTsgRmVpZmVpIFdhbmcgPGZlaWZlaS53YW5n MkBhcm0uY29tPjsNCj4gPiA+IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZyBXYW5nIDxydWlmZW5n LndhbmdAYXJtLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFtQQVRDSCB2MSAzLzRdIG5ldC9tbHg1OiBm aXggcmVidWlsZCBidWcgZm9yIE1lbW9yeSBSZWdpb24NCj4gPiA+IGNhY2hlDQo+ID4gPg0KPiA+ ID4gJ2Rldl9nZW4nIGlzIGEgdmFyaWFibGUgdG8gaW5mb3JtIG90aGVyIGNvcmVzIHRvIGZsdXNo IHRoZWlyIGxvY2FsDQo+ID4gPiBjYWNoZSB3aGVuIGdsb2JhbCBjYWNoZSBpcyByZWJ1aWx0Lg0K PiA+ID4NCj4gPiA+IEhvd2V2ZXIsIGlmICdkZXZfZ2VuJyBpcyB1cGRhdGVkIGFmdGVyIGdsb2Jh bCBjYWNoZSBpcyByZWJ1aWx0LA0KPiA+ID4gb3RoZXIgY29yZXMgbWF5IGxvYWQgYSB3cm9uZyBt ZW1vcnkgcmVnaW9uIGxrZXkgdmFsdWUgZnJvbSBvbGQgbG9jYWwNCj4gY2FjaGUuDQo+ID4gPg0K PiA+ID4gVGltZXNsb3QgICAgICAgIG1haW4gY29yZSAgICAgICAgICAgICAgIHdvcmtlciBjb3Jl DQo+ID4gPiAgIDEgICAgICAgICByZWJ1aWxkIGdsb2JhbCBjYWNoZQ0KPiA+ID4gICAyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQgdW5jaGFuZ2VkIGRldl9nZW4NCj4gPiA+ ICAgMyAgICAgICAgICAgIHVwZGF0ZSBkZXZfZ2VuDQo+ID4gPiAgIDQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbG9vayB1cCBvbGQgbG9jYWwgY2FjaGUNCj4gPiA+DQo+ID4gPiBG cm9tIHRoZSBleGFtcGxlIGFib3ZlLCB3ZSBjYW4gc2VlIHRoYXQgdGhvdWdoIGdsb2JhbCBjYWNo ZSBpcw0KPiA+ID4gcmVidWlsdCwgZHVlIHRvIHRoYXQgZGV2X2dlbiBpcyBub3QgdXBkYXRlZCwg dGhlIHdvcmtlciBjb3JlIG1heQ0KPiA+ID4gbG9vayB1cCBvbGQgY2FjaGUgdGFibGUgYW5kIHJl Y2VpdmUgYSB3cm9uZyBtZW1vcnkgcmVnaW9uIGxrZXkgdmFsdWUuDQo+ID4gPg0KPiA+ID4gVG8g Zml4IHRoaXMsIHVwZGF0aW5nICdkZXZfZ2VuJyBzaG91bGQgYmUgbW92ZWQgYmVmb3JlIHJlYnVp bGRpbmcNCj4gPiA+IGdsb2JhbCBjYWNoZSB0byBpbmZvcm0gd29ya2VyIGNvcmVzIHRvIGZsdXNo IHRoZWlyIGxvY2FsIGNhY2hlIHdoZW4NCj4gPiA+IGdsb2JhbCBjYWNoZSBzdGFydCByZWJ1aWxk aW5nLiBBbmQgd21iIGNhbiBlbnN1cmUgdGhlIHNlcXVlbmNlIG9mDQo+ID4gPiB0aGlzDQo+ID4g cHJvY2Vzcy4NCj4gPiA+DQo+ID4gPiBGaXhlczogOTc0ZjFlN2VmMTQ2ICgibmV0L21seDU6IGFk ZCBuZXcgbWVtb3J5IHJlZ2lvbiBzdXBwb3J0IikNCj4gPiA+IENjOiBzdGFibGVAZHBkay5vcmcN Cj4gPiA+DQo+ID4gPiBTdWdnZXN0ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5nQGFy bS5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBGZWlmZWkgV2FuZyA8ZmVpZmVpLndhbmcyQGFy bS5jb20+DQo+ID4gPiBSZXZpZXdlZC1ieTogUnVpZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJt LmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4NV9tci5jIHwgMzcN Cj4gPiA+ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICAxIGZp bGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tci5jIGIvZHJpdmVycy9uZXQv bWx4NS9tbHg1X21yLmMNCj4gPiA+IGluZGV4DQo+ID4gPiBkYTRlOTFmYzIuLjdjZTFkM2U2NCAx MDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9tci5jDQo+ID4gPiArKysg Yi9kcml2ZXJzL25ldC9tbHg1L21seDVfbXIuYw0KPiA+ID4gQEAgLTEwMywyMCArMTAzLDE4IEBA IG1seDVfbXJfbWVtX2V2ZW50X2ZyZWVfY2Ioc3RydWN0DQo+ID4gPiBtbHg1X2Rldl9jdHhfc2hh cmVkICpzaCwNCj4gPiA+ICAJCXJlYnVpbGQgPSAxOw0KPiA+ID4gIAl9DQo+ID4gPiAgCWlmIChy ZWJ1aWxkKSB7DQo+ID4gPiAtCQltbHg1X21yX3JlYnVpbGRfY2FjaGUoJnNoLT5zaGFyZV9jYWNo ZSk7DQo+ID4gPiArCQkrK3NoLT5zaGFyZV9jYWNoZS5kZXZfZ2VuOw0KPiA+ID4gKwkJREVCVUco ImJyb2FkY2FzdGluZyBsb2NhbCBjYWNoZSBmbHVzaCwgZ2VuPSVkIiwNCj4gPiA+ICsJCQlzaC0+ c2hhcmVfY2FjaGUuZGV2X2dlbik7DQo+ID4gPiArDQo+ID4gPiAgCQkvKg0KPiA+ID4gIAkJICog Rmx1c2ggbG9jYWwgY2FjaGVzIGJ5IHByb3BhZ2F0aW5nIGludmFsaWRhdGlvbiBhY3Jvc3MgY29y ZXMuDQo+ID4gPiAtCQkgKiBydGVfc21wX3dtYigpIGlzIGVub3VnaCB0byBzeW5jaHJvbml6ZSB0 aGlzIGV2ZW50LiBJZg0KPiA+ID4gb25lIG9mDQo+ID4gPiAtCQkgKiBmcmVlZCBtZW1zZWdzIGlz IHNlZW4gYnkgb3RoZXIgY29yZSwgdGhhdCBtZWFucyB0aGUNCj4gPiA+IG1lbXNlZw0KPiA+ID4g LQkJICogaGFzIGJlZW4gYWxsb2NhdGVkIGJ5IGFsbG9jYXRvciwgd2hpY2ggd2lsbCBjb21lIGFm dGVyIHRoaXMNCj4gPiA+IC0JCSAqIGZyZWUgY2FsbC4gVGhlcmVmb3JlLCB0aGlzIHN0b3JlIGlu c3RydWN0aW9uIChpbmNyZW1lbnRpbmcNCj4gPiA+IC0JCSAqIGdlbmVyYXRpb24gYmVsb3cpIHdp bGwgYmUgZ3VhcmFudGVlZCB0byBiZSBzZWVuIGJ5IG90aGVyDQo+ID4gPiBjb3JlDQo+ID4gPiAt CQkgKiBiZWZvcmUgdGhlIGNvcmUgc2VlcyB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeS4NCj4g PiA+ICsJCSAqIHJ0ZV9zbXBfd21iKCkgaXMgdG8ga2VlcCB0aGUgb3JkZXIgdGhhdCBkZXZfZ2Vu DQo+ID4gPiB1cGRhdGVkIGJlZm9yZQ0KPiA+ID4gKwkJICogcmVidWlsZGluZyBnbG9iYWwgY2Fj aGUuIFRoZXJlZm9yZSwgb3RoZXIgY29yZSBjYW4gZmx1c2gNCj4gPiA+IHRoZWlyDQo+ID4gPiAr CQkgKiBsb2NhbCBjYWNoZSBvbiB0aW1lLg0KPiA+ID4gIAkJICovDQo+ID4gPiAtCQkrK3NoLT5z aGFyZV9jYWNoZS5kZXZfZ2VuOw0KPiA+ID4gLQkJREVCVUcoImJyb2FkY2FzdGluZyBsb2NhbCBj YWNoZSBmbHVzaCwgZ2VuPSVkIiwNCj4gPiA+IC0JCSAgICAgIHNoLT5zaGFyZV9jYWNoZS5kZXZf Z2VuKTsNCj4gPiA+ICAJCXJ0ZV9zbXBfd21iKCk7DQo+ID4gPiArCQltbHg1X21yX3JlYnVpbGRf Y2FjaGUoJnNoLT5zaGFyZV9jYWNoZSk7DQo+ID4gPiAgCX0NCj4gPiA+ICAJcnRlX3J3bG9ja193 cml0ZV91bmxvY2soJnNoLT5zaGFyZV9jYWNoZS5yd2xvY2spOw0KPiA+ID4gIH0NCj4gPiA+IEBA IC00MDcsMjAgKzQwNSwxOSBAQCBtbHg1X2RtYV91bm1hcChzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UN Cj4gKnBkZXYsDQo+ID4gdm9pZA0KPiA+ID4gKmFkZHIsDQo+ID4gPiAgCW1seDVfbXJfZnJlZSht ciwgc2gtPnNoYXJlX2NhY2hlLmRlcmVnX21yX2NiKTsNCj4gPiA+ICAJREVCVUcoInBvcnQgJXUg cmVtb3ZlIE1SKCVwKSBmcm9tIGxpc3QiLCBkZXYtPmRhdGEtPnBvcnRfaWQsDQo+ID4gPiAgCSAg ICAgICh2b2lkICopbXIpOw0KPiA+ID4gLQltbHg1X21yX3JlYnVpbGRfY2FjaGUoJnNoLT5zaGFy ZV9jYWNoZSk7DQo+ID4gPiArDQo+ID4gPiArCSsrc2gtPnNoYXJlX2NhY2hlLmRldl9nZW47DQo+ ID4gPiArCURFQlVHKCJicm9hZGNhc3RpbmcgbG9jYWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ ID4gPiArCQlzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbik7DQo+ID4gPiArDQo+ID4gPiAgCS8qDQo+ ID4gPiAgCSAqIEZsdXNoIGxvY2FsIGNhY2hlcyBieSBwcm9wYWdhdGluZyBpbnZhbGlkYXRpb24g YWNyb3NzIGNvcmVzLg0KPiA+ID4gLQkgKiBydGVfc21wX3dtYigpIGlzIGVub3VnaCB0byBzeW5j aHJvbml6ZSB0aGlzIGV2ZW50LiBJZiBvbmUgb2YNCj4gPiA+IC0JICogZnJlZWQgbWVtc2VncyBp cyBzZWVuIGJ5IG90aGVyIGNvcmUsIHRoYXQgbWVhbnMgdGhlIG1lbXNlZw0KPiA+ID4gLQkgKiBo YXMgYmVlbiBhbGxvY2F0ZWQgYnkgYWxsb2NhdG9yLCB3aGljaCB3aWxsIGNvbWUgYWZ0ZXIgdGhp cw0KPiA+ID4gLQkgKiBmcmVlIGNhbGwuIFRoZXJlZm9yZSwgdGhpcyBzdG9yZSBpbnN0cnVjdGlv biAoaW5jcmVtZW50aW5nDQo+ID4gPiAtCSAqIGdlbmVyYXRpb24gYmVsb3cpIHdpbGwgYmUgZ3Vh cmFudGVlZCB0byBiZSBzZWVuIGJ5IG90aGVyIGNvcmUNCj4gPiA+IC0JICogYmVmb3JlIHRoZSBj b3JlIHNlZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkuDQo+ID4gPiArCSAqIHJ0ZV9zbXBf d21iKCkgaXMgdG8ga2VlcCB0aGUgb3JkZXIgdGhhdCBkZXZfZ2VuIHVwZGF0ZWQNCj4gPiA+IGJl Zm9yZQ0KPiA+ID4gKwkgKiByZWJ1aWxkaW5nIGdsb2JhbCBjYWNoZS4gVGhlcmVmb3JlLCBvdGhl ciBjb3JlIGNhbiBmbHVzaCB0aGVpcg0KPiA+ID4gKwkgKiBsb2NhbCBjYWNoZSBvbiB0aW1lLg0K PiA+ID4gIAkgKi8NCj4gPiA+IC0JKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+IC0J REVCVUcoImJyb2FkY2FzdGluZyBsb2NhbCBjYWNoZSBmbHVzaCwgZ2VuPSVkIiwNCj4gPiA+IC0J ICAgICAgc2gtPnNoYXJlX2NhY2hlLmRldl9nZW4pOw0KPiA+ID4gIAlydGVfc21wX3dtYigpOw0K PiA+ID4gKwltbHg1X21yX3JlYnVpbGRfY2FjaGUoJnNoLT5zaGFyZV9jYWNoZSk7DQo+ID4gPiAg CXJ0ZV9yd2xvY2tfcmVhZF91bmxvY2soJnNoLT5zaGFyZV9jYWNoZS5yd2xvY2spOw0KPiA+ID4g IAlyZXR1cm4gMDsNCj4gPiA+ICB9DQo+ID4gPiAtLQ0KPiA+ID4gMi4yNS4xDQoNCg==