From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v5 33/47] x86emul: support AVX512{F, BW, VBMI} permute insns Date: Mon, 19 Nov 2018 03:32:40 -0700 Message-ID: <5BF2914802000078001FD575@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BF289D802000078001FD3DF@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gOgrG-0002qi-IA for xen-devel@lists.xenproject.org; Mon, 19 Nov 2018 10:32:46 +0000 In-Reply-To: <5BF289D802000078001FD3DF@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 U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KdjU6IFJl LWJhc2Ugb3ZlciBjaGFuZ2VzIGVhcmxpZXIgaW4gdGhlIHNlcmllcy4KdjQ6IE5ldy4KCi0tLSBh L3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4LmMKKysrIGIvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYwpAQCAtMTc3LDYgKzE3NywxMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9hbGxbXSA9CiAgICAgSU5TTihwY21wdSwgICAgICAgIDY2 LCAwZjNhLCAxZSwgICAgdmwsICAgICBkcSwgdmwpLAogICAgIElOU04ocGVybWkyLCAgICAgICA2 NiwgMGYzOCwgNzYsICAgIHZsLCAgICAgZHEsIHZsKSwKICAgICBJTlNOKHBlcm1pMiwgICAgICAg NjYsIDBmMzgsIDc3LCAgICB2bCwgICAgIHNkLCB2bCksCisgICAgSU5TTihwZXJtaWxwZCwgICAg IDY2LCAwZjM4LCAwZCwgICAgdmwsICAgICAgcSwgdmwpLAorICAgIElOU04ocGVybWlscGQsICAg ICA2NiwgMGYzYSwgMDUsICAgIHZsLCAgICAgIHEsIHZsKSwKKyAgICBJTlNOKHBlcm1pbHBzLCAg ICAgNjYsIDBmMzgsIDBjLCAgICB2bCwgICAgICBkLCB2bCksCisgICAgSU5TTihwZXJtaWxwcywg ICAgIDY2LCAwZjNhLCAwNCwgICAgdmwsICAgICAgZCwgdmwpLAogICAgIElOU04ocGVybXQyLCAg ICAgICA2NiwgMGYzOCwgN2UsICAgIHZsLCAgICAgZHEsIHZsKSwKICAgICBJTlNOKHBlcm10Miwg ICAgICAgNjYsIDBmMzgsIDdmLCAgICB2bCwgICAgIHNkLCB2bCksCiAgICAgSU5TTihwbWF4cywg ICAgICAgIDY2LCAwZjM4LCAzZCwgICAgdmwsICAgICBkcSwgdmwpLApAQCAtMjc5LDYgKzI4Mywx MCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9ubzEyOFtdCiAgICAgSU5TTihp bnNlcnRmMzJ4NCwgICAgNjYsIDBmM2EsIDE4LCBlbF80LCAgZCwgdmwpLAogICAgIElOU04oaW5z ZXJ0aTMyeDQsICAgIDY2LCAwZjNhLCAzOCwgZWxfNCwgIGQsIHZsKSwKICAgICBJTlNOKG1vdmRk dXAsICAgICAgICBmMiwgICAwZiwgMTIsIHZsLCBxX25iLCB2bCksCisgICAgSU5TTihwZXJtLCAg ICAgICAgICAgNjYsIDBmMzgsIDM2LCB2bCwgICBkcSwgdmwpLAorICAgIElOU04ocGVybSwgICAg ICAgICAgIDY2LCAwZjM4LCAxNiwgdmwsICAgc2QsIHZsKSwKKyAgICBJTlNOKHBlcm1wZCwgICAg ICAgICA2NiwgMGYzYSwgMDEsIHZsLCAgICBxLCB2bCksCisgICAgSU5TTihwZXJtcSwgICAgICAg ICAgNjYsIDBmM2EsIDAwLCB2bCwgICAgcSwgdmwpLAogICAgIElOU04oc2h1ZmYzMng0LCAgICAg IDY2LCAwZjNhLCAyMywgdmwsICAgIGQsIHZsKSwKICAgICBJTlNOKHNodWZmNjR4MiwgICAgICA2 NiwgMGYzYSwgMjMsIHZsLCAgICBxLCB2bCksCiAgICAgSU5TTihzaHVmaTMyeDQsICAgICAgNjYs IDBmM2EsIDQzLCB2bCwgICAgZCwgdmwpLApAQCAtMzE3LDYgKzMyNSw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdGVzdCBhdng1MTJid19hbGxbXQogICAgIElOU04ocGNtcGd0YiwgICAgIDY2LCAg IDBmLCA2NCwgICAgdmwsICAgIGIsIHZsKSwKICAgICBJTlNOKHBjbXBndHcsICAgICA2NiwgICAw ZiwgNjUsICAgIHZsLCAgICB3LCB2bCksCiAgICAgSU5TTihwY21wdSwgICAgICAgNjYsIDBmM2Es IDNlLCAgICB2bCwgICBidywgdmwpLAorICAgIElOU04ocGVybXcsICAgICAgIDY2LCAwZjM4LCA4 ZCwgICAgdmwsICAgIHcsIHZsKSwKICAgICBJTlNOKHBlcm1pMncsICAgICA2NiwgMGYzOCwgNzUs ICAgIHZsLCAgICB3LCB2bCksCiAgICAgSU5TTihwZXJtdDJ3LCAgICAgNjYsIDBmMzgsIDdkLCAg ICB2bCwgICAgdywgdmwpLAogICAgIElOU04ocG1hZGR3ZCwgICAgIDY2LCAgIDBmLCBmNSwgICAg dmwsICAgIHcsIHZsKSwKQEAgLTQxMyw2ICs0MjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRl c3QgYXZ4NTEyZHFfNTEyW10KIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJf dmJtaV9hbGxbXSA9IHsKKyAgICBJTlNOKHBlcm1iLCAgICAgICAgIDY2LCAwZjM4LCA4ZCwgdmws IGIsIHZsKSwKICAgICBJTlNOKHBlcm1pMmIsICAgICAgIDY2LCAwZjM4LCA3NSwgdmwsIGIsIHZs KSwKICAgICBJTlNOKHBlcm10MmIsICAgICAgIDY2LCAwZjM4LCA3ZCwgdmwsIGIsIHZsKSwKIH07 Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKKysrIGIvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAtMTg2LDYgKzE4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBC KHVucGNraHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICAgZGVmaW5lIGludGVybGVh dmVfbG8oeCwgeSkgQih1bnBja2xwcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgIGRl ZmluZSBzd2FwKHgpIEIoc2h1ZnBzLCBfbWFzaywgeCwgeCwgMGIwMDAxMTAxMSwgdW5kZWYoKSwg fjApCisjICAgZGVmaW5lIHN3YXAyKHgpIEJfKHZwZXJtaWxwcywgX21hc2ssIHgsIDBiMDAwMTEw MTEsIHVuZGVmKCksIH4wKQogIyAgZWxzZQogIyAgIGRlZmluZSBicm9hZGNhc3RfcXVhcnRldCh4 KSBCKGJyb2FkY2FzdGYzMng0XywgX21hc2ssIHgsIHVuZGVmKCksIH4wKQogIyAgIGRlZmluZSBp bnNlcnRfcGFpcih4LCB5LCBwKSBcCkBAIC0yMDAsNiArMjAxLDEwIEBAIHN0YXRpYyBpbmxpbmUg Ym9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICB2ZWNfdCB0XyA9IEIoc2h1Zl9mMzJ4NF8s IF9tYXNrLCB4LCB4LCBWRUNfU0laRSA9PSAzMiA/IDBiMDEgOiAwYjAwMDExMDExLCB1bmRlZigp LCB+MCk7IFwKICAgICBCKHNodWZwcywgX21hc2ssIHRfLCB0XywgMGIwMDAxMTAxMSwgdW5kZWYo KSwgfjApOyBcCiB9KQorIyAgIGRlZmluZSBzd2FwMih4KSBCKHZwZXJtaWxwcywgX21hc2ssIFwK KyAgICAgICAgICAgICAgICAgICAgICAgQihzaHVmX2YzMng0XywgX21hc2ssIHgsIHgsIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICBWRUNfU0laRSA9PSAzMiA/IDBiMDEgOiAwYjAwMDExMDEx LCB1bmRlZigpLCB+MCksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgMGIwMDAxMTAxMSwgdW5k ZWYoKSwgfjApCiAjICBlbmRpZgogIyBlbGlmIEZMT0FUX1NJWkUgPT0gOAogIyAgaWYgVkVDX1NJ WkUgPj0gMzIKQEAgLTIzMyw2ICsyMzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2wo Ynl0ZV92ZWNfdCBiCiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgQih1bnBja2hwZCwg X21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkp IEIodW5wY2tscGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgICBkZWZpbmUgc3dhcCh4 KSBCKHNodWZwZCwgX21hc2ssIHgsIHgsIDBiMDEsIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSBz d2FwMih4KSBCXyh2cGVybWlscGQsIF9tYXNrLCB4LCAwYjAxLCB1bmRlZigpLCB+MCkKICMgIGVs c2UKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBCKHZwZXJtaTJ2YXJwZCwgX21hc2ss IHgsIGludGVybGVhdmVfaGksIHksIH4wKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkp IEIodnBlcm10MnZhcnBkLCBfbWFzaywgaW50ZXJsZWF2ZV9sbywgeCwgeSwgfjApCkBAIC0yNDAs NiArMjQ2LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAg ICB2ZWNfdCB0XyA9IEIoc2h1Zl9mNjR4Ml8sIF9tYXNrLCB4LCB4LCBWRUNfU0laRSA9PSAzMiA/ IDBiMDEgOiAwYjAwMDExMDExLCB1bmRlZigpLCB+MCk7IFwKICAgICBCKHNodWZwZCwgX21hc2ss IHRfLCB0XywgMGIwMTAxMDEwMSwgdW5kZWYoKSwgfjApOyBcCiB9KQorIyAgIGRlZmluZSBzd2Fw Mih4KSBCKHZwZXJtaWxwZCwgX21hc2ssIFwKKyAgICAgICAgICAgICAgICAgICAgICAgQihzaHVm X2Y2NHgyXywgX21hc2ssIHgsIHgsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWRUNfU0la RSA9PSAzMiA/IDBiMDEgOiAwYjAwMDExMDExLCB1bmRlZigpLCB+MCksIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgMGIwMTAxMDEwMSwgdW5kZWYoKSwgfjApCiAjICBlbmRpZgogIyBlbmRpZgog I2VsaWYgRkxPQVRfU0laRSA9PSA0ICYmIGRlZmluZWQoX19TU0VfXykKQEAgLTQwNSw2ICs0MTUs NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEIoc2h1Zl9pMzJ4NF8sIF9tYXNrLCAodnNpX3QpKHgpLCAodnNp X3QpKHgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDX1NJWkUgPT0gMzIg PyAwYjAxIDogMGIwMDAxMTAxMSwgKHZzaV90KXVuZGVmKCksIH4wKSwgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwYjAwMDExMDExLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgIGRl ZmluZSBzd2FwMih4KSAoKHZlY190KUJfKHBlcm12YXJzaSwgX21hc2ssICh2c2lfdCkoeCksICh2 c2lfdCkoaW52IC0gMSksICh2c2lfdCl1bmRlZigpLCB+MCkpCiAjICBlbmRpZgogIyAgZGVmaW5l IG1peCh4LCB5KSAoKHZlY190KUIobW92ZHFhMzJfLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90 KSh5KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDBiMDEwMTAxMDEwMTAxMDEw MSAmICgoMSA8PCBFTEVNX0NPVU5UKSAtIDEpKSkpCkBAIC00NDIsOCArNDUzLDE3IEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHZzaV90KUIoc2h1Zl9pNjR4Ml8sIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3Qp KHgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFQ19TSVpFID09 IDMyID8gMGIwMSA6IDBiMDAwMTEwMTEsICh2ZGlfdCl1bmRlZigpLCB+MCksIFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMGIwMTAwMTExMCwgKHZzaV90KXVuZGVmKCksIH4wKSkKKyMg ICBkZWZpbmUgc3dhcDIoeCkgKCh2ZWNfdClCKHBlcm12YXJkaSwgX21hc2ssICh2ZGlfdCkoeCks ICh2ZGlfdCkoaW52IC0gMSksICh2ZGlfdCl1bmRlZigpLCB+MCkpCiAjICBlbmRpZgogIyAgZGVm aW5lIG1peCh4LCB5KSAoKHZlY190KUIobW92ZHFhNjRfLCBfbWFzaywgKHZkaV90KSh4KSwgKHZk aV90KSh5KSwgMGIwMTAxMDEwMSkpCisjICBpZiBWRUNfU0laRSA9PSAzMgorIyAgIGRlZmluZSBz d2FwMyh4KSAoKHZlY190KUJfKHBlcm1kaSwgX21hc2ssICh2ZGlfdCkoeCksIDBiMDAwMTEwMTEs ICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjICBlbGlmIFZFQ19TSVpFID09IDY0CisjICAgZGVmaW5l IHN3YXAzKHgpICh7IFwKKyAgICB2ZGlfdCB0XyA9IEJfKHBlcm1kaSwgX21hc2ssICh2ZGlfdCko eCksIDBiMDAwMTEwMTEsICh2ZGlfdCl1bmRlZigpLCB+MCk7IFwKKyAgICBCKHNodWZfaTY0eDJf LCBfbWFzaywgdF8sIHRfLCAwYjAxMDAxMTEwLCAodmRpX3QpdW5kZWYoKSwgfjApOyBcCit9KQor IyAgZW5kaWYKICMgZW5kaWYKICMgaWYgSU5UX1NJWkUgPT0gNAogIyAgZGVmaW5lIG1heCh4LCB5 KSBCKHBtYXhzZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQpAQCAtNDg5LDYgKzUwOSw5IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgIGRlZmluZSBzaHJp bmsxKHgpICgoaGFsZl90KUIocG1vdndiLCBfbWFzaywgKHZoaV90KSh4KSwgKHZxaV9oYWxmX3Qp e30sIH4wKSkKICMgIGRlZmluZSBzaHJpbmsyKHgpICgocXVhcnRlcl90KUIocG1vdmRiLCBfbWFz aywgKHZzaV90KSh4KSwgKHZxaV9xdWFydGVyX3Qpe30sIH4wKSkKICMgIGRlZmluZSBzaHJpbmsz KHgpICgoZWlnaHRoX3QpQihwbW92cWIsIF9tYXNrLCAodmRpX3QpKHgpLCAodnFpX2VpZ2h0aF90 KXt9LCB+MCkpCisjICBpZmRlZiBfX0FWWDUxMlZCTUlfXworIyAgIGRlZmluZSBzd2FwMih4KSAo KHZlY190KUIocGVybXZhcnFpLCBfbWFzaywgKHZxaV90KSh4KSwgKHZxaV90KShpbnYgLSAxKSwg KHZxaV90KXVuZGVmKCksIH4wKSkKKyMgIGVuZGlmCiAjIGVsaWYgSU5UX1NJWkUgPT0gMiB8fCBV SU5UX1NJWkUgPT0gMgogIyAgZGVmaW5lIGJyb2FkY2FzdCh4KSAoeyBcCiAgICAgdmVjX3QgdF87 IFwKQEAgLTUxNyw2ICs1NDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92 ZWNfdCBiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMGIwMTAxMDEwMTAxMDEwMTAx MDEwMTAxMDEwMTAxMDEwMSAmIEFMTF9UUlVFKSkpCiAjICBkZWZpbmUgc2hyaW5rMSh4KSAoKGhh bGZfdClCKHBtb3ZkdywgX21hc2ssICh2c2lfdCkoeCksICh2aGlfaGFsZl90KXt9LCB+MCkpCiAj ICBkZWZpbmUgc2hyaW5rMih4KSAoKHF1YXJ0ZXJfdClCKHBtb3ZxdywgX21hc2ssICh2ZGlfdCko eCksICh2aGlfcXVhcnRlcl90KXt9LCB+MCkpCisjICBkZWZpbmUgc3dhcDIoeCkgKCh2ZWNfdClC KHBlcm12YXJoaSwgX21hc2ssICh2aGlfdCkoeCksICh2aGlfdCkoaW52IC0gMSksICh2aGlfdCl1 bmRlZigpLCB+MCkpCiAjIGVuZGlmCiAjIGlmIElOVF9TSVpFID09IDEKICMgIGRlZmluZSBtYXgo eCwgeSkgKCh2ZWNfdClCKHBtYXhzYiwgX21hc2ssICh2cWlfdCkoeCksICh2cWlfdCkoeSksICh2 cWlfdCl1bmRlZigpLCB+MCkpCkBAIC0xMzI1LDYgKzEzNDksMTIgQEAgaW50IHNpbWRfdGVzdCh2 b2lkKQogICAgIGlmICggIWVxKHN3YXAyKHNyYyksIGludikgKSByZXR1cm4gX19MSU5FX187CiAj ZW5kaWYKIAorI2lmZGVmIHN3YXAzCisgICAgdG91Y2goc3JjKTsKKyAgICBpZiAoICFlcShzd2Fw MyhzcmMpLCBpbnYpICkgcmV0dXJuIF9fTElORV9fOworICAgIHRvdWNoKHNyYyk7CisjZW5kaWYK KwogI2lmZGVmIGJyb2FkY2FzdAogICAgIGlmICggIWVxKGJyb2FkY2FzdChFTEVNX0NPVU5UICsg MSksIHNyYyArIGludikgKSByZXR1cm4gX19MSU5FX187CiAjZW5kaWYKLS0tIGEvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3NpbWQuaAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2lt ZC5oCkBAIC0yNzUsNiArMjc1LDggQEAgT1ZSKG1vdmxwcyk7CiBPVlJfVkZQKG1vdm50KTsKIE9W Ul9WRlAobW92dSk7CiBPVlJfRlAobXVsKTsKK09WUl9WRlAocGVybSk7CitPVlJfVkZQKHBlcm1p bCk7CiBPVlJfVkZQKHNodWYpOwogT1ZSX0lOVChzbGwpOwogT1ZSX0RRKHNsbHYpOwpAQCAtMzMx LDYgKzMzMyw4IEBAIE9WUihtb3ZudGRxKTsKIE9WUihtb3ZudGRxYSk7CiBPVlIobW92c2hkdXAp OwogT1ZSKG1vdnNsZHVwKTsKK09WUihwZXJtZCk7CitPVlIocGVybXEpOwogT1ZSKHBtb3ZzeGJk KTsKIE9WUihwbW92c3hicSk7CiBPVlIocG1vdnN4ZHEpOwotLS0gYS94ZW4vYXJjaC94ODYveDg2 X2VtdWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2 X2VtdWxhdGUuYwpAQCAtNDM0LDcgKzQzNCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYz OF90YWJsZSB7CiB9IGV4dDBmMzhfdGFibGVbMjU2XSA9IHsKICAgICBbMHgwMF0gPSB7IC5zaW1k X3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHgwMSAuLi4g MHgwYl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKLSAgICBbMHgwYyAuLi4g MHgwZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCB9LAorICAgIFsweDBjIC4uLiAw eDBkXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZDhzID0gZDhzX3ZsIH0sCisg ICAgWzB4MGUgLi4uIDB4MGZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAgfSwKICAg ICBbMHgxMCAuLi4gMHgxMl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMg PSBkOHNfdmwgfSwKICAgICBbMHgxM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdv X29wID0gMSB9LAogICAgIFsweDE0IC4uLiAweDE2XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFj a2VkX2ZwLCAuZDhzID0gZDhzX3ZsIH0sCkBAIC00NzcsNiArNDc4LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBleHQwZjM4X3RhYmxlIHsKICAgICBbMHg3ZCAuLi4gMHg3ZV0gPSB7IC5zaW1kX3Np emUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHg3Zl0gPSB7IC5z aW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDhjXSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCB9LAorICAgIFsweDhkXSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDhlXSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnRvX21lbSA9IDEgfSwKICAgICBbMHg5MCAu Li4gMHg5M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudnNpYiA9IDEgfSwKICAgICBb MHg5NiAuLi4gMHg5OF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLmQ4cyA9IGQ4 c192bCB9LApAQCAtNTIyLDEwICs1MjQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjNh X3RhYmxlIHsKICAgICB1aW50OF90IGZvdXJfb3A6MTsKICAgICBkaXNwOHNjYWxlX3QgZDhzOjQ7 CiB9IGV4dDBmM2FfdGFibGVbMjU2XSA9IHsKLSAgICBbMHgwMF0gPSB7IC5zaW1kX3NpemUgPSBz aW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCi0gICAgWzB4MDFdID0geyAuc2ltZF9zaXpl ID0gc2ltZF9wYWNrZWRfZnAsIC50d29fb3AgPSAxIH0sCisgICAgWzB4MDBdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50LCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bCB9LAorICAg IFsweDAxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4 cyA9IGQ4c192bCB9LAogICAgIFsweDAyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2lu dCB9LAotICAgIFsweDA0IC4uLiAweDA1XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2Zw LCAudHdvX29wID0gMSB9LAorICAgIFsweDA0IC4uLiAweDA1XSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDA2XSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwIH0sCiAgICAgWzB4MDggLi4uIDB4MDldID0g eyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC50d29fb3AgPSAxIH0sCiAgICAgWzB4MGEg Li4uIDB4MGJdID0geyAuc2ltZF9zaXplID0gc2ltZF9zY2FsYXJfb3BjIH0sCkBAIC04MDY3LDYg KzgwNjksOSBAQCB4ODZfZW11bGF0ZSgKICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZiwgMHhmMik6IC8qIHZwc2xsZCB4bW0vbTEyOCxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmMyk6IC8qIHZwc2xscSB4bW0vbTEyOCxb eHl6XW1tLFt4eXpdbW17a30gKi8KICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgu YnIsIEVYQ19VRCk7CisgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF82NigweDBmMzgsIDB4MGMpOiAvKiB2cGVybWlscHMgW3h5el1tbS9tZW0sW3h5 el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwg MHgwZCk6IC8qIHZwZXJtaWxwZCBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAg ICAgICAgZmF1bHRfc3VwcHJlc3Npb24gPSBmYWxzZTsKICAgICAgICAgaWYgKCBiID09IDB4ZTIg KQogICAgICAgICAgICAgZ290byBhdng1MTJmX25vX3NhZTsKQEAgLTg0MTIsNiArODQxNywxMiBA QCB4ODZfZW11bGF0ZSgKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCF2ZXgubCB8fCB2 ZXgudywgRVhDX1VEKTsKICAgICAgICAgZ290byBzaW1kXzBmX2F2eDI7CiAKKyAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDE2KTogLyogdnBlcm1we3MsZH0ge3ksen1tbS9t ZW0se3ksen1tbSx7eSx6fW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4 MGYzOCwgMHgzNik6IC8qIHZwZXJte2QscX0ge3ksen1tbS9tZW0se3ksen1tbSx7eSx6fW1te2t9 ICovCisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZighZXZleC5sciwgRVhDX1VEKTsKKyAg ICAgICAgZmF1bHRfc3VwcHJlc3Npb24gPSBmYWxzZTsKKyAgICAgICAgZ290byBhdng1MTJmX25v X3NhZTsKKwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzOCwgMHgyMCk6IC8qIHZw bW92c3hidyB4bW0vbWVtLHt4LHl9bW0gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82Nigw eDBmMzgsIDB4MjEpOiAvKiB2cG1vdnN4YmQgeG1tL21lbSx7eCx5fW1tICovCiAgICAgY2FzZSBY ODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDIyKTogLyogdnBtb3ZzeGJxIHhtbS9tZW0se3gs eX1tbSAqLwpAQCAtODYxNiw2ICs4NjI3LDcgQEAgeDg2X2VtdWxhdGUoCiAKICAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDc1KTogLyogdnBlcm1pMntiLHd9IFt4eXpdbW0v bWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82Nigw eDBmMzgsIDB4N2QpOiAvKiB2cGVybXQye2Isd30gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1t e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg4ZCk6IC8qIHZw ZXJte2Isd30gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgICAgIGlmICgg IWV2ZXgudyApCiAgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJfdmJt aSk7CiAgICAgICAgIGVsc2UKQEAgLTkwNDIsNiArOTA1NCwxMiBAQCB4ODZfZW11bGF0ZSgKICAg ICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCF2ZXgubCB8fCAhdmV4LncsIEVYQ19VRCk7CiAg ICAgICAgIGdvdG8gc2ltZF8wZl9pbW04X2F2eDI7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VW RVhfNjYoMHgwZjNhLCAweDAwKTogLyogdnBlcm1xICRpbW04LHt5LHp9bW0vbWVtLHt5LHp9bW17 a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDAxKTogLyogdnBl cm1wZCAkaW1tOCx7eSx6fW1tL21lbSx7eSx6fW1te2t9ICovCisgICAgICAgIGdlbmVyYXRlX2V4 Y2VwdGlvbl9pZighZXZleC5sciB8fCAhZXZleC53LCBFWENfVUQpOworICAgICAgICBmYXVsdF9z dXBwcmVzc2lvbiA9IGZhbHNlOworICAgICAgICBnb3RvIGF2eDUxMmZfaW1tOF9ub19zYWU7CisK ICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4MzgpOiAvKiB2aW5zZXJ0aTEy OCAkaW1tOCx4bW0vbTEyOCx5bW0seW1tICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYo MHgwZjNhLCAweDM5KTogLyogdmV4dHJhY3RpMTI4ICRpbW04LHltbSx4bW0vbTEyOCAqLwogICAg IGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzYSwgMHg0Nik6IC8qIHZwZXJtMmkxMjggJGlt bTgseW1tL20yNTYseW1tLHltbSAqLwpAQCAtOTA2MSw2ICs5MDc5LDEyIEBAIHg4Nl9lbXVsYXRl KAogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYodmV4LncsIEVYQ19VRCk7CiAgICAgICAg IGdvdG8gc2ltZF8wZl9pbW04X2F2eDsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82Nigw eDBmM2EsIDB4MDQpOiAvKiB2cGVybWlscHMgJGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MDUpOiAvKiB2cGVybWls cGQgJGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgICAgICBnZW5lcmF0ZV9leGNl cHRpb25faWYoZXZleC53ICE9IChiICYgMSksIEVYQ19VRCk7CisgICAgICAgIGZhdWx0X3N1cHBy ZXNzaW9uID0gZmFsc2U7CisgICAgICAgIGdvdG8gYXZ4NTEyZl9pbW04X25vX3NhZTsKKwogICAg IGNhc2UgWDg2RU1VTF9PUENfNjYoMHgwZjNhLCAweDA4KTogLyogcm91bmRwcyAkaW1tOCx4bW0v bTEyOCx4bW0gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDXzY2KDB4MGYzYSwgMHgwOSk6IC8qIHJv dW5kcGQgJGltbTgseG1tL20xMjgseG1tICovCiAgICAgY2FzZSBYODZFTVVMX09QQ182NigweDBm M2EsIDB4MGEpOiAvKiByb3VuZHNzICRpbW04LHhtbS9tMTI4LHhtbSAqLwoKCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==