From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 49/50] x86emul: add a SHA test case to the harness Date: Fri, 15 Mar 2019 05:08:05 -0600 Message-ID: <5C8B8795020000780021F32C@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C8B7EC0020000780021F10B@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 1h4kh8-0002Fg-Vq for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 11:08:11 +0000 In-Reply-To: <5C8B7EC0020000780021F10B@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 QWxzbyB1c2UgdGhpcyBmb3IgQVZYNTEyVkwgVlBST3tMLFJ9eyxWfUQgYXMgd2VsbCBhcyBzb21l IGZ1cnRoZXIgc2hpZnRzCnRlc3RpbmcuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+Ci0tLQp2ODogTmV3LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxh dG9yL01ha2VmaWxlCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZQpAQCAt MjAsOCArMjAsOSBAQCBTSU1EIDo9IDNkbm93IHNzZSBzc2UyIHNzZTQgYXZ4IGF2eDIgeG9wCiBG TUEgOj0gZm1hNCBmbWEKIFNHIDo9IGF2eDItc2cgYXZ4NTEyZi1zZyBhdng1MTJ2bC1zZwogQUVT IDo9IHNzc2UzLWFlcyBhdngtYWVzIGF2eDItdmFlcyBhdng1MTJidy12YWVzCitTSEEgOj0gc3Nl NC1zaGEgYXZ4LXNoYSBhdng1MTJmLXNoYQogR0YgOj0gc3NlMi1nZiBhdngyLWdmIGF2eDUxMmJ3 LWdmCi1URVNUQ0FTRVMgOj0gYmxvd2Zpc2ggJChTSU1EKSAkKEZNQSkgJChTRykgJChBRVMpICQo R0YpCitURVNUQ0FTRVMgOj0gYmxvd2Zpc2ggJChTSU1EKSAkKEZNQSkgJChTRykgJChBRVMpICQo U0hBKSAkKEdGKQogCiBPUE1BU0sgOj0gYXZ4NTEyZiBhdng1MTJkcSBhdng1MTJidwogCkBAIC0x NDgsNiArMTQ5LDEwIEBAIGRlZmluZSBzaW1kLWFlcy1kZWZzCiAkKDEpLWNmbGFncyA6PSAkKGZv cmVhY2ggdmVjLCQoJChwYXRzdWJzdCAlLWFlcyxzc2UsJCgxKSktdmVjcykgJCgkKHBhdHN1YnN0 ICUtdmFlcywlLCQoMSkpLXZlY3MpLCBcCiAJICAgICAgICAgIi1EXyQodmVjKSAtbWFlcyAkKGFk ZHByZWZpeCAtbSwkKHN1YnN0IC0sJChzcGFjZSksJCgxKSkpICQoY2FsbCBub24tc3NlLCQoMSkp IC1PcyAtRFZFQ19TSVpFPSQodmVjKSIpCiBlbmRlZgorZGVmaW5lIHNpbWQtc2hhLWRlZnMKKyQo MSktY2ZsYWdzIDo9ICQoZm9yZWFjaCB2ZWMsJChzc2UtdmVjcyksIFwKKwkgICAgICAgICAiLURf JCh2ZWMpICQoYWRkcHJlZml4IC1tLCQoc3Vic3QgLSwkKHNwYWNlKSwkKDEpKSkgLU9zIC1EVkVD X1NJWkU9JCh2ZWMpIikKK2VuZGVmCiBkZWZpbmUgc2ltZC1nZi1kZWZzCiAkKDEpLWNmbGFncyA6 PSAkKGZvcmVhY2ggdmVjLCQoJCgxOi1nZj0pLXZlY3MpLCBcCiAJICAgICAgICAgIi1EXyQodmVj KSAtbWdmbmkgLW0kKDE6LWdmPSkgJChjYWxsIG5vbi1zc2UsJCgxKSkgLU9zIC1EVkVDX1NJWkU9 JCh2ZWMpIikKQEAgLTE1OSw2ICsxNjQsNyBAQCBlbmRlZgogJChmb3JlYWNoIGZsYXZvciwkKFNJ TUQpICQoRk1BKSwkKGV2YWwgJChjYWxsIHNpbWQtZGVmcywkKGZsYXZvcikpKSkKICQoZm9yZWFj aCBmbGF2b3IsJChTRyksJChldmFsICQoY2FsbCBzaW1kLXNnLWRlZnMsJChmbGF2b3IpKSkpCiAk KGZvcmVhY2ggZmxhdm9yLCQoQUVTKSwkKGV2YWwgJChjYWxsIHNpbWQtYWVzLWRlZnMsJChmbGF2 b3IpKSkpCiskKGZvcmVhY2ggZmxhdm9yLCQoU0hBKSwkKGV2YWwgJChjYWxsIHNpbWQtc2hhLWRl ZnMsJChmbGF2b3IpKSkpCiAkKGZvcmVhY2ggZmxhdm9yLCQoR0YpLCQoZXZhbCAkKGNhbGwgc2lt ZC1nZi1kZWZzLCQoZmxhdm9yKSkpKQogJChmb3JlYWNoIGZsYXZvciwkKE9QTUFTSyksJChldmFs ICQoY2FsbCBvcG1hc2stZGVmcywkKGZsYXZvcikpKSkKIApAQCAtMjEyLDEwICsyMTgsMTMgQEAg JChhZGRzdWZmaXggLmMsJChTRykpOgogJChhZGRzdWZmaXggLmMsJChBRVMpKToKIAlsbiAtc2Yg c2ltZC1hZXMuYyAkQAogCiskKGFkZHN1ZmZpeCAuYywkKFNIQSkpOgorCWxuIC1zZiBzaW1kLXNo YS5jICRACisKICQoYWRkc3VmZml4IC5jLCQoR0YpKToKIAlsbiAtc2Ygc2ltZC1nZi5jICRACiAK LSQoYWRkc3VmZml4IC5oLCQoU0lNRCkgJChGTUEpICQoU0cpICQoQUVTKSAkKEdGKSk6IHNpbWQu aAorJChhZGRzdWZmaXggLmgsJChTSU1EKSAkKEZNQSkgJChTRykgJChBRVMpICQoU0hBKSAkKEdG KSk6IHNpbWQuaAogCiB4b3AuaCBhdng1MTJmLmg6IHNpbWQtZm1hLmMKIAotLS0gL2Rldi9udWxs CisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLXNoYS5jCkBAIC0wLDAgKzEsMzky IEBACisjZGVmaW5lIElOVF9TSVpFIDQKKworI2luY2x1ZGUgInNpbWQuaCIKK0VOVFJZKHNoYV90 ZXN0KTsKKworI2RlZmluZSBTSEEob3AsIGEuLi4pIF9fYnVpbHRpbl9pYTMyX3NoYSAjIyBvcChh KQorCisjaWZkZWYgX19BVlg1MTJGX18KKyMgZGVmaW5lIEFMTF9UUlVFICh+MFVMTCA+PiAoNjQg LSBFTEVNX0NPVU5UKSkKKyMgZGVmaW5lIGVxKHgsIHkpIChCKHBjbXBlcWQsIF9tYXNrLCB4LCB5 LCAtMSkgPT0gQUxMX1RSVUUpCisjIGRlZmluZSBibGVuZCh4LCB5LCBzZWwpIEIobW92ZHFhMzJf LCBfbWFzaywgeSwgeCwgc2VsKQorIyBkZWZpbmUgcm90X2MoZiwgciwgeCwgbikgQihwcm8gIyMg ZiAjIyBkLCBfbWFzaywgeCwgbiwgdW5kZWYoKSwgfjApCisjIGRlZmluZSByb3RfcyhmLCByLCB4 LCBuKSAoeyAvKiBnY2MgZG9lcyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBicm9hZGNhc3QgKi8gXAor ICAgIHZlY190IHJfOyBcCisgICAgYXNtICggInZwcm8iICNmICJ2ZCAlMiV7MXRvJWMzJX0sICUx LCAlMCIgXAorICAgICAgICAgIDogIj12IiAocl8pIFwKKyAgICAgICAgICA6ICJ2IiAoeCksICJt IiAobiksICJpIiAoRUxFTV9DT1VOVCkgKTsgXAorICAgIHJfOyBcCit9KQorIyBkZWZpbmUgcm90 X3YoZCwgeCwgbikgQihwcm8gIyMgZCAjIyB2ZCwgX21hc2ssIHgsIG4sIHVuZGVmKCksIH4wKQor IyBkZWZpbmUgc2hpZnRfcyhkLCB4LCBuKSAoeyBcCisgICAgdmVjX3Qgcl87IFwKKyAgICBhc20g KCAidnBzIiAjZCAibHZkICUyJXsxdG8lYzMlfSwgJTEsICUwIiBcCisgICAgICAgICAgOiAiPXYi IChyXykgXAorICAgICAgICAgIDogInYiICh4KSwgIm0iIChuKSwgImkiIChFTEVNX0NPVU5UKSAp OyBcCisgICAgcl87IFwKK30pCisjIGRlZmluZSB2c2hpZnQoZCwgeCwgbikgKHsgLyogZ2NjIGRv ZXMgbm90IGFsbG93IG1lbW9yeSBvcGVyYW5kcyAqLyBcCisgICAgdmVjX3Qgcl87IFwKKyAgICBh c20gKCAidnBzIiAjZCAibGRxICUyLCAlMSwgJTAiIFwKKyAgICAgICAgICA6ICI9diIgKHJfKSA6 ICJtIiAoeCksICJpIiAoKG4pICogRUxFTV9TSVpFKSApOyBcCisgICAgcl87IFwKK30pCisjZWxz ZQorIyBkZWZpbmUgdG9fYm9vbChjbXApIChfX2J1aWx0aW5faWEzMl9wbW92bXNrYjEyOChjbXAp ID09IDB4ZmZmZikKKyMgZGVmaW5lIGVxKHgsIHkpIHRvX2Jvb2woKHgpID09ICh5KSkKKyMgZGVm aW5lIGJsZW5kKHgsIHksIHNlbCkgXAorICAgICgodmVjX3QpX19idWlsdGluX2lhMzJfcGJsZW5k dzEyOCgodmhpX3QpKHgpLCAodmhpX3QpKHkpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoc2VsKSAmIDEgPyAweDAzIDogMCkgfCBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgoc2VsKSAmIDIgPyAweDBjIDogMCkgfCBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VsKSAmIDQgPyAweDMwIDogMCkgfCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VsKSAmIDggPyAweGMw IDogMCkpKQorIyBkZWZpbmUgcm90X2MoZiwgciwgeCwgbikgKHNoICMjIGYgIyMgX2MoeCwgbikg fCBzaCAjIyByICMjIF9jKHgsIDMyIC0gKG4pKSkKKyMgZGVmaW5lIHJvdF9zKGYsIHIsIHgsIG4p ICh7IC8qIGdjYyBkb2VzIG5vdCBhbGxvdyBtZW1vcnkgb3BlcmFuZHMgKi8gXAorICAgIHZlY190 IHJfLCB0Xywgbl8gPSAodmVjX3QpeyAzMiB9IC0gKG4pOyBcCisgICAgYXNtICggInBzIiAjZiAi bGQgJTIsICUwOyBwcyIgI3IgImxkICUzLCAlMTsgcG9yICUxLCAlMCIgXAorICAgICAgICAgIDog Ij0meCIgKHJfKSwgIj0meCIgKHRfKSBcCisgICAgICAgICAgOiAibSIgKG4pLCAibSIgKG5fKSwg IjAiICh4KSwgIjEiICh4KSApOyBcCisgICAgcl87IFwKK30pCitzdGF0aWMgaW5saW5lIHVuc2ln bmVkIGludCByb3RsKHVuc2lnbmVkIGludCB4LCB1bnNpZ25lZCBpbnQgbikKK3sKKyAgICByZXR1 cm4gKHggPDwgKG4gJiAweDFmKSkgfCAoeCA+PiAoKDMyIC0gbikgJiAweDFmKSk7Cit9CitzdGF0 aWMgaW5saW5lIHVuc2lnbmVkIGludCByb3RyKHVuc2lnbmVkIGludCB4LCB1bnNpZ25lZCBpbnQg bikKK3sKKyAgICByZXR1cm4gKHggPj4gKG4gJiAweDFmKSkgfCAoeCA8PCAoKDMyIC0gbikgJiAw eDFmKSk7Cit9CisjIGRlZmluZSByb3RfdihkLCB4LCBuKSAoeyBcCisgICAgdmVjX3QgdF87IFwK KyAgICB1bnNpZ25lZCBpbnQgaV87IFwKKyAgICBmb3IgKCBpXyA9IDA7IGlfIDwgRUxFTV9DT1VO VDsgKytpXyApIFwKKyAgICAgICAgdF9baV9dID0gcm90ICMjIGQoKHgpW2lfXSwgKG4pW2lfXSk7 IFwKKyAgICB0XzsgXAorfSkKKyMgZGVmaW5lIHNoaWZ0X3MoZCwgeCwgbikgKHsgXAorICAgIHZl Y190IHJfOyBcCisgICAgYXNtICggInBzIiAjZCAibGQgJTEsICUwIiA6ICI9JngiIChyXykgOiAi bSIgKG4pLCAiMCIgKHgpICk7IFwKKyAgICByXzsgXAorfSkKKyMgZGVmaW5lIHZzaGlmdChkLCB4 LCBuKSBcCisgICAgKHZlY190KShfX2J1aWx0aW5faWEzMl9wcyAjIyBkICMjIGxkcWkxMjgoKHZk aV90KSh4KSwgKG4pICogRUxFTV9TSVpFICogOCkpCisjZW5kaWYKKworI2RlZmluZSBhbGlnbnIo eCwgeSwgbikgKCh2ZWNfdClfX2J1aWx0aW5faWEzMl9wYWxpZ25yMTI4KCh2ZGlfdCkoeCksICh2 ZGlfdCkoeSksIChuKSAqIDgpKQorI2RlZmluZSBoYWRkKHgsIHkpIF9fYnVpbHRpbl9pYTMyX3Bo YWRkZDEyOCh4LCB5KQorI2RlZmluZSByb2xfYyh4LCBuKSByb3RfYyhsLCByLCB4LCBuKQorI2Rl ZmluZSByb2xfcyh4LCBuKSByb3RfcyhsLCByLCB4LCBuKQorI2RlZmluZSByb2xfdih4LCBuLi4u KSByb3RfdihsLCB4LCBuKQorI2RlZmluZSByb3JfYyh4LCBuKSByb3RfYyhyLCBsLCB4LCBuKQor I2RlZmluZSByb3Jfcyh4LCBuKSByb3RfcyhyLCBsLCB4LCBuKQorI2RlZmluZSByb3Jfdih4LCBu Li4uKSByb3RfdihyLCB4LCBuKQorI2RlZmluZSBzaGxfYyh4LCBuKSBfX2J1aWx0aW5faWEzMl9w c2xsZGkxMjgoeCwgbikKKyNkZWZpbmUgc2hsX3MoeCwgbikgc2hpZnRfcyhsLCB4LCBuKQorI2Rl ZmluZSBzaHJfYyh4LCBuKSBfX2J1aWx0aW5faWEzMl9wc3JsZGkxMjgoeCwgbikKKyNkZWZpbmUg c2hyX3MoeCwgbikgc2hpZnRfcyhyLCB4LCBuKQorI2RlZmluZSBzaHVmKHgsIHMpIF9fYnVpbHRp bl9pYTMyX3BzaHVmZCh4LCBzKQorI2RlZmluZSBzd2FwKHgpIHNodWYoeCwgMGIwMDAxMTAxMSkK KyNkZWZpbmUgdnNobCh4LCBuKSB2c2hpZnQobCwgeCwgbikKKyNkZWZpbmUgdnNocih4LCBuKSB2 c2hpZnQociwgeCwgbikKKworc3RhdGljIGlubGluZSB2ZWNfdCBzaGEyNTZfc2lnbWEwKHZlY190 IHcpCit7CisgICAgdmVjX3QgcmVzOworCisgICAgdG91Y2godyk7CisgICAgcmVzID0gcm9yX2Mo dywgNyk7CisgICAgdG91Y2godyk7CisgICAgcmVzIF49IHJvbF9jKHcsIDE0KTsKKyAgICB0b3Vj aCh3KTsKKyAgICByZXMgXj0gc2hyX2ModywgMyk7CisgICAgdG91Y2godyk7CisKKyAgICByZXR1 cm4gcmVzOworfQorCitzdGF0aWMgaW5saW5lIHZlY190IHNoYTI1Nl9zaWdtYTEodmVjX3QgdykK K3sKKyAgICB2ZWNfdCBfMTcgPSB7IDE3IH0sIF8xOSA9IHsgMTkgfSwgXzEwID0geyAxMCB9Owor CisgICAgcmV0dXJuIHJvcl9zKHcsIF8xNykgXiByb3Jfcyh3LCBfMTkpIF4gc2hyX3ModywgXzEw KTsKK30KKworc3RhdGljIGlubGluZSB2ZWNfdCBzaGEyNTZfU2lnbWEwKHZlY190IHcpCit7Cisg ICAgdmVjX3QgcmVzLCBuMSA9IHsgMCwgMCwgMiwgMiB9LCBuMiA9IHsgMCwgMCwgMTMsIDEzIH0s IG4zID0geyAwLCAwLCAxMCwgMTAgfTsKKworICAgIHRvdWNoKG4xKTsKKyAgICByZXMgPSByb3Jf dih3LCBuMSk7CisgICAgdG91Y2gobjIpOworICAgIHJlcyBePSByb3Jfdih3LCBuMik7CisgICAg dG91Y2gobjMpOworCisgICAgcmV0dXJuIHJlcyBeIHJvbF92KHcsIG4zKTsKK30KKworc3RhdGlj IGlubGluZSB2ZWNfdCBzaGEyNTZfU2lnbWExKHZlY190IHcpCit7CisgICAgcmV0dXJuIHJvcl9j KHcsIDYpIF4gcm9yX2ModywgMTEpIF4gcm9sX2ModywgNyk7Cit9CisKK2ludCBzaGFfdGVzdCh2 b2lkKQoreworICAgIHVuc2lnbmVkIGludCBpOworICAgIHZlY190IHNyYywgb25lID0geyAxIH07 CisgICAgdnFpX3QgcmF3ID0ge307CisKKyAgICBmb3IgKCBpID0gMTsgaSA8IFZFQ19TSVpFOyAr K2kgKQorICAgICAgICByYXdbaV0gPSBpOworICAgIHNyYyA9ICh2ZWNfdClyYXc7CisKKyAgICBm b3IgKCBpID0gMDsgaSA8IDI1NjsgaSArPSBWRUNfU0laRSApCisgICAgeworICAgICAgICB2ZWNf dCB4LCB5LCB0bXAsIGhhc2ggPSAtc3JjOworICAgICAgICB2ZWNfdCBhLCBiLCBjLCBkLCBlLCBn LCBoOworICAgICAgICB1bnNpZ25lZCBpbnQgaywgcjsKKworICAgICAgICB0b3VjaChzcmMpOwor ICAgICAgICB4ID0gU0hBKDFtc2cxLCBoYXNoLCBzcmMpOworICAgICAgICB0b3VjaChzcmMpOwor ICAgICAgICB5ID0gaGFzaCBeIGFsaWducihoYXNoLCBzcmMsIDgpOworICAgICAgICB0b3VjaChz cmMpOworCisgICAgICAgIGlmICggIWVxKHgsIHkpICkgcmV0dXJuIF9fTElORV9fOworCisgICAg ICAgIHRvdWNoKHNyYyk7CisgICAgICAgIHggPSBTSEEoMW1zZzIsIGhhc2gsIHNyYyk7CisgICAg ICAgIHRvdWNoKHNyYyk7CisgICAgICAgIHRtcCA9IGhhc2ggXiBhbGlnbnIoc3JjLCBoYXNoLCAx Mik7CisgICAgICAgIHRvdWNoKHRtcCk7CisgICAgICAgIHkgPSByb2xfYyh0bXAsIDEpOworICAg ICAgICB0bXAgPSBoYXNoIF4gYWxpZ25yKHNyYywgeSwgMTIpOworICAgICAgICB0b3VjaCh0bXAp OworICAgICAgICB5ID0gcm9sX2ModG1wLCAxKTsKKworICAgICAgICBpZiAoICFlcSh4LCB5KSAp IHJldHVybiBfX0xJTkVfXzsKKworICAgICAgICB0b3VjaChzcmMpOworICAgICAgICB4ID0gU0hB KDFtc2cyLCBoYXNoLCBzcmMpOworICAgICAgICB0b3VjaChzcmMpOworICAgICAgICB0bXAgPSBy b2xfcyhoYXNoIF4gYWxpZ25yKHNyYywgaGFzaCwgMTIpLCBvbmUpOworICAgICAgICB5ID0gcm9s X3MoaGFzaCBeIGFsaWducihzcmMsIHRtcCwgMTIpLCBvbmUpOworCisgICAgICAgIGlmICggIWVx KHgsIHkpICkgcmV0dXJuIF9fTElORV9fOworCisgICAgICAgIHRvdWNoKHNyYyk7CisgICAgICAg IHggPSBTSEEoMW5leHRlLCBoYXNoLCBzcmMpOworICAgICAgICB0b3VjaChzcmMpOworICAgICAg ICB0b3VjaChoYXNoKTsKKyAgICAgICAgdG1wID0gcm9sX2MoaGFzaCwgMzApOworICAgICAgICB0 bXBbMl0gPSB0bXBbMV0gPSB0bXBbMF0gPSAwOworCisgICAgICAgIGlmICggIWVxKHgsIHNyYyAr IHRtcCkgKSByZXR1cm4gX19MSU5FX187CisKKyAgICAgICAgLyoKKyAgICAgICAgICogU0hBMVJO RFM0CisgICAgICAgICAqCisgICAgICAgICAqIFNSQzEgPSB7IEEwLCBCMCwgQzAsIEQwIH0KKyAg ICAgICAgICogU1JDMiA9IFcnID0geyBXWzBdRTAsIFdbMV0sIFdbMl0sIFdbM10gfQorICAgICAg ICAgKgorICAgICAgICAgKiAoTkIgdGhhdCB0aGUgbm90YXRpb24gaXMgbm90IEMtbGlrZSwgaS5l LiBlbGVtZW50cyBhcmUgbGlzdGVkCisgICAgICAgICAqIGhpZ2gtdG8tbG93IGV2ZXJ5d2hlcmUg aW4gdGhpcyBjb21tZW50LikKKyAgICAgICAgICoKKyAgICAgICAgICogSW4gb3JkZXIgdG8gcGlj ayBhIHNpbXBsZSByb3VuZHMgZnVuY3Rpb24sIGFuIGltbWVkaWF0ZSB2YWx1ZSBvZgorICAgICAg ICAgKiAxIGlzIHVzZWQ7IDMgd291bGQgYWxzbyBiZSBhIHBvc3NpYmlsaXR5LgorICAgICAgICAg KgorICAgICAgICAgKiBBcHBseWluZworICAgICAgICAgKgorICAgICAgICAgKiBBMSA9IFJPTDUo QTApICsgKEIwIF4gQzAgXiBEMCkgKyBXJ1swXSArIEsKKyAgICAgICAgICogRTEgPSBEMAorICAg ICAgICAgKiBEMSA9IEMwCisgICAgICAgICAqIEMxID0gUk9MMzAoQjApCisgICAgICAgICAqIEIx ID0gQTAKKyAgICAgICAgICoKKyAgICAgICAgICogaXRlcmF0aXZlbHkgZm91ciB0aW1lcyBhbmQg cmVzb2x2aW5nIHJvdW5kIHZhcmlhYmxlIHZhbHVlcyB0bworICAgICAgICAgKiBBPG4+IGFuZCBC MCwgQzAsIGFuZCBEMCB3ZSBnZXQKKyAgICAgICAgICoKKyAgICAgICAgICogQTQgPSBST0w1KEEz KSArIChBMiBeIFJPTDMwKEExKSBeIFJPTDMwKEEwKSkgKyBXJ1szXSArIFJPTDMwKEIwKSArIEsK KyAgICAgICAgICogQTMgPSBST0w1KEEyKSArIChBMSBeIFJPTDMwKEEwKSBeIFJPTDMwKEIwKSkg KyBXJ1syXSArICAgICAgIEMwICArIEsKKyAgICAgICAgICogQTIgPSBST0w1KEExKSArIChBMCBe IFJPTDMwKEIwKSBeICAgICAgIEMwICkgKyBXJ1sxXSArICAgICAgIEQwICArIEsKKyAgICAgICAg ICogQTEgPSBST0w1KEEwKSArIChCMCBeICAgICAgIEMwICBeICAgICAgIEQwICkgKyBXJ1swXSAg ICAgICAgICAgICArIEsKKyAgICAgICAgICoKKyAgICAgICAgICogKHJlc3BlY3RpdmUgcGVyLWNv bHVtbiB2YXJpYWJsZSBuYW1lczoKKyAgICAgICAgICogIHkgICAgICAgICBhICAgICAgYiAgICAg ICAgICBjICAgICAgICAgICBkICAgICAgc3JjICAgICAgICAgICBlICAgIGsKKyAgICAgICAgICog KQorICAgICAgICAgKgorICAgICAgICAgKiB3aXRoCisgICAgICAgICAqCisgICAgICAgICAqIEI0 ID0gQTMKKyAgICAgICAgICogQzQgPSBST0wzMChBMikKKyAgICAgICAgICogRDQgPSBST0wzMChB MSkKKyAgICAgICAgICogRTQgPSBST0wzMChBMCkKKyAgICAgICAgICoKKyAgICAgICAgICogYW5k IGhlbmNlCisgICAgICAgICAqCisgICAgICAgICAqIERTVCA9IHsgQTQsIEEzLCBST0wzMChBMiks IFJPTDMwKEExKSB9CisgICAgICAgICAqLworCisgICAgICAgIHRvdWNoKHNyYyk7CisgICAgICAg IHggPSBTSEEoMXJuZHM0LCBoYXNoLCBzcmMsIDEpOworICAgICAgICB0b3VjaChzcmMpOworCisg ICAgICAgIGEgPSB2c2hyKGhhc2gsIDMpOworICAgICAgICBiID0gdnNocihoYXNoLCAyKTsKKyAg ICAgICAgdG91Y2goaGFzaCk7CisgICAgICAgIGQgPSByb2xfYyhoYXNoLCAzMCk7CisgICAgICAg IHRvdWNoKGhhc2gpOworICAgICAgICBkID0gYmxlbmQoZCwgaGFzaCwgMGIwMDExKTsKKyAgICAg ICAgYyA9IHZzaHIoZCwgMSk7CisgICAgICAgIGUgPSB2c2hsKGQsIDEpOworICAgICAgICB0bXAg PSAodmVjX3Qpe307CisgICAgICAgIGsgPSByb2xfYyhTSEEoMXJuZHM0LCB0bXAsIHRtcCwgMSks IDIpWzBdOworCisgICAgICAgIGZvciAoIHIgPSAwOyByIDwgNDsgKytyICkKKyAgICAgICAgewor ICAgICAgICAgICAgeSA9IHJvbF9jKGEsIDUpICsgKGIgXiBjIF4gZCkgKyBzd2FwKHNyYykgKyBl ICsgazsKKworICAgICAgICAgICAgc3dpdGNoICggciApCisgICAgICAgICAgICB7CisgICAgICAg ICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgY1szXSA9IHJvbF9jKHksIDMwKVswXTsKKyAg ICAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgIGNhc2UgMToKKyAg ICAgICAgICAgICAgICBiW3IgKyAyXSA9IHlbcl07CisgICAgICAgICAgICAgICAgLyogZmFsbCB0 aHJvdWdoICovCisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgYVtyICsgMV0g PSB5W3JdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAg ICAgICBzd2l0Y2ggKCByICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgMzoKKyAg ICAgICAgICAgICAgICBpZiAoIGFbM10gIT0geVsyXSApIHJldHVybiBfX0xJTkVfXzsKKyAgICAg ICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAg ICAgICAgICAgICBpZiAoIGFbMl0gIT0geVsxXSApIHJldHVybiBfX0xJTkVfXzsKKyAgICAgICAg ICAgICAgICBpZiAoIGJbM10gIT0geVsxXSApIHJldHVybiBfX0xJTkVfXzsKKyAgICAgICAgICAg ICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg ICAgICBpZiAoIGFbMV0gIT0geVswXSApIHJldHVybiBfX0xJTkVfXzsKKyAgICAgICAgICAgICAg ICBpZiAoIGJbMl0gIT0geVswXSApIHJldHVybiBfX0xJTkVfXzsKKyAgICAgICAgICAgICAgICBp ZiAoIGNbM10gIT0gcm9sX2MoeSwgMzApWzBdICkgcmV0dXJuIF9fTElORV9fOworICAgICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYSA9IGJs ZW5kKHJvbF9jKHksIDMwKSwgeSwgMGIxMTAwKTsKKworICAgICAgICBpZiAoICFlcSh4LCBhKSAp IHJldHVybiBfX0xJTkVfXzsKKworICAgICAgICB0b3VjaChzcmMpOworICAgICAgICB4ID0gU0hB KDI1Nm1zZzEsIGhhc2gsIHNyYyk7CisgICAgICAgIHRvdWNoKHNyYyk7CisgICAgICAgIHkgPSBo YXNoICsgc2hhMjU2X3NpZ21hMChhbGlnbnIoc3JjLCBoYXNoLCA0KSk7CisKKyAgICAgICAgaWYg KCAhZXEoeCwgeSkgKSByZXR1cm4gX19MSU5FX187CisKKyAgICAgICAgdG91Y2goc3JjKTsKKyAg ICAgICAgeCA9IFNIQSgyNTZtc2cyLCBoYXNoLCBzcmMpOworICAgICAgICB0b3VjaChzcmMpOwor ICAgICAgICB0bXAgPSBoYXNoICsgc2hhMjU2X3NpZ21hMShhbGlnbnIoaGFzaCwgc3JjLCA4KSk7 CisgICAgICAgIHkgPSBoYXNoICsgc2hhMjU2X3NpZ21hMShhbGlnbnIodG1wLCBzcmMsIDgpKTsK KworICAgICAgICBpZiAoICFlcSh4LCB5KSApIHJldHVybiBfX0xJTkVfXzsKKworICAgICAgICAv KgorICAgICAgICAgKiBTSEEyNTZSTkRTMgorICAgICAgICAgKgorICAgICAgICAgKiBTUkMxID0g eyBDMCwgRDAsIEcwLCBIMCB9CisgICAgICAgICAqIFNSQzIgPSB7IEEwLCBCMCwgRTAsIEYwIH0K KyAgICAgICAgICogWE1NMCA9IFcnID0geyA/LCA/LCBXSzEsIFdLMCB9CisgICAgICAgICAqCisg ICAgICAgICAqIChOQiB0aGF0IHRoZSBub3RhdGlvbiBhZ2FpbiBpcyBub3QgQy1saWtlLCBpLmUu IGVsZW1lbnRzIGFyZSBsaXN0ZWQKKyAgICAgICAgICogaGlnaC10by1sb3cgZXZlcnl3aGVyZSBp biB0aGlzIGNvbW1lbnQuKQorICAgICAgICAgKgorICAgICAgICAgKiBDaChFLEYsRykgPSAoRSAm IEYpIF4gKH5FICYgRykKKyAgICAgICAgICogTWFqKEEsQixDKSA9IChBICYgQikgXiAoQSAmIEMp IF4gKEIgJiBDKQorICAgICAgICAgKgorICAgICAgICAgKiDDjsKjMChBKSA9IFJPUjIoQSkgXiBS T1IxMyhBKSBeIFJPUjIyKEEpCisgICAgICAgICAqIMOOwqMxKEUpID0gUk9SNihFKSBeIFJPUjEx KEUpIF4gUk9SMjUoRSkKKyAgICAgICAgICoKKyAgICAgICAgICogQXBwbHlpbmcKKyAgICAgICAg ICoKKyAgICAgICAgICogQTEgPSBDaChFMCwgRjAsIEcwKSArIMOOwqMxKEUwKSArIFdLMCArIEgw ICsgTWFqKEEwLCBCMCwgQzApICsgw47CozAoQTApCisgICAgICAgICAqIEIxID0gQTAKKyAgICAg ICAgICogQzEgPSBCMAorICAgICAgICAgKiBEMSA9IEMwCisgICAgICAgICAqIEUxID0gQ2goRTAs IEYwLCBHMCkgKyDDjsKjMShFMCkgKyBXSzAgKyBIMCArIEQwCisgICAgICAgICAqIEYxID0gRTAK KyAgICAgICAgICogRzEgPSBGMAorICAgICAgICAgKiBIMSA9IEcwCisgICAgICAgICAqCisgICAg ICAgICAqIGl0ZXJhdGl2ZWx5IGZvdXIgdGltZXMgYW5kIHJlc29sdmluZyByb3VuZCB2YXJpYWJs ZSB2YWx1ZXMgdG8KKyAgICAgICAgICogQTxuPiAvIEU8bj4gYW5kIEIwLCBDMCwgRDAsIEYwLCBH MCwgYW5kIEgwIHdlIGdldAorICAgICAgICAgKgorICAgICAgICAgKiBBMiA9IENoKEUxLCBFMCwg RjApICsgw47CozEoRTEpICsgV0sxICsgRzAgKyBNYWooQTEsIEEwLCBCMCkgKyDDjsKjMChBMSkK KyAgICAgICAgICogQTEgPSBDaChFMCwgRjAsIEcwKSArIMOOwqMxKEUwKSArIFdLMCArIEgwICsg TWFqKEEwLCBCMCwgQzApICsgw47CozAoQTApCisgICAgICAgICAqIEUyID0gQ2goRTEsIEUwLCBG MCkgKyDDjsKjMShFMSkgKyBXSzEgKyBHMCArIEMwCisgICAgICAgICAqIEUxID0gQ2goRTAsIEYw LCBHMCkgKyDDjsKjMShFMCkgKyBXSzAgKyBIMCArIEQwCisgICAgICAgICAqCisgICAgICAgICAq IHdpdGgKKyAgICAgICAgICoKKyAgICAgICAgICogQjIgPSBBMQorICAgICAgICAgKiBGMiA9IEUx CisgICAgICAgICAqCisgICAgICAgICAqIGFuZCBoZW5jZQorICAgICAgICAgKgorICAgICAgICAg KiBEU1QgPSB7IEEyLCBBMSwgRTIsIEUxIH0KKyAgICAgICAgICoKKyAgICAgICAgICogd2hpY2gg d2UgY2FuIHNpbXBsaWZ5IGEgbGl0dGxlLCBieSBsZXR0aW5nIEEwLCBCMCwgYW5kIEUwIGJlIHpl cm8KKyAgICAgICAgICogYW5kIEYwID0gfkcwLCBhbmQgYnkgdGhlbiB1dGlsaXppbmcKKyAgICAg ICAgICoKKyAgICAgICAgICogQ2goMCwgMCwgeCkgPSB4CisgICAgICAgICAqIENoKHgsIDAsIHkp ID0gfnggJiB5CisgICAgICAgICAqIE1haih4LCAwLCAwKSA9IE1haigwLCB4LCAwKSA9IE1haigw LCAwLCB4KSA9IDAKKyAgICAgICAgICoKKyAgICAgICAgICogQTIgPSAofkUxICYgRjApICsgw47C ozEoRTEpICsgV0sxICsgRzAgKyDDjsKjMChBMSkKKyAgICAgICAgICogQTEgPSAofkUwICYgRzAp ICsgw47CozEoRTApICsgV0swICsgSDAgKyDDjsKjMChBMCkKKyAgICAgICAgICogRTIgPSAofkUx ICYgRjApICsgw47CozEoRTEpICsgV0sxICsgRzAgKyBDMAorICAgICAgICAgKiBFMSA9ICh+RTAg JiBHMCkgKyDDjsKjMShFMCkgKyBXSzAgKyBIMCArIEQwCisgICAgICAgICAqCisgICAgICAgICAq IChyZXNwZWN0aXZlIHBlci1jb2x1bW4gdmFyaWFibGUgbmFtZXM6CisgICAgICAgICAqICB5ICAg ICAgZSAgICBnICAgICAgICBlICAgIHNyYyAgICBoICAgIGQKKyAgICAgICAgICogKQorICAgICAg ICAgKi8KKworICAgICAgICB0bXAgPSAodmVjX3QpeyB+aGFzaFsxXSB9OworICAgICAgICB0b3Vj aCh0bXApOworICAgICAgICB4ID0gU0hBKDI1NnJuZHMyLCBoYXNoLCB0bXAsIHNyYyk7CisgICAg ICAgIHRvdWNoKHRtcCk7CisKKyAgICAgICAgZSA9IHkgPSAodmVjX3Qpe307CisgICAgICAgIGQg PSBhbGlnbnIoeSwgaGFzaCwgOCk7CisgICAgICAgIGcgPSAodmVjX3QpeyBoYXNoWzFdLCB0bXBb MF0sIGhhc2hbMV0sIHRtcFswXSB9OworICAgICAgICBoID0gc2h1ZihoYXNoLCAwYjAxMDAwMTAw KTsKKworICAgICAgICBmb3IgKCByID0gMDsgciA8IDI7ICsrciApCisgICAgICAgIHsKKyAgICAg ICAgICAgIHkgPSAofmUgJiBnKSArIHNoYTI1Nl9TaWdtYTEoZSkgKyBzaHVmKHNyYywgMGIwMTAw MDEwMCkgKworICAgICAgICAgICAgICAgIGggKyBzaGEyNTZfU2lnbWEwKGQpOworCisgICAgICAg ICAgICBpZiAoICFyICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkWzNdID0geVsy XTsKKyAgICAgICAgICAgICAgICBlWzNdID0gZVsxXSA9IHlbMF07CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBlbHNlIGlmICggZFszXSAhPSB5WzJdICkKKyAgICAgICAgICAgICAgICByZXR1 cm4gX19MSU5FX187CisgICAgICAgICAgICBlbHNlIGlmICggZVsxXSAhPSB5WzBdICkKKyAgICAg ICAgICAgICAgICByZXR1cm4gX19MSU5FX187CisgICAgICAgICAgICBlbHNlIGlmICggZVszXSAh PSB5WzBdICkKKyAgICAgICAgICAgICAgICByZXR1cm4gX19MSU5FX187CisgICAgICAgIH0KKwor ICAgICAgICBpZiAoICFlcSh4LCB5KSApIHJldHVybiBfX0xJTkVfXzsKKworICAgICAgICBzcmMg Kz0gMHgwMTAxMDEwMSAqIFZFQ19TSVpFOworICAgIH0KKworICAgIHJldHVybiAwOworfQotLS0g YS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYworKysgYi90b29s cy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYwpAQCAtMTQsOCArMTQsMTAg QEAgYXNtICggIi5wdXNoc2VjdGlvbiAudGVzdCwgXCJheFwiLCBAcHJvZwogI2luY2x1ZGUgInNz ZTItZ2YuaCIKICNpbmNsdWRlICJzc3NlMy1hZXMuaCIKICNpbmNsdWRlICJzc2U0LmgiCisjaW5j bHVkZSAic3NlNC1zaGEuaCIKICNpbmNsdWRlICJhdnguaCIKICNpbmNsdWRlICJhdngtYWVzLmgi CisjaW5jbHVkZSAiYXZ4LXNoYS5oIgogI2luY2x1ZGUgImZtYTQuaCIKICNpbmNsdWRlICJmbWEu aCIKICNpbmNsdWRlICJhdngyLmgiCkBAIC0yOCw2ICszMCw3IEBAIGFzbSAoICIucHVzaHNlY3Rp b24gLnRlc3QsIFwiYXhcIiwgQHByb2cKICNpbmNsdWRlICJhdng1MTJidy1vcG1hc2suaCIKICNp bmNsdWRlICJhdng1MTJmLmgiCiAjaW5jbHVkZSAiYXZ4NTEyZi1zZy5oIgorI2luY2x1ZGUgImF2 eDUxMmYtc2hhLmgiCiAjaW5jbHVkZSAiYXZ4NTEydmwtc2cuaCIKICNpbmNsdWRlICJhdng1MTJi dy5oIgogI2luY2x1ZGUgImF2eDUxMmJ3LXZhZXMuaCIKQEAgLTE1NSw2ICsxNTgsMjEgQEAgc3Rh dGljIGJvb2wgc2ltZF9jaGVja19hdng1MTJ2Ym1pX3ZsKHZvaQogICAgIHJldHVybiBjcHVfaGFz X2F2eDUxMl92Ym1pICYmIGNwdV9oYXNfYXZ4NTEydmw7CiB9CiAKK3N0YXRpYyBib29sIHNpbWRf Y2hlY2tfc3NlNF9zaGEodm9pZCkKK3sKKyAgICByZXR1cm4gY3B1X2hhc19zaGEgJiYgY3B1X2hh c19zc2U0XzI7Cit9CisKK3N0YXRpYyBib29sIHNpbWRfY2hlY2tfYXZ4X3NoYSh2b2lkKQorewor ICAgIHJldHVybiBjcHVfaGFzX3NoYSAmJiBjcHVfaGFzX2F2eDsKK30KKworc3RhdGljIGJvb2wg c2ltZF9jaGVja19hdng1MTJmX3NoYV92bCh2b2lkKQoreworICAgIHJldHVybiBjcHVfaGFzX3No YSAmJiBjcHVfaGFzX2F2eDUxMnZsOworfQorCiBzdGF0aWMgYm9vbCBzaW1kX2NoZWNrX2F2eDJf dmFlcyh2b2lkKQogewogICAgIHJldHVybiBjcHVfaGFzX2Flc25pICYmIGNwdV9oYXNfdmFlcyAm JiBjcHVfaGFzX2F2eDI7CkBAIC00NTAsNiArNDY4LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7 CiAgICAgQVZYNTEyVkwoX1ZCTUkrVkwgdTE2eDgsIGF2eDUxMnZibWksICAgIDE2dTIpLAogICAg IEFWWDUxMlZMKF9WQk1JK1ZMIHMxNngxNiwgYXZ4NTEydmJtaSwgICAzMmkyKSwKICAgICBBVlg1 MTJWTChfVkJNSStWTCB1MTZ4MTYsIGF2eDUxMnZibWksICAgMzJ1MiksCisgICAgU0lNRChTSEEs ICAgICAgICAgICAgICAgIHNzZTRfc2hhLCAgICAgICAgMTYpLAorICAgIFNJTUQoQVZYK1NIQSwg ICAgICAgICAgICAgYXZ4X3NoYSwgICAgICAgIDE2KSwKKyAgICBBVlg1MTJWTChWTCtTSEEsICAg ICAgYXZ4NTEyZl9zaGEsICAgICAgICAxNiksCiAgICAgU0lNRChWQUVTIChWRVgveDMyKSwgICAg YXZ4Ml92YWVzLCAgICAgICAgMzIpLAogICAgIFNJTUQoVkFFUyAoRVZFWC94NjQpLCBhdng1MTJi d192YWVzLCAgICAgIDY0KSwKICAgICBBVlg1MTJWTChWTCtWQUVTICh4MTYpLCBhdng1MTJid192 YWVzLCAgICAxNiksCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYtZW11bGF0ZS5o CisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYtZW11bGF0ZS5oCkBAIC0xNDIsNiAr MTQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHhjcjBfbWFzayh1aW50NjRfdCBtYQogI2RlZmlu ZSBjcHVfaGFzX2F2eDUxMl9pZm1hIChjcC5mZWF0LmF2eDUxMl9pZm1hICYmIHhjcjBfbWFzaygw eGU2KSkKICNkZWZpbmUgY3B1X2hhc19hdng1MTJlciAgKGNwLmZlYXQuYXZ4NTEyZXIgJiYgeGNy MF9tYXNrKDB4ZTYpKQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMmNkICAoY3AuZmVhdC5hdng1MTJj ZCAmJiB4Y3IwX21hc2soMHhlNikpCisjZGVmaW5lIGNwdV9oYXNfc2hhICAgICAgICBjcC5mZWF0 LnNoYQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMmJ3ICAoY3AuZmVhdC5hdng1MTJidyAmJiB4Y3Iw X21hc2soMHhlNikpCiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEydmwgIChjcC5mZWF0LmF2eDUxMnZs ICYmIHhjcjBfbWFzaygweGU2KSkKICNkZWZpbmUgY3B1X2hhc19hdng1MTJfdmJtaSAoY3AuZmVh dC5hdng1MTJfdmJtaSAmJiB4Y3IwX21hc2soMHhlNikpCgoKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs