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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Print reasons for failed attach/spawn incl. SELinux deny_ptrace (BZ 786878). Date: Thu, 23 Jul 2026 18:30:18 GMT Message-ID: <178483141852.1.2605053215311274039.rpms-gdb-c64e73263bc5@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: c64e73263bc5a353268f1f2e8e164ee9f0849694 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogYzY0ZTczMjYzYmM1YTM1MzI2OGYxZjJlOGUxNjRlZTlm MDg0OTY5NApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxMi0wMy0wNlQwNzo1NzowNyswMTowMApTdGF0cyAgOiArMTQ3Ny8tMSBp biA2IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9n ZGIvYy9jNjRlNzMyNjNiYzVhMzUzMjY4ZjFmMmU4ZTE2NGVlOWYwODQ5Njk0P2JyYW5jaD1maXgt ZHVwLXBhdGNoCgpMb2c6ClByaW50IHJlYXNvbnMgZm9yIGZhaWxlZCBhdHRhY2gvc3Bhd24gaW5j bC4gU0VMaW51eCBkZW55X3B0cmFjZSAoQlogNzg2ODc4KS4KCi0tLQpkaWZmIC0tZ2l0IGEvZ2Ri LWF0dGFjaC1mYWlsLXJlYXNvbnMtMW9mNS5wYXRjaCBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25z LTFvZjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM1NDdkOAot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTFvZjUucGF0Y2gKQEAg LTAsMCArMSw4OCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMi0wMi9t c2cwMDE4MC5odG1sCisKKyMjIyBzcmMvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cJMjAxMi8wMi8y NSAxOTo1NDo1MAkxLjU1NgorIyMjIHNyYy9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwkyMDEyLzAy LzI3IDE2OjE5OjE5CTEuNTU3CisjIyAtMSwzICsxLDkgQEAKKysyMDEyLTAyLTI3ICBQZWRybyBB bHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgorKworKwlQUiBzZXJ2ZXIvOTY4NAorKwkqIGxpbnV4 LWxvdy5jIChwaWRfaXNfc3RvcHBlZCk6IE5ldy4KKysJKGxpbnV4X2F0dGFjaF9sd3BfMSk6IEhh bmRsZSBhdHRhY2hpbmcgdG8gJ1QgKHN0b3BwZWQpJyBwcm9jZXNzZXMuCisrCisgMjAxMi0wMi0y NSAgTHVpcyBNYWNoYWRvICA8bGd1c3Rhdm9AY29kZXNvdXJjZXJ5LmNvbT4KKyAKKyAJKiBtZW0t YnJlYWsuYyAoY2xlYXJfZ2RiX2JyZWFrcG9pbnRfY29uZGl0aW9ucyk6IEZpeCBkZS1hbGxvY2F0 aW9uCistLS0gc3JjL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxMi8wMi8yNCAxNToxNTo1 NgkxLjE5MworKysrIHNyYy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTIvMDIvMjcgMTY6 MTk6MTkJMS4xOTQKK0BAIC01OTgsNiArNTk4LDM3IEBACisgICByZXR1cm4gcGlkOworIH0KKyAK KysvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1cycuCisrICAgT3Ro ZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJlcG9ydGVkIGFzIGZh bHNlLiAgKi8KKysKKytzdGF0aWMgaW50CisrcGlkX2lzX3N0b3BwZWQgKHBpZF90IHBpZCkKKyt7 CisrICBGSUxFICpzdGF0dXNfZmlsZTsKKysgIGNoYXIgYnVmWzEwMF07CisrICBpbnQgcmV0dmFs ID0gMDsKKysKKysgIHNucHJpbnRmIChidWYsIHNpemVvZiAoYnVmKSwgIi9wcm9jLyVkL3N0YXR1 cyIsIChpbnQpIHBpZCk7CisrICBzdGF0dXNfZmlsZSA9IGZvcGVuIChidWYsICJyIik7CisrICBp ZiAoc3RhdHVzX2ZpbGUgIT0gTlVMTCkKKysgICAgeworKyAgICAgIGludCBoYXZlX3N0YXRlID0g MDsKKysKKysgICAgICB3aGlsZSAoZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmls ZSkpCisrCXsKKysJICBpZiAoc3RybmNtcCAoYnVmLCAiU3RhdGU6IiwgNikgPT0gMCkKKysJICAg IHsKKysJICAgICAgaGF2ZV9zdGF0ZSA9IDE7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKwl9 CisrICAgICAgaWYgKGhhdmVfc3RhdGUgJiYgc3Ryc3RyIChidWYsICJUIChzdG9wcGVkKSIpICE9 IE5VTEwpCisrCXJldHZhbCA9IDE7CisrICAgICAgZmNsb3NlIChzdGF0dXNfZmlsZSk7CisrICAg IH0KKysgIHJldHVybiByZXR2YWw7CisrfQorKworIC8qIEF0dGFjaCB0byBhbiBpbmZlcmlvciBw cm9jZXNzLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTY0Myw2ICs2NzQsMzMgQEAKKyAgICAg IHB0cmFjZSBjYWxsIG9uIHRoaXMgTFdQLiAgKi8KKyAgIG5ld19sd3AtPm11c3Rfc2V0X3B0cmFj ZV9mbGFncyA9IDE7CisgCisrICBpZiAocGlkX2lzX3N0b3BwZWQgKGx3cGlkKSkKKysgICAgewor KyAgICAgIGlmIChkZWJ1Z190aHJlYWRzKQorKwlmcHJpbnRmIChzdGRlcnIsCisrCQkgIkF0dGFj aGVkIHRvIGEgc3RvcHBlZCBwcm9jZXNzXG4iKTsKKysKKysgICAgICAvKiBUaGUgcHJvY2VzcyBp cyBkZWZpbml0ZWx5IHN0b3BwZWQuICBJdCBpcyBpbiBhIGpvYiBjb250cm9sCisrCSBzdG9wLCB1 bmxlc3MgdGhlIGtlcm5lbCBwcmVkYXRlcyB0aGUgVEFTS19TVE9QUEVEIC8KKysJIFRBU0tfVFJB Q0VEIGRpc3RpbmN0aW9uLCBpbiB3aGljaCBjYXNlIGl0IG1pZ2h0IGJlIGluIGEKKysJIHB0cmFj ZSBzdG9wLiAgTWFrZSBzdXJlIGl0IGlzIGluIGEgcHRyYWNlIHN0b3A7IGZyb20gdGhlcmUgd2UK KysJIGNhbiBraWxsIGl0LCBzaWduYWwgaXQsIGV0IGNldGVyYS4KKysKKysJIEZpcnN0IG1ha2Ug c3VyZSB0aGVyZSBpcyBhIHBlbmRpbmcgU0lHU1RPUC4gIFNpbmNlIHdlIGFyZQorKwkgYWxyZWFk eSBhdHRhY2hlZCwgdGhlIHByb2Nlc3MgY2FuIG5vdCB0cmFuc2l0aW9uIGZyb20gc3RvcHBlZAor KwkgdG8gcnVubmluZyB3aXRob3V0IGEgUFRSQUNFX0NPTlQ7IHNvIHdlIGtub3cgdGhpcyBzaWdu YWwgd2lsbAorKwkgZ28gaW50byB0aGUgcXVldWUuICBUaGUgU0lHU1RPUCBnZW5lcmF0ZWQgYnkg UFRSQUNFX0FUVEFDSCBpcworKwkgcHJvYmFibHkgYWxyZWFkeSBpbiB0aGUgcXVldWUgKHVubGVz cyB0aGlzIGtlcm5lbCBpcyBvbGQKKysJIGVub3VnaCB0byB1c2UgVEFTS19TVE9QUEVEIGZvciBw dHJhY2Ugc3RvcHMpOyBidXQgc2luY2UKKysJIFNJR1NUT1AgaXMgbm90IGFuIFJUIHNpZ25hbCwg aXQgY2FuIG9ubHkgYmUgcXVldWVkIG9uY2UuICAqLworKyAgICAgIGtpbGxfbHdwIChsd3BpZCwg U0lHU1RPUCk7CisrCisrICAgICAgLyogRmluYWxseSwgcmVzdW1lIHRoZSBzdG9wcGVkIHByb2Nl c3MuICBUaGlzIHdpbGwgZGVsaXZlciB0aGUKKysJIFNJR1NUT1AgKG9yIGEgaGlnaGVyIHByaW9y aXR5IHNpZ25hbCwganVzdCBsaWtlIG5vcm1hbAorKwkgUFRSQUNFX0FUVEFDSCksIHdoaWNoIHdl J2xsIGNhdGNoIGxhdGVyIG9uLiAgKi8KKysgICAgICBwdHJhY2UgKFBUUkFDRV9DT05ULCBsd3Bp ZCwgMCwgMCk7CisrICAgIH0KKysKKyAgIC8qIFRoZSBuZXh0IHRpbWUgd2Ugd2FpdCBmb3IgdGhp cyBMV1Agd2UnbGwgc2VlIGEgU0lHU1RPUCBhcyBQVFJBQ0VfQVRUQUNICisgICAgICBicmluZ3Mg aXQgdG8gYSBoYWx0LgorIAoKZGlmZiAtLWdpdCBhL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTJv ZjUucGF0Y2ggYi9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy0yb2Y1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNTY1YjkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt YXR0YWNoLWZhaWwtcmVhc29ucy0yb2Y1LnBhdGNoCkBAIC0wLDAgKzEsMTc4IEBACitodHRwOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTAyL21zZzAwMTgxLmh0bWwKKworIyMjIHNy Yy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDIvMjQgMjM6NDg6MzcJMS4xMzg2OQorIyMjIHNyYy9nZGIv Q2hhbmdlTG9nCTIwMTIvMDIvMjcgMTY6MjI6MDYJMS4xMzg3MAorIyMgLTEsMyArMSwxMyBAQAor KzIwMTItMDItMjcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisrCisrCSogbGlu dXgtbmF0LmMgKHBpZF9pc19zdG9wcGVkKTogRGVsZXRlLCBtb3ZlZCB0byBjb21tb24vLgorKwko bGludXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQpOiBBZGp1c3QgdG8gdXNlCisrCWxpbnV4X3Byb2Nf cGlkX2lzX3N0b3BwZWQuCisrCSogY29tbW9uL2xpbnV4LXByb2Nmcy5oIChsaW51eF9wcm9jX3Bp ZF9pc19zdG9wcGVkKTogRGVjbGFyZS4KKysJKiBjb21tb24vbGludXgtcHJvY2ZzLmMgKGxpbnV4 X3Byb2NfcGlkX2lzX3N0b3BwZWQpOiBOZXcgZnVuY3Rpb24sCisrCWJhc2VkIG9uIHBpZF9pc19z dG9wcGVkIGZyb20gYm90aCBsaW51eC1uYXQuYyBhbmQKKysJZ2Ric2VydmVyL2xpbnV4LWxvdy5j LCBhbmQgcmVuYW1lZC4KKysKKyAyMDEyLTAyLTI0ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3Jv QGNvZGVzb3VyY2VyeS5jb20+CisgCisgCSogcmVtb3RlLmMgKHJlbW90ZV93YXRjaHBvaW50X2Fk ZHJfd2l0aGluX3JhbmdlKTogTmV3IGZ1bmN0aW9uLgorLS0tIHNyYy9nZGIvbGludXgtbmF0LmMJ MjAxMi8wMi8xNiAyMTowNzoyMAkxLjIzOQorKysrIHNyYy9nZGIvbGludXgtbmF0LmMJMjAxMi8w Mi8yNyAxNjoyMjoxMwkxLjI0MAorQEAgLTEzNTYsMzcgKzEzNTYsNiBAQAorICAgZGVsZXRlX2x3 cCAobHAtPnB0aWQpOworIH0KKyAKKy0vKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2Mv UElEL3N0YXR1cycuCistICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9w KScgYXJlIHJlcG9ydGVkIGFzIGZhbHNlLiAgKi8KKy0KKy1zdGF0aWMgaW50CistcGlkX2lzX3N0 b3BwZWQgKHBpZF90IHBpZCkKKy17CistICBGSUxFICpzdGF0dXNfZmlsZTsKKy0gIGNoYXIgYnVm WzEwMF07CistICBpbnQgcmV0dmFsID0gMDsKKy0KKy0gIHNucHJpbnRmIChidWYsIHNpemVvZiAo YnVmKSwgIi9wcm9jLyVkL3N0YXR1cyIsIChpbnQpIHBpZCk7CistICBzdGF0dXNfZmlsZSA9IGZv cGVuIChidWYsICJyIik7CistICBpZiAoc3RhdHVzX2ZpbGUgIT0gTlVMTCkKKy0gICAgeworLSAg ICAgIGludCBoYXZlX3N0YXRlID0gMDsKKy0KKy0gICAgICB3aGlsZSAoZmdldHMgKGJ1Ziwgc2l6 ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCistCXsKKy0JICBpZiAoc3RybmNtcCAoYnVmLCAiU3Rh dGU6IiwgNikgPT0gMCkKKy0JICAgIHsKKy0JICAgICAgaGF2ZV9zdGF0ZSA9IDE7CistCSAgICAg IGJyZWFrOworLQkgICAgfQorLQl9CistICAgICAgaWYgKGhhdmVfc3RhdGUgJiYgc3Ryc3RyIChi dWYsICJUIChzdG9wcGVkKSIpICE9IE5VTEwpCistCXJldHZhbCA9IDE7CistICAgICAgZmNsb3Nl IChzdGF0dXNfZmlsZSk7CistICAgIH0KKy0gIHJldHVybiByZXR2YWw7CistfQorLQorIC8qIFdh aXQgZm9yIHRoZSBMV1Agc3BlY2lmaWVkIGJ5IExQLCB3aGljaCB3ZSBoYXZlIGp1c3QgYXR0YWNo ZWQgdG8uCisgICAgUmV0dXJucyBhIHdhaXQgc3RhdHVzIGZvciB0aGF0IExXUCwgdG8gY2FjaGUu ICAqLworIAorQEAgLTEzOTcsNyArMTM2Niw3IEBACisgICBwaWRfdCBuZXdfcGlkLCBwaWQgPSBH RVRfTFdQIChwdGlkKTsKKyAgIGludCBzdGF0dXM7CisgCistICBpZiAocGlkX2lzX3N0b3BwZWQg KHBpZCkpCisrICBpZiAobGludXhfcHJvY19waWRfaXNfc3RvcHBlZCAocGlkKSkKKyAgICAgewor ICAgICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCisgCWZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0 ZGxvZywKKy0tLSBzcmMvZ2RiL2NvbW1vbi9saW51eC1wcm9jZnMuYwkyMDEyLzAxLzA0IDA4OjE3 OjE4CTEuMgorKysrIHNyYy9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5jCTIwMTIvMDIvMjcgMTY6 MjI6MTQJMS4zCitAQCAtNTMsMyArNTMsMzQgQEAKKyAKKyAgIHJldHVybiB0Z2lkOworIH0KKysK KysvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1cycuCisrICAgT3Ro ZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJlcG9ydGVkIGFzIGZh bHNlLiAgKi8KKysKKytpbnQKKytsaW51eF9wcm9jX3BpZF9pc19zdG9wcGVkIChwaWRfdCBwaWQp CisreworKyAgRklMRSAqc3RhdHVzX2ZpbGU7CisrICBjaGFyIGJ1ZlsxMDBdOworKyAgaW50IHJl dHZhbCA9IDA7CisrCisrICBzbnByaW50ZiAoYnVmLCBzaXplb2YgKGJ1ZiksICIvcHJvYy8lZC9z dGF0dXMiLCAoaW50KSBwaWQpOworKyAgc3RhdHVzX2ZpbGUgPSBmb3BlbiAoYnVmLCAiciIpOwor KyAgaWYgKHN0YXR1c19maWxlICE9IE5VTEwpCisrICAgIHsKKysgICAgICBpbnQgaGF2ZV9zdGF0 ZSA9IDA7CisrCisrICAgICAgd2hpbGUgKGZnZXRzIChidWYsIHNpemVvZiAoYnVmKSwgc3RhdHVz X2ZpbGUpKQorKwl7CisrCSAgaWYgKHN0cm5jbXAgKGJ1ZiwgIlN0YXRlOiIsIDYpID09IDApCisr CSAgICB7CisrCSAgICAgIGhhdmVfc3RhdGUgPSAxOworKwkgICAgICBicmVhazsKKysJICAgIH0K KysJfQorKyAgICAgIGlmIChoYXZlX3N0YXRlICYmIHN0cnN0ciAoYnVmLCAiVCAoc3RvcHBlZCki KSAhPSBOVUxMKQorKwlyZXR2YWwgPSAxOworKyAgICAgIGZjbG9zZSAoc3RhdHVzX2ZpbGUpOwor KyAgICB9CisrICByZXR1cm4gcmV0dmFsOworK30KKy0tLSBzcmMvZ2RiL2NvbW1vbi9saW51eC1w cm9jZnMuaAkyMDEyLzAxLzA0IDA4OjE3OjE4CTEuMgorKysrIHNyYy9nZGIvY29tbW9uL2xpbnV4 LXByb2Nmcy5oCTIwMTIvMDIvMjcgMTY6MjI6MTUJMS4zCitAQCAtMjYsNCArMjYsOSBAQAorIAor IGV4dGVybiBpbnQgbGludXhfcHJvY19nZXRfdGdpZCAoaW50IGx3cGlkKTsKKyAKKysvKiBEZXRl Y3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1cycuCisrICAgT3RoZXIgc3RhdGVz IGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJlcG9ydGVkIGFzIGZhbHNlLiAgKi8K KysKKytleHRlcm4gaW50IGxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKHBpZF90IHBpZCk7Cisr CisgI2VuZGlmIC8qIENPTU1PTl9MSU5VWF9QUk9DRlNfSCAqLworIyMjIHNyYy9nZGIvZ2Ric2Vy dmVyL0NoYW5nZUxvZwkyMDEyLzAyLzI3IDE2OjE5OjE5CTEuNTU3CisjIyMgc3JjL2dkYi9nZGJz ZXJ2ZXIvQ2hhbmdlTG9nCTIwMTIvMDIvMjcgMTY6MjI6MTUJMS41NTgKKyMjIC0xLDUgKzEsMTAg QEAKKyAyMDEyLTAyLTI3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgorIAorKwkq IGxpbnV4LWxvdy5jIChwaWRfaXNfc3RvcHBlZCk6IERlbGV0ZSwgbW92ZWQgdG8gY29tbW9uLy4K KysJKGxpbnV4X2F0dGFjaF9sd3BfMSk6IEFkanVzdCB0byB1c2UgbGludXhfcHJvY19waWRfaXNf c3RvcHBlZC4KKysKKysyMDEyLTAyLTI3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29t PgorKworIAlQUiBzZXJ2ZXIvOTY4NAorIAkqIGxpbnV4LWxvdy5jIChwaWRfaXNfc3RvcHBlZCk6 IE5ldy4KKyAJKGxpbnV4X2F0dGFjaF9sd3BfMSk6IEhhbmRsZSBhdHRhY2hpbmcgdG8gJ1QgKHN0 b3BwZWQpJyBwcm9jZXNzZXMuCistLS0gc3JjL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAx Mi8wMi8yNyAxNjoxOToxOQkxLjE5NAorKysrIHNyYy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5j CTIwMTIvMDIvMjcgMTY6MjI6MTYJMS4xOTUKK0BAIC01OTgsMzcgKzU5OCw2IEBACisgICByZXR1 cm4gcGlkOworIH0KKyAKKy0vKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0 YXR1cycuCistICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJl IHJlcG9ydGVkIGFzIGZhbHNlLiAgKi8KKy0KKy1zdGF0aWMgaW50CistcGlkX2lzX3N0b3BwZWQg KHBpZF90IHBpZCkKKy17CistICBGSUxFICpzdGF0dXNfZmlsZTsKKy0gIGNoYXIgYnVmWzEwMF07 CistICBpbnQgcmV0dmFsID0gMDsKKy0KKy0gIHNucHJpbnRmIChidWYsIHNpemVvZiAoYnVmKSwg Ii9wcm9jLyVkL3N0YXR1cyIsIChpbnQpIHBpZCk7CistICBzdGF0dXNfZmlsZSA9IGZvcGVuIChi dWYsICJyIik7CistICBpZiAoc3RhdHVzX2ZpbGUgIT0gTlVMTCkKKy0gICAgeworLSAgICAgIGlu dCBoYXZlX3N0YXRlID0gMDsKKy0KKy0gICAgICB3aGlsZSAoZmdldHMgKGJ1Ziwgc2l6ZW9mIChi dWYpLCBzdGF0dXNfZmlsZSkpCistCXsKKy0JICBpZiAoc3RybmNtcCAoYnVmLCAiU3RhdGU6Iiwg NikgPT0gMCkKKy0JICAgIHsKKy0JICAgICAgaGF2ZV9zdGF0ZSA9IDE7CistCSAgICAgIGJyZWFr OworLQkgICAgfQorLQl9CistICAgICAgaWYgKGhhdmVfc3RhdGUgJiYgc3Ryc3RyIChidWYsICJU IChzdG9wcGVkKSIpICE9IE5VTEwpCistCXJldHZhbCA9IDE7CistICAgICAgZmNsb3NlIChzdGF0 dXNfZmlsZSk7CistICAgIH0KKy0gIHJldHVybiByZXR2YWw7CistfQorLQorIC8qIEF0dGFjaCB0 byBhbiBpbmZlcmlvciBwcm9jZXNzLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTY3NCw3ICs2 NDMsNyBAQAorICAgICAgcHRyYWNlIGNhbGwgb24gdGhpcyBMV1AuICAqLworICAgbmV3X2x3cC0+ bXVzdF9zZXRfcHRyYWNlX2ZsYWdzID0gMTsKKyAKKy0gIGlmIChwaWRfaXNfc3RvcHBlZCAobHdw aWQpKQorKyAgaWYgKGxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKGx3cGlkKSkKKyAgICAgewor ICAgICAgIGlmIChkZWJ1Z190aHJlYWRzKQorIAlmcHJpbnRmIChzdGRlcnIsCgpkaWZmIC0tZ2l0 IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtM29mNS5wYXRjaCBiL2dkYi1hdHRhY2gtZmFpbC1y ZWFzb25zLTNvZjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE2 NjE4ZQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTNvZjUucGF0 Y2gKQEAgLTAsMCArMSw1ODMgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDEyLTAzL21zZzAwMTY5Lmh0bWwKK1N1YmplY3Q6IFtwYXRjaCAxLzNdIGF0dGFjaC1mYWls LXJlYXNvbnM6IFJlc2h1ZmZsZSBjb2RlCisKK0hpLAorCit0aGlzIHBhdGNoIGRvZXMgbm90IG1h a2Ugc2Vuc2Ugb24gaXRzIG93biBidXQgaXQgY29udGFpbnMgYWxsIHRoZQordW5pbnRlcmVzdGlu ZyBjb2RlIG1vdmVzIC8gcmVjb25maWd1cmF0aW9ucy4KKworCitUaGFua3MsCitKYW4KKworCitn ZGIvCisyMDEyLTAzLTA2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+CisKKwkqIE1ha2VmaWxlLmluIChsaW51eC1wdHJhY2Uubyk6IE5ldy4KKwkqIGNvbW1vbi9s aW51eC1wcm9jZnMuYyAobGludXhfcHJvY19waWRfaXNfem9tYmllKTogTmV3LAorCWZyb20gbGlu dXgtbmF0LmMuCisJKiBjb21tb24vbGludXgtcHJvY2ZzLmggKGxpbnV4X3Byb2NfcGlkX2lzX3pv bWJpZSk6IE5ldyBkZWNsYXJhdGlvbi4KKwkqIGNvbW1vbi9saW51eC1wdHJhY2UuYzogTmV3IGZp bGUuCisJKiBjb25maWcvYWxwaGEvYWxwaGEtbGludXgubWggKE5BVERFUEZJTEVTKTogQWRkIGxp bnV4LXB0cmFjZS5vLgorCSogY29uZmlnL2FybS9saW51eC5taDogTGlrZXdpc2UuCisJKiBjb25m aWcvaTM4Ni9saW51eC5taDogTGlrZXdpc2UuCisJKiBjb25maWcvaTM4Ni9saW51eDY0Lm1oOiBM aWtld2lzZS4KKwkqIGNvbmZpZy9pYTY0L2xpbnV4Lm1oOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9t MzJyL2xpbnV4Lm1oOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9tNjhrL2xpbnV4Lm1oOiBMaWtld2lz ZS4KKwkqIGNvbmZpZy9taXBzL2xpbnV4Lm1oOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9wYS9saW51 eC5taDogTGlrZXdpc2UuCisJKiBjb25maWcvcG93ZXJwYy9saW51eC5taDogTGlrZXdpc2UuCisJ KiBjb25maWcvcG93ZXJwYy9wcGM2NC1saW51eC5taDogTGlrZXdpc2UuCisJKiBjb25maWcvcG93 ZXJwYy9zcHUtbGludXgubWg6IExpa2V3aXNlLgorCSogY29uZmlnL3MzOTAvczM5MC5taDogTGlr ZXdpc2UuCisJKiBjb25maWcvc3BhcmMvbGludXgubWg6IExpa2V3aXNlLgorCSogY29uZmlnL3Nw YXJjL2xpbnV4NjQubWg6IExpa2V3aXNlLgorCSogY29uZmlnL3h0ZW5zYS9saW51eC5taDogTGlr ZXdpc2UuCisJKiBsaW51eC1uYXQuYyAobGludXhfbHdwX2lzX3pvbWJpZSk6IFJlbW92ZSwgbW92 ZSBpdCB0bworCWNvbW1vbi9saW51eC1wcm9jZnMuYy4KKwkod2FpdF9sd3ApOiBSZW5hbWUgbGlu dXhfbHdwX2lzX3pvbWJpZSB0byBsaW51eF9wcm9jX3BpZF9pc196b21iaWUuCisKK2dkYi9nZGJz ZXJ2ZXIvCisyMDEyLTAzLTA2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+CisKKwkqIE1ha2VmaWxlLmluIChsaW51eC1wdHJhY2Uubyk6IE5ldy4KKwkqIGNvbmZp Z3VyZS5zcnYgKGFybSotKi1saW51eCosIGJmaW4tKi0qbGludXgqLCBjcmlzdjMyLSotbGludXgq KQorCShjcmlzLSotbGludXgqLCBpWzM0NTY3XTg2LSotbGludXgqLCBpYTY0LSotbGludXgqLCBt MzJyKi0qLWxpbnV4KikKKwkobTY4Ki0qLWxpbnV4KiwgbTY4Ki0qLXVjbGludXgqLCBtaXBzKi0q LWxpbnV4KiwgcG93ZXJwYyotKi1saW51eCopCisJKHMzOTAqLSotbGludXgqLCBzaCotKi1saW51 eCosIHNwYXJjKi0qLWxpbnV4KiwgdGljNngtKi11Y2xpbnV4KQorCSh4ODZfNjQtKi1saW51eCos IHh0ZW5zYSotKi1saW51eCopOiBBZGQgbGludXgtcHRyYWNlLm8gdG8gU1JWX1RHVE9CSgorCW9m IHRoZXNlIHRhcmdldHMuCisJKiBsaW51eC1sb3cuYyAobGludXhfYXR0YWNoX2x3cF8xKTogUmVt b3ZlIHJlZHVuZGVudCBlbHNlIGNsYXVzZS4KKworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAv Z2RiL01ha2VmaWxlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmln L2dkYi9NYWtlZmlsZS5pbgkyMDEyLTAzLTA2IDA3OjM5OjQxLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL01ha2VmaWxlLmluCTIwMTItMDMtMDYgMDc6Mzk6NTAu NzcxNzEzMTI4ICswMTAwCitAQCAtMTk2OCw2ICsxOTY4LDEwIEBAIGxpbnV4LXByb2Nmcy5vOiAk KHNyY2RpcikvY29tbW9uL2xpbnV4LXAKKyAJJChDT01QSUxFKSAkKHNyY2RpcikvY29tbW9uL2xp bnV4LXByb2Nmcy5jCisgCSQoUE9TVENPTVBJTEUpCisgCisrbGludXgtcHRyYWNlLm86ICQoc3Jj ZGlyKS9jb21tb24vbGludXgtcHRyYWNlLmMKKysJJChDT01QSUxFKSAkKHNyY2RpcikvY29tbW9u L2xpbnV4LXB0cmFjZS5jCisrCSQoUE9TVENPTVBJTEUpCisrCisgIworICMgZ2RiL3R1aS8gZGVw ZW5kZW5jaWVzCisgIworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbW1vbi9saW51 eC1wcm9jZnMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIv Y29tbW9uL2xpbnV4LXByb2Nmcy5jCTIwMTItMDMtMDYgMDc6Mzk6NDEuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5jCTIwMTIt MDMtMDYgMDc6Mzk6NTAuNzcxNzEzMTI4ICswMTAwCitAQCAtODQsMyArODQsMzQgQEAgbGludXhf cHJvY19waWRfaXNfc3RvcHBlZCAocGlkX3QgcGlkKQorICAgICB9CisgICByZXR1cm4gcmV0dmFs OworIH0KKysKKysvKiBTZWUgbGludXgtcHJvY2ZzLmggZGVjbGFyYXRpb24uICAqLworKworK2lu dAorK2xpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAocGlkX3QgcGlkKQorK3sKKysgIGNoYXIgYnVm ZmVyWzEwMF07CisrICBGSUxFICpwcm9jZmlsZTsKKysgIGludCByZXR2YWw7CisrICBpbnQgaGF2 ZV9zdGF0ZTsKKysKKysgIHhzbnByaW50ZiAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlciksICIvcHJv Yy8lZC9zdGF0dXMiLCAoaW50KSBwaWQpOworKyAgcHJvY2ZpbGUgPSBmb3BlbiAoYnVmZmVyLCAi ciIpOworKyAgaWYgKHByb2NmaWxlID09IE5VTEwpCisrICAgIHsKKysgICAgICB3YXJuaW5nIChf KCJ1bmFibGUgdG8gb3BlbiAvcHJvYyBmaWxlICclcyciKSwgYnVmZmVyKTsKKysgICAgICByZXR1 cm4gMDsKKysgICAgfQorKworKyAgaGF2ZV9zdGF0ZSA9IDA7CisrICB3aGlsZSAoZmdldHMgKGJ1 ZmZlciwgc2l6ZW9mIChidWZmZXIpLCBwcm9jZmlsZSkgIT0gTlVMTCkKKysgICAgaWYgKHN0cm5j bXAgKGJ1ZmZlciwgIlN0YXRlOiIsIDYpID09IDApCisrICAgICAgeworKwloYXZlX3N0YXRlID0g MTsKKysJYnJlYWs7CisrICAgICAgfQorKyAgcmV0dmFsID0gKGhhdmVfc3RhdGUKKysJICAgICYm IHN0cmNtcCAoYnVmZmVyLCAiU3RhdGU6XHRaICh6b21iaWUpXG4iKSA9PSAwKTsKKysgIGZjbG9z ZSAocHJvY2ZpbGUpOworKyAgcmV0dXJuIHJldHZhbDsKKyt9CitJbmRleDogZ2RiLTcuNC41MC4y MDEyMDEyMC9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5oCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu NC41MC4yMDEyMDEyMC5vcmlnL2dkYi9jb21tb24vbGludXgtcHJvY2ZzLmgJMjAxMi0wMy0wNiAw NzozOTo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb21t b24vbGludXgtcHJvY2ZzLmgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzE3MTMxMjggKzAxMDAKK0BA IC0zMSw0ICszMSw4IEBAIGV4dGVybiBpbnQgbGludXhfcHJvY19nZXRfdGdpZCAoaW50IGx3cGkK KyAKKyBleHRlcm4gaW50IGxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKHBpZF90IHBpZCk7Cisg CisrLyogUmV0dXJuIG5vbi16ZXJvIGlmIFBJRCBpcyBhIHpvbWJpZS4gICovCisrCisrZXh0ZXJu IGludCBsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBpZF90IHBpZCk7CisrCisgI2VuZGlmIC8q IENPTU1PTl9MSU5VWF9QUk9DRlNfSCAqLworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2Ri L2NvbW1vbi9saW51eC1wdHJhY2UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2Ri L2NvbW1vbi9saW51eC1wdHJhY2UuYwkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3MTcxMzEyOCArMDEw MAorQEAgLTAsMCArMSwyNiBAQAorKy8qIExpbnV4LXNwZWNpZmljIHB0cmFjZSBtYW5pcHVsYXRp b24gcm91dGluZXMuCisrICAgQ29weXJpZ2h0IChDKSAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisr ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmZGVmIEdEQlNFUlZFUgor KyNpbmNsdWRlICJzZXJ2ZXIuaCIKKysjZWxzZQorKyNpbmNsdWRlICJkZWZzLmgiCisrI2luY2x1 ZGUgImdkYl9zdHJpbmcuaCIKKysjZW5kaWYKKysKKysjaW5jbHVkZSAibGludXgtcHRyYWNlLmgi CitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2FscGhhL2FscGhhLWxpbnV4 Lm1oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmlnL2dkYi9jb25maWcv YWxwaGEvYWxwaGEtbGludXgubWgJMjAxMi0wMS0xMCAxNzozMDo0NC4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvYWxwaGEvYWxwaGEtbGludXgubWgJ MjAxMi0wMy0wNiAwNzozOTo1MC43NzE3MTMxMjggKzAxMDAKK0BAIC0yLDcgKzIsNyBAQAorIE5B VF9GSUxFPSBjb25maWcvbm0tbGludXguaAorIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gYWxw aGEtbGludXgtbmF0Lm8gXAorIAlmb3JrLWNoaWxkLm8gcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhy ZWFkLWRiLm8gXAorLQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGlu dXgtcHJvY2ZzLm8KKysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxp bnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mt c2VydmljZS5saXN0CisgCisgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBu ZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIw L2dkYi9jb25maWcvYXJtL2xpbnV4Lm1oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEy MDEyMC5vcmlnL2dkYi9jb25maWcvYXJtL2xpbnV4Lm1oCTIwMTEtMDgtMjQgMTQ6MDc6MjUuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2FybS9saW51 eC5taAkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3MjcxMzEyNSArMDEwMAorQEAgLTMsNyArMyw3IEBA CisgTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5oCisgTkFUREVQRklMRVM9IGluZi1wdHJhY2Uu byBmb3JrLWNoaWxkLm8gYXJtLWxpbnV4LW5hdC5vIFwKKyAJcHJvYy1zZXJ2aWNlLm8gbGludXgt dGhyZWFkLWRiLm8gXAorLQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8g bGludXgtcHJvY2ZzLm8KKysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5v IGxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3By b2Mtc2VydmljZS5saXN0CisgCisgTE9BRExJQkVTPSAtbGRsICQoUkRZTkFNSUMpCitJbmRleDog Z2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2kzODYvbGludXgubWgKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCTIw MTItMDMtMDYgMDc6Mzk6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEy MC9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzI3MTMxMjUg KzAxMDAKK0BAIC00LDcgKzQsNyBAQCBOQVRfRklMRT0gbm0tbGludXguaAorIE5BVERFUEZJTEVT PSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKKyAJaTM4Ni1uYXQubyBpMzg2LWxpbnV4LW5h dC5vIFwKKyAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAorLQlsaW51eC1uYXQu byBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8KKysJbGludXgtbmF0 Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFj ZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgIyBUaGUg ZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBp biB0aGUKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvaTM4Ni9saW51eDY0 Lm1oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmlnL2dkYi9jb25maWcv aTM4Ni9saW51eDY0Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NDEuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDEyLTAzLTA2 IDA3OjM5OjUwLjc3MjcxMzEyNSArMDEwMAorQEAgLTMsNyArMyw3IEBAIE5BVERFUEZJTEVTPSBp bmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKKyAJaTM4Ni1uYXQubyBhbWQ2NC1uYXQubyBhbWQ2 NC1saW51eC1uYXQubyBcCisgCWxpbnV4LW5hdC5vIGxpbnV4LW9zZGF0YS5vIFwKKyAJcHJvYy1z ZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gbGludXgtZm9yay5vIFwKKy0JbGludXgtcHJvY2Zz Lm8KKysJbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8KKyBOQVRfRklMRT0gbm0tbGludXg2 NC5oCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCitJbmRleDog Z2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2lhNjQvbGludXgubWgKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9pYTY0L2xpbnV4Lm1oCTIw MTItMDEtMTAgMTc6MzA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEy MC9nZGIvY29uZmlnL2lhNjQvbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzI3MTMxMjUg KzAxMDAKK0BAIC01LDcgKzUsNyBAQCBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hp bGQubyBcCisgCWNvcmUtcmVnc2V0Lm8gaWE2NC1saW51eC1uYXQubyBcCisgCXByb2Mtc2Vydmlj ZS5vIGxpbnV4LXRocmVhZC1kYi5vIFwKKyAJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGlu dXgtZm9yay5vIFwKKy0JbGludXgtcHJvY2ZzLm8KKysJbGludXgtcHJvY2ZzLm8gbGludXgtcHRy YWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyBMT0FE TElCRVMgPSAtbGRsICQoUkRZTkFNSUMpCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIv Y29uZmlnL20zMnIvbGludXgubWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIw Lm9yaWcvZ2RiL2NvbmZpZy9tMzJyL2xpbnV4Lm1oCTIwMTItMDEtMTAgMTc6MzA6NDQuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL20zMnIvbGludXgu bWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzM3MTMxMjIgKzAxMDAKK0BAIC0zLDcgKzMsNyBAQAor IE5BVF9GSUxFPSBjb25maWcvbm0tbGludXguaAorIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8g Zm9yay1jaGlsZC5vCQkJCVwKKyAJbTMyci1saW51eC1uYXQubyBwcm9jLXNlcnZpY2UubyBsaW51 eC10aHJlYWQtZGIubwlcCistCWxpbnV4LW5hdC5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWZvcmsu byBsaW51eC1wcm9jZnMubworKwlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3Jr Lm8gbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2Rpcikv cHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyBMT0FETElCRVM9IC1sZGwgJChSRFlOQU1JQykKK0luZGV4 OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvbTY4ay9saW51eC5taAorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL202OGsvbGludXgubWgJ MjAxMi0wMS0xMCAxNzozMDo0NS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIw MTIwL2dkYi9jb25maWcvbTY4ay9saW51eC5taAkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3MzcxMzEy MiArMDEwMAorQEAgLTQsNyArNCw3IEBAIE5BVF9GSUxFPSBjb25maWcvbm0tbGludXguaAorIE5B VERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKKyAJbTY4a2xpbnV4LW5hdC5v IFwKKyAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAorLQlsaW51eC1uYXQubyBs aW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8KKysJbGludXgtbmF0Lm8g bGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5v CisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgIyBUaGUgZHlu YW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0 aGUKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvbWlwcy9saW51eC5taAor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL21pcHMv bGludXgubWgJMjAxMS0wOC0yNCAxNDowNzoyNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40 LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvbWlwcy9saW51eC5taAkyMDEyLTAzLTA2IDA3OjM5OjUw Ljc3MzcxMzEyMiArMDEwMAorQEAgLTMsNyArMyw3IEBAIE5BVF9GSUxFPSBjb25maWcvbm0tbGlu dXguaAorIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIG1pcHMtbGludXgt bmF0Lm8gXAorIAlsaW51eC10aHJlYWQtZGIubyBwcm9jLXNlcnZpY2UubyBcCisgCWxpbnV4LW5h dC5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWZvcmsubyBcCistCWxpbnV4LXByb2Nmcy5vCisrCWxp bnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mt c2VydmljZS5saXN0CisgCisgTE9BRExJQkVTID0gLWxkbCAkKFJEWU5BTUlDKQorSW5kZXg6IGdk Yi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZpZy9wYS9saW51eC5taAorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL3BhL2xpbnV4Lm1oCTIwMTItMDEt MTAgMTc6MzA6NDUuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIv Y29uZmlnL3BhL2xpbnV4Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NTAuNzczNzEzMTIyICswMTAwCitA QCAtMyw3ICszLDcgQEAgTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5oCisgTkFUREVQRklMRVM9 IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAorIAlocHBhLWxpbnV4LW5hdC5vIHByb2Mtc2Vy dmljZS5vIGxpbnV4LXRocmVhZC1kYi5vIFwKKyAJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8g bGludXgtZm9yay5vIFwKKy0JbGludXgtcHJvY2ZzLm8KKysJbGludXgtcHJvY2ZzLm8gbGludXgt cHRyYWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyBM T0FETElCRVMgPSAtbGRsICQoUkRZTkFNSUMpCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9n ZGIvY29uZmlnL3Bvd2VycGMvbGludXgubWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIw MTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9wb3dlcnBjL2xpbnV4Lm1oCTIwMTEtMDgtMjQgMTQ6MDc6 MjcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL3Bv d2VycGMvbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzM3MTMxMjIgKzAxMDAKK0BAIC01 LDcgKzUsNyBAQCBYTV9DTElCUz0KKyBOQVRfRklMRT0gY29uZmlnL25tLWxpbnV4LmgKKyBOQVRE RVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCisgCXBwYy1saW51eC1uYXQubyBw cm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCistCWxpbnV4LW5hdC5vIGxpbnV4LW9z ZGF0YS5vIGxpbnV4LWZvcmsubyBsaW51eC1wcm9jZnMubworKwlsaW51eC1uYXQubyBsaW51eC1v c2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8KKyBOQVRf Q0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyBMT0FETElCRVMgPSAtbGRs ICQoUkRZTkFNSUMpCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL3Bvd2Vy cGMvcHBjNjQtbGludXgubWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9y aWcvZ2RiL2NvbmZpZy9wb3dlcnBjL3BwYzY0LWxpbnV4Lm1oCTIwMTEtMDgtMjQgMTQ6MDc6Mjcu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL3Bvd2Vy cGMvcHBjNjQtbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzQ3MTMxMTggKzAxMDAKK0BA IC01LDcgKzUsNyBAQCBYTV9DTElCUz0KKyBOQVRfRklMRT0gY29uZmlnL25tLWxpbnV4LmgKKyBO QVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCisgCXBwYy1saW51eC1uYXQu byBwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCistCWxpbnV4LW5hdC5vIGxpbnV4 LW9zZGF0YS5vIGxpbnV4LWZvcmsubyBsaW51eC1wcm9jZnMubworKwlsaW51eC1uYXQubyBsaW51 eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8KKyBO QVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyAjIFRoZSBQb3dlclBD IGhhcyBzZXZlcmUgbGltaXRhdGlvbnMgb24gVE9DIHNpemUsIGFuZCB1c2VzIHRoZW0gZXZlbgor SW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZpZy9wb3dlcnBjL3NwdS1saW51eC5t aAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL3Bv d2VycGMvc3B1LWxpbnV4Lm1oCTIwMTEtMDgtMjQgMTQ6MDc6MjcuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL3Bvd2VycGMvc3B1LWxpbnV4Lm1oCTIw MTItMDMtMDYgMDc6Mzk6NTAuNzc0NzEzMTE4ICswMTAwCitAQCAtNCw1ICs0LDUgQEAKKyAjIFBQ VSBzaWRlIG9mIHRoZSBDZWxsIEJFIGFuZCBkZWJ1Z2dpbmcgdGhlIFNQVSBzaWRlLgorIAorIE5B VERFUEZJTEVTID0gc3B1LWxpbnV4LW5hdC5vIGZvcmstY2hpbGQubyBpbmYtcHRyYWNlLm8gXAor LQkgICAgICBsaW51eC1wcm9jZnMubworKwkgICAgICBsaW51eC1wcm9jZnMubyBsaW51eC1wdHJh Y2UubworIAorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZpZy9zMzkwL3MzOTAu bWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9z MzkwL3MzOTAubWgJMjAxMi0wMS0wNSAxODowNzowNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvczM5MC9zMzkwLm1oCTIwMTItMDMtMDYgMDc6Mzk6 NTAuNzc0NzEzMTE4ICswMTAwCitAQCAtMiw2ICsyLDYgQEAKKyBOQVRfRklMRT0gY29uZmlnL25t LWxpbnV4LmgKKyBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBzMzkwLW5h dC5vIFwKKyAJbGludXgtdGhyZWFkLWRiLm8gcHJvYy1zZXJ2aWNlLm8gXAorLQlsaW51eC1uYXQu byBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8KKysJbGludXgtbmF0 Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFj ZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgTE9BRExJQkVT ID0gLWxkbCAkKFJEWU5BTUlDKQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZp Zy9zcGFyYy9saW51eC5taAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3Jp Zy9nZGIvY29uZmlnL3NwYXJjL2xpbnV4Lm1oCTIwMTItMDEtMTAgMTc6MzA6NDkuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL3NwYXJjL2xpbnV4Lm1o CTIwMTItMDMtMDYgMDc6Mzk6NTAuNzc0NzEzMTE4ICswMTAwCitAQCAtNCw3ICs0LDcgQEAgTkFU REVQRklMRVM9IHNwYXJjLW5hdC5vIHNwYXJjLWxpbnV4LW5hdAorIAljb3JlLXJlZ3NldC5vIGZv cmstY2hpbGQubyBpbmYtcHRyYWNlLm8gXAorIAlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQt ZGIubyBcCisgCWxpbnV4LW5hdC5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWZvcmsubyBcCistCWxp bnV4LXByb2Nmcy5vCisrCWxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBT ID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgIyBUaGUgZHluYW1pY2FsbHkgbG9h ZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKK0luZGV4OiBn ZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvc3BhcmMvbGludXg2NC5taAorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL3NwYXJjL2xpbnV4NjQu bWgJMjAxMi0wMS0xMCAxNzozMDo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIw MTIwMTIwL2dkYi9jb25maWcvc3BhcmMvbGludXg2NC5taAkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3 NTcxMzExNCArMDEwMAorQEAgLTUsNyArNSw3IEBAIE5BVERFUEZJTEVTPSBzcGFyYy1uYXQubyBz cGFyYzY0LW5hdC5vIHMKKyAJZm9yay1jaGlsZC5vIGluZi1wdHJhY2UubyBcCisgCXByb2Mtc2Vy dmljZS5vIGxpbnV4LXRocmVhZC1kYi5vIFwKKyAJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8g bGludXgtZm9yay5vIFwKKy0JbGludXgtcHJvY2ZzLm8KKysJbGludXgtcHJvY2ZzLm8gbGludXgt cHRyYWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyAj IFRoZSBkeW5hbWljYWxseSBsb2FkZWQgbGlidGhyZWFkX2RiIG5lZWRzIGFjY2VzcyB0byBzeW1i b2xzIGluIHRoZQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZpZy94dGVuc2Ev bGludXgubWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2Nv bmZpZy94dGVuc2EvbGludXgubWgJMjAxMS0wOC0yNCAxNDowNzoyNy4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcveHRlbnNhL2xpbnV4Lm1oCTIwMTIt MDMtMDYgMDc6Mzk6NTAuNzc1NzEzMTE0ICswMTAwCitAQCAtNCw3ICs0LDcgQEAgTkFUX0ZJTEU9 IGNvbmZpZy9ubS1saW51eC5oCisgCisgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNo aWxkLm8geHRlbnNhLWxpbnV4LW5hdC5vIFwKKyAJbGludXgtdGhyZWFkLWRiLm8gcHJvYy1zZXJ2 aWNlLm8gXAorLQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgt cHJvY2ZzLm8KKysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxpbnV4 LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2Vy dmljZS5saXN0CisgCisgTE9BRExJQkVTID0gLWxkbCAkKFJEWU5BTUlDKQorSW5kZXg6IGdkYi03 LjQuNTAuMjAxMjAxMjAvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbgorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCTIwMTIt MDEtMDQgMDk6MTc6MjMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9n ZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCTIwMTItMDMtMDYgMDc6Mzk6NTAuNzc1NzEzMTE0ICsw MTAwCitAQCAtNDA4LDYgKzQwOCw5IEBAIHNpZ25hbHMubzogLi4vY29tbW9uL3NpZ25hbHMuYyAk KHNlcnZlcl8KKyBsaW51eC1wcm9jZnMubzogLi4vY29tbW9uL2xpbnV4LXByb2Nmcy5jICQoc2Vy dmVyX2gpCisgCSQoQ0MpIC1jICQoQ1BQRkxBR1MpICQoSU5URVJOQUxfQ0ZMQUdTKSAkPCAtREdE QlNFUlZFUgorIAorK2xpbnV4LXB0cmFjZS5vOiAuLi9jb21tb24vbGludXgtcHRyYWNlLmMgJChz ZXJ2ZXJfaCkKKysJJChDQykgLWMgJChDUFBGTEFHUykgJChJTlRFUk5BTF9DRkxBR1MpICQ8IC1E R0RCU0VSVkVSCisrCisgY29tbW9uLXV0aWxzLm86IC4uL2NvbW1vbi9jb21tb24tdXRpbHMuYyAk KHNlcnZlcl9oKQorIAkkKENDKSAtYyAkKENQUEZMQUdTKSAkKElOVEVSTkFMX0NGTEFHUykgJDwg LURHREJTRVJWRVIKKyAKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9nZGJzZXJ2ZXIv Y29uZmlndXJlLnNydgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9n ZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5zcnYJMjAxMS0xMi0wNiAxNToxNDo0OS4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLnNy dgkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3NTcxMzExNCArMDEwMAorQEAgLTQ3LDYgKzQ3LDcgQEAg Y2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCXNydl9yZWdvYmo9IiR7c3J2X3JlZ29ian0gYXJtLXdp dGgtdmZwdjMubyIKKyAJCQlzcnZfcmVnb2JqPSIke3Nydl9yZWdvYmp9IGFybS13aXRoLW5lb24u byIKKyAJCQlzcnZfdGd0b2JqPSJsaW51eC1sb3cubyBsaW51eC1vc2RhdGEubyBsaW51eC1hcm0t bG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51 eC1wdHJhY2UubyIKKyAJCQlzcnZfeG1sZmlsZXM9ImFybS13aXRoLWl3bW14dC54bWwiCisgCQkJ c3J2X3htbGZpbGVzPSIke3Nydl94bWxmaWxlc30gYXJtLXdpdGgtdmZwdjIueG1sIgorIAkJCXNy dl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9IGFybS13aXRoLXZmcHYzLnhtbCIKK0BAIC02OSwx NiArNzAsMTkgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCTs7CisgICBiZmluLSotKmxpbnV4 KikJc3J2X3JlZ29iaj1yZWctYmZpbi5vCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGlu dXgtb3NkYXRhLm8gbGludXgtYmZpbi1sb3cubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZfdGd0 b2JqPSIke3Nydl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl9saW51eF91c3JyZWdz PXllcworIAkJCXNydl9saW51eF90aHJlYWRfZGI9eWVzCisgCQkJOzsKKyAgIGNyaXN2MzItKi1s aW51eCopCXNydl9yZWdvYmo9cmVnLWNyaXN2MzIubworIAkJCXNydl90Z3RvYmo9ImxpbnV4LWxv dy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWNyaXN2MzItbG93Lm8gbGludXgtcHJvY2ZzLm8iCisr CQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlzcnZfbGlu dXhfcmVnc2V0cz15ZXMKKyAJCQlzcnZfbGludXhfdGhyZWFkX2RiPXllcworIAkJCTs7CisgICBj cmlzLSotbGludXgqKQlzcnZfcmVnb2JqPXJlZy1jcmlzLm8KKyAJCQlzcnZfdGd0b2JqPSJsaW51 eC1sb3cubyBsaW51eC1vc2RhdGEubyBsaW51eC1jcmlzLWxvdy5vIGxpbnV4LXByb2Nmcy5vIgor KwkJCXNydl90Z3RvYmo9IiR7c3J2X3RndG9ian0gbGludXgtcHRyYWNlLm8iCisgCQkJc3J2X2xp bnV4X3VzcnJlZ3M9eWVzCisgCQkJc3J2X2xpbnV4X3RocmVhZF9kYj15ZXMKKyAJCQk7OworQEAg LTkzLDYgKzk3LDcgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCSAgICBzcnZfeG1sZmlsZXM9 IiR7c3J2X3htbGZpbGVzfSAkc3J2X2FtZDY0X2xpbnV4X3htbGZpbGVzIgorIAkJCWZpCisgCQkJ c3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3NkYXRhLm8gbGludXgteDg2LWxvdy5vIGkz ODYtbG93Lm8gaTM4Ny1mcC5vIGxpbnV4LXByb2Nmcy5vIgorKwkJCXNydl90Z3RvYmo9IiR7c3J2 X3RndG9ian0gbGludXgtcHRyYWNlLm8iCisgCQkJc3J2X2xpbnV4X3VzcnJlZ3M9eWVzCisgCQkJ c3J2X2xpbnV4X3JlZ3NldHM9eWVzCisgCQkJc3J2X2xpbnV4X3RocmVhZF9kYj15ZXMKK0BAIC0x MjQsMTAgKzEyOSwxMiBAQCBjYXNlICIke3RhcmdldH0iIGluCisgCQkJOzsKKyAgIGlhNjQtKi1s aW51eCopCXNydl9yZWdvYmo9cmVnLWlhNjQubworIAkJCXNydl90Z3RvYmo9ImxpbnV4LWxvdy5v IGxpbnV4LW9zZGF0YS5vIGxpbnV4LWlhNjQtbG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2 X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlzcnZfbGludXhfdXNy cmVncz15ZXMKKyAJCQk7OworICAgbTMyciotKi1saW51eCopCXNydl9yZWdvYmo9cmVnLW0zMnIu bworIAkJCXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LW0zMnIt bG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51 eC1wdHJhY2UubyIKKyAJCQlzcnZfbGludXhfdXNycmVncz15ZXMKKyAgCQkJc3J2X2xpbnV4X3Ro cmVhZF9kYj15ZXMKKyAJCQk7OworQEAgLTEzNyw2ICsxNDQsNyBAQCBjYXNlICIke3RhcmdldH0i IGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzcnZfcmVnb2JqPXJlZy1tNjhrLm8KKyAg ICAgICAgICAgICAgICAgICAgICAgICBmaQorIAkJCXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxp bnV4LW9zZGF0YS5vIGxpbnV4LW02OGstbG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3Rn dG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlzcnZfbGludXhfdXNycmVn cz15ZXMKKyAJCQlzcnZfbGludXhfcmVnc2V0cz15ZXMKKyAJCQlzcnZfbGludXhfdGhyZWFkX2Ri PXllcworQEAgLTE0NywxMiArMTU1LDE0IEBAIGNhc2UgIiR7dGFyZ2V0fSIgaW4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNydl9yZWdvYmo9cmVnLW02OGsubworICAgICAgICAgICAgICAg ICAgICAgICAgIGZpCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3NkYXRhLm8g bGludXgtbTY4ay1sb3cubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZfdGd0b2JqPSIke3Nydl90 Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl9saW51eF91c3JyZWdzPXllcworIAkJCXNy dl9saW51eF9yZWdzZXRzPXllcworIAkJCXNydl9saW51eF90aHJlYWRfZGI9eWVzCisgCQkJOzsK KyAgIG1pcHMqLSotbGludXgqKQlzcnZfcmVnb2JqPSJtaXBzLWxpbnV4Lm8gbWlwczY0LWxpbnV4 Lm8iCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3NkYXRhLm8gbGludXgtbWlw cy1sb3cubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZfdGd0b2JqPSIke3Nydl90Z3RvYmp9IGxp bnV4LXB0cmFjZS5vIgorIAkJCXNydl94bWxmaWxlcz0ibWlwcy1saW51eC54bWwiCisgCQkJc3J2 X3htbGZpbGVzPSIke3Nydl94bWxmaWxlc30gbWlwcy1jcHUueG1sIgorIAkJCXNydl94bWxmaWxl cz0iJHtzcnZfeG1sZmlsZXN9IG1pcHMtY3AwLnhtbCIKK0BAIC0xODEsNiArMTkxLDcgQEAgY2Fz ZSAiJHt0YXJnZXR9IiBpbgorIAkJCXNydl9yZWdvYmo9IiR7c3J2X3JlZ29ian0gcG93ZXJwYy1p c2EyMDUtYWx0aXZlYzY0bC5vIgorIAkJCXNydl9yZWdvYmo9IiR7c3J2X3JlZ29ian0gcG93ZXJw Yy1pc2EyMDUtdnN4NjRsLm8iCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3Nk YXRhLm8gbGludXgtcHBjLWxvdy5vIGxpbnV4LXByb2Nmcy5vIgorKwkJCXNydl90Z3RvYmo9IiR7 c3J2X3RndG9ian0gbGludXgtcHRyYWNlLm8iCisgCQkJc3J2X3htbGZpbGVzPSJyczYwMDAvcG93 ZXJwYy0zMmwueG1sIgorIAkJCXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9IHJzNjAwMC9w b3dlcnBjLWFsdGl2ZWMzMmwueG1sIgorIAkJCXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9 IHJzNjAwMC9wb3dlcnBjLWNlbGwzMmwueG1sIgorQEAgLTIyMyw2ICsyMzQsNyBAQCBjYXNlICIk e3RhcmdldH0iIGluCisgCQkJc3J2X3JlZ29iaj0iJHtzcnZfcmVnb2JqfSBzMzkweC1saW51eDY0 djEubyIKKyAJCQlzcnZfcmVnb2JqPSIke3Nydl9yZWdvYmp9IHMzOTB4LWxpbnV4NjR2Mi5vIgor IAkJCXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LXMzOTAtbG93 Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1w dHJhY2UubyIKKyAJCQlzcnZfeG1sZmlsZXM9InMzOTAtbGludXgzMi54bWwiCisgCQkJc3J2X3ht bGZpbGVzPSIke3Nydl94bWxmaWxlc30gczM5MC1saW51eDMydjEueG1sIgorIAkJCXNydl94bWxm aWxlcz0iJHtzcnZfeG1sZmlsZXN9IHMzOTAtbGludXgzMnYyLnhtbCIKK0BAIC0yNDMsMTIgKzI1 NSwxNCBAQCBjYXNlICIke3RhcmdldH0iIGluCisgCQkJOzsKKyAgIHNoKi0qLWxpbnV4KikJCXNy dl9yZWdvYmo9cmVnLXNoLm8KKyAJCQlzcnZfdGd0b2JqPSJsaW51eC1sb3cubyBsaW51eC1vc2Rh dGEubyBsaW51eC1zaC1sb3cubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZfdGd0b2JqPSIke3Ny dl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl9saW51eF91c3JyZWdzPXllcworIAkJ CXNydl9saW51eF9yZWdzZXRzPXllcworIAkJCXNydl9saW51eF90aHJlYWRfZGI9eWVzCisgCQkJ OzsKKyAgIHNwYXJjKi0qLWxpbnV4KikJc3J2X3JlZ29iaj1yZWctc3BhcmM2NC5vCisgCQkJc3J2 X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3NkYXRhLm8gbGludXgtc3BhcmMtbG93Lm8gbGlu dXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2Uu byIKKyAJCQlzcnZfbGludXhfcmVnc2V0cz15ZXMKKyAJCQlzcnZfbGludXhfdGhyZWFkX2RiPXll cworIAkJCTs7CitAQCAtMjY1LDEyICsyNzksMTQgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJ CXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9IHRpYzZ4LWdwLnhtbCIKKyAJCQlzcnZfeG1s ZmlsZXM9IiR7c3J2X3htbGZpbGVzfSB0aWM2eC1jNnhwLnhtbCIKKyAgIAkJCXNydl90Z3RvYmo9 ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LXRpYzZ4LWxvdy5vIGxpbnV4LXByb2Nm cy5vIgorKwkJCXNydl90Z3RvYmo9IiR7c3J2X3RndG9ian0gbGludXgtcHRyYWNlLm8iCisgCQkJ c3J2X2xpbnV4X3JlZ3NldHM9eWVzCisgCQkJc3J2X2xpbnV4X3VzcnJlZ3M9eWVzCisgCQkJc3J2 X2xpbnV4X3RocmVhZF9kYj15ZXMKKyAJCQk7OworICAgeDg2XzY0LSotbGludXgqKQlzcnZfcmVn b2JqPSIkc3J2X2FtZDY0X2xpbnV4X3JlZ29iaiAkc3J2X2kzODZfbGludXhfcmVnb2JqIgorIAkJ CXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LXg4Ni1sb3cubyBp Mzg2LWxvdy5vIGkzODctZnAubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZfdGd0b2JqPSIke3Ny dl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl94bWxmaWxlcz0iJHNydl9pMzg2X2xp bnV4X3htbGZpbGVzICRzcnZfYW1kNjRfbGludXhfeG1sZmlsZXMiCisgCQkJc3J2X2xpbnV4X3Vz cnJlZ3M9eWVzICMgVGhpcyBpcyBmb3IgaTM4NiBwcm9ncy4KKyAJCQlzcnZfbGludXhfcmVnc2V0 cz15ZXMKK0BAIC0yODUsNiArMzAxLDcgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAorICAgeHRl bnNhKi0qLWxpbnV4KikJc3J2X3JlZ29iaj1yZWcteHRlbnNhLm8KKyAJCQlzcnZfdGd0b2JqPSJs aW51eC1sb3cubyBsaW51eC1vc2RhdGEubyBsaW51eC14dGVuc2EtbG93Lm8gbGludXgtcHJvY2Zz Lm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlz cnZfbGludXhfcmVnc2V0cz15ZXMKKyAJCQk7OworICAgKikJCQllY2hvICJFcnJvcjogdGFyZ2V0 IG5vdCBzdXBwb3J0ZWQgYnkgZ2Ric2VydmVyLiIKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIw L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIw MTIwMTIwLm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDEyLTAzLTA2IDA3OjM5OjQx LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2dkYnNlcnZlci9s aW51eC1sb3cuYwkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3NjcxMzExMSArMDEwMAorQEAgLTYzMCwx MCArNjMwLDEwIEBAIGxpbnV4X2F0dGFjaF9sd3BfMSAodW5zaWduZWQgbG9uZyBsd3BpZCwKKyAJ ICBmZmx1c2ggKHN0ZGVycik7CisgCSAgcmV0dXJuOworIAl9CistICAgICAgZWxzZQorLQkvKiBJ ZiB3ZSBmYWlsIHRvIGF0dGFjaCB0byBhIHByb2Nlc3MsIHJlcG9ydCBhbiBlcnJvci4gICovCist CWVycm9yICgiQ2Fubm90IGF0dGFjaCB0byBsd3AgJWxkOiAlcyAoJWQpXG4iLCBsd3BpZCwKKy0J ICAgICAgIHN0cmVycm9yIChlcnJubyksIGVycm5vKTsKKysKKysgICAgICAvKiBJZiB3ZSBmYWls IHRvIGF0dGFjaCB0byBhIHByb2Nlc3MsIHJlcG9ydCBhbiBlcnJvci4gICovCisrICAgICAgZXJy b3IgKCJDYW5ub3QgYXR0YWNoIHRvIGx3cCAlbGQ6ICVzICglZClcbiIsIGx3cGlkLAorKwkgICAg IHN0cmVycm9yIChlcnJubyksIGVycm5vKTsKKyAgICAgfQorIAorICAgaWYgKGluaXRpYWwpCitJ bmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvbGludXgtbmF0LmMKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTItMDMtMDYgMDc6 Mzk6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvbGludXgt bmF0LmMJMjAxMi0wMy0wNiAwNzozOTo1MC43Nzc3MTMxMDggKzAxMDAKK0BAIC0yNDY0LDM3ICsy NDY0LDYgQEAgbGludXhfaGFuZGxlX2V4dGVuZGVkX3dhaXQgKHN0cnVjdCBsd3BfaQorIAkJICBf KCJ1bmtub3duIHB0cmFjZSBldmVudCAlZCIpLCBldmVudCk7CisgfQorIAorLS8qIFJldHVybiBu b24temVybyBpZiBMV1AgaXMgYSB6b21iaWUuICAqLworLQorLXN0YXRpYyBpbnQKKy1saW51eF9s d3BfaXNfem9tYmllIChsb25nIGx3cCkKKy17CistICBjaGFyIGJ1ZmZlcltNQVhQQVRITEVOXTsK Ky0gIEZJTEUgKnByb2NmaWxlOworLSAgaW50IHJldHZhbDsKKy0gIGludCBoYXZlX3N0YXRlOwor LQorLSAgeHNucHJpbnRmIChidWZmZXIsIHNpemVvZiAoYnVmZmVyKSwgIi9wcm9jLyVsZC9zdGF0 dXMiLCBsd3ApOworLSAgcHJvY2ZpbGUgPSBmb3BlbiAoYnVmZmVyLCAiciIpOworLSAgaWYgKHBy b2NmaWxlID09IE5VTEwpCistICAgIHsKKy0gICAgICB3YXJuaW5nIChfKCJ1bmFibGUgdG8gb3Bl biAvcHJvYyBmaWxlICclcyciKSwgYnVmZmVyKTsKKy0gICAgICByZXR1cm4gMDsKKy0gICAgfQor LQorLSAgaGF2ZV9zdGF0ZSA9IDA7CistICB3aGlsZSAoZmdldHMgKGJ1ZmZlciwgc2l6ZW9mIChi dWZmZXIpLCBwcm9jZmlsZSkgIT0gTlVMTCkKKy0gICAgaWYgKHN0cm5jbXAgKGJ1ZmZlciwgIlN0 YXRlOiIsIDYpID09IDApCistICAgICAgeworLQloYXZlX3N0YXRlID0gMTsKKy0JYnJlYWs7Cist ICAgICAgfQorLSAgcmV0dmFsID0gKGhhdmVfc3RhdGUKKy0JICAgICYmIHN0cmNtcCAoYnVmZmVy LCAiU3RhdGU6XHRaICh6b21iaWUpXG4iKSA9PSAwKTsKKy0gIGZjbG9zZSAocHJvY2ZpbGUpOwor LSAgcmV0dXJuIHJldHZhbDsKKy19CistCisgLyogV2FpdCBmb3IgTFAgdG8gc3RvcC4gIFJldHVy bnMgdGhlIHdhaXQgc3RhdHVzLCBvciAwIGlmIHRoZSBMV1AgaGFzCisgICAgZXhpdGVkLiAgKi8K KyAKK0BAIC0yNTQ4LDEwICsyNTE3LDEwIEBAIHdhaXRfbHdwIChzdHJ1Y3QgbHdwX2luZm8gKmxw KQorIAorIAkgVGhpcyBpcyByYWN5LCB3aGF0IGlmIHRoZSB0Z2wgYmVjb21lcyBhIHpvbWJpZSBy aWdodCBhZnRlciB3ZSBjaGVjaz8KKyAJIFRoZXJlZm9yZSBhbHdheXMgdXNlIFdOT0hBTkcgd2l0 aCBzaWdzdXNwZW5kIC0gaXQgaXMgZXF1aXZhbGVudCB0bworLQkgd2FpdGluZyB3YWl0cGlkIGJ1 dCB0aGUgbGludXhfbHdwX2lzX3pvbWJpZSBpcyBzYWZlIHRoaXMgd2F5LiAgKi8KKysJIHdhaXRp bmcgd2FpdHBpZCBidXQgbGludXhfcHJvY19waWRfaXNfem9tYmllIGlzIHNhZmUgdGhpcyB3YXku ICAqLworIAorICAgICAgIGlmIChHRVRfUElEIChscC0+cHRpZCkgPT0gR0VUX0xXUCAobHAtPnB0 aWQpCistCSAgJiYgbGludXhfbHdwX2lzX3pvbWJpZSAoR0VUX0xXUCAobHAtPnB0aWQpKSkKKysJ ICAmJiBsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKEdFVF9MV1AgKGxwLT5wdGlkKSkpCisgCXsK KyAJICB0aHJlYWRfZGVhZCA9IDE7CisgCSAgaWYgKGRlYnVnX2xpbnV4X25hdCkKK0BAIC0zNDMx LDcgKzM0MDAsNyBAQCBjaGVja196b21iaWVfbGVhZGVycyAodm9pZCkKKyAJICAvKiBDaGVjayBp ZiB0aGVyZSBhcmUgb3RoZXIgdGhyZWFkcyBpbiB0aGUgZ3JvdXAsIGFzIHdlIG1heQorIAkgICAg IGhhdmUgcmFjZWQgd2l0aCB0aGUgaW5mZXJpb3Igc2ltcGx5IGV4aXRpbmcuICAqLworIAkgICYm IG51bV9sd3BzIChpbmYtPnBpZCkgPiAxCistCSAgJiYgbGludXhfbHdwX2lzX3pvbWJpZSAoaW5m LT5waWQpKQorKwkgICYmIGxpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAoaW5mLT5waWQpKQorIAl7 CisgCSAgaWYgKGRlYnVnX2xpbnV4X25hdCkKKyAJICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2Ri X3N0ZGxvZywKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy00b2Y1LnBhdGNo IGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNG9mNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41NjRlZTcyCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWF0dGFjaC1m YWlsLXJlYXNvbnMtNG9mNS5wYXRjaApAQCAtMCwwICsxLDQwMiBAQAoraHR0cDovL3NvdXJjZXdh cmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDMvbXNnMDAxNzAuaHRtbAorU3ViamVjdDogW3Bh dGNoIDIvM10gYXR0YWNoLWZhaWwtcmVhc29uczogU2F5IG1vcmUgdGhhbiBwdHJhY2U6IE9wZXJh dGlvbiBub3QgcGVybWl0dGVkLgorCitIaSwKKworVGhlcmUgaXMgYSBjb21tb24gcXVlc3Rpb24g b24gI2dkYiBhbmQgYWxzbyBhbHJlYWR5IGRlc2NyaWJlZDoKKworaHR0cDovL3NvdXJjZXdhcmUu b3JnL2dkYi93aWtpL0ZBUQorMTYuIEdldHRpbmcgYW4gaW50ZXJuYWwgZXJyb3Igb3Igb3RoZXIg ZXJyb3Igd2hpbGUgYXR0YWNoaW5nIHRvIHByb2Nlc3NlcyBvbgorICAgIEdOVS9MaW51eAorLT4K KyAgICBUcnkgc2V0ZW5mb3JjZSAwIChTRUxpbnV4KSBvciBlY2hvIDAgPi9wcm9jL3N5cy9rZXJu ZWwveWFtYS9wdHJhY2Vfc2NvcGUKKyAgICAocHRyYWNlIHNjb3BlKSB0byBkaXNhYmxlIHN5c3Rl bSBzZWN1cml0eSBwcm90ZWN0aW9ucy4gCisKK2FuZCBoZXJlIGlzIGEgcGF0Y2ggdG8gZ2l2ZSBz b21lIGV4cGxhbmF0aW9ucy4KKworTW9yZSByZWFzb25zIGNhbiBiZSBnaXZlbiBsYXRlciwgdGhp cyBpcyBhIGNvbnRhaW5lciBmb3IgdGhlbSBhbmQgaXQgY29udGFpbnMKK3NvbWUgdXNlZnVsIG9u ZXMgYWxyZWFkeS4KKworTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9 LWZlZG9yYTE3LWxpbnV4LWdudSBhbmQgd2l0aAorbm9uLWV4dGVuZGVkIGdkYnNlcnZlci4KKwor VGhlIHRlc3RjYXNlIGRvZXMgbm90IHRlc3QgZ2Ric2VydmVyLCBzb21laG93IGl0IGlzIGEgYml0 IGRpZmZpY3VsdCB3aXRob3V0CitoYXZpbmcgc2hlbGwgb24gdGFyZ2V0LgorCitBdHRhY2hpbmcg dG8gcHJvY2VzcyAyNzQ4MAorcHRyYWNlOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZC4KKyhnZGIp IF8KKy0+CitBdHRhY2hpbmcgdG8gcHJvY2VzcyAyNzQ4MAord2FybmluZzogcHJvY2VzcyAyNzQ4 MCBpcyBhbHJlYWR5IHRyYWNlZCBieSBwcm9jZXNzIDI5MDExCitwdHJhY2U6IE9wZXJhdGlvbiBu b3QgcGVybWl0dGVkLgorKGdkYikgXworCisKK1RoYW5rcywKK0phbgorCisKK2dkYi8KKzIwMTIt MDMtMDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSog Y29tbW9uL2xpbnV4LXByb2Nmcy5jIChsaW51eF9wcm9jX2dldF9pbnQpOiBOZXcsIGZyb20KKwls aW51eF9wcm9jX2dldF90Z2lkLgorCShsaW51eF9wcm9jX2dldF90Z2lkKTogT25seSBjYWxsIGxp bnV4X3Byb2NfZ2V0X2ludC4KKwkobGludXhfcHJvY19nZXRfdHJhY2VycGlkKTogTmV3LgorCShs aW51eF9wcm9jX3BpZF9oYXNfc3RhdGUpOiBOZXcsIGZyb20gbGludXhfcHJvY19waWRfaXNfem9t YmllLgorCShsaW51eF9wcm9jX3BpZF9pc19zdG9wcGVkLCBsaW51eF9wcm9jX3BpZF9pc196b21i aWUpOiBPbmx5IGNhbGwKKwlsaW51eF9wcm9jX3BpZF9oYXNfc3RhdGUuCisJKiBjb21tb24vbGlu dXgtcHJvY2ZzLmggKGxpbnV4X3Byb2NfZ2V0X3RyYWNlcnBpZCk6IE5ldyBkZWNsYXJhdGlvbi4K KwkqIGNvbW1vbi9saW51eC1wdHJhY2UuYzogSW5jbHVkZSBsaW51eC1wcm9jZnMuaC4KKwkobGlu dXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyk6IE5ldy4KKwkqIGNvbW1vbi9saW51eC1wdHJhY2Uu aCAobGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyk6IE5ldyBkZWNsYXJhdGlvbi4KKwkqIGxp bnV4LW5hdC5jOiBJbmNsdWRlIGV4Y2VwdGlvbnMuaCBhbmQgbGludXgtcHRyYWNlLmguCisJKGxp bnV4X25hdF9hdHRhY2gpOiBOZXcgdmFyaWFibGUgZXguICBXcmFwIHRvX2F0dGFjaCBieSBUUllf Q0FUQ0ggYW5kCisJY2FsbCBsaW51eF9wdHJhY2VfYXR0YWNoX3dhcm5pbmdzLgorCitnZGIvZ2Ri c2VydmVyLworMjAxMi0wMy0wNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgorCisJKiBsaW51eC1sb3cuYyAobGludXhfYXR0YWNoX2x3cF8xKTogQ2FsbCBsaW51 eF9wdHJhY2VfYXR0YWNoX3dhcm5pbmdzLgorCitnZGIvdGVzdHN1aXRlLworMjAxMi0wMy0wNiAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuYmFz ZS9hdHRhY2gtdHdpY2UuYzogTmV3IGZpbGVzLgorCSogZ2RiLmJhc2UvYXR0YWNoLXR3aWNlLmV4 cDogTmV3IGZpbGVzLgorCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29tbW9uL2xp bnV4LXByb2Nmcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmlnL2dk Yi9jb21tb24vbGludXgtcHJvY2ZzLmMJMjAxMi0wMy0wNiAwNzozNDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb21tb24vbGludXgtcHJvY2ZzLmMJMjAx Mi0wMy0wNiAwNzozNDoxNy41ODY4MTY0NDkgKzAxMDAKK0BAIC0yOCw2NyArMjgsNTQgQEAKKyAv KiBSZXR1cm4gdGhlIFRHSUQgb2YgTFdQSUQgZnJvbSAvcHJvYy9waWQvc3RhdHVzLiAgUmV0dXJu cyAtMSBpZiBub3QKKyAgICBmb3VuZC4gICovCisgCistaW50CistbGludXhfcHJvY19nZXRfdGdp ZCAoaW50IGx3cGlkKQorK3N0YXRpYyBpbnQKKytsaW51eF9wcm9jX2dldF9pbnQgKGludCBsd3Bp ZCwgY29uc3QgY2hhciAqZmllbGQpCisgeworKyAgc2l6ZV90IGZpZWxkX2xlbiA9IHN0cmxlbiAo ZmllbGQpOworICAgRklMRSAqc3RhdHVzX2ZpbGU7CisgICBjaGFyIGJ1ZlsxMDBdOworLSAgaW50 IHRnaWQgPSAtMTsKKysgIGludCByZXR2YWwgPSAtMTsKKyAKKyAgIHNucHJpbnRmIChidWYsIHNp emVvZiAoYnVmKSwgIi9wcm9jLyVkL3N0YXR1cyIsIChpbnQpIGx3cGlkKTsKKyAgIHN0YXR1c19m aWxlID0gZm9wZW4gKGJ1ZiwgInIiKTsKKy0gIGlmIChzdGF0dXNfZmlsZSAhPSBOVUxMKQorKyAg aWYgKHN0YXR1c19maWxlID09IE5VTEwpCisgICAgIHsKKy0gICAgICB3aGlsZSAoZmdldHMgKGJ1 Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCistCXsKKy0JICBpZiAoc3RybmNtcCAoYnVm LCAiVGdpZDoiLCA1KSA9PSAwKQorLQkgICAgeworLQkgICAgICB0Z2lkID0gc3RydG91bCAoYnVm ICsgc3RybGVuICgiVGdpZDoiKSwgTlVMTCwgMTApOworLQkgICAgICBicmVhazsKKy0JICAgIH0K Ky0JfQorLQorLSAgICAgIGZjbG9zZSAoc3RhdHVzX2ZpbGUpOworKyAgICAgIHdhcm5pbmcgKF8o InVuYWJsZSB0byBvcGVuIC9wcm9jIGZpbGUgJyVzJyIpLCBidWYpOworKyAgICAgIHJldHVybiAt MTsKKyAgICAgfQorIAorLSAgcmV0dXJuIHRnaWQ7CisrICB3aGlsZSAoZmdldHMgKGJ1Ziwgc2l6 ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCisrICAgIGlmIChzdHJuY21wIChidWYsIGZpZWxkLCBm aWVsZF9sZW4pID09IDAgJiYgYnVmW2ZpZWxkX2xlbl0gPT0gJzonKQorKyAgICAgIHsKKysJcmV0 dmFsID0gc3RydG9sICgmYnVmW2ZpZWxkX2xlbiArIDFdLCBOVUxMLCAxMCk7CisrCWJyZWFrOwor KyAgICAgIH0KKysKKysgIGZjbG9zZSAoc3RhdHVzX2ZpbGUpOworKyAgcmV0dXJuIHJldHZhbDsK KyB9CisgCistLyogRGV0ZWN0IGBUIChzdG9wcGVkKScgaW4gYC9wcm9jL1BJRC9zdGF0dXMnLgor LSAgIE90aGVyIHN0YXRlcyBpbmNsdWRpbmcgYFQgKHRyYWNpbmcgc3RvcCknIGFyZSByZXBvcnRl ZCBhcyBmYWxzZS4gICovCisrLyogUmV0dXJuIHRoZSBUR0lEIG9mIExXUElEIGZyb20gL3Byb2Mv cGlkL3N0YXR1cy4gIFJldHVybnMgLTEgaWYgbm90CisrICAgZm91bmQuICAqLworIAorIGludAor LWxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKHBpZF90IHBpZCkKKytsaW51eF9wcm9jX2dldF90 Z2lkIChpbnQgbHdwaWQpCisgeworLSAgRklMRSAqc3RhdHVzX2ZpbGU7CistICBjaGFyIGJ1Zlsx MDBdOworLSAgaW50IHJldHZhbCA9IDA7CisrICByZXR1cm4gbGludXhfcHJvY19nZXRfaW50IChs d3BpZCwgIlRnaWQiKTsKKyt9CisgCistICBzbnByaW50ZiAoYnVmLCBzaXplb2YgKGJ1ZiksICIv cHJvYy8lZC9zdGF0dXMiLCAoaW50KSBwaWQpOworLSAgc3RhdHVzX2ZpbGUgPSBmb3BlbiAoYnVm LCAiciIpOworLSAgaWYgKHN0YXR1c19maWxlICE9IE5VTEwpCistICAgIHsKKy0gICAgICBpbnQg aGF2ZV9zdGF0ZSA9IDA7CisrLyogU2VlIGxpbnV4LXByb2Nmcy5oLiAgKi8KKyAKKy0gICAgICB3 aGlsZSAoZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCistCXsKKy0JICBp ZiAoc3RybmNtcCAoYnVmLCAiU3RhdGU6IiwgNikgPT0gMCkKKy0JICAgIHsKKy0JICAgICAgaGF2 ZV9zdGF0ZSA9IDE7CistCSAgICAgIGJyZWFrOworLQkgICAgfQorLQl9CistICAgICAgaWYgKGhh dmVfc3RhdGUgJiYgc3Ryc3RyIChidWYsICJUIChzdG9wcGVkKSIpICE9IE5VTEwpCistCXJldHZh bCA9IDE7CistICAgICAgZmNsb3NlIChzdGF0dXNfZmlsZSk7CistICAgIH0KKy0gIHJldHVybiBy ZXR2YWw7CisrcGlkX3QKKytsaW51eF9wcm9jX2dldF90cmFjZXJwaWQgKGludCBsd3BpZCkKKyt7 CisrICByZXR1cm4gbGludXhfcHJvY19nZXRfaW50IChsd3BpZCwgIlRyYWNlclBpZCIpOworIH0K KyAKKy0vKiBTZWUgbGludXgtcHJvY2ZzLmggZGVjbGFyYXRpb24uICAqLworKy8qIFJldHVybiBu b24temVybyBpZiAnU3RhdGUnIG9mIC9wcm9jL1BJRC9zdGF0dXMgY29udGFpbnMgU1RBVEUuICAq LworIAorLWludAorLWxpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAocGlkX3QgcGlkKQorK3N0YXRp YyBpbnQKKytsaW51eF9wcm9jX3BpZF9oYXNfc3RhdGUgKHBpZF90IHBpZCwgY29uc3QgY2hhciAq c3RhdGUpCisgeworICAgY2hhciBidWZmZXJbMTAwXTsKKyAgIEZJTEUgKnByb2NmaWxlOworQEAg LTExMCw4ICs5NywyNCBAQCBsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBpZF90IHBpZCkKKyAJ aGF2ZV9zdGF0ZSA9IDE7CisgCWJyZWFrOworICAgICAgIH0KKy0gIHJldHZhbCA9IChoYXZlX3N0 YXRlCistCSAgICAmJiBzdHJjbXAgKGJ1ZmZlciwgIlN0YXRlOlx0WiAoem9tYmllKVxuIikgPT0g MCk7CisrICByZXR2YWwgPSAoaGF2ZV9zdGF0ZSAmJiBzdHJzdHIgKGJ1ZmZlciwgc3RhdGUpICE9 IE5VTEwpOworICAgZmNsb3NlIChwcm9jZmlsZSk7CisgICByZXR1cm4gcmV0dmFsOworIH0KKysK KysvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1cycuCisrICAgT3Ro ZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJlcG9ydGVkIGFzIGZh bHNlLiAgKi8KKysKKytpbnQKKytsaW51eF9wcm9jX3BpZF9pc19zdG9wcGVkIChwaWRfdCBwaWQp CisreworKyAgcmV0dXJuIGxpbnV4X3Byb2NfcGlkX2hhc19zdGF0ZSAocGlkLCAiVCAoc3RvcHBl ZCkiKTsKKyt9CisrCisrLyogU2VlIGxpbnV4LXByb2Nmcy5oIGRlY2xhcmF0aW9uLiAgKi8KKysK KytpbnQKKytsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBpZF90IHBpZCkKKyt7CisrICByZXR1 cm4gbGludXhfcHJvY19waWRfaGFzX3N0YXRlIChwaWQsICJaICh6b21iaWUpIik7CisrfQorSW5k ZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbW1vbi9saW51eC1wcm9jZnMuaAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29tbW9uL2xpbnV4LXByb2Nm cy5oCTIwMTItMDMtMDYgMDc6MzQ6MDAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4y MDEyMDEyMC9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5oCTIwMTItMDMtMDYgMDc6MzQ6MTcuNTg2 ODE2NDQ5ICswMTAwCitAQCAtMjYsNiArMjYsMTEgQEAKKyAKKyBleHRlcm4gaW50IGxpbnV4X3By b2NfZ2V0X3RnaWQgKGludCBsd3BpZCk7CisgCisrLyogUmV0dXJuIHRoZSBUcmFjZXJQaWQgb2Yg TFdQSUQgZnJvbSAvcHJvYy9waWQvc3RhdHVzLiAgUmV0dXJucyAtMSBpZiBub3QKKysgICBmb3Vu ZC4gICovCisrCisrZXh0ZXJuIHBpZF90IGxpbnV4X3Byb2NfZ2V0X3RyYWNlcnBpZCAoaW50IGx3 cGlkKTsKKysKKyAvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1cycu CisgICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJlcG9y dGVkIGFzIGZhbHNlLiAgKi8KKyAKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb21t b24vbGludXgtcHRyYWNlLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9y aWcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwkyMDEyLTAzLTA2IDA3OjM0OjAwLjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2Uu YwkyMDEyLTAzLTA2IDA3OjM0OjE3LjU4NjgxNjQ0OSArMDEwMAorQEAgLTI0LDMgKzI0LDIxIEBA CisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxpbnV4LXB0cmFjZS5oIgorKyNpbmNsdWRlICJsaW51 eC1wcm9jZnMuaCIKKysKKysvKiBQcmludCBhbGwgcG9zc2libGUgcmVhc29ucyB3ZSBjb3VsZCBm YWlsIHRvIGF0dGFjaCBQSUQuICAqLworKworK3ZvaWQKKytsaW51eF9wdHJhY2VfYXR0YWNoX3dh cm5pbmdzIChwaWRfdCBwaWQpCisreworKyAgcGlkX3QgdHJhY2VycGlkOworKworKyAgdHJhY2Vy cGlkID0gbGludXhfcHJvY19nZXRfdHJhY2VycGlkIChwaWQpOworKyAgaWYgKHRyYWNlcnBpZCA+ IDApCisrICAgIHdhcm5pbmcgKF8oInByb2Nlc3MgJWQgaXMgYWxyZWFkeSB0cmFjZWQgYnkgcHJv Y2VzcyAlZCIpLCAoaW50KSBwaWQsCisrCSAgICAgKGludCkgdHJhY2VycGlkKTsKKysKKysgIGlm IChsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBpZCkpCisrICAgIHdhcm5pbmcgKF8oInByb2Nl c3MgJWQgaXMgYSB6b21iaWUgLSB0aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJtaW5hdGVkIiks CisrCSAgICAgKGludCkgcGlkKTsKKyt9CitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIv Y29tbW9uL2xpbnV4LXB0cmFjZS5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEy MC5vcmlnL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxMi0wMS0wNCAwOToxNzoxOC4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb21tb24vbGludXgtcHRy YWNlLmgJMjAxMi0wMy0wNiAwNzozNDoxNy41ODY4MTY0NDkgKzAxMDAKK0BAIC02NSw0ICs2NSw2 IEBACisgI2RlZmluZSBfX1dBTEwgICAgICAgICAgMHg0MDAwMDAwMCAvKiBXYWl0IGZvciBhbnkg Y2hpbGQuICAqLworICNlbmRpZgorIAorK2V4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9hdHRhY2hf d2FybmluZ3MgKHBpZF90IHBpZCk7CisrCisgI2VuZGlmIC8qIENPTU1PTl9MSU5VWF9QVFJBQ0Vf SCAqLworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvZ2Ric2VydmVy L2xpbnV4LWxvdy5jCTIwMTItMDMtMDYgMDc6MzQ6MDAuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuNC41MC4yMDEyMDEyMC9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTItMDMtMDYgMDc6 MzQ6MTcuNTg3ODE2NDQ2ICswMTAwCitAQCAtNjMyLDYgKzYzMiw3IEBAIGxpbnV4X2F0dGFjaF9s d3BfMSAodW5zaWduZWQgbG9uZyBsd3BpZCwKKyAJfQorIAorICAgICAgIC8qIElmIHdlIGZhaWwg dG8gYXR0YWNoIHRvIGEgcHJvY2VzcywgcmVwb3J0IGFuIGVycm9yLiAgKi8KKysgICAgICBsaW51 eF9wdHJhY2VfYXR0YWNoX3dhcm5pbmdzIChsd3BpZCk7CisgICAgICAgZXJyb3IgKCJDYW5ub3Qg YXR0YWNoIHRvIGx3cCAlbGQ6ICVzICglZClcbiIsIGx3cGlkLAorIAkgICAgIHN0cmVycm9yIChl cnJubyksIGVycm5vKTsKKyAgICAgfQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2xp bnV4LW5hdC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmlnL2dkYi9s aW51eC1uYXQuYwkyMDEyLTAzLTA2IDA3OjM0OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03 LjQuNTAuMjAxMjAxMjAvZ2RiL2xpbnV4LW5hdC5jCTIwMTItMDMtMDYgMDc6MzQ6MjkuODYwNzc1 ODAzICswMTAwCitAQCAtNTksNiArNTksOCBAQAorICNpbmNsdWRlICJzb2xpYi5oIgorICNpbmNs dWRlICJsaW51eC1vc2RhdGEuaCIKKyAjaW5jbHVkZSAiY2xpL2NsaS11dGlscy5oIgorKyNpbmNs dWRlICJleGNlcHRpb25zLmgiCisrI2luY2x1ZGUgImxpbnV4LXB0cmFjZS5oIgorIAorICNpZm5k ZWYgU1BVRlNfTUFHSUMKKyAjZGVmaW5lIFNQVUZTX01BR0lDIDB4MjNjOWI2NGUKK0BAIC0xNjEz LDExICsxNjE1LDIyIEBAIGxpbnV4X25hdF9hdHRhY2ggKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMK KyAgIHN0cnVjdCBsd3BfaW5mbyAqbHA7CisgICBpbnQgc3RhdHVzOworICAgcHRpZF90IHB0aWQ7 CisrICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKKyAKKyAgIC8qIE1ha2Ugc3Vy ZSB3ZSByZXBvcnQgYWxsIHNpZ25hbHMgZHVyaW5nIGF0dGFjaC4gICovCisgICBsaW51eF9uYXRf cGFzc19zaWduYWxzICgwLCBOVUxMKTsKKyAKKy0gIGxpbnV4X29wcy0+dG9fYXR0YWNoIChvcHMs IGFyZ3MsIGZyb21fdHR5KTsKKysgIFRSWV9DQVRDSCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9SKQor KyAgICB7CisrICAgICAgbGludXhfb3BzLT50b19hdHRhY2ggKG9wcywgYXJncywgZnJvbV90dHkp OworKyAgICB9CisrICBpZiAoZXgucmVhc29uIDwgMCkKKysgICAgeworKyAgICAgIHBpZF90IHBp ZCA9IHBhcnNlX3BpZF90b19hdHRhY2ggKGFyZ3MpOworKworKyAgICAgIGxpbnV4X3B0cmFjZV9h dHRhY2hfd2FybmluZ3MgKHBpZCk7CisrICAgICAgdGhyb3dfZXhjZXB0aW9uIChleCk7CisrICAg IH0KKyAKKyAgIC8qIFRoZSBwdHJhY2UgYmFzZSB0YXJnZXQgYWRkcyB0aGUgbWFpbiB0aHJlYWQg d2l0aCAocGlkLDAsMCkKKyAgICAgIGZvcm1hdC4gIERlY29yYXRlIGl0IHdpdGggbHdwIGluZm8u ICAqLworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9h dHRhY2gtdHdpY2UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hdHRhY2gtdHdpY2UuYwkyMDEyLTAzLTA2IDA3OjM0OjE3LjU4OTgxNjQ0MCAr MDEwMAorQEAgLTAsMCArMSw0MiBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIs IHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTEtMjAxMiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCisrCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDx1bmlzdGQuaD4K KysjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorKyNpbmNsdWRlIDxlcnJuby5oPgorKworK2ludAor K21haW4gKHZvaWQpCisreworKyAgbG9uZyBsOworKworKyAgc3dpdGNoIChmb3JrICgpKQorKyAg eworKyAgICBjYXNlIC0xOgorKyAgICAgIHBlcnJvciAoImZvcmsiKTsKKysgICAgICBleGl0ICgx KTsKKysgICAgY2FzZSAwOgorKyAgICAgIGVycm5vID0gMDsKKysgICAgICBwdHJhY2UgKFBUUkFD RV9BVFRBQ0gsIGdldHBwaWQgKCksIE5VTEwsIE5VTEwpOworKyAgICAgIGlmIChlcnJubyAhPSAw KQorKwlwZXJyb3IgKCJQVFJBQ0VfQVRUQUNIIik7CisrICAgICAgYnJlYWs7CisrICB9CisrICBz bGVlcCAoNjAwKTsKKysgIHJldHVybiAwOworK30KK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLXR3aWNlLmV4cAorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03 LjQuNTAuMjAxMjAxMjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2gtdHdpY2UuZXhwCTIw MTItMDMtMDYgMDc6MzQ6MTcuNTg5ODE2NDQwICswMTAwCitAQCAtMCwwICsxLDUyIEBACisrIyBD b3B5cmlnaHQgKEMpIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIE1hbmlwdWxhdGlvbiB3aXRoIFBJRCBv biB0YXJnZXQgaXMgbm90IHN1cHBvcnRlZC4KKytpZiBbaXNfcmVtb3RlIHRhcmdldF0gdGhlbiB7 CisrICAgIHJldHVybiAwCisrfQorKworK3NldCB0ZXN0ZmlsZSBhdHRhY2gtdHdpY2UKKytzZXQg ZXhlY3V0YWJsZSAke3Rlc3RmaWxlfQorK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0v JHtleGVjdXRhYmxlfQorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0u ZXhwICRleGVjdXRhYmxlXSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK3NldCB0ZXN0cGlk IFtldmFsIGV4ZWMgJGJpbmZpbGUgJl0KKytleGVjIHNsZWVwIDIKKysKKytzZXQgcGFyZW50cGlk IDAKKysKKytzZXQgdGVzdCAiYXR0YWNoIgorK2dkYl90ZXN0X211bHRpcGxlICJhdHRhY2ggJHRl c3RwaWQiICR0ZXN0IHsKKysgICAgLXJlICJBdHRhY2hpbmcgdG8gcHJvZ3JhbTogXFteXHJcblxd KiwgcHJvY2VzcyAkdGVzdHBpZFxyXG4uKndhcm5pbmc6IHByb2Nlc3MgJHRlc3RwaWQgaXMgYWxy ZWFkeSB0cmFjZWQgYnkgcHJvY2VzcyAoXFswLTlcXSspXHJcbi4qcHRyYWNlOiBPcGVyYXRpb24g bm90IHBlcm1pdHRlZFxcLlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCXNldCBwYXJlbnRwaWQgJGV4 cGVjdF9vdXQoMSxzdHJpbmcpCisrCXBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIkF0dGFj aGluZyB0byBwcm9ncmFtOiBcW15cclxuXF0qLCBwcm9jZXNzICR0ZXN0cGlkXHJcbi4qcHRyYWNl OiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZFxcLlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCWZhaWwg JHRlc3QKKysgICAgfQorKyAgICAtcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCXhmYWlsICR0 ZXN0CisrICAgIH0KKyt9CisrCisrZXZhbCBleGVjIHBzIHhmdworK2lmIHskcGFyZW50cGlkICE9 IDB9IHsKKysgIGV2YWwgZXhlYyBraWxsIC05ICRwYXJlbnRwaWQKKyt9CisrZXZhbCBleGVjIGtp bGwgLTkgJHRlc3RwaWQKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1 LnBhdGNoIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTRhNDRmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWF0 dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaApAQCAtMCwwICsxLDIwOSBAQAoraHR0cDovL3Nv dXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDMvbXNnMDAxNzEuaHRtbAorU3ViamVj dDogW3BhdGNoIDMvM10gYXR0YWNoLWZhaWwtcmVhc29uczogU0VMaW51eCBkZW55X3B0cmFjZQor CitIaSwKKworYW5kIGhlcmUgaXMgdGhlIGxhc3QgYml0IGZvciBuZXcgU0VMaW51eCAnZGVueV9w dHJhY2UnOgorCWh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Nzg2 ODc4CisKK0FzIGV2ZW4gUFRSQUNFX1RSQUNFTUUgZmFpbHMgaW4gc3VjaCBjYXNlIGl0IG5lZWRz IHRvIGluc3RhbGwgaG9vayBmb3IgZXZlbgordGhhdCBldmVudC4KKworCitUaGFua3MsCitKYW4K KworCitnZGIvCisyMDEyLTAzLTA2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+CisKKwkqIGNvbW1vbi9saW51eC1wdHJhY2UuYyBbSEFWRV9TRUxJTlVYX1NFTElO VVhfSF06IGluY2x1ZGUKKwlzZWxpbnV4L3NlbGludXguaC4KKwkobGludXhfcHRyYWNlX2F0dGFj aF93YXJuaW5ncyk6IENhbGwgbGludXhfcHRyYWNlX2NyZWF0ZV93YXJuaW5ncy4KKwkobGludXhf cHRyYWNlX2NyZWF0ZV93YXJuaW5ncyk6IE5ldy4KKwkqIGNvbW1vbi9saW51eC1wdHJhY2UuaCAo bGludXhfcHRyYWNlX2NyZWF0ZV93YXJuaW5ncyk6IE5ldyBkZWNsYXJhdGlvbi4KKwkqIGNvbmZp Zy5pbjogUmVnZW5lcmF0ZS4KKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KKwkqIGNvbmZpZ3Vy ZS5hYzogQ2hlY2sgc2VsaW51eC9zZWxpbnV4LmggYW5kIHRoZSBzZWxpbnV4IGxpYnJhcnkuCisJ KiBpbmYtcHRyYWNlLmMgKGluZl9wdHJhY2VfbWUpOiBDaGVjayB0aGUgcHRyYWNlIHJlc3VsdC4K KwkqIGxpbnV4LW5hdC5jIChsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yKTogTmV3IHZhcmlhYmxl IGV4LiAgV3JhcAorCXRvX2NyZWF0ZV9pbmZlcmlvciBpbnRvIFRSWV9DQVRDSCwgY2FsbCBsaW51 eF9wdHJhY2VfY3JlYXRlX3dhcm5pbmdzLgorCitnZGIvZ2Ric2VydmVyLworCSogY29uZmlnLmlu OiBSZWdlbmVyYXRlLgorCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgorCSogY29uZmlndXJlLmFj OiBDaGVjayBzZWxpbnV4L3NlbGludXguaCBhbmQgdGhlIHNlbGludXggbGlicmFyeS4KKwkqIGxp bnV4LWxvdy5jIChsaW51eF90cmFjZW1lKTogTmV3IGZ1bmN0aW9uLgorCShsaW51eF9jcmVhdGVf aW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19jaGlsZCk6IENhbGwgaXQgaW5zdGVhZCBvZgorCWRp cmVjdCBwdHJhY2UuCisKKy0tLSBhL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMKKysrKyBiL2dk Yi9jb21tb24vbGludXgtcHRyYWNlLmMKK0BAIC0yNiw2ICsyNiwxMCBAQAorICNpbmNsdWRlICJs aW51eC1wdHJhY2UuaCIKKyAjaW5jbHVkZSAibGludXgtcHJvY2ZzLmgiCisgCisrI2lmZGVmIEhB VkVfU0VMSU5VWF9TRUxJTlVYX0gKKysjIGluY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgorKyNl bmRpZiAvKiBIQVZFX1NFTElOVVhfU0VMSU5VWF9IICovCisrCisgLyogUHJpbnQgYWxsIHBvc3Np YmxlIHJlYXNvbnMgd2UgY291bGQgZmFpbCB0byBhdHRhY2ggUElELiAgKi8KKyAKKyB2b2lkCitA QCAtNDEsNCArNDUsMjEgQEAgbGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyAocGlkX3QgcGlk KQorICAgaWYgKGxpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAocGlkKSkKKyAgICAgd2FybmluZyAo XygicHJvY2VzcyAlZCBpcyBhIHpvbWJpZSAtIHRoZSBwcm9jZXNzIGhhcyBhbHJlYWR5IHRlcm1p bmF0ZWQiKSwKKyAJICAgICAoaW50KSBwaWQpOworKworKyAgbGludXhfcHRyYWNlX2NyZWF0ZV93 YXJuaW5ncyAoKTsKKyt9CisrCisrLyogUHJpbnQgYWxsIHBvc3NpYmxlIHJlYXNvbnMgd2UgY291 bGQgZmFpbCB0byBjcmVhdGUgYSB0cmFjZWQgcHJvY2Vzcy4gICovCisrCisrdm9pZAorK2xpbnV4 X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKHZvaWQpCisreworKyNpZmRlZiBIQVZFX0xJQlNFTElO VVgKKysgIC8qIC0xIGlzIHJldHVybmVkIGZvciBlcnJvcnMsIDAgaWYgaXQgaGFzIG5vIGVmZmVj dCwgMSBpZiBQVFJBQ0VfQVRUQUNIIGlzCisrICAgICBmb3JiaWRkZW4uICAqLworKyAgaWYgKHNl Y3VyaXR5X2dldF9ib29sZWFuX2FjdGl2ZSAoImRlbnlfcHRyYWNlIikgPT0gMSkKKysgICAgd2Fy bmluZyAoXygidGhlIFNFTGludXggYm9vbGVhbiAnZGVueV9wdHJhY2UnIGlzIGVuYWJsZWQsICIK KysJICAgICAgICJ5b3UgY2FuIGRpc2FibGUgdGhpcyBwcm9jZXNzIGF0dGFjaCBwcm90ZWN0aW9u IGJ5OiAiCisrCSAgICAgICAiKGdkYikgc2hlbGwgc3VkbyBzZXRzZWJvb2wgZGVueV9wdHJhY2U9 MCIpKTsKKysjZW5kaWYgLyogSEFWRV9MSUJTRUxJTlVYICovCisgfQorLS0tIGEvZ2RiL2NvbW1v bi9saW51eC1wdHJhY2UuaAorKysrIGIvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuaAorQEAgLTY2 LDUgKzY2LDYgQEAKKyAjZW5kaWYKKyAKKyBleHRlcm4gdm9pZCBsaW51eF9wdHJhY2VfYXR0YWNo X3dhcm5pbmdzIChwaWRfdCBwaWQpOworK2V4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9jcmVhdGVf d2FybmluZ3MgKHZvaWQpOworIAorICNlbmRpZiAvKiBDT01NT05fTElOVVhfUFRSQUNFX0ggKi8K Ky0tLSBhL2dkYi9jb25maWd1cmUuYWMKKysrKyBiL2dkYi9jb25maWd1cmUuYWMKK0BAIC0xNzQ4 LDYgKzE3NDgsMTAgQEAgdGhlbgorIAkgICAgICBbRGVmaW5lIGlmIHlvdSBzdXBwb3J0IHRoZSBw ZXJzb25hbGl0eSBzeXNjYWxsLl0pCisgZmkKKyAKKytkbmwgQ2hlY2sgc2VjdXJpdHlfZ2V0X2Jv b2xlYW5fYWN0aXZlIGF2YWlsYWJpbGl0eS4KKytBQ19DSEVDS19IRUFERVJTKHNlbGludXgvc2Vs aW51eC5oKQorK0FDX0NIRUNLX0xJQihzZWxpbnV4LCBzZWN1cml0eV9nZXRfYm9vbGVhbl9hY3Rp dmUpCisrCisgZG5sIEhhbmRsZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBlbmFibGVk LgorIAorICMgU3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19X SVRIX0RJUiwKKy0tLSBhL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCisrKysgYi9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZS5hYworQEAgLTQxMSw2ICs0MTEsMTAgQEAgaWYgJHdhbnRfaXBhIDsg dGhlbgorICAgIGZpCisgZmkKKyAKKytkbmwgQ2hlY2sgc2VjdXJpdHlfZ2V0X2Jvb2xlYW5fYWN0 aXZlIGF2YWlsYWJpbGl0eS4KKytBQ19DSEVDS19IRUFERVJTKHNlbGludXgvc2VsaW51eC5oKQor K0FDX0NIRUNLX0xJQihzZWxpbnV4LCBzZWN1cml0eV9nZXRfYm9vbGVhbl9hY3RpdmUpCisrCisg QUNfU1VCU1QoR0RCU0VSVkVSX0RFUEZJTEVTKQorIEFDX1NVQlNUKEdEQlNFUlZFUl9MSUJTKQor IEFDX1NVQlNUKFVTRV9USFJFQURfREIpCistLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5j CisrKysgYi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCitAQCAtNTUwLDYgKzU1MCwyNSBAQCBh ZGRfbHdwIChwdGlkX3QgcHRpZCkKKyAgIHJldHVybiBsd3A7CisgfQorIAorKy8qIEV4ZWN1dGUg UFRSQUNFX1RSQUNFTUUgd2l0aCBlcnJvciBjaGVja2luZy4gICovCisrCisrc3RhdGljIHZvaWQK KytsaW51eF90cmFjZW1lIChjb25zdCBjaGFyICpwcm9ncmFtKQorK3sKKysgIGludCBzYXZlX2Vy cm5vOworKworKyAgZXJybm8gPSAwOworKyAgaWYgKHB0cmFjZSAoUFRSQUNFX1RSQUNFTUUsIDAs IE5VTEwsIE5VTEwpID09IDApCisrICAgIHJldHVybjsKKysKKysgIHNhdmVfZXJybm8gPSBlcnJu bzsKKysgIGxpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKCk7CisrICBmcHJpbnRmIChzdGRl cnIsIF8oIkNhbm5vdCB0cmFjZSBjcmVhdGVkIHByb2Nlc3MgJXM6ICVzLlxuIiksIHByb2dyYW0s CisrCSAgIHN0cmVycm9yIChzYXZlX2Vycm5vKSk7CisrICBmZmx1c2ggKHN0ZGVycik7CisrICBf ZXhpdCAoMDE3Nyk7CisrfQorKworIC8qIFN0YXJ0IGFuIGluZmVyaW9yIHByb2Nlc3MgYW5kIHJl dHVybnMgaXRzIHBpZC4KKyAgICBBTExBUkdTIGlzIGEgdmVjdG9yIG9mIHByb2dyYW0tbmFtZSBh bmQgYXJncy4gKi8KKyAKK0BAIC01OTAsNyArNjA5LDcgQEAgbGludXhfY3JlYXRlX2luZmVyaW9y IChjaGFyICpwcm9ncmFtLCBjaGFyICoqYWxsYXJncykKKyAKKyAgIGlmIChwaWQgPT0gMCkKKyAg ICAgeworLSAgICAgIHB0cmFjZSAoUFRSQUNFX1RSQUNFTUUsIDAsIDAsIDApOworKyAgICAgIGxp bnV4X3RyYWNlbWUgKHByb2dyYW0pOworIAorICNpZm5kZWYgX19BTkRST0lEX18gLyogQmlvbmlj IGRvZXNuJ3QgdXNlIFNJR1JUTUlOIHRoZSB3YXkgZ2xpYmMgZG9lcy4gICovCisgICAgICAgc2ln bmFsIChfX1NJR1JUTUlOICsgMSwgU0lHX0RGTCk7CitAQCAtNDM4Niw3ICs0NDA1LDcgQEAgbGlu dXhfdHJhY2Vmb3JrX2dyYW5kY2hpbGQgKHZvaWQgKmFyZykKKyBzdGF0aWMgaW50CisgbGludXhf dHJhY2Vmb3JrX2NoaWxkICh2b2lkICphcmcpCisgeworLSAgcHRyYWNlIChQVFJBQ0VfVFJBQ0VN RSwgMCwgMCwgMCk7CisrICBsaW51eF90cmFjZW1lICgiUFRSQUNFX09fVFJBQ0VGT1JLIHRlc3Qi KTsKKyAgIGtpbGwgKGdldHBpZCAoKSwgU0lHU1RPUCk7CisgCisgI2lmICEoZGVmaW5lZChfX1VD TElCQ19fKSAmJiBkZWZpbmVkKEhBU19OT01NVSkpCistLS0gYS9nZGIvaW5mLXB0cmFjZS5jCisr KysgYi9nZGIvaW5mLXB0cmFjZS5jCitAQCAtMTA1LDcgKzEwNSwxNSBAQCBzdGF0aWMgdm9pZAor IGluZl9wdHJhY2VfbWUgKHZvaWQpCisgeworICAgLyogIlRyYWNlIG1lLCBEci4gTWVtb3J5ISIg ICovCisrICBlcnJubyA9IDA7CisgICBwdHJhY2UgKFBUX1RSQUNFX01FLCAwLCAoUFRSQUNFX1RZ UEVfQVJHMykwLCAwKTsKKysgIGlmIChlcnJubyAhPSAwKQorKyAgICB7CisrICAgICAgZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCBfKCJDYW5ub3QgY3JlYXRlIHByb2Nlc3M6ICVzXG4i KSwKKysJCQkgIHNhZmVfc3RyZXJyb3IgKGVycm5vKSk7CisrICAgICAgZ2RiX2ZsdXNoIChnZGJf c3RkZXJyKTsKKysgICAgICBfZXhpdCAoMDE3Nyk7CisrICAgIH0KKyB9CisgCisgLyogU3RhcnQg YSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlzIHRoZSBmaWxl IHRvCistLS0gYS9nZGIvbGludXgtbmF0LmMKKysrKyBiL2dkYi9saW51eC1uYXQuYworQEAgLTE1 NzAsNiArMTU3MCw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXRf b3BzICpvcHMsCisgI2lmZGVmIEhBVkVfUEVSU09OQUxJVFkKKyAgIGludCBwZXJzb25hbGl0eV9v cmlnID0gMCwgcGVyc29uYWxpdHlfc2V0ID0gMDsKKyAjZW5kaWYgLyogSEFWRV9QRVJTT05BTElU WSAqLworKyAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXg7CisgCisgICAvKiBUaGUg Zm9ya19jaGlsZCBtZWNoYW5pc20gaXMgc3luY2hyb25vdXMgYW5kIGNhbGxzIHRhcmdldF93YWl0 LCBzbworICAgICAgd2UgaGF2ZSB0byBtYXNrIHRoZSBhc3luYyBtb2RlLiAgKi8KK0BAIC0xNTk0 LDcgKzE1OTUsMTAgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldF9v cHMgKm9wcywKKyAgIC8qIE1ha2Ugc3VyZSB3ZSByZXBvcnQgYWxsIHNpZ25hbHMgZHVyaW5nIHN0 YXJ0dXAuICAqLworICAgbGludXhfbmF0X3Bhc3Nfc2lnbmFscyAoMCwgTlVMTCk7CisgCistICBs aW51eF9vcHMtPnRvX2NyZWF0ZV9pbmZlcmlvciAob3BzLCBleGVjX2ZpbGUsIGFsbGFyZ3MsIGVu diwgZnJvbV90dHkpOworKyAgVFJZX0NBVENIIChleCwgUkVUVVJOX01BU0tfRVJST1IpCisrICAg IHsKKysgICAgICBsaW51eF9vcHMtPnRvX2NyZWF0ZV9pbmZlcmlvciAob3BzLCBleGVjX2ZpbGUs IGFsbGFyZ3MsIGVudiwgZnJvbV90dHkpOworKyAgICB9CisgCisgI2lmZGVmIEhBVkVfUEVSU09O QUxJVFkKKyAgIGlmIChwZXJzb25hbGl0eV9zZXQpCitAQCAtMTYwNiw2ICsxNjEwLDEyIEBAIGxp bnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCisgCQkgc2Fm ZV9zdHJlcnJvciAoZXJybm8pKTsKKyAgICAgfQorICNlbmRpZiAvKiBIQVZFX1BFUlNPTkFMSVRZ ICovCisrCisrICBpZiAoZXgucmVhc29uIDwgMCkKKysgICAgeworKyAgICAgIGxpbnV4X3B0cmFj ZV9jcmVhdGVfd2FybmluZ3MgKCk7CisrICAgICAgdGhyb3dfZXhjZXB0aW9uIChleCk7CisrICAg IH0KKyB9CisgCisgc3RhdGljIHZvaWQKKwoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNw ZWMKaW5kZXggNjQyMjczMi4uNzhlN2VhMyAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2Ri LnNwZWMKQEAgLTMzLDcgKzMzLDcgQEAgVmVyc2lvbjogNy40LjUwLiV7c25hcH0KIAogIyBUaGUg cmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQg aXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1 bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNl OiAyNyV7P2Rpc3R9CitSZWxlYXNlOiAyOCV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQg R1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRp b25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4KIEdyb3Vw OiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTU1Miw2ICs1NTIsMTQgQEAgUGF0Y2g2NDY6IGdk Yi1leGl0LXdhcm5pbmcucGF0Y2gKICM9cHVzaCt3b3JrCiBQYXRjaDY0ODogZ2RiLWFyY2hlci12 bGEtcmhlbDVnY2MucGF0Y2gKIAorIyBQcmludCByZWFzb25zIGZvciBmYWlsZWQgYXR0YWNoL3Nw YXduIGluY2wuIFNFTGludXggZGVueV9wdHJhY2UgKEJaIDc4Njg3OCkuCisjPXB1c2gKK1BhdGNo NjQ5OiBnZGItYXR0YWNoLWZhaWwtcmVhc29ucy0xb2Y1LnBhdGNoCitQYXRjaDY1MDogZ2RiLWF0 dGFjaC1mYWlsLXJlYXNvbnMtMm9mNS5wYXRjaAorUGF0Y2g2NTE6IGdkYi1hdHRhY2gtZmFpbC1y ZWFzb25zLTNvZjUucGF0Y2gKK1BhdGNoNjUyOiBnZGItYXR0YWNoLWZhaWwtcmVhc29ucy00b2Y1 LnBhdGNoCitQYXRjaDY1MzogZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAorCiAl aWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxfU1RBVEVfRkVET1JBX0dEQiB3 b3VsZCBub3QgYmUgZm91bmQgZm9yOgogIyBQYXRjaDY0MjogZ2RiLXJlYWRsaW5lNjItYXNrLW1v cmUtcmgucGF0Y2gKQEAgLTgzMCw2ICs4MzgsMTEgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9t Mi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNoNjQ1IC1wMQogJXBhdGNo NjQ2IC1wMQogJXBhdGNoNjQ4IC1wMQorJXBhdGNoNjQ5IC1wMQorJXBhdGNoNjUwIC1wMQorJXBh dGNoNjUxIC1wMQorJXBhdGNoNjUyIC1wMQorJXBhdGNoNjUzIC1wMQogCiAlcGF0Y2gzOTMgLXAx CiAlaWYgMCV7IT9lbDU6MX0gfHwgMCV7P3NjbDoxfQpAQCAtMTI5Niw2ICsxMzA5LDkgQEAgZmkK ICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1fSIgPT0gIm5vYXJjaCIKIAog JWNoYW5nZWxvZworKiBUdWUgTWFyICA2IDIwMTIgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+IC0gNy40LjUwLjIwMTIwMTIwLTI4LmZjMTcKKy0gUHJpbnQgcmVhc29u cyBmb3IgZmFpbGVkIGF0dGFjaC9zcGF3biBpbmNsLiBTRUxpbnV4IGRlbnlfcHRyYWNlIChCWiA3 ODY4NzgpLgorCiAqIFN1biBNYXIgIDQgMjAxMiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4gLSA3LjQuNTAuMjAxMjAxMjAtMjcuZmMxNwogLSBbcmhlbDVdIEZpeCB1 cCB0aGUgcHJldmlvdXMgY29tbWl0IChCWiA3OTkzMTgpLgogCg==