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.8.0-0.10 Date: Mon, 29 Jun 2026 12:25:43 GMT Message-ID: <178273594340.1.10383806706768570893.rpms-gcc-c9aef059c59d@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: c9aef059c59da2de9835e73c74bb35da49caa4ab QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogYzlhZWYwNTljNTlkYTJkZTk4MzVlNzNjNzRiYjM1ZGE0 OWNhYTRhYgpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgpEYXRlICAg OiAyMDEzLTAyLTA4VDE5OjE4OjMxKzAxOjAwClN0YXRzICA6ICsxNzkvLTY1OSBpbiAxMCBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2NjL2MvYzlh ZWYwNTljNTlkYTJkZTk4MzVlNzNjNzRiYjM1ZGE0OWNhYTRhYj9icmFuY2g9cmhlbC1mNDEtYmFz ZQoKTG9nOgo0LjguMC0wLjEwCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdu b3JlCmluZGV4IDk5NDMzNzMuLmNlYTQyNzggMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv LmdpdGlnbm9yZQpAQCAtNTgsMyArNTgsNCBAQAogL2djYy00LjguMC0yMDEzMDEyOS50YXIuYnoy CiAvZ2NjLTQuOC4wLTIwMTMwMTMxLnRhci5iejIKIC9nY2MtNC44LjAtMjAxMzAyMDYudGFyLmJ6 MgorL2djYy00LjguMC0yMDEzMDIwOC50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9n Y2Muc3BlYwppbmRleCAzNGJiMGVhLi5hYjRkNzBhIDEwMDY0NAotLS0gYS9nY2Muc3BlYworKysg Yi9nY2Muc3BlYwpAQCAtMSw5ICsxLDkgQEAKLSVnbG9iYWwgREFURSAyMDEzMDIwNgotJWdsb2Jh bCBTVk5SRVYgMTk1ODEzCislZ2xvYmFsIERBVEUgMjAxMzAyMDgKKyVnbG9iYWwgU1ZOUkVWIDE5 NTg5NAogJWdsb2JhbCBnY2NfdmVyc2lvbiA0LjguMAogIyBOb3RlLCBnY2NfcmVsZWFzZSBtdXN0 IGJlIGludGVnZXIsIGlmIHlvdSB3YW50IHRvIGFkZCBzdWZmaXhlcyB0bwogIyAle3JlbGVhc2V9 LCBhcHBlbmQgdGhlbSBhZnRlciAle2djY19yZWxlYXNlfSBvbiBSZWxlYXNlOiBsaW5lLgotJWds b2JhbCBnY2NfcmVsZWFzZSAwLjkKKyVnbG9iYWwgZ2NjX3JlbGVhc2UgMC4xMAogJWdsb2JhbCBf dW5wYWNrYWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQgMAogJWdsb2JhbCBtdWx0aWxpYl82NF9h cmNocyBzcGFyYzY0IHBwYzY0IHMzOTB4IHg4Nl82NAogJWlmYXJjaCAle2l4ODZ9IHg4Nl82NCBp YTY0IHBwYyBwcGM2NCBhbHBoYQpAQCAtMTk0LDEwICsxOTQsOSBAQCBQYXRjaDEwOiBnY2M0OC1w cjM4NzU3LnBhdGNoCiBQYXRjaDExOiBnY2M0OC1saWJzdGRjKystZG9jcy5wYXRjaAogUGF0Y2gx MjogZ2NjNDgtbm8tYWRkLW5lZWRlZC5wYXRjaAogUGF0Y2gxMzogZ2NjNDgtcHI1NTYwOC5wYXRj aAotUGF0Y2gxNDogZ2NjNDgtcHI1MjQ0OC5wYXRjaAotUGF0Y2gxNTogZ2NjNDgtcHI1NTk3OC5w YXRjaAotUGF0Y2gxNjogZ2NjNDgtcHI1NjE1NC5wYXRjaAotUGF0Y2gxNzogZ2NjNDgtcHI1NjIy OC5wYXRjaAorUGF0Y2gxNDogZ2NjNDgtcHI1NjI1Ni5wYXRjaAorUGF0Y2gxNTogZ2NjNDgtcHI1 Mzk0OC5wYXRjaAorUGF0Y2gxNjogZ2NjNDgtcHI1NjI0NS5wYXRjaAogCiBQYXRjaDEwMDA6IGZh c3RqYXItMC45Ny1zZWdmYXVsdC5wYXRjaAogUGF0Y2gxMDAxOiBmYXN0amFyLTAuOTctbGVuMS5w YXRjaApAQCAtNzUwLDEwICs3NDksOSBAQCBwYWNrYWdlIG9yIHdoZW4gZGVidWdnaW5nIHRoaXMg cGFja2FnZS4KICVlbmRpZgogJXBhdGNoMTIgLXAwIC1iIC5uby1hZGQtbmVlZGVkfgogJXBhdGNo MTMgLXAwIC1iIC5wcjU1NjA4fgotJXBhdGNoMTQgLXAwIC1iIC5wcjUyNDQ4fgotJXBhdGNoMTUg LXAwIC1iIC5wcjU1OTc4fgotJXBhdGNoMTYgLXAwIC1iIC5wcjU2MTU0fgotJXBhdGNoMTcgLXAw IC1iIC5wcjU2MjI4fgorJXBhdGNoMTQgLXAwIC1iIC5wcjU2MjU2fgorJXBhdGNoMTUgLXAwIC1i IC5wcjUzOTQ4fgorJXBhdGNoMTYgLXAwIC1iIC5wcjU2MjQ1fgogCiAlaWYgMCV7P19lbmFibGVf ZGVidWdfcGFja2FnZXN9CiBjYXQgPiBzcGxpdC1kZWJ1Z2luZm8uc2ggPDxcRU9GCkBAIC04MTcs OSArODE1LDYgQEAgdGFyIHh6ZiAle1NPVVJDRTR9CiB0YXIgeGpmICV7U09VUkNFMTB9CiAlZW5k aWYKIAotIyBIYWNrIHRvIHdvcmsgYXJvdW5kIFBSNTYxNzgKLWVjaG8gJ3VyZWFscC5vIDogQUxM X0FEQUZMQUdTICs9IC1mbm8tcHJvZmlsZS11c2UnID4+IGdjYy9hZGEvZ2NjLWludGVyZmFjZS9N YWtlZmlsZS5pbgotCiBzZWQgLWkgLWUgJ3MvNFwuOFwuMC80LjguMC8nIGdjYy9CQVNFLVZFUgog ZWNobyAnUmVkIEhhdCAle3ZlcnNpb259LSV7Z2NjX3JlbGVhc2V9JyA+IGdjYy9ERVYtUEhBU0UK IApAQCAtMjk4MCw2ICsyOTc1LDE5IEBAIGZpCiAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vcGx1Z2luCiAKICVjaGFuZ2Vsb2cKKyog RnJpIEZlYiAgOCAyMDEzIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuOC4wLTAu MTAKKy0gdXBkYXRlZCBmcm9tIHRydW5rCisgIC0gUFJzIGJvb3RzdHJhcC81NjIyNywgYysrLzU2 MjM1LCBjKysvNTYyMzcsIGMrKy81NjIzOSwgYysrLzU2MjQxLAorCWRlYnVnLzUzMzYzLCBmb3J0 cmFuLzU0MzM5LCBmb3J0cmFuLzU1Nzg5LCBsaWJzdGRjKysvNTYxOTMsCisJbGlic3RkYysrLzU2 MjE2LCBsdG8vNTYyMzEsIG1pZGRsZS1lbmQvNTYxODEsCisJcnRsLW9wdGltaXphdGlvbi81NjE5 NSwgcnRsLW9wdGltaXphdGlvbi81NjIyNSwgdGFyZ2V0LzUwNjc4LAorCXRhcmdldC81NDAwOSwg dGFyZ2V0LzU0MTMxLCB0cmVlLW9wdGltaXphdGlvbi81NjI1MAorICAtIGZpeCBBZGEgZnJvbnRl bmQgbWlzY29tcGlsYXRpb24gd2l0aCBwcm9maWxlZGJvb3RzdHJhcCAoIzkwNjUxNiwKKyAgICBQ UiBydGwtb3B0aW1pemF0aW9uLzU2MTc4KQorLSByZXN0b3JlIHBhcnNpbmcgb2YgcHBjIGlubGlu ZSBhc20gZGlhbGVjdHMgKCM5MDkyOTgsIFBSIHRhcmdldC81NjI1NikKKy0gZml4IHVwIGxpYmli ZXJ0eSBvbGQgcmVnZXggKFBSIG90aGVyLzU2MjQ1KQorLSBmaXggSVJBIC1PMCAtZyBjb2RlIGRl YnVnIHJlZ3Jlc3Npb24gKFBSIGRlYnVnLzUzOTQ4KQorCiAqIFdlZCBGZWIgIDYgMjAxMyBKYWt1 YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjguMC0wLjkKIC0gdXBkYXRlZCBmcm9tIHRy dW5rCiAgIC0gUFJzIGMrKy81NDEyMiwgYysrLzU2MTc3LCBjKysvNTYyMDgsIGRlYnVnLzU0Nzkz LCBmb3J0cmFuLzQ3NTE3LAoKZGlmZiAtLWdpdCBhL2djYzQ4LXByNTI0NDgucGF0Y2ggYi9nY2M0 OC1wcjUyNDQ4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2E2NDEyLi4w MDAwMDAwCi0tLSBhL2djYzQ4LXByNTI0NDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTEg KzAsMCBAQAotMjAxMy0wMi0wNiAgTWljaGFlbCBNYXR6ICA8bWF0ekBzdXNlLmRlPgotCi0JUFIg dHJlZS1vcHRpbWl6YXRpb24vNTI0NDgKLQkqIHRyZWUtc3NhLXBoaW9wdC5jIChzdHJ1Y3QgbmFt ZV90b19iYik6IEFkZCBwaGFzZSBtZW1iZXIuCi0JKG50X2NhbGxfcGhhc2UpOiBOZXcgc3RhdGlj LgotCShhZGRfb3JfbWFya19leHByKTogT25seSBtYXJrIGFjY2Vzc2VzIHdpdGggbmV3ZXIgcGhh c2UgdGhhbiBhbnkKLQljYWxsIHNlZW4uCi0JKG5vbmZyZWVpbmdfY2FsbF9wKTogTmV3LgotCShu dF9pbml0X2Jsb2NrKTogVXBkYXRlIG50X2NhbGxfcGhhc2UsIG1hcmsgYmxvY2tzIGFzIHZpc2l0 ZWQuCi0JKG50X2ZpbmlfYmxvY2spOiBLZWVwIGJsb2NrcyBtYXJrZWQgYXMgdmlzaXRlZC4KLQko Z2V0X25vbl90cmFwcGluZyk6IEluaXRpYWxpemUgbnRfY2FsbF9waGFzZSwgYW5kIHJlc2V0IGF1 eCBwb2ludGVyLgotCi0JKiBnY2MuZGcvcHI1MjQ0OC5jOiBOZXcgdGVzdC4KLQotLS0tIGdjYy90 cmVlLXNzYS1waGlvcHQuYwkocmV2aXNpb24gMTk1NzUzKQotKysrIGdjYy90cmVlLXNzYS1waGlv cHQuYwkod29ya2luZyBjb3B5KQotQEAgLTEyMzMsNiArMTIzMyw3IEBAIGFic19yZXBsYWNlbWVu dCAoYmFzaWNfYmxvY2sgY29uZF9iYiwgYmEKLSBzdHJ1Y3QgbmFtZV90b19iYgotIHsKLSAgIHVu c2lnbmVkIGludCBzc2FfbmFtZV92ZXI7Ci0rICB1bnNpZ25lZCBpbnQgcGhhc2U7Ci0gICBib29s IHN0b3JlOwotICAgSE9TVF9XSURFX0lOVCBvZmZzZXQsIHNpemU7Ci0gICBiYXNpY19ibG9jayBi YjsKLUBAIC0xMjQxLDYgKzEyNDIsMTAgQEAgc3RydWN0IG5hbWVfdG9fYmIKLSAvKiBUaGUgaGFz aCB0YWJsZSBmb3IgcmVtZW1iZXJpbmcgd2hhdCB3ZSd2ZSBzZWVuLiAgKi8KLSBzdGF0aWMgaHRh Yl90IHNlZW5fc3NhX25hbWVzOwotIAotKy8qIFVzZWQgZm9yIHF1aWNrIGNsZWFyaW5nIG9mIHRo ZSBoYXNoLXRhYmxlIHdoZW4gd2Ugc2VlIGNhbGxzLgotKyAgIEhhc2ggZW50cmllcyB3aXRoIHBo YXNlIDwgbnRfY2FsbF9waGFzZSBhcmUgaW52YWxpZC4gICovCi0rc3RhdGljIHVuc2lnbmVkIGlu dCBudF9jYWxsX3BoYXNlOwotKwotIC8qIFRoZSBzZXQgb2YgTUVNX1JFRnMgd2hpY2ggY2FuJ3Qg dHJhcC4gICovCi0gc3RhdGljIHN0cnVjdCBwb2ludGVyX3NldF90ICpub250cmFwX3NldDsKLSAK LUBAIC0xMjkxLDYgKzEyOTYsNyBAQCBhZGRfb3JfbWFya19leHByIChiYXNpY19ibG9jayBiYiwg dHJlZSBlCi0gICAgICAgLyogVHJ5IHRvIGZpbmQgdGhlIGxhc3Qgc2VlbiBNRU1fUkVGIHRocm91 Z2ggdGhlIHNhbWUKLSAgICAgICAgICBTU0FfTkFNRSwgd2hpY2ggY2FuIHRyYXAuICAqLwotICAg ICAgIG1hcC5zc2FfbmFtZV92ZXIgPSBTU0FfTkFNRV9WRVJTSU9OIChuYW1lKTsKLSsgICAgICBt YXAucGhhc2UgPSAwOwotICAgICAgIG1hcC5iYiA9IDA7Ci0gICAgICAgbWFwLnN0b3JlID0gc3Rv cmU7Ci0gICAgICAgbWFwLm9mZnNldCA9IHRyZWVfbG93X2NzdCAoVFJFRV9PUEVSQU5EIChleHAs IDEpLCAwKTsKLUBAIC0xMjk4LDEzICsxMzA0LDEzIEBAIGFkZF9vcl9tYXJrX2V4cHIgKGJhc2lj X2Jsb2NrIGJiLCB0cmVlIGUKLSAKLSAgICAgICBzbG90ID0gaHRhYl9maW5kX3Nsb3QgKHNlZW5f c3NhX25hbWVzLCAmbWFwLCBJTlNFUlQpOwotICAgICAgIG4yYmIgPSAoc3RydWN0IG5hbWVfdG9f YmIgKikgKnNsb3Q7Ci0tICAgICAgaWYgKG4yYmIpCi0rICAgICAgaWYgKG4yYmIgJiYgbjJiYi0+ cGhhc2UgPj0gbnRfY2FsbF9waGFzZSkKLSAgICAgICAgIGZvdW5kX2JiID0gbjJiYi0+YmI7Ci0g Ci0gICAgICAgLyogSWYgd2UndmUgZm91bmQgYSB0cmFwcGluZyBNRU1fUkVGLCBfYW5kXyBpdCBk b21pbmF0ZXMgRVhQCi0gICAgICAgICAgKGl0J3MgaW4gYSBiYXNpYyBibG9jayBvbiB0aGUgcGF0 aCBmcm9tIHVzIHRvIHRoZSBkb21pbmF0b3Igcm9vdCkKLSAJIHRoZW4gd2UgY2FuJ3QgdHJhcC4g ICovCi0tICAgICAgaWYgKGZvdW5kX2JiICYmIGZvdW5kX2JiLT5hdXggPT0gKHZvaWQgKikxKQot KyAgICAgIGlmIChmb3VuZF9iYiAmJiAoKChzaXplX3QpZm91bmRfYmItPmF1eCkgJiAxKSA9PSAx KQotIAl7Ci0gCSAgcG9pbnRlcl9zZXRfaW5zZXJ0IChub250cmFwLCBleHApOwotIAl9Ci1AQCAt MTMxMywxMiArMTMxOSwxNCBAQCBhZGRfb3JfbWFya19leHByIChiYXNpY19ibG9jayBiYiwgdHJl ZSBlCi0gCSAgLyogRVhQIG1pZ2h0IHRyYXAsIHNvIGluc2VydCBpdCBpbnRvIHRoZSBoYXNoIHRh YmxlLiAgKi8KLSAJICBpZiAobjJiYikKLSAJICAgIHsKLSsJICAgICAgbjJiYi0+cGhhc2UgPSBu dF9jYWxsX3BoYXNlOwotIAkgICAgICBuMmJiLT5iYiA9IGJiOwotIAkgICAgfQotIAkgIGVsc2UK LSAJICAgIHsKLSAJICAgICAgbjJiYiA9IFhORVcgKHN0cnVjdCBuYW1lX3RvX2JiKTsKLSAJICAg ICAgbjJiYi0+c3NhX25hbWVfdmVyID0gU1NBX05BTUVfVkVSU0lPTiAobmFtZSk7Ci0rCSAgICAg IG4yYmItPnBoYXNlID0gbnRfY2FsbF9waGFzZTsKLSAJICAgICAgbjJiYi0+YmIgPSBiYjsKLSAJ ICAgICAgbjJiYi0+c3RvcmUgPSBzdG9yZTsKLSAJICAgICAgbjJiYi0+b2Zmc2V0ID0gbWFwLm9m ZnNldDsKLUBAIC0xMzI5LDIwICsxMzM3LDU1IEBAIGFkZF9vcl9tYXJrX2V4cHIgKGJhc2ljX2Js b2NrIGJiLCB0cmVlIGUKLSAgICAgfQotIH0KLSAKLSsvKiBSZXR1cm4gdHJ1ZSB3aGVuIENBTEwg aXMgYSBjYWxsIHN0bXQgdGhhdCBkZWZpbml0ZWx5IGRvZXNuJ3QKLSsgICBmcmVlIGFueSBtZW1v cnkgb3IgbWFrZXMgaXQgdW5hdmFpbGFibGUgb3RoZXJ3aXNlLiAgKi8KLStzdGF0aWMgYm9vbAot K25vbmZyZWVpbmdfY2FsbF9wIChnaW1wbGUgY2FsbCkKLSt7Ci0rICBpZiAoZ2ltcGxlX2NhbGxf YnVpbHRpbl9wIChjYWxsLCBCVUlMVF9JTl9OT1JNQUwpCi0rICAgICAgJiYgZ2ltcGxlX2NhbGxf ZmxhZ3MgKGNhbGwpICYgRUNGX0xFQUYpCi0rICAgIHN3aXRjaCAoREVDTF9GVU5DVElPTl9DT0RF IChnaW1wbGVfY2FsbF9mbmRlY2wgKGNhbGwpKSkKLSsgICAgICB7Ci0rCS8qIEp1c3QgaW4gY2Fz ZSB0aGVzZSBiZWNvbWUgRUNGX0xFQUYgaW4gdGhlIGZ1dHVyZS4gICovCi0rCWNhc2UgQlVJTFRf SU5fRlJFRToKLSsJY2FzZSBCVUlMVF9JTl9UTV9GUkVFOgotKwljYXNlIEJVSUxUX0lOX1JFQUxM T0M6Ci0rCWNhc2UgQlVJTFRfSU5fU1RBQ0tfUkVTVE9SRToKLSsJICByZXR1cm4gZmFsc2U7Ci0r CWRlZmF1bHQ6Ci0rCSAgcmV0dXJuIHRydWU7Ci0rCX0KLSsKLSsgIHJldHVybiBmYWxzZTsKLSt9 Ci0rCi0gLyogQ2FsbGVkIGJ5IHdhbGtfZG9taW5hdG9yX3RyZWUsIHdoZW4gZW50ZXJpbmcgdGhl IGJsb2NrIEJCLiAgKi8KLSBzdGF0aWMgdm9pZAotIG50X2luaXRfYmxvY2sgKHN0cnVjdCBkb21f d2Fsa19kYXRhICpkYXRhIEFUVFJJQlVURV9VTlVTRUQsIGJhc2ljX2Jsb2NrIGJiKQotIHsKLSsg IGVkZ2UgZTsKLSsgIGVkZ2VfaXRlcmF0b3IgZWk7Ci0gICBnaW1wbGVfc3RtdF9pdGVyYXRvciBn c2k7Ci0tICAvKiBNYXJrIHRoaXMgQkIgYXMgYmVpbmcgb24gdGhlIHBhdGggdG8gZG9taW5hdG9y IHJvb3QuICAqLwotLSAgYmItPmF1eCA9ICh2b2lkKikxOwotKwotKyAgLyogSWYgd2UgaGF2ZW4n dCBzZWVuIGFsbCBvdXIgcHJlZGVjZXNzb3JzLCBjbGVhciB0aGUgaGFzaC10YWJsZS4gICovCi0r ICBGT1JfRUFDSF9FREdFIChlLCBlaSwgYmItPnByZWRzKQotKyAgICBpZiAoKCgoc2l6ZV90KWUt PnNyYy0+YXV4KSAmIDIpID09IDApCi0rICAgICAgewotKwludF9jYWxsX3BoYXNlKys7Ci0rCWJy ZWFrOwotKyAgICAgIH0KLSsKLSsgIC8qIE1hcmsgdGhpcyBCQiBhcyBiZWluZyBvbiB0aGUgcGF0 aCB0byBkb21pbmF0b3Igcm9vdCBhbmQgYXMgdmlzaXRlZC4gICovCi0rICBiYi0+YXV4ID0gKHZv aWQqKSgxIHwgMik7Ci0gCi0gICAvKiBBbmQgd2FsayB0aGUgc3RhdGVtZW50cyBpbiBvcmRlci4g ICovCi0gICBmb3IgKGdzaSA9IGdzaV9zdGFydF9iYiAoYmIpOyAhZ3NpX2VuZF9wIChnc2kpOyBn c2lfbmV4dCAoJmdzaSkpCi0gICAgIHsKLSAgICAgICBnaW1wbGUgc3RtdCA9IGdzaV9zdG10IChn c2kpOwotIAotLSAgICAgIGlmIChnaW1wbGVfYXNzaWduX3NpbmdsZV9wIChzdG10KSAmJiAhZ2lt cGxlX2hhc192b2xhdGlsZV9vcHMgKHN0bXQpKQotKyAgICAgIGlmIChpc19naW1wbGVfY2FsbCAo c3RtdCkgJiYgIW5vbmZyZWVpbmdfY2FsbF9wIChzdG10KSkKLSsJbnRfY2FsbF9waGFzZSsrOwot KyAgICAgIGVsc2UgaWYgKGdpbXBsZV9hc3NpZ25fc2luZ2xlX3AgKHN0bXQpICYmICFnaW1wbGVf aGFzX3ZvbGF0aWxlX29wcyAoc3RtdCkpCi0gCXsKLSAJICBhZGRfb3JfbWFya19leHByIChiYiwg Z2ltcGxlX2Fzc2lnbl9saHMgKHN0bXQpLCBub250cmFwX3NldCwgdHJ1ZSk7Ci0gCSAgYWRkX29y X21hcmtfZXhwciAoYmIsIGdpbXBsZV9hc3NpZ25fcmhzMSAoc3RtdCksIG5vbnRyYXBfc2V0LCBm YWxzZSk7Ci1AQCAtMTM1NSw3ICsxMzk4LDcgQEAgc3RhdGljIHZvaWQKLSBudF9maW5pX2Jsb2Nr IChzdHJ1Y3QgZG9tX3dhbGtfZGF0YSAqZGF0YSBBVFRSSUJVVEVfVU5VU0VELCBiYXNpY19ibG9j ayBiYikKLSB7Ci0gICAvKiBUaGlzIEJCIGlzbid0IG9uIHRoZSBwYXRoIHRvIGRvbWluYXRvciBy b290IGFueW1vcmUuICAqLwotLSAgYmItPmF1eCA9IE5VTEw7Ci0rICBiYi0+YXV4ID0gKHZvaWQq KTI7Ci0gfQotIAotIC8qIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IG9mIGdhdGhlcmluZyBub24g dHJhcHBpbmcgbWVtb3J5IGFjY2Vzc2VzLgotQEAgLTEzNjgsNiArMTQwOSw3IEBAIGdldF9ub25f dHJhcHBpbmcgKHZvaWQpCi0gICBzdHJ1Y3QgcG9pbnRlcl9zZXRfdCAqbm9udHJhcDsKLSAgIHN0 cnVjdCBkb21fd2Fsa19kYXRhIHdhbGtfZGF0YTsKLSAKLSsgIG50X2NhbGxfcGhhc2UgPSAwOwot ICAgbm9udHJhcCA9IHBvaW50ZXJfc2V0X2NyZWF0ZSAoKTsKLSAgIHNlZW5fc3NhX25hbWVzID0g aHRhYl9jcmVhdGUgKDEyOCwgbmFtZV90b19iYl9oYXNoLCBuYW1lX3RvX2JiX2VxLAotIAkJCQlm cmVlKTsKLUBAIC0xMzg5LDYgKzE0MzEsNyBAQCBnZXRfbm9uX3RyYXBwaW5nICh2b2lkKQotICAg ZmluaV93YWxrX2RvbWluYXRvcl90cmVlICgmd2Fsa19kYXRhKTsKLSAgIGh0YWJfZGVsZXRlIChz ZWVuX3NzYV9uYW1lcyk7Ci0gCi0rICBjbGVhcl9hdXhfZm9yX2Jsb2NrcyAoKTsKLSAgIHJldHVy biBub250cmFwOwotIH0KLSAKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjUyNDQ4LmMJKHJl dmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1MjQ0OC5jCSh3b3JraW5nIGNv cHkpCi1AQCAtMCwwICsxLDMwIEBACi0rLyogUFIgdHJlZS1vcHRpbWl6YXRpb24vNTI0NDggKi8K LSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS1j c2VsaW0gLWZkdW1wLXRyZWUtY3NlbGltLWRldGFpbHMiIH0gKi8KLSsKLStleHRlcm4gdm9pZCBw ZXJoYXBzX2ZyZWVfc29tZXRoaW5nICh2b2lkKTsKLSsKLSt2b2lkIGYxIChpbnQgKnAsIGludCBh LCBpbnQgYiwgaW50IGNvbmQsIGludCBjb25kMikKLSt7Ci0rICAqcCA9IGE7Ci0rICBpZiAoY29u ZCkKLSsgICAgcGVyaGFwc19mcmVlX3NvbWV0aGluZyAoKTsKLSsgIGlmIChjb25kMikKLSsgICAg KnAgPSBiOwotK30KLSsKLSt2b2lkIGYyIChpbnQgKnAsIGludCBhLCBpbnQgYiwgaW50ICpjb25k LCBpbnQgKmNvbmQyKQotK3sKLSsgIGludCBpOwotKyAgKnAgPSBhOwotKyAgZm9yIChpID0gMDsg Y29uZFtpXTsgaSsrKQotKyAgICB7Ci0rICAgICAgaWYgKGNvbmQyW2ldKQotKyAgICAgICAgKnAg PSBiOwotKyAgICAgIHBlcmhhcHNfZnJlZV9zb21ldGhpbmcgKCk7Ci0rICAgIH0KLSt9Ci0rCi0r LyogTm9uZSBvZiB0aGUgYWJvdmUgY29uZGl0aW9uYWwgc3RvcmVzIG1pZ2h0IGJlIG1hZGUgdW5j b25kaXRpb25hbC4gICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAiY3N0 b3JlIiAiY3NlbGltIiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1bXAg ImNzZWxpbSIgfSB9ICovCgpkaWZmIC0tZ2l0IGEvZ2NjNDgtcHI1Mzk0OC5wYXRjaCBiL2djYzQ4 LXByNTM5NDgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk4NDdh MgotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ4LXByNTM5NDgucGF0Y2gKQEAgLTAsMCArMSw3MiBA QAorMjAxMy0wMi0wOCAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KKworCVBSIGRlYnVnLzUz OTQ4CisJKiBlbWl0LXJ0bC5jIChyZWdfaXNfcGFybV9wKTogTmV3IGZ1bmN0aW9uLgorCSogcmVn cy5oIChyZWdfaXNfcGFybV9wKTogTmV3IHByb3RvdHlwZS4KKwkqIGlyYS1jb25mbGljdHMuYyAo aXJhX2J1aWxkX2NvbmZsaWN0cyk6IEFsbG93IHBhcmFtZXRlcnMgaW4KKwljYWxsZWUtY2xvYmJl cmVkIHJlZ2lzdGVycy4KKworCSogZ2NjLmRnL2RlYnVnL2R3YXJmMi9wcjUzOTQ4LmM6IE5ldyB0 ZXN0LgorCistLS0gZ2NjL2VtaXQtcnRsLmMKKysrKyBnY2MvZW1pdC1ydGwuYworQEAgLTkxOSw2 ICs5MTksMTggQEAgZ2VuX3JlZ19ydHggKGVudW0gbWFjaGluZV9tb2RlIG1vZGUpCisgICByZXR1 cm4gdmFsOworIH0KKyAKKysvKiBSZXR1cm4gVFJVRSBpZiBSRUcgaXMgYSBQQVJNX0RFQ0wsIEZB TFNFIG90aGVyd2lzZS4gICovCisrCisrYm9vbAorK3JlZ19pc19wYXJtX3AgKHJ0eCByZWcpCisr eworKyAgdHJlZSBkZWNsOworKworKyAgZ2NjX2Fzc2VydCAoUkVHX1AgKHJlZykpOworKyAgZGVj bCA9IFJFR19FWFBSIChyZWcpOworKyAgcmV0dXJuIChkZWNsICYmIFRSRUVfQ09ERSAoZGVjbCkg PT0gUEFSTV9ERUNMKTsKKyt9CisrCisgLyogVXBkYXRlIE5FVyB3aXRoIHRoZSBzYW1lIGF0dHJp YnV0ZXMgYXMgUkVHLCBidXQgd2l0aCBPRkZTRVQgYWRkZWQKKyAgICB0byB0aGUgUkVHX09GRlNF VC4gICovCisgCistLS0gZ2NjL2lyYS1jb25mbGljdHMuYworKysrIGdjYy9pcmEtY29uZmxpY3Rz LmMKK0BAIC04OTUsOCArODk1LDEyIEBAIGlyYV9idWlsZF9jb25mbGljdHMgKHZvaWQpCisgCisg CSAgaWYgKCghIGZsYWdfY2FsbGVyX3NhdmVzICYmIEFMTE9DTk9fQ0FMTFNfQ1JPU1NFRF9OVU0g KGEpICE9IDApCisgCSAgICAgIC8qIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgZG9uJ3QgcHV0IHVz ZXIgZGVmaW5lZCB2YXJpYWJsZXMgaW4KKy0JCSBjYWxsZWUtY2xvYmJlcmVkIHJlZ2lzdGVycy4g ICovCistCSAgICAgIHx8IChvcHRpbWl6ZSA9PSAwICYmIFJFR19VU0VSVkFSX1AgKGFsbG9jbm9f cmVnKSkpCisrCQkgY2FsbGVlLWNsb2JiZXJlZCByZWdpc3RlcnMuICBIb3dldmVyLCBkbyBhbGxv dyBwYXJhbWV0ZXJzCisrCQkgaW4gY2FsbGVlLWNsb2JiZXJlZCByZWdpc3RlcnMgdG8gaW1wcm92 ZSBkZWJ1Z2dpbmcuICBUaGlzCisrCQkgaXMgYSBiaXQgb2YgYSBmcmFnaWxlIGhhY2suICAqLwor KwkgICAgICB8fCAob3B0aW1pemUgPT0gMAorKwkJICAmJiBSRUdfVVNFUlZBUl9QIChhbGxvY25v X3JlZykKKysJCSAgJiYgISByZWdfaXNfcGFybV9wIChhbGxvY25vX3JlZykpKQorIAkgICAgewor IAkgICAgICBJT1JfSEFSRF9SRUdfU0VUIChPQkpFQ1RfVE9UQUxfQ09ORkxJQ1RfSEFSRF9SRUdT IChvYmopLAorIAkJCQljYWxsX3VzZWRfcmVnX3NldCk7CistLS0gZ2NjL3JlZ3MuaAorKysrIGdj Yy9yZWdzLmgKK0BAIC04OSw2ICs4OSw4IEBAIFJFR19OX1NFVFMgKGludCByZWdubykKKyAjZGVm aW5lIFNFVF9SRUdfTl9TRVRTKE4sVikgKHJlZ3N0YXRfbl9zZXRzX2FuZF9yZWZzW05dLnNldHMg PSBWKQorICNkZWZpbmUgSU5DX1JFR19OX1NFVFMoTixWKSAocmVnc3RhdF9uX3NldHNfYW5kX3Jl ZnNbTl0uc2V0cyArPSBWKQorIAorKy8qIEdpdmVuIGEgUkVHLCByZXR1cm4gVFJVRSBpZiB0aGUg cmVnIGlzIGEgUEFSTV9ERUNMLCBGQUxTRSBvdGhlcndpc2UuICAqLworK2V4dGVybiBib29sIHJl Z19pc19wYXJtX3AgKHJ0eCk7CisgCisgLyogRnVuY3Rpb25zIGRlZmluZWQgaW4gcmVnc3RhdC5j LiAgKi8KKyBleHRlcm4gdm9pZCByZWdzdGF0X2luaXRfbl9zZXRzX2FuZF9yZWZzICh2b2lkKTsK Ky0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9kZWJ1Zy9kd2FyZjIvcHI1Mzk0OC5jCTIwMTItMTEt MTcgMTU6NDM6MTcuNTcyMDA3Mzk0ICswMTAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVi dWcvZHdhcmYyL3ByNTM5NDguYwkyMDEzLTAyLTA4IDE5OjEwOjIzLjAwMDAwMDAwMCArMDEwMAor QEAgLTAsMCArMSwxMCBAQAorKy8qIFRlc3QgdGhhdCB3ZSBlbWl0IGEgLmxpbmUgZGlyZWN0aXZl IGZvciB0aGUgbGluZQorKyAgIHdpdGggbG9jYWwgdmFyaWFibGUgaW5pdGlhbGl6YXRpb25zLiAg Ki8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMCAtZyAtZEEiIH0gKi8KKysvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIgIi5sb2MgMSA4IDB8IyBsaW5lIDgiIH0gfSAqLworKworKworK2ludCBm IChyZWdpc3RlciBpbnQgYSwgcmVnaXN0ZXIgaW50IGIpIHsKKysgIHJlZ2lzdGVyIGludCB4ID0g YiwgeSA9IGE7CisrICByZXR1cm4geCArIHk7IH0KKysKCmRpZmYgLS1naXQgYS9nY2M0OC1wcjU1 OTc4LnBhdGNoIGIvZ2NjNDgtcHI1NTk3OC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMjk4ZDgyYS4uMDAwMDAwMAotLS0gYS9nY2M0OC1wcjU1OTc4LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNDkgKzAsMCBAQAotMjAxMy0wMi0wNiAgSmFudXMgV2VpbCAgPGphbnVzQGdj Yy5nbnUub3JnPgotCi0JUFIgZm9ydHJhbi81NTk3OAotCSogcnVudGltZS9pbl9wYWNrX2dlbmVy aWMuYyAoaW50ZXJuYWxfcGFjayk6IFJldHVybiBpZiBiYXNlX2FkZHIgaXMKLQlOVUxMLgotCi0J KiBnZm9ydHJhbi5kZy9jbGFzc19vcHRpb25hbF8yLmY5MDogVW5jb21tZW50IHNvbWUgY2FzZXMg d2hpY2ggd29yayBub3cuCi0KLS0tLSBsaWJnZm9ydHJhbi9ydW50aW1lL2luX3BhY2tfZ2VuZXJp Yy5jCShyZXZpc2lvbiAxOTU4MDApCi0rKysgbGliZ2ZvcnRyYW4vcnVudGltZS9pbl9wYWNrX2dl bmVyaWMuYwkod29ya2luZyBjb3B5KQotQEAgLTQ4LDYgKzQ4LDkgQEAgaW50ZXJuYWxfcGFjayAo Z2ZjX2FycmF5X2NoYXIgKiBzb3VyY2UpCi0gICBpbmRleF90eXBlIHNpemU7Ci0gICBpbmRleF90 eXBlIHR5cGVfc2l6ZTsKLSAKLSsgIGlmIChzb3VyY2UtPmJhc2VfYWRkciA9PSBOVUxMKQotKyAg ICByZXR1cm4gTlVMTDsKLSsKLSAgIHR5cGVfc2l6ZSA9IEdGQ19EVFlQRV9UWVBFX1NJWkUoc291 cmNlKTsKLSAgIHNpemUgPSBHRkNfREVTQ1JJUFRPUl9TSVpFIChzb3VyY2UpOwotICAgc3dpdGNo ICh0eXBlX3NpemUpCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc19vcHRpb25h bF8yLmY5MAkocmV2aXNpb24gMTk1ODAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Y2xhc3Nfb3B0aW9uYWxfMi5mOTAJKHdvcmtpbmcgY29weSkKLUBAIC0zLDcgKzMsNyBAQAotICEK LSAhIFBSIGZvcnRyYW4vNTA5ODEKLSAhIFBSIGZvcnRyYW4vNTQ2MTgKLS0hCi0rISBQUiBmb3J0 cmFuLzU1OTc4Ci0gCi0gICBpbXBsaWNpdCBub25lCi0gICB0eXBlIHQKLUBAIC01NDcsNyArNTQ3 LDcgQEAgY29udGFpbnMKLSAhICAgY2FsbCBzMmVsZW0oejUpICEgRklYTUU6IFNlZ2ZhdWx0Ci0g ISAgIGNhbGwgczJlbGVtX3QoeCkgISBGSVhNRTogQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRl cGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZQotICEgICBjYWxsIHMyZWxlbV90KHkpICEgRklY TUU6IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFs dWUKLS0hICAgY2FsbCBzMmVsZW1fdCh6KSAhIEZJWE1FOiBDb25kaXRpb25hbCBqdW1wIG9yIG1v dmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlCi0rICAgY2FsbCBzMmVsZW1fdCh6KQot ICEgICBjYWxsIHMyZWxlbV90KHoyKSAhIEZJWE1FOiBTZWdmYXVsdAotICEgICBjYWxsIHMyZWxl bV90KHozKSAhIEZJWE1FOiBTZWdmYXVsdAotICEgICBjYWxsIHMyZWxlbV90KHo0KSAhIEZJWE1F OiBTZWdmYXVsdAotQEAgLTU5MCw3ICs1OTAsNyBAQCBjb250YWlucwotICEgICBjYWxsIHMyZWxl bSh6NSkgISBGSVhNRTogU2VnZmF1bHQKLSAhICAgY2FsbCBzMmVsZW1fdDIoeCkgISBGSVhNRTog Q29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZQot ICEgICBjYWxsIHMyZWxlbV90Mih5KSAhIEZJWE1FOiBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUg ZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlCi0tISAgIGNhbGwgczJlbGVtX3QyKHopICEg RklYTUU6IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQg dmFsdWUKLSsgICBjYWxsIHMyZWxlbV90Mih6KQotICEgICBjYWxsIHMyZWxlbV90Mih6MikgISBG SVhNRTogU2VnZmF1bHQKLSAhICAgY2FsbCBzMmVsZW1fdDIoejMpICEgRklYTUU6IFNlZ2ZhdWx0 Ci0gISAgIGNhbGwgczJlbGVtX3QyKHo0KSAhIEZJWE1FOiBTZWdmYXVsdAoKZGlmZiAtLWdpdCBh L2djYzQ4LXByNTYxNTQucGF0Y2ggYi9nY2M0OC1wcjU2MTU0LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAxOWE0ODYzLi4wMDAwMDAwCi0tLSBhL2djYzQ4LXByNTYxNTQucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMTggKzAsMCBAQAotMjAxMy0wMS0zMCAgSmFrdWIgSmVs aW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiBkZWJ1Zy81NjE1NAotCSogZHdhcmYyb3V0 LmMgKGR3YXJmMl9kZWJ1Z19ob29rcyk6IFNldCBlbmRfZnVuY3Rpb24gaG9vayB0bwotCWR3YXJm Mm91dF9lbmRfZnVuY3Rpb24uCi0JKGluX2ZpcnN0X2Z1bmN0aW9uX3AsIG1heWJlX2F0X3RleHRf bGFiZWxfcCwKLQlmaXJzdF9sb2NsYWJlbF9udW1fbm90X2F0X3RleHRfbGFiZWwpOiBOZXcgdmFy aWFibGVzLgotCShkd2FyZjJvdXRfdmFyX2xvY2F0aW9uKTogSW4gdGhlIGZpcnN0IGZ1bmN0aW9u IGZpbmQgb3V0Ci0JbG93ZXN0IGxvY2xhYmVsX251bSBOIHdoZXJlIC5MVkxOIGlzIGtub3duIG5v dCB0byBiZSBlcXVhbAotCXRvIC5MdGV4dDAuCi0JKGZpbmRfZW1wdHlfbG9jX3Jhbmdlc19hdF90 ZXh0X2xhYmVsLCBkd2FyZjJvdXRfZW5kX2Z1bmN0aW9uKTogTmV3Ci0JZnVuY3Rpb25zLgotCi0J KiBnY2MuZGcvZ3VhbGl0eS9wcjU2MTU0LTEuYzogTmV3IHRlc3QuCi0JKiBnY2MuZGcvZ3VhbGl0 eS9wcjU2MTU0LTIuYzogTmV3IHRlc3QuCi0JKiBnY2MuZGcvZ3VhbGl0eS9wcjU2MTU0LTMuYzog TmV3IHRlc3QuCi0JKiBnY2MuZGcvZ3VhbGl0eS9wcjU2MTU0LTQuYzogTmV3IHRlc3QuCi0JKiBn Y2MuZGcvZ3VhbGl0eS9wcjU2MTU0LWF1eC5jOiBOZXcgZmlsZS4KLQotLS0tIGdjYy9kd2FyZjJv dXQuYy5qagkyMDEzLTAxLTExIDA5OjAyOjQ4LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9kd2Fy ZjJvdXQuYwkyMDEzLTAxLTMwIDE2OjE4OjU4LjM2MjU1Mjg5NCArMDEwMAotQEAgLTIzNTEsNiAr MjM1MSw3IEBAIHN0YXRpYyB2b2lkIGR3YXJmMm91dF9pbXBvcnRlZF9tb2R1bGVfb3IKLSBzdGF0 aWMgdm9pZCBkd2FyZjJvdXRfYWJzdHJhY3RfZnVuY3Rpb24gKHRyZWUpOwotIHN0YXRpYyB2b2lk IGR3YXJmMm91dF92YXJfbG9jYXRpb24gKHJ0eCk7Ci0gc3RhdGljIHZvaWQgZHdhcmYyb3V0X2Jl Z2luX2Z1bmN0aW9uICh0cmVlKTsKLStzdGF0aWMgdm9pZCBkd2FyZjJvdXRfZW5kX2Z1bmN0aW9u ICh1bnNpZ25lZCBpbnQpOwotIHN0YXRpYyB2b2lkIGR3YXJmMm91dF9zZXRfbmFtZSAodHJlZSwg dHJlZSk7Ci0gCi0gLyogVGhlIGRlYnVnIGhvb2tzIHN0cnVjdHVyZS4gICovCi1AQCAtMjM3OCw3 ICsyMzc5LDcgQEAgY29uc3Qgc3RydWN0IGdjY19kZWJ1Z19ob29rcyBkd2FyZjJfZGVidQotICNl bmRpZgotICAgZHdhcmYyb3V0X2VuZF9lcGlsb2d1ZSwKLSAgIGR3YXJmMm91dF9iZWdpbl9mdW5j dGlvbiwKLS0gIGRlYnVnX25vdGhpbmdfaW50LAkJLyogZW5kX2Z1bmN0aW9uICovCi0rICBkd2Fy ZjJvdXRfZW5kX2Z1bmN0aW9uLAkvKiBlbmRfZnVuY3Rpb24gKi8KLSAgIGR3YXJmMm91dF9mdW5j dGlvbl9kZWNsLAkvKiBmdW5jdGlvbl9kZWNsICovCi0gICBkd2FyZjJvdXRfZ2xvYmFsX2RlY2ws Ci0gICBkd2FyZjJvdXRfdHlwZV9kZWNsLAkJLyogdHlwZV9kZWNsICovCi1AQCAtMjA2MjcsNiAr MjA2MjgsMTQgQEAgZHdhcmYyb3V0X3NldF9uYW1lICh0cmVlIGRlY2wsIHRyZWUgbmFtZQotICAg ICBhZGRfbmFtZV9hdHRyaWJ1dGUgKGRpZSwgZG5hbWUpOwotIH0KLSAKLSsvKiBUcnVlIGlmIGJl Zm9yZSBvciBkdXJpbmcgcHJvY2Vzc2luZyBvZiB0aGUgZmlyc3QgZnVuY3Rpb24gYmVpbmcgZW1p dHRlZC4gICovCi0rc3RhdGljIGJvb2wgaW5fZmlyc3RfZnVuY3Rpb25fcCA9IHRydWU7Ci0rLyog VHJ1ZSBpZiBsb2Nfbm90ZSBkdXJpbmcgZHdhcmYyb3V0X3Zhcl9sb2NhdGlvbiBjYWxsIG1pZ2h0 IHN0aWxsIGJlCi0rICAgYmVmb3JlIGZpcnN0IHJlYWwgaW5zdHJ1Y3Rpb24gYXQgYWRkcmVzcyBl cXVhbCB0byAuTHRleHQwLiAgKi8KLStzdGF0aWMgYm9vbCBtYXliZV9hdF90ZXh0X2xhYmVsX3Ag PSB0cnVlOwotKy8qIE9uZSBhYm92ZSBoaWdoZXN0IE4gd2hlcmUgLkxWTE4gbGFiZWwgbWlnaHQg YmUgZXF1YWwgdG8gLkx0ZXh0MCBsYWJlbC4gICovCi0rc3RhdGljIHVuc2lnbmVkIGludCBmaXJz dF9sb2NsYWJlbF9udW1fbm90X2F0X3RleHRfbGFiZWw7Ci0rCi0gLyogQ2FsbGVkIGJ5IHRoZSBm aW5hbCBJTlNOIHNjYW4gd2hlbmV2ZXIgd2Ugc2VlIGEgdmFyIGxvY2F0aW9uLiAgV2UKLSAgICB1 c2UgaXQgdG8gZHJvcCBsYWJlbHMgaW4gdGhlIHJpZ2h0IHBsYWNlcywgYW5kIHRocm93IHRoZSBs b2NhdGlvbiBpbgotICAgIG91ciBsb29rdXAgdGFibGUuICAqLwotQEAgLTIwNzM0LDYgKzIwNzQz LDQ1IEBAIGR3YXJmMm91dF92YXJfbG9jYXRpb24gKHJ0eCBsb2Nfbm90ZSkKLSAgICAgICBBU01f T1VUUFVUX0RFQlVHX0xBQkVMIChhc21fb3V0X2ZpbGUsICJMVkwiLCBsb2NsYWJlbF9udW0pOwot ICAgICAgIGxvY2xhYmVsX251bSsrOwotICAgICAgIGxhc3RfbGFiZWwgPSBnZ2Nfc3RyZHVwIChs b2NsYWJlbCk7Ci0rICAgICAgLyogU2VlIGlmIGxvY2xhYmVsIG1pZ2h0IGJlIGVxdWFsIHRvIC5M dGV4dDAuICBJZiB5ZXMsCi0rCSBidW1wIGZpcnN0X2xvY2xhYmVsX251bV9ub3RfYXRfdGV4dF9s YWJlbC4gICovCi0rICAgICAgaWYgKCFoYXZlX211bHRpcGxlX2Z1bmN0aW9uX3NlY3Rpb25zCi0r CSAgJiYgaW5fZmlyc3RfZnVuY3Rpb25fcAotKwkgICYmIG1heWJlX2F0X3RleHRfbGFiZWxfcCkK LSsJewotKwkgIHN0YXRpYyBydHggbGFzdF9zdGFydDsKLSsJICBydHggaW5zbjsKLSsJICBmb3Ig KGluc24gPSBsb2Nfbm90ZTsgaW5zbjsgaW5zbiA9IHByZXZpb3VzX2luc24gKGluc24pKQotKwkg ICAgaWYgKGluc24gPT0gbGFzdF9zdGFydCkKLSsJICAgICAgYnJlYWs7Ci0rCSAgICBlbHNlIGlm ICghTk9OREVCVUdfSU5TTl9QIChpbnNuKSkKLSsJICAgICAgY29udGludWU7Ci0rCSAgICBlbHNl Ci0rCSAgICAgIHsKLSsJCXJ0eCBib2R5ID0gUEFUVEVSTiAoaW5zbik7Ci0rCQlpZiAoR0VUX0NP REUgKGJvZHkpID09IFVTRSB8fCBHRVRfQ09ERSAoYm9keSkgPT0gQ0xPQkJFUikKLSsJCSAgY29u dGludWU7Ci0rCQkvKiBJbmxpbmUgYXNtIGNvdWxkIG9jY3VweSB6ZXJvIGJ5dGVzLiAgKi8KLSsJ CWVsc2UgaWYgKEdFVF9DT0RFIChib2R5KSA9PSBBU01fSU5QVVQKLSsJCQkgfHwgYXNtX25vcGVy YW5kcyAoYm9keSkgPj0gMCkKLSsJCSAgY29udGludWU7Ci0rI2lmZGVmIEhBVkVfYXR0cl9sZW5n dGgKLSsJCWVsc2UgaWYgKGdldF9hdHRyX21pbl9sZW5ndGggKGluc24pID09IDApCi0rCQkgIGNv bnRpbnVlOwotKyNlbmRpZgotKwkJZWxzZQotKwkJICB7Ci0rCQkgICAgLyogQXNzdW1lIGluc24g aGFzIG5vbi16ZXJvIGxlbmd0aC4gICovCi0rCQkgICAgbWF5YmVfYXRfdGV4dF9sYWJlbF9wID0g ZmFsc2U7Ci0rCQkgICAgYnJlYWs7Ci0rCQkgIH0KLSsJICAgICAgfQotKwkgIGlmIChtYXliZV9h dF90ZXh0X2xhYmVsX3ApCi0rCSAgICB7Ci0rCSAgICAgIGxhc3Rfc3RhcnQgPSBsb2Nfbm90ZTsK LSsJICAgICAgZmlyc3RfbG9jbGFiZWxfbnVtX25vdF9hdF90ZXh0X2xhYmVsID0gbG9jbGFiZWxf bnVtOwotKwkgICAgfQotKwl9Ci0gICAgIH0KLSAKLSAgIGlmICghdmFyX2xvY19wKQotQEAgLTIw OTAzLDYgKzIwOTUxLDU5IEBAIGR3YXJmMm91dF9iZWdpbl9mdW5jdGlvbiAodHJlZSBmdW4pCi0g ICBzZXRfY3VyX2xpbmVfaW5mb190YWJsZSAoc2VjKTsKLSB9Ci0gCi0rLyogSGVscGVyIGZ1bmN0 aW9uIG9mIGR3YXJmMm91dF9lbmRfZnVuY3Rpb24sIGNhbGxlZCBvbmx5IGFmdGVyIGVtaXR0aW5n Ci0rICAgdGhlIHZlcnkgZmlyc3QgZnVuY3Rpb24gaW50byBhc3NlbWJseS4gIENoZWNrIGlmIHNv bWUgLmRlYnVnX2xvYyByYW5nZQotKyAgIG1pZ2h0IGVuZCB3aXRoIGEgLkxWTCogbGFiZWwgdGhh dCBjb3VsZCBiZSBlcXVhbCB0byAuTHRleHQwLgotKyAgIEluIHRoYXQgY2FzZSB3ZSBtdXN0IGZv cmNlIHVzaW5nIGFic29sdXRlIGFkZHJlc3NlcyBpbiAuZGVidWdfbG9jIHJhbmdlcywKLSsgICBi ZWNhdXNlIHRoaXMgcmFuZ2UgY291bGQgYmUgLkxWTE4tLkx0ZXh0MCAuLiAuTFZMTS0uTHRleHQw IGZvcgotKyAgIC5MVkxOID09IC5MVkxNID09IC5MdGV4dDAsIHRodXMgMCAuLiAwLCB3aGljaCBp cyBhIC5kZWJ1Z19sb2MKLSsgICBsaXN0IHRlcm1pbmF0b3IuCi0rICAgU2V0IGhhdmVfbXVsdGlw bGVfZnVuY3Rpb25fc2VjdGlvbnMgdG8gdHJ1ZSBpbiB0aGF0IGNhc2UgYW5kCi0rICAgdGVybWlu YXRlIGh0YWIgdHJhdmVyc2FsLiAgKi8KLSsKLStzdGF0aWMgaW50Ci0rZmluZF9lbXB0eV9sb2Nf cmFuZ2VzX2F0X3RleHRfbGFiZWwgKHZvaWQgKipzbG90LCB2b2lkICopCi0rewotKyAgdmFyX2xv Y19saXN0ICplbnRyeTsKLSsgIHN0cnVjdCB2YXJfbG9jX25vZGUgKm5vZGU7Ci0rCi0rICBlbnRy eSA9ICh2YXJfbG9jX2xpc3QgKikgKnNsb3Q7Ci0rICBub2RlID0gZW50cnktPmZpcnN0OwotKyAg aWYgKG5vZGUgJiYgbm9kZS0+bmV4dCAmJiBub2RlLT5uZXh0LT5sYWJlbCkKLSsgICAgewotKyAg ICAgIHVuc2lnbmVkIGludCBpOwotKyAgICAgIGNvbnN0IGNoYXIgKmxhYmVsID0gbm9kZS0+bmV4 dC0+bGFiZWw7Ci0rICAgICAgY2hhciBsb2NsYWJlbFtNQVhfQVJUSUZJQ0lBTF9MQUJFTF9CWVRF U107Ci0rCi0rICAgICAgZm9yIChpID0gMDsgaSA8IGZpcnN0X2xvY2xhYmVsX251bV9ub3RfYXRf dGV4dF9sYWJlbDsgaSsrKQotKwl7Ci0rCSAgQVNNX0dFTkVSQVRFX0lOVEVSTkFMX0xBQkVMIChs b2NsYWJlbCwgIkxWTCIsIGkpOwotKwkgIGlmIChzdHJjbXAgKGxhYmVsLCBsb2NsYWJlbCkgPT0g MCkKLSsJICAgIHsKLSsJICAgICAgaGF2ZV9tdWx0aXBsZV9mdW5jdGlvbl9zZWN0aW9ucyA9IHRy dWU7Ci0rCSAgICAgIHJldHVybiAwOwotKwkgICAgfQotKwl9Ci0rICAgIH0KLSsgIHJldHVybiAx OwotK30KLSsKLSsvKiBIb29rIGNhbGxlZCBhZnRlciBlbWl0dGluZyBhIGZ1bmN0aW9uIGludG8g YXNzZW1ibHkuCi0rICAgVGhpcyBkb2VzIHNvbWV0aGluZyBvbmx5IGZvciB0aGUgdmVyeSBmaXJz dCBmdW5jdGlvbiBlbWl0dGVkLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2R3YXJmMm91dF9lbmRf ZnVuY3Rpb24gKHVuc2lnbmVkIGludCkKLSt7Ci0rICBpZiAoaW5fZmlyc3RfZnVuY3Rpb25fcAot KyAgICAgICYmICFoYXZlX211bHRpcGxlX2Z1bmN0aW9uX3NlY3Rpb25zCi0rICAgICAgJiYgZmly c3RfbG9jbGFiZWxfbnVtX25vdF9hdF90ZXh0X2xhYmVsCi0rICAgICAgJiYgZGVjbF9sb2NfdGFi bGUpCi0rICAgIGh0YWJfdHJhdmVyc2UgKGRlY2xfbG9jX3RhYmxlLCBmaW5kX2VtcHR5X2xvY19y YW5nZXNfYXRfdGV4dF9sYWJlbCwKLSsJCSAgIE5VTEwpOwotKyAgaW5fZmlyc3RfZnVuY3Rpb25f cCA9IGZhbHNlOwotKyAgbWF5YmVfYXRfdGV4dF9sYWJlbF9wID0gZmFsc2U7Ci0rfQotKwotIC8q IEFkZCBPUENPREUrVkFMIGFzIGFuIGVudHJ5IGF0IHRoZSBlbmQgb2YgdGhlIG9wY29kZSBhcnJh eSBpbiBUQUJMRS4gICovCi0gCi0gc3RhdGljIHZvaWQKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5k Zy9ndWFsaXR5L3ByNTYxNTQtMS5jLmpqCTIwMTMtMDEtMzAgMTc6MTQ6MjAuODUwODIwNDI5ICsw MTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZ3VhbGl0eS9wcjU2MTU0LTEuYwkyMDEzLTAx LTMwIDE3OjQ3OjI1LjI0MjUzNzc3NiArMDEwMAotQEAgLTAsMCArMSwyOSBAQAotKy8qIFBSIGRl YnVnLzU2MTU0ICovCi0rLyogeyBkZy1kbyBydW4gfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLWci IH0gKi8KLSsvKiB7IGRnLWFkZGl0aW9uYWwtc291cmNlcyAicHI1NjE1NC1hdXguYyIgfSAqLwot KwotKyNpbmNsdWRlICIuLi9ub3AuaCIKLSsKLSt1bmlvbiBVIHsgaW50IGEsIGI7IH07Ci0rdm9s YXRpbGUgaW50IHo7Ci0rCi0rX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vY2xvbmUpKSBpbnQK LStmb28gKGludCBmZCwgdW5pb24gVSB4KQotK3sKLSsgIGludCByZXN1bHQgPSB4LmEgIT0gMDsK LSsgIGlmIChmZCAhPSAwKQotKyAgICByZXN1bHQgPSB4LmEgPT0gMDsKLSsgIGFzbSAoTk9QIDog OiA6ICJtZW1vcnkiKTsJICAvKiB7IGRnLWZpbmFsIHsgZ2RiLXRlc3QgcHI1NjE1NC0xLmM6MTcg InguYSIgIjQiIH0gfSAqLwotKyAgeiA9IHguYTsKLSsgIHguYSA9IDY7Ci0rICBhc20gKE5PUCA6 IDogOiAibWVtb3J5Iik7CSAgLyogeyBkZy1maW5hbCB7IGdkYi10ZXN0IHByNTYxNTQtMS5jOjIw ICJ4LmEiICI2IiB9IH0gKi8KLSsgIHJldHVybiByZXN1bHQ7Ci0rfQotKwotK3ZvaWQKLSt0ZXN0 X21haW4gKHZvaWQpCi0rewotKyAgdW5pb24gVSB1ID0geyAuYSA9IDQgfTsKLSsgIGZvbyAoMCwg dSk7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2d1YWxpdHkvcHI1NjE1NC0yLmMuamoJ MjAxMy0wMS0zMCAxNzo1ODoyOC4yMjk3OTk2MDcgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2dj Yy5kZy9ndWFsaXR5L3ByNTYxNTQtMi5jCTIwMTMtMDEtMzAgMTg6MDY6MzguMzA2OTgyMTAxICsw MTAwCi1AQCAtMCwwICsxLDM5IEBACi0rLyogUFIgZGVidWcvNTYxNTQgKi8KLSsvKiB7IGRnLWRv IHJ1biB9ICovCi0rLyogeyBkZy1vcHRpb25zICItZyIgfSAqLwotKy8qIHsgZGctYWRkaXRpb25h bC1zb3VyY2VzICJwcjU2MTU0LWF1eC5jIiB9ICovCi0rCi0rI2luY2x1ZGUgIi4uL25vcC5oIgot KwotK2V4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKLSsKLStfX2F0dHJpYnV0ZV9fKChub2lubGlu ZSwgbm9jbG9uZSkpIGludAotK2ZvbyAoaW50IHgpCi0rewotKyAgYXNtICgiIik7Ci0rICB4Kys7 Ci0rICBhc20gKCIiKTsKLSsgIHgrKzsKLSsgIGFzbSAoIiIpOwotKyAgeCsrOwotKyAgYXNtICgi Iik7Ci0rICB4Kys7Ci0rICBhc20gKCIiKTsKLSsgIHgrKzsKLSsgIGFzbSAoIiIpOwotKyAgeCsr OwotKyAgYXNtICgiIik7Ci0rICB4Kys7Ci0rICBhc20gKCIiKTsKLSsgIHgrKzsKLSsgIGFzbSAo Tk9QIDogOiA6ICJtZW1vcnkiKTsKLSsgIGFzbSAoTk9QIDogOiA6ICJtZW1vcnkiKTsJLyogeyBk Zy1maW5hbCB7IGdkYi10ZXN0IHByNTYxNTQtMi5jOjMwICJ4IiAiMjgiIH0gfSAqLwotKyAgcmV0 dXJuIHg7Ci0rfQotKwotK3ZvaWQKLSt0ZXN0X21haW4gKHZvaWQpCi0rewotKyAgaWYgKGZvbyAo MjApICE9IDI4KQotKyAgICBhYm9ydCAoKTsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv Z3VhbGl0eS9wcjU2MTU0LTMuYy5qagkyMDEzLTAxLTMwIDE4OjA0OjQ3LjUzMTYwNDE4OCArMDEw MAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2d1YWxpdHkvcHI1NjE1NC0zLmMJMjAxMy0wMS0z MCAxODowNjoyNS4wMzEwNTU1MTQgKzAxMDAKLUBAIC0wLDAgKzEsMzEgQEAKLSsvKiBQUiBkZWJ1 Zy81NjE1NCAqLwotKy8qIHsgZGctZG8gcnVuIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1nIiB9 ICovCi0rLyogeyBkZy1hZGRpdGlvbmFsLXNvdXJjZXMgInByNTYxNTQtYXV4LmMiIH0gKi8KLSsK LSsjaW5jbHVkZSAiLi4vbm9wLmgiCi0rCi0rZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwotKwot K19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkgaW50Ci0rZm9vIChpbnQgeCkKLSt7 Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0r ICB4Kys7Ci0rICB4Kys7Ci0rICBhc20gKE5PUCA6IDogOiAibWVtb3J5Iik7Ci0rICBhc20gKE5P UCA6IDogOiAibWVtb3J5Iik7CS8qIHsgZGctZmluYWwgeyBnZGItdGVzdCBwcjU2MTU0LTMuYzoy MiAieCIgIjI4IiB9IH0gKi8KLSsgIHJldHVybiB4OwotK30KLSsKLSt2b2lkCi0rdGVzdF9tYWlu ICh2b2lkKQotK3sKLSsgIGlmIChmb28gKDIwKSAhPSAyOCkKLSsgICAgYWJvcnQgKCk7Ci0rfQot LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2d1YWxpdHkvcHI1NjE1NC00LmMuamoJMjAxMy0wMS0z MCAxODowNTo0NS45NTkyODA4MzcgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9ndWFs aXR5L3ByNTYxNTQtNC5jCTIwMTMtMDEtMzAgMTg6MDc6NTAuNDU3NjAyMjIxICswMTAwCi1AQCAt MCwwICsxLDM0IEBACi0rLyogUFIgZGVidWcvNTYxNTQgKi8KLSsvKiB7IGRnLWRvIHJ1biB9ICov Ci0rLyogeyBkZy1vcHRpb25zICItZyIgfSAqLwotKy8qIHsgZGctYWRkaXRpb25hbC1zb3VyY2Vz ICJwcjU2MTU0LWF1eC5jIiB9ICovCi0rCi0rI2luY2x1ZGUgIi4uL25vcC5oIgotKwotK2V4dGVy biB2b2lkIGFib3J0ICh2b2lkKTsKLSsKLSt2b2xhdGlsZSBpbnQgejsKLSsKLStfX2F0dHJpYnV0 ZV9fKChub2lubGluZSwgbm9jbG9uZSkpIGludAotK2ZvbyAoaW50IHgpCi0rewotKyAgeiA9IDY7 Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0rICB4Kys7Ci0r ICB4Kys7Ci0rICB4Kys7Ci0rICBhc20gKE5PUCA6IDogOiAibWVtb3J5Iik7Ci0rICBhc20gKE5P UCA6IDogOiAibWVtb3J5Iik7CS8qIHsgZGctZmluYWwgeyBnZGItdGVzdCBwcjU2MTU0LTQuYzoy NSAieCIgIjI4IiB9IH0gKi8KLSsgIHJldHVybiB4OwotK30KLSsKLSt2b2lkCi0rdGVzdF9tYWlu ICh2b2lkKQotK3sKLSsgIGlmIChmb28gKDIwKSAhPSAyOCkKLSsgICAgYWJvcnQgKCk7Ci0rfQot LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2d1YWxpdHkvcHI1NjE1NC1hdXguYy5qagkyMDEzLTAx LTMwIDE3OjQ3OjA4LjQ2NzYzMjI2MiArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2d1 YWxpdHkvcHI1NjE1NC1hdXguYwkyMDEzLTAxLTMwIDE3OjE0OjI4LjAwMDAwMDAwMCArMDEwMAot QEAgLTAsMCArMSwxMSBAQAotKy8qIFBSIGRlYnVnLzU2MTU0ICovCi0rLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KLSsKLStleHRlcm4gdm9pZCB0ZXN0X21haW4gKHZvaWQpOwotKwotK2ludAotK21h aW4gKCkKLSt7Ci0rICB0ZXN0X21haW4gKCk7Ci0rICByZXR1cm4gMDsKLSt9CgpkaWZmIC0tZ2l0 IGEvZ2NjNDgtcHI1NjIyOC5wYXRjaCBiL2djYzQ4LXByNTYyMjgucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGYzMDAwZjkuLjAwMDAwMDAKLS0tIGEvZ2NjNDgtcHI1NjIyOC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLTIwMTMtMDItMDYgIEpha3ViIEpl bGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgdGFyZ2V0LzU2MjI4Ci0JKiBjb25maWcv cnM2MDAwL3JzNjAwMC5tZCAocHRybSk6IE5ldyBtb2RlIGF0dHIuCi0JKGNhbGxfaW5kaXJlY3Rf YWl4PHB0cnNpemU+LCBjYWxsX2luZGlyZWN0X2FpeDxwdHJzaXplPl9ub3IxMSwKLQljYWxsX3Zh bHVlX2luZGlyZWN0X2FpeDxwdHRyc2l6ZT4sCi0JY2FsbF92YWx1ZV9pbmRpcmVjdF9haXg8cHR0 cnNpemU+X25vcjExKTogVXNlIDxwdHJtPiBpbnN0ZWFkIG9mCi0JbSBpbiBjb25zdHJhaW50cy4K LQotCSogZ2NjLmRnL3ByNTYyMjguYzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvY29uZmlnL3JzNjAw MC9yczYwMDAubWQuamoJMjAxMy0wMi0wMSAxNzo1MjozNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn Y2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQJMjAxMy0wMi0wNiAxNzoyNzowNy42ODAyNTAwMjcg KzAxMDAKLUBAIC0yOTIsNiArMjkyLDkgQEAgKGRlZmluZV9tb2RlX2F0dHIgbXB0cnNpemUgWyhT SSAic2kiKQotIChkZWZpbmVfbW9kZV9hdHRyIHB0cmxvYWQgWyhTSSAibHd6IikKLSAJCQkgICAo REkgImxkIildKQotIAotKyhkZWZpbmVfbW9kZV9hdHRyIHB0cm0gWyhTSSAibSIpCi0rCQkJKERJ ICJZIildKQotKwotIChkZWZpbmVfbW9kZV9hdHRyIHJyZWcgWyhTRiAgICJmIikKLSAJCQkoREYg ICAid3MiKQotIAkJCShWNFNGICJ3ZiIpCi1AQCAtMTA2NjIsOCArMTA2NjUsOCBAQCAoZGVmaW5l X2luc24gIipjYWxsX3ZhbHVlX2xvY2FsNjQiCi0gKGRlZmluZV9pbnNuICJjYWxsX2luZGlyZWN0 X2FpeDxwdHJzaXplPiIKLSAgIFsoY2FsbCAobWVtOlNJIChtYXRjaF9vcGVyYW5kOlAgMCAicmVn aXN0ZXJfb3BlcmFuZCIgImMsKmwiKSkKLSAJIChtYXRjaF9vcGVyYW5kIDEgIiIgImcsZyIpKQot LSAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAyICJtZW1vcnlfb3BlcmFuZCIgIm0sbSIpKQotLSAg IChzZXQgKHJlZzpQIFRPQ19SRUdOVU0pIChtYXRjaF9vcGVyYW5kOlAgMyAibWVtb3J5X29wZXJh bmQiICJtLG0iKSkKLSsgICAodXNlIChtYXRjaF9vcGVyYW5kOlAgMiAibWVtb3J5X29wZXJhbmQi ICI8cHRybT4sPHB0cm0+IikpCi0rICAgKHNldCAocmVnOlAgVE9DX1JFR05VTSkgKG1hdGNoX29w ZXJhbmQ6UCAzICJtZW1vcnlfb3BlcmFuZCIgIjxwdHJtPiw8cHRybT4iKSkKLSAgICAodXNlIChy ZWc6UCBTVEFUSUNfQ0hBSU5fUkVHTlVNKSkKLSAgICAoY2xvYmJlciAocmVnOlAgTFJfUkVHTk8p KV0KLSAgICJERUZBVUxUX0FCSSA9PSBBQklfQUlYICYmIFRBUkdFVF9QT0lOVEVSU19UT19ORVNU RURfRlVOQ1RJT05TIgotQEAgLTEwNjgwLDggKzEwNjgzLDggQEAgKGRlZmluZV9pbnNuICJjYWxs X2luZGlyZWN0X2FpeDxwdHJzaXplPgotIChkZWZpbmVfaW5zbiAiY2FsbF9pbmRpcmVjdF9haXg8 cHRyc2l6ZT5fbm9yMTEiCi0gICBbKGNhbGwgKG1lbTpTSSAobWF0Y2hfb3BlcmFuZDpQIDAgInJl Z2lzdGVyX29wZXJhbmQiICJjLCpsIikpCi0gCSAobWF0Y2hfb3BlcmFuZCAxICIiICJnLGciKSkK LS0gICAodXNlIChtYXRjaF9vcGVyYW5kOlAgMiAibWVtb3J5X29wZXJhbmQiICJtLG0iKSkKLS0g ICAoc2V0IChyZWc6UCBUT0NfUkVHTlVNKSAobWF0Y2hfb3BlcmFuZDpQIDMgIm1lbW9yeV9vcGVy YW5kIiAibSxtIikpCi0rICAgKHVzZSAobWF0Y2hfb3BlcmFuZDpQIDIgIm1lbW9yeV9vcGVyYW5k IiAiPHB0cm0+LDxwdHJtPiIpKQotKyAgIChzZXQgKHJlZzpQIFRPQ19SRUdOVU0pIChtYXRjaF9v cGVyYW5kOlAgMyAibWVtb3J5X29wZXJhbmQiICI8cHRybT4sPHB0cm0+IikpCi0gICAgKGNsb2Ji ZXIgKHJlZzpQIExSX1JFR05PKSldCi0gICAiREVGQVVMVF9BQkkgPT0gQUJJX0FJWCAmJiAhVEFS R0VUX1BPSU5URVJTX1RPX05FU1RFRF9GVU5DVElPTlMiCi0gICAiPHB0cmxvYWQ+IDIsJTJcO2Il VDBsXDs8cHRybG9hZD4gMiwlMyIKLUBAIC0xMDY5OCw4ICsxMDcwMSw4IEBAIChkZWZpbmVfaW5z biAiY2FsbF92YWx1ZV9pbmRpcmVjdF9haXg8cHQKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kIDAg IiIgIiIpCi0gCShjYWxsIChtZW06U0kgKG1hdGNoX29wZXJhbmQ6UCAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiYywqbCIpKQotIAkgICAgICAobWF0Y2hfb3BlcmFuZCAyICIiICJnLGciKSkpCi0tICAg KHVzZSAobWF0Y2hfb3BlcmFuZDpQIDMgIm1lbW9yeV9vcGVyYW5kIiAibSxtIikpCi0tICAgKHNl dCAocmVnOlAgVE9DX1JFR05VTSkgKG1hdGNoX29wZXJhbmQ6UCA0ICJtZW1vcnlfb3BlcmFuZCIg Im0sbSIpKQotKyAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAzICJtZW1vcnlfb3BlcmFuZCIgIjxw dHJtPiw8cHRybT4iKSkKLSsgICAoc2V0IChyZWc6UCBUT0NfUkVHTlVNKSAobWF0Y2hfb3BlcmFu ZDpQIDQgIm1lbW9yeV9vcGVyYW5kIiAiPHB0cm0+LDxwdHJtPiIpKQotICAgICh1c2UgKHJlZzpQ IFNUQVRJQ19DSEFJTl9SRUdOVU0pKQotICAgIChjbG9iYmVyIChyZWc6UCBMUl9SRUdOTykpXQot ICAgIkRFRkFVTFRfQUJJID09IEFCSV9BSVggJiYgVEFSR0VUX1BPSU5URVJTX1RPX05FU1RFRF9G VU5DVElPTlMiCi1AQCAtMTA3MTgsOCArMTA3MjEsOCBAQCAoZGVmaW5lX2luc24gImNhbGxfdmFs dWVfaW5kaXJlY3RfYWl4PHB0Ci0gICBbKHNldCAobWF0Y2hfb3BlcmFuZCAwICIiICIiKQotIAko Y2FsbCAobWVtOlNJIChtYXRjaF9vcGVyYW5kOlAgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImMsKmwi KSkKLSAJICAgICAgKG1hdGNoX29wZXJhbmQgMiAiIiAiZyxnIikpKQotLSAgICh1c2UgKG1hdGNo X29wZXJhbmQ6UCAzICJtZW1vcnlfb3BlcmFuZCIgIm0sbSIpKQotLSAgIChzZXQgKHJlZzpQIFRP Q19SRUdOVU0pIChtYXRjaF9vcGVyYW5kOlAgNCAibWVtb3J5X29wZXJhbmQiICJtLG0iKSkKLSsg ICAodXNlIChtYXRjaF9vcGVyYW5kOlAgMyAibWVtb3J5X29wZXJhbmQiICI8cHRybT4sPHB0cm0+ IikpCi0rICAgKHNldCAocmVnOlAgVE9DX1JFR05VTSkgKG1hdGNoX29wZXJhbmQ6UCA0ICJtZW1v cnlfb3BlcmFuZCIgIjxwdHJtPiw8cHRybT4iKSkKLSAgICAoY2xvYmJlciAocmVnOlAgTFJfUkVH Tk8pKV0KLSAgICJERUZBVUxUX0FCSSA9PSBBQklfQUlYICYmICFUQVJHRVRfUE9JTlRFUlNfVE9f TkVTVEVEX0ZVTkNUSU9OUyIKLSAgICI8cHRybG9hZD4gMiwlM1w7YiVUMWxcOzxwdHJsb2FkPiAy LCU0IgotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNTYyMjguYy5qagkyMDEzLTAyLTA2IDE3 OjQ0OjMzLjQwOTMwMzYxNyArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNTYyMjgu YwkyMDEzLTAyLTA2IDE3OjQ0OjE0LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwxNiBAQAot Ky8qIFBSIHRhcmdldC81NjIyOCAqLwotKy8qIHsgZGctZG8gYXNzZW1ibGUgfSAqLwotKy8qIHsg ZGctb3B0aW9ucyAiLU8yIiB9ICovCi0rCi0rc2hvcnQgYVsxNF0gPSB7IDEsIDIgfTsKLStzaG9y dCBiWzE1XSA9IHsgMywgNCB9OwotKwotK2ludAotK2ZvbyAoKQotK3sKLSsgIHZvaWQgKCpmbmEp ICh2b2lkKSA9ICh2b2lkICgqKSAodm9pZCkpIGE7Ci0rICB2b2lkICgqZm5iKSAodm9pZCkgPSAo dm9pZCAoKikgKHZvaWQpKSBiOwotKyAgZm5hICgpOwotKyAgZm5iICgpOwotKyAgcmV0dXJuIGFb MV0gPT0gYlsxXTsKLSt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDgtcHI1NjI0NS5wYXRjaCBiL2djYzQ4 LXByNTYyNDUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc0ZTM5 YgotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ4LXByNTYyNDUucGF0Y2gKQEAgLTAsMCArMSw0NyBA QAorMjAxMy0wMi0wOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBv dGhlci81NjI0NQorCSogcmVnZXguYyAoUFRSX0lOVF9UWVBFKTogRGVmaW5lLgorCShFWFRFTkRf QlVGRkVSKTogQ2hhbmdlIGluY3IgdHlwZSBmcm9tIGludCB0byBQVFJfSU5UX1RZUEUuCisKKy0t LSBnY2MvcmVnZXguYy5qagkyMDExLTA1LTAyIDE4OjM5OjM1LjAwMDAwMDAwMCArMDIwMAorKysr IGdjYy9yZWdleC5jCTIwMTMtMDItMDggMTg6MzM6MTguMTM2ODAyMDcwICswMTAwCitAQCAtNDYs OSArNDYsMTEgQEAKKyAKKyAjIGlmIGRlZmluZWQgU1REQ19IRUFERVJTICYmICFkZWZpbmVkIGVt YWNzCisgIyAgaW5jbHVkZSA8c3RkZGVmLmg+CisrIyAgZGVmaW5lIFBUUl9JTlRfVFlQRSBwdHJk aWZmX3QKKyAjIGVsc2UKKyAvKiBXZSBuZWVkIHRoaXMgZm9yIGByZWdleC5oJywgYW5kIHBlcmhh cHMgZm9yIHRoZSBFbWFjcyBpbmNsdWRlIGZpbGVzLiAgKi8KKyAjICBpbmNsdWRlIDxzeXMvdHlw ZXMuaD4KKysjICBkZWZpbmUgUFRSX0lOVF9UWVBFIGxvbmcKKyAjIGVuZGlmCisgCisgIyBkZWZp bmUgV0lERV9DSEFSX1NVUFBPUlQgKEhBVkVfV0NUWVBFX0ggJiYgSEFWRV9XQ0hBUl9IICYmIEhB VkVfQlRPV0MpCitAQCAtMjA0NSw3ICsyMDQ3LDcgQEAgc3RhdGljIHJlZ19lcnJjb2RlX3QgYnl0 ZV9jb21waWxlX3JhbmdlCisgICAgIC8qIEhvdyBtYW55IGNoYXJhY3RlcnMgdGhlIG5ldyBidWZm ZXIgY2FuIGhhdmU/ICAqLwkJCVwKKyAgICAgd2NoYXJfY291bnQgPSBidWZwLT5hbGxvY2F0ZWQg LyBzaXplb2YoVUNIQVJfVCk7CQkJXAorICAgICBpZiAod2NoYXJfY291bnQgPT0gMCkgd2NoYXJf Y291bnQgPSAxOwkJCQlcCistICAgIC8qIFRydW5jYXRlIHRoZSBidWZmZXIgdG8gQ0hBUl9UIGFs aWduLiAgKi8JCQlcCisrICAgIC8qIFRydW5jYXRlIHRoZSBidWZmZXIgdG8gQ0hBUl9UIGFsaWdu LiAgKi8JCQkJXAorICAgICBidWZwLT5hbGxvY2F0ZWQgPSB3Y2hhcl9jb3VudCAqIHNpemVvZihV Q0hBUl9UKTsJCQlcCisgICAgIFJFVEFMTE9DIChDT01QSUxFRF9CVUZGRVJfVkFSLCB3Y2hhcl9j b3VudCwgVUNIQVJfVCk7CQlcCisgICAgIGJ1ZnAtPmJ1ZmZlciA9IChjaGFyKilDT01QSUxFRF9C VUZGRVJfVkFSOwkJCQlcCitAQCAtMjA1NCw3ICsyMDU2LDcgQEAgc3RhdGljIHJlZ19lcnJjb2Rl X3QgYnl0ZV9jb21waWxlX3JhbmdlCisgICAgIC8qIElmIHRoZSBidWZmZXIgbW92ZWQsIG1vdmUg YWxsIHRoZSBwb2ludGVycyBpbnRvIGl0LiAgKi8JCVwKKyAgICAgaWYgKG9sZF9idWZmZXIgIT0g Q09NUElMRURfQlVGRkVSX1ZBUikJCQkJXAorICAgICAgIHsJCQkJCQkJCQlcCistCWludCBpbmNy ID0gQ09NUElMRURfQlVGRkVSX1ZBUiAtIG9sZF9idWZmZXI7CQkJXAorKwlQVFJfSU5UX1RZUEUg aW5jciA9IENPTVBJTEVEX0JVRkZFUl9WQVIgLSBvbGRfYnVmZmVyOwkJXAorIAlNT1ZFX0JVRkZF Ul9QT0lOVEVSIChiKTsJCQkJCVwKKyAJTU9WRV9CVUZGRVJfUE9JTlRFUiAoYmVnYWx0KTsJCQkJ CVwKKyAJaWYgKGZpeHVwX2FsdF9qdW1wKQkJCQkJCVwKK0BAIC0yMDgyLDcgKzIwODQsNyBAQCBz dGF0aWMgcmVnX2VycmNvZGVfdCBieXRlX2NvbXBpbGVfcmFuZ2UKKyAgICAgLyogSWYgdGhlIGJ1 ZmZlciBtb3ZlZCwgbW92ZSBhbGwgdGhlIHBvaW50ZXJzIGludG8gaXQuICAqLwkJXAorICAgICBp ZiAob2xkX2J1ZmZlciAhPSBDT01QSUxFRF9CVUZGRVJfVkFSKQkJCQlcCisgICAgICAgewkJCQkJ CQkJCVwKKy0JaW50IGluY3IgPSBDT01QSUxFRF9CVUZGRVJfVkFSIC0gb2xkX2J1ZmZlcjsJCQlc CisrCVBUUl9JTlRfVFlQRSBpbmNyID0gQ09NUElMRURfQlVGRkVSX1ZBUiAtIG9sZF9idWZmZXI7 CQlcCisgCU1PVkVfQlVGRkVSX1BPSU5URVIgKGIpOwkJCQkJXAorIAlNT1ZFX0JVRkZFUl9QT0lO VEVSIChiZWdhbHQpOwkJCQkJXAorIAlpZiAoZml4dXBfYWx0X2p1bXApCQkJCQkJXAoKZGlmZiAt LWdpdCBhL2djYzQ4LXByNTYyNTYucGF0Y2ggYi9nY2M0OC1wcjU2MjU2LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMmM1Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2M0OC1wcjU2MjU2LnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKKzIwMTMtMDItMDggIEpha3ViIEpl bGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgdGFyZ2V0LzU2MjU2CisJKiBjb25maWcv cnM2MDAwL3JzNjAwMC5oIChBU1NFTUJMRVJfRElBTEVDVCk6IERlZmluZS4KKworCSogZ2NjLnRh cmdldC9wb3dlcnBjL3ByNTYyNTYuYzogTmV3IHRlc3QuCisKKy0tLSBnY2MvY29uZmlnL3JzNjAw MC9yczYwMDAuaC5qagkyMDEzLTAxLTExIDA5OjAzOjEyLjAwMDAwMDAwMCArMDEwMAorKysrIGdj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC5oCTIwMTMtMDItMDggMTY6NDY6MzUuOTg4OTc3MzYzICsw MTAwCitAQCAtMzU2LDYgKzM1NiwxMiBAQCBleHRlcm4gY29uc3QgY2hhciAqaG9zdF9kZXRlY3Rf bG9jYWxfY3B1CisgI2RlZmluZSBQUk9DRVNTT1JfREVGQVVMVCAgIFBST0NFU1NPUl9QUEM2MDMK KyAjZGVmaW5lIFBST0NFU1NPUl9ERUZBVUxUNjQgUFJPQ0VTU09SX1JTNjRBCisgCisrLyogU3Bl Y2lmeSB0aGUgZGlhbGVjdCBvZiBhc3NlbWJsZXIgdG8gdXNlLiAgT25seSBuZXcgbW5lbW9uaWNz IGFyZSBzdXBwb3J0ZWQKKysgICBzdGFydGluZyB3aXRoIEdDQyA0LjgsIGkuZS4ganVzdCBvbmUg ZGlhbGVjdCwgYnV0IGZvciBiYWNrd2FyZHMKKysgICBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIg aW5saW5lIGFzbSBBU1NFTUJMRVJfRElBTEVDVCBuZWVkcyB0byBiZQorKyAgIGRlZmluZWQuICAq LworKyNkZWZpbmUgQVNTRU1CTEVSX0RJQUxFQ1QgMQorKworIC8qIERlYnVnIHN1cHBvcnQgKi8K KyAjZGVmaW5lIE1BU0tfREVCVUdfU1RBQ0sJMHgwMQkvKiBkZWJ1ZyBzdGFjayBhcHBsaWNhdGlv bnMgKi8KKyAjZGVmaW5lCU1BU0tfREVCVUdfQVJHCQkweDAyCS8qIGRlYnVnIGFyZ3VtZW50IGhh bmRsaW5nICovCistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcHI1NjI1Ni5j LmpqCTIwMTMtMDItMDggMTc6MDA6MTEuMDk2MTcxMjgxICswMTAwCisrKysgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcHI1NjI1Ni5jCTIwMTMtMDItMDggMTc6MDk6MDUuNDQ4MDA0 Mjk1ICswMTAwCitAQCAtMCwwICsxLDExIEBACisrLyogUFIgdGFyZ2V0LzU2MjU2ICovCisrLyog eyBkZy1kbyBhc3NlbWJsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKysKKytp bnQKKytmb28gKHZvaWQpCisreworKyAgaW50IGE7CisrICBfX2FzbV9fICgie2xpbHxsaX0gJTAs JTEiIDogIj1yIiAoYSkgOiAiSSIgKDI2KSk7CisrICByZXR1cm4gYTsKKyt9CgpkaWZmIC0tZ2l0 IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggYTJiOGFmZC4uNTNkODJjYiAxMDA2NDQKLS0tIGEv c291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDQgKzEsNCBAQAogYmU3OGE0N2JkODI1MjMyNTBl YjNlOTE2NDZkYjViM2QgIGNsb29nLTAuMTguMC50YXIuZ3oKIDI2NTlmMDljMmU0M2VmOGI3ZDQ0 MDYzMjE3NTNmMWIyICBmYXN0amFyLTAuOTcudGFyLmd6CiBiY2UxNTg2Mzg0ZDg2MzVhNzZkMmYw MTdmYjA2N2NkMiAgaXNsLTAuMTEuMS50YXIuYnoyCi1jMzU3MjQ3YjEzM2NjMDE5NzU5NDk2YTQ5 ODNjZWI3OSAgZ2NjLTQuOC4wLTIwMTMwMjA2LnRhci5iejIKKzk0ZjJiMWMyMjFlNmYxNTYxYTkz NTI1YzY2NzkwODBjICBnY2MtNC44LjAtMjAxMzAyMDgudGFyLmJ6Mgo=