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 BDBA0A04DB; Fri, 16 Oct 2020 00:54:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 022491DF95; Fri, 16 Oct 2020 00:54:26 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80059.outbound.protection.outlook.com [40.107.8.59]) by dpdk.org (Postfix) with ESMTP id 3CBC61DE7A; Fri, 16 Oct 2020 00:54:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hr8owCu6q5lNA1qQHLDG+18XzhJzj2mf/v3aSeO5z9I=; b=C2tTJquFVSz2n60XUz4YID6au8mM5kO65q2pDAgULQPD8D4B1bldEKlmnH/ysvb4XUjfwXKE1MhCy+QthIBTbYYBOmkSyIaMxgIxaqUNT7AODfHCttakSvSD5f7Up7KgXB2K/0ExxcZxphFGmbaPthp1wqFZ2EUb3Vr1qfaSRCQ= Received: from DB6PR07CA0110.eurprd07.prod.outlook.com (2603:10a6:6:2c::24) by AM8PR08MB5761.eurprd08.prod.outlook.com (2603:10a6:20b:1d0::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21; Thu, 15 Oct 2020 22:54:19 +0000 Received: from DB5EUR03FT054.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:2c:cafe::4c) by DB6PR07CA0110.outlook.office365.com (2603:10a6:6:2c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.8 via Frontend Transport; Thu, 15 Oct 2020 22:54:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT054.mail.protection.outlook.com (10.152.20.248) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Thu, 15 Oct 2020 22:54:19 +0000 Received: ("Tessian outbound 68da730eaaba:v64"); Thu, 15 Oct 2020 22:54:19 +0000 X-CR-MTA-TID: 64aa7808 Received: from f65af37e08ad.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2561B758-7B60-46B0-AC01-80F279BF6BFD.1; Thu, 15 Oct 2020 22:54:14 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f65af37e08ad.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 15 Oct 2020 22:54:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oUGQOv0mcHdkS+knwPXaMDo5q97ABEMKEj7KF3q92OVhzfYIvsAAW4YFDnOuz9NqEaWaKiMcLLlAQbc890C9lrw4s1elw4VoXb7rUc5qbUK1MY+2BaxJwYJoIq74f4WyUem+kwfUT2XchbbiRaQrq+AiYJb2FxM2tXcv6As0A6RKcB/Orb8Qk5bDbq/rJvNlVzdUsPN2KwErZSLFuVZILKTlPWs1vthcUntbGlDIQ8qKgY2vu6IFIB2I6ub5YGht6bfaIGUK+7OiK/8MxXtF1+nYTfjgo0fzWctgkUXrZSbi0aeCCnr45DmjYjupM7zx4hVq3Its/Lk0bWqCucZYHA== 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=hr8owCu6q5lNA1qQHLDG+18XzhJzj2mf/v3aSeO5z9I=; b=EVk7LpgIYKFEqGZ5aZXNTwL4ig4XOQBn7VLCePDX4/y+O4+h2xMDQaSoFl/oa14FyB5jgRtB+bMz6hlcxWfIOj0Bi+7nQKQszgT9b59KUumyE+wcMP3Cr3GHDcCO8MCMdfuA5DucUEphJ1QmbrzLWzDHpckJ9z9Jb4TJUOz+LLyZABMBlCMaEBuTqvwNWLNl1IkU8rMdIKAzaDldpLsgFseX5AlGj+56nT/v9qlyj9n8khODpw+UDug6lZd5umQ/p21qljwtdUDETi6RE45I7DV33SwSJ+OzTivgQ/GnrelcWhhrQCCizveLg4EIf5MpPoNbkm4BXfczH+q1qE5Thw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hr8owCu6q5lNA1qQHLDG+18XzhJzj2mf/v3aSeO5z9I=; b=C2tTJquFVSz2n60XUz4YID6au8mM5kO65q2pDAgULQPD8D4B1bldEKlmnH/ysvb4XUjfwXKE1MhCy+QthIBTbYYBOmkSyIaMxgIxaqUNT7AODfHCttakSvSD5f7Up7KgXB2K/0ExxcZxphFGmbaPthp1wqFZ2EUb3Vr1qfaSRCQ= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DBBPR08MB4629.eurprd08.prod.outlook.com (2603:10a6:10:f4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.21; Thu, 15 Oct 2020 22:54:11 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d%4]) with mapi id 15.20.3477.020; Thu, 15 Oct 2020 22:54:11 +0000 From: Honnappa Nagarahalli To: "Medvedkin, Vladimir" , Michel Machado , Kevin Traynor , Ruifeng Wang , Bruce Richardson , Cody Doucette , Andre Nathan , Qiaobin Fu , "techboard@dpdk.org" , David Marchand , "thomas@monjalon.net" CC: "dev@dpdk.org" , nd , nd Thread-Topic: [dpdk-dev] [PATCH 2/2] lpm: hide internal data Thread-Index: AQHWoiuNlDyuW8S5TEq3aT4bxXe1qKmXoCMggAEMw4CAAEHsoIAAIBeAgAA4iWA= Date: Thu, 15 Oct 2020 22:54:11 +0000 Message-ID: References: <20200907081518.46350-1-ruifeng.wang@arm.com> <20200915160224.GA825@bricha3-MOBL.ger.corp.intel.com> <81eb8fde-cd4f-1df9-0ebb-05c902b30fe3@intel.com> <48834549-00e9-b762-4915-9a2dd0e5fe1d@redhat.com> <6497770e-9d1c-97c3-3834-84bd96186836@digirati.com.br> <18c44f31-abc0-c0b5-c2fb-76d6166d5237@digirati.com.br> <9197371c-5e03-4852-d62a-6456f0b762f0@intel.com> <9647f80d-53c3-33aa-b6d0-301aef34ca0a@intel.com> <781ddbaf-cfed-bc90-cf6c-2b88bfda1202@digirati.com.br> <505d3e00-717b-25f8-ffea-d6108165a12a@intel.com> In-Reply-To: <505d3e00-717b-25f8-ffea-d6108165a12a@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 82C738F56AD712489748D5EC01165DF9.0 x-checkrecipientchecked: true Authentication-Results-Original: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [217.140.110.7] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9e3140c8-677d-4318-079f-08d8715d4055 x-ms-traffictypediagnostic: DBBPR08MB4629:|AM8PR08MB5761: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: sZDeiE9j9SbAeRwyZ2lJ4b6IMomaSxaXJPbCM/th5u7Q/zZ80jCmb61c579cP7qsbDKyh+wbkU8O+mJz2zDo8xXm6rPQIVNu+MaZZRAW5Kleky3sjaLwSdLguvSbIj1IiT5Nfw5mk+A+1OYMoLdvbMckhnqXLIi4ZbRdjRwdsooe+CRoFd9nwKQTR1AMhCDDDNoxsLj6tp4p6FZZSBUloeRaZbgxAN7NU9ZkYTtiCDdHuiUR4VeqWeYtWFZshhJuksWeOSB6s3EDgclU7lFpu1SlqD86FxZs5LPDfpJey7G68vsN5azWffpiUdpQuTW4HwNwRB6jRffP3PcFJtIT483uixFwQMSSr4pZoTW3UUhd8dw02oI28hWNiQ1grLusLe7izLH2+yqKMEnShYDgASCp2+VJ97znF67pHUK4yqEHhAqJXIdQrv9yz7zHCvYL X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(376002)(396003)(136003)(39860400002)(71200400001)(54906003)(5660300002)(186003)(110136005)(8676002)(316002)(6506007)(7696005)(9686003)(33656002)(83380400001)(8936002)(7416002)(53546011)(66476007)(64756008)(55016002)(76116006)(66946007)(66446008)(26005)(86362001)(966005)(478600001)(66556008)(2906002)(52536014)(4326008)(921003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: GUugGsdS4oT0tb+iVfXi42nHxK6K6BUKMEDAwmFN3APYiB7tqA4w6qabt1ZpAOcNBM3rvvfKzAEf6jOgzsGY+IP+FMi73XYtdudDeAHcpmkKH0vCuceZJFBLYy8G7G+KKLaCWak62okQpi7vwrRXtGSnyzmApBB3YYckYCh4dSENSi8eozQfbCLpd3+ogJQyWcJW/+gGCWohr5pnWpCVDLL15ndFUnCS4s0dU6ryH33qtZDl082LEK9884EVkXzCYTfq1QyXK5emxNby4jWSwQFkvqWLL1QD3BUME9ksVmPAzKTQHdOy2p4I8xwFn2q/deDc92zVheozwPPhoub+eyml1FbTqPLs4M2m+i4ykl87G7iQbYzqRxhFmbV/P3RDBwrLAiwNzi+xsZhp7L4EvFQvKTkaGOXsXgzdH+UTUNAACgvf0JT0XWYz/5NWV1FF1GiGB+fiGlWhN2p+tcp3Sf3DAPRKy5VHbnuz2khga9jQ88ClZgbNt6dfV4LXZULVv04xCS2moS/ngr3oZkKRu7l1C7Hxw9vzy8MBHcLa4RorvzyMLxJ0H5jNmuE/P3nj1p+HCAddmQ8ZGWmshCM3EX9xUvvaUEhCRtaXiU1YF/SmEWSGyufQd5TDnlsr+HhtUvOCjZJlgTSLagtJy5zKIw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4629 Original-Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT054.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: be99c9b0-74e3-49c6-a418-08d8715d3b7a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: clOc7PNbCpT9ET580eBJzIFwq4qMM+rn7kai4q1NhjEVdE20QNVNiDlQUg+X3sLX1kDYE1I7CX1/k1VFoa19kTxKNezDs+InpdhRDg08VhGr0gUrBL6NlYdE2B6zeXydTSY57RrUoZf5FZ91F1xnNahiDDhq7M8Q10qRGXyVyXKlpZ7lYF0fmcO/ZM7mRTe9h24inf0JxEpf4NPq/OOufgf+w9s3ZZoqi9oCPJcKNxPwg0C4K6RJ4NF51OpF3xozB7GaJylG70GacpXdqi/bUbGyXjMNWTjuupSp4e/qKT1J8KM1076P10lCyWry34X47u9f6TTo8DScdjtbI0EPXtuGrhFq/gJubvCLM0/drPbbeQZIiZ8Sr53wRaGf0KbJQH/5RLwZUHJkJ0dnPGIoRFuzVDKLc/CxLjTe9n6WRP7YlnAga/f6voCe9b/dsrOa5BYpea1lAqXc3KJoN5KpHJ21Wf9Jv6Wjwl9VLFIy8pBNJQ6nMPn5a5UU1Be21jZm X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(376002)(346002)(39860400002)(136003)(46966005)(82740400003)(81166007)(70586007)(110136005)(7696005)(966005)(9686003)(47076004)(55016002)(33656002)(86362001)(54906003)(478600001)(82310400003)(316002)(8676002)(336012)(186003)(8936002)(70206006)(5660300002)(26005)(52536014)(450100002)(2906002)(6506007)(53546011)(83380400001)(4326008)(356005)(921003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2020 22:54:19.8031 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9e3140c8-677d-4318-079f-08d8715d4055 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT054.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5761 Subject: Re: [dpdk-dev] [PATCH 2/2] lpm: hide internal data 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" PHNuaXA+DQo+IA0KPiBIZWxsbywNCj4gDQo+IE9uIDE1LzEwLzIwMjAgMTg6MzgsIEhvbm5hcHBh IE5hZ2FyYWhhbGxpIHdyb3RlOg0KPiA+IDxzbmlwPg0KPiA+Pg0KPiA+PiBPbiAxMC8xNC8yMCA3 OjU3IFBNLCBIb25uYXBwYSBOYWdhcmFoYWxsaSB3cm90ZToNCj4gPj4+Pj4+IE9uIDEzLzEwLzIw MjAgMTg6NDYsIE1pY2hlbCBNYWNoYWRvIHdyb3RlOg0KPiA+Pj4+Pj4+IE9uIDEwLzEzLzIwIDEx OjQxIEFNLCBNZWR2ZWRraW4sIFZsYWRpbWlyIHdyb3RlOg0KPiA+Pj4+Pj4+PiBIaSBNaWNoZWws DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IENvdWxkIHlvdSBwbGVhc2UgZGVzY3JpYmUgYSBjb25k aXRpb24gd2hlbiBMUE0gZ2V0cyBpbmNvbnNpc3RlbnQ/DQo+ID4+Pj4+Pj4+IEFzIEkgY2FuIHNl ZSBpZiB0aGVyZSBpcyBubyBmcmVlIHRibDggaXQgd2lsbCByZXR1cm4gLUVOT1NQQy4NCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4+ICAgwqDCoMKgIENvbnNpZGVyIHRoaXMgc2ltcGxlIGV4YW1wbGUsIHdl IG5lZWQgdG8gYWRkIHRoZSBmb2xsb3dpbmcNCj4gPj4+Pj4+PiB0d28gcHJlZml4ZXMgd2l0aCBk aWZmZXJlbnQgbmV4dCBob3BzOiAxMC45OS4wLjAvMTYsDQo+ID4+Pj4+Pj4gMTguOTkuOTkuMTI4 LzI1LiBJZiB0aGUgTFBNIHRhYmxlIGlzIG91dCBvZiB0Ymw4cywgdGhlIHNlY29uZA0KPiA+Pj4+ Pj4+IHByZWZpeCBpcyBub3QgYWRkZWQgYW5kIEdhdGVrZWVwZXIgd2lsbCBtYWtlIGRlY2lzaW9u cyBpbg0KPiA+Pj4+Pj4+IHZpb2xhdGlvbiBvZiB0aGUgcG9saWN5LiBUaGUgZGF0YSBzdHJ1Y3R1 cmUgb2YgdGhlIExQTSB0YWJsZSBpcw0KPiA+Pj4+Pj4+IGNvbnNpc3RlbnQsIGJ1dCBpdHMgY29u dGVudCBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgcG9saWN5Lg0KPiA+Pj4gbWF4X3J1bGVzIGFuZCBu dW1iZXJfdGJsOHMgaW4gJ3N0cnVjdCBydGVfbHBtJyBjb250YWluIHRoZSBjb25maWcNCj4gPj4g aW5mb3JtYXRpb24uIFRoZXNlIDIgZmllbGRzIGRvIG5vdCBjaGFuZ2UgYmFzZWQgb24gdGhlIHJv dXRlcyBhZGRlZA0KPiA+PiBhbmQgZG8gbm90IGluZGljYXRlIHRoZSBhbW91bnQgb2Ygc3BhY2Ug bGVmdC4gU28sIHlvdSBjYW5ub3QgdXNlIHRoaXMNCj4gPj4gaW5mb3JtYXRpb24gdG8gZGVjaWRl IGlmIHRoZXJlIGlzIGVub3VnaCBzcGFjZSB0byBhZGQgbW9yZSByb3V0ZXMuDQo+IA0KPiBUaGFu a3MgSG9ubmFwcGEsIGFncmVlLCB0aGVzZSB0d28gZmllbGRzIGFyZSByZWFkIG9ubHkgYWZ0ZXIg TFBNDQo+IGluaXRpYWxpemF0aW9uLCBJIGNvbmZ1c2VkIHRoZW0gd2l0aCBydGVfZmliJ3MgInJz dmRfdGJsOHMiIGFuZCAiY3VyX3RibDhzIiwgc28NCj4gdGhlcmUgaXMgbm8gbmVlZCB0byByZWFk IHRoZW0gZGlyZWN0bHkgZnJvbSBMUE0gYWZ0ZXIgaW5pdGlhbGl6YXRpb24uIEknZA0KPiBzdWdn ZXN0IGp1c3Qga2VlcGluZyB0aGVtIGFzIGV4dGVybmFsIHZhcmlhYmxlcyBvdXRzaWRlIG9mIHRo ZSBMUE0gbGlicmFyeSAoaW4NCj4ga2luZCBvZiBhIGdsb2JhbCBjb25maWd1cmF0aW9uIEkgc3Vw cG9zZT8pLg0KPiANCj4gPj4NCj4gPj4gICAgICBXZSBhcmUgYXdhcmUgdGhhdCB0aG9zZSBmaWVs ZHMgaG9sZCB0aGUgY29uZmlnIGluZm9ybWF0aW9uIG5vdCBhDQo+ID4+IHN0YXR1cyBvZiB0aGUg TFBNIHRhYmxlLg0KPiA+Pg0KPiA+PiAgICAgIEJlZm9yZSB1cGRhdGluZyBhIExQTSB0YWJsZSB0 aGF0IGhvbGRzIG5ldHdvcmsgcHJlZml4ZXMgZGVyaXZlZA0KPiA+PiBmcm9tIHRocmVhdCBpbnRl bGxpZ2VuY2UsIHdlIGNvbXB1dGUgdGhlIG1pbmltdW0gdmFsdWVzIGZvciBtYXhfcnVsZXMNCj4g Pj4gYW5kIG51bWJlcl90Ymw4cy4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGhvdyB3ZSBkbyBpdDoN Cj4gPj4NCj4gaHR0cHM6Ly9naXRodWIuY29tL0FsdHJhTWF5b3IvZ2F0ZWtlZXBlci9ibG9iLzk1 ZDFkNmU4MjAxODYxYTBkMGM2OTgNCj4gPj4gYmZkMDZhZDYwNjY3NGYxZTA3L2x1YS9leGFtcGxl cy9wb2xpY3kubHVhI0wxMzUtTDE2Ng0KPiA+Pg0KPiA+PiAgICAgIE9uY2UgdGhlc2UgbWluaW11 bSB2YWx1ZXMgYXJlIGF2YWlsYWJsZSwgd2UgZ2V0IHRoZSBwYXJhbWV0ZXJzDQo+ID4+IG9mIHRo ZSBMUE0gdGFibGUgdG8gYmUgdXBkYXRlZCBhbmQgY2hlY2sgaWYgd2UgY2FuIHVwZGF0ZSBpdCwg b3IgaGF2ZSB0bw0KPiByZWNyZWF0ZSBpdC4NCj4gPj4NCj4gPj4+Pj4+IEFoYSwgdGhhbmtzLiBT byBkbyBJIHVuZGVyc3RhbmQgY29ycmVjdGx5IHRoYXQgeW91IG5lZWQgdG8gYWRkIGENCj4gPj4+ Pj4+IHNldCBvZiByb3V0ZXMgYXRvbWljYWxseSAoZWl0aGVyIHRoZSBlbnRpcmUgc2V0IGlzIGlu c3RhbGxlZCBvciBub3RoaW5nKT8NCj4gPj4+Pj4NCj4gPj4+Pj4gICAgwqDCoCBZZXMuDQo+ID4+ Pj4+DQo+ID4+Pj4+PiBJZiBzbywgdGhlbiBJIHdvdWxkIHN1Z2dlc3QgaGF2aW5nIDIgbHBtIGFu ZCBzd2l0Y2hpbmcgdGhlbQ0KPiA+Pj4+Pj4gYXRvbWljYWxseSBhZnRlciBhIHN1Y2Nlc3NmdWwg YWRkaXRpb24uIEFzIGZvciBub3csIGV2ZW4gaWYgeW91DQo+ID4+Pj4+PiBoYXZlIGVub3VnaCB0 Ymw4J3MsIHJvdXRlcyBhcmUgaW5zdGFsbGVkIG5vbiBhdG9taWNhbGx5LCBpLmUuDQo+ID4+Pj4+ PiB0aGVyZSB3aWxsIGJlIGEgdGltZSBnYXAgYmV0d2VlbiBhZGRpbmcgdHdvIHJvdXRlcywgc28g aW4gdGhpcw0KPiA+Pj4+Pj4gdGltZSBpbnRlcnZhbCB0aGUgdGFibGUgd2lsbCBiZSBpbmNvbnNp c3RlbnQgd2l0aCB0aGUgcG9saWN5Lg0KPiA+Pj4+Pj4gQWxzbywgaWYgbmV3IGxwbSBhbGdvcml0 aG1zIGFyZSBhZGRlZCB0byB0aGUgRFBESywgdGhleSB3b24ndA0KPiA+Pj4+Pj4gaGF2ZSBzdWNo IGEgdGhpbmcgYXMgdGJsOC4NCj4gPj4+Pj4NCj4gPj4+Pj4gICAgwqDCoCBPdXIgY29kZSBhbHJl YWR5IGRlYWxzIHdpdGggc3luY2hyb25pemF0aW9uLg0KPiA+Pj4gSWYgdGhlIGFwcGxpY2F0aW9u IGNvZGUgYWxyZWFkeSBkZWFscyB3aXRoIHN5bmNocm9uaXphdGlvbiwgaXMgaXQNCj4gPj4+IHBv c3NpYmxlIHRvDQo+ID4+IHJldmVydCBiYWNrIChpLmUuIGRlbGV0ZSB0aGUgcm91dGVzIHRoYXQg Z290IGFkZGVkIHNvIGZhcikgd2hlbiB0aGUNCj4gPj4gYWRkaXRpb24gb2YgdGhlIHJvdXRlLXNl dCBmYWlscz8NCj4gPj4NCj4gPj4gICAgICBUaGUgd2F5IHRoZSBjb2RlIGlzIHN0cnVjdHVyZWQs IHRoaXMgd291bGQgcmVxdWlyZSBhIHNpZ25pZmljYW50DQo+ID4+IHJld3JpdGUgYmVjYXVzZSB0 aGUgY29kZSBhc3N1bWVzIHRoYXQgaXQgd2lsbCBzdWNjZWVkIHNpbmNlIHRoZQ0KPiA+PiBjYXBh Y2l0eSBvZiB0aGUgTFBNIHRhYmxlcyB3YXMgYWxyZWFkeSBjaGVja2VkLg0KPiA+Pg0KPiA+Pj4+ Pj4+PiBPbiAxMy8xMC8yMDIwIDE1OjU4LCBNaWNoZWwgTWFjaGFkbyB3cm90ZToNCj4gPj4+Pj4+ Pj4+IEhpIEtldmluLA0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ICAgwqDCoMKgIFdlIGRvIG5l ZWQgZmllbGRzIG1heF9ydWxlcyBhbmQgbnVtYmVyX3RibDhzIG9mIHN0cnVjdA0KPiA+Pj4+Pj4+ Pj4gcnRlX2xwbSwgc28gdGhlIHJlbW92YWwgd291bGQgZm9yY2UgdXMgdG8gaGF2ZSBhbm90aGVy IHBhdGNoDQo+ID4+Pj4+Pj4+PiB0byBvdXIgbG9jYWwgY29weSBvZiBEUERLLiBXZSdkIHJhdGhl ciBhdm9pZCB0aGlzIG5ldyBsb2NhbA0KPiA+Pj4+Pj4+Pj4gcGF0Y2ggYmVjYXVzZSB3ZSB3aXNo IHRvIGV2ZW50dWFsbHkgYmUgaW4gc3luYyB3aXRoIHRoZSBzdG9jaw0KPiBEUERLLg0KPiA+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+ICAgwqDCoMKgIFRob3NlIGZpZWxkcyBhcmUgbmVlZGVkIGluIEdh dGVrZWVwZXIgYmVjYXVzZSB3ZSBmb3VuZCBhDQo+ID4+Pj4+Pj4+PiBjb25kaXRpb24gaW4gYW4g b25nb2luZyBkZXBsb3ltZW50IGluIHdoaWNoIHRoZSBlbnRyaWVzIG9mDQo+ID4+Pj4+Pj4+PiBz b21lIExQTSB0YWJsZXMgbWF5IHN1ZGRlbmx5IGNoYW5nZSBhIGxvdCB0byByZWZsZWN0IHBvbGlj eQ0KPiBjaGFuZ2VzLg0KPiA+Pj4+Pj4+Pj4gVG8gYXZvaWQgZ2V0dGluZyBpbnRvIGEgc3RhdGUg aW4gd2hpY2ggdGhlIExQTSB0YWJsZSBpcw0KPiA+Pj4+Pj4+Pj4gaW5jb25zaXN0ZW50IGJlY2F1 c2UgaXQgY2Fubm90IGZpdCBhbGwgdGhlIG5ldyBlbnRyaWVzLCB3ZQ0KPiA+Pj4+Pj4+Pj4gY29t cHV0ZSB0aGUgbmVlZGVkIHBhcmFtZXRlcnMgdG8gc3VwcG9ydCB0aGUgbmV3IGVudHJpZXMsDQo+ IGFuZA0KPiA+Pj4+Pj4+Pj4gY29tcGFyZSB3aXRoIHRoZSBjdXJyZW50IHBhcmFtZXRlcnMuIElm IHRoZSBjdXJyZW50IHRhYmxlDQo+ID4+Pj4+Pj4+PiBkb2Vzbid0IGZpdCBldmVyeXRoaW5nLCB3 ZSBoYXZlIHRvIHJlcGxhY2UgaXQgd2l0aCBhIG5ldyBMUE0NCj4gdGFibGUuDQo+ID4+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+Pj4gICDCoMKgwqAgSWYgdGhlcmUgd2VyZSBhIHdheSB0byBvYnRhaW4gdGhl IHN0cnVjdCBydGVfbHBtX2NvbmZpZw0KPiA+Pj4+Pj4+Pj4gb2YgYSBnaXZlbiBMUE0gdGFibGUs IGl0IHdvdWxkIGNsZWFubHkgYWRkcmVzcyBvdXIgbmVlZC4gV2UNCj4gPj4+Pj4+Pj4+IGhhdmUg dGhlIHNhbWUgbmVlZCBpbiBJUHY2IGFuZCBoYXZlIGEgbG9jYWwgcGF0Y2ggdG8gd29yaw0KPiA+ Pj4+Pj4+Pj4gYXJvdW5kIGl0IChzZWUNCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4NCj4gPj4NCj4gaHR0 cHM6Ly9naXRodWIuY29tL2NqZG91Y2V0dGUvZHBkay9jb21taXQvM2VhZjEyNGE3ODEzNDliOGVj OGNkODgwZGINCj4gPj4+PiAyNmE3ODExNWNiOGM4ZikuDQo+ID4+PiBJIGRvIG5vdCBzZWUgd2h5 IHN1Y2ggYW4gQVBJIGlzIG5vdCBwb3NzaWJsZSwgd2UgY291bGQgYWRkIG9uZSBBUEkNCj4gPj4+ IHRoYXQNCj4gPj4gcmV0dXJucyBtYXhfcnVsZXMgYW5kIG51bWJlcl90Ymw4cyAoZXNzZW50aWFs bHksIHRoZSBjb25maWcgdGhhdCB3YXMNCj4gPj4gcGFzc2VkIHRvIHJ0ZV9scG1fY3JlYXRlIEFQ SSkuDQo+ID4+PiBCdXQsIGlzIHRoZXJlIGEgcG9zc2liaWxpdHkgdG8gc3RvcmUgdGhhdCBpbmZv IGluIHRoZSBhcHBsaWNhdGlvbiBhcw0KPiA+Pj4gdGhhdCBkYXRhDQo+ID4+IHdhcyBwYXNzZWQg dG8gcnRlX2xwbSBmcm9tIHRoZSBhcHBsaWNhdGlvbj8NCj4gPj4NCj4gPj4gICAgICBBIHN1Z2dl c3Rpb24gZm9yIHdoYXQgdGhpcyBBUEkgY291bGQgbG9vayBsaWtlOg0KPiA+Pg0KPiA+PiB2b2lk IHJ0ZV9scG1fZ2V0X2NvbmZpZyhjb25zdCBzdHJ1Y3QgcnRlX2xwbSAqbHBtLCBzdHJ1Y3QNCj4g Pj4gcnRlX2xwbV9jb25maWcgKmNvbmZpZyk7IHZvaWQgcnRlX2xwbTZfZ2V0X2NvbmZpZyhjb25z dCBzdHJ1Y3QNCj4gPj4gcnRlX2xwbTYgKmxwbSwgc3RydWN0IHJ0ZV9scG02X2NvbmZpZyAqY29u ZmlnKTsNCj4gPj4NCj4gPj4gICAgICBJZiB0aGUgZmluYWwgY2hvaWNlIGlzIGZvciBub3Qgc3Vw cG9ydGluZyBhIHdheSB0byByZXRyaWV2ZSB0aGUNCj4gPj4gY29uZmlnIGluZm9ybWF0aW9uIG9u IHRoZSBBUEksIHdlJ2xsIGxvb2sgZm9yIGEgcGxhY2UgdG8ga2VlcCBhIGNvcHkNCj4gPj4gb2Yg dGhlIHBhcmFtZXRlcnMgaW4gb3VyIGNvZGUuDQo+ID4gSU1PLCB0aGlzIGlzIG5vdCBhIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHBhdGggYW5kIGl0IGlzIG5vdCBhIGRpZmZpY3VsdCBzb2x1dGlvbiB0 bw0KPiBzdG9yZSB0aGVzZSB2YWx1ZXMgaW4gdGhlIGFwcGxpY2F0aW9uLiBNeSBzdWdnZXN0aW9u IGlzIHRvIHNraXAgYWRkaW5nIHRoZSBBUEkNCj4gYW5kIHN0b3JlIHRoZSB2YWx1ZXMgaW4gdGhl IGFwcGxpY2F0aW9uLg0KPiA+IFZsYWRpbWlyLCB3aGF0J3MgeW91ciBvcGluaW9uPw0KPiANCj4g QWdyZWUuIEdsb2JhbCB2YXJzIG9yIHBhcnQgb2YgYSBnbG9iYWwgY29uZmlndXJhdGlvbiBjb3Vs ZCBiZSB1c2VkIGhlcmUuDQpUaGFuayB5b3UuIEkgdGhpbmsgd2UgYXJlIGZpbmUgdG8gZ28gYWhl YWQgd2l0aCBtZXJnaW5nIHRoaXMgcGF0Y2guDQoNCj4gDQo+ID4NCj4gDQo+IC0tDQo+IFJlZ2Fy ZHMsDQo+IFZsYWRpbWlyDQo=