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 34B6142656; Thu, 28 Sep 2023 01:46:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B963C402D0; Thu, 28 Sep 2023 01:46:20 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 246794029E for ; Thu, 28 Sep 2023 01:46:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695858378; x=1727394378; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=8xuum+qRQbdRICS820MljO44VZUIR3qbnLNAXNKBEMM=; b=ML3M04TvKJ00at7cQwG5TcdjHv30rklcUTKN8wbozfH6cvnH+IZHSWCv zIG0HK8jcYGzRZKmwjC40UQJF0UdqH2g/nkz6fLgEh9Z2Jj7el4n6bLz+ fWSA4QVIyU+DOOcgLHIt9Nknp/ISN3ytZcXZw2WmFIi75TLH+DYU+n1DG EWyQkLeqjIKfPzqJcJoTkqQIfgzLYT+Snarfg+0Ry96ppq8PWcfniugk2 5RX07S0aiTe8ZpGAEkk0uIUKJZGRhEL4hyvo2zxulyKwWjlT4ZbYXJsa3 wyvo17WbcgSpu/i+9Q9sennxb5SLG+dVKeoYGs4wQvEgqabxsjuihjyYP Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10846"; a="448441565" X-IronPort-AV: E=Sophos;i="6.03,182,1694761200"; d="scan'208";a="448441565" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2023 16:46:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10846"; a="752770335" X-IronPort-AV: E=Sophos;i="6.03,182,1694761200"; d="scan'208";a="752770335" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 27 Sep 2023 16:46:16 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 27 Sep 2023 16:46:16 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Wed, 27 Sep 2023 16:46:16 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.175) 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.2507.32; Wed, 27 Sep 2023 16:46:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MR5+GGicvTlAorieQRCbBeqKGEH1HcpvaZ9t+q+fBWrbH3QowHjM3H549tEF4ljda0Cz2BtdPorJLSkI5Of2U5nQGTjGi4+GkGj/BTqXG2a50dxe/qbfrxM309TTFAB0dZbve8pa93gtXCmW61tl+jKG4eI8DlYu7AX3VzK0r8DurX0HO/+lc9+mNHOrFiFcFUd6MQe18FPA9fu0Rj2DYPji7Yrr6kTZd39AW4+bkxBpdlB1Fpf6WRbyY5S8Mq2sEhwJ308/a0QNPBoxxAhgPGhxiWbWuoq5FL2BHpmuqfCLK3RHXzpLKaGrNf9KWYHZLR2sNeNtN8BOs+3dL7Wo8g== 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=8xuum+qRQbdRICS820MljO44VZUIR3qbnLNAXNKBEMM=; b=IjIrUnuYlzRkycf9O65MGZLuW3nIE/QacZBZMgnYnyOO+hPp+x6yW43HfLosAcFcWNV5o3QHVnsEY0fW0RFVt82HELMbM88gTArg0YOGxK98ox+FBNIHK4GZLSDrwhs631o4S3QPMu5vA3TK/D1yklVMeNEesz2niyhEvDFqKPSmtLUXJ4hLrNOjPHY1JMx+7uYwqOGRABGrg88bmmdP4+UrwXAGRkS9USojL+nMPXLNJ3iHW4GpJUrtMBxF7+gyXy4a3RBWwukroMZeQDJOLPBgXuKRYtw4Se74nHBErzmcUjZX3OovTngH/znDcMHJayB17Fue5EjP+eUR0TNBZA== 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 PH7PR11MB7607.namprd11.prod.outlook.com (2603:10b6:510:279::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.22; Wed, 27 Sep 2023 23:46:12 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::c10d:65be:798a:520a]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::c10d:65be:798a:520a%7]) with mapi id 15.20.6813.027; Wed, 27 Sep 2023 23:46:12 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" CC: "hemant.agrawal@nxp.com" , "david.marchand@redhat.com" , "Vargas, Hernan" Subject: RE: [PATCH v2 6/7] baseband/acc: introduce the new VRB2 variant Thread-Topic: [PATCH v2 6/7] baseband/acc: introduce the new VRB2 variant Thread-Index: AQHZ7MzKJFkEk8iQykSdiKSvDkMFQrAutpAAgACdxUA= Date: Wed, 27 Sep 2023 23:46:12 +0000 Message-ID: References: <20230921204349.3285318-1-nicolas.chautru@intel.com> <20230921204349.3285318-7-nicolas.chautru@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BY5PR11MB4451:EE_|PH7PR11MB7607:EE_ x-ms-office365-filtering-correlation-id: 9753d73f-4f77-42fb-54bb-08dbbfb3ee6f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: w5sQC1rsBgxu5PDUyygz0XM9++whzlOs1yU4mo7A2l7Lf+JK5rEDnB5aUe6+3+GW/NQbdXkwwu0fCiYhVl8l/UAwGjHT9zaeqLL9xHiIvOxOS3boITkTwSx1+YMiHkRidDgyIbB40OqbAyYSMEqiTobO8tqiM8+LaMc8+ImI4RYrANWbXqp627QgY/T32Xpd+gPaC3lxxlnr4QVzYpO1MrvbvPLxnJxTu8J3HrvAlTpUSPL2A8WOd8ENG2LBIRItXMjUumdN50uLrv4Lb4gVuiQDBI0Ic0UZc+wSY2agN2oFQqCSUZ8ETLpH3Y1DDECNUvSlItou0L1cQGsTnCdP4rK0dspRRJkvmEIOHNFBp+1rEZsfvXdA6d7Oej0a0403Z/SlEgegACHVwA51OFH/hRr62+z7R/N+2b+dh9ooi4ItPkkW4m3Vk0dZAmclo4+pacx/WT070CuQC3BLdB6Sixr2ElPw4EKcRuM4ZsObCq7XUSEgFPr86Zl+5D0PttxY9rqSv64XFNosSsoy/+C5JvcqGlQAmO83u2mU1Rc9eI9zI8oSFwALpkETSKSqgTHo9DYBx3Ae+4Z1BBpQAcx5kM30w5KlVgMxgtPMdXddSJ8= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(39860400002)(396003)(366004)(346002)(376002)(230922051799003)(1800799009)(451199024)(186009)(64100799003)(30864003)(55016003)(2906002)(33656002)(26005)(86362001)(52536014)(5660300002)(4326008)(8676002)(8936002)(38100700002)(38070700005)(316002)(122000001)(82960400001)(41300700001)(53546011)(9686003)(7696005)(6506007)(71200400001)(83380400001)(54906003)(64756008)(66446008)(66476007)(107886003)(66556008)(66946007)(76116006)(110136005)(966005)(478600001)(559001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K2dwVFN2L0hVS3FqS05tTUM4ampsckJkTUtpVC9vNTNWbWF5QUFsUFQ5NFpP?= =?utf-8?B?V0lUSFBTYUVzeEVpb2xXSzVpYkluYjFJZ21ucG0yNGFISXdDMjdDMzBkaUJk?= =?utf-8?B?V2M3U2w0VkNXSGFOSC80SXdaSGxsWnhBaTJhVklBQkR3ajlZSzN3d3d6c0Ft?= =?utf-8?B?WDc3UWJmQjA3aE1BMGdDaEl4a3RURW9KUTZ1ZGM5UHdieWRVSjFCc0c2S1Np?= =?utf-8?B?WVBaZDk5Y1RmeE5ldkxJSDQzOW9Eek1CSStOcGRQMTFCUlJIZHpYc2kxL0JF?= =?utf-8?B?cWFncXMyTDd4dU41clh5eEtLVnY0bXFyYTJSVnpNdEZ3VVByL25mSTY3VnhQ?= =?utf-8?B?QXIwUURuMG1nbWFIelVyangzNVlwUzlsYm5IZ0o5MjZTVEVqU2NaSzZJRkZt?= =?utf-8?B?NDBoUDZ6U0VoblBEQS9TVFNWSHVvZzMwVVhiWGJRd0h1T09zTmRTVVRDWjBj?= =?utf-8?B?Unk1cWNRUndKck9GMzB2VExnTUZPQ0dMQ3ZFcU40QWlTKyttTnJxNkVWb3ZM?= =?utf-8?B?YVJyNGRlZzJqcG42YXNyNUtGbE54SXRpQ3k0eDdsWm02eVYyVnFRNjU3anFO?= =?utf-8?B?amRlaEt2Q3l5M2lhalF5ZjByeStUSkRCanNBSGYzSWp6QzRnTHBjaGNDYVBi?= =?utf-8?B?bUR4Y3owRlFhNTFTRjVET1o2bEpkbnMrMkVQOVVDekExTG0xS1BBeXlPeWly?= =?utf-8?B?RVM0L2ppNWJwSFVRTEVOcEx3SnNYR2NVQzRBNjkzSTBEVzR3eVNEVGVmbjBB?= =?utf-8?B?MisraFdmOHhFa2xjc2xBOWU1UUtMUVhBR1NZeXo4QTJLWkNhOWN0eGYycU9C?= =?utf-8?B?ejBSaW9sTlRwVC9oai9KbTRoWGZycHdtWmFXTUxwK2RnRGsvUlhlZ25sTWRD?= =?utf-8?B?dWZrTEp2ZFVKbjFhUXdzeTFoVHFrdWtSa3RkVmpkOGdqU3NhNXErM3JNRjZP?= =?utf-8?B?MG9WbDZndmwvOWNQMVc3YUI5azFQNlIzcUNoekxaZXRuYmtQYnJjcldyWlZR?= =?utf-8?B?NGpnOUw1dkZGQTNmS3kwNE5rZ05WWmp4L2xheHRvRWF2RmVKZnBBcEpKM2Zl?= =?utf-8?B?VTBHYlJkMDY2WGl3Z2U2dm85aFZJVkNaenlkSWJOUGU3RWVyVUNKNHdSMFFZ?= =?utf-8?B?OC9UREpucnhkYnFwdHZxMHo2YkVrNmhHVWVQUzZxd2gvY2YvQlo5QStaTFd2?= =?utf-8?B?bmcrSzJ5aDJCbVdDVVE4NlJBTFpONGN5bSszMWxBSnprRmwyaWhQS3ozdDQw?= =?utf-8?B?RVNGbVdqS1lWNVk2MFU4VlZTR2pUVUR2dFQ4TGZSWWpNV3JxSjdic1lVYlA4?= =?utf-8?B?VFE5V1UxR25jSklYUVgzd0JxK0p6TU5LL0NmaVlYWTA4S2pRQnVlSkZlR2dv?= =?utf-8?B?cWpHdThRdEM2eWtNOGRWOGxoSkVvVHVSdE94YnhKS040L1ZyOTVxYXpSN1N0?= =?utf-8?B?S3BHeDhNUDRjUFdsZ0EwSFBURzc5Q3lsWEZNSmNlMEplbEFOQlJwK29wK2Vw?= =?utf-8?B?QTdLeDl4UVZQZGd3bmhZVFBpemxxYkx4K3NwRTBIbHBOSzVrOUt2cGxYREFS?= =?utf-8?B?UVNndE16d00rSWc1Qk9JdlVRK2xxY2syeGcwZ2FLWC9XL2RkUUpBVkYzMkd1?= =?utf-8?B?cEpycXlGOHM3dHRRZEN3dXk1UFBIV2lHdUJBa0Y1Vllaa3RtZGd0VE5EcFNP?= =?utf-8?B?c0I5cFY1Rld5T01lMnhzUjlBclkxY0Ztazd5WVpvRWR5Q1ZzSFFiWkhqZGt2?= =?utf-8?B?TFFYTE90UGsvbkVCN1lJeXQ0S3RGQ01sTEVQa3MwL2E0ZGdMcXNQZCtiS0Ft?= =?utf-8?B?ekFYdjFBaDdOZFBOZmFGZlowdy9jS0wvZU5zL1h4ZlkzOGpnazkwek9TdHh5?= =?utf-8?B?K3hYSURYVGE3WGVWR3lVS082Q2FOY0JkakFTd2ZiUVR2QlNzMnRqUG0vblBW?= =?utf-8?B?eDRtbnBLdGdtSkpIWWZwSlAxWktqRmpVREs3elV2TDhFYlNFY0NBcHhnMWY0?= =?utf-8?B?N0pvSjlzTmV6VENwdDR6MGtFYSs5YmI4WDhVQTJjWEVXeTJXWlVBMW4xazAr?= =?utf-8?B?NjNxeE92RnNIbWsvdENwaUZPdW9ZTmc4WE14V2lrUkNwY3JwZ3pocnNVWk5y?= =?utf-8?Q?QSAyLKVJvfVtfYiVHMihkaJL2?= 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: 9753d73f-4f77-42fb-54bb-08dbbfb3ee6f X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2023 23:46:12.2782 (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: OhSF4UvG2TrW9LKB3M2+DdInnCdD1ZvwN0nvJ2mZycIesidwSEkb5HyVCkQwcON/m55GLQ+fIxYRrHRN7q5zVP3U2JD6Z2umyojZzmQAKLU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7607 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 bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNk YXksIFNlcHRlbWJlciAyNywgMjAyMyA2OjQwIEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxu aWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBoZW1hbnQuYWdy YXdhbEBueHAuY29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOyBWYXJnYXMsIEhlcm5hbg0K PiA8aGVybmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgNi83 XSBiYXNlYmFuZC9hY2M6IGludHJvZHVjZSB0aGUgbmV3IFZSQjIgdmFyaWFudA0KPiANCj4gDQo+ IA0KPiBPbiA5LzIxLzIzIDIyOjQzLCBOaWNvbGFzIENoYXV0cnUgd3JvdGU6DQo+ID4gVGhpcyBl eHRlbmRzIHRoZSB1bmlmaWVkIGRyaXZlciB0byBzdXBwb3J0IGJvdGggdGhlDQo+ID4gVlJCMSBh bmQgVlJCMiBpbXBsZW1lbnRhdGlvbnMgb2YgSW50ZWwgdlJBTiBCb29zdC4NCj4gPg0KPiA+IFNp Z25lZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4N Cj4gPiAtLS0NCj4gPiAgIGRvYy9ndWlkZXMvYmJkZXZzL2luZGV4LnJzdCAgICAgICAgICAgIHwg ICAgMSArDQo+ID4gICBkb2MvZ3VpZGVzL2JiZGV2cy92cmIyLnJzdCAgICAgICAgICAgICB8ICAy NjkgKysrKysNCj4gPiAgIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjNfMTEucnN0IHwg ICAgMyArDQo+ID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmggICAgICB8ICAg ODQgKy0NCj4gPiAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV9hY2MxMDBfcG1kLmMgIHwgICAg NCArLQ0KPiA+ICAgZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQuYyAgICAgfCAxNDQy ICsrKysrKysrKysrKysrKysrKysrKy0tLQ0KPiA+ICAgZHJpdmVycy9iYXNlYmFuZC9hY2MvdnJi MV9wZl9lbnVtLmggICAgfCAgIDE3ICstDQo+ID4gICBkcml2ZXJzL2Jhc2ViYW5kL2FjYy92cmIy X3BmX2VudW0uaCAgICB8ICAxMjQgKysNCj4gPiAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjL3ZyYjJf dmZfZW51bS5oICAgIHwgIDEyMSArKw0KPiA+ICAgZHJpdmVycy9iYXNlYmFuZC9hY2MvdnJiX3Bt ZC5oICAgICAgICAgfCAgMTYxICsrLQ0KPiA+ICAgMTAgZmlsZXMgY2hhbmdlZCwgMjA2MiBpbnNl cnRpb25zKCspLCAxNjQgZGVsZXRpb25zKC0pDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZG9j L2d1aWRlcy9iYmRldnMvdnJiMi5yc3QNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2Jhc2ViYW5kL2FjYy92cmIyX3BmX2VudW0uaA0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvYmFzZWJhbmQvYWNjL3ZyYjJfdmZfZW51bS5oDQo+IA0KPiANCj4gQXMgYSBnZW5lcmFs IGNvbW1lbnQsIHRoZSByZXZpZXcgcHJvY2VzcyB3b3VsZCBiZSBlYXNpZXIgaWYgdGhlIHBhdGNo IHdhcw0KPiBzcGxpdCBieSBmZWF0dXJlcyBpbnRyb2R1Y2VkOg0KPiAtIEJhc2UgaW5pdCwgbm8g Y2FwYWJpbGl0aWVzIGV4cG9zZWQNCj4gLSBBZGQgTERQQyBjYXBhYmlsaXRpZXMgYW5kIHJlbGF0 ZWQgY29kZQ0KPiAtIEFERCBGRlQgY2FwYWJpbGl0aWVzIGFuZCByZWxhdGVkIGNvZGUNCj4gLSBN TEQtVFMgLi4uDQo+IA0KPiBXZSBoYWQgdGhpcyB2ZXJ5IGRpc2N1c3Npb24gbGFzdCB3ZWVrIGF0 IHRoZSB0ZWNoYm9hcmQgZm9yIGEgTmV0IFBNRCwgYW5kIGl0DQo+IHdhcyBhIHNoYXJlZCBvcGlu aW9uIGFjcm9zcyB0aGUgYm9hcmQuDQoNClllcyBJIHJlYWxpemUgdGhlcmUgaXMgbW9yZSBjb2Rl IHRoYXQgSSBmaXJzdCB0aG91Z2h0LiBXaWxsIGRvIGluIHYzLg0KDQo+IA0KPiA+IGRpZmYgLS1n aXQgYS9kb2MvZ3VpZGVzL2JiZGV2cy9pbmRleC5yc3QgYi9kb2MvZ3VpZGVzL2JiZGV2cy9pbmRl eC5yc3QNCj4gPiBpbmRleCA3N2Q0YzU0NjY0Li4yNjkxNTdkNzdmIDEwMDY0NA0KPiA+IC0tLSBh L2RvYy9ndWlkZXMvYmJkZXZzL2luZGV4LnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvYmJkZXZz L2luZGV4LnJzdA0KPiA+IEBAIC0xNSw0ICsxNSw1IEBAIEJhc2ViYW5kIERldmljZSBEcml2ZXJz DQo+ID4gICAgICAgZnBnYV81Z25yX2ZlYw0KPiA+ICAgICAgIGFjYzEwMA0KPiA+ICAgICAgIHZy YjENCj4gPiArICAgIHZyYjINCj4gPiAgICAgICBsYTEyeHgNCj4gPiBkaWZmIC0tZ2l0IGEvZG9j L2d1aWRlcy9iYmRldnMvdnJiMi5yc3QgYi9kb2MvZ3VpZGVzL2JiZGV2cy92cmIyLnJzdA0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4IDAwMDAwMDAwMDAuLjhkOGUwOTQ2NjANCj4gPiAt LS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZG9jL2d1aWRlcy9iYmRldnMvdnJiMi5yc3QNCj4gPiBA QCAtMCwwICsxLDI2OSBAQA0KPiA+ICsuLiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0z LUNsYXVzZQ0KPiA+ICsgICAgQ29weXJpZ2h0KGMpIDIwMjMgSW50ZWwgQ29ycG9yYXRpb24NCj4g PiArDQo+ID4gKy4uIGluY2x1ZGU6OiA8aXNvbnVtLnR4dD4NCj4gPiArDQo+ID4gK0ludGVsXCB8 cmVnfCB2UkFOIEJvb3N0IHYyIFBvbGwgTW9kZSBEcml2ZXIgKFBNRCkNCj4gPiArPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ICsNCj4gPiArVGhl IEludGVsXCB8cmVnfCB2UkFOIEJvb3N0IGludGVncmF0ZWQgYWNjZWxlcmF0b3IgZW5hYmxlcw0K PiA+ICtjb3N0LWVmZmVjdGl2ZSA0RyBhbmQgNUcgbmV4dC1nZW5lcmF0aW9uIHZpcnR1YWxpemVk IFJhZGlvIEFjY2Vzcw0KPiA+ICtOZXR3b3JrICh2UkFOKSBzb2x1dGlvbnMuDQo+ID4gK1RoZSBJ bnRlbCB2UkFOIEJvb3N0IHYyLjAgKFZSQjIgaW4gdGhlIGNvZGUpIGlzIHNwZWNpZmljYWxseQ0K PiA+ICtpbnRlZ3JhdGVkIG9uIHRoZSBJbnRlbFwgfHJlZ3wgWGVvblwgfHJlZ3wgR3Jhbml0ZSBS YXBpZHMtRCBQcm9jZXNzIChHTlItDQo+IEQpLg0KPiA+ICsNCj4gPiArRmVhdHVyZXMNCj4gPiAr LS0tLS0tLS0NCj4gPiArDQo+ID4gK0ludGVsIHZSQU4gQm9vc3QgdjIuMCBpbmNsdWRlcyBhIDVH IExvdyBEZW5zaXR5IFBhcml0eSBDaGVjayAoTERQQykNCj4gPiArZW5jb2Rlci9kZWNvZGVyLCBy YXRlIG1hdGNoL2RlbWF0Y2gsIEh5YnJpZCBBdXRvbWF0aWMgUmVwZWF0IFJlcXVlc3QNCj4gPiAr KEhBUlEpIHdpdGggYWNjZXNzIHRvIEREUiBtZW1vcnkgZm9yIGJ1ZmZlciBtYW5hZ2VtZW50LCBh IDRHIFR1cmJvDQo+ID4gK2VuY29kZXIvZGVjb2RlciwgYSBGYXN0IEZvdXJpZXIgVHJhbnNmb3Jt IChGRlQpIGJsb2NrIHByb3ZpZGluZw0KPiA+ICtERlQvaURGVCBwcm9jZXNzaW5nIG9mZmxvYWQg Zm9yIHRoZSA1RyBTb3VuZGluZyBSZWZlcmVuY2UgU2lnbmFsDQo+ID4gKyhTUlMpLCBhIE1MRC1U UyBhY2NlbGVyYXRvciwgYSBRdWV1ZSBNYW5hZ2VyIChRTUdSKSwgYW5kIGEgRE1BDQo+IHN1YnN5 c3RlbS4NCj4gPiArVGhlcmUgaXMgbm8gZGVkaWNhdGVkIG9uLWNhcmQgbWVtb3J5IGZvciBIQVJR LCB0aGUgY29oZXJlbnQgbWVtb3J5IG9uDQo+IHRoZSBDUFUgc2lkZSBpcyBiZWluZyB1c2VkLg0K PiA+ICsNCj4gPiArVGhlc2UgaGFyZHdhcmUgYmxvY2tzIHByb3ZpZGUgdGhlIGZvbGxvd2luZyBm ZWF0dXJlcyBleHBvc2VkIGJ5IHRoZSBQTUQ6DQo+ID4gKw0KPiA+ICstIExEUEMgRW5jb2RlIGlu IHRoZSBEb3dubGluayAoNUdOUikNCj4gPiArLSBMRFBDIERlY29kZSBpbiB0aGUgVXBsaW5rICg1 R05SKQ0KPiA+ICstIFR1cmJvIEVuY29kZSBpbiB0aGUgRG93bmxpbmsgKDRHKQ0KPiA+ICstIFR1 cmJvIERlY29kZSBpbiB0aGUgVXBsaW5rICg0RykNCj4gPiArLSBGRlQgcHJvY2Vzc2luZw0KPiA+ ICstIE1MRC1UUyBwcm9jZXNzaW5nDQo+ID4gKy0gU2luZ2xlIFJvb3QgSS9PIFZpcnR1YWxpemF0 aW9uIChTUi1JT1YpIHdpdGggMTYgVmlydHVhbCBGdW5jdGlvbnMNCj4gPiArKFZGcykgcGVyIFBo eXNpY2FsIEZ1bmN0aW9uIChQRikNCj4gPiArLSBNYXhpbXVtIG9mIDIwNDggcXVldWVzIHBlciBW Rg0KPiA+ICstIE1lc3NhZ2UgU2lnbmFsZWQgSW50ZXJydXB0cyAoTVNJcykNCj4gPiArDQo+ID4g K1RoZSBJbnRlbCB2UkFOIEJvb3N0IHYyLjAgUE1EIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgYmJk ZXYgY2FwYWJpbGl0aWVzOg0KPiA+ICsNCj4gPiArKiBGb3IgdGhlIExEUEMgZW5jb2RlIG9wZXJh dGlvbjoNCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0NSQ18yNEJfQVRUQUNIYGA6IHNldCB0 byBhdHRhY2ggQ1JDMjRCIHRvIENCKHMpLg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfUkFU RV9NQVRDSGBgOiBpZiBzZXQgdGhlbiBkbyBub3QgZG8gUmF0ZSBNYXRjaA0KPiBieXBhc3MuDQo+ ID4gKyAgIC0gYGBSVEVfQkJERVZfTERQQ19JTlRFUkxFQVZFUl9CWVBBU1NgYDogaWYgc2V0IHRo ZW4gYnlwYXNzDQo+IGludGVybGVhdmVyLg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfRU5D X1NDQVRURVJfR0FUSEVSYGA6IHN1cHBvcnRzIHNjYXR0ZXItZ2F0aGVyDQo+IGZvciBpbnB1dC9v dXRwdXQgZGF0YS4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0VOQ19DT05DQVRFTkFUSU9O YGA6IGNvbmNhdGVuYXRlIGNvZGUgYmxvY2tzDQo+IHdpdGggYml0IGdyYW51bGFyaXR5Lg0KPiA+ ICsNCj4gPiArKiBGb3IgdGhlIExEUEMgZGVjb2RlIG9wZXJhdGlvbjoNCj4gPiArICAgLSBgYFJU RV9CQkRFVl9MRFBDX0NSQ19UWVBFXzI0Ql9DSEVDS2BgOiBjaGVjayBDUkMyNEIgZnJvbSBDQihz KS4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0NSQ19UWVBFXzI0Ql9EUk9QYGA6IGRyb3Bz IENSQzI0QiBiaXRzDQo+IGFwcGVuZGVkIHdoaWxlIGRlY29kaW5nLg0KPiA+ICsgICAtIGBgUlRF X0JCREVWX0xEUENfQ1JDX1RZUEVfMjRBX0NIRUNLYGA6IGNoZWNrIENSQzI0QSBmcm9tIENCKHMp Lg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfQ1JDX1RZUEVfMTZfQ0hFQ0tgYDogY2hlY2sg Q1JDMTYgZnJvbSBDQihzKS4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0hRX0NPTUJJTkVf SU5fRU5BQkxFYGA6IHByb3ZpZGVzIGFuIGlucHV0IGZvcg0KPiBIQVJRIGNvbWJpbmluZy4NCj4g PiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0hRX0NPTUJJTkVfT1VUX0VOQUJMRWBgOiBwcm92aWRl cyBhbiBpbnB1dA0KPiBmb3IgSEFSUSBjb21iaW5pbmcuDQo+ID4gKyAgIC0gYGBSVEVfQkJERVZf TERQQ19JVEVSQVRJT05fU1RPUF9FTkFCTEVgYDogZGlzYWJsZSBlYXJseQ0KPiB0ZXJtaW5hdGlv bi4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0RFQ19TQ0FUVEVSX0dBVEhFUmBgOiBzdXBw b3J0cyBzY2F0dGVyLWdhdGhlcg0KPiBmb3IgaW5wdXQvb3V0cHV0IGRhdGEuDQo+ID4gKyAgIC0g YGBSVEVfQkJERVZfTERQQ19IQVJRXzZCSVRfQ09NUFJFU1NJT05gYDogc3VwcG9ydHMNCj4gY29t cHJlc3Npb24gb2YgdGhlIEhBUlEgaW5wdXQvb3V0cHV0Lg0KPiA+ICsgICAtIGBgUlRFX0JCREVW X0xEUENfTExSX0NPTVBSRVNTSU9OYGA6IHN1cHBvcnRzIExMUiBpbnB1dA0KPiBjb21wcmVzc2lv bi4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9MRFBDX0hBUlFfNEJJVF9DT01QUkVTU0lPTmBgOiBz dXBwb3J0cw0KPiBjb21wcmVzc2lvbiBvZiB0aGUgSEFSUSBpbnB1dC9vdXRwdXQuDQo+ID4gKyAg IC0gYGBSVEVfQkJERVZfTERQQ19TT0ZUX09VVF9FTkFCTEVgYDogc2V0IHRoZSBBUFAgTExSIHNv ZnQgb3V0cHV0Lg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfU09GVF9PVVRfUk1fQllQQVNT YGA6IHNldCB0aGUgQVBQIExMUiBzb2Z0DQo+IG91dHB1dCBhZnRlciByYXRlLW1hdGNoaW5nLg0K PiA+ICsgICAtIGBgUlRFX0JCREVWX0xEUENfU09GVF9PVVRfREVJTlRFUkxFQVZFUl9CWVBBU1Ng YDogZGlzYWJsZXMgdGhlDQo+IGRlLWludGVybGVhdmVyLg0KPiA+ICsNCj4gPiArKiBGb3IgdGhl IHR1cmJvIGVuY29kZSBvcGVyYXRpb246DQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fQ1JD XzI0Ql9BVFRBQ0hgYDogc2V0IHRvIGF0dGFjaCBDUkMyNEIgdG8NCj4gQ0IocykuDQo+ID4gKyAg IC0gYGBSVEVfQkJERVZfVFVSQk9fUkFURV9NQVRDSGBgOiBpZiBzZXQgdGhlbiBkbyBub3QgZG8g UmF0ZSBNYXRjaA0KPiBieXBhc3MuDQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fRU5DX0lO VEVSUlVQVFNgYDogc2V0IGZvciBlbmNvZGVyIGRlcXVldWUNCj4gaW50ZXJydXB0cy4NCj4gPiAr ICAgLSBgYFJURV9CQkRFVl9UVVJCT19SVl9JTkRFWF9CWVBBU1NgYDogc2V0IHRvIGJ5cGFzcyBS ViBpbmRleC4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19FTkNfU0NBVFRFUl9HQVRIRVJg YDogc3VwcG9ydHMgc2NhdHRlci0NCj4gZ2F0aGVyIGZvciBpbnB1dC9vdXRwdXQgZGF0YS4NCj4g PiArDQo+ID4gKyogRm9yIHRoZSB0dXJibyBkZWNvZGUgb3BlcmF0aW9uOg0KPiA+ICsgICAtIGBg UlRFX0JCREVWX1RVUkJPX0NSQ19UWVBFXzI0QmBgOiBjaGVjayBDUkMyNEIgZnJvbSBDQihzKS4N Cj4gPiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19TVUJCTE9DS19ERUlOVEVSTEVBVkVgYDogcGVy Zm9ybSBzdWJibG9jaw0KPiBkZS1pbnRlcmxlYXZlLg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RV UkJPX0RFQ19JTlRFUlJVUFRTYGA6IHNldCBmb3IgZGVjb2RlciBkZXF1ZXVlDQo+IGludGVycnVw dHMuDQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fTkVHX0xMUl8xX0JJVF9JTmBgOiBzZXQg aWYgbmVnYXRpdmUgTExSIGlucHV0IGlzDQo+IHN1cHBvcnRlZC4NCj4gPiArICAgLSBgYFJURV9C QkRFVl9UVVJCT19ERUNfVEJfQ1JDXzI0Ql9LRUVQYGA6IGtlZXAgQ1JDMjRCIGJpdHMNCj4gYXBw ZW5kZWQgd2hpbGUgZGVjb2RpbmcuDQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fREVDX0NS Q18yNEJfRFJPUGBgOiBvcHRpb24gdG8gZHJvcCB0aGUgY29kZQ0KPiBibG9jayBDUkMgYWZ0ZXIg ZGVjb2RpbmcuDQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fRUFSTFlfVEVSTUlOQVRJT05g YDogc2V0IGVhcmx5IHRlcm1pbmF0aW9uDQo+IGZlYXR1cmUuDQo+ID4gKyAgIC0gYGBSVEVfQkJE RVZfVFVSQk9fREVDX1NDQVRURVJfR0FUSEVSYGA6IHN1cHBvcnRzIHNjYXR0ZXItDQo+IGdhdGhl ciBmb3IgaW5wdXQvb3V0cHV0IGRhdGEuDQo+ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fSEFM Rl9JVEVSQVRJT05fRVZFTmBgOiBzZXQgaGFsZiBpdGVyYXRpb24NCj4gZ3JhbnVsYXJpdHkuDQo+ ID4gKyAgIC0gYGBSVEVfQkJERVZfVFVSQk9fU09GVF9PVVRQVVRgYDogc2V0IHRoZSBBUFAgTExS IHNvZnQgb3V0cHV0Lg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RVUkJPX0VRVUFMSVpFUmBgOiBz ZXQgdGhlIHR1cmJvIGVxdWFsaXplciBmZWF0dXJlLg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX1RV UkJPX1NPRlRfT1VUX1NBVFVSQVRFYGA6IHNldCB0aGUgc29mdCBvdXRwdXQNCj4gc2F0dXJhdGlv bi4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9UVVJCT19DT05USU5VRV9DUkNfTUFUQ0hgYDogc2V0 IHRvIHJ1biBhbiBleHRyYQ0KPiBvZGQgaXRlcmF0aW9uIGFmdGVyIENSQyBtYXRjaC4NCj4gPiAr ICAgLSBgYFJURV9CQkRFVl9UVVJCT19ORUdfTExSXzFfQklUX1NPRlRfT1VUYGA6IHNldCBpZiBu ZWdhdGl2ZSBBUFANCj4gTExSIG91dHB1dCBzdXBwb3J0ZWQuDQo+ID4gKyAgIC0gYGBSVEVfQkJE RVZfVFVSQk9fTUFQX0RFQ2BgOiBzdXBwb3J0cyBmbGV4aWJsZSBwYXJhbGxlbCBNQVANCj4gZW5n aW5lIGRlY29kaW5nLg0KPiA+ICsNCj4gPiArKiBGb3IgdGhlIEZGVCBvcGVyYXRpb246DQo+ID4g KyAgIC0gYGBSVEVfQkJERVZfRkZUX1dJTkRPV0lOR2BgOiBmbGV4aWJsZSB3aW5kb3dpbmcgY2Fw YWJpbGl0eS4NCj4gPiArICAgLSBgYFJURV9CQkRFVl9GRlRfQ1NfQURKVVNUTUVOVGBgOiBmbGV4 aWJsZSBhZGp1c3RtZW50IG9mIEN5Y2xpYyBTaGlmdA0KPiB0aW1lIG9mZnNldC4NCj4gPiArICAg LSBgYFJURV9CQkRFVl9GRlRfREZUX0JZUEFTU2BgOiBzZXQgZm9yIGJ5cGFzcyB0aGUgREZUIGFu ZCBnZXQNCj4gZGlyZWN0bHkgaW50byBpREZUIGlucHV0Lg0KPiA+ICsgICAtIGBgUlRFX0JCREVW X0ZGVF9JREZUX0JZUEFTU2BgOiBzZXQgZm9yIGJ5cGFzcyB0aGUgSURGVCBhbmQgZ2V0DQo+IGRp cmVjdGx5IHRoZSBERlQgb3V0cHV0Lg0KPiA+ICsgICAtIGBgUlRFX0JCREVWX0ZGVF9XSU5ET1dJ TkdfQllQQVNTYGA6IHNldCBmb3IgYnlwYXNzIHRpbWUgZG9tYWluDQo+IHdpbmRvd2luZy4NCj4g PiArDQo+ID4gKyogRm9yIHRoZSBNTEQtVFMgb3BlcmF0aW9uOg0KPiA+ICsgICAtIGBgUlRFX0JC REVWX01MRFRTX1JFUGBgOiBzZXQgdG8gcmVwZWF0IGFuZCByZXVzZSBjaGFubmVsIGFjcm9zcw0K PiBvcGVyYXRpb25zLg0KPiA+ICsNCj4gPiArSW5zdGFsbGF0aW9uDQo+ID4gKy0tLS0tLS0tLS0t LQ0KPiA+ICsNCj4gPiArU2VjdGlvbiAzIG9mIHRoZSBEUERLIG1hbnVhbCBwcm92aWRlcyBpbnN0 cnVjdGlvbnMgb24gaW5zdGFsbGluZyBhbmQNCj4gY29tcGlsaW5nIERQREsuDQo+ID4gKw0KPiA+ ICtEUERLIHJlcXVpcmVzIGh1Z2VwYWdlcyB0byBiZSBjb25maWd1cmVkIGFzIGRldGFpbGVkIGlu IHNlY3Rpb24gMiBvZiB0aGUNCj4gRFBESyBtYW51YWwuDQo+ID4gK1RoZSBiYmRldiB0ZXN0IGFw cGxpY2F0aW9uIGhhcyBiZWVuIHRlc3RlZCB3aXRoIGEgY29uZmlndXJhdGlvbiA0MCB4IDFHQg0K PiBodWdlcGFnZXMuDQo+ID4gK1RoZSBodWdlcGFnZSBjb25maWd1cmF0aW9uIG9mIGEgc2VydmVy IG1heSBiZSBleGFtaW5lZCB1c2luZzoNCj4gPiArDQo+ID4gKy4uIGNvZGUtYmxvY2s6OiBjb25z b2xlDQo+ID4gKw0KPiA+ICsgICBncmVwIEh1Z2UqIC9wcm9jL21lbWluZm8NCj4gPiArDQo+ID4g Kw0KPiA+ICtJbml0aWFsaXphdGlvbg0KPiA+ICstLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiAr V2hlbiB0aGUgZGV2aWNlIGZpcnN0IHBvd2VycyB1cCwgaXRzIFBDSSBQaHlzaWNhbCBGdW5jdGlv bnMgKFBGKSBjYW4NCj4gPiArYmUgbGlzdGVkIHRocm91Z2ggdGhlc2UgY29tbWFuZHMgZm9yIElu dGVsIHZSQU4gQm9vc3QgdjI6DQo+ID4gKw0KPiA+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0K PiA+ICsNCj4gPiArICAgc3VkbyBsc3BjaSAtdmQ4MDg2OjU3YzINCj4gPiArDQo+ID4gK1RoZSBw aHlzaWNhbCBhbmQgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGNvbXBhdGlibGUgd2l0aCBMaW51eCBV SU8gZHJpdmVyczoNCj4gPiArYGB2ZmlvYGAgYW5kIGBgaWdiX3Vpb2BgLg0KPiA+ICtIb3dldmVy LCBpbiBvcmRlciB0byB3b3JrIHRoZSA1Ry80RyBGRUMgZGV2aWNlIGZpcnN0IG5lZWRzIHRvIGJl DQo+ID4gK2JvdW5kIHRvIG9uZSBvZiB0aGVzZSBMaW51eCBkcml2ZXJzIHRocm91Z2ggRFBESy4N Cj4gPiArDQo+ID4gKw0KPiA+ICtCaW5kIFBGIFVJTyBkcml2ZXIocykNCj4gPiArfn5+fn5+fn5+ fn5+fn5+fn5+fn5+DQo+ID4NCj4gDQo+IFBsZWFzZSBkb2N1bWVudCB3aXRoIFZGSU8gaW5zdGVh ZCBvZiBJR0JfVUlPLCB3aGljaCBpcyBiZWluZyBkZXByZWNhdGVkLg0KDQpUaGVyZSBhcmUgc3Rp bGwgc29tZSBkZXBsb3ltZW50IHdpdGggaWdiX3Vpbywgc28ga2VlcGluZyBmb3IgYSBiaXQuIFRo ZW4gd2UgY2FuIHJlbW92ZSBpbiBhbGwgZG9jdW1lbnRhdGlvbnMuIA0KDQo+IA0KPiA+ICtJbnN0 YWxsIHRoZSBEUERLIGlnYl91aW8gZHJpdmVyLCBiaW5kIGl0IHdpdGggdGhlIFBGIFBDSSBkZXZp Y2UgSUQNCj4gPiArYW5kIHVzZSBgYGxzcGNpYGAgdG8gY29uZmlybSB0aGUgUEYgZGV2aWNlIGlz IHVuZGVyIHVzZSBieSBgYGlnYl91aW9gYCBEUERLDQo+IFVJTyBkcml2ZXIuDQo+ID4gKw0KPiA+ ICtUaGUgaWdiX3VpbyBkcml2ZXIgbWF5IGJlIGJvdW5kIHRvIHRoZSBQRiBQQ0kgZGV2aWNlIHVz aW5nIG9uZSBvZiB0d28NCj4gPiArbWV0aG9kcyBmb3IgSW50ZWwgdlJBTiBCb29zdCB2MjoNCj4g PiArDQo+ID4gKyMuIFBDSSBmdW5jdGlvbnMgKHBoeXNpY2FsIG9yIHZpcnR1YWwsIGRlcGVuZGlu ZyBvbiB0aGUgdXNlIGNhc2UpIGNhbg0KPiA+ICtiZSBib3VuZCB0byB0aGUgVUlPIGRyaXZlciBi eSByZXBlYXRpbmcgdGhpcyBjb21tYW5kIGZvciBldmVyeSBmdW5jdGlvbi4NCj4gPiArDQo+ID4g Ky4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ID4gKw0KPiA+ICsgICBjZCA8ZHBkay10b3AtbGV2 ZWwtZGlyZWN0b3J5Pg0KPiA+ICsgICBpbnNtb2QgYnVpbGQva21vZC9pZ2JfdWlvLmtvDQo+ID4g KyAgIGVjaG8gIjgwODYgNTdjMiIgPiAvc3lzL2J1cy9wY2kvZHJpdmVycy9pZ2JfdWlvL25ld19p ZA0KPiA+ICsgICBsc3BjaSAtdmQ4MDg2OjU3YzINCj4gPiArDQo+ID4gKyMuIEFub3RoZXIgd2F5 IHRvIGJpbmQgUEYgd2l0aCBEUERLIFVJTyBkcml2ZXIgaXMgYnkgdXNpbmcgdGhlDQo+ID4gK2Bg ZHBkay1kZXZiaW5kLnB5YGAgdG9vbA0KPiA+ICsNCj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNv bGUNCj4gPiArDQo+ID4gKyAgIGNkIDxkcGRrLXRvcC1sZXZlbC1kaXJlY3Rvcnk+DQo+ID4gKyAg IHVzZXJ0b29scy9kcGRrLWRldmJpbmQucHkgLWIgaWdiX3VpbyAwMDAwOmY3OjAwLjANCj4gPiAr DQo+ID4gK3doZXJlIHRoZSBQQ0kgZGV2aWNlIElEIChleGFtcGxlOiAwMDAwOmY3OjAwLjApIGlz IG9idGFpbmVkIHVzaW5nIGBgbHNwY2kgLQ0KPiB2ZDgwODY6NTdjMmBgLg0KPiA+ICsNCj4gPiAr SW4gYSBzaW1pbGFyIHdheSB0aGUgUEYgbWF5IGJlIGJvdW5kIHdpdGggdmZpby1wY2kgYXMgYW55 IFBDSWUgZGV2aWNlLg0KPiA+ICsNCj4gPiArDQo+ID4gK0VuYWJsZSBWaXJ0dWFsIEZ1bmN0aW9u cw0KPiA+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gPiArDQo+ID4gK05vdywgaXQgc2hv dWxkIGJlIHZpc2libGUgaW4gdGhlIHByaW50b3V0cyB0aGF0IFBDSSBQRiBpcyB1bmRlcg0KPiA+ ICtpZ2JfdWlvIGNvbnRyb2wgImBgS2VybmVsIGRyaXZlciBpbiB1c2U6IGlnYl91aW9gYCINCj4g PiArDQo+ID4gK1RvIHNob3cgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgVkZzIG9uIHRoZSBkZXZp Y2UsIHJlYWQgYGBzcmlvdl90b3RhbHZmc2BgDQo+IGZpbGUuDQo+ID4gKw0KPiA+ICsuLiBjb2Rl LWJsb2NrOjogY29uc29sZQ0KPiA+ICsNCj4gPiArICAgY2F0IC9zeXMvYnVzL3BjaS9kZXZpY2Vz LzAwMDBcOjxiPlw6PGQ+LjxmPi9zcmlvdl90b3RhbHZmcw0KPiA+ICsNCj4gPiArd2hlcmUgYGAw MDAwXDo8Yj5cOjxkPi48Zj5gYCBpcyB0aGUgUENJIGRldmljZSBJRA0KPiA+ICsNCj4gPiArVG8g ZW5hYmxlIFZGcyB2aWEgaWdiX3VpbywgZWNobyB0aGUgbnVtYmVyIG9mIHZpcnR1YWwgZnVuY3Rp b25zDQo+ID4gK2ludGVuZGVkIHRvIGVuYWJsZSB0byBgYG1heF92ZnNgYCBmaWxlLg0KPiA+ICsN Cj4gPiArLi4gY29kZS1ibG9jazo6IGNvbnNvbGUNCj4gPiArDQo+ID4gKyAgIGVjaG8gPG51bS1v Zi12ZnM+ID4NCj4gPiArIC9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDBcOjxiPlw6PGQ+LjxmPi9t YXhfdmZzDQo+ID4gKw0KPiA+ICtBZnRlcndhcmRzLCBhbGwgVkZzIG11c3QgYmUgYm91bmQgdG8g YXBwcm9wcmlhdGUgVUlPIGRyaXZlcnMgYXMNCj4gPiArcmVxdWlyZWQsIHNhbWUgd2F5IGl0IHdh cyBkb25lIHdpdGggdGhlIHBoeXNpY2FsIGZ1bmN0aW9uIHByZXZpb3VzbHkuDQo+ID4gKw0KPiA+ ICtFbmFibGluZyBTUi1JT1YgdmlhIFZGSU8gZHJpdmVyIGlzIHByZXR0eSBtdWNoIHRoZSBzYW1l LCBleGNlcHQgdGhhdA0KPiA+ICt0aGUgZmlsZSBuYW1lIGlzIGRpZmZlcmVudDoNCj4gPiArDQo+ ID4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ID4gKw0KPiA+ICsgICBlY2hvIDxudW0tb2Yt dmZzPiA+DQo+ID4gKyAvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwXDo8Yj5cOjxkPi48Zj4vc3Jp b3ZfbnVtdmZzDQo+ID4gKw0KPiA+ICsNCj4gPiArQ29uZmlndXJlIHRoZSBWRnMgdGhyb3VnaCBQ Rg0KPiA+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4gKw0KPiA+ICtUaGUgUENJ IHZpcnR1YWwgZnVuY3Rpb25zIG11c3QgYmUgY29uZmlndXJlZCBiZWZvcmUgd29ya2luZyBvcg0K PiA+ICtnZXR0aW5nIGFzc2lnbmVkIHRvIFZNcy9Db250YWluZXJzLg0KPiA+ICtUaGUgY29uZmln dXJhdGlvbiBpbnZvbHZlcyBhbGxvY2F0aW5nIHRoZSBudW1iZXIgb2YgaGFyZHdhcmUgcXVldWVz LA0KPiA+ICtwcmlvcml0aWVzLCBsb2FkIGJhbGFuY2UsIGJhbmR3aWR0aCBhbmQgb3RoZXIgc2V0 dGluZ3MgbmVjZXNzYXJ5IGZvcg0KPiA+ICt0aGUgZGV2aWNlIHRvIHBlcmZvcm0gRkVDIGZ1bmN0 aW9ucy4NCj4gPiArDQo+ID4gK1RoaXMgY29uZmlndXJhdGlvbiBuZWVkcyB0byBiZSBleGVjdXRl ZCBhdCBsZWFzdCBvbmNlIGFmdGVyIHJlYm9vdCBvcg0KPiA+ICtQQ0kgRkxSIGFuZCBjYW4gYmUg YWNoaWV2ZWQgYnkgdXNpbmcgdGhlIGZ1bmN0aW9ucw0KPiA+ICtgYHJ0ZV9hY2NfY29uZmlndXJl KClgYCwgd2hpY2ggc2V0cyB1cCB0aGUgcGFyYW1ldGVycyBkZWZpbmVkIGluIHRoZQ0KPiBjb21w YXRpYmxlIGBgcnRlX2FjY19jb25mYGAgc3RydWN0dXJlLg0KPiA+ICsNCj4gPiArDQo+ID4gK1Rl c3QgQXBwbGljYXRpb24NCj4gPiArLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiArVGhlIGJi ZGV2IGNsYXNzIGlzIHByb3ZpZGVkIHdpdGggYSB0ZXN0IGFwcGxpY2F0aW9uLA0KPiA+ICtgYHRl c3QtYmJkZXYucHlgYCBhbmQgcmFuZ2Ugb2YgdGVzdCBkYXRhIGZvciB0ZXN0aW5nIHRoZQ0KPiA+ ICtmdW5jdGlvbmFsaXR5IG9mIHRoZSBkZXZpY2UsIGRlcGVuZGluZyBvbiB0aGUgZGV2aWNlJ3Mg Y2FwYWJpbGl0aWVzLg0KPiA+ICtUaGUgdGVzdCBhcHBsaWNhdGlvbiBpcyBsb2NhdGVkIHVuZGVy IGFwcC90ZXN0LWJiZGV2IGZvbGRlciBhbmQgaGFzDQo+ID4gK3RoZSBmb2xsb3dpbmcgb3B0aW9u czoNCj4gPiArDQo+ID4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ID4gKw0KPiA+ICsgICAi LXAiLCAiLS10ZXN0YXBwLXBhdGgiOiBzcGVjaWZpZXMgcGF0aCB0byB0aGUgYmJkZXYgdGVzdCBh cHAuDQo+ID4gKyAgICItZSIsICItLWVhbC1wYXJhbXMiOiBFQUwgYXJndW1lbnRzIHdoaWNoIGFy ZSBwYXNzZWQgdG8gdGhlIHRlc3QgYXBwLg0KPiA+ICsgICAiLXQiLCAiLS10aW1lb3V0IjogVGlt ZW91dCBpbiBzZWNvbmRzIChkZWZhdWx0PTMwMCkuDQo+ID4gKyAgICItYyIsICItLXRlc3QtY2Fz ZXMiOiBEZWZpbmVzIHRlc3QgY2FzZXMgdG8gcnVuLiBSdW4gYWxsIGlmIG5vdCBzcGVjaWZpZWQu DQo+ID4gKyAgICItdiIsICItLXRlc3QtdmVjdG9yIjogVGVzdCB2ZWN0b3IgcGF0aC4NCj4gPiAr ICAgIi1uIiwgIi0tbnVtLW9wcyI6IE51bWJlciBvZiBvcGVyYXRpb25zIHRvIHByb2Nlc3Mgb24g ZGV2aWNlDQo+IChkZWZhdWx0PTMyKS4NCj4gPiArICAgIi1iIiwgIi0tYnVyc3Qtc2l6ZSI6IE9w ZXJhdGlvbnMgZW5xdWV1ZS9kZXF1ZXVlIGJ1cnN0IHNpemUgKGRlZmF1bHQ9MzIpLg0KPiA+ICsg ICAiLXMiLCAiLS1zbnIiOiBTTlIgaW4gZEIgdXNlZCB3aGVuIGdlbmVyYXRpbmcgTExScyBmb3Ig YmxlciB0ZXN0cy4NCj4gPiArICAgIi1zIiwgIi0taXRlcl9tYXgiOiBOdW1iZXIgb2YgaXRlcmF0 aW9ucyBmb3IgTERQQyBkZWNvZGVyLg0KPiA+ICsgICAiLWwiLCAiLS1udW0tbGNvcmVzIjogTnVt YmVyIG9mIGxjb3JlcyB0byBydW4gKGRlZmF1bHQ9MTYpLg0KPiA+ICsgICAiLWkiLCAiLS1pbml0 LWRldmljZSI6IEluaXRpYWxpc2UgUEYgZGV2aWNlIHdpdGggZGVmYXVsdCB2YWx1ZXMuDQo+ID4g Kw0KPiA+ICsNCj4gPiArVG8gZXhlY3V0ZSB0aGUgdGVzdCBhcHBsaWNhdGlvbiB0b29sIHVzaW5n IHNpbXBsZSBkZWNvZGUgb3IgZW5jb2RlDQo+ID4gK2RhdGEsIHR5cGUgb25lIG9mIHRoZSBmb2xs b3dpbmc6DQo+ID4gKw0KPiA+ICsuLiBjb2RlLWJsb2NrOjogY29uc29sZQ0KPiA+ICsNCj4gPiAr ICAuL3Rlc3QtYmJkZXYucHkgLWMgdmFsaWRhdGlvbiAtbiA2NCAtYiAxIC12IC4vbGRwY19kZWNf ZGVmYXVsdC5kYXRhDQo+ID4gKyAuL3Rlc3QtYmJkZXYucHkgLWMgdmFsaWRhdGlvbiAtbiA2NCAt YiAxIC12IC4vbGRwY19lbmNfZGVmYXVsdC5kYXRhDQo+ID4gKw0KPiA+ICsNCj4gPiArVGhlIHRl c3QgYXBwbGljYXRpb24gYGB0ZXN0LWJiZGV2LnB5YGAsIHN1cHBvcnRzIHRoZSBhYmlsaXR5IHRv DQo+ID4gK2NvbmZpZ3VyZSB0aGUgUEYgZGV2aWNlIHdpdGggYSBkZWZhdWx0IHNldCBvZiB2YWx1 ZXMsIGlmIHRoZSAiLWkiIG9yDQo+ID4gKyItIC1pbml0LWRldmljZSIgb3B0aW9uIGlzIGluY2x1 ZGVkLiBUaGUgZGVmYXVsdCB2YWx1ZXMgYXJlIGRlZmluZWQgaW4NCj4gdGVzdF9iYmRldl9wZXJm LmMuDQo+ID4gKw0KPiA+ICsNCj4gPiArVGVzdCBWZWN0b3JzDQo+ID4gK35+fn5+fn5+fn5+fg0K PiA+ICsNCj4gPiArSW4gYWRkaXRpb24gdG8gdGhlIHNpbXBsZSBMRFBDIGRlY29kZXIgYW5kIExE UEMgZW5jb2RlciB0ZXN0cywgYmJkZXYNCj4gPiArYWxzbyBwcm92aWRlcyBhIHJhbmdlIG9mIGFk ZGl0aW9uYWwgdGVzdHMgdW5kZXIgdGhlIHRlc3RfdmVjdG9ycw0KPiA+ICtmb2xkZXIsIHdoaWNo IG1heSBiZSB1c2VmdWwuDQo+ID4gK1RoZSByZXN1bHRzIG9mIHRoZXNlIHRlc3RzIHdpbGwgZGVw ZW5kIG9uIHRoZSBkZXZpY2UgY2FwYWJpbGl0aWVzDQo+ID4gK3doaWNoIG1heSBjYXVzZSBzb21l IHRlc3QgY2FzZXMgdG8gYmUgc2tpcHBlZCwgYnV0IG5vIGZhaWx1cmUgc2hvdWxkIGJlDQo+IHJl cG9ydGVkLg0KPiA+ICsNCj4gPiArDQo+ID4gK0FsdGVybmF0ZSBCYXNlYmFuZCBEZXZpY2UgY29u ZmlndXJhdGlvbiB0b29sDQo+ID4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+DQo+ID4gKw0KPiA+ICtPbiB0b3Agb2YgdGhlIGVtYmVkZGVkIGNvbmZpZ3VyYXRp b24gZmVhdHVyZSBzdXBwb3J0ZWQgaW4gdGVzdC1iYmRldg0KPiA+ICt1c2luZw0KPiA+ICsiLSAt aW5pdC1kZXZpY2UiIG9wdGlvbiBtZW50aW9uZWQgYWJvdmUsIHRoZXJlIGlzIGFsc28gYSB0b29s DQo+ID4gK2F2YWlsYWJsZSB0byBwZXJmb3JtIHRoYXQgZGV2aWNlIGNvbmZpZ3VyYXRpb24gdXNp bmcgYSBjb21wYW5pb24NCj4gYXBwbGljYXRpb24uDQo+ID4gK1RoZSBgYHBmX2JiX2NvbmZpZ2Bg IGFwcGxpY2F0aW9uIG5vdGFibHkgZW5hYmxlcyB0aGVuIHRvIHJ1bg0KPiA+ICtiYmRldi10ZXN0 IGZyb20gdGhlIFZGIGFuZCBub3Qgb25seSBsaW1pdGVkIHRvIHRoZSBQRiBhcyBjYXB0dXJlZCBh Ym92ZS4NCj4gPiArDQo+ID4gK1NlZSBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5j b20vaW50ZWwvcGYtYmItY29uZmlnDQo+ID4gKw0KPiA+ICtTcGVjaWZpY2FsbHkgZm9yIHRoZSBi YmRldiBJbnRlbCB2UkFOIEJvb3N0IHYyIFBNRCwgdGhlIGNvbW1hbmQgYmVsb3cNCj4gPiArY2Fu IGJlIHVzZWQgKG5vdGUgdGhhdCBBQ0MyMDAgd2FzIHVzZWQgcHJldmlvdXNseSB0byByZWZlciB0 byBWUkIyKToNCj4gPiArDQo+ID4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ID4gKw0KPiA+ ICsgICBwZl9iYl9jb25maWcgVlJCMiAtYyAuL3ZyYjIvdnJiMl9jb25maWdfdmZfNWcuY2ZnDQo+ ID4gKyAgIHRlc3QtYmJkZXYucHkgLWU9Ii1jIDB4ZmYwIC1hJHtWRl9QQ0lfQUREUn0iIC1jIHZh bGlkYXRpb24gLW4gNjQNCj4gPiArIC1iIDY0IC1sIDEgLXYgLi9sZHBjX2RlY19kZWZhdWx0LmRh dGENCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yM18xMS5y c3QNCj4gPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjNfMTEucnN0DQo+ID4gaW5k ZXggMzMzZTFkOTVhMi4uNjY4ZGQ1OGVlMyAxMDA2NDQNCj4gPiAtLS0gYS9kb2MvZ3VpZGVzL3Jl bF9ub3Rlcy9yZWxlYXNlXzIzXzExLnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvcmVsX25vdGVz L3JlbGVhc2VfMjNfMTEucnN0DQo+ID4gQEAgLTc4LDYgKzc4LDkgQEAgTmV3IEZlYXR1cmVzDQo+ ID4gICAqIGJ1aWxkOiBPcHRpb25hbCBsaWJyYXJpZXMgY2FuIG5vdyBiZSBzZWxlY3RlZCB3aXRo IHRoZSBuZXcgYGBlbmFibGVfbGlic2BgDQo+ID4gICAgIGJ1aWxkIG9wdGlvbiBzaW1pbGFybHkg dG8gdGhlIGV4aXN0aW5nIGBgZW5hYmxlX2RyaXZlcnNgYCBidWlsZCBvcHRpb24uDQo+ID4NCj4g PiArKiAqKlVwZGF0ZWQgSW50ZWwgdlJBTiBCb29zdCBiYmRldiBQTUQuKioNCj4gPiArDQo+ID4g KyAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIG5ldyBJbnRlbCB2UkFOIEJvb3N0IHYyIGRldmljZSB2 YXJpYW50IChHTlItRCkNCj4gd2l0aGluIHRoZSB1bmlmaWVkIGRyaXZlci4NCj4gPg0KPiA+ICAg UmVtb3ZlZCBJdGVtcw0KPiA+ICAgLS0tLS0tLS0tLS0tLQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgNCj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNj L2FjY19jb21tb24uaA0KPiA+IGluZGV4IDVkZTU4ZGJlMzYuLmI3MTI5MmFmOTQgMTAwNjQ0DQo+ ID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1vbi5oDQo+ID4gKysrIGIvZHJp dmVycy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1vbi5oDQo+ID4gQEAgLTE4LDYgKzE4LDcgQEANCj4g PiAgICNkZWZpbmUgQUNDX0RNQV9CTEtJRF9PVVRfSEFSUSAgICAgIDMNCj4gPiAgICNkZWZpbmUg QUNDX0RNQV9CTEtJRF9JTl9IQVJRICAgICAgIDMNCj4gPiAgICNkZWZpbmUgQUNDX0RNQV9CTEtJ RF9JTl9NTERfUiAgICAgIDMNCj4gPiArI2RlZmluZSBBQ0NfRE1BX0JMS0lEX0RFV0lOX0lOICAg ICAgMw0KPiA+DQo+ID4gICAvKiBWYWx1ZXMgdXNlZCBpbiBmaWxsaW5nIGluIGRlY29kZSBGQ1dz ICovDQo+ID4gICAjZGVmaW5lIEFDQ19GQ1dfVERfVkVSICAgICAgICAgICAgICAxDQo+ID4gQEAg LTEwMyw2ICsxMDQsOSBAQA0KPiA+ICAgI2RlZmluZSBBQ0NfTUFYX05VTV9RR1JQUyAgICAgICAg ICAgICAgMzINCj4gPiAgICNkZWZpbmUgQUNDX1JJTkdfU0laRV9HUkFOVUxBUklUWSAgICAgIDY0 DQo+ID4gICAjZGVmaW5lIEFDQ19NQVhfRkNXX1NJWkUgICAgICAgICAgICAgIDEyOA0KPiA+ICsj ZGVmaW5lIEFDQ19JUV9TSVpFICAgICAgICAgICAgICAgICAgICA0DQo+ID4gKw0KPiA+ICsjZGVm aW5lIEFDQ19GQ1dfRkZUX0JMRU5fMyAgICAgICAgICAgICAyOA0KPiA+DQo+ID4gICAvKiBDb25z dGFudHMgZnJvbSBLMCBjb21wdXRhdGlvbiBmcm9tIDNHUFAgMzguMjEyIFRhYmxlIDUuNC4yLjEt MiAqLw0KPiA+ICAgI2RlZmluZSBBQ0NfTl9aQ18xIDY2IC8qIE4gPSA2NiBaYyBmb3IgQkcgMSAq LyBAQCAtMTMyLDYgKzEzNiwxMSBAQA0KPiA+ICAgI2RlZmluZSBBQ0NfTElNXzIxIDE0IC8qIDAu MjEgKi8NCj4gPiAgICNkZWZpbmUgQUNDX0xJTV8zMSAyMCAvKiAwLjMxICovDQo+ID4gICAjZGVm aW5lIEFDQ19NQVhfRSAoMTI4ICogMTAyNCAtIDIpDQo+ID4gKyNkZWZpbmUgQUNDX01BWF9DUyAx Mg0KPiA+ICsNCj4gPiArI2RlZmluZSBBQ0MxMDBfVkFSSUFOVCAgICAgICAgICAwDQo+ID4gKyNk ZWZpbmUgVlJCMV9WQVJJQU5UCQkyDQo+ID4gKyNkZWZpbmUgVlJCMl9WQVJJQU5UCQkzDQo+ID4N Cj4gPiAgIC8qIEhlbHBlciBtYWNybyBmb3IgbG9nZ2luZyAqLw0KPiA+ICAgI2RlZmluZSBydGVf YWNjX2xvZyhsZXZlbCwgZm10LCAuLi4pIFwgQEAgLTMzMiw2ICszNDEsMzcgQEAgc3RydWN0DQo+ ID4gX19ydGVfcGFja2VkIGFjY19mY3dfZmZ0IHsNCj4gPiAgIAkJcmVzOjE5Ow0KPiA+ICAgfTsN Cj4gPg0KPiA+ICsvKiBGRlQgRnJhbWUgQ29udHJvbCBXb3JkLiAqLw0KPiA+ICtzdHJ1Y3QgX19y dGVfcGFja2VkIGFjY19mY3dfZmZ0XzMgew0KPiA+ICsJdWludDMyX3QgaW5fZnJhbWVfc2l6ZTox NiwNCj4gPiArCQlsZWFkaW5nX3BhZF9zaXplOjE2Ow0KPiA+ICsJdWludDMyX3Qgb3V0X2ZyYW1l X3NpemU6MTYsDQo+ID4gKwkJbGVhZGluZ19kZXBhZF9zaXplOjE2Ow0KPiA+ICsJdWludDMyX3Qg Y3Nfd2luZG93X3NlbDsNCj4gPiArCXVpbnQzMl90IGNzX3dpbmRvd19zZWwyOjE2LA0KPiA+ICsJ CWNzX2VuYWJsZV9ibWFwOjE2Ow0KPiA+ICsJdWludDMyX3QgbnVtX2FudGVubmFzOjgsDQo+ID4g KwkJaWRmdF9zaXplOjgsDQo+ID4gKwkJZGZ0X3NpemU6OCwNCj4gPiArCQljc19vZmZzZXQ6ODsN Cj4gPiArCXVpbnQzMl90IGlkZnRfc2hpZnQ6OCwNCj4gPiArCQlkZnRfc2hpZnQ6OCwNCj4gPiAr CQljc19tdWx0aXBsaWVyOjE2Ow0KPiA+ICsJdWludDMyX3QgYnlwYXNzOjIsDQo+ID4gKwkJZnAx Nl9pbjoxLA0KPiA+ICsJCWZwMTZfb3V0OjEsDQo+ID4gKwkJZXhwX2Fkajo0LA0KPiA+ICsJCXBv d2VyX3NoaWZ0OjQsDQo+ID4gKwkJcG93ZXJfZW46MSwNCj4gPiArCQllbmFibGVfZGV3aW46MSwN Cj4gPiArCQlmcmVxX3Jlc2FtcGxlX21vZGU6MiwNCj4gPiArCQlkZXBhZF9vdXB1dF9zaXplOjE2 Ow0KPiA+ICsJdWludDE2X3QgY3NfdGhldGFfMFtBQ0NfTUFYX0NTXTsNCj4gPiArCXVpbnQzMl90 IGNzX3RoZXRhX2RbQUNDX01BWF9DU107DQo+ID4gKwlpbnQ4X3QgY3NfdGltZV9vZmZzZXRbQUND X01BWF9DU107DQo+ID4gK307DQo+ID4gKw0KPiA+ICsNCj4gPiAgIC8qIE1MRC1UUyBGcmFtZSBD b250cm9sIFdvcmQgKi8NCj4gPiAgIHN0cnVjdCBfX3J0ZV9wYWNrZWQgYWNjX2Zjd19tbGR0cyB7 DQo+ID4gICAJdWludDMyX3QgZmN3X3ZlcnNpb246NCwNCj4gPiBAQCAtNDczLDE0ICs1MTMsMTQg QEAgdW5pb24gYWNjX2luZm9fcmluZ19kYXRhIHsNCj4gPiAgIAkJdWludDE2X3QgdmFsaWQ6IDE7 DQo+ID4gICAJfTsNCj4gPiAgIAlzdHJ1Y3Qgew0KPiA+IC0JCXVpbnQzMl90IGFxX2lkXzM6IDY7 DQo+ID4gLQkJdWludDMyX3QgcWdfaWRfMzogNTsNCj4gPiAtCQl1aW50MzJfdCB2Zl9pZF8zOiA2 Ow0KPiA+IC0JCXVpbnQzMl90IGludF9uYl8zOiA2Ow0KPiA+IC0JCXVpbnQzMl90IG1zaV8wXzM6 IDE7DQo+ID4gLQkJdWludDMyX3QgdmYycGZfMzogNjsNCj4gPiAtCQl1aW50MzJfdCBsb29wXzM6 IDE7DQo+ID4gLQkJdWludDMyX3QgdmFsaWRfMzogMTsNCj4gPiArCQl1aW50MzJfdCBhcV9pZF92 cmIyOiA2Ow0KPiA+ICsJCXVpbnQzMl90IHFnX2lkX3ZyYjI6IDU7DQo+ID4gKwkJdWludDMyX3Qg dmZfaWRfdnJiMjogNjsNCj4gPiArCQl1aW50MzJfdCBpbnRfbmJfdnJiMjogNjsNCj4gPiArCQl1 aW50MzJfdCBtc2lfMF92cmIyOiAxOw0KPiA+ICsJCXVpbnQzMl90IHZmMnBmX3ZyYjI6IDY7DQo+ ID4gKwkJdWludDMyX3QgbG9vcF92cmIyOiAxOw0KPiA+ICsJCXVpbnQzMl90IHZhbGlkX3ZyYjI6 IDE7DQo+ID4gICAJfTsNCj4gPiAgIH0gX19ydGVfcGFja2VkOw0KPiA+DQo+ID4gQEAgLTc2NSwx NiArODA1LDIwIEBAIGFsbG9jX3N3X3JpbmdzX21pbl9tZW0oc3RydWN0IHJ0ZV9iYmRldiAqZGV2 LA0KPiBzdHJ1Y3QgYWNjX2RldmljZSAqZCwNCj4gPiAgICAqLw0KPiA+ICAgc3RhdGljIGlubGlu ZSB1aW50MTZfdA0KPiA+ICAgZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKHN0cnVjdCBydGVf YmJkZXZfZGF0YSAqZGF0YSwNCj4gPiAtCQljb25zdCB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEg cmluZ19kYXRhKQ0KPiA+ICsJCWNvbnN0IHVuaW9uIGFjY19pbmZvX3JpbmdfZGF0YSByaW5nX2Rh dGEsIHVpbnQxNl90DQo+IGRldmljZV92YXJpYW50KQ0KPiANCj4gVGhlIGRldmljZSB2YXJpYW50 IElEIHNob3VsZCBiZSBkZXJpdmVkIGZyb20gdGhlIGRhdGEsIHdoaWNoIHN0b3JlcyBkZXZpY2UN Cj4gcHJpdmF0ZSBwb2ludGVyLiBObyBuZWVkIHRvIGFkZCBhbiBleHRyYSBwYXJhbWV0ZXIuDQoN CnRoZSBkZXZpY2UgdmFyaWFudCBjb21lcyBmcm9tIGRpcmVjdGx5IGZvcm9tIGRldi0+IG5vdCBm cm9tIGRldi0+ZGF0YS4gDQoNCj4gDQo+ID4gICB7DQo+ID4gICAJdWludDE2X3QgcXVldWVfaWQ7 DQo+ID4gKwlzdHJ1Y3QgYWNjX3F1ZXVlICphY2NfcTsNCj4gPiArCXVpbnQxNl90IHZmX2lkID0g KGRldmljZV92YXJpYW50ID09IFZSQjJfVkFSSUFOVCkgPw0KPiByaW5nX2RhdGEudmZfaWRfdnJi MiA6IHJpbmdfZGF0YS52Zl9pZDsNCj4gPiArCXVpbnQxNl90IGFxX2lkID0gKGRldmljZV92YXJp YW50ID09IFZSQjJfVkFSSUFOVCkgPw0KPiByaW5nX2RhdGEuYXFfaWRfdnJiMiA6IHJpbmdfZGF0 YS5hcV9pZDsNCj4gPiArCXVpbnQxNl90IHFnX2lkID0gKGRldmljZV92YXJpYW50ID09IFZSQjJf VkFSSUFOVCkgPw0KPiA+ICtyaW5nX2RhdGEucWdfaWRfdnJiMiA6IHJpbmdfZGF0YS5xZ19pZDsN Cj4gDQo+IFdvdWxkbid0IGl0IGJlIGJldHRlciB0byBoYXZlIGFuIGludGVybWVkaWF0ZSByZXBy ZXNlbnRhdGlvbiwgYW5kIGVhY2ggdmFyaWFudA0KPiBpbXBsZW1lbnRzIGEgY2FsbGJhY2sgdG8g ZmlsbCBpdD8NCj4gDQo+IEl0IHdpbGwgYmVjb21lIG1lc3N5IG90aGVyd2lzZSB3aGVuIG90aGVy IHZhcmlhbnRzIHdpbGwgYmUgYWRkZWQuDQo+IA0KPiBTb21ldGhpbmcgbGlrZSB0aGUgZXhpc3Rp bmcgcXVldWVfb2Zmc2V0IGNhbGxiYWNrIHdvdWxkIGJlIGdyZWF0Lg0KDQpvayBmYWlyIGVub3Vn aC4gDQoNCj4gDQo+ID4NCj4gPiAgIAlmb3IgKHF1ZXVlX2lkID0gMDsgcXVldWVfaWQgPCBkYXRh LT5udW1fcXVldWVzOyArK3F1ZXVlX2lkKSB7DQo+ID4gLQkJc3RydWN0IGFjY19xdWV1ZSAqYWNj X3EgPQ0KPiA+IC0JCQkJZGF0YS0+cXVldWVzW3F1ZXVlX2lkXS5xdWV1ZV9wcml2YXRlOw0KPiA+ IC0JCWlmIChhY2NfcSAhPSBOVUxMICYmIGFjY19xLT5hcV9pZCA9PSByaW5nX2RhdGEuYXFfaWQg JiYNCj4gPiAtCQkJCWFjY19xLT5xZ3JwX2lkID09IHJpbmdfZGF0YS5xZ19pZCAmJg0KPiA+IC0J CQkJYWNjX3EtPnZmX2lkID09IHJpbmdfZGF0YS52Zl9pZCkNCj4gPiArCQlhY2NfcSA9IGRhdGEt PnF1ZXVlc1txdWV1ZV9pZF0ucXVldWVfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwkJaWYgKGFjY19x ICE9IE5VTEwgJiYgYWNjX3EtPmFxX2lkID09IGFxX2lkICYmDQo+ID4gKwkJCQlhY2NfcS0+cWdy cF9pZCA9PSBxZ19pZCAmJg0KPiA+ICsJCQkJYWNjX3EtPnZmX2lkID09IHZmX2lkKQ0KPiA+ICAg CQkJcmV0dXJuIHF1ZXVlX2lkOw0KPiA+ICAgCX0NCj4gPg0KPiA+IEBAIC0xNDM2LDQgKzE0ODAs MTYgQEAgZ2V0X251bV9jYnNfaW5fdGJfbGRwY19lbmMoc3RydWN0DQo+IHJ0ZV9iYmRldl9vcF9s ZHBjX2VuYyAqbGRwY19lbmMpDQo+ID4gICAJcmV0dXJuIGNic19pbl90YjsNCj4gPiAgIH0NCj4g Pg0KPiA+ICsjaWZkZWYgUlRFX0xJQlJURV9CQkRFVl9ERUJVRw0KPiA+ICtzdGF0aWMgaW5saW5l IHZvaWQNCj4gPiArYWNjX21lbWR1bXAoY29uc3QgY2hhciAqc3RyaW5nLCB2b2lkICpidWYsIHVp bnQxNl90IGJ5dGVzKSB7DQo+ID4gKwlwcmludGYoIiVzXG4iLCBzdHJpbmcpOw0KPiA+ICsJdWlu dDMyX3QgKmRhdGEgPSBidWY7DQo+ID4gKwl1aW50MTZfdCBpOw0KPiA+ICsJZm9yIChpID0gMDsg aSA8IGJ5dGVzIC8gNDsgaSsrKQ0KPiA+ICsJCXByaW50ZigiMHglMDhYXG4iLCBkYXRhW2ldKTsN Cj4gPiArfQ0KPiANCj4gRm9yIGNvbnNpc3RlbmN5IGFuZCB0byBhdm9pZCBjb2RlIGR1bXBsaWNh dGlvbiwgcGxlYXNlIHVzZSBydGVfbWVtZHVtcCgpDQo+IGRpcmVjdGx5IGFzIHlvdSBkaWQgaW4g QUNDMTAwLg0KDQpJIGNhbiBkbyBmb3Igbm93LCBpdCBpcyBqdXN0IHRoYXQgZm9yIGZvcm1hdCBp cyBxdWl0ZSBwb29yLiBXaWxsIGNoYW5nZS4gDQoNCj4gDQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4g PiAgICNlbmRpZiAvKiBfQUNDX0NPTU1PTl9IXyAqLw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2Jhc2ViYW5kL2FjYy9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2Fj Yy9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gaW5kZXggNTM2MmQzOWMzMC4uN2Y4ZDA1YjVhOSAxMDA2 NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfYWNjMTAwX3BtZC5jDQo+ID4g KysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX2FjYzEwMF9wbWQuYw0KPiA+IEBAIC0yOTQs NyArMjk0LDcgQEAgYWNjMTAwX3BmX2ludGVycnVwdF9oYW5kbGVyKHN0cnVjdCBydGVfYmJkZXYg KmRldikNCj4gPiAgIAkJY2FzZSBBQ0MxMDBfUEZfSU5UX0RNQV9VTDVHX0RFU0NfSVJROg0KPiA+ ICAgCQljYXNlIEFDQzEwMF9QRl9JTlRfRE1BX0RMNUdfREVTQ19JUlE6DQo+ID4gICAJCQlkZXFf aW50cl9kZXQucXVldWVfaWQgPQ0KPiBnZXRfcXVldWVfaWRfZnJvbV9yaW5nX2luZm8oDQo+ID4g LQkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRhKTsNCj4gPiArCQkJCQlkZXYtPmRhdGEsICpyaW5n X2RhdGEsIGFjYzEwMF9kZXYtDQo+ID5kZXZpY2VfdmFyaWFudCk7DQo+ID4gICAJCQlpZiAoZGVx X2ludHJfZGV0LnF1ZXVlX2lkID09IFVJTlQxNl9NQVgpIHsNCj4gPiAgIAkJCQlydGVfYmJkZXZf bG9nKEVSUiwNCj4gPiAgIAkJCQkJCSJDb3VsZG4ndCBmaW5kIHF1ZXVlOiBhcV9pZDoNCj4gJXUs IHFnX2lkOiAldSwgdmZfaWQ6ICV1IiwgQEANCj4gPiAtMzQ4LDcgKzM0OCw3IEBAIGFjYzEwMF92 Zl9pbnRlcnJ1cHRfaGFuZGxlcihzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYpDQo+ID4gICAJCQkgKi8N Cj4gPiAgIAkJCXJpbmdfZGF0YS0+dmZfaWQgPSAwOw0KPiA+ICAgCQkJZGVxX2ludHJfZGV0LnF1 ZXVlX2lkID0NCj4gZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKA0KPiA+IC0JCQkJCWRldi0+ ZGF0YSwgKnJpbmdfZGF0YSk7DQo+ID4gKwkJCQkJZGV2LT5kYXRhLCAqcmluZ19kYXRhLCBhY2Mx MDBfZGV2LQ0KPiA+ZGV2aWNlX3ZhcmlhbnQpOw0KPiA+ICAgCQkJaWYgKGRlcV9pbnRyX2RldC5x dWV1ZV9pZCA9PSBVSU5UMTZfTUFYKSB7DQo+ID4gICAJCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ ID4gICAJCQkJCQkiQ291bGRuJ3QgZmluZCBxdWV1ZTogYXFfaWQ6DQo+ICV1LCBxZ19pZDogJXUi LCBkaWZmIC0tZ2l0DQo+ID4gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jDQo+ ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jDQo+ID4gaW5kZXggZTgyZWQ1 NWNhNy4uYTc4NzU5MmVjOSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9y dGVfdnJiX3BtZC5jDQo+ID4gKysrIGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQu Yw0KPiA+IEBAIC0zNyw2ICszNywxNSBAQCB2cmIxX3F1ZXVlX29mZnNldChib29sIHBmX2Rldmlj ZSwgdWludDhfdCB2Zl9pZCwNCj4gdWludDhfdCBxZ3JwX2lkLCB1aW50MTZfdCBhcV9pZA0KPiA+ ICAgCQlyZXR1cm4gKChxZ3JwX2lkIDw8IDcpICsgKGFxX2lkIDw8IDMpICsNCj4gVlJCMV9WZlFt Z3JJbmdyZXNzQXEpOw0KPiA+ICAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBpbmxpbmUgdWludDMyX3QN Cj4gPiArdnJiMl9xdWV1ZV9vZmZzZXQoYm9vbCBwZl9kZXZpY2UsIHVpbnQ4X3QgdmZfaWQsIHVp bnQ4X3QgcWdycF9pZCwNCj4gPiArdWludDE2X3QgYXFfaWQpIHsNCj4gPiArCWlmIChwZl9kZXZp Y2UpDQo+ID4gKwkJcmV0dXJuICgodmZfaWQgPDwgMTQpICsgKHFncnBfaWQgPDwgOSkgKyAoYXFf aWQgPDwgMykgKw0KPiBWUkIyX1BmUW1nckluZ3Jlc3NBcSk7DQo+ID4gKwllbHNlDQo+ID4gKwkJ cmV0dXJuICgocWdycF9pZCA8PCA5KSArIChhcV9pZCA8PCAzKSArDQo+IFZSQjJfVmZRbWdySW5n cmVzc0FxKTsgfQ0KPiA+ICsNCj4gPiAgIGVudW0ge1VMXzRHID0gMCwgVUxfNUcsIERMXzRHLCBE TF81RywgRkZULCBNTEQsIE5VTV9BQ0N9Ow0KPiA+DQo+ID4gICAvKiBSZXR1cm4gdGhlIGFjY2Vs ZXJhdG9yIGVudW0gZm9yIGEgUXVldWUgR3JvdXAgSW5kZXguICovIEBAIC0xOTcsNw0KPiA+ICsy MDYsNyBAQCBmZXRjaF9hY2NfY29uZmlnKHN0cnVjdCBydGVfYmJkZXYgKmRldikNCj4gPiAgIAlz dHJ1Y3QgYWNjX2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gICAJc3Ry dWN0IHJ0ZV9hY2NfY29uZiAqYWNjX2NvbmYgPSAmZC0+YWNjX2NvbmY7DQo+ID4gICAJdWludDhf dCBhY2MsIHFnOw0KPiA+IC0JdWludDMyX3QgcmVnX2FxLCByZWdfbGVuMCwgcmVnX2xlbjEsIHJl ZzAsIHJlZzE7DQo+ID4gKwl1aW50MzJfdCByZWdfYXEsIHJlZ19sZW4wLCByZWdfbGVuMSwgcmVn X2xlbjIsIHJlZ19sZW4zLCByZWcwLCByZWcxLA0KPiA+ICtyZWcyLCByZWczOw0KPiA+ICAgCXVp bnQzMl90IHJlZ19tb2RlLCBpZHg7DQo+ID4gICAJc3RydWN0IHJ0ZV9hY2NfcXVldWVfdG9wb2xv Z3kgKnFfdG9wID0gTlVMTDsNCj4gPiAgIAlpbnQgcW1hbl9mdW5jX2lkW1ZSQl9OVU1fQUNDU10g PSB7QUNDX0FDQ01BUF8wLA0KPiBBQ0NfQUNDTUFQXzEsIEBADQo+ID4gLTIxOSwzMiArMjI4LDgx IEBAIGZldGNoX2FjY19jb25maWcoc3RydWN0IHJ0ZV9iYmRldiAqZGV2KQ0KPiA+ICAgCWFjY19j b25mLT5udW1fdmZfYnVuZGxlcyA9IDE7DQo+ID4gICAJaW5pdFFUb3AoYWNjX2NvbmYpOw0KPiA+ DQo+ID4gLQlyZWcwID0gYWNjX3JlZ19yZWFkKGQsIGQtPnJlZ19hZGRyLT5xbWFuX2dyb3VwX2Z1 bmMpOw0KPiA+IC0JcmVnMSA9IGFjY19yZWdfcmVhZChkLCBkLT5yZWdfYWRkci0+cW1hbl9ncm91 cF9mdW5jICsgNCk7DQo+ID4gLQlmb3IgKHFnID0gMDsgcWcgPCBkLT5udW1fcWdyb3VwczsgcWcr Kykgew0KPiA+IC0JCXJlZ19hcSA9IGFjY19yZWdfcmVhZChkLCBkLT5xdWV1ZV9vZmZzZXQoZC0+ cGZfZGV2aWNlLCAwLA0KPiBxZywgMCkpOw0KPiA+IC0JCWlmIChyZWdfYXEgJiBBQ0NfUVVFVUVf RU5BQkxFKSB7DQo+ID4gLQkJCWlmIChxZyA8IEFDQ19OVU1fUUdSUFNfUEVSX1dPUkQpDQo+ID4g LQkJCQlpZHggPSAocmVnMCA+PiAocWcgKiA0KSkgJiAweDc7DQo+ID4gKwlpZiAoZC0+ZGV2aWNl X3ZhcmlhbnQgPT0gVlJCMV9WQVJJQU5UKSB7DQo+ID4gKwkJcmVnMCA9IGFjY19yZWdfcmVhZChk LCBkLT5yZWdfYWRkci0+cW1hbl9ncm91cF9mdW5jKTsNCj4gPiArCQlyZWcxID0gYWNjX3JlZ19y ZWFkKGQsIGQtPnJlZ19hZGRyLT5xbWFuX2dyb3VwX2Z1bmMgKyA0KTsNCj4gPiArCQlmb3IgKHFn ID0gMDsgcWcgPCBkLT5udW1fcWdyb3VwczsgcWcrKykgew0KPiA+ICsJCQlyZWdfYXEgPSBhY2Nf cmVnX3JlYWQoZCwgZC0+cXVldWVfb2Zmc2V0KGQtDQo+ID5wZl9kZXZpY2UsIDAsIHFnLCAwKSk7 DQo+ID4gKwkJCWlmIChyZWdfYXEgJiBBQ0NfUVVFVUVfRU5BQkxFKSB7DQo+ID4gKwkJCQlpZiAo cWcgPCBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEKQ0KPiA+ICsJCQkJCWlkeCA9IChyZWcwID4+IChx ZyAqIDQpKSAmIDB4NzsNCj4gPiArCQkJCWVsc2UNCj4gPiArCQkJCQlpZHggPSAocmVnMSA+PiAo KHFnIC0NCj4gQUNDX05VTV9RR1JQU19QRVJfV09SRCkgKiA0KSkgJiAweDc7DQo+ID4gKwkJCQlp ZiAoaWR4IDwgVlJCMV9OVU1fQUNDUykgew0KPiA+ICsJCQkJCWFjYyA9IHFtYW5fZnVuY19pZFtp ZHhdOw0KPiA+ICsJCQkJCXVwZGF0ZVF0b3AoYWNjLCBxZywgYWNjX2NvbmYsIGQpOw0KPiA+ICsJ CQkJfQ0KPiA+ICsJCQl9DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQkvKiBDaGVjayB0aGUgZGVw dGggb2YgdGhlIEFRcy4gKi8NCj4gPiArCQlyZWdfbGVuMCA9IGFjY19yZWdfcmVhZChkLCBkLT5y ZWdfYWRkci0+ZGVwdGhfbG9nMF9vZmZzZXQpOw0KPiA+ICsJCXJlZ19sZW4xID0gYWNjX3JlZ19y ZWFkKGQsIGQtPnJlZ19hZGRyLT5kZXB0aF9sb2cxX29mZnNldCk7DQo+ID4gKwkJZm9yIChhY2Mg PSAwOyBhY2MgPCBOVU1fQUNDOyBhY2MrKykgew0KPiA+ICsJCQlxdG9wRnJvbUFjYygmcV90b3As IGFjYywgYWNjX2NvbmYpOw0KPiA+ICsJCQlpZiAocV90b3AtPmZpcnN0X3Fncm91cF9pbmRleCA8 DQo+IEFDQ19OVU1fUUdSUFNfUEVSX1dPUkQpDQo+ID4gKwkJCQlxX3RvcC0+YXFfZGVwdGhfbG9n MiA9DQo+ID4gKwkJCQkJCShyZWdfbGVuMCA+PiAocV90b3AtDQo+ID5maXJzdF9xZ3JvdXBfaW5k ZXggKiA0KSkgJiAweEY7DQo+ID4gICAJCQllbHNlDQo+ID4gLQkJCQlpZHggPSAocmVnMSA+PiAo KHFnIC0NCj4gQUNDX05VTV9RR1JQU19QRVJfV09SRCkgKiA0KSkgJiAweDc7DQo+ID4gLQkJCWlm IChpZHggPCBWUkIxX05VTV9BQ0NTKSB7DQo+ID4gLQkJCQlhY2MgPSBxbWFuX2Z1bmNfaWRbaWR4 XTsNCj4gPiAtCQkJCXVwZGF0ZVF0b3AoYWNjLCBxZywgYWNjX2NvbmYsIGQpOw0KPiA+ICsJCQkJ cV90b3AtPmFxX2RlcHRoX2xvZzIgPSAocmVnX2xlbjEgPj4gKChxX3RvcC0NCj4gPmZpcnN0X3Fn cm91cF9pbmRleCAtDQo+ID4gKw0KPiAJQUNDX05VTV9RR1JQU19QRVJfV09SRCkgKiA0KSkgJiAw eEY7DQo+ID4gKwkJfQ0KPiA+ICsJfSBlbHNlIHsNCj4gPiArCQlyZWcwID0gYWNjX3JlZ19yZWFk KGQsIGQtPnJlZ19hZGRyLT5xbWFuX2dyb3VwX2Z1bmMpOw0KPiA+ICsJCXJlZzEgPSBhY2NfcmVn X3JlYWQoZCwgZC0+cmVnX2FkZHItPnFtYW5fZ3JvdXBfZnVuYyArIDQpOw0KPiA+ICsJCXJlZzIg PSBhY2NfcmVnX3JlYWQoZCwgZC0+cmVnX2FkZHItPnFtYW5fZ3JvdXBfZnVuYyArIDgpOw0KPiA+ ICsJCXJlZzMgPSBhY2NfcmVnX3JlYWQoZCwgZC0+cmVnX2FkZHItPnFtYW5fZ3JvdXBfZnVuYyAr IDEyKTsNCj4gPiArCQkvKiBwcmludGYoIkRlYnVnIEZ1bmN0aW9uICUwOHggJTA4eCAlMDh4ICUw OHhcbiIsIHJlZzAsDQo+IHJlZzEsIHJlZzIsIHJlZzMpOyovDQo+ID4gKwkJZm9yIChxZyA9IDA7 IHFnIDwgVlJCMl9OVU1fUUdSUFM7IHFnKyspIHsNCj4gPiArCQkJcmVnX2FxID0gYWNjX3JlZ19y ZWFkKGQsIHZyYjJfcXVldWVfb2Zmc2V0KGQtDQo+ID5wZl9kZXZpY2UsIDAsIHFnLCAwKSk7DQo+ ID4gKwkJCWlmIChyZWdfYXEgJiBBQ0NfUVVFVUVfRU5BQkxFKSB7DQo+ID4gKwkJCQkvKiBwcmlu dGYoIlFnIGVuYWJsZWQgJWQgJXhcbiIsIHFnLA0KPiByZWdfYXEpOyovDQo+ID4gKwkJCQlpZiAo cWcgLyBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEID09IDApDQo+ID4gKwkJCQkJaWR4ID0gKHJlZzAg Pj4gKChxZyAlDQo+IEFDQ19OVU1fUUdSUFNfUEVSX1dPUkQpICogNCkpICYgMHg3Ow0KPiA+ICsJ CQkJZWxzZSBpZiAocWcgLyBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEID09DQo+IDEpDQo+ID4gKwkJ CQkJaWR4ID0gKHJlZzEgPj4gKChxZyAlDQo+IEFDQ19OVU1fUUdSUFNfUEVSX1dPUkQpICogNCkp ICYgMHg3Ow0KPiA+ICsJCQkJZWxzZSBpZiAocWcgLyBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEID09 DQo+IDIpDQo+ID4gKwkJCQkJaWR4ID0gKHJlZzIgPj4gKChxZyAlDQo+IEFDQ19OVU1fUUdSUFNf UEVSX1dPUkQpICogNCkpICYgMHg3Ow0KPiA+ICsJCQkJZWxzZQ0KPiA+ICsJCQkJCWlkeCA9IChy ZWczID4+ICgocWcgJQ0KPiBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEKSAqIDQpKSAmIDB4NzsNCj4g PiArCQkJCWlmIChpZHggPCBWUkJfTlVNX0FDQ1MpIHsNCj4gPiArCQkJCQlhY2MgPSBxbWFuX2Z1 bmNfaWRbaWR4XTsNCj4gPiArCQkJCQl1cGRhdGVRdG9wKGFjYywgcWcsIGFjY19jb25mLCBkKTsN Cj4gPiArCQkJCX0NCj4gPiAgIAkJCX0NCj4gPiAgIAkJfQ0KPiA+IC0JfQ0KPiA+DQo+ID4gLQkv KiBDaGVjayB0aGUgZGVwdGggb2YgdGhlIEFRcy4gKi8NCj4gPiAtCXJlZ19sZW4wID0gYWNjX3Jl Z19yZWFkKGQsIGQtPnJlZ19hZGRyLT5kZXB0aF9sb2cwX29mZnNldCk7DQo+ID4gLQlyZWdfbGVu MSA9IGFjY19yZWdfcmVhZChkLCBkLT5yZWdfYWRkci0+ZGVwdGhfbG9nMV9vZmZzZXQpOw0KPiA+ IC0JZm9yIChhY2MgPSAwOyBhY2MgPCBOVU1fQUNDOyBhY2MrKykgew0KPiA+IC0JCXF0b3BGcm9t QWNjKCZxX3RvcCwgYWNjLCBhY2NfY29uZik7DQo+ID4gLQkJaWYgKHFfdG9wLT5maXJzdF9xZ3Jv dXBfaW5kZXggPA0KPiBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEKQ0KPiA+IC0JCQlxX3RvcC0+YXFf ZGVwdGhfbG9nMiA9IChyZWdfbGVuMCA+PiAocV90b3AtDQo+ID5maXJzdF9xZ3JvdXBfaW5kZXgg KiA0KSkgJiAweEY7DQo+ID4gLQkJZWxzZQ0KPiA+IC0JCQlxX3RvcC0+YXFfZGVwdGhfbG9nMiA9 IChyZWdfbGVuMSA+PiAoKHFfdG9wLQ0KPiA+Zmlyc3RfcWdyb3VwX2luZGV4IC0NCj4gPiAtCQkJ CQlBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEKSAqIDQpKQ0KPiAmIDB4RjsNCj4gPiArCQkvKiBDaGVj ayB0aGUgZGVwdGggb2YgdGhlIEFRcy4gKi8NCj4gPiArCQlyZWdfbGVuMCA9IGFjY19yZWdfcmVh ZChkLCBkLT5yZWdfYWRkci0+ZGVwdGhfbG9nMF9vZmZzZXQpOw0KPiA+ICsJCXJlZ19sZW4xID0g YWNjX3JlZ19yZWFkKGQsIGQtPnJlZ19hZGRyLT5kZXB0aF9sb2cwX29mZnNldCArDQo+IDQpOw0K PiA+ICsJCXJlZ19sZW4yID0gYWNjX3JlZ19yZWFkKGQsIGQtPnJlZ19hZGRyLT5kZXB0aF9sb2cw X29mZnNldCArDQo+IDgpOw0KPiA+ICsJCXJlZ19sZW4zID0gYWNjX3JlZ19yZWFkKGQsIGQtPnJl Z19hZGRyLT5kZXB0aF9sb2cwX29mZnNldCArDQo+IDEyKTsNCj4gPiArDQo+ID4gKwkJZm9yIChh Y2MgPSAwOyBhY2MgPCBOVU1fQUNDOyBhY2MrKykgew0KPiA+ICsJCQlxdG9wRnJvbUFjYygmcV90 b3AsIGFjYywgYWNjX2NvbmYpOw0KPiA+ICsJCQlpZiAocV90b3AtPmZpcnN0X3Fncm91cF9pbmRl eCAvDQo+IEFDQ19OVU1fUUdSUFNfUEVSX1dPUkQgPT0gMCkNCj4gPiArCQkJCXFfdG9wLT5hcV9k ZXB0aF9sb2cyID0gKHJlZ19sZW4wID4+ICgocV90b3AtDQo+ID5maXJzdF9xZ3JvdXBfaW5kZXgg JQ0KPiA+ICsNCj4gCUFDQ19OVU1fUUdSUFNfUEVSX1dPUkQpICogNCkpICYgMHhGOw0KPiA+ICsJ CQllbHNlIGlmIChxX3RvcC0+Zmlyc3RfcWdyb3VwX2luZGV4IC8NCj4gQUNDX05VTV9RR1JQU19Q RVJfV09SRCA9PSAxKQ0KPiA+ICsJCQkJcV90b3AtPmFxX2RlcHRoX2xvZzIgPSAocmVnX2xlbjEg Pj4gKChxX3RvcC0NCj4gPmZpcnN0X3Fncm91cF9pbmRleCAlDQo+ID4gKw0KPiAJQUNDX05VTV9R R1JQU19QRVJfV09SRCkgKiA0KSkgJiAweEY7DQo+ID4gKwkJCWVsc2UgaWYgKHFfdG9wLT5maXJz dF9xZ3JvdXBfaW5kZXggLw0KPiBBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEID09IDIpDQo+ID4gKwkJ CQlxX3RvcC0+YXFfZGVwdGhfbG9nMiA9IChyZWdfbGVuMiA+PiAoKHFfdG9wLQ0KPiA+Zmlyc3Rf cWdyb3VwX2luZGV4ICUNCj4gPiArDQo+IAlBQ0NfTlVNX1FHUlBTX1BFUl9XT1JEKSAqIDQpKSAm IDB4RjsNCj4gPiArCQkJZWxzZQ0KPiA+ICsJCQkJcV90b3AtPmFxX2RlcHRoX2xvZzIgPSAocmVn X2xlbjMgPj4gKChxX3RvcC0NCj4gPmZpcnN0X3Fncm91cF9pbmRleCAlDQo+ID4gKw0KPiAJQUND X05VTV9RR1JQU19QRVJfV09SRCkgKiA0KSkgJiAweEY7DQo+ID4gKwkJfQ0KPiA+ICAgCX0NCj4g Pg0KPiA+ICAgCS8qIFJlYWQgUEYgbW9kZS4gKi8NCj4gPiBAQCAtMzQxLDE4ICszOTksMjkgQEAg dnJiX2NoZWNrX2lyKHN0cnVjdCBhY2NfZGV2aWNlICphY2NfZGV2KQ0KPiA+ICAgCXJpbmdfZGF0 YSA9IGFjY19kZXYtPmluZm9fcmluZyArIChhY2NfZGV2LT5pbmZvX3JpbmdfaGVhZCAmDQo+ID4g QUNDX0lORk9fUklOR19NQVNLKTsNCj4gPg0KPiA+ICAgCXdoaWxlIChyaW5nX2RhdGEtPnZhbGlk KSB7DQo+ID4gLQkJaWYgKChyaW5nX2RhdGEtPmludF9uYiA8IEFDQ19QRl9JTlRfRE1BX0RMX0RF U0NfSVJRKSB8fCAoDQo+ID4gLQkJCQlyaW5nX2RhdGEtPmludF9uYiA+DQo+IEFDQ19QRl9JTlRf RE1BX01MRF9ERVNDX0lSUSkpIHsNCj4gPiAtCQkJcnRlX2JiZGV2X2xvZyhXQVJOSU5HLCAiSW5m b1Jpbmc6IElUUjolZA0KPiBJbmZvOjB4JXgiLA0KPiA+IC0JCQkJCXJpbmdfZGF0YS0+aW50X25i LCByaW5nX2RhdGEtDQo+ID5kZXRhaWxlZF9pbmZvKTsNCj4gPiAtCQkJLyogSW5pdGlhbGl6ZSBJ bmZvIFJpbmcgZW50cnkgYW5kIG1vdmUgZm9yd2FyZC4gKi8NCj4gPiAtCQkJcmluZ19kYXRhLT52 YWwgPSAwOw0KPiA+ICsJCWlmIChhY2NfZGV2LT5kZXZpY2VfdmFyaWFudCA9PSBWUkIxX1ZBUklB TlQpIHsNCj4gPiArCQkJaWYgKChyaW5nX2RhdGEtPmludF9uYiA8DQo+IEFDQ19QRl9JTlRfRE1B X0RMX0RFU0NfSVJRKSB8fCAoDQo+ID4gKwkJCQkJcmluZ19kYXRhLT5pbnRfbmIgPg0KPiBBQ0Nf UEZfSU5UX0RNQV9NTERfREVTQ19JUlEpKSB7DQo+ID4gKwkJCQlydGVfYmJkZXZfbG9nKFdBUk5J TkcsICJJbmZvUmluZzogSVRSOiVkDQo+IEluZm86MHgleCIsDQo+ID4gKwkJCQkJCXJpbmdfZGF0 YS0+aW50X25iLCByaW5nX2RhdGEtDQo+ID5kZXRhaWxlZF9pbmZvKTsNCj4gPiArCQkJCS8qIElu aXRpYWxpemUgSW5mbyBSaW5nIGVudHJ5IGFuZCBtb3ZlIGZvcndhcmQuDQo+ICovDQo+ID4gKwkJ CQlyaW5nX2RhdGEtPnZhbCA9IDA7DQo+ID4gKwkJCX0NCj4gPiArCQl9IGVsc2UgeyAvKiBWUkIy X1ZBUklBTlQgKi8NCj4gPiArCQkJaWYgKChyaW5nX2RhdGEtPmludF9uYl92cmIyIDwNCj4gQUND X1BGX0lOVF9ETUFfRExfREVTQ19JUlEpIHx8ICgNCj4gPiArCQkJCQlyaW5nX2RhdGEtPmludF9u Yl92cmIyID4NCj4gQUNDX1BGX0lOVF9ETUFfTUxEX0RFU0NfSVJRKSkgew0KPiA+ICsJCQkJcnRl X2JiZGV2X2xvZyhXQVJOSU5HLCAiSW5mb1Jpbmc6IElUUjolZA0KPiBJbmZvOjB4JXgiLA0KPiA+ ICsJCQkJCQlyaW5nX2RhdGEtPmludF9uYl92cmIyLA0KPiByaW5nX2RhdGEtPnZhbCk7DQo+ID4g KwkJCQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92ZSBmb3J3YXJkLg0KPiAq Lw0KPiA+ICsJCQkJcmluZ19kYXRhLT52YWwgPSAwOw0KPiA+ICsJCQl9DQo+IA0KPiBTYW1lIGFz IGdldF9xdWV1ZV9pZF9mcm9tX3JpbmdfaW5mbygpLg0KPiBIYXZpbmcgYSBjYWxsYmFjayB0byBn ZXQgdGhlIGRpZmZlcmVudCBwYXJhbWV0ZXJzIChpbnRfbmIsIHZmX2lkLCAuLi4pDQo+IGltcGxl bWVudGVkIGJ5IGVhY2ggdmFyaWFudCB3b3VsZCBhdm9pZCBkdXBsaWNhdGlvbiBsaWtlIGFib3Zl Lg0KPiANCj4gSXQgd291bGQgbWFrZSBpdCBtb3JlIGVhc2llciB0byBhZGQgbmV3IHZhcmlhbnRz LCBpLmUuIGp1c3QgaW1wbGVtZW50IHRoZQ0KPiBjYWxsYmFjayB3aXRob3V0IG5lZWRpbmcgdG8g cGF0Y2ggZXZlcnkgZnVuY3Rpb24gbWFraW5nIHVzZSBvZiB0aGVzZSBpbmZvLg0KDQpvaywgZmFp ciBlbm91Z2guDQoNCg0KPiANCj4gPiAgIAkJfQ0KPiA+ICAgCQlpbmZvX3JpbmdfaGVhZCsrOw0K PiA+ICAgCQlyaW5nX2RhdGEgPSBhY2NfZGV2LT5pbmZvX3JpbmcgKyAoaW5mb19yaW5nX2hlYWQg Jg0KPiBBQ0NfSU5GT19SSU5HX01BU0spOw0KPiA+ICAgCX0NCj4gPiAgIH0NCj4gPg0KPiA+ICsN Cj4gDQo+IFJlbW92ZSBuZXcgbGluZS4NCg0Kb2sNCg0KPiANCj4gPiAgIC8qIEludGVycnVwdCBo YW5kbGVyIHRyaWdnZXJlZCBieSBkZXYgZm9yIGhhbmRsaW5nIHNwZWNpZmljIGludGVycnVwdC4g Ki8NCj4gPiAgIHN0YXRpYyB2b2lkDQo+ID4gICB2cmJfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZv aWQgKmNiX2FyZykgQEAgLTM2MSwxNiArNDMwLDIyIEBADQo+ID4gdnJiX2Rldl9pbnRlcnJ1cHRf aGFuZGxlcih2b2lkICpjYl9hcmcpDQo+ID4gICAJc3RydWN0IGFjY19kZXZpY2UgKmFjY19kZXYg PSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICAgCXZvbGF0aWxlIHVuaW9uIGFjY19pbmZv X3JpbmdfZGF0YSAqcmluZ19kYXRhOw0KPiA+ICAgCXN0cnVjdCBhY2NfZGVxX2ludHJfZGV0YWls cyBkZXFfaW50cl9kZXQ7DQo+ID4gKwl1aW50MTZfdCB2Zl9pZCwgYXFfaWQsIHFnX2lkLCBpbnRf bmI7DQo+ID4gKwlib29sIGlzVnJiMSA9IChhY2NfZGV2LT5kZXZpY2VfdmFyaWFudCA9PSBWUkIx X1ZBUklBTlQpOw0KPiA+DQo+ID4gICAJcmluZ19kYXRhID0gYWNjX2Rldi0+aW5mb19yaW5nICsg KGFjY19kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPiBBQ0NfSU5GT19SSU5HX01BU0spOw0KPiA+ DQo+ID4gICAJd2hpbGUgKHJpbmdfZGF0YS0+dmFsaWQpIHsNCj4gPiArCQl2Zl9pZCA9IGlzVnJi MSA/IHJpbmdfZGF0YS0+dmZfaWQgOiByaW5nX2RhdGEtPnZmX2lkX3ZyYjI7DQo+ID4gKwkJYXFf aWQgPSBpc1ZyYjEgPyByaW5nX2RhdGEtPmFxX2lkIDogcmluZ19kYXRhLT5hcV9pZF92cmIyOw0K PiA+ICsJCXFnX2lkID0gaXNWcmIxID8gcmluZ19kYXRhLT5xZ19pZCA6IHJpbmdfZGF0YS0+cWdf aWRfdnJiMjsgPiArDQo+IAkJaW50X25iID0gaXNWcmIxID8gcmluZ19kYXRhLT5pbnRfbmIgOiBy aW5nX2RhdGEtPmludF9uYl92cmIyOw0KPiANCj4gU2FtZSBjb21tZW50IGFzIGFib3ZlLg0KDQpv aw0KDQo+IA0KPiA+ICAgCQlpZiAoYWNjX2Rldi0+cGZfZGV2aWNlKSB7DQo+ID4gICAJCQlydGVf YmJkZXZfbG9nX2RlYnVnKA0KPiA+IC0JCQkJCSJWUkIxIFBGIEludGVycnVwdCByZWNlaXZlZCwg SW5mbyBSaW5nDQo+IGRhdGE6IDB4JXggLT4gJWQiLA0KPiA+IC0JCQkJCXJpbmdfZGF0YS0+dmFs LCByaW5nX2RhdGEtPmludF9uYik7DQo+ID4gKwkJCQkJIlBGIEludGVycnVwdCByZWNlaXZlZCwg SW5mbyBSaW5nIGRhdGE6DQo+IDB4JXggLT4gJWQiLA0KPiA+ICsJCQkJCXJpbmdfZGF0YS0+dmFs LCBpbnRfbmIpOw0KPiA+DQo+ID4gLQkJCXN3aXRjaCAocmluZ19kYXRhLT5pbnRfbmIpIHsNCj4g PiArCQkJc3dpdGNoIChpbnRfbmIpIHsNCj4gPiAgIAkJCWNhc2UgQUNDX1BGX0lOVF9ETUFfRExf REVTQ19JUlE6DQo+ID4gICAJCQljYXNlIEFDQ19QRl9JTlRfRE1BX1VMX0RFU0NfSVJROg0KPiA+ ICAgCQkJY2FzZSBBQ0NfUEZfSU5UX0RNQV9GRlRfREVTQ19JUlE6DQo+ID4gQEAgLTM3OCwxMyAr NDUzLDExIEBAIHZyYl9kZXZfaW50ZXJydXB0X2hhbmRsZXIodm9pZCAqY2JfYXJnKQ0KPiA+ICAg CQkJY2FzZSBBQ0NfUEZfSU5UX0RNQV9ETDVHX0RFU0NfSVJROg0KPiA+ICAgCQkJY2FzZSBBQ0Nf UEZfSU5UX0RNQV9NTERfREVTQ19JUlE6DQo+ID4gICAJCQkJZGVxX2ludHJfZGV0LnF1ZXVlX2lk ID0NCj4gZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKA0KPiA+IC0JCQkJCQlkZXYtPmRhdGEs ICpyaW5nX2RhdGEpOw0KPiA+ICsJCQkJCQlkZXYtPmRhdGEsICpyaW5nX2RhdGEsDQo+IGFjY19k ZXYtPmRldmljZV92YXJpYW50KTsNCj4gPiAgIAkJCQlpZiAoZGVxX2ludHJfZGV0LnF1ZXVlX2lk ID09IFVJTlQxNl9NQVgpIHsNCj4gPiAgIAkJCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gICAJ CQkJCQkJIkNvdWxkbid0IGZpbmQgcXVldWU6DQo+IGFxX2lkOiAldSwgcWdfaWQ6ICV1LCB2Zl9p ZDogJXUiLA0KPiA+IC0JCQkJCQkJcmluZ19kYXRhLT5hcV9pZCwNCj4gPiAtCQkJCQkJCXJpbmdf ZGF0YS0+cWdfaWQsDQo+ID4gLQkJCQkJCQlyaW5nX2RhdGEtPnZmX2lkKTsNCj4gPiArCQkJCQkJ CWFxX2lkLCBxZ19pZCwgdmZfaWQpOw0KPiA+ICAgCQkJCQlyZXR1cm47DQo+ID4gICAJCQkJfQ0K PiA+ICAgCQkJCXJ0ZV9iYmRldl9wbWRfY2FsbGJhY2tfcHJvY2VzcyhkZXYsDQo+ID4gQEAgLTM5 Niw5ICs0NjksOSBAQCB2cmJfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2FyZykNCj4g PiAgIAkJCX0NCj4gPiAgIAkJfSBlbHNlIHsNCj4gPiAgIAkJCXJ0ZV9iYmRldl9sb2dfZGVidWco DQo+ID4gLQkJCQkJIlZSQjEgVkYgSW50ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcNCj4gZGF0 YTogMHgleFxuIiwNCj4gPiArCQkJCQkiVlJCIFZGIEludGVycnVwdCByZWNlaXZlZCwgSW5mbyBS aW5nDQo+IGRhdGE6IDB4JXhcbiIsDQo+ID4gICAJCQkJCXJpbmdfZGF0YS0+dmFsKTsNCj4gPiAt CQkJc3dpdGNoIChyaW5nX2RhdGEtPmludF9uYikgew0KPiA+ICsJCQlzd2l0Y2ggKGludF9uYikg ew0KPiA+ICAgCQkJY2FzZSBBQ0NfVkZfSU5UX0RNQV9ETF9ERVNDX0lSUToNCj4gPiAgIAkJCWNh c2UgQUNDX1ZGX0lOVF9ETUFfVUxfREVTQ19JUlE6DQo+ID4gICAJCQljYXNlIEFDQ19WRl9JTlRf RE1BX0ZGVF9ERVNDX0lSUToNCj4gPiBAQCAtNDA2LDE0ICs0NzksMTYgQEAgdnJiX2Rldl9pbnRl cnJ1cHRfaGFuZGxlcih2b2lkICpjYl9hcmcpDQo+ID4gICAJCQljYXNlIEFDQ19WRl9JTlRfRE1B X0RMNUdfREVTQ19JUlE6DQo+ID4gICAJCQljYXNlIEFDQ19WRl9JTlRfRE1BX01MRF9ERVNDX0lS UToNCj4gPiAgIAkJCQkvKiBWRnMgYXJlIG5vdCBhd2FyZSBvZiB0aGVpciB2Zl9pZCAtIGl0J3Mg c2V0IHRvDQo+IDAuICAqLw0KPiA+IC0JCQkJcmluZ19kYXRhLT52Zl9pZCA9IDA7DQo+ID4gKwkJ CQlpZiAoYWNjX2Rldi0+ZGV2aWNlX3ZhcmlhbnQgPT0NCj4gVlJCMV9WQVJJQU5UKQ0KPiA+ICsJ CQkJCXJpbmdfZGF0YS0+dmZfaWQgPSAwOw0KPiA+ICsJCQkJZWxzZQ0KPiA+ICsJCQkJCXJpbmdf ZGF0YS0+dmZfaWRfdnJiMiA9IDA7DQo+IA0KPiBEaXR0bywgeW91IGFsc28gbmVlZCBhIHdheSB0 byBzZXQgdGhlc2UgZmllbGRzIGluIGEgZ2VuZXJpYyB3YXkuDQoNCm9rDQoNCj4gDQo+ID4gICAJ CQkJZGVxX2ludHJfZGV0LnF1ZXVlX2lkID0NCj4gZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZv KA0KPiA+IC0JCQkJCQlkZXYtPmRhdGEsICpyaW5nX2RhdGEpOw0KPiA+ICsJCQkJCQlkZXYtPmRh dGEsICpyaW5nX2RhdGEsDQo+IGFjY19kZXYtPmRldmljZV92YXJpYW50KTsNCj4gPiAgIAkJCQlp ZiAoZGVxX2ludHJfZGV0LnF1ZXVlX2lkID09IFVJTlQxNl9NQVgpIHsNCj4gPiAgIAkJCQkJcnRl X2JiZGV2X2xvZyhFUlIsDQo+ID4gICAJCQkJCQkJIkNvdWxkbid0IGZpbmQgcXVldWU6DQo+IGFx X2lkOiAldSwgcWdfaWQ6ICV1IiwNCj4gPiAtCQkJCQkJCXJpbmdfZGF0YS0+YXFfaWQsDQo+ID4g LQkJCQkJCQlyaW5nX2RhdGEtPnFnX2lkKTsNCj4gPiArCQkJCQkJCWFxX2lkLCBxZ19pZCk7DQo+ ID4gICAJCQkJCXJldHVybjsNCj4gPiAgIAkJCQl9DQo+ID4gICAJCQkJcnRlX2JiZGV2X3BtZF9j YWxsYmFja19wcm9jZXNzKGRldiwNCj4gPiBAQCAtNDI4LDggKzUwMyw3IEBAIHZyYl9kZXZfaW50 ZXJydXB0X2hhbmRsZXIodm9pZCAqY2JfYXJnKQ0KPiA+ICAgCQkvKiBJbml0aWFsaXplIEluZm8g UmluZyBlbnRyeSBhbmQgbW92ZSBmb3J3YXJkLiAqLw0KPiA+ICAgCQlyaW5nX2RhdGEtPnZhbCA9 IDA7DQo+ID4gICAJCSsrYWNjX2Rldi0+aW5mb19yaW5nX2hlYWQ7DQo+ID4gLQkJcmluZ19kYXRh ID0gYWNjX2Rldi0+aW5mb19yaW5nICsNCj4gPiAtCQkJCShhY2NfZGV2LT5pbmZvX3JpbmdfaGVh ZCAmDQo+IEFDQ19JTkZPX1JJTkdfTUFTSyk7DQo+ID4gKwkJcmluZ19kYXRhID0gYWNjX2Rldi0+ aW5mb19yaW5nICsgKGFjY19kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPiArQUNDX0lORk9fUklO R19NQVNLKTsNCj4gPiAgIAl9DQo+ID4gICB9DQo+ID4NCj4gPiBAQCAtNDYxLDcgKzUzNSwxMCBA QCBhbGxvY2F0ZV9pbmZvX3Jpbmcoc3RydWN0IHJ0ZV9iYmRldiAqZGV2KQ0KPiA+ICAgCXBoeXNf bG93ICA9ICh1aW50MzJfdCkoaW5mb19yaW5nX2lvdmEpOw0KPiA+ICAgCWFjY19yZWdfd3JpdGUo ZCwgZC0+cmVnX2FkZHItPmluZm9fcmluZ19oaSwgcGh5c19oaWdoKTsNCj4gPiAgIAlhY2NfcmVn X3dyaXRlKGQsIGQtPnJlZ19hZGRyLT5pbmZvX3JpbmdfbG8sIHBoeXNfbG93KTsNCj4gPiAtCWFj Y19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmluZm9fcmluZ19lbiwNCj4gVlJCMV9SRUdfSVJR X0VOX0FMTCk7DQo+ID4gKwlpZiAoZC0+ZGV2aWNlX3ZhcmlhbnQgPT0gVlJCMV9WQVJJQU5UKQ0K PiA+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmluZm9fcmluZ19lbiwNCj4gVlJC MV9SRUdfSVJRX0VOX0FMTCk7DQo+ID4gKwllbHNlDQo+ID4gKwkJYWNjX3JlZ193cml0ZShkLCBk LT5yZWdfYWRkci0+aW5mb19yaW5nX2VuLA0KPiBWUkIyX1JFR19JUlFfRU5fQUxMKTsNCj4gDQo+ IE15IGd1ZXNzIGlzIHRoZSBtYXNrIHZhbHVlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIGlz IHRoZSBWUkIyIGFkZGVkDQo+IE1MRC1UUyByZWxhdGVkIGludGVycnVwdHMsIGlzIGl0Pw0KPiAN Cj4gSWYgc28sIGl0IHdvdWxkIGJlIG1vcmUgZnV0dXJlIHByb29mIHRvIGNvbmZpZ3VyZSB0aGlz IGJhc2VkIG9uIHRoZSBkZXZpY2UNCj4gY2FwYWJpbGl0aWVzIGluc3RlYWQgb2YgaXRzIHZhcmlh bnQ/DQoNClRoZXJlIGFyZSBzb21lIGRpZmZlcmVuY2VzIGluIHRoZXNlIGltcGxlbWVudGF0aW9u cywgYmVzdCB0byB0byBrZWVwIHRoZW0gc2VwYXJhdGUuIA0KDQo+IA0KPiA+ICAgCWQtPmluZm9f cmluZ19oZWFkID0gKGFjY19yZWdfcmVhZChkLCBkLT5yZWdfYWRkci0+aW5mb19yaW5nX3B0cikg Jg0KPiA+ICAgCQkJMHhGRkYpIC8gc2l6ZW9mKHVuaW9uIGFjY19pbmZvX3JpbmdfZGF0YSk7DQo+ ID4gICAJcmV0dXJuIDA7DQo+ID4gQEAgLTUxNiw2ICs1OTMsNyBAQCB2cmJfc2V0dXBfcXVldWVz KHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QNCj4gbnVtX3F1ZXVlcywgaW50IHNvY2tl dF9pZCkNCj4gPiAgIAlwaHlzX2hpZ2ggPSAodWludDMyX3QpKGQtPnN3X3JpbmdzX2lvdmEgPj4g MzIpOw0KPiA+ICAgCXBoeXNfbG93ICA9ICh1aW50MzJfdCkoZC0+c3dfcmluZ3NfaW92YSAmIH4o QUNDX1NJWkVfNjRNQllURS0xKSk7DQo+ID4NCj4gPiArDQo+IA0KPiBSZW1vdmUgbmV3IGxpbmUu DQoNCm9rDQoNCj4gDQo+ID4gICAJLyogUmVhZCB0aGUgcG9wdWxhdGVkIGNmZyBmcm9tIGRldmlj ZSByZWdpc3RlcnMuICovDQo+ID4gICAJZmV0Y2hfYWNjX2NvbmZpZyhkZXYpOw0KPiA+DQo+ID4g QEAgLTU0MCw2ICs2MTgsMTAgQEAgdnJiX3NldHVwX3F1ZXVlcyhzdHJ1Y3QgcnRlX2JiZGV2ICpk ZXYsIHVpbnQxNl90DQo+IG51bV9xdWV1ZXMsIGludCBzb2NrZXRfaWQpDQo+ID4gICAJYWNjX3Jl Z193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1hX3JpbmdfZGw0Z19sbywgcGh5c19sb3cpOw0KPiA+ ICAgCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPmRtYV9yaW5nX2ZmdF9oaSwgcGh5c19o aWdoKTsNCj4gPiAgIAlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT5kbWFfcmluZ19mZnRf bG8sIHBoeXNfbG93KTsNCj4gPiArCWlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklB TlQpIHsNCj4gPiArCQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT5kbWFfcmluZ19tbGRf aGksIHBoeXNfaGlnaCk7DQo+ID4gKwkJYWNjX3JlZ193cml0ZShkLCBkLT5yZWdfYWRkci0+ZG1h X3JpbmdfbWxkX2xvLCBwaHlzX2xvdyk7DQo+IA0KPiBTYW1lLCB3b3VsZG4ndCBpdCBiZSBtb3Jl IGZ1dHVyZS1wcm9vZiB0byBzZXQgdGhpcyBiYXNlZCBvbiB0aGUgY2FwYWJpbGl0aWVzIG9mDQo+ IHRoZSBkZXZpY2UgYW5kIG5vdCBpdHMgdmFyaWFudD8NCg0KQ2hlY2tpbmcgY2FwYWJpbGl0eSBv biB0aGUgZmx5IHdvdWxkIGJlIGN1bWJlcnNvbWUgSSB0aGluay4NCkkgZG9udCBzZWUgcHJvYmxl bSByZWxhdGVkIHRvIG5leHQgZ2VuIGV4dGVuc2lvbiBmb3IgdGhpcy4gDQpUaGFua3MNCg0KPiAN Cj4gPiArCX0NCj4gPiAgIAkvKg0KPiA+ICAgCSAqIENvbmZpZ3VyZSBSaW5nIFNpemUgdG8gdGhl IG1heCBxdWV1ZSByaW5nIHNpemUNCj4gPiAgIAkgKiAodXNlZCBmb3Igd3JhcHBpbmcgcHVycG9z ZSkuDQo+ID4gQEAgLTU0OSw4ICs2MzEsNyBAQCB2cmJfc2V0dXBfcXVldWVzKHN0cnVjdCBydGVf YmJkZXYgKmRldiwgdWludDE2X3QNCj4gPiBudW1fcXVldWVzLCBpbnQgc29ja2V0X2lkKQ0KPiA+ DQo+ID4gICAJLyogQ29uZmlndXJlIHRhaWwgcG9pbnRlciBmb3IgdXNlIHdoZW4gU0RPTkUgZW5h YmxlZC4gKi8NCj4gPiAgIAlpZiAoZC0+dGFpbF9wdHJzID09IE5VTEwpDQo+ID4gLQkJZC0+dGFp bF9wdHJzID0gcnRlX3ptYWxsb2Nfc29ja2V0KA0KPiA+IC0JCQkJZGV2LT5kZXZpY2UtPmRyaXZl ci0+bmFtZSwNCj4gPiArCQlkLT50YWlsX3B0cnMgPSBydGVfem1hbGxvY19zb2NrZXQoZGV2LT5k ZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiAgIAkJCQlWUkJfTUFYX1FHUlBTICogVlJCX01BWF9B UVMgKg0KPiBzaXplb2YodWludDMyX3QpLA0KPiA+ICAgCQkJCVJURV9DQUNIRV9MSU5FX1NJWkUs IHNvY2tldF9pZCk7DQo+ID4gICAJaWYgKGQtPnRhaWxfcHRycyA9PSBOVUxMKSB7DQo+ID4gQEAg LTU3NCw2ICs2NTUsMTAgQEAgdnJiX3NldHVwX3F1ZXVlcyhzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYs IHVpbnQxNl90DQo+IG51bV9xdWV1ZXMsIGludCBzb2NrZXRfaWQpDQo+ID4gICAJYWNjX3JlZ193 cml0ZShkLCBkLT5yZWdfYWRkci0+dGFpbF9wdHJzX2RsNGdfbG8sIHBoeXNfbG93KTsNCj4gPiAg IAlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0cnNfZmZ0X2hpLCBwaHlzX2hp Z2gpOw0KPiA+ICAgCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRhaWxfcHRyc19mZnRf bG8sIHBoeXNfbG93KTsNCj4gPiArCWlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklB TlQpIHsNCj4gPiArCQlhY2NfcmVnX3dyaXRlKGQsIGQtPnJlZ19hZGRyLT50YWlsX3B0cnNfbWxk X2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICsJCWFjY19yZWdfd3JpdGUoZCwgZC0+cmVnX2FkZHItPnRh aWxfcHRyc19tbGRfbG8sIHBoeXNfbG93KTsNCj4gPiArCX0NCj4gDQo+IERpdHRvLg0KPiANCj4g Pg0KPiA+ICAgCXJldCA9IGFsbG9jYXRlX2luZm9fcmluZyhkZXYpOw0KPiA+ICAgCWlmIChyZXQg PCAwKSB7DQo+ID4gQEAgLTY3MSwxMCArNzU2LDE3IEBAIHZyYl9pbnRyX2VuYWJsZShzdHJ1Y3Qg cnRlX2JiZGV2ICpkZXYpDQo+ID4gICAJCQlyZXR1cm4gcmV0Ow0KPiA+ICAgCQl9DQo+ID4NCj4g PiAtCQlpZiAoYWNjX2Rldi0+cGZfZGV2aWNlKQ0KPiA+IC0JCQltYXhfcXVldWVzID0gVlJCMV9N QVhfUEZfTVNJWDsNCj4gPiAtCQllbHNlDQo+ID4gLQkJCW1heF9xdWV1ZXMgPSBWUkIxX01BWF9W Rl9NU0lYOw0KPiA+ICsJCWlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBWUkIxX1ZBUklBTlQpIHsN Cj4gPiArCQkJaWYgKGFjY19kZXYtPnBmX2RldmljZSkNCj4gPiArCQkJCW1heF9xdWV1ZXMgPSBW UkIxX01BWF9QRl9NU0lYOw0KPiA+ICsJCQllbHNlDQo+ID4gKwkJCQltYXhfcXVldWVzID0gVlJC MV9NQVhfVkZfTVNJWDsNCj4gPiArCQl9IGVsc2Ugew0KPiA+ICsJCQlpZiAoYWNjX2Rldi0+cGZf ZGV2aWNlKQ0KPiA+ICsJCQkJbWF4X3F1ZXVlcyA9IFZSQjJfTUFYX1BGX01TSVg7DQo+ID4gKwkJ CWVsc2UNCj4gPiArCQkJCW1heF9xdWV1ZXMgPSBWUkIyX01BWF9WRl9NU0lYOw0KPiA+ICsJCX0N Cj4gPg0KPiA+ICAgCQlpZiAocnRlX2ludHJfZWZkX2VuYWJsZShkZXYtPmludHJfaGFuZGxlLCBt YXhfcXVldWVzKSkgew0KPiA+ICAgCQkJcnRlX2JiZGV2X2xvZyhFUlIsICJGYWlsZWQgdG8gY3Jl YXRlIGZkcyBmb3IgJXUNCj4gcXVldWVzIiwgQEANCj4gPiAtNzc2LDcgKzg2OCwxMCBAQCB2cmJf ZmluZF9mcmVlX3F1ZXVlX2lkeChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsDQo+ID4gICAJCQkvKiBN YXJrIHRoZSBRdWV1ZSBhcyBhc3NpZ25lZC4gKi8NCj4gPiAgIAkJCWQtPnFfYXNzaWduZWRfYml0 X21hcFtncm91cF9pZHhdIHw9ICgxVUxMIDw8DQo+IGFxX2lkeCk7DQo+ID4gICAJCQkvKiBSZXBv cnQgdGhlIEFRIEluZGV4LiAqLw0KPiA+IC0JCQlyZXR1cm4gKGdyb3VwX2lkeCA8PCBWUkIxX0dS UF9JRF9TSElGVCkgKyBhcV9pZHg7DQo+ID4gKwkJCWlmIChkLT5kZXZpY2VfdmFyaWFudCA9PSBW UkIxX1ZBUklBTlQpDQo+ID4gKwkJCQlyZXR1cm4gKGdyb3VwX2lkeCA8PCBWUkIxX0dSUF9JRF9T SElGVCkgKw0KPiBhcV9pZHg7DQo+ID4gKwkJCWVsc2UNCj4gPiArCQkJCXJldHVybiAoZ3JvdXBf aWR4IDw8IFZSQjJfR1JQX0lEX1NISUZUKSArDQo+IGFxX2lkeDsNCj4gDQo+IFRoaXMgaXMgdGhl IHNhbWUgYml0bWFwIGFzIGluIGFjY19pbmZvX3JpbmdfZGF0YSwgaXNuJ3QgaXQ/DQo+IFdlIGNv dWxkIG1heWJlIHNoYXJlIHNvbWUgY29kZSB0byB0byB0aGUgZGVjb2RpbmcgYXMgc3VnZ2VzdGVk IGVhbGllciBpbg0KPiB0aGlzIHBhdGNoLg0KDQp5b3UgbWVhbiBqdXN0IHRvIGFkZCBhbiBpbmxp bmUgZnVuY3Rpb24gZm9yIHRoZSBncnBfaWRfc2hpZnQodmFyaWFudCkgcmlnaHQ/IA0KZmFpciBl bm91Z2gNCg0KDQo+IA0KPiA+ICAgCQl9DQo+ID4gICAJfQ0KPiA+ICAgCXJ0ZV9iYmRldl9sb2co SU5GTywgIkZhaWxlZCB0byBmaW5kIGZyZWUgcXVldWUgb24gJXMsIHByaW9yaXR5ICV1IiwNCj4g PiBAQCAtODE5LDYgKzkxNCw5IEBAIHZyYl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2JiZGV2ICpk ZXYsIHVpbnQxNl90DQo+IHF1ZXVlX2lkLA0KPiA+ICAgCQkJQUNDX0ZDV19MRF9CTEVOIDogKGNv bmYtPm9wX3R5cGUgPT0NCj4gUlRFX0JCREVWX09QX0ZGVCA/DQo+ID4gICAJCQlBQ0NfRkNXX0ZG VF9CTEVOIDogQUNDX0ZDV19NTERUU19CTEVOKSkpKTsNCj4gPg0KPiA+ICsJaWYgKChxLT5kLT5k ZXZpY2VfdmFyaWFudCA9PSBWUkIyX1ZBUklBTlQpICYmIChjb25mLT5vcF90eXBlID09DQo+IFJU RV9CQkRFVl9PUF9GRlQpKQ0KPiA+ICsJCWZjd19sZW4gPSBBQ0NfRkNXX0ZGVF9CTEVOXzM7DQo+ ID4gKw0KPiA+ICAgCWZvciAoZGVzY19pZHggPSAwOyBkZXNjX2lkeCA8IGQtPnN3X3JpbmdfbWF4 X2RlcHRoOyBkZXNjX2lkeCsrKSB7DQo+ID4gICAJCWRlc2MgPSBxLT5yaW5nX2FkZHIgKyBkZXNj X2lkeDsNCj4gPiAgIAkJZGVzYy0+cmVxLndvcmQwID0gQUNDX0RNQV9ERVNDX1RZUEU7IEBAIC05 MTUsOQ0KPiArMTAxMywxNiBAQA0KPiA+IHZyYl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2JiZGV2 ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAgCQl9DQo+ID4gICAJfQ0KPiA+DQo+ID4g LQlxLT5xZ3JwX2lkID0gKHFfaWR4ID4+IFZSQjFfR1JQX0lEX1NISUZUKSAmIDB4RjsNCj4gPiAt CXEtPnZmX2lkID0gKHFfaWR4ID4+IFZSQjFfVkZfSURfU0hJRlQpICAmIDB4M0Y7DQo+ID4gLQlx LT5hcV9pZCA9IHFfaWR4ICYgMHhGOw0KPiA+ICsJaWYgKGQtPmRldmljZV92YXJpYW50ID09IFZS QjFfVkFSSUFOVCkgew0KPiA+ICsJCXEtPnFncnBfaWQgPSAocV9pZHggPj4gVlJCMV9HUlBfSURf U0hJRlQpICYgMHhGOw0KPiA+ICsJCXEtPnZmX2lkID0gKHFfaWR4ID4+IFZSQjFfVkZfSURfU0hJ RlQpICAmIDB4M0Y7DQo+ID4gKwkJcS0+YXFfaWQgPSBxX2lkeCAmIDB4RjsNCj4gPiArCX0gZWxz ZSB7DQo+ID4gKwkJcS0+cWdycF9pZCA9IChxX2lkeCA+PiBWUkIyX0dSUF9JRF9TSElGVCkgJiAw eDFGOw0KPiA+ICsJCXEtPnZmX2lkID0gKHFfaWR4ID4+IFZSQjJfVkZfSURfU0hJRlQpICAmIDB4 M0Y7DQo+ID4gKwkJcS0+YXFfaWQgPSBxX2lkeCAmIDB4M0Y7DQo+ID4gKwl9DQo+ID4gKw0KPiAN Cj4gU2FtZSByZW1hcmsgYXMgYmVmb3JlLg0KDQp5ZXMsIHN0aWxsIHZhbGlkDQoNCj4gDQo+ID4g ICAJcS0+YXFfZGVwdGggPSAwOw0KPiA+ICAgCWlmIChjb25mLT5vcF90eXBlID09ICBSVEVfQkJE RVZfT1BfVFVSQk9fREVDKQ0KPiA+ICAgCQlxLT5hcV9kZXB0aCA9ICgxIDw8IGQtPmFjY19jb25m LnFfdWxfNGcuYXFfZGVwdGhfbG9nMik7DQo+ID4gQEAgLTExNDksNiArMTI1NCwxMjcgQEAgdnJi X2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHN0cnVjdA0KPiBydGVfYmJkZXZf ZHJpdmVyX2luZm8gKmRldl9pbmZvKQ0KPiA+ICAgCQlSVEVfQkJERVZfRU5EX09GX0NBUEFCSUxJ VElFU19MSVNUKCkNCj4gPiAgIAl9Ow0KPiA+DQo+ID4gKwlzdGF0aWMgY29uc3Qgc3RydWN0IHJ0 ZV9iYmRldl9vcF9jYXAgdnJiMl9iYmRldl9jYXBhYmlsaXRpZXNbXSA9IHsNCj4gPiArCQl7DQo+ ID4gKwkJCS50eXBlID0gUlRFX0JCREVWX09QX1RVUkJPX0RFQywNCj4gPiArCQkJLmNhcC50dXJi b19kZWMgPSB7DQo+ID4gKwkJCQkuY2FwYWJpbGl0eV9mbGFncyA9DQo+ID4gKw0KPiAJUlRFX0JC REVWX1RVUkJPX1NVQkJMT0NLX0RFSU5URVJMRUFWRSB8DQo+ID4gKwkJCQkJUlRFX0JCREVWX1RV UkJPX0NSQ19UWVBFXzI0QiB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX1RVUkJPX0RFQ19DUkNfMjRC X0RST1AgfA0KPiA+ICsJCQkJCVJURV9CQkRFVl9UVVJCT19FUVVBTElaRVIgfA0KPiA+ICsNCj4g CVJURV9CQkRFVl9UVVJCT19TT0ZUX09VVF9TQVRVUkFURSB8DQo+ID4gKw0KPiAJUlRFX0JCREVW X1RVUkJPX0hBTEZfSVRFUkFUSU9OX0VWRU4gfA0KPiA+ICsNCj4gCVJURV9CQkRFVl9UVVJCT19D T05USU5VRV9DUkNfTUFUQ0ggfA0KPiA+ICsJCQkJCVJURV9CQkRFVl9UVVJCT19TT0ZUX09VVFBV VCB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX1RVUkJPX0VBUkxZX1RFUk1JTkFUSU9OIHwNCj4gPiAr DQo+IAlSVEVfQkJERVZfVFVSQk9fREVDX0lOVEVSUlVQVFMgfA0KPiA+ICsNCj4gCVJURV9CQkRF Vl9UVVJCT19ORUdfTExSXzFfQklUX0lOIHwNCj4gPiArDQo+IAlSVEVfQkJERVZfVFVSQk9fTkVH X0xMUl8xX0JJVF9TT0ZUX09VVCB8DQo+ID4gKwkJCQkJUlRFX0JCREVWX1RVUkJPX01BUF9ERUMg fA0KPiA+ICsNCj4gCVJURV9CQkRFVl9UVVJCT19ERUNfVEJfQ1JDXzI0Ql9LRUVQIHwNCj4gPiAr DQo+IAlSVEVfQkJERVZfVFVSQk9fREVDX1NDQVRURVJfR0FUSEVSLA0KPiA+ICsJCQkJLm1heF9s bHJfbW9kdWx1cyA9IElOVDhfTUFYLA0KPiA+ICsJCQkJLm51bV9idWZmZXJzX3NyYyA9DQo+ID4g Kw0KPiAJUlRFX0JCREVWX1RVUkJPX01BWF9DT0RFX0JMT0NLUywNCj4gPiArCQkJCS5udW1fYnVm ZmVyc19oYXJkX291dCA9DQo+ID4gKw0KPiAJUlRFX0JCREVWX1RVUkJPX01BWF9DT0RFX0JMT0NL UywNCj4gPiArCQkJCS5udW1fYnVmZmVyc19zb2Z0X291dCA9DQo+ID4gKw0KPiAJUlRFX0JCREVW X1RVUkJPX01BWF9DT0RFX0JMT0NLUywNCj4gPiArCQkJfQ0KPiA+ICsJCX0sDQo+ID4gKwkJew0K PiA+ICsJCQkudHlwZSA9IFJURV9CQkRFVl9PUF9UVVJCT19FTkMsDQo+ID4gKwkJCS5jYXAudHVy Ym9fZW5jID0gew0KPiA+ICsJCQkJLmNhcGFiaWxpdHlfZmxhZ3MgPQ0KPiA+ICsNCj4gCVJURV9C QkRFVl9UVVJCT19DUkNfMjRCX0FUVEFDSCB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX1RVUkJPX1JW X0lOREVYX0JZUEFTUyB8DQo+ID4gKwkJCQkJUlRFX0JCREVWX1RVUkJPX1JBVEVfTUFUQ0ggfA0K PiA+ICsNCj4gCVJURV9CQkRFVl9UVVJCT19FTkNfSU5URVJSVVBUUyB8DQo+ID4gKw0KPiAJUlRF X0JCREVWX1RVUkJPX0VOQ19TQ0FUVEVSX0dBVEhFUiwNCj4gPiArCQkJCS5udW1fYnVmZmVyc19z cmMgPQ0KPiA+ICsNCj4gCVJURV9CQkRFVl9UVVJCT19NQVhfQ09ERV9CTE9DS1MsDQo+ID4gKwkJ CQkubnVtX2J1ZmZlcnNfZHN0ID0NCj4gPiArDQo+IAlSVEVfQkJERVZfVFVSQk9fTUFYX0NPREVf QkxPQ0tTLA0KPiA+ICsJCQl9DQo+ID4gKwkJfSwNCj4gPiArCQl7DQo+ID4gKwkJCS50eXBlICAg PSBSVEVfQkJERVZfT1BfTERQQ19FTkMsDQo+ID4gKwkJCS5jYXAubGRwY19lbmMgPSB7DQo+ID4g KwkJCQkuY2FwYWJpbGl0eV9mbGFncyA9DQo+ID4gKwkJCQkJUlRFX0JCREVWX0xEUENfUkFURV9N QVRDSCB8DQo+ID4gKwkJCQkJUlRFX0JCREVWX0xEUENfQ1JDXzI0Ql9BVFRBQ0gNCj4gfA0KPiA+ ICsNCj4gCVJURV9CQkRFVl9MRFBDX0lOVEVSTEVBVkVSX0JZUEFTUyB8DQo+ID4gKwkJCQkJUlRF X0JCREVWX0xEUENfRU5DX0lOVEVSUlVQVFMNCj4gfA0KPiA+ICsNCj4gCVJURV9CQkRFVl9MRFBD X0VOQ19TQ0FUVEVSX0dBVEhFUiB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX0xEUENfRU5DX0NPTkNB VEVOQVRJT04sDQo+ID4gKwkJCQkubnVtX2J1ZmZlcnNfc3JjID0NCj4gPiArDQo+IAlSVEVfQkJE RVZfTERQQ19NQVhfQ09ERV9CTE9DS1MsDQo+ID4gKwkJCQkubnVtX2J1ZmZlcnNfZHN0ID0NCj4g PiArDQo+IAlSVEVfQkJERVZfTERQQ19NQVhfQ09ERV9CTE9DS1MsDQo+ID4gKwkJCX0NCj4gPiAr CQl9LA0KPiA+ICsJCXsNCj4gPiArCQkJLnR5cGUgICA9IFJURV9CQkRFVl9PUF9MRFBDX0RFQywN Cj4gPiArCQkJLmNhcC5sZHBjX2RlYyA9IHsNCj4gPiArCQkJLmNhcGFiaWxpdHlfZmxhZ3MgPQ0K PiA+ICsJCQkJUlRFX0JCREVWX0xEUENfQ1JDX1RZUEVfMjRCX0NIRUNLIHwNCj4gPiArCQkJCVJU RV9CQkRFVl9MRFBDX0NSQ19UWVBFXzI0Ql9EUk9QIHwNCj4gPiArCQkJCVJURV9CQkRFVl9MRFBD X0NSQ19UWVBFXzI0QV9DSEVDSyB8DQo+ID4gKwkJCQlSVEVfQkJERVZfTERQQ19DUkNfVFlQRV8x Nl9DSEVDSyB8DQo+ID4gKwkJCQlSVEVfQkJERVZfTERQQ19IUV9DT01CSU5FX0lOX0VOQUJMRQ0K PiB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX0xEUENfSFFfQ09NQklORV9PVVRfRU5BQkxFIHwNCj4g PiArCQkJCVJURV9CQkRFVl9MRFBDX0lURVJBVElPTl9TVE9QX0VOQUJMRQ0KPiB8DQo+ID4gKwkJ CQlSVEVfQkJERVZfTERQQ19ERUlOVEVSTEVBVkVSX0JZUEFTUyB8DQo+ID4gKwkJCQlSVEVfQkJE RVZfTERQQ19ERUNfU0NBVFRFUl9HQVRIRVIgfA0KPiA+ICsNCj4gCVJURV9CQkRFVl9MRFBDX0hB UlFfNkJJVF9DT01QUkVTU0lPTiB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX0xEUENfSEFSUV80QklU X0NPTVBSRVNTSU9OIHwNCj4gPiArCQkJCVJURV9CQkRFVl9MRFBDX0xMUl9DT01QUkVTU0lPTiB8 DQo+ID4gKwkJCQlSVEVfQkJERVZfTERQQ19TT0ZUX09VVF9FTkFCTEUgfA0KPiA+ICsJCQkJUlRF X0JCREVWX0xEUENfU09GVF9PVVRfUk1fQllQQVNTIHwNCj4gPiArDQo+IAlSVEVfQkJERVZfTERQ Q19TT0ZUX09VVF9ERUlOVEVSTEVBVkVSX0JZUEFTUyB8DQo+ID4gKwkJCQlSVEVfQkJERVZfTERQ Q19ERUNfSU5URVJSVVBUUywNCj4gPiArCQkJLmxscl9zaXplID0gOCwNCj4gPiArCQkJLmxscl9k ZWNpbWFscyA9IDIsDQo+ID4gKwkJCS5udW1fYnVmZmVyc19zcmMgPQ0KPiA+ICsNCj4gCVJURV9C QkRFVl9MRFBDX01BWF9DT0RFX0JMT0NLUywNCj4gPiArCQkJLm51bV9idWZmZXJzX2hhcmRfb3V0 ID0NCj4gPiArDQo+IAlSVEVfQkJERVZfTERQQ19NQVhfQ09ERV9CTE9DS1MsDQo+ID4gKwkJCS5u dW1fYnVmZmVyc19zb2Z0X291dCA9IDAsDQo+ID4gKwkJCX0NCj4gPiArCQl9LA0KPiA+ICsJCXsN Cj4gPiArCQkJLnR5cGUJPSBSVEVfQkJERVZfT1BfRkZULA0KPiA+ICsJCQkuY2FwLmZmdCA9IHsN Cj4gPiArCQkJCS5jYXBhYmlsaXR5X2ZsYWdzID0NCj4gPiArDQo+IAlSVEVfQkJERVZfRkZUX1dJ TkRPV0lORyB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX0ZGVF9DU19BREpVU1RNRU5UIHwNCj4gPiAr DQo+IAlSVEVfQkJERVZfRkZUX0RGVF9CWVBBU1MgfA0KPiA+ICsNCj4gCVJURV9CQkRFVl9GRlRf SURGVF9CWVBBU1MgfA0KPiA+ICsJCQkJCQlSVEVfQkJERVZfRkZUX0ZQMTZfSU5QVVQNCj4gfA0K PiA+ICsNCj4gCVJURV9CQkRFVl9GRlRfRlAxNl9PVVRQVVQgfA0KPiA+ICsNCj4gCVJURV9CQkRF Vl9GRlRfUE9XRVJfTUVBUyB8DQo+ID4gKw0KPiAJUlRFX0JCREVWX0ZGVF9XSU5ET1dJTkdfQllQ QVNTLA0KPiA+ICsJCQkJLm51bV9idWZmZXJzX3NyYyA9DQo+ID4gKw0KPiAJUlRFX0JCREVWX0xE UENfTUFYX0NPREVfQkxPQ0tTLA0KPiA+ICsJCQkJLm51bV9idWZmZXJzX2RzdCA9DQo+ID4gKw0K PiAJUlRFX0JCREVWX0xEUENfTUFYX0NPREVfQkxPQ0tTLA0KPiANCj4gSXMgdGhhdCBhIGNvcHkv cGFzdGEgZXJyb3Igb3IgaXMgaXQgZXhwZWN0ZWQgdG8gaGF2ZSBMRFBDIGRlZmluZXMgaW4gRkZU DQo+IGNhcGFiaWxpdGllcz8NCg0KSSBuZWVkIHRvIGNoYW5nZSB0aGF0LCB0aGlzIGlzIG5vdCBx dWl0ZSBjb3JyZWN0IGFjdHVhbGx5IGV2ZW4gcHJldmlvdXNseS4NClByb2JhYmx5IHRocm91Z2gg b3RoZXIgc2VyaWUgdGhvdWdoLiBObyBvbmUgdXNlcyB0aGlzIGN1cnJlbnRseS4NCg0KPiANCj4g PiArCQkJfQ0KPiA+ICsJCX0sDQo+ID4gKwkJew0KPiA+ICsJCQkudHlwZQk9IFJURV9CQkRFVl9P UF9NTERUUywNCj4gPiArCQkJLmNhcC5mZnQgPSB7DQo+ID4gKwkJCQkuY2FwYWJpbGl0eV9mbGFn cyA9DQo+ID4gKwkJCQkJCVJURV9CQkRFVl9NTERUU19SRVAsDQo+ID4gKwkJCQkubnVtX2J1ZmZl cnNfc3JjID0NCj4gPiArDQo+IAlSVEVfQkJERVZfTERQQ19NQVhfQ09ERV9CTE9DS1MsDQo+ID4g KwkJCQkubnVtX2J1ZmZlcnNfZHN0ID0NCj4gPiArDQo+IAlSVEVfQkJERVZfTERQQ19NQVhfQ09E RV9CTE9DS1MsDQo+IA0KPiBTYW1lIHF1ZXN0aW9uIGhlcmUsIHRoYXQgbG9va3Mgc3VzcGljaW91 cyBidXQgbWF5YmUgSSdtIHdyb25nLg0KPiANCj4gPiArCQkJfQ0KPiA+ICsJCX0sDQo+ID4gKwkJ UlRFX0JCREVWX0VORF9PRl9DQVBBQklMSVRJRVNfTElTVCgpDQo+ID4gKwl9Ow0KPiA+ICsNCj4g PiAgIAlzdGF0aWMgc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9jb25mIGRlZmF1bHRfcXVldWVfY29u ZjsNCj4gPiAgIAlkZWZhdWx0X3F1ZXVlX2NvbmYuc29ja2V0ID0gZGV2LT5kYXRhLT5zb2NrZXRf aWQ7DQo+ID4gICAJZGVmYXVsdF9xdWV1ZV9jb25mLnF1ZXVlX3NpemUgPSBBQ0NfTUFYX1FVRVVF X0RFUFRIOyBAQCAtDQo+IDExOTMsNw0KPiA+ICsxNDE5LDEwIEBAIHZyYl9kZXZfaW5mb19nZXQo c3RydWN0IHJ0ZV9iYmRldiAqZGV2LCBzdHJ1Y3QNCj4gcnRlX2JiZGV2X2RyaXZlcl9pbmZvICpk ZXZfaW5mbykNCj4gPiAgIAlkZXZfaW5mby0+ZGVmYXVsdF9xdWV1ZV9jb25mID0gZGVmYXVsdF9x dWV1ZV9jb25mOw0KPiA+ICAgCWRldl9pbmZvLT5jcHVfZmxhZ19yZXFzID0gTlVMTDsNCj4gPiAg IAlkZXZfaW5mby0+bWluX2FsaWdubWVudCA9IDE7DQo+ID4gLQlkZXZfaW5mby0+Y2FwYWJpbGl0 aWVzID0gdnJiMV9iYmRldl9jYXBhYmlsaXRpZXM7DQo+ID4gKwlpZiAoZC0+ZGV2aWNlX3Zhcmlh bnQgPT0gVlJCMV9WQVJJQU5UKQ0KPiA+ICsJCWRldl9pbmZvLT5jYXBhYmlsaXRpZXMgPSB2cmIx X2JiZGV2X2NhcGFiaWxpdGllczsNCj4gPiArCWVsc2UNCj4gPiArCQlkZXZfaW5mby0+Y2FwYWJp bGl0aWVzID0gdnJiMl9iYmRldl9jYXBhYmlsaXRpZXM7DQo+ID4gICAJZGV2X2luZm8tPmhhcnFf YnVmZmVyX3NpemUgPSAwOw0KPiA+DQo+ID4gICAJdnJiX2NoZWNrX2lyKGQpOw0KPiA+IEBAIC0x MjQyLDYgKzE0NzEsOSBAQCBzdGF0aWMgc3RydWN0IHJ0ZV9wY2lfaWQgcGNpX2lkX3ZyYl9wZl9t YXBbXSA9IHsNCj4gPiAgIAl7DQo+ID4gICAJCVJURV9QQ0lfREVWSUNFKFJURV9WUkIxX1ZFTkRP Ul9JRCwNCj4gUlRFX1ZSQjFfUEZfREVWSUNFX0lEKQ0KPiA+ICAgCX0sDQo+ID4gKwl7DQo+ID4g KwkJUlRFX1BDSV9ERVZJQ0UoUlRFX1ZSQjJfVkVORE9SX0lELA0KPiBSVEVfVlJCMl9QRl9ERVZJ Q0VfSUQpDQo+ID4gKwl9LA0KPiA+ICAgCXsuZGV2aWNlX2lkID0gMH0sDQo+ID4gICB9Ow0KPiA+ DQo+ID4gQEAgLTEyNTAsNiArMTQ4Miw5IEBAIHN0YXRpYyBzdHJ1Y3QgcnRlX3BjaV9pZCBwY2lf aWRfdnJiX3ZmX21hcFtdID0gew0KPiA+ICAgCXsNCj4gPiAgIAkJUlRFX1BDSV9ERVZJQ0UoUlRF X1ZSQjFfVkVORE9SX0lELA0KPiBSVEVfVlJCMV9WRl9ERVZJQ0VfSUQpDQo+ID4gICAJfSwNCj4g PiArCXsNCj4gPiArCQlSVEVfUENJX0RFVklDRShSVEVfVlJCMl9WRU5ET1JfSUQsDQo+IFJURV9W UkIyX1ZGX0RFVklDRV9JRCkNCj4gPiArCX0sDQo+ID4gICAJey5kZXZpY2VfaWQgPSAwfSwNCj4g PiAgIH07DQo+ID4NCj4gDQo+IEknbSBzdG9wcGluZyB0aGUgcmV2aWV3IGhlcmUgZm9yIG5vdy4N Cg0KVGhhbmtzIGV4cGVjdGluZyBhIHYzIHRoaXMgd2VlayBiYXNlZCBvbiB5b3VyIHN1Z2dlc3Rp b25zLiANCg0KPiANCj4gVGhhbmtzLA0KPiBNYXhpbWUNCg0K