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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6DEC7EB64DD for ; Mon, 24 Jul 2023 22:07:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229612AbjGXWHx (ORCPT ); Mon, 24 Jul 2023 18:07:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229496AbjGXWHw (ORCPT ); Mon, 24 Jul 2023 18:07:52 -0400 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5916B10F0 for ; Mon, 24 Jul 2023 15:07:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690236471; x=1721772471; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=eI7MelnqadJjS/yTOy+dkqJWnainGTfL1NR6RwLA2TE=; b=ZxSZ0yXMO8PZdJELxwrsguy73b3mzUPoQ71bqbdHhxpJq5dbmiJ8CSMF ABn3oK+IrDHNInXOXleiki3cKANzACTx9otif79GVq/xZVb0lgUMy/uce VqyOQuYmPOT4BevnhDyspV6L/SpYP7lRqBMfr7vCM6LDDrktaUa2CALXJ jJbkIwnLt23BPKL7+sTkQ3dtS3PkGrTCUgObXDWOljQSTZMUanTFIjpXU iTmsgPKlr0s5axZUD8KtxKFasYkmqDbAKdhBzJD0v4nUBk9qn2LAvePOs yOT99WZXYddKzGtcYfpPbPP2jypl5d2n/SpA+0MEuO/QW0lD4aM9Saa6f A==; X-IronPort-AV: E=McAfee;i="6600,9927,10781"; a="367587397" X-IronPort-AV: E=Sophos;i="6.01,229,1684825200"; d="scan'208";a="367587397" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jul 2023 15:07:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10781"; a="1056587140" X-IronPort-AV: E=Sophos;i="6.01,229,1684825200"; d="scan'208";a="1056587140" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga005.fm.intel.com with ESMTP; 24 Jul 2023 15:07:50 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 24 Jul 2023 15:07:50 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 24 Jul 2023 15:07:49 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Mon, 24 Jul 2023 15:07:49 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Mon, 24 Jul 2023 15:07:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eeaFGyKwO62cc+Vqq3Fi5tiFYFvuNUCxgtsGbJ6zTNk2L5edsctyHmHtO7nsix3oSacJzCUXrRUyxuUYitDp6ukglkFh0iAJ6rhAvmxjU8JyM0POp4DAIANQmtg9o0sG/BIszpvJGxVRULX74yjaF5KdnBTXyzJSsF9L62aLhF7I2l8ySDZKNAEUWCFr4SqkBiV1kNz+ar5C+rI58lh7zLqCfp/DBK6k3Nj+ixjJIeibcSsGiQFsCLQxo24j0Pzay2/LjErRLGOkwx4FdCaA3QQL9NN5mLE6VR32RO05DU49Ng3dTvx21x8bJfQXPql2ZtzNdmHnR/W06DF8qIXkwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eI7MelnqadJjS/yTOy+dkqJWnainGTfL1NR6RwLA2TE=; b=doGgoL/MATgr9VrD+iJ7gpZOlrlVVa0Pw9D7lRuUHzAX9s7wdnKoZtUuULyH9AwHOsRcpHz323X+qK5qy7Sv6t6X8RUqvDyBK5ZngDoB+WAbkhDMxY4Ubiey9xc3kC/FX5Lm8YqOYxrrhtAb42XVLQw8o9fjI2QjpFL1FwLCwivmSfPG730/cIX4e/b9RDLkw6WUoBP1F8SijSw70WNjLZADKpRGr4cHNdjmErHySizKjTy1tQOhbO1EUvzo5GUF1Jt7KBeTPVx3Zqpa0MCGnCWh5MQ87TH6FbbXq/3Cs0cOBajrBJ3XMVP+WRcQi4q7uMeV1pKV/vpMPA85PwylZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW4PR11MB7125.namprd11.prod.outlook.com (2603:10b6:303:219::12) by PH0PR11MB5877.namprd11.prod.outlook.com (2603:10b6:510:141::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.29; Mon, 24 Jul 2023 22:07:47 +0000 Received: from MW4PR11MB7125.namprd11.prod.outlook.com ([fe80::e527:d79c:2bb3:e370]) by MW4PR11MB7125.namprd11.prod.outlook.com ([fe80::e527:d79c:2bb3:e370%2]) with mapi id 15.20.6609.032; Mon, 24 Jul 2023 22:07:47 +0000 From: "Verma, Vishal L" To: "jehoon.park@samsung.com" , "linux-cxl@vger.kernel.org" CC: "Jiang, Dave" , "Schofield, Alison" , "im, junhyeok" , "Williams, Dan J" , "Weiny, Ira" , "bwidawsk@kernel.org" , "nvdimm@lists.linux.dev" , "ks0204.kim@samsung.com" Subject: Re: [ndctl PATCH 2/2] cxl: add 'set-alert-config' command to cxl tool Thread-Topic: [ndctl PATCH 2/2] cxl: add 'set-alert-config' command to cxl tool Thread-Index: AQHZs8aGVMr3KLfLbk6S01Z7k2gNQa/Jjv+A Date: Mon, 24 Jul 2023 22:07:47 +0000 Message-ID: <6aae3a0c078eaed0324831111d0d95c0b2e42b14.camel@intel.com> References: <20230711071019.7151-1-jehoon.park@samsung.com> <20230711071019.7151-3-jehoon.park@samsung.com> In-Reply-To: <20230711071019.7151-3-jehoon.park@samsung.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.48.4 (3.48.4-1.fc38) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR11MB7125:EE_|PH0PR11MB5877:EE_ x-ms-office365-filtering-correlation-id: 68b9430a-215a-418a-5dad-08db8c9269d1 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fn/BZ7WQE6avgzPSJAhKg7njy6iDsBWVxwUCFDRVWThKhWR/6xwP5xH3/TeqrA/7Phu2UaZwbwd0f4NFK4zcnTKiA/lb9Gu3drmJC3jr0oyttsGqlyEycclj5ci184mIUibKSgz/tc3xtAwogJSJiERGj6f3aN88eEAmT+Dm7PL6wc4EyrkJQVLzQlwvH5y0kWQkvlvlUG9/rzOFXBuP1G9rp0Rsp4uFnyDhOLaENFSOCMyi7CQwyFwE9tluP9DCnxXxqR9bIm6NViSeoNcohTgZBm+F412P36ug46hml1GgR5903cGdHjde8zGBEWhmy8shtPf5nexmfBu/mO0U2fMkn44c+yprWNX0h+NaBOs2/yaY3E6m3ttU1xIQUrm22OwbQw4iNleBWH61RNWPaWw1X3denHPfvM1e4lfgJYxzGcKRJVCuVc/9mP7crR4x7WgyXNRLKiO/T3fx0Bm3c9ZxM4WlDcgnsFftbMBI8a9P4A54JOucH3Ypx5SH9np8kCJzOUbU+dpnFu40VYmogwZbk1uihfcXZpNAWK73ZEJfdWS+wVnb/67wKWpp71T2rIxySK1xPPuKXDbMo80WfqP2MDk4iE1FAgnvYBtSxDsMEyoHoujKX9ChI6HPK+qA x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB7125.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(396003)(366004)(346002)(136003)(39860400002)(451199021)(6512007)(6486002)(478600001)(71200400001)(54906003)(110136005)(2616005)(26005)(6506007)(15650500001)(2906002)(66446008)(41300700001)(66556008)(64756008)(4326008)(5660300002)(316002)(8936002)(8676002)(186003)(66946007)(66476007)(76116006)(82960400001)(38100700002)(122000001)(36756003)(38070700005)(86362001)(83380400001)(66899021);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SHVBTzYzWU5BcEZJeWZBbkNIckhEaWlmZDZ0YnM1bzZrR0pWbysvUU8xdEFh?= =?utf-8?B?T0hJUFlLUWNrZ3lBb2FRWStlZ1ROV0xveU9FaDdKREphcTB3UWc1Zi8rUXJo?= =?utf-8?B?THUyUVhuUmQ5QTZCQ3JuWTJjRE5PS0h0a3J5d0JFSTdrQWxCZ2dpemVSd3RR?= =?utf-8?B?NHlHTnJyWUZKazUxRko5VDgwWHNrM2tiakk3SjVVaVJkSlpWR2I4QXB4N2ox?= =?utf-8?B?YW1jRk9RTlVzZHZpcVVsRVY4MFQyc25BUU1FUXRNWTFBalpHUHVoeXAwR09N?= =?utf-8?B?cDZCYWJsdHJOU0NQa2x0Zk0waFAvM2Y4K2ZUV3RCVUxIMjNRMXhEak9FM2I1?= =?utf-8?B?RHltTE5rcmZmZkkwSUZCeFFWdU54ZjYvcEpabVNCMXM1TVJYS0Y3QnRWaTFU?= =?utf-8?B?WFVHM3NIancxUHZxWFRQbHdCOEhmbmZ4bFdRNWpWUEdncGg4RUsyd25GZDJC?= =?utf-8?B?MzhvUFdLNVVkcGFGZ1RaQURNYmNWeWtwQ01JM1U1amw3cjNqUDBNSTlTNFp6?= =?utf-8?B?elRDbFZrdGhDdlQ3MmJydXRLU2V0MytscFhRSmdNSitpaE5vL2NYNzg4dW1v?= =?utf-8?B?Wk5iV0tLeXluVnNIK1A2QkhjOXZValF5NGdpY2d2VnlPM2Z4amR0MEw0ZU8v?= =?utf-8?B?aVdRczJLU3VGc1JuLzhCYmNBeXIvQnZLZkwyalVRcnBQTlVaQzFvZ1lQbHA4?= =?utf-8?B?L3lCNTZTclVKR3I3RVh2c0l3T01oVUo3S1FZeit6dHhlRzFhTDVJRGNteTlF?= =?utf-8?B?VTlwUWN6bFp1Y1g0UUxYNE9JTlFaUmxJWFBBcFFrbVVXc1p0RVNHL2Q1M3Rs?= =?utf-8?B?Q2xtak93OUpHVTZMY2pHR24rTEZqM2tsdWRwTnpxaExLM0FtZzhQd2lNMW5V?= =?utf-8?B?bUNXYk04MlVBVFlDL1cxRmdVdWRRb1BvWGVIcDh5RmY3OXo2Q3VrbW1waVoy?= =?utf-8?B?OHBTUWttUGVkSjBPMGJUYW5KR0lIdVBtWG94OXdKR2ZTempJTXFoU1M2M0lZ?= =?utf-8?B?Z0tpWjdVVi9LUXlySC9vT2F2L1FDOXgzSEhPbmxMMFRTb3c4K05EamUxSkFk?= =?utf-8?B?dENSenYwZ1BNTjJwR0Y5UkxheGM0UHFXb0hVOW9oQ2QwbHgvQ3J2V20xSUls?= =?utf-8?B?K1c0bGNWM0Q0OFd4WVk4QWJXUStCdlByR0taUUNMNUU2enBwMWdUSk5aclBL?= =?utf-8?B?MnpRY2ZzQi9heTEyR1RPZm1kTjNSdEo4SGJRdHorcU9YSzY1T0V4ZGFiMHVN?= =?utf-8?B?M0NqYWgyTmxsRWVLR21Bc1VrRDhWSk5OZEtxcDNRKytIQkFRbjcySEQ3dVlN?= =?utf-8?B?SGF4SE5aWVhkaFIvaVRmL05nbDhVR2V5TGFlMnpQenJoRmVvL3VLdFBKU3JG?= =?utf-8?B?MENUZ0N6elU0aGU0Vk9ua2dsU0ZzbUh5Q3IyV0QvK0VUOVJsZWMvUGhacFRk?= =?utf-8?B?cnprVVdkc3VMc09VMmQ5OUVxaXRCRnlUenEvYjJTb3dRSWpwOWxjZXpGcXNP?= =?utf-8?B?SmZac2t4TnlkRGNhQ3dlUXdBZVNqVU0wVDJTMTE1N0p3UjVkS2dWT0RlZ3hh?= =?utf-8?B?aHFOWS9HK0hXL3RBUGRWam41N055OXZXMkJ6N09iWkNUY2VLTU90ZnJ2NUVM?= =?utf-8?B?YnB5R1I3QzBXRS9veXY4RmprS3A4R1JpbmdaTWRQME1wUkRrUkpCakVJNGRz?= =?utf-8?B?bTRIV1VHdklGQ2VKVmRnTy9PMnJtbkxYbmptaTlzNzdiNVBUbHdtSlBTS3k4?= =?utf-8?B?cXAvUXkrSE56ZFd2eFhiMDFGN05sczFWSjUwVE5EOTRBc0t6RFdqOS9DWkhS?= =?utf-8?B?bTcxZmJFU3gwZDdCYVBsdFlZaW9rdDNhQ2N0cmE2M1pFbUdUSkFvOUVVTksv?= =?utf-8?B?cjlOR2YwWDh4YkM3UlNZME16ZFZYK0FFLzRUZ0k3cktHY0VtUEJ6aFhQajV4?= =?utf-8?B?UVdPZitGRG1DMWU1akkvcHVIMkl1QUdJcERrdkFVWU9IcTArT01jQTM4cHVD?= =?utf-8?B?bFNSMGJ3MmRKSWdhWU9DM1JKODQyYzJ1ZUVxV2ZicDBNUXpWT2l5Q0NzdXR3?= =?utf-8?B?ZmlJS1RXMnJ0OWlzZFBlTUEveElMcTlhQVNPaTZhbzM3a3JreCtYVnNWdjRn?= =?utf-8?B?OFdweW1KME9iRm9pb3lFYTRBUW44WVI1eUp2d01ZckdjczJyMzVBZmEvNWN5?= =?utf-8?B?WUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB7125.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68b9430a-215a-418a-5dad-08db8c9269d1 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2023 22:07:47.1432 (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: I0AcDHB5b9iB3m+ptrv7bIJP099RkSWLQkCMvI0M32QWo71YUrOpvd4B+wGUTIeUC4aMxAcRPgZrg2ZDHY7TJ1FMw6DnGrbFUxfvCgNpslM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5877 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-cxl@vger.kernel.org SGkgSmVob29uLAoKVGhhbmtzIGZvciBhZGRpbmcgdGhpcy4gQSBmZXcgbWlub3IgY29tbWVudHMg YmVsb3csIG90aGVyd2lzZSB0aGVzZQpsb29rIGdvb2QuCgpPbiBUdWUsIDIwMjMtMDctMTEgYXQg MTY6MTAgKzA5MDAsIEplaG9vbiBQYXJrIHdyb3RlOgo+IEFkZCBhIG5ldyBjb21tYW5kOiAnc2V0 LWFsZXJ0LWNvbmZpZycsIHdoaWNoIGNvbmZpZ3VyZXMgZGV2aWNlJ3Mgd2FybmluZyBhbGVydAo+ IAo+IMKgdXNhZ2U6IGN4bCBzZXQtYWxlcnQtY29uZmlnIDxtZW0wPiBbPG1lbTE+Li48bWVtTj5d IFs8b3B0aW9ucz5dCj4gCj4gwqDCoMKgIC12LCAtLXZlcmJvc2XCoMKgwqDCoMKgwqDCoMKgIHR1 cm4gb24gZGVidWcKPiDCoMKgwqAgLVMsIC0tc2VyaWFswqDCoMKgwqDCoMKgwqDCoMKgIHVzZSBz ZXJpYWwgbnVtYmVycyB0byBpZCBtZW1kZXZzCj4gwqDCoMKgIC1MLCAtLWxpZmUtdXNlZC10aHJl c2hvbGQgPHRocmVzaG9sZD4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB0aHJlc2hvbGQgdmFsdWUgZm9yIGxpZmUgdXNlZCB3YXJuaW5nIGFsZXJ0 Cj4gwqDCoMKgwqDCoMKgwqAgLS1saWZlLXVzZWQtYWxlcnQgPCdvbicgb3IgJ29mZic+Cj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5hYmxlIG9y IGRpc2FibGUgbGlmZSB1c2VkIHdhcm5pbmcgYWxlcnQKPiDCoMKgwqAgLU8sIC0tb3Zlci10ZW1w ZXJhdHVyZS10aHJlc2hvbGQgPHRocmVzaG9sZD4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0aHJlc2hvbGQgdmFsdWUgZm9yIGRldmljZSBvdmVy IHRlbXBlcmF0dXJlIHdhcm5pbmcgYWxlcnQKPiDCoMKgwqDCoMKgwqDCoCAtLW92ZXItdGVtcGVy YXR1cmUtYWxlcnQgPCdvbicgb3IgJ29mZic+Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5hYmxlIG9yIGRpc2FibGUgZGV2aWNlIG92ZXIgdGVt cGVyYXR1cmUgd2FybmluZyBhbGVydAo+IMKgwqDCoCAtVSwgLS11bmRlci10ZW1wZXJhdHVyZS10 aHJlc2hvbGQgPHRocmVzaG9sZD4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB0aHJlc2hvbGQgdmFsdWUgZm9yIGRldmljZSB1bmRlciB0ZW1wZXJh dHVyZSB3YXJuaW5nIGFsZXJ0Cj4gwqDCoMKgwqDCoMKgwqAgLS11bmRlci10ZW1wZXJhdHVyZS1h bGVydCA8J29uJyBvciAnb2ZmJz4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBlbmFibGUgb3IgZGlzYWJsZSBkZXZpY2UgdW5kZXIgdGVtcGVyYXR1 cmUgd2FybmluZyBhbGVydAo+IMKgwqDCoCAtViwgLS12b2xhdGlsZS1tZW0tZXJyLXRocmVzaG9s ZCA8dGhyZXNob2xkPgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHRocmVzaG9sZCB2YWx1ZSBmb3IgY29ycmVjdGVkIHZvbGF0aWxlIG1lbSBlcnJv ciB3YXJuaW5nIGFsZXJ0Cj4gwqDCoMKgwqDCoMKgwqAgLS12b2xhdGlsZS1tZW0tZXJyLWFsZXJ0 IDwnb24nIG9yICdvZmYnPgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGVuYWJsZSBvciBkaXNhYmxlIGNvcnJlY3RlZCB2b2xhdGlsZSBtZW0gZXJy b3Igd2FybmluZyBhbGVydAo+IMKgwqDCoCAtUCwgLS1wbWVtLWVyci10aHJlc2hvbGQgPHRocmVz aG9sZD4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB0aHJlc2hvbGQgdmFsdWUgZm9yIGNvcnJlY3RlZCBwbWVtIGVycm9yIHdhcm5pbmcgYWxlcnQK PiDCoMKgwqDCoMKgwqDCoCAtLXBtZW0tZXJyLWFsZXJ0IDwnb24nIG9yICdvZmYnPgo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVuYWJsZSBvciBk aXNhYmxlIGNvcnJlY3RlZCBwbWVtIGVycm9yIHdhcm5pbmcgYWxlcnQKCk5vIG5lZWQgdG8gaW5j bHVkZSB0aGUgZnVsbCB1c2FnZSB0ZXh0IGluIHRoZSBjb21taXQgbWVzc2FnZSAtIHRoaXMgaXMK YXZhaWxhYmxlIGluIHRoZSBtYW4gcGFnZS4gSnVzdCBtZW50aW9uIGFuZCBkZXNjcmliZSB3aGF0 IGZ1bmN0aW9uYWxpdHkKaXMgYmVpbmcgYWRkZWQuCgo+IAo+IFNpZ25lZC1vZmYtYnk6IEplaG9v biBQYXJrIDxqZWhvb24ucGFya0BzYW1zdW5nLmNvbT4KPiAtLS0KPiDCoERvY3VtZW50YXRpb24v Y3hsL2N4bC1zZXQtYWxlcnQtY29uZmlnLnR4dCB8wqAgOTYgKysrKysrKysrCj4gwqBEb2N1bWVu dGF0aW9uL2N4bC9tZXNvbi5idWlsZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEg Kwo+IMKgY3hsL2J1aWx0aW4uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4gwqBjeGwvY3hsLmPCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKg wqAgMSArCj4gwqBjeGwvbWVtZGV2LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyMTkgKysrKysrKysrKysrKysrKysrKystCj4g wqA1IGZpbGVzIGNoYW5nZWQsIDMxNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gwqBj cmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9jeGwvY3hsLXNldC1hbGVydC1jb25maWcu dHh0Cj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY3hsL2N4bC1zZXQtYWxlcnQtY29u ZmlnLnR4dCBiL0RvY3VtZW50YXRpb24vY3hsL2N4bC1zZXQtYWxlcnQtY29uZmlnLnR4dAo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYTI5MWMwOQo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL2N4bC9jeGwtc2V0LWFsZXJ0LWNvbmZpZy50eHQKPiBA QCAtMCwwICsxLDk2IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4g Kwo+ICtjeGwtc2V0LWFsZXJ0LWNvbmZpZygxKQo+ICs9PT09PT09PT09PT09PT09PT09PT09PQo+ ICsKPiArTkFNRQo+ICstLS0tCj4gK2N4bC1zZXQtYWxlcnQtY29uZmlnIC0gc2V0IHRoZSB3YXJu aW5nIGFsZXJ0IHRocmVzaG9sZCBvbiBhIENYTCBtZW1kZXYKPiArCj4gK1NZTk9QU0lTCj4gKy0t LS0tLS0tCj4gK1t2ZXJzZV0KPiArJ2N4bCBzZXQtYWxlcnQtY29uZmlnIDxtZW0wPiBbPG1lbTE+ Li48bWVtTj5dIFs8b3B0aW9ucz5dJwo+ICsKPiArREVTQ1JJUFRJT04KPiArLS0tLS0tLS0tLS0K PiArQ1hMIGRldmljZSByYWlzZXMgYW4gYWxlcnQgd2hlbiBpdHMgaGVhbHRoIHN0YXR1cyBpcyBj aGFuZ2VkLiBDcml0aWNhbCBhbGVydAo+ICtzaGFsbCBhdXRvbWF0aWNhbGx5IGJlIGNvbmZpZ3Vy ZWQgYnkgdGhlIGRldmljZSBhZnRlciBhIGRldmljZSByZXNldC4KPiArSWYgc3VwcG9ydGVkLCBw cm9ncmFtbWFibGUgd2FybmluZyB0aHJlc2hvbGRzIGFsc28gYmUgaW5pdGlhbGl6ZWQgdG8gdmVu ZG9yCj4gK3JlY29tbWVuZGVkIGRlZmF1bHRzLCB0aGVuIGNvdWxkIGJlIGNvbmZpZ3VyZWQgYnkg dGhlIGhvc3QuCgpzL2hvc3QvdXNlci8gPwoKPiAKPHNuaXA+Cj4gwqAKPiArc3RhdGljIGludCB2 YWxpZGF0ZV9hbGVydF90aHJlc2hvbGQoZW51bSBjeGxfc2V0YWxlcnRfZXZlbnQgZXZlbnQsCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGludCB0aHJlc2hvbGQpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBpZiAoZXZl bnQgPT0gQ1hMX1NFVEFMRVJUX0xJRkVfVVNFRCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAodGhyZXNob2xkIDwgMCB8fCB0aHJlc2hvbGQgPiAxMDApIHsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvZ19lcnIoJm1sLCAiSW52 YWxpZCBsaWZlIHVzZWQgdGhyZXNob2xkOiAlZFxuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0aHJlc2hvbGQpOwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FSU5W QUw7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiArwqDCoMKgwqDCoMKgwqB9 IGVsc2UgaWYgKGV2ZW50ID09IENYTF9TRVRBTEVSVF9PVkVSX1RFTVAgfHwKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldmVudCA9PSBDWExfU0VUQUxFUlRfVU5ERVJfVEVN UCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAodGhyZXNob2xkIDwgU0hS VF9NSU4gfHwgdGhyZXNob2xkID4gU0hSVF9NQVgpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvZ19lcnIoJm1sLAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJJbnZhbGlkIGRl dmljZSB0ZW1wZXJhdHVyZSB0aHJlc2hvbGQ6ICVkXG4iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRocmVzaG9sZCk7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVJ TlZBTDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDC oH0gZWxzZSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICh0aHJlc2hvbGQg PCAwIHx8IHRocmVzaG9sZCA+IFVTSFJUX01BWCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbG9nX2VycigmbWwsCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIkludmFsaWQgY29y cmVjdGVkIG1lbSBlcnJvciB0aHJlc2hvbGQ6ICVkXG4iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRocmVzaG9sZCk7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVJ TlZBTDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDC oH0KPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKPiArfQo+ICsKPiArI2RlZmluZSBhbGVydF9w YXJhbV9zZXRfdGhyZXNob2xkKGFyZywgYWxlcnRfZXZlbnQpwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK3vCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFwYXJhbS5hcmcjI19h bGVydCkge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZiAocGFyYW0uYXJnIyNfdGhyZXNob2xkKSB7wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvZ19lcnIo Jm1sLCAiQWN0aW9uIG5vdCBzcGVjaWZpZWRcbiIpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIC1FSU5WQUw7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgXAo+ICvCoMKgwqDCoMKgwqDCoH0gZWxzZSBpZiAoc3RybmNtcChw YXJhbS5hcmcjI19hbGVydCwgIm9uIiwgMikgPT0gMCkge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBcCgpJIHNlZSB0aGF0IG5kY3RsLWluamVjdC1zbWFydCBhbHNvIGRvZXMgc3RybmNt cCwgYnV0IEknbSB3b25kZXJpbmcgaWYKd2Ugc2hvdWxkIGJlIGEgbGl0dGxlIG1vcmUgc3RyaWN0 IGFuZCB1c2Ugc3RyY21wIGluc3RlYWQuCgpUaGUgb3B0aW9uIHBhcnNlciB3b24ndCBnaXZlIHVz IHN0cmluZ3MgdGhhdCBhcmUgbm90IG51bC10ZXJtaW5hdGVkLCBzbwppdCBzaG91bGQgYmUgc2Fm ZSwgYW5kIGl0IHdpbGwgYXZvaWQgc29tZXRoaW5nIGF3a3dhcmQgbGlrZQoiLS1zb21lLWFsZXJ0 PW9ud2FyZCIuCgpJZGVhbGx5IHdlIHByb2JhYmx5IHdhbnQgYSBoZWxwZXIgc2ltaWxhciB0byB0 aGUga2VybmVsJ3Mga3N0cnRvYm9vbCgpLAp3aGljaCB3b3VsZCBoYW5kbGUgYWxsIG9mIHtvbix0 cnVlLDEsdH0gYW5kIGRpZmZlcmVudCBjYXBpdGFsaXphdGlvbiBhcwp3ZWxsLCBidXQgdGhhdCBj YW4gYmUgYSBmb2xsb3cgb24gcGF0Y2guCgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZiAocGFyYW0uYXJnIyNfdGhyZXNob2xkKSB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNoYXIgKmVuZHB0cjvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBcCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBhbGVydGN0eC5hcmcjI190aHJlc2hvbGQgPcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydG9sKHBhcmFtLmFy ZyMjX3RocmVzaG9sZCwgJmVuZHB0ciwgMTApO8KgwqAgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGVuZHB0clswXSAhPSAnXDAnKSB7wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgbG9nX2VycigmbWwsICJJbnZhbGlkIHRocmVzaG9sZDogJXNcbiIswqDCoMKgwqDCoMKg IFwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFyYW0uYXJnIyNfdGhyZXNob2xkKTvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVJTlZBTDvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJjID0gdmFsaWRhdGVfYWxlcnRfdGhyZXNo b2xkKMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGFsZXJ0X2V2ZW50LCBhbGVydGN0eC5hcmcjI190aHJlc2hvbGQpO8KgwqDCoMKgwqDCoCBc Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmMg IT0gMCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmM7wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBcCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBhbGVydGN0eC52YWxpZF9hbGVydF9hY3Rpb25zIHw9IDEgPDwgYWxlcnRfZXZlbnQ7wqDCoMKg wqAgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYWxl cnRjdHguZW5hYmxlX2FsZXJ0X2FjdGlvbnMgfD0gMSA8PCBhbGVydF9ldmVudDvCoMKgwqAgXAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Uge8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbG9nX2VycigmbWwsICJUaHJlc2hvbGQgbm90IHNw ZWNpZmllZFxuIik7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVJTlZBTDvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIFwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK8Kg wqDCoMKgwqDCoMKgfSBlbHNlIGlmIChzdHJuY21wKHBhcmFtLmFyZyMjX2FsZXJ0LCAib2ZmIiwg MykgPT0gMCkge8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZiAoIXBhcmFtLmFyZyMjX3RocmVzaG9sZCkge8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYWxlcnRjdHgu dmFsaWRfYWxlcnRfYWN0aW9ucyB8PSAxIDw8IGFsZXJ0X2V2ZW50O8KgwqDCoMKgIFwKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFsZXJ0Y3R4LmVuYWJs ZV9hbGVydF9hY3Rpb25zICY9IH4oMSA8PCBhbGVydF9ldmVudCk7IFwKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIFwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGxvZ19lcnIoJm1sLCAiRGlzYWJsZSBub3QgcmVxdWlyZSB0aHJlc2hvbGRc biIpO8KgwqDCoMKgwqAgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuIC1FSU5WQUw7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ICvCoMKgwqDCoMKgwqDCoH0gZWxzZSB7 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsb2dfZXJyKCZtbCwg IkludmFsaWQgYWN0aW9uOiAlc1xuIiwgcGFyYW0uYXJnIyNfYWxlcnQpO8KgwqDCoMKgwqAgXAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVJTlZBTDvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gK8KgwqDCoMKgwqDCoMKgfcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgXAo+ICt9Cj4gKwo+IAoKPHNuaXA+Cgo+ICtpbnQgY21kX3NldF9hbGVydF9j b25maWcoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3hsX2N0eCAqY3R4KQo+ ICt7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IGNvdW50ID0gbWVtZGV2X2FjdGlvbigKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXJnYywgYXJndiwgY3R4LCBhY3Rpb25fc2V0X2FsZXJ0 X2NvbmZpZywgc2V0X2FsZXJ0X29wdGlvbnMsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCJjeGwgc2V0LWFsZXJ0LWNvbmZpZyA8bWVtMD4gWzxtZW0xPi4uPG1lbU4+XSBbPG9wdGlv bnM+XSIpOwo+ICvCoMKgwqDCoMKgwqDCoGxvZ19pbmZvKCZtbCwgInNldCBhbGVydCBjb25maWd1 cmF0aW9uICVkIG1lbSVzXG4iLAoKTWF5YmUgInNldCBhbGVydCBjb25maWd1cmF0aW9uIGZvciAl ZCAuLi4iCgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY291bnQgPj0gMCA/IGNv dW50IDogMCwgY291bnQgPiAxID8gInMiIDogIiIpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqByZXR1 cm4gY291bnQgPj0gMCA/IDAgOiBFWElUX0ZBSUxVUkU7Cj4gK30KCg==