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 83E94A04AD; Wed, 19 Jan 2022 15:41:45 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2BF6941158; Wed, 19 Jan 2022 15:41:45 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 1807541147 for ; Wed, 19 Jan 2022 15:41:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642603303; x=1674139303; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=wSwR+Hp7jlAQJE+zXfPmX+yBmJ1Zeh5g1mB5InadXcE=; b=dx5MAs6OH3LICGLMzt41KUhN9IgZE7pA6GUsG/94VU6au6q0CGBLZhMZ z6YFfVCgvCiYl9uZyOzIu2cJCYisBWKnQuOFpE4ES3h5X+4wm3Vs+MipK gGVevcDW9btfLb8K4+65HKP/ldiGYog/vJcKtu3PBmP0CTDh1lmtUlr89 gOdTGk4YtqaM4fz2B8ZXC+Mmu3DH66wK1tNF9Ecsl0u6wyH0tlkHgLauj AKoHTK8MK30Z5hwkWXyN41+2lR26IqNTbARqwlMd652TXDik8vOpYBvzH s/YZlwMGynZqlJBLP8ZTEp8AwdNFfb3GI3NzK/rE3nMjFTB0DJXJjmQjr g==; X-IronPort-AV: E=McAfee;i="6200,9189,10231"; a="305809839" X-IronPort-AV: E=Sophos;i="5.88,299,1635231600"; d="scan'208";a="305809839" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jan 2022 06:41:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,299,1635231600"; d="scan'208";a="532312439" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga008.jf.intel.com with ESMTP; 19 Jan 2022 06:41:41 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 19 Jan 2022 06:41:41 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Wed, 19 Jan 2022 06:41:41 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Wed, 19 Jan 2022 06:41:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QFUTnf+v04IYyYUK4PlT5blAs6lNa47H9RA72IgdGFAlfSJXCP+sRl0Wcla6eJdAHU5jlQFi5i+sFJFwdOlvm0LmYMTYhYMJH9C8WEG6xd/nhXRrmfnW64+pOYWR21C5ni5nYj+kFv0HkV/Nu1RZEdOhYxhgnhX7STYERmQiQTpJViYKt7bOqzwBCgAMoGIylHS2SA1h3aghlPeoEahfqkDowt8GTkheQu5z7GEWo84FccfORX9ECWJmeG1UpLpTIV5GWJ+etYtv0/bp0xXOCl07y0DN7iwD6eNngo9bBlWIcS/rAESBfWRU2KQiWaOMw0nvNR1PQUhIu8nLsJanhA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wSwR+Hp7jlAQJE+zXfPmX+yBmJ1Zeh5g1mB5InadXcE=; b=MMZrAMY8AD0x/Fir8nh5VhqfvKPvXtdBXq1mAAOCrwYkbwvMN3nWOFEFONLVV7Yv/7/4foa1d3Ljeyfszexl2WipOIUnAdmmM6+zIjlR6K3NQ36ckgPNVsAwT5l11KeJ+NNET4Npkbez9oQu4K3alRAgbmh3a27L5luO05E/XMV/HxQlrSZIUSZvtfFJzrNlXq+5DZ5buMQPCJslP4VJCotb7XwKs1JnQULW6jwm1WHlhS5DbhzzAwGqYVL0jCvA8LP2YMiNvn5Aa0YNF17bXZCXtoe5DeMmu9Kt2gPJfGkzzewyFqBivl4SwfCaMfjVK0nNeMiXWyQGO0/srAqwHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from BN0PR11MB5712.namprd11.prod.outlook.com (2603:10b6:408:160::17) by SN6PR11MB3341.namprd11.prod.outlook.com (2603:10b6:805:bc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.12; Wed, 19 Jan 2022 14:41:39 +0000 Received: from BN0PR11MB5712.namprd11.prod.outlook.com ([fe80::343c:58e8:2190:8e7d]) by BN0PR11MB5712.namprd11.prod.outlook.com ([fe80::343c:58e8:2190:8e7d%6]) with mapi id 15.20.4888.014; Wed, 19 Jan 2022 14:41:39 +0000 From: "Van Haaren, Harry" To: Thomas Monjalon , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Stephen Hemminger , "Randles, Ronan" , "Ananyev, Konstantin" CC: "dev@dpdk.org" Subject: RE: [PATCH 02/12] net: add function to pretty print IPv4 Thread-Topic: [PATCH 02/12] net: add function to pretty print IPv4 Thread-Index: AQHX8PSzagsZjQ65/kiEh07KtjYQKawyPuCAgAB/HwCAACWfgIAAQ7QAgABf8gCANxdZgIAAAsWA Date: Wed, 19 Jan 2022 14:41:39 +0000 Message-ID: References: <20211214141242.3383831-1-ronan.randles@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D86D72@smartserver.smartshare.dk> <5910655.2l3rmUXbR5@thomas> In-Reply-To: <5910655.2l3rmUXbR5@thomas> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3731ead6-a55c-4968-e683-08d9db59cd81 x-ms-traffictypediagnostic: SN6PR11MB3341:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RGa3R++n28+o0df5nKEyUmh6pX4s8upKGSwGRUS4i9U4280oVz6kMI1n7LJQtONzFCr/vL/oV+LVlDBPsu3uuWCQny8VJSfYmakwFheS+glkKAcpHd+Z14tsVsX2NkItenHNNNmvMwEXvdEfpia7jMHTv1pxCEpxA79ihTz9vQCmnFnMdSqtY/UsxPOfRM25twrhB0FxnVgriclFfwKBGO9ZgF1Iequ7kXUUcsbqs/aDlGXSpqfjClyd/cHtRNaKsMHCLSdrb4qznhz/jUy+HzcrjYAaVked4ZARC4fsDnnfInjYIGuyVJATwoVq/p0KRH5pMsvYm/6LzFvYoBjVcQYa5tVO9hU6ifErNrZDq4c04+Xgax4F8Y9YIHqC9Ft6WpM7+AaMST15KOxdYBoqu1TumaCQs6lF8YH0ubQlZDgfQrqQn0e+NMwb4O8fg7MI/dzAQryPbzoinRTSZFmpIJka2XxEGlUP7Aj9LwxqkNUFsVJ+a814HVLXeeiIb/or6PQUhJOwilAgWY2fmxREQr0bpSSUTQSkdk6f2hkbE6XvccWbJO666Dl0uy3TPD3FCHnfR95Zs2XOiUEOBlzUFncEi+qLyhAgm1+mJ2b652AWtlMvVZ3n50Rns1Ue/wKlE6kyGLZhxnkO/i2X+KUIrHDP1ItGXTsDiVmqrk64k2Spf9LmgBIC+pgA490UkZ/sv8ezxwBj6fbE/hUzqC30fg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN0PR11MB5712.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(508600001)(5660300002)(6506007)(7696005)(316002)(66476007)(110136005)(8676002)(52536014)(33656002)(186003)(53546011)(6636002)(4326008)(2906002)(9686003)(82960400001)(66946007)(66446008)(76116006)(38070700005)(122000001)(83380400001)(38100700002)(66556008)(86362001)(71200400001)(66574015)(64756008)(55016003)(26005)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YngzMmxlUW91N2cwNVVHSTdXVWZJZFJtVjdFQk5CN05OcnNFZzUvc01SaXZK?= =?utf-8?B?M1A4UVVrWFc4alF5T2xHUS8yeDBvMXVYRmZyVkFlUld6QzA0RnV0WkNLcENl?= =?utf-8?B?cUt1d0MwV1gzdGo2SUZhZVVhSjZmVHZSVHhGNnBlU1pDbzZlMVZSYW0vTzdO?= =?utf-8?B?cFY1b2hrcFdaejl1dTV5R1hkd2VrTE5TVzdWMDdIT1RUY1VhWTdaaFRsNmJV?= =?utf-8?B?OWdtVFErTXVYTDYwemtpeFJVQnNMcDY1UnVOTXdack4yOUcxMTdVQWVtRjVp?= =?utf-8?B?NHRYVUF2ZmRDaWZ3OCt6SEVIV2QzRldFQnhqa3B6azN4T0RzdUJsYW41c2F4?= =?utf-8?B?d09OdWQvaDVxMi9abHVaNFNkRUhHSUxTdDY5dGF3Q2trSm15elk4cE4xdlRE?= =?utf-8?B?NGhWYXB1aFFmK2dZcDBVQldmOFBnbW5haHE3RTlZZmEvNVNSVkc5ZCtwSTZR?= =?utf-8?B?RzNLd2dZS0ZqL01nZFBKNlNsWEtyMHpqSjM5bEdyUzN1ZmhzYm51SHQ5WkNu?= =?utf-8?B?YlNYRzltQi82UVlrcnNQdC9iQ0hleFdueWZwU1VVTlppYmdhYjYvbFk1WkQy?= =?utf-8?B?Y2Q3QUV5eS9LUE4zb0lVaW0wczIwTEg2RzUrWDRCZmlPd2N3UWh5RTZsQ3RQ?= =?utf-8?B?a1JVR0I4T0VXTnZRVENlemM0SjJqUkFHSzdNNmZrQUpWSUtJSlI5WHFDYVJz?= =?utf-8?B?VFpGZm9QYi9RaVEvRWkrcjNPOERLSGMvRHVLV01KaG40cll0S1k0ZlR5YVN3?= =?utf-8?B?dlZ3RkFLeWpDYmk3cndVSlBjSzFrOUZqNFBXOElJd3g1T3NjaHBnRkNTMVNM?= =?utf-8?B?WUlCQ1VuVWZXYlpIQndjSUxHK2xValNBbG1od1dnTzlTenhVVzhoZFE0ZnhU?= =?utf-8?B?bi82aWdrN01WZXJ1TlR5d2YyNG9kdlpvcTJzamYrcTFmbU5GUkkxRlU1MW9Z?= =?utf-8?B?OHZOQ0N0UXBCREtMVEhsakZONU9tTnNBbVpaUFF6YUwxbDZRanZJNG12MEl3?= =?utf-8?B?aTE0dEgvdi9ZdHprNVBGR3FhYUZybkc3bWdTWjMzbURScXhPdTh5RUVEQWxN?= =?utf-8?B?R0JKTFZtV1ZVM3VxOEZJRng1ZFd6b3RyR09jUlNDSjRIK2hXT3NidGFyK0Fk?= =?utf-8?B?cTFCVnNDZUd6NmxzMlNaV1pRQXBXS21jczVseExzelRGSjBMUG1LcXlXVDZw?= =?utf-8?B?bUVqdzQ5dGs2VkQ1cnE2Q3RGdHpJZkNua0NNTTJNUlNWSXplczRBQldjemFU?= =?utf-8?B?NHljMzhhNVlUUHJDTzMxUEREZkZmSnp1RjJKV3pnSzdoNHgzNjlSN0dqWHdm?= =?utf-8?B?Nm0zM2FkNUkrTlFUVlIzMld0V1BFYllwRzgvZVEwcTdEWVpOOHBwdmZ2bGNJ?= =?utf-8?B?WnVuaWhIYXU1YTYvTFFnSXVGbjM5d2QrbVI3anpseC90S1YwQ25SWS9CVUN2?= =?utf-8?B?bU9DckIyOWE5RjVibmE4OVZTczBSTVIydlR0Sm1Tekw0UmdhQ1pwSFZlV3Fx?= =?utf-8?B?cWxZZG45LzFKeHV1SE5YNGJwNVZpQkZjN3YvYTk1cFh6eFM1ZElJNm81WllJ?= =?utf-8?B?M0IrdDRUT0hiL2VZcm8yWHkvNUowZmpQUTBRMEhWaURsME13ZDU1TE1VY2xs?= =?utf-8?B?eWFMdWpqOE9qTzlOWW93cEwvSFRIQnRmZkR5SkxDdVl5Rk44d0p6aFlxT3dY?= =?utf-8?B?a0hxUnphMFIxbFZYQzF1U0FiVlpsNjV5TnNPOGhzMEY4S0RFMWNGYWxGTXRo?= =?utf-8?B?YVoxWmhTZGppcEZHMWFIa1pwY3dGdFFac2E0K2lFNE5taWJmSWprTm55YjZR?= =?utf-8?B?RkxreERVbzJKdk90VVlmUmkvb1JiRW1OTnhpNEY1RWVJdVM1WHBZZ0RDUUZU?= =?utf-8?B?VTFaeWpaOENPZmovTTQwc0ZzcWJ1cHdtRzJ1MUxsN25uZ3c0cUw3ZjJ4WGNX?= =?utf-8?B?TURWRVJuam1OeDF1ayt2NWJ2M2NPb2NXMmhIdTcwTndpM2N5UkM2RkpXZ0cw?= =?utf-8?B?YVRqUGdkMHl5UWkxQis0U284THA5dXJTWnkvWElGbWdXcjJaYXU4OWF4SlhD?= =?utf-8?B?bXpxUVNJamt6NEQ2QUR3T3NqenJnYm1LSGZPSmtEMHcxUzNvRGJFVkFhUXRi?= =?utf-8?B?STVteFFwWUswUkFWcEZVem5NWkpRUUQ5ampvZWFDNTZjSm42OW94d0IzOGFI?= =?utf-8?B?eWlUSXRWamhxZXlWYU45L2FzeENHbmtwM2h6THNCaEN4eGpOMDBCUS9iSXdh?= =?utf-8?B?ZmZ2aVpRMGp3VFNFK1hDbmFxR1BBPT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN0PR11MB5712.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3731ead6-a55c-4968-e683-08d9db59cd81 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jan 2022 14:41:39.4644 (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: QmhScVowe03ULj3BTSqrSulcQj/XS5pINzxs4pdTqRNlkP2bjoqgamHvRztEn7w6kORKgjLBcSAzNaBa7ifp3WaMMQXxb1rQBSciNMU+FkM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3341 X-OriginatorOrg: intel.com 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUaG9tYXMgTW9uamFsb24gPHRo b21hc0Btb25qYWxvbi5uZXQ+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAxOSwgMjAyMiAy OjI0IFBNDQo+IFRvOiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPjsg U3RlcGhlbiBIZW1taW5nZXINCj4gPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPjsgUmFuZGxl cywgUm9uYW4gPHJvbmFuLnJhbmRsZXNAaW50ZWwuY29tPjsNCj4gVmFuIEhhYXJlbiwgSGFycnkg PGhhcnJ5LnZhbi5oYWFyZW5AaW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA8a29u c3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0 OiBSZTogW1BBVENIIDAyLzEyXSBuZXQ6IGFkZCBmdW5jdGlvbiB0byBwcmV0dHkgcHJpbnQgSVB2 NA0KPiANCj4gMTUvMTIvMjAyMSAxNDowNiwgQW5hbnlldiwgS29uc3RhbnRpbjoNCj4gPg0KPiA+ ID4gPiBGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciBbbWFpbHRvOnN0ZXBoZW5AbmV0d29ya3BsdW1i ZXIub3JnXQ0KPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIDE1IERlY2VtYmVyIDIwMjEgMDQuMjEN Cj4gPiA+ID4NCj4gPiA+ID4gT24gV2VkLCAxNSBEZWMgMjAyMSAwMTowNjoxNCArMDAwMA0KPiA+ ID4gPiAiQW5hbnlldiwgS29uc3RhbnRpbiIgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+ IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiAtLS0gYS9saWIvbmV0L3J0ZV9pcC5oDQo+ID4gPiA+ID4g PiA+ICsrKyBiL2xpYi9uZXQvcnRlX2lwLmgNCj4gPiA+ID4gPiA+ID4gQEAgLTQ0NCw2ICs0NDQs MjYgQEAgX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gPiA+ID4gPiA+ICBpbnQzMl90DQo+ID4gPiA+ ID4gPiA+ICBydGVfaXBfcGFyc2VfYWRkcihjb25zdCBjaGFyICpzcmNfaXAsIHVpbnQzMl90ICpv dXRwdXRfYWRkcik7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ID4gKy8qKg0KPiA+ID4gPiA+ID4gPiArICogUHJpbnQgSVAgYWRkcmVzcyBmcm9tIDMyIGJpdCBp bnQgaW50byBjaGFyICogYnVmZmVyLg0KPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4g KyAqIEBwYXJhbSBpcF9hZGRyDQo+ID4gPiA+ID4gPiA+ICsgKiAgIGlwIGFkZHJlc3MgdG8gYmUg cHJpbnRlZC4NCj4gPiA+ID4gPiA+ID4gKyAqIEBwYXJhbSBidWZmZXINCj4gPiA+ID4gPiA+ID4g KyAqICAgVGhlIGJ1ZmZlciB0aGUgc3RyaW5nIHdpbGwgYmUgc2F2ZWQgaW50by4NCj4gPiA+ID4g PiA+ID4gKyAqIEBwYXJhbSBidWZmZXJfc2l6ZQ0KPiA+ID4gPiA+ID4gPiArICogICBzaXplIG9m IGJ1ZmZlciB0byBiZSB1c2VkLg0KPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gKyAq IEByZXR2YWwgMA0KPiA+ID4gPiA+ID4gPiArICogICBTdWNjZXNzLg0KPiA+ID4gPiA+ID4gPiAr ICogQHJldHZhbCAtMQ0KPiA+ID4gPiA+ID4gPiArICogICBGYWlsdXJlIGR1ZSB0byBpbnZhbGlk IGlucHV0IGFyZ3VtZW50cy4NCj4gPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gPiArX19y dGVfZXhwZXJpbWVudGFsDQo+ID4gPiA+ID4gPiA+ICtpbnQzMl90DQo+ID4gPiA+ID4gPiA+ICty dGVfaXBfcHJpbnRfYWRkcih1aW50MzJfdCBpcF9hZGRyLCBjaGFyICpidWZmZXIsIHVpbnQzMl90 DQo+ID4gPiA+ID4gPiA+IGJ1ZmZlcl9zaXplKTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IEluIGNvbnRpbnVhdGlvbiBvZiBteSBlbWFpbCByZXBseSBhYm91dCB0 aGUgSVB2NCBwYXJzZSBmdW5jdGlvbi4uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgaGF2 ZSBhIGZldyBzdWdnZXN0aW9ucyB0byB0aGUgSVB2NCBwcmludCBmdW5jdGlvbiB0b286DQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgdGhlIG51bWJl ciBvZiBjaGFyYWN0ZXJzIHdyaXR0ZW4gdG8gdGhlDQo+ID4gPiA+IG91dHB1dCBzdHJpbmcsIGFu ZCBzdGlsbCAtMSBvbiBlcnJvci4gV2l0aCB0aGlzIG1vZGlmaWNhdGlvbiwgeW91IGNvdWxkDQo+ ID4gPiA+ID4gPiB1c2UgdGhlIHJldHVybiB0eXBlIHNzaXplX3QgaW5zdGVhZCBvZiBpbnQzMl90 Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZ1cnRoZXJtb3JlLCBJIHdvdWxkIHByZWZlciBo YXZpbmcgdGhlIHBhcmFtZXRlcnMgaW4gdGhlIHNhbWUgb3JkZXINCj4gPiA+ID4gYXMgc25wcmlu dGYoKTogY2hhciAqc3RyLCBzaXplX3Qgc2l6ZSwgY29uc3QgdWludDMyX3QgaXBfYWRkci4gUGxl YXNlDQo+ID4gPiA+ID4gPiBhbHNvIG5vdGljZSB0aGUgc3VnZ2VzdGVkIGNoYW5nZWQgdHlwZSBm b3IgdGhlIHNpemUsIGFuZCB0aGUgY29uc3QNCj4gPiA+ID4gYWRkZWQgdG8gdGhlIGlwX2FkZHIu DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+IEhvbmVzdGx5LCBJIGRvbid0IHVuZGVyc3RhbmQgd2h5 IHdlIG5lZWQgdG8gaW50cm9kdWNlIHN1Y2ggZnVuY3Rpb25zDQo+ID4gPiA+ID4gaW5zaWRlIERQ REsgYXQgYWxsLg0KPiA+ID4gPiA+IFdoYXQncyB3cm9uZyB3aXRoIGV4aXN0aW5nIHN0YW5kYXJk IG9uZXM6IGluZXRfbnRvcCgpIGFuZA0KPiA+ID4gPiBpbmV0X3B0b24oKT8NCj4gPiA+ID4NCj4g PiA+ID4gQWdyZWVkLCBJIHNlZSBubyBhZGRlZCB2YWx1ZSBpbiByZWludmVudGluZyBoZXJlDQo+ ID4gPg0KPiA+ID4gSSB0aGluayB0aGF0IERQREsgZnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGFs bCBzb3J0cyBvZiB0eXBlcyB0by9mcm9tIHN0cmluZ3MNCj4gd291bGQgYmUgdXNlZnVsOyBub3Qg b25seSBJUCBhZGRyZXNzZXMsIGJ1dCBhbHNvIE1BQyBhZGRyZXNzZXMsDQo+ID4gPiBUQ1AvVURQ IHBvcnQgbnVtYmVycyBhbmQgVkxBTiBJRHMuDQo+ID4NCj4gPiBGb3IgTUFDcyB3ZSBhbHJlYWR5 IGhhdmU6DQo+ID4gcnRlX2V0aGVyX2Zvcm1hdF9hZGRyKCkvcnRlX2V0aGVyX3VuZm9ybWF0X2Fk ZHIoKQ0KPiA+DQo+ID4gPg0KPiA+ID4gSWYgeW91IGRvbid0IGxpa2UgSVAgYWRkcmVzcyBzdHJp bmcgY29udmVyc2lvbiBmdW5jdGlvbnMgaW4gdGhlIG5ldCBsaWJyYXJ5LCBEUERLDQo+IGNvdWxk IGhhdmUgYSBzdHJpbmcgY29udmVyc2lvbnMgbGlicmFyeS4gVGhhdCBsaWJyYXJ5IGNvdWxkDQo+ ID4gPiBleHBvc2UgYSBtdWx0aXR1ZGUgb2YgQVBJcyBmb3IgdGhlIHNhbWUgcHVycG9zZSwgc28g dGhlIGFwcGxpY2F0aW9uIGNhbiB1c2UNCj4gdGhlIEFQSSB0aGF0IGJlc3QgZml0cyBlYWNoIGFw cGxpY2F0aW9uIHVzZS4NCj4gPg0KPiA+IEkgZG9u4oCZdCBtaW5kIHRvIGFkZCBuZXcgZnVuY3Rp b25zIGludG8gbmV0IGxpYiwgaWYgdGhleSBhcmUgdXNlZnVsIG9uZXMuDQo+ID4gQnV0IGZvciB0 aGF0IHBhcnRpY3VsYXIgY2FzZSwgSSBqdXN0IGRvbid0IHNlZSB3aGF0IGlzIHRoZSByZWFzb24g dG8NCj4gPiBkZXZlbG9wIGFuZCBtYWludGFpbiBvdXIgb3duIGZ1bmN0aW9ucyB3aGlsZSBleGlz dGluZyBhbmFsb2d1ZXM6DQo+ID4gLSBhcmUgd2VsbCBrbm93biwgd2lkZWx5IGFkb3B0ZWQgYW5k IGZpZWxkIHByb3Zlbg0KPiA+IC0gZG8gcHJvdmlkZSB0aGUgc2FtZSBvciBldmVuIG1vcmUgY29t cHJlaGVuc2l2ZSBmdW5jdGlvbmFsaXR5DQo+IA0KPiArMQ0KPiBXYWl0aW5nIGZvciBhbiBhbnN3 ZXIgZnJvbSB0aGUgYXV0aG9ycy4gT25lIG1vbnRoIHNpbGVuY2Ugc28gZmFyLg0KDQpIaSBBbGws DQoNClJvbmFuIGFuZCBJIGFyZSB3b3JraW5nIG9uIGEgVjIgcGF0Y2hzZXQsIGFuZCBob3BlIHRv IHNoYXJlIGl0IGluIHRoZSBuZXh0IGRheXMuDQoNClBlcnNvbmFsbHkgSSB0aGluayB0aGVyZSBp cyB2YWx1ZSBpbiBEUERLIGhhdmluZyB2YXJpb3VzIGZ1bmN0aW9uYWxpdHkgImJ1aWx0IGluIiwg YW5kDQppZiB0aGF0IGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIGZvciBlLmcuIEV0aGVyLCBJ IHNlZSBubyByZWFzb24gd2h5IElQdjQgb3Igb3RoZXINCnByb3RvY29scyBzaG91bGRuJ3QgaGF2 ZSB0aGF0IGZ1bmN0aW9uYWxpdHkgYXZhaWxhYmxlLiBJZiBJIHdhcyBhIG5ld2NvbWVyIHRvIERQ REssDQpJIHdvdWxkIGZpbmQgaXQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2h5IEkgY2FuIGZv cm1hdC91bmZvcm1hdCBFdGhlciB3aXRoIERQREssDQpidXQgaGFkIHRvIHVzZSBMaW51eC9XaW5k b3dzIGZ1bmN0aW9ucyB0byBmb3JtYXQvdW5mb3JtYXQgSVAvVURQLg0KDQpJIGxpa2VkIE1vcnRl bidzIGZlZWRiYWNrIGFyb3VuZCByZWFsLXdvcmxkIHVzYWdlLCBob3dldmVyIHdlIGhhdmUgbm90 IGdvdCBhcm91bmQNCnRvIGltcGxlbWVudGluZyB0aGF0IGZ1bmN0aW9uYWxpdHkgaW4gdGhlIFYy IHBhdGNoc2V0LiBXZSBpbnRlbmRlZCB0byBwcm9wb3NlIHRoYXQNCmNoYW5nZSBpbiBzaWduYXR1 cmUvZXh0cmEtZnVuY3Rpb25hbGl0eSBiZWluZyBhZGRlZCB0byBWMy4NCg0KSSBiZWxpZXZlIHRo ZSBnZW4gbGlicmFyeSB3YXMgZGlzY3Vzc2VkIGJyaWVmbHkgYXQgbGFzdCB0ZWNoLWJvYXJkIGNh bGwgKHVuZm9ydHVuYXRlbHkgSSB3YXMgbm90DQphdmFpbGFibGUgdG8gcGFydGljaXBhdGUpLiBQ ZXJoYXBzIGEgcXVpY2sgY2hhdC9kaXNjdXNzaW9uIGF0IHRoZSBuZXh0IHRlY2gtYm9hcmQgd291 bGQgYmUgaGVscGZ1bA0KdG8gaWRlbnRpZnkgY29tbXVuaXR5IHN0YW5jZSBvbiB0aGUgbGlicmFy eT8gQXQgdGhhdCBwb2ludCB0aGUgVjIgc2hvdWxkIGJlIGF2YWlsYWJsZSB0b28uDQoNClJlZ2Fy ZHMsIC1IYXJyeQ0KDQo=