From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 412B7C12002 for ; Mon, 19 Jul 2021 03:43:38 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5EEBC6101D for ; Mon, 19 Jul 2021 03:43:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5EEBC6101D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BF80C8033E; Mon, 19 Jul 2021 05:43:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="pGKX95SR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 77FE1800BF; Mon, 19 Jul 2021 03:41:18 +0200 (CEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0614.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::614]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4D3C480214 for ; Mon, 19 Jul 2021 03:41:09 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oN6cMB+vsZrmNwYVNyGdyhtHiTI2kXEZjuHtgpmBdpzQXeuMSgmD3k+jNAmJk9gHoLh7qYQTwmMx5qJl0qzCpJ95JDLZoCTOtrkoifeuXLd7Gz60LeOp2oh0l5WkrWiPh33AgaPl5ImnFHVajg1Vsr4fEBZo22S/Zvhvo3UKxCOfj8EQdHaT/E5n8Yfcroy/0wbonBoXjQGytRf32MIxFQ9AbAV0KoQvldRCyKbgg2/nir9+C8kMKx6kDNGMnjZeaV2cpps4qYSCdOk4iTG5Mn97Jlip/ZWUdQzPEzYC4uYlrlyh8s4wfPOjLNzwOHxGNQ6U9Vmf8YhibpLpoodIsQ== 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=h68ZLSS26wXnXRB20qHAa5RG03u3kiKe4xmxq7qFKGs=; b=DTCn1ZY2xm5LoSPybXmEdjmqND8hfmq+hpCUQpkUaTQP0vjNkRLBXywPmNz2Ai4qp0FF+ZHOj4QaudbWSoK2pUe6Ov/VKau74MqLJMNVx3RVIwwiWM4IUNTG8RqtO+xOknK0qpKHhH7rdSbHeIiXA9DFZurWGMBfpXQ3km/yji9p9o1f+cWT4ennYLgb7GmByulMMnWt+ktMay/aqbk9OeBjdq6kLJnqIlbKeVTrStnrlFRQSHfzu4qGf14L8hOYCnnq+dj74NGbCTsT9sU2rr0NaMm/TZr6ilG7TTiqLjq5tO/8G8+CYMS5G5qXu97b1JaV5OF0GIJMKcwF/6LXhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h68ZLSS26wXnXRB20qHAa5RG03u3kiKe4xmxq7qFKGs=; b=pGKX95SRSB4xoHJPoMXUXykDaxRI55TeJwuYFTtDQmZea0AUo8ZNn39jepUPpDdHdDrNEHccTwR+CxlIRjzO48n63UPhxg622tgH3umBk+TPmgbcb6sYrJ92IG2HEghxcF6jhGNbB2YDxyPT4xQz/CyZhd+qjdAmL9KQ2Eo8eN4= Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB8PR04MB7050.eurprd04.prod.outlook.com (2603:10a6:10:129::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21; Mon, 19 Jul 2021 01:41:07 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::c445:d742:eb76:86dd]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::c445:d742:eb76:86dd%9]) with mapi id 15.20.4331.032; Mon, 19 Jul 2021 01:41:07 +0000 From: Peng Fan To: Stefano Babic , "Peng Fan (OSS)" , "festevam@gmail.com" CC: dl-uboot-imx , "u-boot@lists.denx.de" , Ye Li Subject: RE: [PATCH V2 10/46] arm: imx8ulp: add container support Thread-Topic: [PATCH V2 10/46] arm: imx8ulp: add container support Thread-Index: AQHXbIppxH53NTlTNkyHrbcddxVLKatHO1iAgAJpp3A= Date: Mon, 19 Jul 2021 01:41:06 +0000 Message-ID: References: <20210629023240.22394-1-peng.fan@oss.nxp.com> <20210629023240.22394-11-peng.fan@oss.nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a945f734-7b0d-47d9-1378-08d94a56471b x-ms-traffictypediagnostic: DB8PR04MB7050: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3513; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: L2EjHaQo16zuIZiDBReneDDyE0w/v2giH+H+0OTVau2su1uSroZoGq/POXYJtHUwp3czsUb6Wv1kxUjoqiDwii7d8J746aJl6jI/J3Ppa1tRK/351qiBhGN4BMI+Hk6iICZlMX09bny0atztkuRstpnpZxkOZsn5N1wacTYTD9WIfb5/EpcAwky+Wht99nj+rd4BhA51YeTT9zTQ5na2IAMRNCexqxTAdpTxKU28DdZJPAp2bw1NAUoDTkBrIY+jH0H/OFJu8tWuwUpw4nGoRBk4MtmZ0/ZvhEWOsjNfFG4w40ynIakc4AcflXsWYeBAclMI8h99FNW4VYoLbWCwSR26DcZA5MgzDnkPIMnLNGQ8egr4TW//+31zYkpDEBhAHQjX4KQeyIHCz3WO3i2K54T4cwC17hxdqZb9URhnDusm9VPdaA31xhRqzZ8eDcpAn4Gt88aswzkcssrJ0WplZRmx4qQplcDEPhs3LZjMsvk5BxR1zMRgkwjOgfVhLhKfYvyY5gclw9NqBrBxA9P4KdkWFCZX4WUuWPriH/OzGZhPSZ/CwHJ1R/G+Y6UgooBUSwGp1mdcDrGwPGIz3V82dSCyEFRzoz4BfUJ1Ugd1WQ+QiyMxJAlw8QTo+y4CsaI61Y7Ok4sxLE5LWAjM9Wk9TNqH49poJTAPkjIVAdGOI893U4fa0Ane8NiAd2mw+1UBd49qNMlbm6DOE1nWrKU+QnG4mfjU9qzLjLU31m/x2rs= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(366004)(396003)(136003)(39860400002)(5660300002)(44832011)(30864003)(66476007)(66556008)(64756008)(66946007)(76116006)(52536014)(478600001)(66446008)(110136005)(316002)(8676002)(54906003)(33656002)(122000001)(38100700002)(71200400001)(8936002)(86362001)(186003)(53546011)(9686003)(7696005)(6506007)(26005)(2906002)(55016002)(83380400001)(4326008)(32563001)(38070700004)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VzN0QzBpZFl1UU4zWXZQS0xoZ3RSVElhQzdNUFpMcUhFVlR1dTdRcGpNU2pT?= =?utf-8?B?T25kWlVVeXhlQ2t3ZE1xdXlCODdqY0RYUGU0UEtGdlFyZTcxcXB0SzVRUHRj?= =?utf-8?B?dHB1ZWtOV3VZOVAydzE2VkFkNVU4ZVhrckVoN09tNnJUQXJzb0NVTHBHclRH?= =?utf-8?B?eDdER3UxMlR5TjNFc3RHaUNTdVg2MzhvQ3hHdkhkckt6SUJwdEFMMW1SemNM?= =?utf-8?B?UGszdEFiTUVCQmVrb1hoYTRoTFZGYnNjVHFPd1NqYnpTTTNkc2RkWFdrMGhS?= =?utf-8?B?KytWaDV4aTVvTE5VNEFWUll0YTVxZ01TL0d0dU5mNEp6OW5SNVcwbXFlMWRt?= =?utf-8?B?K2dPMWlmSzdpcHFWZlhhcFU5SktkQ0Z3QkJ2THhkNGpRaTlKN3BhY2FOaXE1?= =?utf-8?B?bmszY0ZicXhINWJlMERNZmhkSzBSTzhpdnNYTW40YjVidmoxSWJaTTRTSGJa?= =?utf-8?B?NzFoV1RGbTVaNi9FWEF1a2ZIRmhZRitSNmlyeVBlOFd5ZFhkYmtkaTc0UUo3?= =?utf-8?B?S3ZwRU9udDNoU0xocS9JYllmNUZDSmYzTExxVTkyTkhNcHVEc1Vpd2xCM3pH?= =?utf-8?B?MFNLaVB5elYvL1gyaVRBdnJEeXd2QU56Rnd4SzJaU25TUXppTHRBQXJ2UitC?= =?utf-8?B?QjZZdFFKSkRHaWY2TlFISDVqYytweWl4NHhZSXdMbzhWNy9wM3JSeEdSNmZu?= =?utf-8?B?Uy96dTl0c1d1enFBS1h6c2U4cElaWXdwVFhuanNVOUtVWUJHMmpIL2ZvcVIv?= =?utf-8?B?WVRoUVVneGRydXJtYjJET0t5Q1QxalBGKzVEZ3Fra3RRVDF3dWlqd0FwOVUy?= =?utf-8?B?RFVzcFpWM0I0S3RRQ1kvSjk5aWNXSXVjblNOVDdsNUJWcXFpRVRVNHUrQ3Mx?= =?utf-8?B?UjVQdFQ5eU5BQjlBRVBGNXB2eHlFUmFpajQzTDI5VEJ1OG43SE4wRCtVMkZJ?= =?utf-8?B?Q0dMS3VJeG9tTVRDeEhZeFJxSnk0dTEzTm9XRU81S2lXQ1Vla0JKMDZockJF?= =?utf-8?B?bWE0dk1VblNiSDdFc0Qzc1MxVUxUYnZHY0RIY2xwdmNQRlNBekQwMWNpSndK?= =?utf-8?B?RVN1cGMyTWhWWmxINnhZbHBlNm1tbjE5eDd1dmpSVUUzaEtteGhYYWcrSngv?= =?utf-8?B?MFBTc1hIZnJIeDJMUTRJVE51MG9TTkFuSWs4NWxlWjlLVTRXRHFDK1JEZWhL?= =?utf-8?B?U0QvbHYwckx4dE9CUmRnWHhxa3FkQm9iUTdvZTd3SXZPaHYvZ2F0S2ZVWDFO?= =?utf-8?B?U3IyekxjMCszaXVzU3JybVQ2M1FCL1E1SW5uVmsrT0N1b2hIQ241bzF5bE14?= =?utf-8?B?SzhIOGRPR2RUSXRac2NGWGlNQnE4amdjamx4Y3BiV0pFa2NVMHl2cTRGczhr?= =?utf-8?B?QncrcFJFak1SR29GRG5SaDc1eG9BNGtXYjd3SnJGckRkbWNRUERWdGdpVmpU?= =?utf-8?B?MENOajdvK2U4Rm5yT080NWRjYlFudVVDM0J4Q1ZiYndaN2NjalRWSk9SMW9H?= =?utf-8?B?SnpZU1RtZnU4MytrdGIwTC9tbHVVVjdxRXhzSW5PRzJob00xSzNVNjNqTjhs?= =?utf-8?B?NTU4Z0RiVjhlRUFZSFRtU1pMZ3AzaEh4ZUVKd1NVOFVZc0JCRE1XbENNREww?= =?utf-8?B?eEhibVpnbVo5ZGhMMUtqaU56MmFKazJOT0xyT21qckorWnRLTDdhN2Y5VFRX?= =?utf-8?B?KzZ6SHNEdE1lSzgrdWVDaUpUTEhjNjVjYjRId3ljbGM2SGpPK2dxSUJHS3l6?= =?utf-8?Q?lYtwV7KJEXmoJQuY8Nsm1ec/F4NchKLfRjX1OtF?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a945f734-7b0d-47d9-1378-08d94a56471b X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2021 01:41:06.8966 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: P0toGVPO2sS/7+5To8FlOtb0P6bR4cwreV/+ogoycjl/g3zH5ihHYYXbvO6OyIh+pIrSjGDsJGuUW9Hjm9P4QA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7050 X-Mailman-Approved-At: Mon, 19 Jul 2021 05:43:33 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean SGkgU3RlZmFubywNCg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIFYyIDEwLzQ2XSBhcm06IGlteDh1 bHA6IGFkZCBjb250YWluZXIgc3VwcG9ydA0KPiANCj4gSGkgcGVuZywgWWUsDQo+IA0KPiBPbiAy OS4wNi4yMSAwNDozMiwgUGVuZyBGYW4gKE9TUykgd3JvdGU6DQo+ID4gRnJvbTogWWUgTGkgPHll LmxpQG54cC5jb20+DQo+ID4NCj4gPiBpLk1YOFVMUCBzdXBwb3J0IHVzaW5nIFJPTSBBUEkgdG8g bG9hZCBjb250YWluZXIgaW1hZ2UsIGl0IHVzZSBzYW1lDQo+ID4gUk9NIEFQSSBhcyBpLk1YOE1O L01QLCBhbmQgdXNlIHNhbWUgY29udGFpbmVyIGZvcm1hdCBhcw0KPiBpLk1YOFFNL1FYUC4NCj4g Pg0KPiA+IFNpZ25lZC1vZmYtYnk6IFllIExpIDx5ZS5saUBueHAuY29tPg0KPiA+IFNpZ25lZC1v ZmYtYnk6IFBlbmcgRmFuIDxwZW5nLmZhbkBueHAuY29tPg0KPiA+IC0tLQ0KPiA+ICAgYXJjaC9h cm0vaW5jbHVkZS9hc20vYXJjaC1pbXg4dWxwL3N5c19wcm90by5oIHwgICAyICsNCj4gPiAgIGFy Y2gvYXJtL2luY2x1ZGUvYXNtL21hY2gtaW14L2ltYWdlLmggICAgICAgICB8ICAgMiArDQo+ID4g ICBhcmNoL2FybS9pbmNsdWRlL2FzbS9tYWNoLWlteC9zeXNfcHJvdG8uaCAgICAgfCAgIDIgKy0N Cj4gPiAgIGFyY2gvYXJtL21hY2gtaW14L0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQ0KPiA+ICAgYXJjaC9hcm0vbWFjaC1pbXgvaW1hZ2UtY29udGFpbmVyLmMgICAgICAgICAg IHwgIDQyICsrKystDQo+ID4gICBhcmNoL2FybS9tYWNoLWlteC9pbXg4dWxwL3NvYy5jICAgICAg ICAgICAgICAgfCAgIDIgKw0KPiA+ICAgYXJjaC9hcm0vbWFjaC1pbXgvc3BsX2lteF9yb21hcGku YyAgICAgICAgICAgIHwgMTcyDQo+ICsrKysrKysrKysrKysrLS0tLQ0KPiA+ICAgNyBmaWxlcyBj aGFuZ2VkLCAxNzcgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJjaC1pbXg4dWxwL3N5c19wcm90by5oDQo+ ID4gYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcmNoLWlteDh1bHAvc3lzX3Byb3RvLmgNCj4gPiBp bmRleCA4ODk0NjExYTBmLi5hOGY2MzJmNDVlIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL2FyY2gtaW14OHVscC9zeXNfcHJvdG8uaA0KPiA+ICsrKyBiL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL2FyY2gtaW14OHVscC9zeXNfcHJvdG8uaA0KPiA+IEBAIC0xMCw1ICsxMCw3IEBA DQo+ID4NCj4gDQo+IFRoaXMgYnJlYWtzIGFmdGVyIGJpc2VjdGluZyBhbGwgbXg4bW4gYm9hcmRz LiBGb3IgZXhhbXBsZToNCj4gDQo+ICAgICBhYXJjaDY0OiAgKyAgIGlteDhtbl9iZWFjb25fMmcN Cj4gK2FyY2gvYXJtL21hY2gtaW14L2lteDh1bHAvS2NvbmZpZzoxMDp3YXJuaW5nOiBjb25maWcg c3ltYm9sIGRlZmluZWQNCj4gd2l0aG91dCB0eXBlDQo+ICs9PT09PT09PT09PT09PT09PT09PT0g V0FSTklORyA9PT09PT09PT09PT09PT09PT09PT09IFRoaXMgYm9hcmQNCj4gdXNlcw0KPiArQ09O RklHX1NQTF9GSVRfR0VORVJBVE9SLiBQbGVhc2UgbWlncmF0ZSB0byBiaW5tYW4gaW5zdGVhZCwg dG8gYXZvaWQNCj4gK3RoZSBwcm9saWZlcmF0aW9uIG9mIGFyY2gtc3BlY2lmaWMgc2NyaXB0cyB3 aXRoIG5vIHRlc3RzLg0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KPiArV0FSTklORyAnbHBkZHI0X3BtdV90cmFpbl8xZF9pbWVtLmJpbicg bm90IGZvdW5kLCByZXN1bHRpbmcgYmluYXJ5IGlzDQo+IG5vdC1mdW5jdGlvbmFsDQo+ICthcmNo L2FybS9tYWNoLWlteC9zcGxfaW14X3JvbWFwaS5jOiBJbiBmdW5jdGlvbg0KPiAnc3BsX3JvbWFw aV9sb2FkX2ltYWdlX3N0cmVhbSc6DQo+ICthcmNoL2FybS9tYWNoLWlteC9zcGxfaW14X3JvbWFw aS5jOjM1Mjo1OiBlcnJvcjogbHZhbHVlIHJlcXVpcmVkIGFzDQo+IGxlZnQgb3BlcmFuZCBvZiBh c3NpZ25tZW50DQo+ICsgIDM1MiB8ICBnZCA9IHBnZDsNCg0KSSBmb3Jnb3QgdG8gcmVwbGFjZSB0 aGlzLg0KDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvc3BsX2lteF9yb21hcGkuYyBi L2FyY2gvYXJtL21hY2gtaW14L3NwbF9pbXhfcm9tYXBpLmMNCmluZGV4IDU2NGNjNDAwYzEuLjE3 YzM1Y2VkMTMgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9zcGxfaW14X3JvbWFwaS5j DQorKysgYi9hcmNoL2FybS9tYWNoLWlteC9zcGxfaW14X3JvbWFwaS5jDQpAQCAtMzQ5LDcgKzM0 OSw3IEBAIHN0YXRpYyBpbnQgc3BsX3JvbWFwaV9sb2FkX2ltYWdlX3N0cmVhbShzdHJ1Y3Qgc3Bs X2ltYWdlX2luZm8gKnNwbF9pbWFnZSwNCg0KICAgICAgICByZXQgPSBnX3JvbV9hcGktPmRvd25s b2FkX2ltYWdlKHAsIDAsIGltYWdlc2l6ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoKHVpbnRwdHJfdClwKSBeIGltYWdlc2l6ZSk7DQotICAgICAgIGdkID0gcGdk Ow0KKyAgICAgICBzZXRfZ2QocGdkKTsNCiAgICAgICAgaWYgKHJldCAhPSBST01fQVBJX09LQVkp DQogICAgICAgICAgICAgICAgcHJpbnRmKCJST00gZG93bmxvYWQgZmFpbHVyZSAlZFxuIiwgaW1h Z2VzaXplKTsNCg0KSSdsbCByZWJhc2UsIHJ1biB0aGUgYnVpbGRtYW4gYW5kIHJlcG9zdC4NCg0K VGhhbmtzLA0KUGVuZy4NCg0KDQo+ICsgICAgICB8ICAgICBeDQo+ICttYWtlWzJdOiAqKiogW3Nj cmlwdHMvTWFrZWZpbGUuYnVpbGQ6MjY2Og0KPiBhcmNoL2FybS9tYWNoLWlteC9zcGxfaW14X3Jv bWFwaS5vXSBFcnJvciAxDQo+ICttYWtlWzFdOiAqKiogW01ha2VmaWxlOjE4MTU6IGFyY2gvYXJt L21hY2gtaW14XSBFcnJvciAyDQo+ICttYWtlOiAqKiogW01ha2VmaWxlOjE3MTogc3ViLW1ha2Vd IEVycm9yIDINCj4gDQo+IFBlbmcsIGluIHRoZSBzZXJpZXMgdGhlcmUgYXJlIDIgcGF0Y2hlcyBy ZWxhdGVkIHRvIGkuTVg3VUxQIHRoYXQgYXJlIHVucmVsYXRlZA0KPiB0byB0aGUgb2JqZWN0IHRo aXMgc2VyaWVzLiBJIGFtIHRha2luZyB0aGVtIG91dCBhbmQgYXBwbHlpbmcgdG8gLW1hc3Rlciwg eW91IGRvDQo+IG5vdCBuZWVkIHRvIHJlcG9zdCB0aGVtLg0KPiANCj4gSSBoYXZlIGNoZWNrZWQg aWYgSSBjYW4gIGFwcGx5IHNvbWUgb2YgdGhlIHBhdGNoZXMgaGVyZSwgYnV0IGl0IGJlY29tZXMg YQ0KPiBtZXNzIGlmIEkgZG8uIFNvIHBsZWFzZSByZXBvc3QgdGhlbSBhZnRlciBmaXhpbmcgdGhp cy4NCj4gDQo+IEJlc3QgcmVnYXJkcywNCj4gU3RlZmFubw0KPiANCj4gPiAgIGV4dGVybiB1bnNp Z25lZCBsb25nIHJvbV9wb2ludGVyW107DQo+ID4NCj4gPiArdWxvbmcgc3BsX3JvbWFwaV9yYXdf c2Vla2FibGVfcmVhZCh1MzIgb2Zmc2V0LCB1MzIgc2l6ZSwgdm9pZCAqYnVmKTsNCj4gPiArdWxv bmcgc3BsX3JvbWFwaV9nZXRfdWJvb3RfYmFzZSh1MzIgaW1hZ2Vfb2Zmc2V0LCB1MzIgcm9tX2J0 X2Rldik7DQo+ID4gICBlbnVtIGJ0X21vZGUgZ2V0X2Jvb3RfbW9kZSh2b2lkKTsNCj4gPiAgICNl bmRpZg0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9tYWNoLWlteC9pbWFn ZS5oDQo+ID4gYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tYWNoLWlteC9pbWFnZS5oDQo+ID4gaW5k ZXggNTQ3YmVlYjk4Ni4uZWU2N2NhOTZmNCAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybS9pbmNs dWRlL2FzbS9tYWNoLWlteC9pbWFnZS5oDQo+ID4gKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20v bWFjaC1pbXgvaW1hZ2UuaA0KPiA+IEBAIC02NCw0ICs2NCw2IEBAIHN0cnVjdCBnZW5lcmF0ZV9r ZXlfYmxvYl9oZHIgew0KPiA+ICAgCXU4IGFsZ29yaXRobTsNCj4gPiAgIAl1OCBtb2RlOw0KPiA+ ICAgfSBfX3BhY2tlZDsNCj4gPiArDQo+ID4gK2ludCBnZXRfY29udGFpbmVyX3NpemUodWxvbmcg YWRkciwgdTE2ICpoZWFkZXJfbGVuZ3RoKTsNCj4gPiAgICNlbmRpZg0KPiA+IGRpZmYgLS1naXQg YS9hcmNoL2FybS9pbmNsdWRlL2FzbS9tYWNoLWlteC9zeXNfcHJvdG8uaA0KPiA+IGIvYXJjaC9h cm0vaW5jbHVkZS9hc20vbWFjaC1pbXgvc3lzX3Byb3RvLmgNCj4gPiBpbmRleCBlM2VlNThjOWY4 Li40NDQ4MzQ5OTVlIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21hY2gt aW14L3N5c19wcm90by5oDQo+ID4gKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vbWFjaC1pbXgv c3lzX3Byb3RvLmgNCj4gPiBAQCAtMTQ1LDcgKzE0NSw3IEBAIHN0cnVjdCBycHJvY19hdHQgew0K PiA+ICAgCXUzMiBzaXplOyAvKiBzaXplIG9mIHJlZyByYW5nZSAqLw0KPiA+ICAgfTsNCj4gPg0K PiA+IC0jaWZkZWYgQ09ORklHX0lNWDhNDQo+ID4gKyNpZiBkZWZpbmVkKENPTkZJR19JTVg4TSkg fHwgZGVmaW5lZChDT05GSUdfSU1YOFVMUCkNCj4gPiAgIHN0cnVjdCByb21fYXBpIHsNCj4gPiAg IAl1MTYgdmVyOw0KPiA+ICAgCXUxNiB0YWc7DQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21h Y2gtaW14L0tjb25maWcgYi9hcmNoL2FybS9tYWNoLWlteC9LY29uZmlnDQo+ID4gaW5kZXggMjZi ZmM1Y2NjNC4uYzA4OTY2NDM3NSAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybS9tYWNoLWlteC9L Y29uZmlnDQo+ID4gKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZw0KPiA+IEBAIC0xNjEs NyArMTYxLDcgQEAgY29uZmlnIEREUk1DX1ZGNjEwX0NBTElCUkFUSU9ODQo+ID4NCj4gPiAgIGNv bmZpZyBTUExfSU1YX1JPTUFQSV9MT0FEQUREUg0KPiA+ICAgCWhleCAiRGVmYXVsdCBsb2FkIGFk ZHJlc3MgdG8gbG9hZCBpbWFnZSB0aHJvdWdoIFJPTSBBUEkiDQo+ID4gLQlkZXBlbmRzIG9uIElN WDhNTiB8fCBJTVg4TVANCj4gPiArCWRlcGVuZHMgb24gSU1YOE1OIHx8IElNWDhNUCB8fCBJTVg4 VUxQDQo+ID4NCj4gPiAgIGNvbmZpZyBJTVhfRENEX0FERFINCj4gPiAgIAloZXggIkRDRCBCbG9j a3MgbG9jYXRpb24gb24gdGhlIGltYWdlIg0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LWlteC9pbWFnZS1jb250YWluZXIuYw0KPiA+IGIvYXJjaC9hcm0vbWFjaC1pbXgvaW1hZ2UtY29u dGFpbmVyLmMNCj4gPiBpbmRleCA5ZTE4ZjY2MzBmLi5jM2Y2Mjg3MmM2IDEwMDY0NA0KPiA+IC0t LSBhL2FyY2gvYXJtL21hY2gtaW14L2ltYWdlLWNvbnRhaW5lci5jDQo+ID4gKysrIGIvYXJjaC9h cm0vbWFjaC1pbXgvaW1hZ2UtY29udGFpbmVyLmMNCj4gPiBAQCAtMTksOCArMTksOSBAQA0KPiA+ ICAgI2RlZmluZSBRU1BJX0RFVgkxDQo+ID4gICAjZGVmaW5lIE5BTkRfREVWCTINCj4gPiAgICNk ZWZpbmUgUVNQSV9OT1JfREVWCTMNCj4gPiArI2RlZmluZSBST01fQVBJX0RFVgk0DQo+ID4NCj4g PiAtc3RhdGljIGludCBfX2dldF9jb250YWluZXJfc2l6ZSh1bG9uZyBhZGRyKQ0KPiA+ICtpbnQg Z2V0X2NvbnRhaW5lcl9zaXplKHVsb25nIGFkZHIsIHUxNiAqaGVhZGVyX2xlbmd0aCkNCj4gPiAg IHsNCj4gPiAgIAlzdHJ1Y3QgY29udGFpbmVyX2hkciAqcGhkcjsNCj4gPiAgIAlzdHJ1Y3QgYm9v dF9pbWdfdCAqaW1nX2VudHJ5Ow0KPiA+IEBAIC0zNCw3ICszNSw5IEBAIHN0YXRpYyBpbnQgX19n ZXRfY29udGFpbmVyX3NpemUodWxvbmcgYWRkcikNCj4gPiAgIAkJcmV0dXJuIC1FRkFVTFQ7DQo+ ID4gICAJfQ0KPiA+DQo+ID4gLQltYXhfb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBjb250YWluZXJf aGRyKTsNCj4gPiArCW1heF9vZmZzZXQgPSBwaGRyLT5sZW5ndGhfbHNiICsgKHBoZHItPmxlbmd0 aF9tc2IgPDwgOCk7DQo+ID4gKwlpZiAoaGVhZGVyX2xlbmd0aCkNCj4gPiArCQkqaGVhZGVyX2xl bmd0aCA9IG1heF9vZmZzZXQ7DQo+ID4NCj4gPiAgIAlpbWdfZW50cnkgPSAoc3RydWN0IGJvb3Rf aW1nX3QgKikoYWRkciArIHNpemVvZihzdHJ1Y3QNCj4gY29udGFpbmVyX2hkcikpOw0KPiA+ICAg CWZvciAoaSA9IDA7IGkgPCBwaGRyLT5udW1faW1hZ2VzOyBpKyspIHsgQEAgLTYwLDcgKzYzLDcg QEAgc3RhdGljDQo+ID4gaW50IF9fZ2V0X2NvbnRhaW5lcl9zaXplKHVsb25nIGFkZHIpDQo+ID4g ICAJcmV0dXJuIG1heF9vZmZzZXQ7DQo+ID4gICB9DQo+ID4NCj4gPiAtc3RhdGljIGludCBnZXRf Y29udGFpbmVyX3NpemUodm9pZCAqZGV2LCBpbnQgZGV2X3R5cGUsIHVuc2lnbmVkIGxvbmcNCj4g PiBvZmZzZXQpDQo+ID4gK3N0YXRpYyBpbnQgZ2V0X2Rldl9jb250YWluZXJfc2l6ZSh2b2lkICpk ZXYsIGludCBkZXZfdHlwZSwgdW5zaWduZWQNCj4gPiArbG9uZyBvZmZzZXQsIHUxNiAqaGVhZGVy X2xlbmd0aCkNCj4gPiAgIHsNCj4gPiAgIAl1OCAqYnVmID0gbWFsbG9jKENPTlRBSU5FUl9IRFJf QUxJR05NRU5UKTsNCj4gPiAgIAlpbnQgcmV0ID0gMDsNCj4gPiBAQCAtMTE1LDcgKzExOCwxNyBA QCBzdGF0aWMgaW50IGdldF9jb250YWluZXJfc2l6ZSh2b2lkICpkZXYsIGludA0KPiBkZXZfdHlw ZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpDQo+ID4gICAJCW1lbWNweShidWYsIChjb25zdCB2b2lk ICopb2Zmc2V0LA0KPiBDT05UQUlORVJfSERSX0FMSUdOTUVOVCk7DQo+ID4gICAjZW5kaWYNCj4g Pg0KPiA+IC0JcmV0ID0gX19nZXRfY29udGFpbmVyX3NpemUoKHVsb25nKWJ1Zik7DQo+ID4gKyNp ZmRlZiBDT05GSUdfU1BMX0JPT1RST01fU1VQUE9SVA0KPiA+ICsJaWYgKGRldl90eXBlID09IFJP TV9BUElfREVWKSB7DQo+ID4gKwkJcmV0ID0gc3BsX3JvbWFwaV9yYXdfc2Vla2FibGVfcmVhZChv ZmZzZXQsDQo+IENPTlRBSU5FUl9IRFJfQUxJR05NRU5ULCBidWYpOw0KPiA+ICsJCWlmICghcmV0 KSB7DQo+ID4gKwkJCXByaW50ZigiUmVhZCBjb250YWluZXIgaW1hZ2UgZnJvbSBST00gQVBJIGZh aWxlZFxuIik7DQo+ID4gKwkJCXJldHVybiAtRUlPOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4gPiAr I2VuZGlmDQo+ID4gKw0KPiA+ICsJcmV0ID0gZ2V0X2NvbnRhaW5lcl9zaXplKCh1bG9uZylidWYs IGhlYWRlcl9sZW5ndGgpOw0KPiA+DQo+ID4gICAJZnJlZShidWYpOw0KPiA+DQo+ID4gQEAgLTE0 OSw2ICsxNjIsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfYm9vdF9kZXZpY2Vfb2Zmc2V0 KHZvaWQNCj4gKmRldiwgaW50IGRldl90eXBlKQ0KPiA+ICAgCQlvZmZzZXQgPSBDT05UQUlORVJf SERSX05BTkRfT0ZGU0VUOw0KPiA+ICAgCX0gZWxzZSBpZiAoZGV2X3R5cGUgPT0gUVNQSV9OT1Jf REVWKSB7DQo+ID4gICAJCW9mZnNldCA9IENPTlRBSU5FUl9IRFJfUVNQSV9PRkZTRVQgKyAweDA4 MDAwMDAwOw0KPiA+ICsJfSBlbHNlIGlmIChkZXZfdHlwZSA9PSBST01fQVBJX0RFVikgew0KPiA+ ICsJCW9mZnNldCA9ICh1bnNpZ25lZCBsb25nKWRldjsNCj4gPiAgIAl9DQo+ID4NCj4gPiAgIAly ZXR1cm4gb2Zmc2V0Ow0KPiA+IEBAIC0xNTgsMTEgKzE3MywxMiBAQCBzdGF0aWMgaW50IGdldF9p bWFnZXNldF9lbmQodm9pZCAqZGV2LCBpbnQNCj4gZGV2X3R5cGUpDQo+ID4gICB7DQo+ID4gICAJ dW5zaWduZWQgbG9uZyBvZmZzZXQxID0gMCwgb2Zmc2V0MiA9IDA7DQo+ID4gICAJaW50IHZhbHVl X2NvbnRhaW5lclsyXTsNCj4gPiArCXUxNiBoZHJfbGVuZ3RoOw0KPiA+DQo+ID4gICAJb2Zmc2V0 MSA9IGdldF9ib290X2RldmljZV9vZmZzZXQoZGV2LCBkZXZfdHlwZSk7DQo+ID4gICAJb2Zmc2V0 MiA9IENPTlRBSU5FUl9IRFJfQUxJR05NRU5UICsgb2Zmc2V0MTsNCj4gPg0KPiA+IC0JdmFsdWVf Y29udGFpbmVyWzBdID0gZ2V0X2NvbnRhaW5lcl9zaXplKGRldiwgZGV2X3R5cGUsIG9mZnNldDEp Ow0KPiA+ICsJdmFsdWVfY29udGFpbmVyWzBdID0gZ2V0X2Rldl9jb250YWluZXJfc2l6ZShkZXYs IGRldl90eXBlLCBvZmZzZXQxLA0KPiA+ICsmaGRyX2xlbmd0aCk7DQo+ID4gICAJaWYgKHZhbHVl X2NvbnRhaW5lclswXSA8IDApIHsNCj4gPiAgIAkJcHJpbnRmKCJQYXJzZSBzZWNvIGNvbnRhaW5l ciBmYWlsZWQgJWRcbiIsIHZhbHVlX2NvbnRhaW5lclswXSk7DQo+ID4gICAJCXJldHVybiB2YWx1 ZV9jb250YWluZXJbMF07DQo+ID4gQEAgLTE3MCw3ICsxODYsNyBAQCBzdGF0aWMgaW50IGdldF9p bWFnZXNldF9lbmQodm9pZCAqZGV2LCBpbnQNCj4gPiBkZXZfdHlwZSkNCj4gPg0KPiA+ICAgCWRl YnVnKCJzZWNvIGNvbnRhaW5lciBzaXplIDB4JXhcbiIsIHZhbHVlX2NvbnRhaW5lclswXSk7DQo+ ID4NCj4gPiAtCXZhbHVlX2NvbnRhaW5lclsxXSA9IGdldF9jb250YWluZXJfc2l6ZShkZXYsIGRl dl90eXBlLCBvZmZzZXQyKTsNCj4gPiArCXZhbHVlX2NvbnRhaW5lclsxXSA9IGdldF9kZXZfY29u dGFpbmVyX3NpemUoZGV2LCBkZXZfdHlwZSwgb2Zmc2V0MiwNCj4gPiArJmhkcl9sZW5ndGgpOw0K PiA+ICAgCWlmICh2YWx1ZV9jb250YWluZXJbMV0gPCAwKSB7DQo+ID4gICAJCWRlYnVnKCJQYXJz ZSBzY3UgY29udGFpbmVyIGZhaWxlZCAlZCwgb25seSBzZWNvIGNvbnRhaW5lclxuIiwNCj4gPiAg IAkJICAgICAgdmFsdWVfY29udGFpbmVyWzFdKTsNCj4gPiBAQCAtMjQ3LDMgKzI2MywxNyBAQCB1 bnNpZ25lZCBsb25nIHNwbF9ub3JfZ2V0X3Vib290X2Jhc2Uodm9pZCkNCj4gPiAgIAlyZXR1cm4g ZW5kOw0KPiA+ICAgfQ0KPiA+ICAgI2VuZGlmDQo+ID4gKw0KPiA+ICsjaWZkZWYgQ09ORklHX1NQ TF9CT09UUk9NX1NVUFBPUlQNCj4gPiArdWxvbmcgc3BsX3JvbWFwaV9nZXRfdWJvb3RfYmFzZSh1 MzIgaW1hZ2Vfb2Zmc2V0LCB1MzIgcm9tX2J0X2Rldikgew0KPiA+ICsJdWxvbmcgZW5kOw0KPiA+ ICsNCj4gPiArCWVuZCA9IGdldF9pbWFnZXNldF9lbmQoKHZvaWQgKikodWxvbmcpaW1hZ2Vfb2Zm c2V0LCBST01fQVBJX0RFVik7DQo+ID4gKwllbmQgPSBST1VORChlbmQsIFNaXzFLKTsNCj4gPiAr DQo+ID4gKwlwcmludGYoIkxvYWQgaW1hZ2UgZnJvbSAweCVseCBieSBST01fQVBJXG4iLCBlbmQp Ow0KPiA+ICsNCj4gPiArCXJldHVybiBlbmQ7DQo+ID4gK30NCj4gPiArI2VuZGlmDQo+ID4gZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2lteDh1bHAvc29jLmMNCj4gPiBiL2FyY2gvYXJt L21hY2gtaW14L2lteDh1bHAvc29jLmMgaW5kZXggZjE0YzZiNDIxYS4uMzAyOTU4OWQ1Zg0KPiAx MDA2NDQNCj4gPiAtLS0gYS9hcmNoL2FybS9tYWNoLWlteC9pbXg4dWxwL3NvYy5jDQo+ID4gKysr IGIvYXJjaC9hcm0vbWFjaC1pbXgvaW14OHVscC9zb2MuYw0KPiA+IEBAIC0xMiw2ICsxMiw4IEBA DQo+ID4NCj4gPiAgIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOw0KPiA+DQo+ID4gK3N0cnVjdCBy b21fYXBpICpnX3JvbV9hcGkgPSAoc3RydWN0IHJvbV9hcGkgKikweDE5ODA7DQo+ID4gKw0KPiA+ ICAgdTMyIGdldF9jcHVfcmV2KHZvaWQpDQo+ID4gICB7DQo+ID4gICAJcmV0dXJuIChNWENfQ1BV X0lNWDhVTFAgPDwgMTIpIHwgQ0hJUF9SRVZfMV8wOyBkaWZmIC0tZ2l0DQo+ID4gYS9hcmNoL2Fy bS9tYWNoLWlteC9zcGxfaW14X3JvbWFwaS5jDQo+ID4gYi9hcmNoL2FybS9tYWNoLWlteC9zcGxf aW14X3JvbWFwaS5jDQo+ID4gaW5kZXggZDIwODVkYWJkMy4uNTY0Y2M0MDBjMSAxMDA2NDQNCj4g PiAtLS0gYS9hcmNoL2FybS9tYWNoLWlteC9zcGxfaW14X3JvbWFwaS5jDQo+ID4gKysrIGIvYXJj aC9hcm0vbWFjaC1pbXgvc3BsX2lteF9yb21hcGkuYw0KPiA+IEBAIC0xMCwxMSArMTAsNDQgQEAN Cj4gPiAgICNpbmNsdWRlIDxhc20vZ2xvYmFsX2RhdGEuaD4NCj4gPiAgICNpbmNsdWRlIDxsaW51 eC9saWJmZHQuaD4NCj4gPiAgICNpbmNsdWRlIDxzcGwuaD4NCj4gPiAtDQo+ID4gKyNpbmNsdWRl IDxhc20vbWFjaC1pbXgvaW1hZ2UuaD4NCj4gPiAgICNpbmNsdWRlIDxhc20vYXJjaC9zeXNfcHJv dG8uaD4NCj4gPg0KPiA+ICAgREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7DQo+ID4NCj4gPiArLyog Q2FsbGVyIG5lZWQgZW5zdXJlIHRoZSBvZmZzZXQgYW5kIHNpemUgdG8gYWxpZ24gd2l0aCBwYWdl IHNpemUgKi8NCj4gPiArdWxvbmcgc3BsX3JvbWFwaV9yYXdfc2Vla2FibGVfcmVhZCh1MzIgb2Zm c2V0LCB1MzIgc2l6ZSwgdm9pZCAqYnVmKSB7DQo+ID4gKwl2b2xhdGlsZSBnZF90ICpwZ2QgPSBn ZDsNCj4gPiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJZGVidWcoIiVzIDB4JXgsIHNpemUgMHgl eFxuIiwgX19mdW5jX18sIG9mZnNldCwgc2l6ZSk7DQo+ID4gKw0KPiA+ICsJcmV0ID0gZ19yb21f YXBpLT5kb3dubG9hZF9pbWFnZShidWYsIG9mZnNldCwgc2l6ZSwNCj4gPiArCQkJCQkoKHVpbnRw dHJfdClidWYpIF4gb2Zmc2V0IF4gc2l6ZSk7DQo+ID4gKw0KPiA+ICsJc2V0X2dkKHBnZCk7DQo+ ID4gKw0KPiA+ICsJaWYgKHJldCA9PSBST01fQVBJX09LQVkpDQo+ID4gKwkJcmV0dXJuIHNpemU7 DQo+ID4gKw0KPiA+ICsJcHJpbnRmKCIlcyBGYWlsdXJlIHdoZW4gbG9hZCAweCV4LCBzaXplIDB4 JXhcbiIsIF9fZnVuY19fLCBvZmZzZXQsDQo+ID4gK3NpemUpOw0KPiA+ICsNCj4gPiArCXJldHVy biAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt1bG9uZyBfX3dlYWsgc3BsX3JvbWFwaV9nZXRfdWJv b3RfYmFzZSh1MzIgaW1hZ2Vfb2Zmc2V0LCB1MzINCj4gPiArcm9tX2J0X2Rldikgew0KPiA+ICsJ dTMyIG9mZnNldDsNCj4gPiArDQo+ID4gKwlpZiAoKChyb21fYnRfZGV2ID4+IDE2KSAmIDB4ZmYp ID09ICBCVF9ERVZfVFlQRV9GTEVYU1BJTk9SKQ0KPiA+ICsJCW9mZnNldCA9IENPTkZJR19TWVNf TU1DU0RfUkFXX01PREVfVV9CT09UX1NFQ1RPUiAqDQo+IDUxMjsNCj4gPiArCWVsc2UNCj4gPiAr CQlvZmZzZXQgPSBpbWFnZV9vZmZzZXQgKw0KPiBDT05GSUdfU1lTX01NQ1NEX1JBV19NT0RFX1Vf Qk9PVF9TRUNUT1IgKg0KPiA+ICs1MTIgLSAweDgwMDA7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIG9m ZnNldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgIHN0YXRpYyBpbnQgaXNfYm9vdF9mcm9tX3N0cmVh bV9kZXZpY2UodTMyIGJvb3QpDQo+ID4gICB7DQo+ID4gICAJdTMyIGludGVyZmFjZTsNCj4gPiBA QCAtMzQsMjUgKzY3LDEyIEBAIHN0YXRpYyB1bG9uZyBzcGxfcm9tYXBpX3JlYWRfc2Vla2FibGUo c3RydWN0DQo+IHNwbF9sb2FkX2luZm8gKmxvYWQsDQo+ID4gICAJCQkJICAgICAgdm9pZCAqYnVm KQ0KPiA+ICAgew0KPiA+ICAgCXUzMiBwYWdlc2l6ZSA9ICoodTMyICopbG9hZC0+cHJpdjsNCj4g PiAtCXZvbGF0aWxlIGdkX3QgKnBnZCA9IGdkOw0KPiA+ICAgCXVsb25nIGJ5dGUgPSBjb3VudCAq IHBhZ2VzaXplOw0KPiA+IC0JaW50IHJldDsNCj4gPiAgIAl1MzIgb2Zmc2V0Ow0KPiA+DQo+ID4g ICAJb2Zmc2V0ID0gc2VjdG9yICogcGFnZXNpemU7DQo+ID4NCj4gPiAtCWRlYnVnKCJST00gQVBJ IGxvYWQgZnJvbSAweCV4LCBzaXplIDB4JXhcbiIsIG9mZnNldCwgKHUzMilieXRlKTsNCj4gPiAt DQo+ID4gLQlyZXQgPSBnX3JvbV9hcGktPmRvd25sb2FkX2ltYWdlKGJ1Ziwgb2Zmc2V0LCBieXRl LA0KPiA+IC0JCQkJCSgodWludHB0cl90KWJ1ZikgXiBvZmZzZXQgXiBieXRlKTsNCj4gPiAtCXNl dF9nZChwZ2QpOw0KPiA+IC0NCj4gPiAtCWlmIChyZXQgPT0gUk9NX0FQSV9PS0FZKQ0KPiA+IC0J CXJldHVybiBjb3VudDsNCj4gPiAtDQo+ID4gLQlwcmludGYoIlJPTSBBUEkgRmFpbHVyZSB3aGVu IGxvYWQgMHgleFxuIiwgb2Zmc2V0KTsNCj4gPiAtDQo+ID4gLQlyZXR1cm4gMDsNCj4gPiArCXJl dHVybiBzcGxfcm9tYXBpX3Jhd19zZWVrYWJsZV9yZWFkKG9mZnNldCwgYnl0ZSwgYnVmKSAvIHBh Z2VzaXplOw0KPiA+ICAgfQ0KPiA+DQo+ID4gICBzdGF0aWMgaW50IHNwbF9yb21hcGlfbG9hZF9p bWFnZV9zZWVrYWJsZShzdHJ1Y3Qgc3BsX2ltYWdlX2luZm8NCj4gPiAqc3BsX2ltYWdlLCBAQCAt ODUsMTEgKzEwNSw3IEBAIHN0YXRpYyBpbnQNCj4gc3BsX3JvbWFwaV9sb2FkX2ltYWdlX3NlZWth YmxlKHN0cnVjdCBzcGxfaW1hZ2VfaW5mbyAqc3BsX2ltYWdlLA0KPiA+ICAgCXByaW50ZigiaW1h Z2Ugb2Zmc2V0IDB4JXgsIHBhZ2VzaXplIDB4JXgsIGl2dCBvZmZzZXQgMHgleFxuIiwNCj4gPiAg IAkgICAgICAgaW1hZ2Vfb2Zmc2V0LCBwYWdlc2l6ZSwgb2Zmc2V0KTsNCj4gPg0KPiA+IC0JaWYg KCgocm9tX2J0X2RldiA+PiAxNikgJiAweGZmKSA9PSAgQlRfREVWX1RZUEVfRkxFWFNQSU5PUikN Cj4gPiAtCQlvZmZzZXQgPSBDT05GSUdfU1lTX01NQ1NEX1JBV19NT0RFX1VfQk9PVF9TRUNUT1Ig Kg0KPiA1MTI7DQo+ID4gLQllbHNlDQo+ID4gLQkJb2Zmc2V0ID0gaW1hZ2Vfb2Zmc2V0ICsNCj4g PiAtCQkJQ09ORklHX1NZU19NTUNTRF9SQVdfTU9ERV9VX0JPT1RfU0VDVE9SICogNTEyIC0NCj4g MHg4MDAwOw0KPiA+ICsJb2Zmc2V0ID0gc3BsX3JvbWFwaV9nZXRfdWJvb3RfYmFzZShpbWFnZV9v ZmZzZXQsIHJvbV9idF9kZXYpOw0KPiA+DQo+ID4gICAJc2l6ZSA9IEFMSUdOKHNpemVvZihzdHJ1 Y3QgaW1hZ2VfaGVhZGVyKSwgcGFnZXNpemUpOw0KPiA+ICAgCXJldCA9IGdfcm9tX2FwaS0+ZG93 bmxvYWRfaW1hZ2UoKHU4ICopaGVhZGVyLCBvZmZzZXQsIHNpemUsIEBADQo+ID4gLTEwMiwxNiAr MTE4LDIzIEBAIHN0YXRpYyBpbnQgc3BsX3JvbWFwaV9sb2FkX2ltYWdlX3NlZWthYmxlKHN0cnVj dA0KPiBzcGxfaW1hZ2VfaW5mbyAqc3BsX2ltYWdlLA0KPiA+ICAgCQlyZXR1cm4gLTE7DQo+ID4g ICAJfQ0KPiA+DQo+ID4gLQlpZiAoSVNfRU5BQkxFRChDT05GSUdfU1BMX0xPQURfRklUKSAmJg0K PiA+IC0JICAgIGltYWdlX2dldF9tYWdpYyhoZWFkZXIpID09IEZEVF9NQUdJQykgew0KPiA+ICsJ aWYgKElTX0VOQUJMRUQoQ09ORklHX1NQTF9MT0FEX0ZJVCkgJiYgaW1hZ2VfZ2V0X21hZ2ljKGhl YWRlcikNCj4gPT0NCj4gPiArRkRUX01BR0lDKSB7DQo+ID4gICAJCXN0cnVjdCBzcGxfbG9hZF9p bmZvIGxvYWQ7DQo+ID4NCj4gPiAgIAkJbWVtc2V0KCZsb2FkLCAwLCBzaXplb2YobG9hZCkpOw0K PiA+ICAgCQlsb2FkLmJsX2xlbiA9IHBhZ2VzaXplOw0KPiA+ICAgCQlsb2FkLnJlYWQgPSBzcGxf cm9tYXBpX3JlYWRfc2Vla2FibGU7DQo+ID4gICAJCWxvYWQucHJpdiA9ICZwYWdlc2l6ZTsNCj4g PiAtCQlyZXR1cm4gc3BsX2xvYWRfc2ltcGxlX2ZpdChzcGxfaW1hZ2UsICZsb2FkLA0KPiA+IC0J CQkJCSAgIG9mZnNldCAvIHBhZ2VzaXplLCBoZWFkZXIpOw0KPiA+ICsJCXJldHVybiBzcGxfbG9h ZF9zaW1wbGVfZml0KHNwbF9pbWFnZSwgJmxvYWQsIG9mZnNldCAvIHBhZ2VzaXplLA0KPiBoZWFk ZXIpOw0KPiA+ICsJfSBlbHNlIGlmIChJU19FTkFCTEVEKENPTkZJR19TUExfTE9BRF9JTVhfQ09O VEFJTkVSKSkgew0KPiA+ICsJCXN0cnVjdCBzcGxfbG9hZF9pbmZvIGxvYWQ7DQo+ID4gKw0KPiA+ ICsJCW1lbXNldCgmbG9hZCwgMCwgc2l6ZW9mKGxvYWQpKTsNCj4gPiArCQlsb2FkLmJsX2xlbiA9 IHBhZ2VzaXplOw0KPiA+ICsJCWxvYWQucmVhZCA9IHNwbF9yb21hcGlfcmVhZF9zZWVrYWJsZTsN Cj4gPiArCQlsb2FkLnByaXYgPSAmcGFnZXNpemU7DQo+ID4gKw0KPiA+ICsJCXJldCA9IHNwbF9s b2FkX2lteF9jb250YWluZXIoc3BsX2ltYWdlLCAmbG9hZCwgb2Zmc2V0IC8gcGFnZXNpemUpOw0K PiA+ICAgCX0gZWxzZSB7DQo+ID4gICAJCS8qIFRPRE8gKi8NCj4gPiAgIAkJcHV0cygiQ2FuJ3Qg c3VwcG9ydCBsZWdhY3kgaW1hZ2VcbiIpOyBAQCAtMTU0LDcgKzE3Nyw3IEBADQo+IHN0YXRpYw0K PiA+IHVsb25nIGdldF9maXRfaW1hZ2Vfc2l6ZSh2b2lkICpmaXQpDQo+ID4gICAJcmV0dXJuIGxh c3QgLSAodWxvbmcpZml0Ow0KPiA+ICAgfQ0KPiA+DQo+ID4gLXU4ICpzZWFyY2hfZml0X2hlYWRl cih1OCAqcCwgaW50IHNpemUpDQo+ID4gK3N0YXRpYyB1OCAqc2VhcmNoX2ZpdF9oZWFkZXIodTgg KnAsIGludCBzaXplKQ0KPiA+ICAgew0KPiA+ICAgCWludCBpOw0KPiA+DQo+ID4gQEAgLTE2NSw2 ICsxODgsNzEgQEAgdTggKnNlYXJjaF9maXRfaGVhZGVyKHU4ICpwLCBpbnQgc2l6ZSkNCj4gPiAg IAlyZXR1cm4gTlVMTDsNCj4gPiAgIH0NCj4gPg0KPiA+ICtzdGF0aWMgdTggKnNlYXJjaF9jb250 YWluZXJfaGVhZGVyKHU4ICpwLCBpbnQgc2l6ZSkgew0KPiA+ICsJaW50IGkgPSAwOw0KPiA+ICsJ dTggKmhkcjsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSArPSA0KSB7DQo+ ID4gKwkJaGRyID0gcCArIGk7DQo+ID4gKwkJaWYgKCooaGRyICsgMykgPT0gMHg4NyAmJiAqaGRy ID09IDAgJiYgKCooaGRyICsgMSkgIT0gMCB8fCAqKGhkciArDQo+IDIpICE9IDApKQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcCArIGk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICsJcmV0dXJuIE5VTEw7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB1OCAqc2VhcmNoX2lt Z19oZWFkZXIodTggKnAsIGludCBzaXplKSB7DQo+ID4gKwlpZiAoSVNfRU5BQkxFRChDT05GSUdf U1BMX0xPQURfRklUKSkNCj4gPiArCQlyZXR1cm4gc2VhcmNoX2ZpdF9oZWFkZXIocCwgc2l6ZSk7 DQo+ID4gKwllbHNlIGlmIChJU19FTkFCTEVEKENPTkZJR19TUExfTE9BRF9JTVhfQ09OVEFJTkVS KSkNCj4gPiArCQlyZXR1cm4gc2VhcmNoX2NvbnRhaW5lcl9oZWFkZXIocCwgc2l6ZSk7DQo+ID4g Kw0KPiA+ICsJcmV0dXJuIE5VTEw7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB1MzIgaW1n X2hlYWRlcl9zaXplKHZvaWQpDQo+ID4gK3sNCj4gPiArCWlmIChJU19FTkFCTEVEKENPTkZJR19T UExfTE9BRF9GSVQpKQ0KPiA+ICsJCXJldHVybiBzaXplb2Yoc3RydWN0IGZkdF9oZWFkZXIpOw0K PiA+ICsJZWxzZSBpZiAoSVNfRU5BQkxFRChDT05GSUdfU1BMX0xPQURfSU1YX0NPTlRBSU5FUikp DQo+ID4gKwkJcmV0dXJuIHNpemVvZihzdHJ1Y3QgY29udGFpbmVyX2hkcik7DQo+ID4gKw0KPiA+ ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgaW1nX2luZm9fc2l6 ZSh2b2lkICppbWdfaGRyKSB7ICNpZmRlZiBDT05GSUdfU1BMX0xPQURfRklUDQo+ID4gKwlyZXR1 cm4gZml0X2dldF9zaXplKGltZ19oZHIpOw0KPiA+ICsjZWxpZiBkZWZpbmVkIENPTkZJR19TUExf TE9BRF9JTVhfQ09OVEFJTkVSDQo+ID4gKwlzdHJ1Y3QgY29udGFpbmVyX2hkciAqY29udGFpbmVy ID0gaW1nX2hkcjsNCj4gPiArDQo+ID4gKwlyZXR1cm4gKGNvbnRhaW5lci0+bGVuZ3RoX2xzYiAr IChjb250YWluZXItPmxlbmd0aF9tc2IgPDwgOCkpOyAjZWxzZQ0KPiA+ICsJcmV0dXJuIDA7DQo+ ID4gKyNlbmRpZg0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGltZ190b3RhbF9zaXpl KHZvaWQgKmltZ19oZHIpIHsNCj4gPiArCWlmIChJU19FTkFCTEVEKENPTkZJR19TUExfTE9BRF9G SVQpKSB7DQo+ID4gKwkJcmV0dXJuIGdldF9maXRfaW1hZ2Vfc2l6ZShpbWdfaGRyKTsNCj4gPiAr CX0gZWxzZSBpZiAoSVNfRU5BQkxFRChDT05GSUdfU1BMX0xPQURfSU1YX0NPTlRBSU5FUikpIHsN Cj4gPiArCQlpbnQgdG90YWwgPSBnZXRfY29udGFpbmVyX3NpemUoKHVsb25nKWltZ19oZHIsIE5V TEwpOw0KPiA+ICsNCj4gPiArCQlpZiAodG90YWwgPCAwKSB7DQo+ID4gKwkJCXByaW50ZigiaW52 YWxpZCBjb250YWluZXIgaW1hZ2VcbiIpOw0KPiA+ICsJCQlyZXR1cm4gMDsNCj4gPiArCQl9DQo+ ID4gKw0KPiA+ICsJCXJldHVybiB0b3RhbDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4g MDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgIHN0YXRpYyBpbnQgc3BsX3JvbWFwaV9sb2FkX2ltYWdl X3N0cmVhbShzdHJ1Y3Qgc3BsX2ltYWdlX2luZm8NCj4gKnNwbF9pbWFnZSwNCj4gPiAgIAkJCQkJ c3RydWN0IHNwbF9ib290X2RldmljZSAqYm9vdGRldikNCj4gPiAgIHsNCj4gPiBAQCAtMTc0LDcg KzI2Miw3IEBAIHN0YXRpYyBpbnQgc3BsX3JvbWFwaV9sb2FkX2ltYWdlX3N0cmVhbShzdHJ1Y3QN Cj4gc3BsX2ltYWdlX2luZm8gKnNwbF9pbWFnZSwNCj4gPiAgIAlpbnQgcmV0Ow0KPiA+ICAgCWlu dCBpID0gMDsNCj4gPiAgIAl1OCAqcCA9ICh1OCAqKUNPTkZJR19TUExfSU1YX1JPTUFQSV9MT0FE QUREUjsNCj4gPiAtCXU4ICpwZml0ID0gTlVMTDsNCj4gPiArCXU4ICpwaGRyID0gTlVMTDsNCj4g PiAgIAlpbnQgaW1hZ2VzaXplOw0KPiA+ICAgCWludCB0b3RhbDsNCj4gPg0KPiA+IEBAIC0xOTks MTkgKzI4NywxOSBAQCBzdGF0aWMgaW50IHNwbF9yb21hcGlfbG9hZF9pbWFnZV9zdHJlYW0oc3Ry dWN0DQo+IHNwbF9pbWFnZV9pbmZvICpzcGxfaW1hZ2UsDQo+ID4gICAJCQlyZXR1cm4gLTE7DQo+ ID4gICAJCX0NCj4gPg0KPiA+IC0JCXBmaXQgPSBzZWFyY2hfZml0X2hlYWRlcihwLCBwZyk7DQo+ ID4gKwkJcGhkciA9IHNlYXJjaF9pbWdfaGVhZGVyKHAsIHBnKTsNCj4gPiAgIAkJcCArPSBwZzsN Cj4gPg0KPiA+IC0JCWlmIChwZml0KQ0KPiA+ICsJCWlmIChwaGRyKQ0KPiA+ICAgCQkJYnJlYWs7 DQo+ID4gICAJfQ0KPiA+DQo+ID4gLQlpZiAoIXBmaXQpIHsNCj4gPiAtCQlwdXRzKCJDYW4ndCBm b3VuZCB1Ym9vdCBGSVQgaW1hZ2UgaW4gNjQwSyByYW5nZSBcbiIpOw0KPiA+ICsJaWYgKCFwaGRy KSB7DQo+ID4gKwkJcHV0cygiQ2FuJ3QgZm91bmQgdWJvb3QgaW1hZ2UgaW4gNjQwSyByYW5nZVxu Iik7DQo+ID4gICAJCXJldHVybiAtMTsNCj4gPiAgIAl9DQo+ID4NCj4gPiAtCWlmIChwIC0gcGZp dCA8IHNpemVvZihzdHJ1Y3QgZmR0X2hlYWRlcikpIHsNCj4gPiArCWlmIChwIC0gcGhkciA8IGlt Z19oZWFkZXJfc2l6ZSgpKSB7DQo+ID4gICAJCXJldCA9IGdfcm9tX2FwaS0+ZG93bmxvYWRfaW1h Z2UocCwgMCwgcGcsICAoKHVpbnRwdHJfdClwKSBeDQo+IHBnKTsNCj4gPiAgIAkJc2V0X2dkKHBn ZCk7DQo+ID4NCj4gPiBAQCAtMjIzLDExICszMTEsMTEgQEAgc3RhdGljIGludCBzcGxfcm9tYXBp X2xvYWRfaW1hZ2Vfc3RyZWFtKHN0cnVjdA0KPiBzcGxfaW1hZ2VfaW5mbyAqc3BsX2ltYWdlLA0K PiA+ICAgCQlwICs9IHBnOw0KPiA+ICAgCX0NCj4gPg0KPiA+IC0JaW1hZ2VzaXplID0gZml0X2dl dF9zaXplKHBmaXQpOw0KPiA+IC0JcHJpbnRmKCJGaW5kIEZJVCBoZWFkZXIgMHgmJXAsIHNpemUg JWRcbiIsIHBmaXQsIGltYWdlc2l6ZSk7DQo+ID4gKwlpbWFnZXNpemUgPSBpbWdfaW5mb19zaXpl KHBoZHIpOw0KPiA+ICsJcHJpbnRmKCJGaW5kIGltZyBpbmZvIDB4JiVwLCBzaXplICVkXG4iLCBw aGRyLCBpbWFnZXNpemUpOw0KPiA+DQo+ID4gLQlpZiAocCAtIHBmaXQgPCBpbWFnZXNpemUpIHsN Cj4gPiAtCQlpbWFnZXNpemUgLT0gcCAtIHBmaXQ7DQo+ID4gKwlpZiAocCAtIHBoZHIgPCBpbWFn ZXNpemUpIHsNCj4gPiArCQlpbWFnZXNpemUgLT0gcCAtIHBoZHI7DQo+ID4gICAJCS8qbmVlZCBw YWdlc2l6ZSBoZWFyIGFmdGVyIFJPTSBmaXggVVNCIHByb2JsbWUqLw0KPiA+ICAgCQlpbWFnZXNp emUgKz0gcGcgLSAxOw0KPiA+ICAgCQlpbWFnZXNpemUgLz0gcGc7DQo+ID4gQEAgLTI0NywyMCAr MzM1LDIxIEBAIHN0YXRpYyBpbnQgc3BsX3JvbWFwaV9sb2FkX2ltYWdlX3N0cmVhbShzdHJ1Y3QN Cj4gc3BsX2ltYWdlX2luZm8gKnNwbF9pbWFnZSwNCj4gPiAgIAkJfQ0KPiA+ICAgCX0NCj4gPg0K PiA+IC0JdG90YWwgPSBnZXRfZml0X2ltYWdlX3NpemUocGZpdCk7DQo+ID4gKwl0b3RhbCA9IGlt Z190b3RhbF9zaXplKHBoZHIpOw0KPiA+ICAgCXRvdGFsICs9IDM7DQo+ID4gICAJdG90YWwgJj0g fjB4MzsNCj4gPg0KPiA+IC0JaW1hZ2VzaXplID0gdG90YWwgLSAocCAtIHBmaXQpOw0KPiA+ICsJ aW1hZ2VzaXplID0gdG90YWwgLSAocCAtIHBoZHIpOw0KPiA+DQo+ID4gICAJaW1hZ2VzaXplICs9 IHBhZ2VzaXplIC0gMTsNCj4gPiAgIAlpbWFnZXNpemUgLz0gcGFnZXNpemU7DQo+ID4gICAJaW1h Z2VzaXplICo9IHBhZ2VzaXplOw0KPiA+DQo+ID4gLQlwcmludGYoIkRvd25sb2FkICVkLCB0b3Rh bCBmaXQgJWRcbiIsIGltYWdlc2l6ZSwgdG90YWwpOw0KPiA+ICsJcHJpbnRmKCJEb3dubG9hZCAl ZCwgVG90YWwgc2l6ZSAlZFxuIiwgaW1hZ2VzaXplLCB0b3RhbCk7DQo+ID4NCj4gPiAgIAlyZXQg PSBnX3JvbV9hcGktPmRvd25sb2FkX2ltYWdlKHAsIDAsIGltYWdlc2l6ZSwNCj4gPiAgIAkJCQkJ KCh1aW50cHRyX3QpcCkgXiBpbWFnZXNpemUpOw0KPiA+ICsJZ2QgPSBwZ2Q7DQo+ID4gICAJaWYg KHJldCAhPSBST01fQVBJX09LQVkpDQo+ID4gICAJCXByaW50ZigiUk9NIGRvd25sb2FkIGZhaWx1 cmUgJWRcbiIsIGltYWdlc2l6ZSk7DQo+ID4NCj4gPiBAQCAtMjY4LDcgKzM1NywxMiBAQCBzdGF0 aWMgaW50IHNwbF9yb21hcGlfbG9hZF9pbWFnZV9zdHJlYW0oc3RydWN0DQo+IHNwbF9pbWFnZV9p bmZvICpzcGxfaW1hZ2UsDQo+ID4gICAJbG9hZC5ibF9sZW4gPSAxOw0KPiA+ICAgCWxvYWQucmVh ZCA9IHNwbF9yYW1fbG9hZF9yZWFkOw0KPiA+DQo+ID4gLQlyZXR1cm4gc3BsX2xvYWRfc2ltcGxl X2ZpdChzcGxfaW1hZ2UsICZsb2FkLCAodWxvbmcpcGZpdCwgcGZpdCk7DQo+ID4gKwlpZiAoSVNf RU5BQkxFRChDT05GSUdfU1BMX0xPQURfRklUKSkNCj4gPiArCQlyZXR1cm4gc3BsX2xvYWRfc2lt cGxlX2ZpdChzcGxfaW1hZ2UsICZsb2FkLCAodWxvbmcpcGhkciwgcGhkcik7DQo+ID4gKwllbHNl IGlmIChJU19FTkFCTEVEKENPTkZJR19TUExfTE9BRF9JTVhfQ09OVEFJTkVSKSkNCj4gPiArCQly ZXR1cm4gc3BsX2xvYWRfaW14X2NvbnRhaW5lcihzcGxfaW1hZ2UsICZsb2FkLCAodWxvbmcpcGhk cik7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIC0xOw0KPiA+ICAgfQ0KPiA+DQo+ID4gICBpbnQgYm9h cmRfcmV0dXJuX3RvX2Jvb3Ryb20oc3RydWN0IHNwbF9pbWFnZV9pbmZvICpzcGxfaW1hZ2UsDQo+ ID4NCj4gDQo+IC0tDQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT0NCj4gREVOWCBTb2Z0d2FyZSBFbmdpbmVl cmluZyBHbWJILCAgICAgIE1hbmFnaW5nIERpcmVjdG9yOiBXb2xmZ2FuZyBEZW5rDQo+IEhSQiAx NjUyMzUgTXVuaWNoLCBPZmZpY2U6IEtpcmNoZW5zdHIuNSwgRC04MjE5NCBHcm9lYmVuemVsbCwg R2VybWFueQ0KPiBQaG9uZTogKzQ5LTgxNDItNjY5ODktNTMgRmF4OiArNDktODE0Mi02Njk4OS04 MCBFbWFpbDogc2JhYmljQGRlbnguZGUNCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPT09PT09PQ0K