Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Date: Sat, 2 Sep 2000 19:51:59 +0400 From: Egor Duda X-Mailer: The Bat! (v1.45) Personal Reply-To: Egor Duda Organization: DEO X-Priority: 3 (Normal) Message-ID: <11977784207.20000902195159@logos-m.ru> To: Chris Faylor Subject: sigframe inlining In-reply-To: <20000901211953.A32424@cygnus.com> References: <1975989842 DOT 20000901235524 AT logos-m DOT ru> <20000901160904 DOT A29015 AT cygnus DOT com> <1137440989 DOT 20000902001935 AT logos-m DOT ru> <20000901163248 DOT A29171 AT cygnus DOT com> <1958635367 DOT 20000902003930 AT logos-m DOT ru> <20000901205807 DOT A32178 AT cygnus DOT com> <20000901211953 DOT A32424 AT cygnus DOT com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----------912F24F18B692E7" ------------912F24F18B692E7 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi! Saturday, 02 September, 2000 Chris Faylor cgf AT cygnus DOT com wrote: >>I've duplicated the problem. A test case is below. >> >>I'll look into this. CF> I've checked in a fix. Thanks! today i've got another bug, when i've compiled cygwin without -O2 flag since gcc stops inining class sigframe member functions, __builtin_frame_address got wrong stack offset. this leads to api_fatal in signal handler. how about this patch? Egor. mailto:deo AT logos-m DOT ru ICQ 5165414 FidoNet 2:5020/496.19 ------------912F24F18B692E7 Content-Type: application/octet-stream; name="sigframe-inline.ChangeLog" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sigframe-inline.ChangeLog" MjAwMC0wOS0wMiAgRWdvciBEdWRhICA8ZGVvQGxvZ29zLW0ucnU+CgoJKiBzaWdwcm9jLmggKGNs YXNzIHNpZ2ZyYW1lKTogZGVmaW5lIG1hY3JvcyBmb3Igc2lnZnJhbWUgY3JlYXRpb24KCWFuZCBt b2RpZmljYXRpb24gdG8gbWFrZSBzaWdmcmFtZSBpbmRlcGVuZGVudCB0byBpbmxpbmluZwoJKiBu ZXQuY2MgKGN5Z3dpbl9zZW5kdG8pOiB1dGlsaXplIHNpZ2ZyYW1lIG1hY3JvcwoJKGN5Z3dpbl9y ZWN2ZnJvbSk6IERpdHRvCgkoY3lnd2luX2Nvbm5lY3QpOiBEaXR0bwoJKGN5Z3dpbl9hY2NlcHQp OiBEaXR0bwoJKGN5Z3dpbl9zaHV0ZG93bik6IERpdHRvCgkoY3lnd2luX3JlY3YpOiBEaXR0bwoJ KGN5Z3dpbl9zZW5kKTogRGl0dG8KCShjeWd3aW5fcmNtZCk6IERpdHRvCgkoY3lnd2luX3JyZXN2 cG9ydCk6IERpdHRvCgkoY3lnd2luX3JleGVjKTogRGl0dG8KCShmaGFuZGxlcl9zb2NrZXQ6OnJl YWQpOiBEaXR0bwoJKGZoYW5kbGVyX3NvY2tldDo6d3JpdGUpOiBEaXR0bwoJKGZoYW5kbGVyX3Nv Y2tldDo6Y2xvc2UpOiBEaXR0bwoJKGZoYW5kbGVyX3NvY2tldDo6aW9jdGwpOiBEaXR0bwoJKiBz ZWxlY3QuY2MgKGN5Z3dpbl9zZWxlY3QpOiBEaXR0bwoJKiBzaWdwcm9jLmNjIChzaWdfc2VuZCk6 IERpdHRvCgkqIHNpZ3Byb2MuY2MgKFdGU08pOiBEaXR0bwoJKiBzaWdwcm9jLmNjIChXRk1PKTog RGl0dG8KCSogc3lzY2FsbHMuY2MgKHJlYWRfaGFuZGxlcik6IERpdHRvCg== ------------912F24F18B692E7 Content-Type: application/octet-stream; name="sigframe-inline.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sigframe-inline.diff" SW5kZXg6IHdpbnN1cC9jeWd3aW4vbmV0LmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2R1 ZGFfYWRtaW4vY3ZzLW1pcnJvci9zcmMvd2luc3VwL2N5Z3dpbi9uZXQuY2MsdgpyZXRyaWV2aW5n IHJldmlzaW9uIDEuMTQKZGlmZiAtYyAtMiAtcjEuMTQgbmV0LmNjCioqKiB3aW5zdXAvY3lnd2lu L25ldC5jYwkyMDAwLzA4LzIyIDA1OjEwOjIwCTEuMTQKLS0tIHdpbnN1cC9jeWd3aW4vbmV0LmNj CTIwMDAvMDkvMDIgMTQ6NTM6MjYKKioqKioqKioqKioqKioqCioqKiA0MzAsNDM0ICoqKioKICAg IGZoYW5kbGVyX3NvY2tldCAqaCA9IChmaGFuZGxlcl9zb2NrZXQgKikgZmR0YWJbZmRdOwogICAg c29ja2FkZHJfaW4gc2luOwohICAgc2lnZnJhbWUgdGhpc2ZyYW1lIChtYWludGhyZWFkLCAwKTsK ICAKICAgIGlmIChnZXRfaW5ldF9hZGRyICh0bywgdG9sZW4sICZzaW4sICZ0b2xlbikgPT0gMCkK LS0tIDQzMCw0MzQgLS0tLQogICAgZmhhbmRsZXJfc29ja2V0ICpoID0gKGZoYW5kbGVyX3NvY2tl dCAqKSBmZHRhYltmZF07CiAgICBzb2NrYWRkcl9pbiBzaW47CiEgICBTSUdGUkFNRV9IRVJFKG1h aW50aHJlYWQpOwogIAogICAgaWYgKGdldF9pbmV0X2FkZHIgKHRvLCB0b2xlbiwgJnNpbiwgJnRv bGVuKSA9PSAwKQoqKioqKioqKioqKioqKioKKioqIDQ1Niw0NjAgKioqKgogIHsKICAgIGZoYW5k bGVyX3NvY2tldCAqaCA9IChmaGFuZGxlcl9zb2NrZXQgKikgZmR0YWJbZmRdOwohICAgc2lnZnJh bWUgdGhpc2ZyYW1lIChtYWludGhyZWFkLCAwKTsKICAKICAgIGRlYnVnX3ByaW50ZiAoInJlY3Zm cm9tICVkIiwgaC0+Z2V0X3NvY2tldCAoKSk7Ci0tLSA0NTYsNDYwIC0tLS0KICB7CiAgICBmaGFu ZGxlcl9zb2NrZXQgKmggPSAoZmhhbmRsZXJfc29ja2V0ICopIGZkdGFiW2ZkXTsKISAgIFNJR0ZS QU1FX0hFUkUobWFpbnRocmVhZCk7CiAgCiAgICBkZWJ1Z19wcmludGYgKCJyZWN2ZnJvbSAlZCIs IGgtPmdldF9zb2NrZXQgKCkpOwoqKioqKioqKioqKioqKioKKioqIDYxMyw2MTcgKioqKgogICAg ZmhhbmRsZXJfc29ja2V0ICpzb2NrID0gZ2V0IChmZCk7CiAgICBzb2NrYWRkcl9pbiBzaW47CiEg ICBzaWdmcmFtZSB0aGlzZnJhbWUgKG1haW50aHJlYWQsIDApOwogIAogICAgaWYgKGdldF9pbmV0 X2FkZHIgKG5hbWUsIG5hbWVsZW4sICZzaW4sICZuYW1lbGVuKSA9PSAwKQotLS0gNjEzLDYxNyAt LS0tCiAgICBmaGFuZGxlcl9zb2NrZXQgKnNvY2sgPSBnZXQgKGZkKTsKICAgIHNvY2thZGRyX2lu IHNpbjsKISAgIFNJR0ZSQU1FX0hFUkUobWFpbnRocmVhZCk7CiAgCiAgICBpZiAoZ2V0X2luZXRf YWRkciAobmFtZSwgbmFtZWxlbiwgJnNpbiwgJm5hbWVsZW4pID09IDApCioqKioqKioqKioqKioq KgoqKiogNzI2LDczMCAqKioqCiAgewogICAgaW50IHJlcyA9IC0xOwohICAgc2lnZnJhbWUgdGhp c2ZyYW1lIChtYWludGhyZWFkLCAwKTsKICAKICAgIGZoYW5kbGVyX3NvY2tldCAqc29jayA9IGdl dCAoZmQpOwotLS0gNzI2LDczMCAtLS0tCiAgewogICAgaW50IHJlcyA9IC0xOwohICAgU0lHRlJB TUVfSEVSRShtYWludGhyZWFkKTsKICAKICAgIGZoYW5kbGVyX3NvY2tldCAqc29jayA9IGdldCAo ZmQpOwoqKioqKioqKioqKioqKioKKioqIDkxMiw5MTYgKioqKgogIHsKICAgIGludCByZXMgPSAt MTsKISAgIHNpZ2ZyYW1lIHRoaXNmcmFtZSAobWFpbnRocmVhZCwgMCk7CiAgCiAgICBmaGFuZGxl cl9zb2NrZXQgKnNvY2sgPSBnZXQgKGZkKTsKLS0tIDkxMiw5MTYgLS0tLQogIHsKICAgIGludCBy ZXMgPSAtMTsKISAgIFNJR0ZSQU1FX0hFUkUobWFpbnRocmVhZCk7CiAgCiAgICBmaGFuZGxlcl9z b2NrZXQgKnNvY2sgPSBnZXQgKGZkKTsKKioqKioqKioqKioqKioqCioqKiA5NTUsOTU5ICoqKioK ICB7CiAgICBmaGFuZGxlcl9zb2NrZXQgKmggPSAoZmhhbmRsZXJfc29ja2V0ICopIGZkdGFiW2Zk XTsKISAgIHNpZ2ZyYW1lIHRoaXNmcmFtZSAobWFpbnRocmVhZCwgMCk7CiAgCiAgICBpbnQgcmVz ID0gcmVjdiAoaC0+Z2V0X3NvY2tldCAoKSwgKGNoYXIgKikgYnVmLCBsZW4sIGZsYWdzKTsKLS0t IDk1NSw5NTkgLS0tLQogIHsKICAgIGZoYW5kbGVyX3NvY2tldCAqaCA9IChmaGFuZGxlcl9zb2Nr ZXQgKikgZmR0YWJbZmRdOwohICAgU0lHRlJBTUVfSEVSRShtYWludGhyZWFkKTsKICAKICAgIGlu dCByZXMgPSByZWN2IChoLT5nZXRfc29ja2V0ICgpLCAoY2hhciAqKSBidWYsIGxlbiwgZmxhZ3Mp OwoqKioqKioqKioqKioqKioKKioqIDk4MSw5ODUgKioqKgogIHsKICAgIGZoYW5kbGVyX3NvY2tl dCAqaCA9IChmaGFuZGxlcl9zb2NrZXQgKikgZmR0YWJbZmRdOwohICAgc2lnZnJhbWUgdGhpc2Zy YW1lIChtYWludGhyZWFkLCAwKTsKICAKICAgIGludCByZXMgPSBzZW5kIChoLT5nZXRfc29ja2V0 ICgpLCAoY29uc3QgY2hhciAqKSBidWYsIGxlbiwgZmxhZ3MpOwotLS0gOTgxLDk4NSAtLS0tCiAg ewogICAgZmhhbmRsZXJfc29ja2V0ICpoID0gKGZoYW5kbGVyX3NvY2tldCAqKSBmZHRhYltmZF07 CiEgICBTSUdGUkFNRV9IRVJFKG1haW50aHJlYWQpOwogIAogICAgaW50IHJlcyA9IHNlbmQgKGgt PmdldF9zb2NrZXQgKCksIChjb25zdCBjaGFyICopIGJ1ZiwgbGVuLCBmbGFncyk7CioqKioqKioq KioqKioqKgoqKiogMTM2OCwxMzcyICoqKioKICAgIGludCByZXMgPSAtMTsKICAgIFNPQ0tFVCBm ZDJzOwohICAgc2lnZnJhbWUgdGhpc2ZyYW1lIChtYWludGhyZWFkLCAwKTsKICAKICAgIGludCBy ZXNfZmQgPSBmZHRhYi5maW5kX3VudXNlZF9oYW5kbGUgKCk7Ci0tLSAxMzY4LDEzNzIgLS0tLQog ICAgaW50IHJlcyA9IC0xOwogICAgU09DS0VUIGZkMnM7CiEgICBTSUdGUkFNRV9IRVJFKG1haW50 aHJlYWQpOwogIAogICAgaW50IHJlc19mZCA9IGZkdGFiLmZpbmRfdW51c2VkX2hhbmRsZSAoKTsK KioqKioqKioqKioqKioqCioqKiAxNDA4LDE0MTIgKioqKgogIHsKICAgIGludCByZXMgPSAtMTsK ISAgIHNpZ2ZyYW1lIHRoaXNmcmFtZSAobWFpbnRocmVhZCwgMCk7CiAgCiAgICBpbnQgcmVzX2Zk ID0gZmR0YWIuZmluZF91bnVzZWRfaGFuZGxlICgpOwotLS0gMTQwOCwxNDEyIC0tLS0KICB7CiAg ICBpbnQgcmVzID0gLTE7CiEgICBTSUdGUkFNRV9IRVJFKG1haW50aHJlYWQpOwogIAogICAgaW50 IHJlc19mZCA9IGZkdGFiLmZpbmRfdW51c2VkX2hhbmRsZSAoKTsKKioqKioqKioqKioqKioqCioq KiAxNDM3LDE0NDEgKioqKgogICAgaW50IHJlcyA9IC0xOwogICAgU09DS0VUIGZkMnM7CiEgICBz aWdmcmFtZSB0aGlzZnJhbWUgKG1haW50aHJlYWQsIDApOwogIAogICAgaW50IHJlc19mZCA9IGZk dGFiLmZpbmRfdW51c2VkX2hhbmRsZSAoKTsKLS0tIDE0MzcsMTQ0MSAtLS0tCiAgICBpbnQgcmVz ID0gLTE7CiAgICBTT0NLRVQgZmQyczsKISAgIFNJR0ZSQU1FX0hFUkUobWFpbnRocmVhZCk7CiAg CiAgICBpbnQgcmVzX2ZkID0gZmR0YWIuZmluZF91bnVzZWRfaGFuZGxlICgpOwoqKioqKioqKioq KioqKioKKioqIDE2MTUsMTYxOSAqKioqCiAgZmhhbmRsZXJfc29ja2V0OjpyZWFkICh2b2lkICpw dHIsIHNpemVfdCBsZW4pCiAgewohICAgc2lnZnJhbWUgdGhpc2ZyYW1lIChtYWludGhyZWFkKTsK ICAgIGludCByZXMgPSByZWN2IChnZXRfc29ja2V0ICgpLCAoY2hhciAqKSBwdHIsIGxlbiwgMCk7 CiAgICBpZiAocmVzID09IFNPQ0tFVF9FUlJPUikKLS0tIDE2MTUsMTYxOSAtLS0tCiAgZmhhbmRs ZXJfc29ja2V0OjpyZWFkICh2b2lkICpwdHIsIHNpemVfdCBsZW4pCiAgewohICAgU0lHRlJBTUVf SEVSRShtYWludGhyZWFkKTsKICAgIGludCByZXMgPSByZWN2IChnZXRfc29ja2V0ICgpLCAoY2hh ciAqKSBwdHIsIGxlbiwgMCk7CiAgICBpZiAocmVzID09IFNPQ0tFVF9FUlJPUikKKioqKioqKioq KioqKioqCioqKiAxNjI3LDE2MzEgKioqKgogIGZoYW5kbGVyX3NvY2tldDo6d3JpdGUgKGNvbnN0 IHZvaWQgKnB0ciwgc2l6ZV90IGxlbikKICB7CiEgICBzaWdmcmFtZSB0aGlzZnJhbWUgKG1haW50 aHJlYWQpOwogICAgaW50IHJlcyA9IHNlbmQgKGdldF9zb2NrZXQgKCksIChjb25zdCBjaGFyICop IHB0ciwgbGVuLCAwKTsKICAgIGlmIChyZXMgPT0gU09DS0VUX0VSUk9SKQotLS0gMTYyNywxNjMx IC0tLS0KICBmaGFuZGxlcl9zb2NrZXQ6OndyaXRlIChjb25zdCB2b2lkICpwdHIsIHNpemVfdCBs ZW4pCiAgewohICAgU0lHRlJBTUVfSEVSRShtYWludGhyZWFkKTsKICAgIGludCByZXMgPSBzZW5k IChnZXRfc29ja2V0ICgpLCAoY29uc3QgY2hhciAqKSBwdHIsIGxlbiwgMCk7CiAgICBpZiAocmVz ID09IFNPQ0tFVF9FUlJPUikKKioqKioqKioqKioqKioqCioqKiAxNjQzLDE2NDcgKioqKgogIHsK ICAgIGludCByZXMgPSAwOwohICAgc2lnZnJhbWUgdGhpc2ZyYW1lIChtYWludGhyZWFkKTsKICAK ICAgIGlmIChjbG9zZXNvY2tldCAoZ2V0X3NvY2tldCAoKSkpCi0tLSAxNjQzLDE2NDcgLS0tLQog IHsKICAgIGludCByZXMgPSAwOwohICAgU0lHRlJBTUVfSEVSRShtYWludGhyZWFkKTsKICAKICAg IGlmIChjbG9zZXNvY2tldCAoZ2V0X3NvY2tldCAoKSkpCioqKioqKioqKioqKioqKgoqKiogMTY4 MiwxNjg2ICoqKioKICAgIHN0cnVjdCBpZmNvbmYgKmlmYzsKICAgIHN0cnVjdCBpZnJlcSAqaWZy OwohICAgc2lnZnJhbWUgdGhpc2ZyYW1lIChtYWludGhyZWFkKTsKICAKICAgIHN3aXRjaCAoY21k KQotLS0gMTY4MiwxNjg2IC0tLS0KICAgIHN0cnVjdCBpZmNvbmYgKmlmYzsKICAgIHN0cnVjdCBp ZnJlcSAqaWZyOwohICAgU0lHRlJBTUVfSEVSRShtYWludGhyZWFkKTsKICAKICAgIHN3aXRjaCAo Y21kKQpJbmRleDogd2luc3VwL2N5Z3dpbi9zZWxlY3QuY2MKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2hvbWUvZHVkYV9hZG1pbi9jdnMtbWlycm9yL3NyYy93aW5zdXAvY3lnd2luL3NlbGVjdC5jYyx2 CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNApkaWZmIC1jIC0yIC1yMS4yNCBzZWxlY3QuY2MKKioq IHdpbnN1cC9jeWd3aW4vc2VsZWN0LmNjCTIwMDAvMDgvMjQgMjE6MTk6MTQJMS4yNAotLS0gd2lu c3VwL2N5Z3dpbi9zZWxlY3QuY2MJMjAwMC8wOS8wMiAxNDo1MzoyNgoqKioqKioqKioqKioqKioK KioqIDExOSwxMjMgKioqKgogICAgZmRfc2V0ICpkdW1teV93cml0ZWZkcyA9IGFsbG9jZmRfc2V0 IChtYXhmZHMpOwogICAgZmRfc2V0ICpkdW1teV9leGNlcHRmZHMgPSBhbGxvY2ZkX3NldCAobWF4 ZmRzKTsKISAgIHNpZ2ZyYW1lIHRoaXNmcmFtZSAobWFpbnRocmVhZCwgMCk7CiAgCiAgI2lmIDAK LS0tIDExOSwxMjMgLS0tLQogICAgZmRfc2V0ICpkdW1teV93cml0ZWZkcyA9IGFsbG9jZmRfc2V0 IChtYXhmZHMpOwogICAgZmRfc2V0ICpkdW1teV9leGNlcHRmZHMgPSBhbGxvY2ZkX3NldCAobWF4 ZmRzKTsKISAgIFNJR0ZSQU1FX0hFUkUobWFpbnRocmVhZCk7CiAgCiAgI2lmIDAKSW5kZXg6IHdp bnN1cC9jeWd3aW4vc2lncHJvYy5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9kdWRhX2Fk bWluL2N2cy1taXJyb3Ivc3JjL3dpbnN1cC9jeWd3aW4vc2lncHJvYy5jYyx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4zNQpkaWZmIC1jIC0yIC1yMS4zNSBzaWdwcm9jLmNjCioqKiB3aW5zdXAvY3ln d2luL3NpZ3Byb2MuY2MJMjAwMC8wOS8wMiAwMToxOTo1OAkxLjM1Ci0tLSB3aW5zdXAvY3lnd2lu L3NpZ3Byb2MuY2MJMjAwMC8wOS8wMiAxNDo1MzoyNwoqKioqKioqKioqKioqKioKKioqIDc4Miw3 ODYgKioqKgogIAkgIHRoaXNjYXRjaCA9IHNpZ2NhdGNoX21haW47CiAgCSAgdGhpc2NvbXBsZXRl ID0gc2lnY29tcGxldGVfbWFpbjsKISAJICB0aGlzZnJhbWUuc2V0IChtYWludGhyZWFkLCAxLCBl YnApOwogIAl9CiAgICAgIH0KLS0tIDc4Miw3ODYgLS0tLQogIAkgIHRoaXNjYXRjaCA9IHNpZ2Nh dGNoX21haW47CiAgCSAgdGhpc2NvbXBsZXRlID0gc2lnY29tcGxldGVfbWFpbjsKISAJICBTSUdG UkFNRV9TRVRfSEVSRSh0aGlzZnJhbWUsIG1haW50aHJlYWQsIDEsIGVicCk7CiAgCX0KICAgICAg fQoqKioqKioqKioqKioqKioKKioqIDE0MDUsMTQwOSAqKioqCiAgewogICAgRFdPUkQgcmV0Owoh ICAgc2lnZnJhbWUgdGhpc2ZyYW1lIChtYWludGhyZWFkKTsKICAgIHJldCA9IFdhaXRGb3JTaW5n bGVPYmplY3QgKGhIYW5kbGUsIGR3TWlsbGlzZWNvbmRzKTsKICAgIHJldHVybiByZXQ7Ci0tLSAx NDA1LDE0MDkgLS0tLQogIHsKICAgIERXT1JEIHJldDsKISAgIFNJR0ZSQU1FX0hFUkUobWFpbnRo cmVhZCk7CiAgICByZXQgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0IChoSGFuZGxlLCBkd01pbGxpc2Vj b25kcyk7CiAgICByZXR1cm4gcmV0OwoqKioqKioqKioqKioqKioKKioqIDE0MTYsMTQyMiAqKioq CiAgewogICAgRFdPUkQgcmV0OwohICAgc2lnZnJhbWUgdGhpc2ZyYW1lIChtYWludGhyZWFkKTsK ICAgIHJldCA9IFdhaXRGb3JNdWx0aXBsZU9iamVjdHMgKG5Db3VudCwgbHBIYW5kbGVzLCBmV2Fp dEFsbCwgZHdNaWxsaXNlY29uZHMpOwogICAgcmV0dXJuIHJldDsKICB9CiAgfQotLS0gMTQxNiwx NDIzIC0tLS0KICB7CiAgICBEV09SRCByZXQ7CiEgICBTSUdGUkFNRV9IRVJFKG1haW50aHJlYWQp OwogICAgcmV0ID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cyAobkNvdW50LCBscEhhbmRsZXMsIGZX YWl0QWxsLCBkd01pbGxpc2Vjb25kcyk7CiAgICByZXR1cm4gcmV0OwogIH0KICB9CisgCkluZGV4 OiB3aW5zdXAvY3lnd2luL3NpZ3Byb2MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9kdWRh X2FkbWluL2N2cy1taXJyb3Ivc3JjL3dpbnN1cC9jeWd3aW4vc2lncHJvYy5oLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjE1CmRpZmYgLWMgLTIgLXIxLjE1IHNpZ3Byb2MuaAoqKiogd2luc3VwL2N5 Z3dpbi9zaWdwcm9jLmgJMjAwMC8wOS8wMSAyMDo1NDoyMgkxLjE1Ci0tLSB3aW5zdXAvY3lnd2lu L3NpZ3Byb2MuaAkyMDAwLzA5LzAyIDE0OjUzOjMwCioqKioqKioqKioqKioqKgoqKiogNDIsNDUg KioqKgotLS0gNDIsNDggLS0tLQogIH07CiAgCisgI2RlZmluZSBTSUdGUkFNRV9IRVJFKHRocmVh ZCkJc2lnZnJhbWUgdGhpc2ZyYW1lKHRocmVhZCwgKERXT1JEKShfX2J1aWx0aW5fZnJhbWVfYWRk cmVzcygwKSkgKQorICNkZWZpbmUgU0lHRlJBTUVfU0VUX0hFUkUoZnJhbWUsdGhyZWFkLHVwLGVi cCkJZnJhbWUuc2V0KHRocmVhZCwgKGVicD86KERXT1JEKShfX2J1aWx0aW5fZnJhbWVfYWRkcmVz cyh1cD8xOjApKSkgKQorIAogIGNsYXNzIHNpZ2ZyYW1lCiAgewoqKioqKioqKioqKioqKioKKioq IDQ4LDY4ICoqKioKICAKICBwdWJsaWM6CiEgICB2b2lkIHNldCAoc2lndGhyZWFkICZ0LCBpbnQg dXAgPSAxLCBEV09SRCBlYnAgPSAwKQogICAgewogICAgICB0LmxvY2stPmFjcXVpcmUgKCk7CiAg ICAgIHN0ID0gJnQ7CiEgICAgIGlmIChlYnApCiEgICAgICAgdC5mcmFtZSA9IGVicDsKISAgICAg ZWxzZQohICAgICAgIHQuZnJhbWUgPSAoRFdPUkQpICh1cCA/IF9fYnVpbHRpbl9mcmFtZV9hZGRy ZXNzICgxKSA6CiEgCQkJICAgICBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyAoMCkpOwogICAgICB0 LmxvY2stPnJlbGVhc2UgKCk7CiAgICB9CiAgCiAgICBzaWdmcmFtZSAoKSB7c3QgPSBOVUxMO30K ISAgIHNpZ2ZyYW1lIChzaWd0aHJlYWQgJnQsIGludCB1cCA9IDApCiAgICB7CiAgICAgIGlmICgh dC5mcmFtZSAmJiB0LmlkID09IEdldEN1cnJlbnRUaHJlYWRJZCAoKSkKISAgICAgICBzZXQgKHQs IHVwKTsKICAgICAgZWxzZQogICAgICAgIHN0ID0gTlVMTDsKLS0tIDUxLDY3IC0tLS0KICAKICBw dWJsaWM6CiEgICB2b2lkIHNldCAoc2lndGhyZWFkICZ0LCBEV09SRCBlYnApCiAgICB7CiAgICAg IHQubG9jay0+YWNxdWlyZSAoKTsKICAgICAgc3QgPSAmdDsKISAgICAgdC5mcmFtZSA9IGVicDsK ICAgICAgdC5sb2NrLT5yZWxlYXNlICgpOwogICAgfQogIAogICAgc2lnZnJhbWUgKCkge3N0ID0g TlVMTDt9CiEgICBzaWdmcmFtZSAoc2lndGhyZWFkICZ0LCBEV09SRCBlYnApCiAgICB7CiAgICAg IGlmICghdC5mcmFtZSAmJiB0LmlkID09IEdldEN1cnJlbnRUaHJlYWRJZCAoKSkKISAgICAgICBz ZXQgKHQsZWJwKTsKICAgICAgZWxzZQogICAgICAgIHN0ID0gTlVMTDsKSW5kZXg6IHdpbnN1cC9j eWd3aW4vc3lzY2FsbHMuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZHVkYV9hZG1pbi9j dnMtbWlycm9yL3NyYy93aW5zdXAvY3lnd2luL3N5c2NhbGxzLmNjLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjUwCmRpZmYgLWMgLTIgLXIxLjUwIHN5c2NhbGxzLmNjCioqKiB3aW5zdXAvY3lnd2lu L3N5c2NhbGxzLmNjCTIwMDAvMDgvMjIgMDU6MTA6MjAJMS41MAotLS0gd2luc3VwL2N5Z3dpbi9z eXNjYWxscy5jYwkyMDAwLzA5LzAyIDE0OjUzOjMwCioqKioqKioqKioqKioqKgoqKiogMTk0LDE5 OCAqKioqCiAgewogICAgaW50IHJlczsKISAgIHNpZ2ZyYW1lIHRoaXNmcmFtZSAobWFpbnRocmVh ZCk7CiAgICBmaGFuZGxlcl9iYXNlICpmaCA9IGZkdGFiW2ZkXTsKICAKLS0tIDE5NCwxOTggLS0t LQogIHsKICAgIGludCByZXM7CiEgICBTSUdGUkFNRV9IRVJFKG1haW50aHJlYWQpOwogICAgZmhh bmRsZXJfYmFzZSAqZmggPSBmZHRhYltmZF07CiAgCg== ------------912F24F18B692E7--