From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.9 required=3.0 tests=FROM_EXCESS_BASE64, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_NEOMUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 252CAC43219 for ; Fri, 3 May 2019 09:19:38 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F3834206C3 for ; Fri, 3 May 2019 09:19:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3834206C3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hMULe-0002nq-PK; Fri, 03 May 2019 09:19:18 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hMULc-0002nl-VK for xen-devel@lists.xenproject.org; Fri, 03 May 2019 09:19:16 +0000 X-Inumbo-ID: 83d05ca5-6d84-11e9-843c-bc764e045a96 Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 83d05ca5-6d84-11e9-843c-bc764e045a96; Fri, 03 May 2019 09:19:14 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.60,425,1549929600"; d="scan'208";a="89617956" Date: Fri, 3 May 2019 11:19:05 +0200 From: Roger Pau =?utf-8?B?TW9ubsOp?= To: Jan Beulich Message-ID: <20190503091905.2levs75dxln4rhiw@Air-de-Roger> References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CC71ADE020000780022A1B7@prv1-mh.provo.novell.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <5CC71ADE020000780022A1B7@prv1-mh.provo.novell.com> User-Agent: NeoMutt/20180716 X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL02.citrite.net (10.69.22.126) Subject: Re: [Xen-devel] [PATCH v1b 1/9] x86/IRQ: deal with move-in-progress state in fixup_irqs() X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel , Igor Druzhinin , Wei Liu , Andrew Cooper Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190503091905.0-mglvnAMaNxFhLyDux1ct_u7fT8-JV2jMA4dGqr7aI@z> T24gTW9uLCBBcHIgMjksIDIwMTkgYXQgMDk6NDA6MTRBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gVGhlIGZsYWcgYmVpbmcgc2V0IG1heSBwcmV2ZW50IGFmZmluaXR5IGNoYW5nZXMsIGFz IHRoZXNlIG9mdGVuIGltcGx5Cj4gYXNzaWdubWVudCBvZiBhIG5ldyB2ZWN0b3IuIFdoZW4gdGhl cmUncyBubyBwb3NzaWJsZSBkZXN0aW5hdGlvbiBsZWZ0Cj4gZm9yIHRoZSBJUlEsIHRoZSBjbGVh cmluZyBvZiB0aGUgZmxhZyBuZWVkcyB0byBoYXBwZW4gcmlnaHQgZnJvbQo+IGZpeHVwX2lycXMo KS4KPiAKPiBBZGRpdGlvbmFsbHkgX2Fzc2lnbl9pcnFfdmVjdG9yKCkgbmVlZHMgdG8gYXZvaWQg c2V0dGluZyB0aGUgZmxhZyB3aGVuCj4gdGhlcmUncyBubyBvbmxpbmUgQ1BVIGxlZnQgaW4gd2hh dCBnZXRzIHB1dCBpbnRvIC0+YXJjaC5vbGRfY3B1X21hc2suCj4gVGhlIG9sZCB2ZWN0b3IgY2Fu IGJlIHJlbGVhc2VkIHJpZ2h0IGF3YXkgaW4gdGhpcyBjYXNlLgo+IAo+IEFsc28gZXh0ZW5kIHRo ZSBsb2cgbWVzc2FnZSBhYm91dCBicm9rZW4gYWZmaW5pdHkgdG8gaW5jbHVkZSB0aGUgbmV3Cj4g YWZmaW5pdHkgYXMgd2VsbCwgYWxsb3dpbmcgdG8gbm90aWNlIGlzc3VlcyB3aXRoIGFmZmluaXR5 IGNoYW5nZXMgbm90Cj4gYWN0dWFsbHkgaGF2aW5nIHRha2VuIHBsYWNlLiBTd2FwIHRoZSBpZi9l bHNlLWlmIG9yZGVyIHRoZXJlIGF0IHRoZQo+IHNhbWUgdGltZSB0byByZWR1Y2UgdGhlIGFtb3Vu dCBvZiBjb25kaXRpb25zIGNoZWNrZWQuCj4gCj4gQXQgdGhlIHNhbWUgdGltZSByZXBsYWNlIHR3 byBvcGVuIGNvZGVkIGluc3RhbmNlcyBvZiB0aGUgbmV3IGhlbHBlcgo+IGZ1bmN0aW9uLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiAtLS0KPiB2 MjogQWxzbyB1cGRhdGUgdmVjdG9yX2lycVtdIGluIHRoZSBjb2RlIGFkZGVkIHRvIGZpeHVwX2ly cXMoKS4KPiAKPiAtLS0gdW5zdGFibGUub3JpZy94ZW4vYXJjaC94ODYvaXJxLmMJMjAxOS0wNC0y OSAxNzozNDoxNi43MjY1NDI2NTkgKzAyMDAKPiArKysgdW5zdGFibGUveGVuL2FyY2gveDg2L2ly cS5jCTIwMTktMDQtMjkgMTU6MDU6MzkuMDAwMDAwMDAwICswMjAwCj4gQEAgLTI0Miw2ICsyNDIs MjAgQEAgdm9pZCBkZXN0cm95X2lycSh1bnNpZ25lZCBpbnQgaXJxKQo+ICAgICAgeGZyZWUoYWN0 aW9uKTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgcmVsZWFzZV9vbGRfdmVjKHN0cnVjdCBpcnFf ZGVzYyAqZGVzYykKPiArewo+ICsgICAgdW5zaWduZWQgaW50IHZlY3RvciA9IGRlc2MtPmFyY2gu b2xkX3ZlY3RvcjsKPiArCj4gKyAgICBkZXNjLT5hcmNoLm9sZF92ZWN0b3IgPSBJUlFfVkVDVE9S X1VOQVNTSUdORUQ7Cj4gKyAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKPiArCj4gKyAgICBpZiAoIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzICkKCldvdWxkbid0IGl0 IGJlIGJldHRlciB0byBjbGVhbiB0aGUgYml0bWFwIHdoZW4gdmVjdG9yICE9CklSUV9WRUNUT1Jf VU5BU1NJR05FRD8KCkkgaGF2ZW4ndCBjaGVja2VkIGFsbCB0aGUgY2FsbGVycywgYnV0IEkgZG9u J3QgdGhpbmsgaXQncyB2YWxpZCB0bwpjYWxsIHJlbGVhc2Vfb2xkX3ZlYyB3aXRoIGRlc2MtPmFy Y2gub2xkX3ZlY3RvciA9PQpJUlFfVkVDVE9SX1VOQVNTSUdORUQsIGluIHdoaWNoIGNhc2UgSSB3 b3VsZCBhZGQgYW4gQVNTRVJULgoKPiArICAgIHsKPiArICAgICAgICBBU1NFUlQodGVzdF9iaXQo dmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycykpOwo+ICsgICAgICAgIGNsZWFyX2JpdCh2 ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzKTsKPiArICAgIH0KPiArfQo+ICsKPiAgc3Rh dGljIHZvaWQgX19jbGVhcl9pcnFfdmVjdG9yKGludCBpcnEpCj4gIHsKPiAgICAgIGludCBjcHUs IHZlY3Rvciwgb2xkX3ZlY3RvcjsKPiBAQCAtMjg1LDE0ICsyOTksNyBAQCBzdGF0aWMgdm9pZCBf X2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKCktpbmQgb2YgdW5yZWxhdGVkLCBidXQgSSB0aGlu ayB0aGUgY2hlY2sgYXQgdGhlIHRvcCBvZgpfX2NsZWFyX2lycV92ZWN0b3Igc2hvdWxkIGJlOgoK QlVHX09OKGRlc2MtPmFyY2gudmVjdG9yID09IElSUV9WRUNUT1JfVU5BU1NJR05FRCk7CgpSYXRo ZXIgdGhhbiB0aGUgY3VycmVudDoKCkJVR19PTighZGVzYy0+YXJjaC52ZWN0b3IpOwoKVGhlcmUn cyBhIGxvdCBvZiBsb2dpYyB0aGF0IHdvdWxkIGdvIGV4dHJlbWVseSB3cm9uZyBpZiB2ZWN0b3Ig aXMgLTEuCgo+ICAgICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVtvbGRfdmVjdG9yXSA9 IH5pcnE7Cj4gICAgICB9Cj4gIAo+IC0gICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gSVJRX1ZF Q1RPUl9VTkFTU0lHTkVEOwo+IC0gICAgY3B1bWFza19jbGVhcihkZXNjLT5hcmNoLm9sZF9jcHVf bWFzayk7Cj4gLQo+IC0gICAgaWYgKCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCj4gLSAgICB7 Cj4gLSAgICAgICAgQVNTRVJUKHRlc3RfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92 ZWN0b3JzKSk7Cj4gLSAgICAgICAgY2xlYXJfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNl ZF92ZWN0b3JzKTsKPiAtICAgIH0KPiArICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKPiAgCj4g ICAgICBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgPSAwOwoKV2hpbGUgdGhlcmUgaXQgbWln aHQgYmUgbmljZSB0byBjb252ZXJ0IG1vdmVfaW5fcHJvZ3Jlc3MgdG8gYSBib29sZWFuLgoKPiAg fQo+IEBAIC01MTcsMTIgKzUyNCwyMSBAQCBuZXh0Ogo+ICAgICAgICAgIC8qIEZvdW5kIG9uZSEg Ki8KPiAgICAgICAgICBjdXJyZW50X3ZlY3RvciA9IHZlY3RvcjsKPiAgICAgICAgICBjdXJyZW50 X29mZnNldCA9IG9mZnNldDsKPiAtICAgICAgICBpZiAob2xkX3ZlY3RvciA+IDApIHsKPiAtICAg ICAgICAgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMTsKPiAtICAgICAgICAgICAg Y3B1bWFza19jb3B5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrLCBkZXNjLT5hcmNoLmNwdV9tYXNr KTsKPiArCj4gKyAgICAgICAgaWYgKCBvbGRfdmVjdG9yID4gMCApCj4gKyAgICAgICAgewo+ICsg ICAgICAgICAgICBjcHVtYXNrX2FuZChkZXNjLT5hcmNoLm9sZF9jcHVfbWFzaywgZGVzYy0+YXJj aC5jcHVfbWFzaywKPiArICAgICAgICAgICAgICAgICAgICAgICAgJmNwdV9vbmxpbmVfbWFwKTsK PiAgICAgICAgICAgICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7 Cj4gKyAgICAgICAgICAgIGlmICggIWNwdW1hc2tfZW1wdHkoZGVzYy0+YXJjaC5vbGRfY3B1X21h c2spICkKPiArICAgICAgICAgICAgICAgIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyA9IDE7 Cj4gKyAgICAgICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAgIC8qIFRoaXMgY2FuIGhhcHBl biB3aGlsZSBvZmZsaW5pbmcgYSBDUFUuICovCj4gKyAgICAgICAgICAgICAgICByZWxlYXNlX29s ZF92ZWMoZGVzYyk7Cj4gICAgICAgICAgfQo+ICsKPiAgICAgICAgICB0cmFjZV9pcnFfbWFzayhU UkNfSFdfSVJRX0FTU0lHTl9WRUNUT1IsIGlycSwgdmVjdG9yLCAmdG1wX21hc2spOwo+ICsKPiAg ICAgICAgICBmb3JfZWFjaF9jcHUobmV3X2NwdSwgJnRtcF9tYXNrKQo+ICAgICAgICAgICAgICBw ZXJfY3B1KHZlY3Rvcl9pcnEsIG5ld19jcHUpW3ZlY3Rvcl0gPSBpcnE7Cj4gICAgICAgICAgZGVz Yy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7Cj4gQEAgLTY5MSwxNCArNzA3LDggQEAgdm9pZCBpcnFf bW92ZV9jbGVhbnVwX2ludGVycnVwdChzdHJ1Y3QgYwo+ICAKPiAgICAgICAgICBpZiAoIGRlc2Mt PmFyY2gubW92ZV9jbGVhbnVwX2NvdW50ID09IDAgKQo+ICAgICAgICAgIHsKPiAtICAgICAgICAg ICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVEOwo+IC0gICAg ICAgICAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKPiAtCj4gLSAg ICAgICAgICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQo+IC0gICAgICAgICAgICB7 Cj4gLSAgICAgICAgICAgICAgICBBU1NFUlQodGVzdF9iaXQodmVjdG9yLCBkZXNjLT5hcmNoLnVz ZWRfdmVjdG9ycykpOwo+IC0gICAgICAgICAgICAgICAgY2xlYXJfYml0KHZlY3RvciwgZGVzYy0+ YXJjaC51c2VkX3ZlY3RvcnMpOwo+IC0gICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIEFTU0VS VCh2ZWN0b3IgPT0gZGVzYy0+YXJjaC5vbGRfdmVjdG9yKTsKPiArICAgICAgICAgICAgcmVsZWFz ZV9vbGRfdmVjKGRlc2MpOwo+ICAgICAgICAgIH0KPiAgdW5sb2NrOgo+ICAgICAgICAgIHNwaW5f dW5sb2NrKCZkZXNjLT5sb2NrKTsKPiBAQCAtMjM5MSw2ICsyNDAxLDMzIEBAIHZvaWQgZml4dXBf aXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIKPiAgICAgICAgICAgICAgY29udGludWU7Cj4g ICAgICAgICAgfQo+ICAKPiArICAgICAgICAvKgo+ICsgICAgICAgICAqIEluIG9yZGVyIGZvciB0 aGUgYWZmaW5pdHkgYWRqdXN0bWVudCBiZWxvdyB0byBiZSBzdWNjZXNzZnVsLCB3ZQo+ICsgICAg ICAgICAqIG5lZWQgX19hc3NpZ25faXJxX3ZlY3RvcigpIHRvIHN1Y2NlZWQuIFRoaXMgaW4gcGFy dGljdWxhciBtZWFucwo+ICsgICAgICAgICAqIGNsZWFyaW5nIGRlc2MtPmFyY2gubW92ZV9pbl9w cm9ncmVzcyBpZiB0aGlzIHdvdWxkIG90aGVyd2lzZQo+ICsgICAgICAgICAqIHByZXZlbnQgdGhl IGZ1bmN0aW9uIGZyb20gc3VjY2VlZGluZy4gU2luY2UgdGhlcmUncyBubyB3YXkgZm9yIHRoZQo+ ICsgICAgICAgICAqIGZsYWcgdG8gZ2V0IGNsZWFyZWQgYW55bW9yZSB3aGVuIHRoZXJlJ3Mgbm8g cG9zc2libGUgZGVzdGluYXRpb24KPiArICAgICAgICAgKiBsZWZ0ICh0aGUgb25seSBwb3NzaWJp bGl0eSB0aGVuIHdvdWxkIGJlIHRoZSBJUlFzIGVuYWJsZWQgd2luZG93Cj4gKyAgICAgICAgICog YWZ0ZXIgdGhpcyBsb29wKSwgdGhlcmUncyB0aGVuIGFsc28gbm8gcmFjZSB3aXRoIHVzIGRvaW5n IGl0IGhlcmUuCj4gKyAgICAgICAgICoKPiArICAgICAgICAgKiBUaGVyZWZvcmUgdGhlIGxvZ2lj IGhlcmUgYW5kIHRoZXJlIG5lZWQgdG8gcmVtYWluIGluIHN5bmMuCj4gKyAgICAgICAgICovCj4g KyAgICAgICAgaWYgKCBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgJiYKPiArICAgICAgICAg ICAgICFjcHVtYXNrX2ludGVyc2VjdHMobWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaykgKQo+ICsg ICAgICAgIHsKPiArICAgICAgICAgICAgdW5zaWduZWQgaW50IGNwdTsKPiArCj4gKyAgICAgICAg ICAgIGNwdW1hc2tfYW5kKCZhZmZpbml0eSwgZGVzYy0+YXJjaC5vbGRfY3B1X21hc2ssICZjcHVf b25saW5lX21hcCk7Cj4gKwo+ICsgICAgICAgICAgICBzcGluX2xvY2soJnZlY3Rvcl9sb2NrKTsK PiArICAgICAgICAgICAgZm9yX2VhY2hfY3B1KGNwdSwgJmFmZmluaXR5KQo+ICsgICAgICAgICAg ICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW2Rlc2MtPmFyY2gub2xkX3ZlY3Rvcl0gPSB+ aXJxOwo+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmdmVjdG9yX2xvY2spOwo+ICsKPiArICAg ICAgICAgICAgcmVsZWFzZV9vbGRfdmVjKGRlc2MpOwo+ICsgICAgICAgICAgICBkZXNjLT5hcmNo Lm1vdmVfaW5fcHJvZ3Jlc3MgPSAwOwo+ICsgICAgICAgIH0KPiArCj4gICAgICAgICAgY3B1bWFz a19hbmQoJmFmZmluaXR5LCAmYWZmaW5pdHksIG1hc2spOwo+ICAgICAgICAgIGlmICggY3B1bWFz a19lbXB0eSgmYWZmaW5pdHkpICkKPiAgICAgICAgICB7Cj4gQEAgLTI0MDksMTUgKzI0NDYsMTgg QEAgdm9pZCBmaXh1cF9pcnFzKGNvbnN0IGNwdW1hc2tfdCAqbWFzaywgYgo+ICAgICAgICAgIGlm ICggZGVzYy0+aGFuZGxlci0+ZW5hYmxlICkKPiAgICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ ZW5hYmxlKGRlc2MpOwo+ICAKPiArICAgICAgICBjcHVtYXNrX2NvcHkoJmFmZmluaXR5LCBkZXNj LT5hZmZpbml0eSk7Cj4gKwo+ICAgICAgICAgIHNwaW5fdW5sb2NrKCZkZXNjLT5sb2NrKTsKPiAg Cj4gICAgICAgICAgaWYgKCAhdmVyYm9zZSApCj4gICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICAK PiAtICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5ICYmIHNldF9hZmZpbml0eSApCj4gLSAgICAg ICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIGlycSAlaVxuIiwgaXJxKTsKPiAtICAg ICAgICBlbHNlIGlmICggIXNldF9hZmZpbml0eSApCj4gLSAgICAgICAgICAgIHByaW50aygiQ2Fu bm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEpOwo+ICsgICAgICAgIGlmICggIXNl dF9hZmZpbml0eSApCj4gKyAgICAgICAgICAgIHByaW50aygiQ2Fubm90IHNldCBhZmZpbml0eSBm b3IgSVJRJXVcbiIsIGlycSk7Cj4gKyAgICAgICAgZWxzZSBpZiAoIGJyZWFrX2FmZmluaXR5ICkK PiArICAgICAgICAgICAgcHJpbnRrKCJCcm9rZSBhZmZpbml0eSBmb3IgSVJRJXUsIG5ldzogJSpw YlxuIiwKPiArICAgICAgICAgICAgICAgICAgIGlycSwgbnJfY3B1X2lkcywgJmFmZmluaXR5KTsK CkkgZ3Vlc3MgaXQncyBmaW5lIHRvIGhhdmUgdGhvc2Ugd2l0aG91dCByYXRlLWxpbWl0aW5nIGJl Y2F1c2UKZml4dXBfaXJxcyBpcyBvbmx5IGNhbGxlZCBmb3IgYWRtaW4tdHJpZ2dlcmVkIGFjdGlv bnMsIHNvIHRoZXJlJ3Mgbm8KcmlzayBvZiBjb25zb2xlIGZsb29kaW5nLgoKVGhhbmtzLCBSb2dl ci4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=