[office/kmymoney] /: Enhance date entry widget keyboard support.

Ralf Habacker <[email protected]> Tue, 14 Apr 2026 20:33:34 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs,gmane.comp.kde.doc
Message-ID <[email protected]>
R2l0IGNvbW1pdCBkMDZkMDQzZmMwYzQzNTkxOGFmNDUwZjYwZmU3YWMxMWNlYWJmY2RmIGJ5IFJh
bGYgSGFiYWNrZXIsIG9uIGJlaGFsZiBvZiBEYXdpZCBXcm/MgWJlbC4KQ29tbWl0dGVkIG9uIDE0
LzA0LzIwMjYgYXQgMTk6MzIuClB1c2hlZCBieSBoYWJhY2tlciBpbnRvIGJyYW5jaCAnbWFzdGVy
Jy4KCkVuaGFuY2UgZGF0ZSBlbnRyeSB3aWRnZXQga2V5Ym9hcmQgc3VwcG9ydC4KCi0gQWRkIG5l
dyBrZXlib2FyZCBzaG9ydGN1dHMgZm9yIGluY3JlYXNpbmcvZGVjcmVhc2luZyBtb250aCBhbmQg
eWVhciwKICB3cmFwcGluZyBhcm91bmQgZGF0ZXMgYXMgbmVlZGVkLCB3aGlsZSBrZWVwaW5nIHRo
ZSBvcmlnaW5hbCBkYXkKICB3aGVuZXZlciBwb3NzaWJsZS4KLSBBZGQgbmV3IGtleWJvYXJkIHNo
b3J0Y3V0cyBmb3IgcXVpY2sgc2VsZWN0aW9uIG9yIHN0YXJ0L2VuZCBvZgogIG1vbnRoIGFuZCB5
ZWFyLgotIFNpbXBsaWZpZXMgdGhlIGFkanVzdERheSgpLCBhZGp1c3RNb250aCgpIGFuZCBhZGp1
c3RZZWFyKCkgbG9naWMuCgpBbGwgbmV3IGtleWJvYXJkIHNob3J0Y3V0cyBmb2xsb3cgdGhlIEdu
dUNhc2ggc3RhbmRhcmQ6Cmh0dHBzOi8vd3d3LmdudWNhc2gub3JnL2RvY3MvdjUvQy9nbnVjYXNo
LWd1aWRlL2NoYXB0ZXJfdHhucy5odG1sCgpNICArMzIgICAtNCAgICBkb2MvZGV0YWlscy13aWRn
ZXRzLmRvY2Jvb2sKTSAgKzc3ICAgLTYwICAga215bW9uZXkvd2lkZ2V0cy9rbXltb25leWRhdGVl
ZGl0LmNwcAoKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9vZmZpY2Uva215bW9uZXkvLS9jb21taXQv
ZDA2ZDA0M2ZjMGM0MzU5MThhZjQ1MGY2MGZlN2FjMTFjZWFiZmNkZgoKZGlmZiAtLWdpdCBhL2Rv
Yy9kZXRhaWxzLXdpZGdldHMuZG9jYm9vayBiL2RvYy9kZXRhaWxzLXdpZGdldHMuZG9jYm9vawpp
bmRleCA1MzAxYTVhM2MuLjRjMTUyYmM4MSAxMDA2NDQKLS0tIGEvZG9jL2RldGFpbHMtd2lkZ2V0
cy5kb2Nib29rCisrKyBiL2RvYy9kZXRhaWxzLXdpZGdldHMuZG9jYm9vawpAQCAtNDYsMTAgKzQ2
LDM4IEBACiAgIFdpdGhpbiB0aGUgZGF0ZSBlbnRyeSB3aWRnZXQsIHRoZSAmTGVmdDsvJlJpZ2h0
OyBjdXJzb3Iga2V5cyBjYW4gYmUgdXNlZCB0byBzd2l0Y2gKICAgYmV0d2VlbiB0aGUgPGVtcGhh
c2lzPmRheTwvZW1waGFzaXM+LCB0aGUgPGVtcGhhc2lzPm1vbnRoPC9lbXBoYXNpcz4sIGFuZCB0
aGUKICAgPGVtcGhhc2lzPnllYXI8L2VtcGhhc2lzPiBmaWVsZHMuIFVzaW5nIHRoZSAmVXA7LyZE
b3duOyBjdXJzb3Iga2V5cywgdGhlIHZhbHVlIG9mCi0gIHRoZSBzZWxlY3RlZCBmaWVsZCBjYW4g
YmUgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQuICBUaGUgPGtleWNhcD4rPC9rZXljYXA+IGFuZAot
ICA8a2V5Y2FwPi08L2tleWNhcD4ga2V5cyBjYW4gYmUgdXNlZCB0byBpbmNyZW1lbnQvZGVjcmVt
ZW50IGEgc2luZ2xlIGRheS4gIE1vbnRoIGFuZAotICB5ZWFyIGJvdW5kYXJpZXMgYXJlIGNvbnNp
ZGVyZWQgYW5kIGluY3JlbWVudGVkL2RlY3JlbWVudGVkIGlmIG5lY2Vzc2FyeS4gIFByZXNzaW5n
Ci0gIDxrZXljYXA+VDwva2V5Y2FwPiB3aWxsIHNldCB0aGUgZGF0ZSB0byB0b2RheSdzIGRhdGUu
CisgIHRoZSBzZWxlY3RlZCBmaWVsZCBjYW4gYmUgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQuICBU
aGUgPGtleWNhcD4rPC9rZXljYXA+IG9yCisgIDxrZXljYXA+PTwva2V5Y2FwPiBhbmQgPGtleWNh
cD4tPC9rZXljYXA+IGtleXMgY2FuIGJlIHVzZWQgdG8gaW5jcmVtZW50L2RlY3JlbWVudCBhCisg
IHNpbmdsZSBkYXkuICBUaGUgPGtleWNhcD5dPC9rZXljYXA+IG9yIDxrZXljYXA+fTwva2V5Y2Fw
PiBhbmQgPGtleWNhcD5bPC9rZXljYXA+IG9yCisgIDxrZXljYXA+ezwva2V5Y2FwPiBrZXlzIGNh
biBiZSB1c2VkIHRvIGluY3JlbWVudC9kZWNyZW1lbnQgYSBzaW5nbGUgbW9udGguCisgIFRoZSA8
a2V5Y2FwPic8L2tleWNhcD4gb3IgPGtleWNhcD4iPC9rZXljYXA+IGFuZCA8a2V5Y2FwPjs8L2tl
eWNhcD4gb3IgPGtleWNhcD46PC9rZXljYXA+CisgIGtleXMgY2FuIGJlIHVzZWQgdG8gaW5jcmVt
ZW50L2RlY3JlbWVudCBhIHNpbmdsZSB5ZWFyLiBNb250aCBhbmQgeWVhciBib3VuZGFyaWVzCisg
IGFyZSBjb25zaWRlcmVkIGFuZCBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBpZiBuZWNlc3Nhcnks
IGUuZy4gdXNpbmcgPGtleWNhcD4rPC9rZXljYXA+CisgIHRvIGluY3JlbWVudCB0aGUgZGF0ZSBv
ZiBKYW51YXJ5IDMxdGggd2lsbCBjaGFuZ2UgaXQgdG8gRmVicnVhcnkgMXN0LgorPC9wYXJhPgor
Cis8cGFyYT4KKyAgVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIHNob3J0Y3V0cyBjYW4gYWxzbyBi
ZSB1c2VkOgorPC9wYXJhPgorCis8cGFyYT4KKyAgPGl0ZW1pemVkbGlzdD4KKyAgICA8bGlzdGl0
ZW0+CisgICAgICA8cGFyYT48a2V5Y2FwPk08L2tleWNhcD4gdG8gc2V0IHRoZSBkYXRlIHRvIHRo
ZSBmaXJzdCBkYXkgb2YgdGhlIGN1cnJlbnQgbW9udGg8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K
KyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT48a2V5Y2FwPkg8L2tleWNhcD4gdG8gc2V0IHRo
ZSBkYXRlIHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgY3VycmVudCBtb250aDwvcGFyYT4KKyAgICA8
L2xpc3RpdGVtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPjxrZXljYXA+WTwva2V5Y2Fw
PiB0byBzZXQgdGhlIGRhdGUgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgY3VycmVudCB5ZWFyPC9w
YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+PGtleWNh
cD5SPC9rZXljYXA+IHRvIHNldCB0aGUgZGF0ZSB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIGN1cnJl
bnQgeWVhcjwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw
YXJhPjxrZXljYXA+VDwva2V5Y2FwPiB0byBzZXQgdGhlIGRhdGUgdG8gdG9kYXkncyBkYXRlPC9w
YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgIDwvaXRlbWl6ZWRsaXN0PgogPC9wYXJhPgogCiA8cGFy
YT4KZGlmZiAtLWdpdCBhL2tteW1vbmV5L3dpZGdldHMva215bW9uZXlkYXRlZWRpdC5jcHAgYi9r
bXltb25leS93aWRnZXRzL2tteW1vbmV5ZGF0ZWVkaXQuY3BwCmluZGV4IDYzODY0ZTViYy4uMDdj
ZDM0NmJlIDEwMDY0NAotLS0gYS9rbXltb25leS93aWRnZXRzL2tteW1vbmV5ZGF0ZWVkaXQuY3Bw
CisrKyBiL2tteW1vbmV5L3dpZGdldHMva215bW9uZXlkYXRlZWRpdC5jcHAKQEAgLTI1Niw3NSAr
MjU2LDM3IEBAIHB1YmxpYzoKIAogICAgIC8qKgogICAgICAqIEFkanVzdCB0aGUgZGF5IG9mIHRo
ZSBAYSBkYXRlIGJ5IHRoZSBhbW91bnQgcHJvdmlkZWQgYnkgQGEgZGVsdGEKLSAgICAgKiBpbiBk
YXlzLiBJbiBjYXNlIHRoZSByZXN1bHRpbmcgZGF5IGlzIG5vdCB3aXRoaW4gdGhlIGJvdW5kcyBv
ZgotICAgICAqIHRoZSBtb250aCBvZiBAYSBkYXRlIGFuIGludmFsaWQgZGF0ZSBpcyByZXR1cm5l
ZC4KKyAgICAgKiBpbiBkYXlzLgogICAgICAqLwogICAgIFFEYXRlIGFkanVzdERheShRRGF0ZSBk
YXRlLCBpbnQgZGVsdGEpCiAgICAgewotICAgICAgICBjb25zdCBhdXRvIG1pblZhbHVlKDEpOwot
ICAgICAgICBjb25zdCBhdXRvIG1heFZhbHVlKGRhdGUuZGF5c0luTW9udGgoKSk7Ci0gICAgICAg
IGNvbnN0IGF1dG8gbmV3RGF5KGRhdGUuZGF5KCkgKyBkZWx0YSk7Ci0gICAgICAgIGlmICgobmV3
RGF5ID49IG1pblZhbHVlKSAmJiAobmV3RGF5IDw9IG1heFZhbHVlKSkgewotICAgICAgICAgICAg
cmV0dXJuIFFEYXRlKGRhdGUueWVhcigpLCBkYXRlLm1vbnRoKCksIG5ld0RheSk7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHt9OworICAgICAgICByZXR1cm4gZGF0ZS5hZGREYXlzKGRlbHRh
KTsKICAgICB9CiAKICAgICAvKioKICAgICAgKiBBZGp1c3QgdGhlIG1vbnRoIG9mIHRoZSBAYSBk
YXRlIGJ5IHRoZSBhbW91bnQgcHJvdmlkZWQgYnkgQGEgZGVsdGEKLSAgICAgKiBpbiBtb250aHMu
IEluIGNhc2UgdGhlIHJlc3VsdGluZyBtb250aCBpcyBub3Qgd2l0aGluIHRoZSBib3VuZHMgb2YK
LSAgICAgKiB2YWxpZCBtb250aHMgKDEuLjEyKSBhbiBpbnZhbGlkIGRhdGUgaXMgcmV0dXJuZWQu
IEluIGNhc2UgdGhlCi0gICAgICogb3JpZ2luYWwgZGF5IGlzIGxhcmdlciB0aGFuIHRoZSBjdXJy
ZW50IGRheSwgaXQgd2lsbCBiZSB1c2VkCi0gICAgICogaW5zdGVhZC4gSW4gY2FzZSB0aGUgZGF5
IGlzIG5vdCB3aXRoaW4gdGhlIHJhbmdlIG9mIHZhbGlkIGRheXMKLSAgICAgKiBmb3IgdGhlIHJl
c3VsdGluZyBtb250aCB0aGUgZGF5IHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIGxhc3QgZGF5Ci0g
ICAgICogb2YgdGhlIG1vbnRoLgorICAgICAqIGluIG1vbnRocy4gVXNlcyB0aGUgb3JpZ2luYWwg
ZGF5LiBJbiBjYXNlIHRoZSBvcmlnaW5hbCBkYXkgaXMgbm90IHdpdGhpbgorICAgICAqIHRoZSBy
YW5nZSBvZiB2YWxpZCBkYXlzIGZvciB0aGUgcmVzdWx0aW5nLCBwb3N0LWFkanVzdG1lbnQgbW9u
dGgsIHRoZSBkYXkKKyAgICAgKiB3aWxsIGJlIGFkanVzdGVkIHRvIHRoZSBsYXN0IGRheSBvZiB0
aGF0IG1vbnRoLgogICAgICAqLwogICAgIFFEYXRlIGFkanVzdE1vbnRoKFFEYXRlIGRhdGUsIGlu
dCBkZWx0YSkKICAgICB7Ci0gICAgICAgIGNvbnN0IGF1dG8gbWluVmFsdWUoMSk7Ci0gICAgICAg
IGNvbnN0IGF1dG8gbWF4VmFsdWUoMTIpOwotICAgICAgICBjb25zdCBhdXRvIG5ld01vbnRoKGRh
dGUubW9udGgoKSArIGRlbHRhKTsKLQotICAgICAgICBpZiAoKG5ld01vbnRoID49IG1pblZhbHVl
KSAmJiAobmV3TW9udGggPD0gbWF4VmFsdWUpKSB7Ci0gICAgICAgICAgICBhdXRvIGRheSA9IGRh
dGUuZGF5KCk7Ci0gICAgICAgICAgICBpZiAobV9vcmlnaW5hbERheSA+IGRheSkKLSAgICAgICAg
ICAgICAgICBkYXkgPSBtX29yaWdpbmFsRGF5OwotICAgICAgICAgICAgYXV0byBuZXdEYXRlID0g
UURhdGUoZGF0ZS55ZWFyKCksIG5ld01vbnRoLCBkYXkpOwotICAgICAgICAgICAgaWYgKCFuZXdE
YXRlLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8gbWF4RGF5cyhRRGF0
ZShkYXRlLnllYXIoKSwgbmV3TW9udGgsIDEpLmRheXNJbk1vbnRoKCkpOwotICAgICAgICAgICAg
ICAgIG5ld0RhdGUgPSBRRGF0ZShkYXRlLnllYXIoKSwgbmV3TW9udGgsIG1heERheXMpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG5ld0RhdGU7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHt9OworICAgICAgICBRRGF0ZSBuZXdEYXRlID0gZGF0ZS5hZGRNb250aHMoZGVs
dGEpOworCisgICAgICAgIHJldHVybiBRRGF0ZShuZXdEYXRlLnllYXIoKSwgbmV3RGF0ZS5tb250
aCgpLCBxTWluKG1fb3JpZ2luYWxEYXksIG5ld0RhdGUuZGF5c0luTW9udGgoKSkpOwogICAgIH0K
IAogICAgIC8qKgogICAgICAqIEFkanVzdCB0aGUgeWVhciBvZiB0aGUgQGEgZGF0ZSBieSB0aGUg
YW1vdW50IHByb3ZpZGVkIGJ5IEBhIGRlbHRhCi0gICAgICogaW4geWVhcnMuIEluIGNhc2UgdGhl
IHJlc3VsdGluZyB5ZWFyIGlzIG5vdCB3aXRoaW4gdGhlIGJvdW5kcyBvZgotICAgICAqIHZhbGlk
IHllYXJzICgxLi40MDAwKSBhbiBpbnZhbGlkIGRhdGUgaXMgcmV0dXJuZWQuIEluIGNhc2UgdGhl
Ci0gICAgICogb3JpZ2luYWwgZGF5IGlzIGxhcmdlciB0aGFuIHRoZSBjdXJyZW50IGRheSwgaXQg
d2lsbCBiZSB1c2VkCi0gICAgICogaW5zdGVhZC4gSW4gY2FzZSB0aGUgZGF5IGlzIG5vdCB3aXRo
aW4gdGhlIHJhbmdlIG9mIHZhbGlkIGRheXMKLSAgICAgKiBmb3IgdGhlIHJlc3VsdGluZyBtb250
aCB0aGUgZGF5IHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIGxhc3QgZGF5Ci0gICAgICogb2YgdGhl
IG1vbnRoLgorICAgICAqIGluIHllYXIuIFVzZXMgdGhlIG9yaWdpbmFsIGRheS4gSW4gY2FzZSB0
aGUgb3JpZ2luYWwgZGF5IGlzIG5vdCB3aXRoaW4KKyAgICAgKiB0aGUgcmFuZ2Ugb2YgdmFsaWQg
ZGF5cyBmb3IgdGhlIHJlc3VsdGluZywgcG9zdC1hZGp1c3RtZW50IG1vbnRoLCB0aGUgZGF5Cisg
ICAgICogd2lsbCBiZSBhZGp1c3RlZCB0byB0aGUgbGFzdCBkYXkgb2YgdGhhdCBtb250aC4KICAg
ICAgKi8KICAgICBRRGF0ZSBhZGp1c3RZZWFyKFFEYXRlIGRhdGUsIGludCBkZWx0YSkKICAgICB7
Ci0gICAgICAgIGNvbnN0IGF1dG8gbWluVmFsdWUoMSk7Ci0gICAgICAgIGNvbnN0IGF1dG8gbWF4
VmFsdWUoNDAwMCk7Ci0gICAgICAgIGNvbnN0IGF1dG8gbmV3WWVhcihkYXRlLnllYXIoKSArIGRl
bHRhKTsKLSAgICAgICAgaWYgKChuZXdZZWFyID49IG1pblZhbHVlKSAmJiAobmV3WWVhciA8PSBt
YXhWYWx1ZSkpIHsKLSAgICAgICAgICAgIGF1dG8gZGF5ID0gZGF0ZS5kYXkoKTsKLSAgICAgICAg
ICAgIGlmIChtX29yaWdpbmFsRGF5ID4gZGF5KQotICAgICAgICAgICAgICAgIGRheSA9IG1fb3Jp
Z2luYWxEYXk7Ci0gICAgICAgICAgICBhdXRvIG5ld0RhdGUgPSBRRGF0ZShuZXdZZWFyLCBkYXRl
Lm1vbnRoKCksIGRheSk7Ci0gICAgICAgICAgICBpZiAoIW5ld0RhdGUuaXNWYWxpZCgpKSB7Ci0g
ICAgICAgICAgICAgICAgY29uc3QgYXV0byBtYXhEYXlzKFFEYXRlKG5ld1llYXIsIGRhdGUubW9u
dGgoKSwgMSkuZGF5c0luTW9udGgoKSk7Ci0gICAgICAgICAgICAgICAgbmV3RGF0ZSA9IFFEYXRl
KG5ld1llYXIsIGRhdGUubW9udGgoKSwgbWF4RGF5cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICByZXR1cm4gbmV3RGF0ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4ge307CisgICAg
ICAgIFFEYXRlIG5ld0RhdGUgPSBkYXRlLmFkZFllYXJzKGRlbHRhKTsKKworICAgICAgICByZXR1
cm4gUURhdGUobmV3RGF0ZS55ZWFyKCksIG5ld0RhdGUubW9udGgoKSwgcU1pbihtX29yaWdpbmFs
RGF5LCBuZXdEYXRlLmRheXNJbk1vbnRoKCkpKTsKICAgICB9CiAKICAgICAvKioKQEAgLTM4Nywy
MSArMzQ5LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGF1dG8gZGF0ZSA9IGZpeHVwRGF0ZSgp
OwogICAgICAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7CiAgICAgICAgICAgICAgICAgc3dp
dGNoIChzZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBRRGF0ZUVkaXQ6OkRheVNlY3Rp
b246Ci0gICAgICAgICAgICAgICAgICAgIGRhdGUgPSBhZGp1c3REYXkoZGF0ZSwgZGVsdGEpOwot
ICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG1fb3JpZ2luYWxEYXkgPSBkYXRlLmRheSgpOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgUURh
dGVFZGl0OjpNb250aFNlY3Rpb246CiAgICAgICAgICAgICAgICAgICAgIGRhdGUgPSBhZGp1c3RN
b250aChkYXRlLCBkZWx0YSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNhc2UgUURhdGVFZGl0OjpZZWFyU2VjdGlvbjoKICAgICAgICAgICAgICAgICAgICAg
ZGF0ZSA9IGFkanVzdFllYXIoZGF0ZSwgZGVsdGEpOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlIFFEYXRlRWRpdDo6RGF5U2VjdGlvbjoKICAgICAgICAg
ICAgICAgICBjYXNlIFFEYXRlRWRpdDo6Tm9TZWN0aW9uOgogICAgICAgICAgICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGRhdGUgPSBkYXRlLmFkZERheXMoZGVsdGEpOworICAg
ICAgICAgICAgICAgICAgICBkYXRlID0gYWRqdXN0RGF5KGRhdGUsIGRlbHRhKTsKICAgICAgICAg
ICAgICAgICAgICAgbV9vcmlnaW5hbERheSA9IGRhdGUuZGF5KCk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTYwOCw3ICs1NjUsMzUgQEAgdm9pZCBL
TXlNb25leURhdGVFZGl0OjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCoga2V5RXZlbnQpCiAgICAg
Y2FzZSBRdDo6S2V5X01pbnVzOgogICAgIGNhc2UgUXQ6OktleV9FcXVhbDoKICAgICAgICAgaWYg
KGlzVmFsaWQoKSkgewotICAgICAgICAgICAgZC0+YWRqdXN0RGF0ZShrZXkgIT0gUXQ6OktleV9N
aW51cyA/IDEgOiAtMSwgUURhdGVFZGl0OjpOb1NlY3Rpb24pOworICAgICAgICAgICAgZC0+YWRq
dXN0RGF0ZShrZXkgIT0gUXQ6OktleV9NaW51cyA/IDEgOiAtMSwgUURhdGVFZGl0OjpEYXlTZWN0
aW9uKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9CcmFj
a2V0TGVmdDoKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VMZWZ0OgorICAgICAgICBpZiAoaXNWYWxp
ZCgpKSB7CisgICAgICAgICAgICBkLT5hZGp1c3REYXRlKC0xLCBRRGF0ZUVkaXQ6Ok1vbnRoU2Vj
dGlvbik7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFF0OjpLZXlfQnJh
Y2tldFJpZ2h0OgorICAgIGNhc2UgUXQ6OktleV9CcmFjZVJpZ2h0OgorICAgICAgICBpZiAoaXNW
YWxpZCgpKSB7CisgICAgICAgICAgICBkLT5hZGp1c3REYXRlKDEsIFFEYXRlRWRpdDo6TW9udGhT
ZWN0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9D
b2xvbjoKKyAgICBjYXNlIFF0OjpLZXlfU2VtaWNvbG9uOgorICAgICAgICBpZiAoaXNWYWxpZCgp
KSB7CisgICAgICAgICAgICBkLT5hZGp1c3REYXRlKC0xLCBRRGF0ZUVkaXQ6OlllYXJTZWN0aW9u
KTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9RdW90ZURi
bDoKKyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3BoZToKKyAgICAgICAgaWYgKGlzVmFsaWQoKSkg
eworICAgICAgICAgICAgZC0+YWRqdXN0RGF0ZSgxLCBRRGF0ZUVkaXQ6OlllYXJTZWN0aW9uKTsK
ICAgICAgICAgfQogICAgICAgICBicmVhazsKIApAQCAtNjUyLDYgKzYzNywzOCBAQCB2b2lkIEtN
eU1vbmV5RGF0ZUVkaXQ6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBrZXlFdmVudCkKICAgICAg
ICAgUUNvbWJvQm94OjprZXlQcmVzc0V2ZW50KGtleUV2ZW50KTsKICAgICAgICAgYnJlYWs7CiAK
KyAgICBjYXNlIFF0OjpLZXlfTToKKyAgICAgICAgZGF0ZSA9IGQtPmZpeHVwRGF0ZSgpOworICAg
ICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHNldERhdGUoUURhdGUoZGF0
ZS55ZWFyKCksIGRhdGUubW9udGgoKSwgMSkpOworICAgICAgICAgICAgZC0+c2VsZWN0U2VjdGlv
bihRRGF0ZUVkaXQ6Ok1vbnRoU2VjdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIFF0OjpLZXlfSDoKKyAgICAgICAgZGF0ZSA9IGQtPmZpeHVwRGF0ZSgpOworICAg
ICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHNldERhdGUoUURhdGUoZGF0
ZS55ZWFyKCksIGRhdGUubW9udGgoKSwgZGF0ZS5kYXlzSW5Nb250aCgpKSk7CisgICAgICAgICAg
ICBkLT5zZWxlY3RTZWN0aW9uKFFEYXRlRWRpdDo6TW9udGhTZWN0aW9uKTsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9ZOgorICAgICAgICBkYXRlID0gZC0+
Zml4dXBEYXRlKCk7CisgICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkgeworICAgICAgICAgICAg
c2V0RGF0ZShRRGF0ZShkYXRlLnllYXIoKSwgMSwgMSkpOworICAgICAgICAgICAgZC0+c2VsZWN0
U2VjdGlvbihRRGF0ZUVkaXQ6OlllYXJTZWN0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKworICAgIGNhc2UgUXQ6OktleV9SOgorICAgICAgICBkYXRlID0gZC0+Zml4dXBEYXRlKCk7
CisgICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgc2V0RGF0ZShRRGF0
ZShkYXRlLnllYXIoKSwgMTIsIDMxKSk7CisgICAgICAgICAgICBkLT5zZWxlY3RTZWN0aW9uKFFE
YXRlRWRpdDo6WWVhclNlY3Rpb24pOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCiAgICAg
Y2FzZSBRdDo6S2V5X1Q6CiAgICAgICAgIGQtPnNldERhdGUoUURhdGU6OmN1cnJlbnREYXRlKCkp
OwogICAgICAgICBRX0VNSVQgZGF0ZVZhbGlkaXR5Q2hhbmdlZChRRGF0ZTo6Y3VycmVudERhdGUo
KSk7Cg==