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 11FC0A046B for ; Wed, 26 Jun 2019 15:24:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7EF552AA0; Wed, 26 Jun 2019 15:24:41 +0200 (CEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30065.outbound.protection.outlook.com [40.107.3.65]) by dpdk.org (Postfix) with ESMTP id AAC531E20 for ; Wed, 26 Jun 2019 15:24:40 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=Hwo+8/HNwD49v+0t7+S+aBEoKiwsSLkYSDElbI+8hVXJZErUbJo1OWB0F9WLSQBZbqbKiyebrC1eV3Jdkyo7eIYcXCAwcd2q0bE/ftagTSUU4WkOdhr2y/g72g7XkmIaqi+DcAa9D/76XsQE9DW6nG+JPJRv9BXMj6LTjjtn5aM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=testarcselector01; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o41mKWwE1/eYe1Sglgb32vj2hu2TSwwmj1qn9F2SsHc=; b=uuSYWeWqrpnqt2Jqv4vmcun1+KK4hh0qFrrw9khMarbYG/EAGM33fJMDghQOLkGFTi5V+Dwkz9vILMFVen2FHUvQdsoFciUKVZvreJrGh5gMS/jgIUA6y46syzhyLJsg7uoaxmCxHILn3BFmXwTHmJamyEjBQDZDUy3okDMIKOs= ARC-Authentication-Results: i=1; test.office365.com 1;spf=none;dmarc=none;dkim=none;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o41mKWwE1/eYe1Sglgb32vj2hu2TSwwmj1qn9F2SsHc=; b=LPIo/T+Dz7i/o1dL92nXiix3EVfJ+m8RcG+8n9SOFTrgXjE2CzlcfL8RCXwIt6ypM/M9IT3+TSVs4oseO6w3LK/PfBeo2v5Fe50qEi2TRwNiQg+sdcpyP41HJN2STBDBeW7MV4vTrBhE++UB83Mmz+aOjBvGNqinU6dloz1nfxQ= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.39.139) by AM0PR0502MB3972.eurprd05.prod.outlook.com (52.133.36.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Wed, 26 Jun 2019 13:24:39 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::a81f:9e35:487d:d788]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::a81f:9e35:487d:d788%7]) with mapi id 15.20.2008.014; Wed, 26 Jun 2019 13:24:39 +0000 From: Matan Azrad To: Maxime Coquelin , Noa Ezra CC: "dev@dpdk.org" , Tiwei Bie Thread-Topic: [PATCH 2/2] net/vhost: support mrg-rxbuf disabling Thread-Index: AQHVJn7W5VYHFaMqLU2RhkMjZhWsvqakDSmAgAAK18CAAAv6gIAABSYggAlpMiCAADQ6gIAADC7ggAAPSACAABPcYA== Date: Wed, 26 Jun 2019 13:24:38 +0000 Message-ID: References: <1560924825-220648-1-git-send-email-noae@mellanox.com> <1560924825-220648-3-git-send-email-noae@mellanox.com> <29a8bedb-2363-d595-001b-577fdfc7318c@redhat.com> <59bce0c1-6f04-b743-c5fc-508b30e42075@redhat.com> <01a391c2-f68d-38fc-909b-3fc06100d1f7@redhat.com> <81735ee1-645d-286b-4516-64755fd07c94@redhat.com> In-Reply-To: <81735ee1-645d-286b-4516-64755fd07c94@redhat.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d38887b3-7f3d-4463-dcbf-08d6fa39a408 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR0502MB3972; x-ms-traffictypediagnostic: AM0PR0502MB3972: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 00808B16F3 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(39860400002)(136003)(376002)(346002)(51444003)(13464003)(53754006)(189003)(199004)(26005)(76116006)(186003)(102836004)(2906002)(316002)(110136005)(81166006)(81156014)(8676002)(33656002)(86362001)(8936002)(6246003)(74316002)(73956011)(5660300002)(508600001)(229853002)(305945005)(7736002)(66066001)(66946007)(66446008)(64756008)(66556008)(66476007)(14444005)(54906003)(99286004)(76176011)(7696005)(52536014)(53546011)(6506007)(256004)(446003)(9686003)(6116002)(55016002)(25786009)(11346002)(4326008)(3846002)(53936002)(476003)(486006)(71190400001)(71200400001)(14454004)(68736007)(6436002)(6636002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3972; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Ov/lmAE+OYZUGfEb/SF8hDdRujr2WeLt7ENdz7ybzyISHkgokPPhDrsC2mwJe0Ves+GS+L2huh8fNOywJ0IFDOK0rOYRk4kIQDXT4r+fEFrR4HfzAi0H7aBnxVku8rfC6/95ZUEXjKSv5f4a5Ouiv5UftuoFSo3UZxek3KQS8MAlcSakkIcwtNRwk4WqMrIWAKLD9snI52DgW8p6+Zl/BmmzJuusg85nvKGXiyI+svhKEuh/iglyqr/BNwEchMrRV+kIP4JSXTtqw9C5S0a+To3WyOM12bVr0vKSw6LOnDaxXtY6YLGLf8zljirSAhfaSxAmxNezCLz5Sax1OBPXMrwDOkoxW+HFtYVld/2LBVDUJ4KY6rDwoStG/3rdzatm3D7HHuPEstu1mMMMQ+fgo9z5R3eUL2iTi4ubVrX0Vkw= 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: d38887b3-7f3d-4463-dcbf-08d6fa39a408 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jun 2019 13:24:38.8679 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: matan@mellanox.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3972 Subject: Re: [dpdk-dev] [PATCH 2/2] net/vhost: support mrg-rxbuf disabling 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWF4aW1lIENvcXVlbGlu IDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBKdW5lIDI2 LCAyMDE5IDM6MDYgUE0NCj4gVG86IE1hdGFuIEF6cmFkIDxtYXRhbkBtZWxsYW5veC5jb20+OyBO b2EgRXpyYSA8bm9hZUBtZWxsYW5veC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IFRpd2VpIEJp ZSA8dGl3ZWkuYmllQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdIG5ldC92 aG9zdDogc3VwcG9ydCBtcmctcnhidWYgZGlzYWJsaW5nDQo+IA0KPiANCj4gDQo+IE9uIDYvMjYv MTkgMToxOCBQTSwgTWF0YW4gQXpyYWQgd3JvdGU6DQo+ID4NCj4gPg0KPiA+IEZyb206IE1heGlt ZSBDb3F1ZWxpbg0KPiA+PiBPbiA2LzI2LzE5IDk6NTAgQU0sIE1hdGFuIEF6cmFkIHdyb3RlOg0K PiA+Pj4gSGkgTWF4aW0NCj4gPj4+DQo+ID4+PiBBbnkgcmVzcG9uc2UgaGVyZT8NCj4gPj4+DQo+ ID4+PiBCZXNpZGVzIHRoYXQsDQo+ID4+Pg0KPiA+Pj4gUmVnYXJkaW5nIHRoZSBUU08gYW5kIHRo aXMgcGF0Y2g6DQo+ID4+PiBJIHRoaW5rIHdlIHNob3VsZG4ndCBiZSBzbyBzdHJpY3QgdG8gbm90 IHRha2UgdGhlbSBmb3IgdGhpcyB2ZXJzaW9uOg0KPiA+Pj4gMS4gVGhlIGxhdGVyIHRpbWUgd2Fz IGEgdGVjaG5pY2FsIGlzc3VlIHdpdGggdGhlIG1haWxlciAtIGEgbWlzdGFrZS4NCj4gPj4+IDIu IFRoZSBwYXRjaGVzIGRvbid0IGNoYW5nZSBhbnkgZGVmYXVsdCBhbmQgbWFrZXMgc2Vuc2UgLSB3 aWxsIG5vdA0KPiA+Pj4gaHVydA0KPiA+PiBhbnlvbmUuDQo+ID4+Pg0KPiA+Pj4gU28gSSB0aGlu ayB3ZSBjYW4gZG8gaXQgYmV5b25kIHRoZSBsZXR0ZXIgb2YgdGhlIGxhdy4NCj4gPj4+DQo+ID4+ PiAgICBGcm9tOiBNYXhpbWUgQ29xdWVsaW4NCj4gPj4+ICAgID4gU2VudDogVGh1cnNkYXksIEp1 bmUgMjAsIDIwMTkgMTA6MTkgQU0NCj4gPj4+ICAgID4gVG86IE1hdGFuIEF6cmFkIDxtYXRhbkBt ZWxsYW5veC5jb20+OyBOb2EgRXpyYQ0KPiA+Pj4gICAgPG5vYWVAbWVsbGFub3guY29tPg0KPiA+ Pj4gICAgPiBDYzogZGV2QGRwZGsub3JnDQo+ID4+PiAgICA+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg Mi8yXSBuZXQvdmhvc3Q6IHN1cHBvcnQgbXJnLXJ4YnVmIGRpc2FibGluZw0KPiA+Pj4gICAgPg0K PiA+Pj4gICAgPg0KPiA+Pj4gICAgPg0KPiA+Pj4gICAgPiBPbiA2LzIwLzE5IDg6NTIgQU0sIE1h dGFuIEF6cmFkIHdyb3RlOg0KPiA+Pj4gICAgPiA+IEhpIGFsbA0KPiA+Pj4gICAgPiA+DQo+ID4+ PiAgICA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiAgICA+ID4+IEZyb206 IE5vYSBFenJhDQo+ID4+PiAgICA+ID4+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDIwLCAyMDE5IDg6 NTggQU0NCj4gPj4+ICAgID4gPj4gVG86IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGlu QHJlZGhhdC5jb20+DQo+ID4+PiAgICA+ID4+IENjOiBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFu b3guY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+PiAgICA+ID4+IFN1YmplY3Q6IFJFOiBbUEFUQ0gg Mi8yXSBuZXQvdmhvc3Q6IHN1cHBvcnQgbXJnLXJ4YnVmIGRpc2FibGluZw0KPiA+Pj4gICAgPiA+ Pg0KPiA+Pj4gICAgPiA+PiBIaSBNYXhpbWUsDQo+ID4+PiAgICA+ID4+IFRoYW5rcyBmb3IgeW91 ciBjb21tZW50LCBwbGVhc2Ugc2VlIGJlbG93Lg0KPiA+Pj4gICAgPiA+Pg0KPiA+Pj4gICAgPiA+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+ICAgID4gPj4+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiA+Pj4gICAg PiA+Pj4gU2VudDogV2VkbmVzZGF5LCBKdW5lIDE5LCAyMDE5IDEyOjEwIFBNDQo+ID4+PiAgICA+ ID4+PiBUbzogTm9hIEV6cmEgPG5vYWVAbWVsbGFub3guY29tPg0KPiA+Pj4gICAgPiA+Pj4gQ2M6 IE1hdGFuIEF6cmFkIDxtYXRhbkBtZWxsYW5veC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4+ICAg ID4gPj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMi8yXSBuZXQvdmhvc3Q6IHN1cHBvcnQgbXJnLXJ4 YnVmIGRpc2FibGluZw0KPiA+Pj4gICAgPiA+Pj4NCj4gPj4+ICAgID4gPj4+IEhpIE5vYSwNCj4g Pj4+ICAgID4gPj4+DQo+ID4+PiAgICA+ID4+PiBPbiA2LzE5LzE5IDg6MTMgQU0sIE5vYSBFenJh IHdyb3RlOg0KPiA+Pj4gICAgPiA+Pj4+IFJ4IG1lcmdlYWJsZSBidWZmZXJzIGlzIGEgdmlydGlv IGZlYXR1cmUgdGhhdCBhbGxvd3MgY2hhaW5pbmcgb2YNCj4gPj4+ICAgID4gPj4+PiBtdWx0aXBs ZSB2aXJ0aW8gZGVzY3JpcHRvcnMgdG8gaGFuZGxlIGxhcmdlIHBhY2tldCBzaXplLg0KPiA+Pj4g ICAgPiA+Pj4+IFRoaXMgYmVoYXZpb3IgaXMgc3VwcG9ydGVkIGFuZCBlbmFibGVkIGJ5IGRlZmF1 bHQsIGhvd2V2ZXIgaW4NCj4gPj4+ICAgID4gPj4+PiBjYXNlIHRoZSB1c2VyIGtub3dzIHRoYXQg cnggbWVyZ2VhYmxlIGJ1ZmZlcnMgYXJlIG5vdCBuZWVkZWQsDQo+IGhlDQo+ID4+PiAgICA+ID4+ Pj4gY2FuIGRpc2FibGUgdGhlIGZlYXR1cmUuDQo+ID4+PiAgICA+ID4+Pj4gVGhlIHVzZXIgc2hv dWxkIGFsc28gc2V0IG1yZ19yeGJ1Zj1vZmYgaW4gdmlydHVhbCBtYWNoaW5lJ3MgeG1sLg0KPiA+ Pj4gICAgPiA+Pj4NCj4gPj4+ICAgID4gPj4+IEknbSBub3Qgc3VyZSB0byB1bmRlcnN0YW5kIHdo eSBpdCBpcyBuZWVkZWQsIGFzIHRoZSB2aG9zdC11c2VyDQo+ID4+PiAgICA+ID4+PiBsaWJyYXJ5 IHN1cHBvcnRzIHRoZSBmZWF0dXJlLCBpdCdzIGJldHRlciB0byBsZXQgaXQgYmVpbmcgYWR2ZXJ0 aXNlZC4NCj4gPj4+ICAgID4gPj4+DQo+ID4+PiAgICA+ID4+PiBBcyB5b3Ugc2F5LCBpdCBpcyB1 cCB0byB0aGUgdXNlciB0byBkaXNhYmxlIGl0IGluIHRoZSBWTSdzIFhNTC4NCj4gPj4+ICAgID4g Pj4+IERvbmUgdGhpcyB3YXksIHRoZSBmZWF0dXJlIHdvbid0IGJlIG5lZ290aWF0ZWQuDQo+ID4+ PiAgICA+ID4+Pg0KPiA+Pj4gICAgPiA+PiBJIGFncmVlIHdpdGggeW91LCBJJ2xsIHJlbW92ZSB0 aGlzIHBhdGNoIGZyb20gdGhlIHNlcmllcy4NCj4gPj4+ICAgID4gPg0KPiA+Pj4gICAgPiA+IEFy ZSB5b3Ugc3VyZSB0aGF0IG5vIHBlcmZvcm1hbmNlIGltcGFjdCBleGlzdHMgZm9yIHJlZHVuZGFu dA0KPiA+Pj4gICAgPiA+IG1lcmctcngtYnVmDQo+ID4+PiAgICA+IGNvbmZpZ3VyYXRpb24gaGVy ZT8NCj4gPj4+ICAgID4NCj4gPj4+ICAgID4gSSdtIG5vdCBzdXJlIHRvIHVuZGVyc3RhbmQgd2hh dCB5b3UgbWVhbiwgY291bGQgeW91IHBsZWFzZQ0KPiBlbGFib3JhdGU/DQo+ID4+PiAgICA+DQo+ ID4+PiAgICBJIGd1ZXNzIHRoYXQgaWYgdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgYW5kIHRoZSBm ZWF0dXJlIGFjdHVhbGx5IGFyZSBub3QNCj4gdXNlZA0KPiA+Pj4gICAgKG5vIHBhY2tldHMgYXJl IHNjYXR0ZXJlZCBvciBtZXJnZWQpIGl0IHdpbGwgaHVydCB0aGUgcGVyZm9ybWFuY2UuDQo+ID4+ DQo+ID4+IFdlbGwsIGxhdGVzdCBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMgZG9lcyBub3Qgc2hv dyBhIGJpZyBpbXBhY3Qgbm93DQo+ID4+IG9uIGVuYWJsaW5nIG1lcmdlYWJsZSBidWZmZXJzIGZl YXR1cmUgdW5jb25kaXRpb25hbHkuDQo+ID4NCj4gPiBEaWQgeW91IHRlc3Qgc21hbGwgcGFja2V0 cyBcIGJpZz8NCj4gDQo+IDY0QiBwYWNrZXRzLCBpbiBub24tdmVjdG9yIG1vZGUgb24gVmlydGlv IFBNRCBzaWRlLg0KPiANCj4gPg0KPiA+Pj4gICAgU28gaWYgb25lIG9mIHRoZSBzaWRlcyBkb2Vz bid0IHdhbnQgdG8gdXNlIGl0IGJlY2F1c2Ugb2YNCj4gPj4+IHBlcmZvcm1hbmNlLCBpdA0KPiA+ PiBtYXkNCj4gPj4+ICAgIHdhbnQgdG8gZGlzYWJsZSBpdC4NCj4gPj4NCj4gPj4gQW5kIGV2ZW4g aWYgdGhlcmUgaXMgYW4gaW1wYWN0LCB0aGUgd2F5IHRvIGRpc2FibGUgaXQgaXMgdGhyb3VnaA0K PiA+PiBMaWJ2aXJ0L1FlbXUuDQo+ID4NCj4gPiBOb3Qgc3VyZSwgYXMgVFNPIGFwcGxpY2F0aW9u IG1heSBkZWNpZGUgdG8gbm90IGRvIGl0IGluIHNwaXRlIG9mIGl0IGlzDQo+IGNvbmZpZ3VyZWQg aW4gUWVtdS4NCj4gPg0KPiA+Pj4gICAgPiA+IFdoYXQgaWYgdGhlIHNlY29uZCBzaWRlIHdhbnQg aXQgYW5kIHRoZSBjdXJyZW50IHNpZGUgbm8/DQo+ID4+PiAgICA+DQo+ID4+PiAgICA+IFRoZSBm ZWF0dXJlIHdvbid0IGJlIG5lZ290aWF0ZWQsIGFzc3VtaW5nIGl0IGhhcyBiZWVuIGRpc2FibGVk DQo+ID4+PiBpbg0KPiA+PiBRRU1VDQo+ID4+PiAgICA+IGNtZGxpbmUgKG9yIHZpYSBsaWJ2aXJ0 KS4NCj4gPj4+ICAgID4gPiBJdCBtYXkgYmUgdGhhdCB0aGUgdmhvc3QgUE1EIHVzZXIgbWF5IHdh bnQgdG8gZGlzYWJsZSBpdCB0byBzYXZlDQo+ID4+PiAgICA+IHBlcmZvcm1hbmNlIGZyb20gc29t ZSByZWFzb25zLCBubz8NCj4gPj4+ICAgID4gPg0KPiA+Pj4gICAgPg0KPiA+Pj4gICAgPiBUaGVu IHRoaXMgdXNlciBzaG91bGQgZGlzYWJsZSBpdCBhdCBRRU1VIGxldmVsLg0KPiA+Pj4gICAgPg0K PiA+Pj4gICAgU28gdGhlIHZob3N0IFBNRCBpcyBub3Qgb25lIG9mIHRoZSBzaWRlcyB0byBkZWNp ZGU/DQo+ID4+PiAgICBJZiBzbywgd2h5IGRvIHdlIG5lZWQgdGhlIEFQSXMgdG8gY29uZmlndXJl IHRoZSBmZWF0dXJlcz8NCj4gPj4NCj4gPj4gQXJlIHlvdSB0YWxraW5nIGFib3V0IHRoZSBydGVf dmhvc3RfZHJpdmVyX3NldF9mZWF0dXJlcygpIGFuZCByZWxhdGVkDQo+ID4+IEFQSXM/DQo+ID4N Cj4gPiBZZXMNCj4gPg0KPiA+PiBUaGlzIGlzIHVzZWQgZm9yIGV4YW1wbGUgYnkgdGhlIGV4dGVy bmFsIGJhY2tlbmRzIHRoYXQgc3VwcG9ydA0KPiA+PiBmZWF0dXJlcyBzcGVjaWZpYyB0byB0aGUg YmFja2VuZCB0eXBlIChlLmcuIGNyeXB0byksIG9yIGFsc28gdXNlZCBieQ0KPiA+PiBPVlMtRFBE SywgdG8gZGlzYWJsZSBUU08uIFNvIHRoZXNlIHVzYWdlcyBhcmUgZm9yIGZ1bmN0aW9uYWwgcmVh c29ucywgbm90DQo+IHR1bmluZy4NCj4gPg0KPiA+IEV4YWN0bHksIGFwcGxpY2F0aW9ucyAobGlr ZSBPVlMpIG1heSBkZWNpZGUgdG8gZGlzYWJsZSBmZWF0dXJlcyBiZWNhdXNlIGEgbG90DQo+IG9m IHJlYXNvbnMuDQo+ID4NCj4gPj4+ICAgIExvb2tzIGxpa2UgYWxzbyB0aGUgcWVtdSBpcyBjb25m aWd1cmVkIHdpdGggdGhlIGZlYXR1cmUgdGhlIFZNXGhvc3QNCj4gc2lkZXMNCj4gPj4+ICAgIG1h eSBkZWNpZGUgaW4gc29tZSBjYXNlcyB0byBkaXNhYmxlIGl0Lg0KPiA+Pg0KPiA+PiBGb3IgZnVu Y3Rpb25hbCByZWFzb25zLCBJIGFncmVlLiBTbyBJIHRoYXQncyB3aHkgSSBhZ3JlZSB3aXRoIHlv dXINCj4gPj4gdHNvIHBhdGNoIGFzIHRoZSBhcHBsaWNhdGlvbiBoYXMgdG8gc3VwcG9ydCBpdCwg YnV0IHRoYXQncyBub3QgdGhlDQo+ID4+IGNhc2Ugb2YgdGhlIG1lcmdlYWJsZSBidWZmZXJzIGZl YXR1cmVzLg0KPiA+DQo+ID4gUGVyZm9ybWFuY2UgcmVhc29ucyBhcmUgbm90IGdvb2QgZW5vdWdo Pw0KPiANCj4gTm8sIHRoYXQncyBub3Qgd2hhdCBJIG1lYW4uDQo+IEkgbWVhbiB0aGF0IHRoZSBh cHBsaWNhdGlvbiBzaG91bGQgYmUgYWJsZSB0byBkaXNhYmxlIGEgZmVhdHVyZSB3aGVuIGl0IGRv ZXMNCj4gbm90IG1lZXQgdGhlIGZ1bmN0aW9uYWwgcmVxdWlyZW1lbnQuDQo+IA0KPiBGb3IgcGVy Zm9ybWFuY2UgdHVuaW5nLCB0aGUgcWVtdSB3YXkgaXMgYXZhaWxhYmxlLCBhbmQgZW5vdWdoLg0K PiANCg0KSSB0aGluayB0aGF0IHRoaXMgaXMgdGhlIHBvaW50IHdlIGFyZSBub3QgYWdyZWUgb24u DQoNCkkgdGhpbmsgdGhhdCBhcHBsaWNhdGlvbiBtYXkgd2FudCB0byBkaXNhYmxlIHRoZSBmZWF0 dXJlIGluIHNvbWUgY2FzZXMgYmVjYXVzZSBvZiBwZXJmb3JtYW5jZSByZWFzb25zIChtYXliZSBv dGhlcnMgdG9vKSwgDQpBbmQgaW4gc29tZSBvdGhlciBjYXNlcyB0byB3b3JrIHdpdGggdGhlIGZl YXR1cmUuDQoNClNvLCBpdCBtYWtlcyBzZW5zZSBJTU8gdG8gbGV0IHRoZSBhcHBsaWNhdGlvbiB0 byBkZWNpZGUgd2hhdCBpdCB3YW50cyB3aXRob3V0IGFueSBjb25jZXJuIGFib3V0IHRoZSBRRU1V IGNvbmZpZ3VyYXRpb24uDQoNCldoeSB0byBub3QgYWxsb3cgdG8gdGhlIFBNRCB1c2VyIHRvIGRv IGl0IGJ5IHRoZSBhcHBsaWNhdGlvbiAodXNpbmcgcHJvYiBwYXJhbWV0ZXJzKT8NCg0KDQo+ID4N Cj4gPj4gVGl3ZWksIHdoYXQncyB5b3VyIG9waW5pb24gb24gdGhpcz8NCj4gPj4NCj4gPj4+ICAg ID4gUmVnYXJkcywNCj4gPj4+ICAgID4gTWF4aW1lDQo+ID4+Pg0K