From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4B65BA04B1; Mon, 5 Oct 2020 20:51:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 690781B68E; Mon, 5 Oct 2020 20:51:23 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 6E5561B673 for ; Mon, 5 Oct 2020 20:51:21 +0200 (CEST) IronPort-SDR: zWrZ101TILHo1zGU4wL7Y8DSwn5iDzb0t4tnuhTTyd6U654zHceGXPf7o2y5Pi417Tb/i0xgLk V4gIWfGNHoaA== X-IronPort-AV: E=McAfee;i="6000,8403,9765"; a="163097678" X-IronPort-AV: E=Sophos;i="5.77,340,1596524400"; d="scan'208";a="163097678" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Oct 2020 11:50:54 -0700 IronPort-SDR: lh/S07Xom06ijlkTYMnZrNbfbEaq+TRkLlTs6gA6Y0hzm03dDu21/1dUlYE1lxzEolp7knfZ5e HrwSeJsy12lg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,340,1596524400"; d="scan'208";a="386797317" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 05 Oct 2020 09:46:30 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 5 Oct 2020 09:42:47 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) 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.1713.5; Mon, 5 Oct 2020 09:42:47 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 5 Oct 2020 09:42:47 -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.1713.5; Mon, 5 Oct 2020 09:42:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W8LwC4WGPP7ZEqUjVmhnyA6TiTrAliiindnleyPPiqhcUm0evL7fJqWQK/fdAMbLuDu0iWDfPpNJDQBgm5nH+CilMbwGIhOZSbu7fE3fAYQmwUP+NUIfJ2becdlHJRApHKfFfprS3+65cztvyP9FbOdQOSYmRMJIa5o2L6qP/WqTZ5i2wR2JsSfQeWOsQ/NKsaE0vhnnJ0zbtq7ujimoDGHdTP0h8Q3nKnJJPfsF8c2XSfyHqINqve2bCf5XlzO7ZXZ56QB7a04Ld4EJBLrEkE7tS+OednNYYTPLbp2chDwn+ejvnALPeHszvyoEddJvoQBikHWFziCurHTbcKLnAg== 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-SenderADCheck; bh=MQGayk2dTsTEqCc+W7i04+zhf/yAQm/Fa2W2o3uy/Us=; b=DXos1wP6YuX0z9WcDhusC2eCpKm/j1ljbhnQgHh4+6zf9ZSYASuqCrcSy4EX4HbD91leHtIpnLkSr4/eegI1Icq4aVNuMcqE52avBxEby4Irn6X01z7S+KVowESQw955aP2T165g/Jku7N/NZ2kmkS1GRCwi5KtetFNSvIjKQlphcWe3elMvgBSBVhHoVxHmb0PYyn7zmaVfSK1dTCwnoM/gqOrLjeMQ8iE/t5YDsW5Du6KJ3cEDdXxGxxYWjvrE4cS2hlaSrMLlShgujifZHn2kD0jrs8vRTfmj1uIjg/lirgZ/g8KiiMl6VGSv1lIuoL8QW+plBB3EtzPXst1Sgg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MQGayk2dTsTEqCc+W7i04+zhf/yAQm/Fa2W2o3uy/Us=; b=wg5wb+1iRtzsUnowVE/+Us7yyr2RaHAuFpij+mY/UjAiLmNx1x/QZyT9oODg7df2ALvKVf9nXwrghRc7eyL0uaJSba2YGd/md73dYxEOtBh5OahIWa+uswzeeRiHf/4TRxItNvRPUBHarMHgu6dAgC+TsA4G29jcad4ZmmqSs30= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB2646.namprd11.prod.outlook.com (2603:10b6:a02:c6::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.39; Mon, 5 Oct 2020 16:42:38 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508%7]) with mapi id 15.20.3433.044; Mon, 5 Oct 2020 16:42:38 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "akhil.goyal@nxp.com" CC: "Richardson, Bruce" , "Xu, Rosen" , "maxime.coquelin@redhat.com" , "Yigit, Ferruh" , "Liu, Tianjiao" Thread-Topic: [PATCH v11 04/10] baseband/acc100: add queue configuration Thread-Index: AQHWmFfRW5FsZAyNwUGUGq0QZt4/9qmHozkAgAGYWIA= Date: Mon, 5 Oct 2020 16:42:38 +0000 Message-ID: References: <1597796731-57841-12-git-send-email-nicolas.chautru@intel.com> <1601600481-174133-1-git-send-email-nicolas.chautru@intel.com> <1601600481-174133-5-git-send-email-nicolas.chautru@intel.com> <9d0a61e5-27eb-cc10-11ed-8d8cf1b68207@redhat.com> In-Reply-To: <9d0a61e5-27eb-cc10-11ed-8d8cf1b68207@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.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 325e847a-1487-4011-1429-08d8694dab76 x-ms-traffictypediagnostic: BYAPR11MB2646: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1122; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ucmkrmj2OMjWpC76reMBL3lrc4JRHsPSjClzBkzBp4lv1+Au6Wb383L7q0PD4xfsEu0+yYnkDCNZ4c3zf3cbpHrsshFaAWnuI4nplR5GVzipJKl0b6oS3AvEP/9dGz7u0e3WhQkWn6YU3S6TCO1R399Nqb4HOQqYCEiIEGLcbHR/HVVK4rWF8NpYI6PcLcXg2wZp9q2y90My4PpkE0mlM4YoHNE/v/DqdFZi46uGB7be1IuyfeA27RJhUXJS1jVXHFlV9l5ZlgGeNmw2DiPbzIDcrQmvgSwHAu9ngsA4jaMdTcylUv3wL8YZ79xOqIFbXhuKquLla7FZmV4vLEqbFA== 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:(4636009)(136003)(39860400002)(366004)(396003)(376002)(346002)(478600001)(71200400001)(86362001)(107886003)(33656002)(316002)(110136005)(54906003)(2906002)(9686003)(55016002)(8676002)(186003)(5660300002)(53546011)(6506007)(66446008)(66556008)(66476007)(7696005)(76116006)(8936002)(64756008)(26005)(30864003)(83380400001)(66946007)(4326008)(52536014)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: Bc69iZwW0P8xqR9oWfJcwPHjj1ivhWIqU47tvXxcLYDC5Cs9OvglUFhMahCTFC48xAFyW4gio9/EX5vrFMprIwYqQf3zvn7fuW5GKMiCBwfIeori3WPf7QnV5d4f3jktbSct3D1dWjflk83eNW5pk7iFOxrhtjnJlQeK90nT1dpxmlsyKSWd4DP+UGYYHgTOSLFyL1Q7JI2KbHXtHKlsLaAb/Hi0zA86O0locBpa3//Suwi2i0J6h4bMdPT05QazxBgmmlgbEXI16WnKXUtRjY7TPf61iTqrzGyckd3J7lvxUby3fxU2N9lXOknhiL9bKIn7H4pc0Ftw/s+Omd/FBS//5WnH/3xtn5/1H8fRGY2eskBIfAcr6Xdo5eTyfAmT+mcqZXZyiouzsVBVClpF27/nlx4fz3dvfk58LBZdpZtIaX2ajQQVanNlKGSLzuvvBBsTDm87hL9fhD5A1Ha3hwqSCsdxmsckykmT/l8DLcEJFZne98InHtlhVaXxH8BAb7TwN+zeBuTOOKL3GtZbGYNaydicSKcsM8X39y3fbxu5X4RkfjPtit+GFVvPp1GrJG0rEGtyvG5/6JDhcLltximvbjAHwVqDMSV4epQomb4vMUrzd6z5z94JRCKe1VtkKiu5i5SwmiimVn0bYGYUsg== 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: 325e847a-1487-4011-1429-08d8694dab76 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2020 16:42:38.1316 (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: rYDfGu5moqS9BrXOWvy/l72ZEFrWpp6cxzhkn+qcxT3mbBMQPp7onZS5lhAySX/JqMvdawE85noVu9CDGYiXtNYLZnp5DWkYcgOZSShvcB0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2646 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v11 04/10] baseband/acc100: add queue configuration X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVG9tLCANCg0KPiBGcm9tOiBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+DQo+IE9uIDEwLzEv MjAgNjowMSBQTSwgTmljb2xhcyBDaGF1dHJ1IHdyb3RlOg0KPiA+IEFkZGluZyBmdW5jdGlvbiB0 byBjcmVhdGUgYW5kIGNvbmZpZ3VyZSBxdWV1ZXMgZm9yIHRoZSBkZXZpY2UuIFN0aWxsDQo+ID4g bm8gY2FwYWJpbGl0eS4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8 bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogUm9zZW4gWHUgPHJv c2VuLnh1QGludGVsLmNvbT4NCj4gPiBBY2tlZC1ieTogTGl1IFRpYW5qaWFvIDxUaWFuamlhby5s aXVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVf YWNjMTAwX3BtZC5jIHwgNDQ1DQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0K PiA+IGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmggfCAgNDUgKysrKw0K PiA+ICAyIGZpbGVzIGNoYW5nZWQsIDQ4OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBf cG1kLmMNCj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4g PiBpbmRleCBmY2JhNzdlLi5mMmJmMmI1IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYmFzZWJh bmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2Fj YzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gQEAgLTI2LDYgKzI2LDIyIEBADQo+ID4gIFJURV9M T0dfUkVHSVNURVIoYWNjMTAwX2xvZ3R5cGUsIHBtZC5iYi5hY2MxMDAsIE5PVElDRSk7ICAjZW5k aWYNCj4gPg0KPiA+ICsvKiBXcml0ZSB0byBNTUlPIHJlZ2lzdGVyIGFkZHJlc3MgKi8NCj4gPiAr c3RhdGljIGlubGluZSB2b2lkDQo+ID4gK21taW9fd3JpdGUodm9pZCAqYWRkciwgdWludDMyX3Qg dmFsdWUpIHsNCj4gPiArCSooKHZvbGF0aWxlIHVpbnQzMl90ICopKGFkZHIpKSA9IHJ0ZV9jcHVf dG9fbGVfMzIodmFsdWUpOyB9DQo+ID4gKw0KPiA+ICsvKiBXcml0ZSBhIHJlZ2lzdGVyIG9mIGEg QUNDMTAwIGRldmljZSAqLyBzdGF0aWMgaW5saW5lIHZvaWQNCj4gPiArYWNjMTAwX3JlZ193cml0 ZShzdHJ1Y3QgYWNjMTAwX2RldmljZSAqZCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdA0KPiA+ ICtwYXlsb2FkKSB7DQo+ID4gKwl2b2lkICpyZWdfYWRkciA9IFJURV9QVFJfQUREKGQtPm1taW9f YmFzZSwgb2Zmc2V0KTsNCj4gPiArCW1taW9fd3JpdGUocmVnX2FkZHIsIHBheWxvYWQpOw0KPiA+ ICsJdXNsZWVwKEFDQzEwMF9MT05HX1dBSVQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAvKiBSZWFk IGEgcmVnaXN0ZXIgb2YgYSBBQ0MxMDAgZGV2aWNlICovICBzdGF0aWMgaW5saW5lIHVpbnQzMl90 DQo+ID4gYWNjMTAwX3JlZ19yZWFkKHN0cnVjdCBhY2MxMDBfZGV2aWNlICpkLCB1aW50MzJfdCBv ZmZzZXQpIEBAIC0zNiw2DQo+ID4gKzUyLDIyIEBADQo+ID4gIAlyZXR1cm4gcnRlX2xlX3RvX2Nw dV8zMihyZXQpOw0KPiA+ICB9DQo+ID4NCj4gPiArLyogQmFzaWMgSW1wbGVtZW50YXRpb24gb2Yg TG9nMiBmb3IgZXhhY3QgMl5OICovIHN0YXRpYyBpbmxpbmUNCj4gPiArdWludDMyX3QgbG9nMl9i YXNpYyh1aW50MzJfdCB2YWx1ZSkgew0KPiA+ICsJcmV0dXJuICh2YWx1ZSA9PSAwKSA/IDAgOiBy dGVfYnNmMzIodmFsdWUpOyB9DQo+ID4gKw0KPiA+ICsvKiBDYWxjdWxhdGUgbWVtb3J5IGFsaWdu bWVudCBvZmZzZXQgYXNzdW1pbmcgYWxpZ25tZW50IGlzIDJeTiAqLw0KPiA+ICtzdGF0aWMgaW5s aW5lIHVpbnQzMl90IGNhbGNfbWVtX2FsaWdubWVudF9vZmZzZXQodm9pZA0KPiA+ICsqdW5hbGln bmVkX3ZpcnRfbWVtLCB1aW50MzJfdCBhbGlnbm1lbnQpIHsNCj4gPiArCXJ0ZV9pb3ZhX3QgdW5h bGlnbmVkX3BoeV9tZW0gPQ0KPiBydGVfbWFsbG9jX3ZpcnQyaW92YSh1bmFsaWduZWRfdmlydF9t ZW0pOw0KPiA+ICsJcmV0dXJuICh1aW50MzJfdCkoYWxpZ25tZW50IC0NCj4gPiArCQkJKHVuYWxp Z25lZF9waHlfbWVtICYgKGFsaWdubWVudC0xKSkpOyB9DQo+ID4gKw0KPiA+ICAvKiBDYWxjdWxh dGUgdGhlIG9mZnNldCBvZiB0aGUgZW5xdWV1ZSByZWdpc3RlciAqLyAgc3RhdGljIGlubGluZQ0K PiA+IHVpbnQzMl90ICBxdWV1ZV9vZmZzZXQoYm9vbCBwZl9kZXZpY2UsIHVpbnQ4X3QgdmZfaWQs IHVpbnQ4X3QgcWdycF9pZCwNCj4gPiB1aW50MTZfdCBhcV9pZCkgQEAgLTIwOCwxMCArMjQwLDQx NiBAQA0KPiA+ICAJCQlhY2MxMDBfY29uZi0+cV9kbF81Zy5hcV9kZXB0aF9sb2cyKTsNCj4gPiAg fQ0KPiA+DQo+ID4gLS8qIEZyZWUgNjRNQiBtZW1vcnkgdXNlZCBmb3Igc29mdHdhcmUgcmluZ3Mg Ki8NCj4gPiArc3RhdGljIHZvaWQNCj4gPiArZnJlZV9iYXNlX2FkZHJlc3Nlcyh2b2lkICoqYmFz ZV9hZGRycywgaW50IHNpemUpIHsNCj4gPiArCWludCBpOw0KPiA+ICsJZm9yIChpID0gMDsgaSA8 IHNpemU7IGkrKykNCj4gPiArCQlydGVfZnJlZShiYXNlX2FkZHJzW2ldKTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIGlubGluZSB1aW50MzJfdA0KPiA+ICtnZXRfZGVzY19sZW4odm9pZCkN Cj4gPiArew0KPiA+ICsJcmV0dXJuIHNpemVvZih1bmlvbiBhY2MxMDBfZG1hX2Rlc2MpOyB9DQo+ ID4gKw0KPiA+ICsvKiBBbGxvY2F0ZSB0aGUgMiAqIDY0TUIgYmxvY2sgZm9yIHRoZSBzdyByaW5n cyAqLw0KPiA+ICBzdGF0aWMgaW50DQo+ID4gLWFjYzEwMF9kZXZfY2xvc2Uoc3RydWN0IHJ0ZV9i YmRldiAqZGV2ICBfX3J0ZV91bnVzZWQpDQo+ID4gK2FsbG9jXzJ4NjRtYl9zd19yaW5nc19tZW0o c3RydWN0IHJ0ZV9iYmRldiAqZGV2LCBzdHJ1Y3QNCj4gYWNjMTAwX2RldmljZSAqZCwNCj4gPiAr CQlpbnQgc29ja2V0KQ0KPiA+ICB7DQo+ID4gKwl1aW50MzJfdCBzd19yaW5nX3NpemUgPSBBQ0Mx MDBfU0laRV82NE1CWVRFOw0KPiA+ICsJZC0+c3dfcmluZ3NfYmFzZSA9IHJ0ZV96bWFsbG9jX3Nv Y2tldChkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkyICogc3dfcmluZ19zaXpl LCBSVEVfQ0FDSEVfTElORV9TSVpFLCBzb2NrZXQpOw0KPiA+ICsJaWYgKGQtPnN3X3JpbmdzX2Jh c2UgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVkIHRvIGFsbG9j YXRlIG1lbW9yeSBmb3IgJXM6JXUiLA0KPiA+ICsJCQkJZGV2LT5kZXZpY2UtPmRyaXZlci0+bmFt ZSwNCj4gPiArCQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsNCj4gPiArCQlyZXR1cm4gLUVOT01FTTsN Cj4gPiArCX0NCj4gPiArCXVpbnQzMl90IG5leHRfNjRtYl9hbGlnbl9vZmZzZXQgPSBjYWxjX21l bV9hbGlnbm1lbnRfb2Zmc2V0KA0KPiA+ICsJCQlkLT5zd19yaW5nc19iYXNlLCBBQ0MxMDBfU0la RV82NE1CWVRFKTsNCj4gPiArCWQtPnN3X3JpbmdzID0gUlRFX1BUUl9BREQoZC0+c3dfcmluZ3Nf YmFzZSwNCj4gbmV4dF82NG1iX2FsaWduX29mZnNldCk7DQo+ID4gKwlkLT5zd19yaW5nc19pb3Zh ID0gcnRlX21hbGxvY192aXJ0MmlvdmEoZC0+c3dfcmluZ3NfYmFzZSkgKw0KPiA+ICsJCQluZXh0 XzY0bWJfYWxpZ25fb2Zmc2V0Ow0KPiA+ICsJZC0+c3dfcmluZ19zaXplID0gQUNDMTAwX01BWF9R VUVVRV9ERVBUSCAqIGdldF9kZXNjX2xlbigpOw0KPiA+ICsJZC0+c3dfcmluZ19tYXhfZGVwdGgg PSBBQ0MxMDBfTUFYX1FVRVVFX0RFUFRIOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICsvKiBBdHRlbXB0IHRvIGFsbG9jYXRlIG1pbmltaXNlZCBtZW1vcnkgc3Bh Y2UgZm9yIHN3IHJpbmdzICovIHN0YXRpYw0KPiA+ICt2b2lkIGFsbG9jX3N3X3JpbmdzX21pbl9t ZW0oc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCBzdHJ1Y3QNCj4gPiArYWNjMTAwX2RldmljZSAqZCwN Cj4gPiArCQl1aW50MTZfdCBudW1fcXVldWVzLCBpbnQgc29ja2V0KQ0KPiA+ICt7DQo+ID4gKwly dGVfaW92YV90IHN3X3JpbmdzX2Jhc2VfaW92YSwgbmV4dF82NG1iX2FsaWduX2FkZHJfaW92YTsN Cj4gPiArCXVpbnQzMl90IG5leHRfNjRtYl9hbGlnbl9vZmZzZXQ7DQo+ID4gKwlydGVfaW92YV90 IHN3X3JpbmdfaW92YV9lbmRfYWRkcjsNCj4gPiArCXZvaWQgKmJhc2VfYWRkcnNbQUNDMTAwX1NX X1JJTkdfTUVNX0FMTE9DX0FUVEVNUFRTXTsNCj4gPiArCXZvaWQgKnN3X3JpbmdzX2Jhc2U7DQo+ ID4gKwlpbnQgaSA9IDA7DQo+ID4gKwl1aW50MzJfdCBxX3N3X3Jpbmdfc2l6ZSA9IEFDQzEwMF9N QVhfUVVFVUVfREVQVEggKg0KPiBnZXRfZGVzY19sZW4oKTsNCj4gPiArCXVpbnQzMl90IGRldl9z d19yaW5nX3NpemUgPSBxX3N3X3Jpbmdfc2l6ZSAqIG51bV9xdWV1ZXM7DQo+ID4gKw0KPiA+ICsJ LyogRmluZCBhbiBhbGlnbmVkIGJsb2NrIG9mIG1lbW9yeSB0byBzdG9yZSBzdyByaW5ncyAqLw0K PiA+ICsJd2hpbGUgKGkgPCBBQ0MxMDBfU1dfUklOR19NRU1fQUxMT0NfQVRURU1QVFMpIHsNCj4g PiArCQkvKg0KPiA+ICsJCSAqIHN3X3JpbmcgYWxsb2NhdGVkIG1lbW9yeSBpcyBndWFyYW50ZWVk IHRvIGJlIGFsaWduZWQgdG8NCj4gPiArCQkgKiBxX3N3X3Jpbmdfc2l6ZSBhdCB0aGUgY29uZGl0 aW9uIHRoYXQgdGhlIHJlcXVlc3RlZCBzaXplIGlzDQo+ID4gKwkJICogbGVzcyB0aGFuIHRoZSBw YWdlIHNpemUNCj4gPiArCQkgKi8NCj4gPiArCQlzd19yaW5nc19iYXNlID0gcnRlX3ptYWxsb2Nf c29ja2V0KA0KPiA+ICsJCQkJZGV2LT5kZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiArCQkJCWRl dl9zd19yaW5nX3NpemUsIHFfc3dfcmluZ19zaXplLCBzb2NrZXQpOw0KPiA+ICsNCj4gPiArCQlp ZiAoc3dfcmluZ3NfYmFzZSA9PSBOVUxMKSB7DQo+ID4gKwkJCXJ0ZV9iYmRldl9sb2coRVJSLA0K PiA+ICsJCQkJCSJGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvcg0KPiAlczoldSIsDQo+ID4g KwkJCQkJZGV2LT5kZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiArCQkJCQlkZXYtPmRhdGEtPmRl dl9pZCk7DQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJc3dfcmluZ3Nf YmFzZV9pb3ZhID0gcnRlX21hbGxvY192aXJ0MmlvdmEoc3dfcmluZ3NfYmFzZSk7DQo+ID4gKwkJ bmV4dF82NG1iX2FsaWduX29mZnNldCA9IGNhbGNfbWVtX2FsaWdubWVudF9vZmZzZXQoDQo+ID4g KwkJCQlzd19yaW5nc19iYXNlLCBBQ0MxMDBfU0laRV82NE1CWVRFKTsNCj4gPiArCQluZXh0XzY0 bWJfYWxpZ25fYWRkcl9pb3ZhID0gc3dfcmluZ3NfYmFzZV9pb3ZhICsNCj4gPiArCQkJCW5leHRf NjRtYl9hbGlnbl9vZmZzZXQ7DQo+ID4gKwkJc3dfcmluZ19pb3ZhX2VuZF9hZGRyID0gc3dfcmlu Z3NfYmFzZV9pb3ZhICsNCj4gZGV2X3N3X3Jpbmdfc2l6ZTsNCj4gPiArDQo+ID4gKwkJLyogQ2hl Y2sgaWYgdGhlIGVuZCBvZiB0aGUgc3cgcmluZyBtZW1vcnkgYmxvY2sgaXMgYmVmb3JlIHRoZQ0K PiA+ICsJCSAqIHN0YXJ0IG9mIG5leHQgNjRNQiBhbGlnbmVkIG1lbSBhZGRyZXNzDQo+ID4gKwkJ ICovDQo+ID4gKwkJaWYgKHN3X3JpbmdfaW92YV9lbmRfYWRkciA8IG5leHRfNjRtYl9hbGlnbl9h ZGRyX2lvdmEpIHsNCj4gPiArCQkJZC0+c3dfcmluZ3NfaW92YSA9IHN3X3JpbmdzX2Jhc2VfaW92 YTsNCj4gPiArCQkJZC0+c3dfcmluZ3MgPSBzd19yaW5nc19iYXNlOw0KPiA+ICsJCQlkLT5zd19y aW5nc19iYXNlID0gc3dfcmluZ3NfYmFzZTsNCj4gPiArCQkJZC0+c3dfcmluZ19zaXplID0gcV9z d19yaW5nX3NpemU7DQo+ID4gKwkJCWQtPnN3X3JpbmdfbWF4X2RlcHRoID0NCj4gQUNDMTAwX01B WF9RVUVVRV9ERVBUSDsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICsJCS8qIFN0b3Jl IHRoZSBhZGRyZXNzIG9mIHRoZSB1bmFsaWduZWQgbWVtIGJsb2NrICovDQo+ID4gKwkJYmFzZV9h ZGRyc1tpXSA9IHN3X3JpbmdzX2Jhc2U7DQo+ID4gKwkJaSsrOw0KPiA+ICsJfQ0KPiA+ICsNCj4g PiArCS8qIEZyZWUgYWxsIHVuYWxpZ25lZCBibG9ja3Mgb2YgbWVtIGFsbG9jYXRlZCBpbiB0aGUg bG9vcCAqLw0KPiA+ICsJZnJlZV9iYXNlX2FkZHJlc3NlcyhiYXNlX2FkZHJzLCBpKTsNCj4gV2Fz IHRoZSBhbGxvYyBmYWxsYmFjayBjaGFuZ2luZyBoZXJlID8NCj4gPiArfQ0KPiA+ICsNCj4gPiAr DQo+ID4gKy8qIEFsbG9jYXRlIDY0TUIgbWVtb3J5IHVzZWQgZm9yIGFsbCBzb2Z0d2FyZSByaW5n cyAqLyBzdGF0aWMgaW50DQo+ID4gK2FjYzEwMF9zZXR1cF9xdWV1ZXMoc3RydWN0IHJ0ZV9iYmRl diAqZGV2LCB1aW50MTZfdCBudW1fcXVldWVzLCBpbnQNCj4gPiArc29ja2V0X2lkKSB7DQo+ID4g Kwl1aW50MzJfdCBwaHlzX2xvdywgcGh5c19oaWdoLCBwYXlsb2FkOw0KPiA+ICsJc3RydWN0IGFj YzEwMF9kZXZpY2UgKmQgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJY29uc3Qgc3Ry dWN0IGFjYzEwMF9yZWdpc3RyeV9hZGRyICpyZWdfYWRkcjsNCj4gPiArDQo+ID4gKwlpZiAoZC0+ cGZfZGV2aWNlICYmICFkLT5hY2MxMDBfY29uZi5wZl9tb2RlX2VuKSB7DQo+ID4gKwkJcnRlX2Ji ZGV2X2xvZyhOT1RJQ0UsDQo+ID4gKwkJCQkiJXMgaGFzIFBGIG1vZGUgZGlzYWJsZWQuIFRoaXMg UEYgY2FuJ3QgYmUNCj4gdXNlZC4iLA0KPiA+ICsJCQkJZGV2LT5kYXRhLT5uYW1lKTsNCj4gPiAr CQlyZXR1cm4gLUVOT0RFVjsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlhbGxvY19zd19yaW5nc19t aW5fbWVtKGRldiwgZCwgbnVtX3F1ZXVlcywgc29ja2V0X2lkKTsNCj4gPiArDQo+ID4gKwkvKiBJ ZiBtaW5pbWFsIG1lbW9yeSBzcGFjZSBhcHByb2FjaCBmYWlsZWQsIHRoZW4gYWxsb2NhdGUNCj4g PiArCSAqIHRoZSAyICogNjRNQiBibG9jayBmb3IgdGhlIHN3IHJpbmdzDQo+ID4gKwkgKi8NCj4g PiArCWlmIChkLT5zd19yaW5ncyA9PSBOVUxMKQ0KPiA+ICsJCWFsbG9jXzJ4NjRtYl9zd19yaW5n c19tZW0oZGV2LCBkLCBzb2NrZXRfaWQpOw0KPiANCj4gU2luY2UgdGhpcyBhbHNvIGRpZCBub3Qg Y2hhbmdlLCBpIGd1ZXNzIG15IHJldmlldyBjYW1lIHRvbyBsYXRlIGZvciB2MTEuDQo+IA0KPiBJ J2xsIHN0b3AgaGVyZS4NCg0KSSBhY3R1YWxseSBsb29rZWQgaW50byBhbGwgeW91ciByZXZpZXcg Y29tbWVudHMuIE1hbnkgd2VyZSBjaGFuZ2VkIChTZWUgYmVsb3cgZXh0cmEgY2hlY2sgZm9yIGQt PnN3X3JpbmdzKSwgc29tZSBvZiB0aGVtIGRpZCBub3Qgd2FycmFudCBjaGFuZ2VzIGJhc2VkIG9u IHJhdGlvbmFscyBjYXB0dXJlZCBpbiBjb252ZXJzYXRpb24gb24gdGhlIHNlcmllLiBMZXQgbWUg a25vdyBpZiB1bmNsZWFyLiANCg0KPiANCj4gdjExIGxvb2tzIGdvb2Qgc28gZmFyLg0KDQpHcmVh dC4gVGhhbmtzIGFnYWluIGZvciB5b3VyIHJldmlld3MuIA0KDQoNCj4gDQo+IFRvbQ0KPiANCj4g PiArDQo+ID4gKwlpZiAoZC0+c3dfcmluZ3MgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9s b2coTk9USUNFLA0KPiA+ICsJCQkJIkZhaWx1cmUgYWxsb2NhdGluZyBzd19yaW5ncyBtZW1vcnki KTsNCj4gPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwkvKiBDb25m aWd1cmUgQUNDMTAwIHdpdGggdGhlIGJhc2UgYWRkcmVzcyBmb3IgRE1BIGRlc2NyaXB0b3Igcmlu Z3MNCj4gPiArCSAqIFNhbWUgZGVzY3JpcHRvciByaW5ncyB1c2VkIGZvciBVTCBhbmQgREwgRE1B IEVuZ2luZXMNCj4gPiArCSAqIE5vdGUgOiBBc3N1bWluZyBvbmx5IFZGMCBidW5kbGUgaXMgdXNl ZCBmb3IgUEYgbW9kZQ0KPiA+ICsJICovDQo+ID4gKwlwaHlzX2hpZ2ggPSAodWludDMyX3QpKGQt PnN3X3JpbmdzX2lvdmEgPj4gMzIpOw0KPiA+ICsJcGh5c19sb3cgID0gKHVpbnQzMl90KShkLT5z d19yaW5nc19pb3ZhICYNCj4gfihBQ0MxMDBfU0laRV82NE1CWVRFLTEpKTsNCj4gPiArDQo+ID4g KwkvKiBDaG9vc2UgY29ycmVjdCByZWdpc3RyeSBhZGRyZXNzZXMgZm9yIHRoZSBkZXZpY2UgdHlw ZSAqLw0KPiA+ICsJaWYgKGQtPnBmX2RldmljZSkNCj4gPiArCQlyZWdfYWRkciA9ICZwZl9yZWdf YWRkcjsNCj4gPiArCWVsc2UNCj4gPiArCQlyZWdfYWRkciA9ICZ2Zl9yZWdfYWRkcjsNCj4gPiAr DQo+ID4gKwkvKiBSZWFkIHRoZSBwb3B1bGF0ZWQgY2ZnIGZyb20gQUNDMTAwIHJlZ2lzdGVycyAq Lw0KPiA+ICsJZmV0Y2hfYWNjMTAwX2NvbmZpZyhkZXYpOw0KPiA+ICsNCj4gPiArCS8qIFJlbGVh c2UgQVhJIGZyb20gUEYgKi8NCj4gPiArCWlmIChkLT5wZl9kZXZpY2UpDQo+ID4gKwkJYWNjMTAw X3JlZ193cml0ZShkLCBIV1BmRG1hQXhpQ29udHJvbCwgMSk7DQo+ID4gKw0KPiA+ICsJYWNjMTAw X3JlZ193cml0ZShkLCByZWdfYWRkci0+ZG1hX3JpbmdfdWw1Z19oaSwgcGh5c19oaWdoKTsNCj4g PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmRtYV9yaW5nX3VsNWdfbG8sIHBoeXNf bG93KTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmRtYV9yaW5nX2RsNWdf aGksIHBoeXNfaGlnaCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT5kbWFf cmluZ19kbDVnX2xvLCBwaHlzX2xvdyk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19h ZGRyLT5kbWFfcmluZ191bDRnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0 ZShkLCByZWdfYWRkci0+ZG1hX3JpbmdfdWw0Z19sbywgcGh5c19sb3cpOw0KPiA+ICsJYWNjMTAw X3JlZ193cml0ZShkLCByZWdfYWRkci0+ZG1hX3JpbmdfZGw0Z19oaSwgcGh5c19oaWdoKTsNCj4g PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmRtYV9yaW5nX2RsNGdfbG8sIHBoeXNf bG93KTsNCj4gPiArDQo+ID4gKwkvKg0KPiA+ICsJICogQ29uZmlndXJlIFJpbmcgU2l6ZSB0byB0 aGUgbWF4IHF1ZXVlIHJpbmcgc2l6ZQ0KPiA+ICsJICogKHVzZWQgZm9yIHdyYXBwaW5nIHB1cnBv c2UpDQo+ID4gKwkgKi8NCj4gPiArCXBheWxvYWQgPSBsb2cyX2Jhc2ljKGQtPnN3X3Jpbmdfc2l6 ZSAvIDY0KTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPnJpbmdfc2l6ZSwg cGF5bG9hZCk7DQo+ID4gKw0KPiA+ICsJLyogQ29uZmlndXJlIHRhaWwgcG9pbnRlciBmb3IgdXNl IHdoZW4gU0RPTkUgZW5hYmxlZCAqLw0KPiA+ICsJZC0+dGFpbF9wdHJzID0gcnRlX3ptYWxsb2Nf c29ja2V0KA0KPiA+ICsJCQlkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQlBQ0Mx MDBfTlVNX1FHUlBTICogQUNDMTAwX05VTV9BUVMgKg0KPiBzaXplb2YodWludDMyX3QpLA0KPiA+ ICsJCQlSVEVfQ0FDSEVfTElORV9TSVpFLCBzb2NrZXRfaWQpOw0KPiA+ICsJaWYgKGQtPnRhaWxf cHRycyA9PSBOVUxMKSB7DQo+ID4gKwkJcnRlX2JiZGV2X2xvZyhFUlIsICJGYWlsZWQgdG8gYWxs b2NhdGUgdGFpbCBwdHIgZm9yICVzOiV1IiwNCj4gPiArCQkJCWRldi0+ZGV2aWNlLT5kcml2ZXIt Pm5hbWUsDQo+ID4gKwkJCQlkZXYtPmRhdGEtPmRldl9pZCk7DQo+ID4gKwkJcnRlX2ZyZWUoZC0+ c3dfcmluZ3MpOw0KPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsJfQ0KPiA+ICsJZC0+dGFp bF9wdHJfaW92YSA9IHJ0ZV9tYWxsb2NfdmlydDJpb3ZhKGQtPnRhaWxfcHRycyk7DQo+ID4gKw0K PiA+ICsJcGh5c19oaWdoID0gKHVpbnQzMl90KShkLT50YWlsX3B0cl9pb3ZhID4+IDMyKTsNCj4g PiArCXBoeXNfbG93ICA9ICh1aW50MzJfdCkoZC0+dGFpbF9wdHJfaW92YSk7DQo+ID4gKwlhY2Mx MDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT50YWlsX3B0cnNfdWw1Z19oaSwgcGh5c19oaWdoKTsN Cj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRhaWxfcHRyc191bDVnX2xvLCBw aHlzX2xvdyk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT50YWlsX3B0cnNf ZGw1Z19oaSwgcGh5c19oaWdoKTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHIt PnRhaWxfcHRyc19kbDVnX2xvLCBwaHlzX2xvdyk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQs IHJlZ19hZGRyLT50YWlsX3B0cnNfdWw0Z19oaSwgcGh5c19oaWdoKTsNCj4gPiArCWFjYzEwMF9y ZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRhaWxfcHRyc191bDRnX2xvLCBwaHlzX2xvdyk7DQo+ID4g KwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT50YWlsX3B0cnNfZGw0Z19oaSwgcGh5c19o aWdoKTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPnRhaWxfcHRyc19kbDRn X2xvLCBwaHlzX2xvdyk7DQo+ID4gKw0KPiA+ICsJZC0+aGFycV9sYXlvdXQgPSBydGVfem1hbGxv Y19zb2NrZXQoIkhBUlEgTGF5b3V0IiwNCj4gPiArCQkJQUNDMTAwX0hBUlFfTEFZT1VUICogc2l6 ZW9mKCpkLT5oYXJxX2xheW91dCksDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIGRldi0+ ZGF0YS0+c29ja2V0X2lkKTsNCj4gPiArCWlmIChkLT5oYXJxX2xheW91dCA9PSBOVUxMKSB7DQo+ ID4gKwkJcnRlX2JiZGV2X2xvZyhFUlIsICJGYWlsZWQgdG8gYWxsb2NhdGUgaGFycV9sYXlvdXQg Zm9yDQo+ICVzOiV1IiwNCj4gPiArCQkJCWRldi0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4g KwkJCQlkZXYtPmRhdGEtPmRldl9pZCk7DQo+ID4gKwkJcnRlX2ZyZWUoZC0+c3dfcmluZ3MpOw0K PiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCS8qIE1hcmsgYXMg Y29uZmlndXJlZCBwcm9wZXJseSAqLw0KPiA+ICsJZC0+Y29uZmlndXJlZCA9IHRydWU7DQo+ID4g Kw0KPiA+ICsJcnRlX2JiZGV2X2xvZ19kZWJ1ZygNCj4gPiArCQkJIkFDQzEwMCAoJXMpIGNvbmZp Z3VyZWQgIHN3X3JpbmdzID0gJXAsDQo+IHN3X3JpbmdzX2lvdmEgPSAlIyINCj4gPiArCQkJUFJJ eDY0LCBkZXYtPmRhdGEtPm5hbWUsIGQtPnN3X3JpbmdzLCBkLQ0KPiA+c3dfcmluZ3NfaW92YSk7 DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIEZyZWUgbWVt b3J5IHVzZWQgZm9yIHNvZnR3YXJlIHJpbmdzICovIHN0YXRpYyBpbnQNCj4gPiArYWNjMTAwX2Rl dl9jbG9zZShzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYpIHsNCj4gPiArCXN0cnVjdCBhY2MxMDBfZGV2 aWNlICpkID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiArCWlmIChkLT5zd19yaW5nc19i YXNlICE9IE5VTEwpIHsNCj4gPiArCQlydGVfZnJlZShkLT50YWlsX3B0cnMpOw0KPiA+ICsJCXJ0 ZV9mcmVlKGQtPnN3X3JpbmdzX2Jhc2UpOw0KPiA+ICsJCWQtPnN3X3JpbmdzX2Jhc2UgPSBOVUxM Ow0KPiA+ICsJfQ0KPiA+ICsJLyogRW5zdXJlIGFsbCBpbiBmbGlnaHQgSFcgdHJhbnNhY3Rpb25z IGFyZSBjb21wbGV0ZWQgKi8NCj4gPiArCXVzbGVlcChBQ0MxMDBfTE9OR19XQUlUKTsNCj4gPiAr CXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIFJlcG9y dCBhIEFDQzEwMCBxdWV1ZSBpbmRleCB3aGljaCBpcyBmcmVlDQo+ID4gKyAqIFJldHVybiAwIHRv IDE2ayBmb3IgYSB2YWxpZCBxdWV1ZV9pZHggb3IgLTEgd2hlbiBubyBxdWV1ZSBpcw0KPiA+ICth dmFpbGFibGUNCj4gPiArICogTm90ZSA6IE9ubHkgc3VwcG9ydGluZyBWRjAgQnVuZGxlIGZvciBQ RiBtb2RlICAqLyBzdGF0aWMgaW50DQo+ID4gK2FjYzEwMF9maW5kX2ZyZWVfcXVldWVfaWR4KHN0 cnVjdCBydGVfYmJkZXYgKmRldiwNCj4gPiArCQljb25zdCBzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVl X2NvbmYgKmNvbmYpIHsNCj4gPiArCXN0cnVjdCBhY2MxMDBfZGV2aWNlICpkID0gZGV2LT5kYXRh LT5kZXZfcHJpdmF0ZTsNCj4gPiArCWludCBvcF8yX2FjY1s1XSA9IHswLCBVTF80RywgRExfNEcs IFVMXzVHLCBETF81R307DQo+ID4gKwlpbnQgYWNjID0gb3BfMl9hY2NbY29uZi0+b3BfdHlwZV07 DQo+ID4gKwlzdHJ1Y3QgcnRlX2FjYzEwMF9xdWV1ZV90b3BvbG9neSAqcXRvcCA9IE5VTEw7DQo+ ID4gKw0KPiA+ICsJcXRvcEZyb21BY2MoJnF0b3AsIGFjYywgJihkLT5hY2MxMDBfY29uZikpOw0K PiA+ICsJaWYgKHF0b3AgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKwkvKiBJZGVu dGlmeSBtYXRjaGluZyBRR3JvdXAgSW5kZXggd2hpY2ggYXJlIHNvcnRlZCBpbiBwcmlvcml0eSBv cmRlcg0KPiAqLw0KPiA+ICsJdWludDE2X3QgZ3JvdXBfaWR4ID0gcXRvcC0+Zmlyc3RfcWdyb3Vw X2luZGV4Ow0KPiA+ICsJZ3JvdXBfaWR4ICs9IGNvbmYtPnByaW9yaXR5Ow0KPiA+ICsJaWYgKGdy b3VwX2lkeCA+PSBBQ0MxMDBfTlVNX1FHUlBTIHx8DQo+ID4gKwkJCWNvbmYtPnByaW9yaXR5ID49 IHF0b3AtPm51bV9xZ3JvdXBzKSB7DQo+ID4gKwkJcnRlX2JiZGV2X2xvZyhJTkZPLCAiSW52YWxp ZCBQcmlvcml0eSBvbiAlcywgcHJpb3JpdHkgJXUiLA0KPiA+ICsJCQkJZGV2LT5kYXRhLT5uYW1l LCBjb25mLT5wcmlvcml0eSk7DQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsJfQ0KPiA+ICsJLyog RmluZCBhIGZyZWUgQVFfaWR4ICAqLw0KPiA+ICsJdWludDE2X3QgYXFfaWR4Ow0KPiA+ICsJZm9y IChhcV9pZHggPSAwOyBhcV9pZHggPCBxdG9wLT5udW1fYXFzX3Blcl9ncm91cHM7IGFxX2lkeCsr KSB7DQo+ID4gKwkJaWYgKCgoZC0+cV9hc3NpZ25lZF9iaXRfbWFwW2dyb3VwX2lkeF0gPj4gYXFf aWR4KSAmIDB4MSkgPT0NCj4gMCkgew0KPiA+ICsJCQkvKiBNYXJrIHRoZSBRdWV1ZSBhcyBhc3Np Z25lZCAqLw0KPiA+ICsJCQlkLT5xX2Fzc2lnbmVkX2JpdF9tYXBbZ3JvdXBfaWR4XSB8PSAoMSA8 PCBhcV9pZHgpOw0KPiA+ICsJCQkvKiBSZXBvcnQgdGhlIEFRIEluZGV4ICovDQo+ID4gKwkJCXJl dHVybiAoZ3JvdXBfaWR4IDw8IEFDQzEwMF9HUlBfSURfU0hJRlQpICsNCj4gYXFfaWR4Ow0KPiA+ ICsJCX0NCj4gPiArCX0NCj4gPiArCXJ0ZV9iYmRldl9sb2coSU5GTywgIkZhaWxlZCB0byBmaW5k IGZyZWUgcXVldWUgb24gJXMsIHByaW9yaXR5ICV1IiwNCj4gPiArCQkJZGV2LT5kYXRhLT5uYW1l LCBjb25mLT5wcmlvcml0eSk7DQo+ID4gKwlyZXR1cm4gLTE7DQo+ID4gK30NCj4gPiArDQo+ID4g Ky8qIFNldHVwIEFDQzEwMCBxdWV1ZSAqLw0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK2FjYzEwMF9x dWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ ICsJCWNvbnN0IHN0cnVjdCBydGVfYmJkZXZfcXVldWVfY29uZiAqY29uZikgew0KPiA+ICsJc3Ry dWN0IGFjYzEwMF9kZXZpY2UgKmQgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJc3Ry dWN0IGFjYzEwMF9xdWV1ZSAqcTsNCj4gPiArCWludDE2X3QgcV9pZHg7DQo+ID4gKw0KPiA+ICsJ LyogQWxsb2NhdGUgdGhlIHF1ZXVlIGRhdGEgc3RydWN0dXJlLiAqLw0KPiA+ICsJcSA9IHJ0ZV96 bWFsbG9jX3NvY2tldChkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLCBzaXplb2YoKnEpLA0KPiA+ ICsJCQlSVEVfQ0FDSEVfTElORV9TSVpFLCBjb25mLT5zb2NrZXQpOw0KPiA+ICsJaWYgKHEgPT0g TlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVkIHRvIGFsbG9jYXRlIHF1 ZXVlIG1lbW9yeSIpOw0KPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsJfQ0KPiA+ICsJaWYg KGQgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiVW5kZWZpbmVkIGRldmlj ZSIpOw0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXEtPmQg PSBkOw0KPiA+ICsJcS0+cmluZ19hZGRyID0gUlRFX1BUUl9BREQoZC0+c3dfcmluZ3MsIChkLT5z d19yaW5nX3NpemUgKg0KPiBxdWV1ZV9pZCkpOw0KPiA+ICsJcS0+cmluZ19hZGRyX2lvdmEgPSBk LT5zd19yaW5nc19pb3ZhICsgKGQtPnN3X3Jpbmdfc2l6ZSAqDQo+IHF1ZXVlX2lkKTsNCj4gPiAr DQo+ID4gKwkvKiBQcmVwYXJlIHRoZSBSaW5nIHdpdGggZGVmYXVsdCBkZXNjcmlwdG9yIGZvcm1h dCAqLw0KPiA+ICsJdW5pb24gYWNjMTAwX2RtYV9kZXNjICpkZXNjID0gTlVMTDsNCj4gPiArCXVu c2lnbmVkIGludCBkZXNjX2lkeCwgYl9pZHg7DQo+ID4gKwlpbnQgZmN3X2xlbiA9IChjb25mLT5v cF90eXBlID09IFJURV9CQkRFVl9PUF9MRFBDX0VOQyA/DQo+ID4gKwkJQUNDMTAwX0ZDV19MRV9C TEVOIDogKGNvbmYtPm9wX3R5cGUgPT0NCj4gUlRFX0JCREVWX09QX1RVUkJPX0RFQyA/DQo+ID4g KwkJQUNDMTAwX0ZDV19URF9CTEVOIDogQUNDMTAwX0ZDV19MRF9CTEVOKSk7DQo+ID4gKw0KPiA+ ICsJZm9yIChkZXNjX2lkeCA9IDA7IGRlc2NfaWR4IDwgZC0+c3dfcmluZ19tYXhfZGVwdGg7IGRl c2NfaWR4KyspIHsNCj4gPiArCQlkZXNjID0gcS0+cmluZ19hZGRyICsgZGVzY19pZHg7DQo+ID4g KwkJZGVzYy0+cmVxLndvcmQwID0gQUNDMTAwX0RNQV9ERVNDX1RZUEU7DQo+ID4gKwkJZGVzYy0+ cmVxLndvcmQxID0gMDsgLyoqPCBUaW1lc3RhbXAgKi8NCj4gPiArCQlkZXNjLT5yZXEud29yZDIg PSAwOw0KPiA+ICsJCWRlc2MtPnJlcS53b3JkMyA9IDA7DQo+ID4gKwkJdWludDY0X3QgZmN3X29m ZnNldCA9IChkZXNjX2lkeCA8PCA4KSArDQo+IEFDQzEwMF9ERVNDX0ZDV19PRkZTRVQ7DQo+ID4g KwkJZGVzYy0+cmVxLmRhdGFfcHRyc1swXS5hZGRyZXNzID0gcS0+cmluZ19hZGRyX2lvdmEgKw0K PiBmY3dfb2Zmc2V0Ow0KPiA+ICsJCWRlc2MtPnJlcS5kYXRhX3B0cnNbMF0uYmxlbiA9IGZjd19s ZW47DQo+ID4gKwkJZGVzYy0+cmVxLmRhdGFfcHRyc1swXS5ibGtpZCA9IEFDQzEwMF9ETUFfQkxL SURfRkNXOw0KPiA+ICsJCWRlc2MtPnJlcS5kYXRhX3B0cnNbMF0ubGFzdCA9IDA7DQo+ID4gKwkJ ZGVzYy0+cmVxLmRhdGFfcHRyc1swXS5kbWFfZXh0ID0gMDsNCj4gPiArCQlmb3IgKGJfaWR4ID0g MTsgYl9pZHggPCBBQ0MxMDBfRE1BX01BWF9OVU1fUE9JTlRFUlMgLQ0KPiAxOw0KPiA+ICsJCQkJ Yl9pZHgrKykgew0KPiA+ICsJCQlkZXNjLT5yZXEuZGF0YV9wdHJzW2JfaWR4XS5ibGtpZCA9DQo+ IEFDQzEwMF9ETUFfQkxLSURfSU47DQo+ID4gKwkJCWRlc2MtPnJlcS5kYXRhX3B0cnNbYl9pZHhd Lmxhc3QgPSAxOw0KPiA+ICsJCQlkZXNjLT5yZXEuZGF0YV9wdHJzW2JfaWR4XS5kbWFfZXh0ID0g MDsNCj4gPiArCQkJYl9pZHgrKzsNCj4gPiArCQkJZGVzYy0+cmVxLmRhdGFfcHRyc1tiX2lkeF0u YmxraWQgPQ0KPiA+ICsJCQkJCUFDQzEwMF9ETUFfQkxLSURfT1VUX0VOQzsNCj4gPiArCQkJZGVz Yy0+cmVxLmRhdGFfcHRyc1tiX2lkeF0ubGFzdCA9IDE7DQo+ID4gKwkJCWRlc2MtPnJlcS5kYXRh X3B0cnNbYl9pZHhdLmRtYV9leHQgPSAwOw0KPiA+ICsJCX0NCj4gPiArCQkvKiBQcmVzZXQgc29t ZSBmaWVsZHMgb2YgTERQQyBGQ1cgKi8NCj4gPiArCQlkZXNjLT5yZXEuZmN3X2xkLkZDV3ZlcnNp b24gPSBBQ0MxMDBfRkNXX1ZFUjsNCj4gPiArCQlkZXNjLT5yZXEuZmN3X2xkLmdhaW5faSA9IDE7 DQo+ID4gKwkJZGVzYy0+cmVxLmZjd19sZC5nYWluX2ggPSAxOw0KPiA+ICsJfQ0KPiA+ICsNCj4g PiArCXEtPmxiX2luID0gcnRlX3ptYWxsb2Nfc29ja2V0KGRldi0+ZGV2aWNlLT5kcml2ZXItPm5h bWUsDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5F X1NJWkUsIGNvbmYtPnNvY2tldCk7DQo+ID4gKwlpZiAocS0+bGJfaW4gPT0gTlVMTCkgew0KPiA+ ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVkIHRvIGFsbG9jYXRlIGxiX2luIG1lbW9yeSIp Ow0KPiA+ICsJCXJ0ZV9mcmVlKHEpOw0KPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsJfQ0K PiA+ICsJcS0+bGJfaW5fYWRkcl9pb3ZhID0gcnRlX21hbGxvY192aXJ0MmlvdmEocS0+bGJfaW4p Ow0KPiA+ICsJcS0+bGJfb3V0ID0gcnRlX3ptYWxsb2Nfc29ja2V0KGRldi0+ZGV2aWNlLT5kcml2 ZXItPm5hbWUsDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsDQo+ID4gKwkJCVJURV9DQUNI RV9MSU5FX1NJWkUsIGNvbmYtPnNvY2tldCk7DQo+ID4gKwlpZiAocS0+bGJfb3V0ID09IE5VTEwp IHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKEVSUiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBsYl9vdXQg bWVtb3J5Iik7DQo+ID4gKwkJcnRlX2ZyZWUocS0+bGJfaW4pOw0KPiA+ICsJCXJ0ZV9mcmVlKHEp Ow0KPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsJfQ0KPiA+ICsJcS0+bGJfb3V0X2FkZHJf aW92YSA9IHJ0ZV9tYWxsb2NfdmlydDJpb3ZhKHEtPmxiX291dCk7DQo+ID4gKw0KPiA+ICsJLyoN Cj4gPiArCSAqIFNvZnR3YXJlIHF1ZXVlIHJpbmcgd3JhcHMgc3luY2hyb25vdXNseSB3aXRoIHRo ZSBIVyB3aGVuIGl0DQo+IHJlYWNoZXMNCj4gPiArCSAqIHRoZSBib3VuZGFyeSBvZiB0aGUgbWF4 aW11bSBhbGxvY2F0ZWQgcXVldWUgc2l6ZSwgbm8gbWF0dGVyDQo+IHdoYXQgdGhlDQo+ID4gKwkg KiBzdyBxdWV1ZSBzaXplIGlzLiBUaGlzIHdyYXBwaW5nIGlzIGd1YXJkZWQgYnkgc2V0dGluZyB0 aGUNCj4gd3JhcF9tYXNrDQo+ID4gKwkgKiB0byByZXByZXNlbnQgdGhlIG1heGltdW0gcXVldWUg c2l6ZSBhcyBhbGxvY2F0ZWQgYXQgdGhlIHRpbWUNCj4gd2hlbg0KPiA+ICsJICogdGhlIGRldmlj ZSBoYXMgYmVlbiBzZXR1cCAoaW4gY29uZmlndXJlKCkpLg0KPiA+ICsJICoNCj4gPiArCSAqIFRo ZSBxdWV1ZSBkZXB0aCBpcyBzZXQgdG8gdGhlIHF1ZXVlIHNpemUgdmFsdWUgKGNvbmYtPnF1ZXVl X3NpemUpLg0KPiA+ICsJICogVGhpcyBsaW1pdHMgdGhlIG9jY3VwYW5jeSBvZiB0aGUgcXVldWUg YXQgYW55IHBvaW50IG9mIHRpbWUsIHNvDQo+IHRoYXQNCj4gPiArCSAqIHRoZSBxdWV1ZSBkb2Vz IG5vdCBnZXQgc3dhbXBlZCB3aXRoIGVucXVldWUgcmVxdWVzdHMuDQo+ID4gKwkgKi8NCj4gPiAr CXEtPnN3X3JpbmdfZGVwdGggPSBjb25mLT5xdWV1ZV9zaXplOw0KPiA+ICsJcS0+c3dfcmluZ193 cmFwX21hc2sgPSBkLT5zd19yaW5nX21heF9kZXB0aCAtIDE7DQo+ID4gKw0KPiA+ICsJcS0+b3Bf dHlwZSA9IGNvbmYtPm9wX3R5cGU7DQo+ID4gKw0KPiA+ICsJcV9pZHggPSBhY2MxMDBfZmluZF9m cmVlX3F1ZXVlX2lkeChkZXYsIGNvbmYpOw0KPiA+ICsJaWYgKHFfaWR4ID09IC0xKSB7DQo+ID4g KwkJcnRlX2ZyZWUocS0+bGJfaW4pOw0KPiA+ICsJCXJ0ZV9mcmVlKHEtPmxiX291dCk7DQo+ID4g KwkJcnRlX2ZyZWUocSk7DQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiAr CXEtPnFncnBfaWQgPSAocV9pZHggPj4gQUNDMTAwX0dSUF9JRF9TSElGVCkgJiAweEY7DQo+ID4g KwlxLT52Zl9pZCA9IChxX2lkeCA+PiBBQ0MxMDBfVkZfSURfU0hJRlQpICAmIDB4M0Y7DQo+ID4g KwlxLT5hcV9pZCA9IHFfaWR4ICYgMHhGOw0KPiA+ICsJcS0+YXFfZGVwdGggPSAoY29uZi0+b3Bf dHlwZSA9PSAgUlRFX0JCREVWX09QX1RVUkJPX0RFQykgPw0KPiA+ICsJCQkoMSA8PCBkLT5hY2Mx MDBfY29uZi5xX3VsXzRnLmFxX2RlcHRoX2xvZzIpIDoNCj4gPiArCQkJKDEgPDwgZC0+YWNjMTAw X2NvbmYucV9kbF80Zy5hcV9kZXB0aF9sb2cyKTsNCj4gPiArDQo+ID4gKwlxLT5tbWlvX3JlZ19l bnF1ZXVlID0gUlRFX1BUUl9BREQoZC0+bW1pb19iYXNlLA0KPiA+ICsJCQlxdWV1ZV9vZmZzZXQo ZC0+cGZfZGV2aWNlLA0KPiA+ICsJCQkJCXEtPnZmX2lkLCBxLT5xZ3JwX2lkLCBxLT5hcV9pZCkp Ow0KPiA+ICsNCj4gPiArCXJ0ZV9iYmRldl9sb2dfZGVidWcoDQo+ID4gKwkJCSJTZXR1cCBkZXYl dSBxJXU6IHFncnBfaWQ9JXUsIHZmX2lkPSV1LA0KPiBhcV9pZD0ldSwgYXFfZGVwdGg9JXUsIG1t aW9fcmVnX2VucXVldWU9JXAiLA0KPiA+ICsJCQlkZXYtPmRhdGEtPmRldl9pZCwgcXVldWVfaWQs IHEtPnFncnBfaWQsIHEtPnZmX2lkLA0KPiA+ICsJCQlxLT5hcV9pZCwgcS0+YXFfZGVwdGgsIHEt Pm1taW9fcmVnX2VucXVldWUpOw0KPiA+ICsNCj4gPiArCWRldi0+ZGF0YS0+cXVldWVzW3F1ZXVl X2lkXS5xdWV1ZV9wcml2YXRlID0gcTsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICsvKiBSZWxlYXNlIEFDQzEwMCBxdWV1ZSAqLw0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK2Fj YzEwMF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QgcV9pZCkg ew0KPiA+ICsJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRl Ow0KPiA+ICsJc3RydWN0IGFjYzEwMF9xdWV1ZSAqcSA9IGRldi0+ZGF0YS0+cXVldWVzW3FfaWRd LnF1ZXVlX3ByaXZhdGU7DQo+ID4gKw0KPiA+ICsJaWYgKHEgIT0gTlVMTCkgew0KPiA+ICsJCS8q IE1hcmsgdGhlIFF1ZXVlIGFzIHVuLWFzc2lnbmVkICovDQo+ID4gKwkJZC0+cV9hc3NpZ25lZF9i aXRfbWFwW3EtPnFncnBfaWRdICY9ICgweEZGRkZGRkZGIC0NCj4gPiArCQkJCSgxIDw8IHEtPmFx X2lkKSk7DQo+ID4gKwkJcnRlX2ZyZWUocS0+bGJfaW4pOw0KPiA+ICsJCXJ0ZV9mcmVlKHEtPmxi X291dCk7DQo+ID4gKwkJcnRlX2ZyZWUocSk7DQo+ID4gKwkJZGV2LT5kYXRhLT5xdWV1ZXNbcV9p ZF0ucXVldWVfcHJpdmF0ZSA9IE5VTEw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAJcmV0dXJuIDA7 DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0yNjIsOCArNzAwLDExIEBADQo+ID4gIH0NCj4gPg0KPiA+ ICBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9vcHMgYWNjMTAwX2JiZGV2X29wcyA9IHsN Cj4gPiArCS5zZXR1cF9xdWV1ZXMgPSBhY2MxMDBfc2V0dXBfcXVldWVzLA0KPiA+ICAJLmNsb3Nl ID0gYWNjMTAwX2Rldl9jbG9zZSwNCj4gPiAgCS5pbmZvX2dldCA9IGFjYzEwMF9kZXZfaW5mb19n ZXQsDQo+ID4gKwkucXVldWVfc2V0dXAgPSBhY2MxMDBfcXVldWVfc2V0dXAsDQo+ID4gKwkucXVl dWVfcmVsZWFzZSA9IGFjYzEwMF9xdWV1ZV9yZWxlYXNlLA0KPiA+ICB9Ow0KPiA+DQo+ID4gIC8q IEFDQzEwMCBQQ0kgUEYgYWRkcmVzcyBtYXAgKi8NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9i YXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+IGIvZHJpdmVycy9iYXNlYmFuZC9h Y2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+IGluZGV4IDA5OTY1YzguLjVjOGRkZTMgMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+ ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmgNCj4gPiBAQCAt NTIyLDExICs1MjIsNTYgQEAgc3RydWN0IGFjYzEwMF9yZWdpc3RyeV9hZGRyIHsNCj4gPiAgCS5k ZHJfcmFuZ2UgPSBIV1ZmRG1hRGRyQmFzZVJhbmdlUm9WZiwgIH07DQo+ID4NCj4gPiArLyogU3Ry dWN0dXJlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHF1ZXVlLiAqLyBzdHJ1Y3QNCj4gPiArX19ydGVf Y2FjaGVfYWxpZ25lZCBhY2MxMDBfcXVldWUgew0KPiA+ICsJdW5pb24gYWNjMTAwX2RtYV9kZXNj ICpyaW5nX2FkZHI7ICAvKiBWaXJ0dWFsIGFkZHJlc3Mgb2Ygc3cgcmluZyAqLw0KPiA+ICsJcnRl X2lvdmFfdCByaW5nX2FkZHJfaW92YTsgIC8qIElPVkEgYWRkcmVzcyBvZiBzb2Z0d2FyZSByaW5n ICovDQo+ID4gKwl1aW50MzJfdCBzd19yaW5nX2hlYWQ7ICAvKiBzb2Z0d2FyZSByaW5nIGhlYWQg Ki8NCj4gPiArCXVpbnQzMl90IHN3X3JpbmdfdGFpbDsgIC8qIHNvZnR3YXJlIHJpbmcgdGFpbCAq Lw0KPiA+ICsJLyogc29mdHdhcmUgcmluZyBzaXplIChkZXNjcmlwdG9ycywgbm90IGJ5dGVzKSAq Lw0KPiA+ICsJdWludDMyX3Qgc3dfcmluZ19kZXB0aDsNCj4gPiArCS8qIG1hc2sgdXNlZCB0byB3 cmFwIGVucXVldWVkIGRlc2NyaXB0b3JzIG9uIHRoZSBzdyByaW5nICovDQo+ID4gKwl1aW50MzJf dCBzd19yaW5nX3dyYXBfbWFzazsNCj4gPiArCS8qIE1NSU8gcmVnaXN0ZXIgdXNlZCB0byBlbnF1 ZXVlIGRlc2NyaXB0b3JzICovDQo+ID4gKwl2b2lkICptbWlvX3JlZ19lbnF1ZXVlOw0KPiA+ICsJ dWludDhfdCB2Zl9pZDsgIC8qIFZGIElEIChtYXggPSA2MykgKi8NCj4gPiArCXVpbnQ4X3QgcWdy cF9pZDsgIC8qIFF1ZXVlIEdyb3VwIElEICovDQo+ID4gKwl1aW50MTZfdCBhcV9pZDsgIC8qIEF0 b21pYyBRdWV1ZSBJRCAqLw0KPiA+ICsJdWludDE2X3QgYXFfZGVwdGg7ICAvKiBEZXB0aCBvZiBh dG9taWMgcXVldWUgKi8NCj4gPiArCXVpbnQzMl90IGFxX2VucXVldWVkOyAgLyogQ291bnQgaG93 IG1hbnkgImJhdGNoZXMiIGhhdmUgYmVlbg0KPiBlbnF1ZXVlZCAqLw0KPiA+ICsJdWludDMyX3Qg YXFfZGVxdWV1ZWQ7ICAvKiBDb3VudCBob3cgbWFueSAiYmF0Y2hlcyIgaGF2ZSBiZWVuDQo+IGRl cXVldWVkICovDQo+ID4gKwl1aW50MzJfdCBpcnFfZW5hYmxlOyAgLyogRW5hYmxlIG9wcyBkZXF1 ZXVlIGludGVycnVwdHMgaWYgc2V0IHRvIDEgKi8NCj4gPiArCXN0cnVjdCBydGVfbWVtcG9vbCAq ZmN3X21lbXBvb2w7ICAvKiBGQ1cgbWVtcG9vbCAqLw0KPiA+ICsJZW51bSBydGVfYmJkZXZfb3Bf dHlwZSBvcF90eXBlOyAgLyogVHlwZSBvZiB0aGlzIFF1ZXVlOiBURSBvciBURA0KPiAqLw0KPiA+ ICsJLyogSW50ZXJuYWwgQnVmZmVycyBmb3IgbG9vcGJhY2sgaW5wdXQgKi8NCj4gPiArCXVpbnQ4 X3QgKmxiX2luOw0KPiA+ICsJdWludDhfdCAqbGJfb3V0Ow0KPiA+ICsJcnRlX2lvdmFfdCBsYl9p bl9hZGRyX2lvdmE7DQo+ID4gKwlydGVfaW92YV90IGxiX291dF9hZGRyX2lvdmE7DQo+ID4gKwlz dHJ1Y3QgYWNjMTAwX2RldmljZSAqZDsNCj4gPiArfTsNCj4gPiArDQo+ID4gIC8qIFByaXZhdGUg ZGF0YSBzdHJ1Y3R1cmUgZm9yIGVhY2ggQUNDMTAwIGRldmljZSAqLyAgc3RydWN0DQo+ID4gYWNj MTAwX2RldmljZSB7DQo+ID4gIAl2b2lkICptbWlvX2Jhc2U7ICAvKio8IEJhc2UgYWRkcmVzcyBv ZiBNTUlPIHJlZ2lzdGVycyAoQkFSMCkgKi8NCj4gPiArCXZvaWQgKnN3X3JpbmdzX2Jhc2U7ICAv KiBCYXNlIGFkZHIgb2YgdW4tYWxpZ25lZCBtZW1vcnkgZm9yIHN3DQo+IHJpbmdzICovDQo+ID4g Kwl2b2lkICpzd19yaW5nczsgIC8qIDY0TUJzIG9mIDY0TUIgYWxpZ25lZCBtZW1vcnkgZm9yIHN3 IHJpbmdzICovDQo+ID4gKwlydGVfaW92YV90IHN3X3JpbmdzX2lvdmE7ICAvKiBJT1ZBIGFkZHJl c3Mgb2Ygc3dfcmluZ3MgKi8NCj4gPiArCS8qIFZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgaW5mbyBt ZW1vcnkgcm91dGVkIHRvIHRoZSB0aGlzIGZ1bmN0aW9uDQo+IHVuZGVyDQo+ID4gKwkgKiBvcGVy YXRpb24sIHdoZXRoZXIgaXQgaXMgUEYgb3IgVkYuDQo+ID4gKwkgKi8NCj4gPiArCXVuaW9uIGFj YzEwMF9oYXJxX2xheW91dF9kYXRhICpoYXJxX2xheW91dDsNCj4gPiArCXVpbnQzMl90IHN3X3Jp bmdfc2l6ZTsNCj4gPiAgCXVpbnQzMl90IGRkcl9zaXplOyAvKiBTaXplIGluIGtCICovDQo+ID4g Kwl1aW50MzJfdCAqdGFpbF9wdHJzOyAvKiBCYXNlIGFkZHJlc3Mgb2YgcmVzcG9uc2UgdGFpbCBw b2ludGVyIGJ1ZmZlciAqLw0KPiA+ICsJcnRlX2lvdmFfdCB0YWlsX3B0cl9pb3ZhOyAvKiBJT1ZB IGFkZHJlc3Mgb2YgdGFpbCBwb2ludGVycyAqLw0KPiA+ICsJLyogTWF4IG51bWJlciBvZiBlbnRy aWVzIGF2YWlsYWJsZSBmb3IgZWFjaCBxdWV1ZSBpbiBkZXZpY2UsDQo+IGRlcGVuZGluZw0KPiA+ ICsJICogb24gaG93IG1hbnkgcXVldWVzIGFyZSBlbmFibGVkIHdpdGggY29uZmlndXJlKCkNCj4g PiArCSAqLw0KPiA+ICsJdWludDMyX3Qgc3dfcmluZ19tYXhfZGVwdGg7DQo+ID4gIAlzdHJ1Y3Qg cnRlX2FjYzEwMF9jb25mIGFjYzEwMF9jb25mOyAvKiBBQ0MxMDAgSW5pdGlhbCBjb25maWd1cmF0 aW9uDQo+ID4gKi8NCj4gPiArCS8qIEJpdG1hcCBjYXB0dXJpbmcgd2hpY2ggUXVldWVzIGhhdmUg YWxyZWFkeSBiZWVuIGFzc2lnbmVkICovDQo+ID4gKwl1aW50MTZfdCBxX2Fzc2lnbmVkX2JpdF9t YXBbQUNDMTAwX05VTV9RR1JQU107DQo+ID4gIAlib29sIHBmX2RldmljZTsgLyoqPCBUcnVlIGlm IHRoaXMgaXMgYSBQRiBBQ0MxMDAgZGV2aWNlICovDQo+ID4gIAlib29sIGNvbmZpZ3VyZWQ7IC8q KjwgVHJ1ZSBpZiB0aGlzIEFDQzEwMCBkZXZpY2UgaXMgY29uZmlndXJlZCAqLw0KPiA+IH07DQoN Cg==