From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50075.outbound.protection.outlook.com [40.107.5.75]) by dpdk.org (Postfix) with ESMTP id BE53A1B03C for ; Tue, 23 Jan 2018 10:50:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=0N0sFSwBsfumZPyWtUK2MUej9F7+e1gpJb38HCaFLRU=; b=sc7u3Ze99+YfepIvUuOtXlrgsRscvHoEsgKZm6ZHCxJSZmSd3ZukCWMuWvAqgscqoh0G2DAb9hrsfMcBCh0wsn6V6/Wy3IoZBqLuFelB/Yu95eGIMapWLy+x1Kdnbugz43LdTNpcoWYq3gIfvx9BaY6ioLymtDvEFvRRIhBVA6g= Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by VI1PR05MB3456.eurprd05.prod.outlook.com (10.170.239.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.428.17; Tue, 23 Jan 2018 09:50:43 +0000 Received: from VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::34c1:e91f:7ec2:161]) by VI1PR05MB1678.eurprd05.prod.outlook.com ([fe80::34c1:e91f:7ec2:161%14]) with mapi id 15.20.0428.023; Tue, 23 Jan 2018 09:50:43 +0000 From: "Xueming(Steven) Li" To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= CC: Shahaf Shuler , "dev@dpdk.org" Thread-Topic: [PATCH] net/mlx5: remmap UAR address for multiple process Thread-Index: AQHTkTeZ8R59QK90P0Kjlx/RCDq2uaN//w6AgAE270A= Date: Tue, 23 Jan 2018 09:50:42 +0000 Message-ID: References: <20180119150854.89828-1-xuemingl@mellanox.com> <20180122145321.jpyepyvjjlktillp@laranjeiro-vm.dev.6wind.com> In-Reply-To: <20180122145321.jpyepyvjjlktillp@laranjeiro-vm.dev.6wind.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=xuemingl@mellanox.com; x-originating-ip: [114.83.161.171] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR05MB3456; 7:nF7YgdEzkJvw1/70nuYlW+dWRuZzP4vte+tuiETVBQfLfh6zLUlYWcoSFRi0fL2lXBG1c4CSUmVLET/pkO3s+NZyUOSMuLKsu1INbl4BpqUbAtblhqmGQfFFLP8yCTSukF9cAeXbSTJlb5z4Q4vdtzb0Bll1ipuWt471VEyemXatksJnzC8ybnGbo4iFL9yxscDEkui4TveVtmP8GFKvZ66yqmgSjVy0x2Eqx+1CYesHAePWW3J3QY0+xq9wS2AD x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: b84ac82c-9fe4-45e7-1533-08d56246c4c1 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603307)(7153060)(7193020); SRVR:VI1PR05MB3456; x-ms-traffictypediagnostic: VI1PR05MB3456: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3231023)(2400081)(944501161)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:VI1PR05MB3456; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR05MB3456; x-forefront-prvs: 05610E64EE x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39860400002)(39380400002)(346002)(366004)(189003)(199004)(13464003)(2900100001)(54906003)(105586002)(59450400001)(99286004)(316002)(6506007)(53546011)(102836004)(76176011)(478600001)(2906002)(3846002)(97736004)(14454004)(26005)(7696005)(6116002)(575784001)(86362001)(229853002)(33656002)(7736002)(8936002)(5250100002)(53936002)(66066001)(305945005)(68736007)(6916009)(6246003)(4326008)(2950100002)(5660300001)(3280700002)(25786009)(55016002)(3660700001)(106356001)(6436002)(9686003)(74316002)(81166006)(8676002)(81156014); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB3456; H:VI1PR05MB1678.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 0sgyro5B5gm4WTXrlckT5zMYoit3pvWd2dAlJc+uTuZnAxWh3CT/bJVxHsIT3wipWyhPVTxPDWz/ZQUjFzqLVA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: b84ac82c-9fe4-45e7-1533-08d56246c4c1 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2018 09:50:42.9764 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB3456 Subject: Re: [dpdk-dev] [PATCH] net/mlx5: remmap UAR address for multiple process 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: , X-List-Received-Date: Tue, 23 Jan 2018 09:50:45 -0000 SGkgTmVsaW8sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlv IExhcmFuamVpcm8gW21haWx0bzpuZWxpby5sYXJhbmplaXJvQDZ3aW5kLmNvbV0NCj4gU2VudDog TW9uZGF5LCBKYW51YXJ5IDIyLCAyMDE4IDEwOjUzIFBNDQo+IFRvOiBYdWVtaW5nKFN0ZXZlbikg TGkgPHh1ZW1pbmdsQG1lbGxhbm94LmNvbT4NCj4gQ2M6IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNA bWVsbGFub3guY29tPjsgZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIG5ldC9t bHg1OiByZW1tYXAgVUFSIGFkZHJlc3MgZm9yIG11bHRpcGxlIHByb2Nlc3MNCj4gDQo+IEhpIFh1 ZW1pbmcsDQo+IA0KPiBPbiBGcmksIEphbiAxOSwgMjAxOCBhdCAxMTowODo1NFBNICswODAwLCBY dWVtaW5nIExpIHdyb3RlOg0KPiA+IFVBUihkb29yYmVsbCkgaXMgaHcgcmVzb3VyY2VzIHRoYXQg aGF2ZSB0byBiZSBzYW1lIGFkZHJlc3MgYmV0d2Vlbg0KPiA+IHByaW1hcnkgYW5kIHNlY29uZGFy eSBwcm9jZXNzLCBmYWlsZWQgdG8gbW1hcCBVQVIgd2lsbCBtYWtlIFRYIHBhY2tldHMNCj4gPiBp bnZpc2libGUgdG8gSFcuDQo+ID4gVG9kYXksIFVBUiBhZGRyZXNzIHJldHVybmVkIGZyb20gdmVy YnMgYXBpIGlzIG1peGVkIGluIGhlYXAgYW5kIGxvYWRlZA0KPiA+IGxpYnJhcnkgYWRkcmVzcyBz cGFjZSwgcHJvbmUgdG8gYmUgb2NjdXBpZWQgaW4gc2Vjb25kYXJ5IHByb2Nlc3MuDQo+ID4gVGhp cyBwYXRjaCByZXNlcnZlcyBhIGRlZGljYXRlIFVBUiBhZGRyZXNzIHNwYWNlLCBib3RoIHByaW1h cnkgYW5kDQo+ID4gc2Vjb25kYXJ5IHByb2Nlc3MgcmUtbW1hcCBVQVIgcGFnZXMgaW50byB0aGlz IHNwYWNlLg0KPiA+IEJlbG93IGlzIGEgYnJpZWYgcGljdHVyZSBvZiBkcGRrIGFwcCBhZGRyZXNz IHNwYWNlIGFsbG9jYXRpb246DQo+ID4gCUJlZm9yZQkJCVRoaXMgcGF0Y2gNCj4gPiAJLS0tLS0t CQkJLS0tLS0tLS0tLQ0KPiA+IAlbc3RhY2tdCQkJW3N0YWNrXQ0KPiA+IAlbLnNvLCB1YXIsIGhl YXBdCVsuc28sIGhlYXBdDQo+ID4gCVsoZW1wdHkpXQkJWyhlbXB0eSldDQo+ID4gCVtodWdlcGFn ZV0JCVtodWdlcGFnZV0NCj4gPiAJWz8gb3RoZXJzXQkJWz8gb3RoZXJzXQ0KPiA+IAlbKGVtcHR5 KV0JCVsoZW1wdHkpXQ0KPiA+IAkJCQlbdWFyXQ0KPiA+IAkJCQlbKGVtcHR5KV0NCj4gPiBUbyBt aW5pbWl6ZSBjb25mbGljdHMsIFVBUiBhZGRyZXNzIHNwYWNlIGNvbWVzIGFmdGVyIGh1Z2VwYWdl IHNwYWNlDQo+ID4gd2l0aCBhbiBvZmZzZXQgdG8gc2tpcCBwb3RlbnRpYWwgdXNhZ2UgZnJvbSBv dGhlciBkcml2ZXJzLg0KPiANCj4gU2VlbXMgaXQgaXMgbm90IHRoZSBjYXNlIHdoZW4gdGhlIG1l bW9yeSBpcyBjb250aWd1b3VzLCBhY2NvcmRpbmcgdG8gd2hhdA0KPiBJIHNlZSBpbiBteSB0ZXN0 cG1kIC9wcm9jLzxwaWQ+L21hcHM6DQo+IA0KPiAgUE1EOiBtbHg1LmM6NTIzOiBtbHg1X3Vhcl9p bml0X3ByaW1hcnkoKTogUmVzZXJ2ZWQgVUFSIGFkZHJlc3Mgc3BhY2U6DQo+IDB4MHg3ZjRkYTU4 MDAwMDANCj4gDQo+IEFuZCB0aGUgZmlzdCBodWdlIHBhZ2UgaXMgYXQgYWRkcmVzcyAweDdmNGZh NTgwMDAwMCwgbmV3IFVBUiBzcGFjZSBpcw0KPiBiZWZvcmUgYW5kIG5vdCBhZnRlci4NCj4gDQo+ IFdpdGggdGhpcyBwYXRjaCBJIHN0aWxsIGhhdmUgdGhlIHNpdHVhdGlvbiBkZXNjcmliZWQgYXMg ImJlZm9yZSIuDQo+IA0KDQpZb3VyIG9ic2VydmF0aW9uIGlzIGNvcnJlY3QsIHN5c3RlbSBpcyBh bGxvY2F0aW5nIGFkZHJlc3MgaW4gYSBoaWdoLXRvLWxvdw0KbWFubmVyIGxpa2Ugc3RhY2suIFVB UiBhZGRyZXNzIHJhbmdlIDB4MHg3ZjRkYTU4MDAwMDAgLSAweDB4N2Y0ZWE1ODAwMDAwLCANCjRH QiBzaXplLCBXaXRoIGFub3RoZXIgNEcgb2Zmc2V0LCBodWdlcGFnZSByYW5nZSBzdGFydCBpcyAw eDdmNGZhNTgwMDAwMC4NCg0KPiA+IE9uY2UgVUFSIHNwYWNlIHJlc2VydmVkIHN1Y2Nlc3NmdWxs eSwgVUFSIHBhZ2VzIGFyZSByZS1tbWFwcGVkIGludG8NCj4gPiBuZXcgYXJlYSB0byBrZWVwIFVB UiBhZGRyZXNzIGFsaWduZWQgYmV0d2VlbiBwcmltYXJ5IGFuZCBzZWNvbmRhcnkNCj4gcHJvY2Vz cy4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG1lbGxhbm94 LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMgICAgICAgICB8IDEw Nw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGRyaXZl cnMvbmV0L21seDUvbWx4NS5oICAgICAgICAgfCAgIDEgKw0KPiA+ICBkcml2ZXJzL25ldC9tbHg1 L21seDVfZGVmcy5oICAgIHwgIDEwICsrKysNCj4gPiAgZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4 dHguaCAgICB8ICAgMyArLQ0KPiA+ICBkcml2ZXJzL25ldC9tbHg1L21seDVfdHJpZ2dlci5jIHwg ICA3ICsrLQ0KPiA+ICBkcml2ZXJzL25ldC9tbHg1L21seDVfdHhxLmMgICAgIHwgIDUxICsrKysr KysrKysrKystLS0tLS0NCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwg MTYgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NS9t bHg1LmMgYi9kcml2ZXJzL25ldC9tbHg1L21seDUuYyBpbmRleA0KPiA+IGZjMmQ1OWZlZS4uMTUz OWVmNjA4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NS5jDQo+ID4gKysr IGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMNCj4gPiBAQCAtMzksNiArMzksNyBAQA0KPiA+ICAj aW5jbHVkZSA8c3RkbGliLmg+DQo+ID4gICNpbmNsdWRlIDxlcnJuby5oPg0KPiA+ICAjaW5jbHVk ZSA8bmV0L2lmLmg+DQo+ID4gKyNpbmNsdWRlIDxzeXMvbW1hbi5oPg0KPiA+DQo+ID4gIC8qIFZl cmJzIGhlYWRlci4gKi8NCj4gPiAgLyogSVNPIEMgZG9lc24ndCBzdXBwb3J0IHVubmFtZWQgc3Ry dWN0cy91bmlvbnMsIGRpc2FibGluZyAtcGVkYW50aWMuDQo+ID4gKi8gQEAgLTU2LDYgKzU3LDcg QEAgICNpbmNsdWRlIDxydGVfcGNpLmg+ICAjaW5jbHVkZSA8cnRlX2J1c19wY2kuaD4NCj4gPiAj aW5jbHVkZSA8cnRlX2NvbW1vbi5oPg0KPiA+ICsjaW5jbHVkZSA8cnRlX2VhbF9tZW1jb25maWcu aD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9rdmFyZ3MuaD4NCj4gPg0KPiA+ICAjaW5jbHVkZSAibWx4 NS5oIg0KPiA+IEBAIC00NjYsNiArNDY4LDEwMSBAQCBtbHg1X2FyZ3Moc3RydWN0IG1seDVfZGV2 X2NvbmZpZyAqY29uZmlnLCBzdHJ1Y3QNCj4gPiBydGVfZGV2YXJncyAqZGV2YXJncykNCj4gPg0K PiA+ICBzdGF0aWMgc3RydWN0IHJ0ZV9wY2lfZHJpdmVyIG1seDVfZHJpdmVyOw0KPiA+DQo+ID4g Ky8qDQo+ID4gKyAqIFJlc2VydmVkIFVBUiBhZGRyZXNzIHNwYWNlIGZvciBUWFEgVUFSKGh3IGRv b3JiZWxsKSBtYXBwaW5nLA0KPiA+ICtwcm9jZXNzDQo+ID4gKyAqIGxvY2FsIHJlc291cmNlIHVz ZWQgYnkgYm90aCBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgdG8gYXZvaWQNCj4gPiArZHVwbGljYXRl DQo+ID4gKyAqIHJlc2VydmF0aW9uLg0KPiA+ICsgKiBUaGUgc3BhY2UgaGFzIHRvIGJlIGF2YWls YWJsZSBvbiBib3RoIHByaW1hcnkgYW5kIHNlY29uZGFyeQ0KPiA+ICtwcm9jZXNzLA0KPiA+ICsg KiBUWFEgVUFSIG1hcHMgdG8gdGhpcyBhcmVhIHVzaW5nIGZpeGVkIG1tYXAgdy9vIGRvdWJsZSBj aGVjay4NCj4gPiArICovDQo+ID4gK3N0YXRpYyB2b2lkICp1YXJfYmFzZTsNCj4gPiArDQo+ID4g Ky8qKg0KPiA+ICsgKiBSZXNlcnZlIFVBUiBhZGRyZXNzIHNwYWNlIGZvciBwcmltYXJ5IHByb2Nl c3MNCj4gPiArICoNCj4gPiArICogQHBhcmFtW2luXSBwcml2DQo+ID4gKyAqICAgUG9pbnRlciB0 byBwcml2YXRlIHN0cnVjdHVyZS4NCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAg IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gdmFsdWUgb24gZmFpbHVyZS4NCj4gPiArICov DQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArbWx4NV91YXJfaW5pdF9wcmltYXJ5KHN0cnVjdCBwcml2 ICpwcml2KSB7DQo+ID4gKwl2b2lkICphZGRyID0gKHZvaWQgKikwOw0KPiA+ICsJaW50IGk7DQo+ ID4gKwljb25zdCBzdHJ1Y3QgcnRlX21lbV9jb25maWcgKm1jZmc7DQo+ID4gKw0KPiA+ICsJaWYg KHVhcl9iYXNlKSB7IC8qIFVBUiBhZGRyZXNzIHNwYWNlIG1hcHBlZCAqLw0KPiA+ICsJCXByaXYt PnVhcl9iYXNlID0gdWFyX2Jhc2U7DQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKwl9DQo+ID4gKwkv KiBmaW5kIG91dCBsb3dlciBib3VuZCBvZiBodWdlcGFnZSBzZWdtZW50cyAqLw0KPiA+ICsJbWNm ZyA9IHJ0ZV9lYWxfZ2V0X2NvbmZpZ3VyYXRpb24oKS0+bWVtX2NvbmZpZzsNCj4gPiArCWZvciAo aSA9IDA7IGkgPCBSVEVfTUFYX01FTVNFRyAmJiBtY2ZnLT5tZW1zZWdbaV0uYWRkcjsgaSsrKSB7 DQo+ID4gKwkJaWYgKGFkZHIpDQo+ID4gKwkJCWFkZHIgPSBSVEVfTUlOKGFkZHIsIG1jZmctPm1l bXNlZ1tpXS5hZGRyKTsNCj4gPiArCQllbHNlDQo+ID4gKwkJCWFkZHIgPSBtY2ZnLT5tZW1zZWdb aV0uYWRkcjsNCj4gDQo+IFRoaXMgaWYvZWxzZSBpcyB1c2VsZXNzIGFzIGFkZHIgaXMgYWxyZWFk eSBpbml0aWFsaXNlZCB3aXRoIHRoZSBzbWFsbGVzdA0KPiBwb3NzaWJsZSB2YWx1ZS4NCg0KVGhh dCdzIG15IG9yaWdpbmFsIGNvZGUgOi0pIGFuZCBJIGFsd2F5cyBnZXQgYWRkciB6ZXJvIHRoZW4u IA0KQWRkciBoZXJlIGlzIHRoZSBsb3dlciBib3VuZCBvZiBodWdlcGFnZSwgd2UgZG9uJ3Qgd2Fu dCBhZGRyIHRvIGtlZXAgemVyby4NCg0KPiANCj4gPiArCX0NCj4gPiArCS8qIG9mZnNldCBkb3du IFVBUiBhcmVhICovDQo+ID4gKwlhZGRyID0gUlRFX1BUUl9TVUIoYWRkciwgTUxYNV9VQVJfT0ZG U0VUICsgTUxYNV9VQVJfU0laRSk7DQo+IA0KPiBTZWVtcyB0aGUgZXJyb3IgaXMgaGVyZSwgdGhl IGxvb3BzIGdldCB0aGUgYWRkcmVzcyBvZiB0aGUgbWVtc2VnIHdpdGggdGhlDQo+IHNtYWxsZXN0 IGFkZHJlc3MgYW5kIHRoZW4gaXQgc3VidHJhY3QgdGhlIFVBUiBzaXplLCBhZGRyIGNhbm5vdCBi ZSBhZnRlcg0KPiB0aGUgaHVnZSBwYWdlcyB1bmxlc3MgaWYgdGhpcyBzdWJ0cmFjdGlvbiBvdmVy Zmxvd3MuDQoNClRoYW5rcywgbXkgd29yZCAiYWZ0ZXIiIGlzIHNvbWV0aGluZyBsaWtlIGFkZHJl c3MgYWxsb2N0aW9uIG9yZGVyLCB0aGUgVUFSIGJsb2NrIA0KdW5kZXIgImh1Z2VwYWdlIiBvbiB0 aGUgb3ZlcmFsbCBwaWN0dXJlLg0KDQo+IA0KPiA+ICsJLyogYW5vbnltb3VzIG1tYXAsIG5vIHJl YWwgbWVtb3J5IGNvbnN1bXB0aW9uICovDQo+ID4gKwlhZGRyID0gbW1hcChhZGRyLCBNTFg1X1VB Ul9TSVpFLA0KPiA+ICsJCSAgICBQUk9UX05PTkUsIE1BUF9QUklWQVRFIHwgTUFQX0FOT05ZTU9V UywgLTEsIDApOw0KPiA+ICsJaWYgKGFkZHIgPT0gTUFQX0ZBSUxFRCkgew0KPiA+ICsJCUVSUk9S KCJGYWlsZWQgdG8gcmVzZXJ2ZSBVQVIgYWRkcmVzcyBzcGFjZSwgcGxlYXNlIGFkanVzdCAiDQo+ ID4gKwkJICAgICAgIk1MWDVfVUFSX1NJWkUgb3IgdHJ5IC0tYmFzZS12aXJ0YWRkciIpOw0KPiAN Cj4gSG93IGRvZXMgYSB1c2VyIGtub3dzIHRoZSBVQVIgbWVtb3J5IHNwYWNlIHRoZSBOSUMgbmVl ZHMgdG8gYWRqdXN0IHRoZQ0KPiBNTFg1X1VBUl9TSVpFPw0KPiANCj4gPiArCQlyZXR1cm4gLUVO T01FTTsNCj4gPiArCX0NCj4gPiArCS8qIEFjY2VwdCBlaXRoZXIgc2FtZSBhZGRyIG9yIGEgbmV3 IGFkZHIgcmV0dXJuZWQgZnJvbSBtbWFwIGlmDQo+IHRhcmdldA0KPiA+ICsJICogcmFuZ2Ugb2Nj dXBpZWQuDQo+ID4gKwkgKi8NCj4gPiArCUlORk8oIlJlc2VydmVkIFVBUiBhZGRyZXNzIHNwYWNl OiAweCVwIiwgYWRkcik7DQo+IA0KPiBUaGUgJyVwJyBhbHJlYWR5IHByZWZpeCB0aGUgYWRkcmVz cyB3aXRoIHRoZSAweC4NCj4gDQo+ID4gKwlwcml2LT51YXJfYmFzZSA9IGFkZHI7IC8qIGZvciBw cmltYXJ5IGFuZCBzZWNvbmRhcnkgVUFSIHJlLW1tYXAgKi8NCj4gPiArCXVhcl9iYXNlID0gYWRk cjsgLyogcHJvY2VzcyBsb2NhbCwgZG9uJ3QgcmVzZXJ2ZSBhZ2FpbiAqLw0KPiA+ICsJcmV0dXJu IDA7DQo+ID4gK30NCj4gPiArDQo+IDxzbmlwLz4NCj4gDQo+IFJlZ2FyZHMsDQo+IA0KPiAtLQ0K PiBOw6lsaW8gTGFyYW5qZWlybw0KPiA2V0lORA0K