Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFLTi-004zwv-0R for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 00:30:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wFLTf-00Arz5-2P for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 00:30:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wFLTf-00Aryx-18 for pgsql-hackers@lists.postgresql.org; Wed, 22 Apr 2026 00:30:03 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wFLTc-00000002O5P-3eFN for pgsql-hackers@lists.postgresql.org; Wed, 22 Apr 2026 00:30:03 +0000 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-43d70b3e159so2387081f8f.0 for ; Tue, 21 Apr 2026 17:30:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776817794; cv=none; d=google.com; s=arc-20240605; b=cqaF6s7wlO3GReUbe7sebwoSuPqu64o5R7v+oWv9QUIyUhCEUwCogSmf6+tnvhBh63 QM1Ie4erJR9GkbheQZxGJiY6xevzZ2IEHeqlFjKCkR0cJF/egaQ5gpbr4FO+KWyY4G2q f/DMFPbaXvL9USCy1L8caDPPP+IyQtxj43forWFnpxaGYKe2PahVIUYY9jcueab/B7K9 h53/eOs1xfbaYcIEDY4qSzoAgMJwWpc8Kf0/kX4g6YuLyHBSqXEpuXA840+cRGyuV5nF 674RNEx1D9/bkbBBThknkRAQjo5Iv3V4sV0CrA4e2mdliAgSoqFHf4T0LtcglP28/e1b GCfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=zXBv01KCNCTWvnfNLLZ5ai4U1VVakjHxwLAV4g0B8tY=; fh=nVleX1RlliqdJnsH/hICr0zp/joQJmjdnRfgFbNpFzs=; b=MkjboeHr1b2R60FCt1OLWWfw/sjMwLNqPHk6CYT6l5gctSeq/FghmxXszwVRDLfPZA ozlZANUH+9NgcbgDg9RcscprCWbYNaFCm2pIop31Z0eqY/h/q5wJ34eWHE1VV3kdJN+b IP/VHrW9sxhC4FH+ipXu8t8XzvheUoDmQv45bzw/zjJVVIZn4Hn/B1wRxnhCjBfCUh8D HSsZzmbK11CCfexPo/GZM0bZ0ws9YF8SVziJ4AkCDzWpgULXm9ZRxVpbgmtnZ8RFVDhJ gUmzi/3pu+0+A23kzgCweADI91PE7EffrwDOrJC0CbRDWgY01GZYjEtxEuVq8IvXtvLn aEsw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776817794; x=1777422594; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=zXBv01KCNCTWvnfNLLZ5ai4U1VVakjHxwLAV4g0B8tY=; b=U2yLVDcSVLNcMKtB/EvdPzs++UdXd8V1w+GuCqt2FQBDZrY6j283sXl1WF78zwbC4J ceAa8t2PHBnPNKuTOieW2IXX3XoDRdiwcLVHbfAT7QowlPNKVt5OEmNny/rSWvpMkpTf t4qtZuPZGr74mxv4Jt5sE91QmN3qmRjPFFJjrRT/R2NVhw15bZaXSiLMi1R16CdY3BVb 4djTpHF4U4Ng5E4zW8g5nX+FxaL/WyrZ53I4l7gF1621keBeA44XTGq4iKPys6hGr26j nULuHKsckJg6MveWvmBZ7GL1YYi6rcHfQVAwfbrn+KGDv8TswVuGvWrSdyE6/88j77ef Kfuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776817794; x=1777422594; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=zXBv01KCNCTWvnfNLLZ5ai4U1VVakjHxwLAV4g0B8tY=; b=dufsym9yfj8Rm8DBevnnHQTBb+/WV9MKUmnGWYVu6Gm9GWzBZmyezc2TJPJhO7Z2fW ku8577sq7dsa9fRI6ovuH12uAiaor76BZGsNtvX3Mxy04hkY3Gp5jw8bGv7UeXi5l8nX 5MqpHm1bunT556OgN6+p1GtNUmPJ+FDZgIRYUnGE0qunFVaF1QVZv6rWPMD2Qxfpn7Gc 1P7Bix4D4m0EC+zX86XyTXcxj4e3cPR19DsiK8k4jhMjfPxD/q6qc2D1JT073VaHDb6p lYWGMWCwq2mcSrZMdZU0FdVtR3zTSuVcR15APeEysE9xRvAjD4iWHhdvZOS/qf/YC5IL AV6A== X-Gm-Message-State: AOJu0Yz5LV3G6USoqJdAp2hHhjRXSLW0YfrOQwE+1q2kx3TYxKJWAdUC 20stVYdBgG4GQVOIUiaALDcKvjHbsysqVzpFlaU5mecSw3mufsHsO4gaS/oGhBKHif+bx5ceIci lFhLgMmr4IVmHQ3SDOD69um1UT1usYKOsBdWB X-Gm-Gg: AeBDietcfF2brBdvu8XmSG/UUKU40NWtTlIDVH9sbNiLpnqOqxm+6jiL0A6t3kBfZPn 60m1bSDyKZqJ2iaeI8OQIZXMRh43F+Oi8ieTY3LwkRP8KkxKLJNSNc3kYuM+sy6PrCc1HUeRL8y 4ZmF3llPFxLy9feuZMIYIZxF0kZzUPU0oSmSFEgC+gWjWr/dGnWtX5oxxKtqacNI6Df080Wpo8E ejA8IxoGoQojFcRZaTJIZddSie5wpFRUasa0VG8Tchenv67FpWUKNuO5Co0N2AG6u2MLKs/pRmM vj9dn9iFubcUWS2TitfwZpSGfHMzPAd8VMyHZXTnpNQ5hbIF0cgd1Du3U9Y+/kBigoQV76IxySN 1tgFLTrU1 X-Received: by 2002:a05:6000:2c0c:b0:43e:b0f7:9ce9 with SMTP id ffacd0b85a97d-43fe3dc49c6mr32134820f8f.14.1776817794100; Tue, 21 Apr 2026 17:29:54 -0700 (PDT) MIME-Version: 1.0 From: David Rowley Date: Wed, 22 Apr 2026 12:29:40 +1200 X-Gm-Features: AQROBzCp2JOU7kGzvJLMLFXn1HmGtniQ53YFDU4znPZCMAK_8HkIEON8c4z7eJU Message-ID: Subject: Get rid of translation strings that only contain punctuation To: PostgreSQL Developers , Amit Kapila , Peter Eisentraut Content-Type: multipart/mixed; boundary="00000000000072d317065001a10c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000072d317065001a10c Content-Type: text/plain; charset="UTF-8" (Follow-on work from [1]) We've got a few parts of the code that translate strings that contain only a single punctuation character. I'm not a translator, but I suspect that these would be tricky to deal with as such short strings could be used for various different things, and if the required translation was to differ between requirements, then you're out of luck. I looked at: git grep -A 1 "msgid \", \"" and I see French is the only translation to do anything different with the ", " string, and only in psql. src/bin/psql/po/fr.po:msgid ", " src/bin/psql/po/fr.po-msgstr " , " This is used for suffixing "unique" or "unique nulls not distinct". I adjusted the logic there to get rid of the short translation string. Quite a few are new to v19: fd366065e (AmitK), 48efefa6c (AmitK), 0fc33b005 (PeterE) The relation.c one is from v18: 8fcd80258 (AmitK) The describe.c one is from v15: 94aa7cc5f (PeterE) Should we get rid of these? David [1] https://postgr.es/m/CAApHDvohYOdrvhVxXzCJNX_GYMSWBfjTTtB6hgDauEtZ8Nar2A@mail.gmail.com --00000000000072d317065001a10c Content-Type: application/octet-stream; name="get_rid_of_single_punctuation_char_translation_strings.patch" Content-Disposition: attachment; filename="get_rid_of_single_punctuation_char_translation_strings.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo9ar5te0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZWVjMDliYTFkZWQuLmU1ZWYwZmRhZTdkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjA1ODgsOCArMjA1ODgsOCBAQCBBVEV4ZWNB dHRhY2hQYXJ0aXRpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBQYXJ0aXRpb25DbWQg KmNtZCwKIAlleGNlcHRwdWJvaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1YmxpY2F0aW9ucyhS ZWxhdGlvbkdldFJlbGlkKGF0dGFjaHJlbCkpOwogCWlmIChleGNlcHRwdWJvaWRzICE9IE5JTCkK IAl7Ci0JCWJvb2wJCWZpcnN0ID0gdHJ1ZTsKIAkJU3RyaW5nSW5mb0RhdGEgcHVibmFtZXM7CisJ CWNoYXIJCSAgKnNlcCA9ICIiOwogCiAJCWluaXRTdHJpbmdJbmZvKCZwdWJuYW1lcyk7CiAKQEAg LTIwNTk3LDE4ICsyMDU5Nyw5IEBAIEFURXhlY0F0dGFjaFBhcnRpdGlvbihMaXN0ICoqd3F1ZXVl LCBSZWxhdGlvbiByZWwsIFBhcnRpdGlvbkNtZCAqY21kLAogCQl7CiAJCQljaGFyCSAgICpwdWJu YW1lID0gZ2V0X3B1YmxpY2F0aW9uX25hbWUocHViaWQsIGZhbHNlKTsKIAotCQkJaWYgKCFmaXJz dCkKLQkJCXsKLQkJCQkvKgotCQkJCSAqIHRyYW5zbGF0b3I6IFRoaXMgaXMgYSBzZXBhcmF0b3Ig aW4gYSBsaXN0IG9mIHB1YmxpY2F0aW9uCi0JCQkJICogbmFtZXMuCi0JCQkJICovCi0JCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZygmcHVibmFtZXMsIF8oIiwgIikpOwotCQkJfQotCi0JCQlmaXJz dCA9IGZhbHNlOwotCi0JCQlhcHBlbmRTdHJpbmdJbmZvKCZwdWJuYW1lcywgXygiXCIlc1wiIiks IHB1Ym5hbWUpOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcHVibmFtZXMsIHNlcCk7CisJ CQlhcHBlbmRTdHJpbmdJbmZvKCZwdWJuYW1lcywgIlwiJXNcIiIsIHB1Ym5hbWUpOworCQkJc2Vw ID0gIiwgIjsKIAkJfQogCiAJCWVyZXBvcnQoRVJST1IsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2NvbmZsaWN0LmMKaW5kZXggMjg4N2RmYjcxNTAuLjhhZGJiNjBhZjZkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC0xOTUsNyArMTk1 LDcgQEAgc3RhdGljIHZvaWQKIGFwcGVuZF90dXBsZV92YWx1ZV9kZXRhaWwoU3RyaW5nSW5mbyBi dWYsIExpc3QgKnR1cGxlX3ZhbHVlcywKIAkJCQkJCSAgYm9vbCBuZWVkX25ld2xpbmUpCiB7Ci0J Ym9vbAkJZmlyc3QgPSB0cnVlOworCWNoYXIJICAgKnByZWZpeCA9ICI6ICI7CiAKIAlBc3NlcnQo YnVmICE9IE5VTEwgJiYgdHVwbGVfdmFsdWVzICE9IE5JTCk7CiAKQEAgLTIwOSwzMSArMjA5LDEy IEBAIGFwcGVuZF90dXBsZV92YWx1ZV9kZXRhaWwoU3RyaW5nSW5mbyBidWYsIExpc3QgKnR1cGxl X3ZhbHVlcywKIAkJaWYgKCF0dXBsZV92YWx1ZSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChmaXJz dCkKLQkJewotCQkJLyoKLQkJCSAqIHRyYW5zbGF0b3I6IFRoZSBjb2xvbiBpcyB1c2VkIGFzIGEg c2VwYXJhdG9yIGluIGNvbmZsaWN0Ci0JCQkgKiBtZXNzYWdlcy4gVGhlIGZpcnN0IHBhcnQsIGJ1 aWx0IGluIHRoZSBjYWxsZXIsIGRlc2NyaWJlcyB3aGF0Ci0JCQkgKiBoYXBwZW5lZCBsb2NhbGx5 OyB0aGUgc2Vjb25kIHBhcnQgbGlzdHMgdGhlIGNvbmZsaWN0aW5nIGtleXMKLQkJCSAqIGFuZCB0 dXBsZSBkYXRhLgotCQkJICovCi0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgXygiOiAi KSk7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKgotCQkJICogdHJhbnNsYXRvcjogVGhpcyBpcyBh IHNlcGFyYXRvciBpbiBhIGxpc3Qgb2YgY29uZmxpY3Rpbmcga2V5cwotCQkJICogYW5kIHR1cGxl IGRhdGEuCi0JCQkgKi8KLQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBfKCIsICIpKTsK LQkJfQotCisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBwcmVmaXgpOwogCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKGJ1ZiwgdHVwbGVfdmFsdWUpOwotCQlmaXJzdCA9IGZhbHNlOworCQlw cmVmaXggPSAiLCAiOwogCX0KIAotCS8qIHRyYW5zbGF0b3I6IFRoaXMgaXMgdGhlIHRlcm1pbmF0 b3Igb2YgYSBjb25mbGljdCBtZXNzYWdlICovCi0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYs IF8oIi4iKSk7CisJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnLicpOwogCiAJaWYgKG5lZWRf bmV3bGluZSkKIAkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnXG4nKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVsYXRpb24uYwppbmRleCAwYjFkODBiNWIwZi4uZWRmMmI2 NzFlYmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVsYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3JlbGF0aW9uLmMKQEAg LTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgY2hhciAqCiBsb2dpY2FscmVwX2dldF9hdHRyc19zdHIo TG9naWNhbFJlcFJlbGF0aW9uICpyZW1vdGVyZWwsIEJpdG1hcHNldCAqYXR0cykKIHsKIAlTdHJp bmdJbmZvRGF0YSBhdHRzYnVmOwotCWludAkJCWF0dGNudCA9IDA7CisJY2hhcgkgICAqc2VwID0g IiI7CiAJaW50CQkJaSA9IC0xOwogCiAJQXNzZXJ0KCFibXNfaXNfZW1wdHkoYXR0cykpOwpAQCAt MjQ4LDEyICsyNDgsOSBAQCBsb2dpY2FscmVwX2dldF9hdHRyc19zdHIoTG9naWNhbFJlcFJlbGF0 aW9uICpyZW1vdGVyZWwsIEJpdG1hcHNldCAqYXR0cykKIAogCXdoaWxlICgoaSA9IGJtc19uZXh0 X21lbWJlcihhdHRzLCBpKSkgPj0gMCkKIAl7Ci0JCWF0dGNudCsrOwotCQlpZiAoYXR0Y250ID4g MSkKLQkJCS8qIHRyYW5zbGF0b3I6IFRoaXMgaXMgYSBzZXBhcmF0b3IgaW4gYSBsaXN0IG9mIGVu dGl0eSBuYW1lcy4gKi8KLQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmF0dHNidWYsIF8oIiwg IikpOwotCi0JCWFwcGVuZFN0cmluZ0luZm8oJmF0dHNidWYsIF8oIlwiJXNcIiIpLCByZW1vdGVy ZWwtPmF0dG5hbWVzW2ldKTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYXR0c2J1Ziwgc2Vw KTsKKwkJYXBwZW5kU3RyaW5nSW5mbygmYXR0c2J1ZiwgKCJcIiVzXCIiKSwgcmVtb3RlcmVsLT5h dHRuYW1lc1tpXSk7CisJCXNlcCA9ICIsICI7CiAJfQogCiAJcmV0dXJuIGF0dHNidWYuZGF0YTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Yy5jCmluZGV4IGM0YzNmYmM0ZmUzLi5kNmMyNjE0OTk5MSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Yy5jCkBAIC0zMTY4LDE4ICszMTY4LDggQEAgcGFyc2VfYW5kX3ZhbGlkYXRlX3ZhbHVl KGNvbnN0IHN0cnVjdCBjb25maWdfZ2VuZXJpYyAqcmVjb3JkLAogCiAJCQkJCWhpbnRtc2cgPSBj b25maWdfZW51bV9nZXRfb3B0aW9ucyhjb25mLAogCQkJCQkJCQkJCQkJCSAgXygiQXZhaWxhYmxl IHZhbHVlczogIiksCi0KLQkJCQkJLyoKLQkJCQkJICogdHJhbnNsYXRvcjogVGhpcyBpcyB0aGUg dGVybWluYXRvciBvZiBhIGxpc3Qgb2YgZW50aXR5Ci0JCQkJCSAqIG5hbWVzLgotCQkJCQkgKi8K LQkJCQkJCQkJCQkJCQkgIF8oIi4iKSwKLQotCQkJCQkvKgotCQkJCQkgKiB0cmFuc2xhdG9yOiBU aGlzIGlzIGEgc2VwYXJhdG9yIGluIGEgbGlzdCBvZiBlbnRpdHkKLQkJCQkJICogbmFtZXMuCi0J CQkJCSAqLwotCQkJCQkJCQkJCQkJCSAgXygiLCAiKSk7CisJCQkJCQkJCQkJCQkJICAiLiIsCisJ CQkJCQkJCQkJCQkJICAiLCAiKTsKIAogCQkJCQllcmVwb3J0KGVsZXZlbCwKIAkJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggZGQxMTc5 ZWY5MjcuLjg1MGRmZmJmMTU4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwor KysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjUwNCwxMCArMjUwNCwxMCBAQCBkZXNj cmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCXByaW50ZlBR RXhwQnVmZmVyKCZ0bXBidWYsIF8oInByaW1hcnkga2V5LCAiKSk7CiAJCQllbHNlIGlmIChzdHJj bXAoaW5kaXN1bmlxdWUsICJ0IikgPT0gMCkKIAkJCXsKLQkJCQlwcmludGZQUUV4cEJ1ZmZlcigm dG1wYnVmLCBfKCJ1bmlxdWUiKSk7CiAJCQkJaWYgKHN0cmNtcChpbmRudWxsc25vdGRpc3RpbmN0 LCAidCIpID09IDApCi0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZ0bXBidWYsIF8oIiBudWxs cyBub3QgZGlzdGluY3QiKSk7Ci0JCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJnRtcGJ1ZiwgXygi LCAiKSk7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZ0bXBidWYsIF8oInVuaXF1ZSBudWxs cyBub3QgZGlzdGluY3QsICIpKTsKKwkJCQllbHNlCisJCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZ0 bXBidWYsIF8oInVuaXF1ZSwgIikpOwogCQkJfQogCQkJZWxzZQogCQkJCXJlc2V0UFFFeHBCdWZm ZXIoJnRtcGJ1Zik7Cg== --00000000000072d317065001a10c--