From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730065.outbound.protection.outlook.com [40.107.73.65]) by dpdk.org (Postfix) with ESMTP id 8E583239 for ; Wed, 31 Oct 2018 19:54:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F/jC6fm0fkx09+jKow1iJVz9KYKUjRC2l9pSndqWVAY=; b=E/LFoA32hynPywTMgJ1/rO/ND+DiZL1iu1WLyTDJJ7WNyCdsfswOzhEIJJ7dskkYJnVjxys4q04k4Hy1vrnmTDC7KeZXvQ57RRho1ZAgsXeXTCyiSrSLtS8fZaZYnkvxd9CB93rHbWwHXnw3jrtLt9gRviK5gjqRnl1XjE6+Mh4= Received: from MWHPR05MB2909.namprd05.prod.outlook.com (10.168.245.143) by MWHPR05MB3037.namprd05.prod.outlook.com (10.168.246.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.15; Wed, 31 Oct 2018 18:54:03 +0000 Received: from MWHPR05MB2909.namprd05.prod.outlook.com ([fe80::747d:32a5:9712:fd78]) by MWHPR05MB2909.namprd05.prod.outlook.com ([fe80::747d:32a5:9712:fd78%10]) with mapi id 15.20.1294.009; Wed, 31 Oct 2018 18:54:02 +0000 From: Louis Luo To: Luca Boccassi , Thomas Monjalon , Yong Wang CC: "dev@dpdk.org" , Chas Williams <3chas3@gmail.com>, Maxime Coquelin , "tiwei.bie@intel.com" , Bruce Richardson , Jianfeng Tan , "Burakov, Anatoly" , "brussell@vyatta.att-mail.com" Thread-Topic: [dpdk-dev] [PATCH v2 2/3] net/vmxnet3: fix vmxnet3 dev_uninit() hot-unplug Thread-Index: AQHUUBhvUdCqL9I8EUGajkiZ2CLa5aT3v+mAgDuuD4CABm/RgIAABWMA//+ddoA= Date: Wed, 31 Oct 2018 18:54:02 +0000 Message-ID: References: <20180816135032.28283-1-bluca@debian.org> <2858283.f32l3dFHSD@xps> <16755296.DkulTLluNz@xps> <1541008002.29722.34.camel@debian.org> In-Reply-To: <1541008002.29722.34.camel@debian.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.12.0.181014 authentication-results: spf=none (sender IP is ) smtp.mailfrom=llouis@vmware.com; x-originating-ip: [67.188.37.58] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; MWHPR05MB3037; 20:4UaXSkbAt8AWWjZyNiR4EAj3QcoKUgNwhUFLBkLYD5XzWOnK6jtw/kaCHs9KTzBkpw+t5O1v7jhHnpEiGeGE9BqgUEefZetWzanBOdn2O90yhBugoiGxK9lCappuuHOLp2KH221rhTIO80PSC2KxPFA28bRjGDFUXtwt2UPtzpA= x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: e988b16d-ced4-47b5-631f-08d63f6239bc x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:MWHPR05MB3037; x-ms-traffictypediagnostic: MWHPR05MB3037: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231382)(944501410)(52105095)(93006095)(93001095)(10201501046)(3002001)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699051)(76991095); SRVR:MWHPR05MB3037; BCL:0; PCL:0; RULEID:; SRVR:MWHPR05MB3037; x-forefront-prvs: 084285FC5C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(376002)(136003)(366004)(396003)(189003)(199004)(36756003)(82746002)(81166006)(86362001)(83716004)(71200400001)(102836004)(4001150100001)(97736004)(3846002)(6116002)(71190400001)(106356001)(2900100001)(33656002)(5250100002)(105586002)(8936002)(478600001)(14454004)(25786009)(7736002)(26005)(53936002)(99286004)(6436002)(6246003)(93886005)(305945005)(5660300001)(8676002)(4326008)(316002)(14444005)(256004)(76176011)(229853002)(2616005)(11346002)(446003)(7416002)(54906003)(2906002)(186003)(58126008)(6636002)(6486002)(486006)(6506007)(53546011)(110136005)(81156014)(476003)(39060400002)(6512007)(68736007)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR05MB3037; H:MWHPR05MB2909.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: vmware.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: xUhs01H5jUxd6AAKLwjmqtraLDacQjC1qZ/mPqjApwZHIl9t3wkyCKhOAhlw2dEzxjAz8eVQHnqAds3jN8ofN/kcLDAMHDEvmpFaFraNicTxX/SS+IajE9gGqmVMO/Ts+TjzIbU/RDhWe6kkpkgCNNjMR3zSRLedw8Dofl9n7lY3xhKIqJbkfCGsHPJhL4/JQJ9OsE196MJsFrzIcA3ICu+0blBoB2jWOfqySw/Oi10503ws+QnX9Ot07995YlDDQ3B1oNxFiSt8aOiHfCaL37/oniwdeJNdXkJeMI/+BafeEknJQJA94QsSNaV8qdDwAqVvIjNmksw6I/YCtjd6/sC01vYCzj6gK3XkJdvBlBw= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <296B1B07139CDC4094AB65B40B80E66D@namprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: e988b16d-ced4-47b5-631f-08d63f6239bc X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2018 18:54:02.5524 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3037 Subject: Re: [dpdk-dev] [PATCH v2 2/3] net/vmxnet3: fix vmxnet3 dev_uninit() hot-unplug 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: Wed, 31 Oct 2018 18:54:06 -0000 SGV5IEknbSB0YWtpbmcgcGF0ZXJuaXR5IGxlYXZlIG5vdyBzbyBsYXRlIG9uIHJlc3BvbnNlLg0K DQpUaGUgdjEgd2FzIGRpZmZlcmVudCBmcm9tIHdoYXQgVGhvbWFzIGFza2VkIGZvciBhbmQgKGh3 LT5hZGFwdGVyX3N0b3BwZWQgPT0gMCkgd2FzIGlnbm9yZWQgKHNlZSBjaXRlZCBiZWxvdykuIFNv IHdlIGZlbHQgdW5jb21mb3J0YWJsZSBhYm91dCB0aGF0IGFzIHRoZXJlIGlzIG5vIGd1YXJhbnRl ZSB0aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gY2xvc2VkIGJlZm9yZSBjYWxsaW5nIHVuaW5pdC4g Tm93IHRoYXQgeW91IGZhaWwgdGhlIHVuaW5pdCBjYWxsIGZvciBub24tc3RvcHBlZCBkZXZpY2Ug YW5kIHJldHVybiBFQlVTWSwgSSdtIGZpbmUgd2l0aCBpdC4NCg0KUmVnYXJkcywNCkxvdWlzDQoN CnN0YXRpYyBpbnQNCmV0aF92bXhuZXQzX2Rldl91bmluaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpl dGhfZGV2KQ0Kew0KLQlzdHJ1Y3Qgdm14bmV0M19odyAqaHcgPSBldGhfZGV2LT5kYXRhLT5kZXZf cHJpdmF0ZTsNCi0NCglQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQoJaWYgKHJ0ZV9lYWxfcHJvY2Vz c190eXBlKCkgIT0gUlRFX1BST0NfUFJJTUFSWSkNCgkJcmV0dXJuIDA7DQotCWlmIChody0+YWRh cHRlcl9zdG9wcGVkID09IDApDQotCQl2bXhuZXQzX2Rldl9jbG9zZShldGhfZGV2KTsNCi0NCgll dGhfZGV2LT5kZXZfb3BzID0gTlVMTDsNCglldGhfZGV2LT5yeF9wa3RfYnVyc3QgPSBOVUxMOw0K CWV0aF9kZXYtPnR4X3BrdF9idXJzdCA9IE5VTEw7DQoNCu+7v09uIDEwLzMxLzE4LCAxMDo0NiBB TSwgIkx1Y2EgQm9jY2Fzc2kiIDxibHVjYUBkZWJpYW4ub3JnPiB3cm90ZToNCg0KICAgIFNvcnJ5 LCBiZWVuIG90aGVyd2lzZSBidXN5IC0gSSBjYW4gZG8gd2hhdCB5b3UgYW5kIENoYXMgaGF2ZSBh c2tlZCwgYnV0DQogICAgdGhlIHByb2JsZW0gaXMgdGhhdCB2MSBhbHJlYWR5IGRpZCB0aGF0IGFu ZCB0aGUgVk1XYXJlIG1haW50YWluZXJzDQogICAgYXNrZWQgdG8gY2hhbmdlIGl0IGJhY2suIFNv IGNhbiBJIGFzc3VtZSB0aGF0IHRoZSB2MSB3YXkgaXMgdGhlIHdheSB0bw0KICAgIGdvPw0KICAg IA0KICAgIE9uIFdlZCwgMjAxOC0xMC0zMSBhdCAxODoyNyArMDEwMCwgVGhvbWFzIE1vbmphbG9u IHdyb3RlOg0KICAgID4gQW55IHVwZGF0ZSBvciBxdWVzdGlvbiBmb3IgdGhpcyBwYXRjaD8NCiAg ICA+IElmIG5vIHVwZGF0ZSwgaXQgd2lsbCBtaXNzIDE4LjExLg0KICAgID4gDQogICAgPiANCiAg ICA+IDI3LzEwLzIwMTggMTc6MDksIFRob21hcyBNb25qYWxvbjoNCiAgICA+ID4gMTkvMDkvMjAx OCAxNzo0NywgQ2hhcyBXaWxsaWFtczoNCiAgICA+ID4gPiBPbiBXZWQsIFNlcCAxOSwgMjAxOCBh dCA4OjU4IEFNIEx1Y2EgQm9jY2Fzc2kgPGJsdWNhQGRlYmlhbi5vcmc+DQogICAgPiA+ID4gd3Jv dGU6DQogICAgPiA+ID4gPiANCiAgICA+ID4gPiA+IFRoZSB2bXhuZXQzIGRyaXZlciBjYW4ndCBj YWxsIGJhY2sgaW50byBkZXZfY2xvc2UoKSwgYW5kDQogICAgPiA+ID4gPiBwb3NzaWJseQ0KICAg ID4gPiA+ID4gZGV2X3N0b3AoKSwgaW4gZGV2X3VuaW5pdCgpLiAgV2hlbiBkZXZfdW5pbml0KCkg aXMgY2FsbGVkLA0KICAgID4gPiA+ID4gYW55dGhpbmcNCiAgICA+ID4gPiA+IHRoYXQgdGhvc2Ug cm91dGluZXMgd291bGQgd2FudCB0byBjbGVhbiB1cCBoYXMgYWxyZWFkeSBiZWVuDQogICAgPiA+ ID4gPiByZWxlYXNlZC4NCiAgICA+ID4gPiA+IEZ1cnRoZXIsIGZvciBjb21wbGV0ZSBjbGVhbnVw LCBpdCBpcyBuZWNlc3NhcnkgdG8gcmVsZWFzZSBhbnkNCiAgICA+ID4gPiA+IG9mIHRoZQ0KICAg ID4gPiA+ID4gcXVldWUgcmVzb3VyY2VzIGR1cmluZyBkZXZfY2xvc2UoKS4NCiAgICA+ID4gPiA+ IFRoaXMgYWxsb3dzIGEgdm14bmV0MyBkZXZpY2UgdG8gYmUgaG90LXVucGx1Z2dlZCB3aXRob3V0 DQogICAgPiA+ID4gPiBsZWFraW5nDQogICAgPiA+ID4gPiBxdWV1ZXMuDQogICAgPiA+ID4gPiAN CiAgICA+ID4gPiA+IEZpeGVzOiBkZmFmZjM3ZmM0NmQgKCJ2bXhuZXQzOiBpbXBvcnQgbmV3IHZt eG5ldDMgcG9sbCBtb2RlDQogICAgPiA+ID4gPiBkcml2ZXIgaW1wbGVtZW50YXRpb24iKQ0KICAg ID4gPiA+ID4gQ2M6IHN0YWJsZUBkcGRrLm9yZw0KICAgID4gPiA+ID4gDQogICAgPiA+ID4gPiBT aWduZWQtb2ZmLWJ5OiBCcmlhbiBSdXNzZWxsIDxicnVzc2VsbEBicm9jYWRlLmNvbT4NCiAgICA+ ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEx1Y2EgQm9jY2Fzc2kgPGJsdWNhQGRlYmlhbi5vcmc+DQog ICAgPiA+ID4gPiAtLS0NCiAgICA+ID4gPiA+IHYyOiBhZGQgYmFjayBleHRyYSBjbG9zZSgpIGNh bGwgaW4gdW5pbml0KCkgZm9yIGJ1Z2d5DQogICAgPiA+ID4gPiBhcHBsaWNhdGlvbnMgYXMNCiAg ICA+ID4gPiA+ICAgICByZXF1ZXN0ZWQgYnkgdGhlIHJldmlld2VycywgYW5kIGFkZCBkZWJ1ZyBs b2cgbm90aW5nIHRoZQ0KICAgID4gPiA+ID4gaXNzdWUNCiAgICA+ID4gPiA+IA0KICAgID4gPiA+ ID4gIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYyB8IDM1DQogICAgPiA+ID4g PiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQogICAgPiA+ID4gPiAgMSBmaWxlIGNoYW5n ZWQsIDI5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQogICAgPiA+ID4gPiANCiAgICA+ ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMN CiAgICA+ID4gPiA+IGIvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQogICAg PiA+ID4gPiBpbmRleCBmMTU5NmFiMTlkLi45OGU1ZDAxODkwIDEwMDY0NA0KICAgID4gPiA+ID4g LS0tIGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQogICAgPiA+ID4gPiAr KysgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMNCiAgICA+ID4gPiA+IEBA IC0zNTQsOCArMzU0LDEwIEBAIGV0aF92bXhuZXQzX2Rldl91bmluaXQoc3RydWN0IHJ0ZV9ldGhf ZGV2DQogICAgPiA+ID4gPiAqZXRoX2RldikNCiAgICA+ID4gPiA+ICAgICAgICAgaWYgKHJ0ZV9l YWxfcHJvY2Vzc190eXBlKCkgIT0gUlRFX1BST0NfUFJJTUFSWSkNCiAgICA+ID4gPiA+ICAgICAg ICAgICAgICAgICByZXR1cm4gMDsNCiAgICA+ID4gPiANCiAgICA+ID4gPiBUaGlzIHNob3VsZCBw cm9iYWJseSBiZSBFUEVSTSBhcyB3ZWxsLiAgT3V0IG9mIHNjb3BlIHRob3VnaC4NCiAgICA+ID4g PiANCiAgICA+ID4gPiA+IA0KICAgID4gPiA+ID4gLSAgICAgICBpZiAoaHctPmFkYXB0ZXJfc3Rv cHBlZCA9PSAwKQ0KICAgID4gPiA+ID4gKyAgICAgICBpZiAoaHctPmFkYXB0ZXJfc3RvcHBlZCA9 PSAwKSB7DQogICAgPiA+ID4gPiArICAgICAgICAgICAgICAgUE1EX0lOSVRfTE9HKERFQlVHLCAi RGV2aWNlIGhhcyBub3QgYmVlbg0KICAgID4gPiA+ID4gY2xvc2VkLiIpOw0KICAgID4gPiA+ID4g ICAgICAgICAgICAgICAgIHZteG5ldDNfZGV2X2Nsb3NlKGV0aF9kZXYpOw0KICAgID4gPiA+IA0K ICAgID4gPiA+IFRoaXMganVzdCBzZWVtcyB3cm9uZy4gIFlvdSBoYXZlIGNhbGxlZCB1bmluaXQo KSB3aWxsIHRoZSBkcml2ZXINCiAgICA+ID4gPiBpcw0KICAgID4gPiA+IHN0aWxsIGJ1c3kuICBJ bnN0ZWFkIG9mICJmaXhpbmciIHRoZSBzdGF0ZSBvZiB0aGUgZHJpdmVyLCByZXR1cm4NCiAgICA+ ID4gPiBFQlVTWQ0KICAgID4gPiA+IGhlcmUuDQogICAgPiA+IA0KICAgID4gPiBJIGFncmVlLg0K ICAgID4gPiBJZiB0aGUgcG9ydCBpcyBub3Qgc3RvcHBlZCwgZWl0aGVyIHlvdSBzdG9wIGl0IG9y IHlvdSByZXR1cm4gRUJVU1kuDQogICAgPiA+IA0KICAgID4gPiBDbG9zaW5nIHRoZSBkZXZpY2Ug c2hvdWxkIGJlIGRvbmUgb3V0c2lkZSBvZiB0aGlzIGNoZWNrLg0KICAgID4gPiBJdCBpcyBPSyB0 byBjbG9zZSBmcm9tIHVuaW5pdCBpZiB0aGUgYXBwIGRpZCBub3QgY2xvc2UgaXQuDQogICAgPiA+ IA0KICAgID4gPiBbLi4uXQ0KICAgID4gPiA+ID4gK3N0YXRpYyB2b2lkDQogICAgPiA+ID4gPiAr dm14bmV0M19mcmVlX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCiAgICA+ID4gPiA+ ICt7DQogICAgPiA+ID4gPiArICAgICAgIGludCBpOw0KICAgID4gPiA+ID4gKw0KICAgID4gPiA+ ID4gKyAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQogICAgPiA+ID4gPiArDQogICAgPiA+ ID4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsr KSB7DQogICAgPiA+ID4gPiArICAgICAgICAgICAgICAgdm9pZCAqcnhxID0gZGV2LT5kYXRhLT5y eF9xdWV1ZXNbaV07DQogICAgPiA+ID4gPiArDQogICAgPiA+ID4gPiArICAgICAgICAgICAgICAg dm14bmV0M19kZXZfcnhfcXVldWVfcmVsZWFzZShyeHEpOw0KICAgID4gPiA+ID4gKyAgICAgICB9 DQogICAgPiA+ID4gPiArICAgICAgIGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzID0gMDsNCiAgICA+ ID4gPiA+ICsNCiAgICA+ID4gPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+ bmJfdHhfcXVldWVzOyBpKyspIHsNCiAgICA+ID4gPiA+ICsgICAgICAgICAgICAgICB2b2lkICp0 eHEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXTsNCiAgICA+ID4gPiA+ICsNCiAgICA+ID4gPiA+ ICsgICAgICAgICAgICAgICB2bXhuZXQzX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHR4cSk7DQogICAg PiA+ID4gPiArICAgICAgIH0NCiAgICA+ID4gPiA+ICsgICAgICAgZGV2LT5kYXRhLT5uYl90eF9x dWV1ZXMgPSAwOw0KICAgID4gPiA+ID4gIH0NCiAgICA+ID4gPiA+IA0KICAgID4gPiA+ID4gIC8q DQogICAgPiA+ID4gPiBAQCAtODQ0LDEyICs4NjksMTAgQEAgdm14bmV0M19kZXZfc3RvcChzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldikNCiAgICA+ID4gPiA+ICBzdGF0aWMgdm9pZA0KICAgID4gPiA+ ID4gIHZteG5ldDNfZGV2X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KICAgID4gPiA+ ID4gIHsNCiAgICA+ID4gPiA+IC0gICAgICAgc3RydWN0IHZteG5ldDNfaHcgKmh3ID0gZGV2LT5k YXRhLT5kZXZfcHJpdmF0ZTsNCiAgICA+ID4gPiA+IC0NCiAgICA+ID4gPiA+ICAgICAgICAgUE1E X0lOSVRfRlVOQ19UUkFDRSgpOw0KICAgID4gPiA+ID4gDQogICAgPiA+ID4gPiAgICAgICAgIHZt eG5ldDNfZGV2X3N0b3AoZGV2KTsNCiAgICA+ID4gPiA+IC0gICAgICAgaHctPmFkYXB0ZXJfc3Rv cHBlZCA9IDE7DQogICAgPiA+ID4gPiArICAgICAgIHZteG5ldDNfZnJlZV9xdWV1ZXMoZGV2KTsN CiAgICA+ID4gPiA+ICB9DQogICAgPiA+IA0KICAgID4gPiBHb29kIGNsZWFuLXVwIG9uIGRldl9j bG9zZS4NCiAgICA+ID4gWW91IHByb2JhYmx5IHdhbnQgdG8gZ28gZnVydGhlciBhbmQgc2V0IFJU RV9FVEhfREVWX0NMT1NFX1JFTU9WRQ0KICAgID4gPiBmb3IgYWxsb3dpbmcNCiAgICA+ID4gYSBy ZWFsIHJlbGVhc2Ugb2YgdGhlIHBvcnQgb24gY2xvc2UuDQogICAgPiA+IE5vdGU6IGV2ZXJ5IFBN RHMgc2hvdWxkIG1pZ3JhdGUgdG93YXJkcyB0aGlzIGJlaGF2aW91ci4NCiAgICA+ID4gDQogICAg PiA+IFRvIG1ha2UgdGhpbmdzIGNsZWFyIChJIHdpbGwgd3JpdGUgYSBkb2MgZm9yIC1yYzIpOg0K ICAgID4gPiAJLSAic3RvcCIgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgYXBwIGJ1dCB0aGUgUE1E IGlzIGFsbG93ZWQgdG8NCiAgICA+ID4gZm9yY2UgaXQuDQogICAgPiA+IAktICJjbG9zZSIgbWF5 IGJlIGNhbGxlZCBieSB0aGUgYXBwLCBhbmQgdGhlIFBNRCBzaG91bGQgZW5mb3JjZQ0KICAgID4g PiBpdCBpbiB1bmluaXQuDQogICAgPiA+IAkJV2l0aCBSVEVfRVRIX0RFVl9DTE9TRV9SRU1PVkUg ZmxhZywgaXQgbXVzdCBjb21wbGV0ZWx5DQogICAgPiA+IHJlbGVhc2UgdGhlIHBvcnQuDQogICAg PiA+IAktICJyZW1vdmUiIChpbXBsZW1lbnRlZCBpbiBQTUQgYXMgdW5pbml0KSBpcyByZXNwb25z aWJsZSBvZg0KICAgID4gPiBjbG9zaW5nDQogICAgPiA+IAkJZXRoZGV2IHBvcnRzIGlmIG5vdCBh bHJlYWR5IGRvbmUsIGFuZCByZWxlYXNlIHRoZQ0KICAgID4gPiBzaGFyZWQgcmVzb3VyY2VzDQog ICAgPiA+IAkJd2hpY2ggYXJlIG5vdCBzcGVjaWZpYyB0byBhIHBvcnQuIEl0IHJlbW92ZXMgdGhl IHdob2xlDQogICAgPiA+IEVBTCBydGVfZGV2aWNlLg0KICAgID4gPiANCiAgICA+ID4gUFM6IGZv ciBhbnkgaG90cGx1ZyBwYXRjaCBvciBxdWVzdGlvbnMsIGZlZWwgZnJlZSB0byBDYyBtZS4NCiAg ICA+IA0KICAgID4gDQogICAgPiANCiAgICA+IA0KICAgID4gDQogICAgDQogICAgLS0gDQogICAg S2luZCByZWdhcmRzLA0KICAgIEx1Y2EgQm9jY2Fzc2kNCiAgICANCg0K