From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24797 invoked by alias); 23 Mar 2011 10:40:00 -0000 Received: (qmail 23753 invoked by uid 22791); 23 Mar 2011 10:39:47 -0000 X-SWARE-Spam-Status: No, hits=1.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KAM_STOCKTIP,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_BJ,TW_CP,TW_DB 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; Wed, 23 Mar 2011 10:39:35 +0000 Received: by qwa26 with SMTP id 26so7390446qwa.0 for ; Wed, 23 Mar 2011 03:39:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.0.75 with SMTP id 11mr5688717qca.94.1300876773378; Wed, 23 Mar 2011 03:39:33 -0700 (PDT) Received: by 10.229.97.206 with HTTP; Wed, 23 Mar 2011 03:39:33 -0700 (PDT) In-Reply-To: <83tyfkw00f.fsf@gnu.org> References: <20110303145832.GY30306@adacore.com> <83tyfkw00f.fsf@gnu.org> Date: Wed, 23 Mar 2011 11:16:00 -0000 Message-ID: Subject: Re: [patch gdb]: Fix some DOS-path related issues in gdb From: Kai Tietz To: Eli Zaretskii Cc: Joel Brobecker , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=90e6ba5bb9ddf94d87049f23f904 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-03/txt/msg01018.txt.bz2 --90e6ba5bb9ddf94d87049f23f904 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2884 2011/3/3 Eli Zaretskii : >> Date: Thu, 3 Mar 2011 18:58:32 +0400 >> From: Joel Brobecker >> Cc: Kai Tietz , gdb-patches@sourceware.org >> >> > I didn't know that the Windows 64bit target can use ELF debug info. >> > Can it? =A0With what toolchains? >> > >> > As for mdebugread.c, I always thought it was MIPS specific. =A0What >> > other platforms use it? >> >> These would still be pertinent in the case of cross debugging, no? >> If the files were cross-compiled on Windows, the debug info would >> contain file paths that follow the Windows convention... > > Is that use-case even practical? =A0Who would develop on Windows if they > have Linux or Irix? > > Anyway, if others don't mind to have DOS-ism in mdebugread.c and > elfread.c, I don't object. > Hello, I have updated patch against current trunk. Additionally I replaced the strrchr-patterns by lbasename. As now some time has pasted, I would like to kindly ask, if this patch is ok, or if there are still objections? 2011-03-23 Kai Tietz * breakpoint.c (clear_command): Use filename_cmp instead of strcmp for comparision. * buildsym.c (watch_main_source_file_lossage): Likewise. (patch_subfile_names): Use IS_DIR_SEPARATOR instead of checking just for slash. * dbxread.c (read_dbx_symtab): Use lbasename instead of strrchr and filename_cmp instead of strcmp for filenames. (add_old_header_file): Use filename_cmp instead of strcmp for comparision. * exec.c (exec_set_section_address): Likewise. * macrotab.c (macro_lookup_inclusion): Likewise. (macro_lookup_inclusion): Likewise. * elfread.c (_initialize_elfread): Likewise. (elfstab_offset_sections): Likewise. (elfstab_offset_sections): Use lbasename instead of strrchr. * mdebugread.c (parse_partial_symbols): Likewise. (arse_partial_symbols): Use filename_(n)cmp instead of str(n)cmp for comparision. * minsyms.c (lookup_minimal_symbol): Likewise. * psymtab.c (read_psymtabs_with_filename): Likewise. * solib-som.c (match_main): Likewise. * solib.c (solib_read_symbols): Likewise. (reload_shared_libraries_1): Likewise. * symmisc.c (maintenance_print_symbols): Likewise. * symfile.c (separate_debug_file_exists): Likewise. (reread_symbols): Likewise. (find_separate_debug_file_by_debuglink): Likewise. * remote-fileio.c (remote_fileio_func_rename): Likewise. * source.c (add_path): Likewise. * symtab.c (filename_seen): Likewise. (file_matches): Likewise. (print_symbol_info): Likewise. (maybe_add_partial_symtab_filename): Likewise. (make_source_files_completion_list): Likewise. * xml-support.c (fetch_xml_builtin): Likewise. * xml-syscall.c (init_sysinfo): Likewise. * dwarf2read.c (find_file_and_directory): Use IS_ABSOLUTE_PATH. * windows-nat.c (_initialize_check_for_gdb_ini): Use IS_DIR_SEPARATOR for checking for trailing path separator. Regards, Kai --90e6ba5bb9ddf94d87049f23f904 Content-Type: text/plain; charset=US-ASCII; name="gdb_filename.txt" Content-Disposition: attachment; filename="gdb_filename.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glm4fqsk0 Content-length: 31838 SW5kZXg6IGdkYi9icmVha3BvaW50LmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2RiLm9yaWcvYnJlYWtwb2ludC5jCTIwMTEtMDMtMjMgMTA6MzE6 NTkuNjM1MTU5MzAwICswMTAwCisrKyBnZGIvYnJlYWtwb2ludC5jCTIwMTEt MDMtMjMgMTA6NTY6MTcuMDE0NzIzMDAwICswMTAwCkBAIC0zOSw2ICszOSw3 IEBACiAjaW5jbHVkZSAibGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJnZGJfc3Ry aW5nLmgiCiAjaW5jbHVkZSAiZGVtYW5nbGUuaCIKKyNpbmNsdWRlICJmaWxl bmFtZXMuaCIKICNpbmNsdWRlICJhbm5vdGF0ZS5oIgogI2luY2x1ZGUgInN5 bWZpbGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgpAQCAtOTUyNCw4ICs5 NTI1LDggQEAgY2xlYXJfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90 dHkpCiAJCQkJICAgICYmIGItPnNvdXJjZV9maWxlICE9IE5VTEwKIAkJCQkg ICAgJiYgc2FsLnN5bXRhYiAhPSBOVUxMCiAJCQkJICAgICYmIHNhbC5wc3Bh Y2UgPT0gbG9jLT5wc3BhY2UKLQkJCQkgICAgJiYgc3RyY21wIChiLT5zb3Vy Y2VfZmlsZSwKLQkJCQkJICAgICAgIHNhbC5zeW10YWItPmZpbGVuYW1lKSA9 PSAwCisJCQkJICAgICYmIGZpbGVuYW1lX2NtcCAoYi0+c291cmNlX2ZpbGUs CisJCQkJCQkgICAgIHNhbC5zeW10YWItPmZpbGVuYW1lKSA9PSAwCiAJCQkJ ICAgICYmIGItPmxpbmVfbnVtYmVyID09IHNhbC5saW5lKTsKIAkJICBpZiAo cGNfbWF0Y2ggfHwgbGluZV9tYXRjaCkKIAkJICAgIHsKSW5kZXg6IGdkYi9i dWlsZHN5bS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmln L2J1aWxkc3ltLmMJMjAxMS0wMy0yMyAxMDozMDo0Mi41OTk4MTE2MDAgKzAx MDAKKysrIGdkYi9idWlsZHN5bS5jCTIwMTEtMDMtMjMgMTA6NTY6MTcuMDU5 NzI4NzAwICswMTAwCkBAIC02NDMsNyArNjQzLDcgQEAgdm9pZAogcGF0Y2hf c3ViZmlsZV9uYW1lcyAoc3RydWN0IHN1YmZpbGUgKnN1YmZpbGUsIGNoYXIg Km5hbWUpCiB7CiAgIGlmIChzdWJmaWxlICE9IE5VTEwgJiYgc3ViZmlsZS0+ ZGlybmFtZSA9PSBOVUxMICYmIHN1YmZpbGUtPm5hbWUgIT0gTlVMTAotICAg ICAgJiYgc3ViZmlsZS0+bmFtZVtzdHJsZW4gKHN1YmZpbGUtPm5hbWUpIC0g MV0gPT0gJy8nKQorICAgICAgJiYgSVNfRElSX1NFUEFSQVRPUiAoc3ViZmls ZS0+bmFtZVtzdHJsZW4gKHN1YmZpbGUtPm5hbWUpIC0gMV0pKQogICAgIHsK ICAgICAgIHN1YmZpbGUtPmRpcm5hbWUgPSBzdWJmaWxlLT5uYW1lOwogICAg ICAgc3ViZmlsZS0+bmFtZSA9IHhzdHJkdXAgKG5hbWUpOwpAQCAtODc4LDcg Kzg3OCw3IEBAIHdhdGNoX21haW5fc291cmNlX2ZpbGVfbG9zc2FnZSAodm9p ZCkKIAkgICBzdWJmaWxlLT5uZXh0OwogCSAgIHN1YmZpbGUgPSBzdWJmaWxl LT5uZXh0KQogCXsKLQkgIGlmIChzdHJjbXAgKGxiYXNlbmFtZSAoc3ViZmls ZS0+bmFtZSksIG1haW5iYXNlKSA9PSAwKQorCSAgaWYgKGZpbGVuYW1lX2Nt cCAobGJhc2VuYW1lIChzdWJmaWxlLT5uYW1lKSwgbWFpbmJhc2UpID09IDAp CiAJICAgIHsKIAkgICAgICArK25yX21hdGNoZXM7CiAJICAgICAgbWFpbnN1 Yl9hbGlhcyA9IHN1YmZpbGU7CkluZGV4OiBnZGIvZGJ4cmVhZC5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL2RieHJlYWQuYwkyMDEx LTAzLTIzIDEwOjMyOjAwLjEzMzIyMjYwMCArMDEwMAorKysgZ2RiL2RieHJl YWQuYwkyMDExLTAzLTIzIDExOjA0OjU3LjgwMTg1NDYwMCArMDEwMApAQCAt NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUg ImdkYmNvcmUuaCIJCS8qIGZvciBiZmQgc3R1ZmYgKi8KICNpbmNsdWRlICJs aWJhb3V0LmgiCQkvKiBGSVhNRSBTZWNyZXQgaW50ZXJuYWwgQkZEIHN0dWZm IGZvciBhLm91dCAqLworI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1 ZGUgIm9iamZpbGVzLmgiCiAjaW5jbHVkZSAiYnVpbGRzeW0uaCIKICNpbmNs dWRlICJzdGFic3JlYWQuaCIKQEAgLTM0Niw3ICszNDcsNyBAQCBhZGRfb2xk X2hlYWRlcl9maWxlIChjaGFyICpuYW1lLCBpbnQgaW5zCiAgIGludCBpOwog CiAgIGZvciAoaSA9IDA7IGkgPCBOX0hFQURFUl9GSUxFUyAoY3VycmVudF9v YmpmaWxlKTsgaSsrKQotICAgIGlmIChzdHJjbXAgKHBbaV0ubmFtZSwgbmFt ZSkgPT0gMCAmJiBpbnN0YW5jZSA9PSBwW2ldLmluc3RhbmNlKQorICAgIGlm IChmaWxlbmFtZV9jbXAgKHBbaV0ubmFtZSwgbmFtZSkgPT0gMCAmJiBpbnN0 YW5jZSA9PSBwW2ldLmluc3RhbmNlKQogICAgICAgewogCWFkZF90aGlzX29i amVjdF9oZWFkZXJfZmlsZSAoaSk7CiAJcmV0dXJuOwpAQCAtMTQ2NSw3ICsx NDY2LDcgQEAgcmVhZF9kYnhfc3ltdGFiIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZQogCSAgICBDT1JFX0FERFIgdmFsdTsKIAkgICAgc3RhdGljIGludCBw cmV2X3NvX3N5bW51bSA9IC0xMDsKIAkgICAgc3RhdGljIGludCBmaXJzdF9z b19zeW1udW07Ci0JICAgIGNoYXIgKnA7CisJICAgIGNvbnN0IGNoYXIgKnA7 CiAJICAgIHN0YXRpYyBjaGFyICpkaXJuYW1lX25zbzsKIAkgICAgaW50IHBy ZXZfdGV4dGxvd19ub3Rfc2V0OwogCkBAIC0xNTIyLDggKzE1MjMsOCBAQCBy ZWFkX2RieF9zeW10YWIgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAJICAg ICAgIElmIHBzdCBleGlzdHMsIGlzIGVtcHR5LCBhbmQgaGFzIGEgZmlsZW5h bWUgZW5kaW5nIGluICcvJywKIAkgICAgICAgd2UgYXNzdW1lIHRoZSBwcmV2 aW91cyBOX1NPIHdhcyBhIGRpcmVjdG9yeSBuYW1lLiAgKi8KIAotCSAgICBw ID0gc3RycmNociAobmFtZXN0cmluZywgJy8nKTsKLQkgICAgaWYgKHAgJiYg KihwICsgMSkgPT0gJ1wwMDAnKQorCSAgICBwID0gbGJhc2VuYW1lIChuYW1l c3RyaW5nKTsKKwkgICAgaWYgKHAgIT0gbmFtZXN0cmluZyAmJiAqcCA9PSAn XDAwMCcpCiAJICAgICAgewogCQkvKiBTYXZlIHRoZSBkaXJlY3RvcnkgbmFt ZSBTT3MgbG9jYWxseSwgdGhlbiBzYXZlIGl0IGludG8KIAkJICAgdGhlIHBz eW10YWIgd2hlbiBpdCdzIGNyZWF0ZWQgYmVsb3cuICAqLwpAQCAtMTYxMiwx MyArMTYxMywxMyBAQCByZWFkX2RieF9zeW10YWIgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlCiAJICAgICAgIHRoaW5ncyBsaWtlICJicmVhayBjLWV4cC55 OjQzNSIgbmVlZCB0byB3b3JrIChJCiAJICAgICAgIHN1cHBvc2UgdGhlIHBz eW10YWJfaW5jbHVkZV9saXN0IGNvdWxkIGJlIGhhc2hlZCBvciBwdXQKIAkg ICAgICAgaW4gYSBiaW5hcnkgdHJlZSwgaWYgcHJvZmlsaW5nIHNob3dzIHRo aXMgaXMgYSBtYWpvciBob2cpLiAgKi8KLQkgICAgaWYgKHBzdCAmJiBzdHJj bXAgKG5hbWVzdHJpbmcsIHBzdC0+ZmlsZW5hbWUpID09IDApCisJICAgIGlm IChwc3QgJiYgZmlsZW5hbWVfY21wIChuYW1lc3RyaW5nLCBwc3QtPmZpbGVu YW1lKSA9PSAwKQogCSAgICAgIGNvbnRpbnVlOwogCSAgICB7CiAJICAgICAg aW50IGk7CiAKIAkgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5jbHVkZXNfdXNl ZDsgaSsrKQotCQlpZiAoc3RyY21wIChuYW1lc3RyaW5nLCBwc3ltdGFiX2lu Y2x1ZGVfbGlzdFtpXSkgPT0gMCkKKwkJaWYgKGZpbGVuYW1lX2NtcCAobmFt ZXN0cmluZywgcHN5bXRhYl9pbmNsdWRlX2xpc3RbaV0pID09IDApCiAJCSAg ewogCQkgICAgaSA9IC0xOwogCQkgICAgYnJlYWs7CkluZGV4OiBnZGIvZWxm cmVhZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL2Vs ZnJlYWQuYwkyMDExLTAzLTIzIDEwOjMwOjQyLjYwMjgxMTYwMCArMDEwMAor KysgZ2RiL2VsZnJlYWQuYwkyMDExLTAzLTIzIDExOjA3OjE2Ljk4MjAyODIw MCArMDEwMApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNvbXBsYWlu dHMuaCIKICNpbmNsdWRlICJkZW1hbmdsZS5oIgogI2luY2x1ZGUgInBzeW1w cml2LmgiCisjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCiAKIGV4dGVybiB2b2lk IF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpOwogCkBAIC03MDcsNyArNzA4 LDggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0 cgogICAgICAgYnVpbGRfaWRfbmFtZSA9IGJ1aWxkX2lkX3RvX2RlYnVnX2Zp bGVuYW1lIChidWlsZF9pZCk7CiAgICAgICB4ZnJlZSAoYnVpbGRfaWQpOwog ICAgICAgLyogUHJldmVudCBsb29waW5nIG9uIGEgc3RyaXBwZWQgLmRlYnVn IGZpbGUuICAqLwotICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVMTCAm JiBzdHJjbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDAp CisgICAgICBpZiAoYnVpbGRfaWRfbmFtZSAhPSBOVUxMCisJICAmJiBmaWxl bmFtZV9jbXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDAp CiAgICAgICAgIHsKIAkgIHdhcm5pbmcgKF8oIlwiJXNcIjogc2VwYXJhdGUg ZGVidWcgaW5mbyBmaWxlIGhhcyBubyBkZWJ1ZyBpbmZvIiksCiAJCSAgIGJ1 aWxkX2lkX25hbWUpOwpAQCAtMTAyMywxMiArMTAyNSwxMyBAQCBlbGZzdGFi X29mZnNldF9zZWN0aW9ucyAoc3RydWN0IG9iamZpbGUKICAgc3RydWN0IHN0 YWJfc2VjdGlvbl9pbmZvICptYXliZSA9IGRieC0+c3RhYl9zZWN0aW9uX2lu Zm87CiAgIHN0cnVjdCBzdGFiX3NlY3Rpb25faW5mbyAqcXVlc3Rpb25hYmxl ID0gMDsKICAgaW50IGk7Ci0gIGNoYXIgKnA7CisgIGNvbnN0IGNoYXIgKnA7 CiAKICAgLyogVGhlIEVMRiBzeW1ib2wgaW5mbyBkb2Vzbid0IGluY2x1ZGUg cGF0aCBuYW1lcywgc28gc3RyaXAgdGhlIHBhdGgKICAgICAgKGlmIGFueSkg ZnJvbSB0aGUgcHN5bXRhYiBmaWxlbmFtZS4gICovCi0gIHdoaWxlICgwICE9 IChwID0gc3RyY2hyIChmaWxlbmFtZSwgJy8nKSkpCi0gICAgZmlsZW5hbWUg PSBwICsgMTsKKyAgcCA9IGxiYXNlbmFtZSAoZmlsZW5hbWUpOworICBpZiAo cCAhPSBmaWxlbmFtZSkKKyAgICBmaWxlbmFtZSA9IHA7CiAKICAgLyogRklY TUU6ICBUaGlzIGxpbmVhciBzZWFyY2ggY291bGQgc3BlZWQgdXAgc2lnbmlm aWNhbnRseQogICAgICBpZiBpdCB3YXMgY2hhaW5lZCBpbiB0aGUgcmlnaHQg b3JkZXIgdG8gbWF0Y2ggaG93IHdlIHNlYXJjaCBpdCwKQEAgLTEwMzYsNyAr MTAzOSw3IEBAIGVsZnN0YWJfb2Zmc2V0X3NlY3Rpb25zIChzdHJ1Y3Qgb2Jq ZmlsZQogICBmb3IgKDsgbWF5YmU7IG1heWJlID0gbWF5YmUtPm5leHQpCiAg ICAgewogICAgICAgaWYgKGZpbGVuYW1lWzBdID09IG1heWJlLT5maWxlbmFt ZVswXQotCSAgJiYgc3RyY21wIChmaWxlbmFtZSwgbWF5YmUtPmZpbGVuYW1l KSA9PSAwKQorCSAgJiYgZmlsZW5hbWVfY21wIChmaWxlbmFtZSwgbWF5YmUt PmZpbGVuYW1lKSA9PSAwKQogCXsKIAkgIC8qIFdlIGZvdW5kIGEgbWF0Y2gu ICBCdXQgdGhlcmUgbWlnaHQgYmUgc2V2ZXJhbCBzb3VyY2UgZmlsZXMKIAkg ICAgIChmcm9tIGRpZmZlcmVudCBkaXJlY3Rvcmllcykgd2l0aCB0aGUgc2Ft ZSBuYW1lLiAgKi8KSW5kZXg6IGdkYi9leGVjLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gZ2RiLm9yaWcvZXhlYy5jCTIwMTEtMDMtMjMgMTA6MzI6 MDAuNDM4MjYxMzAwICswMTAwCisrKyBnZGIvZXhlYy5jCTIwMTEtMDMtMjMg MTA6NTY6MTcuMTAxNzM0MTAwICswMTAwCkBAIC0yNSw2ICsyNSw3IEBACiAj aW5jbHVkZSAidGFyZ2V0LmgiCiAjaW5jbHVkZSAiZ2RiY21kLmgiCiAjaW5j bHVkZSAibGFuZ3VhZ2UuaCIKKyNpbmNsdWRlICJmaWxlbmFtZXMuaCIKICNp bmNsdWRlICJzeW1maWxlLmgiCiAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICNp bmNsdWRlICJjb21wbGV0ZXIuaCIKQEAgLTg0NSw3ICs4NDYsNyBAQCBleGVj X3NldF9zZWN0aW9uX2FkZHJlc3MgKGNvbnN0IGNoYXIgKmZpCiAgIHRhYmxl ID0gY3VycmVudF90YXJnZXRfc2VjdGlvbnM7CiAgIGZvciAocCA9IHRhYmxl LT5zZWN0aW9uczsgcCA8IHRhYmxlLT5zZWN0aW9uc19lbmQ7IHArKykKICAg ICB7Ci0gICAgICBpZiAoc3RyY21wIChmaWxlbmFtZSwgcC0+YmZkLT5maWxl bmFtZSkgPT0gMAorICAgICAgaWYgKGZpbGVuYW1lX2NtcCAoZmlsZW5hbWUs IHAtPmJmZC0+ZmlsZW5hbWUpID09IDAKIAkgICYmIGluZGV4ID09IHAtPnRo ZV9iZmRfc2VjdGlvbi0+aW5kZXgpCiAJewogCSAgcC0+ZW5kYWRkciArPSBh ZGRyZXNzIC0gcC0+YWRkcjsKSW5kZXg6IGdkYi9tYWNyb3RhYi5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL21hY3JvdGFiLmMJMjAx MS0wMy0yMyAxMDozMDo0Mi42MDQ4MTE2MDAgKzAxMDAKKysrIGdkYi9tYWNy b3RhYi5jCTIwMTEtMDMtMjMgMTA6NTY6MTcuMTEwMjM1MTAwICswMTAwCkBA IC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiZGVmcy5oIgogI2luY2x1ZGUg ImdkYl9vYnN0YWNrLmgiCiAjaW5jbHVkZSAic3BsYXktdHJlZS5oIgorI2lu Y2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUgInN5bXRhYi5oIgogI2lu Y2x1ZGUgInN5bWZpbGUuaCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgpAQCAt NTAwLDcgKzUwMSw3IEBAIHN0cnVjdCBtYWNyb19zb3VyY2VfZmlsZSAqCiBt YWNyb19sb29rdXBfaW5jbHVzaW9uIChzdHJ1Y3QgbWFjcm9fc291cmNlX2Zp bGUgKnNvdXJjZSwgY29uc3QgY2hhciAqbmFtZSkKIHsKICAgLyogSXMgU09V UkNFIGl0c2VsZiBuYW1lZCBOQU1FPyAgKi8KLSAgaWYgKHN0cmNtcCAobmFt ZSwgc291cmNlLT5maWxlbmFtZSkgPT0gMCkKKyAgaWYgKGZpbGVuYW1lX2Nt cCAobmFtZSwgc291cmNlLT5maWxlbmFtZSkgPT0gMCkKICAgICByZXR1cm4g c291cmNlOwogCiAgIC8qIFRoZSBmaWxlbmFtZSBpbiB0aGUgc291cmNlIHN0 cnVjdHVyZSBpcyBwcm9iYWJseSBhIGZ1bGwgcGF0aCwgYnV0CkBAIC01MTAs MTEgKzUxMSwxMiBAQCBtYWNyb19sb29rdXBfaW5jbHVzaW9uIChzdHJ1Y3Qg bWFjcm9fc291CiAgICAgaW50IHNyY19uYW1lX2xlbiA9IHN0cmxlbiAoc291 cmNlLT5maWxlbmFtZSk7CiAKICAgICAvKiBXZSBkbyBtZWFuIDwgaGVyZSwg YW5kIG5vdCA8PTsgaWYgdGhlIGxlbmd0aHMgYXJlIHRoZSBzYW1lLAotICAg ICAgIHRoZW4gdGhlIHN0cmNtcCBhYm92ZSBzaG91bGQgaGF2ZSB0cmlnZ2Vy ZWQsIGFuZCB3ZSBuZWVkIHRvCisgICAgICAgdGhlbiB0aGUgZmlsZW5hbWVf Y21wIGFib3ZlIHNob3VsZCBoYXZlIHRyaWdnZXJlZCwgYW5kIHdlIG5lZWQg dG8KICAgICAgICBjaGVjayBmb3IgYSBzbGFzaCBoZXJlLiAgKi8KICAgICBp ZiAobmFtZV9sZW4gPCBzcmNfbmFtZV9sZW4KLSAgICAgICAgJiYgc291cmNl LT5maWxlbmFtZVtzcmNfbmFtZV9sZW4gLSBuYW1lX2xlbiAtIDFdID09ICcv JwotICAgICAgICAmJiBzdHJjbXAgKG5hbWUsIHNvdXJjZS0+ZmlsZW5hbWUg KyBzcmNfbmFtZV9sZW4gLSBuYW1lX2xlbikgPT0gMCkKKyAgICAgICAgJiYg SVNfRElSX1NFUEFSQVRPUiAoc291cmNlLT5maWxlbmFtZVtzcmNfbmFtZV9s ZW4gLSBuYW1lX2xlbiAtIDFdKQorICAgICAgICAmJiBmaWxlbmFtZV9jbXAg KG5hbWUsCisJCQkgc291cmNlLT5maWxlbmFtZSArIHNyY19uYW1lX2xlbiAt IG5hbWVfbGVuKSA9PSAwKQogICAgICAgcmV0dXJuIHNvdXJjZTsKICAgfQog CkluZGV4OiBnZGIvbWRlYnVncmVhZC5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGdkYi5vcmlnL21kZWJ1Z3JlYWQuYwkyMDExLTAzLTIzIDEwOjMw OjQyLjYwNjgxMTYwMCArMDEwMAorKysgZ2RiL21kZWJ1Z3JlYWQuYwkyMDEx LTAzLTIzIDExOjEwOjAwLjc2MjgyNTcwMCArMDEwMApAQCAtNDUsNiArNDUs NyBAQAogI2luY2x1ZGUgInN5bXRhYi5oIgogI2luY2x1ZGUgImdkYnR5cGVz LmgiCiAjaW5jbHVkZSAiZ2RiY29yZS5oIgorI2luY2x1ZGUgImZpbGVuYW1l cy5oIgogI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAjaW5jbHVkZSAiZ2RiX29i c3RhY2suaCIKICNpbmNsdWRlICJidWlsZHN5bS5oIgpAQCAtMjk1OSw3ICsy OTYwLDcgQEAgcGFyc2VfcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3Qgb2JqZmls ZSAqbwogCQkgICAgICBDT1JFX0FERFIgdmFsdTsKIAkJICAgICAgc3RhdGlj IGludCBwcmV2X3NvX3N5bW51bSA9IC0xMDsKIAkJICAgICAgc3RhdGljIGlu dCBmaXJzdF9zb19zeW1udW07Ci0JCSAgICAgIGNoYXIgKnA7CisJCSAgICAg IGNvbnN0IGNoYXIgKnA7CiAJCSAgICAgIGludCBwcmV2X3RleHRsb3dfbm90 X3NldDsKIAogCQkgICAgICB2YWx1ID0gc2gudmFsdWUgKyBBTk9GRlNFVCAo b2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLApAQCAtMzAxMiw5ICszMDEzLDgg QEAgcGFyc2VfcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqbwog CQkJIHRoZSBzZWNvbmQgdGhlIGZpbGUgbmFtZS4gIElmIHBzdCBleGlzdHMs IGlzCiAJCQkgZW1wdHksIGFuZCBoYXMgYSBmaWxlbmFtZSBlbmRpbmcgaW4g Jy8nLCB3ZSBhc3N1bWUKIAkJCSB0aGUgcHJldmlvdXMgTl9TTyB3YXMgYSBk aXJlY3RvcnkgbmFtZS4gICovCi0KLQkJICAgICAgcCA9IHN0cnJjaHIgKG5h bWVzdHJpbmcsICcvJyk7Ci0JCSAgICAgIGlmIChwICYmICoocCArIDEpID09 ICdcMDAwJykKKwkJICAgICAgcCA9IGxiYXNlbmFtZSAobmFtZXN0cmluZyk7 CisJCSAgICAgIGlmIChwICE9IG5hbWVzdHJpbmcgJiYgKnAgPT0gJ1wwMDAn KQogCQkJY29udGludWU7CQkvKiBTaW1wbHkgaWdub3JlIGRpcmVjdG9yeQog CQkJCQkJICAgbmFtZSBTT3MuICAqLwogCkBAIC0zMDY1LDE1ICszMDY1LDE1 IEBAIHBhcnNlX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IG9iamZpbGUgKm8K IAkJCSB3b3JrIChJIHN1cHBvc2UgdGhlIHBzeW10YWJfaW5jbHVkZV9saXN0 IGNvdWxkIGJlCiAJCQkgaGFzaGVkIG9yIHB1dCBpbiBhIGJpbmFyeSB0cmVl LCBpZiBwcm9maWxpbmcgc2hvd3MKIAkJCSB0aGlzIGlzIGEgbWFqb3IgaG9n KS4gICovCi0JCSAgICAgIGlmIChwc3QgJiYgc3RyY21wIChuYW1lc3RyaW5n LCBwc3QtPmZpbGVuYW1lKSA9PSAwKQorCQkgICAgICBpZiAocHN0ICYmIGZp bGVuYW1lX2NtcCAobmFtZXN0cmluZywgcHN0LT5maWxlbmFtZSkgPT0gMCkK IAkJCWNvbnRpbnVlOwogCiAJCSAgICAgIHsKIAkJCWludCBpOwogCiAJCQlm b3IgKGkgPSAwOyBpIDwgaW5jbHVkZXNfdXNlZDsgaSsrKQotCQkJICBpZiAo c3RyY21wIChuYW1lc3RyaW5nLAotCQkJCSAgICAgIHBzeW10YWJfaW5jbHVk ZV9saXN0W2ldKSA9PSAwKQorCQkJICBpZiAoZmlsZW5hbWVfY21wIChuYW1l c3RyaW5nLAorCQkJCQkgICAgcHN5bXRhYl9pbmNsdWRlX2xpc3RbaV0pID09 IDApCiAJCQkgICAgewogCQkJICAgICAgaSA9IC0xOwogCQkJICAgICAgYnJl YWs7CkluZGV4OiBnZGIvbWluc3ltcy5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGdkYi5vcmlnL21pbnN5bXMuYwkyMDExLTAzLTIzIDEwOjMwOjQy LjYwNzgxMTYwMCArMDEwMAorKysgZ2RiL21pbnN5bXMuYwkyMDExLTAzLTIz IDEwOjU2OjE3LjE0MzczOTQwMCArMDEwMApAQCAtNDMsNiArNDMsNyBAQAog I2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKICNpbmNsdWRlICJzeW10YWIuaCIK ICNpbmNsdWRlICJiZmQuaCIKKyNpbmNsdWRlICJmaWxlbmFtZXMuaCIKICNp bmNsdWRlICJzeW1maWxlLmgiCiAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICNp bmNsdWRlICJkZW1hbmdsZS5oIgpAQCAtMjU1LDcgKzI1Niw3IEBAIGxvb2t1 cF9taW5pbWFsX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICBjYXNlIG1zdF9maWxlX2RhdGE6CiAgICAgICAgICAg ICAgICAgICAgICAgY2FzZSBtc3RfZmlsZV9ic3M6CiAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoc2ZpbGUgPT0gTlVMTAotCQkJICAgIHx8IHN0cmNt cCAobXN5bWJvbC0+ZmlsZW5hbWUsIHNmaWxlKSA9PSAwKQorCQkJICAgIHx8 IGZpbGVuYW1lX2NtcCAobXN5bWJvbC0+ZmlsZW5hbWUsIHNmaWxlKSA9PSAw KQogICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9maWxlX3N5bWJv bCA9IG1zeW1ib2w7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK IApJbmRleDogZ2RiL3BzeW10YWIuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnZGIub3JpZy9wc3ltdGFiLmMJMjAxMS0wMy0yMyAxMDozMjowMS43 NTA0Mjc5MDAgKzAxMDAKKysrIGdkYi9wc3ltdGFiLmMJMjAxMS0wMy0yMyAx MDo1NjoxNy4xNTM3NDA3MDAgKzAxMDAKQEAgLTEwNjcsNyArMTA2Nyw3IEBA IHJlYWRfcHN5bXRhYnNfd2l0aF9maWxlbmFtZSAoc3RydWN0IG9iamYKIAog ICBBTExfT0JKRklMRV9QU1lNVEFCU19SRVFVSVJFRCAob2JqZmlsZSwgcCkK ICAgICB7Ci0gICAgICBpZiAoc3RyY21wIChmaWxlbmFtZSwgcC0+ZmlsZW5h bWUpID09IDApCisgICAgICBpZiAoZmlsZW5hbWVfY21wIChmaWxlbmFtZSwg cC0+ZmlsZW5hbWUpID09IDApCiAJUFNZTVRBQl9UT19TWU1UQUIgKHApOwog ICAgIH0KIH0KQEAgLTE3MzUsNyArMTczNSw3IEBAIHByaW50LXBzeW1ib2xz IHRha2VzIGFuIG91dHB1dCBmaWxlIG5hbWUKIAogICBpbW1lZGlhdGVfcXVp dCsrOwogICBBTExfUFNZTVRBQlMgKG9iamZpbGUsIHBzKQotICAgIGlmIChz eW1uYW1lID09IE5VTEwgfHwgc3RyY21wIChzeW1uYW1lLCBwcy0+ZmlsZW5h bWUpID09IDApCisgICAgaWYgKHN5bW5hbWUgPT0gTlVMTCB8fCBmaWxlbmFt ZV9jbXAgKHN5bW5hbWUsIHBzLT5maWxlbmFtZSkgPT0gMCkKICAgICBkdW1w X3BzeW10YWIgKG9iamZpbGUsIHBzLCBvdXRmaWxlKTsKICAgaW1tZWRpYXRl X3F1aXQtLTsKICAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKSW5kZXg6IGdk Yi9yZW1vdGUtZmlsZWlvLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Z2RiLm9yaWcvcmVtb3RlLWZpbGVpby5jCTIwMTEtMDMtMjMgMTA6MzA6NDIu NjEwODExNjAwICswMTAwCisrKyBnZGIvcmVtb3RlLWZpbGVpby5jCTIwMTEt MDMtMjMgMTE6MjY6NDUuNzk1OTQ4NzAwICswMTAwCkBAIC0zMSw2ICszMSw3 IEBACiAjaW5jbHVkZSAicmVtb3RlLWZpbGVpby5oIgogI2luY2x1ZGUgImV2 ZW50LWxvb3AuaCIKICNpbmNsdWRlICJ0YXJnZXQuaCIKKyNpbmNsdWRlICJm aWxlbmFtZXMuaCIKIAogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8 c3lzL3RpbWUuaD4KQEAgLTEwMjAsOCArMTAyMSw4IEBAIHJlbW90ZV9maWxl aW9fZnVuY19yZW5hbWUgKGNoYXIgKmJ1ZikKIAkJICBjeWd3aW5fY29udl9w YXRoIChDQ1BfV0lOX0FfVE9fUE9TSVgsIG5ld3BhdGgsIG5ld2Z1bGxwYXRo LAogCQkJCSAgICBQQVRIX01BWCk7CiAJCSAgbGVuID0gc3RybGVuIChvbGRm dWxscGF0aCk7Ci0JCSAgaWYgKG5ld2Z1bGxwYXRoW2xlbl0gPT0gJy8nCi0J CSAgICAgICYmICFzdHJuY21wIChvbGRmdWxscGF0aCwgbmV3ZnVsbHBhdGgs IGxlbikpCisJCSAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKG5ld2Z1bGxwYXRo W2xlbl0pCisJCSAgICAgICYmICFmaWxlbmFtZV9uY21wIChvbGRmdWxscGF0 aCwgbmV3ZnVsbHBhdGgsIGxlbikpCiAJCSAgICBlcnJubyA9IEVJTlZBTDsK IAkJICBlbHNlCiAJCSAgICBlcnJubyA9IEVFWElTVDsKSW5kZXg6IGdkYi9z b2xpYi1zb20uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIub3Jp Zy9zb2xpYi1zb20uYwkyMDExLTAzLTIzIDEwOjMwOjQyLjYxMTgxMTYwMCAr MDEwMAorKysgZ2RiL3NvbGliLXNvbS5jCTIwMTEtMDMtMjMgMTA6NTY6MTcu MTc0NzQzMzAwICswMTAwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAi ZGVmcy5oIgogI2luY2x1ZGUgInN5bXRhYi5oIgogI2luY2x1ZGUgImJmZC5o IgorI2luY2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUgInN5bWZpbGUu aCIKICNpbmNsdWRlICJvYmpmaWxlcy5oIgogI2luY2x1ZGUgImdkYmNvcmUu aCIKQEAgLTU2OCw3ICs1NjksNyBAQCBsaW5rX21hcF9zdGFydCAodm9pZCkK IHN0YXRpYyBpbnQKIG1hdGNoX21haW4gKGNvbnN0IGNoYXIgKm5hbWUpCiB7 Ci0gIHJldHVybiBzdHJjbXAgKG5hbWUsIHN5bWZpbGVfb2JqZmlsZS0+bmFt ZSkgPT0gMDsKKyAgcmV0dXJuIGZpbGVuYW1lX2NtcCAobmFtZSwgc3ltZmls ZV9vYmpmaWxlLT5uYW1lKSA9PSAwOwogfQogCiBzdGF0aWMgc3RydWN0IHNv X2xpc3QgKgpJbmRleDogZ2RiL3NvbGliLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gZ2RiLm9yaWcvc29saWIuYwkyMDExLTAzLTIzIDEwOjMwOjQy LjYxMjgxMTYwMCArMDEwMAorKysgZ2RiL3NvbGliLmMJMjAxMS0wMy0yMyAx MDo1NjoxNy4xODI3NDQ0MDAgKzAxMDAKQEAgLTYzOCw3ICs2MzgsNyBAQCBz b2xpYl9yZWFkX3N5bWJvbHMgKHN0cnVjdCBzb19saXN0ICpzbywKIAkgIC8q IEhhdmUgd2UgYWxyZWFkeSBsb2FkZWQgdGhpcyBzaGFyZWQgb2JqZWN0PyAg Ki8KIAkgIEFMTF9PQkpGSUxFUyAoc28tPm9iamZpbGUpCiAJICAgIHsKLQkg ICAgICBpZiAoc3RyY21wIChzby0+b2JqZmlsZS0+bmFtZSwgc28tPnNvX25h bWUpID09IDAKKwkgICAgICBpZiAoZmlsZW5hbWVfY21wIChzby0+b2JqZmls ZS0+bmFtZSwgc28tPnNvX25hbWUpID09IDAKIAkJICAmJiBzby0+b2JqZmls ZS0+YWRkcl9sb3cgPT0gc28tPmFkZHJfbG93KQogCQlicmVhazsKIAkgICAg fQpAQCAtNzYyLDcgKzc2Miw3IEBAIHVwZGF0ZV9zb2xpYl9saXN0IChpbnQg ZnJvbV90dHksIHN0cnVjdAogCSAgICB9CiAJICBlbHNlCiAJICAgIHsKLQkg ICAgICBpZiAoISBzdHJjbXAgKGdkYi0+c29fb3JpZ2luYWxfbmFtZSwgaS0+ c29fb3JpZ2luYWxfbmFtZSkpCisJICAgICAgaWYgKCEgZmlsZW5hbWVfY21w IChnZGItPnNvX29yaWdpbmFsX25hbWUsIGktPnNvX29yaWdpbmFsX25hbWUp KQogCQlicmVhazsJICAgICAgCiAJICAgIH0KIApAQCAtMTMzOSw3ICsxMzM5 LDcgQEAgcmVsb2FkX3NoYXJlZF9saWJyYXJpZXNfMSAoaW50IGZyb21fdHR5 KQogCSBzeW1ib2wgZmlsZSwgY2xvc2UgdGhhdC4gICovCiAgICAgICBpZiAo KGZvdW5kX3BhdGhuYW1lID09IE5VTEwgJiYgd2FzX2xvYWRlZCkKIAkgIHx8 IChmb3VuZF9wYXRobmFtZSAhPSBOVUxMCi0JICAgICAgJiYgc3RyY21wIChm b3VuZF9wYXRobmFtZSwgc28tPnNvX25hbWUpICE9IDApKQorCSAgICAgICYm IGZpbGVuYW1lX2NtcCAoZm91bmRfcGF0aG5hbWUsIHNvLT5zb19uYW1lKSAh PSAwKSkKIAl7CiAJICBpZiAoc28tPm9iamZpbGUgJiYgISAoc28tPm9iamZp bGUtPmZsYWdzICYgT0JKRl9VU0VSTE9BREVEKSkKIAkgICAgZnJlZV9vYmpm aWxlIChzby0+b2JqZmlsZSk7CkBAIC0xMzUxLDcgKzEzNTEsNyBAQCByZWxv YWRfc2hhcmVkX2xpYnJhcmllc18xIChpbnQgZnJvbV90dHkpCiAJIGZpbGUs IG9wZW4gaXQuICAqLwogICAgICAgaWYgKGZvdW5kX3BhdGhuYW1lICE9IE5V TEwKIAkgICYmICghd2FzX2xvYWRlZAotCSAgICAgIHx8IHN0cmNtcCAoZm91 bmRfcGF0aG5hbWUsIHNvLT5zb19uYW1lKSAhPSAwKSkKKwkgICAgICB8fCBm aWxlbmFtZV9jbXAgKGZvdW5kX3BhdGhuYW1lLCBzby0+c29fbmFtZSkgIT0g MCkpCiAJewogCSAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZTsK IApJbmRleDogZ2RiL3NvdXJjZS5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGdkYi5vcmlnL3NvdXJjZS5jCTIwMTEtMDMtMjMgMTA6MzA6NDIuNjE0 ODExNjAwICswMTAwCisrKyBnZGIvc291cmNlLmMJMjAxMS0wMy0yMyAxMDo1 NjoxNy4xOTQ3NDU5MDAgKzAxMDAKQEAgLTU2OSwxNSArNTY5LDEwIEBAIGFk ZF9wYXRoIChjaGFyICpkaXJuYW1lLCBjaGFyICoqd2hpY2hfcGEKIAlwID0g KndoaWNoX3BhdGg7CiAJd2hpbGUgKDEpCiAJICB7Ci0JICAgIC8qIEZJWE1F OiBzdHJuY21wIGxvc2VzIGluIGludGVyZXN0aW5nIHdheXMgb24gTVMtRE9T IGFuZAotCSAgICAgICBNUy1XaW5kb3dzIGJlY2F1c2Ugb2YgY2FzZS1pbnNl bnNpdGl2aXR5IGFuZCB0d28gZGlmZmVyZW50Ci0JICAgICAgIGJ1dCBmdW5j dGlvbmFsbHkgaWRlbnRpY2FsIHNsYXNoIGNoYXJhY3RlcnMuICBXZSBuZWVk IGEKLQkgICAgICAgc3BlY2lhbCBmaWxlc3lzdGVtLWRlcGVuZGVudCBmaWxl LW5hbWUgY29tcGFyaXNvbiBmdW5jdGlvbi4KLQotCSAgICAgICBBY3R1YWxs eSwgZXZlbiBvbiBVbml4IEkgd291bGQgdXNlIHJlYWxwYXRoKCkgb3IgaXRz IHdvcmstCisJICAgIC8qIEFjdHVhbGx5LCBldmVuIG9uIFVuaXggSSB3b3Vs ZCB1c2UgcmVhbHBhdGgoKSBvciBpdHMgd29yay0KIAkgICAgICAgYWxpa2Ug YmVmb3JlIGNvbXBhcmluZy4gIFRoZW4gYWxsIHRoZSBjb2RlIGFib3ZlIHdo aWNoCiAJICAgICAgIHJlbW92ZXMgZXhjZXNzIHNsYXNoZXMgYW5kIGRvdHMg Y291bGQgc2ltcGx5IGdvIGF3YXkuICAqLwotCSAgICBpZiAoIXN0cm5jbXAg KHAsIG5hbWUsIGxlbikKKwkgICAgaWYgKCFmaWxlbmFtZV9uY21wIChwLCBu YW1lLCBsZW4pCiAJCSYmIChwW2xlbl0gPT0gJ1wwJyB8fCBwW2xlbl0gPT0g RElSTkFNRV9TRVBBUkFUT1IpKQogCSAgICAgIHsKIAkJLyogRm91bmQgaXQg aW4gdGhlIHNlYXJjaCBwYXRoLCByZW1vdmUgb2xkIGNvcHkuICAqLwpJbmRl eDogZ2RiL3N5bWZpbGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBn ZGIub3JpZy9zeW1maWxlLmMJMjAxMS0wMy0yMyAxMDozMDo0Mi42MTU4MTE2 MDAgKzAxMDAKKysrIGdkYi9zeW1maWxlLmMJMjAxMS0wMy0yMyAxMDo1Njox Ny4yMDk3NDc4MDAgKzAxMDAKQEAgLTEzMjUsNyArMTMyNSw3IEBAIHNlcGFy YXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChjb25zdCBjaGFyICoKICAgICAgIi5k ZWJ1ZyIgc3VmZml4IGFzICIvdXNyL2xpYi9kZWJ1Zy9wYXRoL3RvL2ZpbGUi IGlzIGEgc2VwYXJhdGUgdHJlZSB3aGVyZQogICAgICB0aGUgc2VwYXJhdGUg ZGVidWcgaW5mb3Mgd2l0aCB0aGUgc2FtZSBiYXNlbmFtZSBjYW4gZXhpc3Qu ICAqLwogCi0gIGlmIChzdHJjbXAgKG5hbWUsIHBhcmVudF9vYmpmaWxlLT5u YW1lKSA9PSAwKQorICBpZiAoZmlsZW5hbWVfY21wIChuYW1lLCBwYXJlbnRf b2JqZmlsZS0+bmFtZSkgPT0gMCkKICAgICByZXR1cm4gMDsKIAogICBhYmZk ID0gYmZkX29wZW5fbWF5YmVfcmVtb3RlIChuYW1lKTsKQEAgLTEzMzMsNyAr MTMzMyw3IEBAIHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChjb25zdCBj aGFyICoKICAgaWYgKCFhYmZkKQogICAgIHJldHVybiAwOwogCi0gIC8qIFZl cmlmeSBzeW1saW5rcyB3ZXJlIG5vdCB0aGUgY2F1c2Ugb2Ygc3RyY21wIG5h bWUgZGlmZmVyZW5jZSBhYm92ZS4KKyAgLyogVmVyaWZ5IHN5bWxpbmtzIHdl cmUgbm90IHRoZSBjYXVzZSBvZiBmaWxlbmFtZV9jbXAgbmFtZSBkaWZmZXJl bmNlIGFib3ZlLgogCiAgICAgIFNvbWUgb3BlcmF0aW5nIHN5c3RlbXMsIGUu Zy4gV2luZG93cywgZG8gbm90IHByb3ZpZGUgYSBtZWFuaW5nZnVsCiAgICAg IHN0X2lubzsgdGhleSBhbHdheXMgc2V0IGl0IHRvIHplcm8uICAoV2luZG93 cyBkb2VzIHByb3ZpZGUgYQpAQCAtMTQ3MSw3ICsxNDcxLDggQEAgZmluZF9z ZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAocwogICAgICAgLyog SWYgdGhlIGZpbGUgaXMgaW4gdGhlIHN5c3Jvb3QsIHRyeSB1c2luZyBpdHMg YmFzZSBwYXRoIGluIHRoZQogCSBnbG9iYWwgZGVidWdmaWxlIGRpcmVjdG9y eS4gICovCiAgICAgICBpZiAoY2Fub25fbmFtZQotCSAgJiYgc3RybmNtcCAo Y2Fub25fbmFtZSwgZ2RiX3N5c3Jvb3QsIHN0cmxlbiAoZ2RiX3N5c3Jvb3Qp KSA9PSAwCisJICAmJiBmaWxlbmFtZV9uY21wIChjYW5vbl9uYW1lLCBnZGJf c3lzcm9vdCwKKwkJCSAgICBzdHJsZW4gKGdkYl9zeXNyb290KSkgPT0gMAog CSAgJiYgSVNfRElSX1NFUEFSQVRPUiAoY2Fub25fbmFtZVtzdHJsZW4gKGdk Yl9zeXNyb290KV0pKQogCXsKIAkgIG1lbWNweSAoZGVidWdmaWxlLCBkZWJ1 Z2RpciwgZGVidWdkaXJfZW5kIC0gZGVidWdkaXIpOwpAQCAtMjM3NSw4ICsy Mzc2LDkgQEAgcmVyZWFkX3N5bWJvbHMgKHZvaWQpCiAJICAvKiBXZSBuZWVk IHRvIGRvIHRoaXMgd2hlbmV2ZXIgYW55IHN5bWJvbHMgZ28gYXdheS4gICov CiAJICBtYWtlX2NsZWFudXAgKGNsZWFyX3N5bXRhYl91c2Vyc19jbGVhbnVw LCAwIC8qaWdub3JlKi8pOwogCi0JICBpZiAoZXhlY19iZmQgIT0gTlVMTCAm JiBzdHJjbXAgKGJmZF9nZXRfZmlsZW5hbWUgKG9iamZpbGUtPm9iZmQpLAot CQkJCQkgIGJmZF9nZXRfZmlsZW5hbWUgKGV4ZWNfYmZkKSkgPT0gMCkKKwkg IGlmIChleGVjX2JmZCAhPSBOVUxMCisJICAgICAgJiYgZmlsZW5hbWVfY21w IChiZmRfZ2V0X2ZpbGVuYW1lIChvYmpmaWxlLT5vYmZkKSwKKwkJCSAgICAg ICBiZmRfZ2V0X2ZpbGVuYW1lIChleGVjX2JmZCkpID09IDApCiAJICAgIHsK IAkgICAgICAvKiBSZWxvYWQgRVhFQ19CRkQgd2l0aG91dCBhc2tpbmcgYW55 dGhpbmcuICAqLwogCkluZGV4OiBnZGIvc3ltbWlzYy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGdkYi5vcmlnL3N5bW1pc2MuYwkyMDExLTAzLTIz IDEwOjMwOjQyLjYxNjgxMTYwMCArMDEwMAorKysgZ2RiL3N5bW1pc2MuYwky MDExLTAzLTIzIDEwOjU2OjE3LjIzMzI1MDgwMCArMDEwMApAQCAtMjMsNiAr MjMsNyBAQAogI2luY2x1ZGUgInN5bXRhYi5oIgogI2luY2x1ZGUgImdkYnR5 cGVzLmgiCiAjaW5jbHVkZSAiYmZkLmgiCisjaW5jbHVkZSAiZmlsZW5hbWVz LmgiCiAjaW5jbHVkZSAic3ltZmlsZS5oIgogI2luY2x1ZGUgIm9iamZpbGVz LmgiCiAjaW5jbHVkZSAiYnJlYWtwb2ludC5oIgpAQCAtNDc1LDcgKzQ3Niw3 IEBAIG1haW50ZW5hbmNlX3ByaW50X3N5bWJvbHMgKGNoYXIgKmFyZ3MsIGkK IAogICBpbW1lZGlhdGVfcXVpdCsrOwogICBBTExfU1lNVEFCUyAob2JqZmls ZSwgcykKLSAgICBpZiAoc3ltbmFtZSA9PSBOVUxMIHx8IHN0cmNtcCAoc3lt bmFtZSwgcy0+ZmlsZW5hbWUpID09IDApCisgICAgaWYgKHN5bW5hbWUgPT0g TlVMTCB8fCBmaWxlbmFtZV9jbXAgKHN5bW5hbWUsIHMtPmZpbGVuYW1lKSA9 PSAwKQogICAgIGR1bXBfc3ltdGFiIChvYmpmaWxlLCBzLCBvdXRmaWxlKTsK ICAgaW1tZWRpYXRlX3F1aXQtLTsKICAgZG9fY2xlYW51cHMgKGNsZWFudXBz KTsKSW5kZXg6IGdkYi9zeW10YWIuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnZGIub3JpZy9zeW10YWIuYwkyMDExLTAzLTIzIDEwOjMwOjQyLjYx ODgxMTYwMCArMDEwMAorKysgZ2RiL3N5bXRhYi5jCTIwMTEtMDMtMjMgMTA6 NTY6MTcuMjQyMjUxOTAwICswMTAwCkBAIC0yNzYxLDcgKzI3NjEsNyBAQCBm aWxlbmFtZV9zZWVuIChjb25zdCBjaGFyICpmaWxlLCBpbnQgYWRkCiAKICAg LyogSXMgRklMRSBpbiB0YWI/ICAqLwogICBmb3IgKHAgPSB0YWI7IHAgPCB0 YWIgKyB0YWJfY3VyX3NpemU7IHArKykKLSAgICBpZiAoc3RyY21wICgqcCwg ZmlsZSkgPT0gMCkKKyAgICBpZiAoZmlsZW5hbWVfY21wICgqcCwgZmlsZSkg PT0gMCkKICAgICAgIHJldHVybiAxOwogCiAgIC8qIE5vOyBtYXliZSBhZGQg aXQgdG8gdGFiLiAgKi8KQEAgLTI4NjIsNyArMjg2Miw3IEBAIGZpbGVfbWF0 Y2hlcyAoY29uc3QgY2hhciAqZmlsZSwgY2hhciAqZmkKICAgICB7CiAgICAg ICBmb3IgKGkgPSAwOyBpIDwgbmZpbGVzOyBpKyspCiAJewotCSAgaWYgKHN0 cmNtcCAoZmlsZXNbaV0sIGxiYXNlbmFtZSAoZmlsZSkpID09IDApCisJICBp ZiAoZmlsZW5hbWVfY21wIChmaWxlc1tpXSwgbGJhc2VuYW1lIChmaWxlKSkg PT0gMCkKIAkgICAgcmV0dXJuIDE7CiAJfQogICAgIH0KQEAgLTMyNjAsNyAr MzI2MCw3IEBAIHN0YXRpYyB2b2lkCiBwcmludF9zeW1ib2xfaW5mbyAoZG9t YWluX2VudW0ga2luZCwgc3RydWN0IHN5bXRhYiAqcywgc3RydWN0IHN5bWJv bCAqc3ltLAogCQkgICBpbnQgYmxvY2ssIGNoYXIgKmxhc3QpCiB7Ci0gIGlm IChsYXN0ID09IE5VTEwgfHwgc3RyY21wIChsYXN0LCBzLT5maWxlbmFtZSkg IT0gMCkKKyAgaWYgKGxhc3QgPT0gTlVMTCB8fCBmaWxlbmFtZV9jbXAgKGxh c3QsIHMtPmZpbGVuYW1lKSAhPSAwKQogICAgIHsKICAgICAgIGZwdXRzX2Zp bHRlcmVkICgiXG5GaWxlICIsIGdkYl9zdGRvdXQpOwogICAgICAgZnB1dHNf ZmlsdGVyZWQgKHMtPmZpbGVuYW1lLCBnZGJfc3Rkb3V0KTsKQEAgLTQwNzMs NyArNDA3Myw3IEBAIG5vdF9pbnRlcmVzdGluZ19mbmFtZSAoY29uc3QgY2hh ciAqZm5hbWUKIAogICBmb3IgKGkgPSAwOyBpbGxlZ2FsX2FsaWVuc1tpXTsg aSsrKQogICAgIHsKLSAgICAgIGlmIChzdHJjbXAgKGZuYW1lLCBpbGxlZ2Fs X2FsaWVuc1tpXSkgPT0gMCkKKyAgICAgIGlmIChmaWxlbmFtZV9jbXAgKGZu YW1lLCBpbGxlZ2FsX2FsaWVuc1tpXSkgPT0gMCkKIAlyZXR1cm4gMTsKICAg ICB9CiAgIHJldHVybiAwOwpAQCAtNDEwMiwxMiArNDEwMiw3IEBAIG1heWJl X2FkZF9wYXJ0aWFsX3N5bXRhYl9maWxlbmFtZSAoY29uc3QKICAgaWYgKG5v dF9pbnRlcmVzdGluZ19mbmFtZSAoZmlsZW5hbWUpKQogICAgIHJldHVybjsK ICAgaWYgKCFmaWxlbmFtZV9zZWVuIChmaWxlbmFtZSwgMSwgZGF0YS0+Zmly c3QpCi0jaWYgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0KLSAgICAgICYm IHN0cm5jYXNlY21wIChmaWxlbmFtZSwgZGF0YS0+dGV4dCwgZGF0YS0+dGV4 dF9sZW4pID09IDAKLSNlbHNlCi0gICAgICAmJiBzdHJuY21wIChmaWxlbmFt ZSwgZGF0YS0+dGV4dCwgZGF0YS0+dGV4dF9sZW4pID09IDAKLSNlbmRpZgot ICAgICAgKQorICAgICAgJiYgZmlsZW5hbWVfbmNtcCAoZmlsZW5hbWUsIGRh dGEtPnRleHQsIGRhdGEtPnRleHRfbGVuKSA9PSAwKQogICAgIHsKICAgICAg IC8qIFRoaXMgZmlsZSBtYXRjaGVzIGZvciBhIGNvbXBsZXRpb247IGFkZCBp dCB0byB0aGUKIAkgY3VycmVudCBsaXN0IG9mIG1hdGNoZXMuICAqLwpAQCAt NDEyMCwxMiArNDExNSw3IEBAIG1heWJlX2FkZF9wYXJ0aWFsX3N5bXRhYl9m aWxlbmFtZSAoY29uc3QKIAogICAgICAgaWYgKGJhc2VfbmFtZSAhPSBmaWxl bmFtZQogCSAgJiYgIWZpbGVuYW1lX3NlZW4gKGJhc2VfbmFtZSwgMSwgZGF0 YS0+Zmlyc3QpCi0jaWYgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0KLQkg ICYmIHN0cm5jYXNlY21wIChiYXNlX25hbWUsIGRhdGEtPnRleHQsIGRhdGEt PnRleHRfbGVuKSA9PSAwCi0jZWxzZQotCSAgJiYgc3RybmNtcCAoYmFzZV9u YW1lLCBkYXRhLT50ZXh0LCBkYXRhLT50ZXh0X2xlbikgPT0gMAotI2VuZGlm Ci0JICApCisJICAmJiBmaWxlbmFtZV9uY21wIChiYXNlX25hbWUsIGRhdGEt PnRleHQsIGRhdGEtPnRleHRfbGVuKSA9PSAwKQogCWFkZF9maWxlbmFtZV90 b19saXN0IChiYXNlX25hbWUsIGRhdGEtPnRleHQsIGRhdGEtPndvcmQsCiAJ CQkgICAgICBkYXRhLT5saXN0LCBkYXRhLT5saXN0X3VzZWQsIGRhdGEtPmxp c3RfYWxsb2NlZCk7CiAgICAgfQpAQCAtNDE1OSwxMiArNDE0OSw3IEBAIG1h a2Vfc291cmNlX2ZpbGVzX2NvbXBsZXRpb25fbGlzdCAoY2hhcgogICAgICAg aWYgKG5vdF9pbnRlcmVzdGluZ19mbmFtZSAocy0+ZmlsZW5hbWUpKQogCWNv bnRpbnVlOwogICAgICAgaWYgKCFmaWxlbmFtZV9zZWVuIChzLT5maWxlbmFt ZSwgMSwgJmZpcnN0KQotI2lmIEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVN Ci0JICAmJiBzdHJuY2FzZWNtcCAocy0+ZmlsZW5hbWUsIHRleHQsIHRleHRf bGVuKSA9PSAwCi0jZWxzZQotCSAgJiYgc3RybmNtcCAocy0+ZmlsZW5hbWUs IHRleHQsIHRleHRfbGVuKSA9PSAwCi0jZW5kaWYKLQkgICkKKwkgICYmIGZp bGVuYW1lX25jbXAgKHMtPmZpbGVuYW1lLCB0ZXh0LCB0ZXh0X2xlbikgPT0g MCkKIAl7CiAJICAvKiBUaGlzIGZpbGUgbWF0Y2hlcyBmb3IgYSBjb21wbGV0 aW9uOyBhZGQgaXQgdG8gdGhlIGN1cnJlbnQKIAkgICAgIGxpc3Qgb2YgbWF0 Y2hlcy4gICovCkBAIC00MTgwLDEyICs0MTY1LDcgQEAgbWFrZV9zb3VyY2Vf ZmlsZXNfY29tcGxldGlvbl9saXN0IChjaGFyCiAJICBiYXNlX25hbWUgPSBs YmFzZW5hbWUgKHMtPmZpbGVuYW1lKTsKIAkgIGlmIChiYXNlX25hbWUgIT0g cy0+ZmlsZW5hbWUKIAkgICAgICAmJiAhZmlsZW5hbWVfc2VlbiAoYmFzZV9u YW1lLCAxLCAmZmlyc3QpCi0jaWYgSEFWRV9ET1NfQkFTRURfRklMRV9TWVNU RU0KLQkgICAgICAmJiBzdHJuY2FzZWNtcCAoYmFzZV9uYW1lLCB0ZXh0LCB0 ZXh0X2xlbikgPT0gMAotI2Vsc2UKLQkgICAgICAmJiBzdHJuY21wIChiYXNl X25hbWUsIHRleHQsIHRleHRfbGVuKSA9PSAwCi0jZW5kaWYKLQkgICAgICAp CisJICAgICAgJiYgZmlsZW5hbWVfbmNtcCAoYmFzZV9uYW1lLCB0ZXh0LCB0 ZXh0X2xlbikgPT0gMCkKIAkgICAgYWRkX2ZpbGVuYW1lX3RvX2xpc3QgKGJh c2VfbmFtZSwgdGV4dCwgd29yZCwKIAkJCQkgICZsaXN0LCAmbGlzdF91c2Vk LCAmbGlzdF9hbGxvY2VkKTsKIAl9CkluZGV4OiBnZGIveG1sLXN1cHBvcnQu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIub3JpZy94bWwtc3Vw cG9ydC5jCTIwMTEtMDMtMjMgMTA6MzA6NDIuNjIwODExNjAwICswMTAwCisr KyBnZGIveG1sLXN1cHBvcnQuYwkyMDExLTAzLTIzIDEwOjU2OjE3LjI2NTc1 NDkwMCArMDEwMApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiZ2Ri X3N0cmluZy5oIgogI2luY2x1ZGUgInNhZmUtY3R5cGUuaCIKKyNpbmNsdWRl ICJmaWxlbmFtZXMuaCIKIAogLyogRGVidWdnaW5nIGZsYWcuICAqLwogc3Rh dGljIGludCBkZWJ1Z194bWw7CkBAIC05NDYsNyArOTQ3LDcgQEAgZmV0Y2hf eG1sX2J1aWx0aW4gKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogICBjb25zdCBj aGFyICooKnApWzJdOwogCiAgIGZvciAocCA9IHhtbF9idWlsdGluOyAoKnAp WzBdOyBwKyspCi0gICAgaWYgKHN0cmNtcCAoKCpwKVswXSwgZmlsZW5hbWUp ID09IDApCisgICAgaWYgKGZpbGVuYW1lX2NtcCAoKCpwKVswXSwgZmlsZW5h bWUpID09IDApCiAgICAgICByZXR1cm4gKCpwKVsxXTsKIAogICByZXR1cm4g TlVMTDsKSW5kZXg6IGdkYi94bWwtc3lzY2FsbC5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGdkYi5vcmlnL3htbC1zeXNjYWxsLmMJMjAxMS0wMy0y MyAxMDozMDo0Mi42NDk4MTE2MDAgKzAxMDAKKysrIGdkYi94bWwtc3lzY2Fs bC5jCTIwMTEtMDMtMjMgMTA6NTY6MTcuMjc0MjU2MDAwICswMTAwCkBAIC0y ODEsNyArMjgxLDcgQEAgc3RhdGljIHZvaWQKIGluaXRfc3lzaW5mbyAodm9p ZCkKIHsKICAgLyogU2hvdWxkIHdlIHJlLXJlYWQgdGhlIFhNTCBpbmZvIGZv ciB0aGlzIHRhcmdldD8gICovCi0gIGlmIChteV9nZGJfZGF0YWRpciAmJiBz dHJjbXAgKG15X2dkYl9kYXRhZGlyLCBnZGJfZGF0YWRpcikgIT0gMCkKKyAg aWYgKG15X2dkYl9kYXRhZGlyICYmIGZpbGVuYW1lX2NtcCAobXlfZ2RiX2Rh dGFkaXIsIGdkYl9kYXRhZGlyKSAhPSAwKQogICAgIHsKICAgICAgIC8qIFRo ZSBkYXRhLWRpcmVjdG9yeSBjaGFuZ2VkIGZyb20gdGhlIGxhc3QgdGltZSB3 ZSB1c2VkIGl0LgogCSBJdCBtZWFucyB0aGF0IHdlIGhhdmUgdG8gcmUtcmVh ZCB0aGUgWE1MIGluZm8uICAqLwpJbmRleDogZ2RiL2R3YXJmMnJlYWQuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZGIub3JpZy9kd2FyZjJyZWFk LmMJMjAxMS0wMy0yMyAxMDozMjowMC4zMzYyNDgzMDAgKzAxMDAKKysrIGdk Yi9kd2FyZjJyZWFkLmMJMjAxMS0wMy0yMyAxMDo1NjoxNy4yODUyNTc0MDAg KzAxMDAKQEAgLTUyMTEsNyArNTIxMSw4IEBAIGZpbmRfZmlsZV9hbmRfZGly ZWN0b3J5IChzdHJ1Y3QgZGllX2luZm8KIAkgZGlyZWN0b3J5LCBnZXQgcmlk IG9mIGl0LiAgKi8KICAgICAgIGNoYXIgKmNwID0gc3RyY2hyICgqY29tcF9k aXIsICc6Jyk7CiAKLSAgICAgIGlmIChjcCAmJiBjcCAhPSAqY29tcF9kaXIg JiYgY3BbLTFdID09ICcuJyAmJiBjcFsxXSA9PSAnLycpCisgICAgICBpZiAo Y3AgJiYgY3AgIT0gKmNvbXBfZGlyICYmIGNwWy0xXSA9PSAnLicKKwkgICYm IElTX0FCU09MVVRFX1BBVEggKCZjcFsxXSkpCiAJKmNvbXBfZGlyID0gY3Ag KyAxOwogICAgIH0KIApJbmRleDogZ2RiL3dpbmRvd3MtbmF0LmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gZ2RiLm9yaWcvd2luZG93cy1uYXQuYwky MDExLTAzLTIzIDEwOjMyOjAzLjEzODEwNDEwMCArMDEwMAorKysgZ2RiL3dp bmRvd3MtbmF0LmMJMjAxMS0wMy0yMyAxMDo1NjoxNy4zMzY3NjM5MDAgKzAx MDAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxzaWduYWwuaD4KIAog I2luY2x1ZGUgImJ1aWxkc3ltLmgiCisjaW5jbHVkZSAiZmlsZW5hbWVzLmgi CiAjaW5jbHVkZSAic3ltZmlsZS5oIgogI2luY2x1ZGUgIm9iamZpbGVzLmgi CiAjaW5jbHVkZSAiZ2RiX29ic3RhY2suaCIKQEAgLTI1ODYsNyArMjU4Nyw3 IEBAIF9pbml0aWFsaXplX2NoZWNrX2Zvcl9nZGJfaW5pICh2b2lkKQogCQkJ CSAgICAgIHNpemVvZiAoIi9nZGIuaW5pIikpOwogICAgICAgc3RyY3B5IChv bGRpbmksIGhvbWVkaXIpOwogICAgICAgcCA9IHN0cmNociAob2xkaW5pLCAn XDAnKTsKLSAgICAgIGlmIChwID4gb2xkaW5pICYmIHBbLTFdICE9ICcvJykK KyAgICAgIGlmIChwID4gb2xkaW5pICYmICFJU19ESVJfU0VQQVJBVE9SIChw Wy0xXSkpCiAJKnArKyA9ICcvJzsKICAgICAgIHN0cmNweSAocCwgImdkYi5p bmkiKTsKICAgICAgIGlmIChhY2Nlc3MgKG9sZGluaSwgMCkgPT0gMCkK --90e6ba5bb9ddf94d87049f23f904--