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 1C296A0505; Wed, 30 Mar 2022 04:02:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B4733406B4; Wed, 30 Mar 2022 04:02:18 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id E3AB940696 for ; Wed, 30 Mar 2022 04:02:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648605736; x=1680141736; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=zBkaVOtNmFKtdrDpW1EuSzfMThOhHJsjABiKAUnGf6s=; b=XdvX/HR00PKrYVlXLKahoj/iBc2VdycbyfEDhTeDluuWZ14gmwKWe8TH n+vhgdok7bVBDWMSHj5ArB11JxQ37eo9du6KonWz+iQz6pZqnCs/26s5H 4S3DErtFcv05yNwWklkRO3ROpLp4+V34UAqfoK7KDM58DI6IvhwexdS0P WbK54ZseOBIlyNzdS5RPsyJUNqZeqfnUucCCMfbjo44Fy+HEu5Or9JDAD ghg3mnoYazaFY0FJADk3nEmD+I0aEdJQGkQE3RJ2uk7kTCcBf0icNQfMe oQODB27dI9e9HL/ft1Vb40LPNIPBMi0Pt4Vzot01MlDuohtimWVuk9q4M Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10301"; a="258254152" X-IronPort-AV: E=Sophos;i="5.90,221,1643702400"; d="scan'208";a="258254152" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2022 19:02:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,221,1643702400"; d="scan'208";a="554483317" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga007.fm.intel.com with ESMTP; 29 Mar 2022 19:02:14 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 29 Mar 2022 19:02:14 -0700 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 29 Mar 2022 19:02:12 -0700 Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.2308.027; Wed, 30 Mar 2022 10:02:10 +0800 From: "Hu, Jiayu" To: Ilya Maximets , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Richardson, Bruce" CC: Maxime Coquelin , "Van Haaren, Harry" , "Pai G, Sunil" , "Stokes, Ian" , "Ferriter, Cian" , "ovs-dev@openvswitch.org" , "dev@dpdk.org" , "Mcnamara, John" , "O'Driscoll, Tim" , "Finn, Emma" Subject: RE: OVS DPDK DMA-Dev library/Design Discussion Thread-Topic: OVS DPDK DMA-Dev library/Design Discussion Thread-Index: Adg/jDNGcC8G4wWtSxeVfUOuAS3Y6wACLuFQAM6falAAJoZBIAAA0srQAAK2F/D//51mAIAABeuAgAAFBYCAAALtgIAACNmA//71HyA= Date: Wed, 30 Mar 2022 02:02:10 +0000 Message-ID: <431821f0b06d45958f67cb157029d306@intel.com> References: <98CBD80474FA8B44BF855DF32C47DC35D86F7C@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D86F7D@smartserver.smartshare.dk> <7968dd0b-8647-8d7b-786f-dc876bcbf3f0@redhat.com> <98CBD80474FA8B44BF855DF32C47DC35D86F7E@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D86F80@smartserver.smartshare.dk> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.401.20 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSWx5YSBNYXhpbWV0cyA8 aS5tYXhpbWV0c0Bvdm4ub3JnPg0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDMwLCAyMDIyIDE6 NDUgQU0NCj4gVG86IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+OyBS aWNoYXJkc29uLCBCcnVjZQ0KPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+IENjOiBp Lm1heGltZXRzQG92bi5vcmc7IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhh dC5jb20+Ow0KPiBWYW4gSGFhcmVuLCBIYXJyeSA8aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+ OyBQYWkgRywgU3VuaWwNCj4gPHN1bmlsLnBhaS5nQGludGVsLmNvbT47IFN0b2tlcywgSWFuIDxp YW4uc3Rva2VzQGludGVsLmNvbT47IEh1LCBKaWF5dQ0KPiA8amlheXUuaHVAaW50ZWwuY29tPjsg RmVycml0ZXIsIENpYW4gPGNpYW4uZmVycml0ZXJAaW50ZWwuY29tPjsgb3ZzLQ0KPiBkZXZAb3Bl bnZzd2l0Y2gub3JnOyBkZXZAZHBkay5vcmc7IE1jbmFtYXJhLCBKb2huDQo+IDxqb2huLm1jbmFt YXJhQGludGVsLmNvbT47IE8nRHJpc2NvbGwsIFRpbSA8dGltLm9kcmlzY29sbEBpbnRlbC5jb20+ Ow0KPiBGaW5uLCBFbW1hIDxlbW1hLmZpbm5AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogT1ZT IERQREsgRE1BLURldiBsaWJyYXJ5L0Rlc2lnbiBEaXNjdXNzaW9uDQo+IA0KPiBPbiAzLzI5LzIy IDE5OjEzLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNv biBbbWFpbHRvOmJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tXQ0KPiA+PiBTZW50OiBUdWVzZGF5 LCAyOSBNYXJjaCAyMDIyIDE5LjAzDQo+ID4+DQo+ID4+IE9uIFR1ZSwgTWFyIDI5LCAyMDIyIGF0 IDA2OjQ1OjE5UE0gKzAyMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+Pj4+IEZyb206IE1h eGltZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiA+Pj4+ IFNlbnQ6IFR1ZXNkYXksIDI5IE1hcmNoIDIwMjIgMTguMjQNCj4gPj4+Pg0KPiA+Pj4+IEhpIE1v cnRlbiwNCj4gPj4+Pg0KPiA+Pj4+IE9uIDMvMjkvMjIgMTY6NDQsIE1vcnRlbiBCcsO4cnVwIHdy b3RlOg0KPiA+Pj4+Pj4gRnJvbTogVmFuIEhhYXJlbiwgSGFycnkgW21haWx0bzpoYXJyeS52YW4u aGFhcmVuQGludGVsLmNvbV0NCj4gPj4+Pj4+IFNlbnQ6IFR1ZXNkYXksIDI5IE1hcmNoIDIwMjIg MTUuMDINCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4gRnJvbTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0 c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPj4+Pj4+PiBTZW50OiBUdWVzZGF5LCBNYXJjaCAyOSwgMjAy MiAxOjUxIFBNDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBIYXZpbmcgdGhvdWdodCBtb3JlIGFib3V0 IGl0LCBJIHRoaW5rIHRoYXQgYSBjb21wbGV0ZWx5DQo+ID4+IGRpZmZlcmVudA0KPiA+Pj4+IGFy Y2hpdGVjdHVyYWwgYXBwcm9hY2ggaXMgcmVxdWlyZWQ6DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBN YW55IG9mIHRoZSBEUERLIEV0aGVybmV0IFBNRHMgaW1wbGVtZW50IGEgdmFyaWV0eSBvZiBSWCBh bmQgVFgNCj4gPj4+PiBwYWNrZXQgYnVyc3QgZnVuY3Rpb25zLCBlYWNoIG9wdGltaXplZCBmb3Ig ZGlmZmVyZW50IENQVSB2ZWN0b3INCj4gPj4+PiBpbnN0cnVjdGlvbiBzZXRzLiBUaGUgYXZhaWxh YmlsaXR5IG9mIGEgRE1BIGVuZ2luZSBzaG91bGQgYmUNCj4gPj4gdHJlYXRlZA0KPiA+Pj4+IHRo ZSBzYW1lIHdheS4gU28gSSBzdWdnZXN0IHRoYXQgUE1EcyBjb3B5aW5nIHBhY2tldCBjb250ZW50 cywgZS5nLg0KPiA+Pj4+IG1lbWlmLCBwY2FwLCB2bXhuZXQzLCBzaG91bGQgaW1wbGVtZW50IERN QSBvcHRpbWl6ZWQgUlggYW5kIFRYDQo+ID4+IHBhY2tldA0KPiA+Pj4+IGJ1cnN0IGZ1bmN0aW9u cy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNpbWlsYXJseSBmb3IgdGhlIERQREsgdmhvc3QgbGli cmFyeS4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEluIHN1Y2ggYW4gYXJjaGl0ZWN0dXJlLCBpdCB3 b3VsZCBiZSB0aGUgYXBwbGljYXRpb24ncyBqb2IgdG8NCj4gPj4+PiBhbGxvY2F0ZSBETUEgY2hh bm5lbHMgYW5kIGFzc2lnbiB0aGVtIHRvIHRoZSBzcGVjaWZpYyBQTURzIHRoYXQNCj4gPj4gc2hv dWxkDQo+ID4+Pj4gdXNlIHRoZW0uIEJ1dCB0aGUgYWN0dWFsIHVzZSBvZiB0aGUgRE1BIGNoYW5u ZWxzIHdvdWxkIG1vdmUgZG93bg0KPiA+PiBiZWxvdw0KPiA+Pj4+IHRoZSBhcHBsaWNhdGlvbiBh bmQgaW50byB0aGUgRFBESyBQTURzIGFuZCBsaWJyYXJpZXMuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+IE1lZCB2ZW5saWcgaGlsc2VuIC8gS2luZCByZWdhcmRzLCAtTW9ydGVuIEJy w7hydXANCj4gPj4+Pj4+DQo+ID4+Pj4+PiBIaSBNb3J0ZW4sDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g VGhhdCdzICpleGFjdGx5KiBob3cgdGhpcyBhcmNoaXRlY3R1cmUgaXMgZGVzaWduZWQgJg0KPiA+ PiBpbXBsZW1lbnRlZC4NCj4gPj4+Pj4+IDEuCVRoZSBETUEgY29uZmlndXJhdGlvbiBhbmQgaW5p dGlhbGl6YXRpb24gaXMgdXAgdG8gdGhlDQo+ID4+IGFwcGxpY2F0aW9uDQo+ID4+Pj4gKE9WUyku DQo+ID4+Pj4+PiAyLglUaGUgVkhvc3QgbGlicmFyeSBpcyBwYXNzZWQgdGhlIERNQS1kZXYgSUQs IGFuZCBpdHMgbmV3DQo+ID4+IGFzeW5jDQo+ID4+Pj4gcngvdHggQVBJcywgYW5kIHVzZXMgdGhl IERNQSBkZXZpY2UgdG8gYWNjZWxlcmF0ZSB0aGUgY29weS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBM b29raW5nIGZvcndhcmQgdG8gdGFsa2luZyBvbiB0aGUgY2FsbCB0aGF0IGp1c3Qgc3RhcnRlZC4N Cj4gPj4gUmVnYXJkcywgLQ0KPiA+Pj4+IEhhcnJ5DQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+ PiBPSywgdGhhbmtzIC0gYXMgSSBzYWlkIG9uIHRoZSBjYWxsLCBJIGhhdmVuJ3QgbG9va2VkIGF0 IHRoZQ0KPiA+PiBwYXRjaGVzLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGVuLCBJIHN1cHBvc2UgdGhh dCB0aGUgVFggY29tcGxldGlvbnMgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIFRYDQo+ID4+Pj4gZnVu Y3Rpb24sIGFuZCB0aGUgUlggY29tcGxldGlvbnMgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIFJYIGZ1 bmN0aW9uLA0KPiA+Pj4+IGp1c3QgbGlrZSB0aGUgRXRoZGV2IFBNRHMgaGFuZGxlIHBhY2tldCBk ZXNjcmlwdG9yczoNCj4gPj4+Pj4NCj4gPj4+Pj4gVFhfQnVyc3QodHhfcGFja2V0X2FycmF5KToN Cj4gPj4+Pj4gMS4JQ2xlYW4gdXAgZGVzY3JpcHRvcnMgcHJvY2Vzc2VkIGJ5IHRoZSBOSUMgY2hp cC4gLS0+IFByb2Nlc3MNCj4gPj4gVFgNCj4gPj4+PiBETUEgY2hhbm5lbCBjb21wbGV0aW9ucy4g KEVmZmVjdGl2ZWx5LCB0aGUgMm5kIHBpcGVsaW5lIHN0YWdlLikNCj4gPj4+Pj4gMi4JUGFzcyBv biB0aGUgdHhfcGFja2V0X2FycmF5IHRvIHRoZSBOSUMgY2hpcCBkZXNjcmlwdG9ycy4gLS0NCj4g Pj4+IFBhc3MNCj4gPj4+PiBvbiB0aGUgdHhfcGFja2V0X2FycmF5IHRvIHRoZSBUWCBETUEgY2hh bm5lbC4gKEVmZmVjdGl2ZWx5LCB0aGUgMXN0DQo+ID4+Pj4gcGlwZWxpbmUgc3RhZ2UuKQ0KPiA+ Pj4+DQo+ID4+Pj4gVGhlIHByb2JsZW0gaXMgVHggZnVuY3Rpb24gbWlnaHQgbm90IGJlIGNhbGxl ZCBhZ2Fpbiwgc28gZW5xdWV1ZWQNCj4gPj4+PiBwYWNrZXRzIGluIDIuIG1heSBuZXZlciBiZSBj b21wbGV0ZWQgZnJvbSBhIFZpcnRpbyBwb2ludCBvZiB2aWV3Lg0KPiA+PiBJT1csDQo+ID4+Pj4g dGhlIHBhY2tldHMgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIFZpcnRpbyBkZXNjcmlwdG9ycyBidWZm ZXJzLCBidXQNCj4gPj4gdGhlDQo+ID4+Pj4gZGVzY3JpcHRvcnMgd2lsbCBub3QgYmUgbWFkZSBh dmFpbGFibGUgdG8gdGhlIFZpcnRpbyBkcml2ZXIuDQo+ID4+Pg0KPiA+Pj4gSW4gdGhhdCBjYXNl LCB0aGUgYXBwbGljYXRpb24gbmVlZHMgdG8gY2FsbCBUWF9CdXJzdCgpIHBlcmlvZGljYWxseQ0K PiA+PiB3aXRoIGFuIGVtcHR5IGFycmF5LCBmb3IgY29tcGxldGlvbiBwdXJwb3Nlcy4NCj4gPj4+ DQo+ID4+PiBPciBzb21lIHNvcnQgb2YgVFhfS2VlcGFsaXZlKCkgZnVuY3Rpb24gY2FuIGJlIGFk ZGVkIHRvIHRoZSBEUERLDQo+ID4+IGxpYnJhcnksIHRvIGhhbmRsZSBETUEgY29tcGxldGlvbi4g SXQgbWlnaHQgZXZlbiBoYW5kbGUgbXVsdGlwbGUgRE1BDQo+ID4+IGNoYW5uZWxzLCBpZiBjb252 ZW5pZW50IC0gYW5kIGlmIHBvc3NpYmxlIHdpdGhvdXQgbG9ja2luZyBvciBvdGhlcg0KPiA+PiB3 ZWlyZCBjb21wbGV4aXR5Lg0KPiA+Pj4NCj4gPj4+IEhlcmUgaXMgYW5vdGhlciBpZGVhLCBpbnNw aXJlZCBieSBhIHByZXNlbnRhdGlvbiBhdCBvbmUgb2YgdGhlIERQREsNCj4gPj4gVXNlcnNwYWNl IGNvbmZlcmVuY2VzLiBJdCBtYXkgYmUgd2lzaGZ1bCB0aGlua2luZywgdGhvdWdoOg0KPiA+Pj4N Cj4gPj4+IEFkZCBhbiBhZGRpdGlvbmFsIHRyYW5zYWN0aW9uIHRvIGVhY2ggRE1BIGJ1cnN0OyBh IHNwZWNpYWwNCj4gPj4gdHJhbnNhY3Rpb24gY29udGFpbmluZyB0aGUgbWVtb3J5IHdyaXRlIG9w ZXJhdGlvbiB0aGF0IG1ha2VzIHRoZQ0KPiA+PiBkZXNjcmlwdG9ycyBhdmFpbGFibGUgdG8gdGhl IFZpcnRpbyBkcml2ZXIuDQo+IA0KPiBJIHdhcyB0YWxraW5nIHdpdGggTWF4aW1lIGFmdGVyIHRo ZSBjYWxsIHRvZGF5IGFib3V0IHRoZSBzYW1lIGlkZWEuDQo+IEFuZCBpdCBsb29rcyBmYWlybHkg ZG9hYmxlLCBJIHdvdWxkIHNheS4NCg0KSWYgdGhlIGlkZWEgaXMgbWFraW5nIERNQSB1cGRhdGUg dXNlZCByaW5nJ3MgaW5kZXggKDJCKSBhbmQgcGFja2VkIHJpbmcgZGVzY3JpcHRvcidzIGZsYWcg KDJCKSwNCnllcywgaXQgd2lsbCB3b3JrIGZ1bmN0aW9uYWxseS4gQnV0IGNvbnNpZGVyaW5nIHRo ZSBvZmZsb2FkaW5nIGNvc3Qgb2YgRE1BLCBpdCB3b3VsZCBodXJ0DQpwZXJmb3JtYW5jZS4gSW4g YWRkaXRpb24sIHRoZSBsYXRlbmN5IG9mIHNtYWxsIGNvcHkgb2YgRE1BIGlzIG11Y2ggaGlnaGVy IHRoYW4gdGhhdCBvZg0KQ1BVLiBTbyBpdCB3aWxsIGFsc28gaW5jcmVhc2UgbGF0ZW5jeS4NCg0K PiANCj4gPj4+DQo+ID4+DQo+ID4+IFRoYXQgaXMgc29tZXRoaW5nIHRoYXQgY2FuIHdvcmssIHNv IGxvbmcgYXMgdGhlIHJlY2VpdmVyIGlzIG9wZXJhdGluZw0KPiA+PiBpbiBwb2xsaW5nIG1vZGUu IEZvciBjYXNlcyB3aGVyZSB2aXJ0aW8gaW50ZXJydXB0cyBhcmUgZW5hYmxlZCwgeW91DQo+ID4+ IHN0aWxsIG5lZWQgdG8gZG8gYSB3cml0ZSB0byB0aGUgZXZlbnRmZCBpbiB0aGUga2VybmVsIGlu IHZob3N0IHRvDQo+ID4+IHNpZ25hbCB0aGUgdmlydGlvIHNpZGUuIFRoYXQncyBub3Qgc29tZXRo aW5nIHRoYXQgY2FuIGJlIG9mZmxvYWRlZCB0bw0KPiA+PiBhIERNQSBlbmdpbmUsIHNhZGx5LCBz byB3ZSBzdGlsbCBuZWVkIHNvbWUgZm9ybSBvZiBjb21wbGV0aW9uIGNhbGwuDQo+ID4NCj4gPiBJ IGd1ZXNzIHRoYXQgdmlydGlvIGludGVycnVwdHMgaXMgdGhlIG1vc3Qgd2lkZWx5IGRlcGxveWVk IHNjZW5hcmlvLA0KPiA+IHNvIGxldCdzIGlnbm9yZSB0aGUgRE1BIFRYIGNvbXBsZXRpb24gdHJh bnNhY3Rpb24gZm9yIG5vdyAtIGFuZCBjYWxsDQo+ID4gaXQgYSBwb3NzaWJsZSBmdXR1cmUgb3B0 aW1pemF0aW9uIGZvciBzcGVjaWZpYyB1c2UgY2FzZXMuIFNvIGl0IHNlZW1zDQo+ID4gdGhhdCBz b21lIGZvcm0gb2YgY29tcGxldGlvbiBjYWxsIGlzIHVuYXZvaWRhYmxlLg0KPiA+DQo+IA0KPiBX ZSBjb3VsZCBzZXBhcmF0ZSB0aGUgYWN0dWFsIGtpY2sgb2YgdGhlIGd1ZXN0IHdpdGggdGhlIGRh dGEgdHJhbnNmZXIuDQo+IElmIGludGVycnVwdHMgYXJlIGVuYWJsZWQsIHRoaXMgbWVhbnMgdGhh dCB0aGUgZ3Vlc3QgaXMgbm90IGFjdGl2ZWx5IHBvbGxpbmcsIGkuZS4NCj4gd2UgY2FuIGFsbG93 IHNvbWUgZXh0cmEgbGF0ZW5jeSBieSBwZXJmb3JtaW5nIHRoZSBhY3R1YWwga2ljayBmcm9tIHRo ZSByeA0KPiBjb250ZXh0LCBvciwgYXMgTWF4aW1lIHNhaWQsIGlmIERNQSBlbmdpbmUgY2FuIGdl bmVyYXRlIGludGVycnVwdHMgd2hlbiB0aGUNCj4gRE1BIHF1ZXVlIGlzIGVtcHR5LCB2aG9zdCB0 aHJlYWQgbWF5IGxpc3RlbiB0byB0aGVtIGFuZCBraWNrIHRoZSBndWVzdCBpZg0KPiBuZWVkZWQu ICBUaGlzIHdpbGwgYWRkaXRpb25hbGx5IHJlbW92ZSB0aGUgZXh0cmEgc3lzdGVtIGNhbGwgZnJv bSB0aGUgZmFzdA0KPiBwYXRoLg0KDQpTZXBhcmF0aW5nIGtpY2sgd2l0aCBkYXRhIHRyYW5zZmVy IGlzIGEgdmVyeSBnb29kIGlkZWEuIEJ1dCBpdCByZXF1aXJlcyBhIGRlZGljYXRlZA0KY29udHJv bCBwbGFuZSB0aHJlYWQgdG8ga2ljayBndWVzdCBhZnRlciBETUEgaW50ZXJydXB0LiBBbnl3YXks IHdlIGNhbiB0cnkgdGhpcw0Kb3B0aW1pemF0aW9uIGluIHRoZSBmdXR1cmUuDQoNClRoYW5rcywN CkppYXl1DQo=