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 B5E3441E29; Fri, 10 Mar 2023 07:07:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A436140A81; Fri, 10 Mar 2023 07:07:35 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2131.outbound.protection.outlook.com [40.107.237.131]) by mails.dpdk.org (Postfix) with ESMTP id 4EBB840150 for ; Fri, 10 Mar 2023 07:07:34 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MVDyKkn2qG9NCv9lsd5k+hwx0jOnsEImZ1KHPfUfCK3V/ZlocHTcAjDEPwEhckhX3iI/+u7KC/n8wRmOn5tVU0w890g2dubH3FNJfa38UwTy+T9cC1y4WJZEYbA2b0D9+4plh0N5Uj8M0vlpQ8Fz/8XRiHG3lQPSA2SCwMq3JeV3fchBloFKxQihQePqSOiz7mwqWuexm1Rn9ED5gGa2BXdOFv6HpUeaczJ6XK/W6lFTBQ6xHq7B5NWbz9H47/dvaZfftogmDRFB9/eqxNCla2ZaNcX0Rp7T6UmsnURtRbdoqQ1dXs2eyyQkBHEfBaGlTT4U3WOAtmpo4pg+H71w/g== 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=aImRQyleLskacM3/SQAf5+NTkHvHRr/UHxioZ36mB94=; b=FfO0YXywGLk/zGAVtX0roSDFpUyrXf+YYeF9Hnrp94L0pneugtvQWIIJDXJ+NFNUyUq7kOEOyry2Sz1ztIdA20arydJu/v+sIaRaMjOPzO8yw1HxQJ/rjBjUCv1neyxVFqsdOVO4Hu65zY4kCpnrTrON5mPDQIW51X35PFlzd/WYcCutbYkHMK+2CAvK4jEpCL+caQG187z0fNoemaHlcff7vOQLYSL0Xi3gmxpjVBAaFgCBRrsS/OfBv3UCd5I5NdBXb/bc9X2WExRxzq9oUSGw93h/7mMz3WKZEcRhabqloQG9EPwAOa6p7FFaP/F8jX2Uptv8zdalC7hEa3RPhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aImRQyleLskacM3/SQAf5+NTkHvHRr/UHxioZ36mB94=; b=fPo47jTeZt51/HAVT+U5ooWemiBQRBeRdtFAyDF4kYlF6F+qBEh2o/LT7Ih35TWFV0J8iGzpMw/HhQ4PgFsm8l57VQiWSNED1i8m8tpFNIrWDkfX5j8JTI1ttj+93ISVgHxC7GpHxll6eVFgcJIwqHE621VTh25jwN+JMAyU81I= Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by DM8PR13MB5159.namprd13.prod.outlook.com (2603:10b6:8:3::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Fri, 10 Mar 2023 06:07:32 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b19d:4343:f34f:a817]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b19d:4343:f34f:a817%3]) with mapi id 15.20.6178.017; Fri, 10 Mar 2023 06:07:32 +0000 From: Chaoyong He To: Ferruh Yigit , "dev@dpdk.org" CC: oss-drivers , Niklas Soderlund , James Hershaw Subject: RE: [PATCH] net/nfp: write link speed to control BAR Thread-Topic: [PATCH] net/nfp: write link speed to control BAR Thread-Index: AQHZRb4KNfBovSCwTk2gY+hjeF9yZK7cv02AgBCn5/CAAf2iAIAEO/Rw Date: Fri, 10 Mar 2023 06:07:32 +0000 Message-ID: References: <20230221062955.34210-1-chaoyong.he@corigine.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR13MB5545:EE_|DM8PR13MB5159:EE_ x-ms-office365-filtering-correlation-id: f0ad3592-80ff-407d-7a03-08db212dbc84 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pJghVXDXlt3npt5Yp4MtMb/yEGfyiYXuqAfohy3LXrAd7epGOxo+lFL0geU/bwYqNhh9JlJMjJLkTsiOMvwchCS5HZxWY67mXtMRARUDLOYsibV0wvTQTd1B6/CxR8kyWBoi2dj/Fbtv/GJ4C5X/4eMWywKav/zDTt2SWPDb9FptWtTt+J6bSb/reAuycO48QXLwkd4+ou4JRjK4uS0Lpnqmx5Jb3Yu6++CCkfabUiKrujVDjjRLG7S3XaYDI6OFY+0Q6GDUyyZcOpHVpEZ/m0/lL2ccgVpd2QoKrs8NR/mphSUGfG7cQkL8pnWSHOyIkib5TgZ1TZkDFYJC5/N0ZZ6YGMkNmgvI9+rL+roi9fAYShxz5Pmc6PiGzkeb0DyIyhOt1NjHHU+WlkITfkvhRCYuQeO5SkVKqtaQyfJl1a7Je7akC2HFtm2aYugJHLpKMsQcvSR4fz3MGPecUcf1zhF16KxfO2vCEnZjpziILiktPsYi7thJIr1nwDKgY2ycMsHmLsLL7OGfD6ty/LYjTpr8iimObkmJFYhsymEWqa20RjVBjtukYkuFUg36d5dysp+IA6wnOYs5RddwVFSqa1qC4Wezr39/Db6gLjQV0lGcafYfsK+JjM3yPHMEaD/NPLPw2/aMBcH4aXqboMiA5aTfz70Foj5A9rMgFyGnpoOosErPxtxukXpT+VMfTrB/BaSFUzG2meHH8pGn5LdK1w== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(346002)(136003)(396003)(376002)(39840400004)(366004)(451199018)(2906002)(122000001)(83380400001)(5660300002)(44832011)(33656002)(52536014)(55016003)(66476007)(66556008)(66946007)(76116006)(41300700001)(64756008)(8936002)(66446008)(4326008)(478600001)(38070700005)(316002)(8676002)(38100700002)(54906003)(86362001)(110136005)(7696005)(66574015)(186003)(9686003)(53546011)(26005)(107886003)(6506007)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K2Z1KzFRYzA3R1c5c1hFVjZIZnJBRmYxTlMwZUxSQyt6b2VMMmIvQzJPTGpx?= =?utf-8?B?ckdyalhvcFp3R1FQSlEvVzg0alFDVWhpcml0TFFOMmt2OVp1Z0RtMVhmMkM1?= =?utf-8?B?d0ora3hFS1dYdUxUeklsUEdhNkQ4K2tsK0VkbFhESE5qK0dmZzhZYXlkaTdk?= =?utf-8?B?ZVJwcmdnWGVlUWFzSURWY3ZFS3RyUVg2b1dKNklKeUdSOWpWVUU2Z0VBZmY2?= =?utf-8?B?N2xWNnhGN0tXdVp3bkhwUVVRR1FDSytMb2lrTWNvVFVxOTl3RElyRlNzUzNV?= =?utf-8?B?cDNFUGxGZ2pqTE9aZEp2MkpmU1JpbkxIU2JsMGcyZk5VV0NGM0dONUFvNlpw?= =?utf-8?B?bzBvdWEvSWRVcWVtV2krL2J5eUFmRWNCM1hrSWJZaUFWZjM3ckRYVzFTalJT?= =?utf-8?B?Snk2TXJOaXQ2K2YwL1A2ZXllL3NLVXhiU1doTGlkTHl4K2w4WW9aOGF1YWs2?= =?utf-8?B?R2l6NmozZktVa2RZRzkrUlUycnhmdk5QOEJLck9EL2QrVmVWbEJKVXVibnN2?= =?utf-8?B?V3Z6VDU1bjZFNno5MjlkZUFxeGZlRWZpQ0pOYnZYT1poNkdiT3p6TnhSZkRE?= =?utf-8?B?Q0ZrUDNyUUFBUXo4bk1JaEJWaDN1YnphUTJuZTh1VERla2VvUHRQTHpXVDdS?= =?utf-8?B?bzlrbzF1NjJnMHEwWlpudnZ1S1hHSEs1TURZeVc4cTY5bXFTSFB1YnJxUlQr?= =?utf-8?B?clpvR21VdUlRWnFsOS9XRFhUWXFrTmVQRmZ6c2FXV1cvSmRjcmpJZUkvREVX?= =?utf-8?B?VHZiNWIwQWFOVnRTNGVQMzkzQW5LdGx2OHluUlRSbmFxU2VvMmRRYThDMGky?= =?utf-8?B?NEZRc0FIaTR2bGY0dm5XZFE0cWp6ZDhwcWNhTzRSRHkxTzlXK3c2dEVSM1Vu?= =?utf-8?B?SHB1ekl0YjlNS0ZwdHlCL3Nvd3Y1NzBYVmVIVHV2bEdaQk5HT3RMc2xIMkdM?= =?utf-8?B?bXRZelNjbG1sbVBLVnl4dDAyWkhmK2FXa3FXTUxXYWVqc1k1LzYvaHJ0NGI1?= =?utf-8?B?UVNtTzdmV0x4bjhtSWdoYnhiaGwvTSs0NWlGZWNMaExOVkt2OURSQWJQRjJY?= =?utf-8?B?MmpPcjdDZUQ4ZzlpTnFPOUE4alBhQWpLQzdQY0xyTW5pVFlFaG9Cb3UzWWhm?= =?utf-8?B?R1BUWFM5REFITGxUbDZtckVLcnlkYlJNM2k1UEFNQXljZURER2VsLzdZZ29L?= =?utf-8?B?QXU3ZkJJZGlacFd4Qk14RlNhVkpZUHg2dVQvb2t5bmxmM0pyNnFqNTFmVDZ5?= =?utf-8?B?bkFrU3l4ZFVjN20xL2JiMW5IdmJzL2J6cytBU2wrUUNLQS9CWno1WlV5bUFy?= =?utf-8?B?bnF3ZUJ1bExQRHNpUkxOSTNPd29rSndja0FHNXRHR29tcFJDNk9rQmlsUDAy?= =?utf-8?B?dTRReERLRmRPUFhzdTRvcHVMcnlJNUdiU3FEcXN4QUtxT3ZXK1RTTGFSSzh1?= =?utf-8?B?alZZUVl1MlBhQm1ENVIxVmhXa2o3cVFRVU9jOGRlRCt0Tkp4ZDhEeC9ELzBD?= =?utf-8?B?dlllYVRGcGQrWlp1QytLbVhnamlkM0c4ZzQ0TGcxZTNzWWZCK1Z4RUFPUXFp?= =?utf-8?B?UFZnOVcvYkgxZGhBc3ZyUWZJNmZPNkliMDRMeTBqSUpkNW84NUxwVGhzelFZ?= =?utf-8?B?TUF0SXo4M3JWVzZnMkpiZmd6anN4V05SaHZpYUtEV3AyUmoyUHRvRDcxVE9Z?= =?utf-8?B?T2FCVFdPSVZtYUphb2xNYUo2THg3NllzcGhsVml6RWRjWklGV2tXaUFkeFVZ?= =?utf-8?B?d1dodEltZ1dKVmxZOStqb3ZKS2grU1RHOXg2T1lSQTdUZGEvWFR5cEF4eGg3?= =?utf-8?B?WnhVYzhDamh0VC95QkxWYjFBc251M0xodWJVTGxjOXZQQ3YvYXc2UTYxOU1h?= =?utf-8?B?T201NWprdnhnQkN6dnoxemEwRVB2MHRZK3BtU1E5VzFHUmpNUHFwcE11cFk2?= =?utf-8?B?bDNlTFNZdFpJak5kYW15NHdzdExYV09GemFCU09haGVCV01hQXBqMmNzZ0J3?= =?utf-8?B?bUdQR0E2aTRZR3Nva2lnTGFiSzkzeDJISzZLWXdrNzJRbnZSai9mTDA0d3A5?= =?utf-8?B?UEovK2NTWHRPY0sxeTV6WVVEZ2x3ekpjYXRnZEhRTUhGaVlQODkzYkdOVmhF?= =?utf-8?Q?BcximlohhEn2lgQy1Th+y5GGC?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0ad3592-80ff-407d-7a03-08db212dbc84 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Mar 2023 06:07:32.2788 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GkbPM5fZBndNZn6CvaKiXsA0iVKwlWP/gZ/MXW5FeN2M7QwNQajjHCyWEYamgK0kQqKhagF8rfn9C39KDpw3uZ/qdq1SJmYNuzSnZ0TVnlU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR13MB5159 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 PiBPbiAzLzYvMjAyMyA3OjA2IEFNLCBDaGFveW9uZyBIZSB3cm90ZToNCj4gPj4gT24gMi8yMS8y MDIzIDY6MjkgQU0sIENoYW95b25nIEhlIHdyb3RlOg0KPiA+Pj4gRnJvbTogSmFtZXMgSGVyc2hh dyA8amFtZXMuaGVyc2hhd0Bjb3JpZ2luZS5jb20+DQo+ID4+Pg0KPiA+Pj4gRHVlIHRvIGNoYW5n ZXMgaW4gdGhlIGZpcm13YXJlIGZvciBORlBzLCBmaXJtd2FyZSB3aWxsIG5vIGxvbmdlcg0KPiA+ Pj4gd3JpdGUgdGhlIGxpbmsgc3BlZWQgb2YgYSBwb3J0IHRvIHRoZSBjb250cm9sIEJBUi4gSW4g bGluZSB3aXRoIHRoZQ0KPiA+Pj4gYmVoYXZpb3VyIG9mIHRoZSBrZXJuZWwgTkZQIGRyaXZlciwg dGhpcyBpcyBub3cgaGFuZGxlZCBieSB0aGUgUE1EDQo+ID4+PiBieSByZWFkaW5nIHRoZSB2YWx1 ZSBwcm92aWRlZCBieSB0aGUgTlNQIGluIHRoZSBuZnBfZXRoX3RhYmxlIHN0cnVjdA0KPiA+Pj4g d2l0aGluIHRoZSBwZl9kZXYgb2YgdGhlIHBvcnQgYW5kIHN1YnNlcXVlbnRseSB3cml0aW5nIHRo aXMgdmFsdWUgdG8NCj4gPj4+IHRoZQ0KPiA+PiBjb250cm9sIEJBUi4NCj4gPj4+DQo+ID4+DQo+ ID4+IERvbid0IHlvdSBuZWVkIHNvbWUga2luZCBvZiBGVyB2ZXJzaW9uIGNoZWNrIHRvIGZpZ3Vy ZSBvdXQgaWYNCj4gPj4gJ05GUF9ORVRfQ0ZHX1NUU19OU1BfTElOS19SQVRFJyBuZWVkcyB0byBi ZSB1cGRhdGVkIGJ5IGRyaXZlciBvcg0KPiBub3Q/DQo+ID4+DQo+ID4+IEhvdyBkbyB5b3UgbWFu YWdlIGRyaXZlciA8LT4gRlcgZGVwZW5kZW5jeT8NCj4gPj4NCj4gPj4NCj4gPj4+IFNpZ25lZC1v ZmYtYnk6IEphbWVzIEhlcnNoYXcgPGphbWVzLmhlcnNoYXdAY29yaWdpbmUuY29tPg0KPiA+Pj4g UmV2aWV3ZWQtYnk6IE5pa2xhcyBTw7ZkZXJsdW5kIDxuaWtsYXMuc29kZXJsdW5kQGNvcmlnaW5l LmNvbT4NCj4gPj4+IFJldmlld2VkLWJ5OiBDaGFveW9uZyBIZSA8Y2hhb3lvbmcuaGVAY29yaWdp bmUuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiAgZHJpdmVycy9uZXQvbmZwL25mcF9jb21tb24uYyB8 IDkwICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tDQo+IC0tLS0NCj4gPj4gLS0tDQo+ID4+ PiAgZHJpdmVycy9uZXQvbmZwL25mcF9jdHJsLmggICB8ICA5ICsrKysNCj4gPj4+ICAyIGZpbGVz IGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZnAvbmZwX2NvbW1vbi5jDQo+ID4+PiBiL2RyaXZl cnMvbmV0L25mcC9uZnBfY29tbW9uLmMgaW5kZXggNTkyMmJmZWE4ZS4uMDA2ZWE1ODAwOA0KPiAx MDA2NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvbmV0L25mcC9uZnBfY29tbW9uLmMNCj4gPj4+ICsr KyBiL2RyaXZlcnMvbmV0L25mcC9uZnBfY29tbW9uLmMNCj4gPj4+IEBAIC01Miw2ICs1Miw1MyBA QA0KPiA+Pj4gICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4NCj4gPj4+ICAjaW5jbHVkZSA8ZXJybm8u aD4NCj4gPj4+DQo+ID4+PiArc3RhdGljIGNvbnN0IHVpbnQzMl90IG5mcF9uZXRfbGlua19zcGVl ZF9uZnAycnRlW10gPSB7DQo+ID4+PiArCVtORlBfTkVUX0NGR19TVFNfTElOS19SQVRFX1VOU1VQ UE9SVEVEXSA9DQo+ID4+IFJURV9FVEhfU1BFRURfTlVNX05PTkUsDQo+ID4+PiArCVtORlBfTkVU X0NGR19TVFNfTElOS19SQVRFX1VOS05PV05dICAgICA9DQo+ID4+IFJURV9FVEhfU1BFRURfTlVN X05PTkUsDQo+ID4+PiArCVtORlBfTkVUX0NGR19TVFNfTElOS19SQVRFXzFHXSAgICAgICAgICA9 DQo+ID4+IFJURV9FVEhfU1BFRURfTlVNXzFHLA0KPiA+Pj4gKwlbTkZQX05FVF9DRkdfU1RTX0xJ TktfUkFURV8xMEddICAgICAgICAgPQ0KPiA+PiBSVEVfRVRIX1NQRUVEX05VTV8xMEcsDQo+ID4+ PiArCVtORlBfTkVUX0NGR19TVFNfTElOS19SQVRFXzI1R10gICAgICAgICA9DQo+ID4+IFJURV9F VEhfU1BFRURfTlVNXzI1RywNCj4gPj4+ICsJW05GUF9ORVRfQ0ZHX1NUU19MSU5LX1JBVEVfNDBH XSAgICAgICAgID0NCj4gPj4gUlRFX0VUSF9TUEVFRF9OVU1fNDBHLA0KPiA+Pj4gKwlbTkZQX05F VF9DRkdfU1RTX0xJTktfUkFURV81MEddICAgICAgICAgPQ0KPiA+PiBSVEVfRVRIX1NQRUVEX05V TV81MEcsDQo+ID4+PiArCVtORlBfTkVUX0NGR19TVFNfTElOS19SQVRFXzEwMEddICAgICAgICA9 DQo+ID4+IFJURV9FVEhfU1BFRURfTlVNXzEwMEcsDQo+ID4+PiArfTsNCj4gPj4+ICsNCj4gPj4+ ICtzdGF0aWMgdWludDMyX3QNCj4gPj4+ICtuZnBfbmV0X2xpbmtfc3BlZWRfcnRlMm5mcCh1aW50 MzJfdCBzcGVlZCkgew0KPiA+Pj4gKwl1aW50MzJfdCBpOw0KPiA+Pj4gKw0KPiA+Pj4gKwlmb3Ig KGkgPSAwOyBpIDwgUlRFX0RJTShuZnBfbmV0X2xpbmtfc3BlZWRfbmZwMnJ0ZSk7IGkrKykgew0K PiA+Pj4gKwkJaWYgKHNwZWVkID09IG5mcF9uZXRfbGlua19zcGVlZF9uZnAycnRlW2ldKQ0KPiA+ Pj4gKwkJCXJldHVybiBpOw0KPiA+Pj4gKwl9DQo+ID4+PiArDQo+ID4+PiArCXJldHVybiBORlBf TkVUX0NGR19TVFNfTElOS19SQVRFX1VOS05PV047DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4g K3N0YXRpYyB2b2lkDQo+ID4+PiArbmZwX25ldF9ub3RpZnlfcG9ydF9zcGVlZChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldikgew0KPiA+Pj4gKwlzdHJ1Y3QgbmZwX25ldF9odyAqaHc7DQo+ID4+PiAr CXN0cnVjdCBuZnBfZXRoX3RhYmxlICpldGhfdGFibGU7DQo+ID4+PiArCXVpbnQzMl90IG5uX2xp bmtfc3RhdHVzOw0KPiA+Pj4gKw0KPiA+Pj4gKwlodyA9IE5GUF9ORVRfREVWX1BSSVZBVEVfVE9f SFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ID4+PiArCWV0aF90YWJsZSA9IGh3LT5wZl9k ZXYtPm5mcF9ldGhfdGFibGU7DQo+ID4+PiArDQo+ID4+PiArCW5uX2xpbmtfc3RhdHVzID0gbm5f Y2ZnX3JlYWRsKGh3LCBORlBfTkVUX0NGR19TVFMpOw0KPiA+Pj4gKwlubl9saW5rX3N0YXR1cyA9 IChubl9saW5rX3N0YXR1cyA+Pg0KPiA+PiBORlBfTkVUX0NGR19TVFNfTElOS19SQVRFX1NISUZU KSAmDQo+ID4+PiArCQkJTkZQX05FVF9DRkdfU1RTX0xJTktfUkFURV9NQVNLOw0KPiA+Pj4gKw0K PiA+Pj4gKwlpZiAoKG5uX2xpbmtfc3RhdHVzICYgTkZQX05FVF9DRkdfU1RTX0xJTkspID09IDAp IHsNCj4gPj4+ICsJCW5uX2NmZ193cml0ZWwoaHcsIE5GUF9ORVRfQ0ZHX1NUU19OU1BfTElOS19S QVRFLA0KPiA+PiBORlBfTkVUX0NGR19TVFNfTElOS19SQVRFX1VOS05PV04pOw0KPiA+Pj4gKwkJ cmV0dXJuOw0KPiA+Pj4gKwl9DQo+ID4+PiArDQo+ID4+PiArCW5uX2NmZ193cml0ZWwoaHcsIE5G UF9ORVRfQ0ZHX1NUU19OU1BfTElOS19SQVRFLA0KPiA+Pj4gKwkJICAgICAgbmZwX25ldF9saW5r X3NwZWVkX3J0ZTJuZnAoZXRoX3RhYmxlLT5wb3J0c1tody0NCj4gPj4+IGlkeF0uc3BlZWQpKTsN Cj4gPj4NCj4gPj4gUEYgZHJpdmVyIHdyaXRlcyBsaW5rIHNwZWVkIHRvICdORlBfTkVUX0NGR19T VFNfTlNQX0xJTktfUkFURScNCj4gPj4gcmVnaXN0ZXIsIGJ1dCAnbmZwX25ldF9saW5rX3VwZGF0 ZSgpJyBzdGlsbCBnZXRzIGl0IGZyb20gJ05GUF9ORVRfQ0ZHX1NUUycNCj4gPj4gcmVnaXN0ZXIg KHZpYSAnbmZwX25ldF9saW5rX3NwZWVkX25mcDJydGVbbm5fbGlua19zdGF0dXNdJykuDQo+ID4+ DQo+ID4+IFNob3VsZG4ndCAnbmZwX25ldF9saW5rX3VwZGF0ZSgpJyBuZWVkcyB0byBiZSB1cGRh dGVkIHRvIHJlYWQgc3BlZWQNCj4gPj4gZnJvbSAnTkZQX05FVF9DRkdfU1RTX05TUF9MSU5LX1JB VEUnIHJlZ2lzdGVyPw0KPiA+DQo+ID4gU29ycnkgZm9yIHRoZSBsYXRlIHJlc3BvbnNlLCB3ZSBz cGVuZCBhIGxvdCBvZiB0aW1lIHRvIGNoZWNrIGFuZCBkaXNjdXNzLg0KPiA+DQo+ID4gRm9yIG9s ZGVyIGZpcm13YXJlLCBhIGZ1bGwgd29yZCBpcyBhbGxvY2F0ZWQgKE5GUF9ORVRfQ0ZHX1NUUykg dG8gcmVwb3J0DQo+IGxpbmsgc3RhdHVzIGFuZCBwb3J0IHNwZWVkIHRvIHRoZSBkcml2ZXIuDQo+ ID4gSG93ZXZlciwgaW4gdGhlIGludGVyZXN0cyBvZiBrZWVwaW5nIEZXIGZpbGVzIHBvcnQtc3Bl ZWQgYWdub3N0aWMgaW4NCj4gPiB0aGUgZnV0dXJlLCB0aGUgdXBwZXIgMTYgYml0cyBhcmUgbm8g bG9uZ2VyIHdyaXR0ZW4gdG8gYnkgRlcsIHNvIHdlIHdyaXRlDQo+IHRoZSBzcGVlZCB0byB0aGF0 IGFkZHJlc3MgKE5GUF9ORVRfQ0ZHX1NUU19MSU5LX1JBVEUpLg0KPiA+IFRoZSBsb3dlciAxNiBi aXRzIChsaW5rIHN0YXR1cykgYXJlIHN0aWxsIGhhbmRsZWQgYnkgZmlybXdhcmUuDQo+ID4NCj4g DQo+IEJ1dCAnbmZwX25ldF9saW5rX3VwZGF0ZSgpJyBzdGlsbCBnZXRzIHRoZSBsaW5rcyBzcGVl ZCBmcm9tIGxvd2VyIDE2IGJpdHMuDQo+IFByb2JhYmx5IEkgYW0gbWlzc2luZyBzb21ldGhpbmcg YnV0IHBsZWFzZSBsZXQgbWUgdW5kZXJzdGFuZC4NCj4gDQo+IA0KPiBsaW5rX3VwZGF0ZSgpICAg ICAgICAgICAgICBub3RpZnlfcG9ydF9zcGVlZCgpDQo+ICByZWFkKHNwZWVkKSAgICAgICAgICAg ICAgICB3cml0ZWwoc3BlZWQpDQo+ICAg4payICAgICAgICAgICAgICAgICAgICAgICAgICDilIIN Cj4gICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgg0KPiAgIOKUgiAgICAgICAgICAg ICAgICAgICAgICAgICAg4pSCDQo+ICDilIzilLTilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilrzilIDi lIANCj4g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSQDQo+ICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAg ICAgICAgICAgICAgICAgICAgICAgICDilIINCj4gIOKUgiAgICAgICAgICAgICAgICAgICAgICAg ICAg4pSCICAgIExJTktfUkFURSAgICAgICAgICAgIOKUgg0KPiAg4pSU4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pS04pSA4pSA4pSADQo+IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmA0KPiAweDM0ICAgICAgICAgICAgICAg ICAgICAgICAweDM2DQo+ICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAg4pSCDQo+ICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIAgQ0ZHX1NUUyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAN Cj4g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY DQo+IA0KPiANCj4gT3IgaXMgaXQgc29tZXRoaW5nIGxpa2Ugd2hlbiB5b3UgdXBkYXRlIHVwcGVy IGhhbGYgb2YgdGhlIHJlZ2lzdGVyLCBGVyByZWFkcw0KPiBpdCBhbmQgcmVmbGVjdHMgdGhlIHZh bHVlIHRvIHRoZSBsb3dlciBoYWxmIG9mIHRoZSByZWdpc3Rlcj8NCj4gDQo+IA0KPiBBbmQgc2lu Y2UgJ05GUF9ORVRfQ0ZHX1NUU19OU1BfTElOS19SQVRFJyBpcyAxNiBiaXRzLCBpcyBpdCBjb3Jy ZWN0IHRvIHVzZQ0KPiAnbm5fY2ZnX3dyaXRlbCgpJyB0byB1cGRhdGUgaXQ/DQo+IA0KDQpPaCwg eWVzLCB0aGFua3MgZm9yIHlvdXIgY2FyZWZ1bCByZXZpZXcsIGhlcmUgd2UgZG8gbWFrZSBhIG1p c3Rha2UsIHNvcnJ5IGZvciB0aGF0Lg0KV2UnbGwgc2VuZCBhIHYyIHBhdGNoIHdpdGggdGhlIHJp Z2h0IDE2Yml0cyByZWFkL3dyaXRlIGFwaSBzb29uLCB0aGFua3MgYWdhaW4uDQoNCj4gPiBUaGVz ZSBjaGFuZ2VzIGFyZSBjb21wbGV0ZWx5IGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGggb2xkZXIg ZmlybXdhcmUNCj4gdmVyc2lvbnMsIHNvIG5vIEZXIHZlcnNpb24gY2hlY2sgaXMgcmVxdWlyZWQu DQo+IA0KPiBhY2sNCg==