From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Dave Dykstra <2129743+DrDaveD@users.noreply.github.com> To: git-commits@fedoraproject.org Subject: [rpms/apptainer] migrate-spdx: update to 1.1.0-rc.3 Date: Mon, 03 Aug 2026 17:53:00 GMT Message-ID: <178577958006.1.6992912321304719293.rpms-apptainer-a51a647e58fe@fedoraproject.org> List-ID: X-Git-Repo: rpms/apptainer X-Git-Branch: migrate-spdx X-Git-Rev: a51a647e58fea04bc2010e027dbbd89ed95d394f QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYXBwdGFpbmVyCkJy YW5jaCA6IG1pZ3JhdGUtc3BkeApDb21taXQgOiBhNTFhNjQ3ZTU4ZmVhMDRiYzIwMTBlMDI3ZGJi ZDg5ZWQ5NWQzOTRmCkF1dGhvciA6IERhdmUgRHlrc3RyYSA8MjEyOTc0MytEckRhdmVEQHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZSAgIDogMjAyMi0wOS0wNlQxMzoxNjo0NS0wNTowMApT dGF0cyAgOiArMTg0Ny8tMzIgaW4gNSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9y YXByb2plY3Qub3JnL3JwbXMvYXBwdGFpbmVyL2MvYTUxYTY0N2U1OGZlYTA0YmMyMDEwZTAyN2Ri YmQ4OWVkOTVkMzk0Zj9icmFuY2g9bWlncmF0ZS1zcGR4CgpMb2c6CnVwZGF0ZSB0byAxLjEuMC1y Yy4zCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDk4OTJk ZDguLjc0MTQzMzEgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAt MSArMSwyIEBACiAvYXBwdGFpbmVyLSoudGFyLmd6Cisvc3F1YXNoZnVzZS0wLjEuMTA1LnRhci5n egoKZGlmZiAtLWdpdCBhLzU5MC5wYXRjaCBiLzU5MC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggY2Y4ZDdkZS4uMDAwMDAwMAotLS0gYS81OTAucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwyMyArMCwwIEBACi1Gcm9tIGVmMzA0NjllMzMxMGUyYjU3YmEyOTA5ODQ5NmZlOTBj YThkMGY1NTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYXZlIER5a3N0cmEgPDIx Mjk3NDMrRHJEYXZlREB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci1EYXRlOiBUdWUsIDIgQXVn IDIwMjIgMTE6NTU6MTcgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4IDMyYml0IGNvbXBpbGF0 aW9uCi0KLVNpZ25lZC1vZmYtYnk6IERhdmUgRHlrc3RyYSA8MjEyOTc0MytEckRhdmVEQHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KLS0tLQotIGludGVybmFsL3BrZy91dGlsL2ZzL292ZXJsYXkv b3ZlcmxheV9saW51eC5nbyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2ludGVybmFsL3BrZy91dGlsL2ZzL292ZXJs YXkvb3ZlcmxheV9saW51eC5nbyBiL2ludGVybmFsL3BrZy91dGlsL2ZzL292ZXJsYXkvb3Zlcmxh eV9saW51eC5nbwotaW5kZXggYjVlZmY0YmQyLi43YjIyMGY5N2YgMTAwNjQ0Ci0tLS0gYS9pbnRl cm5hbC9wa2cvdXRpbC9mcy9vdmVybGF5L292ZXJsYXlfbGludXguZ28KLSsrKyBiL2ludGVybmFs L3BrZy91dGlsL2ZzL292ZXJsYXkvb3ZlcmxheV9saW51eC5nbwotQEAgLTgxLDcgKzgxLDcgQEAg ZnVuYyBjaGVjayhwYXRoIHN0cmluZywgZCBkaXIsIGFsbG93VHlwZSBpbnQ2NCkgZXJyb3Igewot IAkJcmV0dXJuIG5pbAotIAl9Ci0gCi0tCWlmIHN0ZnMuVHlwZSA9PSBhbGxvd1R5cGUgewotKwlp ZiBpbnQ2NChzdGZzLlR5cGUpID09IGFsbG93VHlwZSB7Ci0gCQlyZXR1cm4gbmlsCi0gCX0KLSAK CmRpZmYgLS1naXQgYS83MC5wYXRjaCBiLzcwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjlkODY2MGQKLS0tIC9kZXYvbnVsbAorKysgYi83MC5wYXRjaApAQCAtMCww ICsxLDE3ODQgQEAKK0Zyb20gMmZmODM3YjgxNGU4NGVlZGMyNTU3NDAxNGRhOWVkMjRlZTQ0Yjdi NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtldmluIFZpZ29yIDxrdmlnb3JAZ21h aWwuY29tPgorRGF0ZTogVGh1LCA2IEZlYiAyMDIwIDA5OjU5OjU2IC0wODAwCitTdWJqZWN0OiBb UEFUQ0ggMS8zXSBBZGQgbG9ja2luZyB0byBjYWNoZSBBUEkgaW4gYW50aWNpcGF0aW9uIG9mIG11 bHRpdGhyZWFkZWQKKyBkZWNvbXByZXNzaW9uLgorCitUaGUgZXhpc3RpbmcgY2FjaGUgQVBJIGhh cyBlZmZlY3RpdmVseSBubyBsb2NraW5nIGFuZCByZWxpZXMgb24gdGhlIHNpbmdsZS0KK3RocmVh ZGVkIG5hdHVyZSBvZiB0aGUgY29kZSB0byBwcmV2ZW50IGNvbnRlbnRpb24gb24gY2FjaGUgZW50 cmllcy4KK0FzIGEgZmlyc3Qgc3RlcCB0byBtdWx0aXRocmVhZGluZyB0aGUgZHJpdmVyLCByZWZh Y3RvciB0aGUgY2FjaGUgQVBJIHRvIGFsbG93CithbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbnMu IEluIHRoaXMgY2hhbmdlc2V0IHRoZSBBUEkgaXMgY2hhbmdlZCBidXQgdGhlCitpbnRlcm5hbCBj YWNoZSBpbXBsZW1lbnRhdGlvbiBpcyBub3QgbWFrZSB0aHJlYWQtc2FmZSwgc28gaXQgc3RpbGwg c3VpdGFibGUKK29ubHkgZm9yIHNpbmdsZS10aHJlYWRlZCB1c2FnZS4KKworU3BlY2lmaWMgY2hh bmdlczoKKworKiAgIHNxZnNfY2FjaGUgdHlwZSBpcyBtYWRlIG9wYXF1ZS4KKyogICBwcmV2aW91 c2x5LCBuZXdseSBhbGxvY2F0ZWQgY2FjaGUgZW50cmllcyB3ZXJlIGFzc3VtZWQgdmFsaWQuIFRo aXMgbWVhbnQgdGhhdAorICAgIG9uIGFueSBmYWlsdXJlIHBhdGggZm9sbG93aW5nIGEgY2FjaGUg ZW50cnkgYWxsb2NhdGlvbiwgb25lIGhhZCB0byBiZSBjYXJlZnVsCisgICAgdG8gY2FsbCBzcWZz X2NhY2hlX2ludmFsaWRhdGUoKS4gVGhlIGFzc3VtcHRpb24gaXMgbm93IHJldmVyc2VkLCBjYWNo ZQorICAgIGVudHJpZXMgYXJlIGludmFsaWQgdW50aWwgZXhwbGljaXRseSBtYXJrZWQgdmFsaWQg d2l0aAorICAgIHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoKS4gVGhpcyBzaW1wbGlmaWVzIGVycm9y IGhhbmRsaW5nLgorKiAgIGJsb2NrIGNhY2hlIGNvZGUgd2FzIGludGVybWl4ZWQgd2l0aCBnZW5l cmljIGNhY2hlIGNvZGUsIHJlbG9jYXRlIHRvIGZzLmMKKyogICBjYWNoZSBldmljdGlvbiBsZWQg dG8gb2JqZWN0IGRlc3RydWN0aW9uIGluIGJsb2NrIGNhY2hlLiBUaGUgb25seSB0aGluZworICAg IHByZXZlbnRpbmcgY2FjaGUgZXZpY3Rpb24gd2hpbGUgYmxvY2sgb2JqZWN0IGluIHVzZSBpcyBz aW5nbGUtdGhyZWFkZWQKKyAgICBuYXR1cmUgb2YgY29kZS4gSW5zdGVhZCB1c2UgYSByZWZjb3Vu dGluZyBtZWNoYW5pc20gb24gdGhlIGJsb2NrIGVudHJpZXMKKyAgICBzbyB0aGF0IHdlIGNhbiBp bmRlcGVuZGVudGx5IG1hbmFnZSBibG9jayBsaWZldGltZS4KKy0tLQorIE1ha2VmaWxlLmFtICAg ICAgIHwgICA2ICstCisgY2FjaGUuYyAgICAgICAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQorIGNhY2hlLmggICAgICAgICAgIHwgIDQwICsr KysrKy0tLS0tLS0KKyBjb21tb24uaCAgICAgICAgICB8ICAyNiArKysrKysrKy0KKyBmaWxlLmMg ICAgICAgICAgICB8ICAyMyArKysrLS0tLQorIGZpbGUuaCAgICAgICAgICAgIHwgICA0IC0tCisg ZnMuYyAgICAgICAgICAgICAgfCAgNjEgKysrKysrKysrKysrKysrKy0tLS0KKyBmcy5oICAgICAg ICAgICAgICB8ICAgNSArKworIHRhYmxlLmMgICAgICAgICAgIHwgICAyICstCisgdGVzdHMvY2Fj aGV0ZXN0LmMgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDEwIGZp bGVzIGNoYW5nZWQsIDMxNCBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCisgY3JlYXRl IG1vZGUgMTAwNjQ0IHRlc3RzL2NhY2hldGVzdC5jCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5h bSBiL01ha2VmaWxlLmFtCitpbmRleCA1NjU5Y2QyMi4uZWFmN2FjOTcgMTAwNjQ0CistLS0gYS9N YWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC0xMDUsOSArMTA1LDExIEBAIGVuZGlm CisgVEVTVFMgPQorIGlmIFNRX0ZVU0VfVEVTVFMKKyBURVNUUyArPSB0ZXN0cy9sbC1zbW9rZS5z aAorLWNoZWNrX1BST0dSQU1TID0gZW5kaWFudGVzdAorK2NoZWNrX1BST0dSQU1TID0gY2FjaGV0 ZXN0IGVuZGlhbnRlc3QKKytjYWNoZXRlc3RfU09VUkNFUz10ZXN0cy9jYWNoZXRlc3QuYworK2Nh Y2hldGVzdF9MREFERD1saWJzcXVhc2hmdXNlLmxhICQoQ09NUFJFU1NJT05fTElCUykKKyBlbmRp YW50ZXN0X1NPVVJDRVMgPSB0ZXN0cy9lbmRpYW50ZXN0LmMKKy1URVNUUyArPSBlbmRpYW50ZXN0 CisrVEVTVFMgKz0gY2FjaGV0ZXN0IGVuZGlhbnRlc3QKKyBlbmRpZgorIGlmIFNRX0RFTU9fVEVT VFMKKyBURVNUUyArPSB0ZXN0cy9scy5zaAorZGlmZiAtLWdpdCBhL2NhY2hlLmMgYi9jYWNoZS5j CitpbmRleCAwZGVhY2ZjYS4uMzZkMDIyMzQgMTAwNjQ0CistLS0gYS9jYWNoZS5jCisrKysgYi9j YWNoZS5jCitAQCAtMjIsODUgKzIyLDEyMSBAQAorICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICAqIFRI SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE QU1BR0UuCisgICovCisrCisrI2luY2x1ZGUgImNvbmZpZy5oIgorICNpbmNsdWRlICJjYWNoZS5o IgorIAorICNpbmNsdWRlICJmcy5oIgorIAorKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVk ZSA8c3RkbGliLmg+CisgCisrdHlwZWRlZiBzdHJ1Y3Qgc3Fmc19jYWNoZV9pbnRlcm5hbCB7Cisr CXVpbnQ4X3QgKmJ1ZjsKKysKKysJc3Fmc19jYWNoZV9kaXNwb3NlIGRpc3Bvc2U7CisrCisrCXNp emVfdCBzaXplLCBjb3VudDsKKysJc2l6ZV90IG5leHQ7IC8qIG5leHQgYmxvY2sgdG8gZXZpY3Qg Ki8KKyt9IHNxZnNfY2FjaGVfaW50ZXJuYWw7CisrCisrdHlwZWRlZiBzdHJ1Y3QgeworKwlpbnQg dmFsaWQ7CisrCXNxZnNfY2FjaGVfaWR4IGlkeDsKKyt9IHNxZnNfY2FjaGVfZW50cnlfaGRyOwor KworIHNxZnNfZXJyIHNxZnNfY2FjaGVfaW5pdChzcWZzX2NhY2hlICpjYWNoZSwgc2l6ZV90IHNp emUsIHNpemVfdCBjb3VudCwKKy0JCXNxZnNfY2FjaGVfZGlzcG9zZSBkaXNwb3NlKSB7CistCWNh Y2hlLT5zaXplID0gc2l6ZTsKKy0JY2FjaGUtPmNvdW50ID0gY291bnQ7CistCWNhY2hlLT5kaXNw b3NlID0gZGlzcG9zZTsKKy0JY2FjaGUtPm5leHQgPSAwOworLQkKKy0JY2FjaGUtPmlkeHMgPSBj YWxsb2MoY291bnQsIHNpemVvZihzcWZzX2NhY2hlX2lkeCkpOworLQljYWNoZS0+YnVmID0gY2Fs bG9jKGNvdW50LCBzaXplKTsKKy0JaWYgKGNhY2hlLT5pZHhzICYmIGNhY2hlLT5idWYpCisrCQkJ IHNxZnNfY2FjaGVfZGlzcG9zZSBkaXNwb3NlKSB7CisrCisrCXNxZnNfY2FjaGVfaW50ZXJuYWwg KmMgPSBtYWxsb2Moc2l6ZW9mKHNxZnNfY2FjaGVfaW50ZXJuYWwpKTsKKysJaWYgKCFjKSB7Cisr CQlyZXR1cm4gU1FGU19FUlI7CisrCX0KKysKKysJYy0+c2l6ZSA9IHNpemUgKyBzaXplb2Yoc3Fm c19jYWNoZV9lbnRyeV9oZHIpOworKwljLT5jb3VudCA9IGNvdW50OworKwljLT5kaXNwb3NlID0g ZGlzcG9zZTsKKysJYy0+bmV4dCA9IDA7CisrCisrCWMtPmJ1ZiA9IGNhbGxvYyhjb3VudCwgYy0+ c2l6ZSk7CisrCisrCWlmIChjLT5idWYpIHsKKysJCSpjYWNoZSA9IGM7CisgCQlyZXR1cm4gU1FG U19PSzsKKy0JCistCXNxZnNfY2FjaGVfZGVzdHJveShjYWNoZSk7CisrCX0KKysKKysJc3Fmc19j YWNoZV9kZXN0cm95KCZjKTsKKyAJcmV0dXJuIFNRRlNfRVJSOworIH0KKyAKKy1zdGF0aWMgdm9p ZCAqc3Fmc19jYWNoZV9lbnRyeShzcWZzX2NhY2hlICpjYWNoZSwgc2l6ZV90IGkpIHsKKy0JcmV0 dXJuIGNhY2hlLT5idWYgKyBpICogY2FjaGUtPnNpemU7Cisrc3RhdGljIHNxZnNfY2FjaGVfZW50 cnlfaGRyICpzcWZzX2NhY2hlX2VudHJ5X2hlYWRlcigKKysJCQkJCQkgICAgIHNxZnNfY2FjaGVf aW50ZXJuYWwqIGNhY2hlLAorKwkJCQkJCSAgICAgc2l6ZV90IGkpIHsKKysJcmV0dXJuIChzcWZz X2NhY2hlX2VudHJ5X2hkciAqKShjYWNoZS0+YnVmICsgaSAqIGNhY2hlLT5zaXplKTsKKyt9Cisr Cisrc3RhdGljIHZvaWQqIHNxZnNfY2FjaGVfZW50cnkoc3Fmc19jYWNoZV9pbnRlcm5hbCogY2Fj aGUsIHNpemVfdCBpKSB7CisrCXJldHVybiAodm9pZCAqKShzcWZzX2NhY2hlX2VudHJ5X2hlYWRl cihjYWNoZSwgaSkgKyAxKTsKKyB9CisgCisgdm9pZCBzcWZzX2NhY2hlX2Rlc3Ryb3koc3Fmc19j YWNoZSAqY2FjaGUpIHsKKy0JaWYgKGNhY2hlLT5idWYgJiYgY2FjaGUtPmlkeHMpIHsKKy0JCXNp emVfdCBpOworLQkJZm9yIChpID0gMDsgaSA8IGNhY2hlLT5jb3VudDsgKytpKSB7CistCQkJaWYg KGNhY2hlLT5pZHhzW2ldICE9IFNRRlNfQ0FDSEVfSURYX0lOVkFMSUQpCistCQkJCWNhY2hlLT5k aXNwb3NlKHNxZnNfY2FjaGVfZW50cnkoY2FjaGUsIGkpKTsKKysJaWYgKGNhY2hlICYmICpjYWNo ZSkgeworKwkJc3Fmc19jYWNoZV9pbnRlcm5hbCAqYyA9ICpjYWNoZTsKKysJCWlmIChjLT5idWYp IHsKKysJCQlzaXplX3QgaTsKKysJCQlmb3IgKGkgPSAwOyBpIDwgYy0+Y291bnQ7ICsraSkgewor KwkJCQlzcWZzX2NhY2hlX2VudHJ5X2hkciAqaGRyID0KKysJCQkJCXNxZnNfY2FjaGVfZW50cnlf aGVhZGVyKGMsIGkpOworKwkJCQlpZiAoaGRyLT52YWxpZCkgeworKwkJCQkJYy0+ZGlzcG9zZSgo dm9pZCAqKShoZHIgKyAxKSk7CisrCQkJCX0KKysJCQl9CisgCQl9CisrCQlmcmVlKGMtPmJ1Zik7 CisrCQlmcmVlKGMpOworKwkJKmNhY2hlID0gTlVMTDsKKyAJfQorLQlmcmVlKGNhY2hlLT5idWYp OworLQlmcmVlKGNhY2hlLT5pZHhzKTsKKyB9CisgCisgdm9pZCAqc3Fmc19jYWNoZV9nZXQoc3Fm c19jYWNoZSAqY2FjaGUsIHNxZnNfY2FjaGVfaWR4IGlkeCkgeworIAlzaXplX3QgaTsKKy0JZm9y IChpID0gMDsgaSA8IGNhY2hlLT5jb3VudDsgKytpKSB7CistCQlpZiAoY2FjaGUtPmlkeHNbaV0g PT0gaWR4KQorLQkJCXJldHVybiBzcWZzX2NhY2hlX2VudHJ5KGNhY2hlLCBpKTsKKysJc3Fmc19j YWNoZV9pbnRlcm5hbCAqYyA9ICpjYWNoZTsKKysJc3Fmc19jYWNoZV9lbnRyeV9oZHIgKmhkcjsK KysKKysJZm9yIChpID0gMDsgaSA8IGMtPmNvdW50OyArK2kpIHsKKysJCWhkciA9IHNxZnNfY2Fj aGVfZW50cnlfaGVhZGVyKGMsIGkpOworKwkJaWYgKGhkci0+aWR4ID09IGlkeCkgeworKwkJCWFz c2VydChoZHItPnZhbGlkKTsKKysJCQlyZXR1cm4gc3Fmc19jYWNoZV9lbnRyeShjLCBpKTsKKysJ CX0KKyAJfQorLQlyZXR1cm4gTlVMTDsKKy19CisgCistdm9pZCAqc3Fmc19jYWNoZV9hZGQoc3Fm c19jYWNoZSAqY2FjaGUsIHNxZnNfY2FjaGVfaWR4IGlkeCkgeworLQlzaXplX3QgaSA9IChjYWNo ZS0+bmV4dCsrKTsKKy0JY2FjaGUtPm5leHQgJT0gY2FjaGUtPmNvdW50OworLQkKKy0JaWYgKGNh Y2hlLT5pZHhzW2ldICE9IFNRRlNfQ0FDSEVfSURYX0lOVkFMSUQpCistCQljYWNoZS0+ZGlzcG9z ZShzcWZzX2NhY2hlX2VudHJ5KGNhY2hlLCBpKSk7CistCQorLQljYWNoZS0+aWR4c1tpXSA9IGlk eDsKKy0JcmV0dXJuIHNxZnNfY2FjaGVfZW50cnkoY2FjaGUsIGkpOworLX0KKysJLyogTm8gZXhp c3RpbmcgZW50cnk7IGZyZWUgb25lIGlmIG5lY2Vzc2FyeSwgYWxsb2NhdGUgYSBuZXcgb25lLiAq LworKwlpID0gKGMtPm5leHQrKyk7CisrCWMtPm5leHQgJT0gYy0+Y291bnQ7CisgCistLyogc3Fm c19jYWNoZV9hZGQgY2FuIGJlIGNhbGxlZCBidXQgdGhlIGNhbGxlciBjYW4gZmFpbCB0byBmaWxs IGl0IChJTworLSAqIGVycm9yLCBldGMpLiAgc3Fmc19jYWNoZV9pbnZhbGlkYXRlIGludmFsaWRh dGVzIHRoZSBjYWNoZSBlbnRyeS4KKy0gKiBJdCBkb2VzIG5vdCBjYWxsIGRpc3Bvc2U7IGl0IG1l cmVseSBtYXJrcyB0aGUgZW50cnkgYXMgcmV1c2FibGUKKy0gKiBzaW5jZSBpdCBpcyBuZXZlciBm dWxseSBpbml0aWFsaXplZC4KKy0gKi8KKy12b2lkIHNxZnNfY2FjaGVfaW52YWxpZGF0ZShzcWZz X2NhY2hlICpjYWNoZSwgc3Fmc19jYWNoZV9pZHggaWR4KSB7CistCXNpemVfdCBpOworLQlmb3Ig KGkgPSAwOyBpIDwgY2FjaGUtPmNvdW50OyArK2kpIHsKKy0JCWlmIChjYWNoZS0+aWR4c1tpXSA9 PSBpZHgpIHsKKy0JCQljYWNoZS0+aWR4c1tpXSA9IFNRRlNfQ0FDSEVfSURYX0lOVkFMSUQ7Cist CQkJcmV0dXJuOworLQkJfQorKwloZHIgPSBzcWZzX2NhY2hlX2VudHJ5X2hlYWRlcihjLCBpKTsK KysJaWYgKGhkci0+dmFsaWQpIHsKKysJCS8qIGV2aWN0ICovCisrCQljLT5kaXNwb3NlKCh2b2lk ICopKGhkciArIDEpKTsKKysJCWhkci0+dmFsaWQgPSAwOworIAl9CisrCisrCWhkci0+aWR4ID0g aWR4OworKwlyZXR1cm4gKHZvaWQgKikoaGRyICsgMSk7CisrfQorKworK2ludCBzcWZzX2NhY2hl X2VudHJ5X3ZhbGlkKGNvbnN0IHNxZnNfY2FjaGUgKmNhY2hlLCBjb25zdCB2b2lkICplKSB7Cisr CXNxZnNfY2FjaGVfZW50cnlfaGRyICpoZHIgPSAoKHNxZnNfY2FjaGVfZW50cnlfaGRyICopZSkg LSAxOworKwlyZXR1cm4gaGRyLT52YWxpZDsKKyB9CisgCistc3RhdGljIHZvaWQgc3Fmc19ibG9j a19jYWNoZV9kaXNwb3NlKHZvaWQgKmRhdGEpIHsKKy0Jc3Fmc19ibG9ja19jYWNoZV9lbnRyeSAq ZW50cnkgPSAoc3Fmc19ibG9ja19jYWNoZV9lbnRyeSopZGF0YTsKKy0Jc3Fmc19ibG9ja19kaXNw b3NlKGVudHJ5LT5ibG9jayk7Cisrdm9pZCBzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoc3Fm c19jYWNoZSAqY2FjaGUsIHZvaWQgKmUpIHsKKysJc3Fmc19jYWNoZV9lbnRyeV9oZHIgKmhkciA9 ICgoc3Fmc19jYWNoZV9lbnRyeV9oZHIgKillKSAtIDE7CisrCWFzc2VydChoZHItPnZhbGlkID09 IDApOworKwloZHItPnZhbGlkID0gMTsKKyB9CisgCistc3Fmc19lcnIgc3Fmc19ibG9ja19jYWNo ZV9pbml0KHNxZnNfY2FjaGUgKmNhY2hlLCBzaXplX3QgY291bnQpIHsKKy0JcmV0dXJuIHNxZnNf Y2FjaGVfaW5pdChjYWNoZSwgc2l6ZW9mKHNxZnNfYmxvY2tfY2FjaGVfZW50cnkpLCBjb3VudCwK Ky0JCSZzcWZzX2Jsb2NrX2NhY2hlX2Rpc3Bvc2UpOworK3ZvaWQgc3Fmc19jYWNoZV9wdXQoY29u c3Qgc3Fmc19jYWNoZSAqY2FjaGUsIGNvbnN0IHZvaWQgKmUpIHsKKysJLy8gbmFkYSwgd2UgaGF2 ZSBubyBsb2NraW5nIGluIHNpbmdsZS10aHJlYWRlZCBpbXBsZW1lbnRhdGlvbi4KKyB9CitkaWZm IC0tZ2l0IGEvY2FjaGUuaCBiL2NhY2hlLmgKK2luZGV4IGI3OGM1MjRkLi5kYTQ3MTM1MiAxMDA2 NDQKKy0tLSBhL2NhY2hlLmgKKysrKyBiL2NhY2hlLmgKK0BAIC0zMywzNSArMzMsMzcgQEAKKyAg KiAgLSBObyB0aHJlYWQgc2FmZXR5CisgICogIC0gTWlzc2VzIGFyZSBjYWxsZXIncyByZXNwb25z aWJpbGl0eQorICAqLworLSNkZWZpbmUgU1FGU19DQUNIRV9JRFhfSU5WQUxJRCAwCisgCisgdHlw ZWRlZiB1aW50NjRfdCBzcWZzX2NhY2hlX2lkeDsKKyB0eXBlZGVmIHZvaWQgKCpzcWZzX2NhY2hl X2Rpc3Bvc2UpKHZvaWQqIGRhdGEpOworIAorLXR5cGVkZWYgc3RydWN0IHsKKy0Jc3Fmc19jYWNo ZV9pZHggKmlkeHM7CistCXVpbnQ4X3QgKmJ1ZjsKKy0JCistCXNxZnNfY2FjaGVfZGlzcG9zZSBk aXNwb3NlOworLQkKKy0Jc2l6ZV90IHNpemUsIGNvdW50OworLQlzaXplX3QgbmV4dDsgLyogbmV4 dCBibG9jayB0byBldmljdCAqLworLX0gc3Fmc19jYWNoZTsKKytzdHJ1Y3Qgc3Fmc19jYWNoZV9p bnRlcm5hbDsKKyt0eXBlZGVmIHN0cnVjdCBzcWZzX2NhY2hlX2ludGVybmFsICpzcWZzX2NhY2hl OworIAorIHNxZnNfZXJyIHNxZnNfY2FjaGVfaW5pdChzcWZzX2NhY2hlICpjYWNoZSwgc2l6ZV90 IHNpemUsIHNpemVfdCBjb3VudCwKKyAJc3Fmc19jYWNoZV9kaXNwb3NlIGRpc3Bvc2UpOworIHZv aWQgc3Fmc19jYWNoZV9kZXN0cm95KHNxZnNfY2FjaGUgKmNhY2hlKTsKKyAKKysvKiBHZXQgYW4g ZW50cnkgZm9yIHRoZSBnaXZlbiBpbmRleC4KKysgKgorKyAqIFRoaXMgd2lsbCBhbHdheXMgc3Vj Y2VlZCAoZXZpY3RpbmcgaWYgbmVjZXNzYXJ5KS4gVGhlIGNhbGxlciBtdXN0IHRoZW4KKysgKiBj YWxsIHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoKSB0byBkZXRlcm1pbmUgaWYgdGhlIGVudHJ5IGlz IHZhbGlkLiBJZiBub3QKKysgKiB2YWxpZCwgdGhlIGVudHJ5IGlzIG5ld2x5IGFsbG9jYXRlZCBh bmQgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKKysgKiBpbml0aWFsaXppbmcgaXQgYW5k IHRoZW4gY2FsbGluZyBzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoKS4KKysgKgorKyAqIFRo aXMgY2FsbCBtYXkgYmxvY2sgaW4gbXVsdGl0aHJlYWRlZCBjYXNlLgorKyAqCisrICogSW4gbXVs dGl0aHJlYWRlZCBjYXNlLCB0aGUgY2FjaGUgaXMgbG9ja2VkIG9uIHJldHVybiAobm8gZW50cmll cyBjYW4KKysgKiBiZSBhZGRlZCBvciByZW1vdmVkKS4gQ2FsbGVyIG11c3QgY2FsbCBzcWZzX2Nh Y2hlX3B1dCgpIHdoZW4gaXQgaXMgc2FmZQorKyAqIHRvIGV2aWN0IHRoZSByZXR1cm5lZCBjYWNo ZSBlbnRyeS4KKysgKi8KKyB2b2lkICpzcWZzX2NhY2hlX2dldChzcWZzX2NhY2hlICpjYWNoZSwg c3Fmc19jYWNoZV9pZHggaWR4KTsKKy12b2lkICpzcWZzX2NhY2hlX2FkZChzcWZzX2NhY2hlICpj YWNoZSwgc3Fmc19jYWNoZV9pZHggaWR4KTsKKy12b2lkIHNxZnNfY2FjaGVfaW52YWxpZGF0ZShz cWZzX2NhY2hlICpjYWNoZSwgc3Fmc19jYWNoZV9pZHggaWR4KTsKKy0KKy0KKy10eXBlZGVmIHN0 cnVjdCB7CistCXNxZnNfYmxvY2sgKmJsb2NrOworLQlzaXplX3QgZGF0YV9zaXplOworLX0gc3Fm c19ibG9ja19jYWNoZV9lbnRyeTsKKysvKiBpbmZvcm0gY2FjaGUgaXQgaXMgbm93IHNhZmUgdG8g ZXZpY3QgdGhpcyBlbnRyeS4gKi8KKyt2b2lkIHNxZnNfY2FjaGVfcHV0KGNvbnN0IHNxZnNfY2Fj aGUgKmNhY2hlLCBjb25zdCB2b2lkICplKTsKKyAKKy1zcWZzX2VyciBzcWZzX2Jsb2NrX2NhY2hl X2luaXQoc3Fmc19jYWNoZSAqY2FjaGUsIHNpemVfdCBjb3VudCk7CisrLyogRGV0ZXJtaW5lIGlm IGNhY2hlIGVudHJ5IGNvbnRhaW5zIHZhbGlkIGNvbnRlbnRzLiAqLworK2ludCBzcWZzX2NhY2hl X2VudHJ5X3ZhbGlkKGNvbnN0IHNxZnNfY2FjaGUgKmNhY2hlLCBjb25zdCB2b2lkICplKTsKKysv KiBNYXJrIGNhY2hlIGVudHJ5IGFzIGNvbnRhaW5pbmcgdmFsaWQgY29udGVudHMuICovCisrdm9p ZCBzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoc3Fmc19jYWNoZSAqY2FjaGUsIHZvaWQgKmUp OworIAorICNlbmRpZgorZGlmZiAtLWdpdCBhL2NvbW1vbi5oIGIvY29tbW9uLmgKK2luZGV4IGFl YWM1YzY3Li45ZDUwZTAwNiAxMDA2NDQKKy0tLSBhL2NvbW1vbi5oCisrKysgYi9jb21tb24uaAor QEAgLTMyLDEyICszMiwyMyBAQAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAKKyAjaWZkZWYg X1dJTjMyCistCSNpbmNsdWRlIDx3aW4zMi5oPgorKyMgaW5jbHVkZSA8d2luMzIuaD4KKysjIGlu Y2x1ZGUgPGludHJpbi5oPgorKyMgZGVmaW5lIGF0b21pY19pbmNfcmVsYXhlZChwdHIpIFwKKysJ X0ludGVybG9ja2VkSW5jcmVtZW50KHB0cikKKysjIGRlZmluZSBhdG9taWNfZGVjX2FjcXJlbChw dHIpIFwKKysJX0ludGVybG9ja2VkRGVjcmVtZW50KHB0cikKKyAjZWxzZQorIAl0eXBlZGVmIG1v ZGVfdCBzcWZzX21vZGVfdDsKKyAJdHlwZWRlZiB1aWRfdCBzcWZzX2lkX3Q7CisgCXR5cGVkZWYg b2ZmX3Qgc3Fmc19vZmZfdDsKKyAJdHlwZWRlZiBpbnQgc3Fmc19mZF90OworKworKyMgZGVmaW5l IGF0b21pY19pbmNfcmVsYXhlZChwdHIpIFwKKysJX19hdG9taWNfYWRkX2ZldGNoKCZibG9jay0+ cmVmY291bnQsIDEsIF9fQVRPTUlDX1JFTEFYRUQpCisrIyBkZWZpbmUgYXRvbWljX2RlY19hY3Fy ZWwocHRyKSBcCisrCV9fYXRvbWljX3N1Yl9mZXRjaCgmYmxvY2stPnJlZmNvdW50LCAxLCBfX0FU T01JQ19BQ1FfUkVMKQorKworICNlbmRpZgorIAorIHR5cGVkZWYgZW51bSB7CitAQCAtNTksNiAr NzAsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcWZzX2lub2RlIHNxZnNfaW5vZGU7CisgdHlwZWRlZiBz dHJ1Y3QgeworIAlzaXplX3Qgc2l6ZTsKKyAJdm9pZCAqZGF0YTsKKysJbG9uZyByZWZjb3VudDsK KyB9IHNxZnNfYmxvY2s7CisgCisgdHlwZWRlZiBzdHJ1Y3QgeworQEAgLTY2LDQgKzc4LDE2IEBA IHR5cGVkZWYgc3RydWN0IHsKKyAJc2l6ZV90IG9mZnNldDsKKyB9IHNxZnNfbWRfY3Vyc29yOwor IAorKy8qIEluY3JlbWVudCB0aGUgcmVmY291bnQgb24gdGhlIGJsb2NrLiAqLworK3N0YXRpYyBp bmxpbmUgdm9pZCBzcWZzX2Jsb2NrX3JlZihzcWZzX2Jsb2NrICpibG9jaykgeworKwlhdG9taWNf aW5jX3JlbGF4ZWQoJmJsb2NrLT5yZWZjb3VudCk7CisrfQorKworKy8qIGRlY3JlbWVudCB0aGUg cmVmY291bnQgb24gdGhlIGJsb2NrLCByZXR1cm4gbm9uLXplcm8gaWYgd2UgaGVsZCB0aGUgbGFz dAorKyAqIHJlZmVyZW5jZS4KKysgKi8KKytzdGF0aWMgaW5saW5lIGludCBzcWZzX2Jsb2NrX2Rl cmVmKHNxZnNfYmxvY2sgKmJsb2NrKSB7CisrCXJldHVybiBhdG9taWNfZGVjX2FjcXJlbCgmYmxv Y2stPnJlZmNvdW50KSA9PSAwOworK30KKysKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9maWxlLmMg Yi9maWxlLmMKK2luZGV4IGE0ZDg5NGViLi5kMDlmMmE3ZCAxMDA2NDQKKy0tLSBhL2ZpbGUuYwor KysrIGIvZmlsZS5jCitAQCAtMTc3LDcgKzE3Nyw3IEBAIHNxZnNfZXJyIHNxZnNfcmVhZF9yYW5n ZShzcWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsIHNxZnNfb2ZmX3Qgc3RhcnQsCisgCQkJdGFr ZSA9IChzaXplX3QpKCpzaXplKTsKKyAJCWlmIChibG9jaykgeworIAkJCW1lbWNweShidWYsIChj aGFyKilibG9jay0+ZGF0YSArIGRhdGFfb2ZmICsgcmVhZF9vZmYsIHRha2UpOworLQkJCS8qIEJM T0NLIENBQ0hFRCwgRE9OJ1QgRElTUE9TRSAqLworKwkJCXNxZnNfYmxvY2tfZGlzcG9zZShibG9j ayk7CisgCQl9IGVsc2UgeworIAkJCW1lbXNldChidWYsIDAsIHRha2UpOworIAkJfQorQEAgLTIy Niw3ICsyMjYsNyBAQCBzcWZzX2VyciBzcWZzX2Jsb2NraWR4X2luaXQoc3Fmc19jYWNoZSAqY2Fj aGUpIHsKKyB9CisgCisgc3Fmc19lcnIgc3Fmc19ibG9ja2lkeF9hZGQoc3FmcyAqZnMsIHNxZnNf aW5vZGUgKmlub2RlLAorLQkJc3Fmc19ibG9ja2lkeF9lbnRyeSAqKm91dCkgeworKwkJc3Fmc19i bG9ja2lkeF9lbnRyeSAqKm91dCwgc3Fmc19ibG9ja2lkeF9lbnRyeSAqKmNhY2hlcCkgeworIAlz aXplX3QgYmxvY2tzOwkvKiBOdW1iZXIgb2YgYmxvY2tzIGluIHRoZSBmaWxlICovCisgCXNpemVf dCBtZF9zaXplOyAvKiBBbW91bnQgb2YgbWV0YWRhdGEgbmVjZXNzYXJ5IHRvIGhvbGQgdGhlIGJs b2Nrc2l6ZXMgKi8KKyAJc2l6ZV90IGNvdW50OyAJLyogTnVtYmVyIG9mIGJsb2NrLWluZGV4IGVu dHJpZXMgbmVjZXNzYXJ5ICovCitAQCAtMjM0LDEwICsyMzQsNiBAQCBzcWZzX2VyciBzcWZzX2Js b2NraWR4X2FkZChzcWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsCisgCXNxZnNfYmxvY2tpZHhf ZW50cnkgKmJsb2NraWR4OworIAlzcWZzX2Jsb2NrbGlzdCBibDsKKyAJCistCS8qIEZvciB0aGUg Y2FjaGUgKi8KKy0Jc3Fmc19jYWNoZV9pZHggaWR4OworLQlzcWZzX2Jsb2NraWR4X2VudHJ5ICoq Y2FjaGVwOworLQorIAlzaXplX3QgaSA9IDA7CisgCWJvb2wgZmlyc3QgPSB0cnVlOworIAkKK0BA IC0yNzAsOCArMjY2LDYgQEAgc3Fmc19lcnIgc3Fmc19ibG9ja2lkeF9hZGQoc3FmcyAqZnMsIHNx ZnNfaW5vZGUgKmlub2RlLAorIAkJfQorIAl9CisgCistCWlkeCA9IGlub2RlLT5iYXNlLmlub2Rl X251bWJlciArIDE7IC8qIHplcm8gbWVhbnMgaW52YWxpZCAqLworLQljYWNoZXAgPSBzcWZzX2Nh Y2hlX2FkZCgmZnMtPmJsb2NraWR4LCBpZHgpOworIAkqb3V0ID0gKmNhY2hlcCA9IGJsb2NraWR4 OworIAlyZXR1cm4gU1FGU19PSzsKKyB9CitAQCAtMjk5LDEyICsyOTMsMTYgQEAgc3Fmc19lcnIg c3Fmc19ibG9ja2lkeF9ibG9ja2xpc3Qoc3FmcyAqZnMsIHNxZnNfaW5vZGUgKmlub2RlLAorIAkK KyAJLyogR2V0IHRoZSBpbmRleCwgY3JlYXRpbmcgaXQgaWYgbmVjZXNzYXJ5ICovCisgCWlkeCA9 IGlub2RlLT5iYXNlLmlub2RlX251bWJlciArIDE7IC8qIHplcm8gbWVhbnMgaW52YWxpZCBpbmRl eCAqLworLQlpZiAoKGJwID0gc3Fmc19jYWNoZV9nZXQoJmZzLT5ibG9ja2lkeCwgaWR4KSkpIHsK KysJYnAgPSBzcWZzX2NhY2hlX2dldCgmZnMtPmJsb2NraWR4LCBpZHgpOworKwlpZiAoc3Fmc19j YWNoZV9lbnRyeV92YWxpZCgmZnMtPmJsb2NraWR4LCBicCkpIHsKKyAJCWJsb2NraWR4ID0gKmJw OworIAl9IGVsc2UgeworLQkJc3Fmc19lcnIgZXJyID0gc3Fmc19ibG9ja2lkeF9hZGQoZnMsIGlu b2RlLCAmYmxvY2tpZHgpOworLQkJaWYgKGVycikKKysJCXNxZnNfZXJyIGVyciA9IHNxZnNfYmxv Y2tpZHhfYWRkKGZzLCBpbm9kZSwgJmJsb2NraWR4LCBicCk7CisrCQlpZiAoZXJyKSB7CisrCQkJ c3Fmc19jYWNoZV9wdXQoJmZzLT5ibG9ja2lkeCwgYnApOworIAkJCXJldHVybiBlcnI7CisrCQl9 CisrCQlzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoJmZzLT5ibG9ja2lkeCwgYnApOworIAl9 CisgCQorIAlza2lwcGVkID0gKG1ldGFibG9jayAqIFNRVUFTSEZTX01FVEFEQVRBX1NJWkUgLyBz aXplb2Yoc3Fmc19ibG9ja2xpc3RfZW50cnkpKQorQEAgLTMxNiw2ICszMTQsOSBAQCBzcWZzX2Vy ciBzcWZzX2Jsb2NraWR4X2Jsb2NrbGlzdChzcWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsCisg CWJsLT5yZW1haW4gLT0gc2tpcHBlZDsKKyAJYmwtPnBvcyA9ICh1aW50NjRfdClza2lwcGVkICog ZnMtPnNiLmJsb2NrX3NpemU7CisgCWJsLT5ibG9jayA9IGJsb2NraWR4LT5kYXRhX2Jsb2NrOwor KworKwlzcWZzX2NhY2hlX3B1dCgmZnMtPmJsb2NraWR4LCBicCk7CisrCisgCXJldHVybiBTUUZT X09LOworIH0KKyAKK2RpZmYgLS1naXQgYS9maWxlLmggYi9maWxlLmgKK2luZGV4IDI0OWM2NDEz Li5lM2QyYjAyOCAxMDA2NDQKKy0tLSBhL2ZpbGUuaAorKysrIGIvZmlsZS5oCitAQCAtNzEsMTAg KzcxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIAorIHNxZnNfZXJyIHNxZnNfYmxvY2tpZHhfaW5p dChzcWZzX2NhY2hlICpjYWNoZSk7CisgCistLyogRmlsbCAqb3V0IHdpdGggYWxsIHRoZSBibG9j ay1pbmRleCBlbnRyaWVzIGZvciB0aGlzIGZpbGUgKi8KKy1zcWZzX2VyciBzcWZzX2Jsb2NraWR4 X2FkZChzcWZzICpmcywgc3Fmc19pbm9kZSAqaW5vZGUsCistCXNxZnNfYmxvY2tpZHhfZW50cnkg KipvdXQpOworLQorIC8qIEdldCBhIGJsb2NrbGlzdCBmYXN0LWZvcndhcmRlZCB0byB0aGUgY29y cmVjdCBsb2NhdGlvbiAqLworIHNxZnNfZXJyIHNxZnNfYmxvY2tpZHhfYmxvY2tsaXN0KHNxZnMg KmZzLCBzcWZzX2lub2RlICppbm9kZSwKKyAJc3Fmc19ibG9ja2xpc3QgKmJsLCBzcWZzX29mZl90 IHN0YXJ0KTsKK2RpZmYgLS1naXQgYS9mcy5jIGIvZnMuYworaW5kZXggZDY5YmI2ODEuLjE4Mzhj NWNhIDEwMDY0NAorLS0tIGEvZnMuYworKysrIGIvZnMuYworQEAgLTEyNCw2ICsxMjQsOCBAQCBz cWZzX2VyciBzcWZzX2Jsb2NrX3JlYWQoc3FmcyAqZnMsIHNxZnNfb2ZmX3QgcG9zLCBib29sIGNv bXByZXNzZWQsCisgCXNxZnNfZXJyIGVyciA9IFNRRlNfRVJSOworIAlpZiAoISgqYmxvY2sgPSBt YWxsb2Moc2l6ZW9mKCoqYmxvY2spKSkpCisgCQlyZXR1cm4gU1FGU19FUlI7CisrCS8qIHN0YXJ0 IHdpdGggcmVmY291bnQgb25lLCBzbyBkaXNwb3NlIG9uIGZhaWx1cmUgcGF0aCB3b3JrcyBhcyBl eHBlY3RlZC4gKi8KKysJKCpibG9jayktPnJlZmNvdW50ID0gMTsKKyAJaWYgKCEoKCpibG9jaykt PmRhdGEgPSBtYWxsb2Moc2l6ZSkpKQorIAkJZ290byBlcnJvcjsKKyAJCitAQCAtMTg4LDQ0ICsx OTAsODEgQEAgc3Fmc19lcnIgc3Fmc19kYXRhX2Jsb2NrX3JlYWQoc3FmcyAqZnMsIHNxZnNfb2Zm X3QgcG9zLCB1aW50MzJfdCBoZHIsCisgfQorIAorIHNxZnNfZXJyIHNxZnNfbWRfY2FjaGUoc3Fm cyAqZnMsIHNxZnNfb2ZmX3QgKnBvcywgc3Fmc19ibG9jayAqKmJsb2NrKSB7CistCXNxZnNfYmxv Y2tfY2FjaGVfZW50cnkgKmVudHJ5ID0gc3Fmc19jYWNoZV9nZXQoCistCQkmZnMtPm1kX2NhY2hl LCAqcG9zKTsKKy0JaWYgKCFlbnRyeSkgeworKwlzcWZzX2Jsb2NrX2NhY2hlX2VudHJ5ICplbnRy eSA9IHNxZnNfY2FjaGVfZ2V0KCZmcy0+bWRfY2FjaGUsICpwb3MpOworKwlpZiAoIXNxZnNfY2Fj aGVfZW50cnlfdmFsaWQoJmZzLT5tZF9jYWNoZSwgZW50cnkpKSB7CisgCQlzcWZzX2VyciBlcnIg PSBTUUZTX09LOworLQkJZW50cnkgPSBzcWZzX2NhY2hlX2FkZCgmZnMtPm1kX2NhY2hlLCAqcG9z KTsKKyAJCS8qIGZwcmludGYoc3RkZXJyLCAiTUQgQkxPQ0s6ICUxMmxseFxuIiwgKGxvbmcgbG9u ZykqcG9zKTsgKi8KKyAJCWVyciA9IHNxZnNfbWRfYmxvY2tfcmVhZChmcywgKnBvcywKKyAJCQkm ZW50cnktPmRhdGFfc2l6ZSwgJmVudHJ5LT5ibG9jayk7CisgCQlpZiAoZXJyKSB7CistCQkJc3Fm c19jYWNoZV9pbnZhbGlkYXRlKCZmcy0+bWRfY2FjaGUsICpwb3MpOworKwkJCXNxZnNfY2FjaGVf cHV0KCZmcy0+bWRfY2FjaGUsIGVudHJ5KTsKKyAJCQlyZXR1cm4gZXJyOworIAkJfQorKwkJc3Fm c19jYWNoZV9lbnRyeV9tYXJrX3ZhbGlkKCZmcy0+bWRfY2FjaGUsIGVudHJ5KTsKKyAJfQorKwkv KiBibG9jayBpcyBjcmVhdGVkIHdpdGggcmVmY291bnQgMSwgd2hpY2ggYWNjb3VudHMgZm9yIHBy ZXNlbmNlIGluIHRoZQorKwkgKiBjYWNoZSAod2lsbCBiZSBkZWNyZW1lbnRlZCBvbiBldmljdGlv bikuCisrCSAqCisrCSAqIFdlIGluY3JlbWVudCBpdCBoZXJlIGFzIGEgY29udmllbmllbmNlIGZv ciB0aGUgY2FsbGVyLCB3aG8gd2lsbAorKwkgKiBvYnZpb3VzbHkgd2FudCBvbmUuIFRoZXJlZm9y ZSBhbGwgY2FsbGVycyBtdXN0IGV2ZW50dWFsbHkgY2FsbCBkZXJlZgorKwkgKiBieSBtZWFucyBv ZiBjYWxsaW5nIHNxZnNfYmxvY2tfZGlzcG9zZSgpLgorKwkgKi8KKyAJKmJsb2NrID0gZW50cnkt PmJsb2NrOworIAkqcG9zICs9IGVudHJ5LT5kYXRhX3NpemU7CisrCisrCXNxZnNfYmxvY2tfcmVm KGVudHJ5LT5ibG9jayk7CisrICAgIC8qIGl0IGlzIG5vdyBzYWZlIHRvIGV2aWN0IHRoZSBlbnRy eSBmcm9tIHRoZSBjYWNoZSwgd2UgaGF2ZSBhCisrICAgICAqIHJlZmVyZW5jZSB0byB0aGUgYmxv Y2sgc28gZXZpY3Rpb24gd2lsbCBub3QgZGVzdHJveSBpdC4KKysgICAgICovCisrCXNxZnNfY2Fj aGVfcHV0KCZmcy0+bWRfY2FjaGUsIGVudHJ5KTsKKysKKyAJcmV0dXJuIFNRRlNfT0s7CisgfQor IAorIHNxZnNfZXJyIHNxZnNfZGF0YV9jYWNoZShzcWZzICpmcywgc3Fmc19jYWNoZSAqY2FjaGUs IHNxZnNfb2ZmX3QgcG9zLAorIAkJdWludDMyX3QgaGRyLCBzcWZzX2Jsb2NrICoqYmxvY2spIHsK KyAJc3Fmc19ibG9ja19jYWNoZV9lbnRyeSAqZW50cnkgPSBzcWZzX2NhY2hlX2dldChjYWNoZSwg cG9zKTsKKy0JaWYgKCFlbnRyeSkgeworKwlpZiAoIXNxZnNfY2FjaGVfZW50cnlfdmFsaWQoY2Fj aGUsIGVudHJ5KSkgeworIAkJc3Fmc19lcnIgZXJyID0gU1FGU19PSzsKKy0JCWVudHJ5ID0gc3Fm c19jYWNoZV9hZGQoY2FjaGUsIHBvcyk7CisgCQllcnIgPSBzcWZzX2RhdGFfYmxvY2tfcmVhZChm cywgcG9zLCBoZHIsCisgCQkJJmVudHJ5LT5ibG9jayk7CisgCQlpZiAoZXJyKSB7CistCQkJc3Fm c19jYWNoZV9pbnZhbGlkYXRlKGNhY2hlLCBwb3MpOworKyAgICAgICAgICAgIHNxZnNfY2FjaGVf cHV0KGNhY2hlLCBlbnRyeSk7CisgCQkJcmV0dXJuIGVycjsKKyAJCX0KKysJCXNxZnNfY2FjaGVf ZW50cnlfbWFya192YWxpZChjYWNoZSwgZW50cnkpOworIAl9CisrCS8qIGJsb2NrIGlzIGNyZWF0 ZWQgd2l0aCByZWZjb3VudCAxLCB3aGljaCBhY2NvdW50cyBmb3IgcHJlc2VuY2UgaW4gdGhlCisr CSAqIGNhY2hlICh3aWxsIGJlIGRlY3JlbWVudGVkIG9uIGV2aWN0aW9uKS4KKysJICoKKysJICog V2UgaW5jcmVtZW50IGl0IGhlcmUgYXMgYSBjb252ZW5pZW5jZSBmb3IgdGhlIGNhbGxlciwgd2hv IHdpbGwKKysJICogb2J2aW91c2x5IHdhbnQgb25lLiBUaGVyZWZvcmUgYWxsIGNhbGxlcnMgbXVz dCBldmVudHVhbGx5IGNhbGwgZGVyZWYKKysJICogYnkgbWVhbnMgb2YgY2FsbGluZyBzcWZzX2Js b2NrX2Rpc3Bvc2UoKS4KKysJICovCisgCSpibG9jayA9IGVudHJ5LT5ibG9jazsKKysJc3Fmc19i bG9ja19yZWYoKmJsb2NrKTsKKysgICAgLyogaXQgaXMgbm93IHNhZmUgdG8gZXZpY3QgdGhlIGVu dHJ5IGZyb20gdGhlIGNhY2hlLCB3ZSBoYXZlIGEKKysgICAgICogcmVmZXJlbmNlIHRvIHRoZSBi bG9jayBzbyBldmljdGlvbiB3aWxsIG5vdCBkZXN0cm95IGl0LgorKyAgICAgKi8KKysJc3Fmc19j YWNoZV9wdXQoY2FjaGUsIGVudHJ5KTsKKyAJcmV0dXJuIFNRRlNfT0s7CisgfQorIAorIHZvaWQg c3Fmc19ibG9ja19kaXNwb3NlKHNxZnNfYmxvY2sgKmJsb2NrKSB7CistCWZyZWUoYmxvY2stPmRh dGEpOworLQlmcmVlKGJsb2NrKTsKKysJaWYgKHNxZnNfYmxvY2tfZGVyZWYoYmxvY2spKSB7Cisr CQlmcmVlKGJsb2NrLT5kYXRhKTsKKysJCWZyZWUoYmxvY2spOworKwl9CisrfQorKworK3N0YXRp YyB2b2lkIHNxZnNfYmxvY2tfY2FjaGVfZGlzcG9zZSh2b2lkICpkYXRhKSB7CisrCXNxZnNfYmxv Y2tfY2FjaGVfZW50cnkgKmVudHJ5ID0gKHNxZnNfYmxvY2tfY2FjaGVfZW50cnkqKWRhdGE7Cisr CXNxZnNfYmxvY2tfZGlzcG9zZShlbnRyeS0+YmxvY2spOworK30KKysKKytzcWZzX2VyciBzcWZz X2Jsb2NrX2NhY2hlX2luaXQoc3Fmc19jYWNoZSAqY2FjaGUsIHNpemVfdCBjb3VudCkgeworKwly ZXR1cm4gc3Fmc19jYWNoZV9pbml0KGNhY2hlLCBzaXplb2Yoc3Fmc19ibG9ja19jYWNoZV9lbnRy eSksIGNvdW50LAorKwkJCSAgICAgICAmc3Fmc19ibG9ja19jYWNoZV9kaXNwb3NlKTsKKyB9Cisg Cisgdm9pZCBzcWZzX21kX2N1cnNvcl9pbm9kZShzcWZzX21kX2N1cnNvciAqY3VyLCBzcWZzX2lu b2RlX2lkIGlkLCBzcWZzX29mZl90IGJhc2UpIHsKK0BAIC0yNDcsNyArMjg2LDYgQEAgc3Fmc19l cnIgc3Fmc19tZF9yZWFkKHNxZnMgKmZzLCBzcWZzX21kX2N1cnNvciAqY3VyLCB2b2lkICpidWYs IHNpemVfdCBzaXplKSB7CisgCQkJdGFrZSA9IHNpemU7CQkKKyAJCWlmIChidWYpCisgCQkJbWVt Y3B5KGJ1ZiwgKGNoYXIqKWJsb2NrLT5kYXRhICsgY3VyLT5vZmZzZXQsIHRha2UpOworLQkJLyog QkxPQ0sgQ0FDSEVELCBET04nVCBESVNQT1NFICovCisgCQkKKyAJCWlmIChidWYpCisgCQkJYnVm ID0gKGNoYXIqKWJ1ZiArIHRha2U7CitAQCAtMjU3LDYgKzI5NSw3IEBAIHNxZnNfZXJyIHNxZnNf bWRfcmVhZChzcWZzICpmcywgc3Fmc19tZF9jdXJzb3IgKmN1ciwgdm9pZCAqYnVmLCBzaXplX3Qg c2l6ZSkgeworIAkJCWN1ci0+YmxvY2sgPSBwb3M7CisgCQkJY3VyLT5vZmZzZXQgPSAwOworIAkJ fQorKwkJc3Fmc19ibG9ja19kaXNwb3NlKGJsb2NrKTsKKyAJfQorIAlyZXR1cm4gU1FGU19PSzsK KyB9CitkaWZmIC0tZ2l0IGEvZnMuaCBiL2ZzLmgKK2luZGV4IGQzMDBhM2JiLi4xZDQ3NWNlMCAx MDA2NDQKKy0tLSBhL2ZzLmgKKysrKyBiL2ZzLmgKK0BAIC05Nyw2ICs5NywxMSBAQCBzcWZzX2Nv bXByZXNzaW9uX3R5cGUgc3Fmc19jb21wcmVzc2lvbihzcWZzICpmcyk7Cisgdm9pZCBzcWZzX21k X2hlYWRlcih1aW50MTZfdCBoZHIsIGJvb2wgKmNvbXByZXNzZWQsIHVpbnQxNl90ICpzaXplKTsK KyB2b2lkIHNxZnNfZGF0YV9oZWFkZXIodWludDMyX3QgaGRyLCBib29sICpjb21wcmVzc2VkLCB1 aW50MzJfdCAqc2l6ZSk7CisgCisrdHlwZWRlZiBzdHJ1Y3QgeworKwlzcWZzX2Jsb2NrICpibG9j azsKKysJc2l6ZV90IGRhdGFfc2l6ZTsKKyt9IHNxZnNfYmxvY2tfY2FjaGVfZW50cnk7Cisrc3Fm c19lcnIgc3Fmc19ibG9ja19jYWNoZV9pbml0KHNxZnNfY2FjaGUgKmNhY2hlLCBzaXplX3QgY291 bnQpOworIHNxZnNfZXJyIHNxZnNfYmxvY2tfcmVhZChzcWZzICpmcywgc3Fmc19vZmZfdCBwb3Ms IGJvb2wgY29tcHJlc3NlZCwgdWludDMyX3Qgc2l6ZSwKKyAJc2l6ZV90IG91dHNpemUsIHNxZnNf YmxvY2sgKipibG9jayk7Cisgdm9pZCBzcWZzX2Jsb2NrX2Rpc3Bvc2Uoc3Fmc19ibG9jayAqYmxv Y2spOworZGlmZiAtLWdpdCBhL3RhYmxlLmMgYi90YWJsZS5jCitpbmRleCBjMDM1Mzk4Zi4uMDJh NTQ0MmMgMTAwNjQ0CistLS0gYS90YWJsZS5jCisrKysgYi90YWJsZS5jCitAQCAtNzYsNiArNzYs NiBAQCBzcWZzX2VyciBzcWZzX3RhYmxlX2dldChzcWZzX3RhYmxlICp0YWJsZSwgc3FmcyAqZnMs IHNpemVfdCBpZHgsIHZvaWQgKmJ1ZikgeworIAkJcmV0dXJuIFNRRlNfRVJSOworIAkKKyAJbWVt Y3B5KGJ1ZiwgKGNoYXIqKShibG9jay0+ZGF0YSkgKyBvZmYsIHRhYmxlLT5lYWNoKTsKKy0JLyog QkxPQ0sgQ0FDSEVELCBET04nVCBESVNQT1NFICovCisrCXNxZnNfYmxvY2tfZGlzcG9zZShibG9j ayk7CisgCXJldHVybiBTUUZTX09LOworIH0KK2RpZmYgLS1naXQgYS90ZXN0cy9jYWNoZXRlc3Qu YyBiL3Rlc3RzL2NhY2hldGVzdC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MDAuLjhhMmMyMzYzCistLS0gL2Rldi9udWxsCisrKysgYi90ZXN0cy9jYWNoZXRlc3QuYworQEAg LTAsMCArMSwxMDcgQEAKKysjaW5jbHVkZSAiY2FjaGUuaCIKKysjaW5jbHVkZSA8c3RkaW8uaD4K KysKKyt0eXBlZGVmIHN0cnVjdCB7CisrICAgIGludCB4OworKyAgICBpbnQgeTsKKyt9IFRlc3RT dHJ1Y3Q7CisrCisrc3RhdGljIHZvaWQgVGVzdFN0cnVjdERpc3Bvc2Uodm9pZCAqdCkgeworKyAg ICAvLyBuYWRhLgorK30KKysKKysjZGVmaW5lIEVYUEVDVF9FUShleHAxLCBleHAyKQkJCQkJCSAg XAorKwlkbyB7IGlmICgoZXhwMSkgIT0gKGV4cDIpKSB7CQkJCQkgIFwKKysJCXByaW50ZigiVGVz dCBmYWlsdXJlOiBleHBlY3RlZCAiICNleHAxICIgdG8gZXF1YWwgIiAjZXhwMiBcCisrCQkgICAg ICAgIiBhdCAiIF9fRklMRV9fICI6JWRcbiIsIF9fTElORV9fKTsJCSAgXAorKwkJKytlcnJvcnM7 CQkJCQkJICBcCisrCSAgfQkJCQkJCQkJICBcCisrCX0gd2hpbGUgKDApCisrCisrI2RlZmluZSBF WFBFQ1RfTkUoZXhwMSwgZXhwMikJCQkJCQkgICBcCisrCWRvIHsgaWYgKChleHAxKSA9PSAoZXhw MikpIHsJCQkJCSAgIFwKKysJCXByaW50ZigiVGVzdCBmYWlsdXJlOiBleHBlY3RlZCAiICNleHAx ICIgdG8gIWVxdWFsICIgI2V4cDIgXAorKwkJICAgICAgICIgYXQgIiBfX0ZJTEVfXyAiOiVkXG4i LCBfX0xJTkVfXyk7CQkgICBcCisrCQkrK2Vycm9yczsJCQkJCQkgICBcCisrICAgICAgICAgIH0J CQkJCQkJCSAgIFwKKysJfSB3aGlsZSAoMCkKKysKKysKKytpbnQgdGVzdF9jYWNoZV9taXNzKHZv aWQpIHsKKysgICAgaW50IGVycm9ycyA9IDA7CisrICAgIHNxZnNfY2FjaGUgY2FjaGU7CisrICAg IFRlc3RTdHJ1Y3QgKmVudHJ5OworKworKyAgICBFWFBFQ1RfRVEoc3Fmc19jYWNoZV9pbml0KCZj YWNoZSwgc2l6ZW9mKFRlc3RTdHJ1Y3QpLCAxNiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUZXN0U3RydWN0RGlzcG9zZSksIFNRRlNfT0spOworKyAgICBlbnRyeSA9IChUZXN0U3Ry dWN0ICopc3Fmc19jYWNoZV9nZXQoJmNhY2hlLCAxKTsKKysgICAgRVhQRUNUX0VRKHNxZnNfY2Fj aGVfZW50cnlfdmFsaWQoJmNhY2hlLCBlbnRyeSksIDApOworKyAgICBzcWZzX2NhY2hlX2Rlc3Ry b3koJmNhY2hlKTsKKysKKysgICAgcmV0dXJuIGVycm9ycyA9PSAwOworK30KKysKKytpbnQgdGVz dF9tYXJrX3ZhbGlkX2FuZF9sb29rdXAodm9pZCkgeworKyAgICBpbnQgZXJyb3JzID0gMDsKKysg ICAgc3Fmc19jYWNoZSBjYWNoZTsKKysgICAgVGVzdFN0cnVjdCAqZW50cnk7CisrCisrICAgIEVY UEVDVF9FUShzcWZzX2NhY2hlX2luaXQoJmNhY2hlLCBzaXplb2YoVGVzdFN0cnVjdCksIDE2LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RTdHJ1Y3REaXNwb3NlKSwgU1FGU19P Syk7CisrICAgIGVudHJ5ID0gKFRlc3RTdHJ1Y3QgKilzcWZzX2NhY2hlX2dldCgmY2FjaGUsIDEp OworKyAgICBlbnRyeS0+eCA9IDY2NjsKKysgICAgZW50cnktPnkgPSA3Nzc7CisrICAgIHNxZnNf Y2FjaGVfZW50cnlfbWFya192YWxpZCgmY2FjaGUsIGVudHJ5KTsKKysgICAgc3Fmc19jYWNoZV9w dXQoJmNhY2hlLCBlbnRyeSk7CisrICAgIEVYUEVDVF9ORShzcWZzX2NhY2hlX2VudHJ5X3ZhbGlk KCZjYWNoZSwgZW50cnkpLCAwKTsKKysgICAgZW50cnkgPSAoVGVzdFN0cnVjdCAqKXNxZnNfY2Fj aGVfZ2V0KCZjYWNoZSwgMSk7CisrICAgIEVYUEVDVF9ORShzcWZzX2NhY2hlX2VudHJ5X3ZhbGlk KCZjYWNoZSwgZW50cnkpLCAwKTsKKysgICAgRVhQRUNUX0VRKGVudHJ5LT54LCA2NjYpOworKyAg ICBFWFBFQ1RfRVEoZW50cnktPnksIDc3Nyk7CisrICAgIHNxZnNfY2FjaGVfcHV0KCZjYWNoZSwg ZW50cnkpOworKworKyAgICBzcWZzX2NhY2hlX2Rlc3Ryb3koJmNhY2hlKTsKKysgICAgcmV0dXJu IGVycm9ycyA9PSAwOworK30KKysKKytpbnQgdGVzdF90d29fZW50cmllcyh2b2lkKSB7CisrICAg IGludCBlcnJvcnMgPSAwOworKyAgICBzcWZzX2NhY2hlIGNhY2hlOworKyAgICBUZXN0U3RydWN0 ICplbnRyeTEsICplbnRyeTI7CisrCisrICAgIEVYUEVDVF9FUShzcWZzX2NhY2hlX2luaXQoJmNh Y2hlLCBzaXplb2YoVGVzdFN0cnVjdCksIDE2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRlc3RTdHJ1Y3REaXNwb3NlKSwgU1FGU19PSyk7CisrCisrICAgIGVudHJ5MSA9IChUZXN0 U3RydWN0ICopc3Fmc19jYWNoZV9nZXQoJmNhY2hlLCAxKTsKKysgICAgZW50cnkxLT54ID0gMTsK KysgICAgZW50cnkxLT55ID0gMjsKKysgICAgc3Fmc19jYWNoZV9lbnRyeV9tYXJrX3ZhbGlkKCZj YWNoZSwgZW50cnkxKTsKKysgICAgc3Fmc19jYWNoZV9wdXQoJmNhY2hlLCBlbnRyeTEpOworKwor KyAgICBlbnRyeTIgPSAoVGVzdFN0cnVjdCAqKXNxZnNfY2FjaGVfZ2V0KCZjYWNoZSwgNjY2KTsK KysgICAgZW50cnkyLT54ID0gMzsKKysgICAgZW50cnkyLT55ID0gNDsKKysgICAgc3Fmc19jYWNo ZV9lbnRyeV9tYXJrX3ZhbGlkKCZjYWNoZSwgZW50cnkyKTsKKysgICAgc3Fmc19jYWNoZV9wdXQo JmNhY2hlLCBlbnRyeTIpOworKworKyAgICBlbnRyeTEgPSAoVGVzdFN0cnVjdCAqKXNxZnNfY2Fj aGVfZ2V0KCZjYWNoZSwgMSk7CisrICAgIHNxZnNfY2FjaGVfcHV0KCZjYWNoZSwgZW50cnkxKTsK KysgICAgZW50cnkyID0gKFRlc3RTdHJ1Y3QgKilzcWZzX2NhY2hlX2dldCgmY2FjaGUsIDY2Nik7 CisrICAgIHNxZnNfY2FjaGVfcHV0KCZjYWNoZSwgZW50cnkyKTsKKysgICAgRVhQRUNUX05FKHNx ZnNfY2FjaGVfZW50cnlfdmFsaWQoJmNhY2hlLCBlbnRyeTEpLCAwKTsKKysgICAgRVhQRUNUX05F KHNxZnNfY2FjaGVfZW50cnlfdmFsaWQoJmNhY2hlLCBlbnRyeTIpLCAwKTsKKysgICAgRVhQRUNU X0VRKGVudHJ5MS0+eCwgMSk7CisrICAgIEVYUEVDVF9FUShlbnRyeTEtPnksIDIpOworKyAgICBF WFBFQ1RfRVEoZW50cnkyLT54LCAzKTsKKysgICAgRVhQRUNUX0VRKGVudHJ5Mi0+eSwgNCk7Cisr CisrICAgIHNxZnNfY2FjaGVfZGVzdHJveSgmY2FjaGUpOworKworKyAgICByZXR1cm4gZXJyb3Jz ID09IDA7CisrfQorKworK2ludCBtYWluKHZvaWQpIHsKKysJcmV0dXJuIHRlc3RfY2FjaGVfbWlz cygpICYmCisrCQl0ZXN0X21hcmtfdmFsaWRfYW5kX2xvb2t1cCgpICYmCisrCQl0ZXN0X3R3b19l bnRyaWVzKCkgPyAwIDogMTsKKyt9CisKK0Zyb20gMzc5Yzg1MDdjMTVlZjQzYjY0MWMxMDI0YjQz MzcyZjJkZTlmYjQ4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtldmluIFZpZ29y IDxrdmlnb3JAZ21haWwuY29tPgorRGF0ZTogVGh1LCA2IEZlYiAyMDIwIDEyOjIwOjE5IC0wODAw CitTdWJqZWN0OiBbUEFUQ0ggMi8zXSBJbXBsZW1lbnQgbXVsdGktdGhyZWFkZWQgc3F1YXNoZnVz ZV9sbCwgYWxsb3dpbmcgcGFyYWxsZWwKKyBkZWNvbXByZXNzaW9uLgorCitBIHNpbXBsZSB0aHJl YWQtc2FmZSBjYWNoZSBpbXBsZW1lbnRhdGlvbiBpcyBhZGRlZCBhbmQgc3F1YXNoZnVzZV9sbCBp bml0CitpcyBhbHRlcmVkIHRvIHVzZSBmdXNlX3Nlc3Npb25fbG9vcF9tdCgpLgorCitNdWx0aXRo cmVhZGluZyBtdXN0IGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBhdCBjb25maWd1cmUgdGltZSB3aXRo IHRoZQorLS1lbmFibGUtbXVsdGl0aHJlYWRpbmcgb3B0aW9uLiBJZiBlbmFibGVkLCB0aGUgcmVz dWx0aW5nIHNxdWFzaGZ1c2VfbGwKK3dpbGwgYmUgbXVsdGl0aHJlYWRlZCBieSBkZWZhdWx0LCBi dXQgdGhpcyBtYXkgYmUgZGlzYWJsZWQgYXQgcnVudGltZQord2l0aCB0aGUgJy1zJyBGVVNFIGNv bW1hbmRsaW5lIG9wdGlvbi4KKy0tLQorIE1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAg IHwgICA4ICstCisgY2FjaGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKworIGNh Y2hlX210LmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTY5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKKyBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQor IGZzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCisgbGwuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNzcgKysrKysrKysrKy0tLS0KKyBsbF9tYWluLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyMCArKystCisgbTQvc3F1YXNoZnVzZV9jLm00ICAgICAg ICAgICAgICAgfCAgMzMgKy0tLS0tCisgc3F1YXNoZnNfZnMuaCAgICAgICAgICAgICAgICAgICAg fCAgIDYgKy0KKyB0ZXN0cy9jYWNoZXRlc3QuYyAgICAgICAgICAgICAgICB8ICAgMSArCisgdGVz dHMvbGwtc21va2Utc2luZ2xldGhyZWFkZWQuc2ggfCAgMTAgKysKKyB0ZXN0cy9sbC1zbW9rZS5z aCAgICAgICAgICAgICAgICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKworIHRlc3Rz L2xsLXNtb2tlLnNoLmluICAgICAgICAgICAgIHwgICA2ICstCisgMTMgZmlsZXMgY2hhbmdlZCwg NDMyIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBj YWNoZV9tdC5jCisgY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL2xsLXNtb2tlLXNpbmdsZXRocmVh ZGVkLnNoCisgY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL2xsLXNtb2tlLnNoCisKK2RpZmYgLS1n aXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCitpbmRleCBlYWY3YWM5Ny4uMTdiMDFiZTQg MTAwNjQ0CistLS0gYS9NYWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC0yNiw3ICsy Niw3IEBAIHBrZ2NvbmZpZ19EQVRBIAk9IHNxdWFzaGZ1c2UucGMKKyBub2luc3RfTFRMSUJSQVJJ RVMgKz0gbGlic3F1YXNoZnVzZV9jb252ZW5pZW5jZS5sYQorIGxpYnNxdWFzaGZ1c2VfY29udmVu aWVuY2VfbGFfU09VUkNFUyA9IHN3YXAuYyBjYWNoZS5jIHRhYmxlLmMgZGlyLmMgZmlsZS5jIGZz LmMgXAorIAlkZWNvbXByZXNzLmMgeGF0dHIuYyBoYXNoLmMgc3RhY2suYyB0cmF2ZXJzZS5jIHV0 aWwuYyBcCistCW5vbnN0ZC1wcmVhZC5jIG5vbnN0ZC1zdGF0LmMgXAorKwlub25zdGQtcHJlYWQu YyBub25zdGQtc3RhdC5jIGNhY2hlX210LmMgXAorIAlzcXVhc2hmc19mcy5oIGNvbW1vbi5oIG5v bnN0ZC1pbnRlcm5hbC5oIG5vbnN0ZC5oIHN3YXAuaCBjYWNoZS5oIHRhYmxlLmggXAorIAlkaXIu aCBmaWxlLmggZGVjb21wcmVzcy5oIHhhdHRyLmggc3F1YXNoZnVzZS5oIGhhc2guaCBzdGFjay5o IHRyYXZlcnNlLmggXAorIAl1dGlsLmggZnMuaAorQEAgLTEwNSw2ICsxMDUsMTIgQEAgZW5kaWYK KyBURVNUUyA9CisgaWYgU1FfRlVTRV9URVNUUworIFRFU1RTICs9IHRlc3RzL2xsLXNtb2tlLnNo CisraWYgTVVMVElUSFJFQURFRAorKyMgSSBrbm93IHRoaXMgdGVzdCBsb29rcyBiYWNrd2FyZHMs IGJ1dCB0aGUgZGVmYXVsdCBzbW9rZSB0ZXN0IGlzIG11bHRpdGhyZWFkZWQKKysjIHdoZW4gdGhy ZWFkaW5nIGlzIGVuYWJsZWQuIFNvIHdlIGFkZGl0aW9uYWxseSBydW4gYSBzaW5nbGV0aHJlYWRl ZCB0ZXN0IGluCisrIyB0aGF0IGNhc2UuCisrVEVTVFMgKz0gdGVzdHMvbGwtc21va2Utc2luZ2xl dGhyZWFkZWQuc2gKKytlbmRpZgorIGNoZWNrX1BST0dSQU1TID0gY2FjaGV0ZXN0IGVuZGlhbnRl c3QKKyBjYWNoZXRlc3RfU09VUkNFUz10ZXN0cy9jYWNoZXRlc3QuYworIGNhY2hldGVzdF9MREFE RD1saWJzcXVhc2hmdXNlLmxhICQoQ09NUFJFU1NJT05fTElCUykKK2RpZmYgLS1naXQgYS9jYWNo ZS5jIGIvY2FjaGUuYworaW5kZXggMzZkMDIyMzQuLjQ1NDA4ZjI0IDEwMDY0NAorLS0tIGEvY2Fj aGUuYworKysrIGIvY2FjaGUuYworQEAgLTI0LDYgKzI0LDkgQEAKKyAgKi8KKyAKKyAjaW5jbHVk ZSAiY29uZmlnLmgiCisrCisrI2lmbmRlZiBTUUZTX01VTFRJVEhSRUFERUQKKysKKyAjaW5jbHVk ZSAiY2FjaGUuaCIKKyAKKyAjaW5jbHVkZSAiZnMuaCIKK0BAIC0xNDAsMyArMTQzLDQgQEAgdm9p ZCBzcWZzX2NhY2hlX2VudHJ5X21hcmtfdmFsaWQoc3Fmc19jYWNoZSAqY2FjaGUsIHZvaWQgKmUp IHsKKyB2b2lkIHNxZnNfY2FjaGVfcHV0KGNvbnN0IHNxZnNfY2FjaGUgKmNhY2hlLCBjb25zdCB2 b2lkICplKSB7CisgCS8vIG5hZGEsIHdlIGhhdmUgbm8gbG9ja2luZyBpbiBzaW5nbGUtdGhyZWFk ZWQgaW1wbGVtZW50YXRpb24uCisgfQorKyNlbmRpZiAvKiBTUUZTX01VTFRJVEhSRUFERUQgKi8K K2RpZmYgLS1naXQgYS9jYWNoZV9tdC5jIGIvY2FjaGVfbXQuYworbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwLi4xYjE3ZmE1YQorLS0tIC9kZXYvbnVsbAorKysrIGIvY2FjaGVf bXQuYworQEAgLTAsMCArMSwxNjkgQEAKKysjaW5jbHVkZSAiY29uZmlnLmgiCisrCisrI2lmZGVm IFNRRlNfTVVMVElUSFJFQURFRAorKworKy8qIFRocmVhZC1zYWZlIGNhY2hlIGltcGxlbWVudGF0 aW9uLgorKyAqCisrICogU2ltcGxlIGltcGxlbWVudGF0aW9uOiBiYXNpYyBoYXNoIHRhYmxlLCBl YWNoIGluZGl2aWR1YWwgZW50cnkgaXMKKysgKiBwcm90ZWN0ZWQgYnkgYSBtdXRleCwgYW55IGNv bGxpc2lvbiBpcyBoYW5kbGVkIGJ5IGV2aWN0aW9uLgorKyAqLworKworKyNpbmNsdWRlICJjYWNo ZS5oIgorKyNpbmNsdWRlICJmcy5oIgorKworKyNpbmNsdWRlIDxhc3NlcnQuaD4KKysjaW5jbHVk ZSA8cHRocmVhZC5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysKKyt0eXBlZGVmIHN0cnVjdCBz cWZzX2NhY2hlX2ludGVybmFsIHsKKysgICAgdWludDhfdCAqYnVmOworKyAgICBzcWZzX2NhY2hl X2Rpc3Bvc2UgZGlzcG9zZTsKKysgICAgc2l6ZV90IGVudHJ5X3NpemUsIGNvdW50OworK30gc3Fm c19jYWNoZV9pbnRlcm5hbDsKKysKKyt0eXBlZGVmIHN0cnVjdCB7CisrICAgIGVudW0geyBFTVBU WSwgRlVMTCB9IHN0YXRlOworKyAgICBzcWZzX2NhY2hlX2lkeCBpZHg7CisrICAgIHB0aHJlYWRf bXV0ZXhfdCBsb2NrOworK30gc3Fmc19jYWNoZV9lbnRyeV9oZHI7CisrCisrLy8gTXVybXVySGFz aDY0QSBwZXJmb3JtYW5jZS1vcHRpbWl6ZWQgZm9yIGhhc2ggb2YgdWludDY0X3Qga2V5cworK2Nv bnN0IHN0YXRpYyB1aW50NjRfdCBrTXVybXVyMlNlZWQgPSA0MTkzMzYwMTExdWw7Cisrc3RhdGlj IHVpbnQ2NF90IE11cm11clJlaGFzaDY0QSh1aW50NjRfdCBrZXkpIHsKKysgICAgY29uc3QgdWlu dDY0X3QgbSA9IDB4YzZhNGE3OTM1YmQxZTk5NTsKKysgICAgY29uc3QgaW50IHIgPSA0NzsKKysK KysgICAgdWludDY0X3QgaCA9ICh1aW50NjRfdClrTXVybXVyMlNlZWQgXiAoc2l6ZW9mKHVpbnQ2 NF90KSAqIG0pOworKworKyAgICBrZXkgKj0gbTsKKysgICAga2V5IF49IGtleSA+PiByOworKyAg ICBrZXkgKj0gbTsKKysKKysgICAgaCBePSBrZXk7CisrICAgIGggKj0gbTsKKysKKysgICAgaCBe PSBoID4+IHI7CisrICAgIGggKj0gbTsKKysgICAgaCBePSBoID4+IHI7CisrCisrICAgIHJldHVy biBoOworK30KKysKKytzdGF0aWMgc3Fmc19jYWNoZV9lbnRyeV9oZHIgKnNxZnNfY2FjaGVfZW50 cnlfaGVhZGVyKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Fmc19jYWNoZV9pbnRl cm5hbCogY2FjaGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaSkgewor KyAgICBhc3NlcnQoaSA8IGNhY2hlLT5jb3VudCk7CisrICAgIHJldHVybiAoc3Fmc19jYWNoZV9l bnRyeV9oZHIgKikoY2FjaGUtPmJ1ZiArIGkgKiBjYWNoZS0+ZW50cnlfc2l6ZSk7CisrfQorKwor K3NxZnNfZXJyIHNxZnNfY2FjaGVfaW5pdChzcWZzX2NhY2hlICpjYWNoZSwgc2l6ZV90IGVudHJ5 X3NpemUsIHNpemVfdCBjb3VudCwKKysgICAgICAgICAgICAgc3Fmc19jYWNoZV9kaXNwb3NlIGRp c3Bvc2UpIHsKKysgICAgc2l6ZV90IGk7CisrICAgIHB0aHJlYWRfbXV0ZXhhdHRyX3QgYXR0cjsK KysgICAgc3Fmc19jYWNoZV9pbnRlcm5hbCAqYyA9IG1hbGxvYyhzaXplb2Yoc3Fmc19jYWNoZV9p bnRlcm5hbCkpOworKworKyAgICBpZiAoIWMpIHsKKysgICAgICAgIHJldHVybiBTUUZTX0VSUjsK KysgICAgfQorKworKyAgICBjLT5lbnRyeV9zaXplID0gZW50cnlfc2l6ZSArIHNpemVvZihzcWZz X2NhY2hlX2VudHJ5X2hkcik7CisrICAgIGMtPmNvdW50ID0gY291bnQ7CisrICAgIGMtPmRpc3Bv c2UgPSBkaXNwb3NlOworKworKyAgICBwdGhyZWFkX211dGV4YXR0cl9pbml0KCZhdHRyKTsKKysj aWYgZGVmaW5lZChfR05VX1NPVVJDRSkgJiYgIWRlZmluZWQoTkRFQlVHKQorKyAgICBwdGhyZWFk X211dGV4YXR0cl9zZXR0eXBlKCZhdHRyLCBQVEhSRUFEX01VVEVYX0VSUk9SQ0hFQ0spOworKyNl bmRpZgorKworKyAgICBjLT5idWYgPSBjYWxsb2MoYy0+Y291bnQsIGMtPmVudHJ5X3NpemUpOwor KyAgICBpZiAoIWMtPmJ1ZikgeworKyAgICAgICAgZ290byBlcnJfb3V0OworKyAgICB9CisrCisr ICAgIGZvciAoaSA9IDA7IGkgPCBjLT5jb3VudDsgKytpKSB7CisrICAgICAgICBzcWZzX2NhY2hl X2VudHJ5X2hkciAqaGRyID0gc3Fmc19jYWNoZV9lbnRyeV9oZWFkZXIoYywgaSk7CisrICAgICAg ICBoZHItPnN0YXRlID0gRU1QVFk7CisrICAgICAgICBpZiAocHRocmVhZF9tdXRleF9pbml0KCZo ZHItPmxvY2ssICZhdHRyKSkgeworKyAgICAgICAgICAgIGdvdG8gZXJyX291dDsKKysgICAgICAg IH0KKysgICAgfQorKworKyAgICBwdGhyZWFkX211dGV4YXR0cl9kZXN0cm95KCZhdHRyKTsKKysK KysgICAgKmNhY2hlID0gYzsKKysgICAgcmV0dXJuIFNRRlNfT0s7CisrCisrZXJyX291dDoKKysg ICAgc3Fmc19jYWNoZV9kZXN0cm95KCZjKTsKKysgICAgcmV0dXJuIFNRRlNfRVJSOworK30KKysK Kyt2b2lkIHNxZnNfY2FjaGVfZGVzdHJveShzcWZzX2NhY2hlICpjYWNoZSkgeworKyAgICBpZiAo Y2FjaGUgJiYgKmNhY2hlKSB7CisrICAgICAgICBzcWZzX2NhY2hlX2ludGVybmFsICpjID0gKmNh Y2hlOworKyAgICAgICAgaWYgKGMtPmJ1ZikgeworKyAgICAgICAgICAgIHNpemVfdCBpOworKyAg ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjLT5jb3VudDsgKytpKSB7CisrICAgICAgICAgICAg ICAgIHNxZnNfY2FjaGVfZW50cnlfaGRyICpoZHIgPQorKyAgICAgICAgICAgICAgICAgICAgc3Fm c19jYWNoZV9lbnRyeV9oZWFkZXIoYywgaSk7CisrICAgICAgICAgICAgICAgIGlmIChoZHItPnN0 YXRlID09IEZVTEwpIHsKKysgICAgICAgICAgICAgICAgICAgIGMtPmRpc3Bvc2UoKHZvaWQgKiko aGRyICsgMSkpOworKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIGlmIChwdGhy ZWFkX211dGV4X2Rlc3Ryb3koJmhkci0+bG9jaykpIHsKKysgICAgICAgICAgICAgICAgICAgIGFz c2VydCgwKTsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0KKysgICAgICAgIH0K KysgICAgICAgIGZyZWUoYy0+YnVmKTsKKysgICAgICAgIGZyZWUoYyk7CisrICAgICAgICAqY2Fj aGUgPSBOVUxMOworKyAgICB9CisrfQorKworK3ZvaWQgKnNxZnNfY2FjaGVfZ2V0KHNxZnNfY2Fj aGUgKmNhY2hlLCBzcWZzX2NhY2hlX2lkeCBpZHgpIHsKKysgICAgc3Fmc19jYWNoZV9pbnRlcm5h bCAqYyA9ICpjYWNoZTsKKysgICAgc3Fmc19jYWNoZV9lbnRyeV9oZHIgKmhkcjsKKysgICAgdm9p ZCAqZW50cnk7CisrCisrICAgIHVpbnQ2NF90IGtleSA9IE11cm11clJlaGFzaDY0QShpZHgpICUg Yy0+Y291bnQ7CisrCisrICAgIGhkciA9IHNxZnNfY2FjaGVfZW50cnlfaGVhZGVyKGMsIGtleSk7 CisrICAgIGlmIChwdGhyZWFkX211dGV4X2xvY2soJmhkci0+bG9jaykpIHsgYXNzZXJ0KDApOyB9 CisrICAgIC8qIG1hdGNoaW5nIHVubG9jayBpcyBpbiBzcWZzX2NhY2hlX3B1dCgpICovCisrICAg IGVudHJ5ID0gKHZvaWQgKikoaGRyICsgMSk7CisrCisrICAgIGlmIChoZHItPnN0YXRlID09IEVN UFRZKSB7CisrICAgICAgICBoZHItPmlkeCA9IGlkeDsKKysgICAgICAgIHJldHVybiBlbnRyeTsK KysgICAgfQorKworKyAgICAvKiBUaGVyZSdzIGEgdmFsaWQgZW50cnk6IGl0J3MgZWl0aGVyIGEg Y2FjaGUgaGl0IG9yIGEgY29sbGlzaW9uLiAqLworKyAgICBhc3NlcnQoaGRyLT5zdGF0ZSA9PSBG VUxMKTsKKysgICAgaWYgKGhkci0+aWR4ID09IGlkeCkgeworKyAgICAgICAgcmV0dXJuIGVudHJ5 OworKyAgICB9CisrCisrICAgIC8qIENvbGxpc2lvbi4gKi8KKysgICAgYy0+ZGlzcG9zZSgodm9p ZCAqKShoZHIgKyAxKSk7CisrICAgIGhkci0+c3RhdGUgPSBFTVBUWTsKKysgICAgaGRyLT5pZHgg PSBpZHg7CisrICAgIHJldHVybiBlbnRyeTsKKyt9CisrCisraW50IHNxZnNfY2FjaGVfZW50cnlf dmFsaWQoY29uc3Qgc3Fmc19jYWNoZSAqY2FjaGUsIGNvbnN0IHZvaWQgKmUpIHsKKysgICAgc3Fm c19jYWNoZV9lbnRyeV9oZHIgKmhkciA9ICgoc3Fmc19jYWNoZV9lbnRyeV9oZHIgKillKSAtIDE7 CisrICAgIHJldHVybiBoZHItPnN0YXRlID09IEZVTEw7CisrfQorKworK3ZvaWQgc3Fmc19jYWNo ZV9lbnRyeV9tYXJrX3ZhbGlkKHNxZnNfY2FjaGUgKmNhY2hlLCB2b2lkICplKSB7CisrICAgIHNx ZnNfY2FjaGVfZW50cnlfaGRyICpoZHIgPSAoKHNxZnNfY2FjaGVfZW50cnlfaGRyICopZSkgLSAx OworKyAgICBhc3NlcnQoaGRyLT5zdGF0ZSA9PSBFTVBUWSk7CisrICAgIGhkci0+c3RhdGUgPSBG VUxMOworK30KKysKKyt2b2lkIHNxZnNfY2FjaGVfcHV0KGNvbnN0IHNxZnNfY2FjaGUgKmNhY2hl LCBjb25zdCB2b2lkICplKSB7CisrICAgIHNxZnNfY2FjaGVfZW50cnlfaGRyICpoZHIgPSAoKHNx ZnNfY2FjaGVfZW50cnlfaGRyICopZSkgLSAxOworKyAgICBpZiAocHRocmVhZF9tdXRleF91bmxv Y2soJmhkci0+bG9jaykpIHsgYXNzZXJ0KDApOyB9CisrfQorKworKyNlbmRpZiAvKiBTUUZTX01V TFRJVEhSRUFERUQgKi8KK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMK K2luZGV4IDc2Mjc2NmU5Li4zODY5MDc1YSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysr IGIvY29uZmlndXJlLmFjCitAQCAtMTAsNiArMTAsNyBAQCBBSF9CT1RUT00oWyNlbmRpZl0pCisg QUNfQ0FOT05JQ0FMX0JVSUxECisgQUNfQ0FOT05JQ0FMX1RBUkdFVAorIEFNX0lOSVRfQVVUT01B S0UoW2ZvcmVpZ24gLVdhbGwgc3ViZGlyLW9iamVjdHNdKQorK0FDX1VTRV9TWVNURU1fRVhURU5T SU9OUworIEFNX1NJTEVOVF9SVUxFUyh5ZXMpCisgQU1fUFJPR19BUgorIExUX0lOSVQKK0BAIC0y MywxMCArMjQsOCBAQCBBQ19QUk9HX1NFRAorIEFDX1BST0dfQ1BQCisgQUNfU1lTX0xBUkdFRklM RQorIEFNX1BST0dfQ0NfQ19PCistU1FfUFJPR19DUFBfUE9TSVhfMjAwMQorIFNRX1BST0dfQ0Nf V0FMTAorIAorLUFDX0RFRklORShbX1BPU0lYX0NfU09VUkNFXSwgWzIwMDExMkxdLCBbUE9TSVgg MjAwMSBjb21wYXRpYmlsaXR5XSkKKyAKKyAjIE5vbi1QT1NJWCBkZWNsYXJhdGlvbnMKKyBTUV9D SEVDS19ERUNMX01BS0VERVYKK0BAIC05Nyw2ICs5NiwxNCBAQCBBQ19DT05GSUdfRklMRVMoW3Rl c3RzL2xsLXNtb2tlLnNoXSxbY2htb2QgK3ggdGVzdHMvbGwtc21va2Uuc2hdKQorIEFTX0lGKFt0 ZXN0ICJ4JHNxX2hpZ2hfbGV2ZWwkc3FfbG93X2xldmVsJHNxX2RlbW8iID0geG5vbm9ub10sCisg CUFDX01TR19GQUlMVVJFKFtOb3RoaW5nIGxlZnQgdG8gYnVpbGRdKSkKKyAKKytBQ19BUkdfRU5B QkxFKFttdWx0aXRocmVhZGluZ10sCisrIAlBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbXVsdGl0 aHJlYWRpbmddLCBbZW5hYmxlIG11bHRpLXRocmVhZGVkIGxvdy1sZXZlbCBGVVNFIGRyaXZlcl0p LAorKwlbCisrICAgIEFDX0NIRUNLX0xJQihbcHRocmVhZF0sIFtwdGhyZWFkX211dGV4X2xvY2td LCBbXSwgQUNfTVNHX0VSUk9SKFtsaWJwdGhyZWFkIGlzIHJlcXVpcmVkIGZvciBtdWx0aXRocmVh ZGVkIGJ1aWxkXSkpCisrICAgIEFDX0RFRklORShTUUZTX01VTFRJVEhSRUFERUQsIDEsIFtFbmFi bGUgbXVsdGktdGhyZWFkZWQgbG93LWxldmVsIEZVU0UgZHJpdmVyXSkKKysgICAgXSkKKytBTV9D T05ESVRJT05BTChbTVVMVElUSFJFQURFRF0sIFt0ZXN0IHgkZW5hYmxlX211bHRpdGhyZWFkaW5n ID0geHllc10pCisrCisgQUNfU1VCU1QoW3NxX2RlY29tcHJlc3NvcnNdKQorIEFDX1NVQlNUKFtz cV9oaWdoX2xldmVsXSkKKyBBQ19TVUJTVChbc3FfbG93X2xldmVsXSkKK2RpZmYgLS1naXQgYS9m cy5jIGIvZnMuYworaW5kZXggMTgzOGM1Y2EuLmFiODU0YjBmIDEwMDY0NAorLS0tIGEvZnMuYwor KysrIGIvZnMuYworQEAgLTM0LDggKzM0LDEzIEBACisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Cisg CisgCistI2RlZmluZSBEQVRBX0NBQ0hFRF9CTEtTIDEKKy0jZGVmaW5lIEZSQUdfQ0FDSEVEX0JM S1MgMworKyNpZmRlZiBTUUZTX01VTFRJVEhSRUFERUQKKysjIGRlZmluZSBEQVRBX0NBQ0hFRF9C TEtTIDQ4CisrIyBkZWZpbmUgRlJBR19DQUNIRURfQkxLUyA0OAorKyNlbHNlCisrIyBkZWZpbmUg REFUQV9DQUNIRURfQkxLUyAxCisrIyBkZWZpbmUgRlJBR19DQUNIRURfQkxLUyAzCisrI2VuZGlm CisgCisgdm9pZCBzcWZzX3ZlcnNpb25fc3VwcG9ydGVkKGludCAqbWluX21ham9yLCBpbnQgKm1p bl9taW5vciwgaW50ICptYXhfbWFqb3IsCisgCQlpbnQgKm1heF9taW5vcikgeworZGlmZiAtLWdp dCBhL2xsLmMgYi9sbC5jCitpbmRleCA0ZDE3YmE1Yi4uNTk2YzhiZjEgMTAwNjQ0CistLS0gYS9s bC5jCisrKysgYi9sbC5jCitAQCAtNTIsMTEgKzUyLDQ5IEBAIHN0YXRpYyBzaWdfYXRvbWljX3Qg b3Blbl9yZWZjb3VudCA9IDA7CisgLyogc2FtZSBhcyBsaWIvZnVzZV9zaWduYWxzLmMgKi8KKyBz dGF0aWMgc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqZnVzZV9pbnN0YW5jZSA9IE5VTEw7CisgCisrc3Rh dGljIHZvaWQgdXBkYXRlX2FjY2Vzc190aW1lKHZvaWQpIHsKKysjaWZkZWYgU1FGU19NVUxUSVRI UkVBREVECisrCS8qIFdlIG9ubHkgbmVlZCB0byB0cmFjayBhY2Nlc3MgdGltZSBpZiB3ZSBoYXZl IGFuIGlkbGUgdGltZW91dCwKKysJICogZG9uJ3QgYm90aGVyIHdpdGggZXhwZW5zaXZlIG9wZXJh dGlvbnMgaWYgaWRsZV90aW1lb3V0IGlzIDAuCisrCSAqLworKwlpZiAoaWRsZV90aW1lb3V0X3Nl Y3MpIHsKKysJCXRpbWVfdCBub3cgPSB0aW1lKE5VTEwpOworKwkJX19hdG9taWNfc3RvcmVfbigm bGFzdF9hY2Nlc3MsIG5vdywgX19BVE9NSUNfUkVMRUFTRSk7CisrCX0KKysjZWxzZQorKwlsYXN0 X2FjY2VzcyA9IHRpbWUoTlVMTCk7CisrI2VuZGlmCisrfQorKworK3N0YXRpYyB2b2lkIHVwZGF0 ZV9vcGVuX3JlZmNvdW50KGludCBkZWx0YSkgeworKyNpZmRlZiBTUUZTX01VTFRJVEhSRUFERUQK KysJX19hdG9taWNfZmV0Y2hfYWRkKCZvcGVuX3JlZmNvdW50LCBkZWx0YSwgX19BVE9NSUNfUkVM RUFTRSk7CisrI2Vsc2UKKysJb3Blbl9yZWZjb3VudCArPSBkZWx0YTsKKysjZW5kaWYKKyt9Cisr Cisrc3RhdGljIGlubGluZSB0aW1lX3QgZ2V0X2FjY2Vzc190aW1lKHZvaWQpIHsKKysjaWZkZWYg U1FGU19NVUxUSVRIUkVBREVECisrCXJldHVybiBfX2F0b21pY19sb2FkX24oJmxhc3RfYWNjZXNz LCBfX0FUT01JQ19BQ1FVSVJFKTsKKysjZWxzZQorKwlyZXR1cm4gbGFzdF9hY2Nlc3M7CisrI2Vu ZGlmCisrfQorKworK3N0YXRpYyBpbmxpbmUgc2lnX2F0b21pY190IGdldF9vcGVuX3JlZmNvdW50 KHZvaWQpIHsKKysjaWZkZWYgU1FGU19NVUxUSVRIUkVBREVECisrCXJldHVybiBfX2F0b21pY19s b2FkX24oJm9wZW5fcmVmY291bnQsIF9fQVRPTUlDX0FDUVVJUkUpOworKyNlbHNlCisrCXJldHVy biBvcGVuX3JlZmNvdW50OworKyNlbmRpZgorK30KKysKKyB2b2lkIHNxZnNfbGxfb3BfZ2V0YXR0 cihmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sCisgCQlzdHJ1Y3QgZnVzZV9maWxlX2lu Zm8gKmZpKSB7CisgCXNxZnNfbGxfaSBsbGk7CisgCXN0cnVjdCBzdGF0IHN0OworLQlsYXN0X2Fj Y2VzcyA9IHRpbWUoTlVMTCk7CisrCXVwZGF0ZV9hY2Nlc3NfdGltZSgpOworIAlpZiAoc3Fmc19s bF9pZ2V0KHJlcSwgJmxsaSwgaW5vKSkKKyAJCXJldHVybjsKKyAJCitAQCAtNzEsNyArMTA5LDcg QEAgdm9pZCBzcWZzX2xsX29wX2dldGF0dHIoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5v LAorIHZvaWQgc3Fmc19sbF9vcF9vcGVuZGlyKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlu bywKKyAJCXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpIHsKKyAJc3Fmc19sbF9pICpsbGk7Cist CWxhc3RfYWNjZXNzID0gdGltZShOVUxMKTsKKysJdXBkYXRlX2FjY2Vzc190aW1lKCk7CisgCQor IAlmaS0+ZmggPSAoaW50cHRyX3QpTlVMTDsKKyAJCitAQCAtODYsNyArMTI0LDcgQEAgdm9pZCBz cWZzX2xsX29wX29wZW5kaXIoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAorIAkJCWZ1 c2VfcmVwbHlfZXJyKHJlcSwgRU5PVERJUik7CisgCQl9IGVsc2UgeworIAkJCWZpLT5maCA9IChp bnRwdHJfdClsbGk7CistCQkJKytvcGVuX3JlZmNvdW50OworKwkJCXVwZGF0ZV9vcGVuX3JlZmNv dW50KDEpOworIAkJCWZ1c2VfcmVwbHlfb3BlbihyZXEsIGZpKTsKKyAJCQlyZXR1cm47CisgCQl9 CitAQCAtOTYsMTQgKzEzNCwxNCBAQCB2b2lkIHNxZnNfbGxfb3Bfb3BlbmRpcihmdXNlX3JlcV90 IHJlcSwgZnVzZV9pbm9fdCBpbm8sCisgCisgdm9pZCBzcWZzX2xsX29wX2NyZWF0ZShmdXNlX3Jl cV90IHJlcSwgZnVzZV9pbm9fdCBwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUsCisgCQkJICAgICAg bW9kZV90IG1vZGUsIHN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpIHsKKy0JbGFzdF9hY2Nlc3Mg PSB0aW1lKE5VTEwpOworKwl1cGRhdGVfYWNjZXNzX3RpbWUoKTsKKyAJZnVzZV9yZXBseV9lcnIo cmVxLCBFUk9GUyk7CisgfQorIAorIHZvaWQgc3Fmc19sbF9vcF9yZWxlYXNlZGlyKGZ1c2VfcmVx X3QgcmVxLCBmdXNlX2lub190IGlubywKKyAJCXN0cnVjdCBmdXNlX2ZpbGVfaW5mbyAqZmkpIHsK Ky0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwpOworLQktLW9wZW5fcmVmY291bnQ7CisrCXVwZGF0 ZV9hY2Nlc3NfdGltZSgpOworKwl1cGRhdGVfb3Blbl9yZWZjb3VudCgtMSk7CisgCWZyZWUoKHNx ZnNfbGxfaSopKGludHB0cl90KWZpLT5maCk7CisgCWZ1c2VfcmVwbHlfZXJyKHJlcSwgMCk7IC8q IHllcywgdGhpcyBpcyBuZWNlc3NhcnkgKi8KKyB9CitAQCAtMTMyLDcgKzE3MCw3IEBAIHZvaWQg c3Fmc19sbF9vcF9yZWFkZGlyKGZ1c2VfcmVxX3QgcmVxLCBmdXNlX2lub190IGlubywgc2l6ZV90 IHNpemUsCisgCXNxZnNfbGxfaSAqbGxpID0gKHNxZnNfbGxfaSopKGludHB0cl90KWZpLT5maDsK KyAJaW50IGVyciA9IDA7CisgCQorLQlsYXN0X2FjY2VzcyA9IHRpbWUoTlVMTCk7CisrCXVwZGF0 ZV9hY2Nlc3NfdGltZSgpOworIAlpZiAoc3Fmc19kaXJfb3BlbigmbGxpLT5sbC0+ZnMsICZsbGkt Pmlub2RlLCAmZGlyLCBvZmYpKQorIAkJZXJyID0gRUlOVkFMOworIAlpZiAoIWVyciAmJiAhKGJ1 ZnBvcyA9IGJ1ZiA9IG1hbGxvYyhzaXplKSkpCitAQCAtMTczLDcgKzIxMSw3IEBAIHZvaWQgc3Fm c19sbF9vcF9sb29rdXAoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgcGFyZW50LAorIAlib29s IGZvdW5kOworIAlzcWZzX2lub2RlIGlub2RlOworIAkKKy0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5V TEwpOworKwl1cGRhdGVfYWNjZXNzX3RpbWUoKTsKKyAJaWYgKHNxZnNfbGxfaWdldChyZXEsICZs bGksIHBhcmVudCkpCisgCQlyZXR1cm47CisgCQorQEAgLTIyMyw3ICsyNjEsNyBAQCB2b2lkIHNx ZnNfbGxfb3Bfb3BlbihmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sCisgCXNxZnNfaW5v ZGUgKmlub2RlOworIAlzcWZzX2xsICpsbDsKKyAJCistCWxhc3RfYWNjZXNzID0gdGltZShOVUxM KTsKKysJdXBkYXRlX2FjY2Vzc190aW1lKCk7CisgCWlmIChmaS0+ZmxhZ3MgJiAoT19XUk9OTFkg fCBPX1JEV1IpKSB7CisgCQlmdXNlX3JlcGx5X2VycihyZXEsIEVST0ZTKTsKKyAJCXJldHVybjsK K0BAIC0yNDMsNyArMjgxLDcgQEAgdm9pZCBzcWZzX2xsX29wX29wZW4oZnVzZV9yZXFfdCByZXEs IGZ1c2VfaW5vX3QgaW5vLAorIAl9IGVsc2UgeworIAkJZmktPmZoID0gKGludHB0cl90KWlub2Rl OworIAkJZmktPmtlZXBfY2FjaGUgPSAxOworLQkJKytvcGVuX3JlZmNvdW50OworKwkJdXBkYXRl X29wZW5fcmVmY291bnQoMSk7CisgCQlmdXNlX3JlcGx5X29wZW4ocmVxLCBmaSk7CisgCQlyZXR1 cm47CisgCX0KK0BAIC0yNTQsOCArMjkyLDggQEAgdm9pZCBzcWZzX2xsX29wX3JlbGVhc2UoZnVz ZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAorIAkJc3RydWN0IGZ1c2VfZmlsZV9pbmZvICpm aSkgeworIAlmcmVlKChzcWZzX2lub2RlKikoaW50cHRyX3QpZmktPmZoKTsKKyAJZmktPmZoID0g MDsKKy0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwpOworLQktLW9wZW5fcmVmY291bnQ7CisrCXVw ZGF0ZV9hY2Nlc3NfdGltZSgpOworKwl1cGRhdGVfb3Blbl9yZWZjb3VudCgtMSk7CisgCWZ1c2Vf cmVwbHlfZXJyKHJlcSwgMCk7CisgfQorIAorQEAgLTI3Miw3ICszMTAsNyBAQCB2b2lkIHNxZnNf bGxfb3BfcmVhZChmdXNlX3JlcV90IHJlcSwgZnVzZV9pbm9fdCBpbm8sCisgCQlyZXR1cm47Cisg CX0KKyAJCistCWxhc3RfYWNjZXNzID0gdGltZShOVUxMKTsKKysJdXBkYXRlX2FjY2Vzc190aW1l KCk7CisgCW9zaXplID0gc2l6ZTsKKyAJZXJyID0gc3Fmc19yZWFkX3JhbmdlKCZsbC0+ZnMsIGlu b2RlLCBvZmYsICZvc2l6ZSwgYnVmKTsKKyAJaWYgKGVycikgeworQEAgLTI4OSw3ICszMjcsNyBA QCB2b2lkIHNxZnNfbGxfb3BfcmVhZGxpbmsoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5v KSB7CisgCWNoYXIgKmRzdDsKKyAJc2l6ZV90IHNpemU7CisgCXNxZnNfbGxfaSBsbGk7CistCWxh c3RfYWNjZXNzID0gdGltZShOVUxMKTsKKysJdXBkYXRlX2FjY2Vzc190aW1lKCk7CisgCWlmIChz cWZzX2xsX2lnZXQocmVxLCAmbGxpLCBpbm8pKQorIAkJcmV0dXJuOworIAkKK0BAIC0zMTMsNyAr MzUxLDcgQEAgdm9pZCBzcWZzX2xsX29wX2xpc3R4YXR0cihmdXNlX3JlcV90IHJlcSwgZnVzZV9p bm9fdCBpbm8sIHNpemVfdCBzaXplKSB7CisgCWNoYXIgKmJ1ZjsKKyAJaW50IGZlcnI7CisgCQor LQlsYXN0X2FjY2VzcyA9IHRpbWUoTlVMTCk7CisrCXVwZGF0ZV9hY2Nlc3NfdGltZSgpOworIAlp ZiAoc3Fmc19sbF9pZ2V0KHJlcSwgJmxsaSwgaW5vKSkKKyAJCXJldHVybjsKKyAKK0BAIC0zNTEs NyArMzg5LDcgQEAgdm9pZCBzcWZzX2xsX29wX2dldHhhdHRyKGZ1c2VfcmVxX3QgcmVxLCBmdXNl X2lub190IGlubywKKyAJfQorICNlbmRpZgorIAkKKy0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwp OworKwl1cGRhdGVfYWNjZXNzX3RpbWUoKTsKKyAJaWYgKHNxZnNfbGxfaWdldChyZXEsICZsbGks IGlubykpCisgCQlyZXR1cm47CisgCQorQEAgLTM3Myw3ICs0MTEsNyBAQCB2b2lkIHNxZnNfbGxf b3BfZ2V0eGF0dHIoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAorIHZvaWQgc3Fmc19s bF9vcF9mb3JnZXQoZnVzZV9yZXFfdCByZXEsIGZ1c2VfaW5vX3QgaW5vLAorIAkJdW5zaWduZWQg bG9uZyBubG9va3VwKSB7CisgCXNxZnNfbGxfaSBsbGk7CistCWxhc3RfYWNjZXNzID0gdGltZShO VUxMKTsKKysJdXBkYXRlX2FjY2Vzc190aW1lKCk7CisgCXNxZnNfbGxfaWdldChyZXEsICZsbGks IFNRRlNfRlVTRV9JTk9ERV9OT05FKTsKKyAJbGxpLmxsLT5pbm9fZm9yZ2V0KGxsaS5sbCwgaW5v LCBubG9va3VwKTsKKyAJZnVzZV9yZXBseV9ub25lKHJlcSk7CitAQCAtNDg5LDcgKzUyNyw4IEBA IHZvaWQgYWxhcm1fdGljayhpbnQgc2lnKSB7CisgCQlyZXR1cm47CisgCX0KKyAKKy0JaWYgKG9w ZW5fcmVmY291bnQgPT0gMCAmJiB0aW1lKE5VTEwpIC0gbGFzdF9hY2Nlc3MgPiBpZGxlX3RpbWVv dXRfc2VjcykgeworKwlpZiAoZ2V0X29wZW5fcmVmY291bnQoKSA9PSAwICYmCisrCQl0aW1lKE5V TEwpIC0gZ2V0X2FjY2Vzc190aW1lKCkgPiBpZGxlX3RpbWVvdXRfc2VjcykgeworIAkJLyogU2Fm ZWx5IHNodXR0aW5nIGRvd24gZnVzZSBpbiBhIGNyb3NzLXBsYXRmb3JtIHdheSBpcyBhIGRhcmsg YXJ0IQorIAkJICAgQnV0IGp1c3QgYWJvdXQgYW55IHBsYXRmb3JtIHNob3VsZCBzdG9wIG9uIFNJ R0lOVCwgc28gZG8gdGhhdCAqLworIAkJa2lsbChnZXRwaWQoKSwgU0lHSU5UKTsKK0BAIC00OTks OCArNTM4LDggQEAgdm9pZCBhbGFybV90aWNrKGludCBzaWcpIHsKKyB9CisgCisgdm9pZCBzZXR1 cF9pZGxlX3RpbWVvdXQoc3RydWN0IGZ1c2Vfc2Vzc2lvbiAqc2UsIHVuc2lnbmVkIGludCB0aW1l b3V0X3NlY3MpIHsKKy0JbGFzdF9hY2Nlc3MgPSB0aW1lKE5VTEwpOworIAlpZGxlX3RpbWVvdXRf c2VjcyA9IHRpbWVvdXRfc2VjczsKKysJdXBkYXRlX2FjY2Vzc190aW1lKCk7CisgCisgCXN0cnVj dCBzaWdhY3Rpb24gc2E7CisgCW1lbXNldCgmc2EsIDAsIHNpemVvZihzdHJ1Y3Qgc2lnYWN0aW9u KSk7CitkaWZmIC0tZ2l0IGEvbGxfbWFpbi5jIGIvbGxfbWFpbi5jCitpbmRleCBhY2E3NjkzNS4u MjIzMDIwODUgMTAwNjQ0CistLS0gYS9sbF9tYWluLmMKKysrKyBiL2xsX21haW4uYworQEAgLTE0 Miw4ICsxNDIsMjIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworIAkJCQkJ aWYgKG9wdHMuaWRsZV90aW1lb3V0X3NlY3MpIHsKKyAJCQkJCQlzZXR1cF9pZGxlX3RpbWVvdXQo Y2guc2Vzc2lvbiwgb3B0cy5pZGxlX3RpbWVvdXRfc2Vjcyk7CisgCQkJCQl9CistCQkJCQkvKiBG SVhNRTogbXVsdGl0aHJlYWRpbmcgKi8KKy0JCQkJCWVyciA9IGZ1c2Vfc2Vzc2lvbl9sb29wKGNo LnNlc3Npb24pOworKyNpZmRlZiBTUUZTX01VTFRJVEhSRUFERUQKKysjIGlmIEZVU0VfVVNFX1ZF UlNJT04gPj0gMzAKKysgICAgICAgICAgICAgICAgICAgIGlmICghZnVzZV9jbWRsaW5lX29wdHMu c2luZ2xldGhyZWFkKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZ1c2VfbG9v cF9jb25maWcgY29uZmlnOworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5jbG9uZV9m ZCA9IDE7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLm1heF9pZGxlX3RocmVhZHMg PSAxMDsKKysgICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBmdXNlX3Nlc3Npb25fbG9vcF9t dChjaC5zZXNzaW9uLCAmY29uZmlnKTsKKysgICAgICAgICAgICAgICAgICAgIH0KKysjIGVsc2Ug LyogRlVTRV9VU0VfVkVSU0lPTiA8IDMwICovCisrCQkgICAgaWYgKGZ1c2VfY21kbGluZV9vcHRz Lm10KSB7CisrCQkJZXJyID0gZnVzZV9zZXNzaW9uX2xvb3BfbXQoY2guc2Vzc2lvbik7CisrCQkg ICAgfQorKyMgZW5kaWYgLyogRlVTRV9VU0VfVkVSU0lPTiAqLworKyAgICAgICAgICAgICAgICAg ICAgZWxzZQorKyNlbmRpZgorKwkJCQkJICAgIGVyciA9IGZ1c2Vfc2Vzc2lvbl9sb29wKGNoLnNl c3Npb24pOworIAkJCQkJdGVhcmRvd25faWRsZV90aW1lb3V0KCk7CisgCQkJCQlmdXNlX3JlbW92 ZV9zaWduYWxfaGFuZGxlcnMoY2guc2Vzc2lvbik7CisgCQkJCX0KK0BAIC0xNTcsNCArMTcxLDQg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworIAlmcmVlKGZ1c2VfY21kbGlu ZV9vcHRzLm1vdW50cG9pbnQpOworIAkKKyAJcmV0dXJuIC1lcnI7CistfQorXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCisrfQorZGlmZiAtLWdpdCBhL200L3NxdWFzaGZ1c2VfYy5tNCBiL200 L3NxdWFzaGZ1c2VfYy5tNAoraW5kZXggZjI5YTkwYjEuLmM0MDM5YzQyIDEwMDY0NAorLS0tIGEv bTQvc3F1YXNoZnVzZV9jLm00CisrKysgYi9tNC9zcXVhc2hmdXNlX2MubTQKK0BAIC0yMSwzNyAr MjEsNiBAQAorICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIAorLSMgU1FfUFJPR19D UFBfUE9TSVhfMjAwMQorLSMKKy0jIENoZWNrIGlmIGEgcHJlcHJvY2Vzc29yIGZsYWcgaXMgbmVl ZGVkIGZvciBQT1NJWC0yMDAxIGhlYWRlcnMuCistIyBOZWVkZWQgYXQgbGVhc3Qgb24gU29sYXJp cyBhbmQgZGVyaXZhdGl2ZXMuCistQUNfREVGVU4oW1NRX1BST0dfQ1BQX1BPU0lYXzIwMDFdLFsK Ky1BQ19DQUNIRV9DSEVDSyhbZm9yIG9wdGlvbiBmb3IgUE9TSVgtMjAwMSBwcmVwcm9jZXNzb3Jd LCAKKy0JW3NxX2N2X3Byb2dfY3BwX3Bvc2l4MjAwMV0sCistWworLQlzcV9jdl9wcm9nX2NwcF9w b3NpeDIwMDE9dW5rbm93bgorLQlzcV9zYXZlX0NQUEZMQUdTPSRDUFBGTEFHUworLQlmb3Igc3Ff ZmxhZ3MgaW4gbm9uZSAtc3RkPWdudTk5IC14Yzk5PWFsbAorLQlkbworLQkJQVNfSUYoW3Rlc3Qg Ingkc3FfZmxhZ3MiID0geG5vbmVdLCwKKy0JCQlbQ1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTICRz cV9mbGFncyJdKQorLQkJQUNfUFJFUFJPQ19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbCistCQkJ I2RlZmluZSBfUE9TSVhfQ19TT1VSQ0UgMjAwMTEyTAorLQkJCSNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKy0JCV0pXSxbCistCQkJc3FfY3ZfcHJvZ19jcHBfcG9zaXgyMDAxPSRzcV9mbGFncworLQkJ CWJyZWFrCistCQldKQorLQlkb25lCistCUNQUEZMQUdTPSRzcV9zYXZlX0NQUEZMQUdTCistXSkK Ky1BU19JRihbdGVzdCAieCRzcV9jdl9wcm9nX2NwcF9wb3NpeDIwMDEiID0geHVua25vd25dLAor LQlbQUNfTVNHX0ZBSUxVUkUoW2Nhbid0IHByZXByb2Nlc3MgZm9yIFBPU0lYLTIwMDFdKV0sCist CVtBU19JRihbdGVzdCAieCRzcV9jdl9wcm9nX2NwcF9wb3NpeDIwMDEiID0geG5vbmVdLCwKKy0J CUNQUEZMQUdTPSIkQ1BQRkxBR1MgJHNxX2N2X3Byb2dfY3BwX3Bvc2l4MjAwMSIpCistXSkKKy1d KQorLQorICMgU1FfUFJPR19DQ19XQUxMCisgIworICMgQ2hlY2sgaWYgLVdhbGwgaXMgc3VwcG9y dGVkCitAQCAtNjcsNCArMzYsNCBAQCBBQ19DQUNIRV9DSEVDSyhbaG93IHRvIGVuYWJsZSBhbGwg Y29tcGlsZXIgd2FybmluZ3NdLAorIF0pCisgQVNfSUYoW3Rlc3QgIngkc3FfY3ZfcHJvZ19jY193 YWxsIiA9IHh1bmtub3duXSwsCisgCVtBQ19TVUJTVChbQU1fQ0ZMQUdTXSxbIiRBTV9DRkxBR1Mg JHNxX2N2X3Byb2dfY2Nfd2FsbCJdKV0pCistXSkKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorK10pCitkaWZmIC0tZ2l0IGEvc3F1YXNoZnNfZnMuaCBiL3NxdWFzaGZzX2ZzLmgKK2luZGV4 IGUwYWIxZjRlLi5hODViNzYwNiAxMDA2NDQKKy0tLSBhL3NxdWFzaGZzX2ZzLmgKKysrKyBiL3Nx dWFzaGZzX2ZzLmgKK0BAIC0xMDUsNyArMTA1LDExIEBACisgCisgCisgLyogY2FjaGVkIGRhdGEg Y29uc3RhbnRzIGZvciBmaWxlc3lzdGVtICovCistI2RlZmluZSBTUVVBU0hGU19DQUNIRURfQkxL UwkJOAorKyNpZmRlZiBTUUZTX01VTFRJVEhSRUFERUQKKysjIGRlZmluZSBTUVVBU0hGU19DQUNI RURfQkxLUwkJMTI4CisrI2Vsc2UKKysjIGRlZmluZSBTUVVBU0hGU19DQUNIRURfQkxLUwkJOAor KyNlbmRpZgorIAorICNkZWZpbmUgU1FVQVNIRlNfTUFYX0ZJTEVfU0laRV9MT0cJNjQKKyAKK2Rp ZmYgLS1naXQgYS90ZXN0cy9jYWNoZXRlc3QuYyBiL3Rlc3RzL2NhY2hldGVzdC5jCitpbmRleCA4 YTJjMjM2My4uYzUxNWZjZGYgMTAwNjQ0CistLS0gYS90ZXN0cy9jYWNoZXRlc3QuYworKysrIGIv dGVzdHMvY2FjaGV0ZXN0LmMKK0BAIC0zNiw2ICszNiw3IEBAIGludCB0ZXN0X2NhY2hlX21pc3Mo dm9pZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RTdHJ1Y3REaXNwb3Nl KSwgU1FGU19PSyk7CisgICAgIGVudHJ5ID0gKFRlc3RTdHJ1Y3QgKilzcWZzX2NhY2hlX2dldCgm Y2FjaGUsIDEpOworICAgICBFWFBFQ1RfRVEoc3Fmc19jYWNoZV9lbnRyeV92YWxpZCgmY2FjaGUs IGVudHJ5KSwgMCk7CisrICAgIHNxZnNfY2FjaGVfcHV0KCZjYWNoZSwgZW50cnkpOworICAgICBz cWZzX2NhY2hlX2Rlc3Ryb3koJmNhY2hlKTsKKyAKKyAgICAgcmV0dXJuIGVycm9ycyA9PSAwOwor ZGlmZiAtLWdpdCBhL3Rlc3RzL2xsLXNtb2tlLXNpbmdsZXRocmVhZGVkLnNoIGIvdGVzdHMvbGwt c21va2Utc2luZ2xldGhyZWFkZWQuc2gKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAwMDAw MDAwMC4uYzdjYmZjMzgKKy0tLSAvZGV2L251bGwKKysrKyBiL3Rlc3RzL2xsLXNtb2tlLXNpbmds ZXRocmVhZGVkLnNoCitAQCAtMCwwICsxLDEwIEBACisrIS9iaW4vYmFzaAorKworKyMgU2luZ2xl dGhyZWFkZWQgbGwtc21va2UgdGVzdC4KKysjCisrIyBXaGVuIG11bHRpdGhyZWFkaW5nIGlzIGVu YWJsZWQgYXQgYnVpbGQgdGltZSwgaXQgaXMgdGhlIGRlZmF1bHQKKysjIGJlaGF2aW9yIG9mIHNx dWFzaGZ1c2VfbGwsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYXQgcnVudGltZSB3aXRoCisrIyB0aGUg RlVTRSAnLXMnIGNvbW1hbmRsaW5lIG9wdGlvbi4KKysjCisrIyBTbyB3ZSBqdXN0IHJlLXJ1biB0 aGUgbm9ybWFsIGxsLXNtb2tlIHRlc3Qgd2l0aCB0aGUgJy1zJyBvcHRpb24uCisrU0ZMTF9FWFRS QV9BUkdTPSItcyIgJChkaXJuYW1lIC0tICQwKS9sbC1zbW9rZS5zaAorZGlmZiAtLWdpdCBhL3Rl c3RzL2xsLXNtb2tlLnNoIGIvdGVzdHMvbGwtc21va2Uuc2gKK25ldyBmaWxlIG1vZGUgMTAwNzU1 CitpbmRleCAwMDAwMDAwMC4uNmI5ZjQ2NDEKKy0tLSAvZGV2L251bGwKKysrKyBiL3Rlc3RzL2xs LXNtb2tlLnNoCitAQCAtMCwwICsxLDE0MSBAQAorKyMhL2Jpbi9zaAorKworKy4gInRlc3RzL2xp Yi5zaCIKKysKKysjIFZlcnkgc2ltcGxlIHNtb2tlIHRlc3QgZm9yIHNxdWFzaGZ1c2VfbGwuIE1h a2Ugc29tZSByYW5kb20gZmlsZXMuCisrIyBhc3NlbWJsZSBhIHNxdWFzaGZzIGltYWdlLCBtb3Vu dCBpdCwgY29tcGFyZSB0aGUgZmlsZXMuCisrCisrU0ZMTD0kezE6LS4vc3F1YXNoZnVzZV9sbH0g ICAgICAgICAjIFRoZSBzcXVhc2hmdXNlX2xsIGJpbmFyeS4KKysKKytJRExFX1RJTUVPVVQ9NQor KworK3RyYXAgY2xlYW51cCBFWElUCisrc2V0IC1lCisrCisrV09SS0RJUj0kKG1rdGVtcCAtZCkK KysKKytzcV91bW91bnQoKSB7CisrICAgIGNhc2UgbGludXgtZ251IGluCisrICAgICAgICBsaW51 eCopCisrICAgICAgICAgICAgZnVzZXJtb3VudDMgLXUgJDEKKysgICAgICAgICAgICA7OworKyAg ICAgICAgKikKKysgICAgICAgICAgICB1bW91bnQgJDEKKysgICAgICAgICAgICA7OworKyAgICBl c2FjCisrfQorKworK3NxX2lzX21vdW50cG9pbnQoKSB7CisrICAgIG1vdW50IHwgZ3JlcCAtcSAi JDEiCisrfQorKworK2NsZWFudXAoKSB7CisrICAgIHNldCArZSAjIERvbid0IGNhcmUgYWJvdXQg ZXJyb3JzIGhlcmUuCisrICAgIGlmIFsgLW4gIiRXT1JLRElSIiBdOyB0aGVuCisrICAgICAgICBp ZiBbIC1uICIkU1FfU0FWRV9MT0dTIiBdOyB0aGVuCisrICAgICAgICAgICAgY3AgIiRXT1JLRElS L3NxdWFzaGZzX2xsLmxvZyIgIiRTUV9TQVZFX0xPR1MiIHx8IHRydWUKKysgICAgICAgIGZpCisr ICAgICAgICBpZiBzcV9pc19tb3VudHBvaW50ICIkV09SS0RJUi9tb3VudCI7IHRoZW4KKysgICAg ICAgICAgICBzcV91bW91bnQgIiRXT1JLRElSL21vdW50IgorKyAgICAgICAgZmkKKysgICAgICAg IHJtIC1yZiAiJFdPUktESVIiCisrICAgIGZpCisrfQorKworK2ZpbmRfY29tcHJlc3NvcnMKKysK KytlY2hvICJHZW5lcmF0aW5nIHJhbmRvbSB0ZXN0IGZpbGVzLi4uIgorK21rZGlyIC1wICIkV09S S0RJUi9zb3VyY2UiCisraGVhZCAtYyA2NDAwMDAwMCAvZGV2L3VyYW5kb20gPiIkV09SS0RJUi9z b3VyY2UvcmFuZDEiCisraGVhZCAtYyAxNzAwMCAvZGV2L3VyYW5kb20gPiIkV09SS0RJUi9zb3Vy Y2UvcmFuZDIiCisraGVhZCAtYyAxMDAwMDAwMDAgL2Rldi91cmFuZG9tID4iJFdPUktESVIvc291 cmNlL3JhbmQzIgorK2hlYWQgLWMgODcgL2Rldi96ZXJvID4iJFdPUktESVIvc291cmNlL3oxIHdp dGggc3BhY2VzIgorKworK2ZvciBjb21wIGluICRjb21wcmVzc29yczsgZG8KKysgICAgZWNobyAi QnVpbGRpbmcgJGNvbXAgc3F1YXNoZnMgaW1hZ2UuLi4iCisrICAgIG1rc3F1YXNoZnMgIiRXT1JL RElSL3NvdXJjZSIgIiRXT1JLRElSL3NxdWFzaGZzLmltYWdlIiAtY29tcCAkY29tcCAtbm8tcHJv Z3Jlc3MKKysKKysgICAgbWtkaXIgLXAgIiRXT1JLRElSL21vdW50IgorKworKyAgICBlY2hvICJN b3VudGluZyBzcXVhc2hmcyBpbWFnZS4uLiIKKysgICAgJFNGTEwgLWYgJFNGTExfRVhUUkFfQVJH UyAiJFdPUktESVIvc3F1YXNoZnMuaW1hZ2UiICIkV09SS0RJUi9tb3VudCIgPiIkV09SS0RJUi9z cXVhc2hmc19sbC5sb2ciIDI+JjEgJgorKyAgICAjIFdhaXQgdXAgdG8gNSBzZWNvbmRzIHRvIGJl IG1vdW50ZWQuIFRTQU4gYnVpbGRzIGNhbiB0YWtlIHNvbWUgdGltZSB0byBtb3VudC4KKysgICAg Zm9yIF8gaW4gJChzZXEgNSk7IGRvCisrICAgIGlmIHNxX2lzX21vdW50cG9pbnQgIiRXT1JLRElS L21vdW50IjsgdGhlbgorKyAgICAgICAgYnJlYWsKKysgICAgZmkKKysgICAgc2xlZXAgMQorKyAg ICBkb25lCisrCisrICAgIGlmICEgc3FfaXNfbW91bnRwb2ludCAiJFdPUktESVIvbW91bnQiOyB0 aGVuCisrICAgICAgICBlY2hvICJJbWFnZSBkaWQgbm90IG1vdW50IGFmdGVyIDUgc2Vjb25kcy4i CisrICAgICAgICBjcCAiJFdPUktESVIvc3F1YXNoZnNfbGwubG9nIiAvdG1wL3NxdWFzaGZzX2xs LnNtb2tlLmxvZworKyAgICAgICAgZWNobyAiVGhlcmUgbWF5IGJlIGNsdWVzIGluIC90bXAvc3F1 YXNoZnNfbGwuc21va2UubG9nIgorKyAgICAgICAgZXhpdCAxCisrICAgIGZpCisrCisrICAgIGlm IGNvbW1hbmQgLXYgZmlvID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgIGVjaG8gIkZJTyB0ZXN0 cy4uLiIKKysgICAgICAgIGZpbyAtLWZpbGVuYW1lPSIkV09SS0RJUi9tb3VudC9yYW5kMSIgLS1k aXJlY3Q9MSAtLXJ3PXJhbmRyZWFkIC0taW9lbmdpbmU9bGliYWlvIC0tYnM9NTEyIC0taW9kZXB0 aD0xNiAtLW51bWpvYnM9NCAtLW5hbWU9ajEgLS1taW5pbWFsIC0tb3V0cHV0PS9kZXYvbnVsbCAt LXJ1bnRpbWUgMzAKKysgICAgICAgIGZpbyAtLWZpbGVuYW1lPSIkV09SS0RJUi9tb3VudC9yYW5k MiIgLS1ydz1yYW5kcmVhZCAtLWlvZW5naW5lPWxpYmFpbyAtLWJzPTRrIC0taW9kZXB0aD0xNiAt LW51bWpvYnM9NCAtLW5hbWU9ajIgLS1taW5pbWFsIC0tb3V0cHV0PS9kZXYvbnVsbCAtLXJ1bnRp bWUgMzAKKysgICAgICAgIGZpbyAtLWZpbGVuYW1lPSIkV09SS0RJUi9tb3VudC9yYW5kMyIgLS1y dz1yYW5kcmVhZCAtLWlvZW5naW5lPXBzeW5jIC0tYnM9MTI4ayAtLW5hbWU9ajMgLS1taW5pbWFs IC0tb3V0cHV0PS9kZXYvbnVsbCAtLXJ1bnRpbWUgMzAKKysgICAgZWxzZQorKyAgICAgICAgZWNo byAiQ29uc2lkZXIgaW5zdGFsbGluZyBmaW8gZm9yIGJldHRlciB0ZXN0IGNvdmVyYWdlLiIKKysg ICAgZmkKKysKKysgICAgZWNobyAiQ29tcGFyaW5nIGZpbGVzLi4uIgorKyAgICBjbXAgIiRXT1JL RElSL3NvdXJjZS9yYW5kMSIgIiRXT1JLRElSL21vdW50L3JhbmQxIgorKyAgICBjbXAgIiRXT1JL RElSL3NvdXJjZS9yYW5kMiIgIiRXT1JLRElSL21vdW50L3JhbmQyIgorKyAgICBjbXAgIiRXT1JL RElSL3NvdXJjZS9yYW5kMyIgIiRXT1JLRElSL21vdW50L3JhbmQzIgorKyAgICBjbXAgIiRXT1JL RElSL3NvdXJjZS96MSB3aXRoIHNwYWNlcyIgIiRXT1JLRElSL21vdW50L3oxIHdpdGggc3BhY2Vz IgorKworKyAgICBlY2hvICJQYXJhbGxlbCBtZDVzdW0uLi4iCisrICAgIG1kNXN1bSAiJFdPUktE SVIiL21vdW50LyogPiIkV09SS0RJUi9tZDVzdW1zIgorKyAgICBzcGxpdCAtbDEgIiRXT1JLRElS L21kNXN1bXMiICIkV09SS0RJUi9zdW1waWVjZSIKKysgICAgZWNobyAiJFdPUktESVIiL3N1bXBp ZWNlKiB8IHhhcmdzIC1QNCAtbjEgbWQ1c3VtIC1jCisrCisrICAgIGVjaG8gIkxvb2t1cCB0ZXN0 cy4uLiIKKysgICAgIyBMb29rIGZvciBub24tZXhpc3RlbnQgZmlsZXMgdG8gZXhlcmNpc2UgZmFp bGVkIGxvb2t1cCBwYXRoLgorKyAgICBpZiBbIC1lICIkV09SS0RJUi9tb3VudC9ib2d1cyIgXTsg dGhlbgorKyAgICAgICAgZWNobyAiQm9ndXMgZXhpc3RlbmNlIHRlc3QiCisrICAgICAgICBleGl0 IDEKKysgICAgZmkKKysgICAgIyBUd2ljZSBzbyB3ZSBoaXQgY2FjaGUgcGF0aC4KKysgICAgaWYg WyAtZSAiJFdPUktESVIvbW91bnQvYm9ndXMiIF07IHRoZW4KKysgICAgICAgIGVjaG8gIkJvZ3Vz IGV4aXN0ZW5jZSB0ZXN0ICMyIgorKyAgICAgICAgZXhpdCAxCisrICAgIGZpCisrCisrICAgIFNS Q1NaPSQod2MgLWMgPCAiJFdPUktESVIvc291cmNlL3JhbmQxIikKKysgICAgTU5UU1o9JCh3YyAt YyA8ICIkV09SS0RJUi9tb3VudC9yYW5kMSIpCisrICAgIGlmIFsgIiRTUkNTWiIgIT0gIiRNTlRT WiIgXTsgdGhlbgorKyAgICAgICAgZWNobyAiQm9ndXMgc2l6ZSAkTU5UU1ogIT0gJFNSQ1NaIgor KyAgICAgICAgZXhpdCAxCisrICAgIGZpCisrCisrICAgIGVjaG8gIlVubW91bnRpbmcuLi4iCisr ICAgIHNxX3Vtb3VudCAiJFdPUktESVIvbW91bnQiCisrCisrICAgICMgT25seSB0ZXN0IHRpbWVv dXRzIG9uY2UsIGl0IHRha2VzIGEgbG9uZyB0aW1lCisrICAgIGlmIFsgLXogIiRkaWRfdGltZW91 dCIgXTsgdGhlbgorKyAgICAgICAgZWNobyAiUmVtb3VudGluZyB3aXRoIGlkbGUgdW5tb3VudCBv cHRpb24uLi4iCisrICAgICAgICAkU0ZMTCAkU0ZMTF9FWFRSQV9BUkdTIC1vdGltZW91dD0kSURM RV9USU1FT1VUICIkV09SS0RJUi9zcXVhc2hmcy5pbWFnZSIgIiRXT1JLRElSL21vdW50IgorKyAg ICAgICAgaWYgISBzcV9pc19tb3VudHBvaW50ICIkV09SS0RJUi9tb3VudCI7IHRoZW4KKysgICAg ICAgICAgICBlY2hvICJOb3QgbW91bnRlZD8iCisrICAgICAgICAgICAgZXhpdCAxCisrICAgICAg ICBmaQorKyAgICAgICAgZWNobyAiV2FpdGluZyB1cCB0byAkKCggSURMRV9USU1FT1VUICsgMTAg KSkgc2Vjb25kcyBmb3IgaWRsZSB1bm1vdW50Li4uIgorKyAgICAgICAgc2xlZXAgJCgoIElETEVf VElNRU9VVCArIDEwICkpCisrICAgICAgICBpZiBzcV9pc19tb3VudHBvaW50ICIkV09SS0RJUi9t b3VudCI7IHRoZW4KKysgICAgICAgICAgICBlY2hvICJGUyBkaWQgbm90IGlkbGUgdW5tb3VudCBp biB0aW1lbHkgd2F5LiIKKysgICAgICAgICAgICBleGl0IDEKKysgICAgICAgIGZpCisrCisrICAg ICAgICBkaWRfdGltZW91dD15ZXMKKysgICAgZmkKKysKKysgICAgcm0gLWYgIiRXT1JLRElSL3Nx dWFzaGZzLmltYWdlIgorK2RvbmUKKysKKytlY2hvICJTdWNjZXNzLiIKKytleGl0IDAKK2RpZmYg LS1naXQgYS90ZXN0cy9sbC1zbW9rZS5zaC5pbiBiL3Rlc3RzL2xsLXNtb2tlLnNoLmluCitpbmRl eCA4NDI1NjI2Ny4uZDdkZGQ4YTEgMTAwNzU1CistLS0gYS90ZXN0cy9sbC1zbW9rZS5zaC5pbgor KysrIGIvdGVzdHMvbGwtc21va2Uuc2guaW4KK0BAIC01MiwxMyArNTIsMTMgQEAgaGVhZCAtYyAx MDAwMDAwMDAgL2Rldi91cmFuZG9tID4iJFdPUktESVIvc291cmNlL3JhbmQzIgorIGhlYWQgLWMg ODcgL2Rldi96ZXJvID4iJFdPUktESVIvc291cmNlL3oxIHdpdGggc3BhY2VzIgorIAorIGZvciBj b21wIGluICRjb21wcmVzc29yczsgZG8KKy0gICAgZWNobyAiQnVpbGRpbmcgJGNvbXAgc3F1YXNo ZnMgaW1hZ2UsLiwiCisrICAgIGVjaG8gIkJ1aWxkaW5nICRjb21wIHNxdWFzaGZzIGltYWdlLi4u IgorICAgICBta3NxdWFzaGZzICIkV09SS0RJUi9zb3VyY2UiICIkV09SS0RJUi9zcXVhc2hmcy5p bWFnZSIgLWNvbXAgJGNvbXAgLW5vLXByb2dyZXNzCisgCisgICAgIG1rZGlyIC1wICIkV09SS0RJ Ui9tb3VudCIKKyAKKyAgICAgZWNobyAiTW91bnRpbmcgc3F1YXNoZnMgaW1hZ2UuLi4iCistICAg ICRTRkxMIC1mICAiJFdPUktESVIvc3F1YXNoZnMuaW1hZ2UiICIkV09SS0RJUi9tb3VudCIgPiIk V09SS0RJUi9zcXVhc2hmc19sbC5sb2ciIDI+JjEgJgorKyAgICAkU0ZMTCAtZiAkU0ZMTF9FWFRS QV9BUkdTICIkV09SS0RJUi9zcXVhc2hmcy5pbWFnZSIgIiRXT1JLRElSL21vdW50IiA+IiRXT1JL RElSL3NxdWFzaGZzX2xsLmxvZyIgMj4mMSAmCisgICAgICMgV2FpdCB1cCB0byA1IHNlY29uZHMg dG8gYmUgbW91bnRlZC4gVFNBTiBidWlsZHMgY2FuIHRha2Ugc29tZSB0aW1lIHRvIG1vdW50Lgor ICAgICBmb3IgXyBpbiAkKHNlcSA1KTsgZG8KKyAgICAgaWYgc3FfaXNfbW91bnRwb2ludCAiJFdP UktESVIvbW91bnQiOyB0aGVuCitAQCAtMTE5LDcgKzExOSw3IEBAIGZvciBjb21wIGluICRjb21w cmVzc29yczsgZG8KKyAgICAgIyBPbmx5IHRlc3QgdGltZW91dHMgb25jZSwgaXQgdGFrZXMgYSBs b25nIHRpbWUKKyAgICAgaWYgWyAteiAiJGRpZF90aW1lb3V0IiBdOyB0aGVuCisgICAgICAgICBl Y2hvICJSZW1vdW50aW5nIHdpdGggaWRsZSB1bm1vdW50IG9wdGlvbi4uLiIKKy0gICAgICAgICRT RkxMIC1vdGltZW91dD0kSURMRV9USU1FT1VUICIkV09SS0RJUi9zcXVhc2hmcy5pbWFnZSIgIiRX T1JLRElSL21vdW50IgorKyAgICAgICAgJFNGTEwgJFNGTExfRVhUUkFfQVJHUyAtb3RpbWVvdXQ9 JElETEVfVElNRU9VVCAiJFdPUktESVIvc3F1YXNoZnMuaW1hZ2UiICIkV09SS0RJUi9tb3VudCIK KyAgICAgICAgIGlmICEgc3FfaXNfbW91bnRwb2ludCAiJFdPUktESVIvbW91bnQiOyB0aGVuCisg ICAgICAgICAgICAgZWNobyAiTm90IG1vdW50ZWQ/IgorICAgICAgICAgICAgIGV4aXQgMQorCitG cm9tIDA2OWU4ZjgwMjQ4MWFmMDYzNmZhYmVmNDZiZWM3NWRlMTk5MmIyMjAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBLZXZpbiBWaWdvciA8a3ZpZ29yQGdtYWlsLmNvbT4KK0RhdGU6 IE1vbiwgMjMgTWF5IDIwMjIgMTQ6NTU6MjUgLTA2MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNdIEVu YWJsZSBsYXp5IHVtb3VudCBvbiBTSUdURVJNLgorCitsaWJmdXNlIHNldHMgU0lHVEVSTSBzaWdu YWwgaGFuZGxlciB0byBleGl0IGltbWVkaWF0ZWx5LiBUaGlzIGlzIHZlcnkKK3VuZm9ydHVuYXRl IGlmIGFueSBvdGhlciBwcm9jZXNzZXMgYXJlIHN0aWxsIHVzaW5nIHRoZSBmaWxlc3lzdGVtLgor CitUZWFjaCBzcXVhc2hmdXNlX2xsIHRvIHJlc3BvbmQgdG8gU0lHVEVSTSB3aXRoIGxhenkgdW1v dW50LiBXZSBjYW5ub3QKK2RpcmVjdGx5IGNhbGwgdW1vdW50MigpIEFQSSBmcm9tIHRoZSBzaWdu YWwgaGFuZGxlciwgc2luY2UgaXQgaXMgbm90CitzaWduYWwgc2FmZSwgYnV0IHdlIGNhbiBmb3Jr L2V4ZWMgZnVzZXJtb3VudDMgKHlheSBwb3NpeD8pLiBUaGlzIGlzCithbHNvIGEgd2luIGJlY2F1 c2UgZnVzZXJtb3VudCBpcyBzdWlkLCBlbmFibGluZyBub24tcHJpdmlsZWdlZCB1c2VycwordG8g dW1vdW50LiBOb3RlIHRoYXQgbm9ybWFsIGxpYmZ1c2UgdW1vdW50IHVzZXMgc2FtZSBzdHJhdGVn eSB3aGVuCitydW5uaW5nIGFzIG5vbi1yb290LgorCitOb3RlIHRoYXQgdGhpcyBtdXN0IGJlIGV4 cGxpY2l0bHkgZW5hYmxlZCBhdCBjb25maWd1cmUgdGltZSB3aXRoCistLWVuYWJsZS1zaWd0ZXJt LWhhbmRsZXIsIGFuZCBpdCBpcyBvbmx5IHRlc3RlZCBvbiBsaW51eC4KKy0tLQorIE1ha2VmaWxl LmFtICAgICAgICAgICAgIHwgIDMgKysKKyBjb25maWd1cmUuYWMgICAgICAgICAgICB8ICA5ICsr KysrCisgbGxfbWFpbi5jICAgICAgICAgICAgICAgfCA4NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKworIHRlc3RzL3Vtb3VudC10ZXN0LnNoLmluIHwgODUgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgMTg0 IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvdW1vdW50LXRlc3Quc2gu aW4KKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK2luZGV4IDE3YjAx YmU0Li42N2MxN2NkZSAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5h bQorQEAgLTExMSw2ICsxMTEsOSBAQCBpZiBNVUxUSVRIUkVBREVECisgIyB0aGF0IGNhc2UuCisg VEVTVFMgKz0gdGVzdHMvbGwtc21va2Utc2luZ2xldGhyZWFkZWQuc2gKKyBlbmRpZgorK2lmIFNJ R1RFUk1fSEFORExFUgorK1RFU1RTICs9IHRlc3RzL3Vtb3VudC10ZXN0LnNoCisrZW5kaWYKKyBj aGVja19QUk9HUkFNUyA9IGNhY2hldGVzdCBlbmRpYW50ZXN0CisgY2FjaGV0ZXN0X1NPVVJDRVM9 dGVzdHMvY2FjaGV0ZXN0LmMKKyBjYWNoZXRlc3RfTERBREQ9bGlic3F1YXNoZnVzZS5sYSAkKENP TVBSRVNTSU9OX0xJQlMpCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFj CitpbmRleCAzODY5MDc1YS4uN2NkNGRiNzcgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysr KyBiL2NvbmZpZ3VyZS5hYworQEAgLTkxLDYgKzkxLDcgQEAgQVNfSUYoW3Rlc3QgIngkc3FfdGVz dHMiID0geF0sIFtzcV90ZXN0cz0iIG5vbmUiXSkKKyAKKyBBQ19TVUJTVChbc3FfbWtzcXVhc2hm c19jb21wcmVzc29yc10pCisgQUNfQ09ORklHX0ZJTEVTKFt0ZXN0cy9sbC1zbW9rZS5zaF0sW2No bW9kICt4IHRlc3RzL2xsLXNtb2tlLnNoXSkKKytBQ19DT05GSUdfRklMRVMoW3Rlc3RzL3Vtb3Vu dC10ZXN0LnNoXSxbY2htb2QgK3ggdGVzdHMvdW1vdW50LXRlc3Quc2hdKQorIAorIAorIEFTX0lG KFt0ZXN0ICJ4JHNxX2hpZ2hfbGV2ZWwkc3FfbG93X2xldmVsJHNxX2RlbW8iID0geG5vbm9ub10s CitAQCAtMTA0LDYgKzEwNSwxNCBAQCBBQ19BUkdfRU5BQkxFKFttdWx0aXRocmVhZGluZ10sCisg ICAgIF0pCisgQU1fQ09ORElUSU9OQUwoW01VTFRJVEhSRUFERURdLCBbdGVzdCB4JGVuYWJsZV9t dWx0aXRocmVhZGluZyA9IHh5ZXNdKQorIAorK0FDX0FSR19FTkFCTEUoW3NpZ3Rlcm0taGFuZGxl cl0sCisrCUFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zaWd0ZXJtLWhhbmRsZXJdLCBbZW5hYmxl IGxhenkgdW1vdW50IG9uIFNJR1RFUk0gaW4gbG93LWxldmVsIEZVU0UgZHJpdmVyXSksCisrCVsK KysgICAgQUNfQ0hFQ0tfSEVBREVSKFtsaW51eC92ZXJzaW9uLmhdLCAsIFtdLCBBQ19NU0dfRVJS T1IoW2xpbnV4IGhvc3QgcmVxdWlyZWQgZm9yIHNpZ3Rlcm0taGFuZGxlci5dKSkKKysgICAgQUNf REVGSU5FKFNRRlNfU0lHVEVSTV9IQU5ETEVSLCAxLCBbRW5hYmxlIGxhenkgdW1vdW50IG9uIFNJ R1RFUk0gaW4gbG93LWxldmVsIEZVU0UgZHJpdmVyXSkKKysgICAgXSkKKytBTV9DT05ESVRJT05B TChbU0lHVEVSTV9IQU5ETEVSXSwgW3Rlc3QgeCRlbmFibGVfc2lndGVybV9oYW5kbGVyID0geHll c10pCisrCisgQUNfU1VCU1QoW3NxX2RlY29tcHJlc3NvcnNdKQorIEFDX1NVQlNUKFtzcV9oaWdo X2xldmVsXSkKKyBBQ19TVUJTVChbc3FfbG93X2xldmVsXSkKK2RpZmYgLS1naXQgYS9sbF9tYWlu LmMgYi9sbF9tYWluLmMKK2luZGV4IDIyMzAyMDg1Li4wZjk1NmI1ZCAxMDA2NDQKKy0tLSBhL2xs X21haW4uYworKysrIGIvbGxfbWFpbi5jCitAQCAtMzcsNiArMzcsOTAgQEAKKyAjaW5jbHVkZSA8 c2lnbmFsLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKworKyNpZiBkZWZpbmVkKFNRRlNf U0lHVEVSTV9IQU5ETEVSKQorKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorKyNpbmNsdWRlIDxs aW51eC92ZXJzaW9uLmg+Cisrc3RhdGljIGJvb2wga2VybmVsX3ZlcnNpb25fYXRfbGVhc3QodW5z aWduZWQgcmVxdWlyZWRfbWFqb3IsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgcmVxdWlyZWRfbWlub3IsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgcmVxdWlyZWRfbWljcm8pIHsKKysgICAgc3RydWN0IHV0c25hbWUg aW5mbzsKKysKKysgICAgaWYgKHVuYW1lKCZpbmZvKSA+PSAwKSB7CisrICAgICAgICB1bnNpZ25l ZCBtYWpvciwgbWlub3IsIG1pY3JvOworKworKyAgICAgICAgaWYgKHNzY2FuZihpbmZvLnJlbGVh c2UsICIldS4ldS4ldSIsICZtYWpvciwgJm1pbm9yLCAmbWljcm8pID09IDMpIHsKKysgICAgICAg ICAgICByZXR1cm4gS0VSTkVMX1ZFUlNJT04obWFqb3IsIG1pbm9yLCBtaWNybykgPj0KKysgICAg ICAgICAgICAgICAgS0VSTkVMX1ZFUlNJT04ocmVxdWlyZWRfbWFqb3IsIHJlcXVpcmVkX21pbm9y LCByZXF1aXJlZF9taWNybyk7CisrICAgICAgICB9CisrICAgIH0KKysgICAgcmV0dXJuIGZhbHNl OworK30KKysKKysvKiBsaWJmdXNlJ3MgZGVmYXVsdCBTSUdURVJNIGhhbmRsZXIgKHNldCB1cCBp biBmdXNlX3NldF9zaWduYWxfaGFuZGxlcnMoKSkKKysgKiBpbW1lZGlhdGVseSBjYWxscyBmdXNl X3Nlc3Npb25fZXhpdCgpLCB3aGljaCBzaHV0cyBkb3duIHRoZSBmaWxlc3lzdGVtCisrICogZXZl biBpZiB0aGVyZSBhcmUgYWN0aXZlIHVzZXJzLiBUaGlzIGxlYWRzIHRvIG5hc3RpbmVzcyBpZiBv dGhlciBwcm9jZXNzZXMKKysgKiBzdGlsbCBkZXBlbmQgb24gdGhlIGZpbGVzeXN0ZW0uCisrICoK KysgKiBTbzogd2UgcmVzcG9uZCB0byBTSUdURVJNIGJ5IHN0YXJ0aW5nIGEgbGF6eSB1bm1vdW50 LiBUaGlzIGlzIGRvbmUKKysgKiBieSBleGVjJ2luZyBmdXNlcm1vdW50Mywgd2hpY2ggd29ya3Mg cHJvcGVybHkgZm9yIHVucHJpdmlsZWRnZWQKKysgKiB1c2VycyAod2UgY2Fubm90IHVzZSB1bW91 bnQyKCkgc3lzY2FsbCBiZWNhdXNlIGl0IGlzIG5vdCBzaWduYWwgc2FmZTsKKysgKiBmb3JrKCkg YW5kIGV4ZWMoKSwgYW1hemluZ2x5LCBhcmUpLgorKyAqCisrICogSWYgd2UgZmFpbCB0byBzdGFy dCB0aGUgbGF6eSB1bW91bnQsIHdlIHNpZ25hbCBvdXJzZWxmIHdpdGggU0lHSU5ULAorKyAqIHdo aWNoIGZhbGxzIGJhY2sgdG8gdGhlIG9sZCBiZWhhdmlvciBvZiBleGl0aW5nIEFTQVAuCisrICov Cisrc3RhdGljIGNvbnN0IGNoYXIgKmdfbW91bnRfcG9pbnQgPSBOVUxMOworK3N0YXRpYyB2b2lk IHNpZ3Rlcm1faGFuZGxlcihpbnQgc2lnbnVtKSB7CisrCS8qIFVuZm9ydHVuYXRlbHksIGxhenkg dW1vdW50IG9mIGluLXVzZSBmdXNlIGZpbGVzeXN0ZW0gdHJpZ2dlcnMKKysJICoga2VybmVsIGJ1 ZyBvbiBrZXJuZWxzIDwgNS4yLCBGaXhlZCBieSBrZXJuZWwgY29tbWl0CisrCSAqIGU4ZjNiZDc3 M2QyMmY0ODg3MjRkZmZiODg2YTE2MThkYTg1YzI5NjYgaW4gNS4yLgorKwkgKi8KKysJaWYgKGdf bW91bnRfcG9pbnQgJiYga2VybmVsX3ZlcnNpb25fYXRfbGVhc3QoNSwyLDApKSB7CisrICAgICAg ICBpbnQgcGlkID0gZm9yaygpOworKyAgICAgICAgaWYgKHBpZCA9PSAwKSB7CisrICAgICAgICAg ICAgLyogY2hpbGQgcHJvY2VzczogZGlzYXNzb2NpYXRlIG91cnNlbGYgZnJvbSBwYXJlbnQgc28K KysgICAgICAgICAgICAgKiB3ZSBkbyBub3QgYmVjb21lIHpvbWJpZSAoYXMgcGFyZW50IGRvZXMg bm90IHdhaXRwaWQoKSkuCisrICAgICAgICAgICAgICovCisrICAgICAgICAgICAgcGlkX3QgcGFy ZW50ID0gZ2V0cHBpZCgpOworKyAgICAgICAgICAgIHNldHNpZCgpOworKyAgICAgICAgICAgIGV4 ZWNsKCIvYmluL2Z1c2VybW91bnQzIiwgImZ1c2VybW91bnQzIiwKKysgICAgICAgICAgICAgICAg ICAiLXUiLCAiLXEiLCAiLXoiLCAiLS0iLCBnX21vdW50X3BvaW50LCBOVUxMKTsKKysgICAgICAg ICAgICBleGVjbHAoImZ1c2VybW91bnQzIiwgImZ1c2VybW91bnQzIiwKKysgICAgICAgICAgICAg ICAgICAgIi11IiwgIi1xIiwgIi16IiwgIi0tIiwgZ19tb3VudF9wb2ludCwgTlVMTCk7CisrICAg ICAgICAgICAgLyogaWYgd2UgZ2V0IGhlcmUsIHdlIGNhbid0IHJ1biBmdXNlcm1vdW50LAorKyAg ICAgICAgICAgICAqIGtpbGwgdGhlIG9yaWdpbmFsIHByb2Nlc3Mgd2l0aCBhIGhhcnNobmVzcy4K KysgICAgICAgICAgICAgKi8KKysgICAgICAgICAgICBraWxsKHBhcmVudCwgU0lHSU5UKTsKKysg ICAgICAgICAgICBfZXhpdCgwKTsKKysgICAgICAgIH0gZWxzZSBpZiAocGlkID4gMCkgeworKyAg ICAgICAgICAgIC8qIHBhcmVudCBwcm9jZXNzOiBub3RoaW5nIHRvIGRvLCBtdXJkZXJvdXMgY2hp bGQgd2lsbCBkbyB1cworKyAgICAgICAgICAgICAqIGluIG9uZSB3YXkgb3IgYW5vdGhlci4KKysg ICAgICAgICAgICAgKi8KKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisrICAgIH0K KysgICAgLyogSWYgd2UgZ2V0IGhlcmUsIHdlIGhhdmUgZmFpbGVkIHRvIGxhenkgdW5tb3VudCBm b3Igd2hhdGV2ZXIgcmVhc29uLAorKyAgICAgKiBraWxsIG91cnNlbGYgbW9yZSBicnV0YWxseS4K KysgICAgICovCisrICAgIGtpbGwoZ2V0cGlkKCksIFNJR0lOVCk7CisrfQorKworK3N0YXRpYyB2 b2lkIHNldF9zaWd0ZXJtX2hhbmRsZXIoY29uc3QgY2hhciAqbW91bnRwb2ludCkgeworKyAgICBz dHJ1Y3Qgc2lnYWN0aW9uIHNhOworKworKyAgICBnX21vdW50X3BvaW50ID0gbW91bnRwb2ludDsK KysgICAgbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHNhKSk7CisrICAgIHNhLnNhX2hhbmRsZXIgPSBz aWd0ZXJtX2hhbmRsZXI7CisrICAgIHNpZ2VtcHR5c2V0KCYoc2Euc2FfbWFzaykpOworKyAgICBz YS5zYV9mbGFncyA9IFNBX1JFU1RBUlQ7CisrCisrICAgIGlmIChzaWdhY3Rpb24oU0lHVEVSTSwg JnNhLCBOVUxMKSA9PSAtMSkgeworKyAgICAgICAgcGVycm9yKCJzaWdhY3Rpb24oU0lHVEVSTSki KTsKKysgICAgfQorK30KKysjZW5kaWYgLyogU1FGU19TSUdURVJNX0hBTkRMRVIgKi8KKysKKyBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CisgCXN0cnVjdCBmdXNlX2FyZ3MgYXJn czsKKyAJc3Fmc19vcHRzIG9wdHM7CitAQCAtMTM5LDYgKzIyMyw5IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsbCkgPT0gU1FG U19PSykgeworIAkJCWlmIChzcWZzX2xsX2RhZW1vbml6ZShmdXNlX2NtZGxpbmVfb3B0cy5mb3Jl Z3JvdW5kKSAhPSAtMSkgeworIAkJCQlpZiAoZnVzZV9zZXRfc2lnbmFsX2hhbmRsZXJzKGNoLnNl c3Npb24pICE9IC0xKSB7CisrI2lmIGRlZmluZWQoU1FGU19TSUdURVJNX0hBTkRMRVIpCisrCQkJ CQlzZXRfc2lndGVybV9oYW5kbGVyKGZ1c2VfY21kbGluZV9vcHRzLm1vdW50cG9pbnQpOworKyNl bmRpZgorIAkJCQkJaWYgKG9wdHMuaWRsZV90aW1lb3V0X3NlY3MpIHsKKyAJCQkJCQlzZXR1cF9p ZGxlX3RpbWVvdXQoY2guc2Vzc2lvbiwgb3B0cy5pZGxlX3RpbWVvdXRfc2Vjcyk7CisgCQkJCQl9 CitkaWZmIC0tZ2l0IGEvdGVzdHMvdW1vdW50LXRlc3Quc2guaW4gYi90ZXN0cy91bW91bnQtdGVz dC5zaC5pbgorbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAwLi4wNmZlZDUzMwor LS0tIC9kZXYvbnVsbAorKysrIGIvdGVzdHMvdW1vdW50LXRlc3Quc2guaW4KK0BAIC0wLDAgKzEs ODUgQEAKKysjIS9iaW4vYmFzaAorKworKy4gInRlc3RzL2xpYi5zaCIKKysKKytTRkxMPSR7MTot Li9zcXVhc2hmdXNlX2xsfSAgICAgICAgICMgVGhlIHNxdWFzaGZ1c2VfbGwgYmluYXJ5LgorK1RJ TUVPVVQ9MjAKKysKKytjYXNlIEBidWlsZF9vc0AgaW4KKysgICAgbGludXgqKQorKyAgICAgICAg OzsKKysgICAgKikKKysgICAgICAgIGVjaG8gIlRoaXMgdGVzdCBpcyBvbmx5IGVuYWJsZWQgb24g bGludXggaG9zdHMuIgorKyAgICAgICAgZXhpdCAwCisrICAgICAgICA7OworK2VzYWMKKysKKytm dW5jdGlvbiBjbGVhbnVwIHsKKysgICAgc2V0ICtlCisrICAgIGlmIFtbIC1uICIkVEFJTF9QSUQi IF1dOyB0aGVuCisrICAgICAgICBraWxsICIkVEFJTF9QSUQiCisrICAgIGZpCisrICAgIEBzcV9m dXNlcm1vdW50QCAtdSAiJE1OVERJUiIgPiYgL2Rldi9udWxsCisrICAgIHJtIC1yZiAiJFdPUktE SVIiCisrfQorKworK3NldCAtZQorK1dPUktESVI9JChta3RlbXAgLWQpCisrTU5URElSPSIkV09S S0RJUi9tb3VudHBvaW50IgorK21rZGlyIC1wICIkTU5URElSIgorK21rZGlyIC1wICIkV09SS0RJ Ui9zb3VyY2UiCisrdHJhcCBjbGVhbnVwIEVYSVQKKysKKysjIE1ha2UgYSB0aW55IHNxdWFzaGZz IGZpbGVzeXN0ZW0uCisrZWNobyAiSGVsbG8gd29ybGQiID4iJFdPUktESVIvc291cmNlL2hlbGxv IgorK21rc3F1YXNoZnMgIiRXT1JLRElSL3NvdXJjZSIgIiRXT1JLRElSL3NxdWFzaGZzLmltYWdl IiAtY29tcCB6c3RkIC1uby1wcm9ncmVzcyA+JiAvZGV2L251bGwKKysKKysjIE1vdW50IGl0Lgor KyRTRkxMICIkV09SS0RJUi9zcXVhc2hmcy5pbWFnZSIgIiRNTlRESVIiCisrU0ZQSUQ9JChwZ3Jl cCAtZiAic3F1YXNoZnVzZV9sbC4qJE1OVERJUiIpCisrCisraWYgISBbWyAtZCAvcHJvYy8kU0ZQ SUQgXV07IHRoZW4KKysgICAgZWNobyAic3F1YXNoZnVzZSBwcm9jZXNzIG1pc3NpbmciCisrICAg IGV4aXQgMQorK2ZpCisraWYgISBncmVwIC1xICIkTU5URElSIiAvcHJvYy9tb3VudHM7IHRoZW4K KysgICAgZWNobyAibW91bnQgbWlzc2luZy4iCisrICAgIGV4aXQgMQorK2ZpCisrCisrIyBiYWNr Z3JvdW5kIGEgdGFzayB0byBob2xkIGEgZmlsZSBvcGVuIGZyb20gdGhlIGltYWdlLgorK3RhaWwg LWYgIiR7TU5URElSfS9oZWxsbyIgPi9kZXYvbnVsbCAmCisrVEFJTF9QSUQ9JCEKKysKKysjIFNJ R1RFUk0gdGhlIHNxdWFzaGZ1c2UgcHJvY2Vzcy4KKytraWxsIC0xNSAiJFNGUElEIgorKworKyMg Tm93IHdlIGV4cGVjdCB0aGUgbW91bnRwb2ludCB0byBkaXNhcHBlYXIgZHVlIHRvIGxhenkgdW1v dW50LgorK2lmICEgdGltZW91dCAkVElNRU9VVCBiYXNoIC1jIFwKKysgICAgIndoaWxlIGdyZXAg LXEgJE1OVERJUiAvcHJvYy9tb3VudHM7IGRvIFwKKysgICAgICAgIHNsZWVwIDE7CisrICAgICBk b25lIjsgdGhlbgorKyAgICAgZWNobyAiJE1OVERJUiBkaWQgbm90IGRpc21vdW50IGluIHJlc3Bv bnNlIHRvIFNJR1RFUk0uIgorKyAgICAgZXhpdCAxCisrZmkKKysKKysjIGJ1dCB0aGUgcHJvY2Vz cyBzaG91bGQgcmVtYWluIGFsaXZlLCBiZWNhdXNlIG9mIHRoZSBiYWNrZ3JvdW5kIHRhc2suCisr aWYgISBbWyAtZCAvcHJvYy8kU0ZQSUQgXV07IHRoZW4KKysgICAgZWNobyAic3F1YXNoZnVzZSBw cm9jZXNzIG1pc3NpbmciCisrICAgIGV4aXQgMQorK2ZpCisrCisrIyBOb3cga2lsbCB0aGUgYmFj a2dyb3VuZCBwcm9jZXNzLgorK2tpbGwgJFRBSUxfUElECisrVEFJTF9QSUQ9CisrCisrIyBOb3cg d2UgZXhwZWN0IHRoZSBwcm9jZXNzIHRvIGRpZS4KKytpZiAhIHRpbWVvdXQgJFRJTUVPVVQgYmFz aCAtYyBcCisrICAgICJ3aGlsZSBbWyAtZCAvcHJvYy8kU0ZQSUQgXV07IGRvIFwKKysgICAgICAg IHNsZWVwIDE7CisrICAgICBkb25lIjsgdGhlbgorKyAgICAgZWNobyAic3F1YXNoZnVzZSBwcm9j ZXNzIGRpZCBub3QgZGllIG9uY2UgZmlsZXN5c3RlbSB3YXMgcmVsZWFzZWQuIgorKyAgICAgZXhp dCAxCisrZmkKKysKKytlY2hvICJTdWNjZXNzLiIKCmRpZmYgLS1naXQgYS9hcHB0YWluZXIuc3Bl YyBiL2FwcHRhaW5lci5zcGVjCmluZGV4IDM2NTRhNWYuLmVjZmRhYmEgMTAwNjQ0Ci0tLSBhL2Fw cHRhaW5lci5zcGVjCisrKyBiL2FwcHRhaW5lci5zcGVjCkBAIC0zMSwxMSArMzEsMTQgQEAKIAog IyBUaGlzIGNhbiBiZSBzbGlnaHRseSBkaWZmZXJlbnQgdGhhbiAlJXt2ZXJzaW9ufS4KICMgRm9y IGV4YW1wbGUsIGl0IGhhcyBkYXNoIGluc3RlYWQgb2YgdGlsZGUgZm9yIHJlbGVhc2UgY2FuZGlk YXRlcy4KLSVnbG9iYWwgcGFja2FnZV92ZXJzaW9uIDEuMS4wLXJjLjIKKyVnbG9iYWwgcGFja2Fn ZV92ZXJzaW9uIDEuMS4wLXJjLjMKKworIyBVbmNvbW1lbnQgdGhpcyB0byBpbmNsdWRlIGEgbXVs dGl0aHJlYWRlZCB2ZXJzaW9uIG9mIHNxdWFzaGZ1c2VfbGwKKyVnbG9iYWwgc3F1YXNoZnVzZV92 ZXJzaW9uIDAuMS4xMDUKIAogU3VtbWFyeTogQXBwbGljYXRpb24gYW5kIGVudmlyb25tZW50IHZp cnR1YWxpemF0aW9uCiBOYW1lOiBhcHB0YWluZXIKLVZlcnNpb246IDEuMS4wfnJjLjIKK1ZlcnNp b246IDEuMS4wfnJjLjMKIFJlbGVhc2U6IDElez9kaXN0fQogIyBTZWUgTElDRU5TRS5tZCBmb3Ig Zmlyc3QgcGFydHkgY29kZSAoQlNELTMtQ2xhdXNlIGFuZCBMQk5MIEJTRCkKICMgU2VlIExJQ0VO U0VfVEhJUkRfUEFSVFkubWQgZm9yIGluY29ycG9yYXRlZCBjb2RlIChBU0wgMi4wKQpAQCAtNDQs MTEgKzQ3LDExIEBAIFJlbGVhc2U6IDElez9kaXN0fQogTGljZW5zZTogQlNEIGFuZCBMQk5MIEJT RCBhbmQgQVNMIDIuMAogVVJMOiBodHRwczovL2FwcHRhaW5lci5vcmcKIFNvdXJjZTogaHR0cHM6 Ly9naXRodWIuY29tLyV7bmFtZX0vJXtuYW1lfS9yZWxlYXNlcy9kb3dubG9hZC92JXtwYWNrYWdl X3ZlcnNpb259LyV7bmFtZX0tJXtwYWNrYWdlX3ZlcnNpb259LnRhci5negotJWlmIDAlez9mZWRv cmF9ID09IDM1Ci0jIEluY2x1ZGUgZ29sYW5nIHNvdXJjZSBiZWNhdXNlIGYzNSBkb2VzIG5vdCBo YXZlIGEgbmV3IGVub3VnaCB2ZXJzaW9uCi1Tb3VyY2UxOiBnbzEuMTcuMTIuc3JjLnRhci5negot JWVuZGlmCiAKKyVpZiAiJXs/c3F1YXNoZnVzZV92ZXJzaW9ufSIgIT0gIiIKK1NvdXJjZTEwOiBo dHRwczovL2dpdGh1Yi5jb20vdmFzaS9zcXVhc2hmdXNlL2FyY2hpdmUvJXtzcXVhc2hmdXNlX3Zl cnNpb259L3NxdWFzaGZ1c2UtJXtzcXVhc2hmdXNlX3ZlcnNpb259LnRhci5negorUGF0Y2gxMDog aHR0cHM6Ly9naXRodWIuY29tL3Zhc2kvc3F1YXNoZnVzZS9wdWxsLzcwLnBhdGNoCislZW5kaWYK ICMgVGhlIHNpbmd1bGFyaXR5IHBhY2thZ2Ugd2FzIHJlbmFtZWQgdG8gYXBwdGFpbmVyIGFmdGVy IHZlcnNpb24gMy44LnguCiAjIFRoZSBhcHB0YWluZXIgcGFja2FnZSByZXNldCBudW1iZXJpbmcg YXQgMS4wLjAsIGFuZCBzb21lIHNpbmd1bGFyaXR5CiAjICBwYWNrYWdlcyBhcmUgaW4gZXBvY2gg MSwgc28gUHJvdmlkZSBjb3JyZXNwb25kaW5nIHNpbmd1bGFyaXR5IHZlcnNpb25zCkBAIC03NSwx MyArNzgsMjIgQEAgUmVxdWlyZXM6IHNxdWFzaGZzCiBSZXF1aXJlczogc3F1YXNoZnMtdG9vbHMK ICVlbmRpZgogQnVpbGRSZXF1aXJlczogY3J5cHRzZXR1cAorJWlmICIlez9zcXVhc2hmdXNlX3Zl cnNpb259IiAhPSAiIgorQnVpbGRSZXF1aXJlczogYXV0b2NvbmYKK0J1aWxkUmVxdWlyZXM6IGF1 dG9tYWtlCitCdWlsZFJlcXVpcmVzOiBsaWJ0b29sCitCdWlsZFJlcXVpcmVzOiBwa2djb25maWcK K0J1aWxkUmVxdWlyZXM6IGZ1c2UzLWRldmVsCitCdWlsZFJlcXVpcmVzOiB6bGliLWRldmVsCisl ZW5kaWYKIFJlcXVpcmVzOiBzcXVhc2hmdXNlCiBSZXF1aXJlczogZmFrZXJvb3QKIFJlcXVpcmVz OiBmdXNlLW92ZXJsYXlmcworUmVxdWlyZXM6IGUyZnNwcm9ncworIyBVbmNvbW1lbnQgdGhpcyBm b3IgdGhlIGVwZWwgYnVpbGQsIGJ1dCB3ZSBkb24ndCB3YW50IGl0IGZvciB0aGUgQXBwdGFpbmVy CisjICByZWxlYXNlIGJ1aWxkIGJlY2F1c2UgdGhlcmUgdGhlIHNhbWUgcnBtIGlzIHNoYXJlZCBh Y3Jvc3MgT1MgdmVyc2lvbnMKICVpZiAwJXs/ZWw3fQogUmVxdWlyZXM6IGZ1c2UyZnMKLSVlbHNl Ci1SZXF1aXJlczogZTJmc3Byb2dzCiAlZW5kaWYKIAogJWRlc2NyaXB0aW9uCkBAIC05Niw5ICsx MDgsMjUgQEAgUmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KIFByb3Zp ZGVzIHRoZSBvcHRpb25hbCBzZXR1aWQtcm9vdCBwb3J0aW9uIG9mIEFwcHRhaW5lci4KIAogJXBy ZXAKKyVpZiAiJXs/c3F1YXNoZnVzZV92ZXJzaW9ufSIgIT0gIiIKKyMgdGhlIGRlZmF1bHQgZGly ZWN0b3J5IGZvciBvdGhlciBzdGVwcyBpcyB3aGVyZSB0aGUgJXByZXAgc2VjdGlvbiBlbmRzCisj IHNvIGRvIG1haW4gcGFja2FnZSBsYXN0Cislc2V0dXAgLWIgMTAgLW4gc3F1YXNoZnVzZS0le3Nx dWFzaGZ1c2VfdmVyc2lvbn0KKyVwYXRjaCAtUCAxMCAtcDEKKyVzZXR1cCAtbiAle25hbWV9LSV7 cGFja2FnZV92ZXJzaW9ufQorJWVsc2UKICVhdXRvc2V0dXAgLW4gJXtuYW1lfS0le3BhY2thZ2Vf dmVyc2lvbn0KKyVlbmRpZgogCiAlYnVpbGQKKyVpZiAiJXs/c3F1YXNoZnVzZV92ZXJzaW9ufSIg IT0gIiIKK3B1c2hkIC4uL3NxdWFzaGZ1c2UtJXtzcXVhc2hmdXNlX3ZlcnNpb259CisuL2F1dG9n ZW4uc2gKK0ZMQUdTPS1zdGQ9Yzk5IC4vY29uZmlndXJlIC0tZW5hYmxlLW11bHRpdGhyZWFkaW5n CislbWFrZV9idWlsZCBzcXVhc2hmdXNlX2xsCitwb3BkCislZW5kaWYKKwogJWlmICIlez9TT1VS Q0UxfSIgIT0gIiIKIEdPVkVSU0lPTj0iJChlY2hvICVTT1VSQ0UxfHNlZCAncywuKi8sLDtzL2dv Ly87cy9cLnNyYy4qLy8nKSIKIGlmICEgLi9tbG9jYWwvc2NyaXB0cy9jaGVjay1taW4tZ28tdmVy c2lvbiBnbyAkR09WRVJTSU9OOyB0aGVuCkBAIC0xMzgsNiArMTY2LDIwIEBAIGV4cG9ydCBQQVRI PSRQV0QvZ28vYmluOiRQQVRICiAlZW5kaWYKIAogJW1ha2VfaW5zdGFsbCAtQyBidWlsZGRpciBW PQorJWlmICIlez9zcXVhc2hmdXNlX3ZlcnNpb259IiAhPSAiIgoraW5zdGFsbCAtbSA3NTUgLi4v c3F1YXNoZnVzZS0le3NxdWFzaGZ1c2VfdmVyc2lvbn0vc3F1YXNoZnVzZV9sbCAle2J1aWxkcm9v dH0le19saWJleGVjZGlyfS8le25hbWV9L2Jpbi9zcXVhc2hmdXNlX2xsCislZW5kaWYKKworJWlm IDAlez9lbDd9CisjIENoZWNrIGZvciBmdXNlMmZzIG9ubHkgYXMgYSBwcmUtaW5zdGFsbCBzbyB0 aGF0IGFuIHJwbSBidWlsdCBvbiBlbDcgY2FuCisjIGJlIHVzZWQgb24gZWw4ICYgZWw5LiAgT25s eSBlbDcgaGFzIGEgZnVzZTJmcyBwYWNrYWdlLCB0aGUgb3RoZXJzIGhhdmUgCisjIHRoZSBmdXNl MmZzIHByb2dyYW0gaW4gdGhlIGUyZnNwcm9ncyBwYWNrYWdlLgorJXByZQoraWYgWyAhIC1mIC91 c3IvYmluL2Z1c2UyZnMgXSAmJiBbICEgLWYgL3Vzci9zYmluL2Z1c2UyZnMgXTsgdGhlbgorCWVj aG8gImZ1c2UyZnMgbm90IGZvdW5kLCBwbGVhc2UgeXVtIGluc3RhbGwgL3Vzci8qYmluL2Z1c2Uy ZnMgZnJvbSBlcGVsIiA+JjIKKwlleGl0IDEKK2ZpCislZW5kaWYKIAogJXBvc3R0cmFucwogIyBj bGVhbiBvdXQgZW1wdHkgZGlyZWN0b3JpZXMgdW5kZXIgL2V0Yy9zaW5ndWxhcml0eQpAQCAtMTU0 LDYgKzE5Niw5IEBAIHJtZGlyICV7X3N5c2NvbmZkaXJ9L3Npbmd1bGFyaXR5LyogJXtfc3lzY29u ZmRpcn0vc2luZ3VsYXJpdHkgMj4vZGV2L251bGwgfHwgdHJ1CiAlZGlyICV7X2xpYmV4ZWNkaXJ9 LyV7bmFtZX0KICVkaXIgJXtfbGliZXhlY2Rpcn0vJXtuYW1lfS9iaW4KICV7X2xpYmV4ZWNkaXJ9 LyV7bmFtZX0vYmluL3N0YXJ0ZXIKKyVpZiAiJXs/c3F1YXNoZnVzZV92ZXJzaW9ufSIgIT0gIiIK KyV7X2xpYmV4ZWNkaXJ9LyV7bmFtZX0vYmluL3NxdWFzaGZ1c2VfbGwKKyVlbmRpZgogJXtfbGli ZXhlY2Rpcn0vJXtuYW1lfS9jbmkKICV7X2xpYmV4ZWNkaXJ9LyV7bmFtZX0vbGliCiAlZGlyICV7 X3N5c2NvbmZkaXJ9LyV7bmFtZX0KQEAgLTE3NCw2ICsyMTksMTMgQEAgcm1kaXIgJXtfc3lzY29u ZmRpcn0vc2luZ3VsYXJpdHkvKiAle19zeXNjb25mZGlyfS9zaW5ndWxhcml0eSAyPi9kZXYvbnVs bCB8fCB0cnUKICVhdHRyKDQ3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmV4ZWNkaXJ9LyV7bmFtZX0v YmluL3N0YXJ0ZXItc3VpZAogCiAlY2hhbmdlbG9nCisqIFR1ZSBTZXAgMDYgMjAyMiBEYXZlIER5 a3N0cmEgPGR3ZEBmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjEuMC1yYy4zCistIFVwZGF0ZSB0byB1 cHN0cmVhbSAxLjEuMH5yYy4zLiAgVW5jb21tZW50IHNldHRpbmcgc3F1YXNoZnVzZV92ZXJzaW9u IGFuZAorICB0aGUgcmVxdWlyaW5nIG9mIGZ1c2UyZnMgb24gZWw3LgorCisqIFRodSBTZXAgMDEg MjAyMiBEYXZlIER5a3N0cmEgPGR3ZEBmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjEuMC1yYy4yKzM3 LWcxZjkxZmYzCistIFRlc3QgYnVpbGQKKwogKiBXZWQgQXVnIDE3IDIwMjIgRGF2ZSBEeWtzdHJh IDxkd2RAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4xLjB+cmMuMgogLSBVcGRhdGUgdG8gdXBzdHJl YW0gMS4xLjB+cmMuMi4gIFJlbW92ZSBjdXN0b21pemF0aW9ucyBwdXQgaW50bwogICAxLjEuMC1y Yy4xIHBhY2thZ2luZyBleGNlcHQgZm9yIGYzNSBpbmNsdXNpb24gb2YgZ29sYW5nIHNvdXJjZS4K CmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBkNTIxMjkzLi5mMzgxOTdjIDEw MDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEsMiBAQAotU0hBNTEyIChh cHB0YWluZXItMS4xLjAtcmMuMi50YXIuZ3opID0gZjQzMzU0MzlmYTBmYTdmYzA2MWRlYWIzNTll ZTZlZGNjNWU0OWY2YTM5MjIxNmVlNDBkM2M1YmYwN2EwMGRhYmRmYzNjZWU0OGE4NDVjMDQwMTdh YjBjYTdhMzMxMWUyNmMzNjk2NjlmNDg4YTE2NjFjZWUyZGEyZmQ3YjA3NDEKK1NIQTUxMiAoYXBw dGFpbmVyLTEuMS4wLXJjLjMudGFyLmd6KSA9IDgwODQ4Zjk1NzAzY2NiZDhkMmExMmI3Nzg0ZmZl NzUyMWI5NjA2NDkwZTViMTgzZTY0Y2Y4ZGM3ZGZlZDQ3MTI0NmFhYzY3NjZlN2MzZjY4YWRjODcx MTk4ZmEyNmM3NGY3ZmEyZDgxZjJkYWIzZTAwMzE0NDBjNzE1NDBiZjBmCitTSEE1MTIgKHNxdWFz aGZ1c2UtMC4xLjEwNS50YXIuZ3opID0gNmJmMTg1NzVmZDQ3MzJmM2IwZTQ1MzA5MDJmMjU1Njg1 OWMyZWZiYmQ3ODFhMzFiZGJmOTdmZTY2MDE0MTJkYzc1MGE4MDM1NGE4YWIwOGEzMTMyZDRmODY4 MGVhNWZmMGRkMDQ0NDBmMjkyNDM5MDZmMTAxN2FhNmM3MGJlZGUK