From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 28/49] x86emul: support AVX512{F, ER} reciprocal insns Date: Wed, 19 Dec 2018 07:54:03 -0700 Message-ID: <5C1A5B8B02000078002079AA@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C1A52ED0200007800207865@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 1gZdEg-0006Ip-0v for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 14:54:10 +0000 In-Reply-To: <5C1A52ED0200007800207865@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 QWxzbyBpbmNsdWRlIHRoZSBvbmx5IG90aGVyIEFWWDUxMkVSIGluc24gcGFpciwgVkVYUDJQe0Qs U30uCgpOb3RlIHRoYXQgZGVzcGl0ZSB0aGUgcmVwbGFjZW1lbnQgb2YgdGhlIFNIQSBpbnNucycg dGFibGUgc2xvdHMgdGhlcmUncwpubyBuZWVkIHRvIHNwZWNpYWwgY2FzZSB0aGVpciBkZWNvZGlu ZzogVGhlaXIgaW5zbi1zcGVjaWZpYyBjb2RlIGFscmVhZHkKc2V0cyBvcF9ieXRlcyAoYXMgd2Fz IHJlcXVpcmVkIGR1ZSB0byBzaW1kX290aGVyKSwgYW5kIFR3b09wIGlzIG9mIG5vCnJlbGV2YW5j ZSBmb3IgbGVnYWN5IGVuY29kZWQgU0lNRCBpbnNucy4KClRoZSByYWlzaW5nIG9mICNVRCB3aGVu IEVWRVguTCdMIGlzIDMgZm9yIEFWWDUxMkVSIHNjYWxhciBpbnNucyBpcyBkb25lCnRvIGJlIG9u IHRoZSBzYWZlIHNpZGUuIFRoZSBTRE0gZG9lcyBub3QgY2xhcmlmeSBiZWhhdmlvciB0aGVyZSwg YW5kCml0J3MgZXZlbiBtb3JlIGFtYmlndW91cyBoZXJlICh3aXRob3V0IEFWWDUxMlZMIGluIHRo ZSBwaWN0dXJlKS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KLS0tCnY3OiBGaXggdmVjdG9yIGxlbmd0aCBjaGVjayBmb3IgQVZYNTEyRVIgaW5zbnMuIGVh LnR5cGUgPT0gT1BfKiAtPgogICAgZWEudHlwZSAhPSBPUF8qLiBSZS1iYXNlLgp2NjogUmUtYmFz ZS4gQVZYNTEyRVIgdGVzdHMgbm93IGFsc28gc3VjY2Vzc2Z1bGx5IHJ1bi4KdjU6IE5ldy4KCi0t LSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZQorKysgYi90b29scy90ZXN0cy94 ODZfZW11bGF0b3IvTWFrZWZpbGUKQEAgLTE5LDcgKzE5LDcgQEAgdnBhdGggJS5jICQoWEVOX1JP T1QpL3hlbi9saWIveDg2CiAKIENGTEFHUyArPSAkKENGTEFHU194ZW5pbmNsdWRlKQogCi1TSU1E IDo9IDNkbm93IHNzZSBzc2UyIHNzZTQgYXZ4IGF2eDIgeG9wIGF2eDUxMmYgYXZ4NTEyYncgYXZ4 NTEyZHEKK1NJTUQgOj0gM2Rub3cgc3NlIHNzZTIgc3NlNCBhdnggYXZ4MiB4b3AgYXZ4NTEyZiBh dng1MTJidyBhdng1MTJkcSBhdng1MTJlcgogRk1BIDo9IGZtYTQgZm1hCiBTRyA6PSBhdngyLXNn CiBURVNUQ0FTRVMgOj0gYmxvd2Zpc2ggJChTSU1EKSAkKEZNQSkgJChTRykKQEAgLTc1LDYgKzc1 LDkgQEAgYXZ4NTEyYnctZmx0cyA6PQogYXZ4NTEyZHEtdmVjcyA6PSAkKGF2eDUxMmYtdmVjcykK IGF2eDUxMmRxLWludHMgOj0gJChhdng1MTJmLWludHMpCiBhdng1MTJkcS1mbHRzIDo9ICQoYXZ4 NTEyZi1mbHRzKQorYXZ4NTEyZXItdmVjcyA6PSA2NAorYXZ4NTEyZXItaW50cyA6PQorYXZ4NTEy ZXItZmx0cyA6PSA0IDgKIAogYXZ4NTEyZi1vcG1hc2stdmVjcyA6PSAyCiBhdng1MTJkcS1vcG1h c2stdmVjcyA6PSAxIDIKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDgu YworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCkBAIC0yNzgsMTAg KzI3OCwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9hbGxbXSA9CiAgICAg SU5TTihwdW5wY2tsZHEsICAgIDY2LCAgIDBmLCA2MiwgICAgdmwsICAgICAgZCwgdmwpLAogICAg IElOU04ocHVucGNrbHFkcSwgICA2NiwgICAwZiwgNmMsICAgIHZsLCAgICAgIHEsIHZsKSwKICAg ICBJTlNOKHB4b3IsICAgICAgICAgNjYsICAgMGYsIGVmLCAgICB2bCwgICAgIGRxLCB2bCksCisg ICAgSU5TTihyY3AxNCwgICAgICAgIDY2LCAwZjM4LCA0YywgICAgdmwsICAgICBzZCwgdmwpLAor ICAgIElOU04ocmNwMTQsICAgICAgICA2NiwgMGYzOCwgNGQsICAgIGVsLCAgICAgc2QsIGVsKSwK ICAgICBJTlNOKHJuZHNjYWxlcGQsICAgNjYsIDBmM2EsIDA5LCAgICB2bCwgICAgICBxLCB2bCks CiAgICAgSU5TTihybmRzY2FsZXBzLCAgIDY2LCAwZjNhLCAwOCwgICAgdmwsICAgICAgZCwgdmwp LAogICAgIElOU04ocm5kc2NhbGVzZCwgICA2NiwgMGYzYSwgMGIsICAgIGVsLCAgICAgIHEsIGVs KSwKICAgICBJTlNOKHJuZHNjYWxlc3MsICAgNjYsIDBmM2EsIDBhLCAgICBlbCwgICAgICBkLCBl bCksCisgICAgSU5TTihyc3FydDE0LCAgICAgIDY2LCAwZjM4LCA0ZSwgICAgdmwsICAgICBzZCwg dmwpLAorICAgIElOU04ocnNxcnQxNCwgICAgICA2NiwgMGYzOCwgNGYsICAgIGVsLCAgICAgc2Qs IGVsKSwKICAgICBJTlNOX1BGUChzaHVmLCAgICAgICAgICAgMGYsIGM2KSwKICAgICBJTlNOX0ZQ KHNxcnQsICAgICAgICAgICAgMGYsIDUxKSwKICAgICBJTlNOX0ZQKHN1YiwgICAgICAgICAgICAg MGYsIDVjKSwKQEAgLTQ3Nyw2ICs0ODEsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2 eDUxMmRxXzUxMltdCiAgICAgSU5TTihpbnNlcnRpMzJ4OCwgICAgNjYsIDBmM2EsIDNhLCBlbF84 LCBkLCB2bCksCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZXJfNTEyW10g PSB7CisgICAgSU5TTihleHAyLCAgICA2NiwgMGYzOCwgYzgsIHZsLCBzZCwgdmwpLAorICAgIElO U04ocmNwMjgsICAgNjYsIDBmMzgsIGNhLCB2bCwgc2QsIHZsKSwKKyAgICBJTlNOKHJjcDI4LCAg IDY2LCAwZjM4LCBjYiwgZWwsIHNkLCBlbCksCisgICAgSU5TTihyc3FydDI4LCA2NiwgMGYzOCwg Y2MsIHZsLCBzZCwgdmwpLAorICAgIElOU04ocnNxcnQyOCwgNjYsIDBmMzgsIGNkLCBlbCwgc2Qs IGVsKSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJfdmJtaV9hbGxbXSA9 IHsKICAgICBJTlNOKHBlcm1iLCAgICAgICAgIDY2LCAwZjM4LCA4ZCwgdmwsIGIsIHZsKSwKICAg ICBJTlNOKHBlcm1pMmIsICAgICAgIDY2LCAwZjM4LCA3NSwgdmwsIGIsIHZsKSwKQEAgLTgzNyw1 ICs4NDksNiBAQCB2b2lkIGV2ZXhfZGlzcDhfdGVzdCh2b2lkICppbnN0ciwgc3RydWN0CiAgICAg UlVOKGF2eDUxMmRxLCAxMjgpOwogICAgIFJVTihhdng1MTJkcSwgbm8xMjgpOwogICAgIFJVTihh dng1MTJkcSwgNTEyKTsKKyAgICBSVU4oYXZ4NTEyZXIsIDUxMik7CiAgICAgUlVOKGF2eDUxMl92 Ym1pLCBhbGwpOwogfQotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCisrKyBi L3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTIxMCw5ICsyMTAsMjMgQEAgc3Rh dGljIGlubGluZSB2ZWNfdCBtb3ZsaHBzKHZlY190IHgsIHZlYwogfSkKICNlbGlmIGRlZmluZWQo RkxPQVRfU0laRSkgJiYgVkVDX1NJWkUgPT0gRkxPQVRfU0laRSAmJiBkZWZpbmVkKF9fQVZYNTEy Rl9fKQogIyBpZiBGTE9BVF9TSVpFID09IDQKKyMgIGlmZGVmIF9fQVZYNTEyRVJfXworIyAgIGRl ZmluZSByZWNpcCh4KSBzY2FsYXJfMW9wKHgsICJ2cmNwMjhzcyAlW2luXSwgJVtvdXRdLCAlW291 dF0iKQorIyAgIGRlZmluZSByc3FydCh4KSBzY2FsYXJfMW9wKHgsICJ2cnNxcnQyOHNzICVbaW5d LCAlW291dF0sICVbb3V0XSIpCisjICBlbHNlCisjICAgZGVmaW5lIHJlY2lwKHgpIHNjYWxhcl8x b3AoeCwgInZyY3AxNHNzICVbaW5dLCAlW291dF0sICVbb3V0XSIpCisjICAgZGVmaW5lIHJzcXJ0 KHgpIHNjYWxhcl8xb3AoeCwgInZyc3FydDE0c3MgJVtpbl0sICVbb3V0XSwgJVtvdXRdIikKKyMg IGVuZGlmCiAjICBkZWZpbmUgc3FydCh4KSBzY2FsYXJfMW9wKHgsICJ2c3FydHNzICVbaW5dLCAl W291dF0sICVbb3V0XSIpCiAjICBkZWZpbmUgdHJ1bmMoeCkgc2NhbGFyXzFvcCh4LCAidnJuZHNj YWxlc3MgJDBiMTAxMSwgJVtpbl0sICVbb3V0XSwgJVtvdXRdIikKICMgZWxpZiBGTE9BVF9TSVpF ID09IDgKKyMgIGlmZGVmIF9fQVZYNTEyRVJfXworIyAgIGRlZmluZSByZWNpcCh4KSBzY2FsYXJf MW9wKHgsICJ2cmNwMjhzZCAlW2luXSwgJVtvdXRdLCAlW291dF0iKQorIyAgIGRlZmluZSByc3Fy dCh4KSBzY2FsYXJfMW9wKHgsICJ2cnNxcnQyOHNkICVbaW5dLCAlW291dF0sICVbb3V0XSIpCisj ICBlbHNlCisjICAgZGVmaW5lIHJlY2lwKHgpIHNjYWxhcl8xb3AoeCwgInZyY3AxNHNkICVbaW5d LCAlW291dF0sICVbb3V0XSIpCisjICAgZGVmaW5lIHJzcXJ0KHgpIHNjYWxhcl8xb3AoeCwgInZy c3FydDE0c2QgJVtpbl0sICVbb3V0XSwgJVtvdXRdIikKKyMgIGVuZGlmCiAjICBkZWZpbmUgc3Fy dCh4KSBzY2FsYXJfMW9wKHgsICJ2c3FydHNkICVbaW5dLCAlW291dF0sICVbb3V0XSIpCiAjICBk ZWZpbmUgdHJ1bmMoeCkgc2NhbGFyXzFvcCh4LCAidnJuZHNjYWxlc2QgJDBiMTAxMSwgJVtpbl0s ICVbb3V0XSwgJVtvdXRdIikKICMgZW5kaWYKQEAgLTI2Myw2ICsyNzcsMTMgQEAgc3RhdGljIGlu bGluZSB2ZWNfdCBtb3ZsaHBzKHZlY190IHgsIHZlYwogIyAgZGVmaW5lIG1heCh4LCB5KSBCUl8o bWF4cHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgIGRlZmluZSBtaW4oeCwgeSkgQlJf KG1pbnBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBkZWZpbmUgbWl4KHgsIHkpIEIo bW92YXBzLCBfbWFzaywgeCwgeSwgKDBiMDEwMTAxMDEwMTAxMDEwMSAmIEFMTF9UUlVFKSkKKyMg IGlmIFZFQ19TSVpFID09IDY0ICYmIGRlZmluZWQoX19BVlg1MTJFUl9fKQorIyAgIGRlZmluZSBy ZWNpcCh4KSBCUihyY3AyOHBzLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIHJz cXJ0KHgpIEJSKHJzcXJ0MjhwcywgX21hc2ssIHgsIHVuZGVmKCksIH4wKQorIyAgZWxzZQorIyAg IGRlZmluZSByZWNpcCh4KSBCKHJjcDE0cHMsIF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKKyMgICBk ZWZpbmUgcnNxcnQoeCkgQihyc3FydDE0cHMsIF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKKyMgIGVu ZGlmCiAjICBkZWZpbmUgc2hyaW5rMSh4KSBCUl8oY3Z0cGQycHMsIF9tYXNrLCAodmRmX3QpKHgp LCAodnNmX2hhbGZfdCl7fSwgfjApCiAjICBkZWZpbmUgc3FydCh4KSBCUihzcXJ0cHMsIF9tYXNr LCB4LCB1bmRlZigpLCB+MCkKICMgIGRlZmluZSB0cnVuYyh4KSBCUihybmRzY2FsZXBzXywgX21h c2ssIHgsIDBiMTAxMSwgdW5kZWYoKSwgfjApCkBAIC0zMTgsNiArMzM5LDEzIEBAIHN0YXRpYyBp bmxpbmUgdmVjX3QgbW92bGhwcyh2ZWNfdCB4LCB2ZWMKICMgIGRlZmluZSBtYXgoeCwgeSkgQlJf KG1heHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBkZWZpbmUgbWluKHgsIHkpIEJS XyhtaW5wZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgZGVmaW5lIG1peCh4LCB5KSBC KG1vdmFwZCwgX21hc2ssIHgsIHksIDBiMDEwMTAxMDEpCisjICBpZiBWRUNfU0laRSA9PSA2NCAm JiBkZWZpbmVkKF9fQVZYNTEyRVJfXykKKyMgICBkZWZpbmUgcmVjaXAoeCkgQlIocmNwMjhwZCwg X21hc2ssIHgsIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSByc3FydCh4KSBCUihyc3FydDI4cGQs IF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKKyMgIGVsc2UKKyMgICBkZWZpbmUgcmVjaXAoeCkgQihy Y3AxNHBkLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIHJzcXJ0KHgpIEIocnNx cnQxNHBkLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICBlbmRpZgogIyAgZGVmaW5lIHNxcnQo eCkgQlIoc3FydHBkLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCiAjICBkZWZpbmUgdHJ1bmMoeCkg QlIocm5kc2NhbGVwZF8sIF9tYXNrLCB4LCAwYjEwMTEsIHVuZGVmKCksIH4wKQogIyAgaWYgVkVD X1NJWkUgPT0gMTYKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaAorKysgYi90 b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5oCkBAIC0xNzgsMTQgKzE3OCwyMCBAQCBERUNM X09DVEVUKGhhbGYpOwogLyogU2FkbHkgdGhlcmUgYXJlIGEgZmV3IGV4Y2VwdGlvbnMgdG8gdGhl IGdlbmVyYWwgbmFtaW5nIHJ1bGVzLiAqLwogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfYnJvYWRj YXN0ZjMyeDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfYnJvYWRjYXN0ZjMyeDRfNTEyCiAjIGRl ZmluZSBfX2J1aWx0aW5faWEzMl9icm9hZGNhc3RpMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEz Ml9icm9hZGNhc3RpMzJ4NF81MTIKKyMgZGVmaW5lIF9fYnVpbHRpbl9pYTMyX2V4cDJwZDUxMl9t YXNrIF9fYnVpbHRpbl9pYTMyX2V4cDJwZF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9l eHAycHM1MTJfbWFzayBfX2J1aWx0aW5faWEzMl9leHAycHNfbWFzawogIyBkZWZpbmUgX19idWls dGluX2lhMzJfaW5zZXJ0ZjMyeDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfaW5zZXJ0ZjMyeDRf bWFzawogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfaW5zZXJ0ZjMyeDhfNTEyX21hc2sgX19idWls dGluX2lhMzJfaW5zZXJ0ZjMyeDhfbWFzawogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfaW5zZXJ0 ZjY0eDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfaW5zZXJ0ZjY0eDRfbWFzawogIyBkZWZpbmUg X19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfaW5zZXJ0 aTMyeDRfbWFzawogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDhfNTEyX21hc2sg X19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDhfbWFzawogIyBkZWZpbmUgX19idWlsdGluX2lhMzJf aW5zZXJ0aTY0eDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfaW5zZXJ0aTY0eDRfbWFzaworIyBk ZWZpbmUgX19idWlsdGluX2lhMzJfcmNwMjhwZDUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3JjcDI4 cGRfbWFzaworIyBkZWZpbmUgX19idWlsdGluX2lhMzJfcmNwMjhwczUxMl9tYXNrIF9fYnVpbHRp bl9pYTMyX3JjcDI4cHNfbWFzawogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF81 MTJfbWFzayBfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkX21hc2sKICMgZGVmaW5lIF9fYnVpbHRp bl9pYTMyX3JuZHNjYWxlcHNfNTEyX21hc2sgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNr CisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9yc3FydDI4cGQ1MTJfbWFzayBfX2J1aWx0aW5faWEz Ml9yc3FydDI4cGRfbWFzaworIyBkZWZpbmUgX19idWlsdGluX2lhMzJfcnNxcnQyOHBzNTEyX21h c2sgX19idWlsdGluX2lhMzJfcnNxcnQyOHBzX21hc2sKICMgZGVmaW5lIF9fYnVpbHRpbl9pYTMy X3NodWZfZjMyeDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfc2h1Zl9mMzJ4NF9tYXNrCiAjIGRl ZmluZSBfX2J1aWx0aW5faWEzMl9zaHVmX2Y2NHgyXzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3No dWZfZjY0eDJfbWFzawogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9pMzJ4NF81MTJfbWFz ayBfX2J1aWx0aW5faWEzMl9zaHVmX2kzMng0X21hc2sKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2Vt dWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y L3Rlc3RfeDg2X2VtdWxhdG9yLmMKQEAgLTI0LDYgKzI0LDcgQEAgYXNtICggIi5wdXNoc2VjdGlv biAudGVzdCwgXCJheFwiLCBAcHJvZwogI2luY2x1ZGUgImF2eDUxMmYuaCIKICNpbmNsdWRlICJh dng1MTJidy5oIgogI2luY2x1ZGUgImF2eDUxMmRxLmgiCisjaW5jbHVkZSAiYXZ4NTEyZXIuaCIK IAogI2RlZmluZSB2ZXJib3NlIGZhbHNlIC8qIFN3aXRjaCB0byB0cnVlIGZvciBmYXIgbW9yZSBs b2dnaW5nLiAqLwogCkBAIC0xMDYsNiArMTA3LDExIEBAIHN0YXRpYyBib29sIHNpbWRfY2hlY2tf YXZ4NTEyZHFfdmwodm9pZCkKICAgICByZXR1cm4gY3B1X2hhc19hdng1MTJkcSAmJiBjcHVfaGFz X2F2eDUxMnZsOwogfQogCitzdGF0aWMgYm9vbCBzaW1kX2NoZWNrX2F2eDUxMmVyKHZvaWQpCit7 CisgICAgcmV0dXJuIGNwdV9oYXNfYXZ4NTEyZXI7Cit9CisKIHN0YXRpYyBib29sIHNpbWRfY2hl Y2tfYXZ4NTEyYncodm9pZCkKIHsKICAgICByZXR1cm4gY3B1X2hhc19hdng1MTJidzsKQEAgLTMy Nyw2ICszMzMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgQVZYNTEyVkwoRFErVkwg dTY0eDIsICAgIGF2eDUxMmRxLCAgICAgIDE2dTgpLAogICAgIEFWWDUxMlZMKERRK1ZMIHM2NHg0 LCAgICBhdng1MTJkcSwgICAgICAzMmk4KSwKICAgICBBVlg1MTJWTChEUStWTCB1NjR4NCwgICAg YXZ4NTEyZHEsICAgICAgMzJ1OCksCisgICAgU0lNRChBVlg1MTJFUiBmMzIgc2NhbGFyLGF2eDUx MmVyLCAgICAgICAgZjQpLAorICAgIFNJTUQoQVZYNTEyRVIgZjMyeDE2LCAgICBhdng1MTJlciwg ICAgICA2NGY0KSwKKyAgICBTSU1EKEFWWDUxMkVSIGY2NCBzY2FsYXIsYXZ4NTEyZXIsICAgICAg ICBmOCksCisgICAgU0lNRChBVlg1MTJFUiBmNjR4OCwgICAgIGF2eDUxMmVyLCAgICAgIDY0Zjgp LAogI3VuZGVmIEFWWDUxMlZMXwogI3VuZGVmIEFWWDUxMlZMCiAjdW5kZWYgU0lNRF8KLS0tIGEv dG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Ni1lbXVsYXRlLmgKKysrIGIvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL3g4Ni1lbXVsYXRlLmgKQEAgLTEzNCw2ICsxMzQsNyBAQCBzdGF0aWMgaW5s aW5lIGJvb2wgeGNyMF9tYXNrKHVpbnQ2NF90IG1hCiAjZGVmaW5lIGNwdV9oYXNfYm1pMiAgICAg ICBjcC5mZWF0LmJtaTIKICNkZWZpbmUgY3B1X2hhc19hdng1MTJmICAgKGNwLmZlYXQuYXZ4NTEy ZiAgJiYgeGNyMF9tYXNrKDB4ZTYpKQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMmRxICAoY3AuZmVh dC5hdng1MTJkcSAmJiB4Y3IwX21hc2soMHhlNikpCisjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyZXIg IChjcC5mZWF0LmF2eDUxMmVyICYmIHhjcjBfbWFzaygweGU2KSkKICNkZWZpbmUgY3B1X2hhc19h dng1MTJidyAgKGNwLmZlYXQuYXZ4NTEyYncgJiYgeGNyMF9tYXNrKDB4ZTYpKQogI2RlZmluZSBj cHVfaGFzX2F2eDUxMnZsICAoY3AuZmVhdC5hdng1MTJ2bCAmJiB4Y3IwX21hc2soMHhlNikpCiAj ZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX3ZibWkgKGNwLmZlYXQuYXZ4NTEyX3ZibWkgJiYgeGNyMF9t YXNrKDB4ZTYpKQotLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwor KysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwpAQCAtNDcxLDYgKzQ3 MSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmMzhfdGFibGUgewogICAgIFsweDQwXSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsw eDQxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKICAg ICBbMHg0NSAuLi4gMHg0N10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMg PSBkOHNfdmwgfSwKKyAgICBbMHg0Y10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwg LnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmwgfSwKKyAgICBbMHg0ZF0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX3NjYWxhcl92ZXh3LCAuZDhzID0gZDhzX2RxIH0sCisgICAgWzB4NGVdID0geyAuc2lt ZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsIH0sCisg ICAgWzB4NGZdID0geyAuc2ltZF9zaXplID0gc2ltZF9zY2FsYXJfdmV4dywgLmQ4cyA9IGQ4c19k cSB9LAogICAgIFsweDU4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50d29fb3AgPSAx LCAuZDhzID0gMiB9LAogICAgIFsweDU5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50 d29fb3AgPSAxLCAuZDhzID0gMyB9LAogICAgIFsweDVhXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf MTI4LCAudHdvX29wID0gMSwgLmQ4cyA9IDQgfSwKQEAgLTUxMCw3ICs1MTQsMTIgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBleHQwZjM4X3RhYmxlIHsKICAgICBbMHhiZF0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX3NjYWxhcl92ZXh3LCAuZDhzID0gZDhzX2RxIH0sCiAgICAgWzB4YmVdID0geyAuc2lt ZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHhiZl0gPSB7 IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl92ZXh3LCAuZDhzID0gZDhzX2RxIH0sCi0gICAgWzB4 YzggLi4uIDB4Y2RdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciB9LAorICAgIFsweGM4XSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192 bCB9LAorICAgIFsweGM5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIgfSwKKyAgICBbMHhj YV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEsIC5kOHMgPSBk OHNfdmwgfSwKKyAgICBbMHhjYl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl92ZXh3LCAu ZDhzID0gZDhzX2RxIH0sCisgICAgWzB4Y2NdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf ZnAsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsIH0sCisgICAgWzB4Y2RdID0geyAuc2ltZF9z aXplID0gc2ltZF9zY2FsYXJfdmV4dywgLmQ4cyA9IGQ4c19kcSB9LAogICAgIFsweGRiXSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKICAgICBbMHhkYyAu Li4gMHhkZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKICAgICBbMHhmMF0g PSB7IC50d29fb3AgPSAxIH0sCkBAIC0xODczLDYgKzE4ODIsNyBAQCBzdGF0aWMgYm9vbCB2Y3B1 X2hhcygKICNkZWZpbmUgdmNwdV9oYXNfc21hcCgpICAgICAgICB2Y3B1X2hhcyggICAgICAgICA3 LCBFQlgsIDIwLCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFzX2NsZmx1c2hvcHQoKSAgdmNw dV9oYXMoICAgICAgICAgNywgRUJYLCAyMywgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19j bHdiKCkgICAgICAgIHZjcHVfaGFzKCAgICAgICAgIDcsIEVCWCwgMjQsIGN0eHQsIG9wcykKKyNk ZWZpbmUgdmNwdV9oYXNfYXZ4NTEyZXIoKSAgICB2Y3B1X2hhcyggICAgICAgICA3LCBFQlgsIDI3 LCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFzX3NoYSgpICAgICAgICAgdmNwdV9oYXMoICAg ICAgICAgNywgRUJYLCAyOSwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19hdng1MTJidygp ICAgIHZjcHVfaGFzKCAgICAgICAgIDcsIEVCWCwgMzAsIGN0eHQsIG9wcykKICNkZWZpbmUgdmNw dV9oYXNfYXZ4NTEydmwoKSAgICB2Y3B1X2hhcyggICAgICAgICA3LCBFQlgsIDMxLCBjdHh0LCBv cHMpCkBAIC02MTU5LDYgKzYxNjksOCBAQCB4ODZfZW11bGF0ZSgKICAgICBjYXNlIFg4NkVNVUxf T1BDX0VWRVhfNjYoMHgwZjM4LCAweDQ1KTogLyogdnBzcmx2e2QscX0gW3h5el1tbS9tZW0sW3h5 el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwg MHg0Nik6IC8qIHZwc3JhdntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwog ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4NDcpOiAvKiB2cHNsbHZ7ZCxx fSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZjM4LCAweDRjKTogLyogdnJjcDE0cHtzLGR9IFt4eXpdbW0vbWVtLFt4eXpd bW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDRlKTogLyog dnJzcXJ0MTRwe3MsZH0gW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLwogICAgIGF2eDUxMmZfbm9f c2FlOgogICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJmKTsKICAgICAgICAg Z2VuZXJhdGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfTUVNICYmIGV2ZXguYnJzLCBFWENf VUQpOwpAQCAtODg1NCw2ICs4ODY2LDEzIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBnZW5lcmF0 ZV9leGNlcHRpb25faWYodmV4LncsIEVYQ19VRCk7CiAgICAgICAgIGdvdG8gc2ltZF8wZl9hdngy OwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg0ZCk6IC8qIHZyY3Ax NHN7cyxkfSB4bW0vbWVtLHhtbSx4bW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZjM4LCAweDRmKTogLyogdnJzcXJ0MTRze3MsZH0geG1tL21lbSx4bW0seG1te2t9ICov CisgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmYpOworICAgICAgICBnZW5l cmF0ZV9leGNlcHRpb25faWYoZXZleC5icnMsIEVYQ19VRCk7CisgICAgICAgIGF2eDUxMl92bGVu X2NoZWNrKHRydWUpOworICAgICAgICBnb3RvIHNpbWRfem1tOworCiAgICAgY2FzZSBYODZFTVVM X09QQ19WRVhfNjYoMHgwZjM4LCAweDVhKTogLyogdmJyb2FkY2FzdGkxMjggbTEyOCx5bW0gKi8K ICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfTUVNIHx8ICF2ZXgu bCB8fCB2ZXgudywgRVhDX1VEKTsKICAgICAgICAgZ290byBzaW1kXzBmX2F2eDI7CkBAIC05MTAx LDYgKzkxMjAsNyBAQCB4ODZfZW11bGF0ZSgKICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYo MHgwZjM4LCAweGJkKTogLyogdmZubWFkZDIzMXN7cyxkfSB4bW0vbWVtLHhtbSx4bW17a30gKi8K ICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweGJmKTogLyogdmZubXN1YjIz MXN7cyxkfSB4bW0vbWVtLHhtbSx4bW17a30gKi8KICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0 X2hhdmUoYXZ4NTEyZik7CisgICAgc2ltZF96bW1fc2NhbGFyX3NhZToKICAgICAgICAgZ2VuZXJh dGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfUkVHICYmIGV2ZXguYnJzLCBFWENfVUQpOwog ICAgICAgICBpZiAoICFldmV4LmJycyApCiAgICAgICAgICAgICBhdng1MTJfdmxlbl9jaGVjayh0 cnVlKTsKQEAgLTkxMTYsNiArOTEzNiwxOSBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgb3BfYnl0 ZXMgPSAxNjsKICAgICAgICAgZ290byBzaW1kXzBmMzhfY29tbW9uOwogCisgICAgY2FzZSBYODZF TVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHhjOCk6IC8qIHZleHAycHtzLGR9IHptbS9tZW0sem1t e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHhjYSk6IC8qIHZy Y3AyOHB7cyxkfSB6bW0vbWVtLHptbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82 NigweDBmMzgsIDB4Y2MpOiAvKiB2cnNxcnQyOHB7cyxkfSB6bW0vbWVtLHptbXtrfSAqLworICAg ICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJlcik7CisgICAgICAgIGdlbmVyYXRl X2V4Y2VwdGlvbl9pZigoZWEudHlwZSAhPSBPUF9SRUcgfHwgIWV2ZXguYnJzKSAmJiBldmV4Lmxy ICE9IDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENfVUQpOworICAgICAgICBn b3RvIHNpbWRfem1tOworCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHhj Yik6IC8qIHZyY3AyOHN7cyxkfSB4bW0vbWVtLHhtbSx4bW17a30gKi8KKyAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweGNkKTogLyogdnJzcXJ0Mjhze3MsZH0geG1tL21lbSx4 bW0seG1te2t9ICovCisgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmVyKTsK KyAgICAgICAgZ290byBzaW1kX3ptbV9zY2FsYXJfc2FlOworCiAgICAgY2FzZSBYODZFTVVMX09Q QygweDBmMzgsIDB4ZjApOiAvKiBtb3ZiZSBtLHIgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDKDB4 MGYzOCwgMHhmMSk6IC8qIG1vdmJlIHIsbSAqLwogICAgICAgICB2Y3B1X211c3RfaGF2ZShtb3Zi ZSk7Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCkBAIC0xMDMsNiArMTAzLDcgQEAKICNkZWZpbmUgY3B1 X2hhc19hdng1MTJkcSAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FWWDUxMkRRKQog I2RlZmluZSBjcHVfaGFzX3Jkc2VlZCAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf UkRTRUVEKQogI2RlZmluZSBjcHVfaGFzX3NtYXAgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2 X0ZFQVRVUkVfU01BUCkKKyNkZWZpbmUgY3B1X2hhc19hdng1MTJlciAgICAgICAgYm9vdF9jcHVf aGFzKFg4Nl9GRUFUVVJFX0FWWDUxMkVSKQogI2RlZmluZSBjcHVfaGFzX3NoYSAgICAgICAgICAg ICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfU0hBKQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMmJ3 ICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYNTEyQlcpCiAjZGVmaW5lIGNwdV9o YXNfYXZ4NTEydmwgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlg1MTJWTCkKCgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=