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 4803D426D6; Fri, 6 Oct 2023 22:25:53 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CA6DD402E6; Fri, 6 Oct 2023 22:25:52 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id D6787402E1 for ; Fri, 6 Oct 2023 22:25:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696623951; x=1728159951; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=+kxF7nMOFbpu93Q+y98sMjFfq7GnM1pjvO3xoC/n4M0=; b=QMFiVLE1QWQBSMJtBTvzxnE2kOrbUaVRFaz+o8UXI8Pv2+nV+kVpgeHD d4gCwrbVsnYdVYdbag0WrlJa8t7PfGHR9Tl/OVsj/Utt5dIJM7oMn9+1A mqHy3Wt1NE0MeAU9GoORLgcEZ9QbD2MDbZSBuzQFpRb4FO73052et6l18 5AZbr/N6yW1A3Cqvvfz3eZy/NVQ15xMgpSIluHbbUETwjVCawVX/tTSnY +r7zibdvMZmtPlnBjIcn1gXPPmyZmLm6HIyaJ9AfX028PMmjSo/uwPHSj EFQpDt/Nt7nmGgO/7qIXM++n1r60CyaG5+LJMcFJXJM8r3scRXS75ZKDK w==; X-IronPort-AV: E=McAfee;i="6600,9927,10855"; a="386656669" X-IronPort-AV: E=Sophos;i="6.03,204,1694761200"; d="scan'208";a="386656669" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2023 13:25:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10855"; a="999447346" X-IronPort-AV: E=Sophos;i="6.03,204,1694761200"; d="scan'208";a="999447346" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga006.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 06 Oct 2023 13:25:47 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) 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.2507.32; Fri, 6 Oct 2023 13:25:46 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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.2507.32 via Frontend Transport; Fri, 6 Oct 2023 13:25:46 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.108) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Fri, 6 Oct 2023 13:25:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OzuGuAavsnOpvpa8lL1sFknO/sOBokvuRqqcvKZBijqGKDwe0gGndLq1BYv9dtt3l0mcweeQ1HwHDfgFEr/0gIzVtv+2GpSk2ltGlP4EguMO5dXzMFr3g8oUf+OcQjxNvNM+whbU03fO9QzdD7J4/0Cehn6IcpU5y1ltytriV9v2725iW6QZWjRfUPkGvgRYW1BzWaQvm8K+OzW2qD97qYdhEl8bZKUjaNbNWdZaPmWtKuGfQQOFqaxVWjsKSCfKXx7OWQFY/VOkMQpal87feQDyfjb+Cs4bZCMB/wpBdkmh+0BdBY2oTiwKpoYxJO1vJaTlFHzR5pcPbs//fwrJNQ== 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=+kxF7nMOFbpu93Q+y98sMjFfq7GnM1pjvO3xoC/n4M0=; b=Kjc7x73UMF36s9qJBMNzKo8rzrJi9sxkyZjXqnppiNrWo5yZ6T0Y/M42huNLD7KPrdJEFTrt3cGcJL44QbAdmV6adk6wZSDU/gh0rgJusQYJO9Gv/rse7+RYkSVtN09uMeLP4faIH6XqCM+Ol/G0gvl26QZCG8W+CJXVjxHkDyDPeLhwXSKi59fluFixDZxsuqNLkgij8FzLwiLTRXA2mh+bEfSimY37lZH8n7phrSm+BV/HxBlF/1yllm5AbcGSzfA2uCHlKFmNzjt3I/vRF/c2Z8Y8i0PKxWxu8DvQsVLi6nAsXOmTiq/87mFB4kzGgP4ymt2JUF+0BINGozE8TQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BN9PR11MB5257.namprd11.prod.outlook.com (2603:10b6:408:132::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Fri, 6 Oct 2023 20:25:42 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::c10d:65be:798a:520a]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::c10d:65be:798a:520a%7]) with mapi id 15.20.6838.040; Fri, 6 Oct 2023 20:25:42 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" CC: "hemant.agrawal@nxp.com" , "david.marchand@redhat.com" , "Vargas, Hernan" Subject: RE: [PATCH v3 09/12] baseband/acc: add FFT support to VRB2 variant Thread-Topic: [PATCH v3 09/12] baseband/acc: add FFT support to VRB2 variant Thread-Index: AQHZ8vNW+MPrMblvskisqHkYQNCUuLA4KC0AgAA96jCAANfmAIAA67QAgAEin4CAADgm4IABMIgAgACH+mA= Date: Fri, 6 Oct 2023 20:25:42 +0000 Message-ID: References: <20230929163516.3636499-1-nicolas.chautru@intel.com> <20230929163516.3636499-10-nicolas.chautru@intel.com> <32b6b788-eae3-8540-07da-ff528b06de2b@redhat.com> <21e67536-887e-4a2e-c650-2f056c0d0c6a@redhat.com> <3a8efa21-214d-7a8d-e02f-f8c62ef72977@redhat.com> In-Reply-To: <3a8efa21-214d-7a8d-e02f-f8c62ef72977@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR11MB4451:EE_|BN9PR11MB5257:EE_ x-ms-office365-filtering-correlation-id: c63292fe-8fd5-4bf0-8966-08dbc6aa69ef x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QdNvrVOAZGCMkPgFrGNsoF17LhJtyvwk24n/nfhd0/zgcS98BD4FUcyqq8KAt0BMQp/MmOhKjdrzhZhZFNlyfKm/5W5r5brxWqey9LDqCiCEnV166v7CWbkVvsIrqgbR8kII4ZoLyxzYswJes6euMumb5v/eBnOvoQjSfSIUhBJ1syOSBZwJRrdeLvoraF8aL8hdz9UmCSsAVrc8Hyf51QHHELDSDcLiber6rTeorDhYHPSwNRGwYlY2LGUxj/g/pQ/7HE9Vr//Lw1WJwopcdfixwbSz7xFw0geTPnec29pXfqZwGSjfVnjjf0CS8epiYZ2vUi135HAU7KuSmDPuYkLGXXw7X9WYIXFxuAyGCQmrIbpGkx8sBe74vP/881BzY4g9mxoidb4ZwyiJvYowDktAAnOZe0fF/eC80RnGPXSnnhZ+iQUE5e3bwN1mxfS2Z/P7neki+DjzzyAo04h0TzOpPtTnRGtyeSBvsLwqbXf92uI/SUAhcb5lPpg5hjd/r3OUVFcvWYu+6sRiSa+CCpJPTjGUjsRJubrqWvh/cJQ0J7oHAYS1vfQo+H0vIZhusYtlnk7bGVHrgAo7b5ZNekFHl+HYpQ42+Or027nT9O0DhmJHVAuPnD95Mrkspyd5 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(366004)(136003)(376002)(346002)(396003)(230922051799003)(64100799003)(451199024)(186009)(1800799009)(83380400001)(55016003)(71200400001)(7696005)(6506007)(53546011)(478600001)(38070700005)(86362001)(38100700002)(33656002)(82960400001)(122000001)(30864003)(2906002)(41300700001)(316002)(107886003)(26005)(9686003)(54906003)(66946007)(66556008)(66476007)(66446008)(64756008)(76116006)(5660300002)(110136005)(8676002)(8936002)(4326008)(52536014); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?REVZbW1TZXVMWlZQYXlDWWxYSXFWQWhuLzdCK3J0V2E5bytuQTRvS3VhTnI5?= =?utf-8?B?MUs3bUIwaGZJUXFxamwraTI4VitvNUtzYW1xN2NlekptcnArSlZqa0ZJWWxO?= =?utf-8?B?djFpNkdMUEI1MTlMWG5Id0hEUVJMaUs0a0ZRSEpjNkNXc3VXNU1ENFN6WGsy?= =?utf-8?B?MGd0WFpsYXR0QStyL1EyRTJNRWlHdFlVNjZoOVI2ZHl2Zm9QemZJWE1Bbk01?= =?utf-8?B?T3pMWGdsUXJ4aFRDVCtuT09pYlhnYVFaWkRDZTd0NThrZUpBakpJSFZpRkZr?= =?utf-8?B?QU1DRXBGK3N1YVdmYVFhYVZldW1JN0p4U2lzb1VjSEVXSzJyeW5hSXhyaWtG?= =?utf-8?B?eWdobXFGZWNXRGpqMml0enIyRWgwdUlQd1RSTUthTWNUd3ZISjFwcCtTdlRG?= =?utf-8?B?bFlsMk5sQjBwa2Z6cTRkTVNKdFp6eldSTlpmeEpIelNINE9mK2VmaGg3bWFh?= =?utf-8?B?RDkvZmUzTDR4RDFCazhEajhIUG12QUdWaTVLL00vbERYN3VXOEMwQVRBcSsz?= =?utf-8?B?Z3RNczdBWVVrRUUyN2RPRm8vQnFnTmdoTGp5WEY2c1hPcmJlVkJCQzJSSlQ2?= =?utf-8?B?Z1NSdHNPazJlQk9DcVEvSUxuaFFrOFFpR0pwSTV1WXBGMm0yY2d5VkNrMXAx?= =?utf-8?B?aFN4NFJjcUlkNG41OUhUZjVzeFpyNUFDeUJSeXE0YVhDQVFFdGN2eEpZWDJL?= =?utf-8?B?RlBFbENMNnNXM0NPQm95b3Ric055N1RUaGppYWZDWElZaW9DTmtLMFk4alVI?= =?utf-8?B?cGdOdHVORHo5M2xUMFpieUlsak1uVERlNTVxY2F4c08vYUZadXNTMWdQbTdu?= =?utf-8?B?Y3RyM1ZsTzhDbVVmQiszS2lENEs4cXpsQi9EYmY1S0ZJVWVjT3BiS0Zibk1D?= =?utf-8?B?MXBlWGkzS1hsbmFPV3lQOVF2Mnp0REFWRzJNWi9UYktRWGpLclFpL0V0RWI4?= =?utf-8?B?TFZqTVBUM1hyaVVBdFk1TnRuK291WUpJc3ZCZE45SUJ3dStkNVpXbzBMLy9n?= =?utf-8?B?bXRzWURJUmJ5Rlg2WkNucUJFYmJvb0g1R3l1WTNadk8wVnFFOVdJd2pEZHF3?= =?utf-8?B?aE14dmpMTStJcHlQdXFKQ0MvY3NrbEFsYytqOGdRcld6b1NpNlV6ZURKdVc3?= =?utf-8?B?OUd1VUUzRGxoY3Z3cklIMkQrSU5WSnVINVhhenFCQ2xLVUdtdTFnTXc1eUh2?= =?utf-8?B?MXBpOExXMnFNSkcwQnRLck1MWGg5b3Nxdld0YmQ2SzNYalFOM0kzQkFyRTlu?= =?utf-8?B?K1RycEFmZzEzd1VaelhCbUdzbTl5TGxMdkloNEJqUTZQV3QwYTMyQmRwOGhl?= =?utf-8?B?L09FRkxZUXNON0xjeFB2SDd4b0ZucDJmS1luLytobzllNzg2TDlGUzVjRGtv?= =?utf-8?B?YzJOZkRqRytTbW9xTDQ3Sm5OdUxSWlJWYVFzQjVCU01aenJORHQ2Y2RQdmRI?= =?utf-8?B?aCtLZjE1Y3l1dFMvTml4eEhvOGNwejNZendDSEFJbzgwTnZhSlNGVE9RY1Av?= =?utf-8?B?U1RteTN2ZUNPRnBZK0FjbW9kT0FPWjNVNVJIM3BFbUgrVm9USlBXdWYzT2h1?= =?utf-8?B?dis0eWhrR1Z3VFhsTDZCYlA1ZGFLdXhMNHVmcTBsSEpWTmsweThJM2FsSjFY?= =?utf-8?B?azd3MjJHVThWeTh3NVJybnhPTHhCaXVmYk9tQUpSTkV6clBCVGFzWmwwYTE0?= =?utf-8?B?N3JuREhYZjIzUk90Mk93WUdxNytwK3lCd2tHRjNISkNaN3Y4b3Q2U3JGb09x?= =?utf-8?B?a3ZBb1cxSU1zcEN2VnZxUnRhR1JSSTBocXJaOWJMeDhDWjhRUTZzUytLdUdX?= =?utf-8?B?Zk8ydW8weHdQQXJJOVIxbkgyNkJUdUVoTUFhSXhRcGQzVmtpQUJxVUNtNENJ?= =?utf-8?B?VE5tZjZZNlZwY0tnZURST29IQ2NkMnEvNzhZSDY0S1dycE1oZWpTQjdzME56?= =?utf-8?B?SHQySm9FVE9qVHRyeEE2QXBJQmZTMXMrMDlSbElKa09rbDFwYmRSK01HTVdY?= =?utf-8?B?c0xDQkhvNDdOWXNzNWRiMU1jOFdUcUZDT25qK1JQNG53ajFacDhpd0hVZlkz?= =?utf-8?B?U2FNWHZ2aGNiK05ERHh4WXpJZDV4dHkzaE1XQUFFamZQSytEdnFLWEpMUWxy?= =?utf-8?Q?fesD8QWHt5mSGIJFTomftOlbA?= 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c63292fe-8fd5-4bf0-8966-08dbc6aa69ef X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Oct 2023 20:25:42.6786 (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: yLJ4E5RVow1ajqMrlfFKVXUPC+QvMCqNcKcgMeRYsI5QK/AieqCfSWgSsghzs8z+yhgeMsukldgk4qn0ZNBSOtjF5nQRDe4hgK8J/qIRGQ4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5257 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 SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBGcmlkYXks IE9jdG9iZXIgNiwgMjAyMyA1OjA2IEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFz LmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBoZW1hbnQuYWdyYXdhbEBu eHAuY29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOyBWYXJnYXMsIEhlcm5hbg0KPiA8aGVy bmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMDkvMTJdIGJh c2ViYW5kL2FjYzogYWRkIEZGVCBzdXBwb3J0IHRvIFZSQjIgdmFyaWFudA0KPiANCj4gDQo+IA0K PiBPbiAxMC81LzIzIDE5OjU5LCBDaGF1dHJ1LCBOaWNvbGFzIHdyb3RlOg0KPiA+IEhpIE1heGlt ZSwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiA+PiBTZW50OiBUaHVy c2RheSwgT2N0b2JlciA1LCAyMDIzIDc6MzUgQU0NCj4gPj4gVG86IENoYXV0cnUsIE5pY29sYXMg PG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4gQ2M6IGhlbWFu dC5hZ3Jhd2FsQG54cC5jb207IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207IFZhcmdhcywNCj4g SGVybmFuDQo+ID4+IDxoZXJuYW4udmFyZ2FzQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6 IFtQQVRDSCB2MyAwOS8xMl0gYmFzZWJhbmQvYWNjOiBhZGQgRkZUIHN1cHBvcnQgdG8gVlJCMg0K PiA+PiB2YXJpYW50DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IE9uIDEwLzQvMjMgMjM6MTgsIENo YXV0cnUsIE5pY29sYXMgd3JvdGU6DQo+ID4+PiBIaSBNYXhpbWUsDQo+ID4+Pg0KPiA+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogTWF4aW1lIENvcXVlbGluIDxt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gPj4+PiBTZW50OiBXZWRuZXNkYXksIE9jdG9i ZXIgNCwgMjAyMyAxMjoxMSBBTQ0KPiA+Pj4+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFz LmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+Pj4gQ2M6IGhlbWFudC5hZ3Jh d2FsQG54cC5jb207IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207IFZhcmdhcywNCj4gPj4gSGVy bmFuDQo+ID4+Pj4gPGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggdjMgMDkvMTJdIGJhc2ViYW5kL2FjYzogYWRkIEZGVCBzdXBwb3J0IHRvIFZSQjIN Cj4gPj4+PiB2YXJpYW50DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gT24gMTAvMy8y MyAyMDoyMCwgQ2hhdXRydSwgTmljb2xhcyB3cm90ZToNCj4gPj4+Pj4gSGkgTWF4aW1lLA0KPiA+ Pj4+Pg0KPiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+IEZyb206 IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ID4+Pj4+PiBT ZW50OiBUdWVzZGF5LCBPY3RvYmVyIDMsIDIwMjMgNzozNyBBTQ0KPiA+Pj4+Pj4gVG86IENoYXV0 cnUsIE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4g Pj4+Pj4+IENjOiBoZW1hbnQuYWdyYXdhbEBueHAuY29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQu Y29tOyBWYXJnYXMsDQo+ID4+Pj4gSGVybmFuDQo+ID4+Pj4+PiA8aGVybmFuLnZhcmdhc0BpbnRl bC5jb20+DQo+ID4+Pj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDA5LzEyXSBiYXNlYmFuZC9h Y2M6IGFkZCBGRlQgc3VwcG9ydCB0bw0KPiA+Pj4+Pj4gVlJCMiB2YXJpYW50DQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBPbiA5LzI5LzIzIDE4OjM1LCBOaWNvbGFzIENo YXV0cnUgd3JvdGU6DQo+ID4+Pj4+Pj4gU3VwcG9ydCBmb3IgdGhlIEZGVCB0aGUgcHJvY2Vzc2lu ZyBzcGVjaWZpYyB0byB0aGUNCj4gPj4+Pj4+PiBWUkIyIHZhcmlhbnQuDQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIENoYXV0cnUgPG5pY29sYXMuY2hhdXRydUBp bnRlbC5jb20+DQo+ID4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4gICAgICBkcml2ZXJzL2Jhc2ViYW5k L2FjYy9ydGVfdnJiX3BtZC5jIHwgMTMyDQo+ID4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysr KysrKysrLQ0KPiA+Pj4+Pj4+ICAgICAgMSBmaWxlIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+Pj4+PiBiL2RyaXZlcnMvYmFzZWJh bmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+Pj4+PiBpbmRleCA5M2FkZDgyOTQ3Li5jZTRiOTBk OGU3IDEwMDY0NA0KPiA+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJf cG1kLmMNCj4gPj4+Pj4+PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5j DQo+ID4+Pj4+Pj4gQEAgLTkwMyw2ICs5MDMsOSBAQCB2cmJfcXVldWVfc2V0dXAoc3RydWN0IHJ0 ZV9iYmRldiAqZGV2LA0KPiA+Pj4+Pj4+IHVpbnQxNl90DQo+ID4+Pj4+PiBxdWV1ZV9pZCwNCj4g Pj4+Pj4+PiAgICAgIAkJCUFDQ19GQ1dfTERfQkxFTiA6IChjb25mLT5vcF90eXBlID09DQo+ID4+ Pj4+PiBSVEVfQkJERVZfT1BfRkZUID8NCj4gPj4+Pj4+PiAgICAgIAkJCUFDQ19GQ1dfRkZUX0JM RU4gOg0KPiA+PiBBQ0NfRkNXX01MRFRTX0JMRU4pKSkpOw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4g KwlpZiAoKHEtPmQtPmRldmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkgJiYgKGNvbmYtPm9w X3R5cGUNCj4gPj4+Pj4+PiArPT0NCj4gPj4+Pj4+IFJURV9CQkRFVl9PUF9GRlQpKQ0KPiA+Pj4+ Pj4+ICsJCWZjd19sZW4gPSBBQ0NfRkNXX0ZGVF9CTEVOXzM7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+ Pj4+ICAgICAgCWZvciAoZGVzY19pZHggPSAwOyBkZXNjX2lkeCA8IGQtPnN3X3JpbmdfbWF4X2Rl cHRoOw0KPiA+PiBkZXNjX2lkeCsrKSB7DQo+ID4+Pj4+Pj4gICAgICAJCWRlc2MgPSBxLT5yaW5n X2FkZHIgKyBkZXNjX2lkeDsNCj4gPj4+Pj4+PiAgICAgIAkJZGVzYy0+cmVxLndvcmQwID0gQUND X0RNQV9ERVNDX1RZUEU7IEBAIC0NCj4gPj4gMTMyMyw2DQo+ID4+Pj4+PiArMTMyNiwyNCBAQA0K PiA+Pj4+Pj4+IHZyYl9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCBzdHJ1Y3QN Cj4gPj4+Pj4+PiBydGVfYmJkZXZfZHJpdmVyX2luZm8NCj4gPj4+Pj4+ICpkZXZfaW5mbykNCj4g Pj4+Pj4+PiAgICAgIAkJCS5udW1fYnVmZmVyc19zb2Z0X291dCA9IDAsDQo+ID4+Pj4+Pj4gICAg ICAJCQl9DQo+ID4+Pj4+Pj4gICAgICAJCX0sDQo+ID4+Pj4+Pj4gKwkJew0KPiA+Pj4+Pj4+ICsJ CQkudHlwZQk9IFJURV9CQkRFVl9PUF9GRlQsDQo+ID4+Pj4+Pj4gKwkJCS5jYXAuZmZ0ID0gew0K PiA+Pj4+Pj4+ICsJCQkJLmNhcGFiaWxpdHlfZmxhZ3MgPQ0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+ IAlSVEVfQkJERVZfRkZUX1dJTkRPV0lORyB8DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4gCVJURV9C QkRFVl9GRlRfQ1NfQURKVVNUTUVOVCB8DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4gCVJURV9CQkRF Vl9GRlRfREZUX0JZUEFTUyB8DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4gCVJURV9CQkRFVl9GRlRf SURGVF9CWVBBU1MgfA0KPiA+Pj4+Pj4+ICsNCj4gCVJURV9CQkRFVl9GRlRfRlAxNl9JTlBVVA0K PiA+Pj4+Pj4gfA0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+IAlSVEVfQkJERVZfRkZUX0ZQMTZfT1VU UFVUIHwNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+PiAJUlRFX0JCREVWX0ZGVF9QT1dFUl9NRUFTIHwN Cj4gPj4+Pj4+PiArDQo+ID4+Pj4+PiAJUlRFX0JCREVWX0ZGVF9XSU5ET1dJTkdfQllQQVNTLA0K PiA+Pj4+Pj4+ICsJCQkJLm51bV9idWZmZXJzX3NyYyA9DQo+ID4+Pj4+Pj4gKwkJCQkJCTEsDQo+ ID4+Pj4+Pj4gKwkJCQkubnVtX2J1ZmZlcnNfZHN0ID0NCj4gPj4+Pj4+PiArCQkJCQkJMSwNCj4g Pj4+Pj4+PiArCQkJfQ0KPiA+Pj4+Pj4+ICsJCX0sDQo+ID4+Pj4+Pj4gICAgICAJCVJURV9CQkRF Vl9FTkRfT0ZfQ0FQQUJJTElUSUVTX0xJU1QoKQ0KPiA+Pj4+Pj4+ICAgICAgCX07DQo+ID4+Pj4+ Pj4NCj4gPj4+Pj4+PiBAQCAtMzg0OSw2ICszODcwLDQ3IEBAIHZyYjFfZmN3X2ZmdF9maWxsKHN0 cnVjdCBydGVfYmJkZXZfZmZ0X29wDQo+ID4+Pj4+Pj4gKm9wLA0KPiA+Pj4+Pj4gc3RydWN0IGFj Y19mY3dfZmZ0ICpmY3cpDQo+ID4+Pj4+Pj4gICAgICAJCWZjdy0+YnlwYXNzID0gMDsNCj4gPj4+ Pj4+PiAgICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICsvKiBGaWxsIGluIGEgZnJhbWUgY29u dHJvbCB3b3JkIGZvciBGRlQgcHJvY2Vzc2luZy4gKi8gc3RhdGljDQo+ID4+Pj4+Pj4gK2lubGlu ZSB2b2lkIHZyYjJfZmN3X2ZmdF9maWxsKHN0cnVjdCBydGVfYmJkZXZfZmZ0X29wICpvcCwNCj4g Pj4+Pj4+PiArc3RydWN0DQo+ID4+Pj4+Pj4gK2FjY19mY3dfZmZ0XzMgKmZjdykgew0KPiA+Pj4+ Pj4+ICsJZmN3LT5pbl9mcmFtZV9zaXplID0gb3AtPmZmdC5pbnB1dF9zZXF1ZW5jZV9zaXplOw0K PiA+Pj4+Pj4+ICsJZmN3LT5sZWFkaW5nX3BhZF9zaXplID0gb3AtPmZmdC5pbnB1dF9sZWFkaW5n X3BhZGRpbmc7DQo+ID4+Pj4+Pj4gKwlmY3ctPm91dF9mcmFtZV9zaXplID0gb3AtPmZmdC5vdXRw dXRfc2VxdWVuY2Vfc2l6ZTsNCj4gPj4+Pj4+PiArCWZjdy0+bGVhZGluZ19kZXBhZF9zaXplID0g b3AtPmZmdC5vdXRwdXRfbGVhZGluZ19kZXBhZGRpbmc7DQo+ID4+Pj4+Pj4gKwlmY3ctPmNzX3dp bmRvd19zZWwgPSBvcC0+ZmZ0LndpbmRvd19pbmRleFswXSArDQo+ID4+Pj4+Pj4gKwkJCShvcC0+ ZmZ0LndpbmRvd19pbmRleFsxXSA8PCA4KSArDQo+ID4+Pj4+Pj4gKwkJCShvcC0+ZmZ0LndpbmRv d19pbmRleFsyXSA8PCAxNikgKw0KPiA+Pj4+Pj4+ICsJCQkob3AtPmZmdC53aW5kb3dfaW5kZXhb M10gPDwgMjQpOw0KPiA+Pj4+Pj4+ICsJZmN3LT5jc193aW5kb3dfc2VsMiA9IG9wLT5mZnQud2lu ZG93X2luZGV4WzRdICsNCj4gPj4+Pj4+PiArCQkJKG9wLT5mZnQud2luZG93X2luZGV4WzVdIDw8 IDgpOw0KPiA+Pj4+Pj4+ICsJZmN3LT5jc19lbmFibGVfYm1hcCA9IG9wLT5mZnQuY3NfYml0bWFw Ow0KPiA+Pj4+Pj4+ICsJZmN3LT5udW1fYW50ZW5uYXMgPSBvcC0+ZmZ0Lm51bV9hbnRlbm5hc19s b2cyOw0KPiA+Pj4+Pj4+ICsJZmN3LT5pZGZ0X3NpemUgPSBvcC0+ZmZ0LmlkZnRfbG9nMjsNCj4g Pj4+Pj4+PiArCWZjdy0+ZGZ0X3NpemUgPSBvcC0+ZmZ0LmRmdF9sb2cyOw0KPiA+Pj4+Pj4+ICsJ ZmN3LT5jc19vZmZzZXQgPSBvcC0+ZmZ0LmNzX3RpbWVfYWRqdXN0bWVudDsNCj4gPj4+Pj4+PiAr CWZjdy0+aWRmdF9zaGlmdCA9IG9wLT5mZnQuaWRmdF9zaGlmdDsNCj4gPj4+Pj4+PiArCWZjdy0+ ZGZ0X3NoaWZ0ID0gb3AtPmZmdC5kZnRfc2hpZnQ7DQo+ID4+Pj4+Pj4gKwlmY3ctPmNzX211bHRp cGxpZXIgPSBvcC0+ZmZ0Lm5jc19yZWNpcHJvY2FsOw0KPiA+Pj4+Pj4+ICsJZmN3LT5wb3dlcl9z aGlmdCA9IG9wLT5mZnQucG93ZXJfc2hpZnQ7ID4gKwlmY3ctPmV4cF9hZGoNCj4gPSBvcC0NCj4g Pj4+Pj4+PiBmZnQuZnAxNl9leHBfYWRqdXN0Ow0KPiA+Pj4+Pj4+ICsJZmN3LT5mcDE2X2luID0g Y2hlY2tfYml0KG9wLT5mZnQub3BfZmxhZ3MsDQo+ID4+Pj4+PiBSVEVfQkJERVZfRkZUX0ZQMTZf SU5QVVQpOw0KPiA+Pj4+Pj4+ICsJZmN3LT5mcDE2X291dCA9IGNoZWNrX2JpdChvcC0+ZmZ0Lm9w X2ZsYWdzLA0KPiA+Pj4+Pj4gUlRFX0JCREVWX0ZGVF9GUDE2X09VVFBVVCk7DQo+ID4+Pj4+Pj4g KwlmY3ctPnBvd2VyX2VuID0gY2hlY2tfYml0KG9wLT5mZnQub3BfZmxhZ3MsDQo+ID4+Pj4+PiBS VEVfQkJERVZfRkZUX1BPV0VSX01FQVMpOw0KPiA+Pj4+Pj4+ICsJaWYgKGNoZWNrX2JpdChvcC0+ ZmZ0Lm9wX2ZsYWdzLA0KPiA+Pj4+Pj4+ICsJCQlSVEVfQkJERVZfRkZUX0lERlRfQllQQVNTKSkg ew0KPiA+Pj4+Pj4+ICsJCWlmIChjaGVja19iaXQob3AtPmZmdC5vcF9mbGFncywNCj4gPj4+Pj4+ PiArDQo+IAlSVEVfQkJERVZfRkZUX1dJTkRPV0lOR19CWVBBU1MpKQ0KPiA+Pj4+Pj4+ICsJCQlm Y3ctPmJ5cGFzcyA9IDI7DQo+ID4+Pj4+Pj4gKwkJZWxzZQ0KPiA+Pj4+Pj4+ICsJCQlmY3ctPmJ5 cGFzcyA9IDE7DQo+ID4+Pj4+Pj4gKwl9IGVsc2UgaWYgKGNoZWNrX2JpdChvcC0+ZmZ0Lm9wX2Zs YWdzLA0KPiA+Pj4+Pj4+ICsJCQlSVEVfQkJERVZfRkZUX0RGVF9CWVBBU1MpKQ0KPiA+Pj4+Pj4+ ICsJCWZjdy0+YnlwYXNzID0gMzsNCj4gPj4+Pj4+PiArCWVsc2UNCj4gPj4+Pj4+PiArCQlmY3ct PmJ5cGFzcyA9IDA7DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhlIG9ubHkgZGlmZmVyZW5jZSBJIHNl ZSB3aXRoIFZSQjEgYXJlIGJhY2tlZCBieSBjb3JyZXNwb25kaW5nDQo+ID4+Pj4+PiBvcF9mbGFn cyAoUE9XRVIgJiBGUDE2KSwgaXMgdGhhdCBjb3JyZWN0PyBJZiBzbywgaXQgZG9lcyBub3QgbWFr ZQ0KPiA+Pj4+Pj4gc2Vuc2UgdG8gbWUgdG8gaGF2ZSBhIHNwZWNpZmljIGZ1bmN0aW9uIGZvciBW UkIyLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGVyZSBhcmUgbW9yZSBjaGFuZ2VzIGJ1dCB0aGVzZSBh cmUgb25seSBmb3JtYWxseSBlbmFibGVkIGluIHRoZQ0KPiA+Pj4+PiBuZXh0IHN0ZXBwaW5nIGhl bmNlIHNvbWUgb2YgdGhlIHJlbGF0ZWQgY29kZSBpcyBub3QgaW5jbHVkZWQgeWV0Lg0KPiA+Pj4+ PiBNb3JlIGdlbmVyYWxseQ0KPiA+Pj4+IHRoZSBGQ1cgYW5kIElQIGlzIGRpZmZlcmVudCBmcm9t IFZSQjEgaW1wbGVtZW50YXRpb24uDQo+ID4+Pj4NCj4gPj4+PiBDdXJyZW50bHksIHRoZSBjb2Rl IGlzIGFsbW9zdCBpZGVudGljYWwgc28gdnJiMSBpbXBsZW1lbnRhdGlvbg0KPiA+Pj4+IHNob3Vs ZCBiZSByZXVzZWQuIElmIHNvbWUgbGF0ZXIgY2hhbmdlcyBtYWtlcyB0aGUgdHdvDQo+ID4+Pj4g aW1wbGVtZW50YXRpb25zIGRpdmVyZ2UsIHRoZW4gd2UgY2FuIGNvbnNpZGVyIGhhdmluZyBhIGRl ZGljYXRlZA0KPiA+Pj4+IGZ1bmN0aW9uIGZvciBWUkIyIGF0IHRoYXQNCj4gPj4gdGltZS4NCj4g Pj4+DQo+ID4+PiBJZiBJIG1heSwgSSBiZWxpZXZlIHRoaXMgaXMgYmVzdCBhcy1pcyBub3RhYmx5 IGZvciBwYXRjaGVzIGFuZCBzdXBwb3J0Lg0KPiA+Pj4gVGhlIGZ1bmN0aW9ucyBhcmUgZmFpcmx5 IHNtYWxsIChub3QgbXVjaCBjb2RlIG92ZXJsYXANCj4gPj4+IHF1YW50aXRhdGl2ZWx5KSBhbmQg dGhlIHVuZGVybHlpbmcgSVAgaXMgZGlmZmVyZW50ICh3aXRoIG1vcmUNCj4gPj4+IGRpZmZlcmVu Y2VzIHdlIGNhbiBlbmFibGUgb3ZlciB0aW1lKS4gSSBkb27igJl0IHRoaW5rIGl0IHdvdWxkIGhl bHANCj4gPj4+IGFueW9uZSByZWFsbHkgdG8gdHJ5IHRvIG1ha2UNCj4gPj4gdGhlbSBjb2V4aXN0 IGZvciBhIHNtYWxsIHBlcmlvZCBvZiB0aW1lLg0KPiA+Pj4gRG9lcyB0aGF0IHNvdW5kIGZhaXI/ DQo+ID4+DQo+ID4+IEkgZGlzYWdyZWUsIGFzIEkgZXhwbGFpbmVkIHRoZSBjb2RlIGN1cnJlbnRs eSBpcyBhbG1vc3QgaWRlbnRpY2FsLCBzbw0KPiA+PiBqdXN0IHNoYXJlIHRoZSBjb2RlLg0KPiA+ Pg0KPiA+PiBZb3Ugd2lsbCBkaXZlcmdlLCBpZiAqcmVhbGx5KiBuZWNlc3NhcnksIHdoZW4gaXQg d2lsbCBtYWtlIG1vcmUgc2Vuc2UNCj4gPj4gdG8gaGF2ZSB0d28gc2VwYXJhdGUgZnVuY3Rpb25z LiBGb3Igbm93IGl0IGlzIG5vdCB0aGUgY2FzZSBpbiBteSBvcGluaW9uLg0KPiA+DQo+ID4gT0sg SSBoYWQgYW5vdGhlciBsb29rLiBJIGNhbiBzaGFyZSBhIGNvbW1vbiBkZXNjcmlwdG9yIGdlbmVy YXRpb24gZnVuY3Rpb24uDQo+IEZvciB0aGUgRkNXIGdlbmVyYXRpb24gdGhlc2UgYXJlIGp1c3Qg ZGlmZmVyZW50IHN0cnVjdHVyZXMgYW5kIHNpemVzLCBkaWZmZXJlbnQNCj4gcHJvdG90eXBlLCBJ IHJlYWxseSBkb24ndCB0aGluayBpdCB3b3VsZCBtYWtlIHNlbnNlIHRvIHRyeSB0byBhcnRpZmlj aWFsbHkgZ2VuZXJhdGUNCj4gdGhlbSB0b2dldGhlci4NCj4gPiBVcGRhdGluZyBpbiBuZXcgdjUg dGhpcyB3ZWVrLg0KPiANCj4gc3RydWN0IF9fcnRlX3BhY2tlZCBhY2NfZmN3X2ZmdCB7DQo+IAl1 aW50MzJfdCBpbl9mcmFtZV9zaXplOjE2LA0KPiAJCWxlYWRpbmdfcGFkX3NpemU6MTY7DQo+IAl1 aW50MzJfdCBvdXRfZnJhbWVfc2l6ZToxNiwNCj4gCQlsZWFkaW5nX2RlcGFkX3NpemU6MTY7DQo+ IAl1aW50MzJfdCBjc193aW5kb3dfc2VsOw0KPiAJdWludDMyX3QgY3Nfd2luZG93X3NlbDI6MTYs DQo+IAkJY3NfZW5hYmxlX2JtYXA6MTY7DQo+IAl1aW50MzJfdCBudW1fYW50ZW5uYXM6OCwNCj4g CQlpZGZ0X3NpemU6OCwNCj4gCQlkZnRfc2l6ZTo4LA0KPiAJCWNzX29mZnNldDo4Ow0KPiAJdWlu dDMyX3QgaWRmdF9zaGlmdDo4LA0KPiAJCWRmdF9zaGlmdDo4LA0KPiAJCWNzX211bHRpcGxpZXI6 MTY7DQo+IAl1aW50MzJfdCBieXBhc3M6MiwNCj4gCQlmcDE2X2luOjEsIC8qIE5vdCBzdXBwb3J0 ZWQgaW4gVlJCMSAqLw0KPiAJCWZwMTZfb3V0OjEsDQo+IAkJZXhwX2Fkajo0LA0KPiAJCXBvd2Vy X3NoaWZ0OjQsDQo+IAkJcG93ZXJfZW46MSwNCj4gCQlyZXM6MTk7DQo+IH07DQo+IA0KPiArc3Ry dWN0IF9fcnRlX3BhY2tlZCBhY2NfZmN3X2ZmdF8zIHsNCj4gCXVpbnQzMl90IGluX2ZyYW1lX3Np emU6MTYsDQo+IAkJbGVhZGluZ19wYWRfc2l6ZToxNjsNCj4gCXVpbnQzMl90IG91dF9mcmFtZV9z aXplOjE2LA0KPiAJCWxlYWRpbmdfZGVwYWRfc2l6ZToxNjsNCj4gCXVpbnQzMl90IGNzX3dpbmRv d19zZWw7DQo+IAl1aW50MzJfdCBjc193aW5kb3dfc2VsMjoxNiwNCj4gCQljc19lbmFibGVfYm1h cDoxNjsNCj4gCXVpbnQzMl90IG51bV9hbnRlbm5hczo4LA0KPiAJCWlkZnRfc2l6ZTo4LA0KPiAJ CWRmdF9zaXplOjgsDQo+IAkJY3Nfb2Zmc2V0Ojg7DQo+IAl1aW50MzJfdCBpZGZ0X3NoaWZ0Ojgs DQo+IAkJZGZ0X3NoaWZ0OjgsDQo+IAkJY3NfbXVsdGlwbGllcjoxNjsNCj4gCXVpbnQzMl90IGJ5 cGFzczoyLA0KPiAJCWZwMTZfaW46MSwNCj4gCQlmcDE2X291dDoxLA0KPiAJCWV4cF9hZGo6NCwN Cj4gCQlwb3dlcl9zaGlmdDo0LA0KPiAJCXBvd2VyX2VuOjEsDQo+IA0KPiA9PT0+IE5ldyBmaWVs ZHM6DQo+IAkJZW5hYmxlX2Rld2luOjEsDQo+IAkJZnJlcV9yZXNhbXBsZV9tb2RlOjIsDQo+IAkJ ZGVwYWRfb3V0cHV0X3NpemU6MTY7DQo+IAl1aW50MTZfdCBjc190aGV0YV8wW0FDQ19NQVhfQ1Nd Ow0KPiAJdWludDMyX3QgY3NfdGhldGFfZFtBQ0NfTUFYX0NTXTsNCj4gCWludDhfdCBjc190aW1l X29mZnNldFtBQ0NfTUFYX0NTXTsNCj4gfTsNCj4gDQo+IEhXIGRlc2lnbmVycyBkaWQgaXQgcmln aHQgd2l0aCBTVyBpbiBtaW5kLiBUaGVyZSBhIGp1c3QgbmV3IGZpZWxkcyBvbiBWUkIyLCBzbw0K PiBJTUhPIGl0IGNhbiBiZSBzaGFyZWQgYWxzby4NCg0KSSByZWFsbHkgZG9u4oCZdCBiZWxpZXZl IHdlIHNob3VsZCwgdGhleSBoYXZlIGRpZmZlcmVudCBzaXplIGFuZCBkaWZmZXJlbnQgRkNXLiAN CkkgZG9uJ3Qgd2FudCB0byBvYmZ1c2NhdGUgdGhpcyBpbiB0aGUgY29kZSBhbmQgbWFrZSBpdCBs b29rDQphcnRpZmljaWFsbHkgYXMgaWYgdGhleSBoYXZlIHRoZSBzYW1lIEZDVyBieSBkb2luZyBj YXN0IGZvciBzdHJ1Y3R1cmUgb2YgZGlmZmVyZW50IHNpemUuIA0KQWxzbyB0aGVyZSBhcmUgZXh0 cmEgc3RlcHBpbmcgdmFyaWF0aW9ucyB0aGF0IHdlIGhhdmUgdG8gbWFuYWdlIGhlcmUuIA0KDQpJ IGJlbGlldmUgdGhlIHByZXZpb3VzIHN1Z2dlc3Rpb24gdG8gY2hhbmdlIHRoZSBkZXNjcmlwdG9y IHdhcyB2ZXJ5IHZhbHVhYmxlDQpidXQgb24gdGhpcyB2ZXJ5IG9uZSB0aGF0IHdvdWxkIGJlIHRv byBhcnRpZmljaWFsIHRvIG1lIGZvciB0aGUgcmVhc29ucyBhYm92ZS4gDQoNClRoYW5rcw0KDQo+ IA0KPiA+DQo+ID4NCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBNYXhpbWUNCj4gPj4NCj4gPj4+ DQo+ID4+Pg0KPiA+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+ICt9DQo+ID4+Pj4+Pj4gKw0KPiA+ Pj4+Pj4+ICAgICAgc3RhdGljIGlubGluZSBpbnQNCj4gPj4+Pj4+PiAgICAgIHZyYjFfZG1hX2Rl c2NfZmZ0X2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9mZnRfb3AgKm9wLA0KPiA+Pj4+Pj4+ICAgICAg CQlzdHJ1Y3QgYWNjX2RtYV9yZXFfZGVzYyAqZGVzYywgQEAgLTM4ODIsNg0KPiA+PiArMzk0NCw1 OCBAQA0KPiA+Pj4+Pj4+IHZyYjFfZG1hX2Rlc2NfZmZ0X2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9m ZnRfb3ANCj4gPj4+Pj4+ICpvcCwNCj4gPj4+Pj4+PiAgICAgIAlyZXR1cm4gMDsNCj4gPj4+Pj4+ PiAgICAgIH0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICtzdGF0aWMgaW5saW5lIGludA0KPiA+Pj4+ Pj4+ICt2cmIyX2RtYV9kZXNjX2ZmdF9maWxsKHN0cnVjdCBydGVfYmJkZXZfZmZ0X29wICpvcCwN Cj4gPj4+Pj4+PiArCQlzdHJ1Y3QgYWNjX2RtYV9yZXFfZGVzYyAqZGVzYywNCj4gPj4+Pj4+PiAr CQlzdHJ1Y3QgcnRlX21idWYgKmlucHV0LCBzdHJ1Y3QgcnRlX21idWYgKm91dHB1dCwgc3RydWN0 DQo+ID4+Pj4+PiBydGVfbWJ1ZiAqd2luX2lucHV0LA0KPiA+Pj4+Pj4+ICsJCXN0cnVjdCBydGVf bWJ1ZiAqcHdyLCB1aW50MzJfdCAqaW5fb2Zmc2V0LCB1aW50MzJfdA0KPiA+Pj4+Pj4gKm91dF9v ZmZzZXQsDQo+ID4+Pj4+Pj4gKwkJdWludDMyX3QgKndpbl9vZmZzZXQsIHVpbnQzMl90ICpwd3Jf b2Zmc2V0KSB7DQo+ID4+Pj4+Pj4gKwlib29sIHB3cl9lbiA9IGNoZWNrX2JpdChvcC0+ZmZ0Lm9w X2ZsYWdzLA0KPiA+Pj4+Pj4gUlRFX0JCREVWX0ZGVF9QT1dFUl9NRUFTKTsNCj4gPj4+Pj4+PiAr CWJvb2wgd2luX2VuID0gY2hlY2tfYml0KG9wLT5mZnQub3BfZmxhZ3MsDQo+ID4+Pj4+PiBSVEVf QkJERVZfRkZUX0RFV0lORE9XSU5HKTsNCj4gPj4+Pj4+PiArCWludCBudW1fY3MgPSAwLCBpLCBi ZF9pZHggPSAxOw0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArCS8qIEZDVyBhbHJlYWR5IGRvbmUg Ki8NCj4gPj4+Pj4+PiArCWFjY19oZWFkZXJfaW5pdChkZXNjKTsNCj4gPj4+Pj4+PiArDQo+ID4+ Pj4+Pj4gKwlSVEVfU0VUX1VTRUQod2luX2lucHV0KTsNCj4gPj4+Pj4+PiArCVJURV9TRVRfVVNF RCh3aW5fb2Zmc2V0KTsNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKwlkZXNjLT5kYXRhX3B0cnNb YmRfaWR4XS5hZGRyZXNzID0NCj4gPj4+Pj4+PiArcnRlX3BrdG1idWZfaW92YV9vZmZzZXQoaW5w dXQsDQo+ID4+Pj4+PiAqaW5fb2Zmc2V0KTsNCj4gPj4+Pj4+PiArCWRlc2MtPmRhdGFfcHRyc1ti ZF9pZHhdLmJsZW4gPSBvcC0+ZmZ0LmlucHV0X3NlcXVlbmNlX3NpemUgKg0KPiA+Pj4+Pj4gQUND X0lRX1NJWkU7DQo+ID4+Pj4+Pj4gKwlkZXNjLT5kYXRhX3B0cnNbYmRfaWR4XS5ibGtpZCA9IEFD Q19ETUFfQkxLSURfSU47DQo+ID4+Pj4+Pj4gKwlkZXNjLT5kYXRhX3B0cnNbYmRfaWR4XS5sYXN0 ID0gMTsNCj4gPj4+Pj4+PiArCWRlc2MtPmRhdGFfcHRyc1tiZF9pZHhdLmRtYV9leHQgPSAwOw0K PiA+Pj4+Pj4+ICsJYmRfaWR4Kys7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsJZGVzYy0+ZGF0 YV9wdHJzW2JkX2lkeF0uYWRkcmVzcyA9DQo+ID4+Pj4+Pj4gK3J0ZV9wa3RtYnVmX2lvdmFfb2Zm c2V0KG91dHB1dCwNCj4gPj4+Pj4+ICpvdXRfb2Zmc2V0KTsNCj4gPj4+Pj4+PiArCWRlc2MtPmRh dGFfcHRyc1tiZF9pZHhdLmJsZW4gPSBvcC0+ZmZ0Lm91dHB1dF9zZXF1ZW5jZV9zaXplICoNCj4g Pj4+Pj4+IEFDQ19JUV9TSVpFOw0KPiA+Pj4+Pj4+ICsJZGVzYy0+ZGF0YV9wdHJzW2JkX2lkeF0u YmxraWQgPSBBQ0NfRE1BX0JMS0lEX09VVF9IQVJEOw0KPiA+Pj4+Pj4+ICsJZGVzYy0+ZGF0YV9w dHJzW2JkX2lkeF0ubGFzdCA9IHB3cl9lbiA/IDAgOiAxOw0KPiA+Pj4+Pj4+ICsJZGVzYy0+ZGF0 YV9wdHJzW2JkX2lkeF0uZG1hX2V4dCA9IDA7DQo+ID4+Pj4+Pj4gKwlkZXNjLT5tMmRsZW4gPSB3 aW5fZW4gPyAzIDogMjsNCj4gPj4+Pj4+PiArCWRlc2MtPmQybWxlbiA9IHB3cl9lbiA/IDIgOiAx Ow0KPiA+Pj4+Pj4+ICsJZGVzYy0+aWJfYW50X29mZnNldCA9IG9wLT5mZnQuaW5wdXRfc2VxdWVu Y2Vfc2l6ZTsNCj4gPj4+Pj4+PiArCWRlc2MtPm51bV9hbnQgPSBvcC0+ZmZ0Lm51bV9hbnRlbm5h c19sb2cyIC0gMzsNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKwlmb3IgKGkgPSAwOyBpIDwgUlRF X0JCREVWX01BWF9DUzsgaSsrKQ0KPiA+Pj4+Pj4+ICsJCWlmIChjaGVja19iaXQob3AtPmZmdC5j c19iaXRtYXAsIDEgPDwgaSkpDQo+ID4+Pj4+Pj4gKwkJCW51bV9jcysrOw0KPiA+Pj4+Pj4+ICsJ ZGVzYy0+bnVtX2NzID0gbnVtX2NzOw0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiArCWlmIChwd3Jf ZW4gJiYgcHdyKSB7DQo+ID4+Pj4+Pj4gKwkJYmRfaWR4Kys7DQo+ID4+Pj4+Pj4gKwkJZGVzYy0+ ZGF0YV9wdHJzW2JkX2lkeF0uYWRkcmVzcyA9DQo+ID4+Pj4+PiBydGVfcGt0bWJ1Zl9pb3ZhX29m ZnNldChwd3IsICpwd3Jfb2Zmc2V0KTsNCj4gPj4+Pj4+PiArCQlkZXNjLT5kYXRhX3B0cnNbYmRf aWR4XS5ibGVuID0gbnVtX2NzICogKDEgPDwgb3AtDQo+ID4+Pj4+Pj4gZmZ0Lm51bV9hbnRlbm5h c19sb2cyKSAqIDQ7DQo+ID4+Pj4+Pj4gKwkJZGVzYy0+ZGF0YV9wdHJzW2JkX2lkeF0uYmxraWQg PQ0KPiBBQ0NfRE1BX0JMS0lEX09VVF9TT0ZUOw0KPiA+Pj4+Pj4+ICsJCWRlc2MtPmRhdGFfcHRy c1tiZF9pZHhdLmxhc3QgPSAxOw0KPiA+Pj4+Pj4+ICsJCWRlc2MtPmRhdGFfcHRyc1tiZF9pZHhd LmRtYV9leHQgPSAwOw0KPiA+Pj4+Pj4+ICsJfQ0KPiA+Pj4+Pj4+ICsJZGVzYy0+b2JfY3ljX29m ZnNldCA9IG9wLT5mZnQub3V0cHV0X3NlcXVlbmNlX3NpemU7DQo+ID4+Pj4+Pj4gKwlkZXNjLT5v Yl9hbnRfb2Zmc2V0ID0gb3AtPmZmdC5vdXRwdXRfc2VxdWVuY2Vfc2l6ZSAqIG51bV9jczsNCj4g Pj4+Pj4+PiArCWRlc2MtPm9wX2FkZHIgPSBvcDsNCj4gPj4+Pj4+PiArCXJldHVybiAwOw0KPiA+ Pj4+Pj4+ICt9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgICAgIC8qKiBFbnF1ZXVlIG9uZSBGRlQg b3BlcmF0aW9uIGZvciBkZXZpY2UuICovDQo+ID4+Pj4+Pj4gICAgICBzdGF0aWMgaW5saW5lIGlu dA0KPiA+Pj4+Pj4+IEBAIC0zODg5LDIyICs0MDAzLDMyIEBAIHZyYl9lbnF1ZXVlX2ZmdF9vbmVf b3Aoc3RydWN0DQo+IGFjY19xdWV1ZQ0KPiA+Pj4+ICpxLA0KPiA+Pj4+Pj4gc3RydWN0IHJ0ZV9i YmRldl9mZnRfb3AgKm9wLA0KPiA+Pj4+Pj4+ICAgICAgCQl1aW50MTZfdCB0b3RhbF9lbnF1ZXVl ZF9jYnMpDQo+ID4+Pj4+Pj4gICAgICB7DQo+ID4+Pj4+Pj4gICAgICAJdW5pb24gYWNjX2RtYV9k ZXNjICpkZXNjOw0KPiA+Pj4+Pj4+IC0Jc3RydWN0IHJ0ZV9tYnVmICppbnB1dCwgKm91dHB1dDsN Cj4gPj4+Pj4+PiAtCXVpbnQzMl90IGluX29mZnNldCwgb3V0X29mZnNldDsNCj4gPj4+Pj4+PiAr CXN0cnVjdCBydGVfbWJ1ZiAqaW5wdXQsICpvdXRwdXQsICpwd3IsICp3aW47DQo+ID4+Pj4+Pj4g Kwl1aW50MzJfdCBpbl9vZmZzZXQsIG91dF9vZmZzZXQsIHB3cl9vZmZzZXQsIHdpbl9vZmZzZXQ7 DQo+ID4+Pj4+Pj4gICAgICAJc3RydWN0IGFjY19mY3dfZmZ0ICpmY3c7DQo+ID4+Pj4+Pj4NCj4g Pj4+Pj4+PiAgICAgIAlkZXNjID0gYWNjX2Rlc2MocSwgdG90YWxfZW5xdWV1ZWRfY2JzKTsNCj4g Pj4+Pj4+PiAgICAgIAlpbnB1dCA9IG9wLT5mZnQuYmFzZV9pbnB1dC5kYXRhOw0KPiA+Pj4+Pj4+ ICAgICAgCW91dHB1dCA9IG9wLT5mZnQuYmFzZV9vdXRwdXQuZGF0YTsNCj4gPj4+Pj4+PiArCXB3 ciA9IG9wLT5mZnQucG93ZXJfbWVhc19vdXRwdXQuZGF0YTsNCj4gPj4+Pj4+PiArCXdpbiA9IG9w LT5mZnQuZGV3aW5kb3dpbmdfaW5wdXQuZGF0YTsNCj4gPj4+Pj4+PiAgICAgIAlpbl9vZmZzZXQg PSBvcC0+ZmZ0LmJhc2VfaW5wdXQub2Zmc2V0Ow0KPiA+Pj4+Pj4+ICAgICAgCW91dF9vZmZzZXQg PSBvcC0+ZmZ0LmJhc2Vfb3V0cHV0Lm9mZnNldDsNCj4gPj4+Pj4+PiArCXB3cl9vZmZzZXQgPSBv cC0+ZmZ0LnBvd2VyX21lYXNfb3V0cHV0Lm9mZnNldDsNCj4gPj4+Pj4+PiArCXdpbl9vZmZzZXQg PSBvcC0+ZmZ0LmRld2luZG93aW5nX2lucHV0Lm9mZnNldDsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ ICAgICAgCWZjdyA9IChzdHJ1Y3QgYWNjX2Zjd19mZnQgKikgKHEtPmZjd19yaW5nICsNCj4gPj4+ Pj4+PiAgICAgIAkJCSgocS0+c3dfcmluZ19oZWFkICsgdG90YWxfZW5xdWV1ZWRfY2JzKSAmIHEt DQo+ID4+Pj4+Pj4gc3dfcmluZ193cmFwX21hc2spDQo+ID4+Pj4+Pj4gICAgICAJCQkqIEFDQ19N QVhfRkNXX1NJWkUpOw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gLQl2cmIxX2Zjd19mZnRfZmlsbChv cCwgZmN3KTsNCj4gPj4+Pj4+PiAtCXZyYjFfZG1hX2Rlc2NfZmZ0X2ZpbGwob3AsICZkZXNjLT5y ZXEsIGlucHV0LCBvdXRwdXQsDQo+ICZpbl9vZmZzZXQsDQo+ID4+Pj4+PiAmb3V0X29mZnNldCk7 DQo+ID4+Pj4+Pj4gKwlpZiAocS0+ZC0+ZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMV9WQVJJQU5UKSB7 DQo+ID4+Pj4+Pj4gKwkJdnJiMV9mY3dfZmZ0X2ZpbGwob3AsIGZjdyk7DQo+ID4+Pj4+Pj4gKwkJ dnJiMV9kbWFfZGVzY19mZnRfZmlsbChvcCwgJmRlc2MtPnJlcSwgaW5wdXQsIG91dHB1dCwNCj4g Pj4+Pj4+ICZpbl9vZmZzZXQsICZvdXRfb2Zmc2V0KTsNCj4gPj4+Pj4+PiArCX0gZWxzZSB7DQo+ ID4+Pj4+Pj4gKwkJdnJiMl9mY3dfZmZ0X2ZpbGwob3AsIChzdHJ1Y3QgYWNjX2Zjd19mZnRfMyAq KSBmY3cpOw0KPiA+Pj4+Pj4+ICsJCXZyYjJfZG1hX2Rlc2NfZmZ0X2ZpbGwob3AsICZkZXNjLT5y ZXEsIGlucHV0LCBvdXRwdXQsDQo+IHdpbiwNCj4gPj4+Pj4+IHB3ciwNCj4gPj4+Pj4+PiArCQkJ CSZpbl9vZmZzZXQsICZvdXRfb2Zmc2V0LCAmd2luX29mZnNldCwNCj4gPj4+Pj4+ICZwd3Jfb2Zm c2V0KTsNCj4gPj4+Pj4+PiArCX0NCj4gPj4+Pj4+PiAgICAgICNpZmRlZiBSVEVfTElCUlRFX0JC REVWX0RFQlVHDQo+ID4+Pj4+Pj4gICAgICAJcnRlX21lbWR1bXAoc3RkZXJyLCAiRkNXIiwgJmRl c2MtPnJlcS5mY3dfZmZ0LA0KPiA+Pj4+Pj4+ICAgICAgCQkJc2l6ZW9mKGRlc2MtPnJlcS5mY3df ZmZ0KSk7DQo+ID4+Pj4+DQo+ID4+Pg0KPiA+DQoNCg==