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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.3.2-1 Date: Mon, 29 Jun 2026 12:23:53 GMT Message-ID: <178273583376.1.17640832838234350029.rpms-gcc-b10732a3eef8@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: b10732a3eef8791c7b50e7ce01a0094a020055e4 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogYjEwNzMyYTNlZWY4NzkxYzdiNTBlN2NlMDFhMDA5NGEw MjAwNTVlNApBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOC0wOC0yOVQxMToxNjowNiswMDowMApTdGF0cyAgOiArNTIxLy0wIGluIDEg ZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2djYy9j L2IxMDczMmEzZWVmODc5MWM3YjUwZTdjZTAxYTAwOTRhMDIwMDU1ZTQ/YnJhbmNoPXJoZWwtZjQx LWJhc2UKCkxvZzoKNC4zLjItMQoKLS0tCmRpZmYgLS1naXQgYS9nY2M0My1wcjM3MjQ4LnBhdGNo IGIvZ2NjNDMtcHIzNzI0OC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li45YjJjZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDMtcHIzNzI0OC5wYXRjaApAQCAtMCww ICsxLDUyMSBAQAorMjAwOC0wOC0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+ CisKKwlQUiBtaWRkbGUtZW5kLzM3MjQ4CisJUFIgbWlkZGxlLWVuZC8zNjQ0OQorCSogZm9sZC1j b25zdC5jIChtYWtlX2JpdF9maWVsZF9yZWYpOiBDaGFuZ2UgYml0cG9zIGFuZCBiaXRzaXplCisJ YXJndW1lbnRzIHRvIEhPU1RfV0lERV9JTlQuCisJKGZvbGRfdHJ1dGhvcCk6IENoYW5nZSBmaXJz dF9iaXQgYW5kIGVuZF9iaXQgdG8gSE9TVF9XSURFX0lOVC4KKworCSogZysrLmRnL29wdC9wcjM2 NDQ5LkM6IE5ldyB0ZXN0LgorCisyMDA4LTA4LTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVk aGF0LmNvbT4KKworCVJldmVydDoKKwkyMDA4LTA2LTExICBSaWNoYXJkIEd1ZW50aGVyICA8cmd1 ZW50aGVyQHN1c2UuZGU+CisJUFIgbWlkZGxlLWVuZC8zNjQ0OQorCSogZm9sZC1jb25zdC5jIChm b2xkX3RydXRob3ApOiBSZW1vdmUgY29kZSBnZW5lcmF0aW5nCisJQklUX0ZJRUxEX1JFRnMgb2Yg c3RydWN0dXJlIGJhc2VzLgorCShmb2xkX2JpbmFyeSk6IExpa2V3aXNlLgorCShtYWtlX2JpdF9m aWVsZF9yZWYpOiBSZW1vdmUuCisJKG9wdGltaXplX2JpdF9maWVsZF9jb21wYXJlKTogUmVtb3Zl LgorCShhbGxfb25lc19tYXNrX3ApOiBSZW1vdmUuCisKKy0tLSBnY2MvZm9sZC1jb25zdC5jCShy ZXZpc2lvbiAxMzY2NjIpCisrKysgZ2NjL2ZvbGQtY29uc3QuYwkocmV2aXNpb24gMTM2NjYxKQor QEAgLTEwOSw5ICsxMDksMTIgQEAgc3RhdGljIGludCB0d292YWxfY29tcGFyaXNvbl9wICh0cmVl LCB0cgorIHN0YXRpYyB0cmVlIGV2YWxfc3Vic3QgKHRyZWUsIHRyZWUsIHRyZWUsIHRyZWUsIHRy ZWUpOworIHN0YXRpYyB0cmVlIHBlZGFudGljX29taXRfb25lX29wZXJhbmQgKHRyZWUsIHRyZWUs IHRyZWUpOworIHN0YXRpYyB0cmVlIGRpc3RyaWJ1dGVfYml0X2V4cHIgKGVudW0gdHJlZV9jb2Rl LCB0cmVlLCB0cmVlLCB0cmVlKTsKKytzdGF0aWMgdHJlZSBtYWtlX2JpdF9maWVsZF9yZWYgKHRy ZWUsIHRyZWUsIEhPU1RfV0lERV9JTlQsIEhPU1RfV0lERV9JTlQsIGludCk7Cisrc3RhdGljIHRy ZWUgb3B0aW1pemVfYml0X2ZpZWxkX2NvbXBhcmUgKGVudW0gdHJlZV9jb2RlLCB0cmVlLCB0cmVl LCB0cmVlKTsKKyBzdGF0aWMgdHJlZSBkZWNvZGVfZmllbGRfcmVmZXJlbmNlICh0cmVlLCBIT1NU X1dJREVfSU5UICosIEhPU1RfV0lERV9JTlQgKiwKKyAJCQkJICAgIGVudW0gbWFjaGluZV9tb2Rl ICosIGludCAqLCBpbnQgKiwKKyAJCQkJICAgIHRyZWUgKiwgdHJlZSAqKTsKKytzdGF0aWMgaW50 IGFsbF9vbmVzX21hc2tfcCAoY29uc3RfdHJlZSwgaW50KTsKKyBzdGF0aWMgdHJlZSBzaWduX2Jp dF9wICh0cmVlLCBjb25zdF90cmVlKTsKKyBzdGF0aWMgaW50IHNpbXBsZV9vcGVyYW5kX3AgKGNv bnN0X3RyZWUpOworIHN0YXRpYyB0cmVlIHJhbmdlX2Jpbm9wIChlbnVtIHRyZWVfY29kZSwgdHJl ZSwgdHJlZSwgaW50LCB0cmVlLCBpbnQpOworQEAgLTM4NDgsNiArMzg1MSwyMDIgQEAgZGlzdHJp YnV0ZV9yZWFsX2RpdmlzaW9uIChlbnVtIHRyZWVfY29kZQorICAgcmV0dXJuIE5VTExfVFJFRTsK KyB9CisgDAorKy8qIFJldHVybiBhIEJJVF9GSUVMRF9SRUYgb2YgdHlwZSBUWVBFIHRvIHJlZmVy IHRvIEJJVFNJWkUgYml0cyBvZiBJTk5FUgorKyAgIHN0YXJ0aW5nIGF0IEJJVFBPUy4gIFRoZSBm aWVsZCBpcyB1bnNpZ25lZCBpZiBVTlNJR05FRFAgaXMgbm9uemVyby4gICovCisrCisrc3RhdGlj IHRyZWUKKyttYWtlX2JpdF9maWVsZF9yZWYgKHRyZWUgaW5uZXIsIHRyZWUgdHlwZSwgSE9TVF9X SURFX0lOVCBiaXRzaXplLAorKwkJICAgIEhPU1RfV0lERV9JTlQgYml0cG9zLCBpbnQgdW5zaWdu ZWRwKQorK3sKKysgIHRyZWUgcmVzdWx0OworKworKyAgaWYgKGJpdHBvcyA9PSAwKQorKyAgICB7 CisrICAgICAgdHJlZSBzaXplID0gVFlQRV9TSVpFIChUUkVFX1RZUEUgKGlubmVyKSk7CisrICAg ICAgaWYgKChJTlRFR1JBTF9UWVBFX1AgKFRSRUVfVFlQRSAoaW5uZXIpKQorKwkgICB8fCBQT0lO VEVSX1RZUEVfUCAoVFJFRV9UWVBFIChpbm5lcikpKQorKwkgICYmIGhvc3RfaW50ZWdlcnAgKHNp emUsIDApIAorKwkgICYmIHRyZWVfbG93X2NzdCAoc2l6ZSwgMCkgPT0gYml0c2l6ZSkKKysJcmV0 dXJuIGZvbGRfY29udmVydCAodHlwZSwgaW5uZXIpOworKyAgICB9CisrCisrICByZXN1bHQgPSBi dWlsZDMgKEJJVF9GSUVMRF9SRUYsIHR5cGUsIGlubmVyLAorKwkJICAgc2l6ZV9pbnQgKGJpdHNp emUpLCBiaXRzaXplX2ludCAoYml0cG9zKSk7CisrCisrICBCSVRfRklFTERfUkVGX1VOU0lHTkVE IChyZXN1bHQpID0gdW5zaWduZWRwOworKworKyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisrLyog T3B0aW1pemUgYSBiaXQtZmllbGQgY29tcGFyZS4KKysKKysgICBUaGVyZSBhcmUgdHdvIGNhc2Vz OiAgRmlyc3QgaXMgYSBjb21wYXJlIGFnYWluc3QgYSBjb25zdGFudCBhbmQgdGhlCisrICAgc2Vj b25kIGlzIGEgY29tcGFyaXNvbiBvZiB0d28gaXRlbXMgd2hlcmUgdGhlIGZpZWxkcyBhcmUgYXQg dGhlIHNhbWUKKysgICBiaXQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIGEgY2h1 bmsgKGJ5dGUsIGhhbGZ3b3JkLCB3b3JkKQorKyAgIGxhcmdlIGVub3VnaCB0byBjb250YWluIGl0 LiAgSW4gdGhlc2UgY2FzZXMgd2UgY2FuIGF2b2lkIHRoZSBzaGlmdAorKyAgIGltcGxpY2l0IGlu IGJpdGZpZWxkIGV4dHJhY3Rpb25zLgorKworKyAgIEZvciBjb25zdGFudHMsIHdlIGVtaXQgYSBj b21wYXJlIG9mIHRoZSBzaGlmdGVkIGNvbnN0YW50IHdpdGggdGhlCisrICAgQklUX0FORF9FWFBS IG9mIGEgbWFzayBhbmQgYSBieXRlLCBoYWxmd29yZCwgb3Igd29yZCBvZiB0aGUgb3BlcmFuZCBi ZWluZworKyAgIGNvbXBhcmVkLiAgRm9yIHR3byBmaWVsZHMgYXQgdGhlIHNhbWUgcG9zaXRpb24s IHdlIGRvIHRoZSBBTkRzIHdpdGggdGhlCisrICAgc2ltaWxhciBtYXNrIGFuZCBjb21wYXJlIHRo ZSByZXN1bHQgb2YgdGhlIEFORHMuCisrCisrICAgQ09ERSBpcyB0aGUgY29tcGFyaXNvbiBjb2Rl LCBrbm93biB0byBiZSBlaXRoZXIgTkVfRVhQUiBvciBFUV9FWFBSLgorKyAgIENPTVBBUkVfVFlQ RSBpcyB0aGUgdHlwZSBvZiB0aGUgY29tcGFyaXNvbiwgYW5kIExIUyBhbmQgUkhTCisrICAgYXJl IHRoZSBsZWZ0IGFuZCByaWdodCBvcGVyYW5kcyBvZiB0aGUgY29tcGFyaXNvbiwgcmVzcGVjdGl2 ZWx5LgorKworKyAgIElmIHRoZSBvcHRpbWl6YXRpb24gZGVzY3JpYmVkIGFib3ZlIGNhbiBiZSBk b25lLCB3ZSByZXR1cm4gdGhlIHJlc3VsdGluZworKyAgIHRyZWUuICBPdGhlcndpc2Ugd2UgcmV0 dXJuIHplcm8uICAqLworKworK3N0YXRpYyB0cmVlCisrb3B0aW1pemVfYml0X2ZpZWxkX2NvbXBh cmUgKGVudW0gdHJlZV9jb2RlIGNvZGUsIHRyZWUgY29tcGFyZV90eXBlLAorKwkJCSAgICB0cmVl IGxocywgdHJlZSByaHMpCisreworKyAgSE9TVF9XSURFX0lOVCBsYml0cG9zLCBsYml0c2l6ZSwg cmJpdHBvcywgcmJpdHNpemUsIG5iaXRwb3MsIG5iaXRzaXplOworKyAgdHJlZSB0eXBlID0gVFJF RV9UWVBFIChsaHMpOworKyAgdHJlZSBzaWduZWRfdHlwZSwgdW5zaWduZWRfdHlwZTsKKysgIGlu dCBjb25zdF9wID0gVFJFRV9DT0RFIChyaHMpID09IElOVEVHRVJfQ1NUOworKyAgZW51bSBtYWNo aW5lX21vZGUgbG1vZGUsIHJtb2RlLCBubW9kZTsKKysgIGludCBsdW5zaWduZWRwLCBydW5zaWdu ZWRwOworKyAgaW50IGx2b2xhdGlsZXAgPSAwLCBydm9sYXRpbGVwID0gMDsKKysgIHRyZWUgbGlu bmVyLCByaW5uZXIgPSBOVUxMX1RSRUU7CisrICB0cmVlIG1hc2s7CisrICB0cmVlIG9mZnNldDsK KysKKysgIC8qIEdldCBhbGwgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBleHRyYWN0aW9ucyBi ZWluZyBkb25lLiAgSWYgdGhlIGJpdCBzaXplCisrICAgICBpZiB0aGUgc2FtZSBhcyB0aGUgc2l6 ZSBvZiB0aGUgdW5kZXJseWluZyBvYmplY3QsIHdlIGFyZW4ndCBkb2luZyBhbgorKyAgICAgZXh0 cmFjdGlvbiBhdCBhbGwgYW5kIHNvIGNhbiBkbyBub3RoaW5nLiAgV2UgYWxzbyBkb24ndCB3YW50 IHRvCisrICAgICBkbyBhbnl0aGluZyBpZiB0aGUgaW5uZXIgZXhwcmVzc2lvbiBpcyBhIFBMQUNF SE9MREVSX0VYUFIgc2luY2Ugd2UKKysgICAgIHRoZW4gd2lsbCBubyBsb25nZXIgYmUgYWJsZSB0 byByZXBsYWNlIGl0LiAgKi8KKysgIGxpbm5lciA9IGdldF9pbm5lcl9yZWZlcmVuY2UgKGxocywg JmxiaXRzaXplLCAmbGJpdHBvcywgJm9mZnNldCwgJmxtb2RlLAorKwkJCQkmbHVuc2lnbmVkcCwg Jmx2b2xhdGlsZXAsIGZhbHNlKTsKKysgIGlmIChsaW5uZXIgPT0gbGhzIHx8IGxiaXRzaXplID09 IEdFVF9NT0RFX0JJVFNJWkUgKGxtb2RlKSB8fCBsYml0c2l6ZSA8IDAKKysgICAgICB8fCBvZmZz ZXQgIT0gMCB8fCBUUkVFX0NPREUgKGxpbm5lcikgPT0gUExBQ0VIT0xERVJfRVhQUikKKysgICAg cmV0dXJuIDA7CisrCisrIGlmICghY29uc3RfcCkKKysgICB7CisrICAgICAvKiBJZiB0aGlzIGlz IG5vdCBhIGNvbnN0YW50LCB3ZSBjYW4gb25seSBkbyBzb21ldGhpbmcgaWYgYml0IHBvc2l0aW9u cywKKysJc2l6ZXMsIGFuZCBzaWduZWRuZXNzIGFyZSB0aGUgc2FtZS4gICovCisrICAgICByaW5u ZXIgPSBnZXRfaW5uZXJfcmVmZXJlbmNlIChyaHMsICZyYml0c2l6ZSwgJnJiaXRwb3MsICZvZmZz ZXQsICZybW9kZSwKKysJCQkJICAgJnJ1bnNpZ25lZHAsICZydm9sYXRpbGVwLCBmYWxzZSk7Cisr CisrICAgICBpZiAocmlubmVyID09IHJocyB8fCBsYml0cG9zICE9IHJiaXRwb3MgfHwgbGJpdHNp emUgIT0gcmJpdHNpemUKKysJIHx8IGx1bnNpZ25lZHAgIT0gcnVuc2lnbmVkcCB8fCBvZmZzZXQg IT0gMAorKwkgfHwgVFJFRV9DT0RFIChyaW5uZXIpID09IFBMQUNFSE9MREVSX0VYUFIpCisrICAg ICAgIHJldHVybiAwOworKyAgIH0KKysKKysgIC8qIFNlZSBpZiB3ZSBjYW4gZmluZCBhIG1vZGUg dG8gcmVmZXIgdG8gdGhpcyBmaWVsZC4gIFdlIHNob3VsZCBiZSBhYmxlIHRvLAorKyAgICAgYnV0 IGZhaWwgaWYgd2UgY2FuJ3QuICAqLworKyAgbm1vZGUgPSBnZXRfYmVzdF9tb2RlIChsYml0c2l6 ZSwgbGJpdHBvcywKKysJCQkgY29uc3RfcCA/IFRZUEVfQUxJR04gKFRSRUVfVFlQRSAobGlubmVy KSkKKysJCQkgOiBNSU4gKFRZUEVfQUxJR04gKFRSRUVfVFlQRSAobGlubmVyKSksCisrCQkJCVRZ UEVfQUxJR04gKFRSRUVfVFlQRSAocmlubmVyKSkpLAorKwkJCSB3b3JkX21vZGUsIGx2b2xhdGls ZXAgfHwgcnZvbGF0aWxlcCk7CisrICBpZiAobm1vZGUgPT0gVk9JRG1vZGUpCisrICAgIHJldHVy biAwOworKworKyAgLyogU2V0IHNpZ25lZCBhbmQgdW5zaWduZWQgdHlwZXMgb2YgdGhlIHByZWNp c2lvbiBvZiB0aGlzIG1vZGUgZm9yIHRoZQorKyAgICAgc2hpZnRzIGJlbG93LiAgKi8KKysgIHNp Z25lZF90eXBlID0gbGFuZ19ob29rcy50eXBlcy50eXBlX2Zvcl9tb2RlIChubW9kZSwgMCk7Cisr ICB1bnNpZ25lZF90eXBlID0gbGFuZ19ob29rcy50eXBlcy50eXBlX2Zvcl9tb2RlIChubW9kZSwg MSk7CisrCisrICAvKiBDb21wdXRlIHRoZSBiaXQgcG9zaXRpb24gYW5kIHNpemUgZm9yIHRoZSBu ZXcgcmVmZXJlbmNlIGFuZCBvdXIgb2Zmc2V0CisrICAgICB3aXRoaW4gaXQuIElmIHRoZSBuZXcg cmVmZXJlbmNlIGlzIHRoZSBzYW1lIHNpemUgYXMgdGhlIG9yaWdpbmFsLCB3ZQorKyAgICAgd29u J3Qgb3B0aW1pemUgYW55dGhpbmcsIHNvIHJldHVybiB6ZXJvLiAgKi8KKysgIG5iaXRzaXplID0g R0VUX01PREVfQklUU0laRSAobm1vZGUpOworKyAgbmJpdHBvcyA9IGxiaXRwb3MgJiB+IChuYml0 c2l6ZSAtIDEpOworKyAgbGJpdHBvcyAtPSBuYml0cG9zOworKyAgaWYgKG5iaXRzaXplID09IGxi aXRzaXplKQorKyAgICByZXR1cm4gMDsKKysKKysgIGlmIChCWVRFU19CSUdfRU5ESUFOKQorKyAg ICBsYml0cG9zID0gbmJpdHNpemUgLSBsYml0c2l6ZSAtIGxiaXRwb3M7CisrCisrICAvKiBNYWtl IHRoZSBtYXNrIHRvIGJlIHVzZWQgYWdhaW5zdCB0aGUgZXh0cmFjdGVkIGZpZWxkLiAgKi8KKysg IG1hc2sgPSBidWlsZF9pbnRfY3N0X3R5cGUgKHVuc2lnbmVkX3R5cGUsIC0xKTsKKysgIG1hc2sg PSBjb25zdF9iaW5vcCAoTFNISUZUX0VYUFIsIG1hc2ssIHNpemVfaW50IChuYml0c2l6ZSAtIGxi aXRzaXplKSwgMCk7CisrICBtYXNrID0gY29uc3RfYmlub3AgKFJTSElGVF9FWFBSLCBtYXNrLAor KwkJICAgICAgc2l6ZV9pbnQgKG5iaXRzaXplIC0gbGJpdHNpemUgLSBsYml0cG9zKSwgMCk7Cisr CisrICBpZiAoISBjb25zdF9wKQorKyAgICAvKiBJZiBub3QgY29tcGFyaW5nIHdpdGggY29uc3Rh bnQsIGp1c3QgcmV3b3JrIHRoZSBjb21wYXJpc29uCisrICAgICAgIGFuZCByZXR1cm4uICAqLwor KyAgICByZXR1cm4gZm9sZF9idWlsZDIgKGNvZGUsIGNvbXBhcmVfdHlwZSwKKysJCQlmb2xkX2J1 aWxkMiAoQklUX0FORF9FWFBSLCB1bnNpZ25lZF90eXBlLAorKwkJCQkgICAgIG1ha2VfYml0X2Zp ZWxkX3JlZiAobGlubmVyLAorKwkJCQkJCQkgdW5zaWduZWRfdHlwZSwKKysJCQkJCQkJIG5iaXRz aXplLCBuYml0cG9zLAorKwkJCQkJCQkgMSksCisrCQkJCSAgICAgbWFzayksCisrCQkJZm9sZF9i dWlsZDIgKEJJVF9BTkRfRVhQUiwgdW5zaWduZWRfdHlwZSwKKysJCQkJICAgICBtYWtlX2JpdF9m aWVsZF9yZWYgKHJpbm5lciwKKysJCQkJCQkJIHVuc2lnbmVkX3R5cGUsCisrCQkJCQkJCSBuYml0 c2l6ZSwgbmJpdHBvcywKKysJCQkJCQkJIDEpLAorKwkJCQkgICAgIG1hc2spKTsKKysKKysgIC8q IE90aGVyd2lzZSwgd2UgYXJlIGhhbmRsaW5nIHRoZSBjb25zdGFudCBjYXNlLiBTZWUgaWYgdGhl IGNvbnN0YW50IGlzIHRvbworKyAgICAgYmlnIGZvciB0aGUgZmllbGQuICBXYXJuIGFuZCByZXR1 cm4gYSB0cmVlIG9mIGZvciAwIChmYWxzZSkgaWYgc28uICBXZSBkbworKyAgICAgdGhpcyBub3Qg b25seSBmb3IgaXRzIG93biBzYWtlLCBidXQgdG8gYXZvaWQgaGF2aW5nIHRvIHRlc3QgZm9yIHRo aXMKKysgICAgIGVycm9yIGNhc2UgYmVsb3cuICBJZiB3ZSBkaWRuJ3QsIHdlIG1pZ2h0IGdlbmVy YXRlIHdyb25nIGNvZGUuCisrCisrICAgICBGb3IgdW5zaWduZWQgZmllbGRzLCB0aGUgY29uc3Rh bnQgc2hpZnRlZCByaWdodCBieSB0aGUgZmllbGQgbGVuZ3RoIHNob3VsZAorKyAgICAgYmUgYWxs IHplcm8uICBGb3Igc2lnbmVkIGZpZWxkcywgdGhlIGhpZ2gtb3JkZXIgYml0cyBzaG91bGQgYWdy ZWUgd2l0aAorKyAgICAgdGhlIHNpZ24gYml0LiAgKi8KKysKKysgIGlmIChsdW5zaWduZWRwKQor KyAgICB7CisrICAgICAgaWYgKCEgaW50ZWdlcl96ZXJvcCAoY29uc3RfYmlub3AgKFJTSElGVF9F WFBSLAorKwkJCQkJZm9sZF9jb252ZXJ0ICh1bnNpZ25lZF90eXBlLCByaHMpLAorKwkJCQkJc2l6 ZV9pbnQgKGxiaXRzaXplKSwgMCkpKQorKwl7CisrCSAgd2FybmluZyAoMCwgImNvbXBhcmlzb24g aXMgYWx3YXlzICVkIGR1ZSB0byB3aWR0aCBvZiBiaXQtZmllbGQiLAorKwkJICAgY29kZSA9PSBO RV9FWFBSKTsKKysJICByZXR1cm4gY29uc3RhbnRfYm9vbGVhbl9ub2RlIChjb2RlID09IE5FX0VY UFIsIGNvbXBhcmVfdHlwZSk7CisrCX0KKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAg dHJlZSB0ZW0gPSBjb25zdF9iaW5vcCAoUlNISUZUX0VYUFIsIGZvbGRfY29udmVydCAoc2lnbmVk X3R5cGUsIHJocyksCisrCQkJICAgICAgc2l6ZV9pbnQgKGxiaXRzaXplIC0gMSksIDApOworKyAg ICAgIGlmICghIGludGVnZXJfemVyb3AgKHRlbSkgJiYgISBpbnRlZ2VyX2FsbF9vbmVzcCAodGVt KSkKKysJeworKwkgIHdhcm5pbmcgKDAsICJjb21wYXJpc29uIGlzIGFsd2F5cyAlZCBkdWUgdG8g d2lkdGggb2YgYml0LWZpZWxkIiwKKysJCSAgIGNvZGUgPT0gTkVfRVhQUik7CisrCSAgcmV0dXJu IGNvbnN0YW50X2Jvb2xlYW5fbm9kZSAoY29kZSA9PSBORV9FWFBSLCBjb21wYXJlX3R5cGUpOwor Kwl9CisrICAgIH0KKysKKysgIC8qIFNpbmdsZS1iaXQgY29tcGFyZXMgc2hvdWxkIGFsd2F5cyBi ZSBhZ2FpbnN0IHplcm8uICAqLworKyAgaWYgKGxiaXRzaXplID09IDEgJiYgISBpbnRlZ2VyX3pl cm9wIChyaHMpKQorKyAgICB7CisrICAgICAgY29kZSA9IGNvZGUgPT0gRVFfRVhQUiA/IE5FX0VY UFIgOiBFUV9FWFBSOworKyAgICAgIHJocyA9IGJ1aWxkX2ludF9jc3QgKHR5cGUsIDApOworKyAg ICB9CisrCisrICAvKiBNYWtlIGEgbmV3IGJpdGZpZWxkIHJlZmVyZW5jZSwgc2hpZnQgdGhlIGNv bnN0YW50IG92ZXIgdGhlCisrICAgICBhcHByb3ByaWF0ZSBudW1iZXIgb2YgYml0cyBhbmQgbWFz ayBpdCB3aXRoIHRoZSBjb21wdXRlZCBtYXNrCisrICAgICAoaW4gY2FzZSB0aGlzIHdhcyBhIHNp Z25lZCBmaWVsZCkuICBJZiB3ZSBjaGFuZ2VkIGl0LCBtYWtlIGEgbmV3IG9uZS4gICovCisrICBs aHMgPSBtYWtlX2JpdF9maWVsZF9yZWYgKGxpbm5lciwgdW5zaWduZWRfdHlwZSwgbmJpdHNpemUs IG5iaXRwb3MsIDEpOworKyAgaWYgKGx2b2xhdGlsZXApCisrICAgIHsKKysgICAgICBUUkVFX1NJ REVfRUZGRUNUUyAobGhzKSA9IDE7CisrICAgICAgVFJFRV9USElTX1ZPTEFUSUxFIChsaHMpID0g MTsKKysgICAgfQorKworKyAgcmhzID0gY29uc3RfYmlub3AgKEJJVF9BTkRfRVhQUiwKKysJCSAg ICAgY29uc3RfYmlub3AgKExTSElGVF9FWFBSLAorKwkJCQkgIGZvbGRfY29udmVydCAodW5zaWdu ZWRfdHlwZSwgcmhzKSwKKysJCQkJICBzaXplX2ludCAobGJpdHBvcyksIDApLAorKwkJICAgICBt YXNrLCAwKTsKKysKKysgIHJldHVybiBidWlsZDIgKGNvZGUsIGNvbXBhcmVfdHlwZSwKKysJCSBi dWlsZDIgKEJJVF9BTkRfRVhQUiwgdW5zaWduZWRfdHlwZSwgbGhzLCBtYXNrKSwKKysJCSByaHMp OworK30KKysMCisgLyogU3Vicm91dGluZSBmb3IgZm9sZF90cnV0aG9wOiBkZWNvZGUgYSBmaWVs ZCByZWZlcmVuY2UuCisgCisgICAgSWYgRVhQIGlzIGEgY29tcGFyaXNvbiByZWZlcmVuY2UsIHdl IHJldHVybiB0aGUgaW5uZXJtb3N0IHJlZmVyZW5jZS4KK0BAIC0zOTM5LDYgKzQxMzgsMjcgQEAg ZGVjb2RlX2ZpZWxkX3JlZmVyZW5jZSAodHJlZSBleHAsIEhPU1RfVworICAgcmV0dXJuIGlubmVy OworIH0KKyAKKysvKiBSZXR1cm4gbm9uemVybyBpZiBNQVNLIHJlcHJlc2VudHMgYSBtYXNrIG9m IFNJWkUgb25lcyBpbiB0aGUgbG93LW9yZGVyCisrICAgYml0IHBvc2l0aW9ucy4gICovCisrCisr c3RhdGljIGludAorK2FsbF9vbmVzX21hc2tfcCAoY29uc3RfdHJlZSBtYXNrLCBpbnQgc2l6ZSkK Kyt7CisrICB0cmVlIHR5cGUgPSBUUkVFX1RZUEUgKG1hc2spOworKyAgdW5zaWduZWQgaW50IHBy ZWNpc2lvbiA9IFRZUEVfUFJFQ0lTSU9OICh0eXBlKTsKKysgIHRyZWUgdG1hc2s7CisrCisrICB0 bWFzayA9IGJ1aWxkX2ludF9jc3RfdHlwZSAoc2lnbmVkX3R5cGVfZm9yICh0eXBlKSwgLTEpOwor KworKyAgcmV0dXJuCisrICAgIHRyZWVfaW50X2NzdF9lcXVhbCAobWFzaywKKysJCQljb25zdF9i aW5vcCAoUlNISUZUX0VYUFIsCisrCQkJCSAgICAgY29uc3RfYmlub3AgKExTSElGVF9FWFBSLCB0 bWFzaywKKysJCQkJCQkgIHNpemVfaW50IChwcmVjaXNpb24gLSBzaXplKSwKKysJCQkJCQkgIDAp LAorKwkJCQkgICAgIHNpemVfaW50IChwcmVjaXNpb24gLSBzaXplKSwgMCkpOworK30KKysKKyAv KiBTdWJyb3V0aW5lIGZvciBmb2xkOiBkZXRlcm1pbmUgaWYgVkFMIGlzIHRoZSBJTlRFR0VSX0NP TlNUIHRoYXQKKyAgICByZXByZXNlbnRzIHRoZSBzaWduIGJpdCBvZiBFWFAncyB0eXBlLiAgSWYg RVhQIHJlcHJlc2VudHMgYSBzaWduCisgICAgb3IgemVybyBleHRlbnNpb24sIGFsc28gdGVzdCBW QUwgYWdhaW5zdCB0aGUgdW5leHRlbmRlZCB0eXBlLgorQEAgLTUyNjQsMTUgKzU0ODQsMTUgQEAg Zm9sZF90cnV0aG9wIChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlIAorICAgdHJlZSBsbF9pbm5l ciwgbHJfaW5uZXIsIHJsX2lubmVyLCBycl9pbm5lcjsKKyAgIEhPU1RfV0lERV9JTlQgbGxfYml0 c2l6ZSwgbGxfYml0cG9zLCBscl9iaXRzaXplLCBscl9iaXRwb3M7CisgICBIT1NUX1dJREVfSU5U IHJsX2JpdHNpemUsIHJsX2JpdHBvcywgcnJfYml0c2l6ZSwgcnJfYml0cG9zOworLSAgSE9TVF9X SURFX0lOVCB4bGxfYml0cG9zLCB4cmxfYml0cG9zOworLSAgSE9TVF9XSURFX0lOVCBsbmJpdHNp emUsIGxuYml0cG9zOworKyAgSE9TVF9XSURFX0lOVCB4bGxfYml0cG9zLCB4bHJfYml0cG9zLCB4 cmxfYml0cG9zLCB4cnJfYml0cG9zOworKyAgSE9TVF9XSURFX0lOVCBsbmJpdHNpemUsIGxuYml0 cG9zLCBybmJpdHNpemUsIHJuYml0cG9zOworICAgaW50IGxsX3Vuc2lnbmVkcCwgbHJfdW5zaWdu ZWRwLCBybF91bnNpZ25lZHAsIHJyX3Vuc2lnbmVkcDsKKyAgIGVudW0gbWFjaGluZV9tb2RlIGxs X21vZGUsIGxyX21vZGUsIHJsX21vZGUsIHJyX21vZGU7CistICBlbnVtIG1hY2hpbmVfbW9kZSBs bm1vZGU7CisrICBlbnVtIG1hY2hpbmVfbW9kZSBsbm1vZGUsIHJubW9kZTsKKyAgIHRyZWUgbGxf bWFzaywgbHJfbWFzaywgcmxfbWFzaywgcnJfbWFzazsKKyAgIHRyZWUgbGxfYW5kX21hc2ssIGxy X2FuZF9tYXNrLCBybF9hbmRfbWFzaywgcnJfYW5kX21hc2s7CisgICB0cmVlIGxfY29uc3QsIHJf Y29uc3Q7CistICB0cmVlIGxudHlwZSwgcmVzdWx0OworLSAgaW50IGZpcnN0X2JpdCwgZW5kX2Jp dDsKKysgIHRyZWUgbG50eXBlLCBybnR5cGUsIHJlc3VsdDsKKysgIEhPU1RfV0lERV9JTlQgZmly c3RfYml0LCBlbmRfYml0OworICAgaW50IHZvbGF0aWxlcDsKKyAgIHRyZWUgb3JpZ19saHMgPSBs aHMsIG9yaWdfcmhzID0gcmhzOworQEAgLTU1MTAsNiArNTczMCwxMTggQEAgZm9sZF90cnV0aG9w IChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlIAorIAl9CisgICAgIH0KKyAKKysgIC8qIElmIHRo ZSByaWdodCBzaWRlcyBhcmUgbm90IGNvbnN0YW50LCBkbyB0aGUgc2FtZSBmb3IgaXQuICBBbHNv LAorKyAgICAgZGlzYWxsb3cgdGhpcyBvcHRpbWl6YXRpb24gaWYgYSBzaXplIG9yIHNpZ25lZG5l c3MgbWlzbWF0Y2ggb2NjdXJzCisrICAgICBiZXR3ZWVuIHRoZSBsZWZ0IGFuZCByaWdodCBzaWRl cy4gICovCisrICBpZiAobF9jb25zdCA9PSAwKQorKyAgICB7CisrICAgICAgaWYgKGxsX2JpdHNp emUgIT0gbHJfYml0c2l6ZSB8fCBybF9iaXRzaXplICE9IHJyX2JpdHNpemUKKysJICB8fCBsbF91 bnNpZ25lZHAgIT0gbHJfdW5zaWduZWRwIHx8IHJsX3Vuc2lnbmVkcCAhPSBycl91bnNpZ25lZHAK KysJICAvKiBNYWtlIHN1cmUgdGhlIHR3byBmaWVsZHMgb24gdGhlIHJpZ2h0CisrCSAgICAgY29y cmVzcG9uZCB0byB0aGUgbGVmdCB3aXRob3V0IGJlaW5nIHN3YXBwZWQuICAqLworKwkgIHx8IGxs X2JpdHBvcyAtIHJsX2JpdHBvcyAhPSBscl9iaXRwb3MgLSBycl9iaXRwb3MpCisrCXJldHVybiAw OworKworKyAgICAgIGZpcnN0X2JpdCA9IE1JTiAobHJfYml0cG9zLCBycl9iaXRwb3MpOworKyAg ICAgIGVuZF9iaXQgPSBNQVggKGxyX2JpdHBvcyArIGxyX2JpdHNpemUsIHJyX2JpdHBvcyArIHJy X2JpdHNpemUpOworKyAgICAgIHJubW9kZSA9IGdldF9iZXN0X21vZGUgKGVuZF9iaXQgLSBmaXJz dF9iaXQsIGZpcnN0X2JpdCwKKysJCQkgICAgICBUWVBFX0FMSUdOIChUUkVFX1RZUEUgKGxyX2lu bmVyKSksIHdvcmRfbW9kZSwKKysJCQkgICAgICB2b2xhdGlsZXApOworKyAgICAgIGlmIChybm1v ZGUgPT0gVk9JRG1vZGUpCisrCXJldHVybiAwOworKworKyAgICAgIHJuYml0c2l6ZSA9IEdFVF9N T0RFX0JJVFNJWkUgKHJubW9kZSk7CisrICAgICAgcm5iaXRwb3MgPSBmaXJzdF9iaXQgJiB+IChy bmJpdHNpemUgLSAxKTsKKysgICAgICBybnR5cGUgPSBsYW5nX2hvb2tzLnR5cGVzLnR5cGVfZm9y X3NpemUgKHJuYml0c2l6ZSwgMSk7CisrICAgICAgeGxyX2JpdHBvcyA9IGxyX2JpdHBvcyAtIHJu Yml0cG9zLCB4cnJfYml0cG9zID0gcnJfYml0cG9zIC0gcm5iaXRwb3M7CisrCisrICAgICAgaWYg KEJZVEVTX0JJR19FTkRJQU4pCisrCXsKKysJICB4bHJfYml0cG9zID0gcm5iaXRzaXplIC0geGxy X2JpdHBvcyAtIGxyX2JpdHNpemU7CisrCSAgeHJyX2JpdHBvcyA9IHJuYml0c2l6ZSAtIHhycl9i aXRwb3MgLSBycl9iaXRzaXplOworKwl9CisrCisrICAgICAgbHJfbWFzayA9IGNvbnN0X2Jpbm9w IChMU0hJRlRfRVhQUiwgZm9sZF9jb252ZXJ0IChybnR5cGUsIGxyX21hc2spLAorKwkJCSAgICAg c2l6ZV9pbnQgKHhscl9iaXRwb3MpLCAwKTsKKysgICAgICBycl9tYXNrID0gY29uc3RfYmlub3Ag KExTSElGVF9FWFBSLCBmb2xkX2NvbnZlcnQgKHJudHlwZSwgcnJfbWFzayksCisrCQkJICAgICBz aXplX2ludCAoeHJyX2JpdHBvcyksIDApOworKworKyAgICAgIC8qIE1ha2UgYSBtYXNrIHRoYXQg Y29ycmVzcG9uZHMgdG8gYm90aCBmaWVsZHMgYmVpbmcgY29tcGFyZWQuCisrCSBEbyB0aGlzIGZv ciBib3RoIGl0ZW1zIGJlaW5nIGNvbXBhcmVkLiAgSWYgdGhlIG9wZXJhbmRzIGFyZSB0aGUKKysJ IHNhbWUgc2l6ZSBhbmQgdGhlIGJpdHMgYmVpbmcgY29tcGFyZWQgYXJlIGluIHRoZSBzYW1lIHBv c2l0aW9uCisrCSB0aGVuIHdlIGNhbiBkbyB0aGlzIGJ5IG1hc2tpbmcgYm90aCBhbmQgY29tcGFy aW5nIHRoZSBtYXNrZWQKKysJIHJlc3VsdHMuICAqLworKyAgICAgIGxsX21hc2sgPSBjb25zdF9i aW5vcCAoQklUX0lPUl9FWFBSLCBsbF9tYXNrLCBybF9tYXNrLCAwKTsKKysgICAgICBscl9tYXNr ID0gY29uc3RfYmlub3AgKEJJVF9JT1JfRVhQUiwgbHJfbWFzaywgcnJfbWFzaywgMCk7CisrICAg ICAgaWYgKGxuYml0c2l6ZSA9PSBybmJpdHNpemUgJiYgeGxsX2JpdHBvcyA9PSB4bHJfYml0cG9z KQorKwl7CisrCSAgbGhzID0gbWFrZV9iaXRfZmllbGRfcmVmIChsbF9pbm5lciwgbG50eXBlLCBs bmJpdHNpemUsIGxuYml0cG9zLAorKwkJCQkgICAgbGxfdW5zaWduZWRwIHx8IHJsX3Vuc2lnbmVk cCk7CisrCSAgaWYgKCEgYWxsX29uZXNfbWFza19wIChsbF9tYXNrLCBsbmJpdHNpemUpKQorKwkg ICAgbGhzID0gYnVpbGQyIChCSVRfQU5EX0VYUFIsIGxudHlwZSwgbGhzLCBsbF9tYXNrKTsKKysK KysJICByaHMgPSBtYWtlX2JpdF9maWVsZF9yZWYgKGxyX2lubmVyLCBybnR5cGUsIHJuYml0c2l6 ZSwgcm5iaXRwb3MsCisrCQkJCSAgICBscl91bnNpZ25lZHAgfHwgcnJfdW5zaWduZWRwKTsKKysJ ICBpZiAoISBhbGxfb25lc19tYXNrX3AgKGxyX21hc2ssIHJuYml0c2l6ZSkpCisrCSAgICByaHMg PSBidWlsZDIgKEJJVF9BTkRfRVhQUiwgcm50eXBlLCByaHMsIGxyX21hc2spOworKworKwkgIHJl dHVybiBidWlsZDIgKHdhbnRlZF9jb2RlLCB0cnV0aF90eXBlLCBsaHMsIHJocyk7CisrCX0KKysK KysgICAgICAvKiBUaGVyZSBpcyBzdGlsbCBhbm90aGVyIHdheSB3ZSBjYW4gZG8gc29tZXRoaW5n OiAgSWYgYm90aCBwYWlycyBvZgorKwkgZmllbGRzIGJlaW5nIGNvbXBhcmVkIGFyZSBhZGphY2Vu dCwgd2UgbWF5IGJlIGFibGUgdG8gbWFrZSBhIHdpZGVyCisrCSBmaWVsZCBjb250YWluaW5nIHRo ZW0gYm90aC4KKysKKysJIE5vdGUgdGhhdCB3ZSBzdGlsbCBtdXN0IG1hc2sgdGhlIGxocy9yaHMg ZXhwcmVzc2lvbnMuICBGdXJ0aGVybW9yZSwKKysJIHRoZSBtYXNrIG11c3QgYmUgc2hpZnRlZCB0 byBhY2NvdW50IGZvciB0aGUgc2hpZnQgZG9uZSBieQorKwkgbWFrZV9iaXRfZmllbGRfcmVmLiAg Ki8KKysgICAgICBpZiAoKGxsX2JpdHNpemUgKyBsbF9iaXRwb3MgPT0gcmxfYml0cG9zCisrCSAg ICYmIGxyX2JpdHNpemUgKyBscl9iaXRwb3MgPT0gcnJfYml0cG9zKQorKwkgIHx8IChsbF9iaXRw b3MgPT0gcmxfYml0cG9zICsgcmxfYml0c2l6ZQorKwkgICAgICAmJiBscl9iaXRwb3MgPT0gcnJf Yml0cG9zICsgcnJfYml0c2l6ZSkpCisrCXsKKysJICB0cmVlIHR5cGU7CisrCisrCSAgbGhzID0g bWFrZV9iaXRfZmllbGRfcmVmIChsbF9pbm5lciwgbG50eXBlLCBsbF9iaXRzaXplICsgcmxfYml0 c2l6ZSwKKysJCQkJICAgIE1JTiAobGxfYml0cG9zLCBybF9iaXRwb3MpLCBsbF91bnNpZ25lZHAp OworKwkgIHJocyA9IG1ha2VfYml0X2ZpZWxkX3JlZiAobHJfaW5uZXIsIHJudHlwZSwgbHJfYml0 c2l6ZSArIHJyX2JpdHNpemUsCisrCQkJCSAgICBNSU4gKGxyX2JpdHBvcywgcnJfYml0cG9zKSwg bHJfdW5zaWduZWRwKTsKKysKKysJICBsbF9tYXNrID0gY29uc3RfYmlub3AgKFJTSElGVF9FWFBS LCBsbF9tYXNrLAorKwkJCQkgc2l6ZV9pbnQgKE1JTiAoeGxsX2JpdHBvcywgeHJsX2JpdHBvcykp LCAwKTsKKysJICBscl9tYXNrID0gY29uc3RfYmlub3AgKFJTSElGVF9FWFBSLCBscl9tYXNrLAor KwkJCQkgc2l6ZV9pbnQgKE1JTiAoeGxyX2JpdHBvcywgeHJyX2JpdHBvcykpLCAwKTsKKysKKysJ ICAvKiBDb252ZXJ0IHRvIHRoZSBzbWFsbGVyIHR5cGUgYmVmb3JlIG1hc2tpbmcgb3V0IHVud2Fu dGVkIGJpdHMuICAqLworKwkgIHR5cGUgPSBsbnR5cGU7CisrCSAgaWYgKGxudHlwZSAhPSBybnR5 cGUpCisrCSAgICB7CisrCSAgICAgIGlmIChsbmJpdHNpemUgPiBybmJpdHNpemUpCisrCQl7Cisr CQkgIGxocyA9IGZvbGRfY29udmVydCAocm50eXBlLCBsaHMpOworKwkJICBsbF9tYXNrID0gZm9s ZF9jb252ZXJ0IChybnR5cGUsIGxsX21hc2spOworKwkJICB0eXBlID0gcm50eXBlOworKwkJfQor KwkgICAgICBlbHNlIGlmIChsbmJpdHNpemUgPCBybmJpdHNpemUpCisrCQl7CisrCQkgIHJocyA9 IGZvbGRfY29udmVydCAobG50eXBlLCByaHMpOworKwkJICBscl9tYXNrID0gZm9sZF9jb252ZXJ0 IChsbnR5cGUsIGxyX21hc2spOworKwkJICB0eXBlID0gbG50eXBlOworKwkJfQorKwkgICAgfQor KworKwkgIGlmICghIGFsbF9vbmVzX21hc2tfcCAobGxfbWFzaywgbGxfYml0c2l6ZSArIHJsX2Jp dHNpemUpKQorKwkgICAgbGhzID0gYnVpbGQyIChCSVRfQU5EX0VYUFIsIHR5cGUsIGxocywgbGxf bWFzayk7CisrCisrCSAgaWYgKCEgYWxsX29uZXNfbWFza19wIChscl9tYXNrLCBscl9iaXRzaXpl ICsgcnJfYml0c2l6ZSkpCisrCSAgICByaHMgPSBidWlsZDIgKEJJVF9BTkRfRVhQUiwgdHlwZSwg cmhzLCBscl9tYXNrKTsKKysKKysJICByZXR1cm4gYnVpbGQyICh3YW50ZWRfY29kZSwgdHJ1dGhf dHlwZSwgbGhzLCByaHMpOworKwl9CisrCisrICAgICAgcmV0dXJuIDA7CisrICAgIH0KKysKKyAg IC8qIEhhbmRsZSB0aGUgY2FzZSBvZiBjb21wYXJpc29ucyB3aXRoIGNvbnN0YW50cy4gIElmIHRo ZXJlIGlzIHNvbWV0aGluZyBpbgorICAgICAgY29tbW9uIGJldHdlZW4gdGhlIG1hc2tzLCB0aG9z ZSBiaXRzIG9mIHRoZSBjb25zdGFudHMgbXVzdCBiZSB0aGUgc2FtZS4KKyAgICAgIElmIG5vdCwg dGhlIGNvbmRpdGlvbiBpcyBhbHdheXMgZmFsc2UuICBUZXN0IGZvciB0aGlzIHRvIGF2b2lkIGdl bmVyYXRpbmcKK0BAIC01NTMxLDcgKzU4NjMsMTkgQEAgZm9sZF90cnV0aG9wIChlbnVtIHRyZWVf Y29kZSBjb2RlLCB0cmVlIAorIAl9CisgICAgIH0KKyAKKy0gIHJldHVybiBOVUxMX1RSRUU7Cisr ICAvKiBDb25zdHJ1Y3QgdGhlIGV4cHJlc3Npb24gd2Ugd2lsbCByZXR1cm4uICBGaXJzdCBnZXQg dGhlIGNvbXBvbmVudAorKyAgICAgcmVmZXJlbmNlIHdlIHdpbGwgbWFrZS4gIFVubGVzcyB0aGUg bWFzayBpcyBhbGwgb25lcyB0aGUgd2lkdGggb2YKKysgICAgIHRoYXQgZmllbGQsIHBlcmZvcm0g dGhlIG1hc2sgb3BlcmF0aW9uLiAgVGhlbiBjb21wYXJlIHdpdGggdGhlCisrICAgICBtZXJnZWQg Y29uc3RhbnQuICAqLworKyAgcmVzdWx0ID0gbWFrZV9iaXRfZmllbGRfcmVmIChsbF9pbm5lciwg bG50eXBlLCBsbmJpdHNpemUsIGxuYml0cG9zLAorKwkJCSAgICAgICBsbF91bnNpZ25lZHAgfHwg cmxfdW5zaWduZWRwKTsKKysKKysgIGxsX21hc2sgPSBjb25zdF9iaW5vcCAoQklUX0lPUl9FWFBS LCBsbF9tYXNrLCBybF9tYXNrLCAwKTsKKysgIGlmICghIGFsbF9vbmVzX21hc2tfcCAobGxfbWFz aywgbG5iaXRzaXplKSkKKysgICAgcmVzdWx0ID0gYnVpbGQyIChCSVRfQU5EX0VYUFIsIGxudHlw ZSwgcmVzdWx0LCBsbF9tYXNrKTsKKysKKysgIHJldHVybiBidWlsZDIgKHdhbnRlZF9jb2RlLCB0 cnV0aF90eXBlLCByZXN1bHQsCisrCQkgY29uc3RfYmlub3AgKEJJVF9JT1JfRVhQUiwgbF9jb25z dCwgcl9jb25zdCwgMCkpOworIH0KKyAMCisgLyogT3B0aW1pemUgVCwgd2hpY2ggaXMgYSBjb21w YXJpc29uIG9mIGEgTUlOX0VYUFIgb3IgTUFYX0VYUFIgd2l0aCBhCitAQCAtMTE5MTQsNiArMTIy NTgsMTggQEAgZm9sZF9iaW5hcnkgKGVudW0gdHJlZV9jb2RlIGNvZGUsIHRyZWUgdAorIAkgICAg cmV0dXJuIG9taXRfb25lX29wZXJhbmQgKHR5cGUsIHJzbHQsIGFyZzApOworIAl9CisgCisrICAg ICAgLyogSWYgdGhpcyBpcyBhIGNvbXBhcmlzb24gb2YgYSBmaWVsZCwgd2UgbWF5IGJlIGFibGUg dG8gc2ltcGxpZnkgaXQuICAqLworKyAgICAgIGlmICgoVFJFRV9DT0RFIChhcmcwKSA9PSBDT01Q T05FTlRfUkVGCisrCSAgIHx8IFRSRUVfQ09ERSAoYXJnMCkgPT0gQklUX0ZJRUxEX1JFRikKKysJ ICAvKiBIYW5kbGUgdGhlIGNvbnN0YW50IGNhc2UgZXZlbiB3aXRob3V0IC1PCisrCSAgICAgdG8g bWFrZSBzdXJlIHRoZSB3YXJuaW5ncyBhcmUgZ2l2ZW4uICAqLworKwkgICYmIChvcHRpbWl6ZSB8 fCBUUkVFX0NPREUgKGFyZzEpID09IElOVEVHRVJfQ1NUKSkKKysJeworKwkgIHQxID0gb3B0aW1p emVfYml0X2ZpZWxkX2NvbXBhcmUgKGNvZGUsIHR5cGUsIGFyZzAsIGFyZzEpOworKwkgIGlmICh0 MSkKKysJICAgIHJldHVybiB0MTsKKysJfQorKworICAgICAgIC8qIE9wdGltaXplIGNvbXBhcmlz b25zIG9mIHN0cmxlbiB2cyB6ZXJvIHRvIGEgY29tcGFyZSBvZiB0aGUKKyAJIGZpcnN0IGNoYXJh Y3RlciBvZiB0aGUgc3RyaW5nIHZzIHplcm8uICBUbyB3aXQsCisgCQlzdHJsZW4ocHRyKSA9PSAw ICAgPT4gICpwdHIgPT0gMAorLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL29wdC9wcjM2NDQ5LkMu amoJMjAwOC0wOC0yNiAxMTowMzoyNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRl L2crKy5kZy9vcHQvcHIzNjQ0OS5DCTIwMDgtMDgtMjYgMTE6MDA6NTMuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDcwIEBACisrLy8gUFIgbWlkZGxlLWVuZC8zNjQ0OQorKy8vIHsgZGctZG8g cnVuIH0KKysvLyB7IGRnLW9wdGlvbnMgIi1PMyIgfQorKworK2V4dGVybiAiQyIgdm9pZCBleGl0 IChpbnQpOworK2V4dGVybiAiQyIgdm9pZCBhYm9ydCAoKTsKKysKKytzdHJ1Y3QgUgorK3sKKysg IHNob3J0IGE7CisrICBzaG9ydCBiOworK307CisrCisrc3RydWN0IFMKKyt7CisrICBSIGU7Cisr ICBsb25nIGY7CisrICBsb25nIGc7CisrfTsKKysKKytzdHJ1Y3QgVAorK3sKKysgIHNob3J0IGM7 CisrICBzaG9ydCBkOworK307CisrCisrc3RydWN0IFUKKyt7CisrICBsb25nIGhbMHgxZmZmZmZm ICsgMV07CisrICBUIGk7CisrfTsKKysKKytVICpqOworKworK3ZvaWQgX19hdHRyaWJ1dGVfXygo bm9pbmxpbmUpKQorK2JhciAoKQorK3sKKysgIGV4aXQgKDApOworK30KKysKKyt2b2lkIF9fYXR0 cmlidXRlX18oKG5vaW5saW5lKSkKKytmb28gKCkKKyt7CisrICBTIHM7CisrCisrICBzLmUuYSA9 IDM2OworKyAgcy5lLmIgPSAzODsKKysgIGlmIChzLmUuYSA9PSBqLT5pLmMgJiYgcy5lLmIgPT0g ai0+aS5kKQorKyAgICBiYXIgKCk7CisrfQorKworK2ludAorK21haW4gKCkKKyt7CisrICB0cnkK KysgICAgeworKyAgICAgIGogPSBuZXcgVTsKKysgICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAg eworKyAgICAgIHJldHVybiAwOworKyAgICB9CisrICBqLT5pLmMgPSAzNjsKKysgIGotPmkuZCA9 IDM4OworKyAgai0+aFswXSA9IDE7CisrICBqLT5oWzFdID0gMjsKKysgIGotPmhbMl0gPSAzOwor KyAgZm9vICgpOworKyAgYWJvcnQgKCk7CisrfQo=