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 EB0D5A0548; Sat, 24 Sep 2022 00:31:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CF88B4067B; Sat, 24 Sep 2022 00:31:53 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 3A10A400D4 for ; Sat, 24 Sep 2022 00:31:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663972311; x=1695508311; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=8CpZzmMXnbvMdd+RsKXwgwbguFYaJumwB8W2BzrOeUs=; b=FO1DnoD1o8JltXoRMUg3SQyFiqG8xl8VI73Btsef/cBztPhKueoEJqIB OFAfl5JKvkwsqWiGJkk1wnDctHqw9ZtlG6PUo6O6rxYGyDOiuG971DuoH R7hfwKHr0DpSbMvnko1l8b9BCufR5F1PQ8NlWuILpULTuefYUjxh+iBih iu0Z1sTc9oHngXVRR3ZW+CDBV4g6ye1fGusUag8AZpjubJPxgj/EpUj/E 2aq7AeGutEryXC+Bk26TkLk2io8S4uHtDcOB+G51qQ4/lqoErB0LxU18F 8oCNZ2f171OpWdSGFIELHEJgR7HqEcIDJXtntFd6B6QVlpRTc3SQKToXN Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10479"; a="281074926" X-IronPort-AV: E=Sophos;i="5.93,340,1654585200"; d="scan'208";a="281074926" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2022 15:31:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,340,1654585200"; d="scan'208";a="615776884" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga007.jf.intel.com with ESMTP; 23 Sep 2022 15:31:49 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 23 Sep 2022 15:31:49 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 23 Sep 2022 15:31:49 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Fri, 23 Sep 2022 15:31:49 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.104) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Fri, 23 Sep 2022 15:31:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gUsyamJ3JgqgSBXCNHO6ZxfceX1P1y/5cUEcaPql7Y3fpeGIBB+EqTOWhsmCW8Wlwpn3+0KQt16zUT4PF2k5XSzJVB5a2EqiCOEd06Lt086fgvJuklCIeI6EbjOm5nqS5wweuoaeNaOPHKq63APvgdFTlFkwYhUIpl3F6G3Mtt+0kNFsNI/uccxxQTwuLdAqqHnzTP+ZfbrSwYOk7i6ik1ojCvcGS9M6y4pOk1jnURYkC8KONO3iLTuH0kyXfL1H+fm0thFAefaY7vnM9UHhoS/ZEyNofyy75anbTL8VyND5/ggA8nqjOKr08aGD7MgTT8f5mUQe1ogibaBwMZFhFg== 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=8CpZzmMXnbvMdd+RsKXwgwbguFYaJumwB8W2BzrOeUs=; b=bav4qE1fxJre2P7bY679IeNCDS7iS2a5uMW/C0etg69TdrJZwq9F0DFGkQSu8eDzg0ixHTPZwEgUCn2HocgeVFa/dctdVmkYaLUxbUQbG7TcPNkfFSfcPpegsJ2RgrVSzPzLAysI8IvJqy4IGCb5dkUT1ckBcBw8O/gyvmGnaEbZ/Ju75TAxORSArHF8iLo7MLzSX5BFDyBJ8r5FnWpeEg2NyVOOnzdw5DbEiqIE3jBO8gOJs64Lidrik1smVoLtcetSERm4lUlaYqInjRXhMvKYXJvlIHH7HoZ8hWvDLDLlCnmB9IgDeAA3Yw3P0UXVe/xMuvpVtiMzaB71m8sLcQ== 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 CY8PR11MB6843.namprd11.prod.outlook.com (2603:10b6:930:60::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.20; Fri, 23 Sep 2022 22:31:46 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf%7]) with mapi id 15.20.5654.020; Fri, 23 Sep 2022 22:31:46 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" , "thomas@monjalon.net" CC: "trix@redhat.com" , "mdr@ashroe.eu" , "Richardson, Bruce" , "hemant.agrawal@nxp.com" , "david.marchand@redhat.com" , "stephen@networkplumber.org" , "Vargas, Hernan" Subject: RE: [PATCH v4 10/14] baseband/acc: add support for FFT operations Thread-Topic: [PATCH v4 10/14] baseband/acc: add support for FFT operations Thread-Index: AQHYzho17i6fFXzf+k+cdZ07AlG18K3suxAAgADgzrA= Date: Fri, 23 Sep 2022 22:31:46 +0000 Message-ID: References: <1663806460-45162-1-git-send-email-nicolas.chautru@intel.com> <1663806460-45162-11-git-send-email-nicolas.chautru@intel.com> <3ec99dcc-898d-a916-0fe5-c1fbf7e77a37@redhat.com> In-Reply-To: <3ec99dcc-898d-a916-0fe5-c1fbf7e77a37@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 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_|CY8PR11MB6843:EE_ x-ms-office365-filtering-correlation-id: 57d0fc90-97d2-4bd3-e93b-08da9db36651 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mZ3AcmZJicD66OIxgmPCNYlWp3d/NlI6/VJ55wjmYkMSQDRf3NaDCAce/tOMGidgwmLEsPx7Cc4Y4Ty8bpQ2Sl4oKfteqxF8jh7M0rAsMbEeBD4Ekv5tWDn+CSJAJpTDVlKINaZK4Jj0oL8y///Mfj2qP61UBbtgN1XdQJ0UC800NAbMLPy4sFDjsIsOAFDqsnSxxGjD41hEtJYscCLBbj46Gv0A2/E00cMQT87h1TK+YoVqQI+9+rlhwf3/2gF6TDuD6gFDisGfRhNN9EmLb+dPcCDXXgUPagfa6qpWmWK59mdvZ69sXCqfv+f8fPtThjUvZBCvVV8HlCwD1uLctxqFBNyq+mYNwcNQbijRPltxhK3XujMurFw6yzF74UTANni1NXbYx6749I1dPvDonmBZUt9SmkEgFw1O3hb2WcA0LbDZobeOBFLm83ZXiLfZEveh+/pW60I5vzHx6lPqjPA1vmfBU3hAiHmE2McHTU/e3qKkLPWNCSuLiAPs/89PzjkYpNbs8kZ+aeFtRfnF29WN2cR615oYjC9XEEUj9V2Vb6GlVXkOC0KFwL3V8ZPOagv1G5UTbjuu3Hj/Go/HvuX9chqGuphDTZ+2suvIosjJD1zzwHU/CYsjt6Av33SaGQUJYxces1zc6Z/U2Zp2qQgXjhxX+8timyqHwPHEMquSel7nOhSYtNe0SMNIzhn7tnmhRn+nZ/h4V2JLSqe0R8/76okupqM9Z5QkVRzKSSVlqGDamVgTtG6hUBtrY98AmFVWclF5GGNGyUcfSfDdECmsD1R2Pn/Th0K7nfeEvxQ= 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:(13230022)(39860400002)(376002)(136003)(346002)(366004)(396003)(451199015)(316002)(76116006)(66946007)(8676002)(4326008)(9686003)(26005)(54906003)(110136005)(66476007)(82960400001)(66446008)(2906002)(66556008)(53546011)(7696005)(83380400001)(186003)(6506007)(30864003)(86362001)(8936002)(64756008)(33656002)(52536014)(5660300002)(122000001)(478600001)(41300700001)(38100700002)(71200400001)(38070700005)(107886003)(55016003)(461764006); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RTgwaEFmUm14bGgzZzJROTJGS1FLV0gwRTlhVXcvbmpnOUdWczlRdFVPajFG?= =?utf-8?B?T09DaVlxSmpnRWt3SjRBa0FiNEF6SWg1dG84ZmJQaWk3OVE0YVdNYWYwVTBj?= =?utf-8?B?bVJidDh4eDRjNmNKUHp4aUhMWmlMRUxUYk0rTzVpWnlMdUJFcGdtM1JLU00x?= =?utf-8?B?UUYycVlvOXhzdUc2eTk3cmIvMWluSldRQlYyQVlmazZKQk84TFdJOWJOZHIw?= =?utf-8?B?SHdZNDZad2U0SmZyQnM4NWZMS2wwbGV1L2doL0lUSDN3ZzJPS1lzR1Q0WExT?= =?utf-8?B?SmdjYnFkb2Y5aEJVT0NROThoYXVMWXRSL05sTHB6eGhlQllYMkNSanJIK2JR?= =?utf-8?B?aXJpOXVQai9IMFJ2WUpOeG16WktRWUxjT3BoWHdycG5VMTlZejV2UWpXWDFD?= =?utf-8?B?cW1Ob1JYa29UWENMeEJXbklCblByQ0l6SjhoeVVuNnd6am1VTjdzeGovdFhW?= =?utf-8?B?YXNUUVA4UEFWb2ZvZE8rRlJGVnBobzc5QkdQQVowb2dvSythNlNQZS82cC95?= =?utf-8?B?dGtWTGRDeGZUZFdSSlFCYUFKNG5venBOc1dwQ0tJU29FQzZBdDdxRkdUaXpl?= =?utf-8?B?OE1jNW1CTzdMWWt3S1l4TVp2ZzNuN2JWQnV4RDF2dFFwTFRPK21jK295ZU44?= =?utf-8?B?MmhUWGRNTDNDbXgzdGdtZGs3WExXUWREMnczcWp4VWl6enYxczJSQVYra0hz?= =?utf-8?B?UTlQNXQxWVBoYTdnRWVPclVyYXYyd3MrbzE3bDE1N3FoUTRGNFhaT0VLNGZS?= =?utf-8?B?LzNVN0hPUWd6eEJmeWNUQ1ZrUjY3Z2xIb295TjI5OG4yRVVxd2ZiZWtoeTF1?= =?utf-8?B?U3FCNE9STVBoeXRnWllMd0MwR3R4dHc0a3dla2RSWUp1Q3oycFE5cjRGMjhM?= =?utf-8?B?SDFNVXdnODZRVWUzK3h1MnJ2eExhaFFYTm5aTmVyVDVkWGhHdEtMT2NLRmgy?= =?utf-8?B?Si9mVzd0Lzk1bUZWUTFvVUVNZGx5YXExSzRZazg2bVI0Wk5HcGdxZ1pjYmpZ?= =?utf-8?B?MWJIQWpISDYrSDg5Z2hqYzV3UzBXbHlDVE5DeGZoR0dMcDRNd096RVpaREVm?= =?utf-8?B?MFNsTW5yNkg1cDBNRElESmZqZ0x0dThLSHJGQ29rcUxpWm5SUXVVb2EvYjdo?= =?utf-8?B?SzlsRW5jK3p3VnRjWEFmc3FqQjA4Sm9YNE8rK3JMeE1kNGRNTExLUzFnSUx0?= =?utf-8?B?VEtQT3BuVGdpNE44MVhRdVFXZHliTm9jRGZhbk1pKzNCN0laUlBoaExGdlRZ?= =?utf-8?B?djhPMzZwcThZRkFqeDZDMjhvRW13L1B6ak5NcVRVbVhNTUU0M0k4UEluYi8z?= =?utf-8?B?cGIwbzQvSVU0eU0rQU1ocVMyZHFTUVMxaWw2b3JkMVp5R1JoZkZCd2phT0h1?= =?utf-8?B?V2cwUTlrOGhGdFNYSm1vV0hxcjZnd0hSWE1JZCtYQ1BnbWNCS1lyTzNSWTV0?= =?utf-8?B?Tm45VTU2OEFPRk40Y0cxdGdrVU9DeDZqdHBZcm1VdkgvMGNrS2ViMG5GL2gw?= =?utf-8?B?MHBZRkF1eUtRanZ5RHlac0hDdzhiL3BXK2RWbFdnOEZNQzlpaWY4YXFmMlVM?= =?utf-8?B?cDV4Y2xuL3d4ZFRhU1N2UENSQ3Q1K2gxMWFZemVNK0FORlBVWXBoenI3aHVG?= =?utf-8?B?RjlZcTRjakpJbU9rQ043R0gxcEtBQTNtV29xL0U0dE8zamg1L3lNQURjT2dO?= =?utf-8?B?VkZLK1lZMnJPaGFMejRpZzFTbmpEdTIvRGtRR0hpZGp5bFFqV0ZtQTFJYzli?= =?utf-8?B?Uk4wVGROQTNqbitlV3pUMUl2bFV5M21YdW0yY3ZtbllqMGcrYTNyTm0veXhY?= =?utf-8?B?eHlGM0EvMTByUXVwSE5FbGpoTFpBNVJUU1BLaEk0NmtTVEhhZ3hqQk5OL2x3?= =?utf-8?B?VTdWSVFwS28rYzhabFJBTktrWUxxWDYrd2JmbHc0QjA5eFRwUzB2bWNTaGJE?= =?utf-8?B?QjRVS3pORjJtQlZYdlpWZlBHZWh0dDJ4eGtUTGh2YmxHb0ZudzR2c0VXc0RH?= =?utf-8?B?SkFCN24xalNEOFZWUmZxb2Z3SU5CL0lnSkdRYVhndUtjY3ZSM0ZvQUFhU0ZQ?= =?utf-8?B?QlZtQUl3Sk5Ydy80d2ptV0dkNmFlaXZOOHoyeW9BOVpyQk50MndsOXlqZnlN?= =?utf-8?Q?so5AzCQZZcJuGVVN6F1zYWhc5?= 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: 57d0fc90-97d2-4bd3-e93b-08da9db36651 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2022 22:31:46.7541 (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: RGtJCLrrA46Yr1Loeryl4ccaZM54Nw8iH04D04LeqLd9r+UiQWR/NW/2UU6HaDRk2MnGNDXr1VJfkMyKDLQcE9/69f1K+LG4vlf1YGqtyXc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB6843 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 IFNlcHRlbWJlciAyMywgMjAyMiAyOjA2IEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNv bGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOw0KPiB0aG9tYXNAbW9uamFsb24u bmV0DQo+IENjOiB0cml4QHJlZGhhdC5jb207IG1kckBhc2hyb2UuZXU7IFJpY2hhcmRzb24sIEJy dWNlDQo+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGhlbWFudC5hZ3Jhd2FsQG54cC5j b207DQo+IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb207IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIu b3JnOyBWYXJnYXMsDQo+IEhlcm5hbiA8aGVybmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0ggdjQgMTAvMTRdIGJhc2ViYW5kL2FjYzogYWRkIHN1cHBvcnQgZm9yIEZG VCBvcGVyYXRpb25zDQo+IA0KPiANCj4gDQo+IE9uIDkvMjIvMjIgMDI6MjcsIE5pYyBDaGF1dHJ1 IHdyb3RlOg0KPiA+IEFkZCBmdW5jdGlvbnMgYW5kIGNhcGFiaWxpdHkgZm9yIEZGVCBwcm9jZXNz aW5nDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBOaWMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1 QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2My MDBfcG1kLmMgfCAyNTENCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiA+ ICAgMSBmaWxlIGNoYW5nZWQsIDI0OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MyMDBfcG1kLmMN Cj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MyMDBfcG1kLmMNCj4gPiBpbmRleCAz NWVhMGZlLi5mYTIzYjZlIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0 ZV9hY2MyMDBfcG1kLmMNCj4gPiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfYWNjMjAw X3BtZC5jDQo+ID4gQEAgLTcxNyw2ICs3MTcsMjEgQEANCj4gPiAgIAkJCS5udW1fYnVmZmVyc19z b2Z0X291dCA9IDAsDQo+ID4gICAJCQl9DQo+ID4gICAJCX0sDQo+ID4gKwkJew0KPiA+ICsJCQku dHlwZQk9IFJURV9CQkRFVl9PUF9GRlQsDQo+ID4gKwkJCS5jYXAuZmZ0ID0gew0KPiA+ICsJCQkJ LmNhcGFiaWxpdHlfZmxhZ3MgPQ0KPiA+ICsNCj4gCVJURV9CQkRFVl9GRlRfV0lORE9XSU5HIHwN Cj4gPiArDQo+IAlSVEVfQkJERVZfRkZUX0NTX0FESlVTVE1FTlQgfA0KPiA+ICsNCj4gCVJURV9C QkRFVl9GRlRfREZUX0JZUEFTUyB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX0ZGVF9JREZUX0JZUEFT UyB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX0ZGVF9XSU5ET1dJTkdfQllQQVNTLA0KPiA+ICsJCQkJ Lm51bV9idWZmZXJzX3NyYyA9DQo+ID4gKw0KPiAJUlRFX0JCREVWX0xEUENfTUFYX0NPREVfQkxP Q0tTLA0KPiA+ICsJCQkJLm51bV9idWZmZXJzX2RzdCA9DQo+ID4gKw0KPiAJUlRFX0JCREVWX0xE UENfTUFYX0NPREVfQkxPQ0tTLA0KPiA+ICsJCQl9DQo+ID4gKwkJfSwNCj4gPiAgIAkJUlRFX0JC REVWX0VORF9PRl9DQVBBQklMSVRJRVNfTElTVCgpDQo+ID4gICAJfTsNCj4gPg0KPiA+IEBAIC03 MzksMTIgKzc1NCwxMyBAQA0KPiA+ICAgCQkJZC0+YWNjX2NvbmYucV91bF81Zy5udW1fcWdyb3Vw czsNCj4gPiAgIAlkZXZfaW5mby0+bnVtX3F1ZXVlc1tSVEVfQkJERVZfT1BfTERQQ19FTkNdID0g ZC0NCj4gPmFjY19jb25mLnFfZGxfNWcubnVtX2Fxc19wZXJfZ3JvdXBzICoNCj4gPiAgIAkJCWQt PmFjY19jb25mLnFfZGxfNWcubnVtX3Fncm91cHM7DQo+ID4gLQlkZXZfaW5mby0+bnVtX3F1ZXVl c1tSVEVfQkJERVZfT1BfRkZUXSA9IDA7DQo+ID4gKwlkZXZfaW5mby0+bnVtX3F1ZXVlc1tSVEVf QkJERVZfT1BfRkZUXSA9IGQtDQo+ID5hY2NfY29uZi5xX2ZmdC5udW1fYXFzX3Blcl9ncm91cHMg Kg0KPiA+ICsJCQlkLT5hY2NfY29uZi5xX2ZmdC5udW1fcWdyb3VwczsNCj4gPiAgIAlkZXZfaW5m by0+cXVldWVfcHJpb3JpdHlbUlRFX0JCREVWX09QX1RVUkJPX0RFQ10gPSBkLQ0KPiA+YWNjX2Nv bmYucV91bF80Zy5udW1fcWdyb3VwczsNCj4gPiAgIAlkZXZfaW5mby0+cXVldWVfcHJpb3JpdHlb UlRFX0JCREVWX09QX1RVUkJPX0VOQ10gPSBkLQ0KPiA+YWNjX2NvbmYucV9kbF80Zy5udW1fcWdy b3VwczsNCj4gPiAgIAlkZXZfaW5mby0+cXVldWVfcHJpb3JpdHlbUlRFX0JCREVWX09QX0xEUENf REVDXSA9IGQtDQo+ID5hY2NfY29uZi5xX3VsXzVnLm51bV9xZ3JvdXBzOw0KPiA+ICAgCWRldl9p bmZvLT5xdWV1ZV9wcmlvcml0eVtSVEVfQkJERVZfT1BfTERQQ19FTkNdID0gZC0NCj4gPmFjY19j b25mLnFfZGxfNWcubnVtX3Fncm91cHM7DQo+ID4gLQlkZXZfaW5mby0+cXVldWVfcHJpb3JpdHlb UlRFX0JCREVWX09QX0ZGVF0gPSAwOw0KPiA+ICsJZGV2X2luZm8tPnF1ZXVlX3ByaW9yaXR5W1JU RV9CQkRFVl9PUF9GRlRdID0NCj4gPiArZC0+YWNjX2NvbmYucV9mZnQubnVtX3Fncm91cHM7DQo+ ID4gICAJZGV2X2luZm8tPm1heF9udW1fcXVldWVzID0gMDsNCj4gPiAgIAlmb3IgKGkgPSBSVEVf QkJERVZfT1BfTk9ORTsgaSA8PSBSVEVfQkJERVZfT1BfRkZUOyBpKyspDQo+ID4gICAJCWRldl9p bmZvLT5tYXhfbnVtX3F1ZXVlcyArPSBkZXZfaW5mby0+bnVtX3F1ZXVlc1tpXTsNCj4gQEAgLTMw MzQsNg0KPiA+ICszMDUwLDIzNSBAQA0KPiA+ICAgCXJldHVybiBpOw0KPiA+ICAgfQ0KPiA+DQo+ ID4gKy8qIEZpbGwgaW4gYSBmcmFtZSBjb250cm9sIHdvcmQgZm9yIEZGVCBwcm9jZXNzaW5nLiAq LyBzdGF0aWMgaW5saW5lDQo+ID4gK3ZvaWQgYWNjMjAwX2Zjd19mZnRfZmlsbChzdHJ1Y3QgcnRl X2JiZGV2X2ZmdF9vcCAqb3AsIHN0cnVjdA0KPiA+ICthY2NfZmN3X2ZmdCAqZmN3KSB7DQo+ID4g KwlmY3ctPmluX2ZyYW1lX3NpemUgPSBvcC0+ZmZ0LmlucHV0X3NlcXVlbmNlX3NpemU7DQo+ID4g KwlmY3ctPmxlYWRpbmdfcGFkX3NpemUgPSBvcC0+ZmZ0LmlucHV0X2xlYWRpbmdfcGFkZGluZzsN Cj4gPiArCWZjdy0+b3V0X2ZyYW1lX3NpemUgPSBvcC0+ZmZ0Lm91dHB1dF9zZXF1ZW5jZV9zaXpl Ow0KPiA+ICsJZmN3LT5sZWFkaW5nX2RlcGFkX3NpemUgPSBvcC0+ZmZ0Lm91dHB1dF9sZWFkaW5n X2RlcGFkZGluZzsNCj4gPiArCWZjdy0+Y3Nfd2luZG93X3NlbCA9IG9wLT5mZnQud2luZG93X2lu ZGV4WzBdICsNCj4gPiArCQkJKG9wLT5mZnQud2luZG93X2luZGV4WzFdIDw8IDgpICsNCj4gPiAr CQkJKG9wLT5mZnQud2luZG93X2luZGV4WzJdIDw8IDE2KSArDQo+ID4gKwkJCShvcC0+ZmZ0Lndp bmRvd19pbmRleFszXSA8PCAyNCk7DQo+ID4gKwlmY3ctPmNzX3dpbmRvd19zZWwyID0gb3AtPmZm dC53aW5kb3dfaW5kZXhbNF0gKw0KPiA+ICsJCQkob3AtPmZmdC53aW5kb3dfaW5kZXhbNV0gPDwg OCk7DQo+ID4gKwlmY3ctPmNzX2VuYWJsZV9ibWFwID0gb3AtPmZmdC5jc19iaXRtYXA7DQo+ID4g KwlmY3ctPm51bV9hbnRlbm5hcyA9IG9wLT5mZnQubnVtX2FudGVubmFzX2xvZzI7DQo+ID4gKwlm Y3ctPmlkZnRfc2l6ZSA9IG9wLT5mZnQuaWRmdF9sb2cyOw0KPiA+ICsJZmN3LT5kZnRfc2l6ZSA9 IG9wLT5mZnQuZGZ0X2xvZzI7DQo+ID4gKwlmY3ctPmNzX29mZnNldCA9IG9wLT5mZnQuY3NfdGlt ZV9hZGp1c3RtZW50Ow0KPiA+ICsJZmN3LT5pZGZ0X3NoaWZ0ID0gb3AtPmZmdC5pZGZ0X3NoaWZ0 Ow0KPiA+ICsJZmN3LT5kZnRfc2hpZnQgPSBvcC0+ZmZ0LmRmdF9zaGlmdDsNCj4gPiArCWZjdy0+ Y3NfbXVsdGlwbGllciA9IG9wLT5mZnQubmNzX3JlY2lwcm9jYWw7DQo+ID4gKwlpZiAoY2hlY2tf Yml0KG9wLT5mZnQub3BfZmxhZ3MsDQo+ID4gKwkJCVJURV9CQkRFVl9GRlRfSURGVF9CWVBBU1Mp KSB7DQo+ID4gKwkJaWYgKGNoZWNrX2JpdChvcC0+ZmZ0Lm9wX2ZsYWdzLA0KPiA+ICsJCQkJUlRF X0JCREVWX0ZGVF9XSU5ET1dJTkdfQllQQVNTKSkNCj4gPiArCQkJZmN3LT5ieXBhc3MgPSAyOw0K PiA+ICsJCWVsc2UNCj4gPiArCQkJZmN3LT5ieXBhc3MgPSAxOw0KPiA+ICsJfSBlbHNlIGlmIChj aGVja19iaXQob3AtPmZmdC5vcF9mbGFncywNCj4gPiArCQkJUlRFX0JCREVWX0ZGVF9ERlRfQllQ QVNTKSkNCj4gPiArCQlmY3ctPmJ5cGFzcyA9IDM7DQo+ID4gKwllbHNlDQo+ID4gKwkJZmN3LT5i eXBhc3MgPSAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIGludA0KPiA+ICth Y2MyMDBfZG1hX2Rlc2NfZmZ0X2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9mZnRfb3AgKm9wLA0KPiA+ ICsJCXN0cnVjdCBhY2NfZG1hX3JlcV9kZXNjICpkZXNjLA0KPiA+ICsJCXN0cnVjdCBydGVfbWJ1 ZiAqaW5wdXQsIHN0cnVjdCBydGVfbWJ1ZiAqb3V0cHV0LA0KPiA+ICsJCXVpbnQzMl90ICppbl9v ZmZzZXQsIHVpbnQzMl90ICpvdXRfb2Zmc2V0KSB7DQo+ID4gKwkvKiBGQ1cgYWxyZWFkeSBkb25l ICovDQo+ID4gKwlhY2NfaGVhZGVyX2luaXQoZGVzYyk7DQo+ID4gKwlkZXNjLT5kYXRhX3B0cnNb MV0uYWRkcmVzcyA9DQo+ID4gKwkJCXJ0ZV9wa3RtYnVmX2lvdmFfb2Zmc2V0KGlucHV0LCAqaW5f b2Zmc2V0KTsNCj4gPiArCWRlc2MtPmRhdGFfcHRyc1sxXS5ibGVuID0gb3AtPmZmdC5pbnB1dF9z ZXF1ZW5jZV9zaXplICogNDsNCj4gPiArCWRlc2MtPmRhdGFfcHRyc1sxXS5ibGtpZCA9IEFDQ19E TUFfQkxLSURfSU47DQo+ID4gKwlkZXNjLT5kYXRhX3B0cnNbMV0ubGFzdCA9IDE7DQo+ID4gKwlk ZXNjLT5kYXRhX3B0cnNbMV0uZG1hX2V4dCA9IDA7DQo+ID4gKwlkZXNjLT5kYXRhX3B0cnNbMl0u YWRkcmVzcyA9DQo+ID4gKwkJCXJ0ZV9wa3RtYnVmX2lvdmFfb2Zmc2V0KG91dHB1dCwgKm91dF9v ZmZzZXQpOw0KPiA+ICsJZGVzYy0+ZGF0YV9wdHJzWzJdLmJsZW4gPSBvcC0+ZmZ0Lm91dHB1dF9z ZXF1ZW5jZV9zaXplICogNDsNCj4gPiArCWRlc2MtPmRhdGFfcHRyc1syXS5ibGtpZCA9IEFDQ19E TUFfQkxLSURfT1VUX0hBUkQ7DQo+ID4gKwlkZXNjLT5kYXRhX3B0cnNbMl0ubGFzdCA9IDE7DQo+ ID4gKwlkZXNjLT5kYXRhX3B0cnNbMl0uZG1hX2V4dCA9IDA7DQo+ID4gKwlkZXNjLT5tMmRsZW4g PSAyOw0KPiA+ICsJZGVzYy0+ZDJtbGVuID0gMTsNCj4gPiArCWRlc2MtPmliX2FudF9vZmZzZXQg PSBvcC0+ZmZ0LmlucHV0X3NlcXVlbmNlX3NpemU7DQo+ID4gKwlkZXNjLT5udW1fYW50ID0gb3At PmZmdC5udW1fYW50ZW5uYXNfbG9nMiAtIDM7DQo+ID4gKwlpbnQgbnVtX2NzID0gMCwgaTsNCj4g PiArCWZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKQ0KPiA+ICsJCWlmIChjaGVja19iaXQob3AtPmZm dC5jc19iaXRtYXAsIDEgPDwgaSkpDQo+ID4gKwkJCW51bV9jcysrOw0KPiA+ICsJZGVzYy0+bnVt X2NzID0gbnVtX2NzOw0KPiA+ICsJZGVzYy0+b2JfY3ljX29mZnNldCA9IG9wLT5mZnQub3V0cHV0 X3NlcXVlbmNlX3NpemU7DQo+ID4gKwlkZXNjLT5vYl9hbnRfb2Zmc2V0ID0gb3AtPmZmdC5vdXRw dXRfc2VxdWVuY2Vfc2l6ZSAqIG51bV9jczsNCj4gPiArCWRlc2MtPm9wX2FkZHIgPSBvcDsNCj4g PiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsNCj4gPiArLyoqIEVucXVldWUgb25l IEZGVCBvcGVyYXRpb24gZm9yIEFDQzIwMCBkZXZpY2UqLyBzdGF0aWMgaW5saW5lIGludA0KPiA+ ICtlbnF1ZXVlX2ZmdF9vbmVfb3Aoc3RydWN0IGFjY19xdWV1ZSAqcSwgc3RydWN0IHJ0ZV9iYmRl dl9mZnRfb3AgKm9wLA0KPiA+ICsJCXVpbnQxNl90IHRvdGFsX2VucXVldWVkX2NicykNCj4gPiAr ew0KPiA+ICsJdW5pb24gYWNjX2RtYV9kZXNjICpkZXNjOw0KPiA+ICsJdWludDE2X3QgZGVzY19p ZHggPSAoKHEtPnN3X3JpbmdfaGVhZCArIHRvdGFsX2VucXVldWVkX2NicykNCj4gPiArCQkJJiBx LT5zd19yaW5nX3dyYXBfbWFzayk7DQo+ID4gKwlkZXNjID0gcS0+cmluZ19hZGRyICsgZGVzY19p ZHg7DQo+ID4gKwlzdHJ1Y3QgcnRlX21idWYgKmlucHV0LCAqb3V0cHV0Ow0KPiA+ICsJdWludDMy X3QgaW5fb2Zmc2V0LCBvdXRfb2Zmc2V0Ow0KPiA+ICsJaW5wdXQgPSBvcC0+ZmZ0LmJhc2VfaW5w dXQuZGF0YTsNCj4gPiArCW91dHB1dCA9IG9wLT5mZnQuYmFzZV9vdXRwdXQuZGF0YTsNCj4gPiAr CWluX29mZnNldCA9IG9wLT5mZnQuYmFzZV9pbnB1dC5vZmZzZXQ7DQo+ID4gKwlvdXRfb2Zmc2V0 ID0gb3AtPmZmdC5iYXNlX291dHB1dC5vZmZzZXQ7ICNpZmRlZg0KPiA+ICtSVEVfTElCUlRFX0JC REVWX0RFQlVHDQo+ID4gKwlpZiAodW5saWtlbHkoaW5wdXQgPT0gTlVMTCkpIHsNCj4gPiArCQly dGVfYmJkZXZfbG9nKEVSUiwgIkludmFsaWQgbWJ1ZiBwb2ludGVyIik7DQo+ID4gKwkJcmV0dXJu IC1FRkFVTFQ7DQo+ID4gKwl9DQo+ID4gKyNlbmRpZg0KPiANCj4gU2FtZSBjb21tZW50IGFzIG9u IHByZXZpb3VzIHBhdGNoLCBpZiBuZWVkZWQganVzdCBoYXZlIHRoaXMgY2hlY2sgYnkNCj4gZGVm YXVsdCwgb3RoZXJ3aXNlIGRyb3AgaXQuDQoNCk9LDQoNCj4gDQo+ID4gKwlzdHJ1Y3QgYWNjX2Zj d19mZnQgKmZjdzsNCj4gDQo+IERvbid0IG1peCBkZWNsYXJhdGlvbnMgJiBjb2RlLg0KDQpPSw0K DQo+IA0KPiA+ICsJZmN3ID0gJmRlc2MtPnJlcS5mY3dfZmZ0Ow0KPiA+ICsJYWNjMjAwX2Zjd19m ZnRfZmlsbChvcCwgZmN3KTsNCj4gPiArCWFjYzIwMF9kbWFfZGVzY19mZnRfZmlsbChvcCwgJmRl c2MtPnJlcSwgaW5wdXQsIG91dHB1dCwNCj4gPiArCQkJJmluX29mZnNldCwgJm91dF9vZmZzZXQp Ow0KPiA+ICsjaWZkZWYgUlRFX0xJQlJURV9CQkRFVl9ERUJVRw0KPiA+ICsJcnRlX21lbWR1bXAo c3RkZXJyLCAiRkNXIiwgJmRlc2MtPnJlcS5mY3dfZmZ0LA0KPiA+ICsJCQlzaXplb2YoZGVzYy0+ cmVxLmZjd19mZnQpKTsNCj4gPiArCXJ0ZV9tZW1kdW1wKHN0ZGVyciwgIlJlcSBEZXNjLiIsIGRl c2MsIHNpemVvZigqZGVzYykpOyAjZW5kaWYNCj4gPiArCXJldHVybiAxOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsvKiBFbnF1ZXVlIGRlY29kZSBvcGVyYXRpb25zIGZvciBBQ0MyMDAgZGV2aWNlLiAq LyBzdGF0aWMgdWludDE2X3QNCj4gPiArYWNjMjAwX2VucXVldWVfZmZ0KHN0cnVjdCBydGVfYmJk ZXZfcXVldWVfZGF0YSAqcV9kYXRhLA0KPiA+ICsJCXN0cnVjdCBydGVfYmJkZXZfZmZ0X29wICoq b3BzLCB1aW50MTZfdCBudW0pIHsNCj4gPiArCWludDMyX3QgYXFfYXZhaWwgPSBhY2NfYXFfYXZh aWwocV9kYXRhLCBudW0pOw0KPiA+ICsJaWYgKHVubGlrZWx5KChhcV9hdmFpbCA8PSAwKSB8fCAo bnVtID09IDApKSkNCj4gPiArCQlyZXR1cm4gMDsNCj4gDQo+IERvbid0IG1peCBkZWNsYXJhdGlv bnMgJiBjb2RlLg0KDQpPSw0KDQo+IA0KPiA+ICsJc3RydWN0IGFjY19xdWV1ZSAqcSA9IHFfZGF0 YS0+cXVldWVfcHJpdmF0ZTsNCj4gPiArCWludDMyX3QgYXZhaWwgPSBhY2NfcmluZ19hdmFpbF9l bnEocSk7DQo+ID4gKwl1aW50MTZfdCBpOw0KPiA+ICsJdW5pb24gYWNjX2RtYV9kZXNjICpkZXNj Ow0KPiA+ICsJaW50IHJldDsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBudW07ICsraSkgew0KPiA+ ICsJCS8qIENoZWNrIGlmIHRoZXJlIGFyZSBhdmFpbGFibGUgc3BhY2UgZm9yIGZ1cnRoZXIgcHJv Y2Vzc2luZyAqLw0KPiA+ICsJCWlmICh1bmxpa2VseShhdmFpbCA8IDEpKQ0KPiA+ICsJCQlicmVh azsNCj4gPiArCQlhdmFpbCAtPSAxOw0KPiA+ICsJCXJldCA9IGVucXVldWVfZmZ0X29uZV9vcChx LCBvcHNbaV0sIGkpOw0KPiA+ICsJCWlmIChyZXQgPCAwKQ0KPiA+ICsJCQlicmVhazsNCj4gPiAr CX0NCj4gPiArDQo+ID4gKwlpZiAodW5saWtlbHkoaSA9PSAwKSkNCj4gPiArCQlyZXR1cm4gMDsg LyogTm90aGluZyB0byBlbnF1ZXVlICovDQo+ID4gKw0KPiA+ICsJLyogU2V0IFNEb25lIGluIGxh c3QgQ0IgaW4gZW5xdWV1ZWQgb3BzIGZvciBDQiBtb2RlKi8NCj4gPiArCWRlc2MgPSBxLT5yaW5n X2FkZHIgKyAoKHEtPnN3X3JpbmdfaGVhZCArIGkgLSAxKQ0KPiA+ICsJCQkmIHEtPnN3X3Jpbmdf d3JhcF9tYXNrKTsNCj4gPiArDQo+ID4gKwlkZXNjLT5yZXEuc2RvbmVfZW5hYmxlID0gMTsNCj4g PiArCWRlc2MtPnJlcS5pcnFfZW5hYmxlID0gcS0+aXJxX2VuYWJsZTsNCj4gPiArCWFjY19kbWFf ZW5xdWV1ZShxLCBpLCAmcV9kYXRhLT5xdWV1ZV9zdGF0cyk7DQo+ID4gKw0KPiA+ICsJLyogVXBk YXRlIHN0YXRzICovDQo+ID4gKwlxX2RhdGEtPnF1ZXVlX3N0YXRzLmVucXVldWVkX2NvdW50ICs9 IGk7DQo+ID4gKwlxX2RhdGEtPnF1ZXVlX3N0YXRzLmVucXVldWVfZXJyX2NvdW50ICs9IG51bSAt IGk7DQo+ID4gKwlyZXR1cm4gaTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gKy8qIERlcXVl dWUgb25lIEZGVCBvcGVyYXRpb25zIGZyb20gQUNDMjAwIGRldmljZSAqLyBzdGF0aWMgaW5saW5l IGludA0KPiA+ICtkZXF1ZXVlX2ZmdF9vbmVfb3Aoc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9kYXRh ICpxX2RhdGEsDQo+ID4gKwkJc3RydWN0IGFjY19xdWV1ZSAqcSwgc3RydWN0IHJ0ZV9iYmRldl9m ZnRfb3AgKipyZWZfb3AsDQo+ID4gKwkJdWludDE2X3QgZGVxdWV1ZWRfY2JzLCB1aW50MzJfdCAq YXFfZGVxdWV1ZWQpIHsNCj4gPiArCXVuaW9uIGFjY19kbWFfZGVzYyAqZGVzYywgYXRvbV9kZXNj Ow0KPiA+ICsJdW5pb24gYWNjX2RtYV9yc3BfZGVzYyByc3A7DQo+ID4gKwlzdHJ1Y3QgcnRlX2Ji ZGV2X2ZmdF9vcCAqb3A7DQo+ID4gKw0KPiA+ICsJZGVzYyA9IHEtPnJpbmdfYWRkciArICgocS0+ c3dfcmluZ190YWlsICsgZGVxdWV1ZWRfY2JzKQ0KPiA+ICsJCQkmIHEtPnN3X3Jpbmdfd3JhcF9t YXNrKTsNCj4gPiArCWF0b21fZGVzYy5hdG9tX2hkciA9IF9fYXRvbWljX2xvYWRfbigodWludDY0 X3QgKilkZXNjLA0KPiA+ICsJCQlfX0FUT01JQ19SRUxBWEVEKTsNCj4gPiArDQo+ID4gKwkvKiBD aGVjayBmZG9uZSBiaXQgKi8NCj4gPiArCWlmICghKGF0b21fZGVzYy5yc3AudmFsICYgQUNDX0ZE T05FKSkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJcnNwLnZhbCA9IGF0b21fZGVz Yy5yc3AudmFsOw0KPiA+ICsjaWZkZWYgUlRFX0xJQlJURV9CQkRFVl9ERUJVRw0KPiA+ICsJcnRl X21lbWR1bXAoc3RkZXJyLCAiUmVzcCIsICZkZXNjLT5yc3AudmFsLA0KPiA+ICsJCQlzaXplb2Yo ZGVzYy0+cnNwLnZhbCkpOw0KPiA+ICsjZW5kaWYNCj4gPiArCS8qIERlcXVldWUgKi8NCj4gPiAr CW9wID0gZGVzYy0+cmVxLm9wX2FkZHI7DQo+ID4gKw0KPiA+ICsJLyogQ2xlYXJpbmcgc3RhdHVz LCBpdCB3aWxsIGJlIHNldCBiYXNlZCBvbiByZXNwb25zZSAqLw0KPiA+ICsJb3AtPnN0YXR1cyA9 IDA7DQo+ID4gKwlvcC0+c3RhdHVzIHw9IHJzcC5pbnB1dF9lcnIgPDwgUlRFX0JCREVWX0RBVEFf RVJST1I7DQo+ID4gKwlvcC0+c3RhdHVzIHw9IHJzcC5kbWFfZXJyIDw8IFJURV9CQkRFVl9EUlZf RVJST1I7DQo+ID4gKwlvcC0+c3RhdHVzIHw9IHJzcC5mY3dfZXJyIDw8IFJURV9CQkRFVl9EUlZf RVJST1I7DQo+ID4gKwlpZiAob3AtPnN0YXR1cyAhPSAwKQ0KPiA+ICsJCXFfZGF0YS0+cXVldWVf c3RhdHMuZGVxdWV1ZV9lcnJfY291bnQrKzsNCj4gPiArDQo+ID4gKwkvKiBDaGVjayBpZiB0aGlz IGlzIHRoZSBsYXN0IGRlc2MgaW4gYmF0Y2ggKEF0b21pYyBRdWV1ZSkgKi8NCj4gPiArCWlmIChk ZXNjLT5yZXEubGFzdF9kZXNjX2luX2JhdGNoKSB7DQo+ID4gKwkJKCphcV9kZXF1ZXVlZCkrKzsN Cj4gPiArCQlkZXNjLT5yZXEubGFzdF9kZXNjX2luX2JhdGNoID0gMDsNCj4gPiArCX0NCj4gPiAr CWRlc2MtPnJzcC52YWwgPSBBQ0NfRE1BX0RFU0NfVFlQRTsNCj4gPiArCWRlc2MtPnJzcC5hZGRf aW5mb18wID0gMDsNCj4gPiArCSpyZWZfb3AgPSBvcDsNCj4gPiArCS8qIE9uZSBDQiAob3ApIHdh cyBzdWNjZXNzZnVsbHkgZGVxdWV1ZWQgKi8NCj4gPiArCXJldHVybiAxOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsNCj4gPiArLyogRGVxdWV1ZSBGRlQgb3BlcmF0aW9ucyBmcm9tIEFDQzIwMCBkZXZp Y2UuICovIHN0YXRpYyB1aW50MTZfdA0KPiA+ICthY2MyMDBfZGVxdWV1ZV9mZnQoc3RydWN0IHJ0 ZV9iYmRldl9xdWV1ZV9kYXRhICpxX2RhdGEsDQo+ID4gKwkJc3RydWN0IHJ0ZV9iYmRldl9mZnRf b3AgKipvcHMsIHVpbnQxNl90IG51bSkgew0KPiA+ICsJc3RydWN0IGFjY19xdWV1ZSAqcSA9IHFf ZGF0YS0+cXVldWVfcHJpdmF0ZTsNCj4gPiArCXVpbnQxNl90IGRlcXVldWVfbnVtLCBpLCBkZXF1 ZXVlZF9jYnMgPSAwOw0KPiA+ICsJdWludDMyX3QgYXZhaWwgPSBhY2NfcmluZ19hdmFpbF9kZXEo cSk7DQo+ID4gKwl1aW50MzJfdCBhcV9kZXF1ZXVlZCA9IDA7DQo+ID4gKwlpbnQgcmV0Ow0KPiA+ ICsNCj4gPiArI2lmZGVmIFJURV9MSUJSVEVfQkJERVZfREVCVUcNCj4gPiArCWlmICh1bmxpa2Vs eShvcHMgPT0gMCAmJiBxID09IE5VTEwpKQ0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsjZW5kaWYN Cj4gPiArDQo+ID4gKwlkZXF1ZXVlX251bSA9IFJURV9NSU4oYXZhaWwsIG51bSk7DQo+IA0KPiBu dW0gY2FuIGJlIHJldXNlZCwgbm8gbmVlZCB0byBkZXF1ZXVlX251bQ0KDQpJIHdvdWxkIGtlZXAg YXMgaXMgbm90YWJseSBmb3IgY29uc2lzdGVuY3kgZm9yIG90aGVyIHNpbWlsYXIgZnVuY3Rpb25z DQpUaGFua3MNCg0KPiANCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgZGVxdWV1ZV9udW07 ICsraSkgew0KPiA+ICsJCXJldCA9IGRlcXVldWVfZmZ0X29uZV9vcCgNCj4gPiArCQkJCXFfZGF0 YSwgcSwgJm9wc1tpXSwgZGVxdWV1ZWRfY2JzLA0KPiA+ICsJCQkJJmFxX2RlcXVldWVkKTsNCj4g PiArCQlpZiAocmV0IDw9IDApDQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCWRlcXVldWVkX2NicyAr PSByZXQ7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcS0+YXFfZGVxdWV1ZWQgKz0gYXFfZGVxdWV1 ZWQ7DQo+ID4gKwlxLT5zd19yaW5nX3RhaWwgKz0gZGVxdWV1ZWRfY2JzOw0KPiA+ICsJLyogVXBk YXRlIGVucXVldWUgc3RhdHMgKi8NCj4gPiArCXFfZGF0YS0+cXVldWVfc3RhdHMuZGVxdWV1ZWRf Y291bnQgKz0gaTsNCj4gPiArCXJldHVybiBpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAgLyogSW5p dGlhbGl6YXRpb24gRnVuY3Rpb24gKi8NCj4gPiAgIHN0YXRpYyB2b2lkDQo+ID4gICBhY2MyMDBf YmJkZXZfaW5pdChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHN0cnVjdCBydGVfcGNpX2RyaXZlciAq ZHJ2KQ0KPiA+IEBAIC0zMDQ5LDYgKzMyOTQsOCBAQA0KPiA+ICAgCWRldi0+ZW5xdWV1ZV9sZHBj X2RlY19vcHMgPSBhY2MyMDBfZW5xdWV1ZV9sZHBjX2RlYzsNCj4gPiAgIAlkZXYtPmRlcXVldWVf bGRwY19lbmNfb3BzID0gYWNjMjAwX2RlcXVldWVfbGRwY19lbmM7DQo+ID4gICAJZGV2LT5kZXF1 ZXVlX2xkcGNfZGVjX29wcyA9IGFjYzIwMF9kZXF1ZXVlX2xkcGNfZGVjOw0KPiA+ICsJZGV2LT5l bnF1ZXVlX2ZmdF9vcHMgPSBhY2MyMDBfZW5xdWV1ZV9mZnQ7DQo+ID4gKwlkZXYtPmRlcXVldWVf ZmZ0X29wcyA9IGFjYzIwMF9kZXF1ZXVlX2ZmdDsNCj4gPg0KPiA+ICAgCSgoc3RydWN0IGFjY19k ZXZpY2UgKikgZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSktPnBmX2RldmljZSA9DQo+ID4gICAJCQkh c3RyY21wKGRydi0+ZHJpdmVyLm5hbWUsDQoNCg==