Mailing-List: contact cygwin-apps-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-apps-owner AT sourceware DOT cygnus DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Delivered-To: mailing list cygwin-apps AT sources DOT redhat DOT com Message-ID: <20010517045631.6959.qmail@web6404.mail.yahoo.com> Date: Thu, 17 May 2001 14:56:31 +1000 (EST) From: =?iso-8859-1?q?Danny=20Smith?= Subject: sjlj EH fixes To: cygwin-apps MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1619816673-990075391=:3810" Content-Transfer-Encoding: 8bit --0-1619816673-990075391=:3810 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Content-Disposition: inline Shortly (1 or 2 days) after 2.95.3 release, the sjlj fixes that were taken out of 2.95.3 were put back into the branch. (From what I understand they only caused problems on hpux). I have noted no problems with them on mingw and they do fix some problems, for example: exception not caught with -O1 or higher: https://sourceforge.net/tracker/index.php?func=detail&aid=227047&group_id=2435&atid=102435 Attached diff file backports these to gcc-2.95.3-4 (cygwin-mingw special). NB: For cygwin, these patches are not dependent on ones earlier today, but they are for mingw (since mingw hasn't released 2.95.3 midnight special yet ;-\) Danny _____________________________________________________________________________ http://messenger.yahoo.com.au - Yahoo! Messenger - Voice chat, mail alerts, stock quotes and favourite news and lots more! --0-1619816673-990075391=:3810 Content-Type: application/octet-stream; name="sjlj.diff" Content-Transfer-Encoding: base64 Content-Description: sjlj.diff Content-Disposition: attachment; filename="sjlj.diff" Q2hhbmdlTG9nCjIwMDEtMDUtMTcgIERhbm55IFNtaXRoICA8ZGFubnlfcl9z bWl0aF8yMDAxQHlhaG9vLmNvbS5uej4KCglCYWNrcG9ydCBzamxqIGVoIGZp eGVzIGludG8gZ2NjIDIuOTUuMyAobWluZ3ctY3lnd2luIHNwZWNpYWwpCgky MDAxLTAzLTE5ICBCZXJuZCBTY2htaWR0ICA8YmVybmRzQHJlZGhhdC5jb20+ CgoJQnJpbmcgYmFjayB0aGUgc2psaiBlaCBmaXhlcy4KCSogZXhwci5jIChl eHBhbmRfYnVpbHRpbl9zZXRqbXBfc2V0dXApOiBOZXcuCgkoZXhwYW5kX2J1 aWx0aW5fc2V0am1wX3JlY2VpdmVyKTogTmV3LgoJKGV4cGFuZF9idWlsdGlu X3NldGptcCk6IFNwbGl0IG91dCBfc2V0dXAgYW5kIF9yZWNlaXZlciBmdW5j dGlvbnMuCglNb3ZlIGFyZ3VtZW50IHBhcnNpbmcgaW4gZnJvbSAuLi4KCShl eHBhbmRfYnVpbHRpbik6IC4uLiBoZXJlLgoJKiBleGNlcHQuYyAocmVjZWl2 ZV9leGNlcHRpb25fbGFiZWwpOiBCcmFuY2ggYXJvdW5kIHJlY2VpdmVyCgl1 bmxlc3MgbmV3LXN0eWxlIGV4Y2VwdGlvbnMuICBDYWxsIGV4cGFuZF9idWls dGluX3NldGptcF9yZWNlaXZlci4KCShzdGFydF9keW5hbWljX2hhbmRsZXIp OiBDYWxsIGV4cGFuZF9idWlsdGluX3NldGptcF9zZXR1cC4KCSogZXhwci5o OiBVcGRhdGUgYnVpbHRpbiBzZXRqbXAgZGVjbHMuCgoKCmRpZmYgLXVycGJC IGdjYy0yLjk1LjMtNFxnY2NcZXhjZXB0LmMgZ2NjLTIuOTUuMy00bVxnY2Nc ZXhjZXB0LmMKLS0tIGdjYy0yLjk1LjMtNFxnY2NcZXhjZXB0LmMJRnJpIE5v diAwNSAxNDowOTo0MiAxOTk5CisrKyBnY2MtMi45NS4zLTRtXGdjY1xleGNl cHQuYwlUaHUgTWF5IDE3IDEwOjQxOjUwIDIwMDEKQEAgLTcyMywyMSArNzIz LDQwIEBAIHN0YXRpYyB2b2lkCiByZWNlaXZlX2V4Y2VwdGlvbl9sYWJlbCAo aGFuZGxlcl9sYWJlbCkKICAgICAgcnR4IGhhbmRsZXJfbGFiZWw7CiB7Cisg IHJ0eCBhcm91bmRfbGFiZWwgPSBOVUxMX1JUWDsKKworICBpZiAoISBmbGFn X25ld19leGNlcHRpb25zIHx8IGV4Y2VwdGlvbnNfdmlhX2xvbmdqbXApCisg ICAgeworICAgICAgYXJvdW5kX2xhYmVsID0gZ2VuX2xhYmVsX3J0eCAoKTsK KyAgICAgIGVtaXRfanVtcCAoYXJvdW5kX2xhYmVsKTsKKyAgICAgIGVtaXRf YmFycmllciAoKTsKKyAgICB9CiAgIGVtaXRfbGFiZWwgKGhhbmRsZXJfbGFi ZWwpOwogICAKLSNpZmRlZiBIQVZFX2V4Y2VwdGlvbl9yZWNlaXZlcgogICBp ZiAoISBleGNlcHRpb25zX3ZpYV9sb25nam1wKQorICAgIHsKKyNpZmRlZiBI QVZFX2V4Y2VwdGlvbl9yZWNlaXZlcgogICAgIGlmIChIQVZFX2V4Y2VwdGlv bl9yZWNlaXZlcikKICAgICAgIGVtaXRfaW5zbiAoZ2VuX2V4Y2VwdGlvbl9y ZWNlaXZlciAoKSk7Ci0jZW5kaWYKLQotI2lmZGVmIEhBVkVfbm9ubG9jYWxf Z290b19yZWNlaXZlcgotICBpZiAoISBleGNlcHRpb25zX3ZpYV9sb25nam1w KQorICAgICAgZWxzZQorICNlbmRpZgorICNpZmRlZiBIQVZFX25vbmxvY2Fs X2dvdG9fcmVjZWl2ZXIKICAgICBpZiAoSEFWRV9ub25sb2NhbF9nb3RvX3Jl Y2VpdmVyKQogICAgICAgZW1pdF9pbnNuIChnZW5fbm9ubG9jYWxfZ290b19y ZWNlaXZlciAoKSk7CisgICAgICBlbHNlCisgI2VuZGlmCisJeyAvKiBOb3Ro aW5nICovIH0KKyAgICB9CisgIGVsc2UKKyAgICB7CisjaWZuZGVmIERPTlRf VVNFX0JVSUxUSU5fU0VUSk1QCisgICAgICBleHBhbmRfYnVpbHRpbl9zZXRq bXBfcmVjZWl2ZXIgKGhhbmRsZXJfbGFiZWwpOwogI2VuZGlmCi19CisgICAg fQogCisgIGlmIChhcm91bmRfbGFiZWwpCisgICAgZW1pdF9sYWJlbCAoYXJv dW5kX2xhYmVsKTsKK30KIAogc3RydWN0IGZ1bmNfZWhfZW50cnkgCiB7CkBA IC0xMzIwLDcgKzEzMzksNyBAQCBzdGF0aWMgdm9pZAogc3RhcnRfZHluYW1p Y19oYW5kbGVyICgpCiB7CiAgIHJ0eCBkaGMsIGRjYzsKLSAgcnR4IHgsIGFy ZywgYnVmOworICBydHggYXJnLCBidWY7CiAgIGludCBzaXplOwogCiAjaWZu ZGVmIERPTlRfVVNFX0JVSUxUSU5fU0VUSk1QCkBAIC0xMzYyLDE4ICsxMzgx LDE3IEBAIHN0YXJ0X2R5bmFtaWNfaGFuZGxlciAoKQogICBidWYgPSBwbHVz X2NvbnN0YW50IChYRVhQIChhcmcsIDApLCBHRVRfTU9ERV9TSVpFIChQbW9k ZSkqMik7CiAKICNpZmRlZiBET05UX1VTRV9CVUlMVElOX1NFVEpNUAotICB4 ID0gZW1pdF9saWJyYXJ5X2NhbGxfdmFsdWUgKHNldGptcF9saWJmdW5jLCBO VUxMX1JUWCwgMSwgU0ltb2RlLCAxLAorICB7CisgICAgcnR4IHg7CisgICAg eCA9IGVtaXRfbGlicmFyeV9jYWxsX3ZhbHVlIChzZXRqbXBfbGliZnVuYywg TlVMTF9SVFgsIExDVF9DT05TVCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVFlQRV9NT0RFIChpbnRlZ2VyX3R5cGVfbm9kZSksIDEsCiAJ CQkgICAgICAgYnVmLCBQbW9kZSk7CiAgIC8qIElmIHdlIGNvbWUgYmFjayBo ZXJlIGZvciBhIGNhdGNoLCB0cmFuc2ZlciBjb250cm9sIHRvIHRoZSBoYW5k bGVyLiAgKi8KICAganVtcGlmX3J0eCAoeCwgZWhzdGFjay50b3AtPmVudHJ5 LT5leGNlcHRpb25faGFuZGxlcl9sYWJlbCk7CisgIH0KICNlbHNlCi0gIHsK LSAgICAvKiBBIGxhYmVsIHRvIGNvbnRpbnVlIGV4ZWN1dGlvbiBmb3IgdGhl IG5vIGV4Y2VwdGlvbiBjYXNlLiAgKi8KLSAgICBydHggbm9leCA9IGdlbl9s YWJlbF9ydHgoKTsKLSAgICB4ID0gZXhwYW5kX2J1aWx0aW5fc2V0am1wIChi dWYsIE5VTExfUlRYLCBub2V4LAorICBleHBhbmRfYnVpbHRpbl9zZXRqbXBf c2V0dXAgKGJ1ZiwKIAkJCSAgICAgICBlaHN0YWNrLnRvcC0+ZW50cnktPmV4 Y2VwdGlvbl9oYW5kbGVyX2xhYmVsKTsKLSAgICBlbWl0X2xhYmVsIChub2V4 KTsKLSAgfQogI2VuZGlmCiAKICAgLyogV2UgYXJlIGNvbW1pdHRlZCB0byB0 aGlzLCBzbyB1cGRhdGUgdGhlIGhhbmRsZXIgY2hhaW4uICAqLwpkaWZmIC11 cnBiQiBnY2MtMi45NS4zLTRcZ2NjXGV4cHIuYyBnY2MtMi45NS4zLTRtXGdj Y1xleHByLmMKLS0tIGdjYy0yLjk1LjMtNFxnY2NcZXhwci5jCVNhdCBNYXIg MTcgMDY6Mzk6NDIgMjAwMQorKysgZ2NjLTIuOTUuMy00bVxnY2NcZXhwci5j CVRodSBNYXkgMTcgMDk6NDc6NDAgMjAwMQpAQCAtMTkyLDYgKzE5Miw3IEBA IHN0YXRpYyBydHggZXhwYW5kX2J1aWx0aW4JUFJPVE8oKHRyZWUsIHIKIHN0 YXRpYyBpbnQgYXBwbHlfYXJnc19zaXplCVBST1RPKCh2b2lkKSk7CiBzdGF0 aWMgaW50IGFwcGx5X3Jlc3VsdF9zaXplCVBST1RPKCh2b2lkKSk7CiBzdGF0 aWMgcnR4IHJlc3VsdF92ZWN0b3IJUFJPVE8oKGludCwgcnR4KSk7CitzdGF0 aWMgcnR4IGV4cGFuZF9idWlsdGluX3NldGptcCBQUk9UTygodHJlZSwgcnR4 KSk7CiBzdGF0aWMgcnR4IGV4cGFuZF9idWlsdGluX2FwcGx5X2FyZ3MgUFJP VE8oKHZvaWQpKTsKIHN0YXRpYyBydHggZXhwYW5kX2J1aWx0aW5fYXBwbHkJ UFJPVE8oKHJ0eCwgcnR4LCBydHgpKTsKIHN0YXRpYyB2b2lkIGV4cGFuZF9i dWlsdGluX3JldHVybiBQUk9UTygocnR4KSk7CkBAIC04NTQ0LDQ0ICs4NTQ1 LDI5IEBAIGV4cGFuZF9idWlsdGluX3JldHVybl9hZGRyIChmbmRlY2xfY29k ZSwKICAgcmV0dXJuIHRlbTsKIH0KIAotLyogX19idWlsdGluX3NldGptcCBp cyBwYXNzZWQgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGZpdmUgd29yZHMg KG5vdAotICAgYWxsIHdpbGwgYmUgdXNlZCBvbiBhbGwgbWFjaGluZXMpLiAg SXQgb3BlcmF0ZXMgc2ltaWxhcmx5IHRvIHRoZSBDCi0gICBsaWJyYXJ5IGZ1 bmN0aW9uIG9mIHRoZSBzYW1lIG5hbWUsIGJ1dCBpcyBtb3JlIGVmZmljaWVu dC4gIE11Y2ggb2YKLSAgIHRoZSBjb2RlIGJlbG93IChhbmQgZm9yIGxvbmdq bXApIGlzIGNvcGllZCBmcm9tIHRoZSBoYW5kbGluZyBvZgotICAgbm9uLWxv Y2FsIGdvdG9zLgotCi0gICBOT1RFOiBUaGlzIGlzIGludGVuZGVkIGZvciB1 c2UgYnkgR05BVCBhbmQgdGhlIGV4Y2VwdGlvbiBoYW5kbGluZwotICAgc2No ZW1lIGluIHRoZSBjb21waWxlciBhbmQgd2lsbCBvbmx5IHdvcmsgaW4gdGhl IG1ldGhvZCB1c2VkIGJ5Ci0gICB0aGVtLiAgKi8KKy8qIENvbnN0cnVjdCB0 aGUgbGVhZGluZyBoYWxmIG9mIGEgX19idWlsdGluX3NldGptcCBjYWxsLiAg Q29udHJvbCB3aWxsCisgICByZXR1cm4gdG8gUkVDRUlWRVJfTEFCRUwuICBU aGlzIGlzIHVzZWQgZGlyZWN0bHkgYnkgc2psaiBleGNlcHRpb24KKyAgIGhh bmRsaW5nIGNvZGUuICAqLwogCi1ydHgKLWV4cGFuZF9idWlsdGluX3NldGpt cCAoYnVmX2FkZHIsIHRhcmdldCwgZmlyc3RfbGFiZWwsIG5leHRfbGFiZWwp Cit2b2lkCitleHBhbmRfYnVpbHRpbl9zZXRqbXBfc2V0dXAgKGJ1Zl9hZGRy LCByZWNlaXZlcl9sYWJlbCkKICAgICAgcnR4IGJ1Zl9hZGRyOwotICAgICBy dHggdGFyZ2V0OwotICAgICBydHggZmlyc3RfbGFiZWwsIG5leHRfbGFiZWw7 CisgICAgIHJ0eCByZWNlaXZlcl9sYWJlbDsKIHsKLSAgcnR4IGxhYjEgPSBn ZW5fbGFiZWxfcnR4ICgpOwogICBlbnVtIG1hY2hpbmVfbW9kZSBzYV9tb2Rl ID0gU1RBQ0tfU0FWRUFSRUFfTU9ERSAoU0FWRV9OT05MT0NBTCk7Ci0gIGVu dW0gbWFjaGluZV9tb2RlIHZhbHVlX21vZGU7CiAgIHJ0eCBzdGFja19zYXZl OwogCi0gIHZhbHVlX21vZGUgPSBUWVBFX01PREUgKGludGVnZXJfdHlwZV9u b2RlKTsKLQogI2lmZGVmIFBPSU5URVJTX0VYVEVORF9VTlNJR05FRAogICBi dWZfYWRkciA9IGNvbnZlcnRfbWVtb3J5X2FkZHJlc3MgKFBtb2RlLCBidWZf YWRkcik7CiAjZW5kaWYKIAogICBidWZfYWRkciA9IGZvcmNlX3JlZyAoUG1v ZGUsIGJ1Zl9hZGRyKTsKIAotICBpZiAodGFyZ2V0ID09IDAgfHwgR0VUX0NP REUgKHRhcmdldCkgIT0gUkVHCi0gICAgICB8fCBSRUdOTyAodGFyZ2V0KSA8 IEZJUlNUX1BTRVVET19SRUdJU1RFUikKLSAgICB0YXJnZXQgPSBnZW5fcmVn X3J0eCAodmFsdWVfbW9kZSk7Ci0KICAgZW1pdF9xdWV1ZSAoKTsKIAotICAv KiBXZSBzdG9yZSB0aGUgZnJhbWUgcG9pbnRlciBhbmQgdGhlIGFkZHJlc3Mg b2YgbGFiMSBpbiB0aGUgYnVmZmVyCi0gICAgIGFuZCB1c2UgdGhlIHJlc3Qg b2YgaXQgZm9yIHRoZSBzdGFjayBzYXZlIGFyZWEsIHdoaWNoIGlzCi0gICAg IG1hY2hpbmUtZGVwZW5kZW50LiAgKi8KKyAgLyogV2Ugc3RvcmUgdGhlIGZy YW1lIHBvaW50ZXIgYW5kIHRoZSBhZGRyZXNzIG9mIHJlY2VpdmVyX2xhYmVs IGluCisgICAgIHRoZSBidWZmZXIgYW5kIHVzZSB0aGUgcmVzdCBvZiBpdCBm b3IgdGhlIHN0YWNrIHNhdmUgYXJlYSwgd2hpY2gKKyAgICAgaXMgbWFjaGlu ZS1kZXBlbmRlbnQuICAqLwogCiAjaWZuZGVmIEJVSUxUSU5fU0VUSk1QX0ZS QU1FX1ZBTFVFCiAjZGVmaW5lIEJVSUxUSU5fU0VUSk1QX0ZSQU1FX1ZBTFVF IHZpcnR1YWxfc3RhY2tfdmFyc19ydHgKQEAgLTg1OTMsNyArODU3OSw3IEBA IGV4cGFuZF9idWlsdGluX3NldGptcCAoYnVmX2FkZHIsIHRhcmdldCwKIAkJ ICAoZ2VuX3J0eF9NRU0gKFBtb2RlLAogCQkJCXBsdXNfY29uc3RhbnQgKGJ1 Zl9hZGRyLAogCQkJCQkgICAgICAgR0VUX01PREVfU0laRSAoUG1vZGUpKSkp LAotCQkgIGZvcmNlX3JlZyAoUG1vZGUsIGdlbl9ydHhfTEFCRUxfUkVGIChQ bW9kZSwgbGFiMSkpKTsKKwkJICBmb3JjZV9yZWcgKFBtb2RlLCBnZW5fcnR4 X0xBQkVMX1JFRiAoUG1vZGUsIHJlY2VpdmVyX2xhYmVsKSkpOwogCiAgIHN0 YWNrX3NhdmUgPSBnZW5fcnR4X01FTSAoc2FfbW9kZSwKIAkJCSAgICBwbHVz X2NvbnN0YW50IChidWZfYWRkciwKQEAgLTg2MDYsMjAgKzg1OTIsMjIgQEAg ZXhwYW5kX2J1aWx0aW5fc2V0am1wIChidWZfYWRkciwgdGFyZ2V0LAogICAg IGVtaXRfaW5zbiAoZ2VuX2J1aWx0aW5fc2V0am1wX3NldHVwIChidWZfYWRk cikpOwogI2VuZGlmCiAKLSAgLyogU2V0IFRBUkdFVCB0byB6ZXJvIGFuZCBi cmFuY2ggdG8gdGhlIGZpcnN0LXRpbWUtdGhyb3VnaCBsYWJlbC4gICovCi0g IGVtaXRfbW92ZV9pbnNuICh0YXJnZXQsIGNvbnN0MF9ydHgpOwotICBlbWl0 X2p1bXBfaW5zbiAoZ2VuX2p1bXAgKGZpcnN0X2xhYmVsKSk7Ci0gIGVtaXRf YmFycmllciAoKTsKLSAgZW1pdF9sYWJlbCAobGFiMSk7Ci0KLSAgLyogVGVs bCBmbG93IGFib3V0IHRoZSBzdHJhbmdlIGdvaW5ncyBvbi4gIFB1dHRpbmcg YGxhYjEnIG9uCi0gICAgIGBub25sb2NhbF9nb3RvX2hhbmRsZXJfbGFiZWxz JyB0byBpbmRpY2F0ZXMgdGhhdCBmdW5jdGlvbgotICAgICBjYWxscyBtYXkg dHJhdmVyc2UgdGhlIGFyYyBiYWNrIHRvIHRoaXMgbGFiZWwuICAqLworICAv KiBUZWxsIG9wdGltaXplX3NhdmVfYXJlYV9hbGxvY2EgdGhhdCBleHRyYSB3 b3JrIGlzIGdvaW5nIHRvCisgICAgIG5lZWQgdG8gZ28gb24gZHVyaW5nIGFs bG9jYS4gICovCisgIGN1cnJlbnRfZnVuY3Rpb25fY2FsbHNfc2V0am1wID0g MTsKIAorICAvKiBTZXQgdGhpcyBzbyBhbGwgdGhlIHJlZ2lzdGVycyBnZXQg c2F2ZWQgaW4gb3VyIGZyYW1lOyB3ZSBuZWVkIHRvIGJlCisgICAgIGFibGUg dG8gY29weSB0aGUgc2F2ZWQgdmFsdWVzIGZvciBhbnkgcmVnaXN0ZXJzIGZy b20gZnJhbWVzIHdlIHVud2luZC4gKi8KICAgY3VycmVudF9mdW5jdGlvbl9o YXNfbm9ubG9jYWxfbGFiZWwgPSAxOwotICBub25sb2NhbF9nb3RvX2hhbmRs ZXJfbGFiZWxzID0KLSAgICBnZW5fcnR4X0VYUFJfTElTVCAoVk9JRG1vZGUs IGxhYjEsIG5vbmxvY2FsX2dvdG9faGFuZGxlcl9sYWJlbHMpOworfQorCisv KiBDb25zdHJ1Y3QgdGhlIHRyYWlsaW5nIHBhcnQgb2YgYSBfX2J1aWx0aW5f c2V0am1wIGNhbGwuCisgICBUaGlzIGlzIHVzZWQgZGlyZWN0bHkgYnkgc2ps aiBleGNlcHRpb24gaGFuZGxpbmcgY29kZS4gICovCiAKK3ZvaWQKK2V4cGFu ZF9idWlsdGluX3NldGptcF9yZWNlaXZlciAocmVjZWl2ZXJfbGFiZWwpCisg ICAgICBydHggcmVjZWl2ZXJfbGFiZWwgQVRUUklCVVRFX1VOVVNFRDsKK3sK ICAgLyogQ2xvYmJlciB0aGUgRlAgd2hlbiB3ZSBnZXQgaGVyZSwgc28gd2Ug aGF2ZSB0byBtYWtlIHN1cmUgaXQncwogICAgICBtYXJrZWQgYXMgdXNlZCBi eSB0aGlzIGZ1bmN0aW9uLiAgKi8KICAgZW1pdF9pbnNuIChnZW5fcnR4X1VT RSAoVk9JRG1vZGUsIGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgpKTsKQEAgLTg2 NjYsNyArODY1NCw3IEBAIGV4cGFuZF9idWlsdGluX3NldGptcCAoYnVmX2Fk ZHIsIHRhcmdldCwKIAogI2lmZGVmIEhBVkVfYnVpbHRpbl9zZXRqbXBfcmVj ZWl2ZXIKICAgaWYgKEhBVkVfYnVpbHRpbl9zZXRqbXBfcmVjZWl2ZXIpCi0g ICAgZW1pdF9pbnNuIChnZW5fYnVpbHRpbl9zZXRqbXBfcmVjZWl2ZXIgKGxh YjEpKTsKKyAgICBlbWl0X2luc24gKGdlbl9idWlsdGluX3NldGptcF9yZWNl aXZlciAocmVjZWl2ZXJfbGFiZWwpKTsKICAgZWxzZQogI2VuZGlmCiAjaWZk ZWYgSEFWRV9ub25sb2NhbF9nb3RvX3JlY2VpdmVyCkBAIC04Njc4LDEwICs4 NjY2LDY2IEBAIGV4cGFuZF9idWlsdGluX3NldGptcCAoYnVmX2FkZHIsIHRh cmdldCwKIAk7IC8qIE5vdGhpbmcgKi8KICAgICAgIH0KIAotICAvKiBTZXQg VEFSR0VULCBhbmQgYnJhbmNoIHRvIHRoZSBuZXh0LXRpbWUtdGhyb3VnaCBs YWJlbC4gICovCi0gIGVtaXRfbW92ZV9pbnNuICh0YXJnZXQsIGNvbnN0MV9y dHgpOwotICBlbWl0X2p1bXBfaW5zbiAoZ2VuX2p1bXAgKG5leHRfbGFiZWwp KTsKKyAgLyogQEBAIFRoaXMgaXMgYSBrbHVkZ2UuICBOb3QgYWxsIG1hY2hp bmUgZGVzY3JpcHRpb25zIGRlZmluZSBhIGJsb2NrYWdlCisgICAgIGluc24s IGJ1dCB3ZSBtdXN0IG5vdCBhbGxvdyB0aGUgY29kZSB3ZSBqdXN0IGdlbmVy YXRlZCB0byBiZSByZW9yZGVyZWQKKyAgICAgYnkgc2NoZWR1bGluZy4gIFNw ZWNpZmljYWxseSwgdGhlIHVwZGF0ZSBvZiB0aGUgZnJhbWUgcG9pbnRlciBt dXN0CisgICAgIGhhcHBlbiBpbW1lZGlhdGVseSwgbm90IGxhdGVyLiAgU28g ZW1pdCBhbiBBU01fSU5QVVQgdG8gYWN0IGFzIGJsb2NrYWdlCisgICAgIGlu c24uICAqLworICBlbWl0X2luc24gKGdlbl9ydHhfQVNNX0lOUFVUIChWT0lE bW9kZSwgIiIpKTsKK30KKworCisvKiBfX2J1aWx0aW5fc2V0am1wIGlzIHBh c3NlZCBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgZml2ZSB3b3JkcyAobm90 CisgICBhbGwgd2lsbCBiZSB1c2VkIG9uIGFsbCBtYWNoaW5lcykuICBJdCBv cGVyYXRlcyBzaW1pbGFybHkgdG8gdGhlIEMKKyAgIGxpYnJhcnkgZnVuY3Rp b24gb2YgdGhlIHNhbWUgbmFtZSwgYnV0IGlzIG1vcmUgZWZmaWNpZW50LiAg TXVjaCBvZgorICAgdGhlIGNvZGUgYmVsb3cgKGFuZCBmb3IgbG9uZ2ptcCkg aXMgY29waWVkIGZyb20gdGhlIGhhbmRsaW5nIG9mCisgICBub24tbG9jYWwg Z290b3MuCisKKyAgIE5PVEU6IFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBi eSBHTkFUIGFuZCB0aGUgZXhjZXB0aW9uIGhhbmRsaW5nCisgICBzY2hlbWUg aW4gdGhlIGNvbXBpbGVyIGFuZCB3aWxsIG9ubHkgd29yayBpbiB0aGUgbWV0 aG9kIHVzZWQgYnkKKyAgIHRoZW0uICAqLworCitzdGF0aWMgcnR4CitleHBh bmRfYnVpbHRpbl9zZXRqbXAgKGFyZ2xpc3QsIHRhcmdldCkKKyAgICAgdHJl ZSBhcmdsaXN0OworICAgICBydHggdGFyZ2V0OworeworICBydHggYnVmX2Fk ZHIsIG5leHRfbGFiLCBjb250X2xhYjsKKworICBpZiAoYXJnbGlzdCA9PSAw CisgICAgICB8fCBUUkVFX0NPREUgKFRSRUVfVFlQRSAoVFJFRV9WQUxVRSAo YXJnbGlzdCkpKSAhPSBQT0lOVEVSX1RZUEUpCisgICAgcmV0dXJuIE5VTExf UlRYOworCisgIGlmICh0YXJnZXQgPT0gMCB8fCBHRVRfQ09ERSAodGFyZ2V0 KSAhPSBSRUcKKyAgICAgIHx8IFJFR05PICh0YXJnZXQpIDwgRklSU1RfUFNF VURPX1JFR0lTVEVSKQorICAgIHRhcmdldCA9IGdlbl9yZWdfcnR4IChUWVBF X01PREUgKGludGVnZXJfdHlwZV9ub2RlKSk7CisKKyAgYnVmX2FkZHIgPSBl eHBhbmRfZXhwciAoVFJFRV9WQUxVRSAoYXJnbGlzdCksIE5VTExfUlRYLCBW T0lEbW9kZSwgMCk7CisKKyAgbmV4dF9sYWIgPSBnZW5fbGFiZWxfcnR4ICgp OworICBjb250X2xhYiA9IGdlbl9sYWJlbF9ydHggKCk7CisKKyAgZXhwYW5k X2J1aWx0aW5fc2V0am1wX3NldHVwIChidWZfYWRkciwgbmV4dF9sYWIpOwor CisgIC8qIFNldCBUQVJHRVQgdG8gemVybyBhbmQgYnJhbmNoIHRvIHRoZSBj b250aW51ZSBsYWJlbC4gICovCisgIGVtaXRfbW92ZV9pbnNuICh0YXJnZXQs IGNvbnN0MF9ydHgpOworICBlbWl0X2p1bXBfaW5zbiAoZ2VuX2p1bXAgKGNv bnRfbGFiKSk7CiAgIGVtaXRfYmFycmllciAoKTsKKyAgZW1pdF9sYWJlbCAo bmV4dF9sYWIpOworCisgIGV4cGFuZF9idWlsdGluX3NldGptcF9yZWNlaXZl ciAobmV4dF9sYWIpOworCisgIC8qIFNldCBUQVJHRVQgdG8gb25lLiAgKi8K KyAgZW1pdF9tb3ZlX2luc24gKHRhcmdldCwgY29uc3QxX3J0eCk7CisgIGVt aXRfbGFiZWwgKGNvbnRfbGFiKTsKKworICAvKiBUZWxsIGZsb3cgYWJvdXQg dGhlIHN0cmFuZ2UgZ29pbmdzIG9uLiAgUHV0dGluZyBgbmV4dF9sYWInIG9u CisgICAgIGBub25sb2NhbF9nb3RvX2hhbmRsZXJfbGFiZWxzJyB0byBpbmRp Y2F0ZXMgdGhhdCBmdW5jdGlvbgorICAgICBjYWxscyBtYXkgdHJhdmVyc2Ug dGhlIGFyYyBiYWNrIHRvIHRoaXMgbGFiZWwuICAqLworCisgIGN1cnJlbnRf ZnVuY3Rpb25faGFzX25vbmxvY2FsX2xhYmVsID0gMTsKKyAgbm9ubG9jYWxf Z290b19oYW5kbGVyX2xhYmVscworICAgID0gZ2VuX3J0eF9FWFBSX0xJU1Qg KFZPSURtb2RlLCBuZXh0X2xhYiwgbm9ubG9jYWxfZ290b19oYW5kbGVyX2xh YmVscyk7CiAKICAgcmV0dXJuIHRhcmdldDsKIH0KQEAgLTk3MDMsMTggKzk3 NDcsMTAgQEAgZXhwYW5kX2J1aWx0aW4gKGV4cCwgdGFyZ2V0LCBzdWJ0YXJn ZXQsIAogI2VuZGlmCiAKICAgICBjYXNlIEJVSUxUX0lOX1NFVEpNUDoKLSAg ICAgIGlmIChhcmdsaXN0ID09IDAKLQkgIHx8IFRSRUVfQ09ERSAoVFJFRV9U WVBFIChUUkVFX1ZBTFVFIChhcmdsaXN0KSkpICE9IFBPSU5URVJfVFlQRSkK KyAgICAgIHRhcmdldCA9IGV4cGFuZF9idWlsdGluX3NldGptcCAoYXJnbGlz dCwgdGFyZ2V0KTsKKyAgICAgIGlmICh0YXJnZXQpCisJcmV0dXJuIHRhcmdl dDsKIAlicmVhazsKLSAgICAgIGVsc2UKLQl7Ci0JICBydHggYnVmX2FkZHIg PSBleHBhbmRfZXhwciAoVFJFRV9WQUxVRSAoYXJnbGlzdCksIHN1YnRhcmdl dCwKLQkJCQkgICAgICBWT0lEbW9kZSwgMCk7Ci0JICBydHggbGFiID0gZ2Vu X2xhYmVsX3J0eCAoKTsKLQkgIHJ0eCByZXQgPSBleHBhbmRfYnVpbHRpbl9z ZXRqbXAgKGJ1Zl9hZGRyLCB0YXJnZXQsIGxhYiwgbGFiKTsKLQkgIGVtaXRf bGFiZWwgKGxhYik7Ci0JICByZXR1cm4gcmV0OwotCX0KIAogICAgICAgLyog X19idWlsdGluX2xvbmdqbXAgaXMgcGFzc2VkIGEgcG9pbnRlciB0byBhbiBh cnJheSBvZiBmaXZlIHdvcmRzLgogCSBJdCdzIHNpbWlsYXIgdG8gdGhlIEMg bGlicmFyeSBsb25nam1wIGZ1bmN0aW9uIGJ1dCB3b3JrcyB3aXRoCmRpZmYg LXVycGJCIGdjYy0yLjk1LjMtNFxnY2NcZXhwci5oIGdjYy0yLjk1LjMtNG1c Z2NjXGV4cHIuaAotLS0gZ2NjLTIuOTUuMy00XGdjY1xleHByLmgJRnJpIE5v diAwNSAxNDowOTo0MiAxOTk5CisrKyBnY2MtMi45NS4zLTRtXGdjY1xleHBy LmgJVGh1IE1heSAxNyAwOTo0Nzo0MSAyMDAxCkBAIC04MzEsNyArODMxLDgg QEAgZXh0ZXJuIHJ0eCBzdG9yZV9leHByIFBST1RPKCh0cmVlLCBydHgsIAog ICAgVXNlZnVsIGFmdGVyIGNhbGxpbmcgZXhwYW5kX2V4cHIgd2l0aCAxIGFz IHN1bV9vay4gICovCiBleHRlcm4gcnR4IGZvcmNlX29wZXJhbmQgUFJPVE8o KHJ0eCwgcnR4KSk7CiAKLWV4dGVybiBydHggZXhwYW5kX2J1aWx0aW5fc2V0 am1wIFBST1RPKChydHgsIHJ0eCwgcnR4LCBydHgpKTsKK2V4dGVybiB2b2lk IGV4cGFuZF9idWlsdGluX3NldGptcF9zZXR1cCBQQVJBTVMgKChydHgsIHJ0 eCkpOworZXh0ZXJuIHZvaWQgZXhwYW5kX2J1aWx0aW5fc2V0am1wX3JlY2Vp dmVyIFBBUkFNUyAoKHJ0eCkpOwogCiAjaWZkZWYgVFJFRV9DT0RFCiAvKiBH ZW5lcmF0ZSBjb2RlIGZvciBjb21wdXRpbmcgZXhwcmVzc2lvbiBFWFAuCgo= --0-1619816673-990075391=:3810--