[pim/korganizer] /: Implement holiday category selection and filtering.
Allen Winter <[email protected]> Fri, 10 Apr 2026 18:17:58 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs,gmane.comp.kde.doc |
|---|---|
| Message-ID | <[email protected]> |
R2l0IGNvbW1pdCA2NTRlMzg5NTQzYzZkNDhjMjNmYzIzODU5M2M5ZDk1YzI4NTNjOWUxIGJ5IEFs bGVuIFdpbnRlci4KQ29tbWl0dGVkIG9uIDEwLzA0LzIwMjYgYXQgMTU6MDAuClB1c2hlZCBieSB3 aW50ZXJ6IGludG8gYnJhbmNoICdtYXN0ZXInLgoKSW1wbGVtZW50IGhvbGlkYXkgY2F0ZWdvcnkg c2VsZWN0aW9uIGFuZCBmaWx0ZXJpbmcuCgpCVUc6MzM2MTQ3CgpNICArMiAgICAtMiAgICBDTWFr ZUxpc3RzLnR4dApNICArMTUgICAtNSAgICBkb2MvaW5kZXguZG9jYm9vawpNICArMjQgICAtMiAg ICBzcmMva29nbG9iYWxzLmNwcApNICArMTUgICAtMiAgICBzcmMva29nbG9iYWxzLmgKTSAgKzIg ICAgLTAgICAgc3JjL2tvbnRhY3RwbHVnaW4vc3BlY2lhbGRhdGVzL3Nkc3VtbWFyeXdpZGdldC5j cHAKTSAgKzU1ICAgLTIgICAgc3JjL3ByZWZzL2tvcHJlZnNkaWFsb2d0aW1lLmNwcApNICArMSAg ICAtMCAgICBzcmMvcHJlZnMva29wcmVmc2RpYWxvZ3RpbWUuaApNICArMiAgICAtMCAgICBzcmMv d2hhdHNuZXcvd2hhdHNuZXd0cmFuc2xhdGlvbnMuY3BwCgpodHRwczovL2ludmVudC5rZGUub3Jn L3BpbS9rb3JnYW5pemVyLy0vY29tbWl0LzY1NGUzODk1NDNjNmQ0OGMyM2ZjMjM4NTkzYzlkOTVj Mjg1M2M5ZTEKCmRpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0Cmlu ZGV4IDQ5ODQxZDgzNS4uZjNhYjNjOGZmIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysg Yi9DTWFrZUxpc3RzLnR4dApAQCAtMTQ4LDggKzE0OCw4IEBAIGZpbmRfcGFja2FnZSgKIHNldChQ SU1DT01NT05fTElCX1ZFUlNJT04gIjYuNy40MCIpCiBzZXQoTElCS0RFUElNX0xJQl9WRVJTSU9O ICI2LjcuNDAiKQogc2V0KExJQklOQ0lERU5DRUVESVRPUl9MSUJfVkVSU0lPTiAiNi43LjQwIikK LXNldChDQUxFTkRBUlNVUFBPUlRfTElCX1ZFUlNJT04gIjYuNy40MCIpCi1zZXQoRVZFTlRWSUVX X0xJQl9WRVJTSU9OICI2LjcuNDEiKQorc2V0KENBTEVOREFSU1VQUE9SVF9MSUJfVkVSU0lPTiAi Ni43LjQxIikKK3NldChFVkVOVFZJRVdfTElCX1ZFUlNJT04gIjYuNy40MiIpCiAKICMgRmluZCBL RjYgcGFja2FnZQogZmluZF9wYWNrYWdlKEtGNkkxOG4gJHtLRl9NSU5fVkVSU0lPTn0gQ09ORklH IFJFUVVJUkVEKQpkaWZmIC0tZ2l0IGEvZG9jL2luZGV4LmRvY2Jvb2sgYi9kb2MvaW5kZXguZG9j Ym9vawppbmRleCA4ODdhNjYyZGUuLjE0NWZiM2M1NyAxMDA2NDQKLS0tIGEvZG9jL2luZGV4LmRv Y2Jvb2sKKysrIGIvZG9jL2luZGV4LmRvY2Jvb2sKQEAgLTIwNjAsMTEgKzIwNjAsMjEgQEAgaW4g dGhlIEFnZW5kYSB2aWV3LjwvcGFyYT48L2xpc3RpdGVtPgogPC92YXJsaXN0ZW50cnk+CiAKIDx2 YXJsaXN0ZW50cnk+Ci08dGVybT48Z3VpbGFiZWw+SG9saWRheXM8L2d1aWxhYmVsPjwvdGVybT4K LTxsaXN0aXRlbT48cGFyYT5TZWxlY3QgeW91ciBjb3VudHJ5IGZyb20gdGhlIGRyb3AgZG93biBs aXN0LCBvciBpZgotaXQgaXMgbm90IGxpc3RlZCwgc2VsZWN0IDxndWlsYWJlbD4oTm9uZSk8L2d1 aWxhYmVsPi4KLUlmIHlvdXIgY291bnRyeSBpcyBzZWxlY3RlZCwgJmtvcmdhbml6ZXI7IHdpbGwg cmVjb2duaXplIGFuZCBkaXNwbGF5Ci1pdHMgaW1wb3J0YW50IGRhdGVzIGFuZCBob2xpZGF5cyBp biB0aGUgY2FsZW5kYXIgdmlldy48L3BhcmE+PC9saXN0aXRlbT4KKzx0ZXJtPjxndWlsYWJlbD5I b2xpZGF5IFJlZ2lvbnM8L2d1aWxhYmVsPjwvdGVybT4KKzxsaXN0aXRlbT48cGFyYT5TZWxlY3Qg aG9saWRheSByZWdpb25zIGZyb20gdGhlIGRyb3AgZG93biBsaXN0LgorRm9yIGVhY2ggc2VsZWN0 ZWQgcmVnaW9uLCAma29yZ2FuaXplcjsgd2lsbCByZWNvZ25pemUgYW5kIGRpc3BsYXkKK2l0cyBp bXBvcnRhbnQgZGF0ZXMgYW5kIGhvbGlkYXlzIGluIHRoZSBhZ2VuZGEgYW5kIG1vbnRoIHZpZXdz LgorWW91IGNhbiBjb25maWd1cmUgdGhlIHR5cGVzIG9mIGhvbGlkYXlzIHRvIGRpc3BsYXkgd2l0 aCB0aGUKK0hvbGlkYXkgQ2F0ZWdvcmllcyBkcm9wIGRvd24gbGlzdCAoc2VlIG5leHQgZW50cnkp LgorPC9wYXJhPjwvbGlzdGl0ZW0+Cis8L3Zhcmxpc3RlbnRyeT4KKworPHZhcmxpc3RlbnRyeT4K Kzx0ZXJtPjxndWlsYWJlbD5Ib2xpZGF5IENhdGVnb3JpZXM8L2d1aWxhYmVsPjwvdGVybT4KKzxs aXN0aXRlbT48cGFyYT5TZWxlY3QgdGhlIGhvbGlkYXkgY2F0ZWdvcmllcyBmcm9tIHRoZSBkcm9w IGRvd24gbGlzdC4KK0J5IGRlZmF1bHQgYWxsIGhvbGlkYXkgdHlwZXMgYXJlIGVuYWJsZWQuICBT ZWxlY3QgdGhlIGhvbGlkYXkgY2F0ZWdvcmllcworeW91IHdhbnQgdG8gaGlkZSwgZm9yIGV4YW1w bGUgc29tZSBwZW9wbGUgYXJlIG5vdCBpbnRlcmVzdGluZyBpbiByZWxpZ2lvdXMgaG9saWRheXMu Cis8L3BhcmE+PC9saXN0aXRlbT4KIDwvdmFybGlzdGVudHJ5PgogCiA8dmFybGlzdGVudHJ5Pgpk aWZmIC0tZ2l0IGEvc3JjL2tvZ2xvYmFscy5jcHAgYi9zcmMva29nbG9iYWxzLmNwcAppbmRleCBk NTdhNzgzOTcuLmU1N2Q2NjQ3MyAxMDA2NDQKLS0tIGEvc3JjL2tvZ2xvYmFscy5jcHAKKysrIGIv c3JjL2tvZ2xvYmFscy5jcHAKQEAgLTgsNiArOCwxMCBAQAogCiAjaW5jbHVkZSAia29nbG9iYWxz LmgiCiAjaW5jbHVkZSAicHJlZnMva29wcmVmcy5oIgorCisjaW5jbHVkZSA8Q2FsZW5kYXJTdXBw b3J0L0tDYWxQcmVmcz4KKworI2luY2x1ZGUgPEtIb2xpZGF5cy9Ib2xpZGF5Q2F0ZWdvcmllcz4K ICNpbmNsdWRlIDxLSG9saWRheXMvSG9saWRheVJlZ2lvbj4KIAogI2luY2x1ZGUgPFFBcHBsaWNh dGlvbj4KQEAgLTMwLDYgKzM0LDcgQEAgS09HbG9iYWxzOjpLT0dsb2JhbHMoKSA9IGRlZmF1bHQ7 CiBLT0dsb2JhbHM6On5LT0dsb2JhbHMoKQogewogICAgIHFEZWxldGVBbGwobUhvbGlkYXlSZWdp b25zKTsKKyAgICBtSG9saWRheUNhdGVnb3JpZXMuY2xlYXIoKTsKIH0KIAogYm9vbCBLT0dsb2Jh bHM6OnJldmVyc2VMYXlvdXQoKQpAQCAtMzcsNyArNDIsNyBAQCBib29sIEtPR2xvYmFsczo6cmV2 ZXJzZUxheW91dCgpCiAgICAgcmV0dXJuIFFBcHBsaWNhdGlvbjo6aXNSaWdodFRvTGVmdCgpOwog fQogCi1RTWFwPFFEYXRlLCBRU3RyaW5nTGlzdD4gS09HbG9iYWxzOjpob2xpZGF5KGNvbnN0IFFE YXRlICZzdGFydCwgY29uc3QgUURhdGUgJmVuZCkgY29uc3QKK1FNYXA8UURhdGUsIFFTdHJpbmdM aXN0PiBLT0dsb2JhbHM6OmhvbGlkYXkoY29uc3QgUURhdGUgJnN0YXJ0LCBjb25zdCBRRGF0ZSAm ZW5kKQogewogICAgIFFNYXA8UURhdGUsIFFTdHJpbmdMaXN0PiBob2xpZGF5c0J5RGF0ZTsKIApA QCAtNDUsOCArNTAsMTAgQEAgUU1hcDxRRGF0ZSwgUVN0cmluZ0xpc3Q+IEtPR2xvYmFsczo6aG9s aWRheShjb25zdCBRRGF0ZSAmc3RhcnQsIGNvbnN0IFFEYXRlICZlbmQKICAgICAgICAgcmV0dXJu IGhvbGlkYXlzQnlEYXRlOwogICAgIH0KIAotICAgIGZvciAoY29uc3QgS0hvbGlkYXlzOjpIb2xp ZGF5UmVnaW9uICpyZWdpb24gOiBzdGQ6OmFzX2NvbnN0KG1Ib2xpZGF5UmVnaW9ucykpIHsKKyAg ICBzZXRIb2xpZGF5Q2F0ZWdvcmllcyhDYWxlbmRhclN1cHBvcnQ6OktDYWxQcmVmczo6aW5zdGFu Y2UoKS0+aG9saWRheUNhdGVnb3JpZXMoKSk7CisgICAgZm9yIChLSG9saWRheXM6OkhvbGlkYXlS ZWdpb24gKnJlZ2lvbiA6IHN0ZDo6YXNfY29uc3QobUhvbGlkYXlSZWdpb25zKSkgewogICAgICAg ICBpZiAocmVnaW9uICYmIHJlZ2lvbi0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICByZWdpb24t PnNldENhdGVnb3JpZXMoaG9saWRheUNhdGVnb3JpZXMoKSk7CiAgICAgICAgICAgICBjb25zdCBL SG9saWRheXM6OkhvbGlkYXk6Okxpc3QgbGlzdCA9IHJlZ2lvbi0+cmF3SG9saWRheXNXaXRoQXN0 cm9TZWFzb25zKHN0YXJ0LCBlbmQpOwogICAgICAgICAgICAgY29uc3QgaW50IGxpc3RDb3VudChs aXN0LmNvdW50KCkpOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Q291bnQ7 ICsraSkgewpAQCAtOTIsMyArOTksMTggQEAgUUxpc3Q8S0hvbGlkYXlzOjpIb2xpZGF5UmVnaW9u ICo+ICZLT0dsb2JhbHM6OmhvbGlkYXlzKCkKIHsKICAgICByZXR1cm4gbUhvbGlkYXlSZWdpb25z OwogfQorCit2b2lkIEtPR2xvYmFsczo6c2V0SG9saWRheUNhdGVnb3JpZXMoY29uc3QgUVN0cmlu Z0xpc3QgJmNhdGVnb3JpZXMpCit7CisgICAgbUhvbGlkYXlDYXRlZ29yaWVzLmNsZWFyKCk7Cisg ICAgZm9yIChjb25zdCBRU3RyaW5nICZjYXRlZ29yeSA6IGNhdGVnb3JpZXMpIHsKKyAgICAgICAg aWYgKEtIb2xpZGF5czo6aXNIb2xpZGF5Q2F0ZWdvcnlWYWxpZChjYXRlZ29yeSkpIHsKKyAgICAg ICAgICAgIG1Ib2xpZGF5Q2F0ZWdvcmllcy5hcHBlbmQoY2F0ZWdvcnkpOworICAgICAgICB9Cisg ICAgfQorfQorCitRU3RyaW5nTGlzdCBLT0dsb2JhbHM6OmhvbGlkYXlDYXRlZ29yaWVzKCkgY29u c3QKK3sKKyAgICByZXR1cm4gbUhvbGlkYXlDYXRlZ29yaWVzOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2tvZ2xvYmFscy5oIGIvc3JjL2tvZ2xvYmFscy5oCmluZGV4IDczNzViM2U1Mi4uZTQzODY3ODli IDEwMDY0NAotLS0gYS9zcmMva29nbG9iYWxzLmgKKysrIGIvc3JjL2tvZ2xvYmFscy5oCkBAIC0z MSw3ICszMSw3IEBAIHB1YmxpYzoKIAogICAgIH5LT0dsb2JhbHMoKTsKIAotICAgIFtbbm9kaXNj YXJkXV0gUU1hcDxRRGF0ZSwgUVN0cmluZ0xpc3Q+IGhvbGlkYXkoY29uc3QgUURhdGUgJnN0YXJ0 LCBjb25zdCBRRGF0ZSAmZW5kKSBjb25zdDsKKyAgICBbW25vZGlzY2FyZF1dIFFNYXA8UURhdGUs IFFTdHJpbmdMaXN0PiBob2xpZGF5KGNvbnN0IFFEYXRlICZzdGFydCwgY29uc3QgUURhdGUgJmVu ZCk7CiAKICAgICBbW25vZGlzY2FyZF1dIGludCBmaXJzdERheU9mV2VlaygpIGNvbnN0OwogCkBA IC00MywxMyArNDMsMjYgQEAgcHVibGljOgogICAgICovCiAgICAgdm9pZCBzZXRIb2xpZGF5cyhj b25zdCBRU3RyaW5nTGlzdCAmcmVnaW9ucyk7CiAKLSAgICAvKiogcmV0dXJuIHRoZSBIb2xpZGF5 UmVnaW9uIG9iamVjdCBvciAwIGlmIG5vbmUgaGFzIGJlZW4gZGVmaW5lZAorICAgIC8qKgorICAg ICAqIFJldHVybnMgdGhlIEhvbGlkYXlSZWdpb24gb2JqZWN0IG9yIDAgaWYgbm9uZSBoYXMgYmVl biBkZWZpbmVkCiAgICAgICovCiAgICAgW1tub2Rpc2NhcmRdXSBRTGlzdDxLSG9saWRheXM6Okhv bGlkYXlSZWdpb24gKj4gJmhvbGlkYXlzKCk7CiAKKyAgICAvKioKKyAgICAgKiBTZXQgd2hpY2gg aG9saWRheSBjYXRlZ29yaWVzIHRoZSB1c2VyIHdhbnRzIHRvIHVzZS4KKyAgICAgKiBAcGFyYW0g Y2F0ZWdvcmllcyBhIGxpc3Qgb2YgSG9saWRheSBDYXRlZ29yeSBzdHJpbmdzLgorICAgICAqLwor ICAgIHZvaWQgc2V0SG9saWRheUNhdGVnb3JpZXMoY29uc3QgUVN0cmluZ0xpc3QgJmNhdGVnb3Jp ZXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaG9saWRheSBjYXRlZ29yaWVzIGxp c3QKKyAgICAgKi8KKyAgICBbW25vZGlzY2FyZF1dIFFTdHJpbmdMaXN0IGhvbGlkYXlDYXRlZ29y aWVzKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBLT0dsb2JhbHMoKTsKIAogcHJpdmF0ZToK ICAgICBRTGlzdDxLSG9saWRheXM6OkhvbGlkYXlSZWdpb24gKj4gbUhvbGlkYXlSZWdpb25zOwor ICAgIFFTdHJpbmdMaXN0IG1Ib2xpZGF5Q2F0ZWdvcmllczsKIH07CmRpZmYgLS1naXQgYS9zcmMv a29udGFjdHBsdWdpbi9zcGVjaWFsZGF0ZXMvc2RzdW1tYXJ5d2lkZ2V0LmNwcCBiL3NyYy9rb250 YWN0cGx1Z2luL3NwZWNpYWxkYXRlcy9zZHN1bW1hcnl3aWRnZXQuY3BwCmluZGV4IDM0ZDU1MTcz MC4uMTA5NDExZDQyIDEwMDY0NAotLS0gYS9zcmMva29udGFjdHBsdWdpbi9zcGVjaWFsZGF0ZXMv c2RzdW1tYXJ5d2lkZ2V0LmNwcAorKysgYi9zcmMva29udGFjdHBsdWdpbi9zcGVjaWFsZGF0ZXMv c2RzdW1tYXJ5d2lkZ2V0LmNwcApAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPEFrb25hZGkv SXRlbUZldGNoU2NvcGU+CiAjaW5jbHVkZSA8QWtvbmFkaS9TZWFyY2hRdWVyeT4KICNpbmNsdWRl IDxDYWxlbmRhclN1cHBvcnQvQ2FsZW5kYXJTaW5nbGV0b24+CisjaW5jbHVkZSA8Q2FsZW5kYXJT dXBwb3J0L0tDYWxQcmVmcz4KICNpbmNsdWRlIDxDYWxlbmRhclN1cHBvcnQvVXRpbHM+CiAKICNp bmNsdWRlIDxLQ2FsZW5kYXJDb3JlL0NhbGVuZGFyPgpAQCAtMzU1LDYgKzM1Niw3IEBAIHZvaWQg U0RTdW1tYXJ5V2lkZ2V0OjpjcmVhdGVMYWJlbHMoKQogICAgIGlmIChtU2hvd0hvbGlkYXlzKSB7 CiAgICAgICAgIGlmIChpbml0SG9saWRheXMoKSkgewogICAgICAgICAgICAgZm9yIChkdCA9IFFE YXRlOjpjdXJyZW50RGF0ZSgpOyBkdCA8PSBRRGF0ZTo6Y3VycmVudERhdGUoKS5hZGREYXlzKG1E YXlzQWhlYWQgLSAxKTsgZHQgPSBkdC5hZGREYXlzKDEpKSB7CisgICAgICAgICAgICAgICAgbUhv bGlkYXlzLT5zZXRDYXRlZ29yaWVzKENhbGVuZGFyU3VwcG9ydDo6S0NhbFByZWZzOjppbnN0YW5j ZSgpLT5ob2xpZGF5Q2F0ZWdvcmllcygpKTsKICAgICAgICAgICAgICAgICBRTGlzdDxIb2xpZGF5 PiBjb25zdCBob2xpZGF5cyA9IG1Ib2xpZGF5cy0+cmF3SG9saWRheXNXaXRoQXN0cm9TZWFzb25z KGR0KTsKICAgICAgICAgICAgICAgICBRTGlzdDxIb2xpZGF5Pjo6Q29uc3RJdGVyYXRvciBpdCA9 IGhvbGlkYXlzLmNvbnN0QmVnaW4oKTsKICAgICAgICAgICAgICAgICBmb3IgKDsgaXQgIT0gaG9s aWRheXMuY29uc3RFbmQoKTsgKytpdCkgewpkaWZmIC0tZ2l0IGEvc3JjL3ByZWZzL2tvcHJlZnNk aWFsb2d0aW1lLmNwcCBiL3NyYy9wcmVmcy9rb3ByZWZzZGlhbG9ndGltZS5jcHAKaW5kZXggNjlm Mzk4YWMxLi4yMjVmMTE5ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9wcmVmcy9rb3ByZWZzZGlhbG9ndGlt ZS5jcHAKKysrIGIvc3JjL3ByZWZzL2tvcHJlZnNkaWFsb2d0aW1lLmNwcApAQCAtMyw2ICszLDcg QEAKIAogICBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiAyMDAwLTIwMDMgQ29ybmVsaXVzIFNjaHVt YWNoZXIgPHNjaHVtYWNoZXJAa2RlLm9yZz4KICAgU1BEWC1GaWxlQ29weXJpZ2h0VGV4dDogMjAw My0yMDA0IFJlaW5ob2xkIEthaW5ob2ZlciA8cmVpbmhvbGRAa2FpbmhvZmVyLmNvbT4KKyAgU1BE WC1GaWxlQ29weXJpZ2h0VGV4dDogMjAyNSBBbGxlbiBXaW50ZXIgPHdpbnRlckBrZGUub3JnPgog CiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyIFdJVEggTGljZW5z ZVJlZi1RdC1Db21tZXJjaWFsLWV4Y2VwdGlvbi0xLjAKICovCkBAIC0xMSwxMiArMTIsMTQgQEAK ICNpbmNsdWRlICJrb3ByZWZzLmgiCiAjaW5jbHVkZSA8Q2FsZW5kYXJTdXBwb3J0L0tDYWxQcmVm cz4KICNpbmNsdWRlIDxLQ29tYm9Cb3g+CisjaW5jbHVkZSA8S0hvbGlkYXlzL0hvbGlkYXlDYXRl Z29yaWVzPgogI2luY2x1ZGUgPEtIb2xpZGF5cy9Ib2xpZGF5UmVnaW9uPgogI2luY2x1ZGUgPEtM b2NhbGl6ZWRTdHJpbmc+CiAjaW5jbHVkZSA8S1BsdWdpbkZhY3Rvcnk+CiAjaW5jbHVkZSA8S1Rp bWVDb21ib0JveD4KICNpbmNsdWRlIDxLVXJsUmVxdWVzdGVyPgogI2luY2x1ZGUgPExpYmtkZXBp bS9LQ2hlY2tDb21ib0JveD4KKyNpbmNsdWRlIDxRQnV0dG9uR3JvdXA+CiAjaW5jbHVkZSA8UUNo ZWNrQm94PgogI2luY2x1ZGUgPFFDb21ib0JveD4KICNpbmNsdWRlIDxRRnJhbWU+CkBAIC02Miwx MSArNjUsMTIgQEAgS09QcmVmc0RpYWxvZ1RpbWU6OktPUHJlZnNEaWFsb2dUaW1lKFFPYmplY3Qg KnBhcmVudCwgY29uc3QgS1BsdWdpbk1ldGFEYXRhICZkYXQKICAgICBhdXRvIGhvbGlkYXlSZWdC b3ggPSBuZXcgUVdpZGdldChyZWdpb25hbFBhZ2UpOwogICAgIGF1dG8gaG9saWRheVJlZ0JveEhC b3hMYXlvdXQgPSBuZXcgUUhCb3hMYXlvdXQoaG9saWRheVJlZ0JveCk7CiAgICAgaG9saWRheVJl Z0JveEhCb3hMYXlvdXQtPnNldENvbnRlbnRzTWFyZ2lucyh7fSk7Ci0gICAgaG9saWRheXNMYXlv dXQtPmFkZFdpZGdldChob2xpZGF5UmVnQm94LCAxLCAwLCAxLCAyKTsKKyAgICBob2xpZGF5c0xh eW91dC0+YWRkV2lkZ2V0KGhvbGlkYXlSZWdCb3gsIDEsIDAsIDEsIDEpOwogCi0gICAgYXV0byBo b2xpZGF5TGFiZWwgPSBuZXcgUUxhYmVsKGkxOG5jKCJAbGFiZWwiLCAiVXNlIGhvbGlkYXkgcmVn aW9uOiIpLCBob2xpZGF5UmVnQm94KTsKKyAgICBhdXRvIGhvbGlkYXlMYWJlbCA9IG5ldyBRTGFi ZWwoaTE4bmMoIkBsYWJlbCIsICJVc2UgaG9saWRheSByZWdpb25zOiIpLCBob2xpZGF5UmVnQm94 KTsKICAgICBob2xpZGF5TGFiZWwtPnNldFRvb2xUaXAoQ2FsZW5kYXJTdXBwb3J0OjpLQ2FsUHJl ZnM6Omluc3RhbmNlKCktPmhvbGlkYXlzSXRlbSgpLT50b29sVGlwKCkpOwogICAgIGhvbGlkYXlM YWJlbC0+c2V0V2hhdHNUaGlzKENhbGVuZGFyU3VwcG9ydDo6S0NhbFByZWZzOjppbnN0YW5jZSgp LT5ob2xpZGF5c0l0ZW0oKS0+d2hhdHNUaGlzKCkpOworICAgIGhvbGlkYXlSZWdCb3hIQm94TGF5 b3V0LT5hZGRXaWRnZXQoaG9saWRheUxhYmVsKTsKIAogICAgIG1Ib2xpZGF5Q2hlY2tDb21ibyA9 IG5ldyBLUElNOjpLQ2hlY2tDb21ib0JveChob2xpZGF5UmVnQm94KTsKICAgICBob2xpZGF5UmVn Qm94SEJveExheW91dC0+YWRkV2lkZ2V0KG1Ib2xpZGF5Q2hlY2tDb21ibyk7CkBAIC0xMDgsNiAr MTEyLDQ1IEBAIEtPUHJlZnNEaWFsb2dUaW1lOjpLT1ByZWZzRGlhbG9nVGltZShRT2JqZWN0ICpw YXJlbnQsIGNvbnN0IEtQbHVnaW5NZXRhRGF0YSAmZGF0CiAgICAgICAgIG1Ib2xpZGF5Q2hlY2tD b21iby0+c2V0SXRlbUNoZWNrU3RhdGUobUhvbGlkYXlDaGVja0NvbWJvLT5maW5kRGF0YShyZWdp b25TdHIpLCBRdDo6Q2hlY2tlZCk7CiAgICAgfQogCisgICAgLy8gaG9saWRheSByZWdpb24gc2Vs ZWN0aW9uCisgICAgYXV0byBob2xpZGF5Q2F0Qm94ID0gbmV3IFFXaWRnZXQocmVnaW9uYWxQYWdl KTsKKyAgICBhdXRvIGhvbGlkYXlDYXRCb3hIQm94TGF5b3V0ID0gbmV3IFFIQm94TGF5b3V0KGhv bGlkYXlDYXRCb3gpOworICAgIGhvbGlkYXlDYXRCb3hIQm94TGF5b3V0LT5zZXRDb250ZW50c01h cmdpbnMoe30pOworICAgIGhvbGlkYXlzTGF5b3V0LT5hZGRXaWRnZXQoaG9saWRheUNhdEJveCwg MiwgMCwgMSwgMSk7CisKKyAgICBhdXRvIGhvbGlkYXlDYXRMYWJlbCA9IG5ldyBRTGFiZWwoaTE4 bmMoIkBsYWJlbCIsICJVc2UgaG9saWRheSBjYXRlZ29yaWVzOiIpLCBob2xpZGF5Q2F0Qm94KTsK KyAgICBob2xpZGF5Q2F0TGFiZWwtPnNldFRvb2xUaXAoQ2FsZW5kYXJTdXBwb3J0OjpLQ2FsUHJl ZnM6Omluc3RhbmNlKCktPmhvbGlkYXlDYXRlZ29yaWVzSXRlbSgpLT50b29sVGlwKCkpOworICAg IGhvbGlkYXlDYXRMYWJlbC0+c2V0V2hhdHNUaGlzKENhbGVuZGFyU3VwcG9ydDo6S0NhbFByZWZz OjppbnN0YW5jZSgpLT5ob2xpZGF5Q2F0ZWdvcmllc0l0ZW0oKS0+d2hhdHNUaGlzKCkpOworICAg IGhvbGlkYXlDYXRCb3hIQm94TGF5b3V0LT5hZGRXaWRnZXQoaG9saWRheUNhdExhYmVsKTsKKwor ICAgIG1Ib2xpZGF5VHlwZUNoZWNrQ29tYm8gPSBuZXcgS1BJTTo6S0NoZWNrQ29tYm9Cb3goaG9s aWRheUNhdEJveCk7CisgICAgaG9saWRheUNhdEJveEhCb3hMYXlvdXQtPmFkZFdpZGdldChtSG9s aWRheVR5cGVDaGVja0NvbWJvKTsKKyAgICBjb25uZWN0KG1Ib2xpZGF5VHlwZUNoZWNrQ29tYm8s ICZLUElNOjpLQ2hlY2tDb21ib0JveDo6Y2hlY2tlZEl0ZW1zQ2hhbmdlZCwgdGhpcywgJktPUHJl ZnNEaWFsb2dUaW1lOjpzbG90V2lkQ2hhbmdlZCk7CisgICAgaG9saWRheXNMYXlvdXQtPmFkZFdp ZGdldChtSG9saWRheVR5cGVDaGVja0NvbWJvKTsKKworICAgIG1Ib2xpZGF5VHlwZUNoZWNrQ29t Ym8tPnNldFRvb2xUaXAoQ2FsZW5kYXJTdXBwb3J0OjpLQ2FsUHJlZnM6Omluc3RhbmNlKCktPmhv bGlkYXlDYXRlZ29yaWVzSXRlbSgpLT50b29sVGlwKCkpOworICAgIG1Ib2xpZGF5VHlwZUNoZWNr Q29tYm8tPnNldFdoYXRzVGhpcyhDYWxlbmRhclN1cHBvcnQ6OktDYWxQcmVmczo6aW5zdGFuY2Uo KS0+aG9saWRheUNhdGVnb3JpZXNJdGVtKCktPndoYXRzVGhpcygpKTsKKworICAgIG1Ib2xpZGF5 VHlwZUNoZWNrQ29tYm8tPmNsZWFyKCk7CisgICAgbUhvbGlkYXlUeXBlQ2hlY2tDb21iby0+c2V0 RGVmYXVsdFRleHQoaTE4bmMoIkBpdGVtOmlubGlzdGJveCIsICJTZWxlY3QgSG9saWRheSBDYXRl Z29yaWVzIikpOworICAgIGNvbnN0IFFTdHJpbmdMaXN0IGNhdGVnb3JpZXMgPSBLSG9saWRheXM6 OmFsbEhvbGlkYXlDYXRlZ29yaWVzKCk7CisgICAgaW50IGl0ZW1ObyA9IDA7CisgICAgZm9yIChj b25zdCBhdXRvICZjYXRlZ29yeSA6IHN0ZDo6YXNfY29uc3QoY2F0ZWdvcmllcykpIHsKKyAgICAg ICAgY29uc3QgUVN0cmluZyB0ckNhdGVnb3J5ID0gS0hvbGlkYXlzOjp0cmFuc2xhdGVIb2xpZGF5 Q2F0ZWdvcnkoY2F0ZWdvcnkpOworICAgICAgICBtSG9saWRheVR5cGVDaGVja0NvbWJvLT5hZGRJ dGVtKHRyQ2F0ZWdvcnksIGNhdGVnb3J5KTsKKyAgICAgICAgbUhvbGlkYXlUeXBlQ2hlY2tDb21i by0+c2V0SXRlbURhdGEoaXRlbU5vKyssIEtIb2xpZGF5czo6aG9saWRheUNhdGVnb3J5RGVzY3Jp cHRpb24oY2F0ZWdvcnkpLCBRdDo6VG9vbFRpcFJvbGUpOworICAgIH0KKyAgICBjb25zdCBhdXRv IGhvbGlkYXlDYXRlZ29yaWVzID0gQ2FsZW5kYXJTdXBwb3J0OjpLQ2FsUHJlZnM6Omluc3RhbmNl KCktPmhvbGlkYXlDYXRlZ29yaWVzKCk7CisgICAgaWYgKCFob2xpZGF5Q2F0ZWdvcmllcy5pc0Vt cHR5KCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBRU3RyaW5nICZ0eXBlIDogaG9saWRheUNhdGVn b3JpZXMpIHsKKyAgICAgICAgICAgIG1Ib2xpZGF5VHlwZUNoZWNrQ29tYm8tPnNldEl0ZW1DaGVj a1N0YXRlKG1Ib2xpZGF5VHlwZUNoZWNrQ29tYm8tPmZpbmREYXRhKHR5cGUpLCBRdDo6Q2hlY2tl ZCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGNvbnN0IFFTdHJpbmcg JnR5cGUgOiBjYXRlZ29yaWVzKSB7CisgICAgICAgICAgICBtSG9saWRheVR5cGVDaGVja0NvbWJv LT5zZXRJdGVtQ2hlY2tTdGF0ZShtSG9saWRheVR5cGVDaGVja0NvbWJvLT5maW5kRGF0YSh0eXBl KSwgUXQ6OkNoZWNrZWQpOworICAgICAgICB9CisgICAgfQorCiAgICAgYXV0byB3b3JraW5nSG91 cnNHcm91cEJveCA9IG5ldyBRR3JvdXBCb3goaTE4bmMoIkB0aXRsZTpncm91cCIsICJXZWVrbHkg U2NoZWR1bGUiKSwgcmVnaW9uYWxQYWdlKTsKICAgICByZWdpb25hbExheW91dC0+YWRkV2lkZ2V0 KHdvcmtpbmdIb3Vyc0dyb3VwQm94LCAyLCAwKTsKIApAQCAtMjYwLDYgKzMwMywxNiBAQCB2b2lk IEtPUHJlZnNEaWFsb2dUaW1lOjp1c3JXcml0ZUNvbmZpZygpCiAgICAgfQogICAgIENhbGVuZGFy U3VwcG9ydDo6S0NhbFByZWZzOjppbnN0YW5jZSgpLT5tSG9saWRheXMgPSBIb2xpZGF5UmVnaW9u czsKIAorICAgIFFTdHJpbmdMaXN0IEhvbGlkYXlUeXBlczsKKyAgICBjb25zdCBhdXRvIGhvbGlk YXlUeXBlc0NoZWNrZWRJdGVtcyA9IG1Ib2xpZGF5VHlwZUNoZWNrQ29tYm8tPmNoZWNrZWRJdGVt cygpOworICAgIGZvciAoY29uc3QgUVN0cmluZyAmc3RyIDogaG9saWRheVR5cGVzQ2hlY2tlZEl0 ZW1zKSB7CisgICAgICAgIGNvbnN0IGludCBpbmRleCA9IG1Ib2xpZGF5VHlwZUNoZWNrQ29tYm8t PmZpbmRUZXh0KHN0cik7CisgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CisgICAgICAgICAgICBI b2xpZGF5VHlwZXMuYXBwZW5kKG1Ib2xpZGF5VHlwZUNoZWNrQ29tYm8tPml0ZW1EYXRhKGluZGV4 KS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBDYWxlbmRhclN1cHBvcnQ6OktD YWxQcmVmczo6aW5zdGFuY2UoKS0+bUhvbGlkYXlDYXRlZ29yaWVzID0gSG9saWRheVR5cGVzOwor CiAgICAgQ2FsZW5kYXJTdXBwb3J0OjpLQ2FsUHJlZnM6Omluc3RhbmNlKCktPm1SZW1pbmRlclRp bWUgPSBtUmVtaW5kZXJUaW1lU3Bpbi0+dmFsdWUoKTsKICAgICBDYWxlbmRhclN1cHBvcnQ6OktD YWxQcmVmczo6aW5zdGFuY2UoKS0+bVJlbWluZGVyVGltZVVuaXRzID0gbVJlbWluZGVyVW5pdHND b21iby0+Y3VycmVudEluZGV4KCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9wcmVmcy9rb3ByZWZzZGlh bG9ndGltZS5oIGIvc3JjL3ByZWZzL2tvcHJlZnNkaWFsb2d0aW1lLmgKaW5kZXggNmE3YjBiZDNm Li5lNDQ0MmMzMWYgMTAwNjQ0Ci0tLSBhL3NyYy9wcmVmcy9rb3ByZWZzZGlhbG9ndGltZS5oCisr KyBiL3NyYy9wcmVmcy9rb3ByZWZzZGlhbG9ndGltZS5oCkBAIC0zMCw2ICszMCw3IEBAIHByb3Rl Y3RlZDoKIHByaXZhdGU6CiAgICAgUVN0cmluZ0xpc3QgdHpvbmVuYW1lczsKICAgICBLUElNOjpL Q2hlY2tDb21ib0JveCAqbUhvbGlkYXlDaGVja0NvbWJvID0gbnVsbHB0cjsKKyAgICBLUElNOjpL Q2hlY2tDb21ib0JveCAqbUhvbGlkYXlUeXBlQ2hlY2tDb21ibyA9IG51bGxwdHI7CiAgICAgUVNw aW5Cb3ggKm1SZW1pbmRlclRpbWVTcGluID0gbnVsbHB0cjsKICAgICBLQ29tYm9Cb3ggKm1SZW1p bmRlclVuaXRzQ29tYm8gPSBudWxscHRyOwogICAgIFFDaGVja0JveCAqbVdvcmtEYXlzWzddOwpk aWZmIC0tZ2l0IGEvc3JjL3doYXRzbmV3L3doYXRzbmV3dHJhbnNsYXRpb25zLmNwcCBiL3NyYy93 aGF0c25ldy93aGF0c25ld3RyYW5zbGF0aW9ucy5jcHAKaW5kZXggZmIxMzdiMjhmLi40MzU0OGIx YmYgMTAwNjQ0Ci0tLSBhL3NyYy93aGF0c25ldy93aGF0c25ld3RyYW5zbGF0aW9ucy5jcHAKKysr IGIvc3JjL3doYXRzbmV3L3doYXRzbmV3dHJhbnNsYXRpb25zLmNwcApAQCAtMTksNiArMTksOCBA QCBRTGlzdDxLTGF6eUxvY2FsaXplZFN0cmluZz4gV2hhdHNOZXdUcmFuc2xhdGlvbnM6Omxhc3RO ZXdGZWF0dXJlcygpIGNvbnN0CiAgICAgICAgICAgICAgICAiU2V0dGluZyBhIGRlZmF1bHQgRXZl bnQgY2FsZW5kYXIgaGFzIGJlZW4gc3VwcG9ydGVkIGZvciBhIGxvbmcgdGltZS4gIFNlZSB0aGUg Q2FsZW5kYXIgTWFuYWdlciBjb250ZXh0IG1lbnUgXCJTZXQgYXMgRGVmYXVsdCBUb2RvIENhbGVu ZGFyXCIiKSwKICAgICAgICAga2xpMThuKCJBZ2VuZGEgdmlldzogb3B0aW9uYWxseSBkcmF3IGJv bGRlci9mYXR0ZXIgaG9yaXpvbnRhbCBncmlkIGxpbmVzIGV2ZXJ5IHR3byBob3Vycy4gVG8gZW5h YmxlIHRoaXMgYmVoYXZpb3VyLCBjaGVjayB0aGUgXCJEcmF3IGJvbGQgaG9yaXpvbnRhbCAiCiAg ICAgICAgICAgICAgICAiZ3JpZCBsaW5lcyBmb3IgdGhlIGV2ZW4gaG91cnNcIiBvcHRpb24gaW4g dGhlIFZpZXctPkFnZW5kYSBWaWV3IHRhYiIpLAorICAgICAgICBrbGkxOG4oIkl0IGlzIG5vdyBw b3NzaWJsZSB0byBoaWRlIGhvbGlkYXlzIHRoYXQgYmVsb25nIHRvIHNwZWNpZmljIGNhdGVnb3Jp ZXMsIGZvciBleGFtcGxlIHRvIGhpZGUgcmVsaWdpb3VzIGhvbGlkYXlzLiBTZWUgdGhlIENhdGVn b3JpZXMgY29tYm9ib3ggaW4gIgorICAgICAgICAgICAgICAgInRoZSBIb2xpZGF5cyBzZWN0aW9u IG9mIHRoZSBUaW1lJkRhdGUtPlJlZ2lvbmFsIHRhYiIpLAogICAgIH07CiAgICAgcmV0dXJuIGlu Zm87CiB9Cgo=