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=-4.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 5E1C8C04A6B for ; Wed, 8 May 2019 13:10:49 +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 328B520850 for ; Wed, 8 May 2019 13:10:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 328B520850 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.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 1hOMLF-0007IU-M8; Wed, 08 May 2019 13:10:37 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOMLE-0007IL-AL for xen-devel@lists.xenproject.org; Wed, 08 May 2019 13:10:36 +0000 X-Inumbo-ID: a8d83afa-7192-11e9-87d3-4748c36570db Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id a8d83afa-7192-11e9-87d3-4748c36570db; Wed, 08 May 2019 13:10:33 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Wed, 08 May 2019 07:10:32 -0600 Message-Id: <5CD2D545020000780022CD3D@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Wed, 08 May 2019 07:10:29 -0600 From: "Jan Beulich" To: "xen-devel" References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CD2D2C8020000780022CCF2@prv1-mh.provo.novell.com> In-Reply-To: <5CD2D2C8020000780022CCF2@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH v2 06/12] x86/IRQ: consolidate use of ->arch.cpu_mask 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: Andrew Cooper , Wei Liu , Roger Pau Monne Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190508131029.5B2vimyPSig954SoMFR2aAfjeHHn-nLiv4SfT3zJ6QQ@z> TWl4ZWQgbWVhbmluZyB3YXMgaW1wbGllZCBzbyBmYXIgYnkgZGlmZmVyZW50IHBpZWNlcyBvZiBj b2RlIC0KZGlzYWdyZWVtZW50IHdhcyBpbiBwYXJ0aWN1bGFyIGFib3V0IHdoZXRoZXIgdG8gZXhw ZWN0IG9mZmxpbmUgQ1BVcycKYml0cyB0byBwb3NzaWJseSBiZSBzZXQuIFN3aXRjaCB0byBhIG1v c3RseSBjb25zaXN0ZW50IG1lYW5pbmcKKGV4Y2VwdGlvbiBiZWluZyBoaWdoIHByaW9yaXR5IGlu dGVycnVwdHMsIHdoaWNoIHdvdWxkIHBlcmhhcHMgYmV0dGVyCmJlIHN3aXRjaGVkIHRvIHRoZSBz YW1lIG1vZGVsIGFzIHdlbGwgaW4gZHVlIGNvdXJzZSkuIFVzZSB0aGUgZmllbGQgdG8KcmVjb3Jk IHRoZSB2ZWN0b3IgYWxsb2NhdGlvbiBtYXNrLCBpLmUuIHBvdGVudGlhbGx5IGluY2x1ZGluZyBi aXRzIG9mCm9mZmxpbmUgKHBhcmtlZCkgQ1BVcy4gVGhpcyBpbXBsaWVzIHRoYXQgYmVmb3JlIHBh c3NpbmcgdGhlIG1hc2sgdG8KY2VydGFpbiBmdW5jdGlvbnMgKG1vc3Qgbm90YWJseSBjcHVfbWFz a190b19hcGljaWQoKSkgaXQgbmVlZHMgdG8gYmUKZnVydGhlciByZWR1Y2VkIHRvIHRoZSBvbmxp bmUgc3Vic2V0LgoKVGhlIGV4Y2VwdGlvbiBvZiBoaWdoIHByaW9yaXR5IGludGVycnVwdHMgaXMg YWxzbyB3aHkgZm9yIHRoZSBtb21lbnQKX2JpbmRfaXJxX3ZlY3RvcigpIGlzIGxlZnQgYXMgaXMs IGRlc3BpdGUgbG9va2luZyB3cm9uZzogSXQncyB1c2VkCmV4Y2x1c2l2ZWx5IGZvciBJUlEwLCB3 aGljaCBpc24ndCBzdXBwb3NlZCB0byBtb3ZlIG9mZiBDUFUwIGF0IGFueSB0aW1lLgoKVGhlIHBy aW9yIGxhY2sgb2YgcmVzdHJpY3RpbmcgdG8gb25saW5lIENQVXMgaW4gc2V0X2Rlc2NfYWZmaW5p dHkoKQpiZWZvcmUgY2FsbGluZyBjcHVfbWFza190b19hcGljaWQoKSBpbiBwYXJ0aWN1bGFyIGFs bG93ZWQgKGluIHgyQVBJQwpjbHVzdGVyZWQgbW9kZSkgb2ZmbGluZWQgQ1BVcyB0byBlbmQgdXAg ZW5hYmxlZCBpbiBhbiBJUlEncyBkZXN0aW5hdGlvbgpmaWVsZC4gKEkgd29uZGVyIHdoZXRoZXIg dmVjdG9yX2FsbG9jYXRpb25fY3B1bWFza19mbGF0KCkgc2hvdWxkbid0CmZvbGxvdyBhIHNpbWls YXIgbW9kZWwsIHVzaW5nIGNwdV9wcmVzZW50X21hcCBpbiBmYXZvciBvZgpjcHVfb25saW5lX21h cC4pCgpGb3IgSU8tQVBJQyBjb2RlIGl0IHdhcyBkZWZpbml0ZWx5IHdyb25nIHRvIHBvdGVudGlh bGx5IHN0b3JlLCBhcyBhCmZhbGxiYWNrLCBUQVJHRVRfQ1BVUyAoaS5lLiBhbGwgb25saW5lIG9u ZXMpIGludG8gdGhlIGZpZWxkLCBhcyB0aGF0CndvdWxkIGhhdmUgY2F1c2VkIHByb2JsZW1zIHdo ZW4gZGV0ZXJtaW5pbmcgb24gd2hpY2ggQ1BVcyB0byByZWxlYXNlCnZlY3RvcnMgd2hlbiB0aGV5 J3ZlIGdvbmUgb3V0IG9mIHVzZS4gRGlzYWJsZSBpbnRlcnJ1cHRzIGluc3RlYWQgd2hlbgpubyB2 YWxpZCB0YXJnZXQgQ1BVIGNhbiBiZSBlc3RhYmxpc2hlZCAod2hpY2ggY29kZSBlbHNld2hlcmUg c2hvdWxkCmd1YXJhbnRlZSB0byBuZXZlciBoYXBwZW4pLCBhbmQgbG9nIGEgbWVzc2FnZSBpbiBz dWNoIGFuIHVubGlrZWx5IGV2ZW50LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs aWNoQHN1c2UuY29tPgotLS0KdjI6IE5ldy4KCi0tLSBhL3hlbi9hcmNoL3g4Ni9pb19hcGljLmMK KysrIGIveGVuL2FyY2gveDg2L2lvX2FwaWMuYwpAQCAtNjgwLDcgKzY4MCw3IEBAIHZvaWQgLypf X2luaXQqLyBzZXR1cF9pb2FwaWNfZGVzdCh2b2lkKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl OwogICAgICAgICAgICAgaXJxID0gcGluXzJfaXJxKGlycV9lbnRyeSwgaW9hcGljLCBwaW4pOwog ICAgICAgICAgICAgZGVzYyA9IGlycV90b19kZXNjKGlycSk7Ci0gICAgICAgICAgICBCVUdfT04o Y3B1bWFza19lbXB0eShkZXNjLT5hcmNoLmNwdV9tYXNrKSk7CisgICAgICAgICAgICBCVUdfT04o IWNwdW1hc2tfaW50ZXJzZWN0cyhkZXNjLT5hcmNoLmNwdV9tYXNrLCAmY3B1X29ubGluZV9tYXAp KTsKICAgICAgICAgICAgIHNldF9pb2FwaWNfYWZmaW5pdHlfaXJxKGRlc2MsIGRlc2MtPmFyY2gu Y3B1X21hc2spOwogICAgICAgICB9CiAKQEAgLTIxOTcsNyArMjE5Nyw2IEBAIGludCBpb19hcGlj X3NldF9wY2lfcm91dGluZyAoaW50IGlvYXBpYywKIHsKICAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRl c2MgPSBpcnFfdG9fZGVzYyhpcnEpOwogICAgIHN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVu dHJ5OwotICAgIGNwdW1hc2tfdCBtYXNrOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAg aW50IHZlY3RvcjsKIApAQCAtMjIzMiwxMSArMjIzMSwxNyBAQCBpbnQgaW9fYXBpY19zZXRfcGNp X3JvdXRpbmcgKGludCBpb2FwaWMsCiAgICAgICAgIHJldHVybiB2ZWN0b3I7CiAgICAgZW50cnku dmVjdG9yID0gdmVjdG9yOwogCi0gICAgY3B1bWFza19jb3B5KCZtYXNrLCBUQVJHRVRfQ1BVUyk7 Ci0gICAgLyogRG9uJ3QgY2hhbmNlIGVuZGluZyB1cCB3aXRoIGFuIGVtcHR5IG1hc2suICovCi0g ICAgaWYgKGNwdW1hc2tfaW50ZXJzZWN0cygmbWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaykpCi0g ICAgICAgIGNwdW1hc2tfYW5kKCZtYXNrLCAmbWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzayk7Ci0g ICAgU0VUX0RFU1QoZW50cnksIGxvZ2ljYWwsIGNwdV9tYXNrX3RvX2FwaWNpZCgmbWFzaykpOwor ICAgIGlmIChjcHVtYXNrX2ludGVyc2VjdHMoZGVzYy0+YXJjaC5jcHVfbWFzaywgVEFSR0VUX0NQ VVMpKSB7CisgICAgICAgIGNwdW1hc2tfdCAqbWFzayA9IHRoaXNfY3B1KHNjcmF0Y2hfY3B1bWFz ayk7CisKKyAgICAgICAgY3B1bWFza19hbmQobWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaywgVEFS R0VUX0NQVVMpOworICAgICAgICBTRVRfREVTVChlbnRyeSwgbG9naWNhbCwgY3B1X21hc2tfdG9f YXBpY2lkKG1hc2spKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAi SVJRJWQ6IG5vIHRhcmdldCBDUFUgKCUqcGIgdnMgJSpwYilcbiIsCisgICAgICAgICAgICAgICBp cnEsIG5yX2NwdV9pZHMsIGNwdW1hc2tfYml0cyhkZXNjLT5hcmNoLmNwdV9tYXNrKSwKKyAgICAg ICAgICAgICAgIG5yX2NwdV9pZHMsIGNwdW1hc2tfYml0cyhUQVJHRVRfQ1BVUykpOworICAgICAg ICBkZXNjLT5zdGF0dXMgfD0gSVJRX0RJU0FCTEVEOworICAgIH0KIAogICAgIGFwaWNfcHJpbnRr KEFQSUNfREVCVUcsIEtFUk5fREVCVUcgIklPQVBJQ1slZF06IFNldCBQQ0kgcm91dGluZyBlbnRy eSAiCiAJCSIoJWQtJWQgLT4gJSN4IC0+IElSUSAlZCBNb2RlOiVpIEFjdGl2ZTolaSlcbiIsIGlv YXBpYywKQEAgLTI0MjIsNyArMjQyNywyMSBAQCBpbnQgaW9hcGljX2d1ZXN0X3dyaXRlKHVuc2ln bmVkIGxvbmcgcGh5CiAgICAgLyogU2V0IHRoZSB2ZWN0b3IgZmllbGQgdG8gdGhlIHJlYWwgdmVj dG9yISAqLwogICAgIHJ0ZS52ZWN0b3IgPSBkZXNjLT5hcmNoLnZlY3RvcjsKIAotICAgIFNFVF9E RVNUKHJ0ZSwgbG9naWNhbCwgY3B1X21hc2tfdG9fYXBpY2lkKGRlc2MtPmFyY2guY3B1X21hc2sp KTsKKyAgICBpZiAoIGNwdW1hc2tfaW50ZXJzZWN0cyhkZXNjLT5hcmNoLmNwdV9tYXNrLCBUQVJH RVRfQ1BVUykgKQorICAgIHsKKyAgICAgICAgY3B1bWFza190ICptYXNrID0gdGhpc19jcHUoc2Ny YXRjaF9jcHVtYXNrKTsKKworICAgICAgICBjcHVtYXNrX2FuZChtYXNrLCBkZXNjLT5hcmNoLmNw dV9tYXNrLCBUQVJHRVRfQ1BVUyk7CisgICAgICAgIFNFVF9ERVNUKHJ0ZSwgbG9naWNhbCwgY3B1 X21hc2tfdG9fYXBpY2lkKG1hc2spKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAg Z3ByaW50ayhYRU5MT0dfRVJSLCAiSVJRJWQ6IG5vIHRhcmdldCBDUFUgKCUqcGIgdnMgJSpwYilc biIsCisgICAgICAgICAgICAgICBpcnEsIG5yX2NwdV9pZHMsIGNwdW1hc2tfYml0cyhkZXNjLT5h cmNoLmNwdV9tYXNrKSwKKyAgICAgICAgICAgICAgIG5yX2NwdV9pZHMsIGNwdW1hc2tfYml0cyhU QVJHRVRfQ1BVUykpOworICAgICAgICBkZXNjLT5zdGF0dXMgfD0gSVJRX0RJU0FCTEVEOworICAg ICAgICBydGUubWFzayA9IDE7CisgICAgfQogCiAgICAgX19pb2FwaWNfd3JpdGVfZW50cnkoYXBp YywgcGluLCAwLCBydGUpOwogICAgIAotLS0gYS94ZW4vYXJjaC94ODYvaXJxLmMKKysrIGIveGVu L2FyY2gveDg2L2lycS5jCkBAIC00NzEsMTEgKzQ3MSwxMyBAQCBzdGF0aWMgaW50IF9fYXNzaWdu X2lycV92ZWN0b3IoCiAgICAgICovCiAgICAgc3RhdGljIGludCBjdXJyZW50X3ZlY3RvciA9IEZJ UlNUX0RZTkFNSUNfVkVDVE9SLCBjdXJyZW50X29mZnNldCA9IDA7CiAgICAgaW50IGNwdSwgZXJy LCBvbGRfdmVjdG9yOwotICAgIGNwdW1hc2tfdCB0bXBfbWFzazsKICAgICB2bWFza190ICppcnFf dXNlZF92ZWN0b3JzID0gTlVMTDsKIAogICAgIG9sZF92ZWN0b3IgPSBpcnFfdG9fdmVjdG9yKGly cSk7Ci0gICAgaWYgKG9sZF92ZWN0b3IgPiAwKSB7CisgICAgaWYgKCBvbGRfdmVjdG9yID4gMCAp CisgICAgeworICAgICAgICBjcHVtYXNrX3QgdG1wX21hc2s7CisKICAgICAgICAgY3B1bWFza19h bmQoJnRtcF9tYXNrLCBtYXNrLCAmY3B1X29ubGluZV9tYXApOwogICAgICAgICBpZiAoY3B1bWFz a19pbnRlcnNlY3RzKCZ0bXBfbWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaykpIHsKICAgICAgICAg ICAgIGRlc2MtPmFyY2gudmVjdG9yID0gb2xkX3ZlY3RvcjsKQEAgLTQ5OCw3ICs1MDAsOSBAQCBz dGF0aWMgaW50IF9fYXNzaWduX2lycV92ZWN0b3IoCiAgICAgZWxzZQogICAgICAgICBpcnFfdXNl ZF92ZWN0b3JzID0gaXJxX2dldF91c2VkX3ZlY3Rvcl9tYXNrKGlycSk7CiAKLSAgICBmb3JfZWFj aF9jcHUoY3B1LCBtYXNrKSB7CisgICAgZm9yX2VhY2hfY3B1KGNwdSwgbWFzaykKKyAgICB7Cisg ICAgICAgIGNvbnN0IGNwdW1hc2tfdCAqdmVjX21hc2s7CiAgICAgICAgIGludCBuZXdfY3B1Owog ICAgICAgICBpbnQgdmVjdG9yLCBvZmZzZXQ7CiAKQEAgLTUwNiw4ICs1MTAsNyBAQCBzdGF0aWMg aW50IF9fYXNzaWduX2lycV92ZWN0b3IoCiAgICAgICAgIGlmICghY3B1X29ubGluZShjcHUpKQog ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgY3B1bWFza19hbmQoJnRtcF9tYXNrLCB2 ZWN0b3JfYWxsb2NhdGlvbl9jcHVtYXNrKGNwdSksCi0gICAgICAgICAgICAgICAgICAgICZjcHVf b25saW5lX21hcCk7CisgICAgICAgIHZlY19tYXNrID0gdmVjdG9yX2FsbG9jYXRpb25fY3B1bWFz ayhjcHUpOwogCiAgICAgICAgIHZlY3RvciA9IGN1cnJlbnRfdmVjdG9yOwogICAgICAgICBvZmZz ZXQgPSBjdXJyZW50X29mZnNldDsKQEAgLTUyOCw3ICs1MzEsNyBAQCBuZXh0OgogICAgICAgICAg ICAgJiYgdGVzdF9iaXQodmVjdG9yLCBpcnFfdXNlZF92ZWN0b3JzKSApCiAgICAgICAgICAgICBn b3RvIG5leHQ7CiAKLSAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUsICZ0bXBfbWFzaykKKyAg ICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUsIHZlY19tYXNrKQogICAgICAgICAgICAgaWYgKHBl cl9jcHUodmVjdG9yX2lycSwgbmV3X2NwdSlbdmVjdG9yXSA+PSAwKQogICAgICAgICAgICAgICAg IGdvdG8gbmV4dDsKICAgICAgICAgLyogRm91bmQgb25lISAqLwpAQCAtNTQ3LDEyICs1NTAsMTIg QEAgbmV4dDoKICAgICAgICAgICAgICAgICByZWxlYXNlX29sZF92ZWMoZGVzYyk7CiAgICAgICAg IH0KIAotICAgICAgICB0cmFjZV9pcnFfbWFzayhUUkNfSFdfSVJRX0FTU0lHTl9WRUNUT1IsIGly cSwgdmVjdG9yLCAmdG1wX21hc2spOworICAgICAgICB0cmFjZV9pcnFfbWFzayhUUkNfSFdfSVJR X0FTU0lHTl9WRUNUT1IsIGlycSwgdmVjdG9yLCB2ZWNfbWFzayk7CiAKLSAgICAgICAgZm9yX2Vh Y2hfY3B1KG5ld19jcHUsICZ0bXBfbWFzaykKKyAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUs IHZlY19tYXNrKQogICAgICAgICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBuZXdfY3B1KVt2ZWN0 b3JdID0gaXJxOwogICAgICAgICBkZXNjLT5hcmNoLnZlY3RvciA9IHZlY3RvcjsKLSAgICAgICAg Y3B1bWFza19jb3B5KGRlc2MtPmFyY2guY3B1X21hc2ssICZ0bXBfbWFzayk7CisgICAgICAgIGNw dW1hc2tfY29weShkZXNjLT5hcmNoLmNwdV9tYXNrLCB2ZWNfbWFzayk7CiAKICAgICAgICAgZGVz Yy0+YXJjaC51c2VkID0gSVJRX1VTRUQ7CiAgICAgICAgIEFTU0VSVCgoZGVzYy0+YXJjaC51c2Vk X3ZlY3RvcnMgPT0gTlVMTCkKQEAgLTc4Myw2ICs3ODYsNyBAQCB1bnNpZ25lZCBpbnQgc2V0X2Rl c2NfYWZmaW5pdHkoc3RydWN0IGlyCiAKICAgICBjcHVtYXNrX2NvcHkoZGVzYy0+YWZmaW5pdHks IG1hc2spOwogICAgIGNwdW1hc2tfYW5kKCZkZXN0X21hc2ssIG1hc2ssIGRlc2MtPmFyY2guY3B1 X21hc2spOworICAgIGNwdW1hc2tfYW5kKCZkZXN0X21hc2ssICZkZXN0X21hc2ssICZjcHVfb25s aW5lX21hcCk7CiAKICAgICByZXR1cm4gY3B1X21hc2tfdG9fYXBpY2lkKCZkZXN0X21hc2spOwog fQotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2lycS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvaXJxLmgKQEAgLTMyLDYgKzMyLDEyIEBAIHN0cnVjdCBpcnFfZGVzYzsKIHN0cnVjdCBhcmNo X2lycV9kZXNjIHsKICAgICAgICAgczE2IHZlY3RvcjsgICAgICAgICAgICAgICAgICAvKiB2ZWN0 b3IgaXRzZWxmIGlzIG9ubHkgOCBiaXRzLCAqLwogICAgICAgICBzMTYgb2xkX3ZlY3RvcjsgICAg ICAgICAgICAgIC8qIGJ1dCB3ZSB1c2UgLTEgZm9yIHVuYXNzaWduZWQgICovCisgICAgICAgIC8q CisgICAgICAgICAqIEV4Y2VwdCBmb3IgaGlnaCBwcmlvcml0eSBpbnRlcnJ1cHRzIEBjcHVfbWFz ayBtYXkgaGF2ZSBiaXRzIHNldCBmb3IKKyAgICAgICAgICogb2ZmbGluZSBDUFVzLiAgQ29uc3Vt ZXJzIG5lZWQgdG8gYmUgY2FyZWZ1bCB0byBtYXNrIHRoaXMgZG93biB0bworICAgICAgICAgKiBv bmxpbmUgb25lcyBhcyBuZWNlc3NhcnkuICBUaGVyZSBpcyBzdXBwb3NlZCB0byBhbHdheXMgYmUg YSBub24tCisgICAgICAgICAqIGVtcHR5IGludGVyc2VjdGlvbiB3aXRoIGNwdV9vbmxpbmVfbWFw LgorICAgICAgICAgKi8KICAgICAgICAgY3B1bWFza192YXJfdCBjcHVfbWFzazsKICAgICAgICAg Y3B1bWFza192YXJfdCBvbGRfY3B1X21hc2s7CiAgICAgICAgIGNwdW1hc2tfdmFyX3QgcGVuZGlu Z19tYXNrOwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==