From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web08.5619.1614218011632794830 for ; Wed, 24 Feb 2021 17:53:32 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=XpBpxzt7; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: hao.a.wu@intel.com) IronPort-SDR: A/XaLroQbP3w+KIYnQGPiDE1zsuej1UCCFFrGZBORdTdxEDsgMdZQyvncBfY+/v8Bb6fZmxcbp S1cS1JybBMtQ== X-IronPort-AV: E=McAfee;i="6000,8403,9905"; a="172507745" X-IronPort-AV: E=Sophos;i="5.81,203,1610438400"; d="scan'208";a="172507745" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2021 17:53:21 -0800 IronPort-SDR: izu0dnuzTGL8d9oTlyRhzRK08hOCFJeGdnNydERGVv+9idYpeTdF+N1Bg8Ffe0sYLqtkxkFfi4 4KW+UM75TX8Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,203,1610438400"; d="scan'208";a="499893536" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga001.fm.intel.com with ESMTP; 24 Feb 2021 17:53:21 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 24 Feb 2021 17:53:21 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 24 Feb 2021 17:53:20 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 24 Feb 2021 17:53:20 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Wed, 24 Feb 2021 17:52:20 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EmInGpQLc6CkbDxmVSAOnEtYnVgTgo/K91kjrBzAbuXRy+whHBxVp/obzeuPot3UyMgUdOPoGAjbGAntFynCHFMhUEGWr89SArBAcHz6W+j/Lzm+dw7Pelw/5Hzx25uZJ/ig3b0YGtZ4kK9B7plaGmAuljEQwG9PxlqTBk+wjVswXVY+jPW/YlDf5zNvNQpJb+kmurRsaG3JagvsDQagQ8St8Hgp9Fe9UFas5KwgR3MnQRNWgjWZF6epBcGrFsrQOGtUQEtG8Xp7bhGnpeGsxbdi62n6Rx7UY7J66xMJN7Sl9xj5kCc74SB2ZnhAJeduxd49I66augK/5GbSW7D2gg== 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=V/d7sOLD6ULLDFu0pzisFNZLyqWm3l039Pu6guaTKfw=; b=cybiNjmEiC1LqOPtgp6A0mofqZGrkcb+Ha5G8KEEHJ5Z6SejqylfG9K25X/PhxKffB5oejojyLsZR8md13XapwiUK7GbwLjbAJdHkGQYUHFaQp5EkK+SxN2j9QcHyGaKal9bHStjme852AkHKHw+P5/cDj/QxEj0h1GBvfWT/26/CBb9O5aww10X1mCgzevqZptbBNw8qeM37xdzzx27ZFfR2lDodXt7ZCACorSzj2cr9vfOlHsfrMMD4YMR/PmsR4oGoqAxNZBAzIPv2eMIYl978Pvmiyt8E2zae8r9dddgvlj+E+kp89pqHZFSF5qc1TKaolPR14TedIemVJcMNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V/d7sOLD6ULLDFu0pzisFNZLyqWm3l039Pu6guaTKfw=; b=XpBpxzt7my83+2rlf6c+yzudlklP6WJJxf63kBJMTLZaSiAlMYU7pHGcmeiK4xROFQr1KbW2XFM/1T32BFQWqbPnIsI9nMNlW1+c3Mv+TdLXkRmPUwfqFJ510Zh3vDJqVjBZZ4lMWuB70KaEkN0tizhP2g5aXNLqJbo+YQT5l04= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (20.178.221.19) by BN6PR1101MB2163.namprd11.prod.outlook.com (10.174.116.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.33; Thu, 25 Feb 2021 01:52:18 +0000 Received: from BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::9d91:6348:53a9:cb20]) by BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::9d91:6348:53a9:cb20%7]) with mapi id 15.20.3868.032; Thu, 25 Feb 2021 01:52:18 +0000 From: "Wu, Hao A" To: gaoliming , "Bandaru, Purna Chandra Rao" , "devel@edk2.groups.io" CC: 'Laszlo Ersek' , "'Leif Lindholm (Nuvia address)'" , "Kinney, Michael D" , 'Andrew Fish' Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThruDxe: Improve Error handling of Ufs Pass Thru driver Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThruDxe: Improve Error handling of Ufs Pass Thru driver Thread-Index: AQHXBQuRLSwBS6euzEiT1FtH3mO6Vqpjs0AggAAu+GCAAI8NgIAAhV7wgADhnoCAALHdkIABm7gAgAABjhA= Date: Thu, 25 Feb 2021 01:52:18 +0000 Message-ID: References: <20210217090143.20032-1-purna.chandra.rao.bandaru@intel.com> <004e01d70b17$f710b6a0$e53223e0$@byosoft.com.cn> In-Reply-To: <004e01d70b17$f710b6a0$e53223e0$@byosoft.com.cn> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: byosoft.com.cn; dkim=none (message not signed) header.d=none;byosoft.com.cn; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c5f40caa-0124-4752-13fd-08d8d92ffbf1 x-ms-traffictypediagnostic: BN6PR1101MB2163: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qjZeuw4+wZ7awF8EIZ1MlYt61EqqrNE+xdKYVo/4YGY+u9jUvweslK2DLvEdeKLuRCV81ejC2JjcO/iVSz21QKZaUJMsDlFQ3xBC8QuI657nT0cpJi96LdrMU98EZhx6o7NCSawBzF2eob8edj63GCa2ujfmV/CC9+08UVbT3sjMawWkII0J3MJfnWjfWFrVQZ3vsdl7AT5RHwmp19pSS+91jjKPaN8pb6brIIDgY9O4Drw3y8m6PdcU6VcMQqs54e8oFmD+8P5Nare2msqUC+SnGD7RCDfK3Abf4WWdVpvwzsGaPZ395fSv83DEOWtnU4fo2GiZoXlrD4KISO++pDQZJJZC30kqsK1/sfxwf4vRg0kjrteL++pBnCBxXMWvPnQlptl713YjK+lMfFmtErW0phWUVylXS0LG8EF04MS9Zv6QBXXRggfWiA8Ywqbd4yYb2LOyr7fSH9+4+Hhd3nx0iqCbUdNXM1RUuStk8ojI0CV7rrcqng8ox6e5M2ZimbrlPxBwxFtawpEy8Cc4Fuz4XHP8Ng4+JLTUWg5K/a/Umha74Aa9cGHJwLTRB5YbvD4ZSQKFr8E/dIWkmbq+iYjxBtYpvKXPgGe6Q3p0zyc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR11MB3666.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(39860400002)(396003)(346002)(376002)(136003)(2906002)(5660300002)(186003)(86362001)(26005)(76116006)(55016002)(66476007)(9686003)(66446008)(66946007)(71200400001)(66556008)(64756008)(33656002)(8676002)(6506007)(52536014)(8936002)(83380400001)(30864003)(19627235002)(316002)(4326008)(7696005)(110136005)(45080400002)(966005)(478600001)(53546011)(54906003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?OURPNGNIekY3OUZsVndqVm9HMkxWSTFKdmp6TmJSNGFXc0dIZGt4MHFDWGdk?= =?gb2312?B?WW5GQXZQUnBhSE40WGdpd3k4eXpTTmVlQjdBN2YrUHNKenVvUU1PQ3NTVXQ5?= =?gb2312?B?MFJxZnQzVTh2aVZwR3F0aGdRaVNVaXk4RExqU1B5T1NuM0RqUEJuQjdiNWpj?= =?gb2312?B?NjVaMlVRNEwvbFhwd3pPcmFkZWU2NWM3N29ydFlkcTJ6SGMvbitmN296WFFJ?= =?gb2312?B?WDNBb2ZFZ3AvaUtXNER1bVhjQ0J0aEp6aHkxRUFQVU5hKzg0NWptNTRITGVr?= =?gb2312?B?Nk1qaWwvSzJTVEJNUmlEWUJTdjdrSEdjbDl0dVB5UTJxKzJhdlNZSEtoeWVv?= =?gb2312?B?NUVkMFhOeXFWeTJtR1NxYStiU00xRzlqK2JQMVFOTXVNc3FGSDhLYm1Xamlh?= =?gb2312?B?VnlhVSttQWx6TTByYUlBQ0R2anAvSUVDdjVwMHpzdy9xT1NnR1FWTUJsV0hj?= =?gb2312?B?MFV0MzlRUVdrVUxZd3F3QW4vMEtZZTdnazdFM0k0TjVDRURxTCt6USs0ZUZi?= =?gb2312?B?dUxpaGRUcHYrY1RRR3llY0VSZXBxMVUyWEN1Y3gzN2lQay94VE41dmpCL1ZN?= =?gb2312?B?c1o2UnFpS3FxTTkzRzVjWW84Z3FOYlNlNE9hMDRhR3Z2UDh1VFpYbFZiS1hS?= =?gb2312?B?NnAvOElGa0VHazNKanVFZlczR1BIN2lwRTIvV0J1U3RtbHpPOXZqbEExWExz?= =?gb2312?B?amMzVi9rOElFdWJQS245djJvVUtoTHpYL25iVEQybzBla243L1A2S1hEbEkr?= =?gb2312?B?UnZJYkhmUzhPN25jS0xKUVZ2SXpLTlhyc3llOGluSDFQTWszZE1RSGF0MlBr?= =?gb2312?B?NFcrREtFbG94Y1pNQkx3YUMvQ1U3K3djMWxNRTZlVVRsSlIwRHMvME03MDA5?= =?gb2312?B?R29mbW45cytFWmpLWUlMa3d1eFhaYU50TjNFWTNpYVZab05TdjBzYkt3Z0lU?= =?gb2312?B?ZUZsaVY2M0Y1ZUFaZDdzc0Ivb0hudng4c3kvVWxUQTY2aENMTkQ0Ui82ZmVZ?= =?gb2312?B?QzJhVjhqOHMxdWtoQVRrQmZmdjVkbnFRdmVJRkJYak1wZG0zTW5JektXT1l3?= =?gb2312?B?TktSSEY0ODFxc3BWODYyVEVReXFhU1dLN08rMFpBaGU3WHR2MHIvSHBFSWNt?= =?gb2312?B?KzFWZGtwanphQmlVbnd1YXVOQUJ1Uk1IdS9IV1IzcXZxUnEwOUNUVVhrZXBz?= =?gb2312?B?Rjg2ZllXTk5SSFFiY0l3ZzRzUEwrcG9pUDJ4SHVGQ1h1LzhsbjNMaVhBbkl0?= =?gb2312?B?R2EvYU5pVlc4a01tRUhaMDI4SjFxeXFWUDJaT21PVVl1eDFCMi9VOVNyOFEw?= =?gb2312?B?M0hhcGwvT2haNlM0eEptK1lvdjI1djVvQzBVWUM1SzY3TTU3c1hpakVrVDIx?= =?gb2312?B?aW5aN3JtcmxNMVdwaXFKUGV4YmNiMmhXT0hDd0RSc3Mrd0tpTUZJa3Q4Kzhu?= =?gb2312?B?dDMwZ0NocGpvL2VYZXJpRDNHNElZSjZ3a0FDbHRvV3JtTTZES0ZjYkR2SnJG?= =?gb2312?B?UEEwRWpmSS9UVFgwY090cFpoOTF4N3loUU1MRitENjBhcXJsdnh6ZjAyMFY0?= =?gb2312?B?UlExQ0kvMitPS2RGRjEwWjQybnY2L3JUczRqSmZ2RlRxREJUOGgzeUxnbmpY?= =?gb2312?B?Vjh4UThLT3A0YzlHOEhsMVRPM1RIY0dtZ1pQY0Rvd09vMjFMcTdUcE8xWkd1?= =?gb2312?B?SG9LTG5TUEsxcWxia2FweVZWUnZKZmNTQTlUUDFlVmgzZXlkcFY1RkpVMTVz?= =?gb2312?Q?d6mqSGSWsOciGs6nxsgERE18h1KnOLgays1A4At?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3666.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5f40caa-0124-4752-13fd-08d8d92ffbf1 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Feb 2021 01:52:18.5126 (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: nXbL+nS7ZUUyM/OAHQcvbVVWqWQQk10WEgXks1hLdD8Ilkyhoq64j+WzjWasrTCt7ET3clyxa9W+WyrmtfbE1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1101MB2163 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 VGhhbmtzIExpbWluZywNCg0KSSB3aWxsIHN5bmMgd2l0aCBQdXJuYSBmb3Igb3RoZXIgcG9zc2li bGUgc29sdXRpb25zLg0KDQpCZXN0IFJlZ2FyZHMsDQpIYW8gV3UNCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj4NCj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDI1LCAyMDIxIDk6NDYgQU0NCj4gVG86IFd1 LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgQmFuZGFydSwgUHVybmEgQ2hhbmRyYSBSYW8N Cj4gPHB1cm5hLmNoYW5kcmEucmFvLmJhbmRhcnVAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91 cHMuaW8NCj4gQ2M6ICdMYXN6bG8gRXJzZWsnIDxsZXJzZWtAcmVkaGF0LmNvbT47ICdMZWlmIExp bmRob2xtIChOdXZpYSBhZGRyZXNzKScNCj4gPGxlaWZAbnV2aWFpbmMuY29tPjsgS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gJ0FuZHJldyBGaXNoJyA8 YWZpc2hAYXBwbGUuY29tPg0KPiBTdWJqZWN0OiC72Li0OiBbZWRrMi1kZXZlbF0gW1BBVENIXSBN ZGVNb2R1bGVQa2cvVWZzUGFzc1RocnVEeGU6DQo+IEltcHJvdmUgRXJyb3IgaGFuZGxpbmcgb2Yg VWZzIFBhc3MgVGhydSBkcml2ZXINCj4gDQo+IEhhbzoNCj4gIEkgc2VlIHYyIHBhdGNoIHNldCB3 YXMgc2VudCBhZnRlciBTRkYgKFNvZnQgRmVhdHVyZSBGcmVlemUpLiBBY2NvcmRpbmcgdG8gU0ZG LA0KPiBubyBmZWF0dXJlIHdpbGwgYmUgYWRkZWQgaW4gdGhpcyBwZXJpb2QuDQo+IA0KPiAgVGhl IHJlcXVlc3QgaXMgdG8gbWVyZ2UgW1BBVENIIDMvM10gTWRlTW9kdWxlUGtnL1Vmc1Bhc3NUaHJ1 RHhlOg0KPiBJbXByb3ZlIFVGUyBkZXZpY2UgUmVhZGluZXNzIGNoZWNrIGZvciB0aGlzIHN0YWJs ZSB0YWcuDQo+ICBUaGlzIGNoYW5nZSBpcyB0byBhZGQgcmV0cnkgdGltZXMgZm9yIHRoZSBkZXZp Y2UgcmVhZGluZXNzIGNoZWNrLiBUaGlzIGlzIGFuDQo+IGltcHJvdmVtZW50LCBub3QgYnVnIGZp eC4gSWYgdGhpcyBwYXRjaCBuZWVkcyB0byBjYXRjaCB0aGlzIHN0YWJsZSB0YWcsIHdlDQo+IGhh dmUgdG8gZGVmZXIgc3RhYmxlIHRhZy4NCj4gDQo+IFRoYW5rcw0KPiBMaW1pbmcNCj4gPiAtLS0t LdPKvP7Urbz+LS0tLS0NCj4gPiC3orz+yMs6IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29t Pg0KPiA+ILeiy83KsbzkOiAyMDIxxOoy1MIyNMjVIDk6MjENCj4gPiDK1bz+yMs6IGdhb2xpbWlu ZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgQmFuZGFydSwgUHVybmEgQ2hhbmRyYQ0KPiBS YW8NCj4gPiA8cHVybmEuY2hhbmRyYS5yYW8uYmFuZGFydUBpbnRlbC5jb20+OyBkZXZlbEBlZGsy Lmdyb3Vwcy5pbw0KPiA+ILOty806IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBM ZWlmIExpbmRob2xtIChOdXZpYSBhZGRyZXNzKQ0KPiA+IDxsZWlmQG51dmlhaW5jLmNvbT47IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+ID4gQW5kcmV3 IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT4NCj4gPiDW98ziOiBSRTogW2VkazItZGV2ZWxdIFtQQVRD SF0gTWRlTW9kdWxlUGtnL1Vmc1Bhc3NUaHJ1RHhlOiBJbXByb3ZlDQo+ID4gRXJyb3IgaGFuZGxp bmcgb2YgVWZzIFBhc3MgVGhydSBkcml2ZXINCj4gPg0KPiA+IEhlbGxvIExpbWluZywNCj4gPg0K PiA+IEkgaGF2ZSBhIHBhdGNoIHRoYXQgd291bGQgbGlrZSB0byBjb25maXJtIHdpdGggeW91IHRo YXQgd2hldGhlciBpdCBjYW4NCj4gPiBiZSBtZXJnZWQgaW50byB0aGUgdXBjb21pbmcgZWRrMi1z dGFibGUyMDIxMDIgdGFnLg0KPiA+DQo+ID4gVGhpcyBpcyBhIGZlYXR1cmUgcmVxdWVzdDoNCj4g PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTMyMTcNCj4g PiBJbiB0aGUgQlogdHJhY2tlciwgdGhlcmUgYXJlIDMgaW1wcm92ZW1lbnRzIG1lbnRpb25lZCBm b3INCj4gVWZzUGFzc1RocnVEeGUuDQo+ID4gQWNjb3JkaW5nIHRvIFB1cm5hLCBoZSB3b3VsZCBs aWtlIHRvIGhhdmUgMSBvZiB0aGUgaW1wcm92ZW1lbnRzDQo+ID4gKGltcHJvdmVtZW50ICMzIGlu IEJaLTMyMTcpIGJlIG1lcmdlZCBhbmQgY2F0Y2ggdGhlIHN0YWJsZSB0YWcuDQo+ID4gSSBoYXZl IGdpdmVuIHRoZSAnUi1iJyB0YWcgZm9yIGltcHJvdmVtZW50ICMzIGFscmVhZHkNCj4gPiAoaHR0 cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNzIxMjEpDQo+ID4NCj4gPiBNeSB0 aG91Z2h0IGlzIHRoYXQgd2UgY2FuIGJyZWFrIEJaLTMyMTcgaW50byBtdWx0aXBsZSBmZWF0dXJl IHJlcXVlc3RzOg0KPiA+IDEuIEJaLTMyMTc6IFVwZGF0ZWQgaXRzIHRpdGxlIGFuZCBkZXNjcmlw dGlvbiB0byBvbmx5IGNvdmVyDQo+ID4gaW1wcm92ZW1lbnQgIzMgMi4gRmlsZSBuZXcgQlogZmVh dHVyZSByZXF1ZXN0cyB0byBjb3ZlciBpbXByb3ZlbWVudCAjMQ0KPiA+ICYgIzINCj4gPg0KPiA+ IFdoYXQgaXMgeW91ciBzdWdnZXN0aW9uIGZvciB0aGlzIGNhc2U/IFRoYW5rcyBpbiBhZHZhbmNl Lg0KPiA+DQo+ID4gQmVzdCBSZWdhcmRzLA0KPiA+IEhhbyBXdQ0KPiA+DQo+ID4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogQmFuZGFydSwgUHVybmEgQ2hhbmRyYSBS YW8NCj4gPiA8cHVybmEuY2hhbmRyYS5yYW8uYmFuZGFydUBpbnRlbC5jb20+DQo+ID4gPiBTZW50 OiBUdWVzZGF5LCBGZWJydWFyeSAyMywgMjAyMSAxMDozNiBQTQ0KPiA+ID4gVG86IFd1LCBIYW8g QSA8aGFvLmEud3VAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IENjOiBB bGJlY2tpLCBNYXRldXN6IDxtYXRldXN6LmFsYmVja2lAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+ ID4gPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQ QVRDSF0gTWRlTW9kdWxlUGtnL1Vmc1Bhc3NUaHJ1RHhlOg0KPiA+ID4gSW1wcm92ZSBFcnJvciBo YW5kbGluZyBvZiBVZnMgUGFzcyBUaHJ1IGRyaXZlcg0KPiA+ID4NCj4gPiA+IEhpIFd1LCBIYW8g QQ0KPiA+ID4NCj4gPiA+IEkgYW0gdHJ5aW5nIHRvIGZvY3VzIG9uIG1lcmdpbmcgcGF0Y2gjMSBm b3Igbm93IHRvIHVuYmxvY2sgYm9vdCBpc3N1ZXMuDQo+ID4gPiBNYXJjaCA2dGggbWlnaHQgYmUg dG9vIGxhdGUsIE1heSBJIHJlcXVlc3QgeW91IHRvIGV4cGVkaXRlIGFueSBvdGhlcg0KPiA+ID4g YWx0ZXJuYXRpdmVzIGxpa2UgZXhjZXB0aW9ucy9vdmVycmlkZXM/DQo+ID4gPiBGb3IgdGhlIHJl bWFpbmluZyB0d28gcGF0Y2hlcyBJIHdpbGwgZ2V0IGJhY2sgdG8geW91IHdpdGggdGhlIHBsYW4N Cj4gPiA+IGFmdGVyIGRpc2N1c3Npbmcgd2l0aCBXU0lWIGFuZCBNVkUgdGVhbXMgb24gdGhlIHBy b3RvY29sIGFuYWx5emVyIHRvb2xzDQo+IGV0Yy4NCj4gPiA+DQo+ID4gPiBUaGFua3MNCj4gPiA+ IH5QdXJuYQ0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBG cm9tOiBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPiA+IFNlbnQ6IFR1ZXNkYXks IEZlYnJ1YXJ5IDIzLCAyMDIxIDY6NDYgQU0NCj4gPiA+IFRvOiBCYW5kYXJ1LCBQdXJuYSBDaGFu ZHJhIFJhbw0KPiA+ID4gPHB1cm5hLmNoYW5kcmEucmFvLmJhbmRhcnVAaW50ZWwuY29tPjsNCj4g PiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogQWxiZWNraSwgTWF0ZXVzeiA8bWF0 ZXVzei5hbGJlY2tpQGludGVsLmNvbT47IE5pLCBSYXkNCj4gPiA+IDxyYXkubmlAaW50ZWwuY29t Pg0KPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9V ZnNQYXNzVGhydUR4ZToNCj4gPiA+IEltcHJvdmUgRXJyb3IgaGFuZGxpbmcgb2YgVWZzIFBhc3Mg VGhydSBkcml2ZXINCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+IEZyb206IEJhbmRhcnUsIFB1cm5hIENoYW5kcmEgUmFvDQo+ID4gPiA8cHVybmEuY2hh bmRyYS5yYW8uYmFuZGFydUBpbnRlbC5jb20+DQo+ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1 YXJ5IDIzLCAyMDIxIDE6MTEgQU0NCj4gPiA+ID4gVG86IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50 ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gQ2M6IEFsYmVja2ksIE1hdGV1 c3ogPG1hdGV1c3ouYWxiZWNraUBpbnRlbC5jb20+OyBOaSwgUmF5DQo+ID4gPiA+IDxyYXkubmlA aW50ZWwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRl TW9kdWxlUGtnL1Vmc1Bhc3NUaHJ1RHhlOg0KPiA+ID4gPiBJbXByb3ZlIEVycm9yIGhhbmRsaW5n IG9mIFVmcyBQYXNzIFRocnUgZHJpdmVyDQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5rIHlvdSBIYWkg QnUgZm9yIHRoZSByZXNwb25zZS4NCj4gPiA+ID4NCj4gPiA+ID4gSSBoYXZlIGJyb2tlbiB0aGlz IGludG8gdGhyZWUgc2VwYXJhdGUgcGF0Y2hlcy4gVGhlcmUgd2VyZSBubw0KPiA+ID4gPiBzcGVj aWZpYyByZWNvbW1lbmRhdGlvbiBpbiB0aGUgc3BlY2lhdGlvbiBmb3Igc2VlbiBtdWx0aXBsZSBp c3N1ZXMNCj4gPiA+ID4gb24gYWxsIHRoZSBVRlMgcGxhdGZvcm1zIGxpa2UgTEtGLCBBRFAtUCBh bmQgRUhLLg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBIZWxsbywNCj4gPiA+DQo+ID4gPiBBZnRlciBx dWlja2x5IGdvaW5nIHRocm91Z2ggdGhlIG5ldyBzZXJpZXMgc2VudCwgSSBkbyBub3Qgc2VlIG15 DQo+IHByZXZpb3VzDQo+ID4gPiBpbmxpbmUgY29tbWVudHMgYW5kIHF1ZXN0aW9ucyBnZXQgYWRk cmVzc2VkLg0KPiA+ID4gQ291bGQgeW91IHBsZWFzZSBoZWxwIHRvIHByb3ZpZGUgeW91ciBmZWVk YmFja3MgYW5kIHVwZGF0ZSB0aGUgcGF0Y2hlcz8NCj4gPiA+DQo+ID4gPg0KPiA+ID4gPiBBbmQg dGhlc2UgY2hhbmdlcyB3b3JrZWQgb24gYWxsIHRoZSB0aHJlZSB3aXRoIHZhcmlvdXMgVUZTIGNh cmRzLg0KPiA+ID4gPiBDYW4geW91IHBsZWFzZSByZXZpZXcgYW5kIGhlbHAgdG8gZ2V0IHRoaXMg Y2hhbmdlcyBhdCB0aGUgZWFybGllc3QNCj4gPiA+ID4gaW4gbWFzdGVyIGFzIHdlbGwgYXMgRG93 bnN0cmVhbS9tYXN0ZXIuDQo+ID4gPg0KPiA+ID4NCj4gPiA+IFNvcnJ5LCBzaW5jZSB0aGVyZSBp cyBhbiB1cGNvbWluZyBzdGFibGUgdGFnIGFwcHJvYWNoaW5nLCBhdCB0aGlzDQo+IG1vbWVudCwg SQ0KPiA+ID4gcHJlZmVyIHRvIGhvbGQgdGhpcyBmZWF0dXJlIGFmdGVyIHRoZSBzdGFibGUgdGFn IChNYXJjaCA2dGgpLg0KPiA+ID4NCj4gPiA+IEJlc3QgUmVnYXJkcywNCj4gPiA+IEhhbyBXdQ0K PiA+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5rcw0KPiA+ID4gPiB+UHVybmENCj4g PiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTog V3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ID4gPiA+IFNlbnQ6IE1vbmRheSwgRmVi cnVhcnkgMjIsIDIwMjEgMjoxMCBQTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87 IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgQmFuZGFydSwNCj4gPiA+ID4gUHVybmEg Q2hhbmRyYSBSYW8gPHB1cm5hLmNoYW5kcmEucmFvLmJhbmRhcnVAaW50ZWwuY29tPg0KPiA+ID4g PiBDYzogQWxiZWNraSwgTWF0ZXVzeiA8bWF0ZXVzei5hbGJlY2tpQGludGVsLmNvbT47IE5pLCBS YXkNCj4gPiA+ID4gPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRr Mi1kZXZlbF0gW1BBVENIXSBNZGVNb2R1bGVQa2cvVWZzUGFzc1RocnVEeGU6DQo+ID4gPiA+IElt cHJvdmUgRXJyb3IgaGFuZGxpbmcgb2YgVWZzIFBhc3MgVGhydSBkcml2ZXINCj4gPiA+ID4NCj4g PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ID4g PiA+ID4gV3UsDQo+ID4gPiA+IEhhbw0KPiA+ID4gPiA+IEENCj4gPiA+ID4gPiBTZW50OiBNb25k YXksIEZlYnJ1YXJ5IDIyLCAyMDIxIDQ6MzggUE0NCj4gPiA+ID4gPiBUbzogQmFuZGFydSwgUHVy bmEgQ2hhbmRyYSBSYW8NCj4gPiA+ID4gPiA8cHVybmEuY2hhbmRyYS5yYW8uYmFuZGFydUBpbnRl bC5jb20+Ow0KPiA+ID4gPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ID4gQ2M6IEFs YmVja2ksIE1hdGV1c3ogPG1hdGV1c3ouYWxiZWNraUBpbnRlbC5jb20+OyBOaSwgUmF5DQo+ID4g PiA+ID4gPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRl dmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9VZnNQYXNzVGhydUR4ZToNCj4gPiA+ID4gPiBJbXBy b3ZlIEVycm9yIGhhbmRsaW5nIG9mIFVmcyBQYXNzIFRocnUgZHJpdmVyDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBC YW5kYXJ1LCBQdXJuYSBDaGFuZHJhIFJhbw0KPiA+ID4gPiA+IDxwdXJuYS5jaGFuZHJhLnJhby5i YW5kYXJ1QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkg MTcsIDIwMjEgNTowMiBQTQ0KPiA+ID4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ ID4gPiA+ID4gPiBDYzogQmFuZGFydSwgUHVybmEgQ2hhbmRyYSBSYW8NCj4gPiA+ID4gPiA+IDxw dXJuYS5jaGFuZHJhLnJhby5iYW5kYXJ1QGludGVsLmNvbT47DQo+ID4gPiA+ID4gPiBBbGJlY2tp LCBNYXRldXN6IDxtYXRldXN6LmFsYmVja2lAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA+ID4gPiA+ ID4gPHJheS5uaUBpbnRlbC5jb20+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT4NCj4g PiA+ID4gPiA+IFN1YmplY3Q6IFtQQVRDSF0gTWRlTW9kdWxlUGtnL1Vmc1Bhc3NUaHJ1RHhlOiBJ bXByb3ZlIEVycm9yDQo+ID4gPiA+IGhhbmRsaW5nDQo+ID4gPiA+ID4gPiBvZiBVZnMgUGFzcyBU aHJ1IGRyaXZlcg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZyb206IEJhbmRhcnUgPHB1cm5h LmNoYW5kcmEucmFvLmJhbmRhcnVAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIxNw0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZvbGxvd2luZyBpcyB0aGUgYnJpZWYgZGVzY3JpcHRpb24g b2YgdGhlIGNoYW5nZXMNCj4gPiA+ID4gPiA+ICAxKSBUaGVyZSBhcmUgY2FyZHMgdGhhdCBjYW4g dGFrZSB1cHRvIDYwMG1zIGZvciBJbml0IGFuZA0KPiA+ID4gPiA+ID4gaGVuY2UNCj4gPiBpbmNy ZWFzZQ0KPiA+ID4gPiA+ID4gICAgIHRoZSB0aW1lIG91dCBmb3IgZkRldmljZUluaXQgcG9sbGlu ZyBsb29wLg0KPiA+ID4gPiA+ID4gIDIpIEFkZCBVRlMgaG9zdCBjb25jdHJvbGxlciByZXNldCBp biB0aGUgbGFzdCByZXRyeSBvZiBMaW5rDQo+ID4gPiA+ID4gPiBzdGFydA0KPiB1cC4NCj4gPiA+ ID4gPiA+ICAzKSBSZXRyeSBzZW5kaW5nIE5PUCBPVVQgY29tbWFuZCB1cHRvIDEwIHRpbWVzDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhlbGxvIEJhbmRhcnUsDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBDb3VsZCB5b3UgaGVscCB0byBicmVhayB0aGlzIHBhdGNoIGludG8gYSAzLXBh dGNoIHNlcmllcyBpbiBWMj8NCj4gPiA+ID4gPiBXaXRoIGVhY2ggcGF0Y2ggaGFuZGxpbmcganVz dCBvbmUgb2YgdGhlIGFib3ZlIDMgaW1wcm92ZW1lbnRzDQo+ID4gPiA+IG1lbnRpb25lZC4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IEZvciBpbXByb3ZlbWVudCAyKSBhYm92ZSwgSSBkbyBub3Qgc2Vl IHN1Y2ggVUZTIGhvc3QgY29udHJvbGxlcg0KPiA+ID4gPiA+IHJlLWVuYWJsaW5nIHByb2Nlc3Mg YmVpbmcgbWVudGlvbmVkIGluIFVGU0hDSSAzLjAgc3BlYyBzZWN0aW9uDQo+IDcuMS4xLg0KPiA+ ID4gPiA+IElzIHRoaXMgcHJvY2VzcyBiZWluZyBkb2N1bWVudGVkIHNvbWV3aGVyZSBlbHNlIGlu IHRoZSBzcGVjIG9yDQo+ID4gPiA+ID4gc3VnZ2VzdGVkIGJ5IGRldmljZSB2ZW5kZXI/DQo+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+IFNvcnJ5IGZvciBtaXNzaW5nIG9uZSBjb21tZW50Lg0KPiA+ ID4gPiBDb3VsZCB5b3UgaGVscCB0byBhZGQgdGhlIGluZm9ybWF0aW9uIG9uIHdoYXQga2luZCBv ZiB0ZXN0cyBoYXZlDQo+ID4gPiA+IGJlZW4gcGVyZm9ybWVkIGZvciB0aGUgY29kZSBjaGFuZ2Vz Pw0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MgaW4gYWR2YW5jZS4NCj4gPiA+ID4NCj4gPiA+ID4g QmVzdCBSZWdhcmRzLA0KPiA+ID4gPiBIYW8gV3UNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IE1vcmUgaW5saW5lIGNvbW1lbnRzIGJlbG93Og0KPiA+ID4gPiA+DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBCYW5kYXJ1IDxw dXJuYS5jaGFuZHJhLnJhby5iYW5kYXJ1QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IENjOiBNYXRl dXN6IEFsYmVja2kgPG1hdGV1c3ouYWxiZWNraUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzog UmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IEhhbyBBIFd1IDxoYW8u YS53dUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQ2hhbmdlLUlkOiBJNmMw ZGJjMWMxNDc0ODdlNTFmMGVkNWYyNDI1OTU3YWUwODliMDE2MA0KPiA+ID4gPiA+ID4gLS0tDQo+ ID4gPiA+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1Ro cnUuYyAgICB8IDI2DQo+ID4gPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA+ ID4gPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1 SGNpLmMgfCAxOA0KPiA+ID4gPiA+ID4gKysrKysrKysrKysrLS0tLS0tDQo+ID4gPiA+ID4gPiAg MiBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+IGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMv VWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiA+ID4gPiA+ID4gYi9NZGVNb2R1bGVQa2cv QnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5jDQo+ID4gPiA+ID4gPiBpbmRleCA5 NzY4YzJlNmZiLi44OTA0ODc0NWJlIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvTWRlTW9kdWxl UGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiA+ID4gPiA+ID4gKysr IGIvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiA+ ID4gPiA+ID4gQEAgLTEsNiArMSw2IEBADQo+ID4gPiA+ID4gPiAgLyoqIEBmaWxlDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gLSAgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAxOSwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ID4gPiA+IHJlc2VydmVkLjxCUj4NCj4gPiA+ID4g PiA+ICsgIENvcHlyaWdodCAoYykgMjAxNCAtIDIwMjEsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzDQo+ID4gPiA+ID4gPiArIHJlc2VydmVkLjxCUj4NCj4gPiA+ID4gPiA+ICAgIENvcHly aWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLjxCUj4NCj4gPiA+ID4gPiA+ICAgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gQEAgLTc0OSw3ICs3NDksNyBAQCBVZnNGaW5pc2hEZXZpY2VJbml0aWFsaXphdGlv biAoICB7DQo+ID4gPiA+ID4gPiAgICBFRklfU1RBVFVTICBTdGF0dXM7DQo+ID4gPiA+ID4gPiAg ICBVSU5UOCAgRGV2aWNlSW5pdFN0YXR1czsNCj4gPiA+ID4gPiA+IC0gIFVJTlQ4ICBUaW1lb3V0 Ow0KPiA+ID4gPiA+ID4gKyAgVUlOVDE2IFRpbWVvdXQ7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gICAgRGV2aWNlSW5pdFN0YXR1cyA9IDB4RkY7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g QEAgLTc2MSwxNyArNzYxLDIzIEBAIFVmc0ZpbmlzaERldmljZUluaXRpYWxpemF0aW9uICgNCj4g PiA+ID4gPiA+ICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ID4gPiA+ICAgIH0NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAtICBUaW1lb3V0ID0gNTsNCj4gPiA+ID4gPiA+ICsgIFRpbWVvdXQg PSA2MDAwOyAvL1RoZXJlIGFyZSBjYXJkcyB0aGF0IGNhbiB0YWtlIHVwdG8gNjAwbXMuDQo+ID4g PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFBsZWFzZSBoZWxwIHRvIGFkZCBhIG1hY3JvIGlu IGZpbGUgVWZzUGFzc1RocnUuaDoNCj4gPiA+ID4gPiAjZGVmaW5lIFVGU19JTklUX0NPTVBMRVRJ T05fVElNRU9VVCA2MDAwIEFuZCB1c2UgdGhlIG1hY3JvDQo+ID4gaGVyZS4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IEFsc28gYSBtaW5vciBjb21tZW50LCBjb3VsZCB5b3UgaGVscCB0byB1c2UgdGhl IGJlbG93IGNvbW1lbnQNCj4gPiBmb3JtYXQ/DQo+ID4gPiA+ID4gLy8NCj4gPiA+ID4gPiAvLyBU aGVyZSBhcmUgVUZTIGRldmljZXMgdGhhdCBjYW4gdGFrZSB1cCB0byA2MDBtcyB0byBjbGVhciB0 aGUNCj4gPiA+ID4gPiBmRGV2aWNlSW5pdCBmbGFnIC8vIFRpbWVvdXQgPSBVRlNfSU5JVF9DT01Q TEVUSU9OX1RJTUVPVVQ7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gICAgZG8g ew0KPiA+ID4gPiA+ID4gKyAgICBNaWNyb1NlY29uZERlbGF5ICgxMDApOyAvL0dpdmUgMTAwIHVz IGFuZCB0aGVuIHN0YXJ0IHBvbGxpbmcuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IEZvciB0aGUgYWJvdmUgZGVsYXkgbW92ZW1lbnQsIGRvIHlvdSBvYnNlcnZlIGFueSBzaWRlIGVm ZmVjdCBmb3INCj4gPiA+ID4gPiB0aGUgb3JpZ2luIGNvZGU/DQo+ID4gPiA+ID4gSWYgbm90LCBJ IHByZWZlciB0byBsZWF2ZSB0aGUgb3JpZ2luIGJlaGF2aW9yOg0KPiA+ID4gPiA+IGRvIHsNCj4g PiA+ID4gPiAgIFVmc1JlYWRGbGFnKCk7DQo+ID4gPiA+ID4gICAuLi4NCj4gPiA+ID4gPiAgIE1p Y3JvU2Vjb25kRGVsYXkgKDEpOw0KPiA+ID4gPiA+IH0gd2hpbGUgKC4uLikNCj4gPiA+ID4gPiBz aW5jZSBkb2luZyBzbyB3aWxsIGhhdmUgdGhlIGxlYXN0IHBlcmZvcm1hbmNlIHBlbmFsdHkgZm9y DQo+ID4gPiA+ID4gZGV2aWNlcyB0aGF0IHJlc3BvbmQgZmFzdC4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAgICAgIFN0YXR1cyA9IFVmc1JlYWRGbGFnIChQcml2YXRlLCBVZnNG bGFnRGV2SW5pdCwNCj4gPiAmRGV2aWNlSW5pdFN0YXR1cyk7DQo+ID4gPiA+ID4gPiAgICAgIGlm IChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ID4gPiA+ICAgICAgICByZXR1cm4gU3RhdHVz Ow0KPiA+ID4gPiA+ID4gICAgICB9DQo+ID4gPiA+ID4gPiAtICAgIE1pY3JvU2Vjb25kRGVsYXkg KDEpOw0KPiA+ID4gPiA+ID4gICAgICBUaW1lb3V0LS07DQo+ID4gPiA+ID4gPiAgICB9IHdoaWxl IChEZXZpY2VJbml0U3RhdHVzICE9IDAgJiYgVGltZW91dCAhPSAwKTsNCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiArICBpZiAoVGltZW91dCA9PSAwKSB7DQo+ID4gPiA+ID4gPiArICAgIERFQlVH ICgoREVCVUdfRVJST1IsICJVZnNGaW5pc2hEZXZpY2VJbml0aWFsaXphdGlvbg0KPiA+ID4gPiA+ ID4gRGV2aWNlSW5pdFN0YXR1cz0leCBFRklfVElNRU9VVCBcbiIsIERldmljZUluaXRTdGF0dXMp KTsNCj4gPiA+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9USU1FT1VUOw0KPiA+ID4gPiA+ID4gKyAg fSBlbHNlIHsNCj4gPiA+ID4gPiA+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiVWZzRmluaXNo RGV2aWNlSW5pdGlhbGl6YXRpb24NCj4gPiA+ID4gPiA+ICsgVGltZW91dCBsZWZ0PSV4IEVGSV9T VUNDRVNTIFxuIiwgVGltZW91dCkpOw0KPiA+ID4gPiA+ID4gICAgcmV0dXJuIEVGSV9TVUNDRVNT Ow0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBQbGVhc2UgaGVscCB0byBhZGQgdHdv IHNwYWNlcyBmb3IgdGV4dCBhbGlnbm1lbnQgaW4gdGhlIGFib3ZlIGxpbmUuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiAgLyoqDQo+ID4gPiA+ID4gPiBAQCAtOTA1LDkgKzkxMSwxOSBAQCBVZnNQ YXNzVGhydURyaXZlckJpbmRpbmdTdGFydCAoDQo+ID4gPiA+ID4gPiAgICAvLyBBdCB0aGUgZW5k IG9mIHRoZSBVRlMgSW50ZXJjb25uZWN0IExheWVyIGluaXRpYWxpemF0aW9uDQo+ID4gPiA+ID4g PiBvbiBib3RoIGhvc3QgYW5kIGRldmljZSBzaWRlLA0KPiA+ID4gPiA+ID4gICAgLy8gdGhlIGhv c3Qgc2hhbGwgc2VuZCBhIE5PUCBPVVQgVVBJVSB0byB2ZXJpZnkgdGhhdCB0aGUNCj4gPiA+ID4g PiA+IGRldmljZSBVVFAgTGF5ZXIgaXMgcmVhZHkuDQo+ID4gPiA+ID4gPiAgICAvLw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBGb3IgdGhlIE5PUCBPVVQgLSBOT1AgSU4gaW1wcm92 ZW1lbnQsIGNvdWxkIHlvdSBoZWxwIHRvIHByb3ZpZGUNCj4gPiBtb3JlDQo+ID4gPiA+ID4gaW5m b3JtYXRpb24gb24gd2hhdCBpcyB0aGUgY3VycmVudCBpc3N1ZSBmb3Igc29tZSBkZXZpY2VzPw0K PiA+ID4gPiA+IElzIGl0IGEgdGltZW91dCBoYXBwZW5lZCBmb3I6DQo+ID4gPiA+ID4gICBTdGF0 dXMgPSBVZnNXYWl0TWVtU2V0IChQcml2YXRlLCBVRlNfSENfVVRSTERCUl9PRkZTRVQsIEJJVDAN Cj4gPiA8PA0KPiA+ID4gPiA+IFNsb3QsIDAsIFVGU19USU1FT1VUKTsgKElmIHNvLCBoYXZlIHlv dSB0cmllZCBpbmNyZWFzaW5nIHRoZQ0KPiA+ID4gPiA+IGxhc3QgcGFyYW1ldGVyIGxpa2UNCj4g PiA+ID4gPiAnMTAqVUZTX1RJTUVPVVQnPykgT3IgdGhlIGNhc2UgaXMgdGhhdCBOb3BJblVwaXUt PlJlc3AgaGFzIGENCj4gPiA+ID4gPiBub24temVybyB2YWx1ZT8NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IEkgZm91bmQgdGhhdCBpbiB0aGUgVUZTIDMuMCBzcGVjOg0KPiA+ID4gPiA+IHw+IEZvciBz b21lIGltcGxlbWVudGF0aW9ucywgdGhlIGRldmljZSBVVFAgbGF5ZXIgbWF5IG5vdCBiZQ0KPiA+ ID4gPiA+IHw+IGluaXRpYWxpemVkIHlldCwgdGhlcmVmb3JlIHRoZSBkZXZpY2UgbWF5IG5vdCBy ZXNwb25kDQo+ID4gPiA+ID4gfD4gcHJvbXB0bHkgdG8gTk9QIE9VVCBVUElVIHNlbmRpbmcgTk9Q IElOIFVQSVUuDQo+ID4gPiA+ID4gfD4gVGhlIGhvc3Qgd2FpdHMgdW50aWwgaXQgcmVjZWl2ZXMg dGhlIE5PUCBJTiBVUElVIGZyb20gdGhlDQo+IGRldmljZS4uLg0KPiA+ID4gPiA+IEFuZCB0aGVy ZSBpcyBubyBtZW50aW9uIGZvciB0aGUgcmV0cnkgc2NoZW1lLg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ICsgIGZvciAoSW5kZXggPSAxMDsgSW5kZXggPiAwOyBJbmRleC0tKSB7 DQo+ID4gPiA+ID4gPiAgICBTdGF0dXMgPSBVZnNFeGVjTm9wQ21kcyAoUHJpdmF0ZSk7DQo+ID4g PiA+ID4gPiAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+ID4gPiAtICAgIERF QlVHICgoREVCVUdfRVJST1IsICJVZnMgU2VuZGluZyBOT1AgSU4gY29tbWFuZCBFcnJvciwNCj4g PiA+IFN0YXR1cw0KPiA+ID4gPiA+ID4gPSAlclxuIiwgU3RhdHVzKSk7DQo+ID4gPiA+ID4gPiAr ICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlVmcyBTZW5kaW5nIE5PUCBJTiBjb21tYW5kDQo+ ID4gRXJyb3IsDQo+ID4gPiA+IEluZGV4DQo+ID4gPiA+ID4gPiA9ICV4IFN0YXR1cyA9ICVyXG4i LCBJbmRleCwgU3RhdHVzKSk7DQo+ID4gPiA+ID4gPiArICAgICAgTWljcm9TZWNvbmREZWxheSAo MTAwKTsgLy8xMDAgdXMNCj4gPiA+ID4gPiA+ICsgICAgICBjb250aW51ZTsNCj4gPiA+ID4gPiA+ ICsgICAgfSBlbHNlIHsNCj4gPiA+ID4gPiA+ICsgICAgICBERUJVRyAoKERFQlVHX0lORk8sICJV ZnMgU2VudCBOT1AgT1VUIHN1Y2Nlc3NmdWxseSBhbmQNCj4gPiA+ID4gPiA+ICsgcmVjZWl2ZWQN Cj4gPiA+ID4gPiA+IE5PUCBJTiwgU3RhdHVzID0gJXJcbiIsIFN0YXR1cykpOw0KPiA+ID4gPiA+ ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ID4gPiArICB9DQo+ ID4gPiA+ID4gPiArICBpZiAoIUluZGV4KSB7DQo+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVC VUdfSU5GTywgIk5PUCBPVVQgZmFpbGVkIGFsbCB0aGUgMTAgdGltZXMNCj4gPiA+ID4gPiA+ICsg U3RhdHVzDQo+ID4gPQ0KPiA+ID4gPiA+ID4gKyAlclxuIiwgU3RhdHVzKSk7DQo+ID4gPiA+ID4g PiAgICAgIGdvdG8gRXJyb3I7DQo+ID4gPiA+ID4gPiAgICB9DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gZGlmZiAtLWdpdA0KPiA+IGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVE eGUvVWZzUGFzc1RocnVIY2kuYw0KPiA+ID4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9V ZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydUhjaS5jDQo+ID4gPiA+ID4gPiBpbmRleCAwYjEwMzBh YjQ3Li40ZmE1Njg5MTk2IDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1 cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnVIY2kuYw0KPiA+ID4gPiA+ID4gKysrIGIv TWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnVIY2kuYw0KPiA+ ID4gPiA+ID4gQEAgLTIsNyArMiw3IEBADQo+ID4gPiA+ID4gPiAgICBVZnNQYXNzVGhydUR4ZSBk cml2ZXIgaXMgdXNlZCB0byBwcm9kdWNlDQo+ID4gRUZJX0VYVF9TQ1NJX1BBU1NfVEhSVQ0KPiA+ ID4gPiA+ID4gcHJvdG9jb2wgaW50ZXJmYWNlDQo+ID4gPiA+ID4gPiAgICBmb3IgdXBwZXIgbGF5 ZXIgYXBwbGljYXRpb24gdG8gZXhlY3V0ZSBVRlMtc3VwcG9ydGVkIFNDU0kgY21kcy4NCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiAtICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDE5LCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4g PiA+ID4gKyAgQ29weXJpZ2h0IChjKSAyMDE0IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMNCj4gPiA+ID4gPiA+ICsgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPiA+ID4gICAgQ29w eXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uPEJSPg0KPiA+ID4gPiA+ID4gICAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBAQCAtMTkyOSwxNyArMTkyOSwxNSBAQCBVZnNEZXZpY2VEZXRlY3Rpb24gKA0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgIC8vDQo+ID4gPiA+ID4gPiAgICAvLyBTdGFydCBV RlMgZGV2aWNlIGRldGVjdGlvbi4NCj4gPiA+ID4gPiA+IC0gIC8vIFRyeSB1cCB0byAzIHRpbWVz IGZvciBlc3RhYmxpc2hpbmcgZGF0YSBsaW5rIHdpdGggZGV2aWNlLg0KPiA+ID4gPiA+ID4gKyAg Ly8gVHJ5IHVwIHRvIDQgdGltZXMgZm9yIGVzdGFibGlzaGluZyBkYXRhIGxpbmsgd2l0aCBkZXZp Y2UuDQo+ID4gPiA+ID4gPiAgICAvLw0KPiA+ID4gPiA+ID4gLSAgZm9yIChSZXRyeSA9IDA7IFJl dHJ5IDwgMzsgUmV0cnkrKykgew0KPiA+ID4gPiA+ID4gKyAgZm9yIChSZXRyeSA9IDA7IFJldHJ5 IDwgNDsgUmV0cnkrKykgew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBQbGVhc2Ug aW50cm9kdWNlIGEgbWFjcm8gaW4gZmlsZSBVZnNQYXNzVGhydS5oOg0KPiA+ID4gPiA+ICNkZWZp bmUgVUZTX0xJTktfU1RBUlRVUF9SRVRSSUVTICA0IEFuZCB1c2UgdGhlIG1hY3JvIGhlcmUuDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBBbHNvLCBpcyBpdCBuZWNlc3NhcnkgdG8gaW5jcmVhc2UgdGhl IHJldHJ5IG51bWJlciBieSAxPw0KPiA+ID4gPiA+IE9yIHRoZSBkZXZpY2UgY2FuIGJlIHN1Y2Nl c3NmdWxseSBicm91Z2h0IHVwIGJ5IGFkZGluZyBhIGhvc3QNCj4gPiA+ID4gPiBjb250cm9sbGVy IHJlLSBlbmFibGluZz8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAgIExp bmtTdGFydHVwQ29tbWFuZC5PcGNvZGUgPSBVZnNVaWNEbWVMaW5rU3RhcnR1cDsNCj4gPiA+ID4g PiA+ICAgICAgTGlua1N0YXJ0dXBDb21tYW5kLkFyZzEgPSAwOw0KPiA+ID4gPiA+ID4gICAgICBM aW5rU3RhcnR1cENvbW1hbmQuQXJnMiA9IDA7DQo+ID4gPiA+ID4gPiAgICAgIExpbmtTdGFydHVw Q29tbWFuZC5BcmczID0gMDsNCj4gPiA+ID4gPiA+ICAgICAgU3RhdHVzID0gVWZzRXhlY1VpY0Nv bW1hbmRzIChQcml2YXRlLA0KPiA+ICZMaW5rU3RhcnR1cENvbW1hbmQpOw0KPiA+ID4gPiA+ID4g LSAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+ID4gPiAtICAgICAgcmV0dXJu IEVGSV9ERVZJQ0VfRVJST1I7DQo+ID4gPiA+ID4gPiAtICAgIH0NCj4gPiA+ID4gPg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gV2lsbCB0aGUgRE1FX0xJTktTVEFSVFVQIGNvbW1hbmQgZXhlY3V0aW9u IGZhaWwgYXQgZmlyc3QgYW5kDQo+ID4gPiA+ID4gdGhlbiBzdWNjZWVkIGFmdGVyIHJldHJ5Pw0K PiA+ID4gPiA+IElmIG5vdCwgSSBwcmVmZXIgdG8ga2VlcCB0aGUgb3JpZ2luIGNvZGUgbG9naWMg dG8gcmV0dXJuIGVycm9yDQo+IHN0YXR1cyBkaXJlY3RseS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiArICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gICAgICBTdGF0dXMgPSBVZnNNbWlvUmVhZDMyIChQcml2YXRlLCBVRlNf SENfU1RBVFVTX09GRlNFVCwNCj4gPiAmRGF0YSk7DQo+ID4gPiA+ID4gPiAgICAgIGlmIChFRklf RVJST1IgKFN0YXR1cykpIHsgQEAgLTE5NjAsNiArMTk1OCwxNCBAQA0KPiA+ID4gPiA+ID4gVWZz RGV2aWNlRGV0ZWN0aW9uICgNCj4gPiA+ID4gPiA+ICAgICAgICAgIH0NCj4gPiA+ID4gPiA+ICAg ICAgICB9DQo+ID4gPiA+ID4gPiAgICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gPiA+ ID4gKyAgICAgIH0NCj4gPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+ID4gKyAgICBpZiAoUmV0 cnkgPT0gMikgew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBQbGVhc2UgaGVscCB0 byB1cGRhdGUgdG86DQo+ID4gPiA+ID4gICBpZiAoUmV0cnkgPT0gVUZTX0xJTktfU1RBUlRVUF9S RVRSSUVTIC0gMSkgew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQW5kIGFkZCBjb21tZW50cyBsaWtl Og0KPiA+ID4gPiA+IC8vDQo+ID4gPiA+ID4gLy8gVHJ5IHJlLWVuYWJsaW5nIHRoZSBVRlMgaG9z dCBjb250cm9sbGVyIGluIHRoZSBsYXN0IHJldHJ5DQo+ID4gPiA+ID4gYXR0ZW1wdCAvLw0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gPiA+ID4gSGFv IFd1DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAgIFN0YXR1cyA9IFVm c0VuYWJsZUhvc3RDb250cm9sbGVyIChQcml2YXRlKTsNCj4gPiA+ID4gPiA+ICsgICAgICBpZiAo RUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+ID4gPiArICAgICAgICBERUJVRyAoKERFQlVH X0VSUk9SLCAiVWZzRGV2aWNlRGV0ZWN0aW9uOiBFbmFibGUNCj4gPiBIb3N0DQo+ID4gPiA+ID4g Q29udHJvbGxlcg0KPiA+ID4gPiA+ID4gRmFpbHMsIFN0YXR1cyA9ICVyXG4iLCBTdGF0dXMpKTsN Cj4gPiA+ID4gPiA+ICsgICAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4gPiA+ID4gPiArICAgICAg fQ0KPiA+ID4gPiA+ID4gICAgICB9DQo+ID4gPiA+ID4gPiAgICB9DQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+IDIuMTYuMi53aW5kb3dzLjENCj4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPg0KPiANCj4gDQoNCg==