From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 3/7] x86/alt: Clean up the assembly used to generate alternatives Date: Wed, 7 Mar 2018 15:51:32 +0000 Message-ID: <1520437896-29359-4-git-send-email-andrew.cooper3@citrix.com> References: <1520437896-29359-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520437896-29359-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org ICogT24gdGhlIEMgc2lkZSwgc3dpdGNoIHRvIHVzaW5nIGxvY2FsIGxhYmxlcyByYXRoZXIgdGhh biBoYXJkY29kZWQgbnVtYmVycy4KICogUmVuYW1lIHBhcmFtZXRlcnMgYW5kIGxhYmxlcyB0byBi ZSBjb25zaXN0ZW50IHdpdGggYWx0X2luc3RyIG5hbWVzLCBhbmQKICAgY29uc2lzdGVudCBiZXR3 ZWVuIHRoZSB0aGUgQyBhbmQgYXNtIHZlcnNpb25zLgogKiBPbiB0aGUgYXNtIHNpZGUsIGZhY3Rv ciBzb21lIGV4cHJlc3Npb25zIG91dCBpbnRvIG1hY3JvcyB0byBhaWQgY2xhcml0eS4KICogQ29u c2lzdGVudGx5IGRlY2xhcmUgc2VjdGlvbiBhdHRyaWJ1dGVzLgoKTm8gZnVuY3Rpb25hbCBjaGFu Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5 OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KdjI6CiAqIHJlcGxfe3MsZX0gPT4g YWx0X3JlcGxfe3MsZX0KICogVXNlIC5MWEVOJT0gcHJlZml4IGZvciB0aGUgQyBsYWJsZXMKdjM6 CiAqIEZhY3RvciBvdXIgZGVjbF9vcmlnKCkgb24gdGhlIEFTTSBzaWRlCi0tLQogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS1hc20uaCB8IDYwICsrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmggICAgIHwgNjUgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjggaW5z ZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9hbHRlcm5hdGl2ZS1hc20uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUt YXNtLmgKaW5kZXggNjY0MGU4NS4uMmFmNGY2YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9hbHRlcm5hdGl2ZS1hc20uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0 aXZlLWFzbS5oCkBAIC05LDYwICs5LDY2IEBACiAgKiBlbm91Z2ggaW5mb3JtYXRpb24gZm9yIHRo ZSBhbHRlcm5hdGl2ZXMgcGF0Y2hpbmcgY29kZSB0byBwYXRjaCBhbgogICogaW5zdHJ1Y3Rpb24u IFNlZSBhcHBseV9hbHRlcm5hdGl2ZXMoKS4KICAqLwotLm1hY3JvIGFsdGluc3RydWN0aW9uX2Vu dHJ5IG9yaWcgYWx0IGZlYXR1cmUgb3JpZ19sZW4gYWx0X2xlbgorLm1hY3JvIGFsdGluc3RydWN0 aW9uX2VudHJ5IG9yaWcgcmVwbCBmZWF0dXJlIG9yaWdfbGVuIHJlcGxfbGVuCiAgICAgLmxvbmcg XG9yaWcgLSAuCi0gICAgLmxvbmcgXGFsdCAtIC4KKyAgICAubG9uZyBccmVwbCAtIC4KICAgICAu d29yZCBcZmVhdHVyZQogICAgIC5ieXRlIFxvcmlnX2xlbgotICAgIC5ieXRlIFxhbHRfbGVuCisg ICAgLmJ5dGUgXHJlcGxfbGVuCiAuZW5kbQogCisjZGVmaW5lIGRlY2xfb3JpZyhpbnNuKSAgICAg ICAgIC5MXEBfb3JpZ19zOiAgICAgIGluc247IC5MXEBfb3JpZ19lOgorI2RlZmluZSBvcmlnX2xl biAgICAgICAgICAgICAgICguTFxAX29yaWdfZSAgICAgICAtICAgICAuTFxAX29yaWdfcykKKwor I2RlZmluZSBkZWNsX3JlcGwoaW5zbiwgbnIpICAgICAuTFxAX3JlcGxfc1woKW5yOiBpbnNuOyAu TFxAX3JlcGxfZVwoKW5yOgorI2RlZmluZSByZXBsX2xlbihucikgICAgICAgICAgICguTFxAX3Jl cGxfZVwoKW5yICAtICAgICAuTFxAX3JlcGxfc1woKW5yKQorCiAubWFjcm8gQUxURVJOQVRJVkUg b2xkaW5zdHIsIG5ld2luc3RyLCBmZWF0dXJlCi0uTG9sZF9zdGFydF9cQDoKLSAgICBcb2xkaW5z dHIKLS5Mb2xkX2VuZF9cQDoKKyAgICBkZWNsX29yaWcoXG9sZGluc3RyKQogCiAgICAgLnB1c2hz ZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsICJhIiwgQHByb2diaXRzCi0gICAgYWx0aW5zdHJ1Y3Rp b25fZW50cnkgLkxvbGRfc3RhcnRfXEAsIC5MbmV3X3N0YXJ0X1xALCBcZmVhdHVyZSwgXAotICAg ICAgICAoLkxvbGRfZW5kX1xAIC0gLkxvbGRfc3RhcnRfXEApLCAoLkxuZXdfZW5kX1xAIC0gLkxu ZXdfc3RhcnRfXEApCisgICAgYWx0aW5zdHJ1Y3Rpb25fZW50cnkgLkxcQF9vcmlnX3MsIC5MXEBf cmVwbF9zMSwgXGZlYXR1cmUsIFwKKyAgICAgICAgb3JpZ19sZW4sIHJlcGxfbGVuKDEpCiAKICAg ICAuc2VjdGlvbiAuZGlzY2FyZCwgImEiLCBAcHJvZ2JpdHMKICAgICAvKiBBc3NlbWJsZXItdGlt ZSBjaGVjayB0aGF0IFxuZXdpbnN0ciBpc24ndCBsb25nZXIgdGhhbiBcb2xkaW5zdHIuICovCi0g ICAgLmJ5dGUgMHhmZiArICguTG5ld19lbmRfXEAgLSAuTG5ld19zdGFydF9cQCkgLSAoLkxvbGRf ZW5kX1xAIC0gLkxvbGRfc3RhcnRfXEApCisgICAgLmJ5dGUgMHhmZiArIHJlcGxfbGVuKDEpIC0g b3JpZ19sZW4KIAogICAgIC5zZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgImF4IiwgQHBy b2diaXRzCi0uTG5ld19zdGFydF9cQDoKLSAgICBcbmV3aW5zdHIKLS5MbmV3X2VuZF9cQDoKKwor ICAgIGRlY2xfcmVwbChcbmV3aW5zdHIsIDEpCisKICAgICAucG9wc2VjdGlvbgogLmVuZG0KIAog Lm1hY3JvIEFMVEVSTkFUSVZFXzIgb2xkaW5zdHIsIG5ld2luc3RyMSwgZmVhdHVyZTEsIG5ld2lu c3RyMiwgZmVhdHVyZTIKLS5Mb2xkX3N0YXJ0X1xAOgotICAgIFxvbGRpbnN0cgotLkxvbGRfZW5k X1xAOgorICAgIGRlY2xfb3JpZyhcb2xkaW5zdHIpCiAKICAgICAucHVzaHNlY3Rpb24gLmFsdGlu c3RydWN0aW9ucywgImEiLCBAcHJvZ2JpdHMKLSAgICBhbHRpbnN0cnVjdGlvbl9lbnRyeSAuTG9s ZF9zdGFydF9cQCwgLkxuZXcxX3N0YXJ0X1xALCBcZmVhdHVyZTEsIFwKLSAgICAgICAgKC5Mb2xk X2VuZF9cQCAtIC5Mb2xkX3N0YXJ0X1xAKSwgKC5MbmV3MV9lbmRfXEAgLSAuTG5ldzFfc3RhcnRf XEApCi0gICAgYWx0aW5zdHJ1Y3Rpb25fZW50cnkgLkxvbGRfc3RhcnRfXEAsIC5MbmV3Ml9zdGFy dF9cQCwgXGZlYXR1cmUyLCBcCi0gICAgICAgICguTG9sZF9lbmRfXEAgLSAuTG9sZF9zdGFydF9c QCksICguTG5ldzJfZW5kX1xAIC0gLkxuZXcyX3N0YXJ0X1xAKQorCisgICAgYWx0aW5zdHJ1Y3Rp b25fZW50cnkgLkxcQF9vcmlnX3MsIC5MXEBfcmVwbF9zMSwgXGZlYXR1cmUxLCBcCisgICAgICAg IG9yaWdfbGVuLCByZXBsX2xlbigxKQorICAgIGFsdGluc3RydWN0aW9uX2VudHJ5IC5MXEBfb3Jp Z19zLCAuTFxAX3JlcGxfczIsIFxmZWF0dXJlMiwgXAorICAgICAgICBvcmlnX2xlbiwgcmVwbF9s ZW4oMikKIAogICAgIC5zZWN0aW9uIC5kaXNjYXJkLCAiYSIsIEBwcm9nYml0cwogICAgIC8qIEFz c2VtYmxlci10aW1lIGNoZWNrIHRoYXQgXG5ld2luc3RyezEsMn0gYXJlbid0IGxvbmdlciB0aGFu IFxvbGRpbnN0ci4gKi8KLSAgICAuYnl0ZSAweGZmICsgKC5MbmV3MV9lbmRfXEAgLSAuTG5ldzFf c3RhcnRfXEApIC0gKC5Mb2xkX2VuZF9cQCAtIC5Mb2xkX3N0YXJ0X1xAKQotICAgIC5ieXRlIDB4 ZmYgKyAoLkxuZXcyX2VuZF9cQCAtIC5MbmV3Ml9zdGFydF9cQCkgLSAoLkxvbGRfZW5kX1xAIC0g LkxvbGRfc3RhcnRfXEApCisgICAgLmJ5dGUgMHhmZiArIHJlcGxfbGVuKDEpIC0gb3JpZ19sZW4K KyAgICAuYnl0ZSAweGZmICsgcmVwbF9sZW4oMikgLSBvcmlnX2xlbgogCiAgICAgLnNlY3Rpb24g LmFsdGluc3RyX3JlcGxhY2VtZW50LCAiYXgiLCBAcHJvZ2JpdHMKLS5MbmV3MV9zdGFydF9cQDoK LSAgICBcbmV3aW5zdHIxCi0uTG5ldzFfZW5kX1xAOgotLkxuZXcyX3N0YXJ0X1xAOgotICAgIFxu ZXdpbnN0cjIKLS5MbmV3Ml9lbmRfXEA6CisKKyAgICBkZWNsX3JlcGwoXG5ld2luc3RyMSwgMSkK KyAgICBkZWNsX3JlcGwoXG5ld2luc3RyMiwgMikKKwogICAgIC5wb3BzZWN0aW9uCiAuZW5kbQog CisjdW5kZWYgcmVwbF9sZW4KKyN1bmRlZiBkZWNsX3JlcGwKKyN1bmRlZiBvcmlnX2xlbgorI3Vu ZGVmIGRlY2xfb3JpZworCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAjZW5kaWYgLyogX0FT TV9YODZfQUxURVJOQVRJVkVfQVNNX0hfICovCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvYWx0ZXJuYXRpdmUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaApp bmRleCBkOTcwNmZkLi5iY2FkM2VlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2Fs dGVybmF0aXZlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCkBAIC0y Niw0NCArMjYsNDkgQEAgZXh0ZXJuIHZvaWQgYXBwbHlfYWx0ZXJuYXRpdmVzKGNvbnN0IHN0cnVj dCBhbHRfaW5zdHIgKnN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBhbHRfaW5zdHIgKmVuZCk7CiBleHRlcm4gdm9pZCBhbHRlcm5hdGl2ZV9pbnN0cnVj dGlvbnModm9pZCk7CiAKLSNkZWZpbmUgT0xESU5TVFIob2xkaW5zdHIpICAgICAgIjY2MTpcblx0 IiBvbGRpbnN0ciAiXG42NjI6XG4iCisjZGVmaW5lIE9MRElOU1RSKG9sZGluc3RyKSAiLkxYRU4l PV9vcmlnX3M6XG5cdCIgb2xkaW5zdHIgIlxuLkxYRU4lPV9vcmlnX2U6XG4iCiAKLSNkZWZpbmUg Yl9yZXBsYWNlbWVudChudW1iZXIpICAgIjY2MyIjbnVtYmVyCi0jZGVmaW5lIGVfcmVwbGFjZW1l bnQobnVtYmVyKSAgICI2NjQiI251bWJlcgorI2RlZmluZSBhbHRfb3JpZ19sZW4gICAgICAgIigu TFhFTiU9X29yaWdfZSAtIC5MWEVOJT1fb3JpZ19zKSIKKyNkZWZpbmUgYWx0X3JlcGxfcyhudW0p ICAgICIuTFhFTiU9X3JlcGxfcyIjbnVtCisjZGVmaW5lIGFsdF9yZXBsX2UobnVtKSAgICAiLkxY RU4lPV9yZXBsX2UiI251bQorI2RlZmluZSBhbHRfcmVwbF9sZW4obnVtKSAgIigiIGFsdF9yZXBs X2UobnVtKSAiIC0gIiBhbHRfcmVwbF9zKG51bSkgIikiCiAKLSNkZWZpbmUgYWx0X3NsZW4gIjY2 MmItNjYxYiIKLSNkZWZpbmUgYWx0X3JsZW4obnVtYmVyKSBlX3JlcGxhY2VtZW50KG51bWJlciki Zi0iYl9yZXBsYWNlbWVudChudW1iZXIpImYiCisjZGVmaW5lIEFMVElOU1RSX0VOVFJZKGZlYXR1 cmUsIG51bSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICIg LmxvbmcgLkxYRU4lPV9vcmlnX3MgLSAuXG4iICAgICAgICAgICAgIC8qIGxhYmVsICAgICAgICAg ICAqLyBcCisgICAgICAgICIgLmxvbmcgIiBhbHRfcmVwbF9zKG51bSkiIC0gLlxuIiAgICAgICAg IC8qIG5ldyBpbnN0cnVjdGlvbiAqLyBcCisgICAgICAgICIgLndvcmQgIiBfX3N0cmluZ2lmeShm ZWF0dXJlKSAiXG4iICAgICAgIC8qIGZlYXR1cmUgYml0ICAgICAqLyBcCisgICAgICAgICIgLmJ5 dGUgIiBhbHRfb3JpZ19sZW4gIlxuIiAgICAgICAgICAgICAgIC8qIHNvdXJjZSBsZW4gICAgICAq LyBcCisgICAgICAgICIgLmJ5dGUgIiBhbHRfcmVwbF9sZW4obnVtKSAiXG4iICAgICAgICAgIC8q IHJlcGxhY2VtZW50IGxlbiAqLwogCi0jZGVmaW5lIEFMVElOU1RSX0VOVFJZKGZlYXR1cmUsIG51 bWJlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICIg LmxvbmcgNjYxYiAtIC5cbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxhYmVsICAg ICAgICAgICAqLyBcCi0gICAgICAgICIgLmxvbmcgIiBiX3JlcGxhY2VtZW50KG51bWJlcikiZiAt IC5cbiIgICAgICAgIC8qIG5ldyBpbnN0cnVjdGlvbiAqLyBcCi0gICAgICAgICIgLndvcmQgIiBf X3N0cmluZ2lmeShmZWF0dXJlKSAiXG4iICAgICAgICAgICAgIC8qIGZlYXR1cmUgYml0ICAgICAq LyBcCi0gICAgICAgICIgLmJ5dGUgIiBhbHRfc2xlbiAiXG4iICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIHNvdXJjZSBsZW4gICAgICAqLyBcCi0gICAgICAgICIgLmJ5dGUgIiBhbHRfcmxlbihu dW1iZXIpICJcbiIgICAgICAgICAgICAgICAgIC8qIHJlcGxhY2VtZW50IGxlbiAqLworI2RlZmlu ZSBESVNDQVJEX0VOVFJZKG51bSkgICAgICAgICAgICAgICAgICAgICAgICAvKiByZXBsIDw9IG9y aWcgKi8gICAgXAorICAgICAgICAiIC5ieXRlIDB4ZmYgKyAoIiBhbHRfcmVwbF9sZW4obnVtKSAi KSAtICgiIGFsdF9vcmlnX2xlbiAiKVxuIgogCi0jZGVmaW5lIERJU0NBUkRfRU5UUlkobnVtYmVy KSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJsZW4gPD0gc2xlbiAqLyAgICBcCi0gICAg ICAgICIgLmJ5dGUgMHhmZiArICgiIGFsdF9ybGVuKG51bWJlcikgIikgLSAoIiBhbHRfc2xlbiAi KVxuIgotCi0jZGVmaW5lIEFMVElOU1RSX1JFUExBQ0VNRU5UKG5ld2luc3RyLCBmZWF0dXJlLCBu dW1iZXIpIC8qIHJlcGxhY2VtZW50ICovICAgICBcCi0gICAgICAgIGJfcmVwbGFjZW1lbnQobnVt YmVyKSI6XG5cdCIgbmV3aW5zdHIgIlxuIiBlX3JlcGxhY2VtZW50KG51bWJlcikgIjpcblx0Igot Ci0jZGVmaW5lIEFMVEVSTkFUSVZFX04obmV3aW5zdHIsIGZlYXR1cmUsIG51bWJlcikJXAotCSIu cHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFcIlxuIgkJXAotCUFMVElOU1RSX0VOVFJZ KGZlYXR1cmUsIG51bWJlcikJCQlcCi0JIi5zZWN0aW9uIC5kaXNjYXJkLFwiYVwiLEBwcm9nYml0 c1xuIgkJXAotCURJU0NBUkRfRU5UUlkobnVtYmVyKQkJCQlcCi0JIi5zZWN0aW9uIC5hbHRpbnN0 cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iCVwKLQlBTFRJTlNUUl9SRVBMQUNFTUVOVChuZXdpbnN0 ciwgZmVhdHVyZSwgbnVtYmVyKQlcCi0JIi5wb3BzZWN0aW9uXG4iCisjZGVmaW5lIEFMVElOU1RS X1JFUExBQ0VNRU5UKG5ld2luc3RyLCBudW0pICAgICAgIC8qIHJlcGxhY2VtZW50ICovICAgICBc CisgICAgICAgIGFsdF9yZXBsX3MobnVtKSI6XG5cdCIgbmV3aW5zdHIgIlxuIiBhbHRfcmVwbF9l KG51bSkgIjpcblx0IgogCiAvKiBhbHRlcm5hdGl2ZSBhc3NlbWJseSBwcmltaXRpdmU6ICovCi0j ZGVmaW5lIEFMVEVSTkFUSVZFKG9sZGluc3RyLCBuZXdpbnN0ciwgZmVhdHVyZSkJCQkgIFwKLQlP TERJTlNUUihvbGRpbnN0cikJCQkJCQkgIFwKLQlBTFRFUk5BVElWRV9OKG5ld2luc3RyLCBmZWF0 dXJlLCAxKQorI2RlZmluZSBBTFRFUk5BVElWRShvbGRpbnN0ciwgbmV3aW5zdHIsIGZlYXR1cmUp ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBPTERJTlNUUihvbGRpbnN0cikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAiLnB1 c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsIFwiYVwiLCBAcHJvZ2JpdHNcbiIgICAgICAgICAg ICAgXAorICAgICAgICBBTFRJTlNUUl9FTlRSWShmZWF0dXJlLCAxKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAiLnNlY3Rpb24gLmRpc2NhcmQsIFwiYVwi LCBAcHJvZ2JpdHNcbiIgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBESVNDQVJE X0VOVFJZKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICAiLnNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCIsIEBwcm9n Yml0c1xuIiAgICAgICAgICAgXAorICAgICAgICBBTFRJTlNUUl9SRVBMQUNFTUVOVChuZXdpbnN0 ciwgMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAiLnBvcHNlY3Rp b25cbiIKIAogI2RlZmluZSBBTFRFUk5BVElWRV8yKG9sZGluc3RyLCBuZXdpbnN0cjEsIGZlYXR1 cmUxLCBuZXdpbnN0cjIsIGZlYXR1cmUyKSBcCi0JQUxURVJOQVRJVkUob2xkaW5zdHIsIG5ld2lu c3RyMSwgZmVhdHVyZTEpCQkJICBcCi0JQUxURVJOQVRJVkVfTihuZXdpbnN0cjIsIGZlYXR1cmUy LCAyKQorICAgICAgICBPTERJTlNUUihvbGRpbnN0cikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVj dGlvbnMsIFwiYVwiLCBAcHJvZ2JpdHNcbiIgICAgICAgICAgICAgXAorICAgICAgICBBTFRJTlNU Ul9FTlRSWShmZWF0dXJlMSwgMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICBBTFRJTlNUUl9FTlRSWShmZWF0dXJlMiwgMikgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAiLnNlY3Rpb24gLmRpc2NhcmQsIFwiYVwiLCBA cHJvZ2JpdHNcbiIgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBESVNDQVJEX0VO VFJZKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICBESVNDQVJEX0VOVFJZKDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICAiLnNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50 LCBcImF4XCIsIEBwcm9nYml0c1xuIiAgICAgICAgICAgXAorICAgICAgICBBTFRJTlNUUl9SRVBM QUNFTUVOVChuZXdpbnN0cjEsIDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICBBTFRJTlNUUl9SRVBMQUNFTUVOVChuZXdpbnN0cjIsIDIpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICAiLnBvcHNlY3Rpb25cbiIKIAogLyoKICAqIEFsdGVybmF0 aXZlIGluc3RydWN0aW9ucyBmb3IgZGlmZmVyZW50IENQVSB0eXBlcyBvciBjYXBhYmlsaXRpZXMu Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=