From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v6 11/42] x86emul: support AVX512{F, BW} integer shuffle insns Date: Thu, 06 Dec 2018 02:55:33 -0700 Message-ID: <5C08F21502000078002037CD@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 1gUqNf-0003eQ-12 for xen-devel@lists.xenproject.org; Thu, 06 Dec 2018 09:55:39 +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 QWxzbyBpbmNsdWRlIHNodWZmezMyeDQsNjR4Mn0gYXMgYmVpbmcgdmVyeSBzaW1pbGFyIHRvIHNo dWZpezMyeDQsNjR4Mn0uCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Ci0tLQp2NjogUmUtYmFzZSBvdmVyIGNoYW5nZXMgZWFybGllciBpbiB0aGUgc2VyaWVz Lgp2NTogUmUtYmFzZSBvdmVyIGNoYW5nZXMgZWFybGllciBpbiB0aGUgc2VyaWVzLgp2NDogTW92 ZSBPVlIoKSBhZGRpdGlvbiBpbnRvIF9fQVZYNTEyVkxfXyBjb25kaXRpb25hbC4gQ29ycmVjdCBj b21tZW50cy4KdjM6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRp c3A4LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYwpAQCAtMjE0 LDYgKzIxNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX2FsbFtdID0KICAg ICBJTlNOKHByb2x2LCAgICAgICAgNjYsIDBmMzgsIDE1LCAgICB2bCwgICAgIGRxLCB2bCksCiAg ICAgSU5TTlgocHJvciwgICAgICAgIDY2LCAgIDBmLCA3MiwgMCwgdmwsICAgICBkcSwgdmwpLAog ICAgIElOU04ocHJvcnYsICAgICAgICA2NiwgMGYzOCwgMTQsICAgIHZsLCAgICAgZHEsIHZsKSwK KyAgICBJTlNOKHBzaHVmZCwgICAgICAgNjYsICAgMGYsIDcwLCAgICB2bCwgICAgICBkLCB2bCks CiAgICAgSU5TTihwc2xsZCwgICAgICAgIDY2LCAgIDBmLCBmMiwgICAgZWxfNCwgICAgZCwgdmwp LAogICAgIElOU05YKHBzbGxkLCAgICAgICA2NiwgICAwZiwgNzIsIDYsIHZsLCAgICAgIGQsIHZs KSwKICAgICBJTlNOKHBzbGxxLCAgICAgICAgNjYsICAgMGYsIGYzLCAgICBlbF8yLCAgICBxLCB2 bCksCkBAIC0yNjQsNiArMjY1LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJm X25vMTI4W10KICAgICBJTlNOKGV4dHJhY3RpMzJ4NCwgICA2NiwgMGYzYSwgMzksIGVsXzQsICBk LCB2bCksCiAgICAgSU5TTihpbnNlcnRmMzJ4NCwgICAgNjYsIDBmM2EsIDE4LCBlbF80LCAgZCwg dmwpLAogICAgIElOU04oaW5zZXJ0aTMyeDQsICAgIDY2LCAwZjNhLCAzOCwgZWxfNCwgIGQsIHZs KSwKKyAgICBJTlNOKHNodWZmMzJ4NCwgICAgICA2NiwgMGYzYSwgMjMsIHZsLCAgICBkLCB2bCks CisgICAgSU5TTihzaHVmZjY0eDIsICAgICAgNjYsIDBmM2EsIDIzLCB2bCwgICAgcSwgdmwpLAor ICAgIElOU04oc2h1ZmkzMng0LCAgICAgIDY2LCAwZjNhLCA0MywgdmwsICAgIGQsIHZsKSwKKyAg ICBJTlNOKHNodWZpNjR4MiwgICAgICA2NiwgMGYzYSwgNDMsIHZsLCAgICBxLCB2bCksCiB9Owog CiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl81MTJbXSA9IHsKQEAgLTMxOCw2ICsz MjMsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyYndfYWxsW10KICAgICBJTlNO KHBtdWxodywgICAgICA2NiwgICAwZiwgZTUsICAgIHZsLCAgICB3LCB2bCksCiAgICAgSU5TTihw bXVsbHcsICAgICAgNjYsICAgMGYsIGQ1LCAgICB2bCwgICAgdywgdmwpLAogICAgIElOU04ocHNh ZGJ3LCAgICAgIDY2LCAgIDBmLCBmNiwgICAgdmwsICAgIGIsIHZsKSwKKyAgICBJTlNOKHBzaHVm YiwgICAgICA2NiwgMGYzOCwgMDAsICAgIHZsLCAgICBiLCB2bCksCisgICAgSU5TTihwc2h1Zmh3 LCAgICAgZjMsICAgMGYsIDcwLCAgICB2bCwgICAgdywgdmwpLAorICAgIElOU04ocHNodWZsdywg ICAgIGYyLCAgIDBmLCA3MCwgICAgdmwsICAgIHcsIHZsKSwKICAgICBJTlNOWChwc2xsZHEsICAg ICA2NiwgICAwZiwgNzMsIDcsIHZsLCAgICBiLCB2bCksCiAgICAgSU5TTihwc2xsdncsICAgICAg NjYsIDBmMzgsIDEyLCAgICB2bCwgICAgdywgdmwpLAogICAgIElOU04ocHNsbHcsICAgICAgIDY2 LCAgIDBmLCBmMSwgICAgZWxfOCwgIHcsIHZsKSwKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxh dG9yL3NpbWQuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCkBAIC0xNTMs NiArMTUzLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMg IGVsc2UKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBCKHZwZXJtaTJ2YXJwcywgX21h c2ssIHgsIGludGVybGVhdmVfaGksIHksIH4wKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgs IHkpIEIodnBlcm10MnZhcnBzLCBfbWFzaywgaW50ZXJsZWF2ZV9sbywgeCwgeSwgfjApCisjICAg ZGVmaW5lIHN3YXAoeCkgKHsgXAorICAgIHZlY190IHRfID0gQihzaHVmX2YzMng0XywgX21hc2ss IHgsIHgsIFZFQ19TSVpFID09IDMyID8gMGIwMSA6IDBiMDAwMTEwMTEsIHVuZGVmKCksIH4wKTsg XAorICAgIEIoc2h1ZnBzLCBfbWFzaywgdF8sIHRfLCAwYjAwMDExMDExLCB1bmRlZigpLCB+MCk7 IFwKK30pCiAjICBlbmRpZgogIyBlbGlmIEZMT0FUX1NJWkUgPT0gOAogIyAgaWYgVkVDX1NJWkUg Pj0gMzIKQEAgLTE4MSw2ICsxODUsMTAgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5 dGVfdmVjX3QgYgogIyAgZWxzZQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodnBl cm1pMnZhcnBkLCBfbWFzaywgeCwgaW50ZXJsZWF2ZV9oaSwgeSwgfjApCiAjICAgZGVmaW5lIGlu dGVybGVhdmVfbG8oeCwgeSkgQih2cGVybXQydmFycGQsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCB4 LCB5LCB+MCkKKyMgICBkZWZpbmUgc3dhcCh4KSAoeyBcCisgICAgdmVjX3QgdF8gPSBCKHNodWZf ZjY0eDJfLCBfbWFzaywgeCwgeCwgVkVDX1NJWkUgPT0gMzIgPyAwYjAxIDogMGIwMDAxMTAxMSwg dW5kZWYoKSwgfjApOyBcCisgICAgQihzaHVmcGQsIF9tYXNrLCB0XywgdF8sIDBiMDEwMTAxMDEs IHVuZGVmKCksIH4wKTsgXAorfSkKICMgIGVuZGlmCiAjIGVuZGlmCiAjZWxpZiBGTE9BVF9TSVpF ID09IDQgJiYgZGVmaW5lZChfX1NTRV9fKQpAQCAtMzA5LDkgKzMxNywxNCBAQCBzdGF0aWMgaW5s aW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjICBpZiBWRUNfU0laRSA9PSAxNgogIyAg IGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgodmVjX3QpQihwdW5wY2toZHEsIF9tYXNrLCAo dnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYoKSwgfjApKQogIyAgIGRlZmluZSBp bnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3QpQihwdW5wY2tsZHEsIF9tYXNrLCAodnNpX3QpKHgp LCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgIGRlZmluZSBzd2FwKHgpICgo dmVjX3QpQihwc2h1ZmQsIF9tYXNrLCAodnNpX3QpKHgpLCAwYjAwMDExMDExLCAodnNpX3QpdW5k ZWYoKSwgfjApKQogIyAgZWxzZQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgodmVj X3QpQih2cGVybWkydmFyZCwgX21hc2ssICh2c2lfdCkoeCksIGludGVybGVhdmVfaGksICh2c2lf dCkoeSksIH4wKSkKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSAoKHZlY190KUIodnBl cm10MnZhcmQsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCB+ MCkpCisjICAgZGVmaW5lIHN3YXAoeCkgKCh2ZWNfdClCKHBzaHVmZCwgX21hc2ssIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQihzaHVmX2kzMng0XywgX21hc2ssICh2c2lfdCkoeCks ICh2c2lfdCkoeCksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUNfU0laRSA9 PSAzMiA/IDBiMDEgOiAwYjAwMDExMDExLCAodnNpX3QpdW5kZWYoKSwgfjApLCBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDBiMDAwMTEwMTEsICh2c2lfdCl1bmRlZigpLCB+MCkpCiAj ICBlbmRpZgogIyAgZGVmaW5lIG1peCh4LCB5KSAoKHZlY190KUIobW92ZHFhMzJfLCBfbWFzaywg KHZzaV90KSh4KSwgKHZzaV90KSh5KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KDBiMDEwMTAxMDEwMTAxMDEwMSAmICgoMSA8PCBFTEVNX0NPVU5UKSAtIDEpKSkpCkBAIC0zMzMs OSArMzQ2LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMg IGlmIFZFQ19TSVpFID09IDE2CiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgKCh2ZWNf dClCKHB1bnBja2hxZHEsIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5k ZWYoKSwgfjApKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3QpQihwdW5w Y2tscWRxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZkaV90KXVuZGVmKCksIH4w KSkKKyMgICBkZWZpbmUgc3dhcCh4KSAoKHZlY190KUIocHNodWZkLCBfbWFzaywgKHZzaV90KSh4 KSwgMGIwMTAwMTExMCwgKHZzaV90KXVuZGVmKCksIH4wKSkKICMgIGVsc2UKICMgICBkZWZpbmUg aW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KUIodnBlcm1pMnZhcnEsIF9tYXNrLCAodmRpX3Qp KHgpLCBpbnRlcmxlYXZlX2hpLCAodmRpX3QpKHkpLCB+MCkpCiAjICAgZGVmaW5lIGludGVybGVh dmVfbG8oeCwgeSkgKCh2ZWNfdClCKHZwZXJtdDJ2YXJxLCBfbWFzaywgaW50ZXJsZWF2ZV9sbywg KHZkaV90KSh4KSwgKHZkaV90KSh5KSwgfjApKQorIyAgIGRlZmluZSBzd2FwKHgpICgodmVjX3Qp Qihwc2h1ZmQsIF9tYXNrLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2c2lfdClC KHNodWZfaTY0eDJfLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh4KSwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUNfU0laRSA9PSAzMiA/IDBiMDEgOiAwYjAw MDExMDExLCAodmRpX3QpdW5kZWYoKSwgfjApLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDBiMDEwMDExMTAsICh2c2lfdCl1bmRlZigpLCB+MCkpCiAjICBlbmRpZgogIyAgZGVmaW5l IG1peCh4LCB5KSAoKHZlY190KUIobW92ZHFhNjRfLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90 KSh5KSwgMGIwMTAxMDEwMSkpCiAjIGVuZGlmCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRv ci9zaW1kLmgKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaApAQCAtMTE5LDYg KzExOSwxMiBAQCB0eXBlZGVmIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3JfCiAKICNp ZmRlZiBfX0FWWDUxMkZfXwogCisvKiBTYWRseSB0aGVyZSBhcmUgYSBmZXcgZXhjZXB0aW9ucyB0 byB0aGUgZ2VuZXJhbCBuYW1pbmcgcnVsZXMuICovCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9z aHVmX2YzMng0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3NodWZfZjMyeDRfbWFzaworIyBkZWZp bmUgX19idWlsdGluX2lhMzJfc2h1Zl9mNjR4Ml81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9zaHVm X2Y2NHgyX21hc2sKKyMgZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3NodWZfaTMyeDRfNTEyX21hc2sg X19idWlsdGluX2lhMzJfc2h1Zl9pMzJ4NF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9z aHVmX2k2NHgyXzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3NodWZfaTY0eDJfbWFzaworCiAjIGlm IFZFQ19TSVpFID4gRUxFTV9TSVpFICYmIChkZWZpbmVkKFZFQ19NQVgpID8gVkVDX01BWCA6IFZF Q19TSVpFKSA8IDY0CiAjICBwcmFnbWEgR0NDIHRhcmdldCAoICJhdng1MTJ2bCIgKQogIyBlbmRp ZgpAQCAtMjYyLDYgKzI2OCw3IEBAIE9WUihwbW92enh3cSk7CiBPVlIocG11bGxkKTsKIE9WUihw bXVsZHEpOwogT1ZSKHBtdWx1ZHEpOworT1ZSKHBzaHVmZCk7CiBPVlIocHVucGNraGRxKTsKIE9W UihwdW5wY2tocWRxKTsKIE9WUihwdW5wY2tsZHEpOwotLS0gYS94ZW4vYXJjaC94ODYveDg2X2Vt dWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2Vt dWxhdGUuYwpAQCAtMzE4LDcgKzMxOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHdvYnl0ZV90 YWJsZSB7CiAgICAgWzB4NmIgLi4uIDB4NmRdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0s IHNpbWRfcGFja2VkX2ludCwgZDhzX3ZsIH0sCiAgICAgWzB4NmVdID0geyBEc3RJbXBsaWNpdHxT cmNNZW18TW9kUk18TW92LCBzaW1kX25vbmUsIGQ4c19kcTY0IH0sCiAgICAgWzB4NmZdID0geyBE c3RJbXBsaWNpdHxTcmNNZW18TW9kUk18TW92LCBzaW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LAot ICAgIFsweDcwXSA9IHsgU3JjSW1tQnl0ZXxNb2RSTXxUd29PcCwgc2ltZF9vdGhlciB9LAorICAg IFsweDcwXSA9IHsgU3JjSW1tQnl0ZXxNb2RSTXxUd29PcCwgc2ltZF9vdGhlciwgZDhzX3ZsIH0s CiAgICAgWzB4NzEgLi4uIDB4NzNdID0geyBEc3RJbXBsaWNpdHxTcmNJbW1CeXRlfE1vZFJNLCBz aW1kX25vbmUsIGQ4c192bCB9LAogICAgIFsweDc0IC4uLiAweDc2XSA9IHsgRHN0SW1wbGljaXR8 U3JjTWVtfE1vZFJNLCBzaW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LAogICAgIFsweDc3XSA9IHsg RHN0SW1wbGljaXR8U3JjTm9uZSB9LApAQCAtNDMyLDcgKzQzMiw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZXh0MGYzOF90YWJsZSB7CiAgICAgdWludDhfdCB2c2liOjE7CiAgICAgZGlzcDhzY2Fs ZV90IGQ4czo0OwogfSBleHQwZjM4X3RhYmxlWzI1Nl0gPSB7Ci0gICAgWzB4MDAgLi4uIDB4MGJd ID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4MDBdID0geyAuc2lt ZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCisgICAgWzB4MDEgLi4u IDB4MGJdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiAgICAgWzB4MGMgLi4u IDB4MGZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAgfSwKICAgICBbMHgxMCAuLi4g MHgxMl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwK ICAgICBbMHgxM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdvX29wID0gMSB9LApA QCAtNTQzLDYgKzU0NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzYV90YWJsZSB7CiAg ICAgWzB4MjBdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAuZDhzID0gMCB9LAogICAgIFsw eDIxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC5kOHMgPSAyIH0sCiAgICAgWzB4MjJd ID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAuZDhzID0gZDhzX2RxNjQgfSwKKyAgICBbMHgy M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAg ICBbMHgyNV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwg fSwKICAgICBbMHgzMCAuLi4gMHgzM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdv X29wID0gMSB9LAogICAgIFsweDM4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAuZDhzID0g NCB9LApAQCAtNTUyLDYgKzU1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzYV90YWJs ZSB7CiAgICAgWzB4M2UgLi4uIDB4M2ZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50 LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4NDAgLi4uIDB4NDFdID0geyAuc2ltZF9zaXplID0g c2ltZF9wYWNrZWRfZnAgfSwKICAgICBbMHg0Ml0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tl ZF9pbnQgfSwKKyAgICBbMHg0M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5k OHMgPSBkOHNfdmwgfSwKICAgICBbMHg0NF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9p bnQgfSwKICAgICBbMHg0Nl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKICAg ICBbMHg0OCAuLi4gMHg0OV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLmZvdXJf b3AgPSAxIH0sCkBAIC02NjgwLDYgKzY2ODMsNyBAQCB4ODZfZW11bGF0ZSgKICAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmMSk6IC8qIHZwc2xsdyB4bW0vbTEyOCxbeHl6XW1t LFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmNSk6 IC8qIHZwbWFkZHdkIFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGY2KTogLyogdnBzYWRidyBbeHl6XW1tL21lbSxb eHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4 LCAweDAwKTogLyogdnBzaHVmYiBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAg ICAgICAgZmF1bHRfc3VwcHJlc3Npb24gPSBmYWxzZTsKICAgICAgICAgLyogZmFsbCB0aHJvdWdo ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZDUpOiAvKiB2cG11bGx3 IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwpAQCAtNjkzNSw2ICs2OTM5LDIwIEBA IHg4Nl9lbXVsYXRlKAogICAgICAgICBpbnNuX2J5dGVzID0gUEZYX0JZVEVTICsgMzsKICAgICAg ICAgYnJlYWs7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHg3MCk6IC8q IHZwc2h1ZmQgJGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF9GMygweDBmLCAweDcwKTogLyogdnBzaHVmaHcgJGltbTgsW3h5el1tbS9tZW0s W3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMigweDBmLCAweDcwKTog LyogdnBzaHVmbHcgJGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgICAgICBpZiAo IGV2ZXgucGZ4ID09IHZleF82NiApCisgICAgICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYo ZXZleC53LCBFWENfVUQpOworICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGhv c3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmJ3KTsKKyAgICAgICAgICAgIGdlbmVyYXRlX2V4 Y2VwdGlvbl9pZihldmV4LmJyLCBFWENfVUQpOworICAgICAgICB9CisgICAgICAgIGQgPSAoZCAm IH5TcmNNYXNrKSB8IFNyY01lbSB8IFR3b09wOworICAgICAgICBvcF9ieXRlcyA9IDE2IDw8IGV2 ZXgubHI7CisgICAgICAgIGdvdG8gYXZ4NTEyZl9pbW04X25vX3NhZTsKKwogICAgIENBU0VfU0lN RF9QQUNLRURfSU5UKDB4MGYsIDB4NzEpOiAgICAvKiBHcnAxMiAqLwogICAgIGNhc2UgWDg2RU1V TF9PUENfVkVYXzY2KDB4MGYsIDB4NzEpOgogICAgIENBU0VfU0lNRF9QQUNLRURfSU5UKDB4MGYs IDB4NzIpOiAgICAvKiBHcnAxMyAqLwpAQCAtOTEyMiw3ICs5MTQwLDEzIEBAIHg4Nl9lbXVsYXRl KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2ZXh0cmFj dGk2NHgyICRpbW04LHt5LHp9bW0seG1tL20xMjh7a30gKi8KICAgICAgICAgaWYgKCBldmV4Lncg KQogICAgICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZHEpOwotICAgICAg ICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWV2ZXgubHIgfHwgZXZleC5iciwgRVhDX1VEKTsKKyAg ICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXguYnIsIEVYQ19VRCk7CisgICAgICAgIC8q IGZhbGwgdGhyb3VnaCAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4 MjMpOiAvKiB2c2h1ZmYzMng0ICRpbW04LHt5LHp9bW0vbWVtLHt5LHp9bW0se3ksen1tbXtrfSAq LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2c2h1ZmY2 NHgyICRpbW04LHt5LHp9bW0vbWVtLHt5LHp9bW0se3ksen1tbXtrfSAqLworICAgIGNhc2UgWDg2 RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4NDMpOiAvKiB2c2h1ZmkzMng0ICRpbW04LHt5LHp9 bW0vbWVtLHt5LHp9bW0se3ksen1tbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiB2c2h1Zmk2NHgyICRpbW04LHt5LHp9bW0vbWVtLHt5LHp9bW0s e3ksen1tbXtrfSAqLworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWV2ZXgubHIsIEVY Q19VRCk7CiAgICAgICAgIGZhdWx0X3N1cHByZXNzaW9uID0gZmFsc2U7CiAgICAgICAgIGdvdG8g YXZ4NTEyZl9pbW04X25vX3NhZTsKIAoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hlbi1kZXZlbA==