From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1778 invoked by alias); 11 Nov 2011 00:57:04 -0000 Received: (qmail 1768 invoked by uid 22791); 11 Nov 2011 00:57:03 -0000 X-SWARE-Spam-Status: No, hits=-3.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,TW_BJ X-Spam-Check-By: sourceware.org Received: from mail-qw0-f41.google.com (HELO mail-qw0-f41.google.com) (209.85.216.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Nov 2011 00:56:48 +0000 Received: by qadc11 with SMTP id c11so3796616qad.0 for ; Thu, 10 Nov 2011 16:56:48 -0800 (PST) Received: by 10.224.17.148 with SMTP id s20mr7581750qaa.55.1320969526642; Thu, 10 Nov 2011 15:58:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.224.17.148 with SMTP id s20mr7581739qaa.55.1320969526513; Thu, 10 Nov 2011 15:58:46 -0800 (PST) Received: by 10.224.6.76 with HTTP; Thu, 10 Nov 2011 15:58:46 -0800 (PST) In-Reply-To: <20111106063053.B56F6246194@ruffy.mtv.corp.google.com> References: <20111106063053.B56F6246194@ruffy.mtv.corp.google.com> Date: Fri, 11 Nov 2011 00:57:00 -0000 Message-ID: Subject: [RFA, doc RFA] Avoid calling gdb_realpath if basenames are different From: Doug Evans To: gdb-patches@sourceware.org, Tom Tromey , Joel Brobecker , Eli Zaretskii Content-Type: multipart/mixed; boundary=bcaec51b15e9630e9d04b16a2f18 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-11/txt/msg00302.txt.bz2 --bcaec51b15e9630e9d04b16a2f18 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1602 On Sat, Nov 5, 2011 at 11:30 PM, Doug Evans wrote: > Hi. > This patch has been brought up before (by others). > E.g., http://sourceware.org/ml/gdb-patches/2010-04/msg00466.html > I'm hoping we can get this in now. > We're paying a real and significant cost for what is mostly a > theoretical concern. > [E.g., How often is one source file referred to by the user using a basename > that is different than what's recorded in the debug info?] > > If people are concerned about breaking someone's usage, > we could default basenames-may-differ to true in 7.4, > with a warning that it will be set to false in 7.5 (or some such). > [We could leave the default set to true, especially if someone knew > of at least some minimally common usage this would break. > I'd hate to otherwise penalize the vast majority of users if not.] Hi. Ok to check in? Note: I set the default to be the common case (speed up gdb by assuming basenames never differ). Let me know if you want the default changed. Tom: I'll look at the bugs you mentioned separately. 2011-11-10 Doug Evans * NEWS: Mention new parameter basenames-may-differ. * dwarf2read.c (dw2_lookup_symtab): Avoid calling gdb_realpath if ! basenames_may_differ. * psymtab.c (lookup_partial_symtab): Ditto. * symtab.c (lookup_symtab): Ditto. (basenames_may_differ): New global. (_initialize_symtab): New parameter basenames-may-differ. * symtab.h (basenames_may_differ): Declare. doc/ * gdb.texinfo (Files): Document basenames-may-differ. --bcaec51b15e9630e9d04b16a2f18 Content-Type: text/plain; charset=US-ASCII; name="gdb-111110-basenames-may-differ-2.patch.txt" Content-Disposition: attachment; filename="gdb-111110-basenames-may-differ-2.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_guuf2uhn0 Content-length: 12928 MjAxMS0xMS0xMCAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog TkVXUzogTWVudGlvbiBuZXcgcGFyYW1ldGVyIGJhc2VuYW1lcy1tYXktZGlm ZmVyLgoJKiBkd2FyZjJyZWFkLmMgKGR3Ml9sb29rdXBfc3ltdGFiKTogQXZv aWQgY2FsbGluZyBnZGJfcmVhbHBhdGggaWYKCSEgYmFzZW5hbWVzX21heV9k aWZmZXIuCgkqIHBzeW10YWIuYyAobG9va3VwX3BhcnRpYWxfc3ltdGFiKTog RGl0dG8uCgkqIHN5bXRhYi5jIChsb29rdXBfc3ltdGFiKTogRGl0dG8uCgko YmFzZW5hbWVzX21heV9kaWZmZXIpOiBOZXcgZ2xvYmFsLgoJKF9pbml0aWFs aXplX3N5bXRhYik6IE5ldyBwYXJhbWV0ZXIgYmFzZW5hbWVzLW1heS1kaWZm ZXIuCgkqIHN5bXRhYi5oIChiYXNlbmFtZXNfbWF5X2RpZmZlcik6IERlY2xh cmUuCgoJZG9jLwoJKiBnZGIudGV4aW5mbyAoRmlsZXMpOiBEb2N1bWVudCBi YXNlbmFtZXMtbWF5LWRpZmZlci4KCkluZGV4OiBORVdTCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvTkVXUyx2 CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NjQKZGlmZiAtdSAtcCAtcjEuNDY0 IE5FV1MKLS0tIE5FV1MJMiBOb3YgMjAxMSAyMzo0NDoxOSAtMDAwMAkxLjQ2 NAorKysgTkVXUwkxMCBOb3YgMjAxMSAyMzo0OToyNiAtMDAwMApAQCAtMTUw LDYgKzE1MCwyMCBAQCBzaG93IGRlYnVnIGVudHJ5LXZhbHVlcwogICBDb250 cm9sIGRpc3BsYXkgb2YgZGVidWdnaW5nIGluZm8gZm9yIGRldGVybWluaW5n IGZyYW1lIGFyZ3VtZW50IHZhbHVlcyBhdAogICBmdW5jdGlvbiBlbnRyeSBh bmQgdmlydHVhbCB0YWlsIGNhbGwgZnJhbWVzLgogCitzZXQgYmFzZW5hbWVz LW1heS1kaWZmZXIKK3Nob3cgYmFzZW5hbWVzLW1heS1kaWZmZXIKKyAgU2V0 IHdoZXRoZXIgYSBzb3VyY2UgZmlsZSBtYXkgaGF2ZSBtdWx0aXBsZSBiYXNl IG5hbWVzLgorICBBICJiYXNlIG5hbWUiIGlzIHRoZSBuYW1lIG9mIGEgZmls ZSB3aXRoIHRoZSBkaXJlY3RvcnkgcGFydCByZW1vdmVkLgorICBFeGFtcGxl OiBUaGUgYmFzZSBuYW1lIG9mICIvaG9tZS91c2VyL2hlbGxvLmMiIGlzICJo ZWxsby5jIi4KKyAgV2hlbiBkb2luZyBmaWxlIG5hbWUgYmFzZWQgbG9va3Vw cywgZ2RiIHdpbGwgY2Fub25pY2FsaXplIGZpbGUgbmFtZXMKKyAgKGUuZy4s IGV4cGFuZCBzeW1saW5rcykgYmVmb3JlIGNvbXBhcmluZyB0aGVtLCB3aGlj aCBpcyBhbiBleHBlbnNpdmUKKyAgb3BlcmF0aW9uLgorICBJZiBzZXQsIGdk YiB3aWxsIG5vdCBhc3N1bWUgYSBmaWxlIGlzIGtub3duIGJ5IG9uZSBiYXNl IG5hbWUsIGFuZCB0aHVzCisgIGl0IGNhbm5vdCBvcHRpbWl6ZSBmaWxlIG5h bWUgY29tcGFyaXNpb25zIGJ5IHNraXBwaW5nIHRoZSBjYW5vbmljYWxpemF0 aW9uCisgIHN0ZXAgaWYgdGhlIGJhc2UgbmFtZXMgYXJlIGRpZmZlcmVudC4K KyAgSWYgbm90IHNldCwgYWxsIHNvdXJjZSBmaWxlcyBtdXN0IGJlIGtub3du IGJ5IG9uZSBiYXNlIG5hbWUsCisgIGFuZCBnZGIgd2lsbCBkbyBmaWxlIG5h bWUgY29tcGFyaXNvbnMgbW9yZSBlZmZpY2llbnRseS4KKwogKiBOZXcgcmVt b3RlIHBhY2tldHMKIAogUVRFbmFibGUKSW5kZXg6IGR3YXJmMnJlYWQuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMv Z2RiL2R3YXJmMnJlYWQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NzkK ZGlmZiAtdSAtcCAtcjEuNTc5IGR3YXJmMnJlYWQuYwotLS0gZHdhcmYycmVh ZC5jCTEwIE5vdiAyMDExIDIwOjIxOjI3IC0wMDAwCTEuNTc5CisrKyBkd2Fy ZjJyZWFkLmMJMTAgTm92IDIwMTEgMjM6NDk6MjYgLTAwMDAKQEAgLTI0NDUs NyArMjQ0NSw4IEBAIGR3Ml9sb29rdXBfc3ltdGFiIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmkKIAkJICAgc3RydWN0IHN5bXRhYiAqKnJlc3VsdCkKIHsKICAg aW50IGk7Ci0gIGludCBjaGVja19iYXNlbmFtZSA9IGxiYXNlbmFtZSAobmFt ZSkgPT0gbmFtZTsKKyAgY29uc3QgY2hhciAqbmFtZV9iYXNlbmFtZSA9IGxi YXNlbmFtZSAobmFtZSk7CisgIGludCBjaGVja19iYXNlbmFtZSA9IG5hbWVf YmFzZW5hbWUgPT0gbmFtZTsKICAgc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0 YSAqYmFzZV9jdSA9IE5VTEw7CiAKICAgZHcyX3NldHVwIChvYmpmaWxlKTsK QEAgLTI0NzgsNiArMjQ3OSwxMiBAQCBkdzJfbG9va3VwX3N5bXRhYiAoc3Ry dWN0IG9iamZpbGUgKm9iamZpCiAJICAgICAgJiYgRklMRU5BTUVfQ01QIChs YmFzZW5hbWUgKHRoaXNfbmFtZSksIG5hbWUpID09IDApCiAJICAgIGJhc2Vf Y3UgPSBwZXJfY3U7CiAKKwkgIC8qIEJlZm9yZSB3ZSBpbnZva2UgcmVhbHBh dGgsIHdoaWNoIGNhbiBnZXQgZXhwZW5zaXZlIHdoZW4gbWFueQorCSAgICAg ZmlsZXMgYXJlIGludm9sdmVkLCBkbyBhIHF1aWNrIGNvbXBhcmlzb24gb2Yg dGhlIGJhc2VuYW1lcy4gICovCisJICBpZiAoISBiYXNlbmFtZXNfbWF5X2Rp ZmZlcgorCSAgICAgICYmIEZJTEVOQU1FX0NNUCAobGJhc2VuYW1lICh0aGlz X25hbWUpLCBuYW1lX2Jhc2VuYW1lKSAhPSAwKQorCSAgICBjb250aW51ZTsK KwogCSAgaWYgKGZ1bGxfcGF0aCAhPSBOVUxMKQogCSAgICB7CiAJICAgICAg Y29uc3QgY2hhciAqdGhpc19yZWFsX25hbWUgPSBkdzJfZ2V0X3JlYWxfcGF0 aCAob2JqZmlsZSwKSW5kZXg6IHBzeW10YWIuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3BzeW10YWIuYyx2 CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMQpkaWZmIC11IC1wIC1yMS4zMSBw c3ltdGFiLmMKLS0tIHBzeW10YWIuYwkyOCBPY3QgMjAxMSAxNzoyOTozNyAt MDAwMAkxLjMxCisrKyBwc3ltdGFiLmMJMTAgTm92IDIwMTEgMjM6NDk6MjYg LTAwMDAKQEAgLTEzNCw2ICsxMzQsNyBAQCBsb29rdXBfcGFydGlhbF9zeW10 YWIgKHN0cnVjdCBvYmpmaWxlICpvCiAJCSAgICAgICBjb25zdCBjaGFyICpm dWxsX3BhdGgsIGNvbnN0IGNoYXIgKnJlYWxfcGF0aCkKIHsKICAgc3RydWN0 IHBhcnRpYWxfc3ltdGFiICpwc3Q7CisgIGNvbnN0IGNoYXIgKm5hbWVfYmFz ZW5hbWUgPSBsYmFzZW5hbWUgKG5hbWUpOwogCiAgIEFMTF9PQkpGSUxFX1BT WU1UQUJTX1JFUVVJUkVEIChvYmpmaWxlLCBwc3QpCiAgIHsKQEAgLTE0Miw2 ICsxNDMsMTIgQEAgbG9va3VwX3BhcnRpYWxfc3ltdGFiIChzdHJ1Y3Qgb2Jq ZmlsZSAqbwogCXJldHVybiAocHN0KTsKICAgICAgIH0KIAorICAgIC8qIEJl Zm9yZSB3ZSBpbnZva2UgcmVhbHBhdGgsIHdoaWNoIGNhbiBnZXQgZXhwZW5z aXZlIHdoZW4gbWFueQorICAgICAgIGZpbGVzIGFyZSBpbnZvbHZlZCwgZG8g YSBxdWljayBjb21wYXJpc29uIG9mIHRoZSBiYXNlbmFtZXMuICAqLworICAg IGlmICghIGJhc2VuYW1lc19tYXlfZGlmZmVyCisJJiYgRklMRU5BTUVfQ01Q IChuYW1lX2Jhc2VuYW1lLCBsYmFzZW5hbWUgKHBzdC0+ZmlsZW5hbWUpKSAh PSAwKQorICAgICAgY29udGludWU7CisKICAgICAvKiBJZiB0aGUgdXNlciBn YXZlIHVzIGFuIGFic29sdXRlIHBhdGgsIHRyeSB0byBmaW5kIHRoZSBmaWxl IGluCiAgICAgICAgdGhpcyBzeW10YWIgYW5kIHVzZSBpdHMgYWJzb2x1dGUg cGF0aC4gICovCiAgICAgaWYgKGZ1bGxfcGF0aCAhPSBOVUxMKQpAQCAtMTcy LDcgKzE3OSw3IEBAIGxvb2t1cF9wYXJ0aWFsX3N5bXRhYiAoc3RydWN0IG9i amZpbGUgKm8KIAogICAvKiBOb3csIHNlYXJjaCBmb3IgYSBtYXRjaGluZyB0 YWlsIChvbmx5IGlmIG5hbWUgZG9lc24ndCBoYXZlIGFueSBkaXJzKS4gICov CiAKLSAgaWYgKGxiYXNlbmFtZSAobmFtZSkgPT0gbmFtZSkKKyAgaWYgKG5h bWVfYmFzZW5hbWUgPT0gbmFtZSkKICAgICBBTExfT0JKRklMRV9QU1lNVEFC U19SRVFVSVJFRCAob2JqZmlsZSwgcHN0KQogICAgIHsKICAgICAgIGlmIChG SUxFTkFNRV9DTVAgKGxiYXNlbmFtZSAocHN0LT5maWxlbmFtZSksIG5hbWUp ID09IDApCkluZGV4OiBzeW10YWIuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3N5bXRhYi5jLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjI4NQpkaWZmIC11IC1wIC1yMS4yODUgc3ltdGFi LmMKLS0tIHN5bXRhYi5jCTI5IE9jdCAyMDExIDA3OjI2OjA3IC0wMDAwCTEu Mjg1CisrKyBzeW10YWIuYwkxMCBOb3YgMjAxMSAyMzo0OToyNiAtMDAwMApA QCAtMTEyLDYgKzExMiwxMSBAQCB2b2lkIF9pbml0aWFsaXplX3N5bXRhYiAo dm9pZCk7CiAKIC8qICovCiAKKy8qIE5vbi16ZXJvIGlmIGEgZmlsZSBtYXkg YmUga25vd24gYnkgdHdvIGRpZmZlcmVudCBiYXNlbmFtZXMuCisgICBUaGlz IGlzIHRoZSB1bmNvbW1vbiBjYXNlLCBhbmQgc2lnbmlmaWNhbnRseSBzbG93 cyBkb3duIGdkYi4KKyAgIERlZmF1bHQgc2V0IHRvICJvZmYiIHRvIG5vdCBz bG93IGRvd24gdGhlIGNvbW1vbiBjYXNlLiAgKi8KK2ludCBiYXNlbmFtZXNf bWF5X2RpZmZlciA9IDA7CisKIC8qIEFsbG93IHRoZSB1c2VyIHRvIGNvbmZp Z3VyZSB0aGUgZGVidWdnZXIgYmVoYXZpb3Igd2l0aCByZXNwZWN0CiAgICB0 byBtdWx0aXBsZS1jaG9pY2UgbWVudXMgd2hlbiBtb3JlIHRoYW4gb25lIHN5 bWJvbCBtYXRjaGVzIGR1cmluZwogICAgYSBzeW1ib2wgbG9va3VwLiAgKi8K QEAgLTE1NSw2ICsxNjAsNyBAQCBsb29rdXBfc3ltdGFiIChjb25zdCBjaGFy ICpuYW1lKQogICBjaGFyICpyZWFsX3BhdGggPSBOVUxMOwogICBjaGFyICpm dWxsX3BhdGggPSBOVUxMOwogICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsK KyAgY29uc3QgY2hhciogYmFzZV9uYW1lID0gbGJhc2VuYW1lIChuYW1lKTsK IAogICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwIChudWxsX2NsZWFudXAsIE5V TEwpOwogCkBAIC0xODAsNiArMTg2LDEyIEBAIGdvdF9zeW10YWI6CiAJcmV0 dXJuIHM7CiAgICAgICB9CiAKKyAgICAvKiBCZWZvcmUgd2UgaW52b2tlIHJl YWxwYXRoLCB3aGljaCBjYW4gZ2V0IGV4cGVuc2l2ZSB3aGVuIG1hbnkKKyAg ICAgICBmaWxlcyBhcmUgaW52b2x2ZWQsIGRvIGEgcXVpY2sgY29tcGFyaXNv biBvZiB0aGUgYmFzZW5hbWVzLiAgKi8KKyAgICBpZiAoISBiYXNlbmFtZXNf bWF5X2RpZmZlcgorCSYmIEZJTEVOQU1FX0NNUCAoYmFzZV9uYW1lLCBsYmFz ZW5hbWUgKHMtPmZpbGVuYW1lKSkgIT0gMCkKKyAgICAgIGNvbnRpbnVlOwor CiAgICAgLyogSWYgdGhlIHVzZXIgZ2F2ZSB1cyBhbiBhYnNvbHV0ZSBwYXRo LCB0cnkgdG8gZmluZCB0aGUgZmlsZSBpbgogICAgICAgIHRoaXMgc3ltdGFi IGFuZCB1c2UgaXRzIGFic29sdXRlIHBhdGguICAqLwogCkBAIC00ODgzLDUg KzQ4OTcsMjIgQEAgU2hvdyBob3cgdGhlIGRlYnVnZ2VyIGhhbmRsZXMgYW1i aWd1aXRpZQogVmFsaWQgdmFsdWVzIGFyZSBcImFza1wiLCBcImFsbFwiLCBc ImNhbmNlbFwiLCBhbmQgdGhlIGRlZmF1bHQgaXMgXCJhbGxcIi4iKSwKICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsICZzZXRsaXN0LCAm c2hvd2xpc3QpOwogCisgIGFkZF9zZXRzaG93X2Jvb2xlYW5fY21kICgiYmFz ZW5hbWVzLW1heS1kaWZmZXIiLCBjbGFzc19vYnNjdXJlLAorCQkJICAgJmJh c2VuYW1lc19tYXlfZGlmZmVyLCBfKCJcCitTZXQgd2hldGhlciBhIHNvdXJj ZSBmaWxlIG1heSBoYXZlIG11bHRpcGxlIGJhc2UgbmFtZXMuIiksIF8oIlwK K1Nob3cgd2hldGhlciBhIHNvdXJjZSBmaWxlIG1heSBoYXZlIG11bHRpcGxl IGJhc2UgbmFtZXMuIiksIF8oIlwKK0EgXCJiYXNlIG5hbWVcIiBpcyB0aGUg bmFtZSBvZiBhIGZpbGUgd2l0aCB0aGUgZGlyZWN0b3J5IHBhcnQgcmVtb3Zl ZC5cblwKK0V4YW1wbGU6IFRoZSBiYXNlIG5hbWUgb2YgXCIvaG9tZS91c2Vy L2hlbGxvLmNcIiBpcyBcImhlbGxvLmNcIi5cblwKK1doZW4gZG9pbmcgZmls ZSBuYW1lIGJhc2VkIGxvb2t1cHMsIGdkYiB3aWxsIGNhbm9uaWNhbGl6ZSBm aWxlIG5hbWVzXG5cCisoZS5nLiwgZXhwYW5kIHN5bWxpbmtzKSBiZWZvcmUg Y29tcGFyaW5nIHRoZW0sIHdoaWNoIGlzIGFuIGV4cGVuc2l2ZVxuXAorb3Bl cmF0aW9uLlxuXAorSWYgc2V0LCBnZGIgd2lsbCBub3QgYXNzdW1lIGEgZmls ZSBpcyBrbm93biBieSBvbmUgYmFzZSBuYW1lLCBhbmQgdGh1c1xuXAoraXQg Y2Fubm90IG9wdGltaXplIGZpbGUgbmFtZSBjb21wYXJpc2lvbnMgYnkgc2tp cHBpbmcgdGhlIGNhbm9uaWNhbGl6YXRpb25cblwKK3N0ZXAgaWYgdGhlIGJh c2UgbmFtZXMgYXJlIGRpZmZlcmVudC5cblwKK0lmIG5vdCBzZXQsIGFsbCBz b3VyY2UgZmlsZXMgbXVzdCBiZSBrbm93biBieSBvbmUgYmFzZSBuYW1lLFxu XAorYW5kIGdkYiB3aWxsIGRvIGZpbGUgbmFtZSBjb21wYXJpc29ucyBtdWNo IG1vcmUgZWZmaWNpZW50bHkuIiksCisJCQkgICBOVUxMLCBOVUxMLAorCQkJ ICAgJnNldGxpc3QsICZzaG93bGlzdCk7CisKICAgb2JzZXJ2ZXJfYXR0YWNo X2V4ZWN1dGFibGVfY2hhbmdlZCAoc3ltdGFiX29ic2VydmVyX2V4ZWN1dGFi bGVfY2hhbmdlZCk7CiB9CkluZGV4OiBzeW10YWIuaAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3N5bXRhYi5o LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE5MQpkaWZmIC11IC1wIC1yMS4x OTEgc3ltdGFiLmgKLS0tIHN5bXRhYi5oCTEwIE5vdiAyMDExIDIwOjIxOjI4 IC0wMDAwCTEuMTkxCisrKyBzeW10YWIuaAkxMCBOb3YgMjAxMSAyMzo0OToy NiAtMDAwMApAQCAtMTMwNiw0ICsxMzA2LDYgQEAgdm9pZCBmaXh1cF9zZWN0 aW9uIChzdHJ1Y3QgZ2VuZXJhbF9zeW1ibwogCiBzdHJ1Y3Qgb2JqZmlsZSAq bG9va3VwX29iamZpbGVfZnJvbV9ibG9jayAoY29uc3Qgc3RydWN0IGJsb2Nr ICpibG9jayk7CiAKK2V4dGVybiBpbnQgYmFzZW5hbWVzX21heV9kaWZmZXI7 CisKICNlbmRpZiAvKiAhZGVmaW5lZChTWU1UQUJfSCkgKi8KSW5kZXg6IGRv Yy9nZGIudGV4aW5mbwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvY3ZzL3NyYy9zcmMvZ2RiL2RvYy9nZGIudGV4aW5mbyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS44OTAKZGlmZiAtdSAtcCAtcjEuODkwIGdkYi50ZXhp bmZvCi0tLSBkb2MvZ2RiLnRleGluZm8JOCBOb3YgMjAxMSAyMTozNDoxOCAt MDAwMAkxLjg5MAorKysgZG9jL2dkYi50ZXhpbmZvCTEwIE5vdiAyMDExIDIz OjQ5OjI4IC0wMDAwCkBAIC0xNTY4MCw2ICsxNTY4MCw0NyBAQCBUaGlzIGlz IHRoZSBkZWZhdWx0LgogQGVuZCB0YWJsZQogQGVuZCB0YWJsZQogCitAY2lu ZGV4IGZpbGUgbmFtZSBjYW5vbmljYWxpemF0aW9uCitAY2luZGV4IGJhc2Ug bmFtZSBkaWZmZXJlbmNlcworV2hlbiBwcm9jZXNzaW5nIGZpbGUgbmFtZXMg cHJvdmlkZWQgYnkgdGhlIHVzZXIsCitAdmFsdWV7R0RCTn0gd2lsbCBjYW5v bmljYWxpemUgdGhlbSBhbmQgcmVtb3ZlIHN5bWJvbGljIGxpbmtzLgorVGhp cyBlbnN1cmVzIHRoYXQgQHZhbHVle0dEQk59IHdpbGwgZmluZCB0aGUgcmln aHQgZmlsZSwKK2V2ZW4gaWYgdGhlIGRlYnVnIGluZm9ybWF0aW9uIHNwZWNp ZmllcyBhbiBhbHRlcm5hdGUgcGF0aC4KK0hvd2V2ZXIsIHdpdGggbGFyZ2Ug cHJvZ3JhbXMgdGhpcyBjYW5vbmljYWxpemF0aW9uIGNhbiBub3RpY2VhYmx5 IHNsb3cKK2Rvd24gQHZhbHVle0dEQk59LiAgVG8gY29tcGVuc2F0ZSwgQHZh bHVle0dEQk59IHdpbGwgdHJ5IHRvIGF2b2lkCit0aGlzIGNhbm9uaWNhbGl6 YXRpb24gd2hlcmV2ZXIgcG9zc2libGUuICBPbmUgd2F5IGl0IGNhbiBkbyBz bworaXMgYnkgZmlyc3QgY29tcGFyaW5nIHRoZSBAc2FtcHtiYXNlIG5hbWV9 IG9mIGEgZmlsZS4KK1RoZSBAc2FtcHtiYXNlIG5hbWV9IG9mIGEgZmlsZSBp cyBzaW1wbHkgdGhlIGZpbGUncyBuYW1lIHdpdGhvdXQKK2FueSBkaXJlY3Rv cnkgaW5mb3JtYXRpb24uICBGb3IgZXhhbXBsZSwgdGhlIGJhc2UgbmFtZSBv ZgorQGZpbGV7L2hvbWUvdXNlci9oZWxsby5jfSBpcyBAZmlsZXtoZWxsby5j fS4KK0J5IGRvaW5nIHRoaXMgQHZhbHVle0dEQk59IGNhbiBza2lwLCBmb3Ig ZXhhbXBsZSwKK0BmaWxley91c3IvaW5jbHVkZS9zdGRpby5ofSB3aXRob3V0 IGhhdmluZyB0byBmaXJzdCBjYW5vbmljYWxpemUKK2FuZCB0aGVuIGNvbXBh cmUgdGhlIGRpcmVjdG9yeSBuYW1lcy4KK1RoaXMgd29ya3MgZ3JlYXQsIGV4 Y2VwdCB3aGVuIHRoZSBiYXNlIG5hbWUgb2YgYSBmaWxlCitjYW4gaGF2ZSBt dWx0aXBsZSBuYW1lcyBkdWUgdG8gc3ltYm9saWMgbGlua3MuCitGb3IgZXhh bXBsZSwgaWYgQGZpbGV7L2hvbWUvdXNlci9iYXIuY30gaXMgYSBzeW1ib2xp YyBsaW5rIHRvCitAZmlsZXsvaG9tZS91c2VyL2Zvby5jfSB0aGVuIEB2YWx1 ZXtHREJOfSBjYW5ub3QganVzdCBsb29rIGF0Cit0aGUgYmFzZSBuYW1lIG9m IHR3byBmaWxlcywgaXQgbXVzdCBjYW5vbmljYWxpemUgdGhlbSwgZXhwYW5k CithbGwgc3ltYm9saWMgbGlua3MsIGFuZCBAZW1waHt0aGVufSBjb21wYXJl IHRoZSBmaWxlIG5hbWVzCit0byBzZWUgaWYgdGhleSBtYXRjaC4KK0ZvcnR1 bmF0ZWx5LCBoYXZpbmcgb25lIGZpbGUga25vd24gYnkgdHdvIGRpZmZlcmVu dCBiYXNlIG5hbWVzCitkb2VzIG5vdCBnZW5lcmFsbHkgb2NjdXIgaW4gcHJh Y3RpY2UuCitTaG91bGQgaXQgb2NjdXIsIGhvd2V2ZXIsIEB2YWx1ZXtHREJO fSBwcm92aWRlcyBhbiBlc2NhcGUgaGF0Y2gKK3RvIGFsbG93IHRoaXMgdG8g d29yay4KK0J5IHNldHRpbmcgQGNvZGV7YmFzZW5hbWVzLW1heS1kaWZmZXJ9 IHRvIEBjb2Rle3RydWV9CitAdmFsdWV7R0RCTn0gd2lsbCBhbHdheXMgY2Fu b25pY2FsaXplIGZpbGUgbmFtZXMgYmVmb3JlCitjb21wYXJpbmcgdGhlbSwg dGh1cyBlbnN1cmluZyB0aGF0IG9uZSBmaWxlIGtub3duIGJ5IG11bHRpcGxl CitiYXNlIG5hbWVzIGFyZSB0cmVhdGVkIGFzIHRoZSBzYW1lIGZpbGUuCisK K0B0YWJsZSBAY29kZQorQGl0ZW0gc2V0IGJhc2VuYW1lcy1tYXktZGlmZmVy CitAa2luZGV4IHNldCBiYXNlbmFtZXMtbWF5LWRpZmZlcgorU2V0IHdoZXRo ZXIgYSBzb3VyY2UgZmlsZSBtYXkgaGF2ZSBtdWx0aXBsZSBiYXNlIG5hbWVz LgorCitAaXRlbSBzaG93IGJhc2VuYW1lcy1tYXktZGlmZmVyCitAa2luZGV4 IHNob3cgYmFzZW5hbWVzLW1heS1kaWZmZXIKK1Nob3cgd2hldGhlciBhIHNv dXJjZSBmaWxlIG1heSBoYXZlIG11bHRpcGxlIGJhc2UgbmFtZXMuCitAZW5k IHRhYmxlCiAKIEBub2RlIFNlcGFyYXRlIERlYnVnIEZpbGVzCiBAc2VjdGlv biBEZWJ1Z2dpbmcgSW5mb3JtYXRpb24gaW4gU2VwYXJhdGUgRmlsZXMK --bcaec51b15e9630e9d04b16a2f18--