<<< Date Index >>>     <<< Thread Index >>>

[no subject]



>Number:         2020
>Notify-List:    
>Category:       mutt
>Synopsis:       crypt-gpgme.c: impossible to make good translation for some 
>languages
>Confidential:   no
>Severity:       minor
>Priority:       low
>Responsible:    mutt-dev
>State:          open
>Keywords:       
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Aug 02 10:10:03 +0200 2005
>Originator:     tamo
>Release:        1.5.9
>Organization:
http://mutt-j.sourceforge.jp/

>Environment:
--enable-nls --enable-gpgme

>Description:
In crypt-gpgme.c:
>      fprintf (fp, "%s ......: ", idx ? _(" aka") :_("Name"));

In some languages, this is not correctly-translatable.

At first, the number of dots should be different between languages.
----> fix: _("%s ......: ")

Next, the number of dots should be different between "aka" and "Name".
----> fix: if(idx)fprintf(..._(" aka"));else fprintf(..._("Name"));

>How-To-Repeat:
build mutt with --enable-nls --enable-gpgme options.
>Fix:
See the attached patch for "dot_format" macro.

Note: In addition to fixing this problem,
this patch enables translation for other symbols
such as "[?]" and "," because these can look strange
in the midst of non-European language messages.
For example, Japanese language has its own delimiter
in place of ",".

Note2: This patch concatenates some messages because
some languages have completely different order of words
for a message, e.g. "Error getting key information: xxx\n"
could be "getting key information: xxx error\n" in such
languages.

See "info gettext 'Preparing Strings'" for the detail.
http://info2html.sourceforge.net/cgi-bin/info2html-demo/info2html?(gettext.info.gz)Preparing%2520Strings

>Add-To-Audit-Trail:

>Unformatted:
 ----gnatsweb-attachment----
 Content-Type: application/octet-stream; name="patch-1.5.9.tamo.transl.1"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="patch-1.5.9.tamo.transl.1"
 
 SW5kZXg6IGNyeXB0LWdwZ21lLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvcm9lc3NsZXIv
 Y3ZzL211dHQvY3J5cHQtZ3BnbWUuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMy41CmRpZmYgLXUg
 LXIzLjUgY3J5cHQtZ3BnbWUuYwotLS0gY3J5cHQtZ3BnbWUuYwkyOCBKdWwgMjAwNSAyMDo0Mjo0
 NSAtMDAwMAkzLjUKKysrIGNyeXB0LWdwZ21lLmMJMiBBdWcgMjAwNSAwNzoyMjoxOSAtMDAwMApA
 QCAtNzAsNiArNzAsMTAgQEAKICNkZWZpbmUgeHRvaV8xKHApICAgKCoocCkgPD0gJzknPyAoKihw
 KS0gJzAnKTogXAogICAgICAgICAgICAgICAgICAgICAgKihwKSA8PSAnRic/ICgqKHApLSdBJysx
 MCk6KCoocCktJ2EnKzEwKSkKICNkZWZpbmUgeHRvaV8yKHApICAgKCh4dG9pXzEocCkgKiAxNikg
 KyB4dG9pXzEoKHApKzEpKQorI2RlZmluZSByal9mb3JtYXQoYSxiLGMpIFwKKwkgIG11dHRfZm9y
 bWF0X3N0cmluZyAoYSwgc2l6ZW9mIChhKSwgYiwgYiwgMSwgJyAnLCBjLCBzaXplb2YgKGEpLCAw
 KQorI2RlZmluZSBkb3RfZm9ybWF0KGEsYixjKSBcCisJICBtdXR0X2Zvcm1hdF9zdHJpbmcgKGEs
 IHNpemVvZiAoYSksIGIsIGIsIDAsICcuJywgYywgc2l6ZW9mIChhKSwgMCkKIAogLyogVmFsdWVz
 IHVzZWQgZm9yIGNvbXBhcmluZyBhZGRyZXNzZXMuICovCiAjZGVmaW5lIENSWVBUX0tWX1ZBTElE
 ICAgIDEKQEAgLTExOTAsNiArMTE5MCw3IEBACiAgIGdwZ21lX3ZlcmlmeV9yZXN1bHRfdCByZXN1
 bHQ7CiAgIGdwZ21lX3NpZ25hdHVyZV90IHNpZzsKICAgZ3BnbWVfZXJyb3JfdCBlcnIgPSBHUEdf
 RVJSX05PX0VSUk9SOworICBjaGFyIGJ1ZltTSE9SVF9TVFJJTkddOwogCiAgIHJlc3VsdCA9IGdw
 Z21lX29wX3ZlcmlmeV9yZXN1bHQgKGN0eCk7CiAgIGlmIChyZXN1bHQpCkBAIC0xMjIwLDcgKzEy
 MjEsOCBAQAogICAgICAgZXJyID0gZ3BnbWVfZ2V0X2tleSAoY3R4LCBmcHIsICZrZXksIDApOyAv
 KiBzZWNyZXQga2V5PyAgKi8KICAgICAgIGlmICghIGVycikKIAl7Ci0JICB1aWQgPSAoa2V5LT51
 aWRzICYmIGtleS0+dWlkcy0+dWlkKSA/IGtleS0+dWlkcy0+dWlkIDogIls/XSI7CisJICAvKiBm
 b3IgdHJhbnNsYXRvcnM6ICJbP10iIG1lYW5zIGFuIHVua25vd24gdWlkIG9mIGEga2V5ICovCisJ
 ICB1aWQgPSAoa2V5LT51aWRzICYmIGtleS0+dWlkcy0+dWlkKSA/IGtleS0+dWlkcy0+dWlkIDog
 XygiWz9dIik7CiAJICBpZiAoISBzaWduYXR1cmVfa2V5KQogCSAgICBzaWduYXR1cmVfa2V5ID0g
 a2V5OwogCX0KQEAgLTEyMjgsMjMgKzEyMzAsMzEgQEAKICAgICAgICB7CiAgICAgICAgICAga2V5
 ID0gTlVMTDsgLyogT2xkIGdwZ21lIHZlcnNpb25zIGRpZCBub3Qgc2V0IEtFWSB0byBOVUxMIG9u
 CiAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IuICAgRG8gaXQgaGVyZSB0byBhdm9pZCBh
 IGRvdWJsZSBmcmVlLiAqLwotICAgICAgICAgIHVpZCA9ICJbP10iOworICAgICAgICAgIHVpZCA9
 IF8oIls/XSIpOwogICAgICAgIH0KIAogICAgICAgaWYgKCFzIHx8ICFzLT5mcG91dCB8fCAhKHMt
 PmZsYWdzICYgTV9ESVNQTEFZKSkKIAk7IC8qIE5vIHN0YXRlIGluZm9ybWF0aW9uIHNvIG5vIHdh
 eSB0byBwcmludCBhbnl0aGluZy4gKi8KICAgICAgIGVsc2UgaWYgKGVycikKIAl7Ci0JICBzdGF0
 ZV9hdHRhY2hfcHV0cyAoXygiRXJyb3IgZ2V0dGluZyBrZXkgaW5mb3JtYXRpb246ICIpLCBzKTsK
 LSAgICAgICAgIHN0YXRlX2F0dGFjaF9wdXRzICggZ3BnX3N0cmVycm9yIChlcnIpLCBzICk7Ci0J
 ICBzdGF0ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CisJICBzbnByaW50ZiAoYnVmLCBzaXplb2Yg
 KGJ1ZiksCisJCSAgICBfKCJFcnJvciBnZXR0aW5nIGtleSBpbmZvcm1hdGlvbjogJXNcbiIpLAor
 CQkgICAgZ3BnX3N0cmVycm9yIChlcnIpKTsKKwkgIHN0YXRlX2F0dGFjaF9wdXRzIChidWYsIHMp
 OwogICAgICAgICAgYW55YmFkID0gMTsKIAl9CiAgICAgICBlbHNlIGlmICgoc3VtICYgR1BHTUVf
 U0lHU1VNX0dSRUVOKSkKIAl7Ci0JICBzdGF0ZV9hdHRhY2hfcHV0cyAoXygiR29vZCBzaWduYXR1
 cmUgZnJvbTogIiksIHMpOwotCSAgc3RhdGVfYXR0YWNoX3B1dHMgKHVpZCwgcyk7Ci0JICBzdGF0
 ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CisJICAvKgorCSAgICogRm9yIHRyYW5zbGF0b3JzOiAy
 MSBtZWFucyB0aGUgbWF4IHdpZHRoIG9mIHRoZSBmb2xsb3dpbmcKKwkgICAqIHRocmVlIG1lc3Nh
 Z2VzICgiR29vZCBzaWduYXR1cmUiLCAiYWthIiwgYW5kICJjcmVhdGVkIikKKwkgICAqLworCSAg
 c2l6ZV90IHJqd2lkID0gYXRvaSAoXygiMjEgKHNlZSByandpZCBpbiBjcnlwdC1ncGdtZS5jKSIp
 KTsKKwkgIGNoYXIgcmp1c3RbU0hPUlRfU1RSSU5HXTsKKworCSAgcmpfZm9ybWF0IChyanVzdCwg
 cmp3aWQsIF8oIkdvb2Qgc2lnbmF0dXJlIGZyb206ICIpKTsKKwkgIHNucHJpbnRmIChidWYsIHNp
 emVvZiAoYnVmKSwgKCIlcyVzXG4iKSwgcmp1c3QsIHVpZCk7CisJICBzdGF0ZV9hdHRhY2hfcHV0
 cyAoYnVmLCBzKTsKIAkgIGZvciAoaSA9IDEsIHVpZHMgPSBrZXktPnVpZHM7IHVpZHM7IGkrKywg
 dWlkcyA9IHVpZHMtPm5leHQpCiAJICAgIHsKIAkgICAgICBpZiAoaSA9PSAxKQpAQCAtMTI1Miwx
 MSArMTI2MiwxMiBAQAogCQljb250aW51ZTsKIAkgICAgICBpZiAodWlkcy0+cmV2b2tlZCkKIAkJ
 Y29udGludWU7Ci0JICAgICAgc3RhdGVfYXR0YWNoX3B1dHMgKF8oIiAgICAgICAgICAgICAgICBh
 a2E6ICIpLCBzKTsKLQkgICAgICBzdGF0ZV9hdHRhY2hfcHV0cyAodWlkcy0+dWlkLCBzKTsKLQkg
 ICAgICBzdGF0ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CisJICAgICAgcmpfZm9ybWF0IChyanVz
 dCwgcmp3aWQsIF8oIiBha2E6ICIpKTsKKwkgICAgICBzbnByaW50ZiAoYnVmLCBzaXplb2YgKGJ1
 ZiksICgiJXMlc1xuIiksIHJqdXN0LCB1aWRzLT51aWQpOworCSAgICAgIHN0YXRlX2F0dGFjaF9w
 dXRzIChidWYsIHMpOwogCSAgICB9Ci0JICBzdGF0ZV9hdHRhY2hfcHV0cyAoXygiICAgICAgICAg
 ICAgY3JlYXRlZDogIiksIHMpOworCSAgcmpfZm9ybWF0IChyanVzdCwgcmp3aWQsIF8oIiBjcmVh
 dGVkOiAiKSk7CisJICBzdGF0ZV9hdHRhY2hfcHV0cyAocmp1c3QsIHMpOwogCSAgcHJpbnRfdGlt
 ZSAoY3JlYXRlZCwgcyk7CiAJICBzdGF0ZV9hdHRhY2hfcHV0cyAoIlxuIiwgcyk7CiAJICBpZiAo
 c2hvd19zaWdfc3VtbWFyeSAoc3VtLCBjdHgsIGtleSwgaWR4LCBzKSkKQEAgLTEyNzUsMTAgKzEy
 ODYsMTYgQEAKIAkgICAgIHNpZ25hdHVyZSwgc28gd2UgZGlzcGxheSB3aGF0IGEgUEdQIHVzZXIg
 ZXhwZWN0czogVGhlIG5hbWUsCiAJICAgICBmaW5nZXJwcmludCBhbmQgdGhlIGtleSB2YWxpZGl0
 eSAod2hpY2ggaXMgbmVpdGhlciBmdWxseSBvcgogCSAgICAgdWx0aW1hdGUpLiAqLwotCSAgc3Rh
 dGVfYXR0YWNoX3B1dHMgKF8oIkdvb2Qgc2lnbmF0dXJlIGZyb206ICIpLCBzKTsKKworCSAgY2hh
 ciByanVzdFtTSE9SVF9TVFJJTkddOworCSAgc2l6ZV90IHJqd2lkID0gYXRvaSAoXygiMjEgKHNl
 ZSByandpZCBpbiBjcnlwdC1ncGdtZS5jKSIpKTsKKworCSAgcmpfZm9ybWF0IChyanVzdCwgcmp3
 aWQsIF8oIkdvb2Qgc2lnbmF0dXJlIGZyb206ICIpKTsKKwkgIHN0YXRlX2F0dGFjaF9wdXRzIChy
 anVzdCwgcyk7CiAJICBzdGF0ZV9hdHRhY2hfcHV0cyAodWlkLCBzKTsKIAkgIHN0YXRlX2F0dGFj
 aF9wdXRzICgiXG4iLCBzKTsKLQkgIHN0YXRlX2F0dGFjaF9wdXRzIChfKCIgICAgICAgICAgICBj
 cmVhdGVkOiAiKSwgcyk7CisJICByal9mb3JtYXQgKHJqdXN0LCByandpZCwgXygiIGNyZWF0ZWQ6
 ICIpKTsKKwkgIHN0YXRlX2F0dGFjaF9wdXRzIChyanVzdCwgcyk7CiAJICBwcmludF90aW1lIChj
 cmVhdGVkLCBzKTsKIAkgIHN0YXRlX2F0dGFjaF9wdXRzICgiXG4iLCBzKTsKIAkgIHNob3dfb25l
 X3NpZ192YWxpZGl0eSAoY3R4LCBpZHgsIHMpOwpAQCAtMjk0MCw2ICsyOTU3LDEyIEBACiAgIGlu
 dCBpc19wZ3AgPSAwOwogICBpbnQgaTsKICAgZ3BnbWVfdXNlcl9pZF90IHVpZCA9IE5VTEw7Cisg
 IGNoYXIgZG90ZmlsbFtTSE9SVF9TVFJJTkddOworICAvKgorICAgKiBmb3IgdHJhbnNsYXRvcnM6
 IDExIG1lYW5zIHRoZSBtYXhpbXVtIHdpZHRoIG9mCisgICAqICJOYW1lIiwgIlZhbGlkIGZyb20i
 LCAiRmluZ2VycHJpbnQiLCBhbmQgb3RoZXJzCisgICAqLworICBzaXplX3QgZG90d2lkID0gYXRv
 aSAoXygiMTEgKHNlZSBkb3R3aWQgaW4gY3J5cHQtZ3BnbWUuYykiKSk7CiAKICAgaWYgKExvY2Fs
 ZSkKICAgICBzZXRsb2NhbGUgKExDX1RJTUUsIExvY2FsZSk7CkBAIC0yOTUyLDcgKzI5NzUsMTEg
 QEAKICAgICAgICAgY29udGludWU7CiAKICAgICAgIHMgPSB1aWQtPnVpZDsKLSAgICAgIGZwcmlu
 dGYgKGZwLCAiJXMgLi4uLi4uOiAiLCBpZHggPyBfKCIgYWthIikgOl8oIk5hbWUiKSk7CisgICAg
 ICBpZiAoaWR4KQorCWRvdF9mb3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiIGFrYSAiKSk7Cisg
 ICAgICBlbHNlCisJZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJOYW1lICIpKTsKKyAg
 ICAgIGZwcmludGYgKGZwLCAiJXM6ICIsIGRvdGZpbGwpOwogICAgICAgaWYgKHVpZC0+aW52YWxp
 ZCkKICAgICAgICAgewogICAgICAgICAgIGZwdXRzIChfKCJbSW52YWxpZF0iKSwgZnApOwpAQCAt
 Mjk3NSw3ICszMDAyLDggQEAKICNlbHNlCiAgICAgICBzdHJmdGltZSAoc2hvcnRidWYsIHNpemVv
 ZiBzaG9ydGJ1ZiwgIiVjIiwgdG0pOwogI2VuZGlmCi0gICAgICBmcHJpbnRmIChmcCwgIlZhbGlk
 IEZyb20gOiAlc1xuIiwgc2hvcnRidWYpOworICAgICAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90
 d2lkLCBfKCJWYWxpZCBGcm9tICIpKTsKKyAgICAgIGZwcmludGYgKGZwLCAiJXM6ICVzXG4iLCBk
 b3RmaWxsLCBzaG9ydGJ1Zik7CiAgICAgfQogICAKICAgaWYgKGtleS0+c3Via2V5cyAmJiAoa2V5
 LT5zdWJrZXlzLT5leHBpcmVzID4gMCkpCkBAIC0yOTg4LDcgKzMwMTYsOCBAQAogI2Vsc2UKICAg
 ICAgIHN0cmZ0aW1lIChzaG9ydGJ1Ziwgc2l6ZW9mIHNob3J0YnVmLCAiJWMiLCB0bSk7CiAjZW5k
 aWYKLSAgICAgIGZwcmludGYgKGZwLCAiVmFsaWQgVG8gLi46ICVzXG4iLCBzaG9ydGJ1Zik7Cisg
 ICAgICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQsIF8oIlZhbGlkIFRvICIpKTsKKyAgICAg
 IGZwcmludGYgKGZwLCAiJXM6ICVzXG4iLCBkb3RmaWxsLCBzaG9ydGJ1Zik7CiAgICAgfQogCiAg
 IGlmIChrZXktPnN1YmtleXMpCkBAIC0zMDAxLDMyICszMDMwLDM2IEBACiAgIGlmIChrZXktPnN1
 YmtleXMpCiAgICAgYXZhbCA9IGtleS0+c3Via2V5cy0+bGVuZ3RoOwogCi0gIGZwcmludGYgKGZw
 LCAiS2V5IFR5cGUgLi46ICVzLCAlbHUgYml0ICVzXG4iLCBzMiwgYXZhbCwgcyk7CisgIGRvdF9m
 b3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiS2V5IFR5cGUgIikpOworICBmcHJpbnRmIChmcCwg
 IiVzOiAlcywgJWx1IGJpdCAlc1xuIiwgZG90ZmlsbCwgczIsIGF2YWwsIHMpOwogCi0gIGZwcmlu
 dGYgKGZwLCAiS2V5IFVzYWdlIC46ICIpOworICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQs
 IF8oIktleSBVc2FnZSAiKSk7CisgIGZwcmludGYgKGZwLCAiJXM6ICIsIGRvdGZpbGwpOwogICBk
 ZWxpbSA9ICIiOwogCiAgIGlmIChrZXlfY2hlY2tfY2FwIChrZXksIEtFWV9DQVBfQ0FOX0VOQ1JZ
 UFQpKQogICAgIHsKICAgICAgIGZwcmludGYgKGZwLCAiJXMlcyIsIGRlbGltLCBfKCJlbmNyeXB0
 aW9uIikpOwotICAgICAgZGVsaW0gPSAiLCAiOworICAgICAgLyogZm9yIHRyYW5zbGF0b3JzOiB0
 aGlzIGlzIHVzZWQgYXMgIktleSBVc2FnZSAuOiBlbmNyeXB0aW9uLCBzaWduaW5nIiAqLworICAg
 ICAgZGVsaW0gPSBfKCIsICIpOwogICAgIH0KICAgaWYgKGtleV9jaGVja19jYXAgKGtleSwgS0VZ
 X0NBUF9DQU5fU0lHTikpCiAgICAgewogICAgICAgZnByaW50ZiAoZnAsICIlcyVzIiwgZGVsaW0s
 IF8oInNpZ25pbmciKSk7Ci0gICAgICBkZWxpbSA9ICIsICI7CisgICAgICBkZWxpbSA9IF8oIiwg
 Iik7CiAgICAgfQogICBpZiAoa2V5X2NoZWNrX2NhcCAoa2V5LCBLRVlfQ0FQX0NBTl9DRVJUSUZZ
 KSkKICAgICB7CiAgICAgICBmcHJpbnRmIChmcCwgIiVzJXMiLCBkZWxpbSwgXygiY2VydGlmaWNh
 dGlvbiIpKTsKLSAgICAgIGRlbGltID0gIiwgIjsKKyAgICAgIGRlbGltID0gXygiLCAiKTsKICAg
 ICB9CiAgIHB1dGMgKCdcbicsIGZwKTsKIAogICBpZiAoa2V5LT5zdWJrZXlzKQogICAgIHsKICAg
 ICAgIHMgPSBrZXktPnN1YmtleXMtPmZwcjsKLSAgICAgIGZwdXRzIChfKCJGaW5nZXJwcmludDog
 IiksIGZwKTsKKyAgICAgIGRvdF9mb3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiRmluZ2VycHJp
 bnQgIikpOworICAgICAgZnByaW50ZiAoZnAsICIlczogIiwgZG90ZmlsbCk7CiAgICAgICBpZiAo
 aXNfcGdwICYmIHN0cmxlbiAocykgPT0gNDApCiAgICAgICAgIHsKICAgICAgICAgICBmb3IgKGk9
 MDsgKnMgJiYgc1sxXSAmJiBzWzJdICYmIHNbM10gJiYgc1s0XTsgcyArPSA0LCBpKyspCkBAIC0z
 MDU4LDcgKzMwOTEsMTAgQEAKICAgICB7CiAgICAgICBzID0ga2V5LT5pc3N1ZXJfc2VyaWFsOwog
 ICAgICAgaWYgKHMpCi0JZnByaW50ZiAoZnAsICJTZXJpYWwtTm8gLjogMHglc1xuIiwgcyk7CisJ
 eworCSAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJTZXJpYWwtTm8gIikpOworCSAg
 ZnByaW50ZiAoZnAsICIlczogMHglc1xuIiwgZG90ZmlsbCwgcyk7CisJfQogICAgIH0KIAogICBp
 ZiAoa2V5LT5pc3N1ZXJfbmFtZSkKQEAgLTMwNjYsNyArMzEwMiw4IEBACiAgICAgICBzID0ga2V5
 LT5pc3N1ZXJfbmFtZTsKICAgICAgIGlmIChzKQogCXsKLQkgIGZwcmludGYgKGZwLCAiSXNzdWVk
 IEJ5IC46ICIpOworCSAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJJc3N1ZWQgQnkg
 IikpOworCSAgZnByaW50ZiAoZnAsICIlczogIiwgZG90ZmlsbCk7CiAJICBwYXJzZV9hbmRfcHJp
 bnRfdXNlcl9pZCAoZnAsIHMpOwogCSAgcHV0YyAoJ1xuJywgZnApOwogCX0KQEAgLTMwODUsNyAr
 MzEyMiw4IEBACiAgICAgICAgICAgcHV0YyAoJ1xuJywgZnApOwogICAgICAgICAgIGlmICggc3Ry
 bGVuIChzKSA9PSAxNikKICAgICAgICAgICAgIHMgKz0gODsgLyogZGlzcGxheSBvbmx5IHRoZSBz
 aG9ydCBrZXlJRCAqLwotICAgICAgICAgIGZwcmludGYgKGZwLCAiU3Via2V5IC4uLi46IDB4JXMi
 LCBzKTsKKyAgICAgICAgICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQsIF8oIlN1YmtleSAi
 KSk7CisgICAgICAgICAgZnByaW50ZiAoZnAsICIlczogMHglcyIsIGRvdGZpbGwsIHMpOwogCSAg
 aWYgKHN1YmtleS0+cmV2b2tlZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgcHV0YyAo
 JyAnLCBmcCk7CkBAIC0zMTE4LDcgKzMxNTYsOCBAQAogI2Vsc2UKICAgICAgICAgICAgICAgc3Ry
 ZnRpbWUgKHNob3J0YnVmLCBzaXplb2Ygc2hvcnRidWYsICIlYyIsIHRtKTsKICNlbmRpZgotICAg
 ICAgICAgICAgICBmcHJpbnRmIChmcCwgIlZhbGlkIEZyb20gOiAlc1xuIiwgc2hvcnRidWYpOwor
 ICAgICAgICAgICAgICBkb3RfZm9ybWF0IChkb3RmaWxsLCBkb3R3aWQsIF8oIlZhbGlkIEZyb20g
 IikpOworICAgICAgICAgICAgICBmcHJpbnRmIChmcCwgIiVzOiAlc1xuIiwgZG90ZmlsbCwgc2hv
 cnRidWYpOwogICAgICAgICAgICAgfQogCiAJICBpZiAoc3Via2V5LT5leHBpcmVzID4gMCkKQEAg
 LTMxMzEsMzggKzMxNzAsNDIgQEAKICNlbHNlCiAgICAgICAgICAgICAgIHN0cmZ0aW1lIChzaG9y
 dGJ1Ziwgc2l6ZW9mIHNob3J0YnVmLCAiJWMiLCB0bSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAg
 ZnByaW50ZiAoZnAsICJWYWxpZCBUbyAuLjogJXNcbiIsIHNob3J0YnVmKTsKKyAgICAgICAgICAg
 ICAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJWYWxpZCBUbyAiKSk7CisgICAgICAg
 ICAgICAgIGZwcmludGYgKGZwLCAiJXM6ICVzXG4iLCBkb3RmaWxsLCBzaG9ydGJ1Zik7CiAgICAg
 ICAgICAgICB9CiAKIAkgIGlmIChzdWJrZXkpCiAJICAgIHMgPSBncGdtZV9wdWJrZXlfYWxnb19u
 YW1lIChzdWJrZXktPnB1YmtleV9hbGdvKTsKIAkgIGVsc2UKLSAgICAgICAgICAgIHMgPSAiPyI7
 CisJICAgIC8qIGZvciB0cmFuc2xhdG9yczogdGhpcyBtZWFucyB1bmtub3duIGFsZ28gbmFtZSAq
 LworICAgICAgICAgICAgcyA9IF8oIj8iKTsKIAogCSAgaWYgKHN1YmtleSkKIAkgICAgYXZhbCA9
 IHN1YmtleS0+bGVuZ3RoOwogCSAgZWxzZQogCSAgICBhdmFsID0gMDsKIAotICAgICAgICAgIGZw
 cmludGYgKGZwLCAiS2V5IFR5cGUgLi46ICVzLCAlbHUgYml0ICVzXG4iLCAiUEdQIiwgYXZhbCwg
 cyk7CisgICAgICAgICAgZG90X2Zvcm1hdCAoZG90ZmlsbCwgZG90d2lkLCBfKCJLZXkgVHlwZSAi
 KSk7CisgICAgICAgICAgZnByaW50ZiAoZnAsICIlczogJXMsICVsdSBiaXQgJXNcbiIsIGRvdGZp
 bGwsICJQR1AiLCBhdmFsLCBzKTsKIAotICAgICAgICAgIGZwcmludGYgKGZwLCAiS2V5IFVzYWdl
 IC46ICIpOworICAgICAgICAgIGRvdF9mb3JtYXQgKGRvdGZpbGwsIGRvdHdpZCwgXygiS2V5IFVz
 YWdlICIpKTsKKyAgICAgICAgICBmcHJpbnRmIChmcCwgIiVzOiAiLCBkb3RmaWxsKTsKICAgICAg
 ICAgICBkZWxpbSA9ICIiOwogCiAJICBpZiAoc3Via2V5LT5jYW5fZW5jcnlwdCkKICAgICAgICAg
 ICAgIHsKICAgICAgICAgICAgICAgZnByaW50ZiAoZnAsICIlcyVzIiwgZGVsaW0sIF8oImVuY3J5
 cHRpb24iKSk7Ci0gICAgICAgICAgICAgIGRlbGltID0gIiwgIjsKKyAgICAgICAgICAgICAgZGVs
 aW0gPSBfKCIsICIpOwogICAgICAgICAgICAgfQogICAgICAgICAgIGlmIChzdWJrZXktPmNhbl9z
 aWduKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBmcHJpbnRmIChmcCwgIiVzJXMiLCBk
 ZWxpbSwgXygic2lnbmluZyIpKTsKLSAgICAgICAgICAgICAgZGVsaW0gPSAiLCAiOworICAgICAg
 ICAgICAgICBkZWxpbSA9IF8oIiwgIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgaWYgKHN1
 YmtleS0+Y2FuX2NlcnRpZnkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGZwcmludGYg
 KGZwLCAiJXMlcyIsIGRlbGltLCBfKCJjZXJ0aWZpY2F0aW9uIikpOwotICAgICAgICAgICAgICBk
 ZWxpbSA9ICIsICI7CisgICAgICAgICAgICAgIGRlbGltID0gXygiLCAiKTsKICAgICAgICAgICAg
 IH0KICAgICAgICAgICBwdXRjICgnXG4nLCBmcCk7CiAgICAgICAgIH0KQEAgLTMxOTgsNyArMzI0
 MSw3IEBACiAgIGVyciA9IGdwZ21lX25ldyAoJmxpc3RjdHgpOwogICBpZiAoZXJyKQogICAgIHsK
 LSAgICAgIGZwcmludGYgKGZwLCAiSW50ZXJuYWwgZXJyb3I6IGNhbid0IGNyZWF0ZSBncGdtZSBj
 b250ZXh0OiAlc1xuIiwKKyAgICAgIGZwcmludGYgKGZwLCBfKCJJbnRlcm5hbCBlcnJvcjogY2Fu
 J3QgY3JlYXRlIGdwZ21lIGNvbnRleHQ6ICVzXG4iKSwKICAgICAgICAgICAgICAgIGdwZ21lX3N0
 cmVycm9yIChlcnIpKTsKICAgICAgIGdvdG8gbGVhdmU7CiAgICAgfQo=