From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v4 37/44] x86emul: support AVX512{F, BW, VBMI} permute insns Date: Tue, 25 Sep 2018 07:49:55 -0600 Message-ID: <5BAA3D0302000078001EBB66@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BAA34B502000078001EB9B6@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 1g4nj0-0001EK-Jf for xen-devel@lists.xenproject.org; Tue, 25 Sep 2018 13:50:02 +0000 In-Reply-To: <5BAA34B502000078001EB9B6@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 U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KdjQ6IE5l dy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4LmMKKysrIGIvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYwpAQCAtMTY2LDYgKzE2NiwxMCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9hbGxbXSA9CiAgICAgSU5TTihwY21wdSwg ICAgICAgIDY2LCAwZjNhLCAxZSwgICAgdmwsICAgICBkcSwgdmwpLAogICAgIElOU04ocGVybWky LCAgICAgICA2NiwgMGYzOCwgNzYsICAgIHZsLCAgICAgZHEsIHZsKSwKICAgICBJTlNOKHBlcm1p MiwgICAgICAgNjYsIDBmMzgsIDc3LCAgICB2bCwgICAgIHNkLCB2bCksCisgICAgSU5TTihwZXJt aWxwZCwgICAgIDY2LCAwZjM4LCAwZCwgICAgdmwsICAgICAgcSwgdmwpLAorICAgIElOU04ocGVy bWlscGQsICAgICA2NiwgMGYzYSwgMDUsICAgIHZsLCAgICAgIHEsIHZsKSwKKyAgICBJTlNOKHBl cm1pbHBzLCAgICAgNjYsIDBmMzgsIDBjLCAgICB2bCwgICAgICBkLCB2bCksCisgICAgSU5TTihw ZXJtaWxwcywgICAgIDY2LCAwZjNhLCAwNCwgICAgdmwsICAgICAgZCwgdmwpLAogICAgIElOU04o cGVybXQyLCAgICAgICA2NiwgMGYzOCwgN2UsICAgIHZsLCAgICAgZHEsIHZsKSwKICAgICBJTlNO KHBlcm10MiwgICAgICAgNjYsIDBmMzgsIDdmLCAgICB2bCwgICAgIHNkLCB2bCksCiAgICAgSU5T TihwbWF4cywgICAgICAgIDY2LCAwZjM4LCAzZCwgICAgdmwsICAgICBkcSwgdmwpLApAQCAtMjY4 LDYgKzI3MiwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9ubzEyOFtdCiAg ICAgSU5TTihpbnNlcnRmMzJ4NCwgICAgNjYsIDBmM2EsIDE4LCBlbF80LCAgZCwgdmwpLAogICAg IElOU04oaW5zZXJ0aTMyeDQsICAgIDY2LCAwZjNhLCAzOCwgZWxfNCwgIGQsIHZsKSwKICAgICBJ TlNOKG1vdmRkdXAsICAgICAgICBmMiwgICAwZiwgMTIsIHZsLCBxX25iLCB2bCksCisgICAgSU5T TihwZXJtLCAgICAgICAgICAgNjYsIDBmMzgsIDM2LCB2bCwgICBkcSwgdmwpLAorICAgIElOU04o cGVybSwgICAgICAgICAgIDY2LCAwZjM4LCAxNiwgdmwsICAgc2QsIHZsKSwKKyAgICBJTlNOKHBl cm1wZCwgICAgICAgICA2NiwgMGYzYSwgMDEsIHZsLCAgICBxLCB2bCksCisgICAgSU5TTihwZXJt cSwgICAgICAgICAgNjYsIDBmM2EsIDAwLCB2bCwgICAgcSwgdmwpLAogICAgIElOU04oc2h1ZmYz Mng0LCAgICAgIDY2LCAwZjNhLCAyMywgdmwsICAgIGQsIHZsKSwKICAgICBJTlNOKHNodWZmNjR4 MiwgICAgICA2NiwgMGYzYSwgMjMsIHZsLCAgICBxLCB2bCksCiAgICAgSU5TTihzaHVmaTMyeDQs ICAgICAgNjYsIDBmM2EsIDQzLCB2bCwgICAgZCwgdmwpLApAQCAtMzA2LDYgKzMxNCw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJid19hbGxbXQogICAgIElOU04ocGNtcGd0Yiwg ICAgIDY2LCAgIDBmLCA2NCwgICAgdmwsICAgIGIsIHZsKSwKICAgICBJTlNOKHBjbXBndHcsICAg ICA2NiwgICAwZiwgNjUsICAgIHZsLCAgICB3LCB2bCksCiAgICAgSU5TTihwY21wdSwgICAgICAg NjYsIDBmM2EsIDNlLCAgICB2bCwgICBidywgdmwpLAorICAgIElOU04ocGVybXcsICAgICAgIDY2 LCAwZjM4LCA4ZCwgICAgdmwsICAgIHcsIHZsKSwKICAgICBJTlNOKHBlcm1pMncsICAgICA2Niwg MGYzOCwgNzUsICAgIHZsLCAgICB3LCB2bCksCiAgICAgSU5TTihwZXJtdDJ3LCAgICAgNjYsIDBm MzgsIDdkLCAgICB2bCwgICAgdywgdmwpLAogICAgIElOU04ocG1hZGR3ZCwgICAgIDY2LCAgIDBm LCBmNSwgICAgdmwsICAgIHcsIHZsKSwKQEAgLTQwMiw2ICs0MTEsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHRlc3QgYXZ4NTEyZHFfNTEyW10KIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVz dCBhdng1MTJfdmJtaV9hbGxbXSA9IHsKKyAgICBJTlNOKHBlcm1iLCAgICAgICAgIDY2LCAwZjM4 LCA4ZCwgdmwsIGIsIHZsKSwKICAgICBJTlNOKHBlcm1pMmIsICAgICAgIDY2LCAwZjM4LCA3NSwg dmwsIGIsIHZsKSwKICAgICBJTlNOKHBlcm10MmIsICAgICAgIDY2LCAwZjM4LCA3ZCwgdmwsIGIs IHZsKSwKIH07Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKKysrIGIvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAtMTgwLDYgKzE4MCw3IEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgICAgZGVmaW5lIGludGVybGVhdmVf aGkoeCwgeSkgQih1bnBja2hwcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgICBkZWZp bmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwg fjApCiAjICAgIGRlZmluZSBzd2FwKHgpIEIoc2h1ZnBzLCBfbWFzaywgeCwgeCwgMGIwMDAxMTAx MSwgdW5kZWYoKSwgfjApCisjICAgIGRlZmluZSBzd2FwMih4KSBCXyh2cGVybWlscHMsIF9tYXNr LCB4LCAwYjAwMDExMDExLCB1bmRlZigpLCB+MCkKICMgICBlbHNlCiAjICAgIGRlZmluZSBicm9h ZGNhc3RfcXVhcnRldCh4KSBCKGJyb2FkY2FzdGYzMng0XywgX21hc2ssIHgsIHVuZGVmKCksIH4w KQogIyAgICBkZWZpbmUgaW5zZXJ0X3BhaXIoeCwgeSwgcCkgXApAQCAtMTk0LDYgKzE5NSwxMCBA QCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAgICAgdmVjX3QgdF8g PSBCKHNodWZfZjMyeDRfLCBfbWFzaywgeCwgeCwgVkVDX1NJWkUgPT0gMzIgPyAwYjAxIDogMGIw MDAxMTAxMSwgdW5kZWYoKSwgfjApOyBcCiAgICAgQihzaHVmcHMsIF9tYXNrLCB0XywgdF8sIDBi MDAwMTEwMTEsIHVuZGVmKCksIH4wKTsgXAogfSkKKyMgICAgZGVmaW5lIHN3YXAyKHgpIEIodnBl cm1pbHBzLCBfbWFzaywgXAorICAgICAgICAgICAgICAgICAgICAgICBCKHNodWZfZjMyeDRfLCBf bWFzaywgeCwgeCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIFZFQ19TSVpFID09IDMyID8g MGIwMSA6IDBiMDAwMTEwMTEsIHVuZGVmKCksIH4wKSwgXAorICAgICAgICAgICAgICAgICAgICAg ICAwYjAwMDExMDExLCB1bmRlZigpLCB+MCkKICMgICBlbmRpZgogIyAgZWxpZiBGTE9BVF9TSVpF ID09IDgKICMgICBpZiBWRUNfU0laRSA+PSAzMgpAQCAtMjI2LDYgKzIzMSw3IEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgICAgZGVmaW5lIGludGVybGVhdmVf aGkoeCwgeSkgQih1bnBja2hwZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgICBkZWZp bmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwg fjApCiAjICAgIGRlZmluZSBzd2FwKHgpIEIoc2h1ZnBkLCBfbWFzaywgeCwgeCwgMGIwMSwgdW5k ZWYoKSwgfjApCisjICAgIGRlZmluZSBzd2FwMih4KSBCXyh2cGVybWlscGQsIF9tYXNrLCB4LCAw YjAxLCB1bmRlZigpLCB+MCkKICMgICBlbHNlCiAjICAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgs IHkpIEIodnBlcm1pMnZhcnBkLCBfbWFzaywgeCwgaW50ZXJsZWF2ZV9oaSwgeSwgfjApCiAjICAg IGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpIEIodnBlcm10MnZhcnBkLCBfbWFzaywgaW50ZXJs ZWF2ZV9sbywgeCwgeSwgfjApCkBAIC0yMzMsNiArMjM5LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICB2ZWNfdCB0XyA9IEIoc2h1Zl9mNjR4Ml8sIF9t YXNrLCB4LCB4LCBWRUNfU0laRSA9PSAzMiA/IDBiMDEgOiAwYjAwMDExMDExLCB1bmRlZigpLCB+ MCk7IFwKICAgICBCKHNodWZwZCwgX21hc2ssIHRfLCB0XywgMGIwMTAxMDEwMSwgdW5kZWYoKSwg fjApOyBcCiB9KQorIyAgICBkZWZpbmUgc3dhcDIoeCkgQih2cGVybWlscGQsIF9tYXNrLCBcCisg ICAgICAgICAgICAgICAgICAgICAgIEIoc2h1Zl9mNjR4Ml8sIF9tYXNrLCB4LCB4LCBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgVkVDX1NJWkUgPT0gMzIgPyAwYjAxIDogMGIwMDAxMTAxMSwg dW5kZWYoKSwgfjApLCBcCisgICAgICAgICAgICAgICAgICAgICAgIDBiMDEwMTAxMDEsIHVuZGVm KCksIH4wKQogIyAgIGVuZGlmCiAjICBlbmRpZgogIyBlbmRpZgpAQCAtMzk5LDYgKzQwOSw3IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQihzaHVmX2kzMng0XywgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCko eCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUNfU0laRSA9PSAzMiA/IDBi MDEgOiAwYjAwMDExMDExLCAodnNpX3QpdW5kZWYoKSwgfjApLCBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDBiMDAwMTEwMTEsICh2c2lfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5l IHN3YXAyKHgpICgodmVjX3QpQl8ocGVybXZhcnNpLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90 KShpbnYgLSAxKSwgKHZzaV90KXVuZGVmKCksIH4wKSkKICMgIGVuZGlmCiAjICBkZWZpbmUgbWl4 KHgsIHkpICgodmVjX3QpQihtb3ZkcWEzMl8sIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkp LCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMGIwMTAxMDEwMTAxMDEwMTAxICYg KCgxIDw8IEVMRU1fQ09VTlQpIC0gMSkpKSkKQEAgLTQzNiw4ICs0NDcsMTcgQEAgc3RhdGljIGlu bGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAodnNpX3QpQihzaHVmX2k2NHgyXywgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeCks IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDX1NJWkUgPT0gMzIg PyAwYjAxIDogMGIwMDAxMTAxMSwgKHZkaV90KXVuZGVmKCksIH4wKSwgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwYjAxMDAxMTEwLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgIGRl ZmluZSBzd2FwMih4KSAoKHZlY190KUIocGVybXZhcmRpLCBfbWFzaywgKHZkaV90KSh4KSwgKHZk aV90KShpbnYgLSAxKSwgKHZkaV90KXVuZGVmKCksIH4wKSkKICMgIGVuZGlmCiAjICBkZWZpbmUg bWl4KHgsIHkpICgodmVjX3QpQihtb3ZkcWE2NF8sIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3Qp KHkpLCAwYjAxMDEwMTAxKSkKKyMgIGlmIFZFQ19TSVpFID09IDMyCisjICAgZGVmaW5lIHN3YXAz KHgpICgodmVjX3QpQl8ocGVybWRpLCBfbWFzaywgKHZkaV90KSh4KSwgMGIwMDAxMTAxMSwgKHZk aV90KXVuZGVmKCksIH4wKSkKKyMgIGVsaWYgVkVDX1NJWkUgPT0gNjQKKyMgICBkZWZpbmUgc3dh cDMoeCkgKHsgXAorICAgIHZkaV90IHRfID0gQl8ocGVybWRpLCBfbWFzaywgKHZkaV90KSh4KSwg MGIwMDAxMTAxMSwgKHZkaV90KXVuZGVmKCksIH4wKTsgXAorICAgIEIoc2h1Zl9pNjR4Ml8sIF9t YXNrLCB0XywgdF8sIDBiMDEwMDExMTAsICh2ZGlfdCl1bmRlZigpLCB+MCk7IFwKK30pCisjICBl bmRpZgogIyBlbmRpZgogIyBpZiBJTlRfU0laRSA9PSA0CiAjICBkZWZpbmUgbWF4KHgsIHkpIEIo cG1heHNkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCkBAIC00ODMsNiArNTAzLDkgQEAgc3Rh dGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyAgZGVmaW5lIHNocmluazEo eCkgKChoYWxmX3QpQihwbW92d2IsIF9tYXNrLCAodmhpX3QpKHgpLCAodnFpX2hhbGZfdCl7fSwg fjApKQogIyAgZGVmaW5lIHNocmluazIoeCkgKChxdWFydGVyX3QpQihwbW92ZGIsIF9tYXNrLCAo dnNpX3QpKHgpLCAodnFpX3F1YXJ0ZXJfdCl7fSwgfjApKQogIyAgZGVmaW5lIHNocmluazMoeCkg KChlaWdodGhfdClCKHBtb3ZxYiwgX21hc2ssICh2ZGlfdCkoeCksICh2cWlfZWlnaHRoX3Qpe30s IH4wKSkKKyMgIGlmZGVmIF9fQVZYNTEyVkJNSV9fCisjICAgZGVmaW5lIHN3YXAyKHgpICgodmVj X3QpQihwZXJtdmFycWksIF9tYXNrLCAodnFpX3QpKHgpLCAodnFpX3QpKGludiAtIDEpLCAodnFp X3QpdW5kZWYoKSwgfjApKQorIyAgZW5kaWYKICMgZWxpZiBJTlRfU0laRSA9PSAyIHx8IFVJTlRf U0laRSA9PSAyCiAjICBkZWZpbmUgYnJvYWRjYXN0KHgpICh7IFwKICAgICB2ZWNfdCB0XzsgXApA QCAtNTExLDYgKzUzNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190 IGIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwYjAxMDEwMTAxMDEwMTAxMDEwMTAx MDEwMTAxMDEwMTAxICYgQUxMX1RSVUUpKSkKICMgIGRlZmluZSBzaHJpbmsxKHgpICgoaGFsZl90 KUIocG1vdmR3LCBfbWFzaywgKHZzaV90KSh4KSwgKHZoaV9oYWxmX3Qpe30sIH4wKSkKICMgIGRl ZmluZSBzaHJpbmsyKHgpICgocXVhcnRlcl90KUIocG1vdnF3LCBfbWFzaywgKHZkaV90KSh4KSwg KHZoaV9xdWFydGVyX3Qpe30sIH4wKSkKKyMgIGRlZmluZSBzd2FwMih4KSAoKHZlY190KUIocGVy bXZhcmhpLCBfbWFzaywgKHZoaV90KSh4KSwgKHZoaV90KShpbnYgLSAxKSwgKHZoaV90KXVuZGVm KCksIH4wKSkKICMgZW5kaWYKICMgaWYgSU5UX1NJWkUgPT0gMQogIyAgZGVmaW5lIG1heCh4LCB5 KSAoKHZlY190KUIocG1heHNiLCBfbWFzaywgKHZxaV90KSh4KSwgKHZxaV90KSh5KSwgKHZxaV90 KXVuZGVmKCksIH4wKSkKQEAgLTEzMTksNiArMTM0MywxMiBAQCBpbnQgc2ltZF90ZXN0KHZvaWQp CiAgICAgaWYgKCAhZXEoc3dhcDIoc3JjKSwgaW52KSApIHJldHVybiBfX0xJTkVfXzsKICNlbmRp ZgogCisjaWZkZWYgc3dhcDMKKyAgICB0b3VjaChzcmMpOworICAgIGlmICggIWVxKHN3YXAzKHNy YyksIGludikgKSByZXR1cm4gX19MSU5FX187CisgICAgdG91Y2goc3JjKTsKKyNlbmRpZgorCiAj aWZkZWYgYnJvYWRjYXN0CiAgICAgaWYgKCAhZXEoYnJvYWRjYXN0KEVMRU1fQ09VTlQgKyAxKSwg c3JjICsgaW52KSApIHJldHVybiBfX0xJTkVfXzsKICNlbmRpZgotLS0gYS90b29scy90ZXN0cy94 ODZfZW11bGF0b3Ivc2ltZC5oCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgK QEAgLTI3NSw2ICsyNzUsOCBAQCBPVlIobW92bHBzKTsKIE9WUl9WRlAobW92bnQpOwogT1ZSX1ZG UChtb3Z1KTsKIE9WUl9GUChtdWwpOworT1ZSX1ZGUChwZXJtKTsKK09WUl9WRlAocGVybWlsKTsK IE9WUl9WRlAoc2h1Zik7CiBPVlJfSU5UKHNsbCk7CiBPVlJfRFEoc2xsdik7CkBAIC0zMzEsNiAr MzMzLDggQEAgT1ZSKG1vdm50ZHEpOwogT1ZSKG1vdm50ZHFhKTsKIE9WUihtb3ZzaGR1cCk7CiBP VlIobW92c2xkdXApOworT1ZSKHBlcm1kKTsKK09WUihwZXJtcSk7CiBPVlIocG1vdnN4YmQpOwog T1ZSKHBtb3ZzeGJxKTsKIE9WUihwbW92c3hkcSk7Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5jCkBAIC00MzQsNyArNDM0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjM4X3Rh YmxlIHsKIH0gZXh0MGYzOF90YWJsZVsyNTZdID0gewogICAgIFsweDAwXSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDAxIC4uLiAweDBi XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCB9LAotICAgIFsweDBjIC4uLiAweDBm XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwIH0sCisgICAgWzB4MGMgLi4uIDB4MGRd ID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC5kOHMgPSBkOHNfdmwgfSwKKyAgICBb MHgwZSAuLi4gMHgwZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCB9LAogICAgIFsw eDEwIC4uLiAweDEyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4 c192bCB9LAogICAgIFsweDEzXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50d29fb3Ag PSAxIH0sCiAgICAgWzB4MTQgLi4uIDB4MTZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf ZnAsIC5kOHMgPSBkOHNfdmwgfSwKQEAgLTQ3Nyw2ICs0NzgsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGV4dDBmMzhfdGFibGUgewogICAgIFsweDdkIC4uLiAweDdlXSA9IHsgLnNpbWRfc2l6ZSA9 IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDdmXSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4OGNdID0geyAu c2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4OGRdID0geyAuc2ltZF9zaXpl ID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4OGVdID0geyAuc2lt ZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAudG9fbWVtID0gMSB9LAogICAgIFsweDkwIC4uLiAw eDkzXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC52c2liID0gMSB9LAogICAgIFsweDk2 IC4uLiAweDk4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZDhzID0gZDhzX3Zs IH0sCkBAIC01MjIsMTAgKzUyNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmM2FfdGFi bGUgewogICAgIHVpbnQ4X3QgZm91cl9vcDoxOwogICAgIGRpc3A4c2NhbGVfdCBkOHM6NDsKIH0g ZXh0MGYzYV90YWJsZVsyNTZdID0gewotICAgIFsweDAwXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf cGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKLSAgICBbMHgwMV0gPSB7IC5zaW1kX3NpemUgPSBz aW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEgfSwKKyAgICBbMHgwMF0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsIH0sCisgICAgWzB4 MDFdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC50d29fb3AgPSAxLCAuZDhzID0g ZDhzX3ZsIH0sCiAgICAgWzB4MDJdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0s Ci0gICAgWzB4MDQgLi4uIDB4MDVdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC50 d29fb3AgPSAxIH0sCisgICAgWzB4MDQgLi4uIDB4MDVdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfZnAsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4MDZdID0geyAu c2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAgfSwKICAgICBbMHgwOCAuLi4gMHgwOV0gPSB7IC5z aW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEgfSwKICAgICBbMHgwYSAuLi4g MHgwYl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl9vcGMgfSwKQEAgLTgwNjIsNiArODA2 NCw5IEBAIHg4Nl9lbXVsYXRlKAogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAw eGYyKTogLyogdnBzbGxkIHhtbS9tMTI4LFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGYzKTogLyogdnBzbGxxIHhtbS9tMTI4LFt4eXpd bW0sW3h5el1tbXtrfSAqLwogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5iciwg RVhDX1VEKTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYzOCwgMHgwYyk6IC8qIHZwZXJtaWxwcyBbeHl6XW1tL21lbSxbeHl6XW1t LFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDBk KTogLyogdnBlcm1pbHBkIFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgICAg ICBmYXVsdF9zdXBwcmVzc2lvbiA9IGZhbHNlOwogICAgICAgICBpZiAoIGIgPT0gMHhlMiApCiAg ICAgICAgICAgICBnb3RvIGF2eDUxMmZfbm9fc2FlOwpAQCAtODQwNiw2ICs4NDExLDEyIEBAIHg4 Nl9lbXVsYXRlKAogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIXZleC5sIHx8IHZleC53 LCBFWENfVUQpOwogICAgICAgICBnb3RvIHNpbWRfMGZfYXZ4MjsKIAorICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF82NigweDBmMzgsIDB4MTYpOiAvKiB2cGVybXB7cyxkfSB7eSx6fW1tL21lbSx7 eSx6fW1tLHt5LHp9bW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4 LCAweDM2KTogLyogdnBlcm17ZCxxfSB7eSx6fW1tL21lbSx7eSx6fW1tLHt5LHp9bW17a30gKi8K KyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCFldmV4LmxyLCBFWENfVUQpOworICAgICAg ICBmYXVsdF9zdXBwcmVzc2lvbiA9IGZhbHNlOworICAgICAgICBnb3RvIGF2eDUxMmZfbm9fc2Fl OworCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDIwKTogLyogdnBtb3Zz eGJ3IHhtbS9tZW0se3gseX1tbSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYz OCwgMHgyMSk6IC8qIHZwbW92c3hiZCB4bW0vbWVtLHt4LHl9bW0gKi8KICAgICBjYXNlIFg4NkVN VUxfT1BDX1ZFWF82NigweDBmMzgsIDB4MjIpOiAvKiB2cG1vdnN4YnEgeG1tL21lbSx7eCx5fW1t ICovCkBAIC04NjEwLDYgKzg2MjEsNyBAQCB4ODZfZW11bGF0ZSgKIAogICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF82NigweDBmMzgsIDB4NzUpOiAvKiB2cGVybWkye2Isd30gW3h5el1tbS9tZW0s W3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYz OCwgMHg3ZCk6IC8qIHZwZXJtdDJ7Yix3fSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30g Ki8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDhkKTogLyogdnBlcm17 Yix3fSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAgICAgICAgaWYgKCAhZXZl eC53ICkKICAgICAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMl92Ym1pKTsK ICAgICAgICAgZWxzZQpAQCAtOTAzNiw2ICs5MDQ4LDEyIEBAIHg4Nl9lbXVsYXRlKAogICAgICAg ICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIXZleC5sIHx8ICF2ZXgudywgRVhDX1VEKTsKICAgICAg ICAgZ290byBzaW1kXzBmX2ltbThfYXZ4MjsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82 NigweDBmM2EsIDB4MDApOiAvKiB2cGVybXEgJGltbTgse3ksen1tbS9tZW0se3ksen1tbXtrfSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MDEpOiAvKiB2cGVybXBk ICRpbW04LHt5LHp9bW0vbWVtLHt5LHp9bW17a30gKi8KKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0 aW9uX2lmKCFldmV4LmxyIHx8ICFldmV4LncsIEVYQ19VRCk7CisgICAgICAgIGZhdWx0X3N1cHBy ZXNzaW9uID0gZmFsc2U7CisgICAgICAgIGdvdG8gYXZ4NTEyZl9pbW1fbm9fc2FlOworCiAgICAg Y2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjNhLCAweDM4KTogLyogdmluc2VydGkxMjggJGlt bTgseG1tL20xMjgseW1tLHltbSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYz YSwgMHgzOSk6IC8qIHZleHRyYWN0aTEyOCAkaW1tOCx5bW0seG1tL20xMjggKi8KICAgICBjYXNl IFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4NDYpOiAvKiB2cGVybTJpMTI4ICRpbW04LHlt bS9tMjU2LHltbSx5bW0gKi8KQEAgLTkwNTUsNiArOTA3MywxMiBAQCB4ODZfZW11bGF0ZSgKICAg ICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC53LCBFWENfVUQpOwogICAgICAgICBnb3Rv IHNpbWRfMGZfaW1tOF9hdng7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNh LCAweDA0KTogLyogdnBlcm1pbHBzICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAg ICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDA1KTogLyogdnBlcm1pbHBkICRp bW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9u X2lmKGV2ZXgudyAhPSAoYiAmIDEpLCBFWENfVUQpOworICAgICAgICBmYXVsdF9zdXBwcmVzc2lv biA9IGZhbHNlOworICAgICAgICBnb3RvIGF2eDUxMmZfaW1tX25vX3NhZTsKKwogICAgIGNhc2Ug WDg2RU1VTF9PUENfNjYoMHgwZjNhLCAweDA4KTogLyogcm91bmRwcyAkaW1tOCx4bW0vbTEyOCx4 bW0gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDXzY2KDB4MGYzYSwgMHgwOSk6IC8qIHJvdW5kcGQg JGltbTgseG1tL20xMjgseG1tICovCiAgICAgY2FzZSBYODZFTVVMX09QQ182NigweDBmM2EsIDB4 MGEpOiAvKiByb3VuZHNzICRpbW04LHhtbS9tMTI4LHhtbSAqLwoKCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==