mutt/2076: wish: complete tilde patterns
>Number: 2076
>Notify-List:
>Category: mutt
>Synopsis: wish: complete tilde patterns
>Confidential: no
>Severity: minor
>Priority: low
>Responsible: mutt-dev
>State: open
>Keywords:
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Mon Sep 19 15:48:01 +0200 2005
>Originator: Tamo
>Release: 1.5.11
>Organization:
http://www.momonga-linux.org/
>Environment:
any
>Description:
Just a wish.
I often forget which pattern is for enctypted messages,
and which is for signed. (Answers: ~G and ~g)
So, I just want <complete> function to complete patterns.
i.e., Press T, ~, and <Tab> to tag some messages.
>How-To-Repeat:
My situation:
Searching for an encrypted message, I push "l" key,
and...., oh well, what pattern should I use? "~g" or "~G"?
And press Ctrl-G and "!less /usr/share/doc/mutt/manual.txt"
to search for ~G..., oh wait, what message was I searching for?
>Fix:
Here is my patch.
>Add-To-Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="patch-1.5.11.tamo.patterns.3"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch-1.5.11.tamo.patterns.3"
ZGlmZiAtciAxZTFjN2M0Mzc5NzkgLXIgMTQ4MmQ3NDUwOTE2IGN1cnNfbGliLmMKLS0tIGEvY3Vy
c19saWIuYwlNb24gU2VwIDE5IDA2OjIyOjU1IDIwMDUKKysrIGIvY3Vyc19saWIuYwlNb24gU2Vw
IDE5IDEyOjIzOjUyIDIwMDUKQEAgLTEzMCw2ICsxMzAsNyBAQAogICAgIG11dHRfcmVmcmVzaCAo
KTsKICAgICBnZXR5eCAoc3Rkc2NyLCB5LCB4KTsKICAgICByZXQgPSBfbXV0dF9lbnRlcl9zdHJp
bmcgKGJ1ZiwgYnVmbGVuLCB5LCB4LCBjb21wbGV0ZSwgbXVsdGlwbGUsIGZpbGVzLCBudW1maWxl
cywgZXMpOworICAgIGNvbXBsZXRlICY9IH4oTV9DTEVBUik7CiAgIH0KICAgd2hpbGUgKHJldCA9
PSAxKTsKICAgQ0xFQVJMSU5FIChMSU5FUy0xKTsKLS0tIGEvY3Vyc19tYWluLmMJTW9uIFNlcCAx
OSAwNjoyMjo1NSAyMDA1CisrKyBiL2N1cnNfbWFpbi5jCU1vbiBTZXAgMTkgMTI6MjM6NTIgMjAw
NQpAQCAtODExLDcgKzgxMSw3IEBACiAKIAlDSEVDS19BVFRBQ0g7CiAJbXV0dF9wYXR0ZXJuX2Z1
bmMgKE1fREVMRVRFLCBfKCJEZWxldGUgbWVzc2FnZXMgbWF0Y2hpbmc6ICIpKTsKLQltZW51LT5y
ZWRyYXcgPSBSRURSQVdfSU5ERVggfCBSRURSQVdfU1RBVFVTOworCW1lbnUtPnJlZHJhdyA9IFJF
RFJBV19GVUxMOwogCWJyZWFrOwogCiAjaWZkZWYgVVNFX1BPUApAQCAtODY2LDggKzg3NCw4IEBA
CiAJICBtZW51LT5yZWRyYXcgPSBSRURSQVdfSU5ERVggfCBSRURSQVdfU1RBVFVTOwogCSAgaWYg
KENvbnRleHQtPm1zZ2NvdW50ICYmIChTb3J0ICYgU09SVF9NQVNLKSA9PSBTT1JUX1RIUkVBRFMp
CiAJICAgIG11dHRfZHJhd190cmVlIChDb250ZXh0KTsKLQkgIG1lbnUtPnJlZHJhdyA9IFJFRFJB
V19GVUxMOwotCX0KKwl9CisJbWVudS0+cmVkcmF3ID0gUkVEUkFXX0ZVTEw7CiAJYnJlYWs7CSAg
CiAKICAgICAgIGNhc2UgT1BfUVVJVDoKQEAgLTkxNSw2ICs5MjMsOCBAQAogCSAgbWVudS0+Y3Vy
cmVudCA9IG1lbnUtPm9sZGN1cnJlbnQ7CiAJZWxzZQogCSAgbWVudS0+cmVkcmF3ID0gUkVEUkFX
X01PVElPTjsKKwlpZiAob3AgPT0gT1BfU0VBUkNIIHx8IG9wID09IE9QX1NFQVJDSF9SRVZFUlNF
KQorCSAgbWVudS0+cmVkcmF3ID0gUkVEUkFXX0ZVTEw7CiAJYnJlYWs7CiAKICAgICAgIGNhc2Ug
T1BfU09SVDoKQEAgLTk2NCw3ICs5NzQsNyBAQAogCUNIRUNLX01TR0NPVU5UOwogICAgICAgICBD
SEVDS19WSVNJQkxFOwogCW11dHRfcGF0dGVybl9mdW5jIChNX1RBRywgXygiVGFnIG1lc3NhZ2Vz
IG1hdGNoaW5nOiAiKSk7Ci0JbWVudS0+cmVkcmF3ID0gUkVEUkFXX0lOREVYIHwgUkVEUkFXX1NU
QVRVUzsKKwltZW51LT5yZWRyYXcgPSBSRURSQVdfRlVMTDsKIAlicmVhazsKIAogICAgICAgY2Fz
ZSBPUF9NQUlOX1VOREVMRVRFX1BBVFRFUk46CkBAIC05NzcsMTYgKzk4NywxNiBAQAogQ0hFQ0tf
SU1BUF9BQ0woSU1BUF9BQ0xfREVMRVRFKTsKICNlbmRpZgogCi0JaWYgKG11dHRfcGF0dGVybl9m
dW5jIChNX1VOREVMRVRFLCBfKCJVbmRlbGV0ZSBtZXNzYWdlcyBtYXRjaGluZzogIikpID09IDAp
Ci0JICBtZW51LT5yZWRyYXcgPSBSRURSQVdfSU5ERVggfCBSRURSQVdfU1RBVFVTOworCW11dHRf
cGF0dGVybl9mdW5jIChNX1VOREVMRVRFLCBfKCJVbmRlbGV0ZSBtZXNzYWdlcyBtYXRjaGluZzog
IikpOworCW1lbnUtPnJlZHJhdyA9IFJFRFJBV19GVUxMOwogCWJyZWFrOwogCiAgICAgICBjYXNl
IE9QX01BSU5fVU5UQUdfUEFUVEVSTjoKIAogCUNIRUNLX01TR0NPVU5UOwogICAgICAgICBDSEVD
S19WSVNJQkxFOwotCWlmIChtdXR0X3BhdHRlcm5fZnVuYyAoTV9VTlRBRywgXygiVW50YWcgbWVz
c2FnZXMgbWF0Y2hpbmc6ICIpKSA9PSAwKQotCSAgbWVudS0+cmVkcmF3ID0gUkVEUkFXX0lOREVY
IHwgUkVEUkFXX1NUQVRVUzsKKwltdXR0X3BhdHRlcm5fZnVuYyAoTV9VTlRBRywgXygiVW50YWcg
bWVzc2FnZXMgbWF0Y2hpbmc6ICIpKTsKKwltZW51LT5yZWRyYXcgPSBSRURSQVdfRlVMTDsKIAli
cmVhazsKIAogCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLXIgMWUxYzdjNDM3OTc5IC1yIDE0ODJkNzQ1
MDkxNiBlbnRlci5jCi0tLSBhL2VudGVyLmMJTW9uIFNlcCAxOSAwNjoyMjo1NSAyMDA1CisrKyBi
L2VudGVyLmMJTW9uIFNlcCAxOSAxMjoyMzo1MiAyMDA1CkBAIC01NjcsNiArNTY3LDE3IEBACiAJ
ICAgIGVsc2UKIAkgICAgICBCRUVQICgpOyAvKiBsZXQgdGhlIHVzZXIga25vdyB0aGF0IG5vdGhp
bmcgbWF0Y2hlZCAqLwogCSAgICByZXBsYWNlX3BhcnQgKHN0YXRlLCAwLCBidWYpOworCSAgfQor
CSAgZWxzZSBpZiAoZmxhZ3MgJiBNX1BBVFRFUk4pCisJICB7CisJICAgIGlmICgoaSA9IHN0YXRl
LT5jdXJwb3MpICYmIHN0YXRlLT53YnVmW2kgLSAxXSA9PSAnficpCisJICAgIHsKKwkgICAgICBp
ZiAobXV0dF9hc2tfcGF0dGVybiAoYnVmLCBidWZsZW4pKQorCQlyZXBsYWNlX3BhcnQgKHN0YXRl
LCBpLCBidWYpOworCSAgICAgIHJ2ID0gMTsKKwkgICAgICBnb3RvIGJ5ZTsKKwkgICAgfQorCSAg
ICBnb3RvIHNlbGZfaW5zZXJ0OwogCSAgfQogCSAgZWxzZQogCSAgICBnb3RvIHNlbGZfaW5zZXJ0
OwpkaWZmIC1yIDFlMWM3YzQzNzk3OSAtciAxNDgyZDc0NTA5MTYgcGF0dGVybi5jCi0tLSBhL3Bh
dHRlcm4uYwlNb24gU2VwIDE5IDA2OjIyOjU1IDIwMDUKKysrIGIvcGF0dGVybi5jCU1vbiBTZXAg
MTkgMTI6MjM6NTIgMjAwNQpAQCAtMjUsNiArMjUsOCBAQAogI2luY2x1ZGUgImtleW1hcC5oIgog
I2luY2x1ZGUgIm1haWxib3guaCIKICNpbmNsdWRlICJjb3B5LmgiCisjaW5jbHVkZSAibXV0dF9t
ZW51LmgiCisjaW5jbHVkZSAibXV0dF9jdXJzZXMuaCIKIAogI2luY2x1ZGUgPHN0cmluZy5oPgog
I2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDUsNTYgKzQ3LDEwMSBAQAogc3RhdGljIGludCBlYXRf
cmFuZ2UgKHBhdHRlcm5fdCAqcGF0LCBCVUZGRVIgKiwgQlVGRkVSICopOwogc3RhdGljIGludCBw
YXRtYXRjaCAoY29uc3QgcGF0dGVybl90ICpwYXQsIGNvbnN0IGNoYXIgKmJ1Zik7CiAKKyNkZWZp
bmUgRUFUX1JFR0VYUAkxCisjZGVmaW5lIEVBVF9EQVRFCTIKKyNkZWZpbmUgRUFUX1JBTkdFCTMK
IHN0cnVjdCBwYXR0ZXJuX2ZsYWdzCiB7CiAgIGludCB0YWc7CS8qIGNoYXJhY3RlciB1c2VkIHRv
IHJlcHJlc2VudCB0aGlzIG9wICovCiAgIGludCBvcDsJLyogb3BlcmF0aW9uIHRvIHBlcmZvcm0g
Ki8KICAgaW50IGNsYXNzOwotICBpbnQgKCplYXRfYXJnKSAocGF0dGVybl90ICosIEJVRkZFUiAq
LCBCVUZGRVIgKik7CisgIGludCBlYXRfYXJnOworICBjaGFyICpkZXNjOwogfQogRmxhZ3NbXSA9
CiB7Ci0gIHsgJ0EnLCBNX0FMTCwJCQkwLAkJTlVMTCB9LAotICB7ICdiJywgTV9CT0RZLAkJTV9G
VUxMX01TRywJZWF0X3JlZ2V4cCB9LAotICB7ICdCJywgTV9XSE9MRV9NU0csCQlNX0ZVTExfTVNH
LAllYXRfcmVnZXhwIH0sCi0gIHsgJ2MnLCBNX0NDLAkJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsg
J0MnLCBNX1JFQ0lQSUVOVCwJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ2QnLCBNX0RBVEUsCQkw
LAkJZWF0X2RhdGUgfSwKLSAgeyAnRCcsIE1fREVMRVRFRCwJCTAsCQlOVUxMIH0sCi0gIHsgJ2Un
LCBNX1NFTkRFUiwJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ0UnLCBNX0VYUElSRUQsCQkwLAkJ
TlVMTCB9LAotICB7ICdmJywgTV9GUk9NLAkJMCwJCWVhdF9yZWdleHAgfSwKLSAgeyAnRicsIE1f
RkxBRywJCTAsCQlOVUxMIH0sCi0gIHsgJ2cnLCBNX0NSWVBUX1NJR04sCQkwLAkJTlVMTCB9LAot
ICB7ICdHJywgTV9DUllQVF9FTkNSWVBULAkwLAkJTlVMTCB9LAotICB7ICdoJywgTV9IRUFERVIs
CQlNX0ZVTExfTVNHLAllYXRfcmVnZXhwIH0sCi0gIHsgJ0gnLCBNX0hPUk1FTCwJCTAsCQllYXRf
cmVnZXhwIH0sCi0gIHsgJ2knLCBNX0lELAkJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ2snLCBN
X1BHUF9LRVksCQkwLAkJTlVMTCB9LAotICB7ICdsJywgTV9MSVNULAkJMCwJCU5VTEwgfSwKLSAg
eyAnTCcsIE1fQUREUkVTUywJCTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ20nLCBNX01FU1NBR0Us
CQkwLAkJZWF0X3JhbmdlIH0sCi0gIHsgJ24nLCBNX1NDT1JFLAkJMCwJCWVhdF9yYW5nZSB9LAot
ICB7ICdOJywgTV9ORVcsCQkJMCwJCU5VTEwgfSwKLSAgeyAnTycsIE1fT0xELAkJCTAsCQlOVUxM
IH0sCi0gIHsgJ3AnLCBNX1BFUlNPTkFMX1JFQ0lQLAkwLAkJTlVMTCB9LAotICB7ICdQJywgTV9Q
RVJTT05BTF9GUk9NLAkwLAkJTlVMTCB9LAotICB7ICdRJywgTV9SRVBMSUVELAkJMCwJCU5VTEwg
fSwKLSAgeyAncicsIE1fREFURV9SRUNFSVZFRCwJMCwJCWVhdF9kYXRlIH0sCi0gIHsgJ1InLCBN
X1JFQUQsCQkwLAkJTlVMTCB9LAotICB7ICdzJywgTV9TVUJKRUNULAkJMCwJCWVhdF9yZWdleHAg
fSwKLSAgeyAnUycsIE1fU1VQRVJTRURFRCwJCTAsCQlOVUxMIH0sCi0gIHsgJ3QnLCBNX1RPLAkJ
CTAsCQllYXRfcmVnZXhwIH0sCi0gIHsgJ1QnLCBNX1RBRywJCQkwLAkJTlVMTCB9LAotICB7ICd1
JywgTV9TVUJTQ1JJQkVEX0xJU1QsCTAsCQlOVUxMIH0sCi0gIHsgJ1UnLCBNX1VOUkVBRCwJCTAs
CQlOVUxMIH0sCi0gIHsgJ3YnLCBNX0NPTExBUFNFRCwJCTAsCQlOVUxMIH0sCi0gIHsgJ1YnLCBN
X0NSWVBUX1ZFUklGSUVELAkwLAkJTlVMTCB9LAotICB7ICd4JywgTV9SRUZFUkVOQ0UsCQkwLAkJ
ZWF0X3JlZ2V4cCB9LAotICB7ICd5JywgTV9YTEFCRUwsCQkwLAkJZWF0X3JlZ2V4cCB9LAotICB7
ICd6JywgTV9TSVpFLAkJMCwJCWVhdF9yYW5nZSB9LAotICB7ICc9JywgTV9EVVBMSUNBVEVELAkJ
MCwJCU5VTEwgfSwKLSAgeyAnJCcsIE1fVU5SRUZFUkVOQ0VELAkwLAkJTlVMTCB9LAorICB7ICdB
JywgTV9BTEwsCQkJMCwJCTAsCisJTl8oImFsbCBtZXNzYWdlcyIpIH0sCisgIHsgJ2InLCBNX0JP
RFksCQlNX0ZVTExfTVNHLAlFQVRfUkVHRVhQLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBib2R5IG1h
dGNoZXMgRVhQUiIpIH0sCisgIHsgJ0InLCBNX1dIT0xFX01TRywJCU1fRlVMTF9NU0csCUVBVF9S
RUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3NlIGJvZHkgb3IgaGVhZGVycyBtYXRjaCBFWFBSIikg
fSwKKyAgeyAnYycsIE1fQ0MsCQkJMCwJCUVBVF9SRUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3Nl
IENDIGhlYWRlciBtYXRjaGVzIEVYUFIiKSB9LAorICB7ICdDJywgTV9SRUNJUElFTlQsCQkwLAkJ
RUFUX1JFR0VYUCwKKwlOXygibWVzc2FnZXMgd2hvc2UgcmVjaXBpZW50IG1hdGNoZXMgRVhQUiIp
IH0sCisgIHsgJ2QnLCBNX0RBVEUsCQkwLAkJRUFUX0RBVEUsCisJTl8oIm1lc3NhZ2VzIHNlbnQg
aW4gREFURVJBTkdFIikgfSwKKyAgeyAnRCcsIE1fREVMRVRFRCwJCTAsCQkwLAorCU5fKCJkZWxl
dGVkIG1lc3NhZ2VzIikgfSwKKyAgeyAnZScsIE1fU0VOREVSLAkJMCwJCUVBVF9SRUdFWFAsCisJ
Tl8oIm1lc3NhZ2VzIHdob3NlIFNlbmRlciBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAn
RScsIE1fRVhQSVJFRCwJCTAsCQkwLAorCU5fKCJleHBpcmVkIG1lc3NhZ2VzIikgfSwKKyAgeyAn
ZicsIE1fRlJPTSwJCTAsCQlFQVRfUkVHRVhQLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBGcm9tIGhl
YWRlciBtYXRjaGVzIEVYUFIiKSB9LAorICB7ICdGJywgTV9GTEFHLAkJMCwJCTAsCisJTl8oImZs
YWdnZWQgbWVzc2FnZXMiKSB9LAorICB7ICdnJywgTV9DUllQVF9TSUdOLCAJCTAsIAkJMCwKKwlO
XygiY3J5cHRvZ3JhcGhpY2FsbHkgc2lnbmVkIG1lc3NhZ2VzIikgfSwKKyAgeyAnRycsIE1fQ1JZ
UFRfRU5DUllQVCwJMCwgCQkwLAorCU5fKCJjcnlwdG9ncmFwaGljYWxseSBlbmNyeXB0ZWQgbWVz
c2FnZXMiKSB9LAorICB7ICdoJywgTV9IRUFERVIsCQlNX0ZVTExfTVNHLAlFQVRfUkVHRVhQLAor
CU5fKCJtZXNzYWdlcyB3aG9zZSBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAnSCcsIE1f
SE9STUVMLAkJMCwJCUVBVF9SRUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3NlIHNwYW0gdGFnIG1h
dGNoZXMgRVhQUiIpIH0sCisgIHsgJ2knLCBNX0lELAkJCTAsCQlFQVRfUkVHRVhQLAorCU5fKCJt
ZXNzYWdlcyB3aG9zZSBNZXNzYWdlLUlEIG1hdGNoZXMgRVhQUiIpIH0sCisgIHsgJ2snLCBNX1BH
UF9LRVksIAkJMCwgCQkwLAorCU5fKCJtZXNzYWdlcyB3aGljaCBjb250YWluIFBHUCBrZXkiKSB9
LAorICB7ICdsJywgTV9MSVNULAkJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIGFkZHJlc3NlZCB0byBr
bm93biBtYWlsaW5nIGxpc3RzIikgfSwKKyAgeyAnTCcsIE1fQUREUkVTUywJCTAsCQlFQVRfUkVH
RVhQLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBGcm9tL1NlbmRlci9Uby9DQyBtYXRjaGVzIEVYUFIi
KSB9LAorICB7ICdtJywgTV9NRVNTQUdFLAkJMCwJCUVBVF9SQU5HRSwKKwlOXygibWVzc2FnZXMg
d2hvc2UgbnVtYmVyIGlzIGluIFJBTkdFIikgfSwKKyAgeyAnbicsIE1fU0NPUkUsCQkwLAkJRUFU
X1JBTkdFLAorCU5fKCJtZXNzYWdlcyB3aG9zZSBzY29yZSBpcyBpbiBSQU5HRSIpIH0sCisgIHsg
J04nLCBNX05FVywJCQkwLAkJMCwKKwlOXygibmV3IG1lc3NhZ2VzIikgfSwKKyAgeyAnTycsIE1f
T0xELAkJCTAsCQkwLAorCU5fKCJvbGQgbWVzc2FnZXMiKSB9LAorICB7ICdwJywgTV9QRVJTT05B
TF9SRUNJUCwJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIGFkZHJlc3NlZCB0byB5b3UiKSB9LAorICB7
ICdQJywgTV9QRVJTT05BTF9GUk9NLAkwLAkJMCwKKwlOXygibWVzc2FnZXMgZnJvbSB5b3UiKSB9
LAorICB7ICdRJywgTV9SRVBMSUVELAkJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIHdoaWNoIGhhdmUg
YmVlbiByZXBsaWVkIHRvIikgfSwKKyAgeyAncicsIE1fREFURV9SRUNFSVZFRCwJMCwJCUVBVF9E
QVRFLAorCU5fKCJtZXNzYWdlcyByZWNlaXZlZCBpbiBEQVRFUkFOR0UiKSB9LAorICB7ICdSJywg
TV9SRUFELAkJMCwJCTAsCisJTl8oImFscmVhZHkgcmVhZCBtZXNzYWdlcyIpIH0sCisgIHsgJ3Mn
LCBNX1NVQkpFQ1QsCQkwLAkJRUFUX1JFR0VYUCwKKwlOXygibWVzc2FnZXMgd2hvc2UgU3ViamVj
dCBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAnUycsIE1fU1VQRVJTRURFRCwJCTAsCQkw
LAorCU5fKCJzdXBlcnNlZGVkIG1lc3NhZ2VzIikgfSwKKyAgeyAndCcsIE1fVE8sCQkJMCwJCUVB
VF9SRUdFWFAsCisJTl8oIm1lc3NhZ2VzIHdob3NlIFRvIGhlYWRlciBtYXRjaGVzIEVYUFIiKSB9
LAorICB7ICdUJywgTV9UQUcsCQkJMCwJCTAsCisJTl8oInRhZ2dlZCBtZXNzYWdlcyIpIH0sCisg
IHsgJ3UnLCBNX1NVQlNDUklCRURfTElTVCwJMCwJCTAsCisJTl8oIm1lc3NhZ2VzIGFkZHJlc3Nl
ZCB0byBzdWJzY3JpYmVkIG1haWxpbmcgbGlzdHMiKSB9LAorICB7ICdVJywgTV9VTlJFQUQsCQkw
LAkJMCwKKwlOXygidW5yZWFkIG1lc3NhZ2VzIikgfSwKKyAgeyAndicsIE1fQ09MTEFQU0VELAkJ
MCwJCTAsCisJTl8oIm1lc3NhZ2VzIGluIGNvbGxhcHNlZCB0aHJlYWRzIikgfSwKKyAgeyAnVics
IE1fQ1JZUFRfVkVSSUZJRUQsCTAsCQkwLAorCU5fKCJjcnlwdG9ncmFwaGljYWxseSB2ZXJpZmll
ZCBtZXNzYWdlcyIpIH0sCisgIHsgJ3gnLCBNX1JFRkVSRU5DRSwJCTAsCQlFQVRfUkVHRVhQLAor
CU5fKCJtZXNzYWdlcyB3aG9zZSBSZWZlcmVuY2VzIGhlYWRlciBtYXRjaGVzIEVYUFIiKSB9LAor
ICB7ICd5JywgTV9YTEFCRUwsCQkwLAkJRUFUX1JFR0VYUCwKKwlOXygibWVzc2FnZXMgd2hvc2Ug
WC1MYWJlbCBoZWFkZXIgbWF0Y2hlcyBFWFBSIikgfSwKKyAgeyAneicsIE1fU0laRSwJCTAsCQlF
QVRfUkFOR0UsCisJTl8oIm1lc3NhZ2VzIHdob3NlIHNpemUgaXMgaW4gUkFOR0UiKSB9LAorICB7
ICc9JywgTV9EVVBMSUNBVEVELAkJMCwJCTAsCisJTl8oImR1cGxpY2F0ZWQgbWVzc2FnZXMiKSB9
LAorICB7ICckJywgTV9VTlJFRkVSRU5DRUQsCTAsCQkwLAorCU5fKCJ1bnJlZmVyZW5jZWQgbWVz
c2FnZXMiKSB9LAogICB7IDAgfQogfTsKIApAQCAtMjUxLDcgKzI5OCw3IEBACiAgIHJldHVybiBt
YXRjaDsKIH0KIAotaW50IGVhdF9yZWdleHAgKHBhdHRlcm5fdCAqcGF0LCBCVUZGRVIgKnMsIEJV
RkZFUiAqZXJyKQorc3RhdGljIGludCBlYXRfcmVnZXhwIChwYXR0ZXJuX3QgKnBhdCwgQlVGRkVS
ICpzLCBCVUZGRVIgKmVycikKIHsKICAgQlVGRkVSIGJ1ZjsKICAgaW50IHI7CkBAIC0yOTIsNyAr
MzM5LDcgQEAKICAgcmV0dXJuIDA7CiB9CiAKLWludCBlYXRfcmFuZ2UgKHBhdHRlcm5fdCAqcGF0
LCBCVUZGRVIgKnMsIEJVRkZFUiAqZXJyKQorc3RhdGljIGludCBlYXRfcmFuZ2UgKHBhdHRlcm5f
dCAqcGF0LCBCVUZGRVIgKnMsIEJVRkZFUiAqZXJyKQogewogICBjaGFyICp0bXA7CiAgIGludCBk
b19leGNsdXNpdmUgPSAwOwpAQCAtODQ4LDEzICs4OTUsMjAgQEAKIAogCWlmIChlbnRyeS0+ZWF0
X2FyZykKIAl7CisJICBpbnQgZWF0cnYgPSAwOwogCSAgaWYgKCEqcHMuZHB0cikKIAkgIHsKIAkg
ICAgc25wcmludGYgKGVyci0+ZGF0YSwgZXJyLT5kc2l6ZSwgXygibWlzc2luZyBwYXJhbWV0ZXIi
KSk7CiAJICAgIG11dHRfcGF0dGVybl9mcmVlICgmY3VybGlzdCk7CiAJICAgIHJldHVybiBOVUxM
OwogCSAgfQotCSAgaWYgKGVudHJ5LT5lYXRfYXJnICh0bXAsICZwcywgZXJyKSA9PSAtMSkKKwkg
IHN3aXRjaCAoZW50cnktPmVhdF9hcmcpCisJICB7CisJICAgIGNhc2UgRUFUX1JFR0VYUDogZWF0
cnYgPSBlYXRfcmVnZXhwICh0bXAsICZwcywgZXJyKTsgYnJlYWs7CisJICAgIGNhc2UgRUFUX0RB
VEU6IGVhdHJ2ID0gZWF0X2RhdGUgKHRtcCwgJnBzLCBlcnIpOyBicmVhazsKKwkgICAgY2FzZSBF
QVRfUkFOR0U6IGVhdHJ2ID0gZWF0X3JhbmdlICh0bXAsICZwcywgZXJyKTsgYnJlYWs7CisJICB9
CisJICBpZiAoZWF0cnYgPT0gLTEpCiAJICB7CiAJICAgIG11dHRfcGF0dGVybl9mcmVlICgmY3Vy
bGlzdCk7CiAJICAgIHJldHVybiBOVUxMOwpAQCAtMTQwNSwzICsxNDU5LDEzNCBAQAogICBtdXR0
X2Vycm9yIF8oIk5vdCBmb3VuZC4iKTsKICAgcmV0dXJuICgtMSk7CiB9CisKK3N0YXRpYyB2b2lk
IHBhdHRlcm5fZW50cnkgKGNoYXIgKnMsIHNpemVfdCBsLCBNVVRUTUVOVSAqIG1lbnUsIGludCBu
dW0pCit7CisgIExJU1QgKipQYXRUYWJsZSA9IChMSVNUICoqKSBtZW51LT5kYXRhOworCisgIG11
dHRfZm9ybWF0X3N0cmluZyAocywgbCwgMCwgQ09MUywgMCwgJyAnLCBQYXRUYWJsZVtudW1dLT5k
YXRhLAorCQkgICAgIG11dHRfc3RybGVuIChQYXRUYWJsZVtudW1dLT5kYXRhKSwgMCk7Cit9CisK
K3N0YXRpYyBjaGFyIHBhdHRlcm5fbWVudSAoTElTVCAqcGF0cykKK3sKKyAgaW50IHBhdG1heCA9
IDA7CisgIExJU1QgKipQYXRUYWJsZSA9IE5VTEw7CisgIE1VVFRNRU5VICptZW51OworICBpbnQg
aSwgZG9uZSA9IDA7CisgIGNoYXIgaGVscHN0cltTSE9SVF9TVFJJTkddLCBidWZbTE9OR19TVFJJ
TkddOworICBMSVNUICpwYXQ7CisgIGNoYXIgcnYgPSAwOworCisgIGZvciAoaSA9IDAsIHBhdCA9
IHBhdHM7IHBhdDsgcGF0ID0gcGF0LT5uZXh0KQorICB7CisgICAgICBpZiAoaSA9PSBwYXRtYXgp
CisgICAgICB7CisJcGF0bWF4ICs9IDU7CisJc2FmZV9yZWFsbG9jICgmUGF0VGFibGUsIHNpemVv
ZiAoTElTVCAqKSAqIHBhdG1heCk7CisgICAgICB9CisgICAgICBQYXRUYWJsZVtpKytdID0gcGF0
OworICB9CisKKyAgaGVscHN0clswXSA9IDA7CisgIG11dHRfbWFrZV9oZWxwIChidWYsIHNpemVv
ZiAoYnVmKSwgXygiRXhpdCAgIiksIE1FTlVfR0VORVJJQywgT1BfRVhJVCk7CisgIHNhZmVfc3Ry
Y2F0IChoZWxwc3RyLCBzaXplb2YgKGhlbHBzdHIpLCBidWYpOworICBtdXR0X21ha2VfaGVscCAo
YnVmLCBzaXplb2YgKGJ1ZiksIF8oIlNlbGVjdCAgIiksIE1FTlVfR0VORVJJQywKKwkJICBPUF9H
RU5FUklDX1NFTEVDVF9FTlRSWSk7CisgIHNhZmVfc3RyY2F0IChoZWxwc3RyLCBzaXplb2YgKGhl
bHBzdHIpLCBidWYpOworICBtdXR0X21ha2VfaGVscCAoYnVmLCBzaXplb2YgKGJ1ZiksIF8oIkhl
bHAiKSwgTUVOVV9HRU5FUklDLCBPUF9IRUxQKTsKKyAgc2FmZV9zdHJjYXQgKGhlbHBzdHIsIHNp
emVvZiAoaGVscHN0ciksIGJ1Zik7CisKKyAgbWVudSA9IG11dHRfbmV3X21lbnUgKCk7CisgIG1l
bnUtPm1heCA9IGk7CisgIG1lbnUtPm1ha2VfZW50cnkgPSBwYXR0ZXJuX2VudHJ5OworICBtZW51
LT5tZW51ID0gTUVOVV9HRU5FUklDOworICBtZW51LT5oZWxwID0gaGVscHN0cjsKKyAgbWVudS0+
ZGF0YSA9IFBhdFRhYmxlOworICBtZW51LT50aXRsZSA9IF8oIlBhdHRlcm5zIik7CisKKyAgbXV0
dF9jbGVhcl9lcnJvciAoKTsKKworICB3aGlsZSAoIWRvbmUpCisgIHsKKyAgICBzd2l0Y2ggKG11
dHRfbWVudUxvb3AgKG1lbnUpKQorICAgIHsKKyAgICBjYXNlIE9QX0dFTkVSSUNfU0VMRUNUX0VO
VFJZOgorICAgICAgcnYgPSBQYXRUYWJsZVttZW51LT5jdXJyZW50XS0+ZGF0YVsxXTsKKyAgICAg
IGRvbmUgPSAxOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX0VYSVQ6CisgICAgICBydiA9
IDA7CisgICAgICBkb25lID0gMTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorCisgIG11dHRf
bWVudURlc3Ryb3kgKCZtZW51KTsKKyAgRlJFRSAoJlBhdFRhYmxlKTsKKworICBzZXRfb3B0aW9u
IChPUFRORUVEUkVEUkFXKTsKKworICByZXR1cm4gKHJ2KTsKK30KKworc3RhdGljIExJU1QgKmxp
c3RfcGF0dGVybnMgKCkKK3sKKyAgTElTVCAqZmlyc3QgPSBOVUxMLCAqbGFzdCA9IE5VTEwsICpj
dXIgPSBOVUxMOworICBpbnQgaTsKKworICBmb3IgKGkgPSAwOyBGbGFnc1tpXS50YWc7IGkrKykK
KyAgeworICAgIGNoYXIgYnVmW0xPTkdfU1RSSU5HXTsKKyAgICBzd2l0Y2ggKEZsYWdzW2ldLmVh
dF9hcmcpCisgICAgeworICAgIGNhc2UgRUFUX1JFR0VYUDoKKyAgICAgIHNucHJpbnRmIChidWYs
IHNpemVvZiAoYnVmKSwgXygifiVjIEVYUFIgICAgICAgJXMiKSwKKyAgICAgICAgICAgICAgICAo
Y2hhcikgRmxhZ3NbaV0udGFnLCBfKEZsYWdzW2ldLmRlc2MpKTsKKyAgICAgIGJyZWFrOworICAg
IGNhc2UgRUFUX1JBTkdFOgorICAgICAgc25wcmludGYgKGJ1Ziwgc2l6ZW9mIChidWYpLCBfKCJ+
JWMgUkFOR0UgICAgICAlcyIpLAorICAgICAgICAgICAgICAgIChjaGFyKSBGbGFnc1tpXS50YWcs
IF8oRmxhZ3NbaV0uZGVzYykpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBFQVRfREFURToKKyAg
ICAgIHNucHJpbnRmIChidWYsIHNpemVvZiAoYnVmKSwgXygifiVjIERBVEVSQU5HRSAgJXMiKSwK
KyAgICAgICAgICAgICAgICAoY2hhcikgRmxhZ3NbaV0udGFnLCBfKEZsYWdzW2ldLmRlc2MpKTsK
KyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBzbnByaW50ZiAoYnVmLCBzaXplb2Yg
KGJ1ZiksIF8oIn4lYyAgICAgICAgICAgICVzIiksCisgICAgICAgICAgICAgICAgKGNoYXIpIEZs
YWdzW2ldLnRhZywgXyhGbGFnc1tpXS5kZXNjKSk7CisgICAgfQorICAgIGN1ciA9IChMSVNUICop
IHNhZmVfY2FsbG9jICgxLCBzaXplb2YgKExJU1QpKTsKKyAgICBjdXItPmRhdGEgPSBzYWZlX3N0
cmR1cCAoYnVmKTsKKyAgICBpZiAoIWZpcnN0KQorICAgICAgZmlyc3QgPSBjdXI7CisgICAgaWYg
KGxhc3QpCisgICAgICBsYXN0LT5uZXh0ID0gY3VyOworICAgIGxhc3QgPSBjdXI7CisgIH0KKyAg
aWYgKGN1cikKKyAgICBjdXItPm5leHQgPSBOVUxMOworICByZXR1cm4gKGZpcnN0KTsKK30KKwor
aW50IG11dHRfYXNrX3BhdHRlcm4gKGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKK3sKKyAgY2hh
ciBjOworICBMSVNUICpsOworICBpbnQgcnYgPSAwOworCisgIGlmICghYnVmIHx8IGJ1ZmxlbiA8
IDMpCisgICAgcmV0dXJuIDA7CisgIGlmICgobCA9IGxpc3RfcGF0dGVybnMoKSkpCisgIHsKKyAg
ICBpZiAoKGMgPSBwYXR0ZXJuX21lbnUgKGwpKSkKKyAgICB7CisgICAgICBzcHJpbnRmIChidWYs
ICIlYyAiLCBjKTsgLyogX19TUFJJTlRGX0NIRUNLRURfXyAqLworICAgICAgcnYgPSAxOworICAg
IH0KKyAgICBtdXR0X2ZyZWVfbGlzdCAoJmwpOworICB9CisgIHJldHVybiBydjsKK30KKwotLS0g
YS9wcm90b3MuaAlNb24gU2VwIDE5IDA2OjIyOjU1IDIwMDUKKysrIGIvcHJvdG9zLmgJTW9uIFNl
cCAxOSAxMjoyMzo1MiAyMDA1CkBAIC0yNTcsNiArMjU4LDcgQEAKIGludCBtdXR0X2FkZHdjaCAo
d2NoYXJfdCk7CiBpbnQgbXV0dF9hbGlhc19jb21wbGV0ZSAoY2hhciAqLCBzaXplX3QpOwogaW50
IG11dHRfYWxsb2NfY29sb3IgKGludCBmZywgaW50IGJnKTsKK2ludCBtdXR0X2Fza19wYXR0ZXJu
IChjaGFyICosIHNpemVfdCk7CiBpbnQgbXV0dF9hbnlfa2V5X3RvX2NvbnRpbnVlIChjb25zdCBj
aGFyICopOwogaW50IG11dHRfYnVmZnlfY2hlY2sgKGludCk7CiBpbnQgbXV0dF9idWZmeV9ub3Rp
ZnkgKHZvaWQpOwoK