From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 07/25] x86emul: support AVX2 gather insns Date: Thu, 07 Dec 2017 07:03:35 -0700 Message-ID: <5A29584702000078001958A3@prv-mh.provo.novell.com> References: <5A29550C020000780019585B@prv-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.84_2) (envelope-from ) id 1eMwm3-0005Gd-1g for xen-devel@lists.xenproject.org; Thu, 07 Dec 2017 14:03:39 +0000 In-Reply-To: <5A29550C020000780019585B@prv-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 List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KdjM6IFJl LWJhc2UuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKKysrIGIvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL01ha2VmaWxlCkBAIC0xMyw3ICsxMyw4IEBAIHJ1bjogJChU QVJHRVQpCiAKIFNJTUQgOj0gc3NlIHNzZTIgc3NlNCBhdnggYXZ4MgogRk1BIDo9IGZtYTQgZm1h Ci1URVNUQ0FTRVMgOj0gYmxvd2Zpc2ggJChTSU1EKSAkKEZNQSkKK1NHIDo9IGF2eDItc2cKK1RF U1RDQVNFUyA6PSBibG93ZmlzaCAkKFNJTUQpICQoRk1BKSAkKFNHKQogCiBibG93ZmlzaC1jZmxh Z3MgOj0gIiIKIGJsb3dmaXNoLWNmbGFncy14ODZfMzIgOj0gIi1tbm8tYWNjdW11bGF0ZS1vdXRn b2luZy1hcmdzIC1Ec3RhdGljPSIKQEAgLTM5LDYgKzQwLDEwIEBAIGZtYS1mbHRzIDo9ICQoYXZ4 LWZsdHMpCiBhdngyLXZlY3MgOj0gJChhdngtdmVjcykKIGF2eDItaW50cyA6PSAxIDIgNCA4CiBh dngyLWZsdHMgOj0gNCA4CithdngyLXNnLXZlY3MgOj0gJChhdngyLXZlY3MpCithdngyLXNnLWlk eHMgOj0gNCA4CithdngyLXNnLWludHMgOj0gNCA4CithdngyLXNnLWZsdHMgOj0gNCA4CiAKICMg Rm9yIEFWWCBhbmQgbGF0ZXIsIGhhdmUgdGhlIGNvbXBpbGVyIGF2b2lkIFhNTTAgdG8gd2lkZW4g Y292ZXJhZ2Ugb2YKICMgdGhlIFZFWC52dnZ2IGNoZWNrcyBpbiB0aGUgZW11bGF0b3IuCkBAIC01 NSw4ICs2MCwxOCBAQCAkKDEpLWNmbGFncyA6PSBcCiAJJChmb3JlYWNoIGZsdCwkKCQoMSktZmx0 cyksIFwKIAkgICItRF9mJChmbHQpIC1tJCgxKSAkKGNhbGwgbm9uLXNzZSwkKDEpKSAtbWZwbWF0 aD1zc2UgLU9zIC1ERkxPQVRfU0laRT0kKGZsdCkiKQogZW5kZWYKK2RlZmluZSBzaW1kLXNnLWRl ZnMKKyQoMSktY2ZsYWdzIDo9IFwKKwkkKGZvcmVhY2ggdmVjLCQoJCgxKS12ZWNzKSwgXAorCSAg JChmb3JlYWNoIGlkeCwkKCQoMSktaWR4cyksIFwKKwkgICAkKGZvcmVhY2ggaW50LCQoJCgxKS1p bnRzKSwgXAorCSAgICAgIi1EXyQodmVjKXgkKGlkeClpJChpbnQpIC1tJCgxOi1zZz0pICQoY2Fs bCBub24tc3NlLCQoMSkpIC1PcyAtRFZFQ19NQVg9JCh2ZWMpIC1ESURYX1NJWkU9JChpZHgpIC1E SU5UX1NJWkU9JChpbnQpIikgXAorCSAgICQoZm9yZWFjaCBmbHQsJCgkKDEpLWZsdHMpLCBcCisJ ICAgICAiLURfJCh2ZWMpeCQoaWR4KWYkKGZsdCkgLW0kKDE6LXNnPSkgJChjYWxsIG5vbi1zc2Us JCgxKSkgLU9zIC1EVkVDX01BWD0kKHZlYykgLURJRFhfU0laRT0kKGlkeCkgLURGTE9BVF9TSVpF PSQoZmx0KSIpKSkKK2VuZGVmCiAKICQoZm9yZWFjaCBmbGF2b3IsJChTSU1EKSAkKEZNQSksJChl dmFsICQoY2FsbCBzaW1kLWRlZnMsJChmbGF2b3IpKSkpCiskKGZvcmVhY2ggZmxhdm9yLCQoU0cp LCQoZXZhbCAkKGNhbGwgc2ltZC1zZy1kZWZzLCQoZmxhdm9yKSkpKQogCiAkKGFkZHN1ZmZpeCAu aCwkKFRFU1RDQVNFUykpOiAlLmg6ICUuYyB0ZXN0Y2FzZS5tayBNYWtlZmlsZQogCXJtIC1mICRA Lm5ldyAkKi5iaW4KQEAgLTc4LDcgKzkzLDEwIEBAICQoYWRkc3VmZml4IC5jLCQoU0lNRCkpOgog JChhZGRzdWZmaXggLmMsJChGTUEpKToKIAlsbiAtc2Ygc2ltZC1mbWEuYyAkQAogCi0kKGFkZHN1 ZmZpeCAubywkKFNJTUQpICQoRk1BKSk6IHNpbWQuaAorJChhZGRzdWZmaXggLmMsJChTRykpOgor CWxuIC1zZiBzaW1kLXNnLmMgJEAKKworJChhZGRzdWZmaXggLm8sJChTSU1EKSAkKEZNQSkgJChT RykpOiBzaW1kLmgKIAogJChUQVJHRVQpOiB4ODYtZW11bGF0ZS5vIHRlc3RfeDg2X2VtdWxhdG9y Lm8KIAkkKEhPU1RDQykgJChIT1NUQ0ZMQUdTKSAtbyAkQCAkXgotLS0gL2Rldi9udWxsCisrKyBi L3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLXNnLmMKQEAgLTAsMCArMSwyMDkgQEAKKyNp ZmRlZiBJTlRfU0laRQorIyBkZWZpbmUgRUxFTV9TSVpFIElOVF9TSVpFCisjZWxzZQorIyBkZWZp bmUgRUxFTV9TSVpFIEZMT0FUX1NJWkUKKyNlbmRpZgorCisjZGVmaW5lIFZFQ19TSVpFIChJRFhf U0laRSA8PSBFTEVNX1NJWkUgPyBWRUNfTUFYIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IFZFQ19NQVggKiBFTEVNX1NJWkUgLyBJRFhfU0laRSkKKyNpZiBWRUNf U0laRSA8IDE2CisjIHVuZGVmIFZFQ19TSVpFCisjIGRlZmluZSBWRUNfU0laRSAxNgorI2VuZGlm CisKKyNpbmNsdWRlICJzaW1kLmgiCisKK0VOVFJZKHNnX3Rlc3QpOworCisjdW5kZWYgTU9ERQor I2lmIElEWF9TSVpFID09IDQKKyMgZGVmaW5lIE1PREUgU0kKKyNlbGlmIElEWF9TSVpFID09IDgK KyMgZGVmaW5lIE1PREUgREkKKyNlbmRpZgorCisjZGVmaW5lIElWRUNfU0laRSAoRUxFTV9TSVpF IDw9IElEWF9TSVpFID8gVkVDX01BWCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogVkVDX01BWCAqIElEWF9TSVpFIC8gRUxFTV9TSVpFKQorI2lmIElWRUNfU0la RSA8IDE2CisjIHVuZGVmIElWRUNfU0laRQorIyBkZWZpbmUgSVZFQ19TSVpFIDE2CisjZW5kaWYK KwordHlwZWRlZiBzaWduZWQgaW50IF9fYXR0cmlidXRlX18oKG1vZGUoTU9ERSksIHZlY3Rvcl9z aXplKElWRUNfU0laRSkpKSBpZHhfdDsKK3R5cGVkZWYgbG9uZyBsb25nIF9fYXR0cmlidXRlX18o KHZlY3Rvcl9zaXplKElWRUNfU0laRSkpKSBpZGlfdDsKKworI2RlZmluZSBJVEVNX0NPVU5UIChW RUNfU0laRSAvIEVMRU1fU0laRSA8IElWRUNfU0laRSAvIElEWF9TSVpFID8gXAorICAgICAgICAg ICAgICAgICAgICBWRUNfU0laRSAvIEVMRU1fU0laRSA6IElWRUNfU0laRSAvIElEWF9TSVpFKQor CisjaWYgVkVDX1NJWkUgPT0gMTYKKyMgZGVmaW5lIHRvX2Jvb2woY21wKSBfX2J1aWx0aW5faWEz Ml9wdGVzdGMxMjgoY21wLCAodmVjX3Qpe30gPT0gMCkKKyNlbHNlCisjIGRlZmluZSB0b19ib29s KGNtcCkgX19idWlsdGluX2lhMzJfcHRlc3RjMjU2KGNtcCwgKHZlY190KXt9ID09IDApCisjZW5k aWYKKworI2lmIGRlZmluZWQoX19BVlgyX18pCisjIGlmIFZFQ19NQVggPT0gMTYKKyMgIGlmIElE WF9TSVpFID09IDQKKyMgICBpZiBJTlRfU0laRSA9PSA0CisjICAgIGRlZmluZSBnYXRoZXIgX19i dWlsdGluX2lhMzJfZ2F0aGVyc2l2NHNpCisjICAgZWxpZiBJTlRfU0laRSA9PSA4CisjICAgIGRl ZmluZSBnYXRoZXIocmVnLCBtZW0sIGlkeCwgbXNrLCBzY2wpIFwKKyAgICAgICAgICAgICh2ZWNf dCkoX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2MmRpKCh2ZGlfdCkocmVnKSwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHZvaWQgKikobWVt KSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4 LCAodmRpX3QpKG1zayksIHNjbCkpCisjICAgZWxpZiBGTE9BVF9TSVpFID09IDQKKyMgICAgZGVm aW5lIGdhdGhlciBfX2J1aWx0aW5faWEzMl9nYXRoZXJzaXY0c2YKKyMgICBlbGlmIEZMT0FUX1NJ WkUgPT0gOAorIyAgICBkZWZpbmUgZ2F0aGVyIF9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjJkZgor IyAgIGVuZGlmCisjICBlbGlmIElEWF9TSVpFID09IDgKKyMgICBpZiBJTlRfU0laRSA9PSA0Cisj ICAgIGRlZmluZSBnYXRoZXIocmVnLCBtZW0sIGlkeCwgbXNrLCBzY2wpIFwKKyAgICAgICAgICAg IF9fYnVpbHRpbl9pYTMyX2dhdGhlcmRpdjRzaShyZWcsIG1lbSwgKHZkaV90KShpZHgpLCBtc2ss IHNjbCkKKyMgICBlbGlmIElOVF9TSVpFID09IDgKKyMgICAgZGVmaW5lIGdhdGhlcihyZWcsIG1l bSwgaWR4LCBtc2ssIHNjbCkgXAorICAgICAgICAgICAgKHZlY190KShfX2J1aWx0aW5faWEzMl9n YXRoZXJkaXYyZGkoKHZkaV90KShyZWcpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3Qgdm9pZCAqKShtZW0pLCBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmRpX3QpKGlkeCksICh2ZGlfdCko bXNrKSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NsKSkKKyMgICBlbGlmIEZMT0FUX1NJWkUgPT0gNAorIyAgICBkZWZpbmUgZ2F0aGVyKHJlZywg bWVtLCBpZHgsIG1zaywgc2NsKSBcCisgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl9nYXRoZXJk aXY0c2YocmVnLCBtZW0sICh2ZGlfdCkoaWR4KSwgbXNrLCBzY2wpCisjICAgZWxpZiBGTE9BVF9T SVpFID09IDgKKyMgICAgZGVmaW5lIGdhdGhlcihyZWcsIG1lbSwgaWR4LCBtc2ssIHNjbCkgXAor ICAgICAgICAgICAgX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2MmRmKHJlZywgbWVtLCAodmRpX3Qp KGlkeCksIG1zaywgc2NsKQorIyAgIGVuZGlmCisjICBlbmRpZgorIyBlbGlmIFZFQ19NQVggPT0g MzIKKyMgIGlmIElEWF9TSVpFID09IDQKKyMgICBpZiBJTlRfU0laRSA9PSA0CisjICAgIGRlZmlu ZSBnYXRoZXIgX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2OHNpCisjICAgZWxpZiBJTlRfU0laRSA9 PSA4CisjICAgIGRlZmluZSBnYXRoZXIocmVnLCBtZW0sIGlkeCwgbXNrLCBzY2wpIFwKKyAgICAg ICAgICAgICh2ZWNfdCkoX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2NGRpKCh2ZGlfdCkocmVnKSwg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0 IHZvaWQgKikobWVtKSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWR4LCAodmRpX3QpKG1zayksIHNjbCkpCisKKyMgICBlbGlmIEZMT0FUX1NJWkUg PT0gNAorIyAgICBkZWZpbmUgZ2F0aGVyIF9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjhzZgorIyAg IGVsaWYgRkxPQVRfU0laRSA9PSA4CisjICAgIGRlZmluZSBnYXRoZXIgX19idWlsdGluX2lhMzJf Z2F0aGVyc2l2NGRmCisjICAgZW5kaWYKKyMgIGVsaWYgSURYX1NJWkUgPT0gOAorIyAgIGlmIElO VF9TSVpFID09IDQKKyMgICAgZGVmaW5lIGdhdGhlcihyZWcsIG1lbSwgaWR4LCBtc2ssIHNjbCkg XAorICAgICAgICAgICAgX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2NHNpMjU2KHJlZywgbWVtLCAo aWRpX3QpKGlkeCksIG1zaywgc2NsKQorIyAgIGVsaWYgSU5UX1NJWkUgPT0gOAorIyAgICBkZWZp bmUgZ2F0aGVyKHJlZywgbWVtLCBpZHgsIG1zaywgc2NsKSBcCisgICAgICAgICAgICAodmVjX3Qp KF9fYnVpbHRpbl9pYTMyX2dhdGhlcmRpdjRkaSgodmRpX3QpKHJlZyksIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB2b2lkICopKG1lbSks IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZGlf dCkoaWR4KSwgKHZkaV90KShtc2spLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY2wpKQorCisjICAgZWxpZiBGTE9BVF9TSVpFID09IDQKKyMgICAg ZGVmaW5lIGdhdGhlcihyZWcsIG1lbSwgaWR4LCBtc2ssIHNjbCkgXAorICAgICAgICAgICAgX19i dWlsdGluX2lhMzJfZ2F0aGVyZGl2NHNmMjU2KHJlZywgbWVtLCAoaWRpX3QpKGlkeCksIG1zaywg c2NsKQorIyAgIGVsaWYgRkxPQVRfU0laRSA9PSA4CisjICAgIGRlZmluZSBnYXRoZXIocmVnLCBt ZW0sIGlkeCwgbXNrLCBzY2wpIFwKKyAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX2dhdGhlcmRp djRkZihyZWcsIG1lbSwgKHZkaV90KShpZHgpLCBtc2ssIHNjbCkKKyMgICBlbmRpZgorIyAgZW5k aWYKKyMgZW5kaWYKKyNlbmRpZgorCisjZGVmaW5lIEdMVUVfKHgsIHkpIHggIyMgeQorI2RlZmlu ZSBHTFVFKHgsIHkpIEdMVUVfKHgsIHkpCisKKyNkZWZpbmUgUFVUMihuKSAgICAgIChuKSwgICAg ICAgIChuKSArICAxCisjZGVmaW5lIFBVVDQobikgIFBVVDIobiksICAgUFVUMigobikgKyAgMikK KyNkZWZpbmUgUFVUOChuKSAgUFVUNChuKSwgICBQVVQ0KChuKSArICA0KQorI2RlZmluZSBQVVQx NihuKSBQVVQ4KG4pLCAgIFBVVDgoKG4pICsgIDgpCisjZGVmaW5lIFBVVDMyKG4pIFBVVDE2KG4p LCBQVVQxNigobikgKyAxNikKKworY29uc3QgdHlwZW9mKCh2ZWNfdCl7fVswXSkgYXJyYXlbXSA9 IHsKKyAgICBHTFVFKFBVVCwgVkVDX01BWCkoMSksCisgICAgR0xVRShQVVQsIFZFQ19NQVgpKFZF Q19NQVggKyAxKQorfTsKKworaW50IHNnX3Rlc3Qodm9pZCkKK3sKKyAgICB1bnNpZ25lZCBpbnQg aTsKKyAgICB2ZWNfdCB4LCB5LCBmdWxsID0gKHZlY190KXt9ID09IDA7CisgICAgaWR4X3QgaWR4 LCBpbnY7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IElWRUNfU0laRSAvIElEWF9TSVpFOyArK2kg KQorICAgIHsKKyAgICAgICAgaWR4W2ldID0gaSArIDE7CisgICAgICAgIGludltpXSA9IElURU1f Q09VTlQgLSBpOworICAgIH0KKworICAgIHRvdWNoKGlkeCk7CisgICAgdG91Y2goaW52KTsKKwor ICAgIHggPSBnYXRoZXIoZnVsbCwgYXJyYXksIChpZHhfdCl7fSwgZnVsbCwgMSk7CisgICAgZm9y ICggaSA9IDA7IGkgPCBJVEVNX0NPVU5UOyArK2kgKQorICAgICAgICBpZiAoIHhbaV0gIT0gMSAp CisgICAgICAgICAgICByZXR1cm4gX19MSU5FX187CisgICAgZm9yICggOyBpIDwgRUxFTV9DT1VO VDsgKytpICkKKyAgICAgICAgaWYgKCB4W2ldICkKKyAgICAgICAgICAgIHJldHVybiBfX0xJTkVf XzsKKworICAgIHggPSBnYXRoZXIoZnVsbCwgYXJyYXksIGlkeCwgZnVsbCwgRUxFTV9TSVpFKTsK KyAgICBmb3IgKCBpID0gMDsgaSA8IElURU1fQ09VTlQ7ICsraSApCisgICAgICAgIGlmICggeFtp XSAhPSBpICsgMiApCisgICAgICAgICAgICByZXR1cm4gX19MSU5FX187CisgICAgZm9yICggOyBp IDwgRUxFTV9DT1VOVDsgKytpICkKKyAgICAgICAgaWYgKCB4W2ldICkKKyAgICAgICAgICAgIHJl dHVybiBfX0xJTkVfXzsKKworICAgIHggPSBnYXRoZXIoZnVsbCwgYXJyYXksIGlkeCAqIEVMRU1f U0laRSwgZnVsbCwgMik7CisgICAgZm9yICggaSA9IDA7IGkgPCBJVEVNX0NPVU5UOyArK2kgKQor ICAgICAgICBpZiAoIHhbaV0gIT0gaSAqIDIgKyAzICkKKyAgICAgICAgICAgIHJldHVybiBfX0xJ TkVfXzsKKyAgICBmb3IgKCA7IGkgPCBFTEVNX0NPVU5UOyArK2kgKQorICAgICAgICBpZiAoIHhb aV0gKQorICAgICAgICAgICAgcmV0dXJuIF9fTElORV9fOworCisgICAgeCA9IGdhdGhlcihmdWxs LCBhcnJheSwgaW52LCBmdWxsLCBFTEVNX1NJWkUpOworICAgIGZvciAoIGkgPSAwOyBpIDwgSVRF TV9DT1VOVDsgKytpICkKKyAgICAgICAgaWYgKCB4W2ldICE9IGludltpXSArIDEgKQorICAgICAg ICAgICAgcmV0dXJuIF9fTElORV9fOworICAgIGZvciAoIDsgaSA8IEVMRU1fQ09VTlQ7ICsraSAp CisgICAgICAgIGlmICggeFtpXSApCisgICAgICAgICAgICByZXR1cm4gX19MSU5FX187CisKKyAg ICB5ID0gZ2F0aGVyKGZ1bGwsIGFycmF5ICsgSVRFTV9DT1VOVCwgLWlkeCwgZnVsbCwgRUxFTV9T SVpFKTsKKyNpZiBJVEVNX0NPVU5UID09IEVMRU1fQ09VTlQKKyAgICBpZiAoICF0b19ib29sKHkg PT0geCAtIDEpICkKKyAgICAgICAgcmV0dXJuIF9fTElORV9fOworI2Vsc2UKKyAgICBmb3IgKCBp ID0gMDsgaSA8IElURU1fQ09VTlQ7ICsraSApCisgICAgICAgIGlmICggeVtpXSAhPSB4W2ldIC0g MSApCisgICAgICAgICAgICByZXR1cm4gX19MSU5FX187CisgICAgZm9yICggOyBpIDwgRUxFTV9D T1VOVDsgKytpICkKKyAgICAgICAgaWYgKCB5W2ldICkKKyAgICAgICAgICAgIHJldHVybiBfX0xJ TkVfXzsKKyNlbmRpZgorCisjaWYgRUxFTV9TSVpFID4gMQorICAgIHggPSBnYXRoZXIoZnVsbCwg YXJyYXksIGludiAqIDIsIGZ1bGwsIEVMRU1fU0laRSAvIDIpOworICAgIGZvciAoIGkgPSAwOyBp IDwgSVRFTV9DT1VOVDsgKytpICkKKyAgICAgICAgaWYgKCB4W2ldICE9IGludltpXSArIDEgKQor ICAgICAgICAgICAgcmV0dXJuIF9fTElORV9fOworICAgIGZvciAoIDsgaSA8IEVMRU1fQ09VTlQ7 ICsraSApCisgICAgICAgIGlmICggeFtpXSApCisgICAgICAgICAgICByZXR1cm4gX19MSU5FX187 CisKKyMgaWYgRUxFTV9TSVpFID09IElEWF9TSVpFCisgICAgeSA9IGdhdGhlcih4LCBhcnJheSwg aWR4LCAoaWR4ICYgaW52KSAhPSAwLCBFTEVNX1NJWkUpOworICAgIGZvciAoIGkgPSAwOyBpIDwg SVRFTV9DT1VOVDsgKytpICkKKyAgICAgICAgaWYgKCB5W2ldICE9ICgoaSArIDEpICYgKElURU1f Q09VTlQgLSBpKSA/IGlkeCA6IGludilbaV0gKyAxICkKKyAgICAgICAgICAgIHJldHVybiBfX0xJ TkVfXzsKKyAgICBmb3IgKCA7IGkgPCBFTEVNX0NPVU5UOyArK2kgKQorICAgICAgICBpZiAoIHlb aV0gKQorICAgICAgICAgICAgcmV0dXJuIF9fTElORV9fOworIyBlbmRpZgorI2VuZGlmCisKKyAg ICByZXR1cm4gMDsKK30KLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2Vt dWxhdG9yLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9y LmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlICJmbWE0LmgiCiAjaW5jbHVkZSAiZm1hLmgi CiAjaW5jbHVkZSAiYXZ4Mi5oIgorI2luY2x1ZGUgImF2eDItc2cuaCIKIAogI2RlZmluZSB2ZXJi b3NlIGZhbHNlIC8qIFN3aXRjaCB0byB0cnVlIGZvciBmYXIgbW9yZSBsb2dnaW5nLiAqLwogCkBA IC02MCw2ICs2MSw3IEBAIHN0YXRpYyBib29sIHNpbWRfY2hlY2tfYXZ4Mih2b2lkKQogewogICAg IHJldHVybiBjcHVfaGFzX2F2eDI7CiB9CisjZGVmaW5lIHNpbWRfY2hlY2tfYXZ4Ml9zZyBzaW1k X2NoZWNrX2F2eDIKIAogc3RhdGljIHZvaWQgc2ltZF9zZXRfcmVncyhzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncykKIHsKQEAgLTE3Myw2ICsxNzUsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7 CiAgICAgU0lNRChBVlgyIHUzMng4LCAgICAgICAgICAgICBhdngyLCAgICAgIDMydTQpLAogICAg IFNJTUQoQVZYMiBzNjR4NCwgICAgICAgICAgICAgYXZ4MiwgICAgICAzMmk4KSwKICAgICBTSU1E KEFWWDIgdTY0eDQsICAgICAgICAgICAgIGF2eDIsICAgICAgMzJ1OCksCisgICAgU0lNRChBVlgy IFMvRyBmMzJbNHgzMl0sICBhdngyX3NnLCAgICAxNng0ZjQpLAorICAgIFNJTUQoQVZYMiBTL0cg ZjY0WzJ4MzJdLCAgYXZ4Ml9zZywgICAgMTZ4NGY4KSwKKyAgICBTSU1EKEFWWDIgUy9HIGYzMlsy eDY0XSwgIGF2eDJfc2csICAgIDE2eDhmNCksCisgICAgU0lNRChBVlgyIFMvRyBmNjRbMng2NF0s ICBhdngyX3NnLCAgICAxNng4ZjgpLAorICAgIFNJTUQoQVZYMiBTL0cgZjMyWzh4MzJdLCAgYXZ4 Ml9zZywgICAgMzJ4NGY0KSwKKyAgICBTSU1EKEFWWDIgUy9HIGY2NFs0eDMyXSwgIGF2eDJfc2cs ICAgIDMyeDRmOCksCisgICAgU0lNRChBVlgyIFMvRyBmMzJbNHg2NF0sICBhdngyX3NnLCAgICAz Mng4ZjQpLAorICAgIFNJTUQoQVZYMiBTL0cgZjY0WzR4NjRdLCAgYXZ4Ml9zZywgICAgMzJ4OGY4 KSwKKyAgICBTSU1EKEFWWDIgUy9HIGkzMls0eDMyXSwgIGF2eDJfc2csICAgIDE2eDRpNCksCisg ICAgU0lNRChBVlgyIFMvRyBpNjRbMngzMl0sICBhdngyX3NnLCAgICAxNng0aTgpLAorICAgIFNJ TUQoQVZYMiBTL0cgaTMyWzJ4NjRdLCAgYXZ4Ml9zZywgICAgMTZ4OGk0KSwKKyAgICBTSU1EKEFW WDIgUy9HIGk2NFsyeDY0XSwgIGF2eDJfc2csICAgIDE2eDhpOCksCisgICAgU0lNRChBVlgyIFMv RyBpMzJbOHgzMl0sICBhdngyX3NnLCAgICAzMng0aTQpLAorICAgIFNJTUQoQVZYMiBTL0cgaTY0 WzR4MzJdLCAgYXZ4Ml9zZywgICAgMzJ4NGk4KSwKKyAgICBTSU1EKEFWWDIgUy9HIGkzMls0eDY0 XSwgIGF2eDJfc2csICAgIDMyeDhpNCksCisgICAgU0lNRChBVlgyIFMvRyBpNjRbNHg2NF0sICBh dngyX3NnLCAgICAzMng4aTgpLAogI3VuZGVmIFNJTURfCiAjdW5kZWYgU0lNRAogfTsKLS0tIGEv eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2 L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTM5MSw2ICszOTEsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHsKICAgICBbMHg3OCAuLi4gMHg3OV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290 aGVyLCAudHdvX29wID0gMSB9LAogICAgIFsweDhjXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3Ro ZXIgfSwKICAgICBbMHg4ZV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudG9fbWVtID0g MSB9LAorICAgIFsweDkwIC4uLiAweDkzXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC52 c2liID0gMSB9LAogICAgIFsweDk2IC4uLiAweDlmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFj a2VkX2ZwIH0sCiAgICAgWzB4YTYgLi4uIDB4YWZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNr ZWRfZnAgfSwKICAgICBbMHhiNiAuLi4gMHhiZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tl ZF9mcCB9LApAQCAtNTk4LDYgKzU5OSw3IEBAIHN0cnVjdCB4ODZfZW11bGF0ZV9zdGF0ZSB7CiAg ICAgICAgIGV4dF84ZjBhLAogICAgIH0gZXh0OwogICAgIHVpbnQ4X3QgbW9kcm0sIG1vZHJtX21v ZCwgbW9kcm1fcmVnLCBtb2RybV9ybTsKKyAgICB1aW50OF90IHNpYl9pbmRleCwgc2liX3NjYWxl OwogICAgIHVpbnQ4X3QgcmV4X3ByZWZpeDsKICAgICBib29sIGxvY2tfcHJlZml4OwogICAgIGJv b2wgbm90XzY0Yml0OyAvKiBJbnN0cnVjdGlvbiBub3QgYXZhaWxhYmxlIGluIDY0Yml0LiAqLwpA QCAtMjQxMSw3ICsyNDEzLDcgQEAgeDg2X2RlY29kZSgKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVf Y3R4dCAqY3R4dCwKICAgICBjb25zdCBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3BzICAqb3BzKQogewot ICAgIHVpbnQ4X3QgYiwgZCwgc2liLCBzaWJfaW5kZXgsIHNpYl9iYXNlOworICAgIHVpbnQ4X3Qg YiwgZDsKICAgICB1bnNpZ25lZCBpbnQgZGVmX29wX2J5dGVzLCBkZWZfYWRfYnl0ZXMsIG9wY29k ZTsKICAgICBlbnVtIHg4Nl9zZWdtZW50IG92ZXJyaWRlX3NlZyA9IHg4Nl9zZWdfbm9uZTsKICAg ICBib29sIHBjX3JlbCA9IGZhbHNlOwpAQCAtMjc0NSw2ICsyNzQ3LDcgQEAgeDg2X2RlY29kZSgK IAogICAgICAgICBpZiAoIG1vZHJtX21vZCA9PSAzICkKICAgICAgICAgeworICAgICAgICAgICAg Z2VuZXJhdGVfZXhjZXB0aW9uX2lmKGQgJiB2U0lCLCBFWENfVUQpOwogICAgICAgICAgICAgbW9k cm1fcm0gfD0gKHJleF9wcmVmaXggJiAxKSA8PCAzOwogICAgICAgICAgICAgZWEudHlwZSA9IE9Q X1JFRzsKICAgICAgICAgfQpAQCAtMjgwNSwxMyArMjgwOCwxNyBAQCB4ODZfZGVjb2RlKAogICAg ICAgICAgICAgZWEudHlwZSA9IE9QX01FTTsKICAgICAgICAgICAgIGlmICggbW9kcm1fcm0gPT0g NCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2liID0gaW5zbl9mZXRjaF90eXBl KHVpbnQ4X3QpOwotICAgICAgICAgICAgICAgIHNpYl9pbmRleCA9ICgoc2liID4+IDMpICYgNykg fCAoKHJleF9wcmVmaXggPDwgMikgJiA4KTsKLSAgICAgICAgICAgICAgICBzaWJfYmFzZSAgPSAo c2liICYgNykgfCAoKHJleF9wcmVmaXggPDwgMykgJiA4KTsKLSAgICAgICAgICAgICAgICBpZiAo IHNpYl9pbmRleCAhPSA0ICYmICEoZCAmIHZTSUIpICkKLSAgICAgICAgICAgICAgICAgICAgZWEu bWVtLm9mZiA9ICpkZWNvZGVfcmVnaXN0ZXIoc2liX2luZGV4LCBzdGF0ZS0+cmVncywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwotICAg ICAgICAgICAgICAgIGVhLm1lbS5vZmYgPDw9IChzaWIgPj4gNikgJiAzOworICAgICAgICAgICAg ICAgIHVpbnQ4X3Qgc2liID0gaW5zbl9mZXRjaF90eXBlKHVpbnQ4X3QpOworICAgICAgICAgICAg ICAgIHVpbnQ4X3Qgc2liX2Jhc2UgPSAoc2liICYgNykgfCAoKHJleF9wcmVmaXggPDwgMykgJiA4 KTsKKworICAgICAgICAgICAgICAgIHN0YXRlLT5zaWJfaW5kZXggPSAoKHNpYiA+PiAzKSAmIDcp IHwgKChyZXhfcHJlZml4IDw8IDIpICYgOCk7CisgICAgICAgICAgICAgICAgc3RhdGUtPnNpYl9z Y2FsZSA9IChzaWIgPj4gNikgJiAzOworICAgICAgICAgICAgICAgIGlmICggc3RhdGUtPnNpYl9p bmRleCAhPSA0ICYmICEoZCAmIHZTSUIpICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgIGVhLm1lbS5vZmYgPSAqZGVjb2RlX3JlZ2lzdGVyKHN0YXRlLT5zaWJfaW5kZXgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRl LT5yZWdzLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGVhLm1lbS5vZmYgPDw9IHN0YXRl LT5zaWJfc2NhbGU7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICggKG1v ZHJtX21vZCA9PSAwKSAmJiAoKHNpYl9iYXNlICYgNykgPT0gNSkgKQogICAgICAgICAgICAgICAg ICAgICBlYS5tZW0ub2ZmICs9IGluc25fZmV0Y2hfdHlwZShpbnQzMl90KTsKICAgICAgICAgICAg ICAgICBlbHNlIGlmICggc2liX2Jhc2UgPT0gNCApCkBAIC03NDcyLDYgKzc0NzksMTEwIEBAIHg4 Nl9lbXVsYXRlKAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BD X1ZFWF82NigweDBmMzgsIDB4OTApOiAvKiB2cGdhdGhlcmR7ZCxxfSB7eCx5fW1tLG1lbSx7eCx5 fW1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDkxKTogLyogdnBn YXRoZXJxe2QscX0ge3gseX1tbSxtZW0se3gseX1tbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENf VkVYXzY2KDB4MGYzOCwgMHg5Mik6IC8qIHZnYXRoZXJkcHtzLGR9IHt4LHl9bW0sbWVtLHt4LHl9 bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmMzgsIDB4OTMpOiAvKiB2Z2F0 aGVycXB7cyxkfSB7eCx5fW1tLG1lbSx7eCx5fW1tICovCisgICAgeworICAgICAgICB1bnNpZ25l ZCBpbnQgbWFza19yZWcgPSB+dmV4LnJlZyAmIChtb2RlXzY0Yml0KCkgPyAweGYgOiA3KTsKKyAg ICAgICAgdHlwZW9mKHZleCkgKnB2ZXg7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIGlu dDMyX3QgZHdbOF07CisgICAgICAgICAgICBpbnQ2NF90IHF3WzRdOworICAgICAgICB9IGluZGV4 LCBtYXNrOworCisgICAgICAgIEFTU0VSVChlYS50eXBlID09IE9QX01FTSk7CisgICAgICAgIGdl bmVyYXRlX2V4Y2VwdGlvbl9pZihtb2RybV9yZWcgPT0gc3RhdGUtPnNpYl9pbmRleCB8fAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kcm1fcmVnID09IG1hc2tfcmVnIHx8CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c2liX2luZGV4ID09IG1hc2tfcmVnLCBF WENfVUQpOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWNwdV9oYXNfYXZ4LCBFWENf VUQpOworICAgICAgICB2Y3B1X211c3RfaGF2ZShhdngyKTsKKyAgICAgICAgZ2V0X2ZwdShYODZF TVVMX0ZQVV95bW0sICZmaWMpOworCisgICAgICAgIC8qIFJlYWQgZGVzdGluYXRpb24sIGluZGV4 LCBhbmQgbWFzayByZWdpc3RlcnMuICovCisgICAgICAgIG9wYyA9IGluaXRfcHJlZml4ZXMoc3R1 Yik7CisgICAgICAgIHB2ZXggPSBjb3B5X1ZFWChvcGMsIHZleCk7CisgICAgICAgIHB2ZXgtPm9w Y3ggPSB2ZXhfMGY7CisgICAgICAgIG9wY1swXSA9IDB4N2Y7IC8qIHZtb3ZkcWEgKi8KKyAgICAg ICAgLyogVXNlICglcmF4KSBhcyBkZXN0aW5hdGlvbiBhbmQgbW9kcm1fcmVnIGFzIHNvdXJjZS4g Ki8KKyAgICAgICAgcHZleC0+ciA9ICFtb2RlXzY0Yml0KCkgfHwgIShtb2RybV9yZWcgJiA4KTsK KyAgICAgICAgcHZleC0+YiA9IDE7CisgICAgICAgIG9wY1sxXSA9IChtb2RybV9yZWcgJiA3KSA8 PCAzOworICAgICAgICBwdmV4LT5yZWcgPSAweGY7CisgICAgICAgIG9wY1syXSA9IDB4YzM7CisK KyAgICAgICAgaW52b2tlX3N0dWIoIiIsICIiLCAiPW0iICgqbW12YWxwKSA6ICJhIiAobW12YWxw KSk7CisKKyAgICAgICAgcHZleC0+cGZ4ID0gdmV4X2YzOyAvKiB2bW92ZHF1ICovCisgICAgICAg IC8qIFN3aXRjaCB0byBzaWJfaW5kZXggYXMgc291cmNlLiAqLworICAgICAgICBwdmV4LT5yID0g IW1vZGVfNjRiaXQoKSB8fCAhKHN0YXRlLT5zaWJfaW5kZXggJiA4KTsKKyAgICAgICAgb3BjWzFd ID0gKHN0YXRlLT5zaWJfaW5kZXggJiA3KSA8PCAzOworCisgICAgICAgIGludm9rZV9zdHViKCIi LCAiIiwgIj1tIiAoaW5kZXgpIDogImEiICgmaW5kZXgpKTsKKworICAgICAgICAvKiBTd2l0Y2gg dG8gbWFza19yZWcgYXMgc291cmNlLiAqLworICAgICAgICBwdmV4LT5yID0gIW1vZGVfNjRiaXQo KSB8fCAhKG1hc2tfcmVnICYgOCk7CisgICAgICAgIG9wY1sxXSA9IChtYXNrX3JlZyAmIDcpIDw8 IDM7CisKKyAgICAgICAgaW52b2tlX3N0dWIoIiIsICIiLCAiPW0iIChtYXNrKSA6ICJhIiAoJm1h c2spKTsKKyAgICAgICAgcHV0X3N0dWIoc3R1Yik7CisKKyAgICAgICAgLyogQ2xlYXIgdW50b3Vj aGVkIHBhcnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhbmQgbWFzayB2YWx1ZXMuICovCisgICAgICAg IG4gPSAxIDw8ICgyICsgdmV4LmwgLSAoKGIgJiAxKSB8IHZleC53KSk7CisgICAgICAgIG9wX2J5 dGVzID0gNCA8PCB2ZXgudzsKKyAgICAgICAgbWVtc2V0KCh2b2lkICopbW12YWxwICsgbiAqIG9w X2J5dGVzLCAwLCAzMiAtIG4gKiBvcF9ieXRlcyk7CisgICAgICAgIG1lbXNldCgodm9pZCAqKSZt YXNrICsgbiAqIG9wX2J5dGVzLCAwLCAzMiAtIG4gKiBvcF9ieXRlcyk7CisKKyAgICAgICAgZm9y ICggaSA9IDA7IGkgPCBuICYmIHJjID09IFg4NkVNVUxfT0tBWTsgKytpICkKKyAgICAgICAgewor ICAgICAgICAgICAgaWYgKCAodmV4LncgPyBtYXNrLnF3W2ldIDogbWFzay5kd1tpXSkgPCAwICkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBpZHggPSBiICYgMSA/ IGluZGV4LnF3W2ldIDogaW5kZXguZHdbaV07CisKKyAgICAgICAgICAgICAgICByYyA9IG9wcy0+ cmVhZChlYS5tZW0uc2VnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhLm1lbS5v ZmYgKyAoaWR4IDw8IHN0YXRlLT5zaWJfc2NhbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh2b2lkICopbW12YWxwICsgaSAqIG9wX2J5dGVzLCBvcF9ieXRlcywgY3R4dCk7Cisg ICAgICAgICAgICAgICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgKQorICAgICAgICAgICAgICAg ICAgICBicmVhazsKKworI2lmZGVmIF9fWEVOX18KKyAgICAgICAgICAgICAgICBpZiAoIGkgKyAx IDwgbiAmJiBsb2NhbF9ldmVudHNfbmVlZF9kZWxpdmVyeSgpICkKKyAgICAgICAgICAgICAgICAg ICAgcmMgPSBYODZFTVVMX1JFVFJZOworI2VuZGlmCisgICAgICAgICAgICB9CisKKyAgICAgICAg ICAgIGlmICggdmV4LncgKQorICAgICAgICAgICAgICAgIG1hc2sucXdbaV0gPSAwOworICAgICAg ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1hc2suZHdbaV0gPSAwOworICAgICAgICB9CisK KyAgICAgICAgLyogV3JpdGUgZGVzdGluYXRpb24gYW5kIG1hc2sgcmVnaXN0ZXJzLiAqLworICAg ICAgICBvcGMgPSBpbml0X3ByZWZpeGVzKHN0dWIpOworICAgICAgICBwdmV4ID0gY29weV9WRVgo b3BjLCB2ZXgpOworICAgICAgICBwdmV4LT5vcGN4ID0gdmV4XzBmOworICAgICAgICBvcGNbMF0g PSAweDZmOyAvKiB2bW92ZHFhICovCisgICAgICAgIC8qIFVzZSBtb2RybV9yZWcgYXMgZGVzdGlu YXRpb24gYW5kICglcmF4KSBhcyBzb3VyY2UuICovCisgICAgICAgIHB2ZXgtPnIgPSAhbW9kZV82 NGJpdCgpIHx8ICEobW9kcm1fcmVnICYgOCk7CisgICAgICAgIHB2ZXgtPmIgPSAxOworICAgICAg ICBvcGNbMV0gPSAobW9kcm1fcmVnICYgNykgPDwgMzsKKyAgICAgICAgcHZleC0+cmVnID0gMHhm OworICAgICAgICBvcGNbMl0gPSAweGMzOworCisgICAgICAgIGludm9rZV9zdHViKCIiLCAiIiwg IittIiAoKm1tdmFscCkgOiAiYSIgKG1tdmFscCkpOworCisgICAgICAgIHB2ZXgtPnBmeCA9IHZl eF9mMzsgLyogdm1vdmRxdSAqLworICAgICAgICAvKiBTd2l0Y2ggdG8gbWFza19yZWcgYXMgZGVz dGluYXRpb24uICovCisgICAgICAgIHB2ZXgtPnIgPSAhbW9kZV82NGJpdCgpIHx8ICEobWFza19y ZWcgJiA4KTsKKyAgICAgICAgb3BjWzFdID0gKG1hc2tfcmVnICYgNykgPDwgMzsKKworICAgICAg ICBpbnZva2Vfc3R1YigiIiwgIiIsICIrbSIgKG1hc2spIDogImEiICgmbWFzaykpOworICAgICAg ICBwdXRfc3R1YihzdHViKTsKKworICAgICAgICBzdGF0ZS0+c2ltZF9zaXplID0gc2ltZF9ub25l OworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82Nigw eDBmMzgsIDB4OTYpOiAvKiB2Zm1hZGRzdWIxMzJwe3MsZH0ge3gseX1tbS9tZW0se3gseX1tbSx7 eCx5fW1tICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDk3KTogLyog dmZtc3ViYWRkMTMycHtzLGR9IHt4LHl9bW0vbWVtLHt4LHl9bW0se3gseX1tbSAqLwogICAgIGNh c2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzOCwgMHg5OCk6IC8qIHZmbWFkZDEzMnB7cyxkfSB7 eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlLmMKQEAgLTEwLDYgKzEwLDcgQEAK ICAqLwogCiAjaW5jbHVkZSA8eGVuL2RvbWFpbl9wYWdlLmg+CisjaW5jbHVkZSA8eGVuL2V2ZW50 Lmg+CiAjaW5jbHVkZSA8YXNtL3g4Nl9lbXVsYXRlLmg+CiAjaW5jbHVkZSA8YXNtL2FzbV9kZWZu cy5oPiAvKiBtYXJrX3JlZ3NfZGlydHkoKSAqLwogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4g LyogY3VycmVudF9jcHVfaW5mbyAqLwoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs