From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v6 03/42] x86emul: support AVX512{F, BW, DQ} insert insns Date: Thu, 06 Dec 2018 02:51:58 -0700 Message-ID: <5C08F13E020000780020375A@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C08EFAE020000780020373E@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] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gUqKB-0002mv-7x for xen-devel@lists.xenproject.org; Thu, 06 Dec 2018 09:52:03 +0000 In-Reply-To: <5C08EFAE020000780020373E@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 , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org QWxzbyBjb3JyZWN0IHRoZSBjb21tZW50IG9mIHRoZSBBVlggZm9ybSBvZiBWSU5TRVJUUFMuCgpT aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NjogRG9u J3QgcmVmdXNlIHRvIGVtdWxhdGUgVklOU0VSVFBTIHdpdGhvdXQgQVZYNTEyVkwuCnY0OiBNYWtl IHVzZSBvZiBkOHNfZHE2NC4KdjM6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRv ci9ldmV4LWRpc3A4LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDgu YwpAQCAtMjEzLDYgKzIxMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX2Fs bFtdID0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmZfMTI4W10gPSB7CiAgICAg SU5TTihleHRyYWN0cHMsIDY2LCAwZjNhLCAxNywgZWwsICAgIGQsIGVsKSwKKyAgICBJTlNOKGlu c2VydHBzLCAgNjYsIDBmM2EsIDIxLCBlbCwgICAgZCwgZWwpLAogICAgIElOU04obW92LCAgICAg ICA2NiwgICAwZiwgNmUsIGVsLCBkcTY0LCBlbCksCiAgICAgSU5TTihtb3YsICAgICAgIDY2LCAg IDBmLCA3ZSwgZWwsIGRxNjQsIGVsKSwKICAgICBJTlNOKG1vdnEsICAgICAgZjMsICAgMGYsIDdl LCBlbCwgICAgcSwgZWwpLApAQCAtMjI0LDEyICsyMjUsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCB0ZXN0IGF2eDUxMmZfbm8xMjhbXQogICAgIElOU04oYnJvYWRjYXN0c2QsICAgIDY2LCAwZjM4 LCAxOSwgZWwsICAgIHEsIGVsKSwKICAgICBJTlNOKGV4dHJhY3RmMzJ4NCwgICA2NiwgMGYzYSwg MTksIGVsXzQsICBkLCB2bCksCiAgICAgSU5TTihleHRyYWN0aTMyeDQsICAgNjYsIDBmM2EsIDM5 LCBlbF80LCAgZCwgdmwpLAorICAgIElOU04oaW5zZXJ0ZjMyeDQsICAgIDY2LCAwZjNhLCAxOCwg ZWxfNCwgIGQsIHZsKSwKKyAgICBJTlNOKGluc2VydGkzMng0LCAgICA2NiwgMGYzYSwgMzgsIGVs XzQsICBkLCB2bCksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl81MTJb XSA9IHsKICAgICBJTlNOKGJyb2FkY2FzdGY2NHg0LCA2NiwgMGYzOCwgMWIsIGVsXzQsIHEsIHZs KSwKICAgICBJTlNOKGV4dHJhY3RmNjR4NCwgICA2NiwgMGYzYSwgMWIsIGVsXzQsIHEsIHZsKSwK ICAgICBJTlNOKGV4dHJhY3RpNjR4NCwgICA2NiwgMGYzYSwgM2IsIGVsXzQsIHEsIHZsKSwKKyAg ICBJTlNOKGluc2VydGY2NHg0LCAgICA2NiwgMGYzYSwgMWEsIGVsXzQsIHEsIHZsKSwKKyAgICBJ TlNOKGluc2VydGk2NHg0LCAgICA2NiwgMGYzYSwgM2EsIGVsXzQsIHEsIHZsKSwKIH07CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJid19hbGxbXSA9IHsKQEAgLTI4OSw2ICsyOTQs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyYndfMTI4W10KICAgICBJTlNOKHBl eHRyYiwgNjYsIDBmM2EsIDE0LCBlbCwgYiwgZWwpLAogLy8gICAgICAgcGV4dHJ3LCA2NiwgICAw ZiwgYzUsICAgICB3CiAgICAgSU5TTihwZXh0cncsIDY2LCAwZjNhLCAxNSwgZWwsIHcsIGVsKSwK KyAgICBJTlNOKHBpbnNyYiwgNjYsIDBmM2EsIDIwLCBlbCwgYiwgZWwpLAorICAgIElOU04ocGlu c3J3LCA2NiwgICAwZiwgYzQsIGVsLCB3LCBlbCksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IHRlc3QgYXZ4NTEyZHFfYWxsW10gPSB7CkBAIC0zMDEsNiArMzA4LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB0ZXN0IGF2eDUxMmRxX2FsbFtdCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBh dng1MTJkcV8xMjhbXSA9IHsKICAgICBJTlNOKHBleHRyLCA2NiwgMGYzYSwgMTYsIGVsLCBkcTY0 LCBlbCksCisgICAgSU5TTihwaW5zciwgNjYsIDBmM2EsIDIyLCBlbCwgZHE2NCwgZWwpLAogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmRxX25vMTI4W10gPSB7CkBAIC0zMDgs MTIgKzMxNiwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfbm8xMjhbCiAg ICAgSU5TTihicm9hZGNhc3RmNjR4MiwgNjYsIDBmMzgsIDFhLCBlbF8yLCBxLCB2bCksCiAgICAg SU5TTihleHRyYWN0ZjY0eDIsICAgNjYsIDBmM2EsIDE5LCBlbF8yLCBxLCB2bCksCiAgICAgSU5T TihleHRyYWN0aTY0eDIsICAgNjYsIDBmM2EsIDM5LCBlbF8yLCBxLCB2bCksCisgICAgSU5TTihp bnNlcnRmNjR4MiwgICAgNjYsIDBmM2EsIDE4LCBlbF8yLCBxLCB2bCksCisgICAgSU5TTihpbnNl cnRpNjR4MiwgICAgNjYsIDBmM2EsIDM4LCBlbF8yLCBxLCB2bCksCiB9OwogCiBzdGF0aWMgY29u c3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfNTEyW10gPSB7CiAgICAgSU5TTihicm9hZGNhc3RmMzJ4 OCwgNjYsIDBmMzgsIDFiLCBlbF84LCBkLCB2bCksCiAgICAgSU5TTihleHRyYWN0ZjMyeDgsICAg NjYsIDBmM2EsIDFiLCBlbF84LCBkLCB2bCksCiAgICAgSU5TTihleHRyYWN0aTMyeDgsICAgNjYs IDBmM2EsIDNiLCBlbF84LCBkLCB2bCksCisgICAgSU5TTihpbnNlcnRmMzJ4OCwgICAgNjYsIDBm M2EsIDFhLCBlbF84LCBkLCB2bCksCisgICAgSU5TTihpbnNlcnRpMzJ4OCwgICAgNjYsIDBmM2Es IDNhLCBlbF84LCBkLCB2bCksCiB9OwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB2bF9h bGxbXSA9IHsgVkxfNTEyLCBWTF8xMjgsIFZMXzI1NiB9OwotLS0gYS94ZW4vYXJjaC94ODYveDg2 X2VtdWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2 X2VtdWxhdGUuYwpAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHdvYnl0 ZV90YWJsZSB7CiAgICAgWzB4YzFdID0geyBEc3RNZW18U3JjUmVnfE1vZFJNIH0sCiAgICAgWzB4 YzJdID0geyBEc3RJbXBsaWNpdHxTcmNJbW1CeXRlfE1vZFJNLCBzaW1kX2FueV9mcCwgZDhzX3Zs IH0sCiAgICAgWzB4YzNdID0geyBEc3RNZW18U3JjUmVnfE1vZFJNfE1vdiB9LAotICAgIFsweGM0 XSA9IHsgRHN0UmVnfFNyY0ltbUJ5dGV8TW9kUk0sIHNpbWRfcGFja2VkX2ludCB9LAorICAgIFsw eGM0XSA9IHsgRHN0UmVnfFNyY0ltbUJ5dGV8TW9kUk0sIHNpbWRfcGFja2VkX2ludCwgMSB9LAog ICAgIFsweGM1XSA9IHsgRHN0UmVnfFNyY0ltbUJ5dGV8TW9kUk18TW92IH0sCiAgICAgWzB4YzZd ID0geyBEc3RJbXBsaWNpdHxTcmNJbW1CeXRlfE1vZFJNLCBzaW1kX3BhY2tlZF9mcCwgZDhzX3Zs IH0sCiAgICAgWzB4YzddID0geyBJbXBsaWNpdE9wc3xNb2RSTSB9LApAQCAtNTE2LDE3ICs1MTYs MTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjNhX3RhYmxlIHsKICAgICBbMHgxNV0gPSB7 IC5zaW1kX3NpemUgPSBzaW1kX25vbmUsIC50b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9 IDEgfSwKICAgICBbMHgxNl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX25vbmUsIC50b19tZW0gPSAx LCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c19kcTY0IH0sCiAgICAgWzB4MTddID0geyAuc2ltZF9z aXplID0gc2ltZF9ub25lLCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEsIC5kOHMgPSAyIH0sCi0g ICAgWzB4MThdID0geyAuc2ltZF9zaXplID0gc2ltZF8xMjggfSwKKyAgICBbMHgxOF0gPSB7IC5z aW1kX3NpemUgPSBzaW1kXzEyOCwgLmQ4cyA9IDQgfSwKICAgICBbMHgxOV0gPSB7IC5zaW1kX3Np emUgPSBzaW1kXzEyOCwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gNCB9LAorICAg IFsweDFhXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMjU2LCAuZDhzID0gZDhzX3ZsX2J5XzIgfSwK ICAgICBbMHgxYl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzI1NiwgLnRvX21lbSA9IDEsIC50d29f b3AgPSAxLCAuZDhzID0gZDhzX3ZsX2J5XzIgfSwKICAgICBbMHgxZF0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX290aGVyLCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEgfSwKICAgICBbMHgxZSAuLi4g MHgxZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwK LSAgICBbMHgyMF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX25vbmUgfSwKLSAgICBbMHgyMV0gPSB7 IC5zaW1kX3NpemUgPSBzaW1kX290aGVyIH0sCi0gICAgWzB4MjJdID0geyAuc2ltZF9zaXplID0g c2ltZF9ub25lIH0sCisgICAgWzB4MjBdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAuZDhz ID0gMCB9LAorICAgIFsweDIxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC5kOHMgPSAy IH0sCisgICAgWzB4MjJdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAuZDhzID0gZDhzX2Rx NjQgfSwKICAgICBbMHgyNV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMg PSBkOHNfdmwgfSwKICAgICBbMHgzMCAuLi4gMHgzM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290 aGVyLCAudHdvX29wID0gMSB9LAotICAgIFsweDM4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4 IH0sCisgICAgWzB4MzhdID0geyAuc2ltZF9zaXplID0gc2ltZF8xMjgsIC5kOHMgPSA0IH0sCisg ICAgWzB4M2FdID0geyAuc2ltZF9zaXplID0gc2ltZF8yNTYsIC5kOHMgPSBkOHNfdmxfYnlfMiB9 LAogICAgIFsweDM5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAudG9fbWVtID0gMSwgLnR3 b19vcCA9IDEsIC5kOHMgPSA0IH0sCiAgICAgWzB4M2JdID0geyAuc2ltZF9zaXplID0gc2ltZF8y NTYsIC50b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bF9ieV8yIH0sCiAgICAg WzB4M2UgLi4uIDB4M2ZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0g ZDhzX3ZsIH0sCkBAIC0yNTc5LDYgKzI1ODEsNyBAQCB4ODZfZGVjb2RlX3R3b2J5dGUoCiAgICAg ICAgIGN0eHQtPm9wY29kZSB8PSBNQVNLX0lOU1IodmV4LnBmeCwgWDg2RU1VTF9PUENfUEZYX01B U0spOwogICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZF WF82NigwLCAweGM0KTogLyogdnBpbnNydyAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82 NigwLCAweGM0KTogLyogdnBpbnNydyAqLwogICAgICAgICBzdGF0ZS0+ZGVzYyA9IERzdFJlZyB8 IFNyY01lbTE2OwogICAgICAgICBicmVhazsKIApAQCAtMjY4MSw2ICsyNjg0LDcgQEAgeDg2X2Rl Y29kZV8wZjNhKAogCiAgICAgY2FzZSBYODZFTVVMX09QQ182NigwLCAweDIwKTogICAgIC8qIHBp bnNyYiAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDAsIDB4MjApOiAvKiB2cGluc3Ji ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDAsIDB4MjApOiAvKiB2cGluc3JiICov CiAgICAgICAgIHN0YXRlLT5kZXNjID0gRHN0SW1wbGljaXQgfCBTcmNNZW07CiAgICAgICAgIGlm ICggbW9kcm1fbW9kICE9IDMgKQogICAgICAgICAgICAgc3RhdGUtPmRlc2MgfD0gQnl0ZU9wOwpA QCAtMjY4OCw2ICsyNjkyLDcgQEAgeDg2X2RlY29kZV8wZjNhKAogCiAgICAgY2FzZSBYODZFTVVM X09QQ182NigwLCAweDIyKTogICAgIC8qIHBpbnNye2QscX0gKi8KICAgICBjYXNlIFg4NkVNVUxf T1BDX1ZFWF82NigwLCAweDIyKTogLyogdnBpbnNye2QscX0gKi8KKyAgICBjYXNlIFg4NkVNVUxf T1BDX0VWRVhfNjYoMCwgMHgyMik6IC8qIHZwaW5zcntkLHF9ICovCiAgICAgICAgIHN0YXRlLT5k ZXNjID0gRHN0SW1wbGljaXQgfCBTcmNNZW07CiAgICAgICAgIGJyZWFrOwogCkBAIC03NzExLDYg Kzc3MTYsMjMgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIGVhLnR5cGUgPSBPUF9NRU07CiAgICAg ICAgIGdvdG8gc2ltZF8wZl9pbnRfaW1tODsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82 NigweDBmLCAweGM0KTogICAvKiB2cGluc3J3ICRpbW04LHIzMi9tMTYseG1tLHhtbSAqLworICAg IGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MjApOiAvKiB2cGluc3JiICRpbW04 LHIzMi9tOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwg MHgyMik6IC8qIHZwaW5zcntkLHF9ICRpbW04LHIvbSx4bW0seG1tICovCisgICAgICAgIGdlbmVy YXRlX2V4Y2VwdGlvbl9pZihldmV4LmxyIHx8IGV2ZXgub3Btc2sgfHwgZXZleC5iciwgRVhDX1VE KTsKKyAgICAgICAgaWYgKCBiICYgMiApCisgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3Rf aGF2ZShhdng1MTJkcSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGhvc3RfYW5kX3ZjcHVf bXVzdF9oYXZlKGF2eDUxMmJ3KTsKKyAgICAgICAgaWYgKCAhbW9kZV82NGJpdCgpICkKKyAgICAg ICAgICAgIGV2ZXgudyA9IDA7CisgICAgICAgIG1lbWNweShtbXZhbHAsICZzcmMudmFsLCBvcF9i eXRlcyk7CisgICAgICAgIGVhLnR5cGUgPSBPUF9NRU07CisgICAgICAgIG9wX2J5dGVzID0gc3Jj LmJ5dGVzOworICAgICAgICBkID0gU3JjTWVtMTY7IC8qIEZha2UgZm9yIHRoZSBjb21tb24gU0lN RCBjb2RlIGJlbG93LiAqLworICAgICAgICBzdGF0ZS0+c2ltZF9zaXplID0gc2ltZF9vdGhlcjsK KyAgICAgICAgZ290byBhdng1MTJmX2ltbThfbm9fc2FlOworCiAgICAgQ0FTRV9TSU1EX1BBQ0tF RF9JTlQoMHgwZiwgMHhjNSk6ICAgICAgLyogcGV4dHJ3ICRpbW04LHsseH1tbSxyZWcgKi8KICAg ICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmLCAweGM1KTogICAvKiB2cGV4dHJ3ICRpbW04 LHhtbSxyZWcgKi8KICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC5sLCBFWENfVUQp OwpAQCAtODkyNCw4ICs4OTQ2LDEyIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBvcGMgPSBpbml0 X2V2ZXgoc3R1Yik7CiAgICAgICAgIGdvdG8gcGV4dHI7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZjNhLCAweDE4KTogLyogdmluc2VydGYzMng0ICRpbW04LHhtbS9tMTI4LHt5 LHp9bW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Lyogdmluc2VydGY2NHgyICRpbW04LHhtbS9tMTI4LHt5LHp9bW17a30gKi8KICAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDE5KTogLyogdmV4dHJhY3RmMzJ4NCAkaW1tOCx7 eSx6fW1tLHhtbS9tMTI4e2t9ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIHZleHRyYWN0ZjY0eDIgJGltbTgse3ksen1tbSx4bW0vbTEyOHtrfSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MzgpOiAvKiB2aW5zZXJ0aTMy eDQgJGltbTgseG1tL20xMjgse3ksen1tbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiB2aW5zZXJ0aTY0eDIgJGltbTgseG1tL20xMjgse3ksen1t bXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MzkpOiAvKiB2 ZXh0cmFjdGkzMng0ICRpbW04LHt5LHp9bW0seG1tL20xMjh7a30gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdmV4dHJhY3RpNjR4MiAkaW1tOCx7eSx6 fW1tLHhtbS9tMTI4e2t9ICovCiAgICAgICAgIGlmICggZXZleC53ICkKQEAgLTg5MzQsOCArODk2 MCwxMiBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZmF1bHRfc3VwcHJlc3Npb24gPSBmYWxzZTsK ICAgICAgICAgZ290byBhdng1MTJmX2ltbThfbm9fc2FlOwogCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYzYSwgMHgxYSk6IC8qIHZpbnNlcnRmMzJ4NCAkaW1tOCx5bW0vbTI1Nix6 bW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog dmluc2VydGY2NHgyICRpbW04LHltbS9tMjU2LHptbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9P UENfRVZFWF82NigweDBmM2EsIDB4MWIpOiAvKiB2ZXh0cmFjdGYzMng4ICRpbW04LHptbSx5bW0v bTI1NntrfSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiB2ZXh0cmFjdGY2NHg0ICRpbW04LHptbSx5bW0vbTI1NntrfSAqLworICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF82NigweDBmM2EsIDB4M2EpOiAvKiB2aW5zZXJ0aTMyeDQgJGltbTgseW1tL20y NTYsem1te2t9ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIHZpbnNlcnRpNjR4MiAkaW1tOCx5bW0vbTI1Nix6bW17a30gKi8KICAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDNiKTogLyogdmV4dHJhY3RpMzJ4OCAkaW1tOCx6bW0s eW1tL20yNTZ7a30gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogdmV4dHJhY3RpNjR4NCAkaW1tOCx6bW0seW1tL20yNTZ7a30gKi8KICAgICAgICAgaWYg KCAhZXZleC53ICkKQEAgLTkwMjgsMTMgKzkwNTgsMjAgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAg IG9wX2J5dGVzID0gNDsKICAgICAgICAgZ290byBzaW1kXzBmM2FfY29tbW9uOwogCi0gICAgY2Fz ZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjNhLCAweDIxKTogLyogdmluc2VydHBzICRpbW04LHht bS9tMTI4LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4 MjEpOiAvKiB2aW5zZXJ0cHMgJGltbTgseG1tL20zMix4bW0seG1tICovCiAgICAgICAgIG9wX2J5 dGVzID0gNDsKICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAgY2FzZSBYODZFTVVMX09Q Q19WRVhfNjYoMHgwZjNhLCAweDQxKTogLyogdmRwcGQgJGltbTgse3gseX1tbS9tZW0se3gseX1t bSx7eCx5fW1tICovCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgubCwgRVhDX1VE KTsKICAgICAgICAgZ290byBzaW1kXzBmX2ltbThfYXZ4OwogCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYzYSwgMHgyMSk6IC8qIHZpbnNlcnRwcyAkaW1tOCx4bW0vbTMyLHhtbSx4 bW0gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7CisgICAgICAg IGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LmxyIHx8IGV2ZXgudyB8fCBldmV4Lm9wbXNrIHx8 IGV2ZXguYnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENfVUQpOworICAgICAg ICBvcF9ieXRlcyA9IDQ7CisgICAgICAgIGdvdG8gc2ltZF9pbW04X3ptbTsKKwogICAgIGNhc2Ug WDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzYSwgMHgzMCk6IC8qIGtzaGlmdHJ7Yix3fSAkaW1tOCxr LGsgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4MzIpOiAvKiBrc2hp ZnRse2Isd30gJGltbTgsayxrICovCiAgICAgICAgIGlmICggIXZleC53ICkKCgoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=