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 8394842D1C; Fri, 23 Jun 2023 08:53:07 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1570240E09; Fri, 23 Jun 2023 08:53:07 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 16EBB400EF for ; Fri, 23 Jun 2023 08:53:04 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35N3mUR0011788; Thu, 22 Jun 2023 23:53:04 -0700 Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2044.outbound.protection.outlook.com [104.47.66.44]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3rcuqv9p9u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 Jun 2023 23:53:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f+m1iE2Wp48x6j5NqV9xa46Yu3aS+92kWxp1Na3B2Rzt4rv5h11PR32tupt3Ubx2QGVdxv7Yax79UXll49wjGFf+OGFCJw8LNYvYxMJY/0uh6HsoXumBez1+WNq0Q0FXQhRCWMgR4XlhBomD4PryjmMPcUYI0WFSiwtBEp+d9zWU1X5O+gyiykJ1Dp2MllDdJDiKDKSPe/+BW2YqJ/Rht88fUPrDc0jQWCD+A3jlSlLjTtmrZacUG6RnnPacUxJ9vbrqHP5ktqjQ3fNrvt49eDptdFE9MsP6cVXrFbAoJSRamwgBJJsQogYmrs9nN0lFm2RxKg748Y6OjNPe39HRVA== 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=eJ3hxRfJiRGijtZbdziu0ET40hpEtvosQFy1IDrMO/4=; b=LS9IMsw6b8BAh0ahiD4xcVGuAzZh+G7/fSDocnXeGjqc1r8IwCMSSoDwYtv5Lpw7Cpegm4QaBYgLxI1IZfOvEbSShCwklV9RtMKO008Qr7dnjyimPcprzfJ+LKw5AdWdkN/7t8nnV0MidrI5yyHxsTe8mivTXEo++BF6Be7UrXfAJgMNhdEg6Y/oD56J5jDqVoYsgsDKvsGT3SrYp1uYGntuW4UrOSTMz6gfkGS7oit6acN8ZNmyYTx0t3rG/ny5KU0eCRJkV4CppgernrFPo/Oz8AzfOAn3+alwm3PtdTM28UPDaibDWPNJfe+hdexlGYP+4dzhTb1vCLkaJuSd9g== 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=eJ3hxRfJiRGijtZbdziu0ET40hpEtvosQFy1IDrMO/4=; b=h1hlx24GkFXnQ6BN3JHyR3HJ8xYyQboTDwTwDHISALkCNH/sJ6SOLWUU4TyjX2D7fMentSBFyGYPAH77EeKs/QjFHdHeWoVKLzITyJ9hTSVAfjQMHoBpsxX4CK6KnlSPGVRHmR4dhm+v3D3GK9SXVaVjs0QYHaadRRNtEA0i35U= Received: from PH0PR18MB4672.namprd18.prod.outlook.com (2603:10b6:510:c9::16) by PH0PR18MB5142.namprd18.prod.outlook.com (2603:10b6:510:167::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Fri, 23 Jun 2023 06:52:58 +0000 Received: from PH0PR18MB4672.namprd18.prod.outlook.com ([fe80::d578:1759:9d2c:9dfa]) by PH0PR18MB4672.namprd18.prod.outlook.com ([fe80::d578:1759:9d2c:9dfa%4]) with mapi id 15.20.6521.024; Fri, 23 Jun 2023 06:52:58 +0000 From: Anoob Joseph To: Cheng Jiang , "thomas@monjalon.net" , "bruce.richardson@intel.com" , "mb@smartsharesystems.com" , "chenbo.xia@intel.com" , Amit Prakash Shukla , "huangdengdui@huawei.com" , "kevin.laatz@intel.com" , "fengchengwen@huawei.com" , Jerin Jacob Kollanukkaran CC: "dev@dpdk.org" , "jiayu.hu@intel.com" , "xuan.ding@intel.com" , "wenwux.ma@intel.com" , "yuanx.wang@intel.com" , "xingguang.he@intel.com" , "weix.ling@intel.com" Subject: RE: [EXT] [PATCH v8] app/dma-perf: introduce dma-perf application Thread-Topic: [EXT] [PATCH v8] app/dma-perf: introduce dma-perf application Thread-Index: AQHZo0kK9e4mg8WiCkmsK29LgzaaEq+Tz2ew Date: Fri, 23 Jun 2023 06:52:57 +0000 Message-ID: References: <20230420072215.19069-1-cheng1.jiang@intel.com> <20230620065330.9999-1-cheng1.jiang@intel.com> In-Reply-To: <20230620065330.9999-1-cheng1.jiang@intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-rorf: true x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWVc1dmIySnFYR0Z3Y0dSaGRHRmNjbTloYldsdVoxd3dPV1E0TkRsaU5p?= =?utf-8?B?MHpNbVF6TFRSaE5EQXRPRFZsWlMwMllqZzBZbUV5T1dVek5XSmNiWE5uYzF4?= =?utf-8?B?dGMyY3RPVEpsWWpkbU1EQXRNVEU1TWkweE1XVmxMVGxqTlRRdE5HTXdNelJt?= =?utf-8?B?TldZNVlqUm1YR0Z0WlMxMFpYTjBYRGt5WldJM1pqQXhMVEV4T1RJdE1URmxa?= =?utf-8?B?UzA1WXpVMExUUmpNRE0wWmpWbU9XSTBabUp2WkhrdWRIaDBJaUJ6ZWowaU1U?= =?utf-8?B?SXhNREVpSUhROUlqRXpNek14T1RjMk56YzBNekkyTlRneE9DSWdhRDBpTHpC?= =?utf-8?B?Tk5rZFVlSEJoYlZsS01VSmtjMmRrYTFOS00yOUtObWxaUFNJZ2FXUTlJaUln?= =?utf-8?B?WW13OUlqQWlJR0p2UFNJeElpQmphVDBpWTBGQlFVRkZVa2hWTVZKVFVsVkdU?= =?utf-8?B?a05uVlVGQlRqUlFRVUZCWVM5T09WWnVObGhhUVZWdkt6WmxTRkJXWWpoTlUy?= =?utf-8?B?bzNjRFJqT1ZaMmQzZGFRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVaEJRVUZCUW5WRWQwRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVWQlFWRkZRa0ZCUVVGSk4zRlVjRUZEUVVGUlFVRkJRVUZCUVVGQlFVRktO?= =?utf-8?B?RUZCUVVKb1FVZFJRVnBCUW5sQlIxVkJZM2RDZWtGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUlVGQlFVRkJRVUZCUVVG?= =?utf-8?B?blFVRkJRVUZCYm1kQlFVRkhUVUZrVVVKNlFVaFJRV0ozUW5SQlJqaEJZMEZD?= =?utf-8?B?YkVGSVNVRmpkMEoyUVVjMFFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFWRkJR?= =?utf-8?B?VUZCUVVGQlFVRkRRVUZCUVVGQlEyVkJRVUZCV1hkQ01VRklUVUZrUVVKMlFV?= =?utf-8?B?Y3dRVmgzUW5kQlIyZEJZbmRDZFVGSFZVRmlaMEl4UVVjd1FWbG5RbXhCU0Vs?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUWtGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUpCUVVGQlFVRkJRVUZCU1VGQlFVRkJRVW8wUVVGQlFtcEJTRlZC?= =?utf-8?B?WTNkQ01FRkhPRUZpVVVKbVFVaE5RV04zUW5WQlJqaEJXa0ZDYUVGSVRVRmhR?= =?utf-8?B?VUptUVVoWlFVMUJRWGxCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refone: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVGQlFXZEJRVUZCUVVGdVowRkJRVWRO?= =?utf-8?B?UVdSUlFucEJTRkZCWW5kQ2RFRkdPRUZqZDBKNlFVYzBRVmgzUW5KQlIxVkJa?= =?utf-8?B?VkZDTTBGSE9FRmpaMEpyUVVoTlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJVVUZCUVVGQlFVRkJRVU5CUVVGQlFV?= =?utf-8?B?RkRaVUZCUVVGWmQwSXhRVWhOUVdSQlFuWkJSekJCV0hkQ2VrRklUVUZpWjBK?= =?utf-8?B?bVFVYzBRV0ozUW10QlIxVkJZa0ZDY0VGSE1FRmhVVUl3UVVkVlFXTm5RbVpC?= =?utf-8?B?U0ZsQlRVRkJlVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUWtGQlFVRkJRVUZC?= =?utf-8?B?UVVGSlFVRkJRVUZCU2pSQlFVRkNha0ZJVlVGamQwSXdRVWM0UVdKUlFtWkJT?= =?utf-8?B?RTFCWTNkQ2RVRkdPRUZqZDBKM1FVZEZRVmwzUW14QlJqaEJaR2RCZDBGRVNV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?VkJRVUZCUVVGQlFVRkJaMEZCUVVGQlFXNW5RVUZCUjFGQllrRkNkMEZHT0VG?= =?utf-8?B?amQwSnlRVWhyUVdOQlFteEJSamhCV1hkQ2IwRkhSVUZrUVVKbVFVY3dRVnBS?= =?utf-8?B?UW5wQlNFMUJXVkZDYmtGSFZVRllkMEl5UVVSQlFVMW5RVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZSUVVGQlFVRkJRVUZCUTBGQlFVRkJRVU5sUVVGQlFWcEJR?= =?utf-8?B?bk5CU0VGQldIZENla0ZIZDBGWlVVSnFRVWR6UVZoM1FtcEJSMmRCV1ZGQ01F?= =?utf-8?B?RkdPRUZpVVVKc1FVaE5RV04zUW1oQlIyTkJXbEZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reftwo: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQ1FVRkJRVUZCUVVGQlFVbEJRVUZCUVVGS05FRkJR?= =?utf-8?B?VUpyUVVkM1FXTkJRbVpCU0ZGQldsRkNhRUZITUVGamQwSm1RVWM0UVdKblFt?= =?utf-8?B?eEJSMUZCWTJkQ2NFRklXVUZhVVVKbVFVZFpRV0ZSUW5OQlIxVkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJSVUZCUVVGQlFVRkJRVUZuUVVG?= =?utf-8?B?QlFVRkJibWRCUVVGSFZVRmlVVUpvUVVkclFXSkJRbVpCUjBWQldrRkNhMEZJ?= =?utf-8?B?U1VGYVVVSjZRVWhOUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGSFFVRkJRVUZCUVVGQlFVRkJRVUZCUVZGQlFVRkJR?= =?utf-8?B?VUZCUVVGRFFVRkJRVUZCUTJWQlFVRkJZbEZDYUVGSVNVRmtaMEpzUVVkM1FW?= =?utf-8?B?aDNRbmRCU0VsQlluZENjVUZIVlVGWmQwSXdRVVk0UVdKblFtaEJSekJCV2xG?= =?utf-8?B?Q2VrRkdPRUZaZDBKMlFVYzBRVnBuUW5CQlIxRkJXbEZDZFVGSVVVRmhVVUpv?= =?utf-8?B?UVVkM1FWaDNRbWhCUjNkQlluZENkVUZIVlVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVSkJRVUZCUVVGQlFVRkJTVUZCUVVGQlFVbzBRVUZCUW5SQlIwVkJZMmRD?= =?utf-8?B?TWtGSFZVRmlRVUptUVVoQlFXTm5RblpCUjI5QldsRkNha0ZJVVVGWWQwSjFR?= =?utf-8?B?VWRGUVdKUlFteEJTRTFCV0hkQ2VVRkhWVUZqZDBJd1FVaEpRV0ZSUW1wQlNG?= =?utf-8?B?RkJXbEZDYTBGR09FRlpVVUp6UVVjNFFXSm5RbXhCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZGUVVGQlFVRkJRVUZCUVdkQlFVRkJRVUZ1WjBGQlFV?= =?utf-8?B?Y3dRVmxSUW5sQlNGbEJXbEZDYzBGR09FRmpRVUo1UVVjNFFXRm5RbXhCUjAx?= =?utf-8?B?QlpFRkNaa0ZITkVGWlVVSjBRVWRWUVdOM1FtWkJTRWxCV2xGQ2VrRklVVUZq?= =?utf-8?B?WjBKd1FVZE5RV1JCUW14QlIxRkJXSGRDYjBGSFZVRmxRVUpxUVVjNFFWcEJR?= =?utf-8?B?bXhCU0UxQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlVVRkJRVUZCUVVGQlFVTkJRVUZC?= =?utf-8?B?UVVGRFpVRkJRVUZpVVVKb1FVaEpRV1JuUW14QlIzZEJZa0ZDWmtGSFJVRmpa?= =?utf-8?B?MEowUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refthree: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRa0ZCUVVGQlFVRkJRVUZK?= =?utf-8?B?UVVGQlFVRkJTalJCUVVGQ2RFRkhSVUZqWjBJeVFVZFZRV0pCUW5OQlJqaEJX?= =?utf-8?B?bmRDZGtGSE9FRmFkMEp6UVVkVlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVWQlFV?= =?utf-8?B?RkJRVUZCUVVGQlowRkJRVUZCUVc1blFVRkJSekJCV1ZGQ2VVRklXVUZhVVVK?= =?utf-8?B?elFVZDNRVmgzUW5kQlNFbEJZbmRDY1VGSFZVRlpkMEl3UVVZNFFWbDNRblpC?= =?utf-8?B?UjFGQldsRkNla0ZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRlJRVUZCUVVGQlFVRkJRMEZCUVVGQlFVTmxRVUZCUVdKUlFtaEJT?= =?utf-8?B?RWxCWkdkQ2JFRkhkMEZpUVVKbVFVaEJRV05uUW5aQlIyOUJXbEZDYWtGSVVV?= =?utf-8?B?RllkMEpxUVVjNFFWcEJRbXhCU0UxQldIZENhMEZIYTBGWmQwSXdRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZDUVVGQlFVRkJRVUZCUVVsQlFVRkJRVUZLTkVG?= =?utf-8?B?QlFVSjBRVWRGUVdOblFqSkJSMVZCWWtGQ2MwRkdPRUZqUVVKNVFVYzRRV0Zu?= =?utf-8?B?UW14QlIwMUJaRUZDWmtGSE5FRlpVVUowUVVkVlFXTjNRbVpCUjAxQlluZENk?= =?utf-8?B?VUZIV1VGaFVVSnJRVWRWUVdKblFqQkJSMnRCV1ZGQ2MwRkdPRUZpVVVKb1FV?= =?utf-8?B?aEpRV1JuUW14QlIzZEJZa0ZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlJVRkJRVUZCUVVGQlFVRm5R?= =?utf-8?B?VUZCUVVGQmJtZEJRVUZITUVGWlVVSjVRVWhaUVZwUlFuTkJSM2RCV0hkQ2Qw?= =?utf-8?B?RklTVUZpZDBKeFFVZFZRVmwzUWpCQlJqaEJZbWRDYUVGSE1FRmFVVUo2UVVZ?= =?utf-8?B?NFFWbDNRblpCUnpSQldtZENjRUZIVVVGYVVVSjFRVWhSUVdGUlFtaEJSM2RC?= =?utf-8?B?V0hkQ2RFRkhSVUZqWjBJeVFVZFZRV0pCUW5OQlJqaEJZbmRDZVVGR09FRlpV?= =?utf-8?B?VUo1UVVjd1FVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reffour: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVkZCUVVGQlFVRkJR?= =?utf-8?B?VUZEUVVGQlFVRkJRMlZCUVVGQllsRkNhRUZJU1VGa1owSnNRVWQzUVdKQlFt?= =?utf-8?B?WkJTRUZCWTJkQ2RrRkhiMEZhVVVKcVFVaFJRVmgzUW5WQlIwVkJZbEZDYkVG?= =?utf-8?B?SVRVRllkMEpxUVVjNFFXSm5RbTFCUjJ0QldrRkNiRUZITkVGa1FVSndRVWRG?= =?utf-8?B?UVdKQlFtWkJSekJCV1ZGQ2VVRklXVUZhVVVKelFVZDNRVmgzUW5aQlNFbEJX?= =?utf-8?B?SGRDYmtGSE9FRmlkMEp1UVVkM1FWcFJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVK?= =?utf-8?B?QlFVRkJRVUZCUVVGQlNVRkJRVUZCUVVvMFFVRkJRblJCUjBWQlkyZENNa0ZI?= =?utf-8?B?VlVGaVFVSnpRVVk0UVdOQlFubEJSemhCWVdkQ2JFRkhUVUZrUVVKbVFVYzBR?= =?utf-8?B?VmxSUW5SQlIxVkJZM2RDWmtGSVNVRmFVVUo2UVVoUlFXTm5RbkJCUjAxQlpF?= =?utf-8?B?RkNiRUZIVVVGWWQwSjBRVWRGUVdOblFqSkJSMVZCWWtGQ2MwRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkZRVUZCUVVGQlFVRkJRV2RCUVVGQlFVRnVaMEZCUVVjd1FW?= =?utf-8?B?bFJRbmxCU0ZsQldsRkNjMEZIZDBGWWQwSjNRVWhKUVdKM1FuRkJSMVZCV1hk?= =?utf-8?B?Q01FRkdPRUZpWjBKb1FVY3dRVnBSUW5wQlJqaEJZMmRDYkVGSVRVRmtRVUo1?= =?utf-8?B?UVVkclFWbDNRakJCUjFWQldrRkNaa0ZITUVGWlVVSjVRVWhaUVZwUlFuTkJS?= =?utf-8?B?M2RCV0hkQ2RrRklTVUZZZDBKb1FVaEpRV0pSUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCVVVGQlFVRkJRVUZCUVVOQlFVRkJRVUZE?= =?utf-8?B?WlVGQlFVRmlVVUpvUVVoSlFXUm5RbXhCUjNkQllrRkNaa0ZJVVVGYVVVSjVR?= =?utf-8?B?VWN3UVdGUlFuVkJTRlZCWTNkQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFrRkJRVUZCUVVGQlFV?= =?utf-8?B?RkpRVUZCUVVGQlNqUkJRVUZDZEVGSFJVRmpaMEl5UVVkVlFXSkJRbk5CUmpo?= =?utf-8?B?QlpIZENka0ZJU1VGYVFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVVZC?= =?utf-8?Q?QUFBQUFBQUFBZ0FBQUFBQSIvPjwvbWV0YT4=3D?= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR18MB4672:EE_|PH0PR18MB5142:EE_ x-ms-office365-filtering-correlation-id: efc39570-52fe-4de7-7c36-08db73b67a8a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /dqi+tfuSevFnXivJQAqOGiygKL19DVo3fp9vzyQH7dYEnTKFS79BMq1O/VKghOmpi5IKREPC4mWLav3AmkOUkXdZDxXLgWyuQ7+d5r0PxUrX/Q8PnzQ+x2/hgPP8T3vDn1mGI21svtiaUzbkTLmfB0UZjtT5Z7y10uAlbxFN97pJhaH93gRStRQy0COVqI8mc0qTTopLqsB5lxUU3kWzZUW5g6c2uFkH02Gljfq3mV+MvhS2is7lXAhHYWpXrjwpD9Oc2EbIAzaxAga/6I/vOzPehP8M4Q+V1U18g73DJHfN1kxjU8rW4jYvrwUch3Nn+zIhMujBS1xEii5y36YxpeolCV6ZH6nK9CetdzS1Kr2Z/qMnpoFFsKntFjej+vjRuOJOtoSq2Ol+k+CNVWuC3yEYPJyh8HiopsOmCrY6wtT4cOoBoKAMq7MVSsiAOV96PJ1mHj8HniYPekb2rI5UlrFC3K7sDBKykbciAPhDORONSZPc7n04WAqZeSqx703GLwLAjOvNpr3cDgNGtKWbKrPy20WKxTpzjeHqrCoEH8DBzh75lFz5ZULKhri5Ubg0UQ4tpEatlBZguGaSQhojYuC9dFfzoGByJDITV3D/hCnwp8vCyHk2oJsYKvEw1bzV6RHE91poAPMSF/hKDrvQA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB4672.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(7696005)(71200400001)(478600001)(921005)(66574015)(38100700002)(186003)(83380400001)(122000001)(86362001)(55016003)(33656002)(38070700005)(53546011)(6506007)(26005)(9686003)(8936002)(8676002)(41300700001)(7416002)(52536014)(5660300002)(30864003)(2906002)(6636002)(110136005)(54906003)(66899021)(66946007)(66476007)(66556008)(66446008)(316002)(64756008)(4326008)(76116006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U3ppRHNPR3laUi83NDFuWTNqQjRLQWo1VDdCUDdrWlQxTk1HQXdKN0hWM3dT?= =?utf-8?B?N1pwMHZzbW9aakRUYU5sOWY1K0JGS3g5b0ZYSWxxanlGNmxoOEluekpJbWQw?= =?utf-8?B?TzhqRjU3RCtCK1ZEV0VWNlZURHZrb3dPK2JKNzBENGsrT092cTNXRGg4SFVp?= =?utf-8?B?MktqZ0o5QnZpTmhFQkpNMC9WMEt0OGl3VkZaa0pwa05OdER2ZHkxWE9FNHh5?= =?utf-8?B?YWhIYnFzUDZMWWo3U0FCNlcrR3p4cUVnMndldmFUVm9kZHRxMUphazhvSnlK?= =?utf-8?B?bXhqOTAxL254clJpQVl4ejNpZWlmNE41RUl5VVBUNXRpVFBNWkxhVFZ0Rk45?= =?utf-8?B?U2MvcmcyWWgwVjVoR2xMMEhwVkY2ekM5TmVCVk15c0h4UlB3T3JrZkZkZ3Vh?= =?utf-8?B?cTlNRnk3SnNmUWtadC9Ta09iL2RieDNvNXdrUTl6d2xKcXF0UmthdHZSM2tE?= =?utf-8?B?a3M3NkdZV2dFNStFR1Ayb0g0cFRyTmI5OGp0NFlML2RNK3RlYkRtNVlJSVM4?= =?utf-8?B?WG5BTkRvbGtrYndOeXF3SUtsZ0IyZUxYQ3V4WFYveXZoRTloNXFQcnQ4UlVv?= =?utf-8?B?U05XNU1NM1BHaURqWTFpdGpZRCtHK1QzWlZra1NaZkJCbXcvbnJwQk1jaTMz?= =?utf-8?B?UjkwbW9RYWV5cXVnQ3grTXhpVmE4UnFSZDB2VVJsTWpXb1R2Mk52RGVucjky?= =?utf-8?B?engvWHRBVTZWTzFXR0plQ2ZYK0lRbzhjWFg3MXMzVUUwNkRFaEhlTHYyeDh1?= =?utf-8?B?SlhMenBwSWhmeEg1eGRFejRHNk5hTWV6T3V0bVROYTJTTnBOMnJtOGdlc3d4?= =?utf-8?B?WERyaXdmcjZOSmhOVmJ2dG4yOVhaVnlrT1htaUlHaXNyME1kVlo3UXVFUGh4?= =?utf-8?B?WXllc2hzY2JwU3VzMkx1VnQ0Rmp3dXd5ZkpXTDlEODFIaDdlVTA0dzhPaG1k?= =?utf-8?B?WmtRTGlZdVhOOHNhb0pJVU5pSXBQVERhMHRSTm1NbDMvT2VKOCtmN2JyN2FS?= =?utf-8?B?T2hueFMyYlM4a3BtUVJKeUtzZXA5ckRkOS9BS3FNelhDS0hjSEFFV0NTRkM3?= =?utf-8?B?T25KdUpQb2pYbzdpQkZOQlRhbFhJU09taWIwajFjUFYxYnFod1JHRjJOZHRO?= =?utf-8?B?WHo1R2ppdEluRk1nM1pJSzI2TlhmQkZvNDVxQ05aZEpFUnVZTFA1K0d3Um5p?= =?utf-8?B?ZG5pMFpSTUNuQjJSaU5SRUY5U2lkUjhrTW92ZDB5NFZ3cHNsczFMWkRKOHZN?= =?utf-8?B?b2JQUk9sYmFGYW01VFk0alVMR09Ra09waWZJM1pBQnpCVGszNXBqYitsY29Z?= =?utf-8?B?TGhoK2hRVlgrcmxXTG1BbVQxSklwa1pIclI5dlllNEk5disvZzNYZnVmREVu?= =?utf-8?B?TVRVUjh4eFRrWHN1U0dseDJOd2NqWjNhZVIzOFFjejhabkMyWGJjODY2NjJm?= =?utf-8?B?OFExbk5kQ2JzUHNMN2JaM3kzMDdZM1dTNXpvQkRueTRFN0VKQkQ5TWhsc3Vt?= =?utf-8?B?dUt0QjFlZFJheVgrT2FjejlaTEt5L1lHVjArWklyWGliKzVFVVFVdSsxWmoy?= =?utf-8?B?M0VocDM4QzljQkl4amNwSmdKZDA3QTMrTlRZK3NLcVlHOXZjamI4aGJVeThM?= =?utf-8?B?UjRNMkczN2JmYlgySno4Vm41VFFKTTUvV0dUamRqQk5PV0RYYU1GeG5BYmsr?= =?utf-8?B?bjBMQW14TGpzVHEzOGhPNklYKzVIc25yalNvY1pzbTUwbkZ2ZkJoVE5VcDhF?= =?utf-8?B?Mzhnc2drdmhVazZsdmpJczk2N2pieVYzTGNZWGJ2ZHhYS2NDWmxYVGQya21v?= =?utf-8?B?eTN3NkczLzNOWEs3RndiVVVoWkZDU0ZCc1psK090YXlRcm1lQ25KNkZSSzhX?= =?utf-8?B?djF1YkIxUkpMWnhFdnhXbE4rZU5SM0NUVHNsZkY0R2RhdzZ3NEpIdlVWU1Y3?= =?utf-8?B?RG82dGJyTjR3NHZaclhjdGR5Yk5LNjRodWlFZ2NLVCt4KzJWOWZ2S0lsN0hM?= =?utf-8?B?OTBISEp5VkhiQTBwNnRVbHhqM1JxQ0Z1OTQwM0ZRRnJ5SW44UEg4QVZOSklx?= =?utf-8?B?aitkZlh4MC9tQ3l2STU4Q2xnSFUydXNiL0JsN0k4NXZXbUY4UDcvNzNjZmU1?= =?utf-8?Q?H9lU=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR18MB4672.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: efc39570-52fe-4de7-7c36-08db73b67a8a X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jun 2023 06:52:57.9956 (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: bVxGBZifyGbvZHwgOP6L6q2AwNeQH1EIgBmFE0eFZ+gaViuPL8+S9g8hx5qOX8kejHdI1RblaI4qq8zDeBwMtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR18MB5142 X-Proofpoint-ORIG-GUID: LpPpolN4HQxtyNM9PqDk8jV0US2FhmPG X-Proofpoint-GUID: LpPpolN4HQxtyNM9PqDk8jV0US2FhmPG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-23_02,2023-06-22_02,2023-05-22_02 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 SGkgQ2hlbmcsDQoNClRoYW5rcyBmb3IgdGhlIG5ldyB2ZXJzaW9uLiBQbGVhc2Ugc2VlIGlubGlu ZS4NCg0KVGhhbmtzLA0KQW5vb2INCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBDaGVuZyBKaWFuZyA8Y2hlbmcxLmppYW5nQGludGVsLmNvbT4NCj4gU2VudDogVHVlc2Rh eSwgSnVuZSAyMCwgMjAyMyAxMjoyNCBQTQ0KPiBUbzogdGhvbWFzQG1vbmphbG9uLm5ldDsgYnJ1 Y2UucmljaGFyZHNvbkBpbnRlbC5jb207DQo+IG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbTsgY2hl bmJvLnhpYUBpbnRlbC5jb207IEFtaXQgUHJha2FzaCBTaHVrbGENCj4gPGFtaXRwcmFrYXNoc0Bt YXJ2ZWxsLmNvbT47IEFub29iIEpvc2VwaCA8YW5vb2JqQG1hcnZlbGwuY29tPjsNCj4gaHVhbmdk ZW5nZHVpQGh1YXdlaS5jb207IGtldmluLmxhYXR6QGludGVsLmNvbTsNCj4gZmVuZ2NoZW5nd2Vu QGh1YXdlaS5jb207IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4NCj4gPGplcmluakBtYXJ2ZWxs LmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgamlheXUuaHVAaW50ZWwuY29tOyB4dWFuLmRpbmdA aW50ZWwuY29tOw0KPiB3ZW53dXgubWFAaW50ZWwuY29tOyB5dWFueC53YW5nQGludGVsLmNvbTsg eGluZ2d1YW5nLmhlQGludGVsLmNvbTsNCj4gd2VpeC5saW5nQGludGVsLmNvbTsgQ2hlbmcgSmlh bmcgPGNoZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtFWFRdIFtQQVRDSCB2OF0g YXBwL2RtYS1wZXJmOiBpbnRyb2R1Y2UgZG1hLXBlcmYgYXBwbGljYXRpb24NCj4gDQo+IEV4dGVy bmFsIEVtYWlsDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IFRoZXJlIGFyZSBtYW55IGhpZ2gtcGVy Zm9ybWFuY2UgRE1BIGRldmljZXMgc3VwcG9ydGVkIGluIERQREsgbm93LA0KPiBhbmQgdGhlc2Ug RE1BIGRldmljZXMgY2FuIGFsc28gYmUgaW50ZWdyYXRlZCBpbnRvIG90aGVyIG1vZHVsZXMgb2Yg RFBESyBhcw0KPiBhY2NlbGVyYXRvcnMsIHN1Y2ggYXMgVmhvc3QuIEJlZm9yZSBpbnRlZ3JhdGlu ZyBETUEgaW50byBhcHBsaWNhdGlvbnMsDQo+IGRldmVsb3BlcnMgbmVlZCB0byBrbm93IHRoZSBw ZXJmb3JtYW5jZSBvZiB0aGVzZSBETUEgZGV2aWNlcyBpbiB2YXJpb3VzDQo+IHNjZW5hcmlvcyBh bmQgdGhlIHBlcmZvcm1hbmNlIG9mIENQVXMgaW4gdGhlIHNhbWUgc2NlbmFyaW8sIHN1Y2ggYXMN Cj4gZGlmZmVyZW50IGJ1ZmZlciBsZW5ndGhzLiBPbmx5IGluIHRoaXMgd2F5IGNhbiB3ZSBrbm93 IHRoZSB0YXJnZXQNCj4gcGVyZm9ybWFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGFjY2VsZXJhdGVk IGJ5IHVzaW5nIHRoZW0uIFRoaXMgcGF0Y2gNCj4gaW50cm9kdWNlcyBhIGhpZ2gtcGVyZm9ybWFu Y2UgdGVzdGluZyB0b29sLCB3aGljaCBzdXBwb3J0cyBjb21wYXJpbmcgdGhlDQo+IHBlcmZvcm1h bmNlIG9mIENQVSBhbmQgRE1BIGluIGRpZmZlcmVudCBzY2VuYXJpb3MgYXV0b21hdGljYWxseSB3 aXRoIGEgcHJlLQ0KPiBzZXQgY29uZmlnIGZpbGUuIE1lbW9yeSBDb3B5IHBlcmZvcm1hbmNlIHRl c3QgYXJlIHN1cHBvcnRlZCBmb3Igbm93Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQ2hlbmcgSmlh bmcgPGNoZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEppYXl1IEh1IDxq aWF5dS5odUBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFl1YW4gV2FuZyA8eXVhbngud2Fu Z0BpbnRlbC5jb20+DQo+IEFja2VkLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5 c3RlbXMuY29tPg0KPiBBY2tlZC1ieTogQ2hlbmJvIFhpYSA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+ DQo+IC0tLQ0KPiB2ODoNCj4gICBmaXhlZCBzdHJpbmcgY29weSBpc3N1ZSBpbiBwYXJzZV9sY29y ZSgpOw0KPiAgIGltcHJvdmVkIHNvbWUgZGF0YSBkaXNwbGF5IGZvcm1hdDsNCj4gICBhZGRlZCBk b2MgaW4gZG9jL2d1aWRlcy90b29sczsNCj4gICB1cGRhdGVkIHJlbGVhc2Ugbm90ZXM7DQo+IA0K PiB2NzoNCj4gICBmaXhlZCBzb21lIHN0cmNweSBpc3N1ZXM7DQo+ICAgcmVtb3ZlZCBjYWNoZSBz ZXR1cCBpbiBjYWxsaW5nIHJ0ZV9wa3RtYnVmX3Bvb2xfY3JlYXRlKCk7DQo+ICAgZml4ZWQgc29t ZSB0eXBvczsNCj4gICBhZGRlZCBzb21lIG1lbW9yeSBmcmVlIGFuZCBudWxsIHNldCBvcGVyYXRp b25zOw0KPiAgIGltcHJvdmVkIHJlc3VsdCBjYWxjdWxhdGlvbjsNCj4gdjY6DQo+ICAgaW1wcm92 ZWQgY29kZSBiYXNlZCBvbiBBbm9vYidzIGNvbW1lbnRzOw0KPiAgIGZpeGVkIHNvbWUgY29kZSBz dHJ1Y3R1cmUgaXNzdWVzOw0KPiB2NToNCj4gICBmaXhlZCBzb21lIExPTkdfTElORSB3YXJuaW5n czsNCj4gdjQ6DQo+ICAgZml4ZWQgaW5hY2N1cmFjeSBvZiB0aGUgbWVtb3J5IGZvb3RwcmludCBk aXNwbGF5Ow0KPiB2MzoNCj4gICBmaXhlZCBzb21lIHR5cG9zOw0KPiB2MjoNCj4gICBhZGRlZCBs Y29yZS9kbWFkZXYgZGVzaWduYXRpb247DQo+ICAgYWRkZWQgZXJyb3IgY2FzZSBwcm9jZXNzOw0K PiAgIHJlbW92ZWQgd29ya2VyX3RocmVhZHMgcGFyYW1ldGVyIGZyb20gY29uZmlnLmluaTsNCj4g ICBpbXByb3ZlZCB0aGUgbG9nczsNCj4gICBpbXByb3ZlZCBjb25maWcgZmlsZTsNCj4gDQo+ICBh cHAvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ICBhcHAvdGVz dC1kbWEtcGVyZi9iZW5jaG1hcmsuYyAgICAgICAgICB8IDQ5OCArKysrKysrKysrKysrKysrKysr KysNCj4gIGFwcC90ZXN0LWRtYS1wZXJmL2NvbmZpZy5pbmkgICAgICAgICAgIHwgIDYxICsrKw0K PiAgYXBwL3Rlc3QtZG1hLXBlcmYvbWFpbi5jICAgICAgICAgICAgICAgfCA1OTQgKysrKysrKysr KysrKysrKysrKysrKysrKw0KPiAgYXBwL3Rlc3QtZG1hLXBlcmYvbWFpbi5oICAgICAgICAgICAg ICAgfCAgNjkgKysrDQo+ICBhcHAvdGVzdC1kbWEtcGVyZi9tZXNvbi5idWlsZCAgICAgICAgICB8 ICAxNyArDQo+ICBkb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIzXzA3LnJzdCB8ICAgNiAr DQo+ICBkb2MvZ3VpZGVzL3Rvb2xzL2RtYXBlcmYucnN0ICAgICAgICAgICB8IDEwMyArKysrKw0K PiAgZG9jL2d1aWRlcy90b29scy9pbmRleC5yc3QgICAgICAgICAgICAgfCAgIDEgKw0KPiAgOSBm aWxlcyBjaGFuZ2VkLCAxMzUwIGluc2VydGlvbnMoKykNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBh cHAvdGVzdC1kbWEtcGVyZi9iZW5jaG1hcmsuYyAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IGFwcC90 ZXN0LWRtYS1wZXJmL2NvbmZpZy5pbmkgIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcHAvdGVzdC1kbWEt DQo+IHBlcmYvbWFpbi5jICBjcmVhdGUgbW9kZSAxMDA2NDQgYXBwL3Rlc3QtZG1hLXBlcmYvbWFp bi5oICBjcmVhdGUgbW9kZQ0KPiAxMDA2NDQgYXBwL3Rlc3QtZG1hLXBlcmYvbWVzb24uYnVpbGQg IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBkb2MvZ3VpZGVzL3Rvb2xzL2RtYXBlcmYucnN0DQo+IA0K DQo8c25pcD4NCg0KPiArLyogQ29uZmlndXJhdGlvbiBvZiBkZXZpY2UuICovDQo+ICtzdGF0aWMg dm9pZA0KPiArY29uZmlndXJlX2RtYWRldl9xdWV1ZSh1aW50MzJfdCBkZXZfaWQsIHVpbnQzMl90 IHJpbmdfc2l6ZSkgew0KPiArCXVpbnQxNl90IHZjaGFuID0gMDsNCj4gKwlzdHJ1Y3QgcnRlX2Rt YV9pbmZvIGluZm87DQo+ICsJc3RydWN0IHJ0ZV9kbWFfY29uZiBkZXZfY29uZmlnID0geyAubmJf dmNoYW5zID0gMSB9Ow0KPiArCXN0cnVjdCBydGVfZG1hX3ZjaGFuX2NvbmYgcWNvbmYgPSB7DQo+ ICsJCS5kaXJlY3Rpb24gPSBSVEVfRE1BX0RJUl9NRU1fVE9fTUVNLA0KPiArCQkubmJfZGVzYyA9 IHJpbmdfc2l6ZQ0KPiArCX07DQo+ICsNCj4gKwlpZiAocnRlX2RtYV9jb25maWd1cmUoZGV2X2lk LCAmZGV2X2NvbmZpZykgIT0gMCkNCj4gKwkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAiRXJyb3Ig d2l0aCBkbWEgY29uZmlndXJlLlxuIik7DQo+ICsNCj4gKwlpZiAocnRlX2RtYV92Y2hhbl9zZXR1 cChkZXZfaWQsIHZjaGFuLCAmcWNvbmYpICE9IDApDQo+ICsJCXJ0ZV9leGl0KEVYSVRfRkFJTFVS RSwgIkVycm9yIHdpdGggcXVldWUgY29uZmlndXJhdGlvbi5cbiIpOw0KPiArDQo+ICsJcnRlX2Rt YV9pbmZvX2dldChkZXZfaWQsICZpbmZvKTsNCg0KW0Fub29iXSBUaGlzIEFQSSBjYW4gcmV0dXJu IGVycm9ycy4gQmV0dGVyIHRvIGFkZCBoYW5kbGluZy4NCg0KPiArCWlmIChpbmZvLm5iX3ZjaGFu cyAhPSAxKQ0KPiArCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsICJFcnJvciwgbm8gY29uZmlndXJl ZCBxdWV1ZXMNCj4gcmVwb3J0ZWQgb24gZGV2aWNlIGlkLiAldVxuIiwNCj4gKwkJCQlkZXZfaWQp Ow0KPiArDQo+ICsJaWYgKHJ0ZV9kbWFfc3RhcnQoZGV2X2lkKSAhPSAwKQ0KPiArCQlydGVfZXhp dChFWElUX0ZBSUxVUkUsICJFcnJvciB3aXRoIGRtYSBzdGFydC5cbiIpOyB9DQo+ICsNCj4gK3N0 YXRpYyBpbnQNCj4gK2NvbmZpZ19kbWFkZXZzKHN0cnVjdCB0ZXN0X2NvbmZpZ3VyZSAqY2ZnKSB7 DQo+ICsJdWludDMyX3QgcmluZ19zaXplID0gY2ZnLT5yaW5nX3NpemUuY3VyOw0KPiArCXN0cnVj dCBsY29yZV9kbWFfbWFwX3QgKmxkbSA9ICZjZmctPmxjb3JlX2RtYV9tYXA7DQo+ICsJdWludDMy X3QgbmJfd29ya2VycyA9IGxkbS0+Y250Ow0KPiArCXVpbnQzMl90IGk7DQo+ICsJaW50IGRldl9p ZDsNCj4gKwl1aW50MTZfdCBuYl9kbWFkZXZzID0gMDsNCj4gKwljaGFyICpkbWFfbmFtZTsNCj4g Kw0KPiArCWZvciAoaSA9IDA7IGkgPCBsZG0tPmNudDsgaSsrKSB7DQo+ICsJCWRtYV9uYW1lID0g bGRtLT5kbWFfbmFtZXNbaV07DQo+ICsJCWRldl9pZCA9IHJ0ZV9kbWFfZ2V0X2Rldl9pZF9ieV9u YW1lKGRtYV9uYW1lKTsNCj4gKwkJaWYgKGRldl9pZCA9PSAtMSkgew0KDQpbQW5vb2JdIENhbiB5 b3UgY2hlY2sgdGhlIGFib3ZlIEFQSSBkZWZpbml0aW9uPyBJIHRoaW5rIGl0IHJldHVybnMgbm90 IGp1c3QgLTEgaW4gY2FzZSBvZiBlcnJvcnMuDQoNCj4gKwkJCWZwcmludGYoc3RkZXJyLCAiRXJy b3I6IEZhaWwgdG8gZmluZCBETUEgJXMuXG4iLA0KPiBkbWFfbmFtZSk7DQo+ICsJCQlnb3RvIGVu ZDsNCj4gKwkJfQ0KPiArDQo+ICsJCWxkbS0+ZG1hX2lkc1tpXSA9IGRldl9pZDsNCj4gKwkJY29u ZmlndXJlX2RtYWRldl9xdWV1ZShkZXZfaWQsIHJpbmdfc2l6ZSk7DQo+ICsJCSsrbmJfZG1hZGV2 czsNCj4gKwl9DQo+ICsNCj4gK2VuZDoNCj4gKwlpZiAobmJfZG1hZGV2cyA8IG5iX3dvcmtlcnMp IHsNCj4gKwkJcHJpbnRmKCJOb3QgZW5vdWdoIGRtYWRldnMgKCV1KSBmb3IgYWxsIHdvcmtlcnMg KCV1KS5cbiIsDQo+IG5iX2RtYWRldnMsIG5iX3dvcmtlcnMpOw0KPiArCQlyZXR1cm4gLTE7DQo+ ICsJfQ0KPiArDQo+ICsJcHJpbnRmKCJOdW1iZXIgb2YgdXNlZCBkbWFkZXZzOiAldS5cbiIsIG5i X2RtYWRldnMpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbmxp bmUgdm9pZA0KPiArZG9fZG1hX3N1Ym1pdF9hbmRfcG9sbCh1aW50MTZfdCBkZXZfaWQsIHVpbnQ2 NF90ICphc3luY19jbnQsDQo+ICsJCQl2b2xhdGlsZSBzdHJ1Y3Qgd29ya2VyX2luZm8gKndvcmtl cl9pbmZvKSB7DQo+ICsJaW50IHJldDsNCj4gKwl1aW50MTZfdCBucl9jcGw7DQo+ICsNCj4gKwly ZXQgPSBydGVfZG1hX3N1Ym1pdChkZXZfaWQsIDApOw0KPiArCWlmIChyZXQgPCAwKSB7DQo+ICsJ CXJ0ZV9kbWFfc3RvcChkZXZfaWQpOw0KPiArCQlydGVfZG1hX2Nsb3NlKGRldl9pZCk7DQo+ICsJ CXJ0ZV9leGl0KEVYSVRfRkFJTFVSRSwgIkVycm9yIHdpdGggZG1hIHN1Ym1pdC5cbiIpOw0KPiAr CX0NCj4gKw0KPiArCW5yX2NwbCA9IHJ0ZV9kbWFfY29tcGxldGVkKGRldl9pZCwgMCwgTUFYX0RN QV9DUExfTkIsIE5VTEwsDQo+IE5VTEwpOw0KPiArCSphc3luY19jbnQgLT0gbnJfY3BsOw0KPiAr CXdvcmtlcl9pbmZvLT50b3RhbF9jcGwgKz0gbnJfY3BsOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg aW5saW5lIGludA0KPiArZG9fZG1hX21lbV9jb3B5KHZvaWQgKnApDQoNCltBbm9vYl0gSnVzdCBj dXJpb3VzLCB3aHkgbm90IHBhc3Mgc3RydWN0IGxjb3JlX3BhcmFtcyAqcGFyYSBpdHNlbGY/IElz IGl0IGJlY2F1c2UgdGhlIHBvaW50ZXIgaXMgdm9sYXRpbGU/IElmIHllcywgdGhlbiB3ZSBjYW4g dGFrZSBhbiBBSSB0byBzcGxpdCB0aGUgc3RydWN0IGludG8gdm9sYXRpbGUgYW5kIG5vbi12b2xh dGlsZSBwYXJ0cy4NCg0KPiArew0KPiArCWNvbnN0IHVpbnQxNl90ICpwYXJhX2lkeCA9ICh1aW50 MTZfdCAqKXA7DQo+ICsJdm9sYXRpbGUgc3RydWN0IGxjb3JlX3BhcmFtcyAqcGFyYSA9IGxjb3Jl c19wWypwYXJhX2lkeF0udl9wdHI7DQo+ICsJdm9sYXRpbGUgc3RydWN0IHdvcmtlcl9pbmZvICp3 b3JrZXJfaW5mbyA9ICYocGFyYS0+d29ya2VyX2luZm8pOw0KPiArCWNvbnN0IHVpbnQxNl90IGRl dl9pZCA9IHBhcmEtPmRldl9pZDsNCj4gKwljb25zdCB1aW50MzJfdCBucl9idWYgPSBwYXJhLT5u cl9idWY7DQo+ICsJY29uc3QgdWludDE2X3Qga2lja19iYXRjaCA9IHBhcmEtPmtpY2tfYmF0Y2g7 DQo+ICsJY29uc3QgdWludDMyX3QgYnVmX3NpemUgPSBwYXJhLT5idWZfc2l6ZTsNCj4gKwlzdHJ1 Y3QgcnRlX21idWYgKipzcmNzID0gcGFyYS0+c3JjczsNCj4gKwlzdHJ1Y3QgcnRlX21idWYgKipk c3RzID0gcGFyYS0+ZHN0czsNCj4gKwl1aW50MTZfdCBucl9jcGw7DQo+ICsJdWludDY0X3QgYXN5 bmNfY250ID0gMDsNCj4gKwl1aW50MzJfdCBpOw0KPiArCXVpbnQzMl90IHBvbGxfY250ID0gMDsN Cj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJd29ya2VyX2luZm8tPnN0b3BfZmxhZyA9IGZhbHNlOw0K PiArCXdvcmtlcl9pbmZvLT5yZWFkeV9mbGFnID0gdHJ1ZTsNCj4gKw0KPiArCXdoaWxlICghd29y a2VyX2luZm8tPnN0YXJ0X2ZsYWcpDQo+ICsJCTsNCj4gKw0KPiArCXdoaWxlICgxKSB7DQo+ICsJ CWZvciAoaSA9IDA7IGkgPCBucl9idWY7IGkrKykgew0KPiArZG1hX2NvcHk6DQo+ICsJCQlyZXQg PSBydGVfZG1hX2NvcHkoZGV2X2lkLCAwLA0KPiBydGVfcGt0bWJ1Zl9pb3ZhKHNyY3NbaV0pLA0K PiArCQkJCXJ0ZV9wa3RtYnVmX2lvdmEoZHN0c1tpXSksIGJ1Zl9zaXplLCAwKTsNCg0KW0Fub29i XSBEbyB3ZSBuZWVkIHRvIHVzZSAnIHJ0ZV9tYnVmX2RhdGFfaW92YScgaGVyZSBpbnN0ZWFkIG9m ICdydGVfcGt0bWJ1Zl9pb3ZhJz8gDQoNCj4gKwkJCWlmICh1bmxpa2VseShyZXQgPCAwKSkgew0K PiArCQkJCWlmIChyZXQgPT0gLUVOT1NQQykgew0KPiArCQkJCQlkb19kbWFfc3VibWl0X2FuZF9w b2xsKGRldl9pZCwNCj4gJmFzeW5jX2NudCwgd29ya2VyX2luZm8pOw0KPiArCQkJCQlnb3RvIGRt YV9jb3B5Ow0KPiArCQkJCX0gZWxzZSB7DQo+ICsJCQkJCS8qIEVycm9yIGV4aXQgKi8NCj4gKwkJ CQkJcnRlX2RtYV9zdG9wKGRldl9pZCk7DQoNCltBbm9vYl0gTWlzc2luZyBydGVfZG1hX2Nsb3Nl KCkgaGVyZS4gQWxzbywgbWF5IGJlIGludHJvZHVjZSBhIHN0YXRpYyB2b2lkIGZ1bmN0aW9uIHNv IHRoYXQgcnRlX2V4aXQgY2FsbCBldGMgd29uJ3QgYmUgcGFydCBvZiB0aGUgZmFzdHBhdGggbG9v cC4NCg0KTWF5IGJlIHNvbWV0aGluZyBsaWtlIGJlbG93IGFuZCB5b3UgY2FuIGNhbGwgaXQgZnJv bSBoZXJlIGFuZCAiZG9fZG1hX3N1Ym1pdF9hbmRfcG9sbCIuDQoNCnN0YXRpYyB2b2lkDQplcnJv cl9leGl0KGludCBkZXZfaWQpDQp7DQoJLyogRXJyb3IgZXhpdCAqLw0KCXJ0ZV9kbWFfc3RvcChk ZXZfaWQpOw0KCXJ0ZV9kbWFfY2xvc2UoZGV2X2lkKTsNCglydGVfZXhpdChFWElUX0ZBSUxVUkUs ICJETUEgZW5xdWV1ZSBmYWlsZWRcbiIpOw0KfQ0KDQo+ICsJCQkJCXJ0ZV9leGl0KEVYSVRfRkFJ TFVSRSwgIkRNQQ0KPiBlbnF1ZXVlIGZhaWxlZFxuIik7DQo+ICsJCQkJfQ0KPiArCQkJfQ0KPiAr CQkJYXN5bmNfY250Kys7DQo+ICsNCj4gKwkJCWlmICgoYXN5bmNfY250ICUga2lja19iYXRjaCkg PT0gMCkNCj4gKwkJCQlkb19kbWFfc3VibWl0X2FuZF9wb2xsKGRldl9pZCwNCj4gJmFzeW5jX2Nu dCwgd29ya2VyX2luZm8pOw0KPiArCQl9DQo+ICsNCj4gKwkJaWYgKHdvcmtlcl9pbmZvLT5zdG9w X2ZsYWcpDQo+ICsJCQlicmVhazsNCj4gKwl9DQo+ICsNCj4gKwlydGVfZG1hX3N1Ym1pdChkZXZf aWQsIDApOw0KPiArCXdoaWxlICgoYXN5bmNfY250ID4gMCkgJiYgKHBvbGxfY250KysgPCBQT0xM X01BWCkpIHsNCj4gKwkJbnJfY3BsID0gcnRlX2RtYV9jb21wbGV0ZWQoZGV2X2lkLCAwLA0KPiBN QVhfRE1BX0NQTF9OQiwgTlVMTCwgTlVMTCk7DQo+ICsJCWFzeW5jX2NudCAtPSBucl9jcGw7DQo+ ICsJfQ0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCg0KPHNuaXA+DQoNCj4gK3N0YXRp YyBpbnQNCj4gK3NldHVwX21lbW9yeV9lbnYoc3RydWN0IHRlc3RfY29uZmlndXJlICpjZmcsIHN0 cnVjdCBydGVfbWJ1ZiAqKipzcmNzLA0KPiArCQkJc3RydWN0IHJ0ZV9tYnVmICoqKmRzdHMpDQo+ ICt7DQo+ICsJdW5zaWduZWQgaW50IGJ1Zl9zaXplID0gY2ZnLT5idWZfc2l6ZS5jdXI7DQo+ICsJ dW5zaWduZWQgaW50IG5yX3NvY2tldHM7DQo+ICsJdWludDMyX3QgbnJfYnVmID0gY2ZnLT5ucl9i dWY7DQo+ICsNCj4gKwlucl9zb2NrZXRzID0gcnRlX3NvY2tldF9jb3VudCgpOw0KPiArCWlmIChj ZmctPnNyY19udW1hX25vZGUgPj0gbnJfc29ja2V0cyB8fA0KPiArCQljZmctPmRzdF9udW1hX25v ZGUgPj0gbnJfc29ja2V0cykgew0KPiArCQlwcmludGYoIkVycm9yOiBTb3VyY2Ugb3IgZGVzdGlu YXRpb24gbnVtYSBleGNlZWRzIHRoZSBhY3R1cmUNCj4gbnVtYSBub2Rlcy5cbiIpOw0KPiArCQly ZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJc3JjX3Bvb2wgPSBydGVfcGt0bWJ1Zl9wb29sX2Ny ZWF0ZSgiQmVuY2htYXJrX0RNQV9TUkMiLA0KPiArCQkJbnJfYnVmLA0KPiArCQkJMCwNCj4gKwkJ CTAsDQo+ICsJCQlidWZfc2l6ZSArIFJURV9QS1RNQlVGX0hFQURST09NLA0KPiArCQkJY2ZnLT5z cmNfbnVtYV9ub2RlKTsNCj4gKwlpZiAoc3JjX3Bvb2wgPT0gTlVMTCkgew0KPiArCQlQUklOVF9F UlIoIkVycm9yIHdpdGggc291cmNlIG1lbXBvb2wgY3JlYXRpb24uXG4iKTsNCj4gKwkJcmV0dXJu IC0xOw0KPiArCX0NCj4gKw0KPiArCWRzdF9wb29sID0gcnRlX3BrdG1idWZfcG9vbF9jcmVhdGUo IkJlbmNobWFya19ETUFfRFNUIiwNCj4gKwkJCW5yX2J1ZiwNCj4gKwkJCTAsDQo+ICsJCQkwLA0K PiArCQkJYnVmX3NpemUgKyBSVEVfUEtUTUJVRl9IRUFEUk9PTSwNCj4gKwkJCWNmZy0+ZHN0X251 bWFfbm9kZSk7DQo+ICsJaWYgKGRzdF9wb29sID09IE5VTEwpIHsNCj4gKwkJUFJJTlRfRVJSKCJF cnJvciB3aXRoIGRlc3RpbmF0aW9uIG1lbXBvb2wgY3JlYXRpb24uXG4iKTsNCj4gKwkJcmV0dXJu IC0xOw0KPiArCX0NCj4gKw0KPiArCSpzcmNzID0gcnRlX21hbGxvYyhOVUxMLCBucl9idWYgKiBz aXplb2Yoc3RydWN0IHJ0ZV9tYnVmICopLCAwKTsNCj4gKwlpZiAoKnNyY3MgPT0gTlVMTCkgew0K PiArCQlwcmludGYoIkVycm9yOiBzcmNzIG1hbGxvYyBmYWlsZWQuXG4iKTsNCj4gKwkJcmV0dXJu IC0xOw0KPiArCX0NCj4gKw0KPiArCSpkc3RzID0gcnRlX21hbGxvYyhOVUxMLCBucl9idWYgKiBz aXplb2Yoc3RydWN0IHJ0ZV9tYnVmICopLCAwKTsNCj4gKwlpZiAoKmRzdHMgPT0gTlVMTCkgew0K PiArCQlwcmludGYoIkVycm9yOiBkc3RzIG1hbGxvYyBmYWlsZWQuXG4iKTsNCj4gKwkJcmV0dXJu IC0xOw0KPiArCX0NCj4gKw0KPiArCWlmIChydGVfbWVtcG9vbF9nZXRfYnVsayhzcmNfcG9vbCwg KHZvaWQgKiopKnNyY3MsIG5yX2J1ZikgIT0gMCkgew0KDQpbQW5vb2JdIE1pZ2h0IGJlIGJldHRl ciB0byB1c2UgJ3J0ZV9wa3RtYnVmX2FsbG9jX2J1bGsnIHNpbmNlIHdlIHVzZSAnIHJ0ZV9tYnVm X2RhdGFfaW92YScgaW4gdGhlIGRhdGFwYXRoIGFuZCBpdCBpcyBkZXNpcmFibGUgdG8gaW5pdGlh bGl6ZSBpdCBwcm9wZXJseSBhcyBhbiBtYnVmLiBTYW1lIGNvbW1lbnQgYmVsb3cgYXMgd2VsbC4N Cg0KPHNuaXA+DQoNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBuYl93b3JrZXJzOyBpKyspIHsN Cj4gKwkJY2FsY19yZXN1bHQoYnVmX3NpemUsIG5yX2J1ZiwgbmJfd29ya2VycywgdGVzdF9zZWNz LA0KPiArCQkJbGNvcmVzX3BbaV0udl9wdHItPndvcmtlcl9pbmZvLnRlc3RfY3BsLA0KPiArCQkJ Jm1lbW9yeSwgJmF2Z19jeWNsZXMsICZiYW5kd2lkdGgsICZtb3BzKTsNCj4gKwkJb3V0cHV0X3Jl c3VsdChjZmctPnNjZW5hcmlvX2lkLCBsY29yZXNfcFtpXS52X3B0ci0+bGNvcmVfaWQsDQo+ICsJ CQkJCWxjb3Jlc19wW2ldLnZfcHRyLT5kbWFfbmFtZSwNCj4gYXZnX2N5Y2xlcywgYnVmX3NpemUs DQo+ICsJCQkJCW5yX2J1ZiAvIG5iX3dvcmtlcnMsIG1lbW9yeSwNCj4gYmFuZHdpZHRoLCBtb3Bz LCBpc19kbWEpOw0KPiArCX0NCg0KW0Fub29iXSBDYW4geW91IGFsc28gcHJpbnQgdG90YWxfYmFu ZHdpZHRoICYgdG90YWxfbW9wcz8gSXQgY2FuIGJlIGEgc2ltcGxlIGFnZ3JlZ2F0aW9uIGluIHRo ZSBhYm92ZSBsb29wLiBXb3VsZCBoZWxwIHdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBsYXJnZXIg bnVtYmVyIG9mIHF1ZXVlcyBidXQgc2luZ2xlIGhhcmR3YXJlIGJsb2NrLg0KDQo+ICsNCj4gK291 dDoNCj4gKwkvKiBmcmVlIG1idWZzIHVzZWQgaW4gdGhlIHRlc3QgKi8NCj4gKwlpZiAoc3JjcykN Cg0KW0Fub29iXSBEUERLIGNvZGluZyBndWlkZWxpbmVzIHJlY29tbWVuZCBhIHVzYWdlIGxpa2Ug YmVsb3csDQoJKGlmIChzcmNzICE9IE5VTEwpDQoNCj4gKwkJcnRlX3BrdG1idWZfZnJlZV9idWxr KHNyY3MsIG5yX2J1Zik7DQo+ICsJaWYgKGRzdHMpDQo+ICsJCXJ0ZV9wa3RtYnVmX2ZyZWVfYnVs ayhkc3RzLCBucl9idWYpOw0KPiArDQo+ICsJLyogZnJlZSB0aGUgcG9pbnRzIGZvciB0aGUgbWJ1 ZnMgKi8NCj4gKwlydGVfZnJlZShzcmNzKTsNCj4gKwlzcmNzID0gTlVMTDsNCj4gKwlydGVfZnJl ZShkc3RzKTsNCj4gKwlkc3RzID0gTlVMTDsNCj4gKw0KPiArCWlmIChzcmNfcG9vbCkgew0KPiAr CQlydGVfbWVtcG9vbF9mcmVlKHNyY19wb29sKTsNCj4gKwkJc3JjX3Bvb2wgPSBOVUxMOw0KPiAr CX0NCj4gKwlpZiAoZHN0X3Bvb2wpIHsNCj4gKwkJcnRlX21lbXBvb2xfZnJlZShkc3RfcG9vbCk7 DQo+ICsJCXNyY19wb29sID0gTlVMTDsNCg0KW0Fub29iXSBTaG91bGQgYmUgZHN0X3Bvb2wsIHJp Z2h0Pw0KDQo8c25pcD4NCg0KPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtZG1hLXBlcmYvbWFpbi5o IGIvYXBwL3Rlc3QtZG1hLXBlcmYvbWFpbi5oIG5ldyBmaWxlDQo+IG1vZGUgMTAwNjQ0IGluZGV4 IDAwMDAwMDAwMDAuLjIxNWFjNDI2NzMNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9hcHAvdGVz dC1kbWEtcGVyZi9tYWluLmgNCj4gQEAgLTAsMCArMSw2OSBAQA0KPiArLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICogQ29weXJpZ2h0KGMpIDIwMjMgSW50ZWwg Q29ycG9yYXRpb24NCj4gKyAqLw0KPiArDQo+ICsjaWZuZGVmIF9NQUlOX0hfDQo+ICsjZGVmaW5l IF9NQUlOX0hfDQo+ICsNCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gKyNpbmNs dWRlIDxydGVfY3ljbGVzLmg+DQo+ICsjaW5jbHVkZSA8cnRlX2Rldi5oPg0KPiArI2luY2x1ZGUg PHJ0ZV9kbWFkZXYuaD4NCg0KW0Fub29iXSBJcyB0aGUgYWJvdmUgaW5jbHVkZSAocnRlX2RtYWRl di5oKSByZXF1aXJlZD8NCg0KPiArDQo+ICsjaWZuZGVmIF9fbWF5YmVfdW51c2VkDQo+ICsjZGVm aW5lIF9fbWF5YmVfdW51c2VkCV9fcnRlX3VudXNlZA0KPiArI2VuZGlmDQoNCltBbm9vYl0gQ2Fu IHlvdSB0cnkgdG8gYXZvaWQgdGhpcyBhbmQgdXNlIHJ0ZV91bnVzZWQgb3IgUlRFX1NFVF9VU0VE IGluIHRoZSBjYWNoZV9mbHVzaF9idWYoKSBmdW5jdGlvbj8NCg==