From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by sourceware.org (Postfix) with ESMTPS id 2721B3858D28; Wed, 28 Sep 2022 20:42:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2721B3858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32d.google.com with SMTP id i203-20020a1c3bd4000000b003b3df9a5ecbso2034259wma.1; Wed, 28 Sep 2022 13:42:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date; bh=wCEjCn/y9bz5qVT5pbEDwkZL4520+cWUDrxn4M93TJk=; b=gkx7A77fEKrtbu63lFgCghDOqn1Fvye8lf1IBOJivQIJs8bzNvpWygca3/UKYPxCH9 s/daudZCQb9dGff4hanVNq2FNMXauZPkyT94Vu2StrDDM80NLPnZ7cavyKn7o1dWlWB3 Kc5NEbNOg91H7B1OdYky9K/YWfvDlQKTMV+71zHWa6c0RMbE4qc6kOn/llZvu+h+aJFF qEk1Y+rrf4fSDDY/+ACZZ8fiGh3rCMAk150YBqOUU9xraabQTC3yoajxGgkR67Vlc0hc Tke+ElpEtJWP8quTwHepcpXV5tyrkejhYhtuiJsHMXLG8u1hSDE7oZcmugq1v7+h2aVq 0jKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date; bh=wCEjCn/y9bz5qVT5pbEDwkZL4520+cWUDrxn4M93TJk=; b=rjOrGMZ3C9zpSjvhyTNtVXu+krGow3N/AAf8IwxKzEwExGMqsrqQMS9fAULbG+9DcZ qVPPDMDr5qDeCH9A9sC2/Z0fD6VNX4vfnWVqZjIFKxS54SKtTWm0IraPbNxQ2OfXbzpM 2KmJ4nEem/WA/uTenmAbZnh6bgYBLE2aCoNDoaIjHbCyVdkEGDLEyTNW8ghGAN8I178h LIuFHJrcgNGw4oqhEBeDfqWWPXjTkGYs35rekeClt23AUcUO5mWLNstX2ftkzN+8JhO0 jTEKaRiIh4C6dDmjBd/LvZmj5rAyjX5grku3ywkNM1zluwiPui/2o33fkFt/5//wscb5 wing== X-Gm-Message-State: ACrzQf2MJrSuDbjuMjYPD6RCPMfsXnAPy68mEhBC2al6j7Z4mkgaehlB SScTEcfex7EYDrp+Pc8Q/WTl7oE8yWU= X-Google-Smtp-Source: AMsMyM5wzPvf0MbJ6CVBKXshf836z0aX9ZDnSKTbiAQtb61Idh/DFvJeLgBs+C5Mk88BnJreEV2xFg== X-Received: by 2002:a05:600c:b42:b0:3b4:7580:a995 with SMTP id k2-20020a05600c0b4200b003b47580a995mr8430791wmr.30.1664397722836; Wed, 28 Sep 2022 13:42:02 -0700 (PDT) Received: from ?IPV6:2a01:e0a:1dc:b1c0:82c1:bb59:16bd:d8ea? ([2a01:e0a:1dc:b1c0:82c1:bb59:16bd:d8ea]) by smtp.googlemail.com with ESMTPSA id p2-20020a5d6382000000b0022a53fe201fsm3691410wru.68.2022.09.28.13.42.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Sep 2022 13:42:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------qS5rVn4q0TFC7CSMaXDRAmEO" Message-ID: Date: Wed, 28 Sep 2022 22:42:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: fr To: "libstdc++@gcc.gnu.org" Cc: gcc-patches From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= Subject: [PATCH] Fix gdb printers for std::string X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------qS5rVn4q0TFC7CSMaXDRAmEO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sometimes substitution of basic_string by one of the std::string typeedef fails. Here is the fix.     libstdc++: Fix gdb pretty printers when dealing with std::string     Since revision 33b43b0d8cd2de722d177ef823930500948a7487 std::string and other     similar typedef are ambiguous from a gdb point of view because it matches both     std::basic_string and std::__cxx11::basic_string symbols. For those     typedef add a workaround to accept the substitution as long as the same regardless     of __cxx11 namespace.     Also avoid to register printers for types in std::__cxx11::__8:: namespace, there is     no such symbols.     libstdc++-v3/ChangeLog:             * libstdc++-v3/python/libstdcxx/v6/printers.py (Printer.add_version): Do not add             version namespace for __cxx11 symbols.             (add_one_template_type_printer): Likewise.             (add_one_type_printer): Likewise.             (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al             ambiguous typedef matching both std:: and std::__cxx11:: symbols.             (register_type_printers): Refine type registration to limit false positive in             FilteringTypePrinter._recognize.recognize requiring to look for the type in gdb.             * libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete             \#define _GLIBCXX_USE_CXX11_ABI 0.             * libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc: Likewise.             * libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.             * libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.             * libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove             xfail for c++20 and debug mode.             * libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. Tested under x86_64 linux w/o _GLIBCXX_INLINE_VERSION and w/o _GLIBCXX_DEBUG. I also tested it with my patch to use cxx11 abi in _GLIBCXX_INLINE_VERSION mode. Ok to commit ? François --------------qS5rVn4q0TFC7CSMaXDRAmEO Content-Type: text/x-patch; charset=UTF-8; name="gdb_printers.patch" Content-Disposition: attachment; filename="gdb_printers.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9weXRob24vbGlic3RkY3h4L3Y2L3ByaW50ZXJz LnB5IGIvbGlic3RkYysrLXYzL3B5dGhvbi9saWJzdGRjeHgvdjYvcHJpbnRlcnMucHkKaW5k ZXggMjQ1YjZlM2RiY2QuLmI0ODc4YjkzYmIyIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv cHl0aG9uL2xpYnN0ZGN4eC92Ni9wcmludGVycy5weQorKysgYi9saWJzdGRjKystdjMvcHl0 aG9uL2xpYnN0ZGN4eC92Ni9wcmludGVycy5weQpAQCAtMTg1Nyw3ICsxODU3LDcgQEAgY2xh c3MgUHJpbnRlcihvYmplY3QpOgogICAgICMgQWRkIGEgbmFtZSB1c2luZyBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfVkVSU0lPTi4KICAgICBkZWYgYWRkX3ZlcnNpb24oc2VsZiwgYmFz ZSwgbmFtZSwgZnVuY3Rpb24pOgogICAgICAgICBzZWxmLmFkZChiYXNlICsgbmFtZSwgZnVu Y3Rpb24pCi0gICAgICAgIGlmIF92ZXJzaW9uZWRfbmFtZXNwYWNlOgorICAgICAgICBpZiBf dmVyc2lvbmVkX25hbWVzcGFjZSBhbmQgbm90ICdfX2N4eDExJyBpbiBiYXNlOgogICAgICAg ICAgICAgdmJhc2UgPSByZS5zdWIoJ14oc3RkfF9fZ251X2N4eCk6OicsIHInXGc8MD4lcycg JSBfdmVyc2lvbmVkX25hbWVzcGFjZSwgYmFzZSkKICAgICAgICAgICAgIHNlbGYuYWRkKHZi YXNlICsgbmFtZSwgZnVuY3Rpb24pCiAKQEAgLTIwMjYsNyArMjAyNiw3IEBAIGRlZiBhZGRf b25lX3RlbXBsYXRlX3R5cGVfcHJpbnRlcihvYmosIG5hbWUsIGRlZmFyZ3MpOgogICAgIHBy aW50ZXIgPSBUZW1wbGF0ZVR5cGVQcmludGVyKCdzdGQ6Ol9fZGVidWc6OicrbmFtZSwgZGVm YXJncykKICAgICBnZGIudHlwZXMucmVnaXN0ZXJfdHlwZV9wcmludGVyKG9iaiwgcHJpbnRl cikKIAotICAgIGlmIF92ZXJzaW9uZWRfbmFtZXNwYWNlOgorICAgIGlmIF92ZXJzaW9uZWRf bmFtZXNwYWNlIGFuZCBub3QgJ19fY3h4MTEnIGluIG5hbWU6CiAgICAgICAgICMgQWRkIHNl Y29uZCB0eXBlIHByaW50ZXIgZm9yIHNhbWUgdHlwZSBpbiB2ZXJzaW9uZWQgbmFtZXNwYWNl OgogICAgICAgICBucyA9ICdzdGQ6OicgKyBfdmVyc2lvbmVkX25hbWVzcGFjZQogICAgICAg ICAjIFBSIDg2MTEyIENhbm5vdCB1c2UgZGljdCBjb21wcmVoZW5zaW9uIGhlcmU6CkBAIC0y MDg0LDYgKzIwODQsMjEgQEAgY2xhc3MgRmlsdGVyaW5nVHlwZVByaW50ZXIob2JqZWN0KToK ICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgaWYgc2VsZi50eXBlX29i aiA9PSB0eXBlX29iajoKICAgICAgICAgICAgICAgICByZXR1cm4gc3RyaXBfaW5saW5lX25h bWVzcGFjZXMoc2VsZi5uYW1lKQorCisgICAgICAgICAgICBpZiBzZWxmLnR5cGVfb2JqIGlz IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAgICAgIyBX b3JrYXJvdW5kIGFtYmlndW91cyB0eXBlZGVmcyBtYXRjaGluZyBib3RoIHN0ZDo6IGFuZCBz dGQ6Ol9fY3h4MTE6OiBzeW1ib2xzLgorICAgICAgICAgICAgYW1iaWd1b3VzID0gRmFsc2UK KyAgICAgICAgICAgIGZvciBjaCBpbiAoJycsICd3JywgJ3U4JywgJ3UxNicsICd1MzInKToK KyAgICAgICAgICAgICAgICBpZiBzZWxmLm5hbWUgPT0gJ3N0ZDo6JyArIGNoICsgJ3N0cmlu Zyc6CisgICAgICAgICAgICAgICAgICAgIGFtYmlndW91cyA9IFRydWUKKyAgICAgICAgICAg ICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgaWYgYW1iaWd1b3VzOgorICAgICAgICAg ICAgICAgIGlmIHNlbGYudHlwZV9vYmoudGFnLnJlcGxhY2UoJ19fY3h4MTE6OicsICcnKSA9 PSB0eXBlX29iai50YWcucmVwbGFjZSgnX19jeHgxMTo6JywgJycpOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gc3RyaXBfaW5saW5lX25hbWVzcGFjZXMoc2VsZi5uYW1lKQorCiAg ICAgICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgZGVmIGluc3RhbnRpYXRlKHNlbGYpOgpA QCAtMjA5Myw3ICsyMTA4LDcgQEAgY2xhc3MgRmlsdGVyaW5nVHlwZVByaW50ZXIob2JqZWN0 KToKIGRlZiBhZGRfb25lX3R5cGVfcHJpbnRlcihvYmosIG1hdGNoLCBuYW1lKToKICAgICBw cmludGVyID0gRmlsdGVyaW5nVHlwZVByaW50ZXIoJ3N0ZDo6JyArIG1hdGNoLCAnc3RkOjon ICsgbmFtZSkKICAgICBnZGIudHlwZXMucmVnaXN0ZXJfdHlwZV9wcmludGVyKG9iaiwgcHJp bnRlcikKLSAgICBpZiBfdmVyc2lvbmVkX25hbWVzcGFjZToKKyAgICBpZiBfdmVyc2lvbmVk X25hbWVzcGFjZSBhbmQgbm90ICdfX2N4eDExJyBpbiBtYXRjaDoKICAgICAgICAgbnMgPSAn c3RkOjonICsgX3ZlcnNpb25lZF9uYW1lc3BhY2UKICAgICAgICAgcHJpbnRlciA9IEZpbHRl cmluZ1R5cGVQcmludGVyKG5zICsgbWF0Y2gsIG5zICsgbmFtZSkKICAgICAgICAgZ2RiLnR5 cGVzLnJlZ2lzdGVyX3R5cGVfcHJpbnRlcihvYmosIHByaW50ZXIpCkBAIC0yMTA1LDI5ICsy MTIwLDI2IEBAIGRlZiByZWdpc3Rlcl90eXBlX3ByaW50ZXJzKG9iaik6CiAgICAgICAgIHJl dHVybgogCiAgICAgIyBBZGQgdHlwZSBwcmludGVycyBmb3IgdHlwZWRlZnMgc3RkOjpzdHJp bmcsIHN0ZDo6d3N0cmluZyBldGMuCi0gICAgZm9yIGNoIGluICgnJywgJ3cnLCAndTgnLCAn dTE2JywgJ3UzMicpOgotICAgICAgICBhZGRfb25lX3R5cGVfcHJpbnRlcihvYmosICdiYXNp Y19zdHJpbmcnLCBjaCArICdzdHJpbmcnKQotICAgICAgICBhZGRfb25lX3R5cGVfcHJpbnRl cihvYmosICdfX2N4eDExOjpiYXNpY19zdHJpbmcnLCBjaCArICdzdHJpbmcnKQotICAgICAg ICAjIFR5cGVkZWZzIGZvciBfX2N4eDExOjpiYXNpY19zdHJpbmcgdXNlZCB0byBiZSBpbiBu YW1lc3BhY2UgX19jeHgxMToKLSAgICAgICAgYWRkX29uZV90eXBlX3ByaW50ZXIob2JqLCAn X19jeHgxMTo6YmFzaWNfc3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J19fY3h4MTE6OicgKyBjaCArICdzdHJpbmcnKQotICAgICAgICBhZGRfb25lX3R5cGVfcHJp bnRlcihvYmosICdiYXNpY19zdHJpbmdfdmlldycsIGNoICsgJ3N0cmluZ192aWV3JykKKyAg ICBmb3IgY2ggaW4gKCgnY2hhcicsICcnKSwgKCd3Y2hhcl90JywgJ3cnKSwgKCdjaGFyOF90 JywgJ3U4JyksICgnY2hhcjE2X3QnLCAndTE2JyksICgnY2hhcjMyX3QnLCAndTMyJykpOgor ICAgICAgICBhZGRfb25lX3R5cGVfcHJpbnRlcihvYmosICdiYXNpY19zdHJpbmc8JyArIGNo WzBdLCBjaFsxXSArICdzdHJpbmcnKQorICAgICAgICBhZGRfb25lX3R5cGVfcHJpbnRlcihv YmosICdfX2N4eDExOjpiYXNpY19zdHJpbmc8JyArIGNoWzBdLCAnX19jeHgxMTo6JyArIGNo WzFdICsgJ3N0cmluZycpCisgICAgICAgIGFkZF9vbmVfdHlwZV9wcmludGVyKG9iaiwgJ2Jh c2ljX3N0cmluZ192aWV3PCcgKyBjaFswXSwgY2hbMV0gKyAnc3RyaW5nX3ZpZXcnKQogCiAg ICAgIyBBZGQgdHlwZSBwcmludGVycyBmb3IgdHlwZWRlZnMgc3RkOjppc3RyZWFtLCBzdGQ6 Ondpc3RyZWFtIGV0Yy4KLSAgICBmb3IgY2ggaW4gKCcnLCAndycpOgorICAgIGZvciBjaCBp biAoKCdjaGFyJywgJycpLCAoJ3djaGFyX3QnLCAndycpKToKICAgICAgICAgZm9yIHggaW4g KCdpb3MnLCAnc3RyZWFtYnVmJywgJ2lzdHJlYW0nLCAnb3N0cmVhbScsICdpb3N0cmVhbScs CiAgICAgICAgICAgICAgICAgICAnZmlsZWJ1ZicsICdpZnN0cmVhbScsICdvZnN0cmVhbScs ICdmc3RyZWFtJyk6Ci0gICAgICAgICAgICBhZGRfb25lX3R5cGVfcHJpbnRlcihvYmosICdi YXNpY18nICsgeCwgY2ggKyB4KQorICAgICAgICAgICAgYWRkX29uZV90eXBlX3ByaW50ZXIo b2JqLCAnYmFzaWNfJyArIHggKyAnPCcgKyBjaFswXSwgY2hbMV0gKyB4KQogICAgICAgICBm b3IgeCBpbiAoJ3N0cmluZ2J1ZicsICdpc3RyaW5nc3RyZWFtJywgJ29zdHJpbmdzdHJlYW0n LAogICAgICAgICAgICAgICAgICAgJ3N0cmluZ3N0cmVhbScpOgotICAgICAgICAgICAgYWRk X29uZV90eXBlX3ByaW50ZXIob2JqLCAnYmFzaWNfJyArIHgsIGNoICsgeCkKKyAgICAgICAg ICAgIGFkZF9vbmVfdHlwZV9wcmludGVyKG9iaiwgJ2Jhc2ljXycgKyB4LCBjaFsxXSArIHgp CiAgICAgICAgICAgICAjIDxzc3RyZWFtPiB0eXBlcyBhcmUgaW4gX19jeHgxMSBuYW1lc3Bh Y2UsIGJ1dCB0eXBlZGVmcyBhcmVuJ3Q6Ci0gICAgICAgICAgICBhZGRfb25lX3R5cGVfcHJp bnRlcihvYmosICdfX2N4eDExOjpiYXNpY18nICsgeCwgY2ggKyB4KQorICAgICAgICAgICAg YWRkX29uZV90eXBlX3ByaW50ZXIob2JqLCAnX19jeHgxMTo6YmFzaWNfJyArIHggKyAnPCcg KyBjaFswXSwgY2hbMV0gKyB4KQogCiAgICAgIyBBZGQgdHlwZSBwcmludGVycyBmb3IgdHlw ZWRlZnMgcmVnZXgsIHdyZWdleCwgY21hdGNoLCB3Y21hdGNoIGV0Yy4KICAgICBmb3IgYWJp IGluICgnJywgJ19fY3h4MTE6OicpOgotICAgICAgICBmb3IgY2ggaW4gKCcnLCAndycpOgot ICAgICAgICAgICAgYWRkX29uZV90eXBlX3ByaW50ZXIob2JqLCBhYmkgKyAnYmFzaWNfcmVn ZXgnLCBhYmkgKyBjaCArICdyZWdleCcpCisgICAgICAgIGZvciBjaCBpbiAoKCdjaGFyJywg JycpLCAoJ3djaGFyX3QnLCAndycpKToKKyAgICAgICAgICAgIGFkZF9vbmVfdHlwZV9wcmlu dGVyKG9iaiwgYWJpICsgJ2Jhc2ljX3JlZ2V4PCcgKyBjaFswXSwgYWJpICsgY2hbMV0gKyAn cmVnZXgnKQogICAgICAgICBmb3IgY2ggaW4gKCdjJywgJ3MnLCAnd2MnLCAnd3MnKToKICAg ICAgICAgICAgIGFkZF9vbmVfdHlwZV9wcmludGVyKG9iaiwgYWJpICsgJ21hdGNoX3Jlc3Vs dHMnLCBhYmkgKyBjaCArICdtYXRjaCcpCiAgICAgICAgICAgICBmb3IgeCBpbiAoJ3N1Yl9t YXRjaCcsICdyZWdleF9pdGVyYXRvcicsICdyZWdleF90b2tlbl9pdGVyYXRvcicpOgpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9saWJzdGRjKystcHJldHR5cHJpbnRl cnMvODAyNzYuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlL2xpYnN0ZGMrKy1wcmV0dHlw cmludGVycy84MDI3Ni5jYwppbmRleCA0YWJlN2QzODRlOC4uZDEwMTZiNThkNzkgMTAwNjQ0 Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGlic3RkYysrLXByZXR0eXByaW50ZXJz LzgwMjc2LmNjCisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGlic3RkYysrLXByZXR0 eXByaW50ZXJzLzgwMjc2LmNjCkBAIC0xOCw5ICsxOCw2IEBACiAvLyB3aXRoIHRoaXMgbGli cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogLy8gPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi0vLyBUeXBlIHByaW50ZXJzIG9ubHkgcmVjb2du aXplIHRoZSBvbGQgc3RkOjpzdHJpbmcgZm9yIG5vdy4KLSNkZWZpbmUgX0dMSUJDWFhfVVNF X0NYWDExX0FCSSAwCi0KICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxsaXN0Pgog I2luY2x1ZGUgPG1lbW9yeT4KQEAgLTQ2LDcgKzQzLDcgQEAgbWFpbigpCiAgIC8vIHsgZGct ZmluYWwgeyB3aGF0aXMtcmVnZXhwLXRlc3QgcDEgInN0ZDo6dW5pcXVlX3B0cjxzdGQ6Oihf X2RlYnVnOjopP3ZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjooX19kZWJ1Zzo6KT92ZWN0 b3I8aW50PlxcKj4+PiIgfSB9CiAgIC8vIHsgZGctZmluYWwgeyB3aGF0aXMtcmVnZXhwLXRl c3QgcDIgInN0ZDo6dW5pcXVlX3B0cjxzdGQ6OihfX2RlYnVnOjopP3ZlY3RvcjxzdGQ6OnVu aXF1ZV9wdHI8c3RkOjooX19kZWJ1Zzo6KT9zZXQ8aW50PlxcKj4+XFxcW1xcXF0+IiB9IH0K ICAgLy8geyBkZy1maW5hbCB7IHdoYXRpcy1yZWdleHAtdGVzdCBwMyAic3RkOjp1bmlxdWVf cHRyPHN0ZDo6KF9fZGVidWc6Oik/c2V0PHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OihfX2RlYnVn OjopP3ZlY3RvcjxpbnQ+XFwqPj5cXFxbMTBcXFxdPiIgfSB9Ci0gIC8vIHsgZGctZmluYWwg eyB3aGF0aXMtcmVnZXhwLXRlc3QgcDQgInN0ZDo6dW5pcXVlX3B0cjxzdGQ6OihfX2RlYnVn OjopP3ZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8c3RkOjooX19kZWJ1Zzo6KT9saXN0PHN0ZDo6 c3RyaW5nPlxcXFtcXFxdPj5cXFxbOTlcXFxdPiIgeyB4ZmFpbCB7IGMrKzIwIHx8IGRlYnVn X21vZGUgfSB9IH0gfQorICAvLyB7IGRnLWZpbmFsIHsgd2hhdGlzLXJlZ2V4cC10ZXN0IHA0 ICJzdGQ6OnVuaXF1ZV9wdHI8c3RkOjooX19kZWJ1Zzo6KT92ZWN0b3I8c3RkOjp1bmlxdWVf cHRyPHN0ZDo6KF9fZGVidWc6Oik/bGlzdDxzdGQ6OnN0cmluZz5cXFxbXFxcXT4+XFxcWzk5 XFxcXT4iIH0gfQogCiAgIHBsYWNlaG9sZGVyKCZwMSk7CQkvLyBNYXJrIFNQT1QKICAgcGxh Y2Vob2xkZXIoJnAyKTsKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGli c3RkYysrLXByZXR0eXByaW50ZXJzL2N4eDE3LmNjIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0 ZS9saWJzdGRjKystcHJldHR5cHJpbnRlcnMvY3h4MTcuY2MKaW5kZXggZTUyZmZiYmNjMTUu LmNmNjk5ZDIyZTc4IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvdGVzdHN1aXRlL2xpYnN0 ZGMrKy1wcmV0dHlwcmludGVycy9jeHgxNy5jYworKysgYi9saWJzdGRjKystdjMvdGVzdHN1 aXRlL2xpYnN0ZGMrKy1wcmV0dHlwcmludGVycy9jeHgxNy5jYwpAQCAtMTgsOSArMTgsNiBA QAogLy8gd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKIC8vIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIAotLy8gVHlwZSBw cmludGVycyBvbmx5IHJlY29nbml6ZSB0aGUgb2xkIHN0ZDo6c3RyaW5nIGZvciBub3cuCi0j ZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAotCiAjaW5jbHVkZSA8ZmlsZXN5c3Rl bT4KICNpbmNsdWRlIDxhbnk+CiAjaW5jbHVkZSA8b3B0aW9uYWw+CmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvdGVzdHN1aXRlL2xpYnN0ZGMrKy1wcmV0dHlwcmludGVycy9saWJmdW5k dHMuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlL2xpYnN0ZGMrKy1wcmV0dHlwcmludGVy cy9saWJmdW5kdHMuY2MKaW5kZXggZTgxMzA4ZDRmN2UuLmIyZjQ2NGQwODk0IDEwMDY0NAot LS0gYS9saWJzdGRjKystdjMvdGVzdHN1aXRlL2xpYnN0ZGMrKy1wcmV0dHlwcmludGVycy9s aWJmdW5kdHMuY2MKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9saWJzdGRjKystcHJl dHR5cHJpbnRlcnMvbGliZnVuZHRzLmNjCkBAIC0xOCw5ICsxOCw2IEBACiAvLyB3aXRoIHRo aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogLy8gPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi0vLyBUeXBlIHByaW50ZXJzIG9ubHkg cmVjb2duaXplIHRoZSBvbGQgc3RkOjpzdHJpbmcgZm9yIG5vdy4KLSNkZWZpbmUgX0dMSUJD WFhfVVNFX0NYWDExX0FCSSAwCi0KICNpbmNsdWRlIDxleHBlcmltZW50YWwvYW55PgogI2lu Y2x1ZGUgPGV4cGVyaW1lbnRhbC9vcHRpb25hbD4KICNpbmNsdWRlIDxleHBlcmltZW50YWwv c3RyaW5nX3ZpZXc+CkBAIC01MCw3ICs0Nyw3IEBAIG1haW4oKQogICBvbSA9IHN0ZDo6bWFw PGludCwgZG91YmxlPnsgezEsIDIufSwgezMsIDQufSwgezUsIDYufSB9OwogLy8geyBkZy1m aW5hbCB7IHJlZ2V4cC10ZXN0IG9tIHtzdGQ6OmV4cGVyaW1lbnRhbDo6b3B0aW9uYWw8c3Rk OjooX19kZWJ1Zzo6KT9tYXA8aW50LCBkb3VibGU+PiBjb250YWluaW5nIHN0ZDo6KF9fZGVi dWc6Oik/bWFwIHdpdGggMyBlbGVtZW50cyA9IHtcWzFcXSA9IDIsIFxbM1xdID0gNCwgXFs1 XF0gPSA2fX0gfSB9CiAgIG9wdGlvbmFsPHN0ZDo6c3RyaW5nPiBvc3sgInN0cmluZ3kiIH07 Ci0vLyB7IGRnLWZpbmFsIHsgbm90ZS10ZXN0IG9zIHtzdGQ6OmV4cGVyaW1lbnRhbDo6b3B0 aW9uYWw8c3RkOjpzdHJpbmc+ID0ge1tjb250YWluZWQgdmFsdWVdID0gInN0cmluZ3kifX0g eyB4ZmFpbCB7IGMrKzIwIHx8IGRlYnVnX21vZGUgfSB9IH0gfQorLy8geyBkZy1maW5hbCB7 IG5vdGUtdGVzdCBvcyB7c3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsPHN0ZDo6c3RyaW5n PiA9IHtbY29udGFpbmVkIHZhbHVlXSA9ICJzdHJpbmd5In19IH0gfQogCiAgIGFueSBhOwog Ly8geyBkZy1maW5hbCB7IG5vdGUtdGVzdCBhIHtzdGQ6OmV4cGVyaW1lbnRhbDo6YW55IFtu byBjb250YWluZWQgdmFsdWVdfSB9IH0KQEAgLTYxLDcgKzU4LDcgQEAgbWFpbigpCiAgIGFu eSBhcCA9ICh2b2lkKiludWxscHRyOwogLy8geyBkZy1maW5hbCB7IG5vdGUtdGVzdCBhcCB7 c3RkOjpleHBlcmltZW50YWw6OmFueSBjb250YWluaW5nIHZvaWQgKiA9IHtbY29udGFpbmVk IHZhbHVlXSA9IDB4MH19IH0gfQogICBhbnkgYXMgPSAqb3M7Ci0vLyB7IGRnLWZpbmFsIHsg bm90ZS10ZXN0IGFzIHtzdGQ6OmV4cGVyaW1lbnRhbDo6YW55IGNvbnRhaW5pbmcgc3RkOjpz dHJpbmcgPSB7W2NvbnRhaW5lZCB2YWx1ZV0gPSAic3RyaW5neSJ9fSB7IHhmYWlsIHsgYysr MjAgfHwgZGVidWdfbW9kZSB9IH0gfSB9CisvLyB7IGRnLWZpbmFsIHsgbm90ZS10ZXN0IGFz IHtzdGQ6OmV4cGVyaW1lbnRhbDo6YW55IGNvbnRhaW5pbmcgc3RkOjpzdHJpbmcgPSB7W2Nv bnRhaW5lZCB2YWx1ZV0gPSAic3RyaW5neSJ9fSB9IH0KICAgYW55IGFzMigic3RyaW5naWVz dCIpOwogLy8geyBkZy1maW5hbCB7IHJlZ2V4cC10ZXN0IGFzMiB7c3RkOjpleHBlcmltZW50 YWw6OmFueSBjb250YWluaW5nIGNvbnN0IGNoYXIgXCogPSB7XFtjb250YWluZWQgdmFsdWVc XSA9IDB4W1s6eGRpZ2l0Ol1dKyAic3RyaW5naWVzdCJ9fSB9IH0KICAgYW55IGFtID0gKm9t OwpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9saWJzdGRjKystcHJldHR5 cHJpbnRlcnMvc2ltcGxlLmNjIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9saWJzdGRjKyst cHJldHR5cHJpbnRlcnMvc2ltcGxlLmNjCmluZGV4IDE2MDlhZTJjOGRiLi4zZDE0MTIwMzcx ZSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9saWJzdGRjKystcHJldHR5 cHJpbnRlcnMvc2ltcGxlLmNjCisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGlic3Rk YysrLXByZXR0eXByaW50ZXJzL3NpbXBsZS5jYwpAQCAtMjAsOSArMjAsNiBAQAogLy8gd2l0 aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKIC8v IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIAotLy8gVHlwZSBwcmludGVycyBv bmx5IHJlY29nbml6ZSB0aGUgb2xkIHN0ZDo6c3RyaW5nIGZvciBub3cuCi0jZGVmaW5lIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkgMAotCiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUg PGRlcXVlPgogI2luY2x1ZGUgPGJpdHNldD4KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90 ZXN0c3VpdGUvbGlic3RkYysrLXByZXR0eXByaW50ZXJzL3NpbXBsZTExLmNjIGIvbGlic3Rk YysrLXYzL3Rlc3RzdWl0ZS9saWJzdGRjKystcHJldHR5cHJpbnRlcnMvc2ltcGxlMTEuY2MK aW5kZXggYTRiODJlMzBmOWMuLjM2N2UwNDU3OWNhIDEwMDY0NAotLS0gYS9saWJzdGRjKyst djMvdGVzdHN1aXRlL2xpYnN0ZGMrKy1wcmV0dHlwcmludGVycy9zaW1wbGUxMS5jYworKysg Yi9saWJzdGRjKystdjMvdGVzdHN1aXRlL2xpYnN0ZGMrKy1wcmV0dHlwcmludGVycy9zaW1w bGUxMS5jYwpAQCAtMjAsOSArMjAsNiBAQAogLy8gd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0 aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKIC8vIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KIAotLy8gVHlwZSBwcmludGVycyBvbmx5IHJlY29nbml6ZSB0aGUgb2xk IHN0ZDo6c3RyaW5nIGZvciBub3cuCi0jZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkg MAotCiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPGRlcXVlPgogI2luY2x1ZGUgPGJp dHNldD4KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGlic3RkYysrLXBy ZXR0eXByaW50ZXJzL3doYXRpcy5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGlic3Rk YysrLXByZXR0eXByaW50ZXJzL3doYXRpcy5jYwppbmRleCAwNDZkMjZmMDAyMC4uMjNiOTk0 N2E1ZGUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGlic3RkYysrLXBy ZXR0eXByaW50ZXJzL3doYXRpcy5jYworKysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlL2xp YnN0ZGMrKy1wcmV0dHlwcmludGVycy93aGF0aXMuY2MKQEAgLTE4LDEwICsxOCw2IEBACiAv LyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNl ZQogLy8gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi0vLyBHREIgY2FuJ3Qg ZmluZCBnbG9iYWwgdmFyaWFibGVzIHVzaW5nIHRoZSBhYmlfdGFnIGF0dHJpYnV0ZS4KLS8v IGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE5NDM2 Ci0jZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAotCiAjaW5jbHVkZSA8c3RyaW5n PgogI2luY2x1ZGUgPGlvc3RyZWFtPgogI2luY2x1ZGUgPHJlZ2V4Pgo= --------------qS5rVn4q0TFC7CSMaXDRAmEO--