From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KZ8qg-0003mS-Gl for qemu-devel@nongnu.org; Fri, 29 Aug 2008 14:37:30 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KZ8qf-0003mG-JH for qemu-devel@nongnu.org; Fri, 29 Aug 2008 14:37:30 -0400 Received: from [199.232.76.173] (port=42732 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KZ8qf-0003mD-F4 for qemu-devel@nongnu.org; Fri, 29 Aug 2008 14:37:29 -0400 Received: from yx-out-1718.google.com ([74.125.44.156]:16291) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KZ8qf-0003WO-2D for qemu-devel@nongnu.org; Fri, 29 Aug 2008 14:37:29 -0400 Received: by yx-out-1718.google.com with SMTP id 3so496234yxi.82 for ; Fri, 29 Aug 2008 11:37:27 -0700 (PDT) Message-ID: Date: Fri, 29 Aug 2008 21:37:26 +0300 From: "Blue Swirl" Subject: Re: [Qemu-devel] [sparc64] qemu crashes after the "OpenBIOS for Sparc64" banner is printed In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_13063_18792892.1220035046427" References: <48B6A035.2090105@jermar.eu> <48B6CD69.5020101@jermar.eu> <48B6D967.6090604@jermar.eu> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jakub Jermar Cc: qemu-devel@nongnu.org ------=_Part_13063_18792892.1220035046427 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 8/28/08, Blue Swirl wrote: > On 8/28/08, Blue Swirl wrote: > > On 8/28/08, Jakub Jermar wrote: > > > > > Blue Swirl wrote: > > > > > > > > > > > > > > > > > > What host? On my amd64 and using the latest OpenBIOS I get this: > > > > > > > > > > > > > > > > > > > > > It works on amd64 for me too, so it's an ia32 issue. > > > If I sent you an ia32 coredump, would that be of any help to you? > > > > > > No thanks, I can no reproduce it. Maybe the reason can be found with bisection. > > > f2bc7e7fa175b61a20c6f10c324d7c4d68af676f is first bad commit > commit f2bc7e7fa175b61a20c6f10c324d7c4d68af676f > Author: blueswir1 > Date: Tue May 27 17:35:30 2008 +0000 > > Move non-op functions from op_helper.c to helper.c and vice versa. > Rearrange interrupt handling to match other targets. > > > git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4590 > c046a42c-6fe2-441c-8c8c-71466251a162 > > :100644 100644 65af9a6d879e922ad0e90bd110f087ac81032bcf > 5e64fa43cae3b7fc12507621351cd4d0b82cb4b0 M cpu-exec.c > :040000 040000 f519a87338e29fd5d3a642698fd4dd405bf19024 > adfd50c255dccdee1098c3131cca5c20453d19f9 M target-sparc Surprisingly it was moving of do_interrupt to helper.c that caused the bug. Moving it back to op_helper.c allows Sparc64 to boot. I'm still trying to understand the real cause of the bug and to find if there is some other way of fixing this. This kind of voodoo makes me nervous. ------=_Part_13063_18792892.1220035046427 Content-Type: plain/text; name=fix_sparc64_on_i386.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkh5cee3 Content-Disposition: attachment; filename=fix_sparc64_on_i386.diff SW5kZXg6IHFlbXUvdGFyZ2V0LXNwYXJjL2hlbHBlci5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3Jp Zy90YXJnZXQtc3BhcmMvaGVscGVyLmMJMjAwOC0wOC0yOCAxOTo0NDowNS4wMDAwMDAwMDAgKzAw MDAKKysrIHFlbXUvdGFyZ2V0LXNwYXJjL2hlbHBlci5jCTIwMDgtMDgtMjkgMTg6MjA6NTEuMDAw MDAwMDAwICswMDAwCkBAIC02MzksMjM1ICs2MzksNiBAQAogfQogI2VuZGlmCiAKLSNpZmRlZiBU QVJHRVRfU1BBUkM2NAotI2lmZGVmIERFQlVHX1BDQUxMCi1zdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGV4Y3BfbmFtZXNbMHg4MF0gPSB7Ci0gICAgW1RUX1RGQVVMVF0gPSAiSW5zdHJ1Y3Rpb24g QWNjZXNzIEZhdWx0IiwKLSAgICBbVFRfVE1JU1NdID0gIkluc3RydWN0aW9uIEFjY2VzcyBNTVUg TWlzcyIsCi0gICAgW1RUX0NPREVfQUNDRVNTXSA9ICJJbnN0cnVjdGlvbiBBY2Nlc3MgRXJyb3Ii LAotICAgIFtUVF9JTExfSU5TTl0gPSAiSWxsZWdhbCBJbnN0cnVjdGlvbiIsCi0gICAgW1RUX1BS SVZfSU5TTl0gPSAiUHJpdmlsZWdlZCBJbnN0cnVjdGlvbiIsCi0gICAgW1RUX05GUFVfSU5TTl0g PSAiRlBVIERpc2FibGVkIiwKLSAgICBbVFRfRlBfRVhDUF0gPSAiRlBVIEV4Y2VwdGlvbiIsCi0g ICAgW1RUX1RPVkZdID0gIlRhZyBPdmVyZmxvdyIsCi0gICAgW1RUX0NMUldJTl0gPSAiQ2xlYW4g V2luZG93cyIsCi0gICAgW1RUX0RJVl9aRVJPXSA9ICJEaXZpc2lvbiBCeSBaZXJvIiwKLSAgICBb VFRfREZBVUxUXSA9ICJEYXRhIEFjY2VzcyBGYXVsdCIsCi0gICAgW1RUX0RNSVNTXSA9ICJEYXRh IEFjY2VzcyBNTVUgTWlzcyIsCi0gICAgW1RUX0RBVEFfQUNDRVNTXSA9ICJEYXRhIEFjY2VzcyBF cnJvciIsCi0gICAgW1RUX0RQUk9UXSA9ICJEYXRhIFByb3RlY3Rpb24gRXJyb3IiLAotICAgIFtU VF9VTkFMSUdORURdID0gIlVuYWxpZ25lZCBNZW1vcnkgQWNjZXNzIiwKLSAgICBbVFRfUFJJVl9B Q1RdID0gIlByaXZpbGVnZWQgQWN0aW9uIiwKLSAgICBbVFRfRVhUSU5UIHwgMHgxXSA9ICJFeHRl cm5hbCBJbnRlcnJ1cHQgMSIsCi0gICAgW1RUX0VYVElOVCB8IDB4Ml0gPSAiRXh0ZXJuYWwgSW50 ZXJydXB0IDIiLAotICAgIFtUVF9FWFRJTlQgfCAweDNdID0gIkV4dGVybmFsIEludGVycnVwdCAz IiwKLSAgICBbVFRfRVhUSU5UIHwgMHg0XSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgNCIsCi0gICAg W1RUX0VYVElOVCB8IDB4NV0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDUiLAotICAgIFtUVF9FWFRJ TlQgfCAweDZdID0gIkV4dGVybmFsIEludGVycnVwdCA2IiwKLSAgICBbVFRfRVhUSU5UIHwgMHg3 XSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgNyIsCi0gICAgW1RUX0VYVElOVCB8IDB4OF0gPSAiRXh0 ZXJuYWwgSW50ZXJydXB0IDgiLAotICAgIFtUVF9FWFRJTlQgfCAweDldID0gIkV4dGVybmFsIElu dGVycnVwdCA5IiwKLSAgICBbVFRfRVhUSU5UIHwgMHhhXSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQg MTAiLAotICAgIFtUVF9FWFRJTlQgfCAweGJdID0gIkV4dGVybmFsIEludGVycnVwdCAxMSIsCi0g ICAgW1RUX0VYVElOVCB8IDB4Y10gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDEyIiwKLSAgICBbVFRf RVhUSU5UIHwgMHhkXSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgMTMiLAotICAgIFtUVF9FWFRJTlQg fCAweGVdID0gIkV4dGVybmFsIEludGVycnVwdCAxNCIsCi0gICAgW1RUX0VYVElOVCB8IDB4Zl0g PSAiRXh0ZXJuYWwgSW50ZXJydXB0IDE1IiwKLX07Ci0jZW5kaWYKLQotdm9pZCBkb19pbnRlcnJ1 cHQoQ1BVU3RhdGUgKmVudikKLXsKLSAgICBpbnQgaW50bm8gPSBlbnYtPmV4Y2VwdGlvbl9pbmRl eDsKLQotI2lmZGVmIERFQlVHX1BDQUxMCi0gICAgaWYgKGxvZ2xldmVsICYgQ1BVX0xPR19JTlQp IHsKLSAgICAgICAgc3RhdGljIGludCBjb3VudDsKLSAgICAgICAgY29uc3QgY2hhciAqbmFtZTsK LQotICAgICAgICBpZiAoaW50bm8gPCAwIHx8IGludG5vID49IDB4MTgwKQotICAgICAgICAgICAg bmFtZSA9ICJVbmtub3duIjsKLSAgICAgICAgZWxzZSBpZiAoaW50bm8gPj0gMHgxMDApCi0gICAg ICAgICAgICBuYW1lID0gIlRyYXAgSW5zdHJ1Y3Rpb24iOwotICAgICAgICBlbHNlIGlmIChpbnRu byA+PSAweGMwKQotICAgICAgICAgICAgbmFtZSA9ICJXaW5kb3cgRmlsbCI7Ci0gICAgICAgIGVs c2UgaWYgKGludG5vID49IDB4ODApCi0gICAgICAgICAgICBuYW1lID0gIldpbmRvdyBTcGlsbCI7 Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbmFtZSA9IGV4Y3BfbmFtZXNbaW50bm9dOwot ICAgICAgICAgICAgaWYgKCFuYW1lKQotICAgICAgICAgICAgICAgIG5hbWUgPSAiVW5rbm93biI7 Ci0gICAgICAgIH0KLQotICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICIlNmQ6ICVzICh2PSUwNHgp IHBjPSUwMTYiIFBSSXg2NCAiIG5wYz0lMDE2IiBQUkl4NjQKLSAgICAgICAgICAgICAgICAiIFNQ PSUwMTYiIFBSSXg2NCAiXG4iLAotICAgICAgICAgICAgICAgIGNvdW50LCBuYW1lLCBpbnRubywK LSAgICAgICAgICAgICAgICBlbnYtPnBjLAotICAgICAgICAgICAgICAgIGVudi0+bnBjLCBlbnYt PnJlZ3dwdHJbNl0pOwotICAgICAgICBjcHVfZHVtcF9zdGF0ZShlbnYsIGxvZ2ZpbGUsIGZwcmlu dGYsIDApOwotI2lmIDAKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGk7Ci0gICAgICAgICAg ICB1aW50OF90ICpwdHI7Ci0KLSAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgIiAgICAgICBj b2RlPSIpOwotICAgICAgICAgICAgcHRyID0gKHVpbnQ4X3QgKillbnYtPnBjOwotICAgICAgICAg ICAgZm9yKGkgPSAwOyBpIDwgMTY7IGkrKykgewotICAgICAgICAgICAgICAgIGZwcmludGYobG9n ZmlsZSwgIiAlMDJ4IiwgbGR1YihwdHIgKyBpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg ICBmcHJpbnRmKGxvZ2ZpbGUsICJcbiIpOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgY291 bnQrKzsKLSAgICB9Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZKQotICAg IGlmIChlbnYtPnRsID49IGVudi0+bWF4dGwpIHsKLSAgICAgICAgY3B1X2Fib3J0KGVudiwgIlRy YXAgMHglMDR4IHdoaWxlIHRyYXAgbGV2ZWwgKCVkKSA+PSBNQVhUTCAoJWQpLCIKLSAgICAgICAg ICAgICAgICAgICIgRXJyb3Igc3RhdGUiLCBlbnYtPmV4Y2VwdGlvbl9pbmRleCwgZW52LT50bCwg ZW52LT5tYXh0bCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLSAgICBpZiAoZW52 LT50bCA8IGVudi0+bWF4dGwgLSAxKSB7Ci0gICAgICAgIGVudi0+dGwrKzsKLSAgICB9IGVsc2Ug ewotICAgICAgICBlbnYtPnBzdGF0ZSB8PSBQU19SRUQ7Ci0gICAgICAgIGlmIChlbnYtPnRsIDwg ZW52LT5tYXh0bCkKLSAgICAgICAgICAgIGVudi0+dGwrKzsKLSAgICB9Ci0gICAgZW52LT50c3B0 ciA9ICZlbnYtPnRzW2Vudi0+dGwgJiBNQVhUTF9NQVNLXTsKLSAgICBlbnYtPnRzcHRyLT50c3Rh dGUgPSAoKHVpbnQ2NF90KUdFVF9DQ1IoZW52KSA8PCAzMikgfAotICAgICAgICAoKGVudi0+YXNp ICYgMHhmZikgPDwgMjQpIHwgKChlbnYtPnBzdGF0ZSAmIDB4ZjNmKSA8PCA4KSB8Ci0gICAgICAg IEdFVF9DV1A2NChlbnYpOwotICAgIGVudi0+dHNwdHItPnRwYyA9IGVudi0+cGM7Ci0gICAgZW52 LT50c3B0ci0+dG5wYyA9IGVudi0+bnBjOwotICAgIGVudi0+dHNwdHItPnR0ID0gaW50bm87Ci0g ICAgaWYgKCEoZW52LT5kZWYtPmZlYXR1cmVzICYgQ1BVX0ZFQVRVUkVfR0wpKSB7Ci0gICAgICAg IHN3aXRjaCAoaW50bm8pIHsKLSAgICAgICAgY2FzZSBUVF9JVkVDOgotICAgICAgICAgICAgY2hh bmdlX3BzdGF0ZShQU19QRUYgfCBQU19QUklWIHwgUFNfSUcpOwotICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgIGNhc2UgVFRfVEZBVUxUOgotICAgICAgICBjYXNlIFRUX1RNSVNTOgotICAgICAg ICBjYXNlIFRUX0RGQVVMVDoKLSAgICAgICAgY2FzZSBUVF9ETUlTUzoKLSAgICAgICAgY2FzZSBU VF9EUFJPVDoKLSAgICAgICAgICAgIGNoYW5nZV9wc3RhdGUoUFNfUEVGIHwgUFNfUFJJViB8IFBT X01HKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg Y2hhbmdlX3BzdGF0ZShQU19QRUYgfCBQU19QUklWIHwgUFNfQUcpOwotICAgICAgICAgICAgYnJl YWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGludG5vID09IFRUX0NMUldJTikKLSAgICAg ICAgY3B1X3NldF9jd3AoZW52LCBjcHVfY3dwX2RlYyhlbnYsIGVudi0+Y3dwIC0gMSkpOwotICAg IGVsc2UgaWYgKChpbnRubyAmIDB4MWMwKSA9PSBUVF9TUElMTCkKLSAgICAgICAgY3B1X3NldF9j d3AoZW52LCBjcHVfY3dwX2RlYyhlbnYsIGVudi0+Y3dwIC0gZW52LT5jYW5zYXZlIC0gMikpOwot ICAgIGVsc2UgaWYgKChpbnRubyAmIDB4MWMwKSA9PSBUVF9GSUxMKQotICAgICAgICBjcHVfc2V0 X2N3cChlbnYsIGNwdV9jd3BfaW5jKGVudiwgZW52LT5jd3AgKyAxKSk7Ci0gICAgZW52LT50YnIg Jj0gfjB4N2ZmZlVMTDsKLSAgICBlbnYtPnRiciB8PSAoKGVudi0+dGwgPiAxKSA/IDEgPDwgMTQg OiAwKSB8IChpbnRubyA8PCA1KTsKLSAgICBlbnYtPnBjID0gZW52LT50YnI7Ci0gICAgZW52LT5u cGMgPSBlbnYtPnBjICsgNDsKLSAgICBlbnYtPmV4Y2VwdGlvbl9pbmRleCA9IDA7Ci19Ci0jZWxz ZQotI2lmZGVmIERFQlVHX1BDQUxMCi1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGV4Y3BfbmFt ZXNbMHg4MF0gPSB7Ci0gICAgW1RUX1RGQVVMVF0gPSAiSW5zdHJ1Y3Rpb24gQWNjZXNzIEZhdWx0 IiwKLSAgICBbVFRfSUxMX0lOU05dID0gIklsbGVnYWwgSW5zdHJ1Y3Rpb24iLAotICAgIFtUVF9Q UklWX0lOU05dID0gIlByaXZpbGVnZWQgSW5zdHJ1Y3Rpb24iLAotICAgIFtUVF9ORlBVX0lOU05d ID0gIkZQVSBEaXNhYmxlZCIsCi0gICAgW1RUX1dJTl9PVkZdID0gIldpbmRvdyBPdmVyZmxvdyIs Ci0gICAgW1RUX1dJTl9VTkZdID0gIldpbmRvdyBVbmRlcmZsb3ciLAotICAgIFtUVF9VTkFMSUdO RURdID0gIlVuYWxpZ25lZCBNZW1vcnkgQWNjZXNzIiwKLSAgICBbVFRfRlBfRVhDUF0gPSAiRlBV IEV4Y2VwdGlvbiIsCi0gICAgW1RUX0RGQVVMVF0gPSAiRGF0YSBBY2Nlc3MgRmF1bHQiLAotICAg IFtUVF9UT1ZGXSA9ICJUYWcgT3ZlcmZsb3ciLAotICAgIFtUVF9FWFRJTlQgfCAweDFdID0gIkV4 dGVybmFsIEludGVycnVwdCAxIiwKLSAgICBbVFRfRVhUSU5UIHwgMHgyXSA9ICJFeHRlcm5hbCBJ bnRlcnJ1cHQgMiIsCi0gICAgW1RUX0VYVElOVCB8IDB4M10gPSAiRXh0ZXJuYWwgSW50ZXJydXB0 IDMiLAotICAgIFtUVF9FWFRJTlQgfCAweDRdID0gIkV4dGVybmFsIEludGVycnVwdCA0IiwKLSAg ICBbVFRfRVhUSU5UIHwgMHg1XSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgNSIsCi0gICAgW1RUX0VY VElOVCB8IDB4Nl0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDYiLAotICAgIFtUVF9FWFRJTlQgfCAw eDddID0gIkV4dGVybmFsIEludGVycnVwdCA3IiwKLSAgICBbVFRfRVhUSU5UIHwgMHg4XSA9ICJF eHRlcm5hbCBJbnRlcnJ1cHQgOCIsCi0gICAgW1RUX0VYVElOVCB8IDB4OV0gPSAiRXh0ZXJuYWwg SW50ZXJydXB0IDkiLAotICAgIFtUVF9FWFRJTlQgfCAweGFdID0gIkV4dGVybmFsIEludGVycnVw dCAxMCIsCi0gICAgW1RUX0VYVElOVCB8IDB4Yl0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDExIiwK LSAgICBbVFRfRVhUSU5UIHwgMHhjXSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgMTIiLAotICAgIFtU VF9FWFRJTlQgfCAweGRdID0gIkV4dGVybmFsIEludGVycnVwdCAxMyIsCi0gICAgW1RUX0VYVElO VCB8IDB4ZV0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDE0IiwKLSAgICBbVFRfRVhUSU5UIHwgMHhm XSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgMTUiLAotICAgIFtUVF9UT1ZGXSA9ICJUYWcgT3ZlcmZs b3ciLAotICAgIFtUVF9DT0RFX0FDQ0VTU10gPSAiSW5zdHJ1Y3Rpb24gQWNjZXNzIEVycm9yIiwK LSAgICBbVFRfREFUQV9BQ0NFU1NdID0gIkRhdGEgQWNjZXNzIEVycm9yIiwKLSAgICBbVFRfRElW X1pFUk9dID0gIkRpdmlzaW9uIEJ5IFplcm8iLAotICAgIFtUVF9OQ1BfSU5TTl0gPSAiQ29wcm9j ZXNzb3IgRGlzYWJsZWQiLAotfTsKLSNlbmRpZgotCi12b2lkIGRvX2ludGVycnVwdChDUFVTdGF0 ZSAqZW52KQotewotICAgIGludCBjd3AsIGludG5vID0gZW52LT5leGNlcHRpb25faW5kZXg7Ci0K LSNpZmRlZiBERUJVR19QQ0FMTAotICAgIGlmIChsb2dsZXZlbCAmIENQVV9MT0dfSU5UKSB7Ci0g ICAgICAgIHN0YXRpYyBpbnQgY291bnQ7Ci0gICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0KLSAg ICAgICAgaWYgKGludG5vIDwgMCB8fCBpbnRubyA+PSAweDEwMCkKLSAgICAgICAgICAgIG5hbWUg PSAiVW5rbm93biI7Ci0gICAgICAgIGVsc2UgaWYgKGludG5vID49IDB4ODApCi0gICAgICAgICAg ICBuYW1lID0gIlRyYXAgSW5zdHJ1Y3Rpb24iOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg IG5hbWUgPSBleGNwX25hbWVzW2ludG5vXTsKLSAgICAgICAgICAgIGlmICghbmFtZSkKLSAgICAg ICAgICAgICAgICBuYW1lID0gIlVua25vd24iOwotICAgICAgICB9Ci0KLSAgICAgICAgZnByaW50 Zihsb2dmaWxlLCAiJTZkOiAlcyAodj0lMDJ4KSBwYz0lMDh4IG5wYz0lMDh4IFNQPSUwOHhcbiIs Ci0gICAgICAgICAgICAgICAgY291bnQsIG5hbWUsIGludG5vLAotICAgICAgICAgICAgICAgIGVu di0+cGMsCi0gICAgICAgICAgICAgICAgZW52LT5ucGMsIGVudi0+cmVnd3B0cls2XSk7Ci0gICAg ICAgIGNwdV9kdW1wX3N0YXRlKGVudiwgbG9nZmlsZSwgZnByaW50ZiwgMCk7Ci0jaWYgMAotICAg ICAgICB7Ci0gICAgICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgIHVpbnQ4X3QgKnB0cjsKLQot ICAgICAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiICAgICAgIGNvZGU9Iik7Ci0gICAgICAgICAg ICBwdHIgPSAodWludDhfdCAqKWVudi0+cGM7Ci0gICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCAx NjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiICUwMngiLCBsZHVi KHB0ciArIGkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwg IlxuIik7Ci0gICAgICAgIH0KLSNlbmRpZgotICAgICAgICBjb3VudCsrOwotICAgIH0KLSNlbmRp ZgotI2lmICFkZWZpbmVkKENPTkZJR19VU0VSX09OTFkpCi0gICAgaWYgKGVudi0+cHNyZXQgPT0g MCkgewotICAgICAgICBjcHVfYWJvcnQoZW52LCAiVHJhcCAweCUwMnggd2hpbGUgaW50ZXJydXB0 cyBkaXNhYmxlZCwgRXJyb3Igc3RhdGUiLAotICAgICAgICAgICAgICAgICAgZW52LT5leGNlcHRp b25faW5kZXgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0gICAgZW52LT5wc3Jl dCA9IDA7Ci0gICAgY3dwID0gY3B1X2N3cF9kZWMoZW52LCBlbnYtPmN3cCAtIDEpOwotICAgIGNw dV9zZXRfY3dwKGVudiwgY3dwKTsKLSAgICBlbnYtPnJlZ3dwdHJbOV0gPSBlbnYtPnBjOwotICAg IGVudi0+cmVnd3B0clsxMF0gPSBlbnYtPm5wYzsKLSAgICBlbnYtPnBzcnBzID0gZW52LT5wc3Jz OwotICAgIGVudi0+cHNycyA9IDE7Ci0gICAgZW52LT50YnIgPSAoZW52LT50YnIgJiBUQlJfQkFT RV9NQVNLKSB8IChpbnRubyA8PCA0KTsKLSAgICBlbnYtPnBjID0gZW52LT50YnI7Ci0gICAgZW52 LT5ucGMgPSBlbnYtPnBjICsgNDsKLSAgICBlbnYtPmV4Y2VwdGlvbl9pbmRleCA9IDA7Ci19Ci0j ZW5kaWYKLQogdm9pZCBtZW1jcHkzMih0YXJnZXRfdWxvbmcgKmRzdCwgY29uc3QgdGFyZ2V0X3Vs b25nICpzcmMpCiB7CiAgICAgZHN0WzBdID0gc3JjWzBdOwpJbmRleDogcWVtdS90YXJnZXQtc3Bh cmMvb3BfaGVscGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3RhcmdldC1zcGFyYy9vcF9o ZWxwZXIuYwkyMDA4LTA4LTI4IDE5OjU0OjA3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS90YXJn ZXQtc3BhcmMvb3BfaGVscGVyLmMJMjAwOC0wOC0yOSAxODoyMTowNC4wMDAwMDAwMDAgKzAwMDAK QEAgLTI3MzgsNiArMjczOCwyMzQgQEAKICAgICBhZGRyICY9IH43OwogICAgIHRiX2ludmFsaWRh dGVfcGFnZV9yYW5nZShhZGRyLCBhZGRyICsgOCk7CiB9CisjaWZkZWYgVEFSR0VUX1NQQVJDNjQK KyNpZmRlZiBERUJVR19QQ0FMTAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBleGNwX25hbWVz WzB4ODBdID0geworICAgIFtUVF9URkFVTFRdID0gIkluc3RydWN0aW9uIEFjY2VzcyBGYXVsdCIs CisgICAgW1RUX1RNSVNTXSA9ICJJbnN0cnVjdGlvbiBBY2Nlc3MgTU1VIE1pc3MiLAorICAgIFtU VF9DT0RFX0FDQ0VTU10gPSAiSW5zdHJ1Y3Rpb24gQWNjZXNzIEVycm9yIiwKKyAgICBbVFRfSUxM X0lOU05dID0gIklsbGVnYWwgSW5zdHJ1Y3Rpb24iLAorICAgIFtUVF9QUklWX0lOU05dID0gIlBy aXZpbGVnZWQgSW5zdHJ1Y3Rpb24iLAorICAgIFtUVF9ORlBVX0lOU05dID0gIkZQVSBEaXNhYmxl ZCIsCisgICAgW1RUX0ZQX0VYQ1BdID0gIkZQVSBFeGNlcHRpb24iLAorICAgIFtUVF9UT1ZGXSA9 ICJUYWcgT3ZlcmZsb3ciLAorICAgIFtUVF9DTFJXSU5dID0gIkNsZWFuIFdpbmRvd3MiLAorICAg IFtUVF9ESVZfWkVST10gPSAiRGl2aXNpb24gQnkgWmVybyIsCisgICAgW1RUX0RGQVVMVF0gPSAi RGF0YSBBY2Nlc3MgRmF1bHQiLAorICAgIFtUVF9ETUlTU10gPSAiRGF0YSBBY2Nlc3MgTU1VIE1p c3MiLAorICAgIFtUVF9EQVRBX0FDQ0VTU10gPSAiRGF0YSBBY2Nlc3MgRXJyb3IiLAorICAgIFtU VF9EUFJPVF0gPSAiRGF0YSBQcm90ZWN0aW9uIEVycm9yIiwKKyAgICBbVFRfVU5BTElHTkVEXSA9 ICJVbmFsaWduZWQgTWVtb3J5IEFjY2VzcyIsCisgICAgW1RUX1BSSVZfQUNUXSA9ICJQcml2aWxl Z2VkIEFjdGlvbiIsCisgICAgW1RUX0VYVElOVCB8IDB4MV0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0 IDEiLAorICAgIFtUVF9FWFRJTlQgfCAweDJdID0gIkV4dGVybmFsIEludGVycnVwdCAyIiwKKyAg ICBbVFRfRVhUSU5UIHwgMHgzXSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgMyIsCisgICAgW1RUX0VY VElOVCB8IDB4NF0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDQiLAorICAgIFtUVF9FWFRJTlQgfCAw eDVdID0gIkV4dGVybmFsIEludGVycnVwdCA1IiwKKyAgICBbVFRfRVhUSU5UIHwgMHg2XSA9ICJF eHRlcm5hbCBJbnRlcnJ1cHQgNiIsCisgICAgW1RUX0VYVElOVCB8IDB4N10gPSAiRXh0ZXJuYWwg SW50ZXJydXB0IDciLAorICAgIFtUVF9FWFRJTlQgfCAweDhdID0gIkV4dGVybmFsIEludGVycnVw dCA4IiwKKyAgICBbVFRfRVhUSU5UIHwgMHg5XSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgOSIsCisg ICAgW1RUX0VYVElOVCB8IDB4YV0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDEwIiwKKyAgICBbVFRf RVhUSU5UIHwgMHhiXSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgMTEiLAorICAgIFtUVF9FWFRJTlQg fCAweGNdID0gIkV4dGVybmFsIEludGVycnVwdCAxMiIsCisgICAgW1RUX0VYVElOVCB8IDB4ZF0g PSAiRXh0ZXJuYWwgSW50ZXJydXB0IDEzIiwKKyAgICBbVFRfRVhUSU5UIHwgMHhlXSA9ICJFeHRl cm5hbCBJbnRlcnJ1cHQgMTQiLAorICAgIFtUVF9FWFRJTlQgfCAweGZdID0gIkV4dGVybmFsIElu dGVycnVwdCAxNSIsCit9OworI2VuZGlmCisKK3ZvaWQgZG9faW50ZXJydXB0KENQVVN0YXRlICpl bnYpCit7CisgICAgaW50IGludG5vID0gZW52LT5leGNlcHRpb25faW5kZXg7CisKKyNpZmRlZiBE RUJVR19QQ0FMTAorICAgIGlmIChsb2dsZXZlbCAmIENQVV9MT0dfSU5UKSB7CisgICAgICAgIHN0 YXRpYyBpbnQgY291bnQ7CisgICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CisKKyAgICAgICAgaWYg KGludG5vIDwgMCB8fCBpbnRubyA+PSAweDE4MCkKKyAgICAgICAgICAgIG5hbWUgPSAiVW5rbm93 biI7CisgICAgICAgIGVsc2UgaWYgKGludG5vID49IDB4MTAwKQorICAgICAgICAgICAgbmFtZSA9 ICJUcmFwIEluc3RydWN0aW9uIjsKKyAgICAgICAgZWxzZSBpZiAoaW50bm8gPj0gMHhjMCkKKyAg ICAgICAgICAgIG5hbWUgPSAiV2luZG93IEZpbGwiOworICAgICAgICBlbHNlIGlmIChpbnRubyA+ PSAweDgwKQorICAgICAgICAgICAgbmFtZSA9ICJXaW5kb3cgU3BpbGwiOworICAgICAgICBlbHNl IHsKKyAgICAgICAgICAgIG5hbWUgPSBleGNwX25hbWVzW2ludG5vXTsKKyAgICAgICAgICAgIGlm ICghbmFtZSkKKyAgICAgICAgICAgICAgICBuYW1lID0gIlVua25vd24iOworICAgICAgICB9CisK KyAgICAgICAgZnByaW50Zihsb2dmaWxlLCAiJTZkOiAlcyAodj0lMDR4KSBwYz0lMDE2IiBQUkl4 NjQgIiBucGM9JTAxNiIgUFJJeDY0CisgICAgICAgICAgICAgICAgIiBTUD0lMDE2IiBQUkl4NjQg IlxuIiwKKyAgICAgICAgICAgICAgICBjb3VudCwgbmFtZSwgaW50bm8sCisgICAgICAgICAgICAg ICAgZW52LT5wYywKKyAgICAgICAgICAgICAgICBlbnYtPm5wYywgZW52LT5yZWd3cHRyWzZdKTsK KyAgICAgICAgY3B1X2R1bXBfc3RhdGUoZW52LCBsb2dmaWxlLCBmcHJpbnRmLCAwKTsKKyNpZiAw CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgdWludDhfdCAqcHRy OworCisgICAgICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICIgICAgICAgY29kZT0iKTsKKyAgICAg ICAgICAgIHB0ciA9ICh1aW50OF90ICopZW52LT5wYzsKKyAgICAgICAgICAgIGZvcihpID0gMDsg aSA8IDE2OyBpKyspIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICIgJTAyeCIs IGxkdWIocHRyICsgaSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZnByaW50Zihsb2dm aWxlLCAiXG4iKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGNvdW50Kys7CisgICAgfQor I2VuZGlmCisjaWYgIWRlZmluZWQoQ09ORklHX1VTRVJfT05MWSkKKyAgICBpZiAoZW52LT50bCA+ PSBlbnYtPm1heHRsKSB7CisgICAgICAgIGNwdV9hYm9ydChlbnYsICJUcmFwIDB4JTA0eCB3aGls ZSB0cmFwIGxldmVsICglZCkgPj0gTUFYVEwgKCVkKSwiCisgICAgICAgICAgICAgICAgICAiIEVy cm9yIHN0YXRlIiwgZW52LT5leGNlcHRpb25faW5kZXgsIGVudi0+dGwsIGVudi0+bWF4dGwpOwor ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgaWYgKGVudi0+dGwgPCBlbnYtPm1h eHRsIC0gMSkgeworICAgICAgICBlbnYtPnRsKys7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZW52 LT5wc3RhdGUgfD0gUFNfUkVEOworICAgICAgICBpZiAoZW52LT50bCA8IGVudi0+bWF4dGwpCisg ICAgICAgICAgICBlbnYtPnRsKys7CisgICAgfQorICAgIGVudi0+dHNwdHIgPSAmZW52LT50c1tl bnYtPnRsICYgTUFYVExfTUFTS107CisgICAgZW52LT50c3B0ci0+dHN0YXRlID0gKCh1aW50NjRf dClHRVRfQ0NSKGVudikgPDwgMzIpIHwKKyAgICAgICAgKChlbnYtPmFzaSAmIDB4ZmYpIDw8IDI0 KSB8ICgoZW52LT5wc3RhdGUgJiAweGYzZikgPDwgOCkgfAorICAgICAgICBHRVRfQ1dQNjQoZW52 KTsKKyAgICBlbnYtPnRzcHRyLT50cGMgPSBlbnYtPnBjOworICAgIGVudi0+dHNwdHItPnRucGMg PSBlbnYtPm5wYzsKKyAgICBlbnYtPnRzcHRyLT50dCA9IGludG5vOworICAgIGlmICghKGVudi0+ ZGVmLT5mZWF0dXJlcyAmIENQVV9GRUFUVVJFX0dMKSkgeworICAgICAgICBzd2l0Y2ggKGludG5v KSB7CisgICAgICAgIGNhc2UgVFRfSVZFQzoKKyAgICAgICAgICAgIGNoYW5nZV9wc3RhdGUoUFNf UEVGIHwgUFNfUFJJViB8IFBTX0lHKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl IFRUX1RGQVVMVDoKKyAgICAgICAgY2FzZSBUVF9UTUlTUzoKKyAgICAgICAgY2FzZSBUVF9ERkFV TFQ6CisgICAgICAgIGNhc2UgVFRfRE1JU1M6CisgICAgICAgIGNhc2UgVFRfRFBST1Q6CisgICAg ICAgICAgICBjaGFuZ2VfcHN0YXRlKFBTX1BFRiB8IFBTX1BSSVYgfCBQU19NRyk7CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGNoYW5nZV9wc3RhdGUo UFNfUEVGIHwgUFNfUFJJViB8IFBTX0FHKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9 CisgICAgfQorICAgIGlmIChpbnRubyA9PSBUVF9DTFJXSU4pCisgICAgICAgIGNwdV9zZXRfY3dw KGVudiwgY3B1X2N3cF9kZWMoZW52LCBlbnYtPmN3cCAtIDEpKTsKKyAgICBlbHNlIGlmICgoaW50 bm8gJiAweDFjMCkgPT0gVFRfU1BJTEwpCisgICAgICAgIGNwdV9zZXRfY3dwKGVudiwgY3B1X2N3 cF9kZWMoZW52LCBlbnYtPmN3cCAtIGVudi0+Y2Fuc2F2ZSAtIDIpKTsKKyAgICBlbHNlIGlmICgo aW50bm8gJiAweDFjMCkgPT0gVFRfRklMTCkKKyAgICAgICAgY3B1X3NldF9jd3AoZW52LCBjcHVf Y3dwX2luYyhlbnYsIGVudi0+Y3dwICsgMSkpOworICAgIGVudi0+dGJyICY9IH4weDdmZmZVTEw7 CisgICAgZW52LT50YnIgfD0gKChlbnYtPnRsID4gMSkgPyAxIDw8IDE0IDogMCkgfCAoaW50bm8g PDwgNSk7CisgICAgZW52LT5wYyA9IGVudi0+dGJyOworICAgIGVudi0+bnBjID0gZW52LT5wYyAr IDQ7CisgICAgZW52LT5leGNlcHRpb25faW5kZXggPSAwOworfQorI2Vsc2UKKyNpZmRlZiBERUJV R19QQ0FMTAorc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBleGNwX25hbWVzWzB4ODBdID0gewor ICAgIFtUVF9URkFVTFRdID0gIkluc3RydWN0aW9uIEFjY2VzcyBGYXVsdCIsCisgICAgW1RUX0lM TF9JTlNOXSA9ICJJbGxlZ2FsIEluc3RydWN0aW9uIiwKKyAgICBbVFRfUFJJVl9JTlNOXSA9ICJQ cml2aWxlZ2VkIEluc3RydWN0aW9uIiwKKyAgICBbVFRfTkZQVV9JTlNOXSA9ICJGUFUgRGlzYWJs ZWQiLAorICAgIFtUVF9XSU5fT1ZGXSA9ICJXaW5kb3cgT3ZlcmZsb3ciLAorICAgIFtUVF9XSU5f VU5GXSA9ICJXaW5kb3cgVW5kZXJmbG93IiwKKyAgICBbVFRfVU5BTElHTkVEXSA9ICJVbmFsaWdu ZWQgTWVtb3J5IEFjY2VzcyIsCisgICAgW1RUX0ZQX0VYQ1BdID0gIkZQVSBFeGNlcHRpb24iLAor ICAgIFtUVF9ERkFVTFRdID0gIkRhdGEgQWNjZXNzIEZhdWx0IiwKKyAgICBbVFRfVE9WRl0gPSAi VGFnIE92ZXJmbG93IiwKKyAgICBbVFRfRVhUSU5UIHwgMHgxXSA9ICJFeHRlcm5hbCBJbnRlcnJ1 cHQgMSIsCisgICAgW1RUX0VYVElOVCB8IDB4Ml0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDIiLAor ICAgIFtUVF9FWFRJTlQgfCAweDNdID0gIkV4dGVybmFsIEludGVycnVwdCAzIiwKKyAgICBbVFRf RVhUSU5UIHwgMHg0XSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgNCIsCisgICAgW1RUX0VYVElOVCB8 IDB4NV0gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDUiLAorICAgIFtUVF9FWFRJTlQgfCAweDZdID0g IkV4dGVybmFsIEludGVycnVwdCA2IiwKKyAgICBbVFRfRVhUSU5UIHwgMHg3XSA9ICJFeHRlcm5h bCBJbnRlcnJ1cHQgNyIsCisgICAgW1RUX0VYVElOVCB8IDB4OF0gPSAiRXh0ZXJuYWwgSW50ZXJy dXB0IDgiLAorICAgIFtUVF9FWFRJTlQgfCAweDldID0gIkV4dGVybmFsIEludGVycnVwdCA5IiwK KyAgICBbVFRfRVhUSU5UIHwgMHhhXSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgMTAiLAorICAgIFtU VF9FWFRJTlQgfCAweGJdID0gIkV4dGVybmFsIEludGVycnVwdCAxMSIsCisgICAgW1RUX0VYVElO VCB8IDB4Y10gPSAiRXh0ZXJuYWwgSW50ZXJydXB0IDEyIiwKKyAgICBbVFRfRVhUSU5UIHwgMHhk XSA9ICJFeHRlcm5hbCBJbnRlcnJ1cHQgMTMiLAorICAgIFtUVF9FWFRJTlQgfCAweGVdID0gIkV4 dGVybmFsIEludGVycnVwdCAxNCIsCisgICAgW1RUX0VYVElOVCB8IDB4Zl0gPSAiRXh0ZXJuYWwg SW50ZXJydXB0IDE1IiwKKyAgICBbVFRfVE9WRl0gPSAiVGFnIE92ZXJmbG93IiwKKyAgICBbVFRf Q09ERV9BQ0NFU1NdID0gIkluc3RydWN0aW9uIEFjY2VzcyBFcnJvciIsCisgICAgW1RUX0RBVEFf QUNDRVNTXSA9ICJEYXRhIEFjY2VzcyBFcnJvciIsCisgICAgW1RUX0RJVl9aRVJPXSA9ICJEaXZp c2lvbiBCeSBaZXJvIiwKKyAgICBbVFRfTkNQX0lOU05dID0gIkNvcHJvY2Vzc29yIERpc2FibGVk IiwKK307CisjZW5kaWYKKwordm9pZCBkb19pbnRlcnJ1cHQoQ1BVU3RhdGUgKmVudikKK3sKKyAg ICBpbnQgY3dwLCBpbnRubyA9IGVudi0+ZXhjZXB0aW9uX2luZGV4OworCisjaWZkZWYgREVCVUdf UENBTEwKKyAgICBpZiAobG9nbGV2ZWwgJiBDUFVfTE9HX0lOVCkgeworICAgICAgICBzdGF0aWMg aW50IGNvdW50OworICAgICAgICBjb25zdCBjaGFyICpuYW1lOworCisgICAgICAgIGlmIChpbnRu byA8IDAgfHwgaW50bm8gPj0gMHgxMDApCisgICAgICAgICAgICBuYW1lID0gIlVua25vd24iOwor ICAgICAgICBlbHNlIGlmIChpbnRubyA+PSAweDgwKQorICAgICAgICAgICAgbmFtZSA9ICJUcmFw IEluc3RydWN0aW9uIjsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuYW1lID0gZXhjcF9u YW1lc1tpbnRub107CisgICAgICAgICAgICBpZiAoIW5hbWUpCisgICAgICAgICAgICAgICAgbmFt ZSA9ICJVbmtub3duIjsKKyAgICAgICAgfQorCisgICAgICAgIGZwcmludGYobG9nZmlsZSwgIiU2 ZDogJXMgKHY9JTAyeCkgcGM9JTA4eCBucGM9JTA4eCBTUD0lMDh4XG4iLAorICAgICAgICAgICAg ICAgIGNvdW50LCBuYW1lLCBpbnRubywKKyAgICAgICAgICAgICAgICBlbnYtPnBjLAorICAgICAg ICAgICAgICAgIGVudi0+bnBjLCBlbnYtPnJlZ3dwdHJbNl0pOworICAgICAgICBjcHVfZHVtcF9z dGF0ZShlbnYsIGxvZ2ZpbGUsIGZwcmludGYsIDApOworI2lmIDAKKyAgICAgICAgeworICAgICAg ICAgICAgaW50IGk7CisgICAgICAgICAgICB1aW50OF90ICpwdHI7CisKKyAgICAgICAgICAgIGZw cmludGYobG9nZmlsZSwgIiAgICAgICBjb2RlPSIpOworICAgICAgICAgICAgcHRyID0gKHVpbnQ4 X3QgKillbnYtPnBjOworICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgMTY7IGkrKykgeworICAg ICAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgIiAlMDJ4IiwgbGR1YihwdHIgKyBpKSk7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICJcbiIpOworICAgICAg ICB9CisjZW5kaWYKKyAgICAgICAgY291bnQrKzsKKyAgICB9CisjZW5kaWYKKyNpZiAhZGVmaW5l ZChDT05GSUdfVVNFUl9PTkxZKQorICAgIGlmIChlbnYtPnBzcmV0ID09IDApIHsKKyAgICAgICAg Y3B1X2Fib3J0KGVudiwgIlRyYXAgMHglMDJ4IHdoaWxlIGludGVycnVwdHMgZGlzYWJsZWQsIEVy cm9yIHN0YXRlIiwKKyAgICAgICAgICAgICAgICAgIGVudi0+ZXhjZXB0aW9uX2luZGV4KTsKKyAg ICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorICAgIGVudi0+cHNyZXQgPSAwOworICAgIGN3 cCA9IGNwdV9jd3BfZGVjKGVudiwgZW52LT5jd3AgLSAxKTsKKyAgICBjcHVfc2V0X2N3cChlbnYs IGN3cCk7CisgICAgZW52LT5yZWd3cHRyWzldID0gZW52LT5wYzsKKyAgICBlbnYtPnJlZ3dwdHJb MTBdID0gZW52LT5ucGM7CisgICAgZW52LT5wc3JwcyA9IGVudi0+cHNyczsKKyAgICBlbnYtPnBz cnMgPSAxOworICAgIGVudi0+dGJyID0gKGVudi0+dGJyICYgVEJSX0JBU0VfTUFTSykgfCAoaW50 bm8gPDwgNCk7CisgICAgZW52LT5wYyA9IGVudi0+dGJyOworICAgIGVudi0+bnBjID0gZW52LT5w YyArIDQ7CisgICAgZW52LT5leGNlcHRpb25faW5kZXggPSAwOworfQorI2VuZGlmCiAKICNpZiAh ZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZKQogCg== ------=_Part_13063_18792892.1220035046427--