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 66939A04B1; Wed, 30 Sep 2020 01:17:34 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8554F1D9EF; Wed, 30 Sep 2020 01:17:32 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id CBCFF1D9EA for ; Wed, 30 Sep 2020 01:17:28 +0200 (CEST) IronPort-SDR: 7Je4fBcvT4/dy92mK+rf/2JFC4QEFMnSrj/UuMySf5EwbXaz1+o//6DvskrnZypT6jbf9pKGT5 GQtZn63xpO8g== X-IronPort-AV: E=McAfee;i="6000,8403,9759"; a="162372786" X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="162372786" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2020 16:17:26 -0700 IronPort-SDR: qjJCzaa4SbxOB1i2bN2nncn/Xsa0eAQ0N5Bu1glo8fs2Hv+xrf/zXULzW9wsAKVdSo6g0mnI1c 2MV9d/c412RQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="341026025" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga008.jf.intel.com with ESMTP; 29 Sep 2020 16:17:26 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 16:17:26 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 16:17:25 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 29 Sep 2020 16:17:25 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.170) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 29 Sep 2020 16:17:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m5GYMV/DM18qv+pg9VZbz2hP6ykaBIXa0mUxygHOHI5gWHgpZTuXXKb2rI0bpYG1wnm0pvjzAn7Wh+UPreBugkvecAoWoILxLnjyF3nPjDUXtd+sJ1ATGikFxFEKyuQmXqCZAhNcURv+hQvUnMRUb1NClh6nEXpEIePg0HSakshD2FJ/59cf6NrD7WJKajaJ23jVN99+4z4DQa2MzfIR24FmhDtenvGVJb3ODH1VCqLo7QgjsgSN2YXIPgPPaga2Vsp+rveZFzUlFxNJDDZXTDxCbYeX4bM/oksiu2KSyp2qRnjnX497cXOXOCqpfm4yNmn3UPNY5FzzTToHZD9FpQ== 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=/n64LOxYVeyrxJPyfrDUbdrKUumvJumaQZtDjNHXMso=; b=QmQtSJYc1ur6jcHlBtgL7NXhtLb6EWjxLVt+u+NxdCnJtHA/Rm0ZLL97T4M4lIpIE8bfNZvk/XKSW0rRKuhy++BXH3n0kXQtAlawc6a6MBMcXKjVR5+MaIlP/+4AI0MDs+g9+izzPKNSM/12Q0okCyUGVJ4UFvTw2QXc8S3DTkovd/Mznj1jc6in4KweK4UUgh1NOi9kUx+1EJLx+rZA4y2cr0MWVHbXeBHgcN6CqYLGPKmCeppcnyRtMnFyMVu1A0bRR63gH8aMB5bZdTlb/bSFbJKwO0Z38b00s1oH3g9WDWK7KWjeMDEsdJ4GYqgbT6YFDopbEaavBE33HJmmFQ== 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=/n64LOxYVeyrxJPyfrDUbdrKUumvJumaQZtDjNHXMso=; b=Nkds9+UoJpjZ1AUU85rrsozNl+Hf3SMLuUjkT5a9fIQM2LudkElxiVRLP8gj21bRJV4IFNpgus82uT127eG7s1PXMa/mjqSJr+S0HrIFfSB4/wfBYqpw8YIlHaKoT20UHDpDHFZxEiR+lTLHLPLxv3nG98ik4vpbGuNzKTq0xNw= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB2551.namprd11.prod.outlook.com (2603:10b6:a02:c5::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.23; Tue, 29 Sep 2020 23:17:11 +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.3412.028; Tue, 29 Sep 2020 23:17:11 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "akhil.goyal@nxp.com" CC: "Richardson, Bruce" , "Xu, Rosen" , "dave.burley@accelercomm.com" , "aidan.goddard@accelercomm.com" , "Yigit, Ferruh" , "Liu, Tianjiao" Thread-Topic: [dpdk-dev] [PATCH v9 01/10] drivers/baseband: add PMD for ACC100 Thread-Index: AQHWlffiHnSbM6HIFE+9RlsZTr/fdamACH6AgAAyw4A= Date: Tue, 29 Sep 2020 23:17:11 +0000 Message-ID: References: <1597796731-57841-12-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-1-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-2-git-send-email-nicolas.chautru@intel.com> In-Reply-To: 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: 32b20752-485b-480a-9154-08d864cdcb7c x-ms-traffictypediagnostic: BYAPR11MB2551: 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:3513; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oiwnpF0+KQBIa0hfs3QslpOOI4ItoUuUrcV5i8WEhr2huHJV05dw+ECpTRJ3PPl9TM3WNkyq1m98oXS097UYU8h9h+AyZEAxgKhg3JTCigOAcvPxvEulg5EWbILIToECFyMJF1AqfBlT6oq3LfffTzBavYCObmixJzvUVlCsJWYULC+0en7SBIqP/iqY14pXjSWESVAMA7Ek0nbgt2VT1lAbHiGQIreqm3aroKx5kDYO3LQvzC2Gs+HXsAHGJ6byVo7PymlsLKAtNh+0yILfU1OiM3TIOf9WYoA28liM2L/VGJdylBZmOGNBaOLesFFOo0YZCrnJ+7w4/fr1+k8Po3vlGyEJJ/cEgA4+UeWpnWYGuO56N8eRhgUYN/M3DDrS 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)(376002)(396003)(346002)(52536014)(54906003)(83380400001)(9686003)(107886003)(30864003)(5660300002)(8936002)(86362001)(8676002)(71200400001)(76116006)(110136005)(53546011)(316002)(2906002)(33656002)(4326008)(55016002)(66946007)(478600001)(66446008)(6506007)(66476007)(26005)(7696005)(186003)(66556008)(64756008)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: LjHLj24R2UW5WMdVcDK+lo1OxD0f0+HZYX7Lg2VHmDf47A41pPF0hyaHlX/4hC8SvUf7CGOUE0JRNL27z2HNtFocIjoOpF1IvlwteBZgmuJmaSOTDW8Gz3EyiKGa7r/7yEa/av3LrjCkcJ+rXft8S1Ae65dZDDo9rHEbv5+brbjmJaV4zqBJpbkI7VPNrEj9WI3Xad0jiId9BC/UhTF+KeiJGye0/+OXJ5TRxEL/8Dl0OqLZ89HHGQnwtj+mV+yS4FT8BjiZI/C/9UJuIZrGDhzZQx7T5UPdd3A3/F+OcwYL0JtfMt0bZXSvCd1a8zM73RZFGHxdTGgX9HXNe2ms8vxfz7dJYDFA8quT7I5t60+nBwAiSwCi2NhBomFycdVQ4nkA8oAwoj2bvl/vkoCDU1/U5ou4Fe7zH0d6cgsvqKLQcQQBgVQSvmzheAxM0DHLBm0W2yThp1EJyu/dj+SVgGwthAsfgm1kpskK7trFHemIS3YA8g7HGfp/pHg3h5ygn0f806EYPo5FHaGNFuo5r8bnuss/CC6C8bH+Oev/yubs5rMXjeN0hi79C/tKOCsOoVHERc4sDXhHi2kkzJz3BQvDkMdmkT1qmhcSvqt4f+rJ+3D988Lj9OODMwYr5ezkpZHposqIbckK3GvRlibX7Q== 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: 32b20752-485b-480a-9154-08d864cdcb7c X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2020 23:17:11.5178 (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: WaxhNIg5J/8oMI1i6j9fF3A9C9AQ089cAMcMhBoPNjmraV6VHtrr3zd2At9I85wMFKqsu8V5hlaBJkZ6OYvygsf2Z0HndE2VjkBhaFpgbjE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2551 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v9 01/10] drivers/baseband: add PMD for ACC100 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" SGkgVG9tLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUb20gUml4 IDx0cml4QHJlZGhhdC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAyOSwgMjAyMCAx Mjo1NCBQTQ0KPiBUbzogQ2hhdXRydSwgTmljb2xhcyA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNv bT47IGRldkBkcGRrLm9yZzsNCj4gYWtoaWwuZ295YWxAbnhwLmNvbQ0KPiBDYzogUmljaGFyZHNv biwgQnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgWHUsIFJvc2VuDQo+IDxyb3Nl bi54dUBpbnRlbC5jb20+OyBkYXZlLmJ1cmxleUBhY2NlbGVyY29tbS5jb207DQo+IGFpZGFuLmdv ZGRhcmRAYWNjZWxlcmNvbW0uY29tOyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwu Y29tPjsNCj4gTGl1LCBUaWFuamlhbyA8dGlhbmppYW8ubGl1QGludGVsLmNvbT4NCj4gU3ViamVj dDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY5IDAxLzEwXSBkcml2ZXJzL2Jhc2ViYW5kOiBhZGQg UE1EIGZvcg0KPiBBQ0MxMDANCj4gDQo+IA0KPiBPbiA5LzI4LzIwIDU6MjkgUE0sIE5pY29sYXMg Q2hhdXRydSB3cm90ZToNCj4gPiBBZGQgc3R1YnMgZm9yIHRoZSBBQ0MxMDAgUE1EDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIENoYXV0cnUgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5j b20+DQo+ID4gQWNrZWQtYnk6IExpdSBUaWFuamlhbyA8VGlhbmppYW8ubGl1QGludGVsLmNvbT4N Cj4gPiAtLS0NCj4gPiAgZG9jL2d1aWRlcy9iYmRldnMvYWNjMTAwLnJzdCAgICAgICAgICAgICAg ICAgICAgICAgfCAyMzMgKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGRvYy9ndWlkZXMvYmJk ZXZzL2ZlYXR1cmVzL2FjYzEwMC5pbmkgICAgICAgICAgICAgIHwgIDE0ICsrDQo+ID4gIGRvYy9n dWlkZXMvYmJkZXZzL2luZGV4LnJzdCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4g PiAgZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAg IDYgKw0KPiA+ICBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jICAgICAg ICAgICB8IDE3NQ0KPiArKysrKysrKysrKysrKysrDQo+ID4gIGRyaXZlcnMvYmFzZWJhbmQvYWNj MTAwL3J0ZV9hY2MxMDBfcG1kLmggICAgICAgICAgIHwgIDM3ICsrKysNCj4gPiAgLi4uL2FjYzEw MC9ydGVfcG1kX2JiZGV2X2FjYzEwMF92ZXJzaW9uLm1hcCAgICAgICAgfCAgIDMgKw0KPiA+ICBk cml2ZXJzL2Jhc2ViYW5kL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQ0KPiA+ICA4IGZpbGVzIGNoYW5nZWQsIDQ3MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBkb2MvZ3VpZGVzL2JiZGV2cy9hY2MxMDAucnN0ICBj cmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBkb2MvZ3VpZGVzL2JiZGV2cy9mZWF0dXJlcy9hY2MxMDAu aW5pDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9tZXNv bi5idWlsZA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAv cnRlX2FjYzEwMF9wbWQuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9iYXNlYmFu ZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBk cml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfcG1kX2JiZGV2X2FjYzEwMF92ZXJzaW9uLm1hcA0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvYmJkZXZzL2FjYzEwMC5yc3QNCj4gPiBi L2RvYy9ndWlkZXMvYmJkZXZzL2FjYzEwMC5yc3QgbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgN Cj4gPiAwMDAwMDAwLi5mODdlZTA5DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2RvYy9n dWlkZXMvYmJkZXZzL2FjYzEwMC5yc3QNCj4gPiBAQCAtMCwwICsxLDIzMyBAQA0KPiA+ICsuLiAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiA+ICsgICAgQ29weXJpZ2h0 KGMpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24NCj4gPiArDQo+ID4gK0ludGVsKFIpIEFDQzEwMCA1 Ry80RyBGRUMgUG9sbCBNb2RlIERyaXZlcg0KPiA+ICs9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCj4gPiArDQo+ID4gK1RoZSBCQkRFViBBQ0MxMDAgNUcvNEcgRkVD IHBvbGwgbW9kZSBkcml2ZXIgKFBNRCkgc3VwcG9ydHMgYW4NCj4gPiAraW1wbGVtZW50YXRpb24g b2YgYSBWUkFOIEZFQyB3aXJlbGVzcyBhY2NlbGVyYXRpb24gZnVuY3Rpb24uDQo+ID4gK1RoaXMg ZGV2aWNlIGlzIGFsc28ga25vd24gYXMgTW91bnQgQnJ5Y2UuDQo+IElmIHRoaXMgaXMgY29kZSBu YW1lIG9yIGdlbmVyYWwgY2hpcCBuYW1lIGl0IHNob3VsZCBiZSByZW1vdmVkLg0KDQpXZSBoYXZl IHVzZWQgZ2VuZXJhbCBjaGlwIG5hbWUgZm9yIG90aGVyIFBNRHMgKGllLiBWaXN0YSBDcmVlayks IEkgY2FuIHJlbW92ZSBidXQNCndoeSBzaG91bGQgdGhpcyBiZSByZW1vdmVkIGZvciBteSBiZW5l Zml0PyBUaGlzIHRlbmRzIHRvIGJlIHRoZSBtb3N0IHVzZXIgZnJpZW5kbHkNCm5hbWUgc28gYXJn dWFibHlnb29kIHRvIG5hbWUgZHJvcCBpbiBkb2N1bWVudGF0aW9uIC4gDQoNCg0KPiA+ICsNCj4g PiArRmVhdHVyZXMNCj4gPiArLS0tLS0tLS0NCj4gPiArDQo+ID4gK0FDQzEwMCA1Ry80RyBGRUMg UE1EIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6DQo+ID4gKw0KPiA+ICstIExEUEMg RW5jb2RlIGluIHRoZSBETCAoNUdOUikNCj4gPiArLSBMRFBDIERlY29kZSBpbiB0aGUgVUwgKDVH TlIpDQo+ID4gKy0gVHVyYm8gRW5jb2RlIGluIHRoZSBETCAoNEcpDQo+ID4gKy0gVHVyYm8gRGVj b2RlIGluIHRoZSBVTCAoNEcpDQo+ID4gKy0gMTYgVkZzIHBlciBQRiAocGh5c2ljYWwgZGV2aWNl KQ0KPiA+ICstIE1heGltdW0gb2YgMTI4IHF1ZXVlcyBwZXIgVkYNCj4gPiArLSBQQ0llIEdlbi0z IHgxNiBJbnRlcmZhY2UNCj4gPiArLSBNU0kNCj4gPiArLSBTUi1JT1YNCj4gPiArDQo+ID4gK0FD QzEwMCA1Ry80RyBGRUMgUE1EIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgQkJERVYgY2FwYWJpbGl0 aWVzOg0KPiA+ICsNCj4gPiArKiBGb3IgdGhlIExEUEMgZW5jb2RlIG9wZXJhdGlvbjoNCj4gPiAr ICAgLSBgYFJURV9CQkRFVl9MRFBDX0NSQ18yNEJfQVRUQUNIYGAgOiAgc2V0IHRvIGF0dGFjaCBD UkMyNEIgdG8NCj4gQ0IocykNCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX1JBVEVfTUFUQ0hg YCA6ICBpZiBzZXQgdGhlbiBkbyBub3QgZG8gUmF0ZSBNYXRjaA0KPiBieXBhc3MNCj4gPiArICAg LSBgYFJURV9CQkRFVl9MRFBDX0lOVEVSTEVBVkVSX0JZUEFTU2BgIDogaWYgc2V0IHRoZW4gYnlw YXNzDQo+ID4gK2ludGVybGVhdmVyDQo+ID4gKw0KPiA+ICsqIEZvciB0aGUgTERQQyBkZWNvZGUg b3BlcmF0aW9uOg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfQ1JDX1RZUEVfMjRCX0NIRUNL YGAgOiAgY2hlY2sgQ1JDMjRCIGZyb20NCj4gQ0IocykNCj4gPiArICAgLSBgYFJURV9CQkRFVl9M RFBDX0lURVJBVElPTl9TVE9QX0VOQUJMRWBgIDogIGRpc2FibGUgZWFybHkNCj4gdGVybWluYXRp b24NCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0NSQ19UWVBFXzI0Ql9EUk9QYGAgOiAgZHJv cHMgQ1JDMjRCIGJpdHMNCj4gYXBwZW5kZWQgd2hpbGUgZGVjb2RpbmcNCj4gPiArICAgLSBgYFJU RV9CQkRFVl9MRFBDX0hRX0NPTUJJTkVfSU5fRU5BQkxFYGAgOiAgcHJvdmlkZXMgYW4gaW5wdXQN Cj4gZm9yIEhBUlEgY29tYmluaW5nDQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfTERQQ19IUV9DT01C SU5FX09VVF9FTkFCTEVgYCA6ICBwcm92aWRlcyBhbiBpbnB1dA0KPiBmb3IgSEFSUSBjb21iaW5p bmcNCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0lOVEVSTkFMX0hBUlFfTUVNT1JZX0lOX0VO QUJMRWBgIDogIEhBUlENCj4gbWVtb3J5IGlucHV0IGlzIGludGVybmFsDQo+ID4gKyAgIC0gYGBS VEVfQkJERVZfTERQQ19JTlRFUk5BTF9IQVJRX01FTU9SWV9PVVRfRU5BQkxFYGAgOg0KPiBIQVJR IG1lbW9yeSBvdXRwdXQgaXMgaW50ZXJuYWwNCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0lO VEVSTkFMX0hBUlFfTUVNT1JZX0xPT1BCQUNLYGAgOg0KPiBsb29wYmFjayBkYXRhIHRvL2Zyb20g SEFSUSBtZW1vcnkNCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0lOVEVSTkFMX0hBUlFfTUVN T1JZX0ZJTExFUlNgYCA6ICBIQVJRDQo+IG1lbW9yeSBpbmNsdWRlcyB0aGUgZmlsbGVycyBiaXRz DQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfTERQQ19ERUNfU0NBVFRFUl9HQVRIRVJgYCA6ICBzdXBw b3J0cyBzY2F0dGVyLQ0KPiBnYXRoZXIgZm9yIGlucHV0L291dHB1dCBkYXRhDQo+ID4gKyAgIC0g YGBSVEVfQkJERVZfTERQQ19IQVJRXzZCSVRfQ09NUFJFU1NJT05gYCA6ICBzdXBwb3J0cw0KPiBj b21wcmVzc2lvbiBvZiB0aGUgSEFSUSBpbnB1dC9vdXRwdXQNCj4gPiArICAgLSBgYFJURV9CQkRF Vl9MRFBDX0xMUl9DT01QUkVTU0lPTmBgIDogIHN1cHBvcnRzIExMUiBpbnB1dA0KPiA+ICtjb21w cmVzc2lvbg0KPiA+ICsNCj4gPiArKiBGb3IgdGhlIHR1cmJvIGVuY29kZSBvcGVyYXRpb246DQo+ ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fQ1JDXzI0Ql9BVFRBQ0hgYCA6ICBzZXQgdG8gYXR0 YWNoIENSQzI0QiB0bw0KPiBDQihzKQ0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RVUkJPX1JBVEVf TUFUQ0hgYCA6ICBpZiBzZXQgdGhlbiBkbyBub3QgZG8gUmF0ZQ0KPiBNYXRjaCBieXBhc3MNCj4g PiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19FTkNfSU5URVJSVVBUU2BgIDogIHNldCBmb3IgZW5j b2RlciBkZXF1ZXVlDQo+IGludGVycnVwdHMNCj4gPiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19S Vl9JTkRFWF9CWVBBU1NgYCA6ICBzZXQgdG8gYnlwYXNzIFJWIGluZGV4DQo+ID4gKyAgIC0gYGBS VEVfQkJERVZfVFVSQk9fRU5DX1NDQVRURVJfR0FUSEVSYGAgOiAgc3VwcG9ydHMNCj4gPiArc2Nh dHRlci1nYXRoZXIgZm9yIGlucHV0L291dHB1dCBkYXRhDQo+ID4gKw0KPiA+ICsqIEZvciB0aGUg dHVyYm8gZGVjb2RlIG9wZXJhdGlvbjoNCj4gPiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19DUkNf VFlQRV8yNEJgYCA6ICBjaGVjayBDUkMyNEIgZnJvbSBDQihzKQ0KPiA+ICsgICAtIGBgUlRFX0JC REVWX1RVUkJPX1NVQkJMT0NLX0RFSU5URVJMRUFWRWBgIDogIHBlcmZvcm0gc3ViYmxvY2sNCj4g ZGUtaW50ZXJsZWF2ZQ0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RVUkJPX0RFQ19JTlRFUlJVUFRT YGAgOiAgc2V0IGZvciBkZWNvZGVyIGRlcXVldWUNCj4gaW50ZXJydXB0cw0KPiA+ICsgICAtIGBg UlRFX0JCREVWX1RVUkJPX05FR19MTFJfMV9CSVRfSU5gYCA6ICBzZXQgaWYgbmVnYXRpdmUgTExS DQo+IGVuY29kZXIgaS9wIGlzIHN1cHBvcnRlZA0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RVUkJP X1BPU19MTFJfMV9CSVRfSU5gYCA6ICBzZXQgaWYgcG9zaXRpdmUgTExSIGVuY29kZXINCj4gaS9w IGlzIHN1cHBvcnRlZA0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RVUkJPX0RFQ19UQl9DUkNfMjRC X0tFRVBgYCA6ICBrZWVwIENSQzI0QiBiaXRzDQo+IGFwcGVuZGVkIHdoaWxlIGRlY29kaW5nDQo+ ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fRUFSTFlfVEVSTUlOQVRJT05gYCA6ICBzZXQgZWFy bHkgZWFybHkNCj4gdGVybWluYXRpb24gZmVhdHVyZQ0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RV UkJPX0RFQ19TQ0FUVEVSX0dBVEhFUmBgIDogIHN1cHBvcnRzIHNjYXR0ZXItDQo+IGdhdGhlciBm b3IgaW5wdXQvb3V0cHV0IGRhdGENCj4gPiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19IQUxGX0lU RVJBVElPTl9FVkVOYGAgOiAgc2V0IGhhbGYgaXRlcmF0aW9uDQo+ID4gK2dyYW51bGFyaXR5DQo+ ID4gKw0KPiA+ICtJbnN0YWxsYXRpb24NCj4gPiArLS0tLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICtT ZWN0aW9uIDMgb2YgdGhlIERQREsgbWFudWFsIHByb3ZpZGVzIGluc3R1Y3Rpb25zIG9uIGluc3Rh bGxpbmcgYW5kDQo+ID4gK2NvbXBpbGluZyBEUERLLiBUaGUgZGVmYXVsdCBzZXQgb2YgYmJkZXYg Y29tcGlsZSBmbGFncyBtYXkgYmUgZm91bmQNCj4gPiAraW4gY29uZmlnL2NvbW1vbl9iYXNlLCB3 aGVyZSBmb3IgZXhhbXBsZSB0aGUgZmxhZyB0byBidWlsZCB0aGUgQUNDMTAwDQo+ID4gKzVHLzRH IEZFQyBkZXZpY2UsIGBgQ09ORklHX1JURV9MSUJSVEVfUE1EX0JCREVWX0FDQzEwMGBgLA0KPiA+ ICtpcyBhbHJlYWR5IHNldC4NCj4gPiArDQo+ID4gK0RQREsgcmVxdWlyZXMgaHVnZXBhZ2VzIHRv IGJlIGNvbmZpZ3VyZWQgYXMgZGV0YWlsZWQgaW4gc2VjdGlvbiAyIG9mIHRoZQ0KPiBEUERLIG1h bnVhbC4NCj4gPiArVGhlIGJiZGV2IHRlc3QgYXBwbGljYXRpb24gaGFzIGJlZW4gdGVzdGVkIHdp dGggYSBjb25maWd1cmF0aW9uIDQwIHgNCj4gPiArMUdCIGh1Z2VwYWdlcy4gVGhlIGh1Z2VwYWdl IGNvbmZpZ3VyYXRpb24gb2YgYSBzZXJ2ZXIgbWF5IGJlIGV4YW1pbmVkDQo+IHVzaW5nOg0KPiA+ ICsNCj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gPiArDQo+ID4gKyAgIGdyZXAgSHVn ZSogL3Byb2MvbWVtaW5mbw0KPiA+ICsNCj4gPiArDQo+ID4gK0luaXRpYWxpemF0aW9uDQo+ID4g Ky0tLS0tLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICtXaGVuIHRoZSBkZXZpY2UgZmlyc3QgcG93ZXJz IHVwLCBpdHMgUENJIFBoeXNpY2FsIEZ1bmN0aW9ucyAoUEYpIGNhbiBiZQ0KPiBsaXN0ZWQgdGhy b3VnaCB0aGlzIGNvbW1hbmQ6DQo+ID4gKw0KPiA+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0K PiA+ICsNCj4gPiArICBzdWRvIGxzcGNpIC12ZDgwODY6MGQ1Yw0KPiA+ICsNCj4gPiArVGhlIHBo eXNpY2FsIGFuZCB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgY29tcGF0aWJsZSB3aXRoIExpbnV4IFVJ TyBkcml2ZXJzOg0KPiA+ICtgYHZmaW9gYCBhbmQgYGBpZ2JfdWlvYGAuIEhvd2V2ZXIsIGluIG9y ZGVyIHRvIHdvcmsgdGhlIEFDQzEwMCA1Ry80Rw0KPiA+ICtGRUMgZGV2aWNlIGZpcnN0bHkgbmVl ZHMgdG8gYmUgYm91bmQgdG8gb25lIG9mIHRoZXNlIGxpbnV4IGRyaXZlcnMgdGhyb3VnaA0KPiBE UERLLg0KPiBGRUMgZGV2aWNlIGZpcnN0DQoNCm9rDQoNCj4gPiArDQo+ID4gKw0KPiA+ICtCaW5k IFBGIFVJTyBkcml2ZXIocykNCj4gPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4gKw0KPiA+ ICtJbnN0YWxsIHRoZSBEUERLIGlnYl91aW8gZHJpdmVyLCBiaW5kIGl0IHdpdGggdGhlIFBGIFBD SSBkZXZpY2UgSUQNCj4gPiArYW5kIHVzZSBgYGxzcGNpYGAgdG8gY29uZmlybSB0aGUgUEYgZGV2 aWNlIGlzIHVuZGVyIHVzZSBieSBgYGlnYl91aW9gYCBEUERLDQo+IFVJTyBkcml2ZXIuDQo+ID4g Kw0KPiA+ICtUaGUgaWdiX3VpbyBkcml2ZXIgbWF5IGJlIGJvdW5kIHRvIHRoZSBQRiBQQ0kgZGV2 aWNlIHVzaW5nIG9uZSBvZiB0aHJlZQ0KPiBtZXRob2RzOg0KPiA+ICsNCj4gPiArDQo+ID4gKzEu IFBDSSBmdW5jdGlvbnMgKHBoeXNpY2FsIG9yIHZpcnR1YWwsIGRlcGVuZGluZyBvbiB0aGUgdXNl IGNhc2UpIGNhbg0KPiA+ICtiZSBib3VuZCB0byB0aGUgVUlPIGRyaXZlciBieSByZXBlYXRpbmcg dGhpcyBjb21tYW5kIGZvciBldmVyeSBmdW5jdGlvbi4NCj4gPiArDQo+ID4gKy4uIGNvZGUtYmxv Y2s6OiBjb25zb2xlDQo+ID4gKw0KPiA+ICsgIGNkIDxkcGRrLXRvcC1sZXZlbC1kaXJlY3Rvcnk+ DQo+ID4gKyAgaW5zbW9kIC4vYnVpbGQva21vZC9pZ2JfdWlvLmtvDQo+ID4gKyAgZWNobyAiODA4 NiAwZDVjIiA+IC9zeXMvYnVzL3BjaS9kcml2ZXJzL2lnYl91aW8vbmV3X2lkDQo+ID4gKyAgbHNw Y2kgLXZkODA4NjowZDVjDQo+ID4gKw0KPiA+ICsNCj4gPiArMi4gQW5vdGhlciB3YXkgdG8gYmlu ZCBQRiB3aXRoIERQREsgVUlPIGRyaXZlciBpcyBieSB1c2luZyB0aGUNCj4gPiArYGBkcGRrLWRl dmJpbmQucHlgYCB0b29sDQo+ID4gKw0KPiA+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiA+ ICsNCj4gPiArICBjZCA8ZHBkay10b3AtbGV2ZWwtZGlyZWN0b3J5Pg0KPiA+ICsgIC4vdXNlcnRv b2xzL2RwZGstZGV2YmluZC5weSAtYiBpZ2JfdWlvIDAwMDA6MDY6MDAuMA0KPiA+ICsNCj4gPiAr d2hlcmUgdGhlIFBDSSBkZXZpY2UgSUQgKGV4YW1wbGU6IDAwMDA6MDY6MDAuMCkgaXMgb2J0YWlu ZWQgdXNpbmcNCj4gPiArbHNwY2kgLXZkODA4NjowZDVjDQo+ID4gKw0KPiA+ICsNCj4gPiArMy4g QSB0aGlyZCB3YXkgdG8gYmluZCBpcyB0byB1c2UgYGBkcGRrLXNldHVwLnNoYGAgdG9vbA0KPiA+ ICsNCj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gPiArDQo+ID4gKyAgY2QgPGRwZGst dG9wLWxldmVsLWRpcmVjdG9yeT4NCj4gPiArICAuL3VzZXJ0b29scy9kcGRrLXNldHVwLnNoDQo+ ID4gKw0KPiA+ICsgIHNlbGVjdCAnQmluZCBFdGhlcm5ldC9DcnlwdG8vQmFzZWJhbmQgZGV2aWNl IHRvIElHQiBVSU8gbW9kdWxlJw0KPiA+ICsgIG9yDQo+ID4gKyAgc2VsZWN0ICdCaW5kIEV0aGVy bmV0L0NyeXB0by9CYXNlYmFuZCBkZXZpY2UgdG8gVkZJTyBtb2R1bGUnDQo+ID4gKyBkZXBlbmRp bmcgb24gZHJpdmVyIHJlcXVpcmVkDQo+IFRoaXMgaXMgdGhlIGlnYl91aW8gc2VjdGlvbiwgc2hv dWxkIGRlZmVyIHZmaW8gc2VsZWN0IHRvIGl0cyBzZWN0aW9uLg0KDQpPaw0KDQo+ID4gKyAgZW50 ZXIgUENJIGRldmljZSBJRA0KPiA+ICsgIHNlbGVjdCAnRGlzcGxheSBjdXJyZW50IEV0aGVybmV0 L0NyeXB0by9CYXNlYmFuZCBkZXZpY2Ugc2V0dGluZ3MnDQo+ID4gKyB0byBjb25maXJtIGJpbmRp bmcNCj4gPiArDQo+ID4gKw0KPiA+ICtJbiB0aGUgc2FtZSB3YXkgdGhlIEFDQzEwMCA1Ry80RyBG RUMgUEYgY2FuIGJlIGJvdW5kIHdpdGggdmZpbywgYnV0DQo+ID4gK3ZmaW8gZHJpdmVyIGRvZXMg bm90IHN1cHBvcnQgU1ItSU9WIGNvbmZpZ3VyYXRpb24gcmlnaHQgb3V0IG9mIHRoZSBib3gsIHNv DQo+IGl0IHdpbGwgbmVlZCB0byBiZSBwYXRjaGVkLg0KPiBPdGhlciBkb2N1bWVudGF0aW9uIHNh eXMgd29ya3Mgd2l0aCA1LjcNCg0KWWVzIHRoaXMgaXMgYSBiaXQgaGlzdG9yaWNhbCBub3cuIEkg Y2FuIHJlbW92ZSB0aGlzIGJpdCB3aGljaCBpcyBub3QgdmVyeSBpbmZvcm1hdGl2ZSBhbmQgbm9u IHNwZWNpZmljIHRvIHRoYXQgUE1ELiANCg0KPiA+ICsNCj4gPiArDQo+ID4gK0VuYWJsZSBWaXJ0 dWFsIEZ1bmN0aW9ucw0KPiA+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gPiArDQo+ID4g K05vdywgaXQgc2hvdWxkIGJlIHZpc2libGUgaW4gdGhlIHByaW50b3V0cyB0aGF0IFBDSSBQRiBp cyB1bmRlcg0KPiA+ICtpZ2JfdWlvIGNvbnRyb2wgImBgS2VybmVsIGRyaXZlciBpbiB1c2U6IGln Yl91aW9gYCINCj4gPiArDQo+ID4gK1RvIHNob3cgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgVkZz IG9uIHRoZSBkZXZpY2UsIHJlYWQgYGBzcmlvdl90b3RhbHZmc2BgDQo+IGZpbGUuLg0KPiA+ICsN Cj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gPiArDQo+ID4gKyAgY2F0IC9zeXMvYnVz L3BjaS9kZXZpY2VzLzAwMDBcOjxiPlw6PGQ+LjxmPi9zcmlvdl90b3RhbHZmcw0KPiA+ICsNCj4g PiArICB3aGVyZSAwMDAwXDo8Yj5cOjxkPi48Zj4gaXMgdGhlIFBDSSBkZXZpY2UgSUQNCj4gPiAr DQo+ID4gKw0KPiA+ICtUbyBlbmFibGUgVkZzIHZpYSBpZ2JfdWlvLCBlY2hvIHRoZSBudW1iZXIg b2YgdmlydHVhbCBmdW5jdGlvbnMNCj4gPiAraW50ZW5kZWQgdG8gZW5hYmxlIHRvIGBgbWF4X3Zm c2BgIGZpbGUuLg0KPiA+ICsNCj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gPiArDQo+ ID4gKyAgZWNobyA8bnVtLW9mLXZmcz4gPiAvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwXDo8Yj5c OjxkPi48Zj4vbWF4X3Zmcw0KPiA+ICsNCj4gPiArDQo+ID4gK0FmdGVyd2FyZHMsIGFsbCBWRnMg bXVzdCBiZSBib3VuZCB0byBhcHByb3ByaWF0ZSBVSU8gZHJpdmVycyBhcw0KPiA+ICtyZXF1aXJl ZCwgc2FtZSB3YXkgaXQgd2FzIGRvbmUgd2l0aCB0aGUgcGh5c2ljYWwgZnVuY3Rpb24gcHJldmlv dXNseS4NCj4gPiArDQo+ID4gK0VuYWJsaW5nIFNSLUlPViB2aWEgdmZpbyBkcml2ZXIgaXMgcHJl dHR5IG11Y2ggdGhlIHNhbWUsIGV4Y2VwdCB0aGF0DQo+ID4gK3RoZSBmaWxlIG5hbWUgaXMgZGlm ZmVyZW50Og0KPiA+ICsNCj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gPiArDQo+ID4g KyAgZWNobyA8bnVtLW9mLXZmcz4gPg0KPiA+ICsgL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMFw6 PGI+XDo8ZD4uPGY+L3NyaW92X251bXZmcw0KPiA+ICsNCj4gPiArDQo+ID4gK0NvbmZpZ3VyZSB0 aGUgVkZzIHRocm91Z2ggUEYNCj4gPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiA+ ICsNCj4gPiArVGhlIFBDSSB2aXJ0dWFsIGZ1bmN0aW9ucyBtdXN0IGJlIGNvbmZpZ3VyZWQgYmVm b3JlIHdvcmtpbmcgb3INCj4gPiArZ2V0dGluZyBhc3NpZ25lZCB0byBWTXMvQ29udGFpbmVycy4g VGhlIGNvbmZpZ3VyYXRpb24gaW52b2x2ZXMNCj4gPiArYWxsb2NhdGluZyB0aGUgbnVtYmVyIG9m IGhhcmR3YXJlIHF1ZXVlcywgcHJpb3JpdGllcywgbG9hZCBiYWxhbmNlLA0KPiA+ICtiYW5kd2lk dGggYW5kIG90aGVyIHNldHRpbmdzIG5lY2Vzc2FyeSBmb3IgdGhlIGRldmljZSB0byBwZXJmb3Jt IEZFQw0KPiBmdW5jdGlvbnMuDQo+ID4gKw0KPiA+ICtUaGlzIGNvbmZpZ3VyYXRpb24gbmVlZHMg dG8gYmUgZXhlY3V0ZWQgYXQgbGVhc3Qgb25jZSBhZnRlciByZWJvb3Qgb3INCj4gPiArUENJIEZM UiBhbmQgY2FuIGJlIGFjaGlldmVkIGJ5IHVzaW5nIHRoZSBmdW5jdGlvbg0KPiA+ICtgYGFjYzEw MF9jb25maWd1cmUoKWBgLCB3aGljaCBzZXRzIHVwIHRoZSBwYXJhbWV0ZXJzIGRlZmluZWQgaW4N Cj4gYGBhY2MxMDBfY29uZmBgIHN0cnVjdHVyZS4NCj4gPiArDQo+ID4gK1Rlc3QgQXBwbGljYXRp b24NCj4gPiArLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiArQkJERVYgcHJvdmlkZXMgYSB0 ZXN0IGFwcGxpY2F0aW9uLCBgYHRlc3QtYmJkZXYucHlgYCBhbmQgcmFuZ2Ugb2YNCj4gPiArdGVz dCBkYXRhIGZvciB0ZXN0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIEFDQzEwMCA1Ry80RyBGRUMg ZW5jb2RlDQo+ID4gK2FuZCBkZWNvZGUsIGRlcGVuZGluZyBvbiB0aGUgZGV2aWNlJ3MgY2FwYWJp bGl0aWVzLiBUaGUgdGVzdA0KPiA+ICthcHBsaWNhdGlvbiBpcyBsb2NhdGVkIHVuZGVyIGFwcC0+ dGVzdC1iYmRldiBmb2xkZXIgYW5kIGhhcyB0aGUgZm9sbG93aW5nDQo+IG9wdGlvbnM6DQo+ID4g Kw0KPiA+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiA+ICsNCj4gPiArICAiLXAiLCAiLS10 ZXN0YXBwLXBhdGgiOiBzcGVjaWZpZXMgcGF0aCB0byB0aGUgYmJkZXYgdGVzdCBhcHAuDQo+ID4g KyAgIi1lIiwgIi0tZWFsLXBhcmFtcyIJOiBFQUwgYXJndW1lbnRzIHdoaWNoIGFyZSBwYXNzZWQg dG8gdGhlIHRlc3QNCj4gYXBwLg0KPiA+ICsgICItdCIsICItLXRpbWVvdXQiCTogVGltZW91dCBp biBzZWNvbmRzIChkZWZhdWx0PTMwMCkuDQo+ID4gKyAgIi1jIiwgIi0tdGVzdC1jYXNlcyIJOiBE ZWZpbmVzIHRlc3QgY2FzZXMgdG8gcnVuLiBSdW4gYWxsIGlmIG5vdCBzcGVjaWZpZWQuDQo+ID4g KyAgIi12IiwgIi0tdGVzdC12ZWN0b3IiCTogVGVzdCB2ZWN0b3IgcGF0aCAoZGVmYXVsdD1kcGRr X3BhdGgrL2FwcC90ZXN0LQ0KPiBiYmRldi90ZXN0X3ZlY3RvcnMvYmJkZXZfbnVsbC5kYXRhKS4N Cj4gPiArICAiLW4iLCAiLS1udW0tb3BzIgk6IE51bWJlciBvZiBvcGVyYXRpb25zIHRvIHByb2Nl c3Mgb24gZGV2aWNlDQo+IChkZWZhdWx0PTMyKS4NCj4gPiArICAiLWIiLCAiLS1idXJzdC1zaXpl Igk6IE9wZXJhdGlvbnMgZW5xdWV1ZS9kZXF1ZXVlIGJ1cnN0IHNpemUNCj4gKGRlZmF1bHQ9MzIp Lg0KPiA+ICsgICItcyIsICItLXNuciIJCTogU05SIGluIGRCIHVzZWQgd2hlbiBnZW5lcmF0aW5n IExMUnMgZm9yIGJsZXIgdGVzdHMuDQo+ID4gKyAgIi1zIiwgIi0taXRlcl9tYXgiCTogTnVtYmVy IG9mIGl0ZXJhdGlvbnMgZm9yIExEUEMgZGVjb2Rlci4NCj4gPiArICAiLWwiLCAiLS1udW0tbGNv cmVzIgk6IE51bWJlciBvZiBsY29yZXMgdG8gcnVuIChkZWZhdWx0PTE2KS4NCj4gPiArICAiLWki LCAiLS1pbml0LWRldmljZSIgOiBJbml0aWFsaXNlIFBGIGRldmljZSB3aXRoIGRlZmF1bHQgdmFs dWVzLg0KPiA+ICsNCj4gPiArDQo+ID4gK1RvIGV4ZWN1dGUgdGhlIHRlc3QgYXBwbGljYXRpb24g dG9vbCB1c2luZyBzaW1wbGUgZGVjb2RlIG9yIGVuY29kZQ0KPiA+ICtkYXRhLCB0eXBlIG9uZSBv ZiB0aGUgZm9sbG93aW5nOg0KPiA+ICsNCj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4g PiArDQo+ID4gKyAgLi90ZXN0LWJiZGV2LnB5IC1jIHZhbGlkYXRpb24gLW4gNjQgLWIgMSAtdiAu L2xkcGNfZGVjX2RlZmF1bHQuZGF0YQ0KPiA+ICsgLi90ZXN0LWJiZGV2LnB5IC1jIHZhbGlkYXRp b24gLW4gNjQgLWIgMSAtdiAuL2xkcGNfZW5jX2RlZmF1bHQuZGF0YQ0KPiA+ICsNCj4gPiArDQo+ ID4gK1RoZSB0ZXN0IGFwcGxpY2F0aW9uIGBgdGVzdC1iYmRldi5weWBgLCBzdXBwb3J0cyB0aGUg YWJpbGl0eSB0bw0KPiA+ICtjb25maWd1cmUgdGhlIFBGIGRldmljZSB3aXRoIGEgZGVmYXVsdCBz ZXQgb2YgdmFsdWVzLCBpZiB0aGUgIi1pIiBvcg0KPiA+ICsiLSAtaW5pdC1kZXZpY2UiIG9wdGlv biBpcyBpbmNsdWRlZC4gVGhlIGRlZmF1bHQgdmFsdWVzIGFyZSBkZWZpbmVkIGluDQo+IHRlc3Rf YmJkZXZfcGVyZi5jLg0KPiA+ICsNCj4gPiArDQo+ID4gK1Rlc3QgVmVjdG9ycw0KPiA+ICt+fn5+ fn5+fn5+fn4NCj4gPiArDQo+ID4gK0luIGFkZGl0aW9uIHRvIHRoZSBzaW1wbGUgTERQQyBkZWNv ZGVyIGFuZCBMRFBDIGVuY29kZXIgdGVzdHMsIGJiZGV2DQo+ID4gK2Fsc28gcHJvdmlkZXMgYSBy YW5nZSBvZiBhZGRpdGlvbmFsIHRlc3RzIHVuZGVyIHRoZSB0ZXN0X3ZlY3RvcnMNCj4gPiArZm9s ZGVyLCB3aGljaCBtYXkgYmUgdXNlZnVsLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSB0ZXN0cyB3aWxs IGRlcGVuZA0KPiA+ICtvbiB0aGUgQUNDMTAwIDVHLzRHIEZFQyBjYXBhYmlsaXRpZXMgd2hpY2gg bWF5IGNhdXNlIHNvbWUgdGVzdGNhc2VzIHRvDQo+IGJlIHNraXBwZWQsIGJ1dCBubyBmYWlsdXJl IHNob3VsZCBiZSByZXBvcnRlZC4NCj4gDQo+IEp1c3QNCj4gDQo+IHRvIGJlIHNraXBwZWQuDQo+ IA0KPiBzaG91bGQgYmUgYWJsZSB0byBhc3N1bWUgc2tpcHBlZCB0ZXN0IGRvIG5vdCBnZXQgcmVw b3J0ZWQgYXMgZmFpbHVyZXMuDQoNCk5vdCBuZWNlc3NhcmFseSB0aGF0IG9idmlvdXMgZnJvbSBm ZWVkYmFjay4gSXQgZG9lc24ndCBodXJ0IHRvIGJlIGV4cGxpY2l0IGFuZA0KdGhpcyBzdGF0ZW1l bnQgaXMgY29tbW9uIHRvIGFsbCBQTURzLiANCg0KDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9kb2Mv Z3VpZGVzL2JiZGV2cy9mZWF0dXJlcy9hY2MxMDAuaW5pDQo+ID4gYi9kb2MvZ3VpZGVzL2JiZGV2 cy9mZWF0dXJlcy9hY2MxMDAuaW5pDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwLi5jODlhNGQ3DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2RvYy9ndWlk ZXMvYmJkZXZzL2ZlYXR1cmVzL2FjYzEwMC5pbmkNCj4gPiBAQCAtMCwwICsxLDE0IEBADQo+ID4g KzsNCj4gPiArOyBTdXBwb3J0ZWQgZmVhdHVyZXMgb2YgdGhlICdhY2MxMDAnIGJiZGV2IGRyaXZl ci4NCj4gPiArOw0KPiA+ICs7IFJlZmVyIHRvIGRlZmF1bHQuaW5pIGZvciB0aGUgZnVsbCBsaXN0 IG9mIGF2YWlsYWJsZSBQTUQgZmVhdHVyZXMuDQo+ID4gKzsNCj4gPiArW0ZlYXR1cmVzXQ0KPiA+ ICtUdXJibyBEZWNvZGVyICg0RykgICAgID0gTg0KPiA+ICtUdXJibyBFbmNvZGVyICg0RykgICAg ID0gTg0KPiA+ICtMRFBDIERlY29kZXIgKDVHKSAgICAgID0gTg0KPiA+ICtMRFBDIEVuY29kZXIg KDVHKSAgICAgID0gTg0KPiA+ICtMTFIvSEFSUSBDb21wcmVzc2lvbiAgID0gTg0KPiA+ICtFeHRl cm5hbCBERFIgQWNjZXNzICAgID0gTg0KPiA+ICtIVyBBY2NlbGVyYXRlZCAgICAgICAgID0gWQ0K PiA+ICtCQkRFViBBUEkgICAgICAgICAgICAgID0gWQ0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3Vp ZGVzL2JiZGV2cy9pbmRleC5yc3QgYi9kb2MvZ3VpZGVzL2JiZGV2cy9pbmRleC5yc3QNCj4gPiBp bmRleCBhODA5MmRkLi40NDQ1Y2JkIDEwMDY0NA0KPiA+IC0tLSBhL2RvYy9ndWlkZXMvYmJkZXZz L2luZGV4LnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvYmJkZXZzL2luZGV4LnJzdA0KPiA+IEBA IC0xMywzICsxMyw0IEBAIEJhc2ViYW5kIERldmljZSBEcml2ZXJzDQo+ID4gICAgICB0dXJib19z dw0KPiA+ICAgICAgZnBnYV9sdGVfZmVjDQo+ID4gICAgICBmcGdhXzVnbnJfZmVjDQo+ID4gKyAg ICBhY2MxMDANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvbWVzb24u YnVpbGQNCj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL21lc29uLmJ1aWxkDQo+ID4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi44YWZhZmMyDQo+ID4gLS0tIC9k ZXYvbnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL21lc29uLmJ1aWxkDQo+ ID4gQEAgLTAsMCArMSw2IEBADQo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0z LUNsYXVzZSAjIENvcHlyaWdodChjKSAyMDIwIEludGVsDQo+ID4gK0NvcnBvcmF0aW9uDQo+ID4g Kw0KPiA+ICtkZXBzICs9IFsnYmJkZXYnLCAnYnVzX3ZkZXYnLCAncmluZycsICdwY2knLCAnYnVz X3BjaSddDQo+ID4gKw0KPiA+ICtzb3VyY2VzID0gZmlsZXMoJ3J0ZV9hY2MxMDBfcG1kLmMnKQ0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5j DQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi4xYjRjZDEzDQo+ID4gLS0tIC9k ZXYvbnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1k LmMNCj4gPiBAQCAtMCwwICsxLDE3NSBAQA0KPiA+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTMtQ2xhdXNlDQo+ID4gKyAqIENvcHlyaWdodChjKSAyMDIwIEludGVsIENvcnBvcmF0 aW9uICAqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPHVuaXN0ZC5oPg0KPiA+ICsNCj4gPiArI2lu Y2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9sb2cuaD4NCj4gPiArI2lu Y2x1ZGUgPHJ0ZV9kZXYuaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9tYWxsb2MuaD4NCj4gPiArI2lu Y2x1ZGUgPHJ0ZV9tZW1wb29sLmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfYnl0ZW9yZGVyLmg+DQo+ ID4gKyNpbmNsdWRlIDxydGVfZXJybm8uaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9icmFuY2hfcHJl ZGljdGlvbi5oPg0KPiA+ICsjaW5jbHVkZSA8cnRlX2hleGR1bXAuaD4NCj4gPiArI2luY2x1ZGUg PHJ0ZV9wY2kuaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9idXNfcGNpLmg+DQo+ID4gKw0KPiA+ICsj aW5jbHVkZSA8cnRlX2JiZGV2Lmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfYmJkZXZfcG1kLmg+DQo+ IFNob3VsZCB0aGVzZSAjaW5jbHVkZXMnIGJlIGluIGFscGhhIG9yZGVyID8NCg0KSW50ZXJlc3Rp bmcgY29tbWVudC4gSXMgdGhpcyBhIGNvZGluZyBndWlkZSBsaW5lIGZvciBEUERLIG9yIG90aGVy cz8NCkkgaGF2ZSBuZXZlciBoZWFyZCBvZiB0aGlzIHBlcnNvbm5hbGx5LCB3aGF0IGlzIHRoZSBy YXRpb25hbD8gDQoNCj4gPiArI2luY2x1ZGUgInJ0ZV9hY2MxMDBfcG1kLmgiDQo+ID4gKw0KPiA+ ICsjaWZkZWYgUlRFX0xJQlJURV9CQkRFVl9ERUJVRw0KPiA+ICtSVEVfTE9HX1JFR0lTVEVSKGFj YzEwMF9sb2d0eXBlLCBwbWQuYmIuYWNjMTAwLCBERUJVRyk7ICNlbHNlDQo+ID4gK1JURV9MT0df UkVHSVNURVIoYWNjMTAwX2xvZ3R5cGUsIHBtZC5iYi5hY2MxMDAsIE5PVElDRSk7ICNlbmRpZg0K PiA+ICsNCj4gPiArLyogRnJlZSA2NE1CIG1lbW9yeSB1c2VkIGZvciBzb2Z0d2FyZSByaW5ncyAq LyBzdGF0aWMgaW50DQo+ID4gK2FjYzEwMF9kZXZfY2xvc2Uoc3RydWN0IHJ0ZV9iYmRldiAqZGV2 ICBfX3J0ZV91bnVzZWQpIHsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9vcHMgYWNjMTAwX2JiZGV2X29wcyA9IHsNCj4g PiArCS5jbG9zZSA9IGFjYzEwMF9kZXZfY2xvc2UsDQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKiBB Q0MxMDAgUENJIFBGIGFkZHJlc3MgbWFwICovDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgcnRlX3BjaV9p ZCBwY2lfaWRfYWNjMTAwX3BmX21hcFtdID0gew0KPiA+ICsJew0KPiA+ICsJCVJURV9QQ0lfREVW SUNFKFJURV9BQ0MxMDBfVkVORE9SX0lELA0KPiBSVEVfQUNDMTAwX1BGX0RFVklDRV9JRCkNCj4g PiArCX0sDQo+ID4gKwl7LmRldmljZV9pZCA9IDB9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArLyog QUNDMTAwIFBDSSBWRiBhZGRyZXNzIG1hcCAqLw0KPiA+ICtzdGF0aWMgc3RydWN0IHJ0ZV9wY2lf aWQgcGNpX2lkX2FjYzEwMF92Zl9tYXBbXSA9IHsNCj4gPiArCXsNCj4gPiArCQlSVEVfUENJX0RF VklDRShSVEVfQUNDMTAwX1ZFTkRPUl9JRCwNCj4gUlRFX0FDQzEwMF9WRl9ERVZJQ0VfSUQpDQo+ ID4gKwl9LA0KPiA+ICsJey5kZXZpY2VfaWQgPSAwfSwNCj4gPiArfTsNCj4gPiArDQo+ID4gKy8q IEluaXRpYWxpemF0aW9uIEZ1bmN0aW9uICovDQo+ID4gK3N0YXRpYyB2b2lkDQo+ID4gK2FjYzEw MF9iYmRldl9pbml0KHN0cnVjdCBydGVfYmJkZXYgKmRldiwgc3RydWN0IHJ0ZV9wY2lfZHJpdmVy ICpkcnYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2RldiA9IFJU RV9ERVZfVE9fUENJKGRldi0+ZGV2aWNlKTsNCj4gPiArDQo+ID4gKwlkZXYtPmRldl9vcHMgPSAm YWNjMTAwX2JiZGV2X29wczsNCj4gPiArDQo+ID4gKwkoKHN0cnVjdCBhY2MxMDBfZGV2aWNlICop IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpLT5wZl9kZXZpY2UgPQ0KPiA+ICsJCQkhc3RyY21wKGRy di0+ZHJpdmVyLm5hbWUsDQo+ID4gKw0KPiAJUlRFX1NUUihBQ0MxMDBQRl9EUklWRVJfTkFNRSkp Ow0KPiA+ICsJKChzdHJ1Y3QgYWNjMTAwX2RldmljZSAqKSBkZXYtPmRhdGEtPmRldl9wcml2YXRl KS0+bW1pb19iYXNlID0NCj4gPiArCQkJcGNpX2Rldi0+bWVtX3Jlc291cmNlWzBdLmFkZHI7DQo+ ID4gKw0KPiA+ICsJcnRlX2JiZGV2X2xvZ19kZWJ1ZygiSW5pdCBkZXZpY2UgJXMgWyVzXSBAIHZh ZGRyICVwIHBhZGRyDQo+ICUjIlBSSXg2NCIiLA0KPiA+ICsJCQlkcnYtPmRyaXZlci5uYW1lLCBk ZXYtPmRhdGEtPm5hbWUsDQo+ID4gKwkJCSh2b2lkICopcGNpX2Rldi0+bWVtX3Jlc291cmNlWzBd LmFkZHIsDQo+ID4gKwkJCXBjaV9kZXYtPm1lbV9yZXNvdXJjZVswXS5waHlzX2FkZHIpOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGFjYzEwMF9wY2lfcHJvYmUoc3RydWN0IHJ0ZV9w Y2lfZHJpdmVyICpwY2lfZHJ2LA0KPiA+ICsJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2 KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgcnRlX2JiZGV2ICpiYmRldiA9IE5VTEw7DQo+ID4gKwlj aGFyIGRldl9uYW1lW1JURV9CQkRFVl9OQU1FX01BWF9MRU5dOw0KPiA+ICsNCj4gPiArCWlmIChw Y2lfZGV2ID09IE5VTEwpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKEVSUiwgIk5VTEwgUENJIGRl dmljZSIpOw0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJ0 ZV9wY2lfZGV2aWNlX25hbWUoJnBjaV9kZXYtPmFkZHIsIGRldl9uYW1lLA0KPiBzaXplb2YoZGV2 X25hbWUpKTsNCj4gPiArDQo+ID4gKwkvKiBBbGxvY2F0ZSBtZW1vcnkgdG8gYmUgdXNlZCBwcml2 YXRlbHkgYnkgZHJpdmVycyAqLw0KPiA+ICsJYmJkZXYgPSBydGVfYmJkZXZfYWxsb2NhdGUocGNp X2Rldi0+ZGV2aWNlLm5hbWUpOw0KPiA+ICsJaWYgKGJiZGV2ID09IE5VTEwpDQo+ID4gKwkJcmV0 dXJuIC1FTk9ERVY7DQo+ID4gKw0KPiA+ICsJLyogYWxsb2NhdGUgZGV2aWNlIHByaXZhdGUgbWVt b3J5ICovDQo+ID4gKwliYmRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUgPSBydGVfem1hbGxvY19zb2Nr ZXQoZGV2X25hbWUsDQo+ID4gKwkJCXNpemVvZihzdHJ1Y3QgYWNjMTAwX2RldmljZSksIFJURV9D QUNIRV9MSU5FX1NJWkUsDQo+ID4gKwkJCXBjaV9kZXYtPmRldmljZS5udW1hX25vZGUpOw0KPiA+ ICsNCj4gPiArCWlmIChiYmRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUgPT0gTlVMTCkgew0KPiA+ICsJ CXJ0ZV9iYmRldl9sb2coQ1JJVCwNCj4gPiArCQkJCSJBbGxvY2F0ZSBvZiAlenUgYnl0ZXMgZm9y IGRldmljZSBcIiVzXCINCj4gZmFpbGVkIiwNCj4gPiArCQkJCXNpemVvZihzdHJ1Y3QgYWNjMTAw X2RldmljZSksIGRldl9uYW1lKTsNCj4gPiArCQkJCXJ0ZV9iYmRldl9yZWxlYXNlKGJiZGV2KTsN Cj4gPiArCQkJcmV0dXJuIC1FTk9NRU07DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyogRmlsbCBI VyBzcGVjaWZpYyBwYXJ0IG9mIGRldmljZSBzdHJ1Y3R1cmUgKi8NCj4gPiArCWJiZGV2LT5kZXZp Y2UgPSAmcGNpX2Rldi0+ZGV2aWNlOw0KPiA+ICsJYmJkZXYtPmludHJfaGFuZGxlID0gJnBjaV9k ZXYtPmludHJfaGFuZGxlOw0KPiA+ICsJYmJkZXYtPmRhdGEtPnNvY2tldF9pZCA9IHBjaV9kZXYt PmRldmljZS5udW1hX25vZGU7DQo+ID4gKw0KPiA+ICsJLyogSW52b2tlIEFDQzEwMCBkZXZpY2Ug aW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gKi8NCj4gPiArCWFjYzEwMF9iYmRldl9pbml0KGJiZGV2 LCBwY2lfZHJ2KTsNCj4gPiArDQo+ID4gKwlydGVfYmJkZXZfbG9nX2RlYnVnKCJJbml0aWFsaXNl ZCBiYmRldiAlcyAoaWQgPSAldSkiLA0KPiA+ICsJCQlkZXZfbmFtZSwgYmJkZXYtPmRhdGEtPmRl dl9pZCk7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBh Y2MxMDBfcGNpX3JlbW92ZShzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYpIHsNCj4gPiAr CXN0cnVjdCBydGVfYmJkZXYgKmJiZGV2Ow0KPiA+ICsJaW50IHJldDsNCj4gPiArCXVpbnQ4X3Qg ZGV2X2lkOw0KPiA+ICsNCj4gPiArCWlmIChwY2lfZGV2ID09IE5VTEwpDQo+ID4gKwkJcmV0dXJu IC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJLyogRmluZCBkZXZpY2UgKi8NCj4gPiArCWJiZGV2ID0g cnRlX2JiZGV2X2dldF9uYW1lZF9kZXYocGNpX2Rldi0+ZGV2aWNlLm5hbWUpOw0KPiA+ICsJaWYg KGJiZGV2ID09IE5VTEwpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKENSSVQsDQo+ID4gKwkJCQki Q291bGRuJ3QgZmluZCBIVyBkZXYgXCIlc1wiIHRvIHVuaW5pdGlhbGlzZQ0KPiBpdCIsDQo+ID4g KwkJCQlwY2lfZGV2LT5kZXZpY2UubmFtZSk7DQo+ID4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4g Kwl9DQo+ID4gKwlkZXZfaWQgPSBiYmRldi0+ZGF0YS0+ZGV2X2lkOw0KPiA+ICsNCj4gPiArCS8q IGZyZWUgZGV2aWNlIHByaXZhdGUgbWVtb3J5IGJlZm9yZSBjbG9zZSAqLw0KPiA+ICsJcnRlX2Zy ZWUoYmJkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCj4gPiArDQo+ID4gKwkvKiBDbG9zZSBkZXZp Y2UgKi8NCj4gPiArCXJldCA9IHJ0ZV9iYmRldl9jbG9zZShkZXZfaWQpOw0KPiANCj4gRG8geW91 IHdhbnQgdG8gcmVvcmRlciB0aGlzIGNsb3NlIGJlZm9yZSB0aGUgcnRlX2ZyZWUgc28geW91IGNv dWxkIHJlY292ZXINCj4gZnJvbSB0aGUgZmFpbHVyZSA/DQoNCkdpdmVuIHRoaXMgaXMgZG9uZSB0 aGUgc2FtZSB3YXkgZm9yIG90aGVyIFBNRHMgSSB3b3VsZCBub3QgY2hhbmdlIGl0IGFzIGl0IHdv dWxkIGNyZWF0ZSBhIGRpc2NyZXBlbmN5Lg0KSXQgY291bGQgYmUgZG9uZSBpbiBwcmluY2lwbGUg YXMgYW5vdGhlciBwYXRjaCBmb3IgbXVsdGlwbGUgUE1EcyB0byBzdXBwb3J0IHRoaXMsIGJ1dCBy ZWFsbHkgSSBkb24ndCBzZWUgYSB1c2VjYXNlIGZvciB0cnkgdG8gZmFsbCBiYWNrIGluIGNhc2Ug dGhlcmUgd2FzIHN1Y2ggYSBzcGVjdWxhdGl2ZSBhZXJyb3IuIA0KDQoNCj4gDQo+IFRvbQ0KPiAN Cg0KVGhhbmtzDQpOaWMNCg0KDQo+ID4gKwlpZiAocmV0IDwgMCkNCj4gPiArCQlydGVfYmJkZXZf bG9nKEVSUiwNCj4gPiArCQkJCSJEZXZpY2UgJWkgZmFpbGVkIHRvIGNsb3NlIGR1cmluZyB1bmlu aXQ6ICVpIiwNCj4gPiArCQkJCWRldl9pZCwgcmV0KTsNCj4gPiArDQo+ID4gKwkvKiByZWxlYXNl IGJiZGV2IGZyb20gbGlicmFyeSAqLw0KPiA+ICsJcnRlX2JiZGV2X3JlbGVhc2UoYmJkZXYpOw0K PiA+ICsNCj4gPiArCXJ0ZV9iYmRldl9sb2dfZGVidWcoIkRlc3Ryb3llZCBiYmRldiA9ICV1Iiwg ZGV2X2lkKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIHN0cnVjdCBydGVfcGNpX2RyaXZlciBhY2MxMDBfcGNpX3BmX2RyaXZlciA9IHsNCj4gPiAr CQkucHJvYmUgPSBhY2MxMDBfcGNpX3Byb2JlLA0KPiA+ICsJCS5yZW1vdmUgPSBhY2MxMDBfcGNp X3JlbW92ZSwNCj4gPiArCQkuaWRfdGFibGUgPSBwY2lfaWRfYWNjMTAwX3BmX21hcCwNCj4gPiAr CQkuZHJ2X2ZsYWdzID0gUlRFX1BDSV9EUlZfTkVFRF9NQVBQSU5HIH07DQo+ID4gKw0KPiA+ICtz dGF0aWMgc3RydWN0IHJ0ZV9wY2lfZHJpdmVyIGFjYzEwMF9wY2lfdmZfZHJpdmVyID0gew0KPiA+ ICsJCS5wcm9iZSA9IGFjYzEwMF9wY2lfcHJvYmUsDQo+ID4gKwkJLnJlbW92ZSA9IGFjYzEwMF9w Y2lfcmVtb3ZlLA0KPiA+ICsJCS5pZF90YWJsZSA9IHBjaV9pZF9hY2MxMDBfdmZfbWFwLA0KPiA+ ICsJCS5kcnZfZmxhZ3MgPSBSVEVfUENJX0RSVl9ORUVEX01BUFBJTkcgfTsNCj4gPiArDQo+ID4g K1JURV9QTURfUkVHSVNURVJfUENJKEFDQzEwMFBGX0RSSVZFUl9OQU1FLA0KPiBhY2MxMDBfcGNp X3BmX2RyaXZlcik7DQo+ID4gK1JURV9QTURfUkVHSVNURVJfUENJX1RBQkxFKEFDQzEwMFBGX0RS SVZFUl9OQU1FLA0KPiA+ICtwY2lfaWRfYWNjMTAwX3BmX21hcCk7DQo+IFJURV9QTURfUkVHSVNU RVJfUENJKEFDQzEwMFZGX0RSSVZFUl9OQU1FLA0KPiA+ICthY2MxMDBfcGNpX3ZmX2RyaXZlcik7 DQo+ID4gK1JURV9QTURfUkVHSVNURVJfUENJX1RBQkxFKEFDQzEwMFZGX0RSSVZFUl9OQU1FLA0K PiA+ICtwY2lfaWRfYWNjMTAwX3ZmX21hcCk7DQo+ID4gKw0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5oDQo+ID4gYi9kcml2ZXJzL2Jhc2Vi YW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g PiBpbmRleCAwMDAwMDAwLi42ZjQ2ZGYwDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2Ry aXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmgNCj4gPiBAQCAtMCwwICsxLDM3 IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPiAr ICogQ29weXJpZ2h0KGMpIDIwMjAgSW50ZWwgQ29ycG9yYXRpb24gICovDQo+ID4gKw0KPiA+ICsj aWZuZGVmIF9SVEVfQUNDMTAwX1BNRF9IXw0KPiA+ICsjZGVmaW5lIF9SVEVfQUNDMTAwX1BNRF9I Xw0KPiA+ICsNCj4gPiArLyogSGVscGVyIG1hY3JvIGZvciBsb2dnaW5nICovDQo+ID4gKyNkZWZp bmUgcnRlX2JiZGV2X2xvZyhsZXZlbCwgZm10LCAuLi4pIFwNCj4gPiArCXJ0ZV9sb2coUlRFX0xP R18gIyMgbGV2ZWwsIGFjYzEwMF9sb2d0eXBlLCBmbXQgIlxuIiwgXA0KPiA+ICsJCSMjX19WQV9B UkdTX18pDQo+ID4gKw0KPiA+ICsjaWZkZWYgUlRFX0xJQlJURV9CQkRFVl9ERUJVRw0KPiA+ICsj ZGVmaW5lIHJ0ZV9iYmRldl9sb2dfZGVidWcoZm10LCAuLi4pIFwNCj4gPiArCQlydGVfYmJkZXZf bG9nKERFQlVHLCAiYWNjMTAwX3BtZDogIiBmbXQsIFwNCj4gPiArCQkjI19fVkFfQVJHU19fKQ0K PiA+ICsjZWxzZQ0KPiA+ICsjZGVmaW5lIHJ0ZV9iYmRldl9sb2dfZGVidWcoZm10LCAuLi4pICNl bmRpZg0KPiA+ICsNCj4gPiArLyogQUNDMTAwIFBGIGFuZCBWRiBkcml2ZXIgbmFtZXMgKi8NCj4g PiArI2RlZmluZSBBQ0MxMDBQRl9EUklWRVJfTkFNRSAgICAgICAgICAgaW50ZWxfYWNjMTAwX3Bm DQo+ID4gKyNkZWZpbmUgQUNDMTAwVkZfRFJJVkVSX05BTUUgICAgICAgICAgIGludGVsX2FjYzEw MF92Zg0KPiA+ICsNCj4gPiArLyogQUNDMTAwIFBDSSB2ZW5kb3IgJiBkZXZpY2UgSURzICovDQo+ ID4gKyNkZWZpbmUgUlRFX0FDQzEwMF9WRU5ET1JfSUQgICAgICAgICAgICgweDgwODYpDQo+ID4g KyNkZWZpbmUgUlRFX0FDQzEwMF9QRl9ERVZJQ0VfSUQgICAgICAgICgweDBkNWMpDQo+ID4gKyNk ZWZpbmUgUlRFX0FDQzEwMF9WRl9ERVZJQ0VfSUQgICAgICAgICgweDBkNWQpDQo+ID4gKw0KPiA+ ICsvKiBQcml2YXRlIGRhdGEgc3RydWN0dXJlIGZvciBlYWNoIEFDQzEwMCBkZXZpY2UgKi8gc3Ry dWN0DQo+ID4gK2FjYzEwMF9kZXZpY2Ugew0KPiA+ICsJdm9pZCAqbW1pb19iYXNlOyAgLyoqPCBC YXNlIGFkZHJlc3Mgb2YgTU1JTyByZWdpc3RlcnMgKEJBUjApICovDQo+ID4gKwlib29sIHBmX2Rl dmljZTsgLyoqPCBUcnVlIGlmIHRoaXMgaXMgYSBQRiBBQ0MxMDAgZGV2aWNlICovDQo+ID4gKwli b29sIGNvbmZpZ3VyZWQ7IC8qKjwgVHJ1ZSBpZiB0aGlzIEFDQzEwMCBkZXZpY2UgaXMgY29uZmln dXJlZCAqLyB9Ow0KPiA+ICsNCj4gPiArI2VuZGlmIC8qIF9SVEVfQUNDMTAwX1BNRF9IXyAqLw0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfcG1kX2JiZGV2X2Fj YzEwMF92ZXJzaW9uLm1hcA0KPiA+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX3BtZF9i YmRldl9hY2MxMDBfdmVyc2lvbi5tYXANCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGlu ZGV4IDAwMDAwMDAuLjRhNzZkMWQNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVy cy9iYXNlYmFuZC9hY2MxMDAvcnRlX3BtZF9iYmRldl9hY2MxMDBfdmVyc2lvbi5tYXANCj4gPiBA QCAtMCwwICsxLDMgQEANCj4gPiArRFBES18yMSB7DQo+ID4gKwlsb2NhbDogKjsNCj4gPiArfTsN Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9tZXNvbi5idWlsZA0KPiA+IGIvZHJp dmVycy9iYXNlYmFuZC9tZXNvbi5idWlsZCBpbmRleCA0MTViNjcyLi43MjMwMWNlIDEwMDY0NA0K PiA+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvbWVzb24uYnVpbGQNCj4gPiArKysgYi9kcml2ZXJz L2Jhc2ViYW5kL21lc29uLmJ1aWxkDQo+ID4gQEAgLTUsNyArNSw3IEBAIGlmIGlzX3dpbmRvd3MN Cj4gPiAgCXN1YmRpcl9kb25lKCkNCj4gPiAgZW5kaWYNCj4gPg0KPiA+IC1kcml2ZXJzID0gWydu dWxsJywgJ3R1cmJvX3N3JywgJ2ZwZ2FfbHRlX2ZlYycsICdmcGdhXzVnbnJfZmVjJ10NCj4gPiAr ZHJpdmVycyA9IFsnbnVsbCcsICd0dXJib19zdycsICdmcGdhX2x0ZV9mZWMnLCAnZnBnYV81Z25y X2ZlYycsDQo+ID4gKydhY2MxMDAnXQ0KPiA+DQo+ID4gIGNvbmZpZ19mbGFnX2ZtdCA9ICdSVEVf TElCUlRFX1BNRF9CQkRFVl9AMEAnDQo+ID4gIGRyaXZlcl9uYW1lX2ZtdCA9ICdydGVfcG1kX2Ji ZGV2X0AwQCcNCg0K