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 961AFA051C; Tue, 11 Feb 2020 16:37:58 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C86372B87; Tue, 11 Feb 2020 16:37:57 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 747372B84 for ; Tue, 11 Feb 2020 16:37:55 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Feb 2020 07:37:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,428,1574150400"; d="scan'208";a="433715722" Received: from orsmsx102.amr.corp.intel.com ([10.22.225.129]) by fmsmga006.fm.intel.com with ESMTP; 11 Feb 2020 07:37:53 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX102.amr.corp.intel.com (10.22.225.129) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 11 Feb 2020 07:37:53 -0800 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 11 Feb 2020 07:37:52 -0800 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 11 Feb 2020 07:37:52 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 11 Feb 2020 07:37:52 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OgRaxqQKRFwEYJKMfvIm4oUMm7t7LW8DkRWN7rgICm1rCkGEu+VM+IEAfOGK1XDjUXelU4LpRH5P5K64FIwqlU2fpzrmDYnI2E2l+FHr0wm1fUznloFhl6Koabzcr+0RfClyT9JLAawSh0nM4iqGiIc30fvV0yiqxiuTWHormbFuIuWYXpTiPuTaYv9SVGbqonr8c5Q3i1uGBqh39889pGPXks2g2USNqnGQaBmlZkr5OuhSuqQ3roZkEbFrUBDxCgD7OgEyjBweS+e9PBm9/7Rk+gECjzW1uSNTOX4fmCoMAr0ldCRgkcMdsqDZuPKbhrSCA7ir3bqKEHSHZWpjHw== 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=NxLHjaLjVESs2nkQ0yq4u55TL+4mRufvXQ2pIYMBm5Y=; b=aDmfNRDM2drU7dIDDixZh2L+gcAeUsbZO7MdWP5BJKn9rmsn9XeBdRZTP52hSj0FWUgS8Iwjf/vylxe/Gv/4NeXd+3+vy2o+rfIXaPQuCPh8wn3HOynKeFTYE70TDsQsNuvgvJAU4dQaa5my6FxcOPiiZiBmMyfxFHXDAUMUhs7hZSH21S/BSKhCEQ/u2dPPpbQQvKBYJtZa6iLzop6F+a4F+IaTzi9+0AAExOeEc3lRHBNVIlraY4I9F4cao34B9sqeEGlLEJTXYniC0eYq+ipsQdCdFlBXFkJjBy6f0gtzNHeYZ+8RhJJytxFVxXB6pA3sJ19uFK3avE+gn8YdpQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NxLHjaLjVESs2nkQ0yq4u55TL+4mRufvXQ2pIYMBm5Y=; b=vU8JwMKrQRtUaJUpkLJEAmBta/SXmA2sjlkJcdknw3kvWfaLPMzQyDPGCEJ5b6u2Hu9nBAgRzTprCqsB8iOvidrJUvq6m9oidqmLtQXjQy2mJ/cLzWRDH3GZ+YlBZ3ENBXHY/qWi/quHLKp44tDDb7egL1Me8Ws0zfam+APV3gk= Received: from BYAPR11MB2648.namprd11.prod.outlook.com (52.135.227.138) by BYAPR11MB2965.namprd11.prod.outlook.com (20.177.224.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Tue, 11 Feb 2020 15:37:48 +0000 Received: from BYAPR11MB2648.namprd11.prod.outlook.com ([fe80::d0d2:ce29:adf5:f6a5]) by BYAPR11MB2648.namprd11.prod.outlook.com ([fe80::d0d2:ce29:adf5:f6a5%7]) with mapi id 15.20.2707.030; Tue, 11 Feb 2020 15:37:48 +0000 From: "Govindharajan, Hariprasad" To: "Burakov, Anatoly" , "Lu, Wenzhuo" , "Wu, Jingjing" , "Iremonger, Bernard" , "Mcnamara, John" , "Kovacevic, Marko" CC: "dev@dpdk.org" , "Yigit, Ferruh" , "stephen@networkplumber.org" , "david.marchand@redhat.com" Thread-Topic: [dpdk-dev] [PATCH v7] app/testpmd: add portlist option Thread-Index: AQHV4DZbKI7d5D6sD0W2pxTNQwWf1qgV5VAAgAAqTSA= Date: Tue, 11 Feb 2020 15:37:48 +0000 Message-ID: References: <1580121053-26083-2-git-send-email-hariprasad.govindharajan@intel.com> <1581355176-25132-1-git-send-email-hariprasad.govindharajan@intel.com> <0e183b56-2dce-a525-d6be-06a58d2e45af@intel.com> In-Reply-To: <0e183b56-2dce-a525-d6be-06a58d2e45af@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiM2YyZDM1ODctNzFlOS00MmVkLWE4MjYtOTMxYjZmMDI5ZjYxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiWmFmXC9NZE12TnkzMVBncyt2Z0J2VmFUMDFqMFp0VHdJSUswR3RNU2toWDNJd2hJYUZES3E5WTlSRGxDZStUYk4ifQ== dlp-product: dlpe-windows x-ctpclassification: CTP_NT dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=hariprasad.govindharajan@intel.com; x-originating-ip: [192.198.151.166] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6abc0939-c6b4-4fe3-79bd-08d7af085912 x-ms-traffictypediagnostic: BYAPR11MB2965: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0310C78181 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(39860400002)(376002)(346002)(366004)(396003)(199004)(189003)(52536014)(9686003)(5660300002)(110136005)(71200400001)(54906003)(478600001)(8676002)(81166006)(81156014)(86362001)(64756008)(66946007)(8936002)(66446008)(66556008)(76116006)(66476007)(7696005)(2906002)(186003)(55016002)(316002)(26005)(4326008)(6636002)(33656002)(53546011)(6506007)(921003)(1121003); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR11MB2965; H:BYAPR11MB2648.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: S83zq2U70EHIoQdkxp37OYrHF8C1sP29LvLiaXjlsuyDUOiOAN6hdCMteY9HW2rEPKTjn88kR9cSe51z9G1jbC+L/QMLJS+3Hx7RlRVqNLFu6MI0RJ9XjkCZNnJ5dDb3dmmQ1kIAZymY0QPR82x9fEfw+tE3Wv2dl933JSwiOSeMt0jkme81VWprMl+tDiPXlXBvZI48W3USYnh7FEITLjbzHypi0y2qYc9z/F1xN78QXfLQOoSR6hU9ktFN7uZTqAxQXZof0ifLMeaQ1wybEjzEi805/hDzOezZo3IMUGx8wE4S+tErjH3arMvXdGCgI8hNiO/9p3FaoutjCH1zp7B3rmbZzROwXhhEmeneYimKRk7PoxHt4hF7CXyXZiOQxa2AlZKzHqnljaFtegRH04KpQ2c+340RU51oOH+sNS3c5QAMnKMzYwtimfeuSsKCaohMQ9d2KgScn8eWhiiWPTuE4uSvA7ftmJqDRq5W6sfNPWUWk17S1P0mKbVcrBzh x-ms-exchange-antispam-messagedata: mUpZCVwxPMlts4MIl4bznj8Ct+C4Ajprs5qt5sWkGff/V42acsS+YxWdvzUlKdSKyz/JdAeN/t7ZY96//9SWZQkcE81koN/REI4WS/vV5vHbjq8n91KP09uJ5ESIyETyUzPtmnBriLhx/5z+IBTIog== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 6abc0939-c6b4-4fe3-79bd-08d7af085912 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Feb 2020 15:37:48.3147 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HZnrO/Kc862qv2eGmjPXN3C+kJeUwDyUojay6qJbytm92qXS2wqkqx2A+q3LilULtIe3xS89j8qlu4jpkDFQ3YPT8Wff2uUVpKw9f7PT8lAzBgrQrq/NUKRLjhZ30byg X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2965 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v7] app/testpmd: add portlist option 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnVyYWtvdiwgQW5hdG9s eSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkg MTEsIDIwMjAgMTI6MDEgUE0NCj4gVG86IEdvdmluZGhhcmFqYW4sIEhhcmlwcmFzYWQgPGhhcmlw cmFzYWQuZ292aW5kaGFyYWphbkBpbnRlbC5jb20+OyBMdSwNCj4gV2Vuemh1byA8d2Vuemh1by5s dUBpbnRlbC5jb20+OyBXdSwgSmluZ2ppbmcgPGppbmdqaW5nLnd1QGludGVsLmNvbT47DQo+IEly ZW1vbmdlciwgQmVybmFyZCA8YmVybmFyZC5pcmVtb25nZXJAaW50ZWwuY29tPjsgTWNuYW1hcmEs IEpvaG4NCj4gPGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgS292YWNldmljLCBNYXJrbw0KPiA8 bWFya28ua292YWNldmljQGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgWWlnaXQsIEZl cnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47DQo+IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIu b3JnOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZd IFtQQVRDSCB2N10gYXBwL3Rlc3RwbWQ6IGFkZCBwb3J0bGlzdCBvcHRpb24NCj4gDQo+IE9uIDEw LUZlYi0yMCA1OjE5IFBNLCBIYXJpcHJhc2FkIEdvdmluZGhhcmFqYW4gd3JvdGU6DQo+ID4gSW4g Y3VycmVudCB2ZXJzaW9uLCB3ZSBhcmUgc2V0dGluZyB0aGUgcG9ydHMgdXNpbmcgcG9ydG1hc2su IFdpdGgNCj4gPiBwb3J0bWFzaywgd2UgY2FuIHVzZSBvbmx5IHVwdG8gNjQgcG9ydHMuIFRoaXMg cG9ydGxpc3Qgb3B0aW9uIGVuYWJsZXMNCj4gPiB0aGUgdXNlciB0byB1c2UgbW9yZSB0aGFuIDY0 IHBvcnRzLg0KPiA+IE5vdyB3ZSBjYW4gc3BlY2lmeSB0aGUgcG9ydHMgaW4gMiBkaWZmZXJlbnQg d2F5cw0KPiA+ICAgLSBVc2luZyBwb3J0bWFzayAoLXAgWzB4XW5ubik6IG1hc2sgbXVzdCBiZSBp biBoZXggZm9ybWF0DQo+ID4gICAtIFVzaW5nIHBvcnRsaXN0IGluIHRoZSBmb2xsb3dpbmcgZm9y bWF0DQo+ID4gICAtLXBvcnRsaXN0IDxwMT5bLXAyXVsscDNbLXA0XSwuLi5dDQo+ID4NCj4gPiAg IC0tcG9ydG1hc2sgMHgyIGlzIHNhbWUgYXMgLS1wb3J0bGlzdCAxDQo+ID4gICAtLXBvcnRtYXNr IDB4MyBpcyBzYW1lIGFzIC0tcG9ydGxpc3QgMC0xDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBI YXJpcHJhc2FkIEdvdmluZGhhcmFqYW4NCj4gPiA8aGFyaXByYXNhZC5nb3ZpbmRoYXJhamFuQGlu dGVsLmNvbT4NCj4gPiAtLS0NCj4gPiB2NzoNCj4gPiBtb3ZlZCB0aGUgcG9ydCB2YWxpZGF0aW9u IG91dHNpZGUgdGhlIHBhcnNlciBmdW5jdGlvbi4NCj4gPiBhZGRlZCBtZWFuaW5nZnVsIGNvbW1l bnRzIGRlc2NyaWJpbmcgdGhlIG5ldyBmdW5jdGlvbmFsaXR5Lg0KPiA+IHJlbmFtZWQgdGhlIHZh cmlhYmxlcyB3aXRoIG1lYW5pbmdmdWwgbmFtZXMNCj4gPg0KPiA+IHY2Og0KPiA+IG9wdGltaXpl ZCB0aGUgY29kZSB0byBjaGVjayBmb3IgZHVwbGljYXRlcw0KPiA+DQo+ID4gdjU6DQo+ID4gYWRk ZWQgYSBjaGVjayB0byB2YWxpZGF0ZSB0aGUgcG9ydHMgYXZhaWxhYmxlIGJlZm9yZSBzZXR0aW5n IHRoZW0uDQo+ID4gYWxzbyBhZGRlZCBjb21tZW50cyBpbiB0aGUgdGVzdHBtZCBmaWxlIGZvciB0 aGUgbmV3IGZ1bmN0aW9uDQo+ID4NCj4gPiB2NDoNCj4gPiB0aGUgcGFyc2VyIGlzIG1vZGlmaWVk IHNvIHRoYXQgd2UgZG9uJ3QgdWVzIDIgYXJyYXlzIHRvIGNvbnZlcnQgdGhlDQo+ID4gbGlzdGVk IHBvcnQgdmFsdWVzDQo+ID4NCj4gPiB2MzoNCj4gPiBzcXVhc2hlZCB0aGUgMiBwYXRjaGVzIGFu ZCBtYWRlIGl0IDEgcGF0Y2ggd2l0aCBjaGFuZ2VzIG9ubHkgaW4NCj4gPiB0ZXN0cG1kLiBBbHNv IHdvcmtpbmcgb24gb3B0bWl6aW5nIHRoZSBwYXJzZXINCj4gPg0KPiA+IHYyOg0KPiA+IG1vdmVk IHRoZSBwYXJzZXIgZnVuY3Rpb24gdG8gdGVzdHBtZA0KPiA+IC0tLQ0KPiA+ICAgYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jICAgICAgICAgICAgICAgICB8IDExNA0KPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrDQo+ID4gICBhcHAvdGVzdC1wbWQvcGFyYW1ldGVycy5jICAgICAgICAg ICAgIHwgICA1ICsrDQo+ID4gICBhcHAvdGVzdC1wbWQvdGVzdHBtZC5oICAgICAgICAgICAgICAg IHwgICAzICsNCj4gPiAgIGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvcnVuX2FwcC5yc3QgfCAg IDcgKysrDQo+ID4gICA0IGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspDQo+ID4NCj4g PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGIvYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jIGluZGV4DQo+ID4gOTY2OWNiZC4uOTYyOTg0YiAxMDA2NDQNCj4gPiAtLS0gYS9hcHAvdGVz dC1wbWQvY29uZmlnLmMNCj4gPiArKysgYi9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPiBAQCAt MjU4Nyw2ICsyNTg3LDEyMCBAQCBzZXRfZndkX3BvcnRzX2xpc3QodW5zaWduZWQgaW50ICpwb3J0 bGlzdCwNCj4gdW5zaWduZWQgaW50IG5iX3B0KQ0KPiA+ICAgCX0NCj4gPiAgIH0NCj4gPg0KPiA+ ICsvKioNCj4gPiArICogUGFyc2UgdGhlIHVzZXIgaW5wdXQgYW5kIG9idGFpbiB0aGUgbGlzdCBv ZiBmb3J3YXJkaW5nIHBvcnRzDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbVtpbl0gbGlzdA0KPiA+ ICsgKiAgIFN0cmluZyBjb250YWluaW5nIHRoZSB1c2VyIGlucHV0LiBVc2VyIGNhbiBzcGVjaWZ5 DQo+ID4gKyAqICAgaW4gdGhlc2UgZm9ybWF0cyAxLDMsNSBvciAxLTMgb3IgMS0yLDUgb3IgMyw1 LTYuDQo+ID4gKyAqICAgRm9yIGV4YW1wbGUsIGlmIHRoZSB1c2VyIHdhbnRzIHRvIHVzZSBhbGwg dGhlIGF2YWlsYWJsZQ0KPiA+ICsgKiAgIDQgcG9ydHMgaW4gaGlzIHN5c3RlbSwgdGhlbiB0aGUg aW5wdXQgY2FuIGJlIDAtMyBvciAwLDEsMiwzLg0KPiA+ICsgKiAgIElmIHRoZSB1c2VyIHdhbnRz IHRvIHVzZSBvbmx5IHRoZSBwb3J0cyAxLDIgdGhlbiB0aGUgaW5wdXQNCj4gPiArICogICBpcyAx LDIuDQo+ID4gKyAqICAgdmFsaWQgY2hhcmFjdGVycyBhcmUgJy0nIGFuZCAnLCcNCj4gPiArICog ICBpbnZhbGlkIGNoYXJzIGxpa2UgJy4nIG9yICcjJyB3aWxsIHJlc3VsdCBpbg0KPiA+ICsgKiAg IEVBTDogRXJyb3IgLSBleGl0aW5nIHdpdGggY29kZTogMQ0KPiA+ICsgKiAgICAgQ2F1c2U6IElu dmFsaWQgZndkIHBvcnQgbGlzdA0KPiA+ICsgKiBAcGFyYW1bb3V0XSB2YWx1ZXMNCj4gPiArICog ICBUaGlzIGFycmF5IHdpbGwgYmUgZmlsbGVkIHdpdGggYSBsaXN0IG9mIHBvcnQgSURzDQo+ID4g KyAqICAgYmFzZWQgb24gdGhlIHVzZXIgaW5wdXQNCj4gPiArICogICBOb3RlIHRoYXQgZHVwbGlj YXRlIGVudHJpZXMgYXJlIGRpc2NhcmRlZCBhbmQgb25seSB0aGUgZmlyc3QNCj4gPiArICogICBj b3VudCBlbnRyaWVzIGluIHRoaXMgYXJyYXkgYXJlIHBvcnQgSURzIGFuZCBhbGwgdGhlIHJlc3QN Cj4gPiArICogICB3aWxsIGNvbnRhaW4gZGVmYXVsdCB2YWx1ZXMNCj4gPiArICogQHBhcmFtW2lu XSBtYXhzaXplDQo+ID4gKyAqICAgVGhpcyBwYXJhbWV0ZXIgZGVub3RlcyAyIHRoaW5ncw0KPiA+ ICsgKiAgIDEpIFNpemUgb2YgdGhlIHZhbHVlcyBhcnJheQ0KPiANCj4gSSBiZWxpZXZlIHlvdSBt ZWFudCAibnVtYmVyIiwgbm90ICJzaXplIi4NCg0KW0dvdmluZGhhcmFqYW4sIEhhcmlwcmFzYWRd IE5vcGUuIEhlcmUgSSBtZWFudCB0byBzYXkgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgdmFsdWVz IGFycmF5Lg0KICANCj4gDQo+ID4gKyAqICAgMikgTWF4aW11bSB2YWx1ZSBvZiBlYWNoIGVsZW1l bnQgaW4gdGhlIHZhbHVlcyBhcnJheQ0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgLU9uIHN1 Y2Nlc3MsIHJldHVybnMgdG90YWwgY291bnQgb2YgcG9ydCBJRHMNCj4gPiArICogICAtT24gZmFp bHVyZSwgcmV0dXJucyAtMS4NCj4gPiArICovDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArcGFyc2Vf cG9ydF9saXN0KGNvbnN0IGNoYXIgKmxpc3QsIHVuc2lnbmVkIGludCAqdmFsdWVzLCBpbnQgbWF4 c2l6ZSkNCj4gPiArew0KPiA+ICsJaW50IGNvdW50ID0gMDsNCj4gPiArCWNoYXIgKmVuZCA9IE5V TEw7DQo+ID4gKwlpbnQgbWluLCBtYXg7DQo+ID4gKwlpbnQgdmFsdWUsIGk7DQo+ID4gKwl1bnNp Z25lZCBpbnQgbWFya2VkW21heHNpemVdOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBt YXhzaXplOyBpKyspDQo+ID4gKwkJbWFya2VkW2ldID0gMDsNCj4gDQo+IFdvdWxkbid0IG1hcmtl ZFttYXhzaXplXSA9IHswfTsgd29yayB0aGUgc2FtZT8NCg0KW0dvdmluZGhhcmFqYW4sIEhhcmlw cmFzYWRdIE5vcGUuIEZvciB0aGF0IHRvIHdvcmssIHRoZSBhcnJheSBzaXplIHNob3VsZCBiZSBh IGNvbnN0YW50LiBIZXJlIGl0IGlzIGEgdmFyaWFibGUuDQo+IA0KPiA+ICsNCj4gPiArCWlmIChs aXN0ID09IE5VTEwgfHwgdmFsdWVzID09IE5VTEwgfHwgbWF4c2l6ZSA8IDApDQo+ID4gKwkJcmV0 dXJuIC0xOw0KPiANCj4gWW91J3JlIGNoZWNraW5nIGlmIG1heHNpemUgY2FuIGJlIG5lZ2F0aXZl LiBGaXJzdCBvZiBhbGwsIHlvdSd2ZSBhbHJlYWR5DQo+IGFsbG9jYXRlZCB0aGUgYXJyYXkgd2l0 aCBuZWdhdGl2ZSBzaXplIGJ5IHRoaXMgdGltZSAodGhlICJtYXJrZWRbbWF4c2l6ZV0iDQo+IG9u ZSksIHNlY29uZCwgd2h5IGFsbG93IG5lZ2F0aXZlIHZhbHVlcyBhdCBhbGw/IFdoeSBub3QganVz dCBtYWtlIGl0DQo+IHVuc2lnbmVkPw0KPiANCj4gPiArDQo+ID4gKwkvKiBSZW1vdmUgYWxsIGJs YW5rIGNoYXJhY3RlcnMgYWhlYWQgKi8NCj4gPiArCXdoaWxlIChpc2JsYW5rKCpsaXN0KSkNCj4g PiArCQlsaXN0Kys7DQo+IA0KPiBXaHkgZG8gaXQgaGVyZSB3aGVuIHlvdSBkbyB0aGlzIGZpcnN0 IHRoaW5nIGluIHRoZSBkby4ud2hpbGUgbG9vcCBhbnl3YXk/DQoNCltHb3ZpbmRoYXJhamFuLCBI YXJpcHJhc2FkXSBZZXMuIFJlbW92ZWQuDQo+IA0KPiA+ICsNCj4gPiArCW1pbiA9IG1heHNpemU7 DQo+IA0KPiBZb3UncmUgb3ZlcndyaXRpbmcgdGhpcyB2YWx1ZSByZWdhcmRsZXNzLiBXaHkgbm90 IDA/IElmIHlvdSB3YW50IHRvIGtub3cgZm9yDQo+IHN1cmUgdGhhdCB0aGUgdmFsdWUgZWl0aGVy IGhhcyBvciBoYXMgbm90IGJlZW4gbW9kaWZpZWQsIHRoZSBjb252ZW50aW9uYWwNCj4gd2F5IHRv IGRvIHRoaXMgaXMgdG8gdXNlIElOVF9NQVggZnJvbSA8bGltaXRzLmg+Lg0KPiANCj4gPiArDQo+ ID4gKwlkbyB7DQo+ID4gKwkJd2hpbGUgKGlzYmxhbmsoKmxpc3QpKQ0KPiA+ICsJCQlsaXN0Kys7 DQo+IA0KPiBJIGhhdmUgYSBzdXNwaWNpb24gdGhhdCBpc2JsYW5rKCkgd2lsbCBub3QgcmV0dXJu ICd0cnVlJyBvbiAnXDAnIHNvIHRoZXJlJ3MNCj4gcHJvYmFibHkgYSBidWZmZXIgb3ZlcnJ1biBo ZXJlLCBpZiB5b3UgdHJ5IHRvIGRlcmVmZXJlbmNlICpsaXN0IHdoaWxlIGdvaW5nDQo+IHBhc3Qg J1wwJy4NCg0KW0dvdmluZGhhcmFqYW4sIEhhcmlwcmFzYWRdICBDb3JyZWN0ZWQNCj4gDQo+ID4g KwkJaWYgKCpsaXN0ID09ICdcMCcpDQo+ID4gKwkJCXJldHVybiAtMTsNCj4gPiArCQllcnJubyA9 IDA7DQo+ID4gKwkJdmFsdWUgPSBzdHJ0b2wobGlzdCwgJmVuZCwgMTApOw0KPiA+ICsJCWlmIChl cnJubyB8fCBlbmQgPT0gTlVMTCkNCj4gPiArCQkJcmV0dXJuIC0xOw0KPiA+ICsJCWlmICh2YWx1 ZSA8IDAgfHwgdmFsdWUgPj0gbWF4c2l6ZSkNCj4gPiArCQkJcmV0dXJuIC0xOw0KPiA+ICsJCXdo aWxlIChpc2JsYW5rKCplbmQpKQ0KPiA+ICsJCQllbmQrKzsNCj4gPiArCQlpZiAoKmVuZCA9PSAn LScpIHsNCj4gPiArCQkJbWluID0gdmFsdWU7DQo+ID4gKwkJfSBlbHNlIGlmICgoKmVuZCA9PSAn LCcpIHx8ICgqZW5kID09ICdcMCcpKSB7DQo+ID4gKwkJCW1heCA9IHZhbHVlOw0KPiA+ICsJCQlp ZiAobWluID09IG1heHNpemUpDQo+ID4gKwkJCQltaW4gPSB2YWx1ZTsNCj4gPiArCQkJZm9yIChp ID0gbWluOyBpIDw9IG1heDsgaSsrKSB7DQo+ID4gKwkJCQlpZiAoY291bnQgPCBtYXhzaXplKSB7 DQo+ID4gKwkJCQkJaWYgKG1hcmtlZFtpXSkNCj4gPiArCQkJCQkJY29udGludWU7DQo+ID4gKwkJ CQkJdmFsdWVzW2NvdW50XSA9IGk7DQo+ID4gKwkJCQkJbWFya2VkW2ldID0gMTsNCj4gPiArCQkJ CQljb3VudCsrOw0KPiA+ICsJCQkJfQ0KPiA+ICsJCQl9DQo+ID4gKwkJCW1pbiA9IG1heHNpemU7 DQo+IA0KPiBQcm9iYWJseSBjbGVhcmVyIHRvIHJlc2V0IGJvdGggdG8gemVybyBvciBJTlRfTUFY L0lOVF9NSU4/DQoNCltHb3ZpbmRoYXJhamFuLCBIYXJpcHJhc2FkXSAgZG9uZQ0KPiANCj4gPiAr CQl9IGVsc2UNCj4gPiArCQkJcmV0dXJuIC0xOw0KPiA+ICsJCWxpc3QgPSBlbmQgKyAxOw0KPiA+ ICsJfSB3aGlsZSAoKmVuZCAhPSAnXDAnKTsNCj4gPiArDQo+ID4gKwlpZiAoY291bnQgPT0gMCkN Cj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKwlyZXR1cm4gY291bnQ7DQo+ID4gK30NCj4gPiArDQo+ ID4gK3ZvaWQNCj4gPiArcGFyc2VfZndkX3BvcnRsaXN0KGNvbnN0IGNoYXIgKnBvcnRsaXN0KSB7 DQo+ID4gKwlpbnQgcG9ydGNvdW50Ow0KPiA+ICsJdW5zaWduZWQgaW50IHBvcnRpbmRleFtSVEVf TUFYX0VUSFBPUlRTXTsNCj4gPiArCWludCBpLCB2YWxpZF9wb3J0X2NvdW50ID0gMDsNCj4gDQo+ IHVuc2lnbmVkPw0KDQpbR292aW5kaGFyYWphbiwgSGFyaXByYXNhZF0gQ2hhbmdlZC4gSW5pdGlh bGx5IEkgd2FzIGNvbXBhcmluZyB0aG9zZSAyIHZhcmlhYmxlcyB3aXRoIGEgc2lnbmVkIHZhcmlh YmxlLA0KU28gZGVjbGFyZWQgdGhlbSBhcyBzaWduZWQgYXMgd2VsbC4NCj4gDQo+ID4gKw0KPiA+ ICsJcG9ydGNvdW50ID0gcGFyc2VfcG9ydF9saXN0KHBvcnRsaXN0LCBwb3J0aW5kZXgsDQo+IFJU RV9NQVhfRVRIUE9SVFMpOw0KPiA+ICsJaWYgKHBvcnRjb3VudCA8IDApDQo+ID4gKwkJcnRlX2V4 aXQoRVhJVF9GQUlMVVJFLCAiSW52YWxpZCBmd2QgcG9ydCBsaXN0XG4iKTsNCj4gPiArDQo+ID4g KwkvKg0KPiA+ICsJICogSGVyZSB3ZSB2ZXJpZnkgdGhlIHZhbGlkaXR5IG9mIHRoZSBwb3J0cw0K PiA+ICsJICogYW5kIHRoZXJlYnkgY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2YNCj4gPiAr CSAqIHZhbGlkIHBvcnRzDQo+ID4gKwkgKi8NCj4gDQo+IC0tDQo+IFRoYW5rcywNCj4gQW5hdG9s eQ0K