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 74A8C4331B; Mon, 13 Nov 2023 10:27:16 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 45E29402C0; Mon, 13 Nov 2023 10:27:16 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 9869E4026C for ; Mon, 13 Nov 2023 10:27:14 +0100 (CET) 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 3AD4o3xA022468; Mon, 13 Nov 2023 01:27:14 -0800 Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2168.outbound.protection.outlook.com [104.47.59.168]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3uaa0qvder-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Nov 2023 01:27:13 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A4pKlklAQMwabXCeVeKsjjqO5JEIvTu/lhhOROAjPmxmvubkVcMBKlL54pC5cQjLVf+HakOklqV+6QnXtR+W0da8JqksGlvG8SfVxhBz5fpcTrLJUNiYvz18WMSo27VJN69Z9vpSkyijqMdJVl5ps7n4v8ckrbq2gPKlGifLti1MGU3/5XkmcXDbG6n/raidqopC29K/QivN9bL/2YmOoo5XqHfNuCIEnA2sx7P0KUJfEElcxYNiGAZ1zH+KN904hbs5wp6pmGk1+5TKpcikhvWTKmlDfp63bPOPGjf5o9niDiObwBvFfPpkhU2nLm8sdXu/1x7+ugmHxhneYItJOg== 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=onehuUU0/nnNUg6CHCot6lXW4nRnauBthrZpVW8jLBs=; b=H3+t7732bE5W3viCpbSAhBXAyxWYdPx/z717+9497vZHCTQDtjHOLknCT3/vMjabV/si31+l+myNz7fpBSZJxeXEnLS1DShgrDpIkitlyj4TcMoTJibiDXuLhEld3IeF/bsuJ1im+rJ9ZgGoKj4X+DwHi3jnL8eLX1YcBdHaUwFltf82SaZSPgeIdq+PZqDAVTGCJ3aU8tXLkAIel5vjE7VeAJWp7t1PjFuztcvo5GItwbImsBBDOp/bxjdt/nFaa2vveddNKJii1YTzy/LMZEb5T/Y34GuSm47fHlzokCDPFodCv4HGr0omu2RT/ViKQN1EtJzd4Iegnz/i6VP8zA== 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=onehuUU0/nnNUg6CHCot6lXW4nRnauBthrZpVW8jLBs=; b=pluPGKWqo5HQkEwAqVYHHM9CWAkybakzA1oYQHjuolEz9fiw+4AbcCBwC0j3aJpuAcIw6w7UvVBRylassRzTlYL7Tp3Lge6xeggORdQFhXUYgBDqvjM/RduGbxNG3u5q/0beMD7HimWt1K7KsUxRHWhDfggVSwnKmNjhgr1kOjg= Received: from CO1PR18MB4714.namprd18.prod.outlook.com (2603:10b6:303:e9::18) by DM4PR18MB5473.namprd18.prod.outlook.com (2603:10b6:8:18a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.29; Mon, 13 Nov 2023 09:27:09 +0000 Received: from CO1PR18MB4714.namprd18.prod.outlook.com ([fe80::c00d:4600:5cec:d756]) by CO1PR18MB4714.namprd18.prod.outlook.com ([fe80::c00d:4600:5cec:d756%7]) with mapi id 15.20.6977.029; Mon, 13 Nov 2023 09:27:09 +0000 From: Gowrishankar Muthukrishnan To: fengchengwen , "dev@dpdk.org" CC: Anoob Joseph , Vamsi Krishna Attunuru , Amit Prakash Shukla , Vidya Sagar Velumuri , Kevin Laatz , Bruce Richardson Subject: RE: [EXT] Re: [PATCH v3 3/3] test/dma: add SG copy tests Thread-Topic: [EXT] Re: [PATCH v3 3/3] test/dma: add SG copy tests Thread-Index: AQHaDmvNW8nqgvhDckCMKJEs0QobZLBs3DcAgAsJSKA= Date: Mon, 13 Nov 2023 09:27:09 +0000 Message-ID: References: <7c61824f1ed1e720c974d1baadfa7c55578c0c4f.1699025423.git.gmuthukrishn@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWjIxMWRHaDFhM0pwYzJodVhHRndjR1JoZEdGY2NtOWhiV2x1WjF3d09X?= =?utf-8?B?UTRORGxpTmkwek1tUXpMVFJoTkRBdE9EVmxaUzAyWWpnMFltRXlPV1V6TldK?= =?utf-8?B?Y2JYTm5jMXh0YzJjdFkyVmtNelZqTUdFdE9ESXdOaTB4TVdWbExXRXdZV1V0?= =?utf-8?B?TlRRNFpEVmhaVGxrWkdVeFhHRnRaUzEwWlhOMFhHTmxaRE0xWXpCaUxUZ3lN?= =?utf-8?B?RFl0TVRGbFpTMWhNR0ZsTFRVME9HUTFZV1U1WkdSbE1XSnZaSGt1ZEhoMElp?= =?utf-8?B?QnplajBpTXpBM05EZ2lJSFE5SWpFek16UTBNelF4TWpJMk1EQTJNekF3TUNJ?= =?utf-8?B?Z2FEMGlZV3hpYnpOc1pEVmtWekJMTm05S2RtVm9OVEJGZUdvMFZsWlpQU0ln?= =?utf-8?B?YVdROUlpSWdZbXc5SWpBaUlHSnZQU0l4SWlCamFUMGlZMEZCUVVGRlVraFZN?= =?utf-8?B?VkpUVWxWR1RrTm5WVUZCUW1kWFFVRkJXV2d5UTFKRmVHSmhRVmRDTjJNeFpY?= =?utf-8?B?cEVaR2xDV1VoMGVsWTNUVTR5U1VWYVFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVoQlFVRkJRblZFZDBGQk0yYzRRVUZFYjBkQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVVZCUVZGRlFrRkJRVUU1VW1WdVRIZERRVUZSUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGS05FRkJRVUpvUVVkUlFWcEJRbmxCUjFWQlkzZENla0ZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJSVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZuUVVGQlFVRkJibWRCUVVGSFRVRmtVVUo2UVVoUlFXSjNRblJC?= =?utf-8?B?UmpoQlkwRkNiRUZJU1VGamQwSjJRVWMwUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVZGQlFVRkJRVUZCUVVGRFFVRkJRVUZCUTJWQlFVRkJXWGRDTVVGSVRV?= =?utf-8?B?RmtRVUoyUVVjd1FWaDNRbmRCUjJkQlluZENkVUZIVlVGaVowSXhRVWN3UVZs?= =?utf-8?B?blFteEJTRWxCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVSkJRVUZCUVVGQlFVRkJTVUZCUVVGQlFVbzBRVUZC?= =?utf-8?B?UW1wQlNGVkJZM2RDTUVGSE9FRmlVVUptUVVoTlFXTjNRblZCUmpoQldrRkNh?= =?utf-8?B?RUZJVFVGaFFVSm1RVWhaUVUxQlFYbEJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refone: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZGUVVGQlFVRkJRVUZCUVdkQlFVRkJRVUZ1?= =?utf-8?B?WjBGQlFVZE5RV1JSUW5wQlNGRkJZbmRDZEVGR09FRmpkMEo2UVVjMFFWaDNR?= =?utf-8?B?bkpCUjFWQlpWRkNNMEZIT0VGalowSnJRVWhOUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlVVRkJRVUZCUVVGQlFV?= =?utf-8?B?TkJRVUZCUVVGRFpVRkJRVUZaZDBJeFFVaE5RV1JCUW5aQlJ6QkJXSGRDZWtG?= =?utf-8?B?SVRVRmlaMEptUVVjMFFXSjNRbXRCUjFWQllrRkNjRUZITUVGaFVVSXdRVWRW?= =?utf-8?B?UVdOblFtWkJTRmxCVFVGQmVVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRa0ZC?= =?utf-8?B?UVVGQlFVRkJRVUZKUVVGQlFVRkJTalJCUVVGQ2FrRklWVUZqZDBJd1FVYzRR?= =?utf-8?B?V0pSUW1aQlNFMUJZM2RDZFVGR09FRmpkMEozUVVkRlFWbDNRbXhCUmpoQlpH?= =?utf-8?B?ZEJkMEZFU1VGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVWQlFVRkJRVUZCUVVGQlowRkJRVUZCUVc1blFVRkJSMUZCWWtG?= =?utf-8?B?Q2QwRkdPRUZqZDBKeVFVaHJRV05CUW14QlJqaEJXWGRDYjBGSFJVRmtRVUpt?= =?utf-8?B?UVVjd1FWcFJRbnBCU0UxQldWRkNia0ZIVlVGWWQwSXlRVVJCUVUxblFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRlJRVUZCUVVGQlFVRkJRMEZCUVVGQlFVTmxR?= =?utf-8?B?VUZCUVZwQlFuTkJTRUZCV0hkQ2VrRkhkMEZaVVVKcVFVZHpRVmgzUW1wQlIy?= =?utf-8?B?ZEJXVkZDTUVGR09FRmlVVUpzUVVoTlFXTjNRbWhCUjJOQldsRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reftwo: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZDUVVGQlFVRkJRVUZCUVVsQlFVRkJR?= =?utf-8?B?VUZLTkVGQlFVSnJRVWQzUVdOQlFtWkJTRkZCV2xGQ2FFRkhNRUZqZDBKbVFV?= =?utf-8?B?YzRRV0puUW14QlIxRkJZMmRDY0VGSVdVRmFVVUptUVVkWlFXRlJRbk5CUjFW?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlJVRkJRVUZCUVVG?= =?utf-8?B?QlFVRm5RVUZCUVVGQmJtZEJRVUZIVlVGaVVVSm9RVWRyUVdKQlFtWkJSMFZC?= =?utf-8?B?V2tGQ2EwRklTVUZhVVVKNlFVaE5RVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCWjBGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VkZCUVVGQlFVRkJRVUZEUVVGQlFVRkJRMlZCUVVGQllsRkNhRUZJU1VGa1ow?= =?utf-8?B?SnNRVWQzUVZoM1FuZEJTRWxCWW5kQ2NVRkhWVUZaZDBJd1FVWTRRV0puUW1o?= =?utf-8?B?QlJ6QkJXbEZDZWtGR09FRlpkMEoyUVVjMFFWcG5RbkJCUjFGQldsRkNkVUZJ?= =?utf-8?B?VVVGaFVVSm9RVWQzUVZoM1FtaEJSM2RCWW5kQ2RVRkhWVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVKQlFVRkJRVUZCUVVGQlNVRkJRVUZCUVVvMFFVRkJRblJC?= =?utf-8?B?UjBWQlkyZENNa0ZIVlVGaVFVSm1RVWhCUVdOblFuWkJSMjlCV2xGQ2FrRklV?= =?utf-8?B?VUZZZDBKMVFVZEZRV0pSUW14QlNFMUJXSGRDZVVGSFZVRmpkMEl3UVVoSlFX?= =?utf-8?B?RlJRbXBCU0ZGQldsRkNhMEZHT0VGWlVVSnpRVWM0UVdKblFteEJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkZRVUZCUVVGQlFVRkJRV2RCUVVGQlFV?= =?utf-8?B?RnVaMEZCUVVjd1FWbFJRbmxCU0ZsQldsRkNjMEZHT0VGalFVSjVRVWM0UVdG?= =?utf-8?B?blFteEJSMDFCWkVGQ1prRkhORUZaVVVKMFFVZFZRV04zUW1aQlNFbEJXbEZD?= =?utf-8?B?ZWtGSVVVRmpaMEp3UVVkTlFXUkJRbXhCUjFGQldIZENiMEZIVlVGbFFVSnFR?= =?utf-8?B?VWM0UVZwQlFteEJTRTFCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCVVVGQlFVRkJRVUZC?= =?utf-8?B?UVVOQlFVRkJRVUZEWlVGQlFVRmlVVUpvUVVoSlFXUm5RbXhCUjNkQllrRkNa?= =?utf-8?B?a0ZIUlVGalowSjBRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-rorf: true x-dg-refthree: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFrRkJRVUZC?= =?utf-8?B?UVVGQlFVRkpRVUZCUVVGQlNqUkJRVUZDZEVGSFJVRmpaMEl5UVVkVlFXSkJR?= =?utf-8?B?bk5CUmpoQlduZENka0ZIT0VGYWQwSnpRVWRWUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVVZCUVVGQlFVRkJRVUZCWjBGQlFVRkJRVzVuUVVGQlJ6QkJXVkZDZVVG?= =?utf-8?B?SVdVRmFVVUp6UVVkM1FWaDNRbmRCU0VsQlluZENjVUZIVlVGWmQwSXdRVVk0?= =?utf-8?B?UVZsM1FuWkJSMUZCV2xGQ2VrRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGUlFVRkJRVUZCUVVGQlEwRkJRVUZCUVVObFFVRkJR?= =?utf-8?B?V0pSUW1oQlNFbEJaR2RDYkVGSGQwRmlRVUptUVVoQlFXTm5RblpCUjI5Qlds?= =?utf-8?B?RkNha0ZJVVVGWWQwSnFRVWM0UVZwQlFteEJTRTFCV0hkQ2EwRkhhMEZaZDBJ?= =?utf-8?B?d1FVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkNRVUZCUVVGQlFVRkJRVWxCUVVG?= =?utf-8?B?QlFVRktORUZCUVVKMFFVZEZRV05uUWpKQlIxVkJZa0ZDYzBGR09FRmpRVUo1?= =?utf-8?B?UVVjNFFXRm5RbXhCUjAxQlpFRkNaa0ZITkVGWlVVSjBRVWRWUVdOM1FtWkJS?= =?utf-8?B?MDFCWW5kQ2RVRkhXVUZoVVVKclFVZFZRV0puUWpCQlIydEJXVkZDYzBGR09F?= =?utf-8?B?RmlVVUpvUVVoSlFXUm5RbXhCUjNkQllrRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUlVGQlFVRkJR?= =?utf-8?B?VUZCUVVGblFVRkJRVUZCYm1kQlFVRkhNRUZaVVVKNVFVaFpRVnBSUW5OQlIz?= =?utf-8?B?ZEJXSGRDZDBGSVNVRmlkMEp4UVVkVlFWbDNRakJCUmpoQlltZENhRUZITUVG?= =?utf-8?B?YVVVSjZRVVk0UVZsM1FuWkJSelJCV21kQ2NFRkhVVUZhVVVKMVFVaFJRV0ZS?= =?utf-8?B?UW1oQlIzZEJXSGRDZEVGSFJVRmpaMEl5UVVkVlFXSkJRbk5CUmpoQlluZENl?= =?utf-8?B?VUZHT0VGWlVVSjVRVWN3UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reffour: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFWRkJR?= =?utf-8?B?VUZCUVVGQlFVRkRRVUZCUVVGQlEyVkJRVUZCWWxGQ2FFRklTVUZrWjBKc1FV?= =?utf-8?B?ZDNRV0pCUW1aQlNFRkJZMmRDZGtGSGIwRmFVVUpxUVVoUlFWaDNRblZCUjBW?= =?utf-8?B?QllsRkNiRUZJVFVGWWQwSnFRVWM0UVdKblFtMUJSMnRCV2tGQ2JFRkhORUZr?= =?utf-8?B?UVVKd1FVZEZRV0pCUW1aQlJ6QkJXVkZDZVVGSVdVRmFVVUp6UVVkM1FWaDNR?= =?utf-8?B?blpCU0VsQldIZENia0ZIT0VGaWQwSnVRVWQzUVZwUlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUpCUVVGQlFVRkJRVUZCU1VGQlFVRkJRVW8wUVVGQlFuUkJSMFZC?= =?utf-8?B?WTJkQ01rRkhWVUZpUVVKelFVWTRRV05CUW5sQlJ6aEJZV2RDYkVGSFRVRmtR?= =?utf-8?B?VUptUVVjMFFWbFJRblJCUjFWQlkzZENaa0ZJU1VGYVVVSjZRVWhSUVdOblFu?= =?utf-8?B?QkJSMDFCWkVGQ2JFRkhVVUZZZDBKMFFVZEZRV05uUWpKQlIxVkJZa0ZDYzBG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVGQlFXZEJRVUZCUVVGdVow?= =?utf-8?B?RkJRVWN3UVZsUlFubEJTRmxCV2xGQ2MwRkhkMEZZZDBKM1FVaEpRV0ozUW5G?= =?utf-8?B?QlIxVkJXWGRDTUVGR09FRmlaMEpvUVVjd1FWcFJRbnBCUmpoQlkyZENiRUZJ?= =?utf-8?B?VFVGa1FVSjVRVWRyUVZsM1FqQkJSMVZCV2tGQ1prRkhNRUZaVVVKNVFVaFpR?= =?utf-8?B?VnBSUW5OQlIzZEJXSGRDZGtGSVNVRllkMEpvUVVoSlFXSlJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJVVUZCUVVGQlFVRkJRVU5C?= =?utf-8?B?UVVGQlFVRkRaVUZCUVVGaVVVSm9RVWhKUVdSblFteEJSM2RCWWtGQ1prRklV?= =?utf-8?B?VUZhVVVKNVFVY3dRV0ZSUW5WQlNGVkJZM2RCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUWtGQlFV?= =?utf-8?B?RkJRVUZCUVVGSlFVRkJRVUZCU2pSQlFVRkNkRUZIUlVGalowSXlRVWRWUVdK?= =?utf-8?B?QlFuTkJSamhCWkhkQ2RrRklTVUZhUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVVkJRVUZCUVVGQlFVRkJaMEZCUVVGQlFVOW5XVUZCUVVGQlFVRkJT?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZuUVVGQlFVRkJRVUZCUTBGQlFVRkJRVUZCUVVGaFFt?= =?utf-8?Q?dBQUdR?= x-dg-reffive: =?utf-8?B?UVVGQlFtZEJRVUZCUVVGQlFVRlpVVUpyUVVkUlFXTm5RbXhCU0UxQlkzZEJR?= =?utf-8?B?VUZEVVVGQlFVRkJRVUZCUVZsM1FqRkJTRTFCWkVGQ2RrRkhNRUZZZDBKM1FV?= =?utf-8?B?ZFZRV05uUW5wQlJ6aEJZbWRCUVVGRE5FRkJRVUZCUVVGQlFWbDNRakZCU0Ux?= =?utf-8?B?QlpFRkNka0ZITUVGWWQwSjNRVWRuUVdKM1FuVkJSMVZCWW1kQ01VRkhNRUZa?= =?utf-8?B?WjBKc1FVaEpRVUZCUVhkQlFVRkJRVUZCUVVGSFRVRmtVVUo2UVVoUlFXSjNR?= =?utf-8?B?blJCUmpoQlkzZENla0ZITkVGWWQwSnJRVWRGUVdOM1FtOUJSamhCWkdkQmQw?= =?utf-8?B?RkVTVUZCUVVGM1FVRkJRVUZCUVVGQlIwMUJaRkZDZWtGSVVVRmlkMEowUVVZ?= =?utf-8?B?NFFXTjNRbnBCUnpSQldIZENja0ZIVlVGbFVVSXpRVWM0UVdOblFtdEJTRTFC?= =?utf-8?B?UVVGQkswRkJRVUZCUVVGQlFVZE5RV1JSUW5wQlNGRkJZbmRDZEVGR09FRmpk?= =?utf-8?B?MEo2UVVjMFFWaDNRblZCUnpoQldrRkNiRUZIZDBGaFVVSjBRVWRyUVdSQlFt?= =?utf-8?B?eEJTRWxCV0hkQ01rRkVRVUZOWjBGQlFVUkpRVUZCUVVGQlFVRkJXWGRDTVVG?= =?utf-8?B?SVRVRmtRVUoyUVVjd1FWaDNRbnBCU0UxQlltZENaa0ZJVFVGalFVSm9RVWRO?= =?utf-8?B?UVZwUlFtWkJTRmxCVFVGQmVVRkJRVUZRWjBGQlFVRkJRVUZCUW10QlIzZEJZ?= =?utf-8?B?MEZDWmtGSVRVRmhkMEkxUVVoQlFWcFJRbVpCUjAxQllVRkNhRUZJVVVGWWQw?= =?utf-8?B?SjBRVWRWUVdOM1FucEJSMFZCV25kQ2JFRkdPRUZrWjBGM1FVUkpRVUZCUVRK?= =?utf-8?B?QlFVRkJRVUZCUVVGSFVVRmlRVUozUVVZNFFXTjNRbk5CUjBWQldYZENja0ZH?= =?utf-8?B?T0VGWmQwSnZRVWRGUVdSQlFtWkJSekJCV2xGQ2VrRklUVUZaVVVKdVFVZFZR?= =?utf-8?B?VUZCUVRSQlFVRkJRVUZCUVVGSFVVRmlRVUozUVVZNFFXUkJRbXhCUjBWQlls?= =?utf-8?B?RkNla0ZHT0VGaWQwSjFRVWRWUVZwQlFubEJSMnRCWkdkQ2JFRkdPRUZhWjBK?= =?utf-8?B?d1FVZDNRVnBSUVVGQlExRkJRVUZCUTBGQlFVRmFVVUowUVVkRlFXRlJRbk5C?= =?utf-8?B?UmpoQldWRkNhMEZIVVVGalowSnNRVWhOUVdOM1FVRkJSbWRCUVVGQlFVRkJR?= =?utf-8?B?VUZpVVVKb1FVaEpRV1JuUW14QlIzZEJXSGRDZDBGSVNVRmlkMEp4UVVkVlFW?= =?utf-8?B?bDNRakJCUmpoQlltZENhRUZITUVGYVVVSjZRVVk0UVZsM1FuWkJSelJCV21k?= =?utf-8?B?Q2NFRkhVVUZhVVVKMVFVaFJRV0ZSUW1oQlIzZEJXSGRDYUVGSGQwRmlkMEox?= =?utf-8?B?UVVkVlFVRkJRbFZCUVVGQlFVRkJRVUZITUVGWlVVSjVRVWhaUVZwUlFuTkJS?= =?utf-8?B?amhCWTBGQ2VVRkhPRUZoWjBKc1FVZE5RV1JCUW1aQlJ6UkJXVkZDZEVGSFZV?= =?utf-8?B?RmpkMEptUVVoSlFWcFJRbnBCU0ZGQlkyZENjRUZIVFVGa1FVSnNRVWRSUVZo?= =?utf-8?B?M1FtaEJSM2RCWW5kQ2RVRkhWVUZCUVVKaFFVRkJRVUZCUVVGQlJ6QkJXVkZD?= =?utf-8?B?ZVVGSVdVRmFVVUp6UVVZNFFXTkJRbmxCUnpoQllXZENiRUZIVFVGa1FVSm1R?= =?utf-8?B?VWMwUVZsUlFuUkJSMVZCWTNkQ1prRklTVUZhVVVKNlFVaFJRV05uUW5CQlIw?= =?utf-8?B?MUJaRUZDYkVGSFVVRllkMEp2UVVkVlFXVkJRbXBCUnpoQldrRkNiRUZJVFVG?= =?utf-8?B?QlFVRm5RVUZCUVVGQlFVRkJSekJCV1ZGQ2VVRklXVUZhVVVKelFVZDNRVmgz?= =?utf-8?B?UW1oQlNFbEJZbEZCUVVGRFdVRkJRVUZCUVVGQlFXSlJRbWhCU0VsQlpHZENi?= =?utf-8?B?RUZIZDBGaVFVSm1RVWRqUVdKM1FuWkJSMk5CWWtGQ2JFRkJRVUZPUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refsix: =?utf-8?B?UW5SQlIwVkJZMmRDTWtGSFZVRmlRVUp6UVVZNFFXTkJRbmxCUnpoQllXZENi?= =?utf-8?B?RUZIVFVGa1FVSm1RVWROUVdKM1FtdEJSMVZCWTNkQlFVRkVORUZCUVVGQlFV?= =?utf-8?B?RkJRV0pSUW1oQlNFbEJaR2RDYkVGSGQwRmlRVUptUVVoQlFXTm5RblpCUjI5?= =?utf-8?B?QldsRkNha0ZJVVVGWWQwSnFRVWM0UVZwQlFteEJTRTFCV0hkQ2EwRkhhMEZa?= =?utf-8?B?ZDBJd1FVRkJRVmhuUVVGQlFVRkJRVUZDZEVGSFJVRmpaMEl5UVVkVlFXSkJR?= =?utf-8?B?bk5CUmpoQlkwRkNlVUZIT0VGaFowSnNRVWROUVdSQlFtWkJSelJCV1ZGQ2RF?= =?utf-8?B?RkhWVUZqZDBKbVFVZE5RV0ozUW5WQlIxbEJZVkZDYTBGSFZVRmlaMEl3UVVk?= =?utf-8?B?clFWbFJRbk5CUmpoQllsRkNhRUZJU1VGa1owSnNRVWQzUVdKQlFVRkJSM2RC?= =?utf-8?B?UVVGQlFVRkJRVUZpVVVKb1FVaEpRV1JuUW14QlIzZEJZa0ZDWmtGSVFVRmpa?= =?utf-8?B?MEoyUVVkdlFWcFJRbXBCU0ZGQldIZENkVUZIUlVGaVVVSnNRVWhOUVZoM1Ft?= =?utf-8?B?cEJSemhCWW1kQ2JVRkhhMEZhUVVKc1FVYzBRV1JCUW5CQlIwVkJZa0ZDWmtG?= =?utf-8?B?SE1FRlpVVUo1UVVoWlFWcFJRbk5CUjNkQldIZENka0ZJU1VGWWQwSm9RVWhK?= =?utf-8?B?UVdKUlFVRkJTRWxCUVVGQlFVRkJRVUZpVVVKb1FVaEpRV1JuUW14QlIzZEJZ?= =?utf-8?B?a0ZDWmtGSVFVRmpaMEoyUVVkdlFWcFJRbXBCU0ZGQldIZENkVUZIUlVGaVVV?= =?utf-8?B?SnNRVWhOUVZoM1FtcEJSemhCWW1kQ2JVRkhhMEZhUVVKc1FVYzBRV1JCUW5C?= =?utf-8?B?QlIwVkJZa0ZDWmtGSE1FRlpVVUo1UVVoWlFWcFJRbk5CUjNkQldIZENka0ZJ?= =?utf-8?B?U1VGWWQwSnVRVWM0UVdKM1FtNUJSM2RCV2xGQlFVRkdiMEZCUVVGQlFVRkJR?= =?utf-8?B?V0pSUW1oQlNFbEJaR2RDYkVGSGQwRmlRVUptUVVoQlFXTm5RblpCUjI5Qlds?= =?utf-8?B?RkNha0ZJVVVGWWQwSjFRVWRGUVdKUlFteEJTRTFCV0hkQ2VVRkhWVUZqZDBJ?= =?utf-8?B?d1FVaEpRV0ZSUW1wQlNGRkJXbEZDYTBGR09FRmlVVUpvUVVoSlFXUm5RbXhC?= =?utf-8?B?UjNkQllrRkJRVUZIWjBGQlFVRkJRVUZCUVdKUlFtaEJTRWxCWkdkQ2JFRkhk?= =?utf-8?B?MEZpUVVKbVFVaEJRV05uUW5aQlIyOUJXbEZDYWtGSVVVRllkMEoxUVVkRlFX?= =?utf-8?B?SlJRbXhCU0UxQldIZENlVUZIVlVGamQwSXdRVWhKUVdGUlFtcEJTRkZCV2xG?= =?utf-8?B?Q2EwRkdPRUZpVVVKb1FVaEpRV1JuUW14QlIzZEJZa0ZDWmtGSE9FRmpaMEpt?= =?utf-8?B?UVVkRlFXTm5RblJCUVVGQlMyZEJRVUZCUVVGQlFVSjBRVWRGUVdOblFqSkJS?= =?utf-8?B?MVZCWWtGQ2MwRkdPRUZrUVVKc1FVaEpRV0pSUW5CQlJ6UkJaRkZDZWtGQlFV?= =?utf-8?B?RkpaMEZCUVVGQlFVRkJRblJCUjBWQlkyZENNa0ZIVlVGaVFVSnpRVVk0UVdS?= =?utf-8?Q?3QnZBSElBWkFBQUFBPT0iLz48L21ldGE+?= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR18MB4714:EE_|DM4PR18MB5473:EE_ x-ms-office365-filtering-correlation-id: 6b751ae8-f8b6-4105-076d-08dbe42ab5b4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: isMNsE/G8pF5ml7IKFdypA2fe9k1Iu7S5AfAbaqPQSM3OSc961aD0pUz3MA88UkPzSAwFKzC9V56yfIpLqE7AgjICNOVaotZjGEWnA8oq4KKNbRYTcfrkgladuw/dBeYlzyLYgJfKktOY1YKIVwFLheEI2TccN0aqS80IszySSkubd6ZW23bWGphWqMXY6g73SH3ViejidKJjKe8M/9qVW4Ya70zdA6YWPWxa5K/fE5ZrJh6V/FyUiPADYl3jws5qJt48aY6qfd9vQ3+2xssOIG1A4XWYZ3+m/sPohCIBEvhxgOBCmrVefztHfRVanKOhrAj0wVNRifRIf6kNacqXWmPDBQ7oXFFfUi1a1JSXf0R+viT8SXVOsJtdw4EFhrIJgvF7MX0h4jJlvpjZOLEPEUF4l37wbS9gNVYTtPcNZfQ2i8h/XskGrG2ha0+nKlqc7jP33H+C8JwKeJpuZVWKzZedjGTmGcyBqjLhA7eudT0gkIV/mpoi7QNcEYDQHyGB0Rhm98e8pYLHruKFbJJJDJTx2F/MkSHxyjUrkX4VXJvec4G5Mv5WRO8+VcA0Cw++twwmlwhj4oKKO1EtygxL/xiZTVHx0uN59uY8xRFpL4+svjIrYfe7SkoDMm0a/V9 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR18MB4714.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(346002)(366004)(396003)(136003)(376002)(39860400002)(230922051799003)(186009)(1800799009)(451199024)(64100799003)(55016003)(38070700009)(41300700001)(8936002)(26005)(30864003)(2906002)(6506007)(53546011)(7696005)(9686003)(8676002)(83380400001)(71200400001)(4326008)(38100700002)(54906003)(478600001)(66946007)(66556008)(66476007)(66446008)(122000001)(64756008)(5660300002)(52536014)(110136005)(33656002)(76116006)(86362001)(316002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WVNidXB0Yy93UzJaanoxbXJtNmsvUWpuSE5ENThvNFhQZk9KVE04VkRaNW91?= =?utf-8?B?OGc4dnR4andQdXpJeG1DakhvZ05xdmRrbUMwTzZ3bU5ENUJHMGlOeUFINGJ6?= =?utf-8?B?R204WnhFZmU5anN1U0R1cWV1ZzZtcExGS0d6OHd2MUNqRjhOMDdId0NFWFNm?= =?utf-8?B?MXpqckFjTEQzZ2FGaW0vcUYyTzkvd0FTWlIrZDdTK2lBRzArZTg3SW1CNzZh?= =?utf-8?B?ekRLdGp2Y2ZtdmRVaXlmNXAwSkdBTklSMDBGN0FqMU5rYVpNZ0tsZVJSK3Jw?= =?utf-8?B?MEpFR2Q0dzJGNGg1djNSeU1BRDlIMHdCYUhPUWJwV2l1RW5uZlVuWUtScllV?= =?utf-8?B?NUVobVdQc1NzU2IyS0RrVklDSFlhYVNPeFdPK2JoTjJQWEt0b2JyM3RIYnVk?= =?utf-8?B?TytTNjdUbzJMQnArNXVEMCtmTHpwMTVsclR4MWF5Um9vek5BWDhPb0lsaGJQ?= =?utf-8?B?WWZsZUdxSzhndG11TWkyL1JyS3FSRHllY0RWZWIwb0JFdXpQeS83dElvUFlq?= =?utf-8?B?Wll0K3N2WU9OM1RXN3M1MmZ3ZkhIaGRlMGtIaDNNR1AvR04yWlRaUnhqU2hh?= =?utf-8?B?d1JKRUdWSHVpbmRSVEpSZERzTE96RWVQeXpXUTdBUVA0TzBmQmpINlZUTWZP?= =?utf-8?B?YitNMFhzQ3Z3R3RKRlVKYVB4ZEF0S0Fadjl0ak1ZRWNXV3RGOGRXL3Q5VmNx?= =?utf-8?B?NXRHMW1jbXJremhnQjd5VEhJNVNBVWxTMmRTOGNiTXpaOGR6Q1BBdWkzRzZm?= =?utf-8?B?RUVRTjNaMlkzRC9MazFaUXl2NVZXRUU4dnp2NXJ5ZkZqSVR6b0NkRDlVaFVr?= =?utf-8?B?QitndHY4TXNNNkdMMmNqd25yQ1dad2d4R1V1Sy9lZHA1R2xoUjZqZzJ0Nkda?= =?utf-8?B?ZUVReXVESWhkWnRaVklmWGxXM1pQR1NyQ1I0OXB3YjM2N1NWcGl3TmlsTUVa?= =?utf-8?B?Uy9kZG92ZjdFemZKUVVJc2U5RlBCaFE4QVQ5aFN2YnNPV3dLRXNybE9qL0k4?= =?utf-8?B?N0tmQms0WUZMWkhSV3htUVd4eElKZ29sNU5kVFNTaDlNOHAyQzBEbjArWUNo?= =?utf-8?B?SHJ0elFjSGVxSENpRnQzM3pxSDZ2S0RYUmZSWjNYL01CM0JZeW96SjRrQ29G?= =?utf-8?B?ajRwdmtBZzloc2piMSthNWFDZCtvOG1Od21MazMxcWpVMHhhQnFaS3l1bHg1?= =?utf-8?B?V0tWWXgwOVNrZmEvWDROME9McWR3eFZ4L2hyc3o4Q3l3RUtBY2hYY0tEZWRH?= =?utf-8?B?YUozWmVvSFVjMy8yUlBMK2ovTW5CRzJ1ZDBQdDR4NUxOQU1vNVhjYmdDNzZB?= =?utf-8?B?N2RVQktmZ2s1d2hzb0c2ZS82bm94NVNiK2F6SEdzVkRXMGJsT09QdzhxTXM1?= =?utf-8?B?SGkyTnVWaFk4Yy9mNFRSeEdxbUJ4eUEvaEhqTFB3YnVGdU1SKzR3ZktMdVlS?= =?utf-8?B?cVU4SFE1eUxzNU9LTXppcGU2Mm9uZmVBeVdrVTJpbWZMM2RnenliVUkwOFBV?= =?utf-8?B?ZXY1UWlnRy94NnZ0MURQaUU3SVZCb3IyMnJMLzRBeFFUaVZTcTNoSzJxOXUx?= =?utf-8?B?ek5Qb2RxcllGdW9WZE9RV2NlR3RSdU5VSWFsS1pFa2dkNUQyN3VBT0wxSE51?= =?utf-8?B?eWo0bXJ2bUtxOWpoSEVZM2o3NEQyazcyU0dydm9XZVpuZXFOdjQ2WmM0c2Qx?= =?utf-8?B?Q0g4bWJOS2tDYzhiOVptRWk2b3hzSkpsWWNKRmZSR25DS3FJVVFXa2pNLzZT?= =?utf-8?B?bnA2eHZrYmVUOUNkcGxwQ05CWUI1eEdWZCtjUHZPcmdjbTJmRURCVEZSMjNL?= =?utf-8?B?cDlPaEk5YlFGMjVRWFVtOGF1a3czdE5YRTVGM3NzeHdDQXZkcmZkNHBUOVR6?= =?utf-8?B?UCs4QXpnMXBsWTlYSmtxMFRkMEJkNlVTL1orV2JrSzV0aG9naHhTWWVJTnV6?= =?utf-8?B?aVd4cTZpZHE1dG4vR29nZVJ5SEtxY01BR0dKdlgzVnd5SktIaFBCQkdhb2Jh?= =?utf-8?B?L3dkNit1SXlnbWlvVWZib3FvbGtXdnBvZ1kwTWg0eXBPWER1U2pCcjlBWjR5?= =?utf-8?B?bzFSQk52bGlPczVJZjMwSVl3VDVqMCsySVkveWVGWTNtWjBlY25sc3RXY244?= =?utf-8?Q?DzPjzIMWHa31dgqDnMPmZOMZJ?= 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: CO1PR18MB4714.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b751ae8-f8b6-4105-076d-08dbe42ab5b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2023 09:27:09.1003 (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: Zk6X/nVERxVIn/77GWl1gK6KmaKx9pvC2D8rVurv4V+UjFLotKARVJDddQ/FKqbtqcAJTv6tlH8UEmel3K+TT+KguB8C0bEj2bsf7CXoO80= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR18MB5473 X-Proofpoint-ORIG-GUID: CmfNLA6oaLpqJT75oF8hHIcbUZf1YaZ9 X-Proofpoint-GUID: CmfNLA6oaLpqJT75oF8hHIcbUZf1YaZ9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-12_24,2023-11-09_01,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 SGkgRmVuZ2NoZW5nd2VuLA0KDQo+IA0KPiBPbiAyMDIzLzExLzMgMjM6MzgsIEdvd3Jpc2hhbmth ciBNdXRodWtyaXNobmFuIHdyb3RlOg0KPiA+IEFkZCBzY2F0dGVyLWdhdGhlciBjb3B5IHRlc3Rz Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogVmlkeWEgU2FnYXIgVmVsdW11cmkgPHZ2ZWx1bXVy aUBtYXJ2ZWxsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBHb3dyaXNoYW5rYXIgTXV0aHVrcmlz aG5hbiA8Z211dGh1a3Jpc2huQG1hcnZlbGwuY29tPg0KPiA+IC0tLQ0KPiA+ICBhcHAvdGVzdC90 ZXN0X2RtYWRldi5jICAgICB8IDEzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4g PiAgYXBwL3Rlc3QvdGVzdF9kbWFkZXZfYXBpLmMgfCAxNjMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0NCj4gLS0NCj4gPiAgYXBwL3Rlc3QvdGVzdF9kbWFkZXZfYXBpLmggfCAg IDIgKw0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDI4MyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlv bnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC90ZXN0X2RtYWRldi5jIGIvYXBw L3Rlc3QvdGVzdF9kbWFkZXYuYyBpbmRleA0KPiA+IDc4MDk0MWZjMWUuLmEyZjNhN2Y5OTkgMTAw NjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QvdGVzdF9kbWFkZXYuYw0KPiA+ICsrKyBiL2FwcC90ZXN0 L3Rlc3RfZG1hZGV2LmMNCj4gPiBAQCAtMTksNyArMTksNyBAQA0KPiA+ICAjZGVmaW5lIEVSUl9S RVRVUk4oLi4uKSBkbyB7IHByaW50X2VycihfX2Z1bmNfXywgX19MSU5FX18sDQo+ID4gX19WQV9B UkdTX18pOyByZXR1cm4gLTE7IH0gd2hpbGUgKDApDQo+ID4NCj4gPiAgI2RlZmluZSBURVNUX1JJ TkdTSVpFIDUxMg0KPiA+IC0jZGVmaW5lIENPUFlfTEVOIDEwMjQNCj4gPiArI2RlZmluZSBDT1BZ X0xFTiAxMDMyDQo+IA0KPiBUaGUgdGVzdCBNQVhfU0dfTlVNIGlzIGxpbWl0IDQsIHNvIGl0IGNv dWxkIGJlIDEvMi8zLzQgc2VnbWVudCwgYW5kIDEwMzIgY2FuDQo+IGJvdGggZGl2IDEvMi8zLzQs IGJ1dCAxMDI0IGNvdWxkbid0DQo+IA0KPiBJIHRoaW5rIHRoaXMgaXMgd2h5IGNoYW5nZSAxMDI0 LT4xMDMyLg0KPiBTdWdnZXN0IGFkZCBzb21lIGNvbW1lbnQgYWJvdXQgaXQuDQo+DQoNClRoaXMg Y2hhbmdlIGlzIG5vdCByZXF1aXJlZCBhZnRlciBub3JtYWxpemF0aW9uIGFzIGRvbmUgaW4gbmV4 dCBwYXRjaC4NCiANCj4gPg0KPiA+ICBzdGF0aWMgc3RydWN0IHJ0ZV9tZW1wb29sICpwb29sOw0K PiA+ICBzdGF0aWMgaW50MTZfdCB0ZXN0X2Rldl9pZDsNCj4gPiBAQCAtMzk2LDYgKzM5NiwxMjAg QEAgdGVzdF9zdG9wX3N0YXJ0KGludDE2X3QgZGV2X2lkLCB1aW50MTZfdCB2Y2hhbikNCj4gPiAg CXJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiArc3RhdGljIGludA0KPiA+ICt0ZXN0X2VucXVl dWVfc2dfY29waWVzKGludDE2X3QgZGV2X2lkLCB1aW50MTZfdCB2Y2hhbikgew0KPiA+ICsJdW5z aWduZWQgaW50IHNyY19sZW4sIGRzdF9sZW4sIG5fc2dlLCBsZW4sIGksIGosIGs7DQo+ID4gKwlj aGFyIG9yaWdfc3JjW0NPUFlfTEVOXSwgb3JpZ19kc3RbQ09QWV9MRU5dOw0KPiA+ICsJc3RydWN0 IHJ0ZV9kbWFfaW5mbyBpbmZvID0geyAwIH07DQo+ID4gKwllbnVtIHJ0ZV9kbWFfc3RhdHVzX2Nv ZGUgc3RhdHVzOw0KPiA+ICsJdWludDE2X3QgaWQsIG5fc3JjLCBuX2RzdDsNCj4gPiArDQo+ID4g KwlpZiAocnRlX2RtYV9pbmZvX2dldChkZXZfaWQsICZpbmZvKSA8IDApDQo+ID4gKwkJRVJSX1JF VFVSTigiRmFpbGVkIHRvIGdldCBkZXYgaW5mbyIpOw0KPiA+ICsNCj4gPiArCW5fc2dlID0gUlRF X01JTihpbmZvLm1heF9zZ2VzLCBURVNUX1NHX01BWCk7DQo+ID4gKwlsZW4gPSBDT1BZX0xFTjsN Cj4gPiArDQo+ID4gKwlmb3IgKG5fc3JjID0gMTsgbl9zcmMgPD0gbl9zZ2U7IG5fc3JjKyspIHsN Cj4gPiArCQlzcmNfbGVuID0gbGVuIC8gbl9zcmM7DQo+ID4gKwkJZm9yIChuX2RzdCA9IDE7IG5f ZHN0IDw9IG5fc2dlOyBuX2RzdCsrKSB7DQo+ID4gKwkJCWRzdF9sZW4gPSBsZW4gLyBuX2RzdDsN Cj4gDQo+IElmIHRoZSBsZW4gJSBbMX5uX2RzdF0gbm90IHplcm8sIGhvdyB0byBwcm9jZXNzIGl0 ID8NCj4gDQo+IEkgc2VlLCBpdCB3YXMgZW5zdXJlZCBieSBhZGp1c3QgY29weV9sZW4gdmFsdWUu IFN1Z2dlc3QgYWRkIGNvbW1lbnRzIGZvciBpdC4NCj4gDQo+IEFsc28gc3VnZ2VzdCBleHRyYSBh Ym92ZSB0byBvbmUgZnVuY3Rpb24uDQoNCkkgaGF2ZSBhZGRlZCBtaW5vciBmaXggaGVyZSB0byBu b3JtYWxpemUgYnVmZmVyIGxlbmd0aHMuIFBsZWFzZSBjaGVjayBpbiBuZXh0IHBhdGNoIHZlcnNp b24uDQo+IA0KPiA+ICsNCj4gPiArCQkJc3RydWN0IHJ0ZV9kbWFfc2dlIHNnX3NyY1tuX3NnZV0s IHNnX2RzdFtuX3NnZV07DQo+ID4gKwkJCXN0cnVjdCBydGVfbWJ1ZiAqc3JjW25fc2dlXSwgKmRz dFtuX3NnZV07DQo+ID4gKwkJCWNoYXIgKnNyY19kYXRhW25fc2dlXSwgKmRzdF9kYXRhW25fc2dl XTsNCj4gPiArDQo+ID4gKwkJCWZvciAoaSA9IDAgOyBpIDwgQ09QWV9MRU47IGkrKykNCj4gPiAr CQkJCW9yaWdfc3JjW2ldID0gcnRlX3JhbmQoKSAmIDB4RkY7DQo+ID4gKw0KPiA+ICsJCQltZW1z ZXQob3JpZ19kc3QsIDAsIENPUFlfTEVOKTsNCj4gPiArDQo+ID4gKwkJCWZvciAoaSA9IDA7IGkg PCBuX3NyYzsgaSsrKSB7DQo+ID4gKwkJCQlzcmNbaV0gPSBydGVfcGt0bWJ1Zl9hbGxvYyhwb29s KTsNCj4gPiArCQkJCVJURV9BU1NFUlQoc3JjW2ldICE9IE5VTEwpOw0KPiA+ICsJCQkJc2dfc3Jj W2ldLmFkZHIgPSBydGVfcGt0bWJ1Zl9pb3ZhKHNyY1tpXSk7DQo+ID4gKwkJCQlzZ19zcmNbaV0u bGVuZ3RoID0gc3JjX2xlbjsNCj4gPiArCQkJCXNyY19kYXRhW2ldID0gcnRlX3BrdG1idWZfbXRv ZChzcmNbaV0sIGNoYXIgKik7DQo+ID4gKwkJCX0NCj4gPiArDQo+ID4gKwkJCWZvciAoayA9IDA7 IGsgPCBuX2RzdDsgaysrKSB7DQo+ID4gKwkJCQlkc3Rba10gPSBydGVfcGt0bWJ1Zl9hbGxvYyhw b29sKTsNCj4gPiArCQkJCVJURV9BU1NFUlQoZHN0W2tdICE9IE5VTEwpOw0KPiA+ICsJCQkJc2df ZHN0W2tdLmFkZHIgPSBydGVfcGt0bWJ1Zl9pb3ZhKGRzdFtrXSk7DQo+ID4gKwkJCQlzZ19kc3Rb a10ubGVuZ3RoID0gZHN0X2xlbjsNCj4gPiArCQkJCWRzdF9kYXRhW2tdID0gcnRlX3BrdG1idWZf bXRvZChkc3Rba10sIGNoYXINCj4gKik7DQo+ID4gKwkJCX0NCj4gPiArDQo+ID4gKwkJCWZvciAo aSA9IDA7IGkgPCBuX3NyYzsgaSsrKSB7DQo+ID4gKwkJCQlmb3IgKGogPSAwOyBqIDwgc3JjX2xl bjsgaisrKQ0KPiA+ICsJCQkJCXNyY19kYXRhW2ldW2pdID0gb3JpZ19zcmNbaSAqIHNyY19sZW4g KyBqXTsNCj4gPiArCQkJfQ0KPiA+ICsNCj4gPiArCQkJZm9yIChrID0gMDsgayA8IG5fZHN0OyBr KyspDQo+ID4gKwkJCQltZW1zZXQoZHN0X2RhdGFba10sIDAsIGRzdF9sZW4pOw0KPiA+ICsNCj4g PiArCQkJcHJpbnRmKCJcdHNyYyBzZWdzOiAlMmQgW3NlZyBsZW46ICU0ZF0gLSBkc3Qgc2Vnczog JTJkDQo+IFtzZWcgbGVuIDogJTRkXVxuIiwNCj4gPiArCQkJCW5fc3JjLCBzcmNfbGVuLCBuX2Rz dCwgZHN0X2xlbik7DQo+ID4gKw0KPiA+ICsJCQlpZCA9IHJ0ZV9kbWFfY29weV9zZyhkZXZfaWQs IHZjaGFuLCBzZ19zcmMsIHNnX2RzdCwNCj4gbl9zcmMsIG5fZHN0LA0KPiA+ICsJCQkJCSAgICAg UlRFX0RNQV9PUF9GTEFHX1NVQk1JVCk7DQo+ID4gKw0KPiA+ICsJCQlpZiAoaWQgIT0gaWRfY291 bnQpDQo+ID4gKwkJCQlFUlJfUkVUVVJOKCJFcnJvciB3aXRoIHJ0ZV9kbWFfY29weV9zZywNCj4g Z290ICV1LCBleHBlY3RlZCAldVxuIiwNCj4gPiArCQkJCQlpZCwgaWRfY291bnQpOw0KPiA+ICsN Cj4gPiArCQkJLyogR2l2ZSB0aW1lIGZvciBjb3B5IHRvIGZpbmlzaCwgdGhlbiBjaGVjayBpdCB3 YXMgZG9uZQ0KPiAqLw0KPiA+ICsJCQlhd2FpdF9odyhkZXZfaWQsIHZjaGFuKTsNCj4gPiArDQo+ ID4gKwkJCWZvciAoayA9IDA7IGsgPCBuX2RzdDsgaysrKQ0KPiA+ICsJCQkJbWVtY3B5KCgmb3Jp Z19kc3RbMF0gKyBrICogZHN0X2xlbiksDQo+IGRzdF9kYXRhW2tdLCBkc3RfbGVuKTsNCj4gPiAr DQo+ID4gKwkJCWlmIChtZW1jbXAob3JpZ19zcmMsIG9yaWdfZHN0LCBDT1BZX0xFTikpDQo+ID4g KwkJCQlFUlJfUkVUVVJOKCJEYXRhIG1pc21hdGNoIik7DQo+ID4gKw0KPiA+ICsJCQkvKiBWZXJp ZnkgY29tcGxldGlvbiAqLw0KPiA+ICsJCQlpZCA9IH5pZDsNCj4gPiArCQkJaWYgKHJ0ZV9kbWFf Y29tcGxldGVkKGRldl9pZCwgdmNoYW4sIDEsICZpZCwgTlVMTCkgIT0NCj4gMSkNCj4gPiArCQkJ CUVSUl9SRVRVUk4oIkVycm9yIHdpdGgNCj4gcnRlX2RtYV9jb21wbGV0ZWRcbiIpOw0KPiA+ICsN Cj4gPiArCQkJLyogVmVyaWZ5IGV4cGVjdGVkIGluZGV4KGlkX2NvdW50KSAqLw0KPiA+ICsJCQlp ZiAoaWQgIT0gaWRfY291bnQpDQo+ID4gKwkJCQlFUlJfUkVUVVJOKCJFcnJvcjppbmNvcnJlY3Qg am9iIGlkIHJlY2VpdmVkLA0KPiAldSBbZXhwZWN0ZWQgJXVdXG4iLA0KPiA+ICsJCQkJCQlpZCwg aWRfY291bnQpOw0KPiA+ICsNCj4gPiArCQkJLyogQ2hlY2sgZm9yIGNvbXBsZXRlZCBhbmQgaWQg d2hlbiBubyBqb2IgZG9uZSAqLw0KPiA+ICsJCQlpZCA9IH5pZDsNCj4gPiArCQkJaWYgKHJ0ZV9k bWFfY29tcGxldGVkKGRldl9pZCwgdmNoYW4sIDEsICZpZCwgTlVMTCkgIT0NCj4gMCkNCj4gPiAr CQkJCUVSUl9SRVRVUk4oIkVycm9yIHdpdGggcnRlX2RtYV9jb21wbGV0ZWQNCj4gd2hlbiBubyBq b2IgZG9uZVxuIik7DQo+ID4gKw0KPiA+ICsJCQlpZiAoaWQgIT0gaWRfY291bnQpDQo+ID4gKwkJ CQlFUlJfUkVUVVJOKCJFcnJvcjppbmNvcnJlY3Qgam9iIGlkIHJlY2VpdmVkDQo+IHdoZW4gbm8g am9iIGRvbmUsICV1IFtleHBlY3RlZCAldV1cbiIsDQo+ID4gKwkJCQkJICAgaWQsIGlkX2NvdW50 KTsNCj4gPiArDQo+ID4gKwkJCS8qIENoZWNrIGZvciBjb21wbGV0ZWRfc3RhdHVzIGFuZCBpZCB3 aGVuIG5vIGpvYiBkb25lDQo+ICovDQo+ID4gKwkJCWlkID0gfmlkOw0KPiA+ICsJCQlpZiAocnRl X2RtYV9jb21wbGV0ZWRfc3RhdHVzKGRldl9pZCwgdmNoYW4sIDEsICZpZCwNCj4gJnN0YXR1cykg IT0gMCkNCj4gPiArCQkJCUVSUl9SRVRVUk4oIkVycm9yIHdpdGgNCj4gcnRlX2RtYV9jb21wbGV0 ZWRfc3RhdHVzIHdoZW4gbm8gam9iIGRvbmVcbiIpOw0KPiA+ICsJCQlpZiAoaWQgIT0gaWRfY291 bnQpDQo+ID4gKwkJCQlFUlJfUkVUVVJOKCJFcnJvcjppbmNvcnJlY3Qgam9iIGlkIHJlY2VpdmVk DQo+IHdoZW4gbm8gam9iIGRvbmUsICV1IFtleHBlY3RlZCAldV1cbiIsDQo+ID4gKwkJCQkJCWlk LCAwKTsNCj4gPiArDQo+ID4gKwkJCWZvciAoaSA9IDA7IGkgPCBuX3NyYzsgaSsrKQ0KPiA+ICsJ CQkJcnRlX3BrdG1idWZfZnJlZShzcmNbaV0pOw0KPiA+ICsJCQlmb3IgKGkgPSAwOyBpIDwgbl9k c3Q7IGkrKykNCj4gPiArCQkJCXJ0ZV9wa3RtYnVmX2ZyZWUoZHN0W2ldKTsNCj4gPiArDQo+ID4g KwkJCS8qIFZlcmlmeSB0aGF0IGNvbXBsZXRpb24gcmV0dXJucyBub3RoaW5nIG1vcmUgKi8NCj4g PiArCQkJaWYgKHJ0ZV9kbWFfY29tcGxldGVkKGRldl9pZCwgMCwgMSwgTlVMTCwgTlVMTCkgIT0g MCkNCj4gPiArCQkJCUVSUl9SRVRVUk4oIkVycm9yIHdpdGggcnRlX2RtYV9jb21wbGV0ZWQNCj4g aW4gZW1wdHkgY2hlY2tcbiIpOw0KPiANCj4gYWxyZWFkeSB2ZXJpZnkgdGhpcywgbm8gbmVlZCBk byBtb3JlDQoNCkJ1dCB0aGlzIGlzIGFnYWluc3QgZW1wdHkgcGFyYW0gY2hlY2sgKGFzIGl0IGlz IGFsc28gZG9uZSBpbiBwbGFpbiBjb3B5IHRlc3QpLg0KDQo+IA0KPiA+ICsNCj4gPiArCQkJaWRf Y291bnQrKzsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiAgLyogRmFpbHVyZSBoYW5kbGluZyB0ZXN0IGNhc2VzIC0gZ2xvYmFsIG1hY3JvcyBh bmQgdmFyaWFibGVzIGZvciB0aG9zZSB0ZXN0cyovDQo+ID4gICNkZWZpbmUgQ09NUF9CVVJTVF9T WgkxNg0KPiA+ICAjZGVmaW5lIE9QVF9GRU5DRShpZHgpICgoZmVuY2UgJiYgaWR4ID09IDgpID8g UlRFX0RNQV9PUF9GTEFHX0ZFTkNFIDoNCj4gPiAwKSBAQCAtMTAwMyw3ICsxMTE3LDcgQEAgdGVz dF9kbWFkZXZfc2V0dXAodm9pZCkNCj4gPiAgCQkJVEVTVF9SSU5HU0laRSAqIDIsIC8qIG4gPT0g bnVtIGVsZW1lbnRzICovDQo+ID4gIAkJCTMyLCAgLyogY2FjaGUgc2l6ZSAqLw0KPiA+ICAJCQkw LCAgIC8qIHByaXYgc2l6ZSAqLw0KPiA+IC0JCQkyMDQ4LCAvKiBkYXRhIHJvb20gc2l6ZSAqLw0K PiA+ICsJCQlDT1BZX0xFTiArIFJURV9QS1RNQlVGX0hFQURST09NLCAvKiBkYXRhDQo+IHJvb20g c2l6ZSAqLw0KPiA+ICAJCQlpbmZvLm51bWFfbm9kZSk7DQo+ID4gIAlpZiAocG9vbCA9PSBOVUxM KQ0KPiA+ICAJCUVSUl9SRVRVUk4oIkVycm9yIHdpdGggbWVtcG9vbCBjcmVhdGlvblxuIik7IEBA IC0xMDI2LDYNCj4gKzExNDAsNyBAQA0KPiA+IHRlc3RfZG1hZGV2X2luc3RhbmNlKGludDE2X3Qg ZGV2X2lkKQ0KPiA+ICAjZGVmaW5lIENIRUNLX0VSUlMgICAgdHJ1ZQ0KPiA+ICAJZW51bSB7DQo+ ID4gIAkJICBURVNUX0NPUFkgPSAwLA0KPiA+ICsJCSAgVEVTVF9DT1BZX1NHLA0KPiA+ICAJCSAg VEVTVF9TVEFSVCwNCj4gPiAgCQkgIFRFU1RfQlVSU1QsDQo+ID4gIAkJICBURVNUX0VSUiwNCj4g PiBAQCAtMTA2MCw2ICsxMTc1LDEzIEBAIHRlc3RfZG1hZGV2X2luc3RhbmNlKGludDE2X3QgZGV2 X2lkKQ0KPiA+ICAJcGFyYW1bVEVTVF9DT1BZXS52Y2hhbiA9IHZjaGFuOw0KPiA+ICAJcGFyYW1b VEVTVF9DT1BZXS5jaGVja19lcnJfc3RhdHMgPSBDSEVDS19FUlJTOw0KPiA+DQo+ID4gKwlwYXJh bVtURVNUX0NPUFlfU0ddLnByaW50YWJsZSA9ICJjb3B5IjsNCj4gDQo+IHNob3VsZCBiZSBTRyBj b3B5Lg0KDQpBY2suDQo+IA0KPiA+ICsJcGFyYW1bVEVTVF9DT1BZX1NHXS50ZXN0X2ZuID0gdGVz dF9lbnF1ZXVlX3NnX2NvcGllczsNCj4gPiArCXBhcmFtW1RFU1RfQ09QWV9TR10uaXRlcmF0aW9u cyA9IDE7DQo+ID4gKwlwYXJhbVtURVNUX0NPUFlfU0ddLmRldl9pZCA9IGRldl9pZDsNCj4gPiAr CXBhcmFtW1RFU1RfQ09QWV9TR10udmNoYW4gPSB2Y2hhbjsNCj4gPiArCXBhcmFtW1RFU1RfQ09Q WV9TR10uY2hlY2tfZXJyX3N0YXRzID0gQ0hFQ0tfRVJSUzsNCj4gPiArDQo+ID4gIAlwYXJhbVtU RVNUX1NUQVJUXS5wcmludGFibGUgPSAic3RvcC1zdGFydCI7DQo+ID4gIAlwYXJhbVtURVNUX1NU QVJUXS50ZXN0X2ZuID0gdGVzdF9zdG9wX3N0YXJ0Ow0KPiA+ICAJcGFyYW1bVEVTVF9TVEFSVF0u aXRlcmF0aW9ucyA9IDE7DQo+ID4gQEAgLTExMjIsNiArMTI0NCwxMiBAQCB0ZXN0X2RtYWRldl9p bnN0YW5jZShpbnQxNl90IGRldl9pZCkNCj4gPiAgCS8qIHJ1biB0ZXN0cyBzdG9wcGluZy9zdGFy dGluZyBkZXZpY2VzIGFuZCBjaGVjayBqb2JzIHN0aWxsIHdvcmsgYWZ0ZXINCj4gcmVzdGFydCAq Lw0KPiA+ICAJdHMtPnVuaXRfdGVzdF9jYXNlc1tURVNUX1NUQVJUXS5lbmFibGVkID0gMTsNCj4g Pg0KPiA+ICsJLyogcnVuIFNHIHRlc3QgY2FzZXMgKi8NCj4gPiArCWlmICgoZGV2X2luZm8uZGV2 X2NhcGEgJiBSVEVfRE1BX0NBUEFfT1BTX0NPUFlfU0cpID09IDApDQo+ID4gKwkJcHJpbnRmKCJE TUEgRGV2ICV1OiBObyBTRyBzdXBwb3J0LCBza2lwcGluZyBTRyBjb3B5IHRlc3RzXG4iLA0KPiBk ZXZfaWQpOw0KPiA+ICsJZWxzZQ0KPiA+ICsJCXRzLT51bml0X3Rlc3RfY2FzZXNbVEVTVF9DT1BZ X1NHXS5lbmFibGVkID0gMTsNCj4gDQo+IHN1Z2dlc3Qgd3JhcCBpdCBhcyB0ZXN0X2RtYWRldl9z Z19jb3B5X3NldHVwLCBqdXN0IGxpa2UNCj4gdGVzdF9kbWFkZXZfYnVyc3Rfc2V0dXANCj4gDQo+ ID4gKw0KPiA+ICAJLyogcnVuIHNvbWUgYnVyc3QgY2FwYWNpdHkgdGVzdHMgKi8NCj4gPiAgCXRz LT51bml0X3Rlc3RfY2FzZXNbVEVTVF9CVVJTVF0uc2V0dXAgPSB0ZXN0X2RtYWRldl9idXJzdF9z ZXR1cDsNCj4gPiAgCXRzLT51bml0X3Rlc3RfY2FzZXNbVEVTVF9CVVJTVF0uZW5hYmxlZCA9IDE7 IGRpZmYgLS1naXQNCj4gPiBhL2FwcC90ZXN0L3Rlc3RfZG1hZGV2X2FwaS5jIGIvYXBwL3Rlc3Qv dGVzdF9kbWFkZXZfYXBpLmMgaW5kZXgNCj4gPiBhYTA3ZDJiMzU5Li4zN2U0M2M5MzM2IDEwMDY0 NA0KPiA+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfZG1hZGV2X2FwaS5jDQo+ID4gKysrIGIvYXBwL3Rl c3QvdGVzdF9kbWFkZXZfYXBpLmMNCj4gPiBAQCAtMTAsNiArMTAsNyBAQA0KPiA+ICAjaW5jbHVk ZSA8cnRlX2RtYWRldi5oPg0KPiA+DQo+ID4gICNpbmNsdWRlICJ0ZXN0LmgiDQo+ID4gKyNpbmNs dWRlICJ0ZXN0X2RtYWRldl9hcGkuaCINCj4gPg0KPiA+ICBleHRlcm4gaW50IHRlc3RfZG1hX2Fw aSh1aW50MTZfdCBkZXZfaWQpOw0KPiA+DQo+ID4gQEAgLTIxLDM2ICsyMiw2MiBAQCBzdGF0aWMg aW50MTZfdCBpbnZhbGlkX2Rldl9pZDsNCj4gPg0KPiA+ICBzdGF0aWMgY2hhciAqc3JjOw0KPiA+ ICBzdGF0aWMgY2hhciAqZHN0Ow0KPiA+ICtzdGF0aWMgY2hhciAqc3JjX3NnW1RFU1RfU0dfTUFY XTsNCj4gPiArc3RhdGljIGNoYXIgKmRzdF9zZ1tURVNUX1NHX01BWF07DQo+ID4NCj4gPiAgc3Rh dGljIGludA0KPiA+ICB0ZXN0c3VpdGVfc2V0dXAodm9pZCkNCj4gPiAgew0KPiA+ICAJaW52YWxp ZF9kZXZfaWQgPSAtMTsNCj4gPiAtDQo+ID4gLQlzcmMgPSBydGVfbWFsbG9jKCJkbWFkZXZfdGVz dF9zcmMiLCBURVNUX01FTUNQWV9TSVpFLCAwKTsNCj4gPiAtCWlmIChzcmMgPT0gTlVMTCkNCj4g PiAtCQlyZXR1cm4gLUVOT01FTTsNCj4gPiAtCWRzdCA9IHJ0ZV9tYWxsb2MoImRtYWRldl90ZXN0 X2RzdCIsIFRFU1RfTUVNQ1BZX1NJWkUsIDApOw0KPiA+IC0JaWYgKGRzdCA9PSBOVUxMKSB7DQo+ ID4gLQkJcnRlX2ZyZWUoc3JjKTsNCj4gPiAtCQlzcmMgPSBOVUxMOw0KPiA+IC0JCXJldHVybiAt RU5PTUVNOw0KPiA+ICsJaW50IGksIHJjID0gMDsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBp IDwgVEVTVF9TR19NQVg7IGkrKykgew0KPiA+ICsJCXNyY19zZ1tpXSA9IHJ0ZV9tYWxsb2MoImRt YWRldl90ZXN0X3NyYyIsIFRFU1RfTUVNQ1BZX1NJWkUsDQo+IDApOw0KPiA+ICsJCWlmIChzcmNf c2dbaV0gPT0gTlVMTCkgew0KPiA+ICsJCQlyYyA9IC1FTk9NRU07DQo+ID4gKwkJCWdvdG8gZXhp dDsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJCWRzdF9zZ1tpXSA9IHJ0ZV9tYWxsb2MoImRtYWRl dl90ZXN0X2RzdCIsIFRFU1RfTUVNQ1BZX1NJWkUsDQo+IDApOw0KPiA+ICsJCWlmIChkc3Rfc2db aV0gPT0gTlVMTCkgew0KPiA+ICsJCQlydGVfZnJlZShzcmNfc2dbaV0pOw0KPiA+ICsJCQlzcmNf c2dbaV0gPSBOVUxMOw0KPiA+ICsJCQlyYyA9IC1FTk9NRU07DQo+ID4gKwkJCWdvdG8gZXhpdDsN Cj4gPiArCQl9DQo+ID4gIAl9DQo+ID4NCj4gPiArCXNyYyA9IHNyY19zZ1swXTsNCj4gPiArCWRz dCA9IGRzdF9zZ1swXTsNCj4gPiArDQo+ID4gIAkvKiBTZXQgZG1hZGV2IGxvZyBsZXZlbCB0byBj cml0aWNhbCB0byBzdXBwcmVzcyB1bm5lY2Vzc2FyeSBvdXRwdXQNCj4gPiAgCSAqIGR1cmluZyBB UEkgdGVzdHMuDQo+ID4gIAkgKi8NCj4gPiAgCXJ0ZV9sb2dfc2V0X2xldmVsX3BhdHRlcm4oImxp Yi5kbWFkZXYiLCBSVEVfTE9HX0NSSVQpOw0KPiA+DQo+ID4gLQlyZXR1cm4gMDsNCj4gPiArCXJl dHVybiByYzsNCj4gPiArZXhpdDoNCj4gPiArCXdoaWxlICgtLWkgPj0gMCkgew0KPiA+ICsJCXJ0 ZV9mcmVlKHNyY19zZ1tpXSk7DQo+ID4gKwkJcnRlX2ZyZWUoZHN0X3NnW2ldKTsNCj4gPiArCX0N Cj4gPiArDQo+ID4gKwlyZXR1cm4gcmM7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgdm9pZA0K PiA+ICB0ZXN0c3VpdGVfdGVhcmRvd24odm9pZCkNCj4gPiAgew0KPiA+IC0JcnRlX2ZyZWUoc3Jj KTsNCj4gPiArCWludCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBURVNUX1NHX01B WDsgaSsrKSB7DQo+ID4gKwkJcnRlX2ZyZWUoc3JjX3NnW2ldKTsNCj4gPiArCQlzcmNfc2dbaV0g PSBOVUxMOw0KPiA+ICsJCXJ0ZV9mcmVlKGRzdF9zZ1tpXSk7DQo+ID4gKwkJZHN0X3NnW2ldID0g TlVMTDsNCj4gPiArCX0NCj4gPiArDQo+ID4gIAlzcmMgPSBOVUxMOw0KPiA+IC0JcnRlX2ZyZWUo ZHN0KTsNCj4gPiAgCWRzdCA9IE5VTEw7DQo+ID4gIAkvKiBFbnN1cmUgdGhlIGRtYWRldiBpcyBz dG9wcGVkLiAqLw0KPiA+ICAJcnRlX2RtYV9zdG9wKHRlc3RfZGV2X2lkKTsNCj4gPiBAQCAtNDM3 LDYgKzQ2NCwzNyBAQCB2ZXJpZnlfbWVtb3J5KHZvaWQpDQo+ID4gIAlyZXR1cm4gMDsNCj4gPiAg fQ0KPiA+DQo+ID4gK3N0YXRpYyB2b2lkDQo+ID4gK3NnX21lbW9yeV9zZXR1cChpbnQgbikNCj4g PiArew0KPiA+ICsJaW50IGksIGo7DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IG47IGkr Kykgew0KPiA+ICsJCWZvciAoaiA9IDA7IGogPCBURVNUX01FTUNQWV9TSVpFOyBqKyspDQo+ID4g KwkJCXNyY19zZ1tpXVtqXSA9IChjaGFyKWo7DQo+ID4gKw0KPiA+ICsJCW1lbXNldChkc3Rfc2db aV0sIDAsIFRFU1RfTUVNQ1BZX1NJWkUpOw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50DQo+ID4gK3NnX21lbW9yeV92ZXJpZnkoaW50IG4pDQo+ID4gK3sNCj4gPiArCWlu dCBpLCBqOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsNCj4gPiArCQlm b3IgKGogPSAwOyBqIDwgVEVTVF9NRU1DUFlfU0laRTsgaisrKSB7DQo+ID4gKwkJCWlmIChzcmNf c2dbaV1bal0gPT0gZHN0X3NnW2ldW2pdKQ0KPiA+ICsJCQkJY29udGludWU7DQo+ID4gKw0KPiA+ ICsJCQlSVEVfVEVTVF9BU1NFUlRfRVFVQUwoc3JjX3NnW2ldW2pdLCBkc3Rfc2dbaV1bal0sDQo+ ICJGYWlsZWQgdG8gY29weSBtZW1vcnksICVkICVkIiwNCj4gPiArCQkJCXNyY19zZ1tpXVtqXSwg ZHN0X3NnW2ldW2pdKTsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7 DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRpYyBpbnQNCj4gPiAgdGVzdF9kbWFfY29tcGxldGVk KHZvaWQpDQo+ID4gIHsNCj4gPiBAQCAtNTUxLDYgKzYwOSw4NiBAQCB0ZXN0X2RtYV9jb21wbGV0 ZWRfc3RhdHVzKHZvaWQpDQo+ID4gIAlyZXR1cm4gVEVTVF9TVUNDRVNTOw0KPiA+ICB9DQo+ID4N Cj4gPiArc3RhdGljIGludA0KPiA+ICt0ZXN0X2RtYV9zZyh2b2lkKQ0KPiA+ICt7DQo+ID4gKwlz dHJ1Y3QgcnRlX2RtYV9zZ2Ugc3JjX3NnZVtURVNUX1NHX01BWF0sIGRzdF9zZ2VbVEVTVF9TR19N QVhdOw0KPiA+ICsJc3RydWN0IHJ0ZV9kbWFfaW5mbyBkZXZfaW5mbyA9IHsgMCB9Ow0KPiA+ICsJ dWludDE2X3QgbGFzdF9pZHggPSAtMTsNCj4gPiArCWJvb2wgaGFzX2Vycm9yID0gdHJ1ZTsNCj4g PiArCWludCBuX3NnZSwgaSwgcmV0Ow0KPiA+ICsJdWludDE2X3QgY3BsX3JldDsNCj4gPiArDQo+ ID4gKwlyZXQgPSBydGVfZG1hX2luZm9fZ2V0KHRlc3RfZGV2X2lkLCAmZGV2X2luZm8pOw0KPiA+ ICsJUlRFX1RFU1RfQVNTRVJUX1NVQ0NFU1MocmV0LCAiRmFpbGVkIHRvIG9idGFpbiBkZXZpY2Ug aW5mbywgJWQiLA0KPiA+ICtyZXQpOw0KPiA+ICsNCj4gPiArCWlmICgoZGV2X2luZm8uZGV2X2Nh cGEgJiBSVEVfRE1BX0NBUEFfT1BTX0NPUFlfU0cpID09IDApDQo+ID4gKwkJcmV0dXJuIFRFU1Rf U0tJUFBFRDsNCj4gPiArDQo+ID4gKwluX3NnZSA9IFJURV9NSU4oZGV2X2luZm8ubWF4X3NnZXMs IFRFU1RfU0dfTUFYKTsNCj4gPiArDQo+ID4gKwlyZXQgPSBzZXR1cF92Y2hhbigxKTsNCj4gPiAr CVJURV9URVNUX0FTU0VSVF9TVUNDRVNTKHJldCwgIkZhaWxlZCB0byBzZXR1cCBvbmUgdmNoYW4s ICVkIiwgcmV0KTsNCj4gPiArDQo+ID4gKwlyZXQgPSBydGVfZG1hX3N0YXJ0KHRlc3RfZGV2X2lk KTsNCj4gPiArCVJURV9URVNUX0FTU0VSVF9TVUNDRVNTKHJldCwgIkZhaWxlZCB0byBzdGFydCwg JWQiLCByZXQpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBuX3NnZTsgaSsrKSB7DQo+ ID4gKwkJc3JjX3NnZVtpXS5hZGRyID0gcnRlX21hbGxvY192aXJ0MmlvdmEoc3JjX3NnW2ldKTsN Cj4gPiArCQlzcmNfc2dlW2ldLmxlbmd0aCA9IFRFU1RfTUVNQ1BZX1NJWkU7DQo+ID4gKwkJZHN0 X3NnZVtpXS5hZGRyID0gcnRlX21hbGxvY192aXJ0MmlvdmEoZHN0X3NnW2ldKTsNCj4gPiArCQlk c3Rfc2dlW2ldLmxlbmd0aCA9IFRFU1RfTUVNQ1BZX1NJWkU7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICsJc2dfbWVtb3J5X3NldHVwKG5fc2dlKTsNCj4gPiArDQo+ID4gKwkvKiBDaGVjayBlbnF1ZXVl IHdpdGhvdXQgc3VibWl0ICovDQo+ID4gKwlyZXQgPSBydGVfZG1hX2NvcHlfc2codGVzdF9kZXZf aWQsIDAsIHNyY19zZ2UsIGRzdF9zZ2UsIG5fc2dlLCBuX3NnZSwNCj4gMCk7DQo+ID4gKwlSVEVf VEVTVF9BU1NFUlRfRVFVQUwocmV0LCAwLCAiRmFpbGVkIHRvIGVucXVldWUgY29weSwgJWQiLCBy ZXQpOw0KPiA+ICsNCj4gPiArCXJ0ZV9kZWxheV91c19zbGVlcChURVNUX1dBSVRfVVNfVkFMKTsN Cj4gPiArDQo+ID4gKwljcGxfcmV0ID0gcnRlX2RtYV9jb21wbGV0ZWQodGVzdF9kZXZfaWQsIDAs IDEsICZsYXN0X2lkeCwgJmhhc19lcnJvcik7DQo+ID4gKwlSVEVfVEVTVF9BU1NFUlRfRVFVQUwo Y3BsX3JldCwgMCwgIkZhaWxlZCB0byBnZXQgY29tcGxldGVkIik7DQo+ID4gKw0KPiA+ICsJLyog Q2hlY2sgRE1BIHN1Ym1pdCAqLw0KPiA+ICsJcmV0ID0gcnRlX2RtYV9zdWJtaXQodGVzdF9kZXZf aWQsIDApOw0KPiA+ICsJUlRFX1RFU1RfQVNTRVJUX1NVQ0NFU1MocmV0LCAiRmFpbGVkIHRvIHN1 Ym1pdCwgJWQiLCByZXQpOw0KPiA+ICsNCj4gPiArCXJ0ZV9kZWxheV91c19zbGVlcChURVNUX1dB SVRfVVNfVkFMKTsNCj4gPiArDQo+ID4gKwljcGxfcmV0ID0gcnRlX2RtYV9jb21wbGV0ZWQodGVz dF9kZXZfaWQsIDAsIDEsICZsYXN0X2lkeCwgJmhhc19lcnJvcik7DQo+ID4gKwlSVEVfVEVTVF9B U1NFUlRfRVFVQUwoY3BsX3JldCwgMSwgIkZhaWxlZCB0byBnZXQgY29tcGxldGVkIik7DQo+ID4g KwlSVEVfVEVTVF9BU1NFUlRfRVFVQUwobGFzdF9pZHgsIDAsICJMYXN0IGlkeCBzaG91bGQgYmUg emVybywgJXUiLA0KPiBsYXN0X2lkeCk7DQo+ID4gKwlSVEVfVEVTVF9BU1NFUlRfRVFVQUwoaGFz X2Vycm9yLCBmYWxzZSwgIlNob3VsZCBoYXZlIG5vIGVycm9yIik7DQo+ID4gKw0KPiA+ICsJcmV0 ID0gc2dfbWVtb3J5X3ZlcmlmeShuX3NnZSk7DQo+ID4gKwlSVEVfVEVTVF9BU1NFUlRfU1VDQ0VT UyhyZXQsICJGYWlsZWQgdG8gdmVyaWZ5IG1lbW9yeSIpOw0KPiA+ICsNCj4gPiArCXNnX21lbW9y eV9zZXR1cChuX3NnZSk7DQo+ID4gKw0KPiA+ICsJLyogQ2hlY2sgZm9yIGVucXVldWUgd2l0aCBz dWJtaXQgKi8NCj4gPiArCXJldCA9IHJ0ZV9kbWFfY29weV9zZyh0ZXN0X2Rldl9pZCwgMCwgc3Jj X3NnZSwgZHN0X3NnZSwgbl9zZ2UsIG5fc2dlLA0KPiA+ICsJCQkgICAgICBSVEVfRE1BX09QX0ZM QUdfU1VCTUlUKTsNCj4gPiArCVJURV9URVNUX0FTU0VSVF9FUVVBTChyZXQsIDEsICJGYWlsZWQg dG8gZW5xdWV1ZSBjb3B5LCAlZCIsIHJldCk7DQo+ID4gKw0KPiA+ICsJcnRlX2RlbGF5X3VzX3Ns ZWVwKFRFU1RfV0FJVF9VU19WQUwpOw0KPiA+ICsNCj4gPiArCWNwbF9yZXQgPSBydGVfZG1hX2Nv bXBsZXRlZCh0ZXN0X2Rldl9pZCwgMCwgMSwgJmxhc3RfaWR4LCAmaGFzX2Vycm9yKTsNCj4gPiAr CVJURV9URVNUX0FTU0VSVF9FUVVBTChjcGxfcmV0LCAxLCAiRmFpbGVkIHRvIGdldCBjb21wbGV0 ZWQiKTsNCj4gPiArCVJURV9URVNUX0FTU0VSVF9FUVVBTChsYXN0X2lkeCwgMSwgIkxhc3QgaWR4 IHNob3VsZCBiZSAxLCAldSIsDQo+IGxhc3RfaWR4KTsNCj4gPiArCVJURV9URVNUX0FTU0VSVF9F UVVBTChoYXNfZXJyb3IsIGZhbHNlLCAiU2hvdWxkIGhhdmUgbm8gZXJyb3IiKTsNCj4gPiArDQo+ ID4gKwlyZXQgPSBzZ19tZW1vcnlfdmVyaWZ5KG5fc2dlKTsNCj4gPiArCVJURV9URVNUX0FTU0VS VF9TVUNDRVNTKHJldCwgIkZhaWxlZCB0byB2ZXJpZnkgbWVtb3J5Iik7DQo+ID4gKw0KPiA+ICsJ LyogU3RvcCBkbWFkZXYgdG8gbWFrZSBzdXJlIGRtYWRldiB0byBhIGtub3duIHN0YXRlICovDQo+ ID4gKwlyZXQgPSBydGVfZG1hX3N0b3AodGVzdF9kZXZfaWQpOw0KPiA+ICsJUlRFX1RFU1RfQVNT RVJUX1NVQ0NFU1MocmV0LCAiRmFpbGVkIHRvIHN0b3AsICVkIiwgcmV0KTsNCj4gPiArDQo+ID4g KwlyZXR1cm4gVEVTVF9TVUNDRVNTOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgc3RydWN0 IHVuaXRfdGVzdF9zdWl0ZSBkbWFfYXBpX3Rlc3RzdWl0ZSA9IHsNCj4gPiAgCS5zdWl0ZV9uYW1l ID0gIkRNQSBBUEkgVGVzdCBTdWl0ZSIsDQo+ID4gIAkuc2V0dXAgPSB0ZXN0c3VpdGVfc2V0dXAs DQo+ID4gQEAgLTU2OCw2ICs3MDYsNyBAQCBzdGF0aWMgc3RydWN0IHVuaXRfdGVzdF9zdWl0ZSBk bWFfYXBpX3Rlc3RzdWl0ZSA9IHsNCj4gPiAgCQlURVNUX0NBU0UodGVzdF9kbWFfZHVtcCksDQo+ ID4gIAkJVEVTVF9DQVNFKHRlc3RfZG1hX2NvbXBsZXRlZCksDQo+ID4gIAkJVEVTVF9DQVNFKHRl c3RfZG1hX2NvbXBsZXRlZF9zdGF0dXMpLA0KPiA+ICsJCVRFU1RfQ0FTRSh0ZXN0X2RtYV9zZyks DQo+ID4gIAkJVEVTVF9DQVNFU19FTkQoKQ0KPiA+ICAJfQ0KPiA+ICB9Ow0KPiA+IGRpZmYgLS1n aXQgYS9hcHAvdGVzdC90ZXN0X2RtYWRldl9hcGkuaCBiL2FwcC90ZXN0L3Rlc3RfZG1hZGV2X2Fw aS5oDQo+ID4gaW5kZXggMzNmYmM1YmQ0MS4uMTBhYjkyNWY4MCAxMDA2NDQNCj4gPiAtLS0gYS9h cHAvdGVzdC90ZXN0X2RtYWRldl9hcGkuaA0KPiA+ICsrKyBiL2FwcC90ZXN0L3Rlc3RfZG1hZGV2 X2FwaS5oDQo+ID4gQEAgLTIsNCArMiw2IEBADQo+ID4gICAqIENvcHlyaWdodChjKSAyMDIxIEhp U2lsaWNvbiBMaW1pdGVkDQo+ID4gICAqLw0KPiA+DQo+ID4gKyNkZWZpbmUgVEVTVF9TR19NQVgg NA0KPiANCj4gc3VnZ2VzdCBURVNUX01BWF9TR0VTIHdoaWNoIGNvcnJlc3BvbmRpbmcgZGV2X2lu Zm8ubWF4X3NnZXMNCg0KT2ssIEkgaGF2ZSBmaXhlZCBBUEkgdGVzdCB0byB2YWxpZGF0ZSBhZ2Fp bnN0IG1heF9hZ2VzLg0KDQpUaGFua3MsDQpHb3dyaXNoYW5rYXINCj4gDQo+IFRoYW5rcw0KPiBD aGVuZ3dlbg0KPiANCj4gPiArDQo+ID4gIGludCB0ZXN0X2RtYV9hcGkodWludDE2X3QgZGV2X2lk KTsNCj4gPg0K