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: Keith Seitz To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Add debuginfod support. Date: Thu, 23 Jul 2026 18:34:10 GMT Message-ID: <178483165079.1.14718708578362153230.rpms-gdb-db493ec1a2e1@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: db493ec1a2e13479333c3bbeb8d1012caf46dd55 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogZGI0OTNlYzFhMmUxMzQ3OTMzM2MzYmJlYjhkMTAxMmNh ZjQ2ZGQ1NQpBdXRob3IgOiBLZWl0aCBTZWl0eiA8a2VpdGhzQHJlZGhhdC5jb20+CkRhdGUgICA6 IDIwMjAtMDYtMTdUMTA6MzU6NDktMDc6MDAKU3RhdHMgIDogKzEyMDQvLTYgaW4gNSBmaWxlKHMp ClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvZGI0OTNl YzFhMmUxMzQ3OTMzM2MzYmJlYjhkMTAxMmNhZjQ2ZGQ1NT9icmFuY2g9Zml4LWR1cC1wYXRjaAoK TG9nOgpBZGQgZGVidWdpbmZvZCBzdXBwb3J0LgoKLS0tCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMu UGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCmluZGV4IDc4ZmIwZGQuLjFi ZjM3ZTcgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3Bl Yy5QYXRjaC5pbmNsdWRlCkBAIC00MDgsMyArNDA4LDcgQEAgUGF0Y2gxMDA6IGdkYi1yaGJ6MTgy OTcwMi1maXgtcHl0aG9uMzkucGF0Y2gKICMgUkggQlogMTg0NDQ1OCAoU2VyZ2lvIER1cmlnYW4g SnVuaW9yIGFuZCBUb20gVHJvbWV5KQogUGF0Y2gxMDE6IGdkYi1yaGJ6MTg0NDQ1OC11c2UtZnB1 dFhfdW5maWx0ZXJlZC5wYXRjaAogCisjIEJhY2twb3J0IGRlYnVnaW5vZmQgc3VwcG9ydC4KKyMg KEFhcm9uIE1lcmV5LCBSSCBCWiAxODM4NzcpCitQYXRjaDEwMjogZ2RiLXJoYnoxODM4Nzc3LWRl YnVnaW5mb2QucGF0Y2gKKwoKZGlmZiAtLWdpdCBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlIGIv X2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKaW5kZXggMjAyYTVjYy4uNDhmMDljZCAxMDA2NDQKLS0t IGEvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKKysrIGIvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUK QEAgLTk5LDMgKzk5LDQgQEAKICVwYXRjaDA5OSAtcDEKICVwYXRjaDEwMCAtcDEKICVwYXRjaDEw MSAtcDEKKyVwYXRjaDEwMiAtcDEKCmRpZmYgLS1naXQgYS9fcGF0Y2hfb3JkZXIgYi9fcGF0Y2hf b3JkZXIKaW5kZXggNGYwNjgwMC4uMGZmOTFjNCAxMDA2NDQKLS0tIGEvX3BhdGNoX29yZGVyCisr KyBiL19wYXRjaF9vcmRlcgpAQCAtOTksMyArOTksNCBAQCBnZGItcmhiejE4MTgwMTEtYmZkLWdj YzEwLWVycm9yLnBhdGNoCiBnZGItcmhiejE4MjI3MTUtZml4LXB5dGhvbi1kZXByZWNhdGlvbi5w YXRjaAogZ2RiLXJoYnoxODI5NzAyLWZpeC1weXRob24zOS5wYXRjaAogZ2RiLXJoYnoxODQ0NDU4 LXVzZS1mcHV0WF91bmZpbHRlcmVkLnBhdGNoCitnZGItcmhiejE4Mzg3NzctZGVidWdpbmZvZC5w YXRjaAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTgzODc3Ny1kZWJ1Z2luZm9kLnBhdGNoIGIvZ2Ri LXJoYnoxODM4Nzc3LWRlYnVnaW5mb2QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYzc0ODMyMgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTgzODc3Ny1kZWJ1 Z2luZm9kLnBhdGNoCkBAIC0wLDAgKzEsMTE4OCBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtlaXRoIFNlaXR6IDxrZWl0aHNAcmVkaGF0LmNv bT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyMCAwODoyOTo0MSAtMDcwMAorU3ViamVjdDogZ2RiLXJo YnoxODM4Nzc3LWRlYnVnaW5mb2QucGF0Y2gKKworOzsgQmFja3BvcnQgZGVidWdpbm9mZCBzdXBw b3J0LgorOzsgKEFhcm9uIE1lcmV5LCBSSCBCWiAxODM4NzcpCisKK2NvbW1pdCAwZDc5Y2RjNDk0 ZDVlYjlkYjI2YTYwMmQ2MmM5MmQ0OWY4M2Y0MDdlCitBdXRob3I6IEFhcm9uIE1lcmV5IDxhbWVy ZXlAcmVkaGF0LmNvbT4KK0RhdGU6ICAgV2VkIEZlYiAyNiAxNzo0MDo0OSAyMDIwIC0wNTAwCisK KyAgICBBZGQgZGVidWdpbmZvZCBzdXBwb3J0IHRvIEdEQgorCisgICAgZGVidWdpbmZvZCBpcyBh IGxpZ2h0d2VpZ2h0IHdlYiBzZXJ2aWNlIHRoYXQgaW5kZXhlcyBFTEYvRFdBUkYgZGVidWdnaW5n CisgICAgcmVzb3VyY2VzIGJ5IGJ1aWxkLWlkIGFuZCBzZXJ2ZXMgdGhlbSBvdmVyIEhUVFAuCisK KyAgICBUaGlzIHBhdGNoIGVuYWJsZXMgR0RCIHRvIHF1ZXJ5IGRlYnVnaW5mb2Qgc2VydmVycyBm b3Igc2VwYXJhdGUgZGVidWcKKyAgICBmaWxlcyBhbmQgc291cmNlIGNvZGUgd2hlbiBpdCBpcyBv dGhlcndpc2Ugbm90IGFibGUgdG8gZmluZCB0aGVtLgorCisgICAgR0RCIGNhbiBiZSBidWlsdCB3 aXRoIGRlYnVnaW5mb2QgdXNpbmcgdGhlIC0td2l0aC1kZWJ1Z2luZm9kIGNvbmZpZ3VyZQorICAg IG9wdGlvbi4KKworICAgIFRoaXMgcmVxdWlyZXMgdGhhdCBsaWJkZWJ1Z2luZm9kIGJlIGluc3Rh bGxlZCBhbmQgZm91bmQgYXQgY29uZmlndXJlIHRpbWUuCisKKyAgICBkZWJ1Z2luZm9kIGlzIHBh Y2thZ2VkIHdpdGggZWxmdXRpbHMsIHN0YXJ0aW5nIHdpdGggdmVyc2lvbiAwLjE3OC4KKworICAg IEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBodHRwczovL3NvdXJjZXdhcmUub3JnL2VsZnV0aWxz Ly4KKworICAgIFRlc3RlZCBvbiB4ODZfNjQgRmVkb3JhIDMxLgorCisgICAgZ2RiL0NoYW5nZUxv ZzoKKyAgICAyMDIwLTAyLTI2ICBBYXJvbiBNZXJleSAgPGFtZXJleUByZWRoYXQuY29tPgorCisg ICAgICAgICAgICAqIE1ha2VmaWxlLmluOiBIYW5kbGUgb3B0aW9uYWwgZGVidWdpbmZvZCBzdXBw b3J0LgorICAgICAgICAgICAgKiBORVdTOiBVcGRhdGUuCisgICAgICAgICAgICAqIFJFQURNRTog QWRkIC0td2l0aC1kZWJ1Z2luZm9kIHN1bW1hcnkuCisgICAgICAgICAgICAqIGNvbmZpZy5pbjog UmVnZW5lcmF0ZS4KKyAgICAgICAgICAgICogY29uZmlndXJlOiBSZWdlbmVyYXRlLgorICAgICAg ICAgICAgKiBjb25maWd1cmUuYWM6IEhhbmRsZSBvcHRpb25hbCBkZWJ1Z2luZm9kIHN1cHBvcnQu CisgICAgICAgICAgICAqIGRlYnVnaW5mb2Qtc3VwcG9ydC5jOiBkZWJ1Z2luZm9kIGhlbHBlciBm dW5jdGlvbnMuCisgICAgICAgICAgICAqIGRlYnVnaW5mb2Qtc3VwcG9ydC5oOiBEaXR0by4KKyAg ICAgICAgICAgICogZG9jL2dkYi50ZXhpbmZvOiBBZGQgLS13aXRoLWRlYnVnaW5mb2QgdG8gY29u ZmlndXJlIG9wdGlvbnMKKyAgICAgICAgICAgIHN1bW1hcnkuCisgICAgICAgICAgICAqIGR3YXJm Mi9yZWFkLmMgKGR3YXJmMl9nZXRfZHd6X2ZpbGUpOiBRdWVyeSBkZWJ1Z2luZm9kIHNlcnZlcnMK KyAgICAgICAgICAgIHdoZW4gYSBkd3ogZmlsZSBjYW5ub3QgYmUgZm91bmQuCisgICAgICAgICAg ICAqIGVsZnJlYWQuYyAoZWxmX3N5bWZpbGVfcmVhZCk6IFF1ZXJ5IGRlYnVnaW5mb2Qgc2VydmVy cyB3aGVuIGEKKyAgICAgICAgICAgIGRlYnVnaW5mbyBmaWxlIGNhbm5vdCBiZSBmb3VuZC4KKyAg ICAgICAgICAgICogc291cmNlLmMgKG9wZW5fc291cmNlX2ZpbGUpOiBRdWVyeSBkZWJ1Z2luZm9k IHNlcnZlcnMgd2hlbiBhCisgICAgICAgICAgICBzb3VyY2UgZmlsZSBjYW5ub3QgYmUgZm91bmQu CisgICAgICAgICAgICAqIHRvcC5jIChwcmludF9nZGJfY29uZmlndXJhdGlvbik6IEluY2x1ZGUK KyAgICAgICAgICAgIC0te3dpdGgsd2l0aG91dH0tZGVidWdpbmZvZCBpbiB0aGUgb3V0cHV0Lgor CisgICAgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisgICAgMjAyMC0wMi0yNiAgQWFyb24gTWVy ZXkgIDxhbWVyZXlAcmVkaGF0LmNvbT4KKworICAgICAgICAgICAgKiBnZGIuZGVidWdpbmZvZDog TmV3IGRpcmVjdG9yeSBmb3IgZGVidWdpbmZvZCB0ZXN0cy4KKyAgICAgICAgICAgICogZ2RiLmRl YnVnaW5mb2QvbWFpbi5jOiBOZXcgdGVzdCBmaWxlLgorICAgICAgICAgICAgKiBnZGIuZGVidWdp bmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwOiBOZXcgdGVzdHMuCisKK2RpZmYgLS1naXQg YS9jb25maWcvZGVidWdpbmZvZC5tNCBiL2NvbmZpZy9kZWJ1Z2luZm9kLm00CituZXcgZmlsZSBt b2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvY29uZmlnL2RlYnVnaW5mb2QubTQKK0BA IC0wLDAgKzEsMzggQEAKKytkbmwgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTkgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0 cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorK2RubCBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlLiAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwKKytkbmwg UHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBh IHByb2dyYW0KKytkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVy YXRlZCBieSBBdXRvY29uZiwgdW5kZXIKKytkbmwgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1z IGFzIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysKKytBQ19ERUZVTihbQUNfREVCVUdJTkZP RF0sCisrWworKyMgRW5hYmxlIGRlYnVnaW5mb2QKKytBQ19BUkdfV0lUSChbZGVidWdpbmZvZF0s CisrICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLWRlYnVnaW5mb2RdLAorKyAgICAgICAg ICAgICAgICAgICAgICAgW0VuYWJsZSBkZWJ1Z2luZm8gbG9va3VwcyB3aXRoIGRlYnVnaW5mb2Qg KGF1dG8veWVzL25vKV0pLAorKyAgICAgICAgW10sIFt3aXRoX2RlYnVnaW5mb2Q9YXV0b10pCisr QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIHVzZSBkZWJ1Z2luZm9kXSkKKytBQ19NU0dfUkVT VUxUKFskd2l0aF9kZWJ1Z2luZm9kXSkKKysKKytpZiB0ZXN0ICIke3dpdGhfZGVidWdpbmZvZH0i ID0gbm87IHRoZW4KKysgIEFDX01TR19XQVJOKFtkZWJ1Z2luZm9kIHN1cHBvcnQgZGlzYWJsZWQ7 IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLl0pCisrZWxzZQorKyAgQUNfQ0hFQ0tf TElCKFtkZWJ1Z2luZm9kXSwgW2RlYnVnaW5mb2RfYmVnaW5dLCBbaGF2ZV9kZWJ1Z2luZm9kX2xp Yj15ZXNdKQorKyAgQUNfQ0hFQ0tfREVDTChbZGVidWdpbmZvZF9iZWdpbl0sIFtoYXZlX2RlYnVn aW5mb2RfaD15ZXNdLCBbXSwKKysgICAgICAgICAgICAgICAgWyNpbmNsdWRlIDxlbGZ1dGlscy9k ZWJ1Z2luZm9kLmg+XSkKKysgIGlmIHRlc3QgIngkaGF2ZV9kZWJ1Z2luZm9kX2xpYiIgPSAieHll cyIgLWEgXAorKyAgICAgICAgICAieCRoYXZlX2RlYnVnaW5mb2RfaCIgPSAieHllcyI7IHRoZW4K KysgICAgQUNfREVGSU5FKFtIQVZFX0xJQkRFQlVHSU5GT0RdLCBbMV0sCisrICAgICAgICAgICAg ICBbRGVmaW5lIHRvIDEgaWYgZGVidWdpbmZvZCBpcyBlbmFibGVkLl0pCisrICAgIEFDX1NVQlNU KFtMSUJERUJVR0lORk9EXSwgWyItbGRlYnVnaW5mb2QiXSkKKysgIGVsc2UKKysgICAgQUNfU1VC U1QoW0xJQkRFQlVHSU5GT0RdLCBbXSkKKysgICAgaWYgdGVzdCAiJHdpdGhfZGVidWdpbmZvZCIg PSB5ZXM7IHRoZW4KKysgICAgICBBQ19NU0dfRVJST1IoW2RlYnVnaW5mb2QgaXMgbWlzc2luZyBv ciB1bnVzYWJsZV0pCisrICAgIGVsc2UKKysgICAgICBBQ19NU0dfV0FSTihbZGVidWdpbmZvZCBp cyBtaXNzaW5nIG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS5d KQorKyAgICBmaQorKyAgZmkKKytmaQorK10pCitkaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmlu IGIvZ2RiL01ha2VmaWxlLmluCistLS0gYS9nZGIvTWFrZWZpbGUuaW4KKysrKyBiL2dkYi9NYWtl ZmlsZS5pbgorQEAgLTYxMiw3ICs2MTIsOCBAQCBDTElCUyA9ICQoU0lNKSAkKFJFQURMSU5FKSAk KE9QQ09ERVMpICQoQkZEKSAkKExJQkNURikgJChaTElCKSBcCisgCUBMSUJTQCBAR1VJTEVfTElC U0AgQFBZVEhPTl9MSUJTQCBcCisgCSQoTElCRVhQQVQpICQoTElCTFpNQSkgJChMSUJCQUJFTFRS QUNFKSAkKExJQklQVCkgXAorIAkkKExJQklCRVJUWSkgJChXSU4zMkxJQlMpICQoTElCR05VKSAk KExJQklDT05WKSAkKExJQk1QRlIpIFwKKy0JJChTUkNISUdIX0xJQlMpICQoTElCWFhIQVNIKSAk KFBUSFJFQURfTElCUykKKysJJChTUkNISUdIX0xJQlMpICQoTElCWFhIQVNIKSAkKFBUSFJFQURf TElCUykgXAorKwlATElCREVCVUdJTkZPREAKKyBDREVQUyA9ICQoTkFUX0NERVBTKSAkKFNJTSkg JChCRkQpICQoUkVBRExJTkVfREVQUykgJChMSUJDVEYpIFwKKyAJJChPUENPREVTKSAkKElOVExf REVQUykgJChMSUJJQkVSVFkpICQoQ09ORklHX0RFUFMpICQoTElCR05VKQorIAorQEAgLTEwMTYs NiArMTAxNyw3IEBAIENPTU1PTl9TRklMRVMgPSBcCisgCWRieHJlYWQuYyBcCisgCWRjYWNoZS5j IFwKKyAJZGVidWcuYyBcCisrCWRlYnVnaW5mb2Qtc3VwcG9ydC5jIFwKKyAJZGljdGlvbmFyeS5j IFwKKyAJZGlzYXNtLmMgXAorIAlkaXNhc20tc2VsZnRlc3RzLmMgXAorZGlmZiAtLWdpdCBhL2dk Yi9ORVdTIGIvZ2RiL05FV1MKKy0tLSBhL2dkYi9ORVdTCisrKysgYi9nZGIvTkVXUworQEAgLTkz Miw2ICs5MzIsMjAgQEAgU0gtNS9TSDY0IHJ1bm5pbmcgT3BlbkJTRCAJU0gtNS9TSDY0IHN1cHBv cnQgaW4gc2gqLSotb3BlbmJzZCoKKyAgICAgIG1hbnVhbCBmb3IgYSBmdXJ0aGVyIGRlc2NyaXB0 aW9uIG9mIHRoaXMgZmVhdHVyZS4KKyAKKyAKKysqIEdEQiBub3cgc3VwcG9ydHMgZGVidWdpbmZv ZCwgYW4gSFRUUCBzZXJ2ZXIgZm9yIGRpc3RyaWJ1dGluZyBFTEYvRFdBUkYKKysgIGRlYnVnZ2lu ZyBpbmZvcm1hdGlvbiBhcyB3ZWxsIGFzIHNvdXJjZSBjb2RlLgorKworKyAgV2hlbiBidWlsdCB3 aXRoIGRlYnVnaW5mb2QsIEdEQiBjYW4gYXV0b21hdGljYWxseSBxdWVyeSBkZWJ1Z2luZm9kCisr ICBzZXJ2ZXJzIGZvciB0aGUgc2VwYXJhdGUgZGVidWcgZmlsZXMgYW5kIHNvdXJjZSBjb2RlIG9m IHRoZSBleGVjdXRhYmxlCisrICBiZWluZyBkZWJ1Z2dlZC4KKysKKysgIFRvIGJ1aWxkIEdEQiB3 aXRoIGRlYnVnaW5mb2QsIHBhc3MgLS13aXRoLWRlYnVnaW5mb2QgdG8gY29uZmlndXJlICh0aGlz CisrICByZXF1aXJlcyBsaWJkZWJ1Z2luZm9kLCB0aGUgZGVidWdpbmZvZCBjbGllbnQgbGlicmFy eSkuCisrCisrICBkZWJ1Z2luZm9kIGlzIGRpc3RyaWJ1dGVkIHdpdGggZWxmdXRpbHMsIHN0YXJ0 aW5nIHdpdGggdmVyc2lvbiAwLjE3OC4KKysKKysgIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVy c2lvbiBmcm9tIGh0dHBzOi8vc291cmNld2FyZS5vcmcvZWxmdXRpbHMuCisrCisgKiBOZXcgZmVh dHVyZXMgaW4gdGhlIEdEQiByZW1vdGUgc3R1YiwgR0RCc2VydmVyCisgCisgICAqKiBHREJzZXJ2 ZXIgaXMgbm93IGFibGUgdG8gc3RhcnQgaW5mZXJpb3IgcHJvY2Vzc2VzIHdpdGggYQorZGlmZiAt LWdpdCBhL2dkYi9SRUFETUUgYi9nZGIvUkVBRE1FCistLS0gYS9nZGIvUkVBRE1FCisrKysgYi9n ZGIvUkVBRE1FCitAQCAtNDMyLDYgKzQzMiwxNSBAQCBtb3JlIG9ic2N1cmUgR0RCIGBjb25maWd1 cmUnIG9wdGlvbnMgYXJlIG5vdCBsaXN0ZWQgaGVyZS4KKyAgICAgIFVzZSB0aGUgY3Vyc2VzIGxp YnJhcnkgaW5zdGVhZCBvZiB0aGUgdGVybWNhcCBsaWJyYXJ5LCBmb3IKKyAgICAgIHRleHQtbW9k ZSB0ZXJtaW5hbCBvcGVyYXRpb25zLgorIAorK2AtLXdpdGgtZGVidWdpbmZvZCcKKysgICAgIEJ1 aWxkIEdEQiB3aXRoIGxpYmRlYnVnaW5mb2QsIHRoZSBkZWJ1Z2luZm9kIGNsaWVudCBsaWJyYXJ5 LiAgVXNlZAorKyAgICAgdG8gYXV0b21hdGljYWxseSBmZXRjaCBzb3VyY2UgZmlsZXMgYW5kIHNl cGFyYXRlIGRlYnVnIGZpbGVzIGZyb20KKysgICAgIGRlYnVnaW5mb2Qgc2VydmVycyB1c2luZyB0 aGUgYXNzb2NpYXRlZCBleGVjdXRhYmxlJ3MgYnVpbGQgSUQuCisrICAgICBFbmFibGVkIGJ5IGRl ZmF1bHQgaWYgbGliZGVidWdpbmZvZCBpcyBpbnN0YWxsZWQgYW5kIGZvdW5kIGF0CisrICAgICBj b25maWd1cmUgdGltZS4gIGRlYnVnaW5mb2QgaXMgcGFja2FnZWQgd2l0aCBlbGZ1dGlscywgc3Rh cnRpbmcKKysgICAgIHdpdGggdmVyc2lvbiAwLjE3OC4gIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3Qg dmVyc2lvbiBmcm9tCisrICAgICAnaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9lbGZ1dGlscy8nLgor KworIGAtLXdpdGgtbGlidW53aW5kLWlhNjQnCisgICAgICBVc2UgdGhlIGxpYnVud2luZCBsaWJy YXJ5IGZvciB1bndpbmRpbmcgZnVuY3Rpb24gY2FsbCBzdGFjayBvbiBpYTY0CisgICAgICB0YXJn ZXQgcGxhdGZvcm1zLgorZGlmZiAtLWdpdCBhL2dkYi9jb25maWcuaW4gYi9nZGIvY29uZmlnLmlu CistLS0gYS9nZGIvY29uZmlnLmluCisrKysgYi9nZGIvY29uZmlnLmluCitAQCAtMjMwLDYgKzIz MCw5IEBACisgLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBiYWJlbHRyYWNlIGxpYnJhcnkuICov CisgI3VuZGVmIEhBVkVfTElCQkFCRUxUUkFDRQorIAorKy8qIERlZmluZSB0byAxIGlmIGRlYnVn aW5mb2QgaXMgZW5hYmxlZC4gKi8KKysjdW5kZWYgSEFWRV9MSUJERUJVR0lORk9ECisrCisgLyog RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBleHBhdCBsaWJyYXJ5LiAqLworICN1bmRlZiBIQVZFX0xJ QkVYUEFUCisgCitkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKKy0t LSBhL2dkYi9jb25maWd1cmUKKysrKyBiL2dkYi9jb25maWd1cmUKK0BAIC03NTgsNiArNzU4LDcg QEAgUkVQT1JUX0JVR1NfVEVYSQorIFJFUE9SVF9CVUdTX1RPCisgUEtHVkVSU0lPTgorIENPREVT SUdOX0NFUlQKKytMSUJERUJVR0lORk9ECisgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCisgVEFS R0VUX09CUworIHN1YmRpcnMKK0BAIC04NzUsNiArODc2LDcgQEAgZW5hYmxlXzY0X2JpdF9iZmQK KyBlbmFibGVfZ2RibWkKKyBlbmFibGVfdHVpCisgZW5hYmxlX2dkYnRrCisrd2l0aF9kZWJ1Z2lu Zm9kCisgd2l0aF9saWJ1bndpbmRfaWE2NAorIHdpdGhfY3Vyc2VzCisgZW5hYmxlX3Byb2ZpbGlu ZworQEAgLTE2MTEsNiArMTYxMyw4IEBAIE9wdGlvbmFsIFBhY2thZ2VzOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgZG8gbm90IHJlc3RyaWN0IGF1dG8tbG9hZGVkIGZpbGVzIGxvY2F0aW9u cworICAgLS13aXRoLXJwbSAgICAgICAgICAgICAgcXVlcnkgcnBtIGRhdGFiYXNlIGZvciBtaXNz aW5nIGRlYnVnaW5mb3MgKHllcy9ubywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZi4g YXV0bz1saWJycG0uc28pCisrICAtLXdpdGgtZGVidWdpbmZvZCAgICAgICBFbmFibGUgZGVidWdp bmZvIGxvb2t1cHMgd2l0aCBkZWJ1Z2luZm9kCisrICAgICAgICAgICAgICAgICAgICAgICAgICAo YXV0by95ZXMvbm8pCisgICAtLXdpdGgtbGlidW53aW5kLWlhNjQgICB1c2UgbGlidW53aW5kIGZy YW1lIHVud2luZGluZyBmb3IgaWE2NCB0YXJnZXRzCisgICAtLXdpdGgtY3Vyc2VzICAgICAgICAg ICB1c2UgdGhlIGN1cnNlcyBsaWJyYXJ5IGluc3RlYWQgb2YgdGhlIHRlcm1jYXAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnJhcnkKK0BAIC0yMjcxLDYgKzIyNzUsNTIgQEAgcm0gLWYg Y29uZnRlc3QudmFsCisgCisgfSAjIGFjX2ZuX2NfY29tcHV0ZV9pbnQKKyAKKysjIGFjX2ZuX2Nf Y2hlY2tfZGVjbCBMSU5FTk8gU1lNQk9MIFZBUiBJTkNMVURFUworKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUZXN0cyB3aGV0aGVyIFNZTUJPTCBp cyBkZWNsYXJlZCBpbiBJTkNMVURFUywgc2V0dGluZyBjYWNoZSB2YXJpYWJsZSBWQVIKKysjIGFj Y29yZGluZ2x5LgorK2FjX2ZuX2NfY2hlY2tfZGVjbCAoKQorK3sKKysgIGFzX2xpbmVubz0ke2Fz X2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9f c3RhY2sKKysgIGFzX2RlY2xfbmFtZT1gZWNobyAkMnxzZWQgJ3MvICooLiovLydgCisrICBhc19k ZWNsX3VzZT1gZWNobyAkMnxzZWQgLWUgJ3MvKC8oKC8nIC1lICdzLykvKSAwJi8nIC1lICdzLywv KSAwJiAoL2cnYAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyB3aGV0aGVyICRhc19kZWNsX25hbWUgaXMgZGVjbGFyZWQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgJGFzX2RlY2xfbmFtZSBpcyBkZWNsYXJlZC4uLiAiID4mNjsg fQorK2lmIGV2YWwgXCR7JDMrOn0gZmFsc2U7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4k YWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyQ0CisraW50CisrbWFpbiAoKQorK3sK KysjaWZuZGVmICRhc19kZWNsX25hbWUKKysjaWZkZWYgX19jcGx1c3BsdXMKKysgICh2b2lkKSAk YXNfZGVjbF91c2U7CisrI2Vsc2UKKysgICh2b2lkKSAkYXNfZGVjbF9uYW1lOworKyNlbmRpZgor KyNlbmRpZgorKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2Nf dHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKysgIGV2YWwgIiQzPXllcyIKKytlbHNlCisr ICBldmFsICIkMz1ubyIKKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrZXZhbCBhY19yZXM9XCQkMworKwkgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19y ZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKysgIGV2YWwgJGFzX2xpbmVub19z dGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubworKworK30gIyBhY19m bl9jX2NoZWNrX2RlY2wKKysKKyAjIGFjX2ZuX2NfY2hlY2tfZnVuYyBMSU5FTk8gRlVOQyBWQVIK KyAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAjIFRlc3RzIHdoZXRoZXIg RlVOQyBleGlzdHMsIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxlIFZBUiBhY2NvcmRpbmdseQor QEAgLTI0NDksNTIgKzI0OTksNiBAQCAkYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisgCisgfSAj IGFjX2ZuX2NfY2hlY2tfdHlwZQorIAorLSMgYWNfZm5fY19jaGVja19kZWNsIExJTkVOTyBTWU1C T0wgVkFSIElOQ0xVREVTCistIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKy0jIFRlc3RzIHdoZXRoZXIgU1lNQk9MIGlzIGRlY2xhcmVkIGluIElOQ0xVREVT LCBzZXR0aW5nIGNhY2hlIHZhcmlhYmxlIFZBUgorLSMgYWNjb3JkaW5nbHkuCistYWNfZm5fY19j aGVja19kZWNsICgpCisteworLSAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVu b19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjaworLSAgYXNfZGVjbF9uYW1l PWBlY2hvICQyfHNlZCAncy8gKiguKi8vJ2AKKy0gIGFzX2RlY2xfdXNlPWBlY2hvICQyfHNlZCAt ZSAncy8oLygoLycgLWUgJ3MvKS8pIDAmLycgLWUgJ3MvLC8pIDAmICgvZydgCistICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJGFzX2Rl Y2xfbmFtZSBpcyBkZWNsYXJlZCIgPiY1CistJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAk YXNfZGVjbF9uYW1lIGlzIGRlY2xhcmVkLi4uICIgPiY2OyB9CistaWYgZXZhbCBcJHskMys6fSBm YWxzZTsgdGhlbiA6CistICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorLWVsc2UKKy0gIGNh dCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy0vKiBlbmQgY29uZmRl ZnMuaC4gICovCistJDQKKy1pbnQKKy1tYWluICgpCisteworLSNpZm5kZWYgJGFzX2RlY2xfbmFt ZQorLSNpZmRlZiBfX2NwbHVzcGx1cworLSAgKHZvaWQpICRhc19kZWNsX3VzZTsKKy0jZWxzZQor LSAgKHZvaWQpICRhc19kZWNsX25hbWU7CistI2VuZGlmCistI2VuZGlmCistCistICA7CistICBy ZXR1cm4gMDsKKy19CistX0FDRU9GCistaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7 IHRoZW4gOgorLSAgZXZhbCAiJDM9eWVzIgorLWVsc2UKKy0gIGV2YWwgIiQzPW5vIgorLWZpCist cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0CistZmkKKy1ldmFsIGFjX3Jlcz1cJCQzCistCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CistJGFzX2VjaG8gIiRh Y19yZXMiID4mNjsgfQorLSAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFj azorOn0gdW5zZXQgYXNfbGluZW5vCistCistfSAjIGFjX2ZuX2NfY2hlY2tfZGVjbAorLQorICMg YWNfZm5fY3h4X3RyeV9saW5rIExJTkVOTworICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICMgVHJ5IHRvIGxpbmsgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMg c3VjY2VlZGVkLgorQEAgLTY2NTgsOCArNjY2Miw4IEBAICRhc19lY2hvX24gImNoZWNraW5nIHNw ZWNpZmljIGxpYnJwbSB2ZXJzaW9uLi4uICIgPiY2OyB9CisgICBpZiB0ZXN0ICIkY3Jvc3NfY29t cGlsaW5nIiA9IHllczsgdGhlbiA6CisgICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyAkYXNfZWNobyAiJGFzX21l OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CistYXNfZm5fZXJyb3IgImNhbm5vdCBydW4g dGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZworLVNlZSBcYGNvbmZpZy5sb2cnIGZv ciBtb3JlIGRldGFpbHMuIiAiJExJTkVOTyIgNTsgfQorK2FzX2ZuX2Vycm9yICQ/ICJjYW5ub3Qg cnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKKytTZWUgXGBjb25maWcubG9n JyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQorIGVsc2UKKyAgIGNhdCBjb25mZGVm cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKyAvKiBlbmQgY29uZmRlZnMuaC4gICov CitAQCAtNjgzMCw3ICs2ODM0LDcgQEAgJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJSUE0gMSIg Pj5jb25mZGVmcy5oCisgJGFzX2VjaG8gIm5vIiA+JjY7IH0KKyAgICAgTElCUz0iJHNhdmVfTElC UyIKKyAgICAgaWYgJERMT1BFTl9SRVFVSVJFOyB0aGVuCistICAgICAgYXNfZm5fZXJyb3IgIlNw ZWNpZmljIG5hbWUgJExJQlJQTSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBjb3VsZCBub3QgYmUgb3Bl bmVkLiIgIiRMSU5FTk8iIDUKKysgICAgICBhc19mbl9lcnJvciAkPyAiU3BlY2lmaWMgbmFtZSAk TElCUlBNIHdhcyByZXF1ZXN0ZWQgYnV0IGl0IGNvdWxkIG5vdCBiZSBvcGVuZWQuIiAiJExJTkVO TyIgNQorICAgICBmaQorIAorIAorQEAgLTY4NDUsNyArNjg0OSw3IEBAIGlmIHRlc3QgIngkYWNf Y3ZfZW52X1BLR19DT05GSUdfc2V0IiAhPSAieHNldCI7IHRoZW4KKyBzZXQgZHVtbXkgJHthY190 b29sX3ByZWZpeH1wa2ctY29uZmlnOyBhY193b3JkPSQyCisgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorICRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorLWlmIHRlc3QgIiR7YWNfY3Zf cGF0aF9QS0dfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuIDoKKytpZiAke2FjX2N2X3BhdGhfUEtH X0NPTkZJRys6fSBmYWxzZTsgdGhlbiA6CisgICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor IGVsc2UKKyAgIGNhc2UgJFBLR19DT05GSUcgaW4KK0BAIC02ODU5LDcgKzY4NjMsNyBAQCBkbwor ICAgSUZTPSRhc19zYXZlX0lGUworICAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAg ICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCist ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICBpZiBhc19mbl9l eGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgIGFj X2N2X3BhdGhfUEtHX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgIGJyZWFrIDIKK0BAIC02ODg4LDcgKzY4OTIsNyBA QCBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9QS0dfQ09ORklHIjsgdGhlbgorIHNldCBkdW1teSBw a2ctY29uZmlnOyBhY193b3JkPSQyCisgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorICRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorLWlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9hY19wdF9Q S0dfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuIDoKKytpZiAke2FjX2N2X3BhdGhfYWNfcHRfUEtH X0NPTkZJRys6fSBmYWxzZTsgdGhlbiA6CisgICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor IGVsc2UKKyAgIGNhc2UgJGFjX3B0X1BLR19DT05GSUcgaW4KK0BAIC02OTAyLDcgKzY5MDYsNyBA QCBkbworICAgSUZTPSRhc19zYXZlX0lGUworICAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KKyAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCistICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICBpZiBh c19mbl9leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisg ICAgIGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIKKyAgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgIGJyZWFrIDIKK0BAIC03MDg2 LDcgKzcwOTAsNyBAQCAkYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQlJQTSAxIiA+PmNvbmZkZWZz LmgKKyAgICAgICBMSUJTPSIkTElCUyAkUlBNX0xJQlMiCisgICAgIGVsc2UKKyAgICAgICBpZiAk UlBNX1JFUVVJUkU7IHRoZW4KKy0JYXNfZm5fZXJyb3IgIiRSUE1fUEtHX0VSUk9SUyIgIiRMSU5F Tk8iIDUKKysJYXNfZm5fZXJyb3IgJD8gIiRSUE1fUEtHX0VSUk9SUyIgIiRMSU5FTk8iIDUKKyAg ICAgICBlbHNlCisgCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FS TklORzogJFJQTV9QS0dfRVJST1JTIiA+JjUKKyAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAk UlBNX1BLR19FUlJPUlMiID4mMjt9CitAQCAtNzMzMiw4ICs3MzM2LDkyIEBAICRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IGdkYnRrIGlzbid0IHN1cHBvcnRlZCBvbiAkaG9zdDsgZGlzYWJsaW5n IiA+JjI7fQorICAgICBlbmFibGVfZ2RidGs9bm8gOzsKKyBlc2FjCisgCistIyBMaWJ1bndpbmQg c3VwcG9ydCBmb3IgaWE2NC4KKysjIEhhbmRsZSBvcHRpb25hbCBkZWJ1Z2luZm9kIHN1cHBvcnQK KysKKysjIEVuYWJsZSBkZWJ1Z2luZm9kCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1kZWJ1 Z2luZm9kIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfZGVidWdpbmZvZCtzZXR9IiA9IHNl dDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX2RlYnVnaW5mb2Q7CisrZWxzZQorKyAgd2l0aF9k ZWJ1Z2luZm9kPWF1dG8KKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0byB1c2UgZGVidWdpbmZvZCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byB1c2UgZGVidWdpbmZvZC4uLiAiID4mNjsgfQorK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkd2l0aF9kZWJ1 Z2luZm9kIiA+JjUKKyskYXNfZWNobyAiJHdpdGhfZGVidWdpbmZvZCIgPiY2OyB9CisrCisraWYg dGVzdCAiJHt3aXRoX2RlYnVnaW5mb2R9IiA9IG5vOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IGRlYnVnaW5mb2Qgc3VwcG9ydCBkaXNh YmxlZDsgc29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiBkZWJ1Z2luZm9kIHN1cHBvcnQgZGlzYWJsZWQ7IHNvbWUgZmVhdHVy ZXMgbWF5IGJlIHVuYXZhaWxhYmxlLiIgPiYyO30KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkZWJ1Z2luZm9kX2JlZ2luIGlu IC1sZGVidWdpbmZvZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRlYnVnaW5mb2Rf YmVnaW4gaW4gLWxkZWJ1Z2luZm9kLi4uICIgPiY2OyB9CisraWYgJHthY19jdl9saWJfZGVidWdp bmZvZF9kZWJ1Z2luZm9kX2JlZ2luKzp9IGZhbHNlOyB0aGVuIDoKKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJ QlM9Ii1sZGVidWdpbmZvZCAgJExJQlMiCisrY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlkZSBh bnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRl YnVnaW5mb2RfYmVnaW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGVidWdpbmZv ZF9iZWdpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9j X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisrICBhY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1 Z2luZm9kX2JlZ2luPXllcworK2Vsc2UKKysgIGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5m b2RfYmVnaW49bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9 JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX2RlYnVnaW5mb2RfZGVidWdpbmZvZF9i ZWdpbiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9saWJfZGVidWdpbmZvZF9kZWJ1Z2luZm9kX2Jl Z2luIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kZWJ1Z2luZm9kX2RlYnVnaW5mb2Rf YmVnaW4iID0geHllczsgdGhlbiA6CisrICBoYXZlX2RlYnVnaW5mb2RfbGliPXllcworK2ZpCisr CisrICBhY19mbl9jX2NoZWNrX2RlY2wgIiRMSU5FTk8iICJkZWJ1Z2luZm9kX2JlZ2luIiAiYWNf Y3ZfaGF2ZV9kZWNsX2RlYnVnaW5mb2RfYmVnaW4iICIjaW5jbHVkZSA8ZWxmdXRpbHMvZGVidWdp bmZvZC5oPgorKyIKKytpZiB0ZXN0ICJ4JGFjX2N2X2hhdmVfZGVjbF9kZWJ1Z2luZm9kX2JlZ2lu IiA9IHh5ZXM7IHRoZW4gOgorKyAgaGF2ZV9kZWJ1Z2luZm9kX2g9eWVzCisrZmkKKysKKysgIGlm IHRlc3QgIngkaGF2ZV9kZWJ1Z2luZm9kX2xpYiIgPSAieHllcyIgLWEgXAorKyAgICAgICAgICAi eCRoYXZlX2RlYnVnaW5mb2RfaCIgPSAieHllcyI7IHRoZW4KKysKKyskYXNfZWNobyAiI2RlZmlu ZSBIQVZFX0xJQkRFQlVHSU5GT0QgMSIgPj5jb25mZGVmcy5oCisrCisrICAgIExJQkRFQlVHSU5G T0Q9Ii1sZGVidWdpbmZvZCIKKyAKKysgIGVsc2UKKysKKysgICAgaWYgdGVzdCAiJHdpdGhfZGVi dWdpbmZvZCIgPSB5ZXM7IHRoZW4KKysgICAgICBhc19mbl9lcnJvciAkPyAiZGVidWdpbmZvZCBp cyBtaXNzaW5nIG9yIHVudXNhYmxlIiAiJExJTkVOTyIgNQorKyAgICBlbHNlCisrICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBkZWJ1Z2luZm9k IGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IHNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxl LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogZGVidWdpbmZvZCBpcyBtaXNzaW5n IG9yIHVudXNhYmxlOyBzb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZS4iID4mMjt9Cisr ICAgIGZpCisrICBmaQorK2ZpCisrCisrCisrIyBMaWJ1bndpbmQgc3VwcG9ydCBmb3IgaWE2NC4K KyAKKyAjIENoZWNrIHdoZXRoZXIgLS13aXRoLWxpYnVud2luZC1pYTY0IHdhcyBnaXZlbi4KKyBp ZiB0ZXN0ICIke3dpdGhfbGlidW53aW5kX2lhNjQrc2V0fSIgPSBzZXQ7IHRoZW4gOgorQEAgLTE2 NDQxLDcgKzE2NTI5LDcgQEAgX0FDRU9GCisgZm9yIGFjX2hlYWRlciBpbiBzZWxpbnV4L3NlbGlu dXguaAorIGRvIDoKKyAgIGFjX2ZuX2NfY2hlY2tfaGVhZGVyX21vbmdyZWwgIiRMSU5FTk8iICJz ZWxpbnV4L3NlbGludXguaCIgImFjX2N2X2hlYWRlcl9zZWxpbnV4X3NlbGludXhfaCIgIiRhY19p bmNsdWRlc19kZWZhdWx0IgorLWlmIHRlc3QgIngkYWNfY3ZfaGVhZGVyX3NlbGludXhfc2VsaW51 eF9oIiA9IHgiInllczsgdGhlbiA6CisraWYgdGVzdCAieCRhY19jdl9oZWFkZXJfc2VsaW51eF9z ZWxpbnV4X2giID0geHllczsgdGhlbiA6CisgICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisg I2RlZmluZSBIQVZFX1NFTElOVVhfU0VMSU5VWF9IIDEKKyBfQUNFT0YKK0BAIC0xNjQ1Miw3ICsx NjU0MCw3IEBAIGRvbmUKKyAKKyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGZvciBzZWN1cml0eV9nZXRfYm9vbGVhbl9hY3RpdmUgaW4gLWxzZWxpbnV4 IiA+JjUKKyAkYXNfZWNob19uICJjaGVja2luZyBmb3Igc2VjdXJpdHlfZ2V0X2Jvb2xlYW5fYWN0 aXZlIGluIC1sc2VsaW51eC4uLiAiID4mNjsgfQorLWlmIHRlc3QgIiR7YWNfY3ZfbGliX3NlbGlu dXhfc2VjdXJpdHlfZ2V0X2Jvb2xlYW5fYWN0aXZlK3NldH0iID0gc2V0OyB0aGVuIDoKKytpZiAk e2FjX2N2X2xpYl9zZWxpbnV4X3NlY3VyaXR5X2dldF9ib29sZWFuX2FjdGl2ZSs6fSBmYWxzZTsg dGhlbiA6CisgICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorIGVsc2UKKyAgIGFjX2NoZWNr X2xpYl9zYXZlX0xJQlM9JExJQlMKK0BAIC0xNjQ4Niw3ICsxNjU3NCw3IEBAIExJQlM9JGFjX2No ZWNrX2xpYl9zYXZlX0xJQlMKKyBmaQorIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX3NlbGludXhfc2VjdXJpdHlfZ2V0X2Jvb2xlYW5f YWN0aXZlIiA+JjUKKyAkYXNfZWNobyAiJGFjX2N2X2xpYl9zZWxpbnV4X3NlY3VyaXR5X2dldF9i b29sZWFuX2FjdGl2ZSIgPiY2OyB9CistaWYgdGVzdCAieCRhY19jdl9saWJfc2VsaW51eF9zZWN1 cml0eV9nZXRfYm9vbGVhbl9hY3RpdmUiID0geCIieWVzOyB0aGVuIDoKKytpZiB0ZXN0ICJ4JGFj X2N2X2xpYl9zZWxpbnV4X3NlY3VyaXR5X2dldF9ib29sZWFuX2FjdGl2ZSIgPSB4eWVzOyB0aGVu IDoKKyAgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyAjZGVmaW5lIEhBVkVfTElCU0VMSU5V WCAxCisgX0FDRU9GCitkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1 cmUuYWMKKy0tLSBhL2dkYi9jb25maWd1cmUuYWMKKysrKyBiL2dkYi9jb25maWd1cmUuYWMKK0BA IC0xOCw2ICsxOCw4IEBAIGRubCBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAKKyBkbmwgUHJvY2VzcyB0aGlzIGZp bGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmlndXJlIHNjcmlwdC4KKyAKKyttNF9p bmNsdWRlKC4uL2NvbmZpZy9kZWJ1Z2luZm9kLm00KQorKworIEFDX0lOSVQobWFpbi5jKQorIEFD X0NPTkZJR19IRUFERVJTKGNvbmZpZy5oOmNvbmZpZy5pbiwgW2VjaG8gPiBzdGFtcC1oXSkKKyBB TV9NQUlOVEFJTkVSX01PREUKK0BAIC01MTYsOCArNTE4LDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4K KyAgICAgZW5hYmxlX2dkYnRrPW5vIDs7CisgZXNhYworIAorLSMgTGlidW53aW5kIHN1cHBvcnQg Zm9yIGlhNjQuCisrIyBIYW5kbGUgb3B0aW9uYWwgZGVidWdpbmZvZCBzdXBwb3J0CisrQUNfREVC VUdJTkZPRAorIAorKyMgTGlidW53aW5kIHN1cHBvcnQgZm9yIGlhNjQuCisgQUNfQVJHX1dJVEgo bGlidW53aW5kLWlhNjQsCisgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1saWJ1bndpbmQtaWE2NF0s CisgCSAgICAgICBbdXNlIGxpYnVud2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0 c10pLCwKK2RpZmYgLS1naXQgYS9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMgYi9nZGIvZGVidWdp bmZvZC1zdXBwb3J0LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMKK0BAIC0wLDAgKzEsMTU1IEBACisrLyogZGVidWdp bmZvZCB1dGlsaXRpZXMgZm9yIEdEQi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgor KworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVk ZSAiZGVmcy5oIgorKyNpbmNsdWRlIDxlcnJuby5oPgorKyNpbmNsdWRlICJjbGkvY2xpLXN0eWxl LmgiCisrI2luY2x1ZGUgImdkYnN1cHBvcnQvc2NvcGVkX2ZkLmgiCisrI2luY2x1ZGUgImRlYnVn aW5mb2Qtc3VwcG9ydC5oIgorKworKyNpZm5kZWYgSEFWRV9MSUJERUJVR0lORk9ECisrc2NvcGVk X2ZkCisrZGVidWdpbmZvZF9zb3VyY2VfcXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxk X2lkLAorKwkJCSBpbnQgYnVpbGRfaWRfbGVuLAorKwkJCSBjb25zdCBjaGFyICpzcmNwYXRoLAor KwkJCSBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiAqZGVzdG5hbWUpCisreworKyAgcmV0 dXJuIHNjb3BlZF9mZCAoLUVOT1NZUyk7CisrfQorKworK3Njb3BlZF9mZAorK2RlYnVnaW5mb2Rf ZGVidWdpbmZvX3F1ZXJ5IChjb25zdCB1bnNpZ25lZCBjaGFyICpidWlsZF9pZCwKKysJCQkgICAg aW50IGJ1aWxkX2lkX2xlbiwKKysJCQkgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCisrCQkJICAg IGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNoYXI+ICpkZXN0bmFtZSkKKyt7CisrICByZXR1cm4g c2NvcGVkX2ZkICgtRU5PU1lTKTsKKyt9CisrI2Vsc2UKKysjaW5jbHVkZSA8ZWxmdXRpbHMvZGVi dWdpbmZvZC5oPgorKworKy8qIFRPRE86IFVzZSBkZWJ1Z2luZm9kIEFQSSBleHRlbnNpb25zIGlu c3RlYWQgb2YgdGhlc2UgZ2xvYmFscy4gICovCisrc3RhdGljIHN0ZDo6c3RyaW5nIGRlc2M7Cisr c3RhdGljIHN0ZDo6c3RyaW5nIGZuYW1lOworK3N0YXRpYyBib29sIGhhc19wcmludGVkOworKwor K3N0YXRpYyBpbnQKKytwcm9ncmVzc2ZuIChkZWJ1Z2luZm9kX2NsaWVudCAqYywgbG9uZyBjdXIs IGxvbmcgdG90YWwpCisreworKyAgaWYgKGNoZWNrX3F1aXRfZmxhZyAoKSkKKysgICAgeworKyAg ICAgIHByaW50Zl9maWx0ZXJlZCAoIkNhbmNlbGxpbmcgZG93bmxvYWQgb2YgJXMgJXBzLi4uXG4i LAorKwkJICAgICAgIGRlc2MuY19zdHIgKCksCisrCQkgICAgICAgc3R5bGVkX3N0cmluZyAoZmls ZV9uYW1lX3N0eWxlLnN0eWxlICgpLCBmbmFtZS5jX3N0ciAoKSkpOworKyAgICAgIHJldHVybiAx OworKyAgICB9CisrCisrICBpZiAoIWhhc19wcmludGVkICYmIHRvdGFsICE9IDApCisrICAgIHsK KysgICAgICAvKiBQcmludCB0aGlzIG1lc3NhZ2Ugb25seSBvbmNlLiAgKi8KKysgICAgICBoYXNf cHJpbnRlZCA9IHRydWU7CisrICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiRG93bmxvYWRpbmcgJXMg JXBzLi4uXG4iLAorKwkJICAgICAgIGRlc2MuY19zdHIgKCksCisrCQkgICAgICAgc3R5bGVkX3N0 cmluZyAoZmlsZV9uYW1lX3N0eWxlLnN0eWxlICgpLCBmbmFtZS5jX3N0ciAoKSkpOworKyAgICB9 CisrCisrICByZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGRlYnVnaW5mb2RfY2xpZW50ICoKKytk ZWJ1Z2luZm9kX2luaXQgKCkKKyt7CisrICBkZWJ1Z2luZm9kX2NsaWVudCAqYyA9IGRlYnVnaW5m b2RfYmVnaW4gKCk7CisrCisrICBpZiAoYyAhPSBudWxscHRyKQorKyAgICBkZWJ1Z2luZm9kX3Nl dF9wcm9ncmVzc2ZuIChjLCBwcm9ncmVzc2ZuKTsKKysKKysgIHJldHVybiBjOworK30KKysKKysv KiBTZWUgZGVidWdpbmZvZC1zdXBwb3J0LmggICovCisrCisrc2NvcGVkX2ZkCisrZGVidWdpbmZv ZF9zb3VyY2VfcXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorKwkJCSBpbnQg YnVpbGRfaWRfbGVuLAorKwkJCSBjb25zdCBjaGFyICpzcmNwYXRoLAorKwkJCSBnZGI6OnVuaXF1 ZV94bWFsbG9jX3B0cjxjaGFyPiAqZGVzdG5hbWUpCisreworKyAgaWYgKGdldGVudiAoREVCVUdJ TkZPRF9VUkxTX0VOVl9WQVIpID09IE5VTEwpCisrICAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9T WVMpOworKworKyAgZGVidWdpbmZvZF9jbGllbnQgKmMgPSBkZWJ1Z2luZm9kX2luaXQgKCk7Cisr CisrICBpZiAoYyA9PSBudWxscHRyKQorKyAgICByZXR1cm4gc2NvcGVkX2ZkICgtRU5PTUVNKTsK KysKKysgIGRlc2MgPSBzdGQ6OnN0cmluZyAoInNvdXJjZSBmaWxlIik7CisrICBmbmFtZSA9IHN0 ZDo6c3RyaW5nIChzcmNwYXRoKTsKKysgIGhhc19wcmludGVkID0gZmFsc2U7CisrCisrICBzY29w ZWRfZmQgZmQgKGRlYnVnaW5mb2RfZmluZF9zb3VyY2UgKGMsCisrCQkJCQlidWlsZF9pZCwKKysJ CQkJCWJ1aWxkX2lkX2xlbiwKKysJCQkJCXNyY3BhdGgsCisrCQkJCQludWxscHRyKSk7CisrCisr ICAvKiBUT0RPOiBBZGQgJ3NldCBkZWJ1ZyBkZWJ1Z2luZm9kJyBjb21tYW5kIHRvIGNvbnRyb2wg d2hlbiBlcnJvciBtZXNzYWdlcyBhcmUgc2hvd24uICAqLworKyAgaWYgKGZkLmdldCAoKSA8IDAg JiYgZmQuZ2V0ICgpICE9IC1FTk9FTlQpCisrICAgIHByaW50Zl9maWx0ZXJlZCAoXygiRG93bmxv YWQgZmFpbGVkOiAlcy4gIENvbnRpbnVpbmcgd2l0aG91dCBzb3VyY2UgZmlsZSAlcHMuXG4iKSwK KysJCSAgICAgc2FmZV9zdHJlcnJvciAoLWZkLmdldCAoKSksCisrCQkgICAgIHN0eWxlZF9zdHJp bmcgKGZpbGVfbmFtZV9zdHlsZS5zdHlsZSAoKSwgIHNyY3BhdGgpKTsKKysgIGVsc2UKKysgICAg ZGVzdG5hbWUtPnJlc2V0ICh4c3RyZHVwIChzcmNwYXRoKSk7CisrCisrICBkZWJ1Z2luZm9kX2Vu ZCAoYyk7CisrICByZXR1cm4gZmQ7CisrfQorKworKy8qIFNlZSBkZWJ1Z2luZm9kLXN1cHBvcnQu aCAgKi8KKysKKytzY29wZWRfZmQKKytkZWJ1Z2luZm9kX2RlYnVnaW5mb19xdWVyeSAoY29uc3Qg dW5zaWduZWQgY2hhciAqYnVpbGRfaWQsCisrCQkJICAgIGludCBidWlsZF9pZF9sZW4sCisrCQkJ ICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorKwkJCSAgICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0 cjxjaGFyPiAqZGVzdG5hbWUpCisreworKyAgaWYgKGdldGVudiAoREVCVUdJTkZPRF9VUkxTX0VO Vl9WQVIpID09IE5VTEwpCisrICAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9TWVMpOworKworKyAg ZGVidWdpbmZvZF9jbGllbnQgKmMgPSBkZWJ1Z2luZm9kX2luaXQgKCk7CisrCisrICBpZiAoYyA9 PSBudWxscHRyKQorKyAgICByZXR1cm4gc2NvcGVkX2ZkICgtRU5PTUVNKTsKKysKKysgIGRlc2Mg PSBzdGQ6OnN0cmluZyAoInNlcGFyYXRlIGRlYnVnIGluZm8gZm9yIik7CisrICBmbmFtZSA9IHN0 ZDo6c3RyaW5nIChmaWxlbmFtZSk7CisrICBoYXNfcHJpbnRlZCA9IGZhbHNlOworKyAgY2hhciAq ZG5hbWUgPSBudWxscHRyOworKworKyAgc2NvcGVkX2ZkIGZkIChkZWJ1Z2luZm9kX2ZpbmRfZGVi dWdpbmZvIChjLCBidWlsZF9pZCwgYnVpbGRfaWRfbGVuLCAmZG5hbWUpKTsKKysKKysgIGlmIChm ZC5nZXQgKCkgPCAwICYmIGZkLmdldCAoKSAhPSAtRU5PRU5UKQorKyAgICBwcmludGZfZmlsdGVy ZWQgKF8oIkRvd25sb2FkIGZhaWxlZDogJXMuICBDb250aW51aW5nIHdpdGhvdXQgZGVidWcgaW5m byBmb3IgJXBzLlxuIiksCisrCQkgICAgIHNhZmVfc3RyZXJyb3IgKC1mZC5nZXQgKCkpLAorKwkJ ICAgICBzdHlsZWRfc3RyaW5nIChmaWxlX25hbWVfc3R5bGUuc3R5bGUgKCksICBmaWxlbmFtZSkp OworKworKyAgZGVzdG5hbWUtPnJlc2V0IChkbmFtZSk7CisrICBkZWJ1Z2luZm9kX2VuZCAoYyk7 CisrICByZXR1cm4gZmQ7CisrfQorKyNlbmRpZgorZGlmZiAtLWdpdCBhL2dkYi9kZWJ1Z2luZm9k LXN1cHBvcnQuaCBiL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuaAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuaAorQEAgLTAs MCArMSw2MiBAQAorKy8qIGRlYnVnaW5mb2QgdXRpbGl0aWVzIGZvciBHREIuCisrICAgQ29weXJp Z2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCisrCisrI2lmbmRlZiBERUJVR0lORk9EX1NVUFBPUlRfSAorKyNkZWZpbmUgREVC VUdJTkZPRF9TVVBQT1JUX0gKKysKKysvKiBRdWVyeSBkZWJ1Z2luZm9kIHNlcnZlcnMgZm9yIGEg c291cmNlIGZpbGUgYXNzb2NpYXRlZCB3aXRoIGFuCisrICAgZXhlY3V0YWJsZSB3aXRoIEJVSUxE X0lELiAgQlVJTERfSUQgY2FuIGJlIGdpdmVuIGFzIGEgYmluYXJ5IGJsb2Igb3IKKysgICBhIG51 bGwtdGVybWluYXRlZCBzdHJpbmcuICBJZiBnaXZlbiBhcyBhIGJpbmFyeSBibG9iLCBCVUlMRF9J RF9MRU4KKysgICBzaG91bGQgYmUgdGhlIG51bWJlciBvZiBieXRlcy4gIElmIGdpdmVuIGFzIGEg bnVsbC10ZXJtaW5hdGVkIHN0cmluZywKKysgICBCVUlMRF9JRF9MRU4gc2hvdWxkIGJlIDAuCisr CisrICAgU1JDX1BBVEggc2hvdWxkIGJlIHRoZSBzb3VyY2UgZmlsZSdzIGFic29sdXRlIHBhdGgg dGhhdCBpbmNsdWRlcyB0aGUKKysgICBjb21waWxhdGlvbiBkaXJlY3Rvcnkgb2YgdGhlIENVIGFz c29jaWF0ZWQgd2l0aCB0aGUgc291cmNlIGZpbGUuCisrICAgRm9yIGV4YW1wbGUgaWYgYSBDVSdz IGNvbXBpbGF0aW9uIGRpcmVjdG9yeSBpcyBgL215L2J1aWxkYCBhbmQgdGhlCisrICAgc291cmNl IGZpbGUgcGF0aCBpcyBgL215L3NvdXJjZS9mb28uY2AsIHRoZW4gU1JDX1BBVEggc2hvdWxkIGJl CisrICAgYC9teS9idWlsZC8uLi9zb3VyY2UvZm9vLmNgLgorKworKyAgIElmIHRoZSBmaWxlIGlz IHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQsIGl0cyBwYXRoIG9uIHRoZSBsb2NhbCBtYWNoaW5lCisr ICAgaXMgc3RvcmVkIGluIERFU1ROQU1FLiAgSWYgR0RCIGlzIG5vdCBidWlsdCB3aXRoIGRlYnVn aW5mb2QsIHRoaXMKKysgICBmdW5jdGlvbiByZXR1cm5zIC1FTk9TWVMuICAqLworKworK2V4dGVy biBzY29wZWRfZmQKKytkZWJ1Z2luZm9kX3NvdXJjZV9xdWVyeSAoY29uc3QgdW5zaWduZWQgY2hh ciAqYnVpbGRfaWQsCisrCQkJIGludCBidWlsZF9pZF9sZW4sCisrCQkJIGNvbnN0IGNoYXIgKnNy Y19wYXRoLAorKwkJCSBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiAqZGVzdG5hbWUpOwor KworKy8qIFF1ZXJ5IGRlYnVnaW5mb2Qgc2VydmVycyBmb3IgYSBkZWJ1ZyBpbmZvIGZpbGUgd2l0 aCBCVUlMRF9JRC4KKysgICBCVUlMRF9JRCBjYW4gYmUgZ2l2ZW4gYXMgYSBiaW5hcnkgYmxvYiBv ciBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcuCisrICAgSWYgZ2l2ZW4gYXMgYSBiaW5hcnkgYmxv YiwgQlVJTERfSURfTEVOIHNob3VsZCBiZSB0aGUgbnVtYmVyIG9mIGJ5dGVzLgorKyAgIElmIGdp dmVuIGFzIGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZywgQlVJTERfSURfTEVOIHNob3VsZCBiZSAw LgorKworKyAgIEZJTEVOQU1FIHNob3VsZCBiZSB0aGUgbmFtZSBvciBwYXRoIG9mIHRoZSBtYWlu IGJpbmFyeSBhc3NvY2lhdGVkIHdpdGgKKysgICB0aGUgc2VwYXJhdGUgZGVidWcgaW5mby4gIEl0 IGlzIHVzZWQgZm9yIHByaW50aW5nIG1lc3NhZ2VzIHRvIHRoZSB1c2VyLgorKworKyAgIElmIHRo ZSBmaWxlIGlzIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQsIGl0cyBwYXRoIG9uIHRoZSBsb2NhbCBt YWNoaW5lCisrICAgaXMgc3RvcmVkIGluIERFU1ROQU1FLiAgSWYgR0RCIGlzIG5vdCBidWlsdCB3 aXRoIGRlYnVnaW5mb2QsIHRoaXMKKysgICBmdW5jdGlvbiByZXR1cm5zIC1FTk9TWVMuICAqLwor KworK2V4dGVybiBzY29wZWRfZmQKKytkZWJ1Z2luZm9kX2RlYnVnaW5mb19xdWVyeSAoY29uc3Qg dW5zaWduZWQgY2hhciAqYnVpbGRfaWQsCisrCQkJICAgIGludCBidWlsZF9pZF9sZW4sCisrCQkJ ICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorKwkJCSAgICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0 cjxjaGFyPiAqZGVzdG5hbWUpOworKworKyNlbmRpZiAvKiBERUJVR0lORk9EX1NVUFBPUlRfSCAq LworZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZv CistLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisrKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCitA QCAtMzc3MjYsNiArMzc3MjYsMTQgQEAgc3VwcG9ydGVkKS4KKyBVc2UgdGhlIGN1cnNlcyBsaWJy YXJ5IGluc3RlYWQgb2YgdGhlIHRlcm1jYXAgbGlicmFyeSwgZm9yIHRleHQtbW9kZQorIHRlcm1p bmFsIG9wZXJhdGlvbnMuCisgCisrQGl0ZW0gLS13aXRoLWRlYnVnaW5mb2QKKytCdWlsZCBAdmFs dWV7R0RCTn0gd2l0aCBsaWJkZWJ1Z2luZm9kLCB0aGUgZGVidWdpbmZvZCBjbGllbnQgbGlicmFy eS4KKytVc2VkIHRvIGF1dG9tYXRpY2FsbHkgZmV0Y2ggc291cmNlIGZpbGVzIGFuZCBzZXBhcmF0 ZSBkZWJ1ZyBmaWxlcyBmcm9tCisrZGVidWdpbmZvZCBzZXJ2ZXJzIHVzaW5nIHRoZSBhc3NvY2lh dGVkIGV4ZWN1dGFibGUncyBidWlsZCBJRC4gRW5hYmxlZAorK2J5IGRlZmF1bHQgaWYgbGliZGVi dWdpbmZvZCBpcyBpbnN0YWxsZWQgYW5kIGZvdW5kIGF0IGNvbmZpZ3VyZSB0aW1lLgorK2RlYnVn aW5mb2QgaXMgcGFja2FnZWQgd2l0aCBlbGZ1dGlscywgc3RhcnRpbmcgd2l0aCB2ZXJzaW9uIDAu MTc4LiBZb3UKKytjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tIGBodHRwczovL3NvdXJj ZXdhcmUub3JnL2VsZnV0aWxzLycuCisrCisgQGl0ZW0gLS13aXRoLWxpYnVud2luZC1pYTY0Cisg VXNlIHRoZSBsaWJ1bndpbmQgbGlicmFyeSBmb3IgdW53aW5kaW5nIGZ1bmN0aW9uIGNhbGwgc3Rh Y2sgb24gaWE2NAorIHRhcmdldCBwbGF0Zm9ybXMuICBTZWUgaHR0cDovL3d3dy5ub25nbnUub3Jn L2xpYnVud2luZC9pbmRleC5odG1sIGZvcgorZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMg Yi9nZGIvZHdhcmYycmVhZC5jCistLS0gYS9nZGIvZHdhcmYycmVhZC5jCisrKysgYi9nZGIvZHdh cmYycmVhZC5jCitAQCAtNzcsNiArNzcsNyBAQAorICNpbmNsdWRlICJnZGJzdXBwb3J0L3NlbGZ0 ZXN0LmgiCisgI2luY2x1ZGUgInJ1c3QtbGFuZy5oIgorICNpbmNsdWRlICJnZGJzdXBwb3J0L3Bh dGhzdHVmZi5oIgorKyNpbmNsdWRlICJkZWJ1Z2luZm9kLXN1cHBvcnQuaCIKKyAKKyAvKiBXaGVu ID09IDEsIHByaW50IGJhc2ljIGhpZ2ggbGV2ZWwgdHJhY2luZyBtZXNzYWdlcy4KKyAgICBXaGVu ID4gMSwgYmUgbW9yZSB2ZXJib3NlLgorQEAgLTI3MTcsNiArMjcxOCwyOSBAQCBkd2FyZjJfZ2V0 X2R3el9maWxlIChzdHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlICpkd2FyZjJfcGVyX29iamZpbGUp CisgCWR3el9iZmQucmVzZXQgKG51bGxwdHIpOworICAgICB9CisgCisrICBpZiAoZHd6X2JmZCA9 PSBudWxscHRyKQorKyAgICB7CisrICAgICAgZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4g YWx0X2ZpbGVuYW1lOworKyAgICAgIGNvbnN0IGNoYXIgKm9yaWduYW1lID0gZHdhcmYyX3Blcl9v YmpmaWxlLT5vYmpmaWxlLT5vcmlnaW5hbF9uYW1lOworKworKyAgICAgIHNjb3BlZF9mZCBmZCAo ZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGJ1aWxkaWQsCisrCQkJCQkJYnVpbGRpZF9sZW4s CisrCQkJCQkJb3JpZ25hbWUsCisrCQkJCQkJJmFsdF9maWxlbmFtZSkpOworKworKyAgICAgIGlm IChmZC5nZXQgKCkgPj0gMCkKKysJeworKwkgIC8qIEZpbGUgc3VjY2Vzc2Z1bGx5IHJldHJpZXZl ZCBmcm9tIHNlcnZlci4gICovCisrCSAgZHd6X2JmZCA9IGdkYl9iZmRfb3BlbiAoYWx0X2ZpbGVu YW1lLmdldCAoKSwgZ251dGFyZ2V0LCAtMSk7CisrCisrCSAgaWYgKGR3el9iZmQgPT0gbnVsbHB0 cikKKysJICAgIHdhcm5pbmcgKF8oIkZpbGUgXCIlc1wiIGZyb20gZGVidWdpbmZvZCBjYW5ub3Qg YmUgb3BlbmVkIGFzIGJmZCIpLAorKwkJICAgICBhbHRfZmlsZW5hbWUuZ2V0ICgpKTsKKysJICBl bHNlIGlmICghYnVpbGRfaWRfdmVyaWZ5IChkd3pfYmZkLmdldCAoKSwgYnVpbGRpZF9sZW4sIGJ1 aWxkaWQpKQorKwkgICAgZHd6X2JmZC5yZXNldCAobnVsbHB0cik7CisrCX0KKysgICAgfQorKwor ICAgaWYgKGR3el9iZmQgPT0gTlVMTCkKKyAgICAgZHd6X2JmZCA9IGJ1aWxkX2lkX3RvX2RlYnVn X2JmZCAoYnVpbGRpZF9sZW4sIGJ1aWxkaWQsIE5VTEwpOworIAorZGlmZiAtLWdpdCBhL2dkYi9l bGZyZWFkLmMgYi9nZGIvZWxmcmVhZC5jCistLS0gYS9nZGIvZWxmcmVhZC5jCisrKysgYi9nZGIv ZWxmcmVhZC5jCitAQCAtNDksNiArNDksOCBAQAorICNpbmNsdWRlICJtZGVidWdyZWFkLmgiCisg I2luY2x1ZGUgImN0ZnJlYWQuaCIKKyAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfc3RyaW5nX3Zp ZXcuaCIKKysjaW5jbHVkZSAiZ2Ric3VwcG9ydC9zY29wZWRfZmQuaCIKKysjaW5jbHVkZSAiZGVi dWdpbmZvZC1zdXBwb3J0LmgiCisgCisgLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMuICAqLworIGV4 dGVybiBjb25zdCBzdHJ1Y3Qgc3ltX2ZucyBlbGZfc3ltX2Zuc19nZGJfaW5kZXg7CitAQCAtMTMx MywxMiArMTMxNSw0MiBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFncykKKyAJICBzeW1ib2xfZmlsZV9hZGRf c2VwYXJhdGUgKGRlYnVnX2JmZC5nZXQgKCksIGRlYnVnZmlsZS5jX3N0ciAoKSwKKyAJCQkJICAg IHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOworIAl9CistICAgICAgLyogQ2hlY2sgaWYgYW55IHNl cGFyYXRlIGRlYnVnIGluZm8gaGFzIGJlZW4gZXh0cmFjdGVkIG91dC4gICovCistICAgICAgZWxz ZSBpZiAoYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKG9iamZpbGUtPm9iZmQsICIuZ251X2RlYnVn bGluayIpCistCSAgICAgICAhPSBOVUxMKQorLQlkZWJ1Z19wcmludF9taXNzaW5nIChvYmpmaWxl X25hbWUgKG9iamZpbGUpLCBidWlsZF9pZF9maWxlbmFtZS5nZXQgKCkpOworICAgICAgIGVsc2UK Ky0JaGFzX2R3YXJmMiA9IGZhbHNlOworKwl7CisrCSAgaGFzX2R3YXJmMiA9IGZhbHNlOworKwkg IGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkID0gYnVpbGRfaWRfYmZkX3NoZHJf Z2V0IChvYmpmaWxlLT5vYmZkKTsKKysKKysJICBpZiAoYnVpbGRfaWQgIT0gbnVsbHB0cikKKysJ ICAgIHsKKysJICAgICAgZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gc3ltZmlsZV9wYXRo OworKwkgICAgICBzY29wZWRfZmQgZmQgKGRlYnVnaW5mb2RfZGVidWdpbmZvX3F1ZXJ5IChidWls ZF9pZC0+ZGF0YSwKKysJCQkJCQkJYnVpbGRfaWQtPnNpemUsCisrCQkJCQkJCW9iamZpbGUtPm9y aWdpbmFsX25hbWUsCisrCQkJCQkJCSZzeW1maWxlX3BhdGgpKTsKKysKKysJICAgICAgaWYgKGZk LmdldCAoKSA+PSAwKQorKwkJeworKwkJICAvKiBGaWxlIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQg ZnJvbSBzZXJ2ZXIuICAqLworKwkJICBnZGJfYmZkX3JlZl9wdHIgZGVidWdfYmZkIChzeW1maWxl X2JmZF9vcGVuIChzeW1maWxlX3BhdGguZ2V0ICgpKSk7CisrCisrCQkgIGlmIChkZWJ1Z19iZmQg PT0gbnVsbHB0cikKKysJCSAgICB3YXJuaW5nIChfKCJGaWxlIFwiJXNcIiBmcm9tIGRlYnVnaW5m b2QgY2Fubm90IGJlIG9wZW5lZCBhcyBiZmQiKSwKKysJCQkgICAgIG9iamZpbGUtPm9yaWdpbmFs X25hbWUpOworKwkJICBlbHNlIGlmIChidWlsZF9pZF92ZXJpZnkgKGRlYnVnX2JmZC5nZXQgKCks IGJ1aWxkX2lkLT5zaXplLCBidWlsZF9pZC0+ZGF0YSkpCisrCQkgICAgeworKwkJICAgICAgc3lt Ym9sX2ZpbGVfYWRkX3NlcGFyYXRlIChkZWJ1Z19iZmQuZ2V0ICgpLCBzeW1maWxlX3BhdGguZ2V0 ICgpLAorKwkJCQkJCXN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOworKwkJICAgICAgaGFzX2R3YXJm MiA9IHRydWU7CisrCQkgICAgfQorKwkJfQorKwkgICAgfQorKwkgIC8qIENoZWNrIGlmIGFueSBz ZXBhcmF0ZSBkZWJ1ZyBpbmZvIGhhcyBiZWVuIGV4dHJhY3RlZCBvdXQuICAqLworKwkgIGVsc2Ug aWYgKGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChvYmpmaWxlLT5vYmZkLCAiLmdudV9kZWJ1Z2xp bmsiKQorKwkJICAgIT0gTlVMTCkKKysJICAgIGRlYnVnX3ByaW50X21pc3NpbmcgKG9iamZpbGVf bmFtZSAob2JqZmlsZSksIGJ1aWxkX2lkX2ZpbGVuYW1lLmdldCAoKSk7CisrCSAgZWxzZQorKwkg ICAgaGFzX2R3YXJmMiA9IGZhbHNlOworKwl9CisgICAgIH0KKyAKKyAgIC8qIFJlYWQgdGhlIENU RiBzZWN0aW9uIG9ubHkgaWYgdGhlcmUgaXMgbm8gRFdBUkYgaW5mby4gICovCitkaWZmIC0tZ2l0 IGEvZ2RiL3NvdXJjZS5jIGIvZ2RiL3NvdXJjZS5jCistLS0gYS9nZGIvc291cmNlLmMKKysrKyBi L2dkYi9zb3VyY2UuYworQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9w YXRoc3R1ZmYuaCIKKyAjaW5jbHVkZSAic291cmNlLWNhY2hlLmgiCisgI2luY2x1ZGUgImNsaS9j bGktc3R5bGUuaCIKKysjaW5jbHVkZSAiYnVpbGQtaWQuaCIKKysjaW5jbHVkZSAiZGVidWdpbmZv ZC1zdXBwb3J0LmgiCisgCisgI2RlZmluZSBPUEVOX01PREUgKE9fUkRPTkxZIHwgT19CSU5BUlkp CisgI2RlZmluZSBGRE9QRU5fTU9ERSBGT1BFTl9SQgorQEAgLTExMjIsNiArMTEyNCwzNCBAQCBv cGVuX3NvdXJjZV9maWxlIChzdHJ1Y3Qgc3ltdGFiICpzKQorICAgcy0+ZnVsbG5hbWUgPSBOVUxM OworICAgc2NvcGVkX2ZkIGZkID0gZmluZF9hbmRfb3Blbl9zb3VyY2UgKHMtPmZpbGVuYW1lLCBT WU1UQUJfRElSTkFNRSAocyksCisgCQkJCSAgICAgICAmZnVsbG5hbWUpOworKworKyAgaWYgKGZk LmdldCAoKSA8IDApCisrICAgIHsKKysgICAgICBpZiAoU1lNVEFCX0NPTVBVTklUIChzKSAhPSBu dWxscHRyKQorKwl7CisrCSAgY29uc3Qgb2JqZmlsZSAqb2ZwID0gQ09NUFVOSVRfT0JKRklMRSAo U1lNVEFCX0NPTVBVTklUIChzKSk7CisrCisrCSAgc3RkOjpzdHJpbmcgc3JjcGF0aDsKKysJICBp ZiAoSVNfQUJTT0xVVEVfUEFUSCAocy0+ZmlsZW5hbWUpKQorKwkgICAgc3JjcGF0aCA9IHMtPmZp bGVuYW1lOworKwkgIGVsc2UgaWYgKFNZTVRBQl9ESVJOQU1FIChzKSAhPSBudWxscHRyKQorKwkg ICAgeworKwkgICAgICBzcmNwYXRoID0gU1lNVEFCX0RJUk5BTUUgKHMpOworKwkgICAgICBzcmNw YXRoICs9IFNMQVNIX1NUUklORzsKKysJICAgICAgc3JjcGF0aCArPSBzLT5maWxlbmFtZTsKKysJ ICAgIH0KKysKKysJICBjb25zdCBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZCA9IGJ1aWxk X2lkX2JmZF9zaGRyX2dldCAob2ZwLT5vYmZkKTsKKysKKysJICAvKiBRdWVyeSBkZWJ1Z2luZm9k IGZvciB0aGUgc291cmNlIGZpbGUuICAqLworKwkgIGlmIChidWlsZF9pZCAhPSBudWxscHRyKQor KwkgICAgZmQgPSBkZWJ1Z2luZm9kX3NvdXJjZV9xdWVyeSAoYnVpbGRfaWQtPmRhdGEsCisrCQkJ CQkgIGJ1aWxkX2lkLT5zaXplLAorKwkJCQkJICBzcmNwYXRoLmNfc3RyICgpLAorKwkJCQkJICAm ZnVsbG5hbWUpOworKwl9CisrICAgIH0KKysKKyAgIHMtPmZ1bGxuYW1lID0gZnVsbG5hbWUucmVs ZWFzZSAoKTsKKyAgIHJldHVybiBmZDsKKyB9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZGVidWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZGVidWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwCituZXcgZmlsZSBtb2RlIDEw MDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdpbmZvZC9m ZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwCitAQCAtMCwwICsxLDIxNSBAQAorKyMgQ29weXJpZ2h0 IDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysj IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorKworKyMgVGVzdCBkZWJ1Z2luZm9kIGZ1bmN0aW9uYWxpdHkKKysKKytz dGFuZGFyZF90ZXN0ZmlsZSBtYWluLmMKKysKKytsb2FkX2xpYiBkd2FyZi5leHAKKysKKytpZiB7 IFt3aGljaCBkZWJ1Z2luZm9kXSA9PSAwIH0geworKyAgICB1bnRlc3RlZCAiY2Fubm90IGZpbmQg ZGVidWdpbmZvZCIKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmIHsgW3doaWNoIGN1cmxdID09 IDAgfSB7CisrICAgIHVudGVzdGVkICJjYW5ub3QgZmluZCBjdXJsIgorKyAgICByZXR1cm4gLTEK Kyt9CisrCisrIyBTa2lwIHRlc3RpbmcgaWYgZ2RiIHdhcyBub3QgY29uZmlndXJlZCB3aXRoIGRl YnVnaW5mb2QKKytpZiB7IFtzdHJpbmcgZmlyc3QgIndpdGgtZGVidWdpbmZvZCIgXAorKwkgIFtl dmFsIGV4ZWMgJEdEQiAkSU5URVJOQUxfR0RCRkxBR1MgLS1jb25maWd1cmF0aW9uXV0gPT0gLTEg fSB7CisrICAgIHVudGVzdGVkICJnZGIgbm90IGNvbmZpZ3VyZWQgd2l0aCBkZWJ1Z2luZm9kIgor KyAgICByZXR1cm4gLTEKKyt9CisrCisrc2V0IGNhY2hlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAi LmNsaWVudF9jYWNoZSJdCisrc2V0IGRiIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAiLmRlYnVnaW5m b2QuZGIiXQorKworKyMgRGVsZXRlIGFueSBwcmVleGlzdGluZyB0ZXN0IGZpbGVzCisrZmlsZSBk ZWxldGUgLWZvcmNlICRjYWNoZQorK2ZpbGUgZGVsZXRlIC1mb3JjZSAkZGIKKysKKytzZXQgc291 cmNldG1wIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSB0bXAtJHtzcmNmaWxlfV0KKytzZXQgb3V0cHV0 ZGlyIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSB7fV0KKysKKysjIE1ha2UgYSBjb3B5IHNvdXJjZSBm aWxlIHRoYXQgd2UgY2FuIG1vdmUgYXJvdW5kCisraWYgeyBbY2F0Y2gge2ZpbGUgY29weSAtZm9y Y2UgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IFwKKysJICAgICBbc3RhbmRhcmRfb3V0 cHV0X2ZpbGUgJHtzb3VyY2V0bXB9XX1dICE9IDAgfSB7CisrICAgIGVycm9yICJjcmVhdGUgdGVt cG9yYXJ5IGZpbGUiCisrICAgIHJldHVybiAtMQorK30KKysKKytpZiB7IFtnZGJfY29tcGlsZSAi JHNvdXJjZXRtcCIgIiRiaW5maWxlIiBleGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0geworKyAg ICBmYWlsICJjb21waWxlIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrc2V0ZW52IERFQlVHSU5G T0RfVVJMUyAiIgorK3NldGVudiBERUJVR0lORk9EX1RJTUVPVVQgMzAKKytzZXRlbnYgREVCVUdJ TkZPRF9DQUNIRV9QQVRIICRjYWNoZQorKworKyMgVGVzdCB0aGF0IGdkYiBjYW5ub3QgZmluZCBz b3VyY2Ugd2l0aG91dCBkZWJ1Z2luZm9kCisrY2xlYW5fcmVzdGFydCAkYmluZmlsZQorK2dkYl90 ZXN0X25vX291dHB1dCAic2V0IHN1YnN0aXR1dGUtcGF0aCAkb3V0cHV0ZGlyIC9kZXYvbnVsbCIK KytnZGJfdGVzdCAibGlzdCIgIi4qTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeS4qIgorKworKyMg U3RyaXAgc3ltYm9scyBpbnRvIHNlcGFyYXRlIGZpbGUgYW5kIG1vdmUgaXQgc28gZ2RiIGNhbm5v dCBmaW5kIGl0IHdpdGhvdXQgZGVidWdpbmZvZAorK2lmIHsgW2dkYl9nbnVfc3RyaXBfZGVidWcg JGJpbmZpbGUgIiJdICE9IDAgfSB7CisrICAgIGZhaWwgInN0cmlwIGRlYnVnaW5mbyIKKysgICAg cmV0dXJuIC0xCisrfQorKworK3NldCBkZWJ1Z2RpciBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgImRl YnVnIl0KKytzZXQgZGVidWdpbmZvIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAiZmV0Y2hfc3JjX2Fu ZF9zeW1ib2xzLmRlYnVnIl0KKysKKytmaWxlIG1rZGlyICRkZWJ1Z2RpcgorK2ZpbGUgcmVuYW1l IC1mb3JjZSAkZGVidWdpbmZvICRkZWJ1Z2RpcgorKworKyMgVGVzdCB0aGF0IGdkYiBjYW5ub3Qg ZmluZCBzeW1ib2xzIHdpdGhvdXQgZGVidWdpbmZvZAorK2NsZWFuX3Jlc3RhcnQgJGJpbmZpbGUK KytnZGJfdGVzdCAiZmlsZSIgIi4qTm8gc3ltYm9sIGZpbGUuKiIKKysKKysjIFdyaXRlIHNvbWUg YXNzZW1ibHkgdGhhdCBqdXN0IGhhcyBhIC5nbnVfZGVidWdhbHRsaW5rIHNlY3Rpb24uCisrIyBD b3BpZWQgZnJvbSB0ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kd3pidWlsZGlkLmV4cC4KKytwcm9jIHdy aXRlX2p1c3RfZGVidWdhbHRsaW5rIHtmaWxlbmFtZSBkd3puYW1lIGJ1aWxkaWR9IHsKKysgICAg c2V0IGFzbV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkZmlsZW5hbWVdCisrCisrICAgIER3 YXJmOjphc3NlbWJsZSAkYXNtX2ZpbGUgeworKwl1cHZhciBkd3puYW1lIGR3em5hbWUKKysJdXB2 YXIgYnVpbGRpZCBidWlsZGlkCisrCisrCWdudV9kZWJ1Z2FsdGxpbmsgJGR3em5hbWUgJGJ1aWxk aWQKKysKKysJIyBPbmx5IHRoZSBEV0FSRiByZWFkZXIgY2hlY2tzIC5nbnVfZGVidWdhbHRsaW5r LCBzbyBtYWtlIHN1cmUKKysJIyB0aGVyZSBpcyBhIGJpdCBvZiBEV0FSRiBpbiBoZXJlLgorKwlj dSB7fSB7CisrCSAgICBjb21waWxlX3VuaXQge3tsYW5ndWFnZSBARFdfTEFOR19DfX0geworKwkg ICAgfQorKwl9CisrICAgIH0KKyt9CisrCisrIyBXcml0ZSBzb21lIERXQVJGIHRoYXQgYWxzbyBz ZXRzIHRoZSBidWlsZGlkLgorKyMgQ29waWVkIGZyb20gdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHd6 YnVpbGRpZC5leHAuCisrcHJvYyB3cml0ZV9kd2FyZl9maWxlIHtmaWxlbmFtZSBidWlsZGlkIHt2 YWx1ZSA5OX19IHsKKysgICAgc2V0IGFzbV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkZmls ZW5hbWVdCisrCisrICAgIER3YXJmOjphc3NlbWJsZSAkYXNtX2ZpbGUgeworKwlkZWNsYXJlX2xh YmVscyBpbnRfbGFiZWwgaW50X2xhYmVsMgorKworKwl1cHZhciBidWlsZGlkIGJ1aWxkaWQKKysJ dXB2YXIgdmFsdWUgdmFsdWUKKysKKysJYnVpbGRfaWQgJGJ1aWxkaWQKKysKKysJY3Uge30gewor KwkgICAgY29tcGlsZV91bml0IHt7bGFuZ3VhZ2UgQERXX0xBTkdfQ319IHsKKysJICAgICAgICBp bnRfbGFiZWwyOiBiYXNlX3R5cGUgeworKwkJICAgIHtuYW1lIGludH0KKysJCSAgICB7Ynl0ZV9z aXplIDQgc2RhdGF9CisrCQkgICAge2VuY29kaW5nIEBEV19BVEVfc2lnbmVkfQorKwkJfQorKwor KwkJY29uc3RhbnQgeworKwkJICAgIHtuYW1lIHRoZV9pbnR9CisrCQkgICAge3R5cGUgOiRpbnRf bGFiZWwyfQorKwkJICAgIHtjb25zdF92YWx1ZSAkdmFsdWUgZGF0YTF9CisrCQl9CisrCSAgICB9 CisrCX0KKysgICAgfQorK30KKysKKytzZXQgYnVpbGRpZCAiMDEyMzQ1Njc4OTBhYmNkZWYwMTIz NDU2IgorKworK3dyaXRlX2p1c3RfZGVidWdhbHRsaW5rICR7YmluZmlsZX1faGFzX2FsdGxpbmsu UyAke2JpbmZpbGV9X2R3ei5vICRidWlsZGlkCisrd3JpdGVfZHdhcmZfZmlsZSAke2JpbmZpbGV9 X2R3ei5TICRidWlsZGlkCisrCisraWYge1tnZGJfY29tcGlsZSAke2JpbmZpbGV9X2hhc19hbHRs aW5rLlMgJHtiaW5maWxlfV9hbHQubyBvYmplY3Qgbm9kZWJ1Z10gIT0gIiJ9IHsKKysgICAgZmFp bCAiY29tcGlsZSBtYWluIHdpdGggYWx0bGluayIKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lm IHtbZ2RiX2NvbXBpbGUgJHtiaW5maWxlfV9kd3ouUyAke2JpbmZpbGV9X2R3ei5vIG9iamVjdCBu b2RlYnVnXSAhPSAiIn0geworKyAgICBmYWlsICJjb21waWxlIGFsdGxpbmsiCisrICAgIHJldHVy biAtMQorK30KKysKKytmaWxlIHJlbmFtZSAtZm9yY2UgJHtiaW5maWxlfV9kd3oubyAkZGVidWdk aXIKKysKKysjIFRlc3QgdGhhdCBnZGIgY2Fubm90IGZpbmQgZHd6IHdpdGhvdXQgZGVidWdpbmZv ZC4KKytjbGVhbl9yZXN0YXJ0CisrZ2RiX3Rlc3QgImZpbGUgJHtiaW5maWxlfV9hbHQubyIgIi4q Y291bGQgbm90IGZpbmQgJy5nbnVfZGVidWdhbHRsaW5rJy4qIgorKworKyMgRmluZCBhbiB1bnVz ZWQgcG9ydAorK3NldCBwb3J0IDc5OTkKKytzZXQgZm91bmQgMAorK3doaWxlIHsgISAkZm91bmQg fSB7CisrICBpbmNyIHBvcnQKKysgIGlmIHsgJHBvcnQgPT0gNjU1MzYgfSB7CisrICAgIGZhaWwg Im5vIGF2YWlsYWJsZSBwb3J0cyIKKysgICAgcmV0dXJuIC0xCisrICB9CisrCisrICBzcGF3biBk ZWJ1Z2luZm9kIC12dnZ2IC1kICRkYiAtcCAkcG9ydCAtRiAkZGVidWdkaXIKKysgIGV4cGVjdCB7 CisrICAgICJzdGFydGVkIGh0dHAgc2VydmVyIG9uIElQdjQgSVB2NiBwb3J0PSRwb3J0IiB7IHNl dCBmb3VuZCAxIH0KKysgICAgImZhaWxlZCB0byBiaW5kIHRvIHBvcnQiIHsga2lsbF93YWl0X3Nw YXduZWRfcHJvY2VzcyAkc3Bhd25faWQgfQorKyAgICB0aW1lb3V0IHsKKysgICAgICBmYWlsICJm aW5kIHBvcnQgdGltZW91dCIKKysgICAgICByZXR1cm4gLTEKKysgICAgfQorKyAgfQorK30KKysK KytzZXQgbWV0cmljcyBbbGlzdCAicmVhZHkgMSIgXAorKwkgICAgICJ0aHJlYWRfd29ya190b3Rh bHtyb2xlPVwidHJhdmVyc2VcIn0gMSIgXAorKwkgICAgICJ0aHJlYWRfd29ya19wZW5kaW5ne3Jv bGU9XCJzY2FuXCJ9IDAiIFwKKysJICAgICAidGhyZWFkX2J1c3l7cm9sZT1cInNjYW5cIn0gMCJd CisrCisrIyBDaGVjayBzZXJ2ZXIgbWV0cmljcyB0byBjb25maXJtIGluaXQgaGFzIGNvbXBsZXRl ZC4KKytmb3JlYWNoIG0gJG1ldHJpY3MgeworKyAgc2V0IHRpbWVsaW0gMjAKKysgIHdoaWxlIHsg JHRpbWVsaW0gIT0gMCB9IHsKKysgICAgc2xlZXAgMC41CisrICAgIGNhdGNoIHtleGVjIGN1cmwg LXMgaHR0cDovLzEyNy4wLjAuMTokcG9ydC9tZXRyaWNzfSBnb3QKKysKKysgICAgaWYgeyBbcmVn ZXhwICRtICRnb3RdIH0geworKyAgICAgIGJyZWFrCisrICAgIH0KKysKKysgICAgaW5jciB0aW1l bGltIC0xCisrICB9CisrCisrICBpZiB7ICR0aW1lbGltID09IDAgfSB7CisrICAgIGZhaWwgInNl cnZlciBpbml0IHRpbWVvdXQiCisrICAgIHJldHVybiAtMQorKyAgfQorK30KKysKKysjIFBvaW50 IHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlcgorK3NldGVudiBERUJVR0lORk9EX1VSTFMgaHR0cDov LzEyNy4wLjAuMTokcG9ydAorKworKyMgZ2RiIHNob3VsZCBub3cgZmluZCB0aGUgc3ltYm9sIGFu ZCBzb3VyY2UgZmlsZXMKKytjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCisrZ2RiX3Rlc3Rfbm9fb3V0 cHV0ICJzZXQgc3Vic3RpdHV0ZS1wYXRoICRvdXRwdXRkaXIgL2Rldi9udWxsIgorK2dkYl90ZXN0 ICJiciBtYWluIiAiQnJlYWtwb2ludCAxIGF0LipmaWxlLioiCisrZ2RiX3Rlc3QgImwiICIuKlRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZS4qIgorKworKyMgZ2RiIHNob3Vs ZCBub3cgZmluZCB0aGUgZGVidWdhbHRsaW5rIGZpbGUKKytjbGVhbl9yZXN0YXJ0CisrZ2RiX3Rl c3QgImZpbGUgJHtiaW5maWxlfV9hbHQubyIgIi4qUmVhZGluZyBzeW1ib2xzIGZyb20gJHtiaW5m aWxlfV9hbHQub1wuXC5cLioiCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVidWdp bmZvZC9tYWluLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kZWJ1Z2luZm9kL21haW4uYworbmV3IGZp bGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmRl YnVnaW5mb2QvbWFpbi5jCitAQCAtMCwwICsxLDI1IEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAyMCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisrCisrLyogRHVtbXkgbWFpbiBmdW5jdGlvbi4gICovCisrCisraW50 CisrbWFpbigpCisreworKyAgYXNtICgibWFpbl9sYWJlbDogLmdsb2JsIG1haW5fbGFiZWwiKTsK KysgIHJldHVybiAwOworK30KK2RpZmYgLS1naXQgYS9nZGIvdG9wLmMgYi9nZGIvdG9wLmMKKy0t LSBhL2dkYi90b3AuYworKysrIGIvZ2RiL3RvcC5jCitAQCAtMTUxMyw2ICsxNTEzLDE3IEBAIFRo aXMgR0RCIHdhcyBjb25maWd1cmVkIGFzIGZvbGxvd3M6XG5cCisgICAgICAgICAgICAgIC0td2l0 aG91dC1weXRob25cblwKKyAiKSk7CisgI2VuZGlmCisrCisrI2lmIEhBVkVfTElCREVCVUdJTkZP RAorKyAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCJcCisrICAgICAgICAgICAgIC0td2l0 aC1kZWJ1Z2luZm9kXG5cCisrIikpOworKyNlbHNlCisrICAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCBfKCJcCisrICAgICAgICAgICAgIC0td2l0aG91dC1kZWJ1Z2luZm9kXG5cCisrIikpOwor KyNlbmRpZgorKworICNpZiBIQVZFX0dVSUxFCisgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0s IF8oIlwKKyAgICAgICAgICAgICAgLS13aXRoLWd1aWxlXG5cCgpkaWZmIC0tZ2l0IGEvZ2RiLnNw ZWMgYi9nZGIuc3BlYwppbmRleCBiNDM3ZjEwLi41MzMyYWQ2IDEwMDY0NAotLS0gYS9nZGIuc3Bl YworKysgYi9nZGIuc3BlYwpAQCAtMSw3ICsxLDMgQEAKLSMgVGhpcyBwYWNrYWdlIGRlcGVuZHMg b24gYXV0b21hZ2ljIGJ5dGUgY29tcGlsYXRpb24KLSMgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9y Zy93aWtpL0NoYW5nZXMvTm9fbW9yZV9hdXRvbWFnaWNfUHl0aG9uX2J5dGVjb21waWxhdGlvbl9w aGFzZV8yCi0lZ2xvYmFsIF9weXRob25fYnl0ZWNvbXBpbGVfZXh0cmEgMQotCiAjIHJwbWJ1aWxk IHBhcmFtZXRlcnM6CiAjIC0td2l0aCB0ZXN0c3VpdGU6IFJ1biB0aGUgdGVzdHN1aXRlIChiaWFy Y2ggaWYgcG9zc2libGUpLiAgRGVmYXVsdCBpcyB3aXRob3V0LgogIyAtLXdpdGggYnVpbGRpc2E6 IFVzZSAlJXs/X2lzYX0gZm9yIEJ1aWxkUmVxdWlyZXMKQEAgLTM4LDcgKzM0LDcgQEAgVmVyc2lv bjogOS4yCiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZl ZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBg bmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0 ZXN0aW5nLgotUmVsZWFzZTogMSV7P2Rpc3R9CitSZWxlYXNlOiAyJXs/ZGlzdH0KIAogTGljZW5z ZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYy KyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIExHUEx2MysgYW5kIEJT RCBhbmQgUHVibGljIERvbWFpbiBhbmQgR0ZETAogIyBEbyBub3QgcHJvdmlkZSBVUkwgZm9yIHNu YXBzaG90cyBhcyB0aGUgZmlsZSBsYXN0cyB0aGVyZSBvbmx5IGZvciAyIGRheXMuCkBAIC0yNjQs NyArMjYwLDEwIEBAIEJ1aWxkUmVxdWlyZXM6IGxpYmlwdC1kZXZlbCV7YnVpbGRpc2F9CiBCdWls ZFJlcXVpcmVzOiBtcGZyLWRldmVsJXtidWlsZGlzYX0KICVlbmRpZgogQnVpbGRSZXF1aXJlczog c291cmNlLWhpZ2hsaWdodC1kZXZlbAorJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA4 CiBCdWlsZFJlcXVpcmVzOiB4eGhhc2gtZGV2ZWwKKyVlbmRpZgorQnVpbGRSZXF1aXJlczogZWxm dXRpbHMtZGVidWdpbmZvZC1jbGllbnQtZGV2ZWwKIAogJWlmIDAlez9fd2l0aF90ZXN0c3VpdGU6 MX0KIApAQCAtMzc2LDYgKzM3NSw3IEBAIEJ1aWxkUmVxdWlyZXM6IHh6CiBCdWlsZFJlcXVpcmVz OiBydXN0CiAlZW5kaWYKIAorQnVpbGRSZXF1aXJlczogJXs/c2NsX3ByZWZpeH1lbGZ1dGlscy1k ZWJ1Z2luZm9kCiAlZW5kaWYgIyAwJXs/X3dpdGhfdGVzdHN1aXRlOjF9CiAKICV7P3NjbDpSZXF1 aXJlczolc2NsX3J1bnRpbWV9CkBAIC01NjUsNyArNTY1LDggQEAgQ09NTU9OX0dEQl9DT05GSUdV UkVfRkxBR1M9IlwKIAktLXdpdGgtbHptYQkJCQkJCVwKICVlbHNlCiAJLS13aXRob3V0LWx6bWEJ CQkJCQlcCi0lZW5kaWYKKyVlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0td2l0aC1kZWJ1Z2luZm9kCiAiCiAK ICMgSWRlbnRpZnkgdGhlIGJ1aWxkIGRpcmVjdG9yeSB3aXRoIHRoZSB2ZXJzaW9uIG9mIGdkYiBh cyB3ZWxsIGFzIHRoZQpAQCAtMTE2Myw2ICsxMTY0LDkgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdl bG9nCisqIFdlZCAgSnVuIDE3IDIwMjAgS2VpdGggU2VpdHogPGtlaXRoc0ByZWRoYXQuY29tPiAt IDkuMi0yCistIEJhY2twb3J0IGRlYnVnaW5mb2Qgc3VwcG9ydC4KKwogKiBUdWUgSnVuICA5IDIw MjAgS2VpdGggU2VpdHogPGtlaXRoc0ByZWRoYXQuY29tPiAtIDkuMi0xCiAtIFJlYmFzZSB0byBG U0YgR0RCIDkuMi4KIC0gQWRkIGV4cGxpY2l0IHB5dGhvbiBieXRlY29kZSBjb21waWxhdGlvbi4K