From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 22/34] x86emul: support AVX512{F, BW, DQ} insert insns Date: Tue, 18 Sep 2018 06:07:13 -0600 Message-ID: <5BA0EA7102000078001E95F2@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BA0E58F02000078001E94CE@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g2Emk-0000jB-Kv for xen-devel@lists.xenproject.org; Tue, 18 Sep 2018 12:07:18 +0000 In-Reply-To: <5BA0E58F02000078001E94CE@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu List-Id: xen-devel@lists.xenproject.org QWxzbyBjb3JyZWN0IHRoZSBjb21tZW50IG9mIHRoZSBBVlggZm9ybSBvZiBWSU5TRVJUUFMuCgpT aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2MzogTmV3 LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYworKysgYi90b29s cy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCkBAIC0xOTksNiArMTk5LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmZfYWxsW10gPQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHRlc3QgYXZ4NTEyZl8xMjhbXSA9IHsKICAgICBJTlNOKGV4dHJhY3RwcywgNjYsIDBmM2Es IDE3LCBlbCwgICAgZCwgZWwpLAorICAgIElOU04oaW5zZXJ0cHMsICA2NiwgMGYzYSwgMjEsIGVs LCAgICBkLCBlbCksCiAgICAgSU5TTihtb3YsICAgICAgIDY2LCAgIDBmLCA2ZSwgZWwsIGRxNjQs IGVsKSwKICAgICBJTlNOKG1vdiwgICAgICAgNjYsICAgMGYsIDdlLCBlbCwgZHE2NCwgZWwpLAog ICAgIElOU04obW92cSwgICAgICBmMywgICAwZiwgN2UsIGVsLCAgICBxLCBlbCksCkBAIC0yMTAs MTIgKzIxMSwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9ubzEyOFtdCiAg ICAgSU5TTihicm9hZGNhc3RzZCwgICAgNjYsIDBmMzgsIDE5LCBlbCwgICAgcSwgZWwpLAogICAg IElOU04oZXh0cmFjdGYzMng0LCAgIDY2LCAwZjNhLCAxOSwgZWxfNCwgIGQsIHZsKSwKICAgICBJ TlNOKGV4dHJhY3RpMzJ4NCwgICA2NiwgMGYzYSwgMzksIGVsXzQsICBkLCB2bCksCisgICAgSU5T TihpbnNlcnRmMzJ4NCwgICAgNjYsIDBmM2EsIDE4LCBlbF80LCAgZCwgdmwpLAorICAgIElOU04o aW5zZXJ0aTMyeDQsICAgIDY2LCAwZjNhLCAzOCwgZWxfNCwgIGQsIHZsKSwKIH07CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmXzUxMltdID0gewogICAgIElOU04oYnJvYWRjYXN0 ZjY0eDQsIDY2LCAwZjM4LCAxYiwgZWxfNCwgcSwgdmwpLAogICAgIElOU04oZXh0cmFjdGY2NHg0 LCAgIDY2LCAwZjNhLCAxYiwgZWxfNCwgcSwgdmwpLAogICAgIElOU04oZXh0cmFjdGk2NHg0LCAg IDY2LCAwZjNhLCAzYiwgZWxfNCwgcSwgdmwpLAorICAgIElOU04oaW5zZXJ0ZjY0eDQsICAgIDY2 LCAwZjNhLCAxYSwgZWxfNCwgcSwgdmwpLAorICAgIElOU04oaW5zZXJ0aTY0eDQsICAgIDY2LCAw ZjNhLCAzYSwgZWxfNCwgcSwgdmwpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2 eDUxMmJ3X2FsbFtdID0gewpAQCAtMjc1LDYgKzI4MCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dGVzdCBhdng1MTJid18xMjhbXQogICAgIElOU04ocGV4dHJiLCA2NiwgMGYzYSwgMTQsIGVsLCBi LCBlbCksCiAvLyAgICAgICBwZXh0cncsIDY2LCAgIDBmLCBjNSwgICAgIHcKICAgICBJTlNOKHBl eHRydywgNjYsIDBmM2EsIDE1LCBlbCwgdywgZWwpLAorICAgIElOU04ocGluc3JiLCA2NiwgMGYz YSwgMjAsIGVsLCBiLCBlbCksCisgICAgSU5TTihwaW5zcncsIDY2LCAgIDBmLCBjNCwgZWwsIHcs IGVsKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV9hbGxbXSA9IHsK QEAgLTI4Nyw2ICsyOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfYWxs W10KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmRxXzEyOFtdID0gewogICAgIElO U04ocGV4dHIsIDY2LCAwZjNhLCAxNiwgZWwsIGRxNjQsIGVsKSwKKyAgICBJTlNOKHBpbnNyLCA2 NiwgMGYzYSwgMjIsIGVsLCBkcTY0LCBlbCksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRl c3QgYXZ4NTEyZHFfbm8xMjhbXSA9IHsKQEAgLTI5NCwxMiArMzAyLDE2IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV9ubzEyOFsKICAgICBJTlNOKGJyb2FkY2FzdGY2NHgyLCA2 NiwgMGYzOCwgMWEsIGVsXzIsIHEsIHZsKSwKICAgICBJTlNOKGV4dHJhY3RmNjR4MiwgICA2Niwg MGYzYSwgMTksIGVsXzIsIHEsIHZsKSwKICAgICBJTlNOKGV4dHJhY3RpNjR4MiwgICA2NiwgMGYz YSwgMzksIGVsXzIsIHEsIHZsKSwKKyAgICBJTlNOKGluc2VydGY2NHgyLCAgICA2NiwgMGYzYSwg MTgsIGVsXzIsIHEsIHZsKSwKKyAgICBJTlNOKGluc2VydGk2NHgyLCAgICA2NiwgMGYzYSwgMzgs IGVsXzIsIHEsIHZsKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV81 MTJbXSA9IHsKICAgICBJTlNOKGJyb2FkY2FzdGYzMng4LCA2NiwgMGYzOCwgMWIsIGVsXzgsIGQs IHZsKSwKICAgICBJTlNOKGV4dHJhY3RmMzJ4OCwgICA2NiwgMGYzYSwgMWIsIGVsXzgsIGQsIHZs KSwKICAgICBJTlNOKGV4dHJhY3RpMzJ4OCwgICA2NiwgMGYzYSwgM2IsIGVsXzgsIGQsIHZsKSwK KyAgICBJTlNOKGluc2VydGYzMng4LCAgICA2NiwgMGYzYSwgMWEsIGVsXzgsIGQsIHZsKSwKKyAg ICBJTlNOKGluc2VydGkzMng4LCAgICA2NiwgMGYzYSwgM2EsIGVsXzgsIGQsIHZsKSwKIH07CiAK IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHZsX2FsbFtdID0geyBWTF81MTIsIFZMXzEyOCwg VkxfMjU2IH07Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisr KyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC0zNTgsNyArMzU4 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0d29ieXRlX3RhYmxlIHsKICAgICBbMHhjMV0gPSB7 IERzdE1lbXxTcmNSZWd8TW9kUk0gfSwKICAgICBbMHhjMl0gPSB7IERzdEltcGxpY2l0fFNyY0lt bUJ5dGV8TW9kUk0sIHNpbWRfYW55X2ZwLCBkOHNfdmwgfSwKICAgICBbMHhjM10gPSB7IERzdE1l bXxTcmNSZWd8TW9kUk18TW92IH0sCi0gICAgWzB4YzRdID0geyBEc3RSZWd8U3JjSW1tQnl0ZXxN b2RSTSwgc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4YzRdID0geyBEc3RSZWd8U3JjSW1tQnl0 ZXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50LCAxIH0sCiAgICAgWzB4YzVdID0geyBEc3RSZWd8U3Jj SW1tQnl0ZXxNb2RSTXxNb3YgfSwKICAgICBbMHhjNl0gPSB7IERzdEltcGxpY2l0fFNyY0ltbUJ5 dGV8TW9kUk0sIHNpbWRfcGFja2VkX2ZwLCBkOHNfdmwgfSwKICAgICBbMHhjN10gPSB7IEltcGxp Y2l0T3BzfE1vZFJNIH0sCkBAIC01MTQsMTcgKzUxNCwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGV4dDBmM2FfdGFibGUgewogICAgIFsweDE1XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSwg LnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gMSB9LAogICAgIFsweDE2XSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfbm9uZSwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gZDhz X2RxIH0sCiAgICAgWzB4MTddID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAudG9fbWVtID0g MSwgLnR3b19vcCA9IDEsIC5kOHMgPSAyIH0sCi0gICAgWzB4MThdID0geyAuc2ltZF9zaXplID0g c2ltZF8xMjggfSwKKyAgICBbMHgxOF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCwgLmQ4cyA9 IDQgfSwKICAgICBbMHgxOV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCwgLnRvX21lbSA9IDEs IC50d29fb3AgPSAxLCAuZDhzID0gNCB9LAorICAgIFsweDFhXSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfMjU2LCAuZDhzID0gZDhzX3ZsX2J5XzIgfSwKICAgICBbMHgxYl0gPSB7IC5zaW1kX3NpemUg PSBzaW1kXzI1NiwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsX2J5XzIg fSwKICAgICBbMHgxZF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudG9fbWVtID0gMSwg LnR3b19vcCA9IDEgfSwKICAgICBbMHgxZSAuLi4gMHgxZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKLSAgICBbMHgyMF0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX25vbmUgfSwKLSAgICBbMHgyMV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyIH0s Ci0gICAgWzB4MjJdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lIH0sCisgICAgWzB4MjBdID0g eyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAuZDhzID0gMCB9LAorICAgIFsweDIxXSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC5kOHMgPSAyIH0sCisgICAgWzB4MjJdID0geyAuc2ltZF9z aXplID0gc2ltZF9ub25lLCAuZDhzID0gZDhzX2RxIH0sCiAgICAgWzB4MjVdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4MzAgLi4uIDB4 MzNdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEgfSwKLSAgICBbMHgz OF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCB9LAorICAgIFsweDM4XSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfMTI4LCAuZDhzID0gNCB9LAorICAgIFsweDNhXSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfMjU2LCAuZDhzID0gZDhzX3ZsX2J5XzIgfSwKICAgICBbMHgzOV0gPSB7IC5zaW1kX3NpemUg PSBzaW1kXzEyOCwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gNCB9LAogICAgIFsw eDNiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMjU2LCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEs IC5kOHMgPSBkOHNfdmxfYnlfMiB9LAogICAgIFsweDNlIC4uLiAweDNmXSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LApAQCAtMjU2NSw2ICsyNTY3LDcg QEAgeDg2X2RlY29kZV90d29ieXRlKAogICAgICAgICBjdHh0LT5vcGNvZGUgfD0gTUFTS19JTlNS KHZleC5wZngsIFg4NkVNVUxfT1BDX1BGWF9NQVNLKTsKICAgICAgICAgLyogZmFsbCB0aHJvdWdo ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMCwgMHhjNCk6IC8qIHZwaW5zcncgKi8K KyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMCwgMHhjNCk6IC8qIHZwaW5zcncgKi8KICAg ICAgICAgc3RhdGUtPmRlc2MgPSBEc3RSZWcgfCBTcmNNZW0xNjsKICAgICAgICAgYnJlYWs7CiAK QEAgLTI2NjcsNiArMjY3MCw3IEBAIHg4Nl9kZWNvZGVfMGYzYSgKIAogICAgIGNhc2UgWDg2RU1V TF9PUENfNjYoMCwgMHgyMCk6ICAgICAvKiBwaW5zcmIgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BD X1ZFWF82NigwLCAweDIwKTogLyogdnBpbnNyYiAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZF WF82NigwLCAweDIwKTogLyogdnBpbnNyYiAqLwogICAgICAgICBzdGF0ZS0+ZGVzYyA9IERzdElt cGxpY2l0IHwgU3JjTWVtOwogICAgICAgICBpZiAoIG1vZHJtX21vZCAhPSAzICkKICAgICAgICAg ICAgIHN0YXRlLT5kZXNjIHw9IEJ5dGVPcDsKQEAgLTI2NzQsNiArMjY3OCw3IEBAIHg4Nl9kZWNv ZGVfMGYzYSgKIAogICAgIGNhc2UgWDg2RU1VTF9PUENfNjYoMCwgMHgyMik6ICAgICAvKiBwaW5z cntkLHF9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMCwgMHgyMik6IC8qIHZwaW5z cntkLHF9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDAsIDB4MjIpOiAvKiB2cGlu c3J7ZCxxfSAqLwogICAgICAgICBzdGF0ZS0+ZGVzYyA9IERzdEltcGxpY2l0IHwgU3JjTWVtOwog ICAgICAgICBicmVhazsKIApAQCAtNzcwMCw2ICs3NzA1LDIzIEBAIHg4Nl9lbXVsYXRlKAogICAg ICAgICBlYS50eXBlID0gT1BfTUVNOwogICAgICAgICBnb3RvIHNpbWRfMGZfaW50X2ltbTg7CiAK KyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhjNCk6ICAgLyogdnBpbnNydyAk aW1tOCxyMzIvbTE2LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjNhLCAweDIwKTogLyogdnBpbnNyYiAkaW1tOCxyMzIvbTgseG1tLHhtbSAqLworICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MjIpOiAvKiB2cGluc3J7ZCxxfSAkaW1tOCxy L20seG1tLHhtbSAqLworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5sciB8fCBl dmV4Lm9wbXNrIHx8IGV2ZXguYnIsIEVYQ19VRCk7CisgICAgICAgIGlmICggYiAmIDIgKQorICAg ICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZHEpOworICAgICAgICBlbHNl CisgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJidyk7CisgICAgICAg IGlmICggIW1vZGVfNjRiaXQoKSApCisgICAgICAgICAgICBldmV4LncgPSAwOworICAgICAgICBt ZW1jcHkobW12YWxwLCAmc3JjLnZhbCwgb3BfYnl0ZXMpOworICAgICAgICBlYS50eXBlID0gT1Bf TUVNOworICAgICAgICBvcF9ieXRlcyA9IHNyYy5ieXRlczsKKyAgICAgICAgZCA9IFNyY01lbTE2 OyAvKiBGYWtlIGZvciB0aGUgY29tbW9uIFNJTUQgY29kZSBiZWxvdy4gKi8KKyAgICAgICAgc3Rh dGUtPnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXI7CisgICAgICAgIGdvdG8gYXZ4NTEyZl9pbW1fbm9f c2FlOworCiAgICAgQ0FTRV9TSU1EX1BBQ0tFRF9JTlQoMHgwZiwgMHhjNSk6ICAgICAgLyogcGV4 dHJ3ICRpbW04LHsseH1tbSxyZWcgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBm LCAweGM1KTogICAvKiB2cGV4dHJ3ICRpbW04LHhtbSxyZWcgKi8KICAgICAgICAgZ2VuZXJhdGVf ZXhjZXB0aW9uX2lmKHZleC5sLCBFWENfVUQpOwpAQCAtODg5NSw4ICs4OTE3LDEyIEBAIHg4Nl9l bXVsYXRlKAogICAgICAgICBvcGMgPSBpbml0X2V2ZXgoc3R1Yik7CiAgICAgICAgIGdvdG8gcGV4 dHI7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDE4KTogLyogdmlu c2VydGYzMng0ICRpbW04LHhtbS9tMTI4LHt5LHp9bW17a30gKi8KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdmluc2VydGY2NHgyICRpbW04LHhtbS9tMTI4 LHt5LHp9bW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDE5 KTogLyogdmV4dHJhY3RmMzJ4NCAkaW1tOCx7eSx6fW1tLHhtbS9tMTI4e2t9ICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZleHRyYWN0ZjY0eDIgJGlt bTgse3ksen1tbSx4bW0vbTEyOHtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82Nigw eDBmM2EsIDB4MzgpOiAvKiB2aW5zZXJ0aTMyeDQgJGltbTgseG1tL20xMjgse3ksen1tbXtrfSAq LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2aW5zZXJ0 aTY0eDIgJGltbTgseG1tL20xMjgse3ksen1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF82NigweDBmM2EsIDB4MzkpOiAvKiB2ZXh0cmFjdGkzMng0ICRpbW04LHt5LHp9bW0seG1t L20xMjh7a30gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogdmV4dHJhY3RpNjR4MiAkaW1tOCx7eSx6fW1tLHhtbS9tMTI4e2t9ICovCiAgICAgICAgIGlm ICggZXZleC53ICkKQEAgLTg5MDUsOCArODkzMSwxMiBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAg ZmF1bHRfc3VwcHJlc3Npb24gPSBmYWxzZTsKICAgICAgICAgZ290byBhdng1MTJmX2ltbV9ub19z YWU7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDFhKTogLyogdmlu c2VydGYzMng0ICRpbW04LHltbS9tMjU2LHptbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiB2aW5zZXJ0ZjY0eDIgJGltbTgseW1tL20yNTYsem1t e2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgxYik6IC8qIHZl eHRyYWN0ZjMyeDggJGltbTgsem1tLHltbS9tMjU2e2t9ICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZleHRyYWN0ZjY0eDQgJGltbTgsem1tLHltbS9t MjU2e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgzYSk6IC8q IHZpbnNlcnRpMzJ4NCAkaW1tOCx5bW0vbTI1Nix6bW17a30gKi8KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdmluc2VydGk2NHgyICRpbW04LHltbS9tMjU2 LHptbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4M2IpOiAv KiB2ZXh0cmFjdGkzMng4ICRpbW04LHptbSx5bW0vbTI1NntrfSAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2ZXh0cmFjdGk2NHg0ICRpbW04LHptbSx5 bW0vbTI1NntrfSAqLwogICAgICAgICBpZiAoICFldmV4LncgKQpAQCAtODk5OSwxMyArOTAyOSwx OSBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgb3BfYnl0ZXMgPSA0OwogICAgICAgICBnb3RvIHNp bWRfMGYzYV9jb21tb247CiAKLSAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4 MjEpOiAvKiB2aW5zZXJ0cHMgJGltbTgseG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2 RU1VTF9PUENfVkVYXzY2KDB4MGYzYSwgMHgyMSk6IC8qIHZpbnNlcnRwcyAkaW1tOCx4bW0vbTMy LHhtbSx4bW0gKi8KICAgICAgICAgb3BfYnl0ZXMgPSA0OwogICAgICAgICAvKiBmYWxsIHRocm91 Z2ggKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4NDEpOiAvKiB2ZHBw ZCAkaW1tOCx7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KICAgICAgICAgZ2VuZXJhdGVf ZXhjZXB0aW9uX2lmKHZleC5sLCBFWENfVUQpOwogICAgICAgICBnb3RvIHNpbWRfMGZfaW1tOF9h dng7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDIxKTogLyogdmlu c2VydHBzICRpbW04LHhtbS9tMzIseG1tLHhtbSAqLworICAgICAgICBvcF9ieXRlcyA9IDQ7Cisg ICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LmxyIHx8IGV2ZXgudyB8fCBldmV4Lm9w bXNrIHx8IGV2ZXguYnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENfVUQpOwor ICAgICAgICBnb3RvIGF2eDUxMmZfaW1tX25vX3NhZTsKKwogICAgIGNhc2UgWDg2RU1VTF9PUENf VkVYXzY2KDB4MGYzYSwgMHgzMCk6IC8qIGtzaGlmdHJ7Yix3fSAkaW1tOCxrLGsgKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4MzIpOiAvKiBrc2hpZnRse2Isd30gJGlt bTgsayxrICovCiAgICAgICAgIGlmICggIXZleC53ICkKCgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=