Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp859483pxf; Wed, 7 Apr 2021 13:28:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyNxV1cxFR+Gd5W2sQf0kvil5Bo2BpDHeX+ebE27bvoFsl7E0+Re0FS1NINat1j35gxbSYK X-Received: by 2002:a17:906:cc4d:: with SMTP id mm13mr6051818ejb.138.1617827323507; Wed, 07 Apr 2021 13:28:43 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1617827323; cv=pass; d=google.com; s=arc-20160816; b=mBdChMl0+CWUR03S0mi4ZGumJvT+tWwVa7ALseyGZz/QJuOiJvYHs0PKeYgfXplBBR sH6Vmidi0S/zDba5W1QQGiF+i7KP4sHyh8khLH5uN8shE73ysd5Fb2zkTDfvhaX5y0QU w9TQqQWxleUa7aYT2gqIBvDJemJ6toXQUMLJYJZ3TxEXDB9CqXHEWK0leG7Fcbe68L0u 1BumRCwJLZ7ac2C/yem4RzJt9eh2OxlaM7PLjbG9SBvYewf5aDLSBudxH8Sqjcmboo8J iqiK+zAGRYkGG2NLTeW2kNmg4GGggAgKQxJxaOJoDnisqzk2GeOihe9Xmly6S65CbyUC zRlQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=oJzFQan58OXlU6hrRwO2+/bNl4x5P0tnwzp0/jMvHj8=; b=I8+eqsHAS1is2zzX72dWt97tmOIzmGiNdyHxL9QUlNN5sOPgDG4WvCOBN+eT0T7rRh yUN16xVN/OWB/7Mb9p/jw1TiknGCVgaRlekdUBVEbbyJ/9jTBdbP3VpDhu2SfQRUErrH ZeVEGiROok0QIjM84pB5ggLuVOFtcySq7bXi8sUddOI7Q5SCApYK7xMkS6nR6/yaz//K BVuM/y8jeecV4a+rSKHhlh5tnGN4UJ5AC8YLtpAi3OddY/dhHk+t1/dOOOvJUBMOdCAI twsU2syscPTnySY6RwuR1XyzX1629LACgVS19WQk6LQ7z43zXmt6FUlbiq45TS5wIJDV v8+Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=avaD6t6E; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o13si21395348edi.135.2021.04.07.13.28.19; Wed, 07 Apr 2021 13:28:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=avaD6t6E; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244846AbhDGHqd (ORCPT + 99 others); Wed, 7 Apr 2021 03:46:33 -0400 Received: from mail-vi1eur05on2079.outbound.protection.outlook.com ([40.107.21.79]:64992 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S233815AbhDGHqa (ORCPT ); Wed, 7 Apr 2021 03:46:30 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hMF/U24rT0b+o8Lg7gCENPGlvRUcq9O8Z6NRRBbQU+90LmN+EijbD5GnW9GF2NzX+lC7Dbql1+eF3X1q2VPYcDScRqNzUOx5t8q2KRxXXXxp1xGnXOOgppq6acByR9mmweS7TXjtRyxOD0GSP+2K+By1oJb5Y8/lxwsK9i+dLEdaKvVukicw1y/yz2DyaY/VQL/sLiEer2WchwJUHfGAAb7deDpl2Ab0c6LzyCGJ1uP5WXXYbC6bubEiueCSWhoDm2P76aaDKjj6MWzXARi/B7xyQ+7VbptKaadzzBpaKFGDlx7MFBi6XL2/vaHUw1I+ha1azCjtgKLwUKvBXwdcjg== 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=oJzFQan58OXlU6hrRwO2+/bNl4x5P0tnwzp0/jMvHj8=; b=jxim5BCy1ozgFJ3g4QKHhY9Kmi02xkYTBUT+/XTAhkePT14+kDgaxdUr9iYlgV5Qs3Z1qDKjRLwEM1OvJtqyutsOI2V3EXMDr+ecSyogS7dvJ8xLCsKqlTXRAssJjMYkIjKG7DqCdkHI0aZ6puG9skP9yRw517cjiFzRDHVEBpcNxTYWxolTjZRcUvHSSJ7TRvGIIVHsYpnDxYM3Ph4oyY6ZrV17IBQrBwdCL7FPYHv+zSuUdwkGB8fa4BlvNKneBhp+igvuuFVjCRoVvPyb6lpyV6c3OUcXyYOZyFugMx8JfZ6mqwvaEdU8LxwY399Y0ZkeL6vNnTE4SvceA9K9Pw== 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=oJzFQan58OXlU6hrRwO2+/bNl4x5P0tnwzp0/jMvHj8=; b=avaD6t6EgQIq4dGAVwVUkGcZulso8DSGnt1TkeT4Uypoe++MfAk7ggoZIMTadPofR8PJPstRx/XpXyo2NCGM2Ax12Xz28RmLOoiZSFf+E6L7Ta+aYpIApPrvBA40GXPQhQNbW3UK3DVUNeLUwAD9U9QrlyXS5+cUGXJDwFKV518= Received: from DB8PR04MB6795.eurprd04.prod.outlook.com (2603:10a6:10:fa::15) by DB9PR04MB8429.eurprd04.prod.outlook.com (2603:10a6:10:24e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.17; Wed, 7 Apr 2021 07:46:18 +0000 Received: from DB8PR04MB6795.eurprd04.prod.outlook.com ([fe80::9598:ace0:4417:d1d5]) by DB8PR04MB6795.eurprd04.prod.outlook.com ([fe80::9598:ace0:4417:d1d5%6]) with mapi id 15.20.4020.017; Wed, 7 Apr 2021 07:46:18 +0000 From: Joakim Zhang To: Heiner Kallweit , "christian.melki@t2data.com" , "andrew@lunn.ch" , "linux@armlinux.org.uk" , "davem@davemloft.net" , "kuba@kernel.org" CC: "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , dl-linux-imx , Florian Fainelli Subject: RE: [PATCH] net: phy: fix PHY possibly unwork after MDIO bus resume back Thread-Topic: [PATCH] net: phy: fix PHY possibly unwork after MDIO bus resume back Thread-Index: AQHXKTprONOHGtpeU0eiVA3RKY2nOaqkZbwAgACRNACAAKY/gIAAOYWAgADmYJCAAEy0AIAAFnKQgABBIoCAAG+hgIAAdpUQgABglgCAAAhYwA== Date: Wed, 7 Apr 2021 07:46:18 +0000 Message-ID: References: <20210404100701.6366-1-qiangqing.zhang@nxp.com> <97e486f8-372a-896f-6549-67b8fb34e623@gmail.com> <010f896e-befb-4238-5219-01969f3581e3@gmail.com> <0e6bd756-f46c-7caf-d45b-a19e7fb80b67@gmail.com> <902bd022-a135-a481-1a7f-2781998b2ee8@gmail.com> In-Reply-To: <902bd022-a135-a481-1a7f-2781998b2ee8@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=nxp.com; x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4c799c71-02b7-4327-c8ef-08d8f9993ad6 x-ms-traffictypediagnostic: DB9PR04MB8429: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DuUL53YbpDKl5RmAxtbHb1gBUR3SW1XY3cpiZIzFqIvDICWi9+HAVNxEqNhAVkLkwy2klWGU9IDOPLlNFe3Cv78RRyIUqYS2FfZSjkpW7NKT8jPj0ez6wSJFJ4aedYNCMIZv/OQ//oPjs5uvh0AEYGB+NqXeiaud1aRuc23N2GjXwqD4a7dn7z0S0AefvqKCCKEQwcSUiBTyaDPUCPTpuLlt0DwaBeM4zbT8SVfa5GCzVR2upaO6Uo5Fma3Pv+BXV28UGOQv1APQu8BFyEH53EXFwOhW09msz/dXEYB75j5XISDU/1dJDYlea7aVRNMCjPw6yfcLSYaEfdXkSXymc1UfTDcx5QfXpL/FAo00tJvKfC+EgH+9suudC1QUrLN9MGo/tCsksWxia34lgraBCGDfEK7dNswkVhnrsfjwbNNuvNb5RZB85ozhM0XmCavOmPO03hbE5eYppkuC9vqk494yn3YYoTk9Kp0w49EMZmGeSN7wQWZ360HI8MPcLb3fCPIzMOb1OTSWxlCiNkmchprH7WJuVU+2WAjC3k0F3tsJSxT9D268qkdEGMRrDCqbbo+ZqQ96Ny8dhBprQwvNtKFcb5vjeb704WoJSvOS5d1sOzwKpwfrNKDDvyLDLKXZjqXFd8HixJLtXTzcBVhOnh45macjYks+hGtjNrR1PLk= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB8PR04MB6795.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(376002)(136003)(396003)(366004)(39860400002)(110136005)(2906002)(8676002)(54906003)(52536014)(71200400001)(66556008)(66476007)(64756008)(66946007)(66446008)(5660300002)(76116006)(30864003)(55016002)(7696005)(53546011)(4326008)(83380400001)(38100700001)(186003)(33656002)(316002)(9686003)(478600001)(8936002)(86362001)(26005)(6506007)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?TWVKT3NveVNIVTZ6cFZzanhhY1h5L0d2WlRIMVNia3JJUG14RCt0MkF5TGNh?= =?utf-8?B?TkRPMWJ4djhpUE1VR3l1dE1MWTI5c3lnbkpSYVczMU9sT25rV1BYYWUxeldr?= =?utf-8?B?YURqSWJ6M1F2RExRVjZSczREVnliWDBMRlM3UitHdDV2OVZRM00xRVNTK1pN?= =?utf-8?B?Uk5ZSW8xYXBGMWxPdWlGK2FQSVFHYS81d3VtOVVmQTdSeHF4a0hDV3JJNm5p?= =?utf-8?B?aURudnhiM2oxazFCWUtjNklrOVhTRUZNYnVQRUJQU2VqdjYxMkxDeHYvSndE?= =?utf-8?B?YVBWdVgzVW5aaituYjhrOGI0TGd2eFIycHNqQW14T0x4TG1EOU5QbTBNbXZW?= =?utf-8?B?eFNNNHJiSFczUzY4K0ZObHg0c3VyTEdWcVAyc3FrejUzUDh2OWZSUG0yVUZo?= =?utf-8?B?bWczL2tvVHNvQjFnNEFTajZoeUlSUm96NiswMm9IaEFEd2VKZ3JKaXFaOUYv?= =?utf-8?B?d3JSVllhR283U20vSmtyRk1ISmQwbWxLMjlHWDIvdmdIZUFBL3RvZ3lXRWtF?= =?utf-8?B?a3cxRkl0NFZubnI0M2J3NW1aNFBJODhvdzZaY3N5NWtIN1NJdXYrbkFpZHZG?= =?utf-8?B?WThwbkVWbzNva0gvWE8xc0JZL1p2ZGZsc1VaVk9pcFB5UkRkQmMvV041U1Zp?= =?utf-8?B?K0c1YWZZSXF1OUcyTUFEaUo2UWh2TVY0VnpKTG5odjh1QU5jWngvRC9Zd1hX?= =?utf-8?B?L0pDdklVcm5wbEJFYktXdGJJd3NHc0gxWHBDSTE4anlXWElXbUdrZFBOSkl3?= =?utf-8?B?Ym1oZWdqZkdpdVFLaXYrb3h4YUd4Z1lNYkZRcnh2K21icldKUjJpWUhNSXZo?= =?utf-8?B?cmdUMkZCWVRCa1dsc09tVDNLWE9LZ1dLVlFDdTM4U0pCa1dYd1VrQ1IwYU16?= =?utf-8?B?TnJSOWFPcnRsQVRsc2hVK1pQeUhmd011blFhQ0UzVVlzOVZIdlNDTGRUUWZ6?= =?utf-8?B?VEF4UDBpWm5CL1lLUWN0TjU2UWVlU1hzM3c4dEp4NlduOHlyOU9Fd1NUS0g5?= =?utf-8?B?anVTVmI4T005T0t0dFB6clJHSXNWVGx4MmJqcjhhUjA1bTVlOXB5Nm82ZHVp?= =?utf-8?B?bzc2cEdzMVArU1ZlL2hmQ0V6cXpVaTZ2MDRCcUtVaUFFRkJYZytQbXJVWk45?= =?utf-8?B?T1BBTjJZMWl0dFRLYlk3L29ablJnSDJERG03aTN0Z3IzWDNQY2lhWVZBdHkr?= =?utf-8?B?NXdYeFpJOWhhVlRIcXZtMFFSdTRUSWN6UzZRQmI4bks1M2piTUxEMUkxaHNJ?= =?utf-8?B?WGhyTS9SUTRlVlFKWThWTWtNLzRzOGpyUmVjbklUcytmRzJrU3pCODFLVkYy?= =?utf-8?B?UWJnTG51enJpZHJrbnRlWXhxTUNWSFhCdGR1T1JFbDNqK2xTcWRUVW9tdFd5?= =?utf-8?B?R2NjdC9nbWVBNm8weHppRGsxcUMyQ1ZsQUw3a21TTG04dDc2M0w3S2JuM01y?= =?utf-8?B?VFR0L2U0L0g2cVFFYkJyUGVNNGFWZGFpNVdUd3l4V1h3bEFjQ3BTQzRueHRx?= =?utf-8?B?QzFvQ3grRW5TaTlsMkJhazNzY0ViTFNETkVaR3U5YXAwRy9FNFVpRldScFdW?= =?utf-8?B?clZrTDBWZ3k4YVlEL1VxSkN1K2pMdXFDd3lxalhDaE1KS3c5TGNtbWZEWHE1?= =?utf-8?B?UjNndTI0YkZhUnNqdEszbzQ0MTlZWFpJelZqWHE3V1NaQlBvVkRJcXFselhk?= =?utf-8?B?L0phN3NJbXNFTjlPYzl3U2tHWVM2NVBQSkpRcVVLamUwYUNJNXQ3WWlWeWxw?= =?utf-8?Q?U1GWHxd8WqwuIiN+Jo7s90BrCr3MXfxR15ESW8E?= 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: DB8PR04MB6795.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c799c71-02b7-4327-c8ef-08d8f9993ad6 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2021 07:46:18.4078 (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: C3p5yykdsX9CuyPlyrSfCbxqQ5lacZ7UXO0p/ujRXUtlYONuACJzJxO6AtPC6W4gZ8wlvndDDkLcZm8NUJKT2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8429 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQpIaSBIZWluZXIsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSGVp bmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4NCj4gU2VudDogMjAyMeW5tDTmnIg3 5pelIDE1OjEyDQo+IFRvOiBKb2FraW0gWmhhbmcgPHFpYW5ncWluZy56aGFuZ0BueHAuY29tPjsg Y2hyaXN0aWFuLm1lbGtpQHQyZGF0YS5jb207DQo+IGFuZHJld0BsdW5uLmNoOyBsaW51eEBhcm1s aW51eC5vcmcudWs7IGRhdmVtQGRhdmVtbG9mdC5uZXQ7DQo+IGt1YmFAa2VybmVsLm9yZw0KPiBD YzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsg ZGwtbGludXgtaW14DQo+IDxsaW51eC1pbXhAbnhwLmNvbT47IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBuZXQ6IHBoeTogZml4 IFBIWSBwb3NzaWJseSB1bndvcmsgYWZ0ZXIgTURJTyBidXMgcmVzdW1lDQo+IGJhY2sNCj4gDQo+ IE9uIDA3LjA0LjIwMjEgMDM6NDMsIEpvYWtpbSBaaGFuZyB3cm90ZToNCj4gPg0KPiA+IEhpIEhl aW5lciwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBI ZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPg0KPiA+PiBTZW50OiAyMDIx5bm0 NOaciDfml6UgMjoyMg0KPiA+PiBUbzogSm9ha2ltIFpoYW5nIDxxaWFuZ3FpbmcuemhhbmdAbnhw LmNvbT47DQo+ID4+IGNocmlzdGlhbi5tZWxraUB0MmRhdGEuY29tOyBhbmRyZXdAbHVubi5jaDsg bGludXhAYXJtbGludXgub3JnLnVrOw0KPiA+PiBkYXZlbUBkYXZlbWxvZnQubmV0OyBrdWJhQGtl cm5lbC5vcmc7IFJ1c3NlbGwgS2luZyAtIEFSTSBMaW51eA0KPiA+PiA8bGludXhAYXJtbGludXgu b3JnLnVrPg0KPiA+PiBDYzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZn ZXIua2VybmVsLm9yZzsNCj4gPj4gZGwtbGludXgtaW14IDxsaW51eC1pbXhAbnhwLmNvbT47IEZs b3JpYW4gRmFpbmVsbGkNCj4gPj4gPGYuZmFpbmVsbGlAZ21haWwuY29tPg0KPiA+PiBTdWJqZWN0 OiBSZTogW1BBVENIXSBuZXQ6IHBoeTogZml4IFBIWSBwb3NzaWJseSB1bndvcmsgYWZ0ZXIgTURJ TyBidXMNCj4gPj4gcmVzdW1lIGJhY2sNCj4gPj4NCj4gPj4gT24gMDYuMDQuMjAyMSAxMzo0Miwg SGVpbmVyIEthbGx3ZWl0IHdyb3RlOg0KPiA+Pj4gT24gMDYuMDQuMjAyMSAxMjowNywgSm9ha2lt IFpoYW5nIHdyb3RlOg0KPiA+Pj4+DQo+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4+Pj4+IEZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+DQo+ ID4+Pj4+IFNlbnQ6IDIwMjHlubQ05pyINuaXpSAxNDoyOQ0KPiA+Pj4+PiBUbzogSm9ha2ltIFpo YW5nIDxxaWFuZ3FpbmcuemhhbmdAbnhwLmNvbT47DQo+ID4+Pj4+IGNocmlzdGlhbi5tZWxraUB0 MmRhdGEuY29tOyBhbmRyZXdAbHVubi5jaDsgbGludXhAYXJtbGludXgub3JnLnVrOw0KPiA+Pj4+ PiBkYXZlbUBkYXZlbWxvZnQubmV0OyBrdWJhQGtlcm5lbC5vcmcNCj4gPj4+Pj4gQ2M6IG5ldGRl dkB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4+Pj4+ IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+DQo+ID4+Pj4+IFN1YmplY3Q6IFJlOiBb UEFUQ0hdIG5ldDogcGh5OiBmaXggUEhZIHBvc3NpYmx5IHVud29yayBhZnRlciBNRElPDQo+ID4+ Pj4+IGJ1cyByZXN1bWUgYmFjaw0KPiA+Pj4+Pg0KPiA+Pj4+PiBPbiAwNi4wNC4yMDIxIDA0OjA3 LCBKb2FraW0gWmhhbmcgd3JvdGU6DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSGkgSGVpbmVyLA0KPiA+ Pj4+Pj4NCj4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+IEZy b206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+DQo+ID4+Pj4+Pj4gU2Vu dDogMjAyMeW5tDTmnIg15pelIDIwOjEwDQo+ID4+Pj4+Pj4gVG86IGNocmlzdGlhbi5tZWxraUB0 MmRhdGEuY29tOyBKb2FraW0gWmhhbmcNCj4gPj4+Pj4+PiA8cWlhbmdxaW5nLnpoYW5nQG54cC5j b20+OyBhbmRyZXdAbHVubi5jaDsNCj4gPj4+Pj4+PiBsaW51eEBhcm1saW51eC5vcmcudWs7IGRh dmVtQGRhdmVtbG9mdC5uZXQ7IGt1YmFAa2VybmVsLm9yZw0KPiA+Pj4+Pj4+IENjOiBuZXRkZXZA dmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOw0KPiA+Pj4+Pj4+ IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+DQo+ID4+Pj4+Pj4gU3ViamVjdDogUmU6 IFtQQVRDSF0gbmV0OiBwaHk6IGZpeCBQSFkgcG9zc2libHkgdW53b3JrIGFmdGVyDQo+ID4+Pj4+ Pj4gTURJTyBidXMgcmVzdW1lIGJhY2sNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IE9uIDA1LjA0LjIw MjEgMTA6NDMsIENocmlzdGlhbiBNZWxraSB3cm90ZToNCj4gPj4+Pj4+Pj4gT24gNC81LzIxIDEy OjQ4IEFNLCBIZWluZXIgS2FsbHdlaXQgd3JvdGU6DQo+ID4+Pj4+Pj4+PiBPbiAwNC4wNC4yMDIx IDE2OjA5LCBIZWluZXIgS2FsbHdlaXQgd3JvdGU6DQo+ID4+Pj4+Pj4+Pj4gT24gMDQuMDQuMjAy MSAxMjowNywgSm9ha2ltIFpoYW5nIHdyb3RlOg0KPiA+Pj4+Pj4+Pj4+PiBjb21taXQgNGMwZDJl OTZiYTA1NSAoIm5ldDogcGh5OiBjb25zaWRlciB0aGF0IHN1c3BlbmQycmFtDQo+ID4+IG1heQ0K PiA+Pj4+Pj4+Pj4+PiBjdXQgb2ZmIFBIWSBwb3dlciIpIGludm9rZXMgcGh5X2luaXRfaHcoKSB3 aGVuIE1ESU8gYnVzDQo+ID4+Pj4+Pj4+Pj4+IHJlc3VtZSwgaXQgd2lsbCBzb2Z0IHJlc2V0IFBI WSBpZiBQSFkgZHJpdmVyIGltcGxlbWVudHMNCj4gPj4+Pj4+Pj4+Pj4gc29mdF9yZXNldA0KPiA+ PiBjYWxsYmFjay4NCj4gPj4+Pj4+Pj4+Pj4gY29tbWl0IDc2NGQzMWNhY2ZlNCAoIm5ldDogcGh5 OiBtaWNyZWw6IHNldCBzb2Z0X3Jlc2V0DQo+ID4+Pj4+Pj4+Pj4+IGNhbGxiYWNrIHRvIGdlbnBo eV9zb2Z0X3Jlc2V0IGZvciBLU1o4MDgxIikgYWRkcyBzb2Z0X3Jlc2V0DQo+ID4+Pj4+Pj4+Pj4+ IGZvcg0KPiA+PiBLU1o4MDgxLg0KPiA+Pj4+Pj4+Pj4+PiBBZnRlciB0aGVzZSB0d28gcGF0Y2hl cywgSSBmb3VuZCBpLk1YNlVMIDE0eDE0IEVWSyB3aGljaA0KPiA+Pj4+Pj4+Pj4+PiBjb25uZWN0 ZWQgdG8gS1NaODA4MVJOQiBkb2Vzbid0IHdvcmsgYW55IG1vcmUgd2hlbiBzeXN0ZW0NCj4gPj4+ Pj4gcmVzdW1lDQo+ID4+Pj4+Pj4+Pj4+IGJhY2ssIE1BQw0KPiA+Pj4+Pj4+IGRyaXZlciBpcyBm ZWNfbWFpbi5jLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBJdCdzIG9idmlvdXMgdGhh dCBpbml0aWFsaXppbmcgUEhZIGhhcmR3YXJlIHdoZW4gTURJTyBidXMNCj4gPj4+Pj4+Pj4+Pj4g cmVzdW1lIGJhY2sgd291bGQgaW50cm9kdWNlIHNvbWUgcmVncmVzc2lvbiB3aGVuIFBIWQ0KPiA+ Pj4+Pj4+Pj4+PiBpbXBsZW1lbnRzIHNvZnRfcmVzZXQuIFdoZW4gSQ0KPiA+Pj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+Pj4gV2h5IGlzIHRoaXMgb2J2aW91cz8gUGxlYXNlIGVsYWJvcmF0ZSBvbiB3aHkg YSBzb2Z0IHJlc2V0DQo+ID4+Pj4+Pj4+Pj4gc2hvdWxkIGJyZWFrIHNvbWV0aGluZy4NCj4gPj4+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBhbSBkZWJ1Z2dpbmcsIEkgZm91bmQgUEhZIHdvcmtzIGZp bmUgaWYgTUFDIGRvZXNuJ3Qgc3VwcG9ydA0KPiA+Pj4+Pj4+Pj4+PiBzdXNwZW5kL3Jlc3VtZSBv ciBwaHlfc3RvcCgpL3BoeV9zdGFydCgpIGRvZXNuJ3QgYmVlbiBjYWxsZWQNCj4gPj4+Pj4+Pj4+ Pj4gZHVyaW5nIHN1c3BlbmQvcmVzdW1lLiBUaGlzIGxldCBtZSByZWFsaXplLCBQSFkgc3RhdGUN Cj4gPj4+Pj4+Pj4+Pj4gbWFjaGluZQ0KPiA+Pj4+Pj4+Pj4+PiBwaHlfc3RhdGVfbWFjaGluZSgp IGNvdWxkIGRvIHNvbWV0aGluZyBicmVha3MgdGhlIFBIWS4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4gQXMgd2Uga25vd24sIE1BQyByZXN1bWUgZmlyc3QgYW5kIHRoZW4gTURJTyBidXMg cmVzdW1lDQo+IHdoZW4NCj4gPj4+Pj4+Pj4+Pj4gc3lzdGVtIHJlc3VtZSBiYWNrIGZyb20gc3Vz cGVuZC4gV2hlbiBNQUMgcmVzdW1lLCB1c3VhbGx5DQo+IGl0DQo+ID4+Pj4+Pj4+Pj4+IHdpbGwg aW52b2tlDQo+ID4+Pj4+Pj4+Pj4+IHBoeV9zdGFydCgpIHdoZXJlIHRvIGNoYW5nZSBQSFkgc3Rh dGUgdG8gUEhZX1VQLCB0aGVuDQo+ID4+Pj4+Pj4+Pj4+IHRyaWdnZXIgdGhlDQo+ID4+Pj4+Pj4+ Pj4+IHN0YXQ+IG1hY2hpbmUgdG8gcnVuIG5vdy4gSW4gcGh5X3N0YXRlX21hY2hpbmUoKSwgaXQg d2lsbA0KPiA+Pj4+Pj4+Pj4+PiBzdGFydC9jb25maWcgYXV0by1uZWdvLCB0aGVuIGNoYW5nZSBQ SFkgc3RhdGUgdG8gUEhZX05PTElOSywNCj4gPj4+Pj4+Pj4+Pj4gd2hhdCB0byBuZXh0IGlzIHBl cmlvZGljYWxseSBjaGVjayBQSFkgbGluayBzdGF0dXMuIFdoZW4NCj4gPj4+Pj4+Pj4+Pj4gTURJ TyBidXMgcmVzdW1lLCBpdCB3aWxsIGluaXRpYWxpemUgUEhZIGhhcmR3YXJlLCBpbmNsdWRpbmcN Cj4gPj4+Pj4+Pj4+Pj4gc29mdF9yZXNldCwgd2hhdCB3b3VsZCBzb2Z0X3Jlc2V0IGFmZmVjdCBz ZWVtcyB2YXJpb3VzIGZyb20NCj4gPj4gZGlmZmVyZW50IFBIWXMuDQo+ID4+Pj4+Pj4+Pj4+IEZv ciBLU1o4MDgxUk5CLCB3aGVuIGl0IGluIFBIWV9OT0xJTksgc3RhdGUgYW5kIHRoZW4gcGVyZm9y bQ0KPiA+Pj4+Pj4+Pj4+PiBhIHNvZnQgcmVzZXQsDQo+ID4+Pj4+Pj4gaXQgd2lsbCBuZXZlciBj b21wbGV0ZSBhdXRvLW5lZ28uDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBXaHk/IFRoYXQg d291bGQgbmVlZCB0byBiZSBjaGVja2VkIGluIGRldGFpbC4gTWF5YmUgY2hpcA0KPiA+Pj4+Pj4+ Pj4+IGVycmF0YSBkb2N1bWVudGF0aW9uIHByb3ZpZGVzIGEgaGludC4NCj4gPj4+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IFRoZSBLU1o4MDgxIHNwZWMgc2F5cyB0aGUgZm9sbG93 aW5nIGFib3V0IGJpdCBCTUNSX1BET1dOOg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IElmIHNv ZnR3YXJlIHJlc2V0IChSZWdpc3RlciAwLjE1KSBpcyB1c2VkIHRvIGV4aXQgcG93ZXItZG93bg0K PiA+Pj4+Pj4+Pj4gbW9kZSAoUmVnaXN0ZXIgMC4xMSA9IDEpLCB0d28gc29mdHdhcmUgcmVzZXQg d3JpdGVzIChSZWdpc3Rlcg0KPiA+Pj4+Pj4+Pj4gMC4xNSA9IDEpIGFyZSByZXF1aXJlZC4gVGhl IGZpcnN0IHdyaXRlIGNsZWFycyBwb3dlci1kb3duDQo+ID4+Pj4+Pj4+PiBtb2RlOyB0aGUgc2Vj b25kIHdyaXRlIHJlc2V0cyB0aGUgY2hpcCBhbmQgcmUtbGF0Y2hlcyB0aGUgcGluDQo+ID4+Pj4+ Pj4+PiBzdHJhcHBpbmcgcGluDQo+ID4+IHZhbHVlcy4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ PiBNYXliZSB0aGlzIGNhdXNlcyB0aGUgaXNzdWUgeW91IHNlZSBhbmQgZ2VucGh5X3NvZnRfcmVz ZXQoKQ0KPiA+Pj4+Pj4+Pj4gaXNuJ3QgYXBwcm9wcmlhdGUgZm9yIHRoaXMgUEhZLiBQbGVhc2Ug cmUtdGVzdCB3aXRoIHRoZQ0KPiA+Pj4+Pj4+Pj4gS1NaODA4MSBzb2Z0IHJlc2V0IGZvbGxvd2lu ZyB0aGUgc3BlYyBjb21tZW50Lg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4g SW50ZXJlc3RpbmcuIE5ldmVyIGV4cGVjdGVkIHRoYXQgYmVoYXZpb3IuDQo+ID4+Pj4+Pj4+IFRo YW5rcyBmb3IgY2F0Y2hpbmcgaXQuIFNraW1tZWQgdGhyb3VnaCB0aGUgZGF0YXNoZWV0cy9lcnJh dGFzLg0KPiA+Pj4+Pj4+PiBUaGlzIGlzIHdoYXQgSSBmb3VuZCAobWljcmVsLmMpOg0KPiA+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+PiAxMC8xMDA6DQo+ID4+Pj4+Pj4+IDgwMDEgLSBVbmFmZmVjdGVkPw0K PiA+Pj4+Pj4+PiA4MDIxLzgwMzEgLSBEb3VibGUgcmVzZXQgYWZ0ZXIgUERPV04uDQo+ID4+Pj4+ Pj4+IDgwNDEgLSBFcnJhdGEuIFBET1dOIGJyb2tlbi4gUmVjb21tZW5kZWQgZG8gbm90IHVzZS4g VW5jbGVhciBpZg0KPiA+Pj4+Pj4+PiByZXNldCBzb2x2ZXMgdGhlIGlzc3VlIHNpbmNlIGVycmF0 YSBzYXlzIG5vIGVycm9yIGFmdGVyIHJlc2V0DQo+ID4+Pj4+Pj4+IGJ1dCBpcyBhbHNvIGNsYWlt aW5nIHRoYXQgb25seSB0b2dnbGluZyBQRE9XTiAobWF5KSBvciBwb3dlciB3aWxsDQo+IGhlbHAu DQo+ID4+Pj4+Pj4+IDgwNTEgLSBEb3VibGUgcmVzZXQgYWZ0ZXIgUERPV04uDQo+ID4+Pj4+Pj4+ IDgwNjEgLSBEb3VibGUgcmVzZXQgYWZ0ZXIgUERPV04uDQo+ID4+Pj4+Pj4+IDgwODEgLSBEb3Vi bGUgcmVzZXQgYWZ0ZXIgUERPV04uDQo+ID4+Pj4+Pj4+IDgwOTEgLSBEb3VibGUgcmVzZXQgYWZ0 ZXIgUERPV04uDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IDEwLzEwMC8xMDAwOg0KPiA+Pj4+Pj4+ PiBOb3RoaW5nIGluIGdpZ2FiaXQgYWZhaWNzLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBTd2l0 Y2hlczoNCj4gPj4+Pj4+Pj4gODg2MiAtIE5vdCBhZmZlY3RlZD8NCj4gPj4+Pj4+Pj4gODg2MyAt IEVycmF0YS4gUERPV04gYnJva2VuLiBSZXNldCB3aWxsIG5vdCBoZWxwLiBXb3JrYXJvdW5kDQo+ IGV4aXN0cy4NCj4gPj4+Pj4+Pj4gODg2NCAtIE5vdCBhZmZlY3RlZD8NCj4gPj4+Pj4+Pj4gODg3 MyAtIEVycmF0YS4gUERPV04gYnJva2VuLiBSZXNldCB3aWxsIG5vdCBoZWxwLiBXb3JrYXJvdW5k DQo+IGV4aXN0cy4NCj4gPj4+Pj4+Pj4gOTQ3NyAtIEVycmF0YS4gUERPV04gYnJva2VuLiBXaWxs IHJhbmRvbWx5IGNhdXNlIGxpbmsgZmFpbHVyZQ0KPiA+Pj4+Pj4+PiBvbiBhZGphY2VudCBsaW5r cy4gRG8gbm90IHVzZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhpcyBjZXJ0YWlubHkgZXhw bGFpbnMgYSBsb3QuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFRo aXMgcGF0Y2ggY2hhbmdlcyBQSFkgc3RhdGUgdG8gUEhZX1VQIHdoZW4gTURJTyBidXMNCj4gcmVz dW1lDQo+ID4+Pj4+Pj4+Pj4+IGJhY2ssIGl0IHNob3VsZCBiZSByZWFzb25hYmxlIGFmdGVyIFBI WSBoYXJkd2FyZQ0KPiA+Pj4+Pj4+Pj4+PiByZS1pbml0aWFsaXplZC4gQWxzbyBnaXZlIHN0YXRl IG1hY2hpbmUgYSBjaGFuY2UgdG8NCj4gPj4+Pj4+Pj4+Pj4gc3RhcnQvY29uZmlnDQo+ID4+IGF1 dG8tbmVnbyBhZ2Fpbi4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+ IElmIHRoZSBNQUMgZHJpdmVyIGNhbGxzIHBoeV9zdG9wKCkgb24gc3VzcGVuZCwgdGhlbg0KPiA+ Pj4+Pj4+Pj4+IHBoeWRldi0+c3VzcGVuZGVkIGlzIHRydWUgYW5kIG1kaW9fYnVzX3BoeV9tYXlf c3VzcGVuZCgpDQo+ID4+Pj4+Pj4+Pj4gcGh5ZGV2LT5yZXR1cm5zDQo+ID4+Pj4+Pj4+Pj4gZmFs c2UuIEFzIGEgY29uc2VxdWVuY2UNCj4gPj4+Pj4+Pj4+PiBwaHlkZXYtPnN1c3BlbmRlZF9ieV9t ZGlvX2J1cyBpcyBmYWxzZSBhbmQNCj4gPj4+Pj4+Pj4+PiBwaHlkZXYtPm1kaW9fYnVzX3BoeV9y ZXN1bWUoKQ0KPiA+Pj4+Pj4+Pj4+IHNraXBzIHRoZSBQSFkgaHcgaW5pdGlhbGl6YXRpb24uDQo+ ID4+Pj4+Pj4+Pj4gUGxlYXNlIGFsc28gbm90ZSB0aGF0IG1kaW9fYnVzX3BoeV9zdXNwZW5kKCkg Y2FsbHMNCj4gPj4+Pj4+Pj4+PiBwaHlfc3RvcF9tYWNoaW5lKCkgdGhhdCBzZXRzIHRoZSBzdGF0 ZSB0byBQSFlfVVAuDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBGb3Jn b3QgdGhhdCBNRElPIGJ1cyBzdXNwZW5kIGlzIGRvbmUgYmVmb3JlIE1BQyBkcml2ZXIgc3VzcGVu ZC4NCj4gPj4+Pj4+Pj4+IFRoZXJlZm9yZSBkaXNyZWdhcmQgdGhpcyBwYXJ0IGZvciBub3cuDQo+ ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IEhhdmluZyBzYWlkIHRoYXQgdGhlIGN1cnJlbnQgYXJn dW1lbnRhdGlvbiBpc24ndCBjb252aW5jaW5nLg0KPiA+Pj4+Pj4+Pj4+IEknbSBub3QgYXdhcmUg b2Ygc3VjaCBpc3N1ZXMgb24gb3RoZXIgc3lzdGVtcywgdGhlcmVmb3JlIGl0J3MNCj4gPj4+Pj4+ Pj4+PiBsaWtlbHkgdGhhdCBzb21ldGhpbmcgaXMgc3lzdGVtLWRlcGVuZGVudC4NCj4gPj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFBsZWFzZSBjaGVjayB0aGUgZXhhY3QgY2FsbCBzZXF1ZW5jZSBv biB5b3VyIHN5c3RlbSwgbWF5YmUgaXQNCj4gPj4+Pj4+Pj4+PiBwcm92aWRlcyBhIGhpbnQuDQo+ ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogSm9ha2ltIFpoYW5nIDxx aWFuZ3FpbmcuemhhbmdAbnhwLmNvbT4NCj4gPj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4+ ICBkcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIHwgNyArKysrKysrDQo+ID4+Pj4+Pj4+Pj4+ ICAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jDQo+ID4+Pj4+ Pj4+Pj4+IGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBpbmRleA0KPiA+Pj4+Pj4+Pj4+ PiBjYzM4ZTMyNjQwNWEuLjMxMmE2ZjY2MjQ4MQ0KPiA+Pj4+Pj4+Pj4+PiAxMDA2NDQNCj4gPj4+ Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYw0KPiA+Pj4+Pj4+Pj4+ PiArKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jDQo+ID4+Pj4+Pj4+Pj4+IEBAIC0z MDYsNiArMzA2LDEzIEBAIHN0YXRpYyBfX21heWJlX3VudXNlZCBpbnQNCj4gPj4+Pj4+PiBtZGlv X2J1c19waHlfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPj4+Pj4+Pj4+Pj4gIAlyZXQg PSBwaHlfcmVzdW1lKHBoeWRldik7DQo+ID4+Pj4+Pj4+Pj4+ICAJaWYgKHJldCA8IDApDQo+ID4+ Pj4+Pj4+Pj4+ICAJCXJldHVybiByZXQ7DQo+ID4+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+Pj4g KwkvKiBQSFkgc3RhdGUgY291bGQgYmUgY2hhbmdlZCB0byBQSFlfTk9MSU5LIGZyb20gTUFDDQo+ ID4+Pj4+Pj4+Pj4+ICtjb250cm9sbGVyDQo+ID4+Pj4+Pj4gcmVzdW1lDQo+ID4+Pj4+Pj4+Pj4+ ICsJICogcm91bnRlIHdpdGggcGh5X3N0YXJ0KCksIGhlcmUgY2hhbmdlIHRvIFBIWV9VUCBhZnRl cg0KPiA+Pj4+Pj4+IHJlLWluaXRpYWxpemluZw0KPiA+Pj4+Pj4+Pj4+PiArCSAqIFBIWSBoYXJk d2FyZSwgbGV0IFBIWSBzdGF0ZSBtYWNoaW5lIHRvIHN0YXJ0L2NvbmZpZw0KPiA+Pj4+Pj4+Pj4+ PiArYXV0by1uZWdvDQo+ID4+Pj4+Pj4gYWdhaW4uDQo+ID4+Pj4+Pj4+Pj4+ICsJICovDQo+ID4+ Pj4+Pj4+Pj4+ICsJcGh5ZGV2LT5zdGF0ZSA9IFBIWV9VUDsNCj4gPj4+Pj4+Pj4+Pj4gKw0KPiA+ Pj4+Pj4+Pj4+PiAgbm9fcmVzdW1lOg0KPiA+Pj4+Pj4+Pj4+PiAgCWlmIChwaHlkZXYtPmF0dGFj aGVkX2RldiAmJiBwaHlkZXYtPmFkanVzdF9saW5rKQ0KPiA+Pj4+Pj4+Pj4+PiAgCQlwaHlfc3Rh cnRfbWFjaGluZShwaHlkZXYpOw0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gVGhpcyBpcyBhIHF1aWNrIGRy YWZ0IG9mIHRoZSBtb2RpZmllZCBzb2Z0IHJlc2V0IGZvciBLU1o4MDgxLg0KPiA+Pj4+Pj4+IFNv bWUgdGVzdHMgd291bGQgYmUgYXBwcmVjaWF0ZWQuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+ Pj4+PiBJIHRlc3QgdGhpcyBwYXRjaCBhdCBteSBzaWRlLCB1bmZvcnR1bmF0ZWx5LCBpdCBzdGls bCBjYW4ndCB3b3JrLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgaGF2ZSBub3QgZm91bmQgd2hhdCBz b2Z0IHJlc2V0IHdvdWxkIGFmZmVjdCBpbiA4MDgxIHNwZWMsIGlzDQo+ID4+Pj4+PiB0aGVyZSBh bmcgY29tbW9uIERlc2NyaXB0aW9uIGZvciBkaWZmZXJlbnQgUEhZcz8NCj4gPj4+Pj4+DQo+ID4+ Pj4+DQo+ID4+Pj4+IFlvdSBjYW4gY2hlY2sgdGhlIGNsYXVzZSAyMiBzcGVjOiA4MDIuMyAyMi4y LjQuMS4xDQo+ID4+Pj4+DQo+ID4+Pj4+IEFwYXJ0IGZyb20gdGhhdCB5b3UgY2FuIGNoZWNrIEJN Q1IgdmFsdWUgYW5kIHdoaWNoIG1vZGVzIHlvdXIgUEhZDQo+ID4+Pj4+IGFkdmVydGlzZXMgYWZ0 ZXIgYSBzb2Z0IHJlc2V0LiBJZiB0aGUgUEhZIGluZGVlZCB3b3VsZG4ndCByZXN0YXJ0DQo+ID4+ Pj4+IGFuZWcgYWZ0ZXIgYSBzb2Z0IHJlc2V0LCB0aGVuIGl0IHdvdWxkIGJlIHRoZSBvbmx5IG9u ZSB3aXRoIHRoaXMNCj4gPj4+Pj4gYmVoYXZpb3IgSSBrbm93LiBBbmQgSSdkIHdvbmRlciB3aHkg dGhlcmUgYXJlbid0IG1vcmUgc3VjaCByZXBvcnRzLg0KPiA+Pj4+DQo+ID4+Pj4gSGkgSGVpbmVy LA0KPiA+Pj4+DQo+ID4+Pj4gV2UgaGF2ZSByZWFzb25zIHRvIGJlbGlldmUgaXQgaXMgYSB3ZWly ZCBiZWhhdmlvciBvZiBLU1o4MDgxLiBJDQo+ID4+Pj4gaGF2ZSBhbm90aGVyIHR3byBQSFlzIGF0 IG15IHNpZGUsIEFSODAzMSBhbmQgUlRMODIxMUZELCB0aGV5IGNhbg0KPiA+Pj4+IHdvcmsgZmlu ZSBpZg0KPiA+PiBzb2Z0X3Jlc2V0IGltcGxlbWVudGVkLg0KPiA+Pj4+DQo+ID4+Pj4gQXMgY29t bWl0IG1lc3NhZ2UgZGVzY3JpYmVkLCBwaHlfc3RhcnQoKSB3b3VsZCBjaGFuZ2UgUEhZIHN0YXRl IHRvDQo+ID4+IFBIWV9VUCBmaW5hbGx5IHRvIFBIWV9OT0xJTksgd2hlbiBNQUMgcmVzdW1lLg0K PiA+Pj4+IEFmdGVyIE1ESU8gYnVzIHJlc3VtZSBiYWNrLCBpdCB3aWxsIHBlcmlvZGljYWxseSBj aGVjayBsaW5rIHN0YXR1cy4NCj4gPj4+PiBJIGRpZCBiZWxvdw0KPiA+PiBjb2RlIGNoYW5nZSB0 byBkdW1wIGFsbCBQSFkgcmVnaXN0ZXJzLg0KPiA+Pj4+DQo+ID4+Pj4gLS0tIGEvZHJpdmVycy9u ZXQvcGh5L3BoeS5jDQo+ID4+Pj4gKysrIGIvZHJpdmVycy9uZXQvcGh5L3BoeS5jDQo+ID4+Pj4g QEAgLTM1LDcgKzM1LDcgQEANCj4gPj4+PiAgI2luY2x1ZGUgPG5ldC9nZW5ldGxpbmsuaD4NCj4g Pj4+PiAgI2luY2x1ZGUgPG5ldC9zb2NrLmg+DQo+ID4+Pj4NCj4gPj4+PiAtI2RlZmluZSBQSFlf U1RBVEVfVElNRSBIWg0KPiA+Pj4+ICsjZGVmaW5lIFBIWV9TVEFURV9USU1FICgxMCAqIEhaKQ0K PiA+Pj4+DQo+ID4+Pj4gICNkZWZpbmUgUEhZX1NUQVRFX1NUUihfc3RhdGUpICAgICAgICAgICAg ICAgICAgXA0KPiA+Pj4+ICAgICAgICAgY2FzZSBQSFlfIyNfc3RhdGU6ICAgICAgICAgICAgICAg ICAgICAgIFwNCj4gPj4+PiBAQCAtNzM4LDYgKzczOCwyOCBAQCBzdGF0aWMgaW50IHBoeV9jaGVj a19saW5rX3N0YXR1cyhzdHJ1Y3QNCj4gPj4+PiBwaHlfZGV2aWNlDQo+ID4+ICpwaHlkZXYpDQo+ ID4+Pj4gICAgICAgICBpZiAoZXJyKQ0KPiA+Pj4+ICAgICAgICAgICAgICAgICByZXR1cm4gZXJy Ow0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIm9mZnNldCAweDAwIGRhdGEgPSAlMHhc biIsIHBoeV9yZWFkKHBoeWRldiwgMHgwMCkpOw0KPiA+Pj4+ICsgICAgICAgcHJpbnRrKCJvZmZz ZXQgMHgwMSBkYXRhID0gJTB4XG4iLCBwaHlfcmVhZChwaHlkZXYsIDB4MDEpKTsNCj4gPj4+PiAr ICAgICAgIHByaW50aygib2Zmc2V0IDB4MDIgZGF0YSA9ICUweFxuIiwgcGh5X3JlYWQocGh5ZGV2 LCAweDAyKSk7DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIm9mZnNldCAweDAzIGRhdGEgPSAlMHhc biIsIHBoeV9yZWFkKHBoeWRldiwgMHgwMykpOw0KPiA+Pj4+ICsgICAgICAgcHJpbnRrKCJvZmZz ZXQgMHgwNCBkYXRhID0gJTB4XG4iLCBwaHlfcmVhZChwaHlkZXYsIDB4MDQpKTsNCj4gPj4+PiAr ICAgICAgIHByaW50aygib2Zmc2V0IDB4MDUgZGF0YSA9ICUweFxuIiwgcGh5X3JlYWQocGh5ZGV2 LCAweDA1KSk7DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIm9mZnNldCAweDA2IGRhdGEgPSAlMHhc biIsIHBoeV9yZWFkKHBoeWRldiwgMHgwNikpOw0KPiA+Pj4+ICsgICAgICAgcHJpbnRrKCJvZmZz ZXQgMHgwNyBkYXRhID0gJTB4XG4iLCBwaHlfcmVhZChwaHlkZXYsIDB4MDcpKTsNCj4gPj4+PiAr ICAgICAgIHByaW50aygib2Zmc2V0IDB4MDggZGF0YSA9ICUweFxuIiwgcGh5X3JlYWQocGh5ZGV2 LCAweDA4KSk7DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIm9mZnNldCAweDA5IGRhdGEgPSAlMHhc biIsIHBoeV9yZWFkKHBoeWRldiwgMHgwOSkpOw0KPiA+Pj4+ICsgICAgICAgcHJpbnRrKCJvZmZz ZXQgMHgxMCBkYXRhID0gJTB4XG4iLCBwaHlfcmVhZChwaHlkZXYsIDB4MTApKTsNCj4gPj4+PiAr ICAgICAgIHByaW50aygib2Zmc2V0IDB4MTEgZGF0YSA9ICUweFxuIiwgcGh5X3JlYWQocGh5ZGV2 LCAweDExKSk7DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIm9mZnNldCAweDE1IGRhdGEgPSAlMHhc biIsIHBoeV9yZWFkKHBoeWRldiwgMHgxNSkpOw0KPiA+Pj4+ICsgICAgICAgcHJpbnRrKCJvZmZz ZXQgMHgxNiBkYXRhID0gJTB4XG4iLCBwaHlfcmVhZChwaHlkZXYsIDB4MTYpKTsNCj4gPj4+PiAr ICAgICAgIHByaW50aygib2Zmc2V0IDB4MTcgZGF0YSA9ICUweFxuIiwgcGh5X3JlYWQocGh5ZGV2 LCAweDE3KSk7DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIm9mZnNldCAweDE4IGRhdGEgPSAlMHhc biIsIHBoeV9yZWFkKHBoeWRldiwgMHgxOCkpOw0KPiA+Pj4+ICsgICAgICAgcHJpbnRrKCJvZmZz ZXQgMHgxYiBkYXRhID0gJTB4XG4iLCBwaHlfcmVhZChwaHlkZXYsIDB4MWIpKTsNCj4gPj4+PiAr ICAgICAgIHByaW50aygib2Zmc2V0IDB4MWMgZGF0YSA9ICUweFxuIiwgcGh5X3JlYWQocGh5ZGV2 LCAweDFjKSk7DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIm9mZnNldCAweDFkIGRhdGEgPSAlMHhc biIsIHBoeV9yZWFkKHBoeWRldiwgMHgxZCkpOw0KPiA+Pj4+ICsgICAgICAgcHJpbnRrKCJvZmZz ZXQgMHgxZSBkYXRhID0gJTB4XG4iLCBwaHlfcmVhZChwaHlkZXYsIDB4MWUpKTsNCj4gPj4+PiAr ICAgICAgIHByaW50aygib2Zmc2V0IDB4MWYgZGF0YSA9ICUweFxuIiwgcGh5X3JlYWQocGh5ZGV2 LCAweDFmKSk7DQo+ID4+Pj4gKyAgICAgICBwcmludGsoIlxuXG4iKTsNCj4gPj4+PiAgICAgICAg IGlmIChwaHlkZXYtPmxpbmsgJiYgcGh5ZGV2LT5zdGF0ZSAhPSBQSFlfUlVOTklORykgew0KPiA+ Pj4+ICAgICAgICAgICAgICAgICBwaHlfY2hlY2tfZG93bnNoaWZ0KHBoeWRldik7DQo+ID4+Pj4g ICAgICAgICAgICAgICAgIHBoeWRldi0+c3RhdGUgPSBQSFlfUlVOTklORzsNCj4gPj4+Pg0KPiA+ Pj4+IEFmdGVyIE1ESU8gYnVzIHJlc3VtZSBiYWNrLCByZXN1bHRzIGFzIGJlbG93Og0KPiA+Pj4+ DQo+ID4+Pj4gWyAgMTE5LjU0NTM4M10gb2Zmc2V0IDB4MDAgZGF0YSA9IDExMDAgWyAgMTE5LjU0 OTIzN10gb2Zmc2V0IDB4MDENCj4gPj4+PiBkYXRhID0gNzg0OSBbICAxMTkuNTYzMTI1XSBvZmZz ZXQgMHgwMiBkYXRhID0gMjIgWyAgMTE5LjU2NjgxMF0NCj4gPj4+PiBvZmZzZXQgMHgwMyBkYXRh ID0gMTU2MCBbICAxMTkuNTcwNTk3XSBvZmZzZXQgMHgwNCBkYXRhID0gODVlMSBbDQo+ID4+Pj4g MTE5LjU4ODAxNl0gb2Zmc2V0IDB4MDUgZGF0YSA9IDAgWyAgMTE5LjU5Mjg5MV0gb2Zmc2V0IDB4 MDYgZGF0YSA9DQo+ID4+Pj4gNCBbICAxMTkuNTk2NDUyXSBvZmZzZXQgMHgwNyBkYXRhID0gMjAw MSBbICAxMTkuNjAwMjMzXSBvZmZzZXQgMHgwOA0KPiA+Pj4+IGRhdGEgPSAwIFsgIDExOS42MTc4 NjRdIG9mZnNldCAweDA5IGRhdGEgPSAwIFsgIDExOS42MjU5OTBdIG9mZnNldA0KPiA+Pj4+IDB4 MTAgZGF0YSA9IDAgWyAgMTE5LjYyOTU3Nl0gb2Zmc2V0IDB4MTEgZGF0YSA9IDAgWyAgMTE5LjY0 MjczNV0NCj4gPj4+PiBvZmZzZXQgMHgxNSBkYXRhID0gMCBbICAxMTkuNjQ2MzMyXSBvZmZzZXQg MHgxNiBkYXRhID0gMjAyIFsNCj4gPj4+PiAxMTkuNjUwMDMwXSBvZmZzZXQgMHgxNyBkYXRhID0g NWMwMiBbICAxMTkuNjY4MDU0XSBvZmZzZXQgMHgxOCBkYXRhDQo+ID4+Pj4gPQ0KPiA+Pj4+IDgw MSBbICAxMTkuNjcyOTk3XSBvZmZzZXQgMHgxYiBkYXRhID0gMCBbICAxMTkuNjc2NTY1XSBvZmZz ZXQgMHgxYw0KPiA+Pj4+IGRhdGEgPSAwIFsgIDExOS42ODAwODRdIG9mZnNldCAweDFkIGRhdGEg PSAwIFsgIDExOS42OTgwMzFdIG9mZnNldA0KPiA+Pj4+IDB4MWUgZGF0YSA9IDIwIFsgIDExOS43 MDYyNDZdIG9mZnNldCAweDFmIGRhdGEgPSA4MTkwIFsNCj4gPj4+PiAxMTkuNzA5OTg0XSBbICAx MTkuNzA5OTg0XSBbICAxMjAuMTgyMTIwXSBvZmZzZXQgMHgwMCBkYXRhID0gMTAwIFsNCj4gPj4+ PiAxMjAuMTg1ODk0XSBvZmZzZXQgMHgwMSBkYXRhID0gNzg0ZCBbICAxMjAuMTg5NjgxXSBvZmZz ZXQgMHgwMiBkYXRhDQo+ID4+Pj4gPSAyMiBbIDEyMC4yMDYzMTldIG9mZnNldCAweDAzIGRhdGEg PSAxNTYwIFsgIDEyMC4yMTAxNzFdIG9mZnNldA0KPiA+Pj4+IDB4MDQgZGF0YSA9DQo+ID4+Pj4g ODA2MSBbICAxMjAuMjI1MzUzXSBvZmZzZXQgMHgwNSBkYXRhID0gMCBbICAxMjAuMjI4OTQ4XSBv ZmZzZXQgMHgwNg0KPiA+Pj4+IGRhdGEgPSA0IFsgIDEyMC4yNDI5MzZdIG9mZnNldCAweDA3IGRh dGEgPSAyMDAxIFsgIDEyMC4yNDY3OTJdDQo+ID4+Pj4gb2Zmc2V0DQo+ID4+Pj4gMHgwOCBkYXRh ID0gMCBbICAxMjAuMjUwMzEzXSBvZmZzZXQgMHgwOSBkYXRhID0gMCBbICAxMjAuMjY2NzQ4XQ0K PiA+Pj4+IG9mZnNldCAweDEwIGRhdGEgPSAwIFsgIDEyMC4yNzAzMzVdIG9mZnNldCAweDExIGRh dGEgPSAwIFsNCj4gPj4+PiAxMjAuMjg0MTY3XSBvZmZzZXQgMHgxNSBkYXRhID0gMCBbICAxMjAu Mjg3NzYwXSBvZmZzZXQgMHgxNiBkYXRhID0NCj4gPj4+PiAyMDIgWyAgMTIwLjMwMTAzMV0gb2Zm c2V0IDB4MTcgZGF0YSA9IDNjMDIgWyAgMTIwLjMxMzIwOV0gb2Zmc2V0DQo+ID4+Pj4gMHgxOCBk YXRhID0gODAxIFsgIDEyMC4zMTY5ODNdIG9mZnNldCAweDFiIGRhdGEgPSAwIFsgIDEyMC4zMjA1 MTNdDQo+ID4+Pj4gb2Zmc2V0IDB4MWMgZGF0YSA9IDEgWyAgMTIwLjMzNjU4OV0gb2Zmc2V0IDB4 MWQgZGF0YSA9IDAgWw0KPiA+Pj4+IDEyMC4zNDAxODRdIG9mZnNldCAweDFlIGRhdGEgPSAxMTUg WyAgMTIwLjM1NTM1N10gb2Zmc2V0IDB4MWYgZGF0YQ0KPiA+Pj4+ID0gODE5MCBbIDEyMC4zNTkx MTJdIFsgIDEyMC4zNTkxMTJdIFsgIDEyOS43ODUzOTZdIG9mZnNldCAweDAwIGRhdGENCj4gPj4+ PiA9IDExMDAgWyAxMjkuNzg5MjUyXSBvZmZzZXQgMHgwMSBkYXRhID0gNzg0OSBbICAxMjkuODA5 OTUxXSBvZmZzZXQNCj4gPj4+PiAweDAyIGRhdGEgPQ0KPiA+Pj4+IDIyIFsgIDEyOS44MTUwMThd IG9mZnNldCAweDAzIGRhdGEgPSAxNTYwIFsgIDEyOS44MTg4NDVdIG9mZnNldA0KPiA+Pj4+IDB4 MDQgZGF0YSA9IDg1ZTEgWyAgMTI5LjgzNTgwOF0gb2Zmc2V0IDB4MDUgZGF0YSA9IDAgWyAgMTI5 LjgzOTM5OF0NCj4gPj4+PiBvZmZzZXQNCj4gPj4+PiAweDA2IGRhdGEgPSA0IFsgIDEyOS44NTQ1 MTRdIG9mZnNldCAweDA3IGRhdGEgPSAyMDAxIFsgIDEyOS44NTgzNzFdDQo+ID4+Pj4gb2Zmc2V0 IDB4MDggZGF0YSA9IDAgWyAgMTI5Ljg3MzM1N10gb2Zmc2V0IDB4MDkgZGF0YSA9IDAgWw0KPiA+ Pj4+IDEyOS44NzY5NTRdIG9mZnNldCAweDEwIGRhdGEgPSAwIFsgIDEyOS44ODA0NzJdIG9mZnNl dCAweDExIGRhdGEgPQ0KPiA+Pj4+IDAgWyAgMTI5Ljg5NjQ1MF0gb2Zmc2V0IDB4MTUgZGF0YSA9 IDAgWyAgMTI5LjkwMDAzOF0gb2Zmc2V0IDB4MTYNCj4gPj4+PiBkYXRhID0NCj4gPj4+PiAyMDIg WyAgMTI5LjkxNTA0MV0gb2Zmc2V0IDB4MTcgZGF0YSA9IDVjMDIgWyAgMTI5LjkxODg4OV0gb2Zm c2V0DQo+ID4+Pj4gMHgxOCBkYXRhID0gODAxIFsgIDEyOS45MzI3MzVdIG9mZnNldCAweDFiIGRh dGEgPSAwIFsgIDEyOS45NDY4MzBdDQo+ID4+Pj4gb2Zmc2V0IDB4MWMgZGF0YSA9IDAgWyAgMTI5 Ljk1MDQyNF0gb2Zmc2V0IDB4MWQgZGF0YSA9IDAgWw0KPiA+Pj4+IDEyOS45NjQ1ODVdIG9mZnNl dCAweDFlIGRhdGEgPSAwIFsgIDEyOS45NjgxOTJdIG9mZnNldCAweDFmIGRhdGEgPQ0KPiA+Pj4+ IDgxOTAgWyAxMjkuOTcyOTM4XSBbICAxMjkuOTcyOTM4XSBbICAxMzAuNDI1MTI1XSBvZmZzZXQg MHgwMCBkYXRhID0NCj4gPj4+PiAxMDAgWyAxMzAuNDI4ODg5XSBvZmZzZXQgMHgwMSBkYXRhID0g Nzg0ZCBbICAxMzAuNDQyNjcxXSBvZmZzZXQNCj4gPj4+PiAweDAyIGRhdGEgPQ0KPiA+Pj4+IDIy IFsgIDEzMC40NDYzNjBdIG9mZnNldCAweDAzIGRhdGEgPSAxNTYwIFsgIDEzMC40NTAxNDJdIG9m ZnNldA0KPiA+Pj4+IDB4MDQgZGF0YSA9IDgwNjEgWyAgMTMwLjQ2NzIwN10gb2Zmc2V0IDB4MDUg ZGF0YSA9IDAgWyAgMTMwLjQ3MDc4OV0NCj4gPj4+PiBvZmZzZXQNCj4gPj4+PiAweDA2IGRhdGEg PSA0IFsgIDEzMC40ODUwNzFdIG9mZnNldCAweDA3IGRhdGEgPSAyMDAxIFsgIDEzMC40ODg5MzRd DQo+ID4+Pj4gb2Zmc2V0IDB4MDggZGF0YSA9IDAgWyAgMTMwLjUwNDMyMF0gb2Zmc2V0IDB4MDkg ZGF0YSA9IDAgWw0KPiA+Pj4+IDEzMC41MDc5MTFdIG9mZnNldCAweDEwIGRhdGEgPSAwIFsgIDEz MC41MjA5NTBdIG9mZnNldCAweDExIGRhdGEgPQ0KPiA+Pj4+IDAgWyAgMTMwLjUzMjg2NV0gb2Zm c2V0IDB4MTUgZGF0YSA9IDAgWyAgMTMwLjUzNjQ2MV0gb2Zmc2V0IDB4MTYNCj4gPj4+PiBkYXRh ID0NCj4gPj4+PiAyMDIgWyAgMTMwLjU0MDE1Nl0gb2Zmc2V0IDB4MTcgZGF0YSA9IDNjMDIgWyAg MTMwLjU1NzIxOF0gb2Zmc2V0DQo+ID4+Pj4gMHgxOCBkYXRhID0gODAxIFsgIDEzMC41NjA5ODdd IG9mZnNldCAweDFiIGRhdGEgPSAwIFsgIDEzMC41NzUxNThdDQo+ID4+Pj4gb2Zmc2V0IDB4MWMg ZGF0YSA9IDEgWyAgMTMwLjU3ODc1NF0gb2Zmc2V0IDB4MWQgZGF0YSA9IDAgWw0KPiA+Pj4+IDEz MC41OTM1NDNdIG9mZnNldCAweDFlIGRhdGEgPSAxMTUgWyAgMTMwLjU5NzMxMl0gb2Zmc2V0IDB4 MWYgZGF0YQ0KPiA+Pj4+ID0gODE5MA0KPiA+Pj4+DQo+ID4+Pj4gV2UgY2FuIHNlZSB0aGF0IEJN Q1IgYW5kIEJNU1IgY2hhbmdlcyBmcm9tIDB4MTEwMCwweDc4NDkgdG8NCj4gPj4gMHgxMDAsMHg3 ODRkIChCTUNSWzEyXSBiaXQgYW5kIEJNU1JbMl0pLCBhbmQgbG9vcCBpdC4NCj4gPj4+PiBBYm92 ZSBwcm9jZXNzIGlzIGF1dG8tbmVnbyBlbmFibGVkLCBsaW5rIGlzIGRvd24sIGF1dG8tbmVnbyBp cw0KPiA+Pj4+IGRpc2FibGVkLCBsaW5rDQo+ID4+IGlzIHVwLiBBbmQgYXV0by1uZWdvIGNvbXBs ZXRlIGJpdCBpcyBhbHdheXMgMC4NCj4gPj4+Pg0KPiA+Pj4+IFBIWSBzZWVtcyBiZWNvbWUgdW5z dGFibGUgaWYgc29mdCByZXNldCBhZnRlciBzdGFydC9jb25maWcNCj4gPj4+PiBhdXRvLW5lZ28u IEkgYWxzbw0KPiA+PiB3YW50IHRvIGZpeCBpdCBpbiBtaWNyZWwgZHJpdmVyLCBidXQgZmFpbGVk Lg0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gV2FpdGluZyBmb3IgQU5FR19DT01QTEVURSB0byBiZSBz ZXQgd291bGRuJ3QgYmUgYSBnb29kIG9wdGlvbi4gQW5lZw0KPiA+Pj4gbWF5IG5ldmVyIGNvbXBs ZXRlIGZvciBkaWZmZXJlbnQgcmVhc29ucywgZS5nLiBubyBwaHlzaWNhbCBsaW5rLiBBbmQNCj4g Pj4+IGV2ZW4gaWYgd2UgdXNlIGEgdGltZW91dCB0aGlzIG1heSBhZGQgdW53YW50ZWQgZGVsYXlz Lg0KPiA+Pj4NCj4gPj4+PiBEbyB5b3UgaGF2ZSBhbnkgb3RoZXIgaW5zaWdodHMgdGhhdCBjYW4g aGVscCBtZSBmdXJ0aGVyIGxvY2F0ZSB0aGUgaXNzdWU/DQo+ID4+IFRoYW5rcy4NCj4gPj4+Pg0K PiA+Pj4NCj4gPj4+IEkgdGhpbmsgY3VycmVudCBNQUMvUEhZIFBNIGhhbmRsaW5nIGlzbid0IHBl cmZlY3QuIE9mdGVuIHdlIGhhdmUgdGhlDQo+ID4+PiBmb2xsb3dpbmcNCj4gPj4+IHNjZW5hcmlv Og0KPiA+Pj4NCj4gPj4+ICpzdXNwZW5kKg0KPiA+Pj4gMS4gUEhZIGlzIHN1c3BlbmRlZCAobWRp b19idXNfcGh5X3N1c3BlbmQpIDIuIE1BQyBzdXNwZW5kIGNhbGxiYWNrDQo+ID4+PiAodHlwaWNh bGx5IGludm9sdmluZyBwaHlfc3RvcCgpKQ0KPiA+Pj4NCj4gPj4+ICpyZXN1bWUqDQo+ID4+PiAx LiBNQUMgcmVzdW1lIGNhbGxiYWNrICh0eXBpY2FsbHkgaW52b2x2aW5nIHBoeV9zdGFydCgpKSAy LiBQSFkgaXMNCj4gPj4+IHJlc3VtZWQgKG1kaW9fYnVzX3BoeV9yZXN1bWUpLCBpbmNsLiBjYWxs aW5nIHBoeV9pbml0X2h3KCkNCj4gPj4+DQo+ID4+PiBDYWxsaW5nIHBoeV9pbml0X2h3KCkgYWZ0 ZXIgcGh5X3N0YXJ0KCkgZG9lc24ndCBsb29rIHJpZ2h0Lg0KPiA+Pj4gSXQgc2VlbXMgdG8gd29y ayBpbiBtb3N0IGNhc2VzLCBidXQgdGhlcmUncyBhIGNlcnRhaW4gcmlzayB0aGF0DQo+ID4+PiBw aHlfaW5pdF9odygpIG92ZXJ3cml0ZXMgc29tZXRoaW5nLCBlLmcuIHRoZSBhZHZlcnRpc2VkIG1v ZGVzLg0KPiA+Pj4gSSB0aGluayB3ZSBoYXZlIHR3byB2YWxpZCBzY2VuYXJpb3M6DQo+ID4+Pg0K PiA+Pj4gMS4gcGh5bGliIFBNIGNhbGxiYWNrcyBhcmUgdXNlZCwgdGhlbiB0aGUgTUFDIGRyaXZl ciBzaG91bGRuJ3QNCj4gPj4+ICAgIHRvdWNoIHRoZSBQSFkgaW4gaXRzIFBNIGNhbGxiYWNrcywg ZXNwZWNpYWxseSBub3QgY2FsbA0KPiA+Pj4gICAgcGh5X3N0b3AvcGh5X3N0YXJ0Lg0KPiA+Pj4N Cj4gPj4+IDIuIE1BQyBQTSBjYWxsYmFja3MgdGFrZSBjYXJlIGFsc28gb2YgdGhlIFBIWS4gVGhl biBJIHRoaW5rIHdlIHdvdWxkDQo+ID4+PiAgICBuZWVkIGEgZmxhZyBhdCB0aGUgcGh5X2Rldmlj ZSB0ZWxsaW5nIGl0IHRvIG1ha2UgdGhlIFBIWSBQTQ0KPiA+Pj4gICAgY2FsbGJhY2tzIGEgbm8t b3AuDQo+ID4+Pg0KPiA+Pj4gQW5kcmV3LCBSdXNzZWxsOiBXaGF0IGRvIHlvdSB0aGluaz8NCj4g Pj4+DQo+ID4+Pj4gQmVzdCBSZWdhcmRzLA0KPiA+Pj4+IEpvYWtpbSBaaGFuZw0KPiA+Pj4+DQo+ ID4+Pj4gWy4uLl0NCj4gPj4+Pg0KPiA+Pj4gSGVpbmVyDQo+ID4+Pg0KPiA+Pg0KPiA+PiBCYXNl ZCBvbiBzY2VuYXJpbyAxIHlvdSBjYW4gYWxzbyB0cnkgdGhlIGZvbGxvd2luZy4NCj4gPj4NCj4g Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5j DQo+ID4+IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMNCj4gPj4g aW5kZXggM2RiODgyMzIyLi5jZGY5MTYwZmMgMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jDQo+ID4+IEBAIC0zODA1LDcgKzM4MDUsNiBAQCBz dGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGZlY19zdXNwZW5kKHN0cnVjdA0KPiA+PiBkZXZpY2Ug KmRldikNCj4gPj4gIAlpZiAobmV0aWZfcnVubmluZyhuZGV2KSkgew0KPiA+PiAgCQlpZiAoZmVw LT53b2xfZmxhZyAmIEZFQ19XT0xfRkxBR19FTkFCTEUpDQo+ID4+ICAJCQlmZXAtPndvbF9mbGFn IHw9IEZFQ19XT0xfRkxBR19TTEVFUF9PTjsNCj4gPj4gLQkJcGh5X3N0b3AobmRldi0+cGh5ZGV2 KTsNCj4gPj4gIAkJbmFwaV9kaXNhYmxlKCZmZXAtPm5hcGkpOw0KPiA+PiAgCQluZXRpZl90eF9s b2NrX2JoKG5kZXYpOw0KPiA+PiAgCQluZXRpZl9kZXZpY2VfZGV0YWNoKG5kZXYpOw0KPiA+PiBA QCAtMzg2NCw3ICszODYzLDYgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZCBmZWNfcmVzdW1l KHN0cnVjdA0KPiA+PiBkZXZpY2UgKmRldikNCj4gPj4gIAkJbmV0aWZfZGV2aWNlX2F0dGFjaChu ZGV2KTsNCj4gPj4gIAkJbmV0aWZfdHhfdW5sb2NrX2JoKG5kZXYpOw0KPiA+PiAgCQluYXBpX2Vu YWJsZSgmZmVwLT5uYXBpKTsNCj4gPj4gLQkJcGh5X3N0YXJ0KG5kZXYtPnBoeWRldik7DQo+ID4+ ICAJfQ0KPiA+PiAgCXJ0bmxfdW5sb2NrKCk7DQo+ID4NCj4gPiBBcyBJIGRlc2NyaWJlZCBpbiBj b21taXQgbWVzc2FnZToNCj4gPg0KPiA+ICJXaGVuIEkgYW0gZGVidWdnaW5nLCBJIGZvdW5kIFBI WSB3b3JrcyBmaW5lIGlmIE1BQyBkb2Vzbid0IHN1cHBvcnQNCj4gc3VzcGVuZC9yZXN1bWUgb3Ig cGh5X3N0b3AoKS9waHlfc3RhcnQoKSBkb2Vzbid0IGJlZW4gY2FsbGVkIGR1cmluZw0KPiBzdXNw ZW5kL3Jlc3VtZS4gVGhpcyBsZXQgbWUgcmVhbGl6ZSwgUEhZIHN0YXRlIG1hY2hpbmUgcGh5X3N0 YXRlX21hY2hpbmUoKQ0KPiBjb3VsZCBkbyBzb21ldGhpbmcgYnJlYWtzIHRoZSBQSFkuIg0KPiA+ DQo+ID4gU28gSSBoYXZlIHRyaWVkIHlvdXIgYWJvdmUgY29kZSBjaGFuZ2UgYmVmb3JlLCBhbmQg aXQgd29ya3MuIEJ1dCBpdCBpcyBhIHZlcnkNCj4gY29tbW9uIHBoZW5vbWVub24gdGhhdCBNQUMg c3VzcGVuZC9yZXN1bWUgaW52b2tlcyBwaHlfc3RvcC9zdGFydCBvcg0KPiBwaHlsaW5rX3N0b3Av c3RhcnQsIGFuZCBpdCdzIGJlZW4gYXJvdW5kIGZvciBhIGxvbmcgdGltZS4NCj4gPg0KPiA+IEFz IHRoZSBzY2VuYXJpb3MgeW91IGxpc3QsIGl0IGlzIGluZGVlZCB1bnJlYXNvbmFibGUgdG8gc29m dCByZXNldCBvciBjb25maWcgUEhZDQo+IGFmdGVyIGNhbGxpbmcgcGh5X3N0YXJ0X2FuZWcoKSBp biBzdGF0ZSBtYWNoaW5lLiBQSFkgc3RhdGUgc2hvdWxkIGJlIFBIWV9VUA0KPiBhZnRlciBjYWxs aW5nIHBoeV9pbml0X2h3KCksIEl0IHNlZW1zIG1vcmUgcmVhc29uYWJsZS4NCj4gPg0KPiA+IEJl c3QgUmVnYXJkcywNCj4gPiBKb2FraW0gWmhhbmcNCj4gPj4gLS0NCj4gPj4gMi4zMS4xDQo+ID4+ DQo+ID4NCj4gDQo+IEZvbGxvd2luZyBpcyBhIGRyYWZ0IHBhdGNoIGZvciBzY2VuYXJpbyAxOg0K PiBNYWtlIFBIWSBQTSBhIG5vLW9wIGlmIE1BQyBtYW5hZ2VzIFBIWSBQTS4NCj4gQ2FuIHlvdSBn aXZlIGl0IGEgdHJ5Pw0KPiANCg0KSXQgY2FuIHdvcmsgZm9yIG15IGNhc2UuIFRoYW5rcy4NCg0K QmVzdCBSZWdhcmRzLA0KSm9ha2ltIFpoYW5nDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9w aHkvcGh5X2RldmljZS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBpbmRleA0KPiBh MDA5ZDE3NjkuLjczZDI5ZmQ1ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeV9k ZXZpY2UuYw0KPiArKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jDQo+IEBAIC0yNzMs NiArMjczLDkgQEAgc3RhdGljIF9fbWF5YmVfdW51c2VkIGludA0KPiBtZGlvX2J1c19waHlfc3Vz cGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpICB7DQo+ICAJc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl diA9IHRvX3BoeV9kZXZpY2UoZGV2KTsNCj4gDQo+ICsJaWYgKHBoeWRldi0+bWFjX21hbmFnZWRf cG0pDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICAJLyogV2UgbXVzdCBzdG9wIHRoZSBzdGF0ZSBt YWNoaW5lIG1hbnVhbGx5LCBvdGhlcndpc2UgaXQgc3RvcHMgb3V0IG9mDQo+ICAJICogY29udHJv bCwgcG9zc2libHkgd2l0aCB0aGUgcGh5ZGV2LT5sb2NrIGhlbGQuIFVwb24gcmVzdW1lLCBuZXRk ZXYNCj4gIAkgKiBtYXkgY2FsbCBwaHkgcm91dGluZXMgdGhhdCB0cnkgdG8gZ3JhYiB0aGUgc2Ft ZSBsb2NrLCBhbmQgdGhhdCBtYXkgQEANCj4gLTI5NCw2ICsyOTcsOSBAQCBzdGF0aWMgX19tYXli ZV91bnVzZWQgaW50IG1kaW9fYnVzX3BoeV9yZXN1bWUoc3RydWN0DQo+IGRldmljZSAqZGV2KQ0K PiAgCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSB0b19waHlfZGV2aWNlKGRldik7DQo+ICAJ aW50IHJldDsNCj4gDQo+ICsJaWYgKHBoeWRldi0+bWFjX21hbmFnZWRfcG0pDQo+ICsJCXJldHVy biAwOw0KPiArDQo+ICAJaWYgKCFwaHlkZXYtPnN1c3BlbmRlZF9ieV9tZGlvX2J1cykNCj4gIAkJ Z290byBub19yZXN1bWU7DQo+IA0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHkuaCBi L2luY2x1ZGUvbGludXgvcGh5LmggaW5kZXgNCj4gOGUyY2Y4NGIyLi40NjcwMmFmMTggMTAwNjQ0 DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9waHku aA0KPiBAQCAtNTY3LDYgKzU2Nyw3IEBAIHN0cnVjdCBwaHlfZGV2aWNlIHsNCj4gIAl1bnNpZ25l ZCBsb29wYmFja19lbmFibGVkOjE7DQo+ICAJdW5zaWduZWQgZG93bnNoaWZ0ZWRfcmF0ZToxOw0K PiAgCXVuc2lnbmVkIGlzX29uX3NmcF9tb2R1bGU6MTsNCj4gKwl1bnNpZ25lZCBtYWNfbWFuYWdl ZF9wbToxOw0KPiANCj4gIAl1bnNpZ25lZCBhdXRvbmVnOjE7DQo+ICAJLyogVGhlIG1vc3QgcmVj ZW50bHkgcmVhZCBsaW5rIHN0YXRlICovDQo+IC0tDQo+IDIuMzEuMQ0KPiANCj4gDQo+IA0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMNCj4g Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYw0KPiBpbmRleCAzZGI4 ODIzMjIuLjcwYWVhOWMyNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJl ZXNjYWxlL2ZlY19tYWluLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxl L2ZlY19tYWluLmMNCj4gQEAgLTIwNDgsNiArMjA0OCw4IEBAIHN0YXRpYyBpbnQgZmVjX2VuZXRf bWlpX3Byb2JlKHN0cnVjdCBuZXRfZGV2aWNlDQo+ICpuZGV2KQ0KPiAgCWZlcC0+bGluayA9IDA7 DQo+ICAJZmVwLT5mdWxsX2R1cGxleCA9IDA7DQo+IA0KPiArCXBoeV9kZXYtPm1hY19tYW5hZ2Vk X3BtID0gMTsNCj4gKw0KPiAgCXBoeV9hdHRhY2hlZF9pbmZvKHBoeV9kZXYpOw0KPiANCj4gIAly ZXR1cm4gMDsNCj4gQEAgLTM4NjQsNiArMzg2Niw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVz ZWQgZmVjX3Jlc3VtZShzdHJ1Y3QNCj4gZGV2aWNlICpkZXYpDQo+ICAJCW5ldGlmX2RldmljZV9h dHRhY2gobmRldik7DQo+ICAJCW5ldGlmX3R4X3VubG9ja19iaChuZGV2KTsNCj4gIAkJbmFwaV9l bmFibGUoJmZlcC0+bmFwaSk7DQo+ICsJCXBoeV9pbml0X2h3KG5kZXYtPnBoeWRldik7DQo+ICAJ CXBoeV9zdGFydChuZGV2LT5waHlkZXYpOw0KPiAgCX0NCj4gIAlydG5sX3VubG9jaygpOw0KPiAt LQ0KPiAyLjMxLjENCg0K