From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v5 24/47] x86emul: support AVX512{F, BW} down conversion moves Date: Mon, 19 Nov 2018 03:26:58 -0700 Message-ID: <5BF28FF202000078001FD513@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 1gOglj-00018D-6q for xen-devel@lists.xenproject.org; Mon, 19 Nov 2018 10:27:03 +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 Tm90ZSB0aGF0IHRoZSB2cG1vdnsscyx1c317ZCxxfXcgdGFibGUgZW50cmllcyBpbiBldmV4LWRp c3A4LmMgYXJlCnNsaWdodGx5IGRpZmZlcmVudCBmcm9tIHdoYXQgb25lIHdvdWxkIGV4cGVjdCwg ZHVlIHRvIHRoZW0gcmVxdWlyaW5nCkVWRVguVyB0byBiZSB6ZXJvLgoKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KdjU6IEFsc28gYWRqdXN0IHg4Nl9p bnNuX2lzX21lbV93cml0ZSgpLgp2NDogQWxzbyAjVUQgd2hlbiBldmV4LnogaXMgc2V0IHdpdGgg YSBtZW1vcnkgb3BlcmFuZC4KdjM6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRv ci9ldmV4LWRpc3A4LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDgu YwpAQCAtMTc3LDExICsxNzcsMjYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmZf YWxsW10gPQogICAgIElOU04ocG1heHUsICAgICAgICA2NiwgMGYzOCwgM2YsICAgIHZsLCAgICAg ZHEsIHZsKSwKICAgICBJTlNOKHBtaW5zLCAgICAgICAgNjYsIDBmMzgsIDM5LCAgICB2bCwgICAg IGRxLCB2bCksCiAgICAgSU5TTihwbWludSwgICAgICAgIDY2LCAwZjM4LCAzYiwgICAgdmwsICAg ICBkcSwgdmwpLAorICAgIElOU04ocG1vdmRiLCAgICAgICBmMywgMGYzOCwgMzEsICAgIHZsXzQs ICAgIGIsIHZsKSwKKyAgICBJTlNOKHBtb3ZkdywgICAgICAgZjMsIDBmMzgsIDMzLCAgICB2bF8y LCAgICBiLCB2bCksCisgICAgSU5TTihwbW92cWIsICAgICAgIGYzLCAwZjM4LCAzMiwgICAgdmxf OCwgICAgYiwgdmwpLAorICAgIElOU04ocG1vdnFkLCAgICAgICBmMywgMGYzOCwgMzUsICAgIHZs XzIsIGRfbmIsIHZsKSwKKyAgICBJTlNOKHBtb3ZxdywgICAgICAgZjMsIDBmMzgsIDM0LCAgICB2 bF80LCAgICBiLCB2bCksCisgICAgSU5TTihwbW92c2RiLCAgICAgIGYzLCAwZjM4LCAyMSwgICAg dmxfNCwgICAgYiwgdmwpLAorICAgIElOU04ocG1vdnNkdywgICAgICBmMywgMGYzOCwgMjMsICAg IHZsXzIsICAgIGIsIHZsKSwKKyAgICBJTlNOKHBtb3ZzcWIsICAgICAgZjMsIDBmMzgsIDIyLCAg ICB2bF84LCAgICBiLCB2bCksCisgICAgSU5TTihwbW92c3FkLCAgICAgIGYzLCAwZjM4LCAyNSwg ICAgdmxfMiwgZF9uYiwgdmwpLAorICAgIElOU04ocG1vdnNxdywgICAgICBmMywgMGYzOCwgMjQs ICAgIHZsXzQsICAgIGIsIHZsKSwKICAgICBJTlNOKHBtb3ZzeGJkLCAgICAgNjYsIDBmMzgsIDIx LCAgICB2bF80LCAgICBiLCB2bCksCiAgICAgSU5TTihwbW92c3hicSwgICAgIDY2LCAwZjM4LCAy MiwgICAgdmxfOCwgICAgYiwgdmwpLAogICAgIElOU04ocG1vdnN4d2QsICAgICA2NiwgMGYzOCwg MjMsICAgIHZsXzIsICAgIHcsIHZsKSwKICAgICBJTlNOKHBtb3ZzeHdxLCAgICAgNjYsIDBmMzgs IDI0LCAgICB2bF80LCAgICB3LCB2bCksCiAgICAgSU5TTihwbW92c3hkcSwgICAgIDY2LCAwZjM4 LCAyNSwgICAgdmxfMiwgZF9uYiwgdmwpLAorICAgIElOU04ocG1vdnVzZGIsICAgICBmMywgMGYz OCwgMTEsICAgIHZsXzQsICAgIGIsIHZsKSwKKyAgICBJTlNOKHBtb3Z1c2R3LCAgICAgZjMsIDBm MzgsIDEzLCAgICB2bF8yLCAgICBiLCB2bCksCisgICAgSU5TTihwbW92dXNxYiwgICAgIGYzLCAw ZjM4LCAxMiwgICAgdmxfOCwgICAgYiwgdmwpLAorICAgIElOU04ocG1vdnVzcWQsICAgICBmMywg MGYzOCwgMTUsICAgIHZsXzIsIGRfbmIsIHZsKSwKKyAgICBJTlNOKHBtb3Z1c3F3LCAgICAgZjMs IDBmMzgsIDE0LCAgICB2bF80LCAgICBiLCB2bCksCiAgICAgSU5TTihwbW92enhiZCwgICAgIDY2 LCAwZjM4LCAzMSwgICAgdmxfNCwgICAgYiwgdmwpLAogICAgIElOU04ocG1vdnp4YnEsICAgICA2 NiwgMGYzOCwgMzIsICAgIHZsXzgsICAgIGIsIHZsKSwKICAgICBJTlNOKHBtb3Z6eHdkLCAgICAg NjYsIDBmMzgsIDMzLCAgICB2bF8yLCAgICB3LCB2bCksCkBAIC0yODQsNyArMjk5LDEwIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJid19hbGxbXQogICAgIElOU04ocG1pbnN3LCAg ICAgIDY2LCAgIDBmLCBlYSwgICAgdmwsICAgIHcsIHZsKSwKICAgICBJTlNOKHBtaW51YiwgICAg ICA2NiwgICAwZiwgZGEsICAgIHZsLCAgICBiLCB2bCksCiAgICAgSU5TTihwbWludXcsICAgICAg NjYsIDBmMzgsIDNhLCAgICB2bCwgICAgdywgdmwpLAorICAgIElOU04ocG1vdnN3YiwgICAgIGYz LCAwZjM4LCAyMCwgICAgdmxfMiwgIGIsIHZsKSwKICAgICBJTlNOKHBtb3ZzeGJ3LCAgICA2Niwg MGYzOCwgMjAsICAgIHZsXzIsICBiLCB2bCksCisgICAgSU5TTihwbW92dXN3YiwgICAgZjMsIDBm MzgsIDEwLCAgICB2bF8yLCAgYiwgdmwpLAorICAgIElOU04ocG1vdndiLCAgICAgIGYzLCAwZjM4 LCAzMCwgICAgdmxfMiwgIGIsIHZsKSwKICAgICBJTlNOKHBtb3Z6eGJ3LCAgICA2NiwgMGYzOCwg MzAsICAgIHZsXzIsICBiLCB2bCksCiAgICAgSU5TTihwbXVsaHV3LCAgICAgNjYsICAgMGYsIGU0 LCAgICB2bCwgICAgdywgdmwpLAogICAgIElOU04ocG11bGh3LCAgICAgIDY2LCAgIDBmLCBlNSwg ICAgdmwsICAgIHcsIHZsKSwKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwor KysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCkBAIC0yNzcsNiArMjc3LDE3IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICNlbmRpZgogI2lmIChJ TlRfU0laRSA9PSA0IHx8IFVJTlRfU0laRSA9PSA0IHx8IElOVF9TSVpFID09IDggfHwgVUlOVF9T SVpFID09IDgpICYmIFwKICAgICAgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgKFZFQ19TSVpFID09 IDY0IHx8IGRlZmluZWQoX19BVlg1MTJWTF9fKSkKKyMgaWYgRUxFTV9DT1VOVCA9PSA4IC8qIHZl eHRyYWN0aXszMiw2NH14NCAqLyB8fCBcCisgICAgIChFTEVNX0NPVU5UID09IDE2ICYmIEVMRU1f U0laRSA9PSA0ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKSkgLyogdmV4dHJhY3RpMzJ4OCAqLyB8 fCBcCisgICAgIChFTEVNX0NPVU5UID09IDQgJiYgRUxFTV9TSVpFID09IDggJiYgZGVmaW5lZChf X0FWWDUxMkRRX18pKSAvKiB2ZXh0cmFjdGk2NHgyICovCisjICBkZWZpbmUgbG93X2hhbGYoeCkg KHsgXAorICAgIGhhbGZfdCB0XzsgXAorICAgIGFzbSAoICJ2ZXh0cmFjdGklY1t3XXglY1tuXSAk MCwgJVtzXSwgJVtkXSIgXAorICAgICAgICAgIDogW2RdICI9bSIgKHRfKSBcCisgICAgICAgICAg OiBbc10gInYiICh4KSwgW3ddICJpIiAoRUxFTV9TSVpFICogOCksIFtuXSAiaSIgKEVMRU1fQ09V TlQgLyAyKSApOyBcCisgICAgdF87IFwKK30pCisjIGVuZGlmCiAjIGlmIElOVF9TSVpFID09IDQg fHwgVUlOVF9TSVpFID09IDQKICMgIGRlZmluZSBicm9hZGNhc3QoeCkgKHsgXAogICAgIHZlY190 IHRfOyBcCkBAIC0yOTEsNiArMzAyLDcgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5 dGVfdmVjX3QgYgogfSkKICMgIGRlZmluZSBtaXgoeCwgeSkgKCh2ZWNfdClCKG1vdmRxYTMyXywg X21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgwYjAxMDEwMTAxMDEwMTAxMDEgJiAoKDEgPDwgRUxFTV9DT1VOVCkgLSAxKSkpKQor IyAgZGVmaW5lIHNocmluazEoeCkgKChoYWxmX3QpQihwbW92cWQsIF9tYXNrLCAodmRpX3QpKHgp LCAodnNpX2hhbGZfdCl7fSwgfjApKQogIyBlbGlmIElOVF9TSVpFID09IDggfHwgVUlOVF9TSVpF ID09IDgKICMgIGRlZmluZSBicm9hZGNhc3QoeCkgKHsgXAogICAgIHZlY190IHRfOyBcCkBAIC03 MjAsNiArNzMyLDI3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIK ICMgZW5kaWYKICNlbmRpZgogCisjaWYgVkVDX1NJWkUgPj0gMTYKKworIyBpZiAhZGVmaW5lZChs b3dfaGFsZikgJiYgZGVmaW5lZChIQUxGX1NJWkUpCitzdGF0aWMgaW5saW5lIGhhbGZfdCBsb3df aGFsZih2ZWNfdCB4KQoreworIyAgaWYgSEFMRl9TSVpFIDwgVkVDX1NJWkUKKyAgICBoYWxmX3Qg eTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgRUxFTV9DT1VO VCAvIDI7ICsraSApCisgICAgICAgIHlbaV0gPSB4W2ldOworCisgICAgcmV0dXJuIHk7CisjICBl bHNlCisgICAgcmV0dXJuIHg7CisjICBlbmRpZgorfQorIyBlbmRpZgorCisjZW5kaWYKKwogI2lm IGRlZmluZWQoX19BVlg1MTJGX18pICYmIGRlZmluZWQoRkxPQVRfU0laRSkKICMgaW5jbHVkZSAi c2ltZC1mbWEuYyIKICNlbmRpZgpAQCAtMTA4Nyw2ICsxMTIwLDIxIEBAIGludCBzaW1kX3Rlc3Qo dm9pZCkKIAogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKHdpZGVuMSkgJiYgZGVmaW5lZChzaHJpbmsx KQorICAgIHsKKyAgICAgICAgaGFsZl90IGF1eDEgPSBsb3dfaGFsZihzcmMpLCBhdXgyOworCisg ICAgICAgIHRvdWNoKGF1eDEpOworICAgICAgICB4ID0gd2lkZW4xKGF1eDEpOworICAgICAgICB0 b3VjaCh4KTsKKyAgICAgICAgYXV4MiA9IHNocmluazEoeCk7CisgICAgICAgIHRvdWNoKGF1eDIp OworICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEVMRU1fQ09VTlQgLyAyOyArK2kgKQorICAgICAg ICAgICAgaWYgKCBhdXgyW2ldICE9IHNyY1tpXSApCisgICAgICAgICAgICAgICAgcmV0dXJuIF9f TElORV9fOworICAgIH0KKyNlbmRpZgorCiAjaWZkZWYgZHVwX2xvCiAgICAgdG91Y2goc3JjKTsK ICAgICB4ID0gZHVwX2xvKHNyYyk7Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1k LmgKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaApAQCAtNzAsNiArNzAsMjMg QEAgdHlwZWRlZiBpbnQgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoVgogdHlwZWRlZiBsb25n IGxvbmcgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoVkVDX1NJWkUpKSkgdmRpX3Q7CiAjZW5k aWYKIAorI2lmIFZFQ19TSVpFID49IDE2CisKKyMgaWYgRUxFTV9DT1VOVCA+PSAyCisjICBpZiBW RUNfU0laRSA+IDMyCisjICAgZGVmaW5lIEhBTEZfU0laRSAoVkVDX1NJWkUgLyAyKQorIyAgZWxz ZQorIyAgIGRlZmluZSBIQUxGX1NJWkUgMTYKKyMgIGVuZGlmCit0eXBlZGVmIHR5cGVvZigodmVj X3Qpe31bMF0pIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKEhBTEZfU0laRSkpKSBoYWxmX3Q7 Cit0eXBlZGVmIGNoYXIgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoSEFMRl9TSVpFKSkpIHZx aV9oYWxmX3Q7Cit0eXBlZGVmIHNob3J0IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKEhBTEZf U0laRSkpKSB2aGlfaGFsZl90OwordHlwZWRlZiBpbnQgX19hdHRyaWJ1dGVfXygodmVjdG9yX3Np emUoSEFMRl9TSVpFKSkpIHZzaV9oYWxmX3Q7Cit0eXBlZGVmIGxvbmcgbG9uZyBfX2F0dHJpYnV0 ZV9fKCh2ZWN0b3Jfc2l6ZShIQUxGX1NJWkUpKSkgdmRpX2hhbGZfdDsKKyMgZW5kaWYKKworI2Vu ZGlmCisKICNpZiBWRUNfU0laRSA9PSAxNgogIyBkZWZpbmUgQihuLCBzLCBhLi4uKSAgIF9fYnVp bHRpbl9pYTMyXyAjIyBuICMjIDEyOCAjIyBzKGEpCiAjIGRlZmluZSBCXyhuLCBzLCBhLi4uKSAg X19idWlsdGluX2lhMzJfICMjIG4gIyMgICAgICAgIHMoYSkKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmMKQEAgLTMwNjMsNyArMzA2MywyMiBAQCB4ODZfZGVjb2RlKAogICAgICAgICAg ICAgICAgIGQgfD0gdlNJQjsKICAgICAgICAgICAgIHN0YXRlLT5zaW1kX3NpemUgPSBleHQwZjM4 X3RhYmxlW2JdLnNpbWRfc2l6ZTsKICAgICAgICAgICAgIGlmICggZXZleF9lbmNvZGVkKCkgKQot ICAgICAgICAgICAgICAgIGRpc3A4c2NhbGUgPSBkZWNvZGVfZGlzcDhzY2FsZShleHQwZjM4X3Rh YmxlW2JdLmQ4cywgc3RhdGUpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qCisg ICAgICAgICAgICAgICAgICogVlBNT1ZVUyogYXJlIGlkZW50aWNhbCB0byBWUE1PVlMqIERpc3A4 LXNjYWxpbmctd2lzZSwgYnV0CisgICAgICAgICAgICAgICAgICogdGhlaXIgYXR0cmlidXRlcyBk b24ndCBtYXRjaCB0aG9zZSBvZiB0aGUgdmV4XzY2IGVuY29kZWQKKyAgICAgICAgICAgICAgICAg KiBpbnNucyB3aXRoIHRoZSBzYW1lIGJhc2Ugb3Bjb2Rlcy4gUmF0aGVyIHRoYW4gYWRkaW5nIG5l dworICAgICAgICAgICAgICAgICAqIGNvbHVtbnMgdG8gdGhlIHRhYmxlLCBoYW5kbGUgdGhpcyBo ZXJlIGZvciBub3cuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYgKCBl dmV4LnBmeCAhPSB2ZXhfZjMgfHwgKGIgJiAweGY4KSAhPSAweDEwICkKKyAgICAgICAgICAgICAg ICAgICAgZGlzcDhzY2FsZSA9IGRlY29kZV9kaXNwOHNjYWxlKGV4dDBmMzhfdGFibGVbYl0uZDhz LCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgZGlzcDhzY2FsZSA9IGRlY29kZV9kaXNwOHNjYWxlKGV4dDBmMzhfdGFi bGVbYiArIDB4MTBdLmQ4cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnNpbWRfc2l6 ZSA9IHNpbWRfb3RoZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAg ICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBleHRfMGYzYToKQEAgLTgzMjQsMTAgKzgzMzks MTQgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIG9wX2J5dGVzID0gMTYgPj4gKHBtb3ZfY29udmVy dF9kZWx0YVtiICYgN10gLSB2ZXgubCk7CiAgICAgICAgIGdvdG8gc2ltZF8wZl9pbnQ7CiAKKyAg ICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDEwKTogLyogdnBtb3Z1c3diIFt4 eXpdbW0se3gseX1tbS9tZW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjM4LCAweDIwKTogLyogdnBtb3ZzeGJ3IHt4LHl9bW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDIwKTogLyogdnBtb3Zzd2IgW3h5el1t bSx7eCx5fW1tL21lbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgs IDB4MzApOiAvKiB2cG1vdnp4Yncge3gseX1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MzApOiAvKiB2cG1vdndiIFt4eXpdbW0se3gs eX1tbS9tZW17a30gKi8KICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyYncp OwotICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgaWYgKCBldmV4LnBmeCAhPSB2 ZXhfZjMgKQorICAgICAgICB7CiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwg MHgyMSk6IC8qIHZwbW92c3hiZCB4bW0vbWVtLFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDIyKTogLyogdnBtb3ZzeGJxIHhtbS9tZW0sW3h5el1t bXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MjMpOiAvKiB2 cG1vdnN4d2Qge3gseX1tbS9tZW0sW3h5el1tbXtrfSAqLwpAQCAtODMzOCw3ICs4MzU3LDI4IEBA IHg4Nl9lbXVsYXRlKAogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MzMp OiAvKiB2cG1vdnp4d2Qge3gseX1tbS9tZW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF82NigweDBmMzgsIDB4MzQpOiAvKiB2cG1vdnp4d3EgeG1tL21lbSxbeHl6XW1t e2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHgzNSk6IC8qIHZw bW92enhkcSB7eCx5fW1tL21lbSxbeHl6XW1te2t9ICovCi0gICAgICAgIGdlbmVyYXRlX2V4Y2Vw dGlvbl9pZihldmV4LncgJiYgKGIgJiA3KSA9PSA1LCBFWENfVUQpOworICAgICAgICAgICAgZ2Vu ZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgudyAmJiAoYiAmIDcpID09IDUsIEVYQ19VRCk7CisgICAg ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVY X0YzKDB4MGYzOCwgMHgxMSk6IC8qIHZwbW92dXNkYiBbeHl6XW1tLHhtbS9tZW17a30gKi8KKyAg ICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDEyKTogLyogdnBtb3Z1c3FiIFt4 eXpdbW0seG1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgs IDB4MTMpOiAvKiB2cG1vdnVzZHcgW3h5el1tbSx7eCx5fW1tL21lbXtrfSAqLworICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MTQpOiAvKiB2cG1vdnVzcXcgW3h5el1tbSx4 bW0vbWVte2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgxNSk6 IC8qIHZwbW92dXNxZCBbeHl6XW1tLHt4LHl9bW0vbWVte2t9ICovCisgICAgY2FzZSBYODZFTVVM X09QQ19FVkVYX0YzKDB4MGYzOCwgMHgyMSk6IC8qIHZwbW92c2RiIFt4eXpdbW0seG1tL21lbXtr fSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MjIpOiAvKiB2cG1v dnNxYiBbeHl6XW1tLHhtbS9tZW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMo MHgwZjM4LCAweDIzKTogLyogdnBtb3ZzZHcgW3h5el1tbSx7eCx5fW1tL21lbXtrfSAqLworICAg IGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MjQpOiAvKiB2cG1vdnNxdyBbeHl6 XW1tLHhtbS9tZW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAw eDI1KTogLyogdnBtb3ZzcWQgW3h5el1tbSx7eCx5fW1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2 RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MzEpOiAvKiB2cG1vdmRiIFt4eXpdbW0seG1tL21l bXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MzIpOiAvKiB2 cG1vdnFiIFt4eXpdbW0seG1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9G MygweDBmMzgsIDB4MzMpOiAvKiB2cG1vdmR3IFt4eXpdbW0se3gseX1tbS9tZW17a30gKi8KKyAg ICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDM0KTogLyogdnBtb3ZxdyBbeHl6 XW1tLHhtbS9tZW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAw eDM1KTogLyogdnBtb3ZxZCBbeHl6XW1tLHt4LHl9bW0vbWVte2t9ICovCisgICAgICAgICAgICBn ZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC53IHx8IChlYS50eXBlID09IE9QX01FTSAmJiBldmV4 LnopLCBFWENfVUQpOworICAgICAgICAgICAgZCA9IERzdE1lbSB8IFNyY1JlZyB8IFR3b09wOwor ICAgICAgICB9CiAgICAgICAgIG9wX2J5dGVzID0gMzIgPj4gKHBtb3ZfY29udmVydF9kZWx0YVti ICYgN10gKyAxIC0gZXZleC5scik7CiAgICAgICAgIGVsZW1fYnl0ZXMgPSAoYiAmIDcpIDwgMyA/ IDEgOiAoYiAmIDcpICE9IDUgPyAyIDogNDsKICAgICAgICAgZ290byBhdng1MTJmX25vX3NhZTsK QEAgLTEwMTY0LDYgKzEwMjA0LDEyIEBAIHg4Nl9pbnNuX2lzX21lbV93cml0ZShjb25zdCBzdHJ1 Y3QgeDg2X2UKICAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYsIDB4YWIpOiAgICAgICAgLyogQlRT ICovCiAgICAgY2FzZSBYODZFTVVMX09QQygweDBmLCAweGIzKTogICAgICAgIC8qIEJUUiAqLwog ICAgIGNhc2UgWDg2RU1VTF9PUEMoMHgwZiwgMHhiYik6ICAgICAgICAvKiBCVEMgKi8KKyAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDEwKSAuLi4KKyAgICAgICAgIFg4NkVN VUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDE1KTogLyogVlBNT1ZVUyogKi8KKyAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDIwKSAuLi4KKyAgICAgICAgIFg4NkVNVUxfT1BD X0VWRVhfRjMoMHgwZjM4LCAweDI1KTogLyogVlBNT1ZTKiAqLworICAgIGNhc2UgWDg2RU1VTF9P UENfRVZFWF9GMygweDBmMzgsIDB4MzApIC4uLgorICAgICAgICAgWDg2RU1VTF9PUENfRVZFWF9G MygweDBmMzgsIDB4MzUpOiAvKiBWUE1PVntELFEsV30qICovCiAgICAgICAgIHJldHVybiB0cnVl OwogCiAgICAgY2FzZSAweGQ5OgoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==