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 DB0FCA0562; Sat, 4 Apr 2020 20:07:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 39DE34C8A; Sat, 4 Apr 2020 20:07:25 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 2A5853B5 for ; Sat, 4 Apr 2020 20:07:23 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 034I5f5M017009; Sat, 4 Apr 2020 11:07:22 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=pfpt0818; bh=ov7piaMqPoRWIgMccUSK+F6zBqkRszQux7NVWqxvPIU=; b=xNfNP6O+tL9s/bqibGWW8tgH8Jvwjq6IGBQPFAKWZ8NCC2kFHaF943hAbkqQxAM5hy4x TYzzVaHrkqGvZ3IkiJlX+fiaqt8hbqx17zof6qnyg8IKV1MibQUuQ+6b6MCtz25UBEaH mU8RsL/2T1/rR/8MHA7HOFbW4tonK3qppYisV8al5L4H63UnPoKZfLL9k9Ssx1uyZE5R OqRSPvOZ3AQQoQh07ZlN+YR99rKOOaJFARPNetpaFs+ZfeM96fabJCBEu23ld9Eml3xc 2E+v7dBDJJHfomN6Kxac9opdHRzwV6+w22G9IKSANLYwkJyx2XtPC990Rg550YK0EfOO hg== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 306srm0twr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 04 Apr 2020 11:07:22 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 4 Apr 2020 11:07:20 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.176) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Sat, 4 Apr 2020 11:07:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jbUGcHQE33Ax0Ox58PyWiuDBohZyqbSkREsCW6EP4SK2mLXkanAKZFSxVdGKr/9OQsWTHmOAQam46A2VQugaPXQtaP1zwDBEqOyOcEvuhhoI2MmPwCgg7oqmmzRJMZo4xYFYmHN7HT6wZ37ndhQngWrue+veJmuRYfA+gXl4qKsfTs4RVubQhx6huWPdVLfpsX1C8H0swSQUvywTxdVfu9ySmn89W0iRi5BtX+j/mWzoAdcAls84OExmX4/v6sbT39mRKqiuYpEy8lWhm67clJWtW4AiLNfxE19ZiVquGQX+jaPTGHTc/IB5EazruwWSf9WbcWEXaNDgCOGomB6xkg== 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-SenderADCheck; bh=ov7piaMqPoRWIgMccUSK+F6zBqkRszQux7NVWqxvPIU=; b=JybAHEB4g+2bpj7v69WZTOoqsTDfeZNT6Qad9kthqE3WtWYBzw1L8j5xd4LaZOVY37smKeEAZ05VajkQL4bbJqFeB7nMzrYZ8fgHa7q4+UqkGrUdhpGXebdlgq7jn0Mcu97LY9eXCT1/lp5p/RpVBEBGKBIJ5VdTaEDQf3zQKgcN8fPyiUDgqy2VGNlJ/8XueA+vStu+6VpBkYf/TvCtUbpBXP8fr4CY3lj+tCM4sqco+FdHZCwQrtTcBSdDvv43HD8vwZzlSsrFGy6DMvlDbpCXT0Ik40TTjHnoPj4LrpMp4F6wDCCJwr5ftbQvpYXwwJ1YFocgq4Q4vpOwWwMj9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ov7piaMqPoRWIgMccUSK+F6zBqkRszQux7NVWqxvPIU=; b=omMy2Bmo2BifTjgpw2CDlc/qZNl+j25zbci/mWtb/gEg5KPH1/DwqGxLvETQzyeJsKdzJygfkzJCzxTRg6Ecc+HVNnwdm5n1/OEynAUIiCjq2zHZCpPzFk/OVxpjR+s2Uh09vJAmzg87I0ZrcUEnnvEmb1eJh7bw90K7sORdcnk= Received: from DM6PR18MB3004.namprd18.prod.outlook.com (2603:10b6:5:18c::18) by DM6PR18MB3338.namprd18.prod.outlook.com (2603:10b6:5:1c4::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.19; Sat, 4 Apr 2020 18:07:18 +0000 Received: from DM6PR18MB3004.namprd18.prod.outlook.com ([fe80::d5ea:e0a6:a026:2d46]) by DM6PR18MB3004.namprd18.prod.outlook.com ([fe80::d5ea:e0a6:a026:2d46%5]) with mapi id 15.20.2878.018; Sat, 4 Apr 2020 18:07:12 +0000 From: "Andrzej Ostruszka [C]" To: Thomas Monjalon CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2 0/4] Introduce IF proxy library Thread-Index: AQHWCqvdCKy+GcHXz0CImEBpMAL72A== Date: Sat, 4 Apr 2020 18:07:12 +0000 Message-ID: <9c033551-481e-d90e-9cc6-b10e627512c1@marvell.com> References: <20200306164104.15528-1-aostruszka@marvell.com> <20200310111037.31451-1-aostruszka@marvell.com> <6610147.nAD6y4vbrC@xps> In-Reply-To: <6610147.nAD6y4vbrC@xps> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [5.173.41.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9315edfc-8c65-4065-8ad3-08d7d8c2ffea x-ms-traffictypediagnostic: DM6PR18MB3338: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 03630A6A4A x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR18MB3004.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(376002)(366004)(346002)(136003)(396003)(39850400004)(478600001)(6916009)(31686004)(36756003)(71200400001)(86362001)(76116006)(66446008)(66556008)(2616005)(81166006)(6512007)(31696002)(64756008)(316002)(8676002)(6486002)(2906002)(91956017)(4326008)(5660300002)(6506007)(66476007)(81156014)(53546011)(26005)(8936002)(186003)(66946007); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: y2zWP/cc2d5MqEJY7lBFleiGyc4nX3QMr1IQhdiLUw18+B4IowjizNxUAkuath/1x6qLcKbrxe62bxXOYl3Qk+6UsiVxwhMbExto0Hisk54TyF0KRq6CSGqgOzpNSAfPFhGnSVbooKiHgmXN0/F79veq6E8RkEriQxj+e+7hDiLJfH2zBmgmHDnFRwFGX41X+9JS9EIc5mrx8yWjga0NdG8U9E6mXvasWfkogJz0yqg5X/bf1BUXSq1XBQn78UvkVi7psSjX8YrT+T9rBGQK1fB/Vt4ldP6CsV2q+kUPg3QnPlJLcw70XpGB9bUkGV7wGOf8HbmuHfcAJvD2ZmkweXhNQfyfRgeWSHfOz4LWEhD98+h6Am/EsVLELPpuKj2Li6di09wJ8HEc65ee5knS8Ao+nt0kNBpAOlAn7I0eg1s7XYRYwAIctGdc2VOdTglz x-ms-exchange-antispam-messagedata: J1b6GVy97wcbInbwd/HksNaDxlSOrcB9nkBvKqaz9HF7Ya1qKOwHniUAEdCz4DpLYGe5QOWbqwt5tLrP5ruDQ8mGDceCL40BSTOqGasiOFUdffMVBvEjuWqXPkfari/QWsFG4KR3sVcJHfwOi9NYZA== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <15B32908F47E4542A1D7C9A4C5BF1FCB@namprd18.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 9315edfc-8c65-4065-8ad3-08d7d8c2ffea X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2020 18:07:12.3611 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4qHAW3u1LWHFZBUyTPm6/LlKVza7Hc4rpONtR8fXAHgUs3cu73y30RcvLdwxoVpXLR6IspXH4Ahi7MczOuJzPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR18MB3338 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-04_15:2020-04-03, 2020-04-04 signatures=0 Subject: Re: [dpdk-dev] [PATCH v2 0/4] Introduce IF proxy library 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" Rmlyc3Qgb2YgYWxsIFRob21hcywgdGhhbmsgeW91IGZvciB0YWtpbmcgdGltZSB0byBsb29rIGF0 IHRoaXMuDQoNClBsZWFzZSBzY3JvbGwgYmVsb3cgZm9yIG15IGNvbW1lbnRzLiAgSXQgbG9va3Mg bGlrZSB3ZSBhcmUgZ29pbmcgdG8NCmRldG91ciBhIGJpdCBmb3IgYSBnZW5lcmFsIGNvbmZpZyBt ZWNoYW5pc20gb24gdG9wIG9mIHdoaWNoIHdlIGNhbg0KInJlYmFzZSIgSUYgUHJveHkgYW5kIG90 aGVyIGxpYnMvYXBwcy4NCg0KTm90ZSAtIHNpbmNlIEkgb2Z0ZW4gbGlrZSB0byB0aGluayBpbiBj b25jcmV0ZSB0ZXJtcyBJIG1pZ2h0IGJlDQpzd2l0Y2hpbmcgYmV0d2VlbiBnZW5lcmFsIGNvbW1l bnRzIGFuZCBzcGVjaWZpYyBleGFtcGxlcy4NCg0KT24gNC8zLzIwIDExOjQyIFBNLCBUaG9tYXMg TW9uamFsb24gd3JvdGU6DQo+IEhpIEFuZHJ6ZWosDQpbLi4uXQ0KPiAxMC8wMy8yMDIwIDEyOjEw LCBBbmRyemVqIE9zdHJ1c3prYToNClsuLi5dDQo+PiBUaGUgcHVycG9zZSBvZiB0aGlzIGxpYnJh cnkgaXMgdG8gaGVscCB3aXRoIGJvdGggb2YgdGhlc2UgdGFza3MgKGFzIGxvbmcNCj4+IGFzIHRo ZXkgcmVtYWluIGluIGRvbWFpbiBvZiBjb25maWd1cmF0aW9uIGF2YWlsYWJsZSB0byB0aGUgc3lz dGVtKS4gIEluDQo+PiBvdGhlciB3b3JkcywgaWYgRFBESyBhcHBsaWNhdGlvbiBoYXMgc29tZSBz cGVjaWFsIG5lZWRzLCB0aGF0IGNhbm5vdCBiZQ0KPj4gYWRkcmVzc2VkIGJ5IHRoZSBub3JtYWwg c3lzdGVtIGNvbmZpZ3VyYXRpb24gdXRpbGl0aWVzLCB0aGVuIHRoZXkgbmVlZA0KPj4gdG8gYmUg c29sdmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBpdHNlbGYuDQo+IA0KPiBJbiBhbnkgY2FzZSwgdGhl IGFwcGxpY2F0aW9uIG11c3QgYmUgaW4gdGhlIGxvb3AuDQo+IFRoZSBhcHBsaWNhdGlvbiBzaG91 bGQgYWx3YXlzIHJlbWFpbiBpbiBjb250cm9sLg0KDQpPSyAtIHNvIGxldCBtZSB0cnkgdG8gdW5k ZXJzdGFuZCB3aGF0IHlvdSBtZWFuIGhlcmUgb24gdGhlIGV4YW1wbGUgb2YNCnRoaXMgSUYgUHJv eHkuICBJIHdhbnRlZCAoYW5kIHRoYXQgaXMgYW4gZXhwbGljaXQgZ29hbCkgdG8gdXNlIGlwcm91 dGUyDQp0b29scyB0byBjb25maWd1cmUgRFBESyBwb3J0cy4gIEluIHRoaXMgY29udGV4dCBhbGxv d2luZyBhcHBsaWNhdGlvbiB0bw0KaGF2ZSBjb250cm9sIG1pZ2h0IG1lYW4gdHdvIHRoaW5nczoN Cg0KLSBhcHBsaWNhdGlvbiBjYW4gYWNjZXB0L2lnbm9yZS9kZW55IGNoYW5nZSByZXF1ZXN0ZWQg YnkgdGhlIHVzZXIgZnJvbQ0KdGhlIHNoZWxsIGluIGEgZHluYW1pYyB3YXkgKGJhc2VkIG9uIHNv bWUgc3RhdGUvZXZlbnQvLi4uKQ0KDQotIGFwcGxpY2F0aW9uIHdyaXRlciBoYXZlIGEgY2hvaWNl IHRvIGJpbmQgb3Igbm90LCBidXQgb25jZSB0aGUgcHJveHkgaXMNCmJvdW5kIHlvdSBzaW1wbHkg YWNjZXB0IHRoZSByZXF1ZXN0cyAtIGp1c3QgbGlrZSB5b3UgYWNjZXB0IHVzZXINCnJlcXVlc3Rz IGluIGUuZy4gdGVzdHBtZCBzaGVsbC4NCg0KU28gLi4uDQoNCj4gV2hlbiBxdWVyeWluZyBzb21l IGluZm9ybWF0aW9uLCBub3RoaW5nIG5lZWQgdG8gYmUgY29udHJvbGxlZCBJIGd1ZXNzLg0KPiBC dXQgd2hlbiBhZGp1c3Rpbmcgc29tZSBjb25maWd1cmF0aW9uLCB0aGUgYXBwbGljYXRpb24gbXVz dCBiZSBhYmxlDQo+IHRvIGJlIG5vdGlmaWVkIGFuZCBkZWNpZGUgd2hpY2ggY2hhbmdlIGlzIGFs bG93ZWQuDQo+IE9mIGNvdXJzZSwgdGhlIGFwcGxpY2F0aW9uIG1pZ2h0IGFsbG93IGJlaW5nIGJ5 cGFzc2VkLg0KDQouLi4gaXQgbG9va3MgbGlrZSB5b3UgYXJlIHRhbGtpbmcgYWJvdXQgdGhlIGZp cnN0IG9wdGlvbiAoImJ5cGFzcyIgaXMgSQ0KZ3Vlc3MgdGhlIHNlY29uZCBvcHRpb24pLiAgSW4g dGhlIGNvbmNyZXRlIGV4YW1wbGUgb2YgSUYgUHJveHkgdGhhdA0KbWlnaHQgYmUgYSBiaXQgcHJv YmxlbWF0aWMuICBVc2VyIHJlcXVlc3RzIGNoYW5nZXMgb24gcHJveHkgaW50ZXJmYWNlDQprZXJu ZWwgYWNjZXB0cyB0aGVtIGFuZCB0aGUgRFBESyBhcHBsaWNhdGlvbiBpcyBqdXN0IG5vdGlmaWVk IGFib3V0IHRoYXQNCi0gaGFzIG5vIGNoYW5jZSB0byBkZW55IHJlcXVlc3QgKHNheSAiYnVzeSIg b3IgIm5vdCBwZXJtaXR0ZWQiIHRvIHRoZSB1c2VyKS4NCg0KT2YgY291cnNlIGFwcCBjYW4gaWdu b3JlIGl0IChkbyBub3RoaW5nIGluIHRoZSBjYWxsYmFjayBvciBkcm9wIHRoZQ0KZXZlbnQpIGFu ZCBoYXZlIGEgbWlzbWF0Y2ggYmV0d2VlbiBwb3J0IGFuZCBpdHMgcHJveHkuICBJJ20gbm90IHNv IHN1cmUNCmlmIHRoaXMgaXMgd2hhdCB5b3UgaGFkIGluIG1pbmQuDQoNCj4gQ3VycmVudGx5IHRo aXMgcnVsZSBpcyBub3QgcmVzcGVjdGVkIGluIHRoZSBydGVfbXAgSVBDIHN5c3RlbS4NCj4gSSB0 aGluayBydGVfbXAgYW5kIElGIHByb3h5IHNob3VsZCBmb2xsb3cgdGhlIHNhbWUgcGF0aCwNCj4g a2VlcGluZyB0aGUgcHJpbWFyeSBhcHBsaWNhdGlvbiBwcm9jZXNzIGluIGNvbnRyb2wuDQo+IA0K PiBJIHdvdWxkIGxpa2Ugbm90IG9ubHkgc2Vjb25kYXJ5IHByb2Nlc3MgYW5kIElGIHByb3h5IGJl IGFibGUgdG8gdXNlDQo+IHRoaXMgY29udHJvbCBwYXRoLiBJdCBzaG91bGQgYmUgZ2VuZXJpYyBl bm91Z2ggdG8gYWxsb3cgYW55IGFwcGxpY2F0aW9uDQo+IChsb2NhbCBvciByZW1vdGUpIGJlIHBh cnQgb2YgdGhlIGNvbnRyb2wgcGF0aCwgY29tbXVuaWNhdGluZyB3aXRoDQo+IHRoZSBEUERLIGFw cGxpY2F0aW9uIHByaW1hcnkgcHJvY2Vzcy4NCg0KVGhhdCBnb2FsIHNvdW5kcyBpbmRlZWQgbGlr ZSBaTVEuICBJcyB0aGUgY29uc2Vuc3VzIGFib3V0IHRoYXQgYWxyZWFkeQ0KcmVhY2hlZD8gIE9u IGEgZ2VuZXJhbCBsZXZlbCB0aGF0IHNvdW5kcyBnb29kIHRvIG1lIC0gdGhlIGRldmlsIG1pZ2h0 IGJlDQppbiBkZXRhaWxzLCBsaWtlIGUuZy4gdHJ5aW5nIHRvIGJlIHNpbXBsZSBhbmQgZ2VuZXJp YyBlbm91Z2guICBJJ2QgbGlrZQ0KYWxzbyB0byBzb2xpY2l0IGhlcmUgaW5wdXQgZnJvbSBvdGhl ciBtZW1iZXJzIG9mIHRoZSBjb21tdW5pdHkuDQoNCj4gQXMgYSBzdW1tYXJ5LCBJIHByb3Bvc2Ug dG8gdGFyZ2V0IHRoZSBmb2xsb3dpbmcgZ29hbDoNCj4gaW1wbGVtZW50IGEgdXNlciBjb25maWd1 cmF0aW9uIHBhdGggYXMgYSBEUERLIHN0YW5kYXJkDQo+IHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNh biBlbmFibGUuDQo+IA0KPiBEbyB3ZSBhZ3JlZSB0aGF0IHRoZSBleGNlcHRpb24gcGFja2V0IHBh dGggaXMgb3V0IG9mIHNjb3BlPw0KDQpDb3VsZCB5b3UgcmVwaHJhc2UgdGhpcyBxdWVzdGlvbj8g IEknbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgaXQuICBJZiB5b3UNCndhbnRlZCB0byBzYXkgdGhh dCB3ZSBzaG91bGQ6DQoNCi0gaW1wbGVtZW50IGdlbmVyYWwgY29uZmlnL25vdGlmaWNhdGlvbiBt ZWNoYW5pc20NCi0gcmViYXNlIElGIFByb3h5IHVwb24gaXQgKHNvIGluc3RlYWQgb2YgZGVjaWRp bmcgd2hldGhlciB0aGlzIHNob3VsZCBiZQ0KY2FsbGJhY2svcXVldWUgaXQgc2ltcGx5IHVzZXMg dGhpcyBuZXcgc2NoZW1lIHRvIGRlbGl2ZXIgdGhlIGNoYW5nZSB0bw0KYXBwbGljYXRpb24pDQoN CnRoZW4gSSdtIGZpbmUgd2l0aCB0aGlzLiAgSWYgeW91IG1lYW50IHNvbWV0aGluZyBlbHNlIHRo ZW4gcGxlYXNlIGV4cGxhaW4uDQoNCj4gWy4uLl0NCj4+IFdlIGNyZWF0ZSB0d28gcHJveHkgaW50 ZXJmYWNlcyAoaGVyZSBiYXNlZCBvbiBUYXAgZHJpdmVyKSBhbmQgYmluZCB0aGUNCj4+IHBvcnRz IHRvIHRoZWlyIHByb3hpZXMuICBXaGVuIHVzZXIgaXNzdWVzIGEgY29tbWFuZCBjaGFuZ2luZyBN VFUgZm9yDQo+PiBUYXAxIGludGVyZmFjZSB0aGUgbGlicmFyeSBub3RlcyB0aGlzIGFuZCBjYWxs cyAibXR1X2NoYW5nZSIgY2FsbGJhY2sNCj4+IGZvciB0aGUgUG9ydDEuICBTaW1pbGFybHkgd2hl biB1c2VyIGFkZHMgYW4gSVB2NCBhZGRyZXNzIHRvIHRoZSBUYXAyDQo+PiBpbnRlcmZhY2UgImFk ZHJfYWRkIiBjYWxsYmFjayBpcyBjYWxsZWQgZm9yIHRoZSBQb3J0MiBhbmQgdGhlIHNhbWUNCj4+ IGhhcHBlbnMgZm9yIGNvbmZpZ3VyYXRpb24gb2Ygcm91dGluZyBydWxlIHBvaW50aW5nIHRvIFRh cDIuDQo+IA0KPiBXaWxsIGl0IHdvcmsgYXMgd2VsbCB3aXRoIFRDIGZsb3cgY29uZmlndXJhdGlv biBjb252ZXJ0ZWQgdG8gcnRlX2Zsb3c/DQoNCk5vdCBhdCB0aGUgbW9tZW50LiAgQnV0IHNob3Vs ZCBiZSBkb2FibGUgLSBhcyBsb25nIGFzIHRoZXJlIGlzIGdvb2QNCm1hcHBpbmcgYmV0d2VlbiB0 aGVtIChJIGhhdmVuJ3QgY2hlY2tlZCkuDQoNCj4+IEFwYXJ0IGZyb20NCj4+IGNhbGxiYWNrcyB0 aGlzIGxpYnJhcnkgY2FuIG5vdGlmeSBhYm91dCBjaGFuZ2VzIHZpYSBhZGRpbmcgZXZlbnRzIHRv DQo+PiBub3RpZmljYXRpb24gcXVldWVzLiAgU2VlIGJlbG93IGZvciBtb3JlIGluZm9yYW10aW9u IGFib3V0IHRoYXQgYW5kDQo+PiBhIGNvbXBsZXRlIGxpc3Qgb2YgYXZhaWxhYmxlIGNhbGxiYWNr cy4NCj4gDQo+IFRoZXJlIGlzIGNob2ljZSBiZXR3ZWVuIGNhbGxiYWNrIGluIGEgcmFuZG9tIGNv bnRleHQsDQo+IG9yIGEgcmVhZCBmcm9tIGEgbWVzc2FnZSBxdWV1ZSBpbiBhIGNvbnRyb2xsZWQg Y29udGV4dC4NCj4gU2Vjb25kIG9wdGlvbiBsb29rcyBiZXR0ZXIuDQoNCk5vdGUgdGhhdCBjYWxs YmFjayBjYW4gYmUgYSBzaW1wbGUgZW5xdWV1ZSB0byBzb21lIHJpbmcuICBGcm9tIHRoZSBJRg0K UHJveHkgaW1wbGVtZW50YXRpb24gcG9pbnQgb2YgdmlldyAtIHRoaXMgaXMgbm90IG11Y2ggb2Yg YSBkaWZmZXJlbmNlLg0KSSBub3RpY2UgdGhlIGNoYW5nZSBhbmQgaW4gdGhhdCBwbGFjZSBpbiBj b2RlIEkgY2FuIGVpdGhlciBjYWxsIGNhbGxiYWNrDQpvciBxdWV1ZSBhbiBldmVudC4gIFNpbmNl IEkgZXhwZWN0IHF1ZXVlcyB0byBiZSBhIHBvcHVsYXIgY2hvaWNlIGl0cw0Kc3VwcG9ydCBpcyBh ZGRlZCBidXQgd2l0aG91dCB0aGlzIHVzZXIgY291bGQgcmVnaXN0ZXIgY2FsbGJhY2sgdGhhdA0K d291bGQgYmUgZW5xdWV1aW5nIChvbmUgbW9yZSBpbmRpcmVjdGlvbiBpbiBzbG93IHBhdGgpLg0K DQpIYXZpbmcgc2FpZCB0aGF0IC0gdGhlIG9ubHkgcmVhc29uIGNhbGxiYWNrcyBhcmUga2VwdCBp cyB0aGF0IChhcw0KbWVudGlvbmVkIGluIGNvdmVyKToNCg0KLSBJIGNhbiBlYXNpbHkgaW1wbGVt ZW50IGdsb2JhbCBhY3Rpb24gKHRydWUgLSBpbiByYW5kb20gY29udGV4dCksIHNpbmNlDQpxdWV1 ZXMgYXJlICJtYXRjaCBhbGwiIGVhY2ggZXZlbnQgd2lsbCBiZSBhZGRlZCB0byBhbGwgcXVldWVz IGFuZCBjb3Jlcw0Kd291bGQgaGF2ZSB0byBkZWNpZGUgd2hpY2ggb25lIG9mIHRoZW0gcGVyZm9y bXMgdGhlIGdsb2JhbCBhY3Rpb24NCi0gSSBjYW4gZG8gc2luZ2xlL2dsb2JhbCBwcmVwYXJhdGlv biBiZWZvcmUgcXVldWVpbmcgZXZlbnQNCg0KQnV0IEkgZ3Vlc3MgdGhpcyBpcyByYXRoZXIgYSBt dXRlIHBvaW50IHNpbmNlIHdlIGFyZSBnb2luZyBpbiB0aGUNCmRpcmVjdGlvbiBvZiBnZW5lcmFs IGNvbmZpZyB3aGljaCBJRiBQcm94eSB3b3VsZCBiZSB1c2luZy4NCg0KPj4gUGxlYXNlIG5vdGUg dGhhdCBub3RoaW5nIGhhcyBiZWVuIG1lbnRpb25lZCBhYm91dCBmb3J3YXJkaW5nIG9mIHRoZQ0K Pj4gcGFja2V0cyBiZXR3ZWVuIHN5c3RlbSBhbmQgRFBESy4gIFNpbmNlIHRoZSBwcm94aWVzIGFy ZSBub3JtYWwgRFBESw0KPj4gcG9ydHMgeW91IGNhbiByZWNlaXZlL3NlbmQgdG8gdGhlbSB2aWEg dXN1YWwgUlgvVFggYnVyc3QgQVBJLiAgSG93ZXZlcg0KPj4gc2luY2UgdGhlIGxpYnJhcnkgaXMg bm90IGF3YXJlIG9mIHRoZSBzdHJ1Y3R1cmUgb2YgcGFja2V0IHByb2Nlc3NpbmcNCj4+IHVzZWQg YnkgdGhlIGFwcGxpY2F0aW9uIGl0IGNhbm5vdCBhdXRvbWF0aWNhbGx5IGZvcndhcmQgdGhlIHBh Y2tldHMgLSBpdA0KPj4gaXMgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGlu Y2x1ZGUgcHJveHkgcG9ydHMgaW50byBpdHMNCj4+IHBhY2tldCBwcm9jZXNzaW5nIGVuZ2luZS4N Cj4gDQo+IFNvIElGIHByb3h5IGRvZXMgbm90aGluZyBzcGVjaWFsIHdpdGggcGFja2V0cywgcmln aHQ/DQoNCkNvcnJlY3QuDQoNCj4+IEFsdGhvdWdoIHRoZSBsaWJyYXJ5IG9ubHkgaGVscHMgeW91 IHRvIGlkZW50aWZ5IHByb3h5IGZvciBnaXZlbiBwb3J0DQo+PiAoYW5kIHZpY2UgdmVyc2EpIGFu ZCBjYWxscyBhcHByb3ByaWF0ZSBjYWxsYmFja3MgaXQgZG9lcyBvcGVuIHNvbWUNCj4+IGludGVy ZXN0aW5nIHBvc3NpYmlsaXRpZXMuICBGb3IgZXhhbXBsZSB5b3UgY2FuIHVzZSB0aGUgcHJveHkg cG9ydHMgdG8NCj4+IGZvcndhcmQgcGFja2V0cyBmb3IgcHJvdG9jb2xzIHRoYXQgeW91IGRvIG5v dCB3aXNoIHRvIGhhbmRsZSBpbiBEUERLDQo+PiBhcHBsaWNhdGlvbiB0byB0aGUgc3lzdGVtIHBy b3RvY29sIHN0YWNrIGFuZCBqdXN0IGxpc3RlbiB0byB0aGUNCj4+IGNvbmZpZ3VyYXRpb24gY2hh bmdlcyAtIHNvIHRoYXQgd2F5IHlvdSBjYW4gIm9mZmxvYWQiIGhhbmRsaW5nIG9mIHRob3NlDQo+ PiBwcm90b2NvbHMgdG8gdGhlIHN5c3RlbS4NCj4gDQo+IE5vdGUgdGhhdCB3aGVuIHVzaW5nIGEg YmlmdXJjYXRlZCBkcml2ZXIgKGFmX3hkcCBvciBtbHgpLA0KPiB0aGUgZXhjZXB0aW9uIHBhdGgg aW4gdGhlIGtlcm5lbCBpcyBub3QgZ29pbmcgdGhyb3VnaCBEUERLLg0KPiBNb3Jlb3Zlciwgbm8g cHJveHkgaXMgbmVlZGVkIGZvciBkZXZpY2UgY29uZmlndXJhdGlvbiBpbiBzdWNoIGNhc2UuDQoN ClRydWUgZm9yIHRoZSBsaW5rIGxldmVsIGluZm8uICBCdXQgaWYgYXBwbGljYXRpb24gd291bGQg bGlrZSB0byBoYXZlDQphbHNvIGFkZHJlc3Mvcm91dGluZy9uZWlnaGJvdXJpbmcgaW5mbyB0aGVu IEkgZ3Vlc3MgcHJveHkgd291bGQgYmUNCm5lZWRlZC4gIEFzIGZvciB0aGUgYmlmdXJjYXRlZCBk cml2ZXJzIC0gaW4gb25lIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkgSQ0KaGFkIGFuIG9wdGlvbiB0 byBiaW5kIHBvcnQgdG8gaXRzZWxmLiAgVGhlIGJpbmRpbmcgaXMgdGhlcmUgb25seSB0byB0ZWxs DQpsaWJyYXJ5IHdoaWNoIGlmX2luZGV4IGlzIGludGVyZXN0aW5nIGFuZCBob3cgdG8gcmVwb3J0 IGV2ZW50IChpZl9pbmRleA0KLT4gcG9ydF9pZCkNCg0KWy4uLl0NCj4+IFRoaXMgY3JlYXRlcyBs b2dpY2FsIGJpbmRpbmcgLSBhcyBtZW50aW9uZWQgYWJvdmUgdGhlcmUgaXMgbm8gYXV0b21hdGlj DQo+PiBwYWNrZXQgZm9yd2FyZGluZy4gIFdpdGggdGhpcyBiaW5kaW5nIHdoZW5ldmVyIHVzZXIg Y2hhbmdlcyB0aGUgc3RhdGUgb2YNCj4+IHByb3h5IGludGVyZmFjZSBpbiB0aGUgc3lzdGVtIChs aW5rIHVwL2Rvd24sIGNoYW5nZSBtYWMvbXR1LCBhZGQvcmVtb3ZlDQo+PiBJUHY0L0lQdjYpIHlv dSBnZXQgYXBwcm9wcmlhdGUgbm90aWZpY2F0aW9uIGZvciB0aGUgYm91bmQgcG9ydC4NCj4gDQo+ IFdoZW4gY29uZmlndXJpbmcgYSBwb3J0IHZpYSBEUERLIEFQSSwgaXMgaXQgbWlycm9yZWQgYXV0 b21hdGljYWxseQ0KPiB0byB0aGUga2VybmVsIGRldmljZT8NCg0KTm8gaXQgaXNuJ3QuICBJdCdz IG9uZSB3YXkgYXQgdGhlIG1vbWVudC4gIElmIHdlIHdhbnRlZCBiaWRpcmVjdGlvbmFsDQp0aGVu IEkgd291bGQgaGF2ZSB0byBwbHVnIGluIHNvbWV3aGVyZSBpbiBldGhfZGV2IHRvIG1vbml0b3Ig Y2hhbmdlcyB0bw0KcG9ydHMgYW5kIHJlcXVlc3Qgc2ltaWxhciBjaGFuZ2VzIHRvIHRoZSBwcm94 eS4NCg0KWy4uLl0NCj4+IGFuZCB0aGUgYWN0dWFsIGxvZ2ljIHVzZWQgaXM6IGlmIHRoZXJlIGlz IGNhbGxiYWNrIHJlZ2lzdGVyZWQgdGhlbiBpdCBpcw0KPj4gY2FsbGVkLCBpZiBpdCByZXR1cm5z IG5vbi16ZXJvIHRoZW4gZXZlbnQgaXMgY29uc2lkZXJlZCBjb21wbGV0ZWQsDQo+PiBvdGhlcndp c2UgZXZlbnQgaXMgYWRkZWQgdG8gZWFjaCBjb25maWd1cmVkIG5vdGlmaWNhdGlvbiBxdWV1ZS4N Cj4+IFRoYXQgd2F5IGFwcGxpY2F0aW9uIGNhbiB1cGRhdGUgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQg YXJlIHNhZmUgdG8gYmUNCj4+IG1vZGlmaWVkIGJ5IHNpbmdsZSB3cml0ZXIgZnJvbSB3aXRoaW4g Y2FsbGJhY2sgb3IgZG8gdGhlIGNvbW1vbg0KPj4gcHJlcHJvY2Vzc2luZyBzdGVwcyAoaWYgYW55 IG5lZWRlZCkgaW4gY2FsbGJhY2sgYW5kIGRhdGEgdGhhdCBpcw0KPj4gcmVwbGljYXRlZCBjYW4g YmUgdXBkYXRlZCBkdXJpbmcgaGFuZGxpbmcgb2YgcXVldWVkIGV2ZW50cy4NCj4gDQo+IEFzIGV4 cGxhaW5lZCBhYm92ZSwgdGhlIGFwcGxpY2F0aW9uIG11c3QgY29udHJvbCBldmVyeSBjaGFuZ2Vz Lg0KPiANCj4gT25lIGlzc3VlIGlzIHRocmVhZCBzYWZldHkuDQo+IFRoZSBzaW1wbGVzdCBtb2Rl bCBpcyB0byBtYW5hZ2UgY29udHJvbCBwYXRoIGZyb20gYSBzaW5nbGUgdGhyZWFkDQo+IGluIHRo ZSBwcmltYXJ5IHByb2Nlc3MuDQo+IA0KPiBJZiB3ZSBjcmVhdGUgYW4gQVBJIHRvIGFsbG93IHRo ZSBhcHBsaWNhdGlvbiBtYW5hZ2luZyB0aGUgY29udHJvbCBwYXRoDQo+IGZyb20gZXh0ZXJuYWwg cmVxdWVzdHMsIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGEgYnVpbGRpbmcgYmxvY2sNCj4gaW5kZXBl bmRlbnQgb2YgSUYgcHJveHkuIFRoZW4gSUYgcHJveHkgY2FuIHBsdWcgaW50byB0aGlzIHN1YnN5 c3RlbS4NCj4gSXQgd291bGQgYWxsb3cgb3RoZXIgY29udHJvbCBwYXRoIG1lY2hhbmlzbXMgdG8g Y28tZXhpc3QuDQoNCkknbSBmaW5lIHdpdGggdGhpcy4NCg0KPiBbLi4uXQ0KPj4gSXQgaXMgd29y dGggdG8gbWVudGlvbiBhbHNvIHRoYXQgd2hpbGUgdHlwaWNhbCBjYXNlIHdvdWxkIGJlIGEgMS10 by0xDQo+PiBtYXBwaW5nIGJldHdlZW4gcG9ydCBhbmQgcHJveHksIHRoZSAxLXRvLW1hbnkgbWFw cGluZyBpcyBhbHNvIHN1cHBvcnRlZC4NCj4+IEluIHRoYXQgY2FzZSByZWxhdGVkIGNhbGxiYWNr cyB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBwb3J0IGJvdW5kIHRvDQo+PiBnaXZlbiBwcm94eSBp bnRlcmZhY2UgLSBpdCBpcyBhcHBsaWNhdGlvbiByZXNwb25zaWJpbGl0eSB0byBkZWZpbmUNCj4+ IHNlbWFudGljIG9mIHN1Y2ggbWFwcGluZyAoZS5nLiBhbGwgY2hhbmdlcyBhcHBseSB0byBhbGwg cG9ydHMsIG9yIGxpbmsNCj4+IGNoYW5nZXMgYXBwbHkgdG8gYWxsIGJ1dCBvdGhlciBhcmUgYWNj ZXB0ZWQgaW4gInJvdW5kIHJvYmluIiBmYXNoaW9uLCBvcg0KPj4gc29tZSBvdGhlciBsb2dpYyku DQo+IA0KPiBJIGRvbid0IGdldCB0aGUgaW50ZXJlc3Qgb2Ygb25lLXRvLW1hbnkgbWFwcGluZy4N Cg0KVGhhdCB3YXMgYSByZXF1ZXN0IGR1cmluZyBlYXJseSB2ZXJzaW9uIG9mIGxpYnJhcnkgLSB3 aXRoIGJyaWRnaW5nIGluDQptaW5kLiAgSG93ZXZlciB0aGlzIGlzIGFuICJleHBlcmltZW50YWwi IHBhcnQgb2YgYW4gImV4cGVyaW1lbnRhbCINCmxpYnJhcnkgLSBJIHdvdWxkIG5vdCBmb2N1cyBv biB0aGlzLCBhcyBpdCBtaWdodCBnZXQgcmVtb3ZlZCBpZiB3ZSBkb24ndA0KZmluZCBhIHJlYWwg dXNlIGNhc2UgZm9yIHRoYXQuDQoNCj4gWy4uLl0NCj4gDQo+IFRoYW5rcyBmb3IgdGhlIHdvcmsu DQo+IEl0IHNlZW1zIHRoZXJlIGFyZSBzb21lIG92ZXJsYXBzIHdpdGggdGVsZW1ldHJ5IGFuZCBy dGVfbXAgY2hhbm5lbHMuDQo+IFRoZSBzYW1lIGNoYW5uZWwgY291bGQgYmUgdXNlZCBhbHNvIGZv ciBkeW5hbWljIHRyYWNpbmcgY29tbWFuZA0KPiBvciBmb3IgcmVtb3RlIGNvbnRyb2wuDQo+IFdv dWxkIHlvdSBiZSBPSyB0byBleHRlbmQgaXQgdG8gYSBnbG9iYWwgY29udHJvbCBzdWJzeXN0ZW0s DQo+IGhhdmluZyBJRiBwcm94eSBwbHVnZ2VkIGluPw0KDQpZZXMuICBJIGRvbid0IGhhdmUgYSBw cm9ibGVtIHdpdGggdGhhdCAtIGhvd2V2ZXIgYXQgdGhlIG1vbWVudCB0aGUNCnJlcXVpcmVtZW50 cy9kZXNpZ24gYXJlIGEgYml0IHZhZ3VlLCBzbyBsZXQncyBkaXNjdXNzIHRoaXMgbW9yZS4NCg0K V2l0aCByZWdhcmRzDQpBbmRyemVqIE9zdHJ1c3prYQ0K