From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v2 01/25] x86: NUMA: Clean up: Drop trailing spaces Date: Tue, 28 Mar 2017 21:23:09 +0530 Message-ID: <1490716413-19796-2-git-send-email-vijay.kilari@gmail.com> References: <1490716413-19796-1-git-send-email-vijay.kilari@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490716413-19796-1-git-send-email-vijay.kilari@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, Vijaya Kumar K List-Id: xen-devel@lists.xenproject.org RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKRml4IGNvZGlu ZyBzdHlsZSwgdHJhaWxpbmcgc3BhY2VzLCB0YWJzIGluIE5VTUEgY29kZS4KQWxzbyBkcm9wIHVu dXNlZCBtYWNyb3MgYW5kIGZ1bmN0aW9ucy4KClNpZ25lZC1vZmYtYnk6IFZpamF5YSBLdW1hciBL IDxWaWpheWEuS3VtYXJAY2F2aXVtLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvbnVtYS5jICAgICAg ICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhl bi9hcmNoL3g4Ni9zcmF0LmMgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbnVt YS5oIHwgNDMgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZp bGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9udW1hLmMgYi94ZW4vYXJjaC94ODYvbnVtYS5jCmluZGV4IDZmNGQ0 MzguLjhlZTIzMDIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9udW1hLmMKKysrIGIveGVuL2Fy Y2gveDg2L251bWEuYwpAQCAtMSw4ICsxLDggQEAKLS8qIAorLyoKICAqIEdlbmVyaWMgVk0gaW5p dGlhbGl6YXRpb24gZm9yIHg4Ni02NCBOVU1BIHNldHVwcy4KICAqIENvcHlyaWdodCAyMDAyLDIw MDMgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgogICogQWRhcHRlZCBmb3IgWGVuOiBSeWFuIEhhcnBl ciA8cnlhbmhAdXMuaWJtLmNvbT4KLSAqLyAKKyAqLwogCiAjaW5jbHVkZSA8eGVuL21tLmg+CiAj aW5jbHVkZSA8eGVuL3N0cmluZy5oPgpAQCAtMjEsMTMgKzIxLDYgQEAKIHN0YXRpYyBpbnQgbnVt YV9zZXR1cChjaGFyICpzKTsKIGN1c3RvbV9wYXJhbSgibnVtYSIsIG51bWFfc2V0dXApOwogCi0j aWZuZGVmIERwcmludGsKLSNkZWZpbmUgRHByaW50ayh4Li4uKQotI2VuZGlmCi0KLS8qIGZyb20g cHJvdG8uaCAqLwotI2RlZmluZSByb3VuZF91cCh4LHkpICgoKCh4KSsoeSkpLTEpICYgKH4oKHkp LTEpKSkKLQogc3RydWN0IG5vZGVfZGF0YSBub2RlX2RhdGFbTUFYX05VTU5PREVTXTsKIAogLyog TWFwcGluZyBmcm9tIHBkeCB0byBub2RlIGlkICovCkBAIC0xNDQsOCArMTM3LDkgQEAgc3RhdGlj IGludCBfX2luaXQgZXh0cmFjdF9sc2JfZnJvbV9ub2Rlcyhjb25zdCBzdHJ1Y3Qgbm9kZSAqbm9k ZXMsCiAgICAgaWYgKCBub2Rlc191c2VkIDw9IDEgKQogICAgICAgICBpID0gQklUU19QRVJfTE9O RyAtIDE7CiAgICAgZWxzZQotICAgICAgICBpID0gZmluZF9maXJzdF9iaXQoJmJpdGZpZWxkLCBz aXplb2YodW5zaWduZWQgbG9uZykqOCk7CisgICAgICAgIGkgPSBmaW5kX2ZpcnN0X2JpdCgmYml0 ZmllbGQsIHNpemVvZih1bnNpZ25lZCBsb25nKSAqIDgpOwogICAgIG1lbW5vZGVtYXBzaXplID0g KG1lbXRvcCA+PiBpKSArIDE7CisKICAgICByZXR1cm4gaTsKIH0KIApAQCAtMTczLDcgKzE2Nyw3 IEBAIGludCBfX2luaXQgY29tcHV0ZV9oYXNoX3NoaWZ0KHN0cnVjdCBub2RlICpub2RlcywgaW50 IG51bW5vZGVzLAogfQogLyogaW5pdGlhbGl6ZSBOT0RFX0RBVEEgZ2l2ZW4gbm9kZWlkIGFuZCBz dGFydC9lbmQgKi8KIHZvaWQgX19pbml0IHNldHVwX25vZGVfYm9vdG1lbShub2RlaWRfdCBub2Rl aWQsIHU2NCBzdGFydCwgdTY0IGVuZCkKLXsgCit7CiAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9w Zm4sIGVuZF9wZm47CiAKICAgICBzdGFydF9wZm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOwpAQCAt MTgzLDcgKzE3Nyw3IEBAIHZvaWQgX19pbml0IHNldHVwX25vZGVfYm9vdG1lbShub2RlaWRfdCBu b2RlaWQsIHU2NCBzdGFydCwgdTY0IGVuZCkKICAgICBOT0RFX0RBVEEobm9kZWlkKS0+bm9kZV9z cGFubmVkX3BhZ2VzID0gZW5kX3BmbiAtIHN0YXJ0X3BmbjsKIAogICAgIG5vZGVfc2V0X29ubGlu ZShub2RlaWQpOwotfSAKK30KIAogdm9pZCBfX2luaXQgbnVtYV9pbml0X2FycmF5KHZvaWQpCiB7 CkBAIC0yMTQsNyArMjA4LDcgQEAgc3RhdGljIGludCBfX2luaXQgbnVtYV9lbXVsYXRpb24odTY0 IHN0YXJ0X3BmbiwgdTY0IGVuZF9wZm4pCiB7CiAgICAgaW50IGk7CiAgICAgc3RydWN0IG5vZGUg bm9kZXNbTUFYX05VTU5PREVTXTsKLSAgICB1NjQgc3ogPSAoKGVuZF9wZm4gLSBzdGFydF9wZm4p PDxQQUdFX1NISUZUKSAvIG51bWFfZmFrZTsKKyAgICB1NjQgc3ogPSAoKGVuZF9wZm4gLSBzdGFy dF9wZm4pIDw8IFBBR0VfU0hJRlQpIC8gbnVtYV9mYWtlOwogCiAgICAgLyogS2x1ZGdlIG5lZWRl ZCBmb3IgdGhlIGhhc2ggZnVuY3Rpb24gKi8KICAgICBpZiAoIGh3ZWlnaHQ2NChzeikgPiAxICkK QEAgLTIyMiwyMSArMjE2LDIyIEBAIHN0YXRpYyBpbnQgX19pbml0IG51bWFfZW11bGF0aW9uKHU2 NCBzdGFydF9wZm4sIHU2NCBlbmRfcGZuKQogICAgICAgICB1NjQgeCA9IDE7CiAgICAgICAgIHdo aWxlICggKHggPDwgMSkgPCBzeiApCiAgICAgICAgICAgICB4IDw8PSAxOwotICAgICAgICBpZiAo IHggPCBzei8yICkKLSAgICAgICAgICAgIHByaW50ayhLRVJOX0VSUiAiTnVtYSBlbXVsYXRpb24g dW5iYWxhbmNlZC4gQ29tcGxhaW4gdG8gbWFpbnRhaW5lclxuIik7CisgICAgICAgIGlmICggeCA8 IHN6IC8gMiApCisgICAgICAgICAgICBwcmludGsoS0VSTl9FUlIKKyAgICAgICAgICAgICAgICAg ICAiTnVtYSBlbXVsYXRpb24gdW5iYWxhbmNlZC4gQ29tcGxhaW4gdG8gbWFpbnRhaW5lclxuIik7 CiAgICAgICAgIHN6ID0geDsKICAgICB9CiAKICAgICBtZW1zZXQoJm5vZGVzLDAsc2l6ZW9mKG5v ZGVzKSk7CiAgICAgZm9yICggaSA9IDA7IGkgPCBudW1hX2Zha2U7IGkrKyApCiAgICAgewotICAg ICAgICBub2Rlc1tpXS5zdGFydCA9IChzdGFydF9wZm48PFBBR0VfU0hJRlQpICsgaSpzejsKKyAg ICAgICAgbm9kZXNbaV0uc3RhcnQgPSAoc3RhcnRfcGZuIDw8IFBBR0VfU0hJRlQpICsgaSAqIHN6 OwogICAgICAgICBpZiAoIGkgPT0gbnVtYV9mYWtlIC0gMSApCi0gICAgICAgICAgICBzeiA9IChl bmRfcGZuPDxQQUdFX1NISUZUKSAtIG5vZGVzW2ldLnN0YXJ0OworICAgICAgICAgICAgc3ogPSAo ZW5kX3BmbiA8PCBQQUdFX1NISUZUKSAtIG5vZGVzW2ldLnN0YXJ0OwogICAgICAgICBub2Rlc1tp XS5lbmQgPSBub2Rlc1tpXS5zdGFydCArIHN6OwotICAgICAgICBwcmludGsoS0VSTl9JTkZPICJG YWtpbmcgbm9kZSAlZCBhdCAlIlBSSXg2NCItJSJQUkl4NjQiICglIlBSSXU2NCJNQilcbiIsCi0g ICAgICAgICAgICAgICBpLAotICAgICAgICAgICAgICAgbm9kZXNbaV0uc3RhcnQsIG5vZGVzW2ld LmVuZCwKKyAgICAgICAgcHJpbnRrKEtFUk5fSU5GTworICAgICAgICAgICAgICAgIkZha2luZyBu b2RlICVkIGF0ICUiUFJJeDY0Ii0lIlBSSXg2NCIgKCUiUFJJdTY0Ik1CKVxuIiwKKyAgICAgICAg ICAgICAgIGksIG5vZGVzW2ldLnN0YXJ0LCBub2Rlc1tpXS5lbmQsCiAgICAgICAgICAgICAgICAo bm9kZXNbaV0uZW5kIC0gbm9kZXNbaV0uc3RhcnQpID4+IDIwKTsKICAgICAgICAgbm9kZV9zZXRf b25saW5lKGkpOwogICAgIH0KQEAgLTI1Niw3ICsyNTEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBu dW1hX2VtdWxhdGlvbih1NjQgc3RhcnRfcGZuLCB1NjQgZW5kX3BmbikKICNlbmRpZgogCiB2b2lk IF9faW5pdCBudW1hX2luaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWdu ZWQgbG9uZyBlbmRfcGZuKQoteyAKK3sKICAgICBpbnQgaTsKIAogI2lmZGVmIENPTkZJR19OVU1B X0VNVQpAQCAtMjkxLDcgKzI4Niw3IEBAIHZvaWQgX19pbml0IG51bWFfaW5pdG1lbV9pbml0KHVu c2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCiB2b2lkIG51bWFf YWRkX2NwdShpbnQgY3B1KQogewogICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZub2RlX3RvX2Nw dW1hc2tbY3B1X3RvX25vZGUoY3B1KV0pOwotfSAKK30KIAogdm9pZCBudW1hX3NldF9ub2RlKGlu dCBjcHUsIG5vZGVpZF90IG5vZGUpCiB7CkBAIC0yOTksOCArMjk0LDggQEAgdm9pZCBudW1hX3Nl dF9ub2RlKGludCBjcHUsIG5vZGVpZF90IG5vZGUpCiB9CiAKIC8qIFtudW1hPW9mZl0gKi8KLXN0 YXRpYyBfX2luaXQgaW50IG51bWFfc2V0dXAoY2hhciAqb3B0KSAKLXsgCitzdGF0aWMgX19pbml0 IGludCBudW1hX3NldHVwKGNoYXIgKm9wdCkKK3sKICAgICBpZiAoICFzdHJuY21wKG9wdCwib2Zm IiwzKSApCiAgICAgICAgIG51bWFfb2ZmID0gMTsKICAgICBpZiAoICFzdHJuY21wKG9wdCwib24i LDIpICkKQEAgLTMyMyw3ICszMTgsNyBAQCBzdGF0aWMgX19pbml0IGludCBudW1hX3NldHVwKGNo YXIgKm9wdCkKICNlbmRpZgogCiAgICAgcmV0dXJuIDE7Ci19IAorfQogCiAvKgogICogU2V0dXAg ZWFybHkgY3B1X3RvX25vZGUuCkBAIC0zODUsNyArMzgwLDcgQEAgc3RhdGljIHZvaWQgZHVtcF9u dW1hKHVuc2lnbmVkIGNoYXIga2V5KQogICAgIGNvbnN0IHN0cnVjdCB2bnVtYV9pbmZvICp2bnVt YTsKIAogICAgIHByaW50aygiJyVjJyBwcmVzc2VkIC0+IGR1bXBpbmcgbnVtYSBpbmZvIChub3ct MHglWDolMDhYKVxuIiwga2V5LAotICAgICAgICAgICAodTMyKShub3c+PjMyKSwgKHUzMilub3cp OworICAgICAgICAgICAodTMyKShub3cgPj4gMzIpLCAodTMyKW5vdyk7CiAKICAgICBmb3JfZWFj aF9vbmxpbmVfbm9kZSAoIGkgKQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcmF0 LmMgYi94ZW4vYXJjaC94ODYvc3JhdC5jCmluZGV4IGQ4Njc4M2UuLmQyNzBiNzUgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9zcmF0LmMKKysrIGIveGVuL2FyY2gveDg2L3NyYXQuYwpAQCAtNyw3 ICs3LDcgQEAKICAqIENhbGxlZCBmcm9tIGFjcGlfbnVtYV9pbml0IHdoaWxlIHJlYWRpbmcgdGhl IFNSQVQgYW5kIFNMSVQgdGFibGVzLgogICogQXNzdW1lcyBhbGwgbWVtb3J5IHJlZ2lvbnMgYmVs b25naW5nIHRvIGEgc2luZ2xlIHByb3hpbWl0eSBkb21haW4KICAqIGFyZSBpbiBvbmUgY2h1bmsu IEhvbGVzIGJldHdlZW4gdGhlbSB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBub2RlLgotICogCisg KgogICogQWRhcHRlZCBmb3IgWGVuOiBSeWFuIEhhcnBlciA8cnlhbmhAdXMuaWJtLmNvbT4KICAq LwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L251bWEuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvbnVtYS5oCmluZGV4IDI0NzkyMzguLmRhOGE0NTkgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvbnVtYS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbnVtYS5oCkBA IC0xLDQgKzEsNCBAQAotI2lmbmRlZiBfQVNNX1g4NjY0X05VTUFfSCAKKyNpZm5kZWYgX0FTTV9Y ODY2NF9OVU1BX0gKICNkZWZpbmUgX0FTTV9YODY2NF9OVU1BX0ggMQogCiAjaW5jbHVkZSA8eGVu L2NwdW1hc2suaD4KQEAgLTEyLDIxICsxMiwyMCBAQCBleHRlcm4gaW50IHNyYXRfcmV2OwogZXh0 ZXJuIG5vZGVpZF90ICAgICAgY3B1X3RvX25vZGVbTlJfQ1BVU107CiBleHRlcm4gY3B1bWFza190 ICAgICBub2RlX3RvX2NwdW1hc2tbXTsKIAotI2RlZmluZSBjcHVfdG9fbm9kZShjcHUpCQkoY3B1 X3RvX25vZGVbY3B1XSkKLSNkZWZpbmUgcGFyZW50X25vZGUobm9kZSkJCShub2RlKQorI2RlZmlu ZSBjcHVfdG9fbm9kZShjcHUpICAgICAgICAgKGNwdV90b19ub2RlW2NwdV0pCisjZGVmaW5lIHBh cmVudF9ub2RlKG5vZGUpICAgICAgICAobm9kZSkKICNkZWZpbmUgbm9kZV90b19maXJzdF9jcHUo bm9kZSkgIChfX2Zmcyhub2RlX3RvX2NwdW1hc2tbbm9kZV0pKQogI2RlZmluZSBub2RlX3RvX2Nw dW1hc2sobm9kZSkgICAgKG5vZGVfdG9fY3B1bWFza1tub2RlXSkKIAotc3RydWN0IG5vZGUgeyAK LQl1NjQgc3RhcnQsZW5kOyAKK3N0cnVjdCBub2RlIHsKKyAgICB1NjQgc3RhcnQsZW5kOwogfTsK IAogZXh0ZXJuIGludCBjb21wdXRlX2hhc2hfc2hpZnQoc3RydWN0IG5vZGUgKm5vZGVzLCBpbnQg bnVtbm9kZXMsCi0JCQkgICAgICBub2RlaWRfdCAqbm9kZWlkcyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBub2RlaWRfdCAqbm9kZWlkcyk7CiBleHRlcm4gbm9kZWlkX3QgcHhtX3Rv X25vZGUodW5zaWduZWQgaW50IHB4bSk7CiAKICNkZWZpbmUgWk9ORV9BTElHTiAoMVVMIDw8IChN QVhfT1JERVIrUEFHRV9TSElGVCkpCi0jZGVmaW5lIFZJUlRVQUxfQlVHX09OKHgpIAogCiBleHRl cm4gdm9pZCBudW1hX2FkZF9jcHUoaW50IGNwdSk7CiBleHRlcm4gdm9pZCBudW1hX2luaXRfYXJy YXkodm9pZCk7CkBAIC00MiwxNCArNDEsOCBAQCBleHRlcm4gdm9pZCBzZXR1cF9ub2RlX2Jvb3Rt ZW0obm9kZWlkX3Qgbm9kZWlkLCB1NjQgc3RhcnQsIHU2NCBlbmQpOwogZXh0ZXJuIG5vZGVpZF90 IGFwaWNpZF90b19ub2RlW107CiBleHRlcm4gdm9pZCBpbml0X2NwdV90b19ub2RlKHZvaWQpOwog Ci1zdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfbm9kZV9jcHVtYXNrKGludCBjcHUpCi17Ci0JY3B1 bWFza19jbGVhcl9jcHUoY3B1LCAmbm9kZV90b19jcHVtYXNrW2NwdV90b19ub2RlKGNwdSldKTsK LX0KLQogLyogU2ltcGxlIHBlcmZlY3QgaGFzaCB0byBtYXAgcGR4IHRvIG5vZGUgbnVtYmVycyAq LwotZXh0ZXJuIGludCBtZW1ub2RlX3NoaWZ0OyAKLWV4dGVybiB1bnNpZ25lZCBsb25nIG1lbW5v ZGVtYXBzaXplOworZXh0ZXJuIGludCBtZW1ub2RlX3NoaWZ0OwogZXh0ZXJuIHU4ICptZW1ub2Rl bWFwOwogCiBzdHJ1Y3Qgbm9kZV9kYXRhIHsKQEAgLTYwLDIwICs1MywxNiBAQCBzdHJ1Y3Qgbm9k ZV9kYXRhIHsKIGV4dGVybiBzdHJ1Y3Qgbm9kZV9kYXRhIG5vZGVfZGF0YVtdOwogCiBzdGF0aWMg aW5saW5lIF9fYXR0cmlidXRlX18oKHB1cmUpKSBub2RlaWRfdCBwaHlzX3RvX25pZChwYWRkcl90 IGFkZHIpCi17IAotCW5vZGVpZF90IG5pZDsKLQlWSVJUVUFMX0JVR19PTigocGFkZHJfdG9fcGR4 KGFkZHIpID4+IG1lbW5vZGVfc2hpZnQpID49IG1lbW5vZGVtYXBzaXplKTsKLQluaWQgPSBtZW1u b2RlbWFwW3BhZGRyX3RvX3BkeChhZGRyKSA+PiBtZW1ub2RlX3NoaWZ0XTsgCi0JVklSVFVBTF9C VUdfT04obmlkID49IE1BWF9OVU1OT0RFUyB8fCAhbm9kZV9kYXRhW25pZF0pOyAKLQlyZXR1cm4g bmlkOyAKLX0gCi0KLSNkZWZpbmUgTk9ERV9EQVRBKG5pZCkJCSgmKG5vZGVfZGF0YVtuaWRdKSkK LQotI2RlZmluZSBub2RlX3N0YXJ0X3BmbihuaWQpCShOT0RFX0RBVEEobmlkKS0+bm9kZV9zdGFy dF9wZm4pCi0jZGVmaW5lIG5vZGVfc3Bhbm5lZF9wYWdlcyhuaWQpCShOT0RFX0RBVEEobmlkKS0+ bm9kZV9zcGFubmVkX3BhZ2VzKQoreworICAgIHJldHVybiBtZW1ub2RlbWFwW3BhZGRyX3RvX3Bk eChhZGRyKSA+PiBtZW1ub2RlX3NoaWZ0XTsKK30KKworI2RlZmluZSBOT0RFX0RBVEEobmlkKSAg ICAgICAgICAoJihub2RlX2RhdGFbbmlkXSkpCisKKyNkZWZpbmUgbm9kZV9zdGFydF9wZm4obmlk KSAgICAgKE5PREVfREFUQShuaWQpLT5ub2RlX3N0YXJ0X3BmbikKKyNkZWZpbmUgbm9kZV9zcGFu bmVkX3BhZ2VzKG5pZCkgKE5PREVfREFUQShuaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMpCiAjZGVm aW5lIG5vZGVfZW5kX3BmbihuaWQpICAgICAgIChOT0RFX0RBVEEobmlkKS0+bm9kZV9zdGFydF9w Zm4gKyBcCi0JCQkJIE5PREVfREFUQShuaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOT0RFX0RBVEEobmlkKS0+bm9kZV9zcGFubmVkX3Bh Z2VzKQogCiBleHRlcm4gaW50IHZhbGlkX251bWFfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgZW5kLCBu b2RlaWRfdCBub2RlKTsKIAotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK