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: Rebase to FSF GDB 7.2.90.20110429 (which is a 7.3 pre-release). Date: Thu, 23 Jul 2026 18:29:56 GMT Message-ID: <178483139687.1.12828173839269891282.rpms-gdb-f314eb3eb50b@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: f314eb3eb50b6293a333561845469436ca1a1751 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogZjMxNGViM2ViNTBiNjI5M2EzMzM1NjE4NDU0Njk0MzZjYTFhMTc1MQog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wNC0yOVQxMDowNDo0NSswMjowMAogICAg ICAgICAgICBTdGF0cyAgOiArMzI2NC8tOTYyIGluIDEzIGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy9mMzE0ZWIzZWI1 MGI2MjkzYTMzMzU2MTg0NTQ2OTQzNmNhMWExNzUxP2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIFJlYmFzZSB0byBGU0YgR0RCIDcuMi45MC4yMDExMDQy OSAod2hpY2ggaXMgYSA3LjMgcHJlLXJlbGVhc2UpLgpGaXggLU8yIC1nIGJyZWFrcG9pbnRzIGlu dGVybmFsIGVycm9yICsgcHJvbG9ndWUgc2tpcHBpbmcgKEJaIDYxMjI1MykuCkZpeCBjYXNlIGlu c2Vuc2l0aXZlIHN5bWJvbHMgZm9yIEZvcnRyYW4gYnkgaUZvcnQgKEJaIDY0NTc3MykuCkZpeCBw aHlzbmFtZS1yZWxhdGVkIENVIGV4cGFuc2lvbiBpc3N1ZSBmb3IgQysrIChQUiAxMjcwOCkuCkZp eCBQeXRob24gYWNjZXNzIHRvIGlubGluZWQgZnJhbWVzIChCWiA2OTQ4MjQpLgoKLS0tCmRpZmYg LS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBiMDAyYmYzLi43NmZkMmRjIDEw MDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMiArMSwyIEBACiAv bGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy4yLjkwLjIwMTEwNDEx LnRhci5iejIKKy9nZGItNy4yLjkwLjIwMTEwNDI5LnRhci5iejIKCmRpZmYgLS1naXQgYS9nZGIt YXJjaGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5wYXRjaAppbmRleCA5ODg2MmYyLi5iZmJlYzliIDEw MDY0NAotLS0gYS9nZGItYXJjaGVyLnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTEx LDEwICsxMSwxMCBAQCBhcmNoZXItdHJvbWV5LXB5dGhvbgogYXJjaGVyLXNlcmdpb2RqLXN0YXAt ZmVkb3JhMTVqawogCiAKLWRpZmYgLS1naXQgYS9iZmQvZWxmLWJmZC5oIGIvYmZkL2VsZi1iZmQu aAotaW5kZXggMjFlYzM4Zi4uZDUwODIzYSAxMDA2NDQKLS0tLSBhL2JmZC9lbGYtYmZkLmgKLSsr KyBiL2JmZC9lbGYtYmZkLmgKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2JmZC9lbGYtYmZk LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvYmZkL2VsZi1iZmQu aAkyMDExLTAzLTE0IDE2OjU0OjU3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuOTAuMjAx MTA0MjkvYmZkL2VsZi1iZmQuaAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAog QEAgLTE0NzYsNiArMTQ3NiwxNSBAQCBlbnVtCiAgICBUYWdfY29tcGF0aWJpbGl0eSA9IDMyCiAg fTsKQEAgLTQzLDExICs0MywxMSBAQCBpbmRleCAyMWVjMzhmLi5kNTA4MjNhIDEwMDY0NAogICAg LyogVHJ1ZSBpZiB0aGUgYmZkIGNvbnRhaW5zIHN5bWJvbHMgdGhhdCBoYXZlIHRoZSBTVFRfR05V X0lGVU5DCiAgICAgICBzeW1ib2wgdHlwZS4gIFVzZWQgdG8gc2V0IHRoZSBvc2FiaSBmaWVsZCBp biB0aGUgRUxGIGhlYWRlcgogICAgICAgc3RydWN0dXJlLiAgKi8KLWRpZmYgLS1naXQgYS9iZmQv ZWxmLmMgYi9iZmQvZWxmLmMKLWluZGV4IGY2OWFiZjIuLjNjMDM4ZWIgMTAwNjQ0Ci0tLS0gYS9i ZmQvZWxmLmMKLSsrKyBiL2JmZC9lbGYuYwotQEAgLTg0MTYsNiArODQxNiwzNyBAQCBlbGZvYmpf Z3Jva19nbnVfbm90ZSAoYmZkICphYmZkLCBFbGZfSW50ZXJuYWxfTm90ZSAqbm90ZSkKK0luZGV4 OiBnZGItNy4yLjkwLjIwMTEwNDI5L2JmZC9lbGYuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIu OTAuMjAxMTA0Mjkub3JpZy9iZmQvZWxmLmMJMjAxMS0wMy0xNCAxNjo1NDo1OC4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2JmZC9lbGYuYwkyMDExLTA0LTI5IDA5OjQw OjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTg0MTYsNiArODQxNiwzNyBAQCBlbGZvYmpfZ3Jva19n bnVfbm90ZSAoYmZkICphYmZkLCBFbGZfSW50CiAgICAgIH0KICB9CiAgCkBAIC04NSw3ICs4NSw3 IEBAIGluZGV4IGY2OWFiZjIuLjNjMDM4ZWIgMTAwNjQ0CiAgc3RhdGljIGJmZF9ib29sZWFuCiAg ZWxmY29yZV9uZXRic2RfZ2V0X2x3cGlkIChFbGZfSW50ZXJuYWxfTm90ZSAqbm90ZSwgaW50ICps d3BpZHApCiAgewotQEAgLTkxODksNiArOTIyMCwxMiBAQCBlbGZfcGFyc2Vfbm90ZXMgKGJmZCAq YWJmZCwgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgZmlsZV9wdHIgb2Zmc2V0KQorQEAgLTkxODks NiArOTIyMCwxMiBAQCBlbGZfcGFyc2Vfbm90ZXMgKGJmZCAqYWJmZCwgY2hhciAqYnVmLCBzCiAg CSAgICAgIGlmICghIGVsZm9ial9ncm9rX2dudV9ub3RlIChhYmZkLCAmaW4pKQogIAkJcmV0dXJu IEZBTFNFOwogIAkgICAgfQpAQCAtOTgsMTEgKzk4LDExIEBAIGluZGV4IGY2OWFiZjIuLjNjMDM4 ZWIgMTAwNjQ0CiAgCSAgYnJlYWs7CiAgCX0KICAKLWRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUu aW4gYi9nZGIvTWFrZWZpbGUuaW4KLWluZGV4IDZhYmQ4N2EuLjkzZDhkYWUgMTAwNjQ0Ci0tLS0g YS9nZGIvTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTcyMSw4ICs3MjEs OCBAQCBTRklMRVMgPSBhZGEtZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXByaW50LmMgYWRhLXZh bHByaW50LmMgYWRhLXRhc2tzLmMgXAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL01h a2VmaWxlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9N YWtlZmlsZS5pbgkyMDExLTAzLTMwIDA4OjU1OjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjIuOTAuMjAxMTA0MjkvZ2RiL01ha2VmaWxlLmluCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAw MDAwICswMjAwCitAQCAtNzIxLDggKzcyMSw4IEBAIFNGSUxFUyA9IGFkYS1leHAueSBhZGEtbGFu Zy5jIGFkYS10eXBlcHIKICAJc2VudGluZWwtZnJhbWUuYyBcCiAgCXNlcmlhbC5jIHNlci1iYXNl LmMgc2VyLXVuaXguYyBcCiAgCXNvbGliLmMgc29saWItdGFyZ2V0LmMgc291cmNlLmMgXApAQCAt MTEzLDcgKzExMyw3IEBAIGluZGV4IDZhYmQ4N2EuLjkzZDhkYWUgMTAwNjQ0CiAgCXRhcmdldC5j IHRhcmdldC1kZXNjcmlwdGlvbnMuYyB0YXJnZXQtbWVtb3J5LmMgXAogIAl0aHJlYWQuYyB0b3Au YyB0cmFjZXBvaW50LmMgXAogIAl0cmFkLWZyYW1lLmMgXAotQEAgLTgxNCw3ICs4MTQsNyBAQCBv c2RhdGEuaCBwcm9jZnMuaCBweXRob24vcHktZXZlbnQuaCBweXRob24vcHktZXZlbnRzLmggcHl0 aG9uL3B5LXN0b3BldmVudC5oIFwKK0BAIC04MTQsNyArODE0LDcgQEAgb3NkYXRhLmggcHJvY2Zz LmggcHl0aG9uL3B5LWV2ZW50LmggcHl0aAogIHB5dGhvbi9weXRob24taW50ZXJuYWwuaCBweXRo b24vcHl0aG9uLmggcmF2ZW5zY2FyLXRocmVhZC5oIHJlY29yZC5oIFwKICBzb2xpYi1kYXJ3aW4u aCBzb2xpYi1pYTY0LWhwdXguaCBzb2xpYi1zcHUuaCB3aW5kb3dzLW5hdC5oIHhjb2ZmcmVhZC5o IFwKICBnbnVsaWIvZXh0cmEvYXJnLW5vbm51bGwuaCBnbnVsaWIvZXh0cmEvYysrZGVmcy5oIGdu dWxpYi9leHRyYS93YXJuLW9uLXVzZS5oIFwKQEAgLTEyMiw3ICsxMjIsNyBAQCBpbmRleCA2YWJk ODdhLi45M2Q4ZGFlIDEwMDY0NAogIAogICMgSGVhZGVyIGZpbGVzIHRoYXQgYWxyZWFkeSBoYXZl IHNyY2RpciBpbiB0aGVtLCBvciB3aGljaCBhcmUgaW4gb2JqZGlyLgogIAotQEAgLTg5OSw3ICs4 OTksNyBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZT0JKKSBc CitAQCAtODk5LDcgKzg5OSw3IEBAIENPTU1PTl9PQlMgPSAkKERFUEZJTEVTKSAkKENPTkZJR19P QlMpICQKICAJcHJvbG9ndWUtdmFsdWUubyBtZW1vcnktbWFwLm8gbWVtcmFuZ2UubyB4bWwtc3Vw cG9ydC5vIHhtbC1zeXNjYWxsLm8gXAogIAl0YXJnZXQtZGVzY3JpcHRpb25zLm8gdGFyZ2V0LW1l bW9yeS5vIHhtbC10ZGVzYy5vIHhtbC1idWlsdGluLm8gXAogIAlpbmZlcmlvci5vIG9zZGF0YS5v IGdkYl91c2xlZXAubyByZWNvcmQubyBnY29yZS5vIFwKQEAgLTEzMSw3ICsxMzEsNyBAQCBpbmRl eCA2YWJkODdhLi45M2Q4ZGFlIDEwMDY0NAogIAogIFRTT0JTID0gaW5mbG93Lm8KICAKLUBAIC0x MzIwLDYgKzEzMjAsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcuc3Rh dHVzCitAQCAtMTMyMCw2ICsxMzIwLDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4g Y29uZmlnLnN0YXQKICAJICBDT05GSUdfTElOS1M9IFwKICAJICAkKFNIRUxMKSBjb25maWcuc3Rh dHVzCiAgCkBAIC0xNDQsMTAgKzE0NCwxMCBAQCBpbmRleCA2YWJkODdhLi45M2Q4ZGFlIDEwMDY0 NAogIGNvbmZpZy5zdGF0dXM6ICQoc3JjZGlyKS9jb25maWd1cmUgY29uZmlndXJlLnRndCBjb25m aWd1cmUuaG9zdAogIAkkKFNIRUxMKSBjb25maWcuc3RhdHVzIC0tcmVjaGVjawogIAotZGlmZiAt LWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKLWluZGV4IDg2OTJlMmYuLmMyMmJmMGQgMTAwNjQ0 Ci0tLS0gYS9nZGIvTkVXUwotKysrIGIvZ2RiL05FV1MKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi9ORVdTCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dk Yi9ORVdTCTIwMTEtMDMtMzEgMTY6MzI6NDguMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvTkVXUwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAog QEAgLTM2LDYgKzM2LDEwIEBACiAgICBJbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBPcGVuQ0wgQyBs YW5ndWFnZSAoaHR0cDovL3d3dy5raHJvbm9zLm9yZy9vcGVuY2wpCiAgICBoYXMgYmVlbiBpbnRl Z3JhdGVkIGludG8gR0RCLgpAQCAtMTU5LDExICsxNTksMTEgQEAgaW5kZXggODY5MmUyZi4uYzIy YmYwZCAxMDA2NDQKICAqIFB5dGhvbiBzY3JpcHRpbmcKICAKICAgICoqIFRoZSBmdW5jdGlvbiBn ZGIuV3JpdGUgbm93IGFjY2VwdHMgYW4gb3B0aW9uYWwga2V5d29yZCAnc3RyZWFtJy4KLWRpZmYg LS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCi1pbmRleCAwYTBiMDlmLi40 NTQ2ZTkzIDEwMDY0NAotLS0tIGEvZ2RiL2FkYS1sYW5nLmMKLSsrKyBiL2dkYi9hZGEtbGFuZy5j Ci1AQCAtMTE0MjIsNiArMTE0MjIsNyBAQCBhZGFfb3BlcmF0b3JfbGVuZ3RoIChjb25zdCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcGMsIGludCAqb3BsZW5wLAorSW5kZXg6IGdkYi03LjIu OTAuMjAxMTA0MjkvZ2RiL2FkYS1sYW5nLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIw MTEwNDI5Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxMS0wNC0yMCAyMjoxMDoyOS4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9hZGEtbGFuZy5jCTIwMTEtMDQtMjkg MDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCitAQCAtMTEzOTMsNiArMTEzOTMsNyBAQCBhZGFfb3Bl cmF0b3JfbGVuZ3RoIChjb25zdCBzdHJ1Y3QgZXhwcmVzCiAgCiAgc3RhdGljIGludAogIGFkYV9v cGVyYXRvcl9jaGVjayAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKQEAgLTE3MSw3 ICsxNzEsNyBAQCBpbmRleCAwYTBiMDlmLi40NTQ2ZTkzIDEwMDY0NAogIAkJICAgIGludCAoKm9i amZpbGVfZnVuYykgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lkICpkYXRhKSwKICAJCSAg ICB2b2lkICpkYXRhKQogIHsKLUBAIC0xMTQzNiwxMiArMTE0MzcsMTUgQEAgYWRhX29wZXJhdG9y X2NoZWNrIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTExNDA3LDEyICsx MTQwOCwxNSBAQCBhZGFfb3BlcmF0b3JfY2hlY2sgKHN0cnVjdCBleHByZXNzaW9uICplCiAgCWJy ZWFrOwogIAogICAgICAgIGRlZmF1bHQ6CkBAIC0xODksMTEgKzE4OSwxMSBAQCBpbmRleCAwYTBi MDlmLi40NTQ2ZTkzIDEwMDY0NAogICAgICAgICYmICgqb2JqZmlsZV9mdW5jKSAoVFlQRV9PQkpG SUxFICh0eXBlKSwgZGF0YSkpCiAgICAgIHJldHVybiAxOwogIAotZGlmZiAtLWdpdCBhL2dkYi9h bWQ2NC1saW51eC1uYXQuYyBiL2dkYi9hbWQ2NC1saW51eC1uYXQuYwotaW5kZXggYTg2OWY4NS4u YzU5ZGFhMCAxMDA2NDQKLS0tLSBhL2dkYi9hbWQ2NC1saW51eC1uYXQuYwotKysrIGIvZ2RiL2Ft ZDY0LWxpbnV4LW5hdC5jCi1AQCAtMjY1LDE4ICsyNjUsMTEgQEAgYW1kNjRfbGludXhfc3RvcmVf aW5mZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAorSW5kZXg6IGdkYi03 LjIuOTAuMjAxMTA0MjkvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDExLTAxLTA3IDIw OjM2OjE1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2FtZDY0 LWxpbnV4LW5hdC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCitAQCAtMjY1 LDE4ICsyNjUsMTEgQEAgYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdAog IAwKICAvKiBTdXBwb3J0IGZvciBkZWJ1ZyByZWdpc3RlcnMuICAqLwogIApAQCAtMjEzLDcgKzIx Myw3IEBAIGluZGV4IGE4NjlmODUuLmM1OWRhYTAgMTAwNjQ0CiAgICAvKiBGSVhNRToga2V0dGVu aXMvMjAwMS0wMy0yNzogQ2FsbGluZyBwZXJyb3Jfd2l0aF9uYW1lIGlmIHRoZQogICAgICAgcHRy YWNlIGNhbGwgZmFpbHMgYnJlYWtzIGRlYnVnZ2luZyByZW1vdGUgdGFyZ2V0cy4gIFRoZSBjb3Jy ZWN0CiAgICAgICB3YXkgdG8gZml4IHRoaXMgaXMgdG8gYWRkIHRoZSBoYXJkd2FyZSBicmVha3Bv aW50IGFuZCB3YXRjaHBvaW50Ci1AQCAtMjk4LDE0ICsyOTEsOCBAQCBhbWQ2NF9saW51eF9kcl9n ZXQgKHB0aWRfdCBwdGlkLCBpbnQgcmVnbnVtKQorQEAgLTI5OCwxNCArMjkxLDggQEAgYW1kNjRf bGludXhfZHJfZ2V0IChwdGlkX3QgcHRpZCwgaW50IHJlZwogIC8qIFNldCBkZWJ1ZyByZWdpc3Rl ciBSRUdOVU0gdG8gVkFMVUUgaW4gb25seSB0aGUgb25lIExXUCBvZiBQVElELiAgKi8KICAKICBz dGF0aWMgdm9pZApAQCAtMjI5LDcgKzIyOSw3IEBAIGluZGV4IGE4NjlmODUuLmM1OWRhYTAgMTAw NjQ0CiAgICBlcnJubyA9IDA7CiAgICBwdHJhY2UgKFBUUkFDRV9QT0tFVVNFUiwgdGlkLAogIAkg IG9mZnNldG9mIChzdHJ1Y3QgdXNlciwgdV9kZWJ1Z3JlZ1tyZWdudW1dKSwgdmFsdWUpOwotQEAg LTMxMywzNSArMzAwLDk2IEBAIGFtZDY0X2xpbnV4X2RyX3NldCAocHRpZF90IHB0aWQsIGludCBy ZWdudW0sIHVuc2lnbmVkIGxvbmcgdmFsdWUpCitAQCAtMzEzLDM1ICszMDAsOTYgQEAgYW1kNjRf bGludXhfZHJfc2V0IChwdGlkX3QgcHRpZCwgaW50IHJlZwogICAgICBwZXJyb3Jfd2l0aF9uYW1l IChfKCJDb3VsZG4ndCB3cml0ZSBkZWJ1ZyByZWdpc3RlciIpKTsKICB9CiAgCkBAIC00MTEsMTEg KzQxMSwxMSBAQCBpbmRleCBhODY5Zjg1Li5jNTlkYWEwIDEwMDY0NAogIH0KICAMCiAgCi1kaWZm IC0tZ2l0IGEvZ2RiL2F4LWdkYi5jIGIvZ2RiL2F4LWdkYi5jCi1pbmRleCBkMTczNmUxLi4zZTU0 NzE2IDEwMDY0NAotLS0tIGEvZ2RiL2F4LWdkYi5jCi0rKysgYi9nZGIvYXgtZ2RiLmMKLUBAIC0y MDAxLDcgKzIwMDEsOCBAQCBnZW5fZXhwciAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgdW5pb24g ZXhwX2VsZW1lbnQgKipwYywKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9heC1nZGIu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvYXgtZ2RiLmMJ MjAxMS0wMi0yNCAwODozOTo0Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi9heC1nZGIuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorQEAg LTIwMDEsNyArMjAwMSw4IEBAIGdlbl9leHByIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCB1bmlv biAKICAKICAgICAgY2FzZSBPUF9JTlRFUk5BTFZBUjoKICAgICAgICB7CkBAIC00MjUsNyArNDI1 LDcgQEAgaW5kZXggZDE3MzZlMS4uM2U1NDcxNiAxMDA2NDQKICAJc3RydWN0IHRyYWNlX3N0YXRl X3ZhcmlhYmxlICp0c3Y7CiAgCiAgCSgqcGMpICs9IDM7Ci1AQCAtMjAxNSw3ICsyMDE2LDcgQEAg Z2VuX2V4cHIgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHVuaW9uIGV4cF9lbGVtZW50ICoqcGMs CitAQCAtMjAxNSw3ICsyMDE2LDcgQEAgZ2VuX2V4cHIgKHN0cnVjdCBleHByZXNzaW9uICpleHAs IHVuaW9uIAogIAkgICAgdmFsdWUtPmtpbmQgPSBheHNfcnZhbHVlOwogIAkgICAgdmFsdWUtPnR5 cGUgPSBidWlsdGluX3R5cGUgKGV4cC0+Z2RiYXJjaCktPmJ1aWx0aW5fbG9uZ19sb25nOwogIAkg IH0KQEAgLTQzNCwxMCArNDM0LDEwIEBAIGluZGV4IGQxNzM2ZTEuLjNlNTQ3MTYgMTAwNjQ0CiAg CSAgZXJyb3IgKF8oIiQlcyBpcyBub3QgYSB0cmFjZSBzdGF0ZSB2YXJpYWJsZTsgR0RCIGFnZW50 ICIKICAJCSAgICJleHByZXNzaW9ucyBjYW5ub3QgdXNlIGNvbnZlbmllbmNlIHZhcmlhYmxlcy4i KSwgbmFtZSk7CiAgICAgICAgfQotZGlmZiAtLWdpdCBhL2dkYi9ibG9jay5jIGIvZ2RiL2Jsb2Nr LmMKLWluZGV4IDc3NmFlNTMuLjM1NDRjZjIgMTAwNjQ0Ci0tLS0gYS9nZGIvYmxvY2suYwotKysr IGIvZ2RiL2Jsb2NrLmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9ibG9jay5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9ibG9jay5jCTIwMTEt MDEtMDEgMTY6MzI6NTcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9n ZGIvYmxvY2suYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTMyMiwz ICszMjIsMjEgQEAgYWxsb2NhdGVfYmxvY2sgKHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrKQogIAog ICAgcmV0dXJuIGJsOwpAQCAtNDYwLDIxICs0NjAsMjEgQEAgaW5kZXggNzc2YWU1My4uMzU0NGNm MiAxMDA2NDQKICsKICsgIHJldHVybiBTWU1CT0xfU1lNVEFCIChmdW5jKS0+b2JqZmlsZTsKICt9 Ci1kaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrLmggYi9nZGIvYmxvY2suaAotaW5kZXggMDdkNWJjNy4u ZmFkODliMSAxMDA2NDQKLS0tLSBhL2dkYi9ibG9jay5oCi0rKysgYi9nZGIvYmxvY2suaAotQEAg LTE2Nyw0ICsxNjcsNiBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGJsb2NrICpibG9ja19nbG9iYWxf YmxvY2sgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2spOworSW5kZXg6IGdkYi03LjIuOTAuMjAx MTA0MjkvZ2RiL2Jsb2NrLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9y aWcvZ2RiL2Jsb2NrLmgJMjAxMS0wMS0wMSAxNjozMjo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9ibG9jay5oCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAw MDAwICswMjAwCitAQCAtMTY3LDQgKzE2Nyw2IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgYmxvY2sg KmJsb2NrX2dsb2JhbF8KICAKICBleHRlcm4gc3RydWN0IGJsb2NrICphbGxvY2F0ZV9ibG9jayAo c3RydWN0IG9ic3RhY2sgKm9ic3RhY2spOwogIAogK2V4dGVybiBzdHJ1Y3Qgb2JqZmlsZSAqYmxv Y2tfb2JqZmlsZSAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jayk7CiArCiAgI2VuZGlmIC8qIEJM T0NLX0ggKi8KLWRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQu YwotaW5kZXggMmEyNWM4ZC4uZThjNzcxYyAxMDA2NDQKLS0tLSBhL2dkYi9icmVha3BvaW50LmMK LSsrKyBiL2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9i cmVha3BvaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2Ri L2JyZWFrcG9pbnQuYwkyMDExLTA0LTE1IDA2OjE4OjM0LjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL2JyZWFrcG9pbnQuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAw MDAwMDAwMCArMDIwMAogQEAgLTYzLDYgKzYzLDggQEAKICAjaW5jbHVkZSAiaml0LmgiCiAgI2lu Y2x1ZGUgInhtbC1zeXNjYWxsLmgiCkBAIC00ODQsNyArNDg0LDcgQEAgaW5kZXggMmEyNWM4ZC4u ZThjNzcxYyAxMDA2NDQKICAjaW5jbHVkZSAiY2xpL2NsaS11dGlscy5oIgogIAogIC8qIHJlYWRs aW5lIGluY2x1ZGUgZmlsZXMgKi8KLUBAIC0xMDcsNiArMTA5LDkgQEAgc3RhdGljIHZvaWQgYnJl YWtfY29tbWFuZF8xIChjaGFyICosIGludCwgaW50KTsKK0BAIC0xMDcsNiArMTA5LDkgQEAgc3Rh dGljIHZvaWQgYnJlYWtfY29tbWFuZF8xIChjaGFyICosIGludAogIAogIHN0YXRpYyB2b2lkIG1l bnRpb24gKHN0cnVjdCBicmVha3BvaW50ICopOwogIApAQCAtNDk0LDcgKzQ5NCw3IEBAIGluZGV4 IDJhMjVjOGQuLmU4Yzc3MWMgMTAwNjQ0CiAgLyogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGluIGdk YnRrIHNvdXJjZXMgYW5kIHRodXMgY2FuIG5vdCBiZSBtYWRlCiAgICAgc3RhdGljLiAgKi8KICBz dHJ1Y3QgYnJlYWtwb2ludCAqc2V0X3Jhd19icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKLUBAIC0xMjQ5LDYgKzEyNTQsOSBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJy ZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQorQEAgLTEyNDksNiArMTI1NCw5IEBAIHVwZGF0ZV93 YXRjaHBvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKICAgIGlmICghd2F0Y2hwb2ludF9pbl90 aHJlYWRfc2NvcGUgKGIpKQogICAgICByZXR1cm47CiAgCkBAIC01MDQsNyArNTA0LDcgQEAgaW5k ZXggMmEyNWM4ZC4uZThjNzcxYyAxMDA2NDQKICAgIGlmIChiLT5kaXNwb3NpdGlvbiA9PSBkaXNw X2RlbF9hdF9uZXh0X3N0b3ApCiAgICAgIHJldHVybjsKICAgCi1AQCAtMTUyMCw2ICsxNTI4LDQw IEBAIHNob3VsZF9iZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICpibCkKK0BAIC0xNTIw LDYgKzE1MjgsNDAgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRpb24gKgog ICAgcmV0dXJuIDE7CiAgfQogIApAQCAtNTQ1LDcgKzU0NSw3IEBAIGluZGV4IDJhMjVjOGQuLmU4 Yzc3MWMgMTAwNjQ0CiAgLyogSW5zZXJ0IGEgbG93LWxldmVsICJicmVha3BvaW50IiBvZiBzb21l IHR5cGUuICBCTCBpcyB0aGUgYnJlYWtwb2ludAogICAgIGxvY2F0aW9uLiAgQW55IGVycm9yIG1l c3NhZ2VzIGFyZSBwcmludGVkIHRvIFRNUF9FUlJPUl9TVFJFQU07IGFuZAogICAgIERJU0FCTEVE X0JSRUFLUywgYW5kIEhXX0JSRUFLUE9JTlRfRVJST1IgYXJlIHVzZWQgdG8gcmVwb3J0IHByb2Js ZW1zLgotQEAgLTE2MTYsNiArMTY1OCw4IEBAIGluc2VydF9icF9sb2NhdGlvbiAoc3RydWN0IGJw X2xvY2F0aW9uICpibCwKK0BAIC0xNjE2LDYgKzE2NTgsOCBAQCBpbnNlcnRfYnBfbG9jYXRpb24g KHN0cnVjdCBicF9sb2NhdGlvbiAqCiAgCSAgZWxzZQogIAkgICAgdmFsID0gdGFyZ2V0X2luc2Vy dF9icmVha3BvaW50IChibC0+Z2RiYXJjaCwKICAJCQkJCSAgICAmYmwtPnRhcmdldF9pbmZvKTsK QEAgLTY1OSw3ICs2NTksNyBAQCBpbmRleCAyYTI1YzhkLi5lOGM3NzFjIDEwMDY0NAogICAgICAg IGZvciAoaSA9IDA7IGkgPCBOVU1fTE9OR0pNUF9OQU1FUzsgaSsrKQogIAl7CiAgCSAgc3RydWN0 IGJyZWFrcG9pbnQgKmI7Ci1AQCAtMjMzNSw2ICsyNDIyLDMxIEBAIGNyZWF0ZV9leGNlcHRpb25f bWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQpCitAQCAtMjMzNSw2ICsyNDIyLDMxIEBAIGNyZWF0ZV9l eGNlcHRpb25fbWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQKICAKICAgICAgICBicF9vYmpmaWxlX2Rh dGEgPSBnZXRfYnJlYWtwb2ludF9vYmpmaWxlX2RhdGEgKG9iamZpbGUpOwogIApAQCAtNjkxLDcg KzY5MSw3IEBAIGluZGV4IDJhMjVjOGQuLmU4Yzc3MWMgMTAwNjQ0CiAgICAgICAgaWYgKG1zeW1f bm90X2ZvdW5kX3AgKGJwX29iamZpbGVfZGF0YS0+ZXhjZXB0aW9uX21zeW0pKQogIAljb250aW51 ZTsKICAKLUBAIC0yNTUzLDYgKzI2NjUsOCBAQCByZW1vdmVfYnJlYWtwb2ludF8xIChzdHJ1Y3Qg YnBfbG9jYXRpb24gKmJsLCBpbnNlcnRpb25fc3RhdGVfdCBpcykKK0BAIC0yNTUzLDYgKzI2NjUs OCBAQCByZW1vdmVfYnJlYWtwb2ludF8xIChzdHJ1Y3QgYnBfbG9jYXRpb24gCiAgCSAgICB2YWwg PSB0YXJnZXRfcmVtb3ZlX2h3X2JyZWFrcG9pbnQgKGJsLT5nZGJhcmNoLCAmYmwtPnRhcmdldF9p bmZvKTsKICAJICBlbHNlCiAgCSAgICB2YWwgPSB0YXJnZXRfcmVtb3ZlX2JyZWFrcG9pbnQgKGJs LT5nZGJhcmNoLCAmYmwtPnRhcmdldF9pbmZvKTsKQEAgLTcwMCw3ICs3MDAsNyBAQCBpbmRleCAy YTI1YzhkLi5lOGM3NzFjIDEwMDY0NAogIAl9CiAgICAgICAgZWxzZQogIAl7Ci1AQCAtNTkwMiw2 ICs2MDE2LDcgQEAgc2V0X3Jhd19icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwK K0BAIC01OTAyLDYgKzYwMTYsNyBAQCBzZXRfcmF3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNo ICpnZGJhCiAgICBiLT5sb2MtPnJlcXVlc3RlZF9hZGRyZXNzID0gc2FsLnBjOwogICAgYi0+bG9j LT5hZGRyZXNzID0gYWRqdXN0ZWRfYWRkcmVzczsKICAgIGItPmxvYy0+cHNwYWNlID0gc2FsLnBz cGFjZTsKQEAgLTcwOCw3ICs3MDgsNyBAQCBpbmRleCAyYTI1YzhkLi5lOGM3NzFjIDEwMDY0NAog IAogICAgLyogU3RvcmUgdGhlIHByb2dyYW0gc3BhY2UgdGhhdCB3YXMgdXNlZCB0byBzZXQgdGhl IGJyZWFrcG9pbnQsIGZvcgogICAgICAgYnJlYWtwb2ludCByZXNldHRpbmcuICAqLwotQEAgLTcw NTcsNiArNzE3Miw3IEBAIGNsb25lX21vbWVudGFyeV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtw b2ludCAqb3JpZykKK0BAIC03MDU3LDYgKzcxNzIsNyBAQCBjbG9uZV9tb21lbnRhcnlfYnJlYWtw b2ludCAoc3RydWN0IGJyZWFrCiAgICBjb3B5LT5sb2MtPmFkZHJlc3MgPSBvcmlnLT5sb2MtPmFk ZHJlc3M7CiAgICBjb3B5LT5sb2MtPnNlY3Rpb24gPSBvcmlnLT5sb2MtPnNlY3Rpb247CiAgICBj b3B5LT5sb2MtPnBzcGFjZSA9IG9yaWctPmxvYy0+cHNwYWNlOwpAQCAtNzE2LDcgKzcxNiw3IEBA IGluZGV4IDJhMjVjOGQuLmU4Yzc3MWMgMTAwNjQ0CiAgCiAgICBpZiAob3JpZy0+c291cmNlX2Zp bGUgPT0gTlVMTCkKICAgICAgY29weS0+c291cmNlX2ZpbGUgPSBOVUxMOwotQEAgLTcyODAsNiAr NzM5Niw3IEBAIGFkZF9sb2NhdGlvbl90b19icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAq YiwKK0BAIC03MjgwLDYgKzczOTYsNyBAQCBhZGRfbG9jYXRpb25fdG9fYnJlYWtwb2ludCAoc3Ry dWN0IGJyZWFrCiAgICBsb2MtPmFkZHJlc3MgPSBhZGp1c3RfYnJlYWtwb2ludF9hZGRyZXNzIChs b2MtPmdkYmFyY2gsCiAgCQkJCQkgICAgbG9jLT5yZXF1ZXN0ZWRfYWRkcmVzcywgYi0+dHlwZSk7 CiAgICBsb2MtPnBzcGFjZSA9IHNhbC0+cHNwYWNlOwpAQCAtNzI0LDcgKzcyNCw3IEBAIGluZGV4 IDJhMjVjOGQuLmU4Yzc3MWMgMTAwNjQ0CiAgICBnZGJfYXNzZXJ0IChsb2MtPnBzcGFjZSAhPSBO VUxMKTsKICAgIGxvYy0+c2VjdGlvbiA9IHNhbC0+c2VjdGlvbjsKICAKLUBAIC03NjI5LDYgKzc3 NDYsMTYgQEAgY3JlYXRlX2JyZWFrcG9pbnRzX3NhbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs CitAQCAtNzYyOSw2ICs3NzQ2LDE2IEBAIGNyZWF0ZV9icmVha3BvaW50c19zYWwgKHN0cnVjdCBn ZGJhcmNoICoKICB7CiAgICBpbnQgaTsKICAKQEAgLTc0MSw3ICs3NDEsNyBAQCBpbmRleCAyYTI1 YzhkLi5lOGM3NzFjIDEwMDY0NAogICAgZm9yIChpID0gMDsgaSA8IHNhbHMubmVsdHM7ICsraSkK ICAgICAgewogICAgICAgIHN0cnVjdCBzeW10YWJzX2FuZF9saW5lcyBleHBhbmRlZCA9IAotQEAg LTgxNTQsNyArODI4MSw3IEBAIGNyZWF0ZV9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKK0BAIC04MTU0LDcgKzgyODEsNyBAQCBjcmVhdGVfYnJlYWtwb2ludCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyCiAgICAgICAgICBtZW50aW9uIChiKTsKICAgICAgfQogICAgCkBAIC03NTAs NyArNzUwLDcgQEAgaW5kZXggMmEyNWM4ZC4uZThjNzcxYyAxMDA2NDQKICAgICAgewogICAgICAg IHdhcm5pbmcgKF8oIk11bHRpcGxlIGJyZWFrcG9pbnRzIHdlcmUgc2V0LlxuVXNlIHRoZSAiCiAg CQkgIlwiZGVsZXRlXCIgY29tbWFuZCB0byBkZWxldGUgdW53YW50ZWQgYnJlYWtwb2ludHMuIikp OwotQEAgLTkwMjYsNiArOTE1Myw3IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQg YWNjZXNzZmxhZywgaW50IGZyb21fdHR5LAorQEAgLTkwMjYsNiArOTE1Myw3IEBAIHdhdGNoX2Nv bW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmwKICAgIGIgPSBzZXRfcmF3X2JyZWFrcG9p bnRfd2l0aG91dF9sb2NhdGlvbiAoTlVMTCwgYnBfdHlwZSk7CiAgICBzZXRfYnJlYWtwb2ludF9u dW1iZXIgKGludGVybmFsLCBiKTsKICAgIGItPnRocmVhZCA9IHRocmVhZDsKQEAgLTc1OCw3ICs3 NTgsNyBAQCBpbmRleCAyYTI1YzhkLi5lOGM3NzFjIDEwMDY0NAogICAgYi0+ZGlzcG9zaXRpb24g PSBkaXNwX2RvbnR0b3VjaDsKICAgIGItPmV4cCA9IGV4cDsKICAgIGItPmV4cF92YWxpZF9ibG9j ayA9IGV4cF92YWxpZF9ibG9jazsKLUBAIC0xMDE4OCw2ICsxMDMxNiw5IEBAIHVwZGF0ZV9nbG9i YWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCitAQCAtMTAxODgsNiArMTAzMTYs OSBAQCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3QgKGludCBzaG91bGRfCiAgICAgICAgaW50 IGtlZXBfaW5fdGFyZ2V0ID0gMDsKICAgICAgICBpbnQgcmVtb3ZlZCA9IDA7CiAgCkBAIC03Njgs NyArNzY4LDcgQEAgaW5kZXggMmEyNWM4ZC4uZThjNzcxYyAxMDA2NDQKICAgICAgICAvKiBTa2lw IExPQ1AgZW50cmllcyB3aGljaCB3aWxsIGRlZmluaXRlbHkgbmV2ZXIgYmUgbmVlZGVkLgogIAkg U3RvcCBlaXRoZXIgYXQgb3IgYmVpbmcgdGhlIG9uZSBtYXRjaGluZyBPTERfTE9DLiAgKi8KICAg ICAgICB3aGlsZSAobG9jcCA8IGJwX2xvY2F0aW9uICsgYnBfbG9jYXRpb25fY291bnQKLUBAIC0x MDk1MiwxMiArMTEwODMsMTQgQEAgdXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChzdHJ1Y3Qg YnJlYWtwb2ludCAqYiwKK0BAIC0xMDk1MiwxMiArMTEwODMsMTQgQEAgdXBkYXRlX2JyZWFrcG9p bnRfbG9jYXRpb25zIChzdHJ1Y3QgYnJlYQogICAgIE9uIHJldHVybiwgRk9VTkQgd2lsbCBiZSAx IGlmIGFueSBTYUwgd2FzIGZvdW5kLCB6ZXJvIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIHN0 cnVjdCBzeW10YWJzX2FuZF9saW5lcwpAQCAtNzg0LDcgKzc4NCw3IEBAIGluZGV4IDJhMjVjOGQu LmU4Yzc3MWMgMTAwNjQ0CiAgCiAgICBzID0gYWRkcl9zdHJpbmc7CiAgICBtYXJrZXJfc3BlYyA9 IGItPnR5cGUgPT0gYnBfc3RhdGljX3RyYWNlcG9pbnQgJiYgaXNfbWFya2VyX3NwZWMgKHMpOwot QEAgLTEwOTc2LDggKzExMTA5LDI3IEBAIGFkZHJfc3RyaW5nX3RvX3NhbHMgKHN0cnVjdCBicmVh a3BvaW50ICpiLCBjaGFyICphZGRyX3N0cmluZywgaW50ICpmb3VuZCkKK0BAIC0xMDk3Niw4ICsx MTEwOSwyNyBAQCBhZGRyX3N0cmluZ190b19zYWxzIChzdHJ1Y3QgYnJlYWtwb2ludCAqCiAgCSAg ICBlcnJvciAoXygibWFya2VyICVzIG5vdCBmb3VuZCIpLCBiLT5zdGF0aWNfdHJhY2VfbWFya2Vy X2lkKTsKICAJfQogICAgICAgIGVsc2UKQEAgLTgxNCw3ICs4MTQsNyBAQCBpbmRleCAyYTI1Yzhk Li5lOGM3NzFjIDEwMDY0NAogICAgICB9CiAgICBpZiAoZS5yZWFzb24gPCAwKQogICAgICB7Ci1A QCAtMTEwMTAsNyArMTExNjIsNyBAQCBhZGRyX3N0cmluZ190b19zYWxzIChzdHJ1Y3QgYnJlYWtw b2ludCAqYiwgY2hhciAqYWRkcl9zdHJpbmcsIGludCAqZm91bmQpCitAQCAtMTEwMTAsNyArMTEx NjIsNyBAQCBhZGRyX3N0cmluZ190b19zYWxzIChzdHJ1Y3QgYnJlYWtwb2ludCAqCiAgCiAgICBp ZiAoIW5vdF9mb3VuZCkKICAgICAgewpAQCAtODc5LDcgKzg3OSw3IEBAIGluZGV4IDJhMjVjOGQu LmU4Yzc3MWMgMTAwNjQ0CiAgDAogIC8qIFRoaXMgaGVscCBzdHJpbmcgaXMgdXNlZCBmb3IgdGhl IGJyZWFrLCBoYnJlYWssIHRicmVhayBhbmQgdGhicmVhawogICAgIGNvbW1hbmRzLiAgSXQgaXMg ZGVmaW5lZCBhcyBhIG1hY3JvIHRvIHByZXZlbnQgZHVwbGljYXRpb24uCi1AQCAtMTMxMzYsNCAr MTMzMTEsNyBAQCByYW5nZSAoaW5jbHVkaW5nIFNUQVJULUxPQ0FUSU9OIGFuZCBFTkQtTE9DQVRJ T04pLiIpKTsKK0BAIC0xMzEzNiw0ICsxMzMxMSw3IEBAIHJhbmdlIChpbmNsdWRpbmcgU1RBUlQt TE9DQVRJT04gYW5kIEVORC0KICAgIGF1dG9tYXRpY19oYXJkd2FyZV9icmVha3BvaW50cyA9IDE7 CiAgCiAgICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJlYWtwb2ludF9hYm91 dF90b19wcm9jZWVkKTsKQEAgLTg4NywxMCArODg3LDEwIEBAIGluZGV4IDJhMjVjOGQuLmU4Yzc3 MWMgMTAwNjQ0CiArICBvYnNlcnZlcl9hdHRhY2hfbWFya191c2VkIChicmVha3BvaW50X3R5cGVz X21hcmtfdXNlZCk7CiArI2VuZGlmCiAgfQotZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50Lmgg Yi9nZGIvYnJlYWtwb2ludC5oCi1pbmRleCA3YTljMmQ0Li44YTkxMDE5IDEwMDY0NAotLS0tIGEv Z2RiL2JyZWFrcG9pbnQuaAotKysrIGIvZ2RiL2JyZWFrcG9pbnQuaAorSW5kZXg6IGdkYi03LjIu OTAuMjAxMTA0MjkvZ2RiL2JyZWFrcG9pbnQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAu MjAxMTA0Mjkub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTEtMDMtMzEgMTY6MzI6NDguMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvYnJlYWtwb2ludC5oCTIwMTEt MDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMzYzLDYgKzM2MywxMSBAQCBzdHJ1 Y3QgYnBfbG9jYXRpb24KICAgICAgIHByb2Nlc3NvcidzIGFyY2hpdGVjdHVhbCBjb25zdHJhaW50 cy4gICovCiAgICBDT1JFX0FERFIgcmVxdWVzdGVkX2FkZHJlc3M7CkBAIC05MDMsNyArOTAzLDcg QEAgaW5kZXggN2E5YzJkNC4uOGE5MTAxOSAxMDA2NDQKICAgIGNoYXIgKmZ1bmN0aW9uX25hbWU7 CiAgCiAgICAvKiBEZXRhaWxzIG9mIHRoZSBwbGFjZWQgYnJlYWtwb2ludCwgd2hlbiBpbnNlcnRl ZC4gICovCi1AQCAtMTIzNyw0ICsxMjQyLDExIEBAIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAq aXRlcmF0ZV9vdmVyX2JyZWFrcG9pbnRzIChpbnQgKCopIChzdHJ1Y3QgYnJlYWtwb2ludCAqCitA QCAtMTIzMyw0ICsxMjM4LDExIEBAIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqaXRlcmF0ZV9v dmVyX2IKICAKICBleHRlcm4gaW50IHVzZXJfYnJlYWtwb2ludF9wIChzdHJ1Y3QgYnJlYWtwb2lu dCAqKTsKICAKQEAgLTkxNSwxMSArOTE1LDExIEBAIGluZGV4IDdhOWMyZDQuLjhhOTEwMTkgMTAw NjQ0CiArZXh0ZXJuIHZvaWQgbW9kaWZ5X3NlbWFwaG9yZSAoc3RydWN0IGJwX2xvY2F0aW9uICps b2NhdGlvbiwgaW50IHNldCk7CiArCiAgI2VuZGlmIC8qICFkZWZpbmVkIChCUkVBS1BPSU5UX0gp ICovCi1kaWZmIC0tZ2l0IGEvZ2RiL2MtdHlwZXByaW50LmMgYi9nZGIvYy10eXBlcHJpbnQuYwot aW5kZXggMmUyM2RkNy4uYWVmYzgwNyAxMDA2NDQKLS0tLSBhL2dkYi9jLXR5cGVwcmludC5jCi0r KysgYi9nZGIvYy10eXBlcHJpbnQuYwotQEAgLTYyNSw5ICs2MjUsMTQgQEAgY190eXBlX3ByaW50 X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0luZGV4OiBnZGItNy4yLjkwLjIw MTEwNDI5L2dkYi9jLXR5cGVwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDEx MDQyOS5vcmlnL2dkYi9jLXR5cGVwcmludC5jCTIwMTEtMDMtMjIgMTg6MzU6MjIuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvYy10eXBlcHJpbnQuYwkyMDExLTA0 LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTYyNSw5ICs2MjUsMTQgQEAgY190eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQogIAkgIGZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIikiKTsKICAKICAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiWyIpOwpAQCAt OTM3LDExICs5MzcsMTEgQEAgaW5kZXggMmUyM2RkNy4uYWVmYzgwNyAxMDA2NDQKICAJZnByaW50 Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXSIpOwogIAogIAljX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZm aXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sCi1kaWZmIC0tZ2l0IGEvZ2RiL2Ns aS9jbGktdXRpbHMuYyBiL2dkYi9jbGkvY2xpLXV0aWxzLmMKLWluZGV4IDYyYTJmMTIuLmRkMjgy NGYgMTAwNjQ0Ci0tLS0gYS9nZGIvY2xpL2NsaS11dGlscy5jCi0rKysgYi9nZGIvY2xpL2NsaS11 dGlscy5jCi1AQCAtMjQ1LDMgKzI0NSwzMiBAQCByZW1vdmVfdHJhaWxpbmdfd2hpdGVzcGFjZSAo Y29uc3QgY2hhciAqc3RhcnQsIGNoYXIgKnMpCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9n ZGIvY2xpL2NsaS11dGlscy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5v cmlnL2dkYi9jbGkvY2xpLXV0aWxzLmMJMjAxMS0wMy0xNiAyMjoxMjoxMi4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9jbGkvY2xpLXV0aWxzLmMJMjAxMS0wNC0y OSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yNDUsMyArMjQ1LDMyIEBAIHJlbW92ZV90 cmFpbGluZ193aGl0ZXNwYWNlIChjb25zdCBjaGFyICoKICAKICAgIHJldHVybiBzOwogIH0KQEAg LTk3NCwxMCArOTc0LDEwIEBAIGluZGV4IDYyYTJmMTIuLmRkMjgyNGYgMTAwNjQ0CiArCiArICBy ZXR1cm4gY29weTsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL2NsaS9jbGktdXRpbHMuaCBiL2dkYi9j bGkvY2xpLXV0aWxzLmgKLWluZGV4IDhhNmU1YjMuLmVkMWE2M2UgMTAwNjQ0Ci0tLS0gYS9nZGIv Y2xpL2NsaS11dGlscy5oCi0rKysgYi9nZGIvY2xpL2NsaS11dGlscy5oCitJbmRleDogZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvY2xpL2NsaS11dGlscy5oCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu Mi45MC4yMDExMDQyOS5vcmlnL2dkYi9jbGkvY2xpLXV0aWxzLmgJMjAxMS0wMy0xNiAyMjoxMjox Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9jbGkvY2xpLXV0 aWxzLmgJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMDMsNCArMTAz LDExIEBAIGV4dGVybiBjaGFyICpza2lwX3RvX3NwYWNlIChjaGFyICppbnApOwogICAgIFNUQVJU LiAgKi8KICAKQEAgLTk5MCwxMSArOTkwLDExIEBAIGluZGV4IDhhNmU1YjMuLmVkMWE2M2UgMTAw NjQ0CiArZXh0ZXJuIGNoYXIgKmV4dHJhY3RfYXJnIChjaGFyICoqYXJnKTsKICsKICAjZW5kaWYg LyogQ0xJX1VUSUxTX0ggKi8KLWRpZmYgLS1naXQgYS9nZGIvY29mZnJlYWQuYyBiL2dkYi9jb2Zm cmVhZC5jCi1pbmRleCBiMTFkZDczLi4wODY4YTc5IDEwMDY0NAotLS0tIGEvZ2RiL2NvZmZyZWFk LmMKLSsrKyBiL2dkYi9jb2ZmcmVhZC5jCi1AQCAtMjE5Myw2ICsyMTkzLDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBzeW1fZm5zIGNvZmZfc3ltX2ZucyA9CitJbmRleDogZ2RiLTcuMi45MC4yMDEx MDQyOS9nZGIvY29mZnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjku b3JpZy9nZGIvY29mZnJlYWQuYwkyMDExLTAzLTE3IDE0OjE5OjIzLjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2NvZmZyZWFkLmMJMjAxMS0wNC0yOSAwOTo0MDo0 Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMTkzLDYgKzIxOTMsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHN5bV9mbnMgY29mZl9zeW1fZm5zCiAgCiAgICBkZWZhdWx0X3N5bWZpbGVfcmVsb2NhdGUs CS8qIHN5bV9yZWxvY2F0ZTogUmVsb2NhdGUgYSBkZWJ1ZwogIAkJCQkgICBzZWN0aW9uLiAgKi8K QEAgLTEwMDIsMTAgKzEwMDIsMTAgQEAgaW5kZXggYjExZGQ3My4uMDg2OGE3OSAxMDA2NDQKICAg ICZwc3ltX2Z1bmN0aW9ucwogIH07CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1pbmRleCAxMWNm MmU2Li45YTJhOGY4IDEwMDY0NAotLS0tIGEvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmlu Ci0rKysgYi9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KK0luZGV4OiBnZGItNy4yLjkw LjIwMTEwNDI5L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4J MjAxMS0wMi0wNCAxOTozNDo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDExLTA0LTI5IDA5OjQwOjQ2LjAw MDAwMDAwMCArMDIwMAogQEAgLTUyLDExICs1MiwyMyBAQCBTWVNDQUxMU19GSUxFUyA9IFwKICBQ WVRIT05fRElSID0gcHl0aG9uCiAgUFlUSE9OX0lOU1RBTExfRElSID0gJChERVNURElSKSQoR0RC X0RBVEFESVIpLyQoUFlUSE9OX0RJUikKQEAgLTEwMzMsMTAgKzEwMzMsMTAgQEAgaW5kZXggMTFj ZjJlNi4uOWEyYThmOCAxMDA2NDQKICAKICBGTEFHU19UT19QQVNTID0gXAogIAkicHJlZml4PSQo cHJlZml4KSIgXAotZGlmZiAtLWdpdCBhL2dkYi9kYnhyZWFkLmMgYi9nZGIvZGJ4cmVhZC5jCi1p bmRleCA1MWRkZDlkLi5hNTlhZTEwIDEwMDY0NAotLS0tIGEvZ2RiL2RieHJlYWQuYwotKysrIGIv Z2RiL2RieHJlYWQuYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2RieHJlYWQuYwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvZGJ4cmVhZC5jCTIw MTEtMDMtMjMgMTk6MjM6NTQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvZGJ4cmVhZC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAt MSw2ICsxLDYgQEAKICAvKiBSZWFkIGRieCBzeW1ib2wgdGFibGVzIGFuZCBjb252ZXJ0IHRvIGlu dGVybmFsIGZvcm1hdCwgZm9yIEdEQi4KICAgICBDb3B5cmlnaHQgKEMpIDE5ODYsIDE5ODcsIDE5 ODgsIDE5ODksIDE5OTAsIDE5OTEsIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsCkBAIC0xMDQ1LDcg KzEwNDUsNyBAQCBpbmRleCA1MWRkZDlkLi5hNTlhZTEwIDEwMDY0NAogICAgIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLUBA IC0zNTg3LDYgKzM1ODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgYW91dF9zeW1f Zm5zID0KK0BAIC0zNTg3LDYgKzM1ODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMg YW91dF9zeW1fZm5zCiAgICBkZWZhdWx0X3N5bWZpbGVfc2VnbWVudHMsCS8qIEdldCBzZWdtZW50 IGluZm9ybWF0aW9uIGZyb20gYSBmaWxlLiAgKi8KICAgIE5VTEwsCiAgICBkZWZhdWx0X3N5bWZp bGVfcmVsb2NhdGUsCS8qIFJlbG9jYXRlIGEgZGVidWcgc2VjdGlvbi4gICovCkBAIC0xMDUzLDEx ICsxMDUzLDExIEBAIGluZGV4IDUxZGRkOWQuLmE1OWFlMTAgMTAwNjQ0CiAgICAmcHN5bV9mdW5j dGlvbnMKICB9OwogIAotZGlmZiAtLWdpdCBhL2dkYi9kZWZzLmggYi9nZGIvZGVmcy5oCi1pbmRl eCA5NTMxYzVhLi5iOTk0NjQ1IDEwMDY0NAotLS0tIGEvZ2RiL2RlZnMuaAotKysrIGIvZ2RiL2Rl ZnMuaAotQEAgLTM5OCw2ICszOTgsOCBAQCBleHRlcm4gc3RydWN0IGNsZWFudXAgKm1ha2VfY2xl YW51cF9yZXN0b3JlX3BhZ2VfaW5mbyAodm9pZCk7CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvZGVmcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dk Yi9kZWZzLmgJMjAxMS0wMy0zMSAxNjozMjo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4y LjkwLjIwMTEwNDI5L2dkYi9kZWZzLmgJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAy MDAKK0BAIC0zOTgsNiArMzk4LDggQEAgZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICptYWtlX2NsZWFu dXBfcmVzdAogIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqCiAgICBzZXRfYmF0Y2hfZmxhZ19hbmRf bWFrZV9jbGVhbnVwX3Jlc3RvcmVfcGFnZV9pbmZvICh2b2lkKTsKICAKQEAgLTEwNjYsMTAgKzEw NjYsMTAgQEAgaW5kZXggOTUzMWM1YS4uYjk5NDY0NSAxMDA2NDQKICBleHRlcm4gY2hhciAqZ2Ri X3JlYWxwYXRoIChjb25zdCBjaGFyICopOwogIGV4dGVybiBjaGFyICp4ZnVsbHBhdGggKGNvbnN0 IGNoYXIgKik7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2Mv Z2RiLnRleGluZm8KLWluZGV4IGM3MWQ2NjQuLmI2NmU0MjYgMTAwNjQ0Ci0tLS0gYS9nZGIvZG9j L2dkYi50ZXhpbmZvCi0rKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvZG9jL2dkYi50ZXhpbmZvCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45 MC4yMDExMDQyOS5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wNC0yMCAxOToyNjo0Mi4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9kb2MvZ2RiLnRleGlu Zm8JMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMTc3LDYgKzExNzcs MTYgQEAgZm9yIHJlbW90ZSBkZWJ1Z2dpbmcuCiAgUnVuIHVzaW5nIEB2YXJ7ZGV2aWNlfSBmb3Ig eW91ciBwcm9ncmFtJ3Mgc3RhbmRhcmQgaW5wdXQgYW5kIG91dHB1dC4KICBAYyBGSVhNRToga2lu Z2RvbiB0aGlua3MgdGhlcmUgaXMgbW9yZSB0byAtdHR5LiAgSW52ZXN0aWdhdGUuCkBAIC0xMDg3 LDcgKzEwODcsNyBAQCBpbmRleCBjNzFkNjY0Li5iNjZlNDI2IDEwMDY0NAogIEBjIHJlc29sdmUg dGhlIHNpdHVhdGlvbiBvZiB0aGVzZSBldmVudHVhbGx5CiAgQGl0ZW0gLXR1aQogIEBjaW5kZXgg QGNvZGV7LS10dWl9Ci1AQCAtMzI4Niw2ICszMjk2LDcgQEAgYWxsIGJyZWFrcG9pbnRzIGluIHRo YXQgcmFuZ2UgYXJlIG9wZXJhdGVkIG9uLgorQEAgLTMyODYsNiArMzI5Niw3IEBAIGFsbCBicmVh a3BvaW50cyBpbiB0aGF0IHJhbmdlIGFyZSBvcGVyYXQKICAqIENvbmRpdGlvbnM6OiAgICAgICAg ICAgICAgICAgIEJyZWFrIGNvbmRpdGlvbnMKICAqIEJyZWFrIENvbW1hbmRzOjogICAgICAgICAg ICAgIEJyZWFrcG9pbnQgY29tbWFuZCBsaXN0cwogICogU2F2ZSBCcmVha3BvaW50czo6ICAgICAg ICAgICAgSG93IHRvIHNhdmUgYnJlYWtwb2ludHMgaW4gYSBmaWxlCkBAIC0xMDk1LDcgKzEwOTUs NyBAQCBpbmRleCBjNzFkNjY0Li5iNjZlNDI2IDEwMDY0NAogICogRXJyb3IgaW4gQnJlYWtwb2lu dHM6OiAgICAgICAgYGBDYW5ub3QgaW5zZXJ0IGJyZWFrcG9pbnRzJycKICAqIEJyZWFrcG9pbnQt cmVsYXRlZCBXYXJuaW5nczo6IGBgQnJlYWtwb2ludCBhZGRyZXNzIGFkanVzdGVkLi4uJycKICBA ZW5kIG1lbnUKLUBAIC00NDk5LDYgKzQ1MTAsNTAgQEAgYW5kIHJlbW92ZSB0aGUgYnJlYWtwb2lu dCBkZWZpbml0aW9ucyB5b3UncmUgbm90IGludGVyZXN0ZWQgaW4sIG9yCitAQCAtNDQ5OSw2ICs0 NTEwLDUwIEBAIGFuZCByZW1vdmUgdGhlIGJyZWFrcG9pbnQgZGVmaW5pdGlvbnMgeW8KICB0aGF0 IGNhbiBubyBsb25nZXIgYmUgcmVjcmVhdGVkLgogIEBlbmQgdGFibGUKICAKQEAgLTExNDYsNyAr MTE0Niw3IEBAIGluZGV4IGM3MWQ2NjQuLmI2NmU0MjYgMTAwNjQ0CiAgQGMgIEBpZmNsZWFyIEJB UkVUQVJHRVQKICBAbm9kZSBFcnJvciBpbiBCcmVha3BvaW50cwogIEBzdWJzZWN0aW9uIGBgQ2Fu bm90IGluc2VydCBicmVha3BvaW50cycnCi1AQCAtNjQxNCw2ICs2NDY5LDI5IEBAIHNwZWNpZnkg dGhlIGZ1bmN0aW9uIHVuYW1iaWd1b3VzbHksIGUuZy4sIGlmIHRoZXJlIGFyZSBzZXZlcmFsCitA QCAtNjQxNCw2ICs2NDY5LDI5IEBAIHNwZWNpZnkgdGhlIGZ1bmN0aW9uIHVuYW1iaWd1b3VzbHks IGUuZy4KICBmdW5jdGlvbnMgd2l0aCBpZGVudGljYWwgbmFtZXMgaW4gZGlmZmVyZW50IHNvdXJj ZSBmaWxlcy4KICBAZW5kIHRhYmxlCiAgCkBAIC0xMTc2LDcgKzExNzYsNyBAQCBpbmRleCBjNzFk NjY0Li5iNjZlNDI2IDEwMDY0NAogIEBlbmQgdGFibGUKICAKICAKLUBAIC04NTAwLDYgKzg1Nzgs MTAgQEAgdG8gbWF0Y2ggdGhlIGZvcm1hdCBpbiB3aGljaCB0aGUgZGF0YSB3YXMgcHJpbnRlZC4K K0BAIC04NTAwLDYgKzg1NzgsMTAgQEAgdG8gbWF0Y2ggdGhlIGZvcm1hdCBpbiB3aGljaCB0aGUg ZGF0YSB3YQogIFRoZSB2YXJpYWJsZSBAY29kZXskX2V4aXRjb2RlfSBpcyBhdXRvbWF0aWNhbGx5 IHNldCB0byB0aGUgZXhpdCBjb2RlIHdoZW4KICB0aGUgcHJvZ3JhbSBiZWluZyBkZWJ1Z2dlZCB0 ZXJtaW5hdGVzLgogIApAQCAtMTIxMyw3ICsxMjEzLDcgQEAgaW5kZXggYzcxZDY2NC4uYjY2ZTQy NiAxMDA2NDQKICA+cHJpbnQgMjMKICA+ZW5kCiAgMjMKLUBAIC0yMDcyNCw2ICsyMDgxNCwxNCBA QCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBiZSBjb250cm9sbGVkIHVzaW5nIEBjb2Rl e21haW50IHNldAorQEAgLTIwNzI0LDYgKzIwODE0LDE0IEBAIGluIGEgUHl0aG9uIHNjcmlwdC4g IFRoaXMgY2FuIGJlIGNvbnRyb2wKICBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtvbn0s IHRoZSBkZWZhdWx0LCB0aGVuIFB5dGhvbiBzdGFjawogIHByaW50aW5nIGlzIGVuYWJsZWQ7IGlm IEBjb2Rle29mZn0sIHRoZW4gUHl0aG9uIHN0YWNrIHByaW50aW5nIGlzCiAgZGlzYWJsZWQuCkBA IC0xMjQzLDExICsxMjQzLDExIEBAIGluZGV4IGM3MWQ2NjQuLmI2NmU0MjYgMTAwNjQ0CiAgQGNp bmRleCBweXRob24gc3Rkb3V0CiAgQGNpbmRleCBweXRob24gcGFnaW5hdGlvbgogIEF0IHN0YXJ0 dXAsIEB2YWx1ZXtHREJOfSBvdmVycmlkZXMgUHl0aG9uJ3MgQGNvZGV7c3lzLnN0ZG91dH0gYW5k Ci1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbyBiL2dkYi9kb2MvZ2RiaW50LnRl eGluZm8KLWluZGV4IGE0OTQ3MDcuLmQ1YjljZjggMTAwNjQ0Ci0tLS0gYS9nZGIvZG9jL2dkYmlu dC50ZXhpbmZvCi0rKysgYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCi1AQCAtMjEwNCw2ICsyMTA0 LDE4IEBAIHRpbWUsIGFuZCBzbyB3ZSBhdHRlbXB0IHRvIGhhbmRsZSBzeW1ib2xzIGluY3JlbWVu dGFsbHkuICBGb3IgaW5zdGFuY2UsCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvZG9j L2dkYmludC50ZXhpbmZvCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmln L2dkYi9kb2MvZ2RiaW50LnRleGluZm8JMjAxMS0wMi0wNCAyMDoxMDoxMi4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9kb2MvZ2RiaW50LnRleGluZm8JMjAxMS0w NC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMTA0LDYgKzIxMDQsMTggQEAgdGlt ZSwgYW5kIHNvIHdlIGF0dGVtcHQgdG8gaGFuZGxlIHN5bWJvbAogIHdlIGNyZWF0ZSBAZGZue3Bh cnRpYWwgc3ltYm9sIHRhYmxlc30gY29uc2lzdGluZyBvZiBvbmx5IHNlbGVjdGVkCiAgc3ltYm9s cywgYW5kIG9ubHkgZXhwYW5kIHRoZW0gdG8gZnVsbCBzeW1ib2wgdGFibGVzIHdoZW4gbmVjZXNz YXJ5LgogIApAQCAtMTI2Niw3ICsxMjY2LDcgQEAgaW5kZXggYTQ5NDcwNy4uZDViOWNmOCAxMDA2 NDQKICBAc2VjdGlvbiBTeW1ib2wgUmVhZGluZwogIAogIEBjaW5kZXggc3ltYm9sIHJlYWRpbmcK LUBAIC0yMTk2LDYgKzIyMDgsNyBAQCBzeW10YWIuICBVcG9uIHJldHVybiwgQGNvZGV7cHN0LT5y ZWFkaW59IHNob3VsZCBoYXZlIGJlZW4gc2V0IHRvIDEsIGFuZAorQEAgLTIxOTYsNiArMjIwOCw3 IEBAIHN5bXRhYi4gIFVwb24gcmV0dXJuLCBAY29kZXtwc3QtPnJlYWRpbn0KICB6ZXJvIGlmIHRo ZXJlIHdlcmUgbm8gc3ltYm9scyBpbiB0aGF0IHBhcnQgb2YgdGhlIHN5bWJvbCBmaWxlLgogIEBl bmQgdGFibGUKICAKQEAgLTEyNzQsNyArMTI3NCw3IEBAIGluZGV4IGE0OTQ3MDcuLmQ1YjljZjgg MTAwNjQ0CiAgQHNlY3Rpb24gUGFydGlhbCBTeW1ib2wgVGFibGVzCiAgCiAgQHZhbHVle0dEQk59 IGhhcyB0aHJlZSB0eXBlcyBvZiBzeW1ib2wgdGFibGVzOgotQEAgLTIyOTcsNiArMjMxMCw3IEBA IGFuZCBwYXJ0aWFsIHN5bWJvbCB0YWJsZXMgYmVoaW5kIGEgc2V0IG9mIGZ1bmN0aW9uIHBvaW50 ZXJzIGtub3duIGFzCitAQCAtMjI5Nyw2ICsyMzEwLDcgQEAgYW5kIHBhcnRpYWwgc3ltYm9sIHRh YmxlcyBiZWhpbmQgYSBzZXQgbwogIHRoZSBAZGZue3F1aWNrIHN5bWJvbCBmdW5jdGlvbnN9LiAg VGhlc2UgYXJlIGRvY3VtZW50ZWQgaW4KICBAZmlsZXtzeW1maWxlLmh9LgogIApAQCAtMTI4Miw3 ICsxMjgyLDcgQEAgaW5kZXggYTQ5NDcwNy4uZDViOWNmOCAxMDA2NDQKICBAc2VjdGlvbiBUeXBl cwogIAogIEB1bm51bWJlcmVkc3Vic2VjIEZ1bmRhbWVudGFsIFR5cGVzIChlLmcuLCBAY29kZXtG VF9WT0lEfSwgQGNvZGV7RlRfQk9PTEVBTn0pLgotQEAgLTIzMTksNiArMjMzMyw3IEBAIHR5cGVz IG1hcCB0byBvbmUgQGNvZGV7VFlQRV9DT0RFXyp9IHR5cGUsIGFuZCBhcmUgZGlzdGluZ3Vpc2hl ZCBieQorQEAgLTIzMTksNiArMjMzMyw3IEBAIHR5cGVzIG1hcCB0byBvbmUgQGNvZGV7VFlQRV9D T0RFXyp9IHR5cGUKICBvdGhlciBtZW1iZXJzIG9mIHRoZSB0eXBlIHN0cnVjdCwgc3VjaCBhcyB3 aGV0aGVyIHRoZSB0eXBlIGlzIHNpZ25lZAogIG9yIHVuc2lnbmVkLCBhbmQgaG93IG1hbnkgYml0 cyBpdCB1c2VzLgogIApAQCAtMTI5MCw3ICsxMjkwLDcgQEAgaW5kZXggYTQ5NDcwNy4uZDViOWNm OCAxMDA2NDQKICBAdW5udW1iZXJlZHN1YnNlYyBCdWlsdGluIFR5cGVzIChlLmcuLCBAY29kZXti dWlsdGluX3R5cGVfdm9pZH0sIEBjb2Rle2J1aWx0aW5fdHlwZV9jaGFyfSkuCiAgCiAgVGhlc2Ug YXJlIGluc3RhbmNlcyBvZiB0eXBlIHN0cnVjdHMgdGhhdCByb3VnaGx5IGNvcnJlc3BvbmQgdG8K LUBAIC0yMzMzLDYgKzIzNDgsNyBAQCBvbmx5IG9uZSBpbnN0YW5jZSBleGlzdHMsIHdoaWxlIEBm aWxle2MtbGFuZy5jfSBidWlsZHMgYXMgbWFueQorQEAgLTIzMzMsNiArMjM0OCw3IEBAIG9ubHkg b25lIGluc3RhbmNlIGV4aXN0cywgd2hpbGUgQGZpbGV7Yy0KICBAY29kZXtUWVBFX0NPREVfSU5U fSB0eXBlcyBhcyBuZWVkZWQsIHdpdGggZWFjaCBvbmUgYXNzb2NpYXRlZCB3aXRoCiAgc29tZSBw YXJ0aWN1bGFyIG9iamZpbGUuCiAgCkBAIC0xMzA2LDcgKzEzMDYsNyBAQCBpbmRleCBhNDk0NzA3 Li5kNWI5Y2Y4IDEwMDY0NAogIEBzZWN0aW9uIERlYnVnZ2luZyBGaWxlIEZvcm1hdHMKICAKICBU aGlzIHNlY3Rpb24gZGVzY3JpYmVzIGNoYXJhY3RlcmlzdGljcyBvZiBkZWJ1Z2dpbmcgaW5mb3Jt YXRpb24gdGhhdAotQEAgLTI0ODksNiArMjUwNiw3IEBAIERXQVJGIDMgaXMgYW4gaW1wcm92ZWQg dmVyc2lvbiBvZiBEV0FSRiAyLgorQEAgLTI0ODksNiArMjUwNiw3IEBAIERXQVJGIDMgaXMgYW4g aW1wcm92ZWQgdmVyc2lvbiBvZiBEV0FSRiAKICBAY2luZGV4IFNPTSBkZWJ1Z2dpbmcgaW5mbwog IExpa2UgQ09GRiwgdGhlIFNPTSBkZWZpbml0aW9uIGluY2x1ZGVzIGRlYnVnZ2luZyBpbmZvcm1h dGlvbi4KICAKQEAgLTEzMTQsNyArMTMxNCw3IEBAIGluZGV4IGE0OTQ3MDcuLmQ1YjljZjggMTAw NjQ0CiAgQHNlY3Rpb24gQWRkaW5nIGEgTmV3IFN5bWJvbCBSZWFkZXIgdG8gQHZhbHVle0dEQk59 CiAgCiAgQGNpbmRleCBhZGRpbmcgZGVidWdnaW5nIGluZm8gcmVhZGVyCi1AQCAtMjUxMSw2ICsy NTI5LDcgQEAgd2lsbCBvbmx5IGV2ZXIgYmUgaW1wbGVtZW50ZWQgYnkgb25lIG9iamVjdCBmaWxl IGZvcm1hdCBtYXkgYmUgY2FsbGVkCitAQCAtMjUxMSw2ICsyNTI5LDcgQEAgd2lsbCBvbmx5IGV2 ZXIgYmUgaW1wbGVtZW50ZWQgYnkgb25lIG9iagogIGRpcmVjdGx5LiAgVGhpcyBpbnRlcmZhY2Ug c2hvdWxkIGJlIGRlc2NyaWJlZCBpbiBhIGZpbGUKICBAZmlsZXtiZmQvbGliQHZhcnt4eXp9Lmh9 LCB3aGljaCBpcyBpbmNsdWRlZCBieSBAdmFsdWV7R0RCTn0uCiAgCkBAIC0xMzIyLDcgKzEzMjIs NyBAQCBpbmRleCBhNDk0NzA3Li5kNWI5Y2Y4IDEwMDY0NAogIEBzZWN0aW9uIE1lbW9yeSBNYW5h Z2VtZW50IGZvciBTeW1ib2wgRmlsZXMKICAKICBNb3N0IG1lbW9yeSBhc3NvY2lhdGVkIHdpdGgg YSBsb2FkZWQgc3ltYm9sIGZpbGUgaXMgc3RvcmVkIG9uCi1AQCAtMjUyMiwxMCArMjU0MSw0NSBA QCByZWxlYXNlZCB3aGVuIHRoZSBvYmpmaWxlIGlzIHVubG9hZGVkIG9yIHJlbG9hZGVkLiAgVGhl cmVmb3JlIG9uZQorQEAgLTI1MjIsMTAgKzI1NDEsNDUgQEAgcmVsZWFzZWQgd2hlbiB0aGUgb2Jq ZmlsZSBpcyB1bmxvYWRlZCBvcgogIG9iamZpbGUgbXVzdCBub3QgcmVmZXJlbmNlIHN5bWJvbCBv ciB0eXBlIGRhdGEgZnJvbSBhbm90aGVyIG9iamZpbGU7CiAgdGhleSBjb3VsZCBiZSB1bmxvYWRl ZCBhdCBkaWZmZXJlbnQgdGltZXMuCiAgCkBAIC0xMzcyLDExICsxMzcyLDExIEBAIGluZGV4IGE0 OTQ3MDcuLmQ1YjljZjggMTAwNjQ0CiAgCiAgCiAgQG5vZGUgTGFuZ3VhZ2UgU3VwcG9ydAotZGlm ZiAtLWdpdCBhL2dkYi9kb2Mvb2JzZXJ2ZXIudGV4aSBiL2dkYi9kb2Mvb2JzZXJ2ZXIudGV4aQot aW5kZXggZDE2Yzg2NS4uOTQ2YWQ5NSAxMDA2NDQKLS0tLSBhL2dkYi9kb2Mvb2JzZXJ2ZXIudGV4 aQotKysrIGIvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCi1AQCAtMjIzLDYgKzIyMywxMSBAQCBCeXRl cyBmcm9tIEB2YXJ7ZGF0YX0gdG8gQHZhcntkYXRhfSArIEB2YXJ7bGVufSBoYXZlIGJlZW4gd3Jp dHRlbgorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9kb2Mvb2JzZXJ2ZXIu dGV4aQkyMDExLTAxLTA1IDA2OjA5OjU0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuOTAu MjAxMTA0MjkvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAw MDAwICswMjAwCitAQCAtMjIzLDYgKzIyMywxMSBAQCBCeXRlcyBmcm9tIEB2YXJ7ZGF0YX0gdG8g QHZhcntkYXRhfSArIEB2CiAgdG8gdGhlIGN1cnJlbnQgaW5mZXJpb3IgYXQgQHZhcnthZGRyfS4K ICBAZW5kIGRlZnR5cGVmdW4KICAKQEAgLTEzODgsMTEgKzEzODgsMTEgQEAgaW5kZXggZDE2Yzg2 NS4uOTQ2YWQ5NSAxMDA2NDQKICBAZGVmdHlwZWZ1biB2b2lkIHRlc3Rfbm90aWZpY2F0aW9uIChp bnQgQHZhcntzb21lYXJnfSkKICBUaGlzIG9ic2VydmVyIGlzIHVzZWQgZm9yIGludGVybmFsIHRl c3RpbmcuICBEbyBub3QgdXNlLiAgCiAgU2VlIHRlc3RzdWl0ZS9nZGIuZ2RiL29ic2VydmVyLmV4 cC4KLWRpZmYgLS1naXQgYS9nZGIvZHdhcmYyZXhwci5jIGIvZ2RiL2R3YXJmMmV4cHIuYwotaW5k ZXggOTFmY2NmOS4uNGNkNTk0OSAxMDA2NDQKLS0tLSBhL2dkYi9kd2FyZjJleHByLmMKLSsrKyBi L2dkYi9kd2FyZjJleHByLmMKLUBAIC05MTIsNiArOTEyLDEzIEBAIGV4ZWN1dGVfc3RhY2tfb3Ag KHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi9kd2FyZjJleHByLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5 Lm9yaWcvZ2RiL2R3YXJmMmV4cHIuYwkyMDExLTAzLTIyIDIyOjA2OjMyLjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2R3YXJmMmV4cHIuYwkyMDExLTA0LTI5IDA5 OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTkxMiw2ICs5MTIsMTMgQEAgZXhlY3V0ZV9zdGFj a19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udAogIAkgIGN0eC0+bnVtX3BpZWNlcyA9IDA7CiAg CSAgZ290byBhYm9ydF9leHByZXNzaW9uOwogIApAQCAtMTQwNiwxMCArMTQwNiwxMCBAQCBpbmRl eCA5MWZjY2Y5Li40Y2Q1OTQ5IDEwMDY0NAogIAlkZWZhdWx0OgogIAkgIGVycm9yIChfKCJVbmhh bmRsZWQgZHdhcmYgZXhwcmVzc2lvbiBvcGNvZGUgMHgleCIpLCBvcCk7CiAgCX0KLWRpZmYgLS1n aXQgYS9nZGIvZHdhcmYyZXhwci5oIGIvZ2RiL2R3YXJmMmV4cHIuaAotaW5kZXggNzhmZjUzZi4u YzgzZjIzZCAxMDA2NDQKLS0tLSBhL2dkYi9kd2FyZjJleHByLmgKLSsrKyBiL2dkYi9kd2FyZjJl eHByLmgKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9kd2FyZjJleHByLmgKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL2R3YXJmMmV4cHIuaAkyMDEx LTAyLTI3IDE3OjI1OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0Mjkv Z2RiL2R3YXJmMmV4cHIuaAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAg LTExNCw5ICsxMTQsMTUgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAogICNpZiAwCiAgICAv KiBOb3QgeWV0IGltcGxlbWVudGVkLiAgKi8KQEAgLTE0MjcsMTAgKzE0MjcsMTAgQEAgaW5kZXgg NzhmZjUzZi4uYzgzZjIzZCAxMDA2NDQKICAKICAgIC8qIFRoZSBjdXJyZW50IGRlcHRoIG9mIGR3 YXJmIGV4cHJlc3Npb24gcmVjdXJzaW9uLCB2aWEgRFdfT1BfY2FsbCosCiAgICAgICBEV19PUF9m YnJlZywgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcywgZXRjLiwgYW5kIHRoZSBtYXhpbXVtCi1k aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCi1pbmRleCA0YzEz MzA3Li45YjBlMWFkIDEwMDY0NAotLS0tIGEvZ2RiL2R3YXJmMmxvYy5jCi0rKysgYi9nZGIvZHdh cmYybG9jLmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9kd2FyZjJsb2MuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAx MS0wMy0yMiAyMjowNjozMy4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi9kd2FyZjJsb2MuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAg LTEzNCw2ICsxMzQsOSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbgogIHsKICAgIHN0cnVjdCBm cmFtZV9pbmZvICpmcmFtZTsKQEAgLTE0NDEsNyArMTQ0MSw3IEBAIGluZGV4IDRjMTMzMDcuLjli MGUxYWQgMTAwNjQ0CiAgfTsKICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBkd2FyZjJfZXZh bHVhdGVfbG9jX2Rlc2MuICAqLwotQEAgLTIwMiwyMyArMjA1LDMzIEBAIGR3YXJmX2V4cHJfZnJh bWVfYmFzZV8xIChzdHJ1Y3Qgc3ltYm9sICpmcmFtZWZ1bmMsIENPUkVfQUREUiBwYywKK0BAIC0y MDIsMjMgKzIwNSwzMyBAQCBkd2FyZl9leHByX2ZyYW1lX2Jhc2VfMSAoc3RydWN0IHN5bWJvbCAq CiAgICAgICAgc3ltYmF0b24gPSBTWU1CT0xfTE9DQVRJT05fQkFUT04gKGZyYW1lZnVuYyk7CiAg ICAgICAgKnN0YXJ0ID0gZHdhcmYyX2ZpbmRfbG9jYXRpb25fZXhwcmVzc2lvbiAoc3ltYmF0b24s IGxlbmd0aCwgcGMpOwogICAgICB9CkBAIC0xNDYxLDcgKzE0NjEsNyBAQCBpbmRleCA0YzEzMzA3 Li45YjBlMWFkIDEwMDY0NAogKyAgICAgIGdkYl9hc3NlcnQgKHN5bWJhdG9uICE9IE5VTEwpOwog KyAgICAgICpzdGFydCA9IHN5bWJhdG9uLT5kYXRhOwogKyAgICAgICpsZW5ndGggPSBzeW1iYXRv bi0+c2l6ZTsKLSAgICAgfQorKyAgICB9CiArICBlbHNlIGlmIChTWU1CT0xfQ09NUFVURURfT1BT IChmcmFtZWZ1bmMpID09ICZkd2FyZjJfbWlzc2luZ19mdW5jcykKICsgICAgewogKyAgICAgIHN0 cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqc3ltYmF0b247CkBAIC0xNDcwLDcgKzE0NzAsNyBA QCBpbmRleCA0YzEzMzA3Li45YjBlMWFkIDEwMDY0NAogKyAgICAgIGdkYl9hc3NlcnQgKHN5bWJh dG9uID09IE5VTEwpOwogKyAgICAgICpzdGFydCA9IE5VTEw7CiArICAgICAgKmxlbmd0aCA9IDA7 CS8qIHVudXNlZCAqLwotKyAgICB9CisgICAgIH0KICsgIGVsc2UKICsgICAgaW50ZXJuYWxfZXJy b3IgKF9fRklMRV9fLCBfX0xJTkVfXywKICsJCSAgICBfKCJVbnN1cHBvcnRlZCBTWU1CT0xfQ09N UFVURURfT1BTICVwIGZvciBcIiVzXCIiKSwKQEAgLTE0ODQsNyArMTQ4NCw3IEBAIGluZGV4IDRj MTMzMDcuLjliMGUxYWQgMTAwNjQ0CiAgfQogIAogIC8qIEhlbHBlciBmdW5jdGlvbiBmb3IgZHdh cmYyX2V2YWx1YXRlX2xvY19kZXNjLiAgQ29tcHV0ZXMgdGhlIENGQSBmb3IKLUBAIC0yODYsNiAr Mjk5LDE3MiBAQCBkd2FyZl9leHByX2R3YXJmX2NhbGwgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRl eHQgKmN0eCwgc2l6ZV90IGRpZV9vZmZzZXQpCitAQCAtMjg2LDYgKzI5OSwxNzIgQEAgZHdhcmZf ZXhwcl9kd2FyZl9jYWxsIChzdHJ1Y3QgZHdhcmZfZXhwcgogIAkJICAgICBjdHgtPmdldF9mcmFt ZV9wYywgY3R4LT5iYXRvbik7CiAgfQogIApAQCAtMTY1Nyw3ICsxNjU3LDcgQEAgaW5kZXggNGMx MzMwNy4uOWIwZTFhZCAxMDA2NDQKICBzdHJ1Y3QgcGllY2VfY2xvc3VyZQogIHsKICAgIC8qIFJl ZmVyZW5jZSBjb3VudC4gICovCi1AQCAtMTA3MiwxMSArMTI1MSw4IEBAIGR3YXJmMl9ldmFsdWF0 ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lLAorQEAgLTEwNzIsMTEgKzEyNTEsOCBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVs bCAoc3RydWN0IHR5CiAgCQkJICAgICAgIExPTkdFU1QgYnl0ZV9vZmZzZXQpCiAgewogICAgc3Ry dWN0IHZhbHVlICpyZXR2YWw7CkBAIC0xNjY5LDcgKzE2NjksNyBAQCBpbmRleCA0YzEzMzA3Li45 YjBlMWFkIDEwMDY0NAogIAogICAgaWYgKGJ5dGVfb2Zmc2V0IDwgMCkKICAgICAgaW52YWxpZF9z eW50aGV0aWNfcG9pbnRlciAoKTsKLUBAIC0xMDg5LDM4ICsxMjY1LDE0IEBAIGR3YXJmMl9ldmFs dWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLAorQEAgLTEwODksMzggKzEyNjUsMTQgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNj X2Z1bGwgKHN0cnVjdCB0eQogICAgICAgIHJldHVybiByZXR2YWw7CiAgICAgIH0KICAKQEAgLTE3 MTQsNyArMTcxNCw3IEBAIGluZGV4IDRjMTMzMDcuLjliMGUxYWQgMTAwNjQ0CiAgICAgIH0KICAK ICAgIGlmIChjdHgtPm51bV9waWVjZXMgPiAwKQotQEAgLTExNjYsNiArMTMxOCwxNSBAQCBkd2Fy ZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFt ZV9pbmZvICpmcmFtZSwKK0BAIC0xMTY2LDYgKzEzMTgsMTUgQEAgZHdhcmYyX2V2YWx1YXRlX2xv Y19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkgICAgQ09SRV9BRERSIGFkZHJlc3MgPSBkd2FyZl9l eHByX2ZldGNoX2FkZHJlc3MgKGN0eCwgMCk7CiAgCSAgICBpbnQgaW5fc3RhY2tfbWVtb3J5ID0g ZHdhcmZfZXhwcl9mZXRjaF9pbl9zdGFja19tZW1vcnkgKGN0eCwgMCk7CiAgCkBAIC0xNzMwLDcg KzE3MzAsNyBAQCBpbmRleCA0YzEzMzA3Li45YjBlMWFkIDEwMDY0NAogIAkgICAgcmV0dmFsID0g YWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7CiAgCSAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0g bHZhbF9tZW1vcnk7CiAgCSAgICBpZiAoaW5fc3RhY2tfbWVtb3J5KQotQEAgLTI4NTUsMTEgKzMw MTYsNTEgQEAgbG9jbGlzdF90cmFjZXBvaW50X3Zhcl9yZWYgKHN0cnVjdCBzeW1ib2wgKnN5bWJv bCwgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMjg1NSwxMSArMzAxNiw1MSBAQCBsb2Ns aXN0X3RyYWNlcG9pbnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvCiAgCQkJICAgICAgIGRsYmF0b24t PnBlcl9jdSk7CiAgfQogIApAQCAtMTc4NCwxMCArMTc4NCwxMCBAQCBpbmRleCA0YzEzMzA3Li45 YjBlMWFkIDEwMDY0NAogKyAgbWlzc2luZ19kZXNjcmliZV9sb2NhdGlvbiwKICsgIG1pc3Npbmdf dHJhY2Vwb2ludF92YXJfcmVmCiArfTsKLWRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmggYi9n ZGIvZHdhcmYybG9jLmgKLWluZGV4IDk2YTQ5MGUuLmIwZWJiMDYgMTAwNjQ0Ci0tLS0gYS9nZGIv ZHdhcmYybG9jLmgKLSsrKyBiL2dkYi9kd2FyZjJsb2MuaAorSW5kZXg6IGdkYi03LjIuOTAuMjAx MTA0MjkvZ2RiL2R3YXJmMmxvYy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQy OS5vcmlnL2dkYi9kd2FyZjJsb2MuaAkyMDExLTAyLTE3IDE3OjIwOjQ0LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2R3YXJmMmxvYy5oCTIwMTEtMDQtMjkgMDk6 NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMTA3LDYgKzEwNywxNSBAQCBzdHJ1Y3QgZHdhcmYy X2xvY2xpc3RfYmF0b24KICAKICBleHRlcm4gY29uc3Qgc3RydWN0IHN5bWJvbF9jb21wdXRlZF9v cHMgZHdhcmYyX2xvY2V4cHJfZnVuY3M7CkBAIC0xODA0LDExICsxODA0LDExIEBAIGluZGV4IDk2 YTQ5MGUuLmIwZWJiMDYgMTAwNjQ0CiAgCiAgLyogQ29tcGlsZSBhIERXQVJGIGxvY2F0aW9uIGV4 cHJlc3Npb24gdG8gYW4gYWdlbnQgZXhwcmVzc2lvbi4KICAgICAKLWRpZmYgLS1naXQgYS9nZGIv ZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAx MDA2NDQKLS0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKLSsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBA IC0xMjExLDYgKzEyMTEsOSBAQCBzdGF0aWMgdm9pZCBmaWxsX2luX2xvY2xpc3RfYmF0b24gKHN0 cnVjdCBkd2FyZjJfY3UgKmN1LAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2R3YXJm MnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvZHdh cmYycmVhZC5jCTIwMTEtMDQtMjAgMjI6MTA6MjkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAw MDAwICswMjAwCitAQCAtMTIxMiw2ICsxMjEyLDkgQEAgc3RhdGljIHZvaWQgZmlsbF9pbl9sb2Ns aXN0X2JhdG9uIChzdHJ1YwogIAkJCQkgICBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24gKmJh dG9uLAogIAkJCQkgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKTsKICAKQEAgLTE4MTgsNyArMTgx OCw3IEBAIGluZGV4IGNhNmM5OGIuLmQxNzY2MjQgMTAwNjQ0CiAgc3RhdGljIHZvaWQgZHdhcmYy X3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogIAkJCQkJIHN0 cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkJCSBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7Ci1AQCAtMTI0 NSw2ICsxMjQ4LDkgQEAgc3RhdGljIHZvaWQgYWdlX2NhY2hlZF9jb21wX3VuaXRzICh2b2lkKTsK K0BAIC0xMjQ2LDYgKzEyNDksOSBAQCBzdGF0aWMgdm9pZCBhZ2VfY2FjaGVkX2NvbXBfdW5pdHMg KHZvaWQpCiAgCiAgc3RhdGljIHZvaWQgZnJlZV9vbmVfY2FjaGVkX2NvbXBfdW5pdCAodm9pZCAq KTsKICAKQEAgLTE4MjgsNyArMTgyOCw3IEBAIGluZGV4IGNhNmM5OGIuLmQxNzY2MjQgMTAwNjQ0 CiAgc3RhdGljIHN0cnVjdCB0eXBlICpzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqLCBz dHJ1Y3QgdHlwZSAqLAogIAkJCQkgIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCi1AQCAtMTI2OSw2 ICsxMjc1LDkgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGVfYXRfb2Zmc2V0ICh1 bnNpZ25lZCBpbnQsCitAQCAtMTI3MCw2ICsxMjc2LDkgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpn ZXRfZGllX3R5cGVfYXRfb2ZmcwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOwogIApAQCAtMTgz OCw3ICsxODM4LDcgQEAgaW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICBzdGF0aWMgdm9p ZCBkd2FyZjJfcmVsZWFzZV9xdWV1ZSAodm9pZCAqZHVtbXkpOwogIAogIHN0YXRpYyB2b2lkIHF1 ZXVlX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1LAotQEAgLTcz NDIsNiArNzM1MSwyOSBAQCBwcm9jZXNzX2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzM1OSw2ICs3MzY4LDI5IEBAIHBy b2Nlc3NfZW51bWVyYXRpb25fc2NvcGUgKHN0cnVjdCBkaWVfaW4KICAgIG5ld19zeW1ib2wgKGRp ZSwgdGhpc190eXBlLCBjdSk7CiAgfQogIApAQCAtMTg2OCw3ICsxODY4LDcgQEAgaW5kZXggY2E2 Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICAvKiBFeHRyYWN0IGFsbCBpbmZvcm1hdGlvbiBmcm9tIGEg RFdfVEFHX2FycmF5X3R5cGUgRElFIGFuZCBwdXQgaXQgaW4KICAgICB0aGUgRElFJ3MgdHlwZSBm aWVsZC4gIEZvciBub3csIHRoaXMgb25seSBoYW5kbGVzIG9uZSBkaW1lbnNpb25hbAogICAgIGFy cmF5cy4gICovCi1AQCAtNzM1NSw3ICs3Mzg3LDcgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzM3Miw3ICs3NDA0LDcg QEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcwogICAgc3RydWN0IHR5 cGUgKmVsZW1lbnRfdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlOwogICAgc3RydWN0IHR5 cGUgKipyYW5nZV90eXBlcyA9IE5VTEw7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAt MTg3Nyw3ICsxODc3LDcgQEAgaW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICAgIHN0cnVj dCBjbGVhbnVwICpiYWNrX3RvOwogICAgY2hhciAqbmFtZTsKICAKLUBAIC03NDA4LDE3ICs3NDQw LDE5IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTc0MjUsMTcgKzc0NTcsMTkgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgcwogICAgdHlwZSA9IGVsZW1lbnRfdHlwZTsKICAKICAgIGlmIChy ZWFkX2FycmF5X29yZGVyIChkaWUsIGN1KSA9PSBEV19PUkRfY29sX21ham9yKQpAQCAtMTkwOCw3 ICsxOTA4LDcgQEAgaW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICAKICAgIC8qIFVuZGVy c3RhbmQgRHdhcmYyIHN1cHBvcnQgZm9yIHZlY3RvciB0eXBlcyAobGlrZSB0aGV5IG9jY3VyIG9u CiAgICAgICB0aGUgUG93ZXJQQyB3LyBBbHRpVmVjKS4gIEdjYyBqdXN0IGFkZHMgYW5vdGhlciBh dHRyaWJ1dGUgdG8gdGhlCi1AQCAtNzkxMSwyOSArNzk0NSwxMTQgQEAgcmVhZF90YWdfc3RyaW5n X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC03 OTI4LDI5ICs3OTYyLDExNCBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZp bGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNo YXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0xOTI3LDEwICsxOTI3LDkg QEAgaW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9zdHJpbmdfbGVuZ3RoLCBjdSk7CiAtICBpZiAoYXR0cikKLS0gICAgewot LSAgICAgIGxlbmd0aCA9IERXX1VOU05EIChhdHRyKTsKICsgIGlmIChhdHRyICYmIGF0dHJfZm9y bV9pc19ibG9jayAoYXR0cikpCi0rICAgIHsKKyAgICAgeworLSAgICAgIGxlbmd0aCA9IERXX1VO U05EIChhdHRyKTsKICsgICAgICAvKiBTZWN1cml0eSBjaGVjayBmb3IgYSBzaXplIG92ZXJmbG93 LiAgKi8KICsgICAgICBpZiAoRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgMiA8IERXX0JMT0NLIChh dHRyKS0+c2l6ZSkKICsJVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IDE7CkBAIC0yMDM3 LDcgKzIwMzYsNyBAQCBpbmRleCBjYTZjOThiLi5kMTc2NjI0IDEwMDY0NAogICAgY2hhcl90eXBl ID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gp OwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90 eXBlKTsKICAKLUBAIC04MjE4LDggKzgzMzcsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04MjM1LDggKzgzNTQs NyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCiAgICBzdHJ1Y3Qg dHlwZSAqYmFzZV90eXBlOwogICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGU7CiAgICBzdHJ1Y3Qg YXR0cmlidXRlICphdHRyOwpAQCAtMjA0Nyw3ICsyMDQ2LDcgQEAgaW5kZXggY2E2Yzk4Yi4uZDE3 NjYyNCAxMDA2NDQKICAgIGNoYXIgKm5hbWU7CiAgICBMT05HRVNUIG5lZ2F0aXZlX21hc2s7CiAg Ci1AQCAtODIzMiw1MyArODM1MCwxMjYgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODI0OSw1MyArODM2NywxMjYg QEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogICAgaWYgKHJhbmdl X3R5cGUpCiAgICAgIHJldHVybiByYW5nZV90eXBlOwogIApAQCAtMjA3OCw3ICsyMDc3LDI0IEBA IGluZGV4IGNhNmM5OGIuLmQxNzY2MjQgMTAwNjQ0CiArCiArICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsKICsgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9p c19ibG9jayAoYXR0cikgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2FkYSkKLSsgICAgewor ICAgICB7CistICAgICAgaWYgKGF0dHItPmZvcm0gPT0gRFdfRk9STV9ibG9jazEgfHwgaXNfcmVm X2F0dHIgKGF0dHIpKQorLSAgICAgICAgeworLSAgICAgICAgICAvKiBHQ0MgZW5jb2RlcyBhcnJh eXMgd2l0aCB1bnNwZWNpZmllZCBvciBkeW5hbWljIGxlbmd0aAorLSAgICAgICAgICAgICB3aXRo IGEgRFdfRk9STV9ibG9jazEgYXR0cmlidXRlIG9yIGEgcmVmZXJlbmNlIGF0dHJpYnV0ZS4KKy0g ICAgICAgICAgICAgRklYTUU6IEdEQiBkb2VzIG5vdCB5ZXQga25vdyBob3cgdG8gaGFuZGxlIGR5 bmFtaWMKKy0gICAgICAgICAgICAgYXJyYXlzIHByb3Blcmx5LCB0cmVhdCB0aGVtIGFzIGFycmF5 cyB3aXRoIHVuc3BlY2lmaWVkCistICAgICAgICAgICAgIGxlbmd0aCBmb3Igbm93LgorLQorLSAg ICAgICAgICAgICBGSVhNRTogamltYi8yMDAzLTA5LTIyOiBHREIgZG9lcyBub3QgcmVhbGx5IGtu b3cKKy0gICAgICAgICAgICAgaG93IHRvIGhhbmRsZSBhcnJheXMgb2YgdW5zcGVjaWZpZWQgbGVu Z3RoCistICAgICAgICAgICAgIGVpdGhlcjsgd2UganVzdCByZXByZXNlbnQgdGhlbSBhcyB6ZXJv LWxlbmd0aAorLSAgICAgICAgICAgICBhcnJheXMuICBDaG9vc2UgYW4gYXBwcm9wcmlhdGUgdXBw ZXIgYm91bmQgZ2l2ZW4KKy0gICAgICAgICAgICAgdGhlIGxvd2VyIGJvdW5kIHdlJ3ZlIGNvbXB1 dGVkIGFib3ZlLiAgKi8KKy0gICAgICAgICAgaGlnaCA9IGxvdyAtIDE7CistICAgICAgICB9Cist ICAgICAgZWxzZQorLSAgICAgICAgaGlnaCA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1 ZSAoYXR0ciwgMSk7CiArICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+bG93Lmtp bmQgPSBSQU5HRV9CT1VORF9LSU5EX0RXQVJGX0JMT0NLOwogKyAgICAgIFRZUEVfUkFOR0VfREFU QSAocmFuZ2VfdHlwZSktPmxvdy51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3Rv X2xvY2V4cHJfYmF0b24gKGF0dHIsIGN1KTsKQEAgLTIxMDQsMjkgKzIxMjAsMTcgQEAgaW5kZXgg Y2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICsgICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUp ID0gMTsKICsgICAgICAvKiBGb3Igc2V0dGluZyBhIGRlZmF1bHQgaWYgRFdfQVRfVVBQRVJfQk9V TkQgd291bGQgYmUgbWlzc2luZy4gICovCiArICAgICAgbG93ID0gMDsKLSsgICAgfQotKyAgZWxz ZQorICAgICB9CisgICBlbHNlCiAgICAgIHsKLS0gICAgICBpZiAoYXR0ci0+Zm9ybSA9PSBEV19G T1JNX2Jsb2NrMSB8fCBpc19yZWZfYXR0ciAoYXR0cikpCi0tICAgICAgICB7Ci0tICAgICAgICAg IC8qIEdDQyBlbmNvZGVzIGFycmF5cyB3aXRoIHVuc3BlY2lmaWVkIG9yIGR5bmFtaWMgbGVuZ3Ro Ci0tICAgICAgICAgICAgIHdpdGggYSBEV19GT1JNX2Jsb2NrMSBhdHRyaWJ1dGUgb3IgYSByZWZl cmVuY2UgYXR0cmlidXRlLgotLSAgICAgICAgICAgICBGSVhNRTogR0RCIGRvZXMgbm90IHlldCBr bm93IGhvdyB0byBoYW5kbGUgZHluYW1pYwotLSAgICAgICAgICAgICBhcnJheXMgcHJvcGVybHks IHRyZWF0IHRoZW0gYXMgYXJyYXlzIHdpdGggdW5zcGVjaWZpZWQKLS0gICAgICAgICAgICAgbGVu Z3RoIGZvciBub3cuCi0tCi0tICAgICAgICAgICAgIEZJWE1FOiBqaW1iLzIwMDMtMDktMjI6IEdE QiBkb2VzIG5vdCByZWFsbHkga25vdwotLSAgICAgICAgICAgICBob3cgdG8gaGFuZGxlIGFycmF5 cyBvZiB1bnNwZWNpZmllZCBsZW5ndGgKLS0gICAgICAgICAgICAgZWl0aGVyOyB3ZSBqdXN0IHJl cHJlc2VudCB0aGVtIGFzIHplcm8tbGVuZ3RoCi0tICAgICAgICAgICAgIGFycmF5cy4gIENob29z ZSBhbiBhcHByb3ByaWF0ZSB1cHBlciBib3VuZCBnaXZlbgotLSAgICAgICAgICAgICB0aGUgbG93 ZXIgYm91bmQgd2UndmUgY29tcHV0ZWQgYWJvdmUuICAqLwotLSAgICAgICAgICBoaWdoID0gbG93 IC0gMTsKLS0gICAgICAgIH0KKy0gICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRf Y291bnQsIGN1KTsKKy0gICAgICBpZiAoYXR0cikKICsgICAgICBpZiAoYXR0ciAmJiBhdHRyX2Zv cm1faXNfY29uc3RhbnQgKGF0dHIpKQogKwlsb3cgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRf dmFsdWUgKGF0dHIsIDApOwotICAgICAgIGVsc2UKLS0gICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0 X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDEpOwotKwl7CisrICAgICAgZWxzZQorIAl7Cist CSAgaW50IGNvdW50ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAxKTsK Ky0JICBoaWdoID0gbG93ICsgY291bnQgLSAxOwogKwkgIGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFu Z3VhZ2VfZm9ydHJhbikKICsJICAgIHsKICsJICAgICAgLyogRk9SVFJBTiBpbXBsaWVzIGEgbG93 ZXIgYm91bmQgb2YgMSwgaWYgbm90IGdpdmVuLiAgKi8KQEAgLTIxMzgsMzAgKzIxNDIsMjUgQEAg aW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICsJCSBMQU5HVUFHRV9DIGFuZCBMQU5HVUFH RV9DUExVUy4gICovCiArCSAgICAgIGxvdyA9IDA7CiArCSAgICB9Ci0rCX0KKyAJfQogKyAgICAg IGlmICghVFlQRV9VTlNJR05FRCAoYmFzZV90eXBlKSAmJiAobG93ICYgbmVnYXRpdmVfbWFzaykp CiArCWxvdyB8PSBuZWdhdGl2ZV9tYXNrOwogKyAgICAgIFRZUEVfTE9XX0JPVU5EIChyYW5nZV90 eXBlKSA9IGxvdzsKICsgICAgICBpZiAobG93ID49IDApCiArCVRZUEVfVU5TSUdORUQgKHJhbmdl X3R5cGUpID0gMTsKLSAgICAgfQotLSAgZWxzZQorKyAgICB9CiArCiArICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1KTsKICsgIGlmICghYXR0ciB8fCAoIWF0 dHJfZm9ybV9pc19ibG9jayAoYXR0cikgJiYgIWF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikK ICsJCSYmICFpc19yZWZfYXR0ciAoYXR0cikpKQotICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJm Ml9hdHRyIChkaWUsIERXX0FUX2NvdW50LCBjdSk7Ci0tICAgICAgaWYgKGF0dHIpCi0tCXsKLS0J ICBpbnQgY291bnQgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDEpOwot LQkgIGhpZ2ggPSBsb3cgKyBjb3VudCAtIDE7CisrICAgIHsKKysgICAgICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfY291bnQsIGN1KTsKICsgICAgICAvKiBJdCBkb2VzIG5vdCBodXJ0 IGJ1dCBpdCBpcyBuZWVkbGVzc2x5IGluZWZmZWN0aXZlIGluIGNoZWNrX3R5cGVkZWYuICAqLwog KyAgICAgIGlmIChhdHRyICYmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpIHx8IGF0dHJfZm9y bV9pc19jb25zdGFudCAoYXR0cikpKQogKyAgICAgIAl7CiArCSAgVFlQRV9SQU5HRV9ISUdIX0JP VU5EX0lTX0NPVU5UIChyYW5nZV90eXBlKSA9IDE7CiArCSAgVFlQRV9EWU5BTUlDIChyYW5nZV90 eXBlKSA9IDE7Ci0gCX0KKysJfQogKyAgICAgIC8qIFBhc3MgaXQgbm93IGFzIHRoZSByZWd1bGFy IERXX0FUX3VwcGVyX2JvdW5kLiAgKi8KICsgICAgfQogKwpAQCAtMjIwOSw3ICsyMjA4LDcgQEAg aW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICAgICAgfQogIAogICAgLyogRHdhcmYtMiBz cGVjaWZpY2F0aW9ucyBleHBsaWNpdGx5IGFsbG93cyB0byBjcmVhdGUgc3VicmFuZ2UgdHlwZXMK LUBAIC04MzE5LDI0ICs4NTEwLDQxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgzMzYsMjQgKzg1MjcsNDEgQEAg cmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogIAl9CiAgICAgIH0KICAK QEAgLTIyMjEsNiArMjIyMCwxNiBAQCBpbmRleCBjYTZjOThiLi5kMTc2NjI0IDEwMDY0NAogLSAg ICBoaWdoIHw9IG5lZ2F0aXZlX21hc2s7CiAtCiAtICByYW5nZV90eXBlID0gY3JlYXRlX3Jhbmdl X3R5cGUgKE5VTEwsIGJhc2VfdHlwZSwgbG93LCBoaWdoKTsKKy0KKy0gIC8qIE1hcmsgYXJyYXlz IHdpdGggZHluYW1pYyBsZW5ndGggYXQgbGVhc3QgYXMgYW4gYXJyYXkgb2YgdW5zcGVjaWZpZWQK Ky0gICAgIGxlbmd0aC4gIEdEQiBjb3VsZCBjaGVjayB0aGUgYm91bmRhcnkgYnV0IGJlZm9yZSBp dCBnZXRzIGltcGxlbWVudGVkIGF0CistICAgICBsZWFzdCBhbGxvdyBhY2Nlc3NpbmcgdGhlIGFy cmF5IGVsZW1lbnRzLiAgKi8KKy0gIGlmIChhdHRyICYmIGF0dHItPmZvcm0gPT0gRFdfRk9STV9i bG9jazEpCistICAgIFRZUEVfSElHSF9CT1VORF9VTkRFRklORUQgKHJhbmdlX3R5cGUpID0gMTsK Ky0KKy0gIC8qIEFkYSBleHBlY3RzIGFuIGVtcHR5IGFycmF5IG9uIG5vIGJvdW5kYXJ5IGF0dHJp YnV0ZXMuICAqLworLSAgaWYgKGF0dHIgPT0gTlVMTCAmJiBjdS0+bGFuZ3VhZ2UgIT0gbGFuZ3Vh Z2VfYWRhKQorLSAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90eXBlKSA9IDE7 CiArICAvKiBEV19BVF9iaXRfc3RyaWRlIGlzIGN1cnJlbnRseSB1bnN1cHBvcnRlZCBhcyB3ZSBj b3VudCBpbiBieXRlcy4gICovCiArICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0 ZV9zdHJpZGUsIGN1KTsKICsgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikg JiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2FkYSkKQEAgLTIyMzYsMTkgKzIyNDUsMTEgQEAg aW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICsgICAgICBzdHJ1Y3QgZGllX2luZm8gKnRh cmdldF9kaWU7CiArICAgICAgc3RydWN0IGR3YXJmMl9jdSAqdGFyZ2V0X2N1ID0gY3U7CiArICAg ICAgc3RydWN0IGF0dHJpYnV0ZSAqdGFyZ2V0X2xvY19hdHRyOwotIAotLSAgLyogTWFyayBhcnJh eXMgd2l0aCBkeW5hbWljIGxlbmd0aCBhdCBsZWFzdCBhcyBhbiBhcnJheSBvZiB1bnNwZWNpZmll ZAotLSAgICAgbGVuZ3RoLiAgR0RCIGNvdWxkIGNoZWNrIHRoZSBib3VuZGFyeSBidXQgYmVmb3Jl IGl0IGdldHMgaW1wbGVtZW50ZWQgYXQKLS0gICAgIGxlYXN0IGFsbG93IGFjY2Vzc2luZyB0aGUg YXJyYXkgZWxlbWVudHMuICAqLwotLSAgaWYgKGF0dHIgJiYgYXR0ci0+Zm9ybSA9PSBEV19GT1JN X2Jsb2NrMSkKLS0gICAgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5FRCAocmFuZ2VfdHlwZSkgPSAx OworKwogKyAgICAgIHRhcmdldF9kaWUgPSBmb2xsb3dfZGllX3JlZl9vcl9zaWcgKGRpZSwgYXR0 ciwgJnRhcmdldF9jdSk7CiArICAgICAgZ2RiX2Fzc2VydCAodGFyZ2V0X2N1LT5vYmpmaWxlID09 IGN1LT5vYmpmaWxlKTsKICsgICAgICB0YXJnZXRfbG9jX2F0dHIgPSBkd2FyZjJfYXR0ciAodGFy Z2V0X2RpZSwgRFdfQVRfbG9jYXRpb24sIHRhcmdldF9jdSk7Ci0gCi0tICAvKiBBZGEgZXhwZWN0 cyBhbiBlbXB0eSBhcnJheSBvbiBubyBib3VuZGFyeSBhdHRyaWJ1dGVzLiAgKi8KLS0gIGlmIChh dHRyID09IE5VTEwgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2FkYSkKLS0gICAgVFlQRV9I SUdIX0JPVU5EX1VOREVGSU5FRCAocmFuZ2VfdHlwZSkgPSAxOworKwogKyAgICAgIFRZUEVfUkFO R0VfREFUQSAocmFuZ2VfdHlwZSktPmJ5dGVfc3RyaWRlLmtpbmQKICsgICAgICAgID0gUkFOR0Vf Qk9VTkRfS0lORF9EV0FSRl9MT0NMSVNUOwogKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2Vf dHlwZSktPmJ5dGVfc3RyaWRlLnUuZHdhcmZfbG9jbGlzdC5sb2NsaXN0CkBAIC0yMjY3LDcgKzIy NjgsNyBAQCBpbmRleCBjYTZjOThiLi5kMTc2NjI0IDEwMDY0NAogIAogICAgbmFtZSA9IGR3YXJm Ml9uYW1lIChkaWUsIGN1KTsKICAgIGlmIChuYW1lKQotQEAgLTEwODgxLDEwICsxMTA4OSwxMiBA QCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3lt Ym9sICpzeW0sCitAQCAtMTA4OTgsMTAgKzExMTA2LDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24g KHN0cnVjdCBhdHRyaWJ1dGUgKmEKICAgICAgIChpLmUuIHdoZW4gdGhlIHZhbHVlIG9mIGEgcmVn aXN0ZXIgb3IgbWVtb3J5IGxvY2F0aW9uIGlzCiAgICAgICByZWZlcmVuY2VkLCBvciBhIHRocmVh ZC1sb2NhbCBibG9jaywgZXRjLikuICBUaGVuIGFnYWluLCBpdCBtaWdodAogICAgICAgbm90IGJl IHdvcnRod2hpbGUuICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBpc24ndCB1bmxlc3MgcGVyZm9ybWFu Y2UKQEAgLTIyODIsNyArMjI4Myw3IEBAIGluZGV4IGNhNmM5OGIuLmQxNzY2MjQgMTAwNjQ0CiAg fQogIAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIERXQVJGIGluZm9ybWF0aW9uIGVudHJ5LCBm aWd1cmUgb3V0IGlmIHdlIG5lZWQKLUBAIC0xMDkyMiw2ICsxMTEzMiw4IEBAIG5ld19zeW1ib2xf ZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwKK0BAIC0xMDkzOSw2ICsxMTE0OSw4IEBAIG5ld19zeW1ib2xfZnVsbCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHMKICAgICAgICBlbHNlCiAgCXN5bSA9IE9CU1RBQ0tfWkFMTE9D ICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzdHJ1Y3Qgc3ltYm9sKTsKICAgICAgICBPQkpT VEFUIChvYmpmaWxlLCBuX3N5bXMrKyk7CkBAIC0yMjkxLDcgKzIyOTIsNyBAQCBpbmRleCBjYTZj OThiLi5kMTc2NjI0IDEwMDY0NAogIAogICAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFt ZSBhbmQgdGhlIG5hbWUncyBkZW1hbmdsZWQgZm9ybSAoaWYgYW55KS4gICovCiAgICAgICAgU1lN Qk9MX1NFVF9MQU5HVUFHRSAoc3ltLCBjdS0+bGFuZ3VhZ2UpOwotQEAgLTExNjk0LDYgKzExOTA2 LDkgQEAgcmVhZF90eXBlX2RpZV8xIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMTE3MTEsNiArMTE5MjMsOSBAQCByZWFkX3R5cGVfZGllXzEgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTIzMDEsNyAr MjMwMiw3IEBAIGluZGV4IGNhNmM5OGIuLmQxNzY2MjQgMTAwNjQ0CiAgICByZXR1cm4gdGhpc190 eXBlOwogIH0KICAKLUBAIC0xNDU0OCw2MSArMTQ3NjMsOTkgQEAgZmlsbF9pbl9sb2NsaXN0X2Jh dG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0xNDU2NSw2MSArMTQ3ODAsOTkgQEAgZmls bF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1IAogICAgYmF0b24tPmJhc2VfYWRk cmVzcyA9IGN1LT5iYXNlX2FkZHJlc3M7CiAgfQogIApAQCAtMjM1OCwxMCArMjM1OSwxMCBAQCBp bmRleCBjYTZjOThiLi5kMTc2NjI0IDEwMDY0NAogKyAgICAgdmFyaWFibGUgaGFzIGJlZW4gb3B0 aW1pemVkIG91dC4gICovCiArICBpZiAoIWF0dHIpCiArICAgIHJldHVybiBOVUxMOwotIAorKwog KyAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlLAogKwkJ ICAgICAgICZkd2FyZjJfcGVyX29iamZpbGUtPmxvYyk7Ci0rCisgCiArICBpZiAoIShhdHRyX2Zv cm1faXNfc2VjdGlvbl9vZmZzZXQgKGF0dHIpCiArCS8qICIuZGVidWdfbG9jIiBtYXkgbm90IGV4 aXN0IGF0IGFsbCwgb3IgdGhlIG9mZnNldCBtYXkgYmUgb3V0c2lkZQogKwkgICB0aGUgc2VjdGlv bi4gIElmIHNvLCBmYWxsIHRocm91Z2ggdG8gdGhlIGNvbXBsYWludCBpbiB0aGUKQEAgLTI0NDQs NyArMjQ0NSw3IEBAIGluZGV4IGNhNmM5OGIuLmQxNzY2MjQgMTAwNjQ0CiAgICAgIH0KICB9CiAg Ci1AQCAtMTQ5NTEsNiArMTUyMDQsMjUgQEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lk ICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMTQ5NjgsNiArMTUyMjEsMjUg QEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocwogICAgcmV0dXJuIG9m c19saHMtPm9mZnNldCA9PSBvZnNfcmhzLT5vZmZzZXQ7CiAgfQogIApAQCAtMjQ3MCw3ICsyNDcx LDcgQEAgaW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2NDQKICAvKiBTZXQgdGhlIHR5cGUgYXNz b2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhhc2gKICAgICB0YWJs ZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBFLgogIAotQEAgLTE0 OTc2LDYgKzE1MjQ4LDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE0OTkzLDYgKzE1MjY1 LDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQogICAgc3RydWN0 IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKICAgIGh0YWJfdCAqdHlwZV9oYXNoX3B0 cjsKICAKQEAgLTI0NzksMTAgKzI0ODAsMTAgQEAgaW5kZXggY2E2Yzk4Yi4uZDE3NjYyNCAxMDA2 NDQKICAgIC8qIEZvciBBZGEgdHlwZXMsIG1ha2Ugc3VyZSB0aGF0IHRoZSBnbmF0LXNwZWNpZmlj IGRhdGEgaXMgYWx3YXlzCiAgICAgICBpbml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0KS4g IFRoZXJlIGFyZSBhIGZldyB0eXBlcyB3aGVyZQogICAgICAgd2Ugc2hvdWxkIG5vdCBiZSBkb2lu ZyBzbywgYmVjYXVzZSB0aGUgdHlwZS1zcGVjaWZpYyBhcmVhIGlzCi1kaWZmIC0tZ2l0IGEvZ2Ri L2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKLWluZGV4IGI5Y2ZhMTMuLmZlZDYzZjUgMTAwNjQ0 Ci0tLS0gYS9nZGIvZWxmcmVhZC5jCi0rKysgYi9nZGIvZWxmcmVhZC5jCitJbmRleDogZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvZWxmcmVhZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4y MDExMDQyOS5vcmlnL2dkYi9lbGZyZWFkLmMJMjAxMS0wNC0yNSAyMzoyNToxOC4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9lbGZyZWFkLmMJMjAxMS0wNC0yOSAw OTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC00Myw2ICs0MywxMiBAQAogICNpbmNsdWRlICJp bmZjYWxsLmgiCiAgI2luY2x1ZGUgImdkYnRocmVhZC5oIgpAQCAtMjUxOCw3ICsyNTE5LDcgQEAg aW5kZXggYjljZmExMy4uZmVkNjNmNSAxMDA2NDQKICBzdGF0aWMgdm9pZCBmcmVlX2VsZmluZm8g KHZvaWQgKik7CiAgCiAgLyogTWluaW1hbCBzeW1ib2xzIGxvY2F0ZWQgYXQgdGhlIEdPVCBlbnRy aWVzIGZvciAucGx0IC0gdGhhdCBpcyB0aGUgcmVhbAotQEAgLTE1NTEsNyArMTU3MiwyNjYgQEAg ZWxmc3RhYl9vZmZzZXRfc2VjdGlvbnMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3Qg cGFydGlhbF9zeW10YWIgKnBzdCkKK0BAIC0xNTU2LDcgKzE1NzcsMjY2IEBAIGVsZnN0YWJfb2Zm c2V0X3NlY3Rpb25zIChzdHJ1Y3Qgb2JqZmlsZSAKICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9j b21wbGFpbnRzLAogIAkgICAgICAgXygiZWxmL3N0YWIgc2VjdGlvbiBpbmZvcm1hdGlvbiBtaXNz aW5nIGZvciAlcyIpLCBmaWxlbmFtZSk7CiAgfQpAQCAtMjc4NSw3ICsyNzg2LDcgQEAgaW5kZXgg YjljZmExMy4uZmVkNjNmNSAxMDA2NDQKICAvKiBSZWdpc3RlciB0aGF0IHdlIGFyZSBhYmxlIHRv IGhhbmRsZSBFTEYgb2JqZWN0IGZpbGUgZm9ybWF0cy4gICovCiAgCiAgc3RhdGljIGNvbnN0IHN0 cnVjdCBzeW1fZm5zIGVsZl9zeW1fZm5zID0KLUBAIC0xNTY2LDYgKzE4NDYsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHN5bV9mbnMgZWxmX3N5bV9mbnMgPQorQEAgLTE1NzEsNiArMTg1MSw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3ltX2ZucyBlbGZfc3ltX2ZucyAKICAgIGVsZl9zeW1maWxl X3NlZ21lbnRzLAkJLyogR2V0IHNlZ21lbnQgaW5mb3JtYXRpb24gZnJvbSBhIGZpbGUuICAqLwog ICAgTlVMTCwKICAgIGRlZmF1bHRfc3ltZmlsZV9yZWxvY2F0ZSwJLyogUmVsb2NhdGUgYSBkZWJ1 ZyBzZWN0aW9uLiAgKi8KQEAgLTI3OTMsNyArMjc5NCw3IEBAIGluZGV4IGI5Y2ZhMTMuLmZlZDYz ZjUgMTAwNjQ0CiAgICAmcHN5bV9mdW5jdGlvbnMKICB9OwogIAotQEAgLTE1ODQsNiArMTg2NSw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3ltX2ZucyBlbGZfc3ltX2Zuc19sYXp5X3BzeW1zID0K K0BAIC0xNTg5LDYgKzE4NzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgZWxmX3N5 bV9mbnNfCiAgICBlbGZfc3ltZmlsZV9zZWdtZW50cywJCS8qIEdldCBzZWdtZW50IGluZm9ybWF0 aW9uIGZyb20gYSBmaWxlLiAgKi8KICAgIE5VTEwsCiAgICBkZWZhdWx0X3N5bWZpbGVfcmVsb2Nh dGUsCS8qIFJlbG9jYXRlIGEgZGVidWcgc2VjdGlvbi4gICovCkBAIC0yODAxLDcgKzI4MDIsNyBA QCBpbmRleCBiOWNmYTEzLi5mZWQ2M2Y1IDEwMDY0NAogICAgJnBzeW1fZnVuY3Rpb25zCiAgfTsK ICAKLUBAIC0xNjAxLDYgKzE4ODMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgZWxm X3N5bV9mbnNfZ2RiX2luZGV4ID0KK0BAIC0xNjA2LDYgKzE4ODgsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHN5bV9mbnMgZWxmX3N5bV9mbnNfCiAgICBlbGZfc3ltZmlsZV9zZWdtZW50cywJCS8q IEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20gYSBmaWxlLiAgKi8KICAgIE5VTEwsCiAgICBk ZWZhdWx0X3N5bWZpbGVfcmVsb2NhdGUsCS8qIFJlbG9jYXRlIGEgZGVidWcgc2VjdGlvbi4gICov CkBAIC0yODA5LDcgKzI4MTAsNyBAQCBpbmRleCBiOWNmYTEzLi5mZWQ2M2Y1IDEwMDY0NAogICAg JmR3YXJmMl9nZGJfaW5kZXhfZnVuY3Rpb25zCiAgfTsKICAKLUBAIC0xNjE3LDYgKzE5MDAsOCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGdudV9pZnVuY19mbnMgZWxmX2dudV9pZnVuY19mbnMgPQor QEAgLTE2MjIsNiArMTkwNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ251X2lmdW5jX2ZucyBl bGZfZ24KICB2b2lkCiAgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCkKICB7CkBAIC0yODE4LDEw ICsyODE5LDEwIEBAIGluZGV4IGI5Y2ZhMTMuLmZlZDYzZjUgMTAwNjQ0CiAgICBhZGRfc3ltdGFi X2ZucyAoJmVsZl9zeW1fZm5zKTsKICAKICAgIGVsZl9vYmpmaWxlX2dudV9pZnVuY19jYWNoZV9k YXRhID0gcmVnaXN0ZXJfb2JqZmlsZV9kYXRhICgpOwotZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMg Yi9nZGIvZXZhbC5jCi1pbmRleCBiYmM3YjhhLi43YzBhOGY5IDEwMDY0NAotLS0tIGEvZ2RiL2V2 YWwuYwotKysrIGIvZ2RiL2V2YWwuYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2V2 YWwuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvZXZhbC5j CTIwMTEtMDMtMjggMjI6MjE6MDMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4yMDEx MDQyOS9nZGIvZXZhbC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAt NDQsNiArNDQsNyBAQAogICNpbmNsdWRlICJvYmpmaWxlcy5oIgogICNpbmNsdWRlICJweXRob24v cHl0aG9uLmgiCkBAIC0yODMwLDcgKzI4MzEsNyBAQCBpbmRleCBiYmM3YjhhLi43YzBhOGY5IDEw MDY0NAogIAogICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCiAgCi1AQCAtNDg5LDI3ICs0OTAsMjE3 IEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVl ICplbGVtZW50LAorQEAgLTQ4OSwyNyArNDkwLDIxNyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0 cnVjdCB2YWx1ZSAqYXJyYXksCiAgfQogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMjg0 NSwxMiArMjg0NiwxMSBAQCBpbmRleCBiYmM3YjhhLi43YzBhOGY5IDEwMDY0NAogLSAgZW51bSBm OTBfcmFuZ2VfdHlwZSByYW5nZV90eXBlID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10u bG9uZ2NvbnN0KTsKIC0gCiAtICAqcG9zICs9IDM7Ci0tCi0tICBpZiAocmFuZ2VfdHlwZSA9PSBM T1dfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKLS0g ICAgbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlKTsKICsgIC8qIFR5cGUgdG8gdXNl IGZvciB0aGUgbmV3bHkgYWxsb2NhdGVkIHZhbHVlIEFSUkFZLiAgKi8KICsgIHN0cnVjdCB0eXBl ICpuZXdfYXJyYXlfdHlwZTsKLSsKKyAKKy0gIGlmIChyYW5nZV90eXBlID09IExPV19CT1VORF9E RUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQorLSAgICBsb3dfYm91 bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2UpOwogKyAgLyogVHlwZSBiZWluZyBpdGVyYXRlZCBm b3IgZWFjaCBkaW1lbnNpb24uICAqLwogKyAgc3RydWN0IHR5cGUgKnR5cGUsICp0eXBlX2xhc3Rf dGFyZ2V0OwogKwpAQCAtMzA0NywxMyArMzA0NywxMyBAQCBpbmRleCBiYmM3YjhhLi43YzBhOGY5 IDEwMDY0NAogKyAgVkFMVUVfRlJBTUVfSUQgKGFycmF5KSA9IFZBTFVFX0ZSQU1FX0lEIChzYXZl ZF9hcnJheSk7CiArICBpZiAoVkFMVUVfTFZBTCAoYXJyYXkpICE9IGx2YWxfaW50ZXJuYWx2YXIp CiArICAgIHNldF92YWx1ZV9hZGRyZXNzIChhcnJheSwgdmFsdWVfYnl0ZV9hZGRyZXNzICsgdmFs dWVfYnl0ZV9vZmZzZXQpOwotKworIAorLSAgcmV0dXJuIHZhbHVlX3NsaWNlIChhcnJheSwgbG93 X2JvdW5kLCBoaWdoX2JvdW5kIC0gbG93X2JvdW5kICsgMSk7CiArICBpZiAoIXZhbHVlX2xhenkg KHNhdmVkX2FycmF5KSkKICsgICAgewogKyAgICAgIGFsbG9jYXRlX3ZhbHVlX2NvbnRlbnRzIChh cnJheSk7CiArICAgICAgc2V0X3ZhbHVlX2xhenkgKGFycmF5LCAwKTsKLSAKLS0gIHJldHVybiB2 YWx1ZV9zbGljZSAoYXJyYXksIGxvd19ib3VuZCwgaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEp OworKwogKyAgICAgIG1lbWNweSAodmFsdWVfY29udGVudHNfd3JpdGVhYmxlIChhcnJheSksCiAr CSAgICAgIHZhbHVlX2NvbnRlbnRzIChzYXZlZF9hcnJheSkgKyB2YWx1ZV9ieXRlX29mZnNldCwK ICsJICAgICAgVFlQRV9MRU5HVEggKG5ld19hcnJheV90eXBlKSk7CkBAIC0zMDY0LDcgKzMwNjQs NyBAQCBpbmRleCBiYmM3YjhhLi43YzBhOGY5IDEwMDY0NAogIH0KICAKICAKLUBAIC03OTAsNiAr OTgxLDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5 cGUsCitAQCAtNzkwLDYgKzk4MSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmUKICAgIGludCBzYXZlX3BvczE7CiAgICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiA9 IE5VTEw7CiAgICBjaGFyICpmdW5jdGlvbl9uYW1lID0gTlVMTDsKQEAgLTMwNzIsNyArMzA3Miw3 IEBAIGluZGV4IGJiYzdiOGEuLjdjMGE4ZjkgMTAwNjQ0CiAgCiAgICBwYyA9ICgqcG9zKSsrOwog ICAgb3AgPSBleHAtPmVsdHNbcGNdLm9wY29kZTsKLUBAIC0xODYyLDYgKzIwNTQsOCBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xODYy LDYgKzIwNTQsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCiAg CiAgICAgICAgLyogRmlyc3QgZGV0ZXJtaW5lIHRoZSB0eXBlIGNvZGUgd2UgYXJlIGRlYWxpbmcg d2l0aC4gICovCiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAs IHBvcywgbm9zaWRlKTsKQEAgLTMwODEsNyArMzA4MSw3IEBAIGluZGV4IGJiYzdiOGEuLjdjMGE4 ZjkgMTAwNjQ0CiAgICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEp KTsKICAgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAKLUBAIC0xODgyLDIzICsyMDc2 LDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBl LAorQEAgLTE4ODIsMjMgKzIwNzYsMTMgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZQogIAkgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAJICAgIH0KICAJ fSAKQEAgLTMxMDcsNyArMzEwNyw3IEBAIGluZGV4IGJiYzdiOGEuLjdjMGE4ZjkgMTAwNjQ0CiAg CiAgCWNhc2UgVFlQRV9DT0RFX1BUUjoKICAJY2FzZSBUWVBFX0NPREVfRlVOQzoKLUBAIC0yMzM3 LDQ5ICsyNTIxLDYgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhw ZWN0X3R5cGUsCitAQCAtMjMzNyw0OSArMjUyMSw2IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmUKICAJfQogICAgICAgIHJldHVybiAoYXJnMSk7CiAgCkBAIC0zMTU3 LDcgKzMxNTcsNyBAQCBpbmRleCBiYmM3YjhhLi43YzBhOGY5IDEwMDY0NAogICAgICBjYXNlIEJJ Tk9QX0xPR0lDQUxfQU5EOgogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQ RSwgZXhwLCBwb3MsIG5vc2lkZSk7CiAgICAgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCi1A QCAtMjYxMSwxNSArMjc1MiwyMyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0 eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yNjExLDE1ICsyNzUyLDIzIEBAIGV2YWx1YXRlX3N1YmV4 cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAgICAgICBpZiAoZXhwZWN0X3R5cGUgJiYgVFlQ RV9DT0RFIChleHBlY3RfdHlwZSkgPT0gVFlQRV9DT0RFX1BUUikKICAJZXhwZWN0X3R5cGUgPSBU WVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmIChleHBlY3RfdHlwZSkpOwogICAgICAgIGFy ZzEgPSBldmFsdWF0ZV9zdWJleHAgKGV4cGVjdF90eXBlLCBleHAsIHBvcywgbm9zaWRlKTsKQEAg LTMxODMsNyArMzE4Myw3IEBAIGluZGV4IGJiYzdiOGEuLjdjMGE4ZjkgMTAwNjQ0CiAgICAgICAg ZWxzZSBpZiAobm9zaWRlID09IEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTKQogIAl7CiAgCSAgdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKLUBAIC0yNjI4LDEyICsyNzc3 LDE4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBl LAorQEAgLTI2MjgsMTIgKzI3NzcsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZQogIAkgIC8qIEluIEMgeW91IGNhbiBkZXJlZmVyZW5jZSBhbiBhcnJheSB0byBn ZXQgdGhlIDFzdCBlbHQuICAqLwogIAkgICAgICB8fCBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVf Q09ERV9BUlJBWQogIAkgICAgKQpAQCAtMzIwNyw3ICszMjA3LDcgQEAgaW5kZXggYmJjN2I4YS4u N2MwYThmOSAxMDA2NDQKICAJICBlbHNlCiAgCSAgICBlcnJvciAoXygiQXR0ZW1wdCB0byB0YWtl IGNvbnRlbnRzIG9mIGEgbm9uLXBvaW50ZXIgdmFsdWUuIikpOwogIAl9Ci1AQCAtMjY0Myw5ICsy Nzk4LDE0IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90 eXBlLAorQEAgLTI2NDMsOSArMjc5OCwxNCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0 cnVjdCB0eXBlICplCiAgCSBkby4gICJsb25nIGxvbmciIHZhcmlhYmxlcyBhcmUgcmFyZSBlbm91 Z2ggdGhhdAogIAkgQlVJTFRJTl9UWVBFX0xPTkdFU1Qgd291bGQgc2VlbSB0byBiZSBhIG1pc3Rh a2UuICAqLwogICAgICAgIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCkBA IC0zMjI1LDcgKzMyMjUsNyBAQCBpbmRleCBiYmM3YjhhLi43YzBhOGY5IDEwMDY0NAogIAogICAg ICBjYXNlIFVOT1BfQUREUjoKICAgICAgICAvKiBDKys6IGNoZWNrIGZvciBhbmQgaGFuZGxlIHBv aW50ZXIgdG8gbWVtYmVycy4gICovCi1AQCAtMjk5MSw3ICszMTUxLDcgQEAgZXZhbHVhdGVfc3Vi ZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMjk5MSw3ICsz MTUxLDcgQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleAogIHsKICAg IGVudW0gZXhwX29wY29kZSBvcDsKICAgIGludCBwYzsKQEAgLTMyMzQsNyArMzIzNCw3IEBAIGlu ZGV4IGJiYzdiOGEuLjdjMGE4ZjkgMTAwNjQ0CiAgICBzdHJ1Y3Qgc3ltYm9sICp2YXI7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUBAIC0zMDAyLDEzICszMTYyLDE4IEBAIGV2YWx1YXRlX3N1 YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTMwMDIsMTMg KzMxNjIsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleAogICAg ICB7CiAgICAgIGNhc2UgT1BfVkFSX1ZBTFVFOgogICAgICAgIHZhciA9IGV4cC0+ZWx0c1twYyAr IDJdLnN5bWJvbDsKQEAgLTMyNTQsNyArMzI1NCw3IEBAIGluZGV4IGJiYzdiOGEuLjdjMGE4Zjkg MTAwNjQ0CiAgCSAgcmV0dXJuIHZhbHVlX2Nhc3QgKGxvb2t1cF9wb2ludGVyX3R5cGUgKFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpKSwKICAJCQkgICAgIHZhbCk7CiAgCX0KLUBAIC0zMDYwLDkgKzMy MjUsMTMgQEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9zaXplb2YgKHN0cnVjdCBleHByZXNzaW9uICpl eHAsIGludCAqcG9zKQorQEAgLTMwNjAsOSArMzIyNSwxMyBAQCBldmFsdWF0ZV9zdWJleHBfZm9y X3NpemVvZiAoc3RydWN0IGV4cHJlCiAgCiAgICAgIGNhc2UgT1BfVkFSX1ZBTFVFOgogICAgICAg ICgqcG9zKSArPSA0OwpAQCAtMzI3MSw3ICszMjcxLDcgQEAgaW5kZXggYmJjN2I4YS4uN2MwYThm OSAxMDA2NDQKICAKICAgICAgZGVmYXVsdDoKICAgICAgICB2YWwgPSBldmFsdWF0ZV9zdWJleHAg KE5VTExfVFlQRSwgZXhwLCBwb3MsIEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTKTsKLUBAIC0zMDkz LDE4ICszMjYyLDI1IEBAIHBhcnNlX2FuZF9ldmFsX3R5cGUgKGNoYXIgKnAsIGludCBsZW5ndGgp CitAQCAtMzA5MywxOCArMzI2MiwyNSBAQCBwYXJzZV9hbmRfZXZhbF90eXBlIChjaGFyICpwLCBp bnQgbGVuZ3RoCiAgaW50CiAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKmFycmF5 X3R5cGUpCiAgewpAQCAtMzMwNywxMCArMzMwNywxMCBAQCBpbmRleCBiYmM3YjhhLi43YzBhOGY5 IDEwMDY0NAogLSAgcmV0dXJuIG5kaW1lbjsKICsKICB9Ci1kaWZmIC0tZ2l0IGEvZ2RiL2YtZXhw LnkgYi9nZGIvZi1leHAueQotaW5kZXggZDljZjNjZi4uM2UxMWU1NyAxMDA2NDQKLS0tLSBhL2dk Yi9mLWV4cC55Ci0rKysgYi9nZGIvZi1leHAueQorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0Mjkv Z2RiL2YtZXhwLnkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2Ri L2YtZXhwLnkJMjAxMS0wMy0xOCAxNDo1MTo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjkwLjIwMTEwNDI5L2dkYi9mLWV4cC55CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICsw MjAwCiBAQCAtMjkzLDcgKzI5Myw5IEBAIGFyZ2xpc3QgOglzdWJyYW5nZQogIAkJCXsgYXJnbGlz dF9sZW4gPSAxOyB9CiAgCTsKQEAgLTMzMjIsMTEgKzMzMjIsMTEgQEAgaW5kZXggZDljZjNjZi4u M2UxMWU1NyAxMDA2NDQKICAJCQl7IGFyZ2xpc3RfbGVuKys7IH0KICAJOwogIAotZGlmZiAtLWdp dCBhL2dkYi9mLWxhbmcuaCBiL2dkYi9mLWxhbmcuaAotaW5kZXggODA0MzU3Ny4uOTRhNWYzMSAx MDA2NDQKLS0tLSBhL2dkYi9mLWxhbmcuaAotKysrIGIvZ2RiL2YtbGFuZy5oCi1AQCAtMjgsNiAr MjgsMTAgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5lZCBpbiBmLWV4 cC55ICovCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvZi1sYW5nLmgKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTEtMDEtMDcg MjA6MzY6MTYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvZi1s YW5nLmgJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yOCw2ICsyOCwx MCBAQCBleHRlcm4gdm9pZCBmX2Vycm9yIChjaGFyICopOwkvKiBEZWZpbmVkCiAgZXh0ZXJuIHZv aWQgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBjaGFyICosIHN0cnVjdCB1aV9m aWxlICosIGludCwKICAJCQkgIGludCk7CiAgCkBAIC0zMzM3LDEwICszMzM3LDEwIEBAIGluZGV4 IDgwNDM1NzcuLjk0YTVmMzEgMTAwNjQ0CiAgZXh0ZXJuIGludCBmX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCiAgCQkJc3RydWN0IHVp X2ZpbGUgKiwgaW50LAogIAkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotZGlmZiAtLWdpdCBhL2dk Yi9mLXR5cGVwcmludC5jIGIvZ2RiL2YtdHlwZXByaW50LmMKLWluZGV4IGFkOTg4ZDIuLjk4NWZl ZjYgMTAwNjQ0Ci0tLS0gYS9nZGIvZi10eXBlcHJpbnQuYwotKysrIGIvZ2RiL2YtdHlwZXByaW50 LmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9mLXR5cGVwcmludC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9mLXR5cGVwcmludC5jCTIwMTEt MDEtMDcgMjA6MzY6MTYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9n ZGIvZi10eXBlcHJpbnQuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAg LTMyLDcgKzMyLDcgQEAKICAjaW5jbHVkZSAiZ2RiY29yZS5oIgogICNpbmNsdWRlICJ0YXJnZXQu aCIKQEAgLTMzNTAsNyArMzM1MCw3IEBAIGluZGV4IGFkOTg4ZDIuLjk4NWZlZjYgMTAwNjQ0CiAg I2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKICAjaW5jbHVkZSA8ZXJybm8uaD4KICAKLUBAIC00OSw2 ICs0OSwzNCBAQCB2b2lkIGZfdHlwZV9wcmludF92YXJzcGVjX3ByZWZpeCAoc3RydWN0IHR5cGUg Kiwgc3RydWN0IHVpX2ZpbGUgKiwKK0BAIC00OSw2ICs0OSwzNCBAQCB2b2lkIGZfdHlwZV9wcmlu dF92YXJzcGVjX3ByZWZpeCAoc3RydWN0CiAgdm9pZCBmX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0 IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LCBpbnQpOwogIAwKICAKQEAgLTMzODUsNyAr MzM4NSw3IEBAIGluZGV4IGFkOTg4ZDIuLjk4NWZlZjYgMTAwNjQ0CiAgLyogTEVWRUwgaXMgdGhl IGRlcHRoIHRvIGluZGVudCBsaW5lcyBieS4gICovCiAgCiAgdm9pZAotQEAgLTU4LDYgKzg2LDkg QEAgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqdmFyc3RyaW5n LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTU4LDYgKzg2LDkgQEAgZl9wcmludF90eXBl IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgYwogICAgZW51bSB0eXBlX2NvZGUgY29kZTsKICAg IGludCBkZW1hbmdsZWRfYXJnczsKICAKQEAgLTMzOTUsNyArMzM5NSw3IEBAIGluZGV4IGFkOTg4 ZDIuLjk4NWZlZjYgMTAwNjQ0CiAgICBmX3R5cGVfcHJpbnRfYmFzZSAodHlwZSwgc3RyZWFtLCBz aG93LCBsZXZlbCk7CiAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAgIGlmICgodmFyc3Ry aW5nICE9IE5VTEwgJiYgKnZhcnN0cmluZyAhPSAnXDAnKQotQEAgLTE2NSw2ICsxOTYsOSBAQCBm X3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLAorQEAgLTE2NSw2ICsxOTYsOSBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19z dWZmaXggKHN0cnVjdCB0eXBlCiAgCiAgICBRVUlUOwogIApAQCAtMzQwNSwxMSArMzQwNSwxMSBA QCBpbmRleCBhZDk4OGQyLi45ODVmZWY2IDEwMDY0NAogICAgc3dpdGNoIChUWVBFX0NPREUgKHR5 cGUpKQogICAgICB7CiAgICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgotZGlmZiAtLWdpdCBhL2dk Yi9mLXZhbHByaW50LmMgYi9nZGIvZi12YWxwcmludC5jCi1pbmRleCAzMjgwZGRjLi4xMjhkNmJj IDEwMDY0NAotLS0tIGEvZ2RiL2YtdmFscHJpbnQuYwotKysrIGIvZ2RiL2YtdmFscHJpbnQuYwot QEAgLTU0LDE1ICs1NCwxNyBAQCBpbnQgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU5f RElNUyArIDFdWzJdOworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2YtdmFscHJpbnQu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvZi12YWxwcmlu dC5jCTIwMTEtMDItMDcgMTg6NDk6MzIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4y MDExMDQyOS9nZGIvZi12YWxwcmludC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICsw MjAwCitAQCAtNTQsMTUgKzU0LDE3IEBAIGludCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9S VFJBTl9ESU0KICAvKiBUaGUgZm9sbG93aW5nIG1hY3JvIGdpdmVzIHVzIHRoZSBzaXplIG9mIHRo ZSBudGggZGltZW5zaW9uLCBXaGVyZSAKICAgICBuIGlzIDEgYmFzZWQuICAqLwogIApAQCAtMzQ1 Myw3ICszNDUzLDcgQEAgaW5kZXggMzI4MGRkYy4uMTI4ZDZiYyAxMDA2NDQKICAgICAgfQogIAog ICAgcmV0dXJuIFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfVkFMVUUgKHR5cGUpOwotQEAgLTEzNSwy NCArMTQwLDI5IEBAIGY3N19jcmVhdGVfYXJyYXlwcmludF9vZmZzZXRfdGJsIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKK0BAIC0xMzUsMjQgKzE0MCwyOSBAQCBm NzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zmc2V0X3RibCAoc3RydWN0CiAgICAgICAgdXBwZXIgPSBm NzdfZ2V0X3VwcGVyYm91bmQgKHRtcF90eXBlKTsKICAgICAgICBsb3dlciA9IGY3N19nZXRfbG93 ZXJib3VuZCAodG1wX3R5cGUpOwogIApAQCAtMzQ4OSw3ICszNDg5LDcgQEAgaW5kZXggMzI4MGRk Yy4uMTI4ZDZiYyAxMDA2NDQKICAgICAgfQogIH0KICAKLUBAIC0xNzQsMzcgKzE4NCwzNSBAQCBm NzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpb25zLCBzdHJ1Y3QgdHlwZSAq dHlwZSwKK0BAIC0xNzQsMzcgKzE4NCwzNSBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywg aW50IG5kaW1lbnNpCiAgCiAgICBpZiAobnNzICE9IG5kaW1lbnNpb25zKQogICAgICB7CkBAIC0z NTM0LDcgKzM1MzQsNyBAQCBpbmRleCAzMjgwZGRjLi4xMjhkNmJjIDEwMDY0NAogIAkgICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7CiAgCX0KICAgICAgfQotQEAgLTI2MCw2ICsy NjgsOSBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorQEAgLTI2MCw2ICsyNjgsOSBAQCBmX3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkCiAgICBDT1JFX0FERFIgYWRkcjsKICAg IGludCBpbmRleDsKICAKQEAgLTM1NDQsMTAgKzM1NDQsMTAgQEAgaW5kZXggMzI4MGRkYy4uMTI4 ZDZiYyAxMDA2NDQKICAgIENIRUNLX1RZUEVERUYgKHR5cGUpOwogICAgc3dpdGNoIChUWVBFX0NP REUgKHR5cGUpKQogICAgICB7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2ZpbmR2YXIuYyBiL2dkYi9maW5k dmFyLmMKLWluZGV4IDJiMzYxZWYuLjAxZTFjMGQgMTAwNjQ0Ci0tLS0gYS9nZGIvZmluZHZhci5j Ci0rKysgYi9nZGIvZmluZHZhci5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvZmlu ZHZhci5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9maW5k dmFyLmMJMjAxMS0wMy0xOCAxOTo0Mjo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkw LjIwMTEwNDI5L2dkYi9maW5kdmFyLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAy MDAKIEBAIC0zNSw2ICszNSw3IEBACiAgI2luY2x1ZGUgInVzZXItcmVncy5oIgogICNpbmNsdWRl ICJibG9jay5oIgpAQCAtMzU1Niw3ICszNTU2LDcgQEAgaW5kZXggMmIzNjFlZi4uMDFlMWMwZCAx MDA2NDQKICAKICAvKiBCYXNpYyBieXRlLXN3YXBwaW5nIHJvdXRpbmVzLiAgQWxsICdleHRyYWN0 JyBmdW5jdGlvbnMgcmV0dXJuIGEKICAgICBob3N0LWZvcm1hdCBpbnRlZ2VyIGZyb20gYSB0YXJn ZXQtZm9ybWF0IGludGVnZXIgYXQgQUREUiB3aGljaCBpcwotQEAgLTQwOCw4ICs0MDksMTEgQEAg c3ltYm9sX3JlYWRfbmVlZHNfZnJhbWUgKHN0cnVjdCBzeW1ib2wgKnN5bSkKK0BAIC00MDgsOCAr NDA5LDExIEBAIHN5bWJvbF9yZWFkX25lZWRzX2ZyYW1lIChzdHJ1Y3Qgc3ltYm9sICoKICAKICAv KiBHaXZlbiBhIHN0cnVjdCBzeW1ib2wgZm9yIGEgdmFyaWFibGUsCiAgICAgYW5kIGEgc3RhY2sg ZnJhbWUgaWQsIHJlYWQgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZQpAQCAtMzU3MCw3ICszNTcw LDcgQEAgaW5kZXggMmIzNjFlZi4uMDFlMWMwZCAxMDA2NDQKICAKICBzdHJ1Y3QgdmFsdWUgKgog IHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpm cmFtZSkKLUBAIC00MTcsMTYgKzQyMSw2IEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9s ICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC00MTcsMTYgKzQyMSw2IEBAIHJl YWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnUKICAgIHN0cnVjdCB2YWx1ZSAq djsKICAgIHN0cnVjdCB0eXBlICp0eXBlID0gU1lNQk9MX1RZUEUgKHZhcik7CiAgICBDT1JFX0FE RFIgYWRkcjsKQEAgLTM1ODcsNyArMzU4Nyw3IEBAIGluZGV4IDJiMzYxZWYuLjAxZTFjMGQgMTAw NjQ0CiAgCiAgICBpZiAoc3ltYm9sX3JlYWRfbmVlZHNfZnJhbWUgKHZhcikpCiAgICAgIGdkYl9h c3NlcnQgKGZyYW1lKTsKLUBAIC00MzYsNyArNDMwLDcgQEAgcmVhZF92YXJfdmFsdWUgKHN0cnVj dCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorQEAgLTQzNiw3ICs0MzAs NyBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1CiAgICAgIGNhc2Ug TE9DX0NPTlNUOgogICAgICAgIC8qIFB1dCB0aGUgY29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9y bWF0LiAgKi8KICAgICAgICB2ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwpAQCAtMzU5Niw3ICsz NTk2LDcgQEAgaW5kZXggMmIzNjFlZi4uMDFlMWMwZCAxMDA2NDQKICAJCQkgICAgZ2RiYXJjaF9i eXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSksCiAgCQkJICAgIChMT05HRVNUKSBTWU1C T0xfVkFMVUUgKHZhcikpOwogICAgICAgIFZBTFVFX0xWQUwgKHYpID0gbm90X2x2YWw7Ci1AQCAt NDYxLDEyICs0NTUsMTIgQEAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lKQorQEAgLTQ2MSwxMiArNDU1LDEyIEBAIHJlYWRfdmFyX3Zh bHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnUKICAKICAgICAgY2FzZSBMT0NfQ09OU1RfQllU RVM6CiAgICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKQEAgLTM2MTEsNyArMzYxMSw3 IEBAIGluZGV4IDJiMzYxZWYuLjAxZTFjMGQgMTAwNjQ0CiAgICAgICAgaWYgKG92ZXJsYXlfZGVi dWdnaW5nKQogIAlhZGRyID0gc3ltYm9sX292ZXJsYXllZF9hZGRyZXNzIChTWU1CT0xfVkFMVUVf QUREUkVTUyAodmFyKSwKICAJCQkJCSBTWU1CT0xfT0JKX1NFQ1RJT04gKHZhcikpOwotQEAgLTQ3 OSw3ICs0NzMsNiBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUpCitAQCAtNDc5LDcgKzQ3Myw2IEBAIHJlYWRfdmFyX3ZhbHVlIChz dHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnUKICAgICAgICBpZiAoIWFkZHIpCiAgCXJldHVybiAwOwog ICAgICAgIGFkZHIgKz0gU1lNQk9MX1ZBTFVFICh2YXIpOwpAQCAtMzYxOSw3ICszNjE5LDcgQEAg aW5kZXggMmIzNjFlZi4uMDFlMWMwZCAxMDA2NDQKICAgICAgICBicmVhazsKICAKICAgICAgY2Fz ZSBMT0NfUkVGX0FSRzoKLUBAIC00OTMsMTQgKzQ4NiwxMiBAQCByZWFkX3Zhcl92YWx1ZSAoc3Ry dWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCitAQCAtNDkzLDE0ICs0 ODYsMTIgQEAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydQogIAlhcmdy ZWYgKz0gU1lNQk9MX1ZBTFVFICh2YXIpOwogIAlyZWYgPSB2YWx1ZV9hdCAobG9va3VwX3BvaW50 ZXJfdHlwZSAodHlwZSksIGFyZ3JlZik7CiAgCWFkZHIgPSB2YWx1ZV9hc19hZGRyZXNzIChyZWYp OwpAQCAtMzYzNCw3ICszNjM0LDcgQEAgaW5kZXggMmIzNjFlZi4uMDFlMWMwZCAxMDA2NDQKICAg ICAgICBicmVhazsKICAKICAgICAgY2FzZSBMT0NfVFlQRURFRjoKLUBAIC01MDgsNyArNDk5LDYg QEAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lKQorQEAgLTUwOCw3ICs0OTksNiBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJv bCAqdmFyLCBzdHJ1CiAgICAgICAgYnJlYWs7CiAgCiAgICAgIGNhc2UgTE9DX0JMT0NLOgpAQCAt MzY0Miw3ICszNjQyLDcgQEAgaW5kZXggMmIzNjFlZi4uMDFlMWMwZCAxMDA2NDQKICAgICAgICBp ZiAob3ZlcmxheV9kZWJ1Z2dpbmcpCiAgCWFkZHIgPSBzeW1ib2xfb3ZlcmxheWVkX2FkZHJlc3MK ICAJICAoQkxPQ0tfU1RBUlQgKFNZTUJPTF9CTE9DS19WQUxVRSAodmFyKSksIFNZTUJPTF9PQkpf U0VDVElPTiAodmFyKSk7Ci1AQCAtNTMzLDcgKzUyMyw2IEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1 Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC01MzMsNyArNTIz LDYgQEAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydQogIAkgICAgICBl cnJvciAoXygiVmFsdWUgb2YgcmVnaXN0ZXIgdmFyaWFibGUgbm90IGF2YWlsYWJsZS4iKSk7CiAg CiAgCSAgICBhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAocmVndmFsKTsKQEAgLTM2NTAsNyArMzY1 MCw3IEBAIGluZGV4IDJiMzYxZWYuLjAxZTFjMGQgMTAwNjQ0CiAgCSAgfQogIAllbHNlCiAgCSAg ewotQEAgLTU3Miw3ICs1NjEsNiBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFy LCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCitAQCAtNTcyLDcgKzU2MSw2IEBAIHJlYWRfdmFy X3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnUKICAJaWYgKG9ial9zZWN0aW9uCiAgCSAg ICAmJiAob2JqX3NlY3Rpb24tPnRoZV9iZmRfc2VjdGlvbi0+ZmxhZ3MgJiBTRUNfVEhSRUFEX0xP Q0FMKSAhPSAwKQogIAkgIGFkZHIgPSB0YXJnZXRfdHJhbnNsYXRlX3Rsc19hZGRyZXNzIChvYmpf c2VjdGlvbi0+b2JqZmlsZSwgYWRkcik7CkBAIC0zNjU4LDcgKzM2NTgsNyBAQCBpbmRleCAyYjM2 MWVmLi4wMWUxYzBkIDEwMDY0NAogICAgICAgIH0KICAgICAgICBicmVhazsKICAKLUBAIC01ODcs NiArNTc1LDEwIEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBm cmFtZV9pbmZvICpmcmFtZSkKK0BAIC01ODcsNiArNTc1LDEwIEBAIHJlYWRfdmFyX3ZhbHVlIChz dHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnUKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtMzY4 NCw3ICszNjg0LDcgQEAgaW5kZXggMmIzNjFlZi4uMDFlMWMwZCAxMDA2NDQKICAgICAgewogICAg ICAgIC8qIFRoZSBJU0EvQUJJIG5lZWQgdG8gc29tZXRoaW5nIHdlaXJkIHdoZW4gb2J0YWluaW5n IHRoZQogICAgICAgICAgIHNwZWNpZmllZCB2YWx1ZSBmcm9tIHRoaXMgcmVnaXN0ZXIuICBJdCBt aWdodCBuZWVkIHRvCi1AQCAtNjQzLDcgKzYzNiw3IEBAIHZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0 cnVjdCB0eXBlICp0eXBlLCBpbnQgcmVnbnVtLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCitA QCAtNjQzLDcgKzYzNiw3IEBAIHZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCB0eXBlICp0eXBl LCAKICAgICAgICBWQUxVRV9MVkFMICh2KSA9IGx2YWxfcmVnaXN0ZXI7CiAgICAgICAgVkFMVUVf RlJBTUVfSUQgKHYpID0gZ2V0X2ZyYW1lX2lkIChmcmFtZSk7CiAgICAgICAgVkFMVUVfUkVHTlVN ICh2KSA9IHJlZ251bTsKQEAgLTM2OTMsMTAgKzM2OTMsMTAgQEAgaW5kZXggMmIzNjFlZi4uMDFl MWMwZCAxMDA2NDQKICAJCQkJICAgICAgdmFsdWVfY29udGVudHNfcmF3ICh2KSwgJm9wdGltLAog IAkJCQkgICAgICAmdW5hdmFpbCk7CiAgICAgIH0KLWRpZmYgLS1naXQgYS9nZGIvZ2RiaW5pdC5p biBiL2dkYi9nZGJpbml0LmluCi1pbmRleCBmZmI3ZjUzLi5hMmU3ZTk0IDEwMDY0NAotLS0tIGEv Z2RiL2dkYmluaXQuaW4KLSsrKyBiL2dkYi9nZGJpbml0LmluCitJbmRleDogZ2RiLTcuMi45MC4y MDExMDQyOS9nZGIvZ2RiaW5pdC5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0 Mjkub3JpZy9nZGIvZ2RiaW5pdC5pbgkyMDA5LTEwLTA1IDE1OjQ2OjUyLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2dkYmluaXQuaW4JMjAxMS0wNC0yOSAwOTo0 MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xLDUgKzEsMTUgQEAKICBlY2hvIFNldHRpbmcgdXAg dGhlIGVudmlyb25tZW50IGZvciBkZWJ1Z2dpbmcgZ2RiLlxuCiAgCkBAIC0zNzEzLDEwICszNzEz LDEwIEBAIGluZGV4IGZmYjdmNTMuLmEyZTdlOTQgMTAwNjQ0CiAgc2V0IGNvbXBsYWludHMgMQog IAogIGIgaW50ZXJuYWxfZXJyb3IKLWRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9n ZGJ0eXBlcy5jCi1pbmRleCAzYjQ1OTMxLi5lZGEyNTA2IDEwMDY0NAotLS0tIGEvZ2RiL2dkYnR5 cGVzLmMKLSsrKyBiL2dkYi9nZGJ0eXBlcy5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9n ZGIvZ2RidHlwZXMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9n ZGIvZ2RidHlwZXMuYwkyMDExLTAzLTI4IDIyOjIxOjAzLjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL2dkYnR5cGVzLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAw MDAwMDAgKzAyMDAKIEBAIC0zOSw2ICszOSw5IEBACiAgI2luY2x1ZGUgImNwLWFiaS5oIgogICNp bmNsdWRlICJnZGJfYXNzZXJ0LmgiCkBAIC0zNzI3LDcgKzM3MjcsNyBAQCBpbmRleCAzYjQ1OTMx Li5lZGEyNTA2IDEwMDY0NAogIAogIAogIC8qIEluaXRpYWxpemUgQkFETkVTUyBjb25zdGFudHMu ICAqLwotQEAgLTE0NCw3ICsxNDcsMTYgQEAgc3RhdGljIHZvaWQgcHJpbnRfYml0X3ZlY3RvciAo Ql9UWVBFICosIGludCk7CitAQCAtMTQ0LDcgKzE0NywxNiBAQCBzdGF0aWMgdm9pZCBwcmludF9i aXRfdmVjdG9yIChCX1RZUEUgKiwgCiAgc3RhdGljIHZvaWQgcHJpbnRfYXJnX3R5cGVzIChzdHJ1 Y3QgZmllbGQgKiwgaW50LCBpbnQpOwogIHN0YXRpYyB2b2lkIGR1bXBfZm5fZmllbGRsaXN0cyAo c3RydWN0IHR5cGUgKiwgaW50KTsKICBzdGF0aWMgdm9pZCBwcmludF9jcGx1c19zdHVmZiAoc3Ry dWN0IHR5cGUgKiwgaW50KTsKQEAgLTM3ODgsNyArMzc4OCw3IEBAIGluZGV4IDNiNDU5MzEuLmVk YTI1MDYgMTAwNjQ0CiAgLyogQWxsb2NhdGUgYSBuZXcgR0RCQVJDSC1hc3NvY2lhdGVkIHR5cGUg c3RydWN0dXJlIGFuZCBmaWxsIGl0CiAgICAgd2l0aCBzb21lIGRlZmF1bHRzLiAgU3BhY2UgZm9y IHRoZSB0eXBlIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQKICAgICBvbiB0aGUgaGVhcC4gICovCi1A QCAtMzAwLDcgKzM0OSw3IEBAIG1ha2VfcG9pbnRlcl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IHR5cGUgKip0eXBlcHRyKQorQEAgLTMwMCw3ICszNDksNyBAQCBtYWtlX3BvaW50ZXJf dHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0CiAgCiAgICBpZiAodHlwZXB0ciA9PSAwIHx8ICp0 eXBlcHRyID09IDApCS8qIFdlJ2xsIG5lZWQgdG8gYWxsb2NhdGUgb25lLiAgKi8KICAgICAgewpA QCAtMzc5Nyw3ICszNzk3LDcgQEAgaW5kZXggM2I0NTkzMS4uZWRhMjUwNiAxMDA2NDQKICAgICAg ICBpZiAodHlwZXB0cikKICAJKnR5cGVwdHIgPSBudHlwZTsKICAgICAgfQotQEAgLTM3Nyw3ICs0 MjYsNyBAQCBtYWtlX3JlZmVyZW5jZV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5 cGUgKip0eXBlcHRyKQorQEAgLTM3Nyw3ICs0MjYsNyBAQCBtYWtlX3JlZmVyZW5jZV90eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZSwgCiAgCiAgICBpZiAodHlwZXB0ciA9PSAwIHx8ICp0eXBlcHRyID09 IDApCS8qIFdlJ2xsIG5lZWQgdG8gYWxsb2NhdGUgb25lLiAgKi8KICAgICAgewpAQCAtMzgwNiw3 ICszODA2LDcgQEAgaW5kZXggM2I0NTkzMS4uZWRhMjUwNiAxMDA2NDQKICAgICAgICBpZiAodHlw ZXB0cikKICAJKnR5cGVwdHIgPSBudHlwZTsKICAgICAgfQotQEAgLTc0OCw2ICs3OTcsNyBAQCBj cmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAq aW5kZXhfdHlwZSwKK0BAIC03NDgsNiArNzk3LDcgQEAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVj dCB0eXBlICpyZXN1bHRfdAogICAgICBUWVBFX1pBTExPQyAocmVzdWx0X3R5cGUsIHNpemVvZiAo c3RydWN0IHJhbmdlX2JvdW5kcykpOwogICAgVFlQRV9MT1dfQk9VTkQgKHJlc3VsdF90eXBlKSA9 IGxvd19ib3VuZDsKICAgIFRZUEVfSElHSF9CT1VORCAocmVzdWx0X3R5cGUpID0gaGlnaF9ib3Vu ZDsKQEAgLTM4MTQsNyArMzgxNCw3IEBAIGluZGV4IDNiNDU5MzEuLmVkYTI1MDYgMTAwNjQ0CiAg CiAgICBpZiAobG93X2JvdW5kID49IDApCiAgICAgIFRZUEVfVU5TSUdORUQgKHJlc3VsdF90eXBl KSA9IDE7Ci1AQCAtODkxLDI2ICs5NDEsMzEgQEAgY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0 eXBlICpyZXN1bHRfdHlwZSwKK0BAIC04OTEsMjYgKzk0MSwzMSBAQCBjcmVhdGVfYXJyYXlfdHlw ZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90CiAgCiAgICBUWVBFX0NPREUgKHJlc3VsdF90eXBlKSA9 IFRZUEVfQ09ERV9BUlJBWTsKICAgIFRZUEVfVEFSR0VUX1RZUEUgKHJlc3VsdF90eXBlKSA9IGVs ZW1lbnRfdHlwZTsKQEAgLTQwNDcsNyArNDA0Nyw3IEBAIGluZGV4IDNiNDU5MzEuLmVkYTI1MDYg MTAwNjQ0CiAgICAgIH0KICAKICAgIHR5cGUgPSBtYWtlX3F1YWxpZmllZF90eXBlICh0eXBlLCBp bnN0YW5jZV9mbGFncywgTlVMTCk7Ci1AQCAtMzI2NiwzMyArMzQwNiw0MiBAQCB0eXBlX3BhaXJf ZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKK0BAIC0zMjY2 LDMzICszNDA2LDQyIEBAIHR5cGVfcGFpcl9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnMK ICB9CiAgCiAgLyogQWxsb2NhdGUgdGhlIGhhc2ggdGFibGUgdXNlZCBieSBjb3B5X3R5cGVfcmVj dXJzaXZlIHRvIHdhbGsKQEAgLTQxMDUsNyArNDEwNSw3IEBAIGluZGV4IDNiNDU5MzEuLmVkYTI1 MDYgMTAwNjQ0CiAgICAgIHJldHVybiB0eXBlOwogIAogICAgLyogVGhpcyB0eXBlIHNob3VsZG4n dCBiZSBwb2ludGluZyB0byBhbnkgdHlwZXMgaW4gb3RoZXIgb2JqZmlsZXM7Ci1AQCAtMzMwNyw5 ICszNDU2LDEwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAorQEAgLTMzMDcsOSArMzQ1NiwxMCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqCiAgICBuZXdfdHlwZSA9IGFsbG9jX3R5cGVfYXJjaCAoZ2V0X3R5cGVfYXJjaCAo dHlwZSkpOwogIAogICAgLyogV2UgbXVzdCBhZGQgdGhlIG5ldyB0eXBlIHRvIHRoZSBoYXNoIHRh YmxlIGltbWVkaWF0ZWx5LCBpbiBjYXNlCkBAIC00MTE5LDcgKzQxMTksNyBAQCBpbmRleCAzYjQ1 OTMxLi5lZGEyNTA2IDEwMDY0NAogICAgc3RvcmVkLT5vbGQgPSB0eXBlOwogICAgc3RvcmVkLT5u ZXcgPSBuZXdfdHlwZTsKICAgICpzbG90ID0gc3RvcmVkOwotQEAgLTMzMjAsNiArMzQ3MCwyMSBA QCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zMzIw LDYgKzM0NzAsMjEgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iagog ICAgVFlQRV9PQkpGSUxFX09XTkVEIChuZXdfdHlwZSkgPSAwOwogICAgVFlQRV9PV05FUiAobmV3 X3R5cGUpLmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKICAKQEAgLTQxNDEsNyArNDE0 MSw3IEBAIGluZGV4IDNiNDU5MzEuLmVkYTI1MDYgMTAwNjQ0CiAgICBpZiAoVFlQRV9OQU1FICh0 eXBlKSkKICAgICAgVFlQRV9OQU1FIChuZXdfdHlwZSkgPSB4c3RyZHVwIChUWVBFX05BTUUgKHR5 cGUpKTsKICAgIGlmIChUWVBFX1RBR19OQU1FICh0eXBlKSkKLUBAIC0zMzI4LDEyICszNDkzLDQ4 IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMz MjgsMTIgKzM0OTMsNDggQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9i agogICAgVFlQRV9JTlNUQU5DRV9GTEFHUyAobmV3X3R5cGUpID0gVFlQRV9JTlNUQU5DRV9GTEFH UyAodHlwZSk7CiAgICBUWVBFX0xFTkdUSCAobmV3X3R5cGUpID0gVFlQRV9MRU5HVEggKHR5cGUp OwogIApAQCAtNDE5MCw3ICs0MTkwLDcgQEAgaW5kZXggM2I0NTkzMS4uZWRhMjUwNiAxMDA2NDQK ICAgICAgICBUWVBFX0ZJRUxEUyAobmV3X3R5cGUpID0gWENBTExPQyAobmZpZWxkcywgc3RydWN0 IGZpZWxkKTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQogIAl7Ci1AQCAt MzM0Miw4ICszNTQzLDggQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUsCitAQCAtMzM0Miw4ICszNTQzLDggQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0 IG9iamZpbGUgKm9iagogIAkgIFRZUEVfRklFTERfQklUU0laRSAobmV3X3R5cGUsIGkpID0gVFlQ RV9GSUVMRF9CSVRTSVpFICh0eXBlLCBpKTsKICAJICBpZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBl LCBpKSkKICAJICAgIFRZUEVfRklFTERfVFlQRSAobmV3X3R5cGUsIGkpCkBAIC00MjAxLDcgKzQy MDEsNyBAQCBpbmRleCAzYjQ1OTMxLi5lZGEyNTA2IDEwMDY0NAogIAkgIGlmIChUWVBFX0ZJRUxE X05BTUUgKHR5cGUsIGkpKQogIAkgICAgVFlQRV9GSUVMRF9OQU1FIChuZXdfdHlwZSwgaSkgPSAK ICAJICAgICAgeHN0cmR1cCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSk7Ci1AQCAtMzM3MCwy NCArMzU3MSwxODQgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsCitAQCAtMzM3MCwyNCArMzU3MSwxODQgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0 IG9iamZpbGUgKm9iagogIAl9CiAgICAgIH0KICAKQEAgLTQzOTMsNyArNDM5Myw3IEBAIGluZGV4 IDNiNDU5MzEuLmVkYTI1MDYgMTAwNjQ0CiAgICAvKiBNYXliZSBjb3B5IHRoZSB0eXBlX3NwZWNp ZmljIGJpdHMuCiAgCiAgICAgICBOT1RFIGRyb3cvMjAwNS0xMi0wOTogV2UgZG8gbm90IGNvcHkg dGhlIEMrKy1zcGVjaWZpYyBiaXRzIGxpa2UKLUBAIC0zNDA0LDYgKzM3NjUsMTcgQEAgY29weV90 eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzQwNCw2ICszNzY1 LDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmoKICAgIHJldHVy biBuZXdfdHlwZTsKICB9CiAgCkBAIC00NjI3LDEwICs0NjI3LDEwIEBAIGluZGV4IDNiNDU5MzEu LmVkYTI1MDYgMTAwNjQ0CiAgICBvYmpmaWxlX3R5cGVfZGF0YSA9IHJlZ2lzdGVyX29iamZpbGVf ZGF0YSAoKTsKICAKICAgIGFkZF9zZXRzaG93X3ppbnRlZ2VyX2NtZCAoIm92ZXJsb2FkIiwgbm9f Y2xhc3MsICZvdmVybG9hZF9kZWJ1ZywKLWRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dk Yi9nZGJ0eXBlcy5oCi1pbmRleCAzOWNhMWI0Li40YjQ3MjBhIDEwMDY0NAotLS0tIGEvZ2RiL2dk YnR5cGVzLmgKLSsrKyBiL2dkYi9nZGJ0eXBlcy5oCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvZ2RidHlwZXMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3Jp Zy9nZGIvZ2RidHlwZXMuaAkyMDExLTAzLTI4IDIyOjIxOjAzLjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2dkYnR5cGVzLmgJMjAxMS0wNC0yOSAwOTo0MDo0Ni4w MDAwMDAwMDAgKzAyMDAKIEBAIC0yMTUsNiArMjE1LDExIEBAIGVudW0gdHlwZV9pbnN0YW5jZV9m bGFnX3ZhbHVlCiAgCiAgI2RlZmluZSBUWVBFX1RBUkdFVF9TVFVCKHQpCShUWVBFX01BSU5fVFlQ RSAodCktPmZsYWdfdGFyZ2V0X3N0dWIpCkBAIC00NzcxLDcgKzQ3NzEsNyBAQCBpbmRleCAzOWNh MWI0Li40YjQ3MjBhIDEwMDY0NAogIAogICAgICAgIC8qIEZsYWdzIGluZGljYXRpbmcgd2hldGhl ciB0aGUgdmFsdWVzIG9mIGxvdyBhbmQgaGlnaCBhcmUKICAgICAgICAgICB2YWxpZC4gIFdoZW4g dHJ1ZSwgdGhlIHJlc3BlY3RpdmUgcmFuZ2UgdmFsdWUgaXMKLUBAIC05MjYsOSArMTAxOSw5IEBA IGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOworQEAg LTkyNiw5ICsxMDE5LDkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3Ry dQogICNkZWZpbmUgVFlQRV9QT0lOVEVSX1RZUEUodGhpc3R5cGUpICh0aGlzdHlwZSktPnBvaW50 ZXJfdHlwZQogICNkZWZpbmUgVFlQRV9SRUZFUkVOQ0VfVFlQRSh0aGlzdHlwZSkgKHRoaXN0eXBl KS0+cmVmZXJlbmNlX3R5cGUKICAjZGVmaW5lIFRZUEVfQ0hBSU4odGhpc3R5cGUpICh0aGlzdHlw ZSktPmNoYWluCkBAIC00Nzg0LDcgKzQ3ODQsNyBAQCBpbmRleCAzOWNhMWI0Li40YjQ3MjBhIDEw MDY0NAogICAgIGNhbGxzIGNoZWNrX3R5cGVkZWYsIFRZUEVfTEVOR1RIIChWQUxVRV9UWVBFIChY KSkgaXMgc2FmZS4gICovCiAgI2RlZmluZSBUWVBFX0xFTkdUSCh0aGlzdHlwZSkgKHRoaXN0eXBl KS0+bGVuZ3RoCiAgLyogTm90ZSB0aGF0IFRZUEVfQ09ERSBjYW4gYmUgVFlQRV9DT0RFX1RZUEVE RUYsIHNvIGlmIHlvdSB3YW50IHRoZSByZWFsCi1AQCAtOTM2LDExICsxMDI5LDE2IEBAIGV4dGVy biB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOworQEAgLTkzNiwx MSArMTAyOSwxNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CiAg I2RlZmluZSBUWVBFX0NPREUodGhpc3R5cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+Y29k ZQogICNkZWZpbmUgVFlQRV9ORklFTERTKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlw ZSktPm5maWVsZHMKICAjZGVmaW5lIFRZUEVfRklFTERTKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQ RSh0aGlzdHlwZSktPmZsZHNfYm5kcy5maWVsZHMKQEAgLTQ4MDMsNyArNDgwMyw3IEBAIGluZGV4 IDM5Y2ExYjQuLjRiNDcyMGEgMTAwNjQ0CiAgI2RlZmluZSBUWVBFX0xPV19CT1VORF9VTkRFRklO RUQocmFuZ2VfdHlwZSkgXAogICAgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+bG93X3Vu ZGVmaW5lZAogICNkZWZpbmUgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5FRChyYW5nZV90eXBlKSBc Ci1AQCAtOTU3LDcgKzEwNTUsMTQgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlw ZSAoc3RydWN0IHR5cGUgKik7CitAQCAtOTU3LDcgKzEwNTUsMTQgQEAgZXh0ZXJuIHZvaWQgYWxs b2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICAgIChUWVBFX0hJR0hfQk9VTkQoVFlQRV9JTkRF WF9UWVBFKChhcnJheXR5cGUpKSkpCiAgCiAgI2RlZmluZSBUWVBFX0FSUkFZX0xPV0VSX0JPVU5E X1ZBTFVFKGFycmF5dHlwZSkgXApAQCAtNDgxOSw3ICs0ODE5LDcgQEAgaW5kZXggMzljYTFiNC4u NGI0NzIwYSAxMDA2NDQKICAKICAvKiBDKysgKi8KICAKLUBAIC0xMzc5LDYgKzE0ODQsMTggQEAg ZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHR5cGUgKiwKK0BAIC0xMzc5LDYgKzE0ODQsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpj cmVhdGVfYXJyYXlfdHlwZSAocwogIAkJCQkgICAgICAgc3RydWN0IHR5cGUgKik7CiAgZXh0ZXJu IHN0cnVjdCB0eXBlICpsb29rdXBfYXJyYXlfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgaW50 LCBpbnQpOwogIApAQCAtNDgzOCw3ICs0ODM4LDcgQEAgaW5kZXggMzljYTFiNC4uNGI0NzIwYSAx MDA2NDQKICBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9zdHJpbmdfdHlwZSAoc3RydWN0IHR5 cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJCXN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1 Y3QgdHlwZSAqbG9va3VwX3N0cmluZ19yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBpbnQsIGlu dCk7Ci1AQCAtMTQyNCw2ICsxNTQxLDEwIEBAIGV4dGVybiBpbnQgaXNfcHVibGljX2FuY2VzdG9y IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xNDI0LDYgKzE1NDEsMTAgQEAg ZXh0ZXJuIGludCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0cnVjdCB0eQogIAogIGV4dGVybiBpbnQg aXNfdW5pcXVlX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKik7CiAgCkBA IC00ODQ5LDcgKzQ4NDksNyBAQCBpbmRleCAzOWNhMWI0Li40YjQ3MjBhIDEwMDY0NAogIC8qIE92 ZXJsb2FkIHJlc29sdXRpb24gKi8KICAKICAjZGVmaW5lIExFTkdUSF9NQVRDSChidikgKChidikt PnJhbmtbMF0pCi1AQCAtMTQ5NiwxMCArMTYxNywxMyBAQCBleHRlcm4gdm9pZCBtYWludGVuYW5j ZV9wcmludF90eXBlIChjaGFyICosIGludCk7CitAQCAtMTQ5NiwxMCArMTYxNywxMyBAQCBleHRl cm4gdm9pZCBtYWludGVuYW5jZV9wcmludF90eXBlIChjaGFyCiAgCiAgZXh0ZXJuIGh0YWJfdCBj cmVhdGVfY29waWVkX3R5cGVzX2hhc2ggKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsKICAKQEAg LTQ4NjUsMTEgKzQ4NjUsMTEgQEAgaW5kZXggMzljYTFiNC4uNGI0NzIwYSAxMDA2NDQKICsjZW5k aWYKICsKICAjZW5kaWYgLyogR0RCVFlQRVNfSCAqLwotZGlmZiAtLWdpdCBhL2dkYi9pMzg2LWxp bnV4LW5hdC5jIGIvZ2RiL2kzODYtbGludXgtbmF0LmMKLWluZGV4IGUzMmExMTkuLjIwMjRhZTgg MTAwNjQ0Ci0tLS0gYS9nZGIvaTM4Ni1saW51eC1uYXQuYwotKysrIGIvZ2RiL2kzODYtbGludXgt bmF0LmMKLUBAIC02NDksMjIgKzY0OSwxMyBAQCBpMzg2X2xpbnV4X3N0b3JlX2luZmVyaW9yX3Jl Z2lzdGVycyAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi9pMzg2LWxpbnV4LW5hdC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDEx MDQyOS5vcmlnL2dkYi9pMzg2LWxpbnV4LW5hdC5jCTIwMTEtMDItMjcgMTc6MjU6MzcuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvaTM4Ni1saW51eC1uYXQuYwky MDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTY0OSwyMiArNjQ5LDEzIEBA IGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHIKICB9CiAgDAogIApAQCAt NDg5Myw3ICs0ODkzLDcgQEAgaW5kZXggZTMyYTExOS4uMjAyNGFlOCAxMDA2NDQKICAgIC8qIEZJ WE1FOiBrZXR0ZW5pcy8yMDAxLTAzLTI3OiBDYWxsaW5nIHBlcnJvcl93aXRoX25hbWUgaWYgdGhl CiAgICAgICBwdHJhY2UgY2FsbCBmYWlscyBicmVha3MgZGVidWdnaW5nIHJlbW90ZSB0YXJnZXRz LiAgVGhlIGNvcnJlY3QKICAgICAgIHdheSB0byBmaXggdGhpcyBpcyB0byBhZGQgdGhlIGhhcmR3 YXJlIGJyZWFrcG9pbnQgYW5kIHdhdGNocG9pbnQKLUBAIC02ODYsMTQgKzY3Nyw4IEBAIGkzODZf bGludXhfZHJfZ2V0IChwdGlkX3QgcHRpZCwgaW50IHJlZ251bSkKK0BAIC02ODYsMTQgKzY3Nyw4 IEBAIGkzODZfbGludXhfZHJfZ2V0IChwdGlkX3QgcHRpZCwgaW50IHJlZ24KICAvKiBTZXQgZGVi dWcgcmVnaXN0ZXIgUkVHTlVNIHRvIFZBTFVFIGluIG9ubHkgdGhlIG9uZSBMV1Agb2YgUFRJRC4g ICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTQ5MDksNyArNDkwOSw3IEBAIGluZGV4IGUzMmExMTku LjIwMjRhZTggMTAwNjQ0CiAgICBlcnJubyA9IDA7CiAgICBwdHJhY2UgKFBUUkFDRV9QT0tFVVNF UiwgdGlkLAogIAkgIG9mZnNldG9mIChzdHJ1Y3QgdXNlciwgdV9kZWJ1Z3JlZ1tyZWdudW1dKSwg dmFsdWUpOwotQEAgLTcwMSwzNSArNjg2LDc4IEBAIGkzODZfbGludXhfZHJfc2V0IChwdGlkX3Qg cHRpZCwgaW50IHJlZ251bSwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKK0BAIC03MDEsMzUgKzY4Niw3 OCBAQCBpMzg2X2xpbnV4X2RyX3NldCAocHRpZF90IHB0aWQsIGludCByZWduCiAgICAgIHBlcnJv cl93aXRoX25hbWUgKF8oIkNvdWxkbid0IHdyaXRlIGRlYnVnIHJlZ2lzdGVyIikpOwogIH0KICAK QEAgLTUwNzMsMTAgKzUwNzMsMTAgQEAgaW5kZXggZTMyYTExOS4uMjAyNGFlOCAxMDA2NDQKICB9 CiAgDAogIAotZGlmZiAtLWdpdCBhL2dkYi9pMzg2LW5hdC5jIGIvZ2RiL2kzODYtbmF0LmMKLWlu ZGV4IDdlNjgxNGUuLmIxZThlN2QgMTAwNjQ0Ci0tLS0gYS9nZGIvaTM4Ni1uYXQuYwotKysrIGIv Z2RiL2kzODYtbmF0LmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9pMzg2LW5hdC5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9pMzg2LW5hdC5j CTIwMTEtMDItMjYgMjM6MDQ6NTEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDEx MDQyOS9nZGIvaTM4Ni1uYXQuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAog QEAgLTI1LDYgKzI1LDcgQEAKICAjaW5jbHVkZSAiZ2RiY21kLmgiCiAgI2luY2x1ZGUgInRhcmdl dC5oIgpAQCAtNTE3OSw3ICs1MTc5LDcgQEAgaW5kZXggN2U2ODE0ZS4uYjFlOGU3ZCAxMDA2NDQK ICAvKiBXaGV0aGVyIG9yIG5vdCB0byBwcmludCB0aGUgbWlycm9yZWQgZGVidWcgcmVnaXN0ZXJz LiAgKi8KICBzdGF0aWMgaW50IG1haW50X3Nob3dfZHI7CiAgCi1AQCAtMTk1LDIxICsyMDYsODAg QEAgc3RhdGljIGludCBpMzg2X2hhbmRsZV9ub25hbGlnbmVkX3dhdGNocG9pbnQgKGkzODZfd3Bf b3BfdCB3aGF0LAorQEAgLTE5NSwyMSArMjA2LDgwIEBAIHN0YXRpYyBpbnQgaTM4Nl9oYW5kbGVf bm9uYWxpZ25lZF93YXRjaHAKICAKICAvKiBJbXBsZW1lbnRhdGlvbi4gICovCiAgCkBAIC01Mjcy LDcgKzUyNzIsNyBAQCBpbmRleCA3ZTY4MTRlLi5iMWU4ZTdkIDEwMDY0NAogICAgaW50IGFkZHJf c2l6ZSA9IGdkYmFyY2hfYWRkcl9iaXQgKHRhcmdldF9nZGJhcmNoKSAvIDg7CiAgICBpbnQgaTsK ICAKLUBAIC0yMzksMTMgKzMxMCwxNiBAQCBpMzg2X3Nob3dfZHIgKGNvbnN0IGNoYXIgKmZ1bmMs IENPUkVfQUREUiBhZGRyLAorQEAgLTIzOSwxMyArMzEwLDE2IEBAIGkzODZfc2hvd19kciAoY29u c3QgY2hhciAqZnVuYywgQ09SRV9BREQKICAJCQkJOiAiPz91bmtub3duPz8iKSkpKTsKICAgIHB1 dHNfdW5maWx0ZXJlZCAoIjpcbiIpOwogICAgcHJpbnRmX3VuZmlsdGVyZWQgKCJcdENPTlRST0wg KERSNyk6ICVzICAgICAgICAgIFNUQVRVUyAoRFI2KTogJXNcbiIsCkBAIC01MjkyLDcgKzUyOTIs NyBAQCBpbmRleCA3ZTY4MTRlLi5iMWU4ZTdkIDEwMDY0NAogICAgICAgIGkrKzsKICAgICAgfQog IH0KLUBAIC0zMTMsNiArMzg3LDcgQEAgSW52YWxpZCBoYXJkd2FyZSBicmVha3BvaW50IGxlbmd0 aCAlZCBpbiBpMzg2X2xlbmd0aF9hbmRfcndfYml0cy5cbiIpLCBsZW4pOworQEAgLTMxMyw2ICsz ODcsNyBAQCBJbnZhbGlkIGhhcmR3YXJlIGJyZWFrcG9pbnQgbGVuZ3RoICVkIGluCiAgc3RhdGlj IGludAogIGkzODZfaW5zZXJ0X2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIHVu c2lnbmVkIGxlbl9yd19iaXRzKQogIHsKQEAgLTUzMDAsNyArNTMwMCw3IEBAIGluZGV4IDdlNjgx NGUuLmIxZThlN2QgMTAwNjQ0CiAgICBpbnQgaTsKICAKICAgIGlmICghaTM4Nl9kcl9sb3cuc2V0 X2FkZHIgfHwgIWkzODZfZHJfbG93LnNldF9jb250cm9sKQotQEAgLTMyMywxMSArMzk4LDEwIEBA IGkzODZfaW5zZXJ0X2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIHVuc2lnbmVk IGxlbl9yd19iaXRzKQorQEAgLTMyMywxMSArMzk4LDEwIEBAIGkzODZfaW5zZXJ0X2FsaWduZWRf d2F0Y2hwb2ludCAoQ09SRV9BREQKICAgICAgIHJldXNlIGl0IGZvciB0aGlzIHdhdGNocG9pbnQg YXMgd2VsbCAoYW5kIHNhdmUgYSByZWdpc3RlcikuICAqLwogICAgQUxMX0RFQlVHX1JFR0lTVEVS UyhpKQogICAgICB7CkBAIC01MzE1LDcgKzUzMTUsNyBAQCBpbmRleCA3ZTY4MTRlLi5iMWU4ZTdk IDEwMDY0NAogIAkgIHJldHVybiAwOwogIAl9CiAgICAgIH0KLUBAIC0zMzUsNyArNDA5LDcgQEAg aTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQg bGVuX3J3X2JpdHMpCitAQCAtMzM1LDcgKzQwOSw3IEBAIGkzODZfaW5zZXJ0X2FsaWduZWRfd2F0 Y2hwb2ludCAoQ09SRV9BREQKICAgIC8qIE5leHQsIGxvb2sgZm9yIGEgdmFjYW50IGRlYnVnIHJl Z2lzdGVyLiAgKi8KICAgIEFMTF9ERUJVR19SRUdJU1RFUlMoaSkKICAgICAgewpAQCAtNTMyNCw3 ICs1MzI0LDcgQEAgaW5kZXggN2U2ODE0ZS4uYjFlOGU3ZCAxMDA2NDQKICAJYnJlYWs7CiAgICAg IH0KICAKLUBAIC0zNDYsOSArNDIwLDkgQEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50 IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCitAQCAtMzQ2LDkgKzQyMCw5 IEBAIGkzODZfaW5zZXJ0X2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BREQKICAgIC8qIE5vdyBz ZXQgdXAgdGhlIHJlZ2lzdGVyIEkgdG8gd2F0Y2ggb3VyIHJlZ2lvbi4gICovCiAgCiAgICAvKiBS ZWNvcmQgdGhlIGluZm8gaW4gb3VyIGxvY2FsIG1pcnJvcmVkIGFycmF5LiAgKi8KQEAgLTUzMzcs NyArNTMzNyw3IEBAIGluZGV4IDdlNjgxNGUuLmIxZThlN2QgMTAwNjQ0CiAgICAvKiBOb3RlOiB3 ZSBvbmx5IGVuYWJsZSB0aGUgd2F0Y2hwb2ludCBsb2NhbGx5LCBpLmUuIGluIHRoZSBjdXJyZW50 CiAgICAgICB0YXNrLiAgQ3VycmVudGx5LCBubyBpMzg2IHRhcmdldCBhbGxvd3Mgb3Igc3VwcG9y dHMgZ2xvYmFsCiAgICAgICB3YXRjaHBvaW50czsgaG93ZXZlciwgaWYgYW55IHRhcmdldCB3b3Vs ZCB3YW50IHRoYXQgaW4gdGhlCi1AQCAtMzU2LDEzICs0MzAsMTMgQEAgaTM4Nl9pbnNlcnRfYWxp Z25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCitA QCAtMzU2LDEzICs0MzAsMTMgQEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JF X0FERAogICAgICAgdG8gZW5hYmxlIHdhdGNocG9pbnRzIGdsb2JhbGx5IG9yIGxvY2FsbHksIGFu ZCB0aGUgY29kZSBiZWxvdwogICAgICAgc2hvdWxkIHVzZSBnbG9iYWwgb3IgbG9jYWwgZW5hYmxl IGFuZCBzbG93LWRvd24gZmxhZ3MgYXMKICAgICAgIGFwcHJvcHJpYXRlLiAgKi8KQEAgLTUzNTUs NyArNTM1NSw3IEBAIGluZGV4IDdlNjgxNGUuLmIxZThlN2QgMTAwNjQ0CiAgCiAgICAvKiBPbmx5 IGEgc2FuaXR5IGNoZWNrIGZvciBsZWZ0b3ZlciBiaXRzIChzZXQgcG9zc2libHkgb25seSBieSBp bmZlcmlvcikuICAqLwogICAgaWYgKGkzODZfZHJfbG93LnVuc2V0X3N0YXR1cykKLUBAIC0zODAs MjEgKzQ1NCwyMSBAQCBpMzg2X2luc2VydF9hbGlnbmVkX3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCB1bnNpZ25lZCBsZW5fcndfYml0cykKK0BAIC0zODAsMjEgKzQ1NCwyMSBAQCBpMzg2X2lu c2VydF9hbGlnbmVkX3dhdGNocG9pbnQgKENPUkVfQURECiAgc3RhdGljIGludAogIGkzODZfcmVt b3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIHVuc2lnbmVkIGxlbl9yd19i aXRzKQogIHsKQEAgLTUzODQsNyArNTM4NCw3IEBAIGluZGV4IDdlNjgxNGUuLmIxZThlN2QgMTAw NjQ0CiAgCSAgICAgIGlmIChpMzg2X2RyX2xvdy5yZXNldF9hZGRyKQogIAkJaTM4Nl9kcl9sb3cu cmVzZXRfYWRkciAoaSk7CiAgCSAgICB9Ci1AQCAtNTU2LDI2ICs2MzAsMjcgQEAgaTM4Nl9yZWdp b25fb2tfZm9yX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQorQEAgLTU1Niwy NiArNjMwLDI3IEBAIGkzODZfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChDT1JFX0FERFIKICBz dGF0aWMgaW50CiAgaTM4Nl9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMg Km9wcywgQ09SRV9BRERSICphZGRyX3ApCiAgewpAQCAtNTQxNyw3ICs1NDE3LDcgQEAgaW5kZXgg N2U2ODE0ZS4uYjFlOGU3ZCAxMDA2NDQKICAJICByYyA9IDE7CiAgCSAgaWYgKG1haW50X3Nob3df ZHIpCiAgCSAgICBpMzg2X3Nob3dfZHIgKCJ3YXRjaHBvaW50X2hpdCIsIGFkZHIsIC0xLCBod193 cml0ZSk7Ci1AQCAtNjg5LDYgKzc2NCwxMCBAQCBpMzg2X3VzZV93YXRjaHBvaW50cyAoc3RydWN0 IHRhcmdldF9vcHMgKnQpCitAQCAtNjg5LDYgKzc2NCwxMCBAQCBpMzg2X3VzZV93YXRjaHBvaW50 cyAoc3RydWN0IHRhcmdldF9vcHMgCiAgICB0LT50b19yZW1vdmVfd2F0Y2hwb2ludCA9IGkzODZf cmVtb3ZlX3dhdGNocG9pbnQ7CiAgICB0LT50b19pbnNlcnRfaHdfYnJlYWtwb2ludCA9IGkzODZf aW5zZXJ0X2h3X2JyZWFrcG9pbnQ7CiAgICB0LT50b19yZW1vdmVfaHdfYnJlYWtwb2ludCA9IGkz ODZfcmVtb3ZlX2h3X2JyZWFrcG9pbnQ7CkBAIC01NDI4LDExICs1NDI4LDExIEBAIGluZGV4IDdl NjgxNGUuLmIxZThlN2QgMTAwNjQ0CiAgfQogIAogIHZvaWQKLWRpZmYgLS1naXQgYS9nZGIvaTM4 Ni1uYXQuaCBiL2dkYi9pMzg2LW5hdC5oCi1pbmRleCA4MTljNmI4Li5iZWY4YTM1IDEwMDY0NAot LS0tIGEvZ2RiL2kzODYtbmF0LmgKLSsrKyBiL2dkYi9pMzg2LW5hdC5oCi1AQCAtNzgsNiArNzgs MjggQEAgc3RydWN0IGkzODZfZHJfbG93X3R5cGUKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi9pMzg2LW5hdC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmln L2dkYi9pMzg2LW5hdC5oCTIwMTEtMDEtMDkgMDQ6MDg6NTYuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuMi45MC4yMDExMDQyOS9nZGIvaTM4Ni1uYXQuaAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAw MDAwMDAwMCArMDIwMAorQEAgLTc4LDYgKzc4LDI4IEBAIHN0cnVjdCBpMzg2X2RyX2xvd190eXBl IAogIAogIGV4dGVybiBzdHJ1Y3QgaTM4Nl9kcl9sb3dfdHlwZSBpMzg2X2RyX2xvdzsKICAKQEAg LTU0NjEsMTAgKzU0NjEsMTAgQEAgaW5kZXggODE5YzZiOC4uYmVmOGEzNSAxMDA2NDQKICAvKiBV c2UgdGhpcyBmdW5jdGlvbiB0byBzZXQgaTM4Nl9kcl9sb3cgZGVidWdfcmVnaXN0ZXJfbGVuZ3Ro IGZpZWxkCiAgICAgcmF0aGVyIHRoYW4gc2V0dGluZyBpdCBkaXJlY3RseSB0byBjaGVjayB0aGF0 IHRoZSBsZW5ndGggaXMgb25seQogICAgIHNldCBvbmNlLiAgSXQgYWxzbyBlbmFibGVzIHRoZSAn bWFpbnQgc2V0L3Nob3cgc2hvdy1kZWJ1Zy1yZWdzJyAKLWRpZmYgLS1naXQgYS9nZGIvaW5mcnVu LmMgYi9nZGIvaW5mcnVuLmMKLWluZGV4IDdjZWU3YzguLmI5NGMxMWEgMTAwNjQ0Ci0tLS0gYS9n ZGIvaW5mcnVuLmMKLSsrKyBiL2dkYi9pbmZydW4uYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL2luZnJ1bi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmln L2dkYi9pbmZydW4uYwkyMDExLTA0LTIwIDE5OjA0OjMyLjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL2luZnJ1bi5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAw MDAwICswMjAwCiBAQCAtNTQsNiArNTQsOCBAQAogICNpbmNsdWRlICJpbmxpbmUtZnJhbWUuaCIK ICAjaW5jbHVkZSAiaml0LmgiCkBAIC01NDc0LDcgKzU0NzQsNyBAQCBpbmRleCA3Y2VlN2M4Li5i OTRjMTFhIDEwMDY0NAogIAogIC8qIFByb3RvdHlwZXMgZm9yIGxvY2FsIGZ1bmN0aW9ucyAqLwog IAotQEAgLTIyNDcsNyArMjI0OSw3IEBAIHN0YXRpYyB2b2lkIGluc2VydF9zdGVwX3Jlc3VtZV9i cmVha3BvaW50X2F0X3NhbCAoc3RydWN0IGdkYmFyY2ggKiwKK0BAIC0yMjQ3LDcgKzIyNDksNyBA QCBzdGF0aWMgdm9pZCBpbnNlcnRfc3RlcF9yZXN1bWVfYnJlYWtwb2luCiAgCQkJCQkJICBzdHJ1 Y3QgZnJhbWVfaWQpOwogIHN0YXRpYyB2b2lkIGluc2VydF9sb25nam1wX3Jlc3VtZV9icmVha3Bv aW50IChzdHJ1Y3QgZ2RiYXJjaCAqLCBDT1JFX0FERFIpOwogIHN0YXRpYyB2b2lkIGNoZWNrX2V4 Y2VwdGlvbl9yZXN1bWUgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqLApAQCAtNTUx OCw3ICs1NTE4LDcgQEAgaW5kZXggN2NlZTdjOC4uYjk0YzExYSAxMDA2NDQKICAJa2VlcF9nb2lu ZyAoZWNzKTsKICAJcmV0dXJuOwogIAotQEAgLTUyNjMsMTUgKzUyNjgsNjUgQEAgaW5zZXJ0X2V4 Y2VwdGlvbl9yZXN1bWVfYnJlYWtwb2ludCAoc3RydWN0IHRocmVhZF9pbmZvICp0cCwKK0BAIC01 MjYzLDE1ICs1MjY4LDY1IEBAIGluc2VydF9leGNlcHRpb25fcmVzdW1lX2JyZWFrcG9pbnQgKHN0 cnUKICAgICAgfQogIH0KICAKQEAgLTU1ODUsNyArNTU4NSw3IEBAIGluZGV4IDdjZWU3YzguLmI5 NGMxMWEgMTAwNjQ0CiAgCiAgICBUUllfQ0FUQ0ggKGUsIFJFVFVSTl9NQVNLX0VSUk9SKQogICAg ICB7Ci1AQCAtNjI1Myw3ICs2MzA4LDggQEAgc3RhdGljIHN0cnVjdCBsdmFsX2Z1bmNzIHNpZ2lu Zm9fdmFsdWVfZnVuY3MgPQorQEAgLTYyNTMsNyArNjMwOCw4IEBAIHN0YXRpYyBzdHJ1Y3QgbHZh bF9mdW5jcyBzaWdpbmZvX3ZhbHVlX2YKICAgICBpZiB0aGVyZSdzIG5vIG9iamVjdCBhdmFpbGFi bGUuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtNTU5NSw3ICs1NTk1LDcgQEAg aW5kZXggN2NlZTdjOC4uYjk0YzExYSAxMDA2NDQKICB7CiAgICBpZiAodGFyZ2V0X2hhc19zdGFj awogICAgICAgICYmICFwdGlkX2VxdWFsIChpbmZlcmlvcl9wdGlkLCBudWxsX3B0aWQpCi1AQCAt NjgyNiw2ICs2ODgyLDE1IEBAIHNob3dfc2NoZWR1bGVfbXVsdGlwbGUgKHN0cnVjdCB1aV9maWxl ICpmaWxlLCBpbnQgZnJvbV90dHksCitAQCAtNjgyMSw2ICs2ODc3LDE1IEBAIHNob3dfc2NoZWR1 bGVfbXVsdGlwbGUgKHN0cnVjdCB1aV9maWxlICoKICAJCQkgICAgIm9mIGFsbCBwcm9jZXNzZXMg aXMgJXMuXG4iKSwgdmFsdWUpOwogIH0KICAKQEAgLTU2MTEsNyArNTYxMSw3IEBAIGluZGV4IDdj ZWU3YzguLmI5NGMxMWEgMTAwNjQ0CiAgdm9pZAogIF9pbml0aWFsaXplX2luZnJ1biAodm9pZCkK ICB7Ci1AQCAtNzA5OCw3ICs3MTYzLDcgQEAgVGVsbHMgZ2RiIHdoZXRoZXIgdG8gZGV0YWNoIHRo ZSBjaGlsZCBvZiBhIGZvcmsuIiksCitAQCAtNzA5Myw3ICs3MTU4LDcgQEAgVGVsbHMgZ2RiIHdo ZXRoZXIgdG8gZGV0YWNoIHRoZSBjaGlsZCBvZgogICAgICAgdmFsdWUgd2l0aCBhIHZvaWQgdHlw ZWQgdmFsdWUsIGFuZCB3aGVuIHdlIGdldCBoZXJlLCBnZGJhcmNoCiAgICAgICBpc24ndCBpbml0 aWFsaXplZCB5ZXQuICBBdCB0aGlzIHBvaW50LCB3ZSdyZSBxdWl0ZSBzdXJlIHRoZXJlCiAgICAg ICBpc24ndCBhbm90aGVyIGNvbnZlbmllbmNlIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUuICAq LwpAQCAtNTYyMCwxMCArNTYyMCwxMCBAQCBpbmRleCA3Y2VlN2M4Li5iOTRjMTFhIDEwMDY0NAog IAogICAgYWRkX3NldHNob3dfYm9vbGVhbl9jbWQgKCJvYnNlcnZlciIsIG5vX2NsYXNzLAogIAkJ CSAgICZvYnNlcnZlcl9tb2RlXzEsIF8oIlwKLWRpZmYgLS1naXQgYS9nZGIvbGluZXNwZWMuYyBi L2dkYi9saW5lc3BlYy5jCi1pbmRleCA3MGRmM2NhLi41MzM4MTYxIDEwMDY0NAotLS0tIGEvZ2Ri L2xpbmVzcGVjLmMKLSsrKyBiL2dkYi9saW5lc3BlYy5jCitJbmRleDogZ2RiLTcuMi45MC4yMDEx MDQyOS9nZGIvbGluZXNwZWMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjku b3JpZy9nZGIvbGluZXNwZWMuYwkyMDExLTAzLTI1IDE4OjEzOjEyLjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2xpbmVzcGVjLmMJMjAxMS0wNC0yOSAwOTo0MDo0 Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC00Myw2ICs0Myw3IEBACiAgI2luY2x1ZGUgImFyY2gtdXRp bHMuaCIKICAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTU2NDAsNyArNTY0MCw3IEBAIGluZGV4IDcw ZGYzY2EuLjUzMzgxNjEgMTAwNjQ0CiAgCiAgICAgVGhpcyBtYXkgYWxsIGJlIGZvbGxvd2VkIGJ5 IGFuICJpZiBFWFBSIiwgd2hpY2ggd2UgaWdub3JlLgogIAotQEAgLTgzNyw2ICs4MzksOSBAQCBk ZWNvZGVfbGluZV8xIChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3lt dGFiICpkZWZhdWx0X3N5bXRhYiwKK0BAIC04MzcsNiArODM5LDkgQEAgZGVjb2RlX2xpbmVfMSAo Y2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcgogICAgaWYgKCoqYXJncHRyID09ICcqJykKICAgICAg cmV0dXJuIGRlY29kZV9pbmRpcmVjdCAoYXJncHRyKTsKICAKQEAgLTU2NTAsMTAgKzU2NTAsMTAg QEAgaW5kZXggNzBkZjNjYS4uNTMzODE2MSAxMDA2NDQKICAgIGlzX3F1b3RlZCA9IChzdHJjaHIg KGdldF9nZGJfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnMgKCksCiAgCQkgICAgICAgKiphcmdw dHIpICE9IE5VTEwpOwogIAotZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5oIGIvZ2RiL2xpbmVz cGVjLmgKLWluZGV4IGQ4ZDJlYzkuLjQ1ODIzNWMgMTAwNjQ0Ci0tLS0gYS9nZGIvbGluZXNwZWMu aAotKysrIGIvZ2RiL2xpbmVzcGVjLmgKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9s aW5lc3BlYy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9s aW5lc3BlYy5oCTIwMTEtMDMtMjQgMjA6NDc6MTcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvbGluZXNwZWMuaAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAw MCArMDIwMAogQEAgLTMwLDYgKzMwLDEwIEBAIHN0cnVjdCBsaW5lc3BlY19yZXN1bHQKICAgICAg IGRpc3BsYXkgbWVjaGFuaXNtIHdvdWxkIGRvIHRoZSB3cm9uZyB0aGluZy4gICovCiAgICBpbnQg c3BlY2lhbF9kaXNwbGF5OwpAQCAtNTY2NSwxMCArNTY2NSwxMCBAQCBpbmRleCBkOGQyZWM5Li40 NTgyMzVjIDEwMDY0NAogICAgLyogSWYgbm9uLU5VTEwsIGFuIGFycmF5IG9mIGNhbm9uaWNhbCBu YW1lcyBmb3IgcmV0dXJuZWQKICAgICAgIHN5bXRhYl9hbmRfbGluZSBvYmplY3RzLiAgVGhlIGFy cmF5IGhhcyBhcyBtYW55IGVsZW1lbnRzIGFzIHRoZQogICAgICAgYG5lbHRzJyBmaWVsZCBpbiB0 aGUgc3ltdGFic19hbmRfbGluZSByZXR1cm5lZCBieSBkZWNvZGVfbGluZV8xLgotZGlmZiAtLWdp dCBhL2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1uYXQuYwotaW5kZXggNzMyODEyZC4uMDNi M2QxOSAxMDA2NDQKLS0tLSBhL2dkYi9saW51eC1uYXQuYwotKysrIGIvZ2RiL2xpbnV4LW5hdC5j CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvbGludXgtbmF0LmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDMtMDkg MTM6NDg6NTUuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvbGlu dXgtbmF0LmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMjU0LDYg KzEyNTQsNjQgQEAgaXRlcmF0ZV9vdmVyX2x3cHMgKHB0aWRfdCBmaWx0ZXIsCiAgICByZXR1cm4g TlVMTDsKICB9CkBAIC01NzM0LDExICs1NzM0LDExIEBAIGluZGV4IDczMjgxMmQuLjAzYjNkMTkg MTAwNjQ0CiAgLyogVXBkYXRlIG91ciBpbnRlcm5hbCBzdGF0ZSB3aGVuIGNoYW5naW5nIGZyb20g b25lIGNoZWNrcG9pbnQgdG8KICAgICBhbm90aGVyIGluZGljYXRlZCBieSBORVdfUFRJRC4gIFdl IGNhbiBvbmx5IHN3aXRjaCBzaW5nbGUtdGhyZWFkZWQKICAgICBhcHBsaWNhdGlvbnMsIHNvIHdl IG9ubHkgY3JlYXRlIG9uZSBuZXcgTFdQLCBhbmQgdGhlIHByZXZpb3VzIGxpc3QKLWRpZmYgLS1n aXQgYS9nZGIvbGludXgtbmF0LmggYi9nZGIvbGludXgtbmF0LmgKLWluZGV4IDQyY2IyZmMuLjA1 YWMxMWQgMTAwNjQ0Ci0tLS0gYS9nZGIvbGludXgtbmF0LmgKLSsrKyBiL2dkYi9saW51eC1uYXQu aAotQEAgLTE0MCw2ICsxNDAsMTEgQEAgc3RydWN0IGx3cF9pbmZvICppdGVyYXRlX292ZXJfbHdw cyAocHRpZF90IGZpbHRlciwKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9saW51eC1u YXQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvbGludXgt bmF0LmgJMjAxMS0wMS0wNSAyMzoyMjo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkw LjIwMTEwNDI5L2dkYi9saW51eC1uYXQuaAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCAr MDIwMAorQEAgLTE0MCw2ICsxNDAsMTEgQEAgc3RydWN0IGx3cF9pbmZvICppdGVyYXRlX292ZXJf bHdwcyAocHRpZAogIAkJCQkJCSAgICAgdm9pZCAqKSwgCiAgCQkJCSAgICB2b2lkICpkYXRhKTsK ICAKQEAgLTU3NTAsMTEgKzU3NTAsMTEgQEAgaW5kZXggNDJjYjJmYy4uMDVhYzExZCAxMDA2NDQK ICAvKiBDcmVhdGUgYSBwcm90b3R5cGUgZ2VuZXJpYyBHTlUvTGludXggdGFyZ2V0LiAgVGhlIGNs aWVudCBjYW4KICAgICBvdmVycmlkZSBpdCB3aXRoIGxvY2FsIG1ldGhvZHMuICAqLwogIHN0cnVj dCB0YXJnZXRfb3BzICogbGludXhfdGFyZ2V0ICh2b2lkKTsKLWRpZmYgLS1naXQgYS9nZGIvbWFj aG9yZWFkLmMgYi9nZGIvbWFjaG9yZWFkLmMKLWluZGV4IGRiZjlhZTQuLjNkYjllMTYgMTAwNjQ0 Ci0tLS0gYS9nZGIvbWFjaG9yZWFkLmMKLSsrKyBiL2dkYi9tYWNob3JlYWQuYwotQEAgLTg0OSw2 ICs4NDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgbWFjaG9fc3ltX2ZucyA9IHsK K0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9tYWNob3JlYWQuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvbWFjaG9yZWFkLmMJMjAxMS0wMy0wNyAx NzoxNzoyOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9tYWNo b3JlYWQuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTg0OSw2ICs4 NDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgbWFjaG9fc3ltX2ZuCiAgICBkZWZh dWx0X3N5bWZpbGVfc2VnbWVudHMsCS8qIEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20gYSBm aWxlLiAgKi8KICAgIE5VTEwsCiAgICBtYWNob19zeW1maWxlX3JlbG9jYXRlLAkvKiBSZWxvY2F0 ZSBhIGRlYnVnIHNlY3Rpb24uICAqLwpAQCAtNTc2MiwxMCArNTc2MiwxMCBAQCBpbmRleCBkYmY5 YWU0Li4zZGI5ZTE2IDEwMDY0NAogICAgJnBzeW1fZnVuY3Rpb25zCiAgfTsKICAKLWRpZmYgLS1n aXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwotaW5kZXggZmYzMDVhMS4uMjY3ZjBiMCAxMDA2 NDQKLS0tLSBhL2dkYi9tYWluLmMKLSsrKyBiL2dkYi9tYWluLmMKK0luZGV4OiBnZGItNy4yLjkw LjIwMTEwNDI5L2dkYi9tYWluLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5 Lm9yaWcvZ2RiL21haW4uYwkyMDExLTAzLTA3IDE5OjM0OjMxLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL21haW4uYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAw MDAwMCArMDIwMAogQEAgLTM5LDYgKzM5LDcgQEAKICAKICAjaW5jbHVkZSAiaW50ZXJwcy5oIgpA QCAtNTkxMywxMSArNTkxMywxMSBAQCBpbmRleCBmZjMwNWExLi4yNjdmMGIwIDEwMDY0NAogICAg LS1xdWlldCAgICAgICAgICAgIERvIG5vdCBwcmludCB2ZXJzaW9uIG51bWJlciBvbiBzdGFydHVw LlxuXAogICAgLS1yZWFkbm93ICAgICAgICAgIEZ1bGx5IHJlYWQgc3ltYm9sIGZpbGVzIG9uIGZp cnN0IGFjY2Vzcy5cblwKICAiKSwgc3RyZWFtKTsKLWRpZmYgLS1naXQgYS9nZGIvbWkvbWktY21k LXZhci5jIGIvZ2RiL21pL21pLWNtZC12YXIuYwotaW5kZXggYTQwMTg0Ni4uMjZkY2E4YyAxMDA2 NDQKLS0tLSBhL2dkYi9taS9taS1jbWQtdmFyLmMKLSsrKyBiL2dkYi9taS9taS1jbWQtdmFyLmMK LUBAIC03MDcsNyArNzA3LDYgQEAgbWlfY21kX3Zhcl91cGRhdGUgKGNoYXIgKmNvbW1hbmQsIGNo YXIgKiphcmd2LCBpbnQgYXJnYykKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9taS9t aS1jbWQtdmFyLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2Ri L21pL21pLWNtZC12YXIuYwkyMDExLTAxLTEyIDIyOjA5OjM5LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL21pL21pLWNtZC12YXIuYwkyMDExLTA0LTI5IDA5OjQw OjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTcwNyw3ICs3MDcsNiBAQCBtaV9jbWRfdmFyX3VwZGF0 ZSAoY2hhciAqY29tbWFuZCwgY2hhciAqCiAgICAgIH0KICAgIGVsc2UKICAgICAgewpAQCAtNTky NSwxMSArNTkyNSwxMSBAQCBpbmRleCBhNDAxODQ2Li4yNmRjYThjIDEwMDY0NAogICAgICAgIHN0 cnVjdCB2YXJvYmogKnZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChuYW1lKTsKICAKICAgICAgICB2 YXJvYmpfdXBkYXRlX29uZSAodmFyLCBwcmludF92YWx1ZXMsIDEgLyogZXhwbGljaXQgKi8pOwot ZGlmZiAtLWdpdCBhL2dkYi9taXBzcmVhZC5jIGIvZ2RiL21pcHNyZWFkLmMKLWluZGV4IDc0ZDc5 NWQuLjdlMDUzMTcgMTAwNjQ0Ci0tLS0gYS9nZGIvbWlwc3JlYWQuYwotKysrIGIvZ2RiL21pcHNy ZWFkLmMKLUBAIC00MDIsNiArNDAyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzeW1fZm5zIGVj b2ZmX3N5bV9mbnMgPQorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL21pcHNyZWFkLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL21pcHNyZWFkLmMJ MjAxMS0wMy0wNyAxNzoxNzoyOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi9taXBzcmVhZC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCitA QCAtNDAyLDYgKzQwMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3ltX2ZucyBlY29mZl9zeW1f Zm4KICAgIGRlZmF1bHRfc3ltZmlsZV9zZWdtZW50cywJLyogR2V0IHNlZ21lbnQgaW5mb3JtYXRp b24gZnJvbSBhIGZpbGUuICAqLwogICAgTlVMTCwKICAgIGRlZmF1bHRfc3ltZmlsZV9yZWxvY2F0 ZSwJLyogUmVsb2NhdGUgYSBkZWJ1ZyBzZWN0aW9uLiAgKi8KQEAgLTU5MzcsMTEgKzU5MzcsMTEg QEAgaW5kZXggNzRkNzk1ZC4uN2UwNTMxNyAxMDA2NDQKICAgICZwc3ltX2Z1bmN0aW9ucwogIH07 CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL29iamZpbGVzLmMgYi9nZGIvb2JqZmlsZXMuYwotaW5kZXgg ZjMyNTlkZC4uNGNiM2JlZCAxMDA2NDQKLS0tLSBhL2dkYi9vYmpmaWxlcy5jCi0rKysgYi9nZGIv b2JqZmlsZXMuYwotQEAgLTg0Niw2ICs4NDYsMTEgQEAgb2JqZmlsZV9yZWxvY2F0ZTEgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL29iamZp bGVzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL29iamZp bGVzLmMJMjAxMS0wNC0yNSAyMzoyNToxOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkw LjIwMTEwNDI5L2dkYi9vYmpmaWxlcy5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICsw MjAwCitAQCAtODQ2LDYgKzg0NiwxMSBAQCBvYmpmaWxlX3JlbG9jYXRlMSAoc3RydWN0IG9iamZp bGUgKm9iamZpCiAgCQkJCW9ial9zZWN0aW9uX2FkZHIgKHMpKTsKICAgICAgfQogIApAQCAtNTk1 MywxMCArNTk1MywxMCBAQCBpbmRleCBmMzI1OWRkLi40Y2IzYmVkIDEwMDY0NAogICAgLyogRGF0 YSBjaGFuZ2VkLiAgKi8KICAgIHJldHVybiAxOwogIH0KLWRpZmYgLS1naXQgYS9nZGIvcC12YWxw cmludC5jIGIvZ2RiL3AtdmFscHJpbnQuYwotaW5kZXggZDJlZmE1Yi4uZDk4YjNhNCAxMDA2NDQK LS0tLSBhL2dkYi9wLXZhbHByaW50LmMKLSsrKyBiL2dkYi9wLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9wLXZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDExLTAzLTE1IDE3OjAwOjU2 LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3AtdmFscHJpbnQu YwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTM5LDYgKzM5LDcgQEAK ICAjaW5jbHVkZSAiY3AtYWJpLmgiCiAgI2luY2x1ZGUgImNwLXN1cHBvcnQuaCIKQEAgLTU5NjUs NyArNTk2NSw3IEBAIGluZGV4IGQyZWZhNWIuLmQ5OGIzYTQgMTAwNjQ0CiAgDAogIAogIC8qIFNl ZSB2YWxfcHJpbnQgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIHZhcmlvdXMgcGFyYW1ldGVycyBv ZiB0aGlzCi1AQCAtNjMsOCArNjQsMzEgQEAgcGFzY2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorQEAgLTYzLDggKzY0LDMxIEBAIHBhc2Nh bF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb24KICAgIHN0cnVjdCB0eXBlICpjaGFy X3R5cGU7CiAgICBMT05HRVNUIHZhbDsKICAgIENPUkVfQUREUiBhZGRyOwpAQCAtNTk5OCw3ICs1 OTk4LDcgQEAgaW5kZXggZDJlZmE1Yi4uZDk4YjNhNCAxMDA2NDQKICAgIHN3aXRjaCAoVFlQRV9D T0RFICh0eXBlKSkKICAgICAgewogICAgICBjYXNlIFRZUEVfQ09ERV9BUlJBWToKLUBAIC0xMjAs OCArMTQ0LDggQEAgcGFzY2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAorQEAgLTEyMCw4ICsxNDQsOCBAQCBwYXNjYWxfdmFsX3ByaW50IChz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uCiAgCQl7CiAgCQkgIGkgPSAwOwogIAkJfQpAQCAtNjAwOSw3 ICs2MDA5LDcgQEAgaW5kZXggZDJlZmE1Yi4uZDk4YjNhNCAxMDA2NDQKICAJCQkJCW9yaWdpbmFs X3ZhbHVlLCBvcHRpb25zLCBpKTsKICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAi fSIpOwogIAkgICAgfQotQEAgLTE2MCw2ICsxODQsNyBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCitAQCAtMTYwLDYgKzE4NCw3 IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb24KICAJICAvKiBUcnkg dG8gcHJpbnQgd2hhdCBmdW5jdGlvbiBpdCBwb2ludHMgdG8uICAqLwogIAkgIHByaW50X2FkZHJl c3NfZGVtYW5nbGUgKGdkYmFyY2gsIGFkZHIsIHN0cmVhbSwgZGVtYW5nbGUpOwogIAkgIC8qIFJl dHVybiB2YWx1ZSBpcyBpcnJlbGV2YW50IGV4Y2VwdCBmb3Igc3RyaW5nIHBvaW50ZXJzLiAgKi8K QEAgLTYwMTcsNyArNjAxNyw3IEBAIGluZGV4IGQyZWZhNWIuLmQ5OGIzYTQgMTAwNjQ0CiAgCSAg cmV0dXJuICgwKTsKICAJfQogIAotQEAgLTI1MSw2ICsyNzYsNyBAQCBwYXNjYWxfdmFsX3ByaW50 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCitAQCAtMjUxLDYg KzI3Niw3IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb24KICAgICAg ICAvKiBSZXR1cm4gbnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJpbnRlZCwgaW5jbHVkaW5nIHRoZSB0 ZXJtaW5hdGluZwogIAkgJ1wwJyBpZiB3ZSByZWFjaGVkIHRoZSBlbmQuICB2YWxfcHJpbnRfc3Ry aW5nIHRha2VzIGNhcmUgaW5jbHVkaW5nCiAgCSB0aGUgdGVybWluYXRpbmcgJ1wwJyBpZiBuZWNl c3NhcnkuICAqLwpAQCAtNjAyNSw3ICs2MDI1LDcgQEAgaW5kZXggZDJlZmE1Yi4uZDk4YjNhNCAx MDA2NDQKICAgICAgICByZXR1cm4gaTsKICAKICAgICAgICBicmVhazsKLUBAIC01NjcsNiArNTkz LDcgQEAgcGFzY2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLAorQEAgLTU2Nyw2ICs1OTMsNyBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uCiAgCSAgICAgVFlQRV9DT0RFICh0eXBlKSk7CiAgICAgIH0KICAgIGdk Yl9mbHVzaCAoc3RyZWFtKTsKQEAgLTYwMzMsMTEgKzYwMzMsMTEgQEAgaW5kZXggZDJlZmE1Yi4u ZDk4YjNhNCAxMDA2NDQKICAgIHJldHVybiAoMCk7CiAgfQogIAwKLWRpZmYgLS1naXQgYS9nZGIv cGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRleCA0ODE1ODU0Li44MWYzZjBjIDEwMDY0NAotLS0t IGEvZ2RiL3BhcnNlLmMKLSsrKyBiL2dkYi9wYXJzZS5jCi1AQCAtMTUwMiw2ICsxNTAyLDcgQEAg cGFyc2VyX2ZwcmludGYgKEZJTEUgKngsIGNvbnN0IGNoYXIgKnksIC4uLikKK0luZGV4OiBnZGIt Ny4yLjkwLjIwMTEwNDI5L2dkYi9wYXJzZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4y MDExMDQyOS5vcmlnL2dkYi9wYXJzZS5jCTIwMTEtMDMtMjggMjI6MjE6MDMuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcGFyc2UuYwkyMDExLTA0LTI5IDA5OjQw OjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTE1MDIsNiArMTUwMiw3IEBAIHBhcnNlcl9mcHJpbnRm IChGSUxFICp4LCBjb25zdCBjaGFyICp5LCAKICAKICBpbnQKICBvcGVyYXRvcl9jaGVja19zdGFu ZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKQEAgLTYwNDUsNyArNjA0NSw3 IEBAIGluZGV4IDQ4MTU4NTQuLjgxZjNmMGMgMTAwNjQ0CiAgCQkJIGludCAoKm9iamZpbGVfZnVu YykgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAkJCQkJICAgICAgdm9pZCAqZGF0YSksCiAg CQkJIHZvaWQgKmRhdGEpCi1AQCAtMTU0Myw3ICsxNTQ0LDcgQEAgb3BlcmF0b3JfY2hlY2tfc3Rh bmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwb3MsCitAQCAtMTU0Myw3ICsxNTQ0 LDcgQEAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaQogIAkgICAgc3Ry dWN0IHR5cGUgKnR5cGUgPSBlbHRzW3BvcyArIDIgKyBhcmddLnR5cGU7CiAgCSAgICBzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSA9IFRZUEVfT0JKRklMRSAodHlwZSk7CiAgCkBAIC02MDU0LDcgKzYw NTQsNyBAQCBpbmRleCA0ODE1ODU0Li44MWYzZjBjIDEwMDY0NAogIAkgICAgICByZXR1cm4gMTsK ICAJICB9CiAgICAgICAgfQotQEAgLTE1NjEsNyArMTU2Miw4IEBAIG9wZXJhdG9yX2NoZWNrX3N0 YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE1NjEsNyArMTU2 Miw4IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2kKICAKICAJLyog Q2hlY2sgb2JqZmlsZSB3aGVyZSB0aGUgdmFyaWFibGUgaXRzZWxmIGlzIHBsYWNlZC4KICAJICAg U1lNQk9MX09CSl9TRUNUSU9OIChzeW1ib2wpIG1heSBiZSBOVUxMLiAgKi8KQEAgLTYwNjQsNyAr NjA2NCw3IEBAIGluZGV4IDQ4MTU4NTQuLjgxZjNmMGMgMTAwNjQ0CiAgCSAgcmV0dXJuIDE7CiAg CiAgCS8qIENoZWNrIG9iamZpbGUgd2hlcmUgaXMgcGxhY2VkIHRoZSBjb2RlIHRvdWNoaW5nIHRo ZSB2YXJpYWJsZS4gICovCi1AQCAtMTU3NCwyNCArMTU3NiwyNyBAQCBvcGVyYXRvcl9jaGVja19z dGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKK0BAIC0xNTc0LDI0ICsx NTc2LDI3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2kKICAKICAg IC8qIEludm9rZSBjYWxsYmFja3MgZm9yIFRZUEUgYW5kIE9CSkZJTEUgaWYgdGhleSB3ZXJlIHNl dCBhcyBub24tTlVMTC4gICovCiAgCkBAIC02MTExLDcgKzYxMTEsNyBAQCBpbmRleCA0ODE1ODU0 Li44MWYzZjBjIDEwMDY0NAogIAlyZXR1cm4gMTsKICAKICAgICAgICBlbmRwb3MgPSBwb3M7Ci1A QCAtMTYzNyw4ICsxNjQ0LDI5IEBAIGV4cF91c2VzX29iamZpbGUgKHN0cnVjdCBleHByZXNzaW9u ICpleHAsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTE2MzcsOCArMTY0NCwyOSBAQCBl eHBfdXNlc19vYmpmaWxlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCiAgewogICAgZ2RiX2Fzc2Vy dCAob2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKTsKICAK QEAgLTYxNDIsMTEgKzYxNDIsMTEgQEAgaW5kZXggNDgxNTg1NC4uODFmM2YwYyAxMDA2NDQKICAK ICB2b2lkCiAgX2luaXRpYWxpemVfcGFyc2UgKHZvaWQpCi1kaWZmIC0tZ2l0IGEvZ2RiL3BhcnNl ci1kZWZzLmggYi9nZGIvcGFyc2VyLWRlZnMuaAotaW5kZXggM2Y3NDNkMS4uM2I5NDJjNCAxMDA2 NDQKLS0tLSBhL2dkYi9wYXJzZXItZGVmcy5oCi0rKysgYi9nZGIvcGFyc2VyLWRlZnMuaAotQEAg LTE5NCw2ICsxOTQsOCBAQCBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNv bnN0IHN0cnVjdCBleHByZXNzaW9uICosIGludCwgaW50ICosCitJbmRleDogZ2RiLTcuMi45MC4y MDExMDQyOS9nZGIvcGFyc2VyLWRlZnMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAx MTA0Mjkub3JpZy9nZGIvcGFyc2VyLWRlZnMuaAkyMDExLTAxLTEwIDIxOjM4OjQ5LjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3BhcnNlci1kZWZzLmgJMjAxMS0w NC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xOTQsNiArMTk0LDggQEAgZXh0ZXJu IHZvaWQgb3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkIChjbwogIAkJCQkgICAgICBpbnQgKik7CiAg CiAgZXh0ZXJuIGludCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgaW50IHBvcywKQEAgLTYxNjMsNyArNjE2Myw3IEBAIGluZGV4IDNmNzQzZDEuLjNiOTQy YzQgMTAwNjQ0CiAgCQkJICAgaW50ICgqb2JqZmlsZV9mdW5jKSAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUsCiAgCQkJCQkJdm9pZCAqZGF0YSksCiAgCQkJICAgdm9pZCAqZGF0YSk7Ci1AQCAtMzI5 LDQgKzMzMiwxMCBAQCBleHRlcm4gdm9pZCBwYXJzZXJfZnByaW50ZiAoRklMRSAqLCBjb25zdCBj aGFyICosIC4uLikgQVRUUklCVVRFX1BSSU5URiAoMiwgMyk7CitAQCAtMzI5LDQgKzMzMiwxMCBA QCBleHRlcm4gdm9pZCBwYXJzZXJfZnByaW50ZiAoRklMRSAqLCBjb25zCiAgCiAgZXh0ZXJuIGlu dCBleHBfdXNlc19vYmpmaWxlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSk7CiAgCkBAIC02MTc0LDExICs2MTc0LDExIEBAIGluZGV4IDNmNzQzZDEuLjNi OTQyYzQgMTAwNjQ0CiArI2VuZGlmCiArCiAgI2VuZGlmIC8qIFBBUlNFUl9ERUZTX0ggKi8KLWRp ZmYgLS1naXQgYS9nZGIvcHBjLWxpbnV4LW5hdC5jIGIvZ2RiL3BwYy1saW51eC1uYXQuYwotaW5k ZXggZjBjN2Y2MS4uNTRjYWNiYiAxMDA2NDQKLS0tLSBhL2dkYi9wcGMtbGludXgtbmF0LmMKLSsr KyBiL2dkYi9wcGMtbGludXgtbmF0LmMKLUBAIC0xNjM3LDYgKzE2MzcsMTQgQEAgYm9va2VfcmVt b3ZlX3BvaW50IChzdHJ1Y3QgcHBjX2h3X2JyZWFrcG9pbnQgKmIsIGludCB0aWQpCitJbmRleDog Z2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcHBjLWxpbnV4LW5hdC5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxMS0wNC0xOCAy MzoyOToxOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9wcGMt bGludXgtbmF0LmMJMjAxMS0wNC0yOSAwOTo0MTowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xNjM3 LDYgKzE2MzcsMTQgQEAgYm9va2VfcmVtb3ZlX3BvaW50IChzdHJ1Y3QgcHBjX2h3X2JyZWFrcAog ICAgaHdfYnJlYWtzW2ldLmh3X2JyZWFrID0gTlVMTDsKICB9CiAgCkBAIC02MjAyLDcgKzYyMDIs NyBAQCBpbmRleCBmMGM3ZjYxLi41NGNhY2JiIDEwMDY0NAogICAgc3RydWN0IHBwY19od19icmVh a3BvaW50IHA7CiAgCiAgICBpZiAoIWhhdmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBA IC0xNjgxLDE4ICsxNjg3LDIzIEBAIHBwY19saW51eF9pbnNlcnRfaHdfYnJlYWtwb2ludCAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTY4MSwxOCArMTY4NywyMyBAQCBwcGNfbGludXhf aW5zZXJ0X2h3X2JyZWFrcG9pbnQgKHN0cnVjdCBnCiAgICAgICAgcC5hZGRyMiA9IDA7CiAgICAg IH0KICAKQEAgLTYyMzAsNyArNjIzMCw3IEBAIGluZGV4IGYwYzdmNjEuLjU0Y2FjYmIgMTAwNjQ0 CiAgICBzdHJ1Y3QgcHBjX2h3X2JyZWFrcG9pbnQgcDsKICAKICAgIGlmICghaGF2ZV9wdHJhY2Vf Ym9va2VfaW50ZXJmYWNlICgpKQotQEAgLTE3MTgsOCArMTcyOSw3IEBAIHBwY19saW51eF9yZW1v dmVfaHdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTcxOCw4ICsx NzI5LDcgQEAgcHBjX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50IChzdHJ1Y3QgZwogICAgICAg IHAuYWRkcjIgPSAwOwogICAgICB9CiAgCkBAIC02MjQwLDggKzYyNDAsOCBAQCBpbmRleCBmMGM3 ZjYxLi41NGNhY2JiIDEwMDY0NAogIAogICAgcmV0dXJuIDA7CiAgfQotQEAgLTE5MzMsNiArMTk0 MywxNSBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChDT1JFX0FE RFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAotIAkgICYmIGNoZWNrX2NvbmRpdGlvbiAoYWRkciwg Y29uZCwgJmRhdGFfdmFsdWUpKTsKK0BAIC0xOTQ2LDYgKzE5NTYsMTUgQEAgcHBjX2xpbnV4X2Nh bl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbgorIAkgICYmIGNoZWNrX2NvbmRpdGlvbiAoYWRk ciwgY29uZCwgJmRhdGFfdmFsdWUsICZsZW4pKTsKICB9CiAgCiArc3RhdGljIHZvaWQKQEAgLTYy NTYsNyArNjI1Niw3IEBAIGluZGV4IGYwYzdmNjEuLjU0Y2FjYmIgMTAwNjQ0CiAgLyogU2V0IHVw IFAgd2l0aCB0aGUgcGFyYW1ldGVycyBuZWNlc3NhcnkgdG8gcmVxdWVzdCBhIHdhdGNocG9pbnQg Y292ZXJpbmcKICAgICBMRU4gYnl0ZXMgc3RhcnRpbmcgYXQgQUREUiBhbmQgaWYgcG9zc2libGUg d2l0aCBjb25kaXRpb24gZXhwcmVzc2lvbiBDT05ECiAgICAgZXZhbHVhdGVkIGJ5IGhhcmR3YXJl LiAgSU5TRVJUIHRlbGxzIGlmIHdlIGFyZSBjcmVhdGluZyBhIHJlcXVlc3QgZm9yCi1AQCAtMTk4 Niw4ICsyMDA1LDYgQEAgc3RhdGljIGludAorQEAgLTIwMDAsOCArMjAxOSw2IEBAIHN0YXRpYyBp bnQKICBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVu LCBpbnQgcncsCiAgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKICB7CkBAIC02MjY1 LDcgKzYyNjUsNyBAQCBpbmRleCBmMGM3ZjYxLi41NGNhY2JiIDEwMDY0NAogICAgaW50IHJldCA9 IC0xOwogIAogICAgaWYgKGhhdmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBAIC0xOTk2 LDggKzIwMTMsNyBAQCBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRy LCBpbnQgbGVuLCBpbnQgcncsCitAQCAtMjAxMCw4ICsyMDI3LDcgQEAgcHBjX2xpbnV4X2luc2Vy dF93YXRjaHBvaW50IChDT1JFX0FERFIgYQogIAogICAgICAgIGNyZWF0ZV93YXRjaHBvaW50X3Jl cXVlc3QgKCZwLCBhZGRyLCBsZW4sIHJ3LCBjb25kLCAxKTsKICAKQEAgLTYyNzUsNyArNjI3NSw3 IEBAIGluZGV4IGYwYzdmNjEuLjU0Y2FjYmIgMTAwNjQ0CiAgCiAgICAgICAgcmV0ID0gMDsKICAg ICAgfQotQEAgLTIwNDAsMTIgKzIwNTYsOCBAQCBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQg KENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgcncsCitAQCAtMjA1NCwxMiArMjA3MCw4IEBA IHBwY19saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGEKICAKICAgICAgICBzYXZl ZF9kYWJyX3ZhbHVlID0gZGFicl92YWx1ZTsKICAKQEAgLTYyODksNyArNjI4OSw3IEBAIGluZGV4 IGYwYzdmNjEuLjU0Y2FjYmIgMTAwNjQ0CiAgICAgIH0KICAKICAgIHJldHVybiByZXQ7Ci1AQCAt MjA1NSw4ICsyMDY3LDYgQEAgc3RhdGljIGludAorQEAgLTIwNjksOCArMjA4MSw2IEBAIHN0YXRp YyBpbnQKICBwcGNfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQg bGVuLCBpbnQgcncsCiAgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKICB7CkBAIC02 Mjk4LDcgKzYyOTgsNyBAQCBpbmRleCBmMGM3ZjYxLi41NGNhY2JiIDEwMDY0NAogICAgaW50IHJl dCA9IC0xOwogIAogICAgaWYgKGhhdmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBAIC0y MDY1LDIwICsyMDc1LDE2IEBAIHBwY19saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERS IGFkZHIsIGludCBsZW4sIGludCBydywKK0BAIC0yMDc5LDIwICsyMDg5LDE2IEBAIHBwY19saW51 eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGEKICAKICAgICAgICBjcmVhdGVfd2F0Y2hw b2ludF9yZXF1ZXN0ICgmcCwgYWRkciwgbGVuLCBydywgY29uZCwgMCk7CiAgCkBAIC02MzIxLDEx ICs2MzIxLDExIEBAIGluZGV4IGYwYzdmNjEuLjU0Y2FjYmIgMTAwNjQ0CiAgICAgIH0KICAKICAg IHJldHVybiByZXQ7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQu YwotaW5kZXggZjFlYmI3ZS4uZTk3ZDdmMSAxMDA2NDQKLS0tLSBhL2dkYi9wcmludGNtZC5jCi0r KysgYi9nZGIvcHJpbnRjbWQuYwotQEAgLTk3NSw2ICs5NzUsMTEgQEAgcHJpbnRfY29tbWFuZF8x IChjaGFyICpleHAsIGludCBpbnNwZWN0LCBpbnQgdm9pZHByaW50KQorSW5kZXg6IGdkYi03LjIu OTAuMjAxMTA0MjkvZ2RiL3ByaW50Y21kLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIw MTEwNDI5Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxMS0wMy0yMiAxNTozOTo0MC4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9wcmludGNtZC5jCTIwMTEtMDQtMjkg MDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCitAQCAtOTc1LDYgKzk3NSwxMSBAQCBwcmludF9jb21t YW5kXzEgKGNoYXIgKmV4cCwgaW50IGluc3BlY3QsCiAgICBlbHNlCiAgICAgIHZhbCA9IGFjY2Vz c192YWx1ZV9oaXN0b3J5ICgwKTsKICAKQEAgLTYzNjIsNyArNjM2Miw3IEBAIGluZGV4IGYxZWJi N2UuLmU5N2Q3ZjEgMTAwNjQ0CiAgDAogIAogIC8qIEFkZCBhbiBleHByZXNzaW9uIHRvIHRoZSBh dXRvLWRpc3BsYXkgY2hhaW4uCi1AQCAtMjg3MCw0ICsyODkzLDggQEAgU2hvdyBwcmludGluZyBv ZiBzb3VyY2UgZmlsZW5hbWUgYW5kIGxpbmUgbnVtYmVyIHdpdGggPHN5bWJvbD4uIiksIE5VTEws CitAQCAtMjg3MCw0ICsyODkzLDggQEAgU2hvdyBwcmludGluZyBvZiBzb3VyY2UgZmlsZW5hbWUg YW5kIGxpbgogICAgYWRkX2NvbSAoImV2YWwiLCBub19jbGFzcywgZXZhbF9jb21tYW5kLCBfKCJc CiAgQ29udmVydCBcInByaW50ZiBmb3JtYXQgc3RyaW5nXCIsIGFyZzEsIGFyZzIsIGFyZzMsIC4u LiwgYXJnbiB0b1xuXAogIGEgY29tbWFuZCBsaW5lLCBhbmQgY2FsbCBpdC4iKSk7CkBAIC02Mzcx LDExICs2MzcxLDEwIEBAIGluZGV4IGYxZWJiN2UuLmU5N2Q3ZjEgMTAwNjQ0CiArICBvYnNlcnZl cl9hdHRhY2hfbWFya191c2VkIChwcmludF90eXBlc19tYXJrX3VzZWQpOwogKyNlbmRpZgogIH0K LWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVJdGVyYXRvci5weSBiL2dkYi9w eXRob24vbGliL2dkYi9GcmFtZUl0ZXJhdG9yLnB5Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uNTY1NDU0NgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3B5dGhvbi9saWIv Z2RiL0ZyYW1lSXRlcmF0b3IucHkKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9weXRo b24vbGliL2dkYi9GcmFtZUl0ZXJhdG9yLnB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVJdGVyYXRvci5weQkyMDExLTA0LTI5IDA5OjQwOjQ2 LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwzMyBAQAogKyMgSXRlcmF0b3Igb3ZlciBmcmFt ZXMuCiArCkBAIC02NDEwLDExICs2NDA5LDEwIEBAIGluZGV4IDAwMDAwMDAuLjU2NTQ1NDYKICsg ICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCiArICAgICAgICBzZWxmLmZyYW1lID0gcmVz dWx0Lm9sZGVyICgpCiArICAgICAgICByZXR1cm4gcmVzdWx0Ci1kaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weSBiL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdy YXBwZXIucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iNzkwYTU0Ci0t LS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CitJ bmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVy LnB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcHl0aG9uL2xpYi9nZGIvRnJh bWVXcmFwcGVyLnB5CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCww ICsxLDExMiBAQAogKyMgV3JhcHBlciBBUEkgZm9yIGZyYW1lcy4KICsKQEAgLTY1MjgsMTEgKzY1 MjYsMTAgQEAgaW5kZXggMDAwMDAwMC4uYjc5MGE1NAogKwogKyAgICBkZWYgX19nZXRhdHRyX18g KHNlbGYsIG5hbWUpOgogKyAgICAgICAgcmV0dXJuIGdldGF0dHIgKHNlbGYuZnJhbWUsIG5hbWUp Ci1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weSBiL2dkYi9weXRo b24vbGliL2dkYi9iYWNrdHJhY2UucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwLi42YmI0ZmIxCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvYmFj a3RyYWNlLnB5CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcHl0aG9uL2xpYi9nZGIv YmFja3RyYWNlLnB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcHl0aG9uL2xp Yi9nZGIvYmFja3RyYWNlLnB5CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBA QCAtMCwwICsxLDQyIEBACiArIyBGaWx0ZXJpbmcgYmFja3RyYWNlLgogKwpAQCAtNjU3NiwxMSAr NjU3MywxMCBAQCBpbmRleCAwMDAwMDAwLi42YmI0ZmIxCiArICAgICAgICByZXR1cm4gaXRlcgog KyAgICByZXR1cm4gZnJhbWVfZmlsdGVyIChpdGVyKQogKwotZGlmZiAtLWdpdCBhL2dkYi9weXRo b24vbGliL2dkYi9jb21tYW5kL2FsaWFzLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQv YWxpYXMucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi45NmI2NjE4Ci0t LS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9hbGlhcy5weQor SW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYWxp YXMucHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9weXRob24vbGliL2dkYi9j b21tYW5kL2FsaWFzLnB5CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAt MCwwICsxLDU5IEBACiArIyBBbGlhcyBjb21tYW5kLgogKwpAQCAtNjY0MSwxMSArNjYzNywxMCBA QCBpbmRleCAwMDAwMDAwLi45NmI2NjE4CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi VGhpcyBjb21tYW5kIGlzIGFuIGFsaWFzIGZvciAnJXMnLiIgJSB0YXJnZXQpCiArCiArQWxpYXND b21tYW5kKCkKLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJh Y2UucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5lZWVhOTA5Ci0tLS0gL2Rldi9udWxsCi0rKysg Yi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGItNy4y LjkwLjIwMTEwNDI5L2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2JhY2t0cmFjZS5weQorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFj a3RyYWNlLnB5CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsx LDEwNiBAQAogKyMgTmV3IGJhY2t0cmFjZSBjb21tYW5kLgogKwpAQCAtNjc1MywxMSArNjc0OCwx MCBAQCBpbmRleCAwMDAwMDAwLi5lZWVhOTA5CiArICAgICAgICAgICAgcGFpclsxXS5kZXNjcmli ZSAoc3lzLnN0ZG91dCwgZnVsbCkKICsKICtGaWx0ZXJpbmdCYWNrdHJhY2UoKQotZGlmZiAtLWdp dCBhL2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2lnbm9yZV9lcnJvcnMucHkgYi9nZGIvcHl0 aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5Ci1uZXcgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggMDAwMDAwMC4uNmZhNDhmZgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3B5dGhv bi9saWIvZ2RiL2NvbW1hbmQvaWdub3JlX2Vycm9ycy5weQorSW5kZXg6IGdkYi03LjIuOTAuMjAx MTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvaWdub3JlX2Vycm9ycy5weQorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAor KysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvaWdub3Jl X2Vycm9ycy5weQkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCAr MSwzNyBAQAogKyMgSWdub3JlIGVycm9ycyBpbiB1c2VyIGNvbW1hbmRzLgogKwpAQCAtNjc5Niwx MSArNjc5MCwxMCBAQCBpbmRleCAwMDAwMDAwLi42ZmE0OGZmCiArICAgICAgICAgICAgcGFzcwog KwogK0lnbm9yZUVycm9yc0NvbW1hbmQgKCkKLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9n ZGIvY29tbWFuZC9wYWhvbGUucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9wYWhvbGUu cHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4yMWEwYmYwCi0tLS0gL2Rl di9udWxsCi0rKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9wYWhvbGUucHkKK0luZGV4 OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL3BhaG9sZS5w eQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1h bmQvcGFob2xlLnB5CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCww ICsxLDc1IEBACiArIyBwYWhvbGUgY29tbWFuZCBmb3IgZ2RiCiArCkBAIC02ODc3LDExICs2ODcw LDEwIEBAIGluZGV4IDAwMDAwMDAuLjIxYTBiZjAKICsgICAgICAgIHNlbGYucGFob2xlICh0eXBl LCAwLCAnJykKICsKICtQYWhvbGUoKQotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vbGliL2dkYi9j b21tYW5kL3JlcXVpcmUucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9yZXF1aXJlLnB5 Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMWZiYzFlOAotLS0tIC9kZXYv bnVsbAotKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcmVxdWlyZS5weQorSW5kZXg6 IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcmVxdWlyZS5w eQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1h bmQvcmVxdWlyZS5weQkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAs MCArMSw1NyBAQAogKyMgRGVtYW5kLWxvYWRpbmcgY29tbWFuZHMuCiArCkBAIC02OTQwLDExICs2 OTMyLDEwIEBAIGluZGV4IDAwMDAwMDAuLjFmYmMxZTgKICtSZXF1aXJlQ29tbWFuZCgpCiArUmVx dWlyZVN1YmNvbW1hbmQoImNvbW1hbmQiKQogK1JlcXVpcmVTdWJjb21tYW5kKCJmdW5jdGlvbiIp Ci1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvdXB0by5weSBiL2dkYi9w eXRob24vbGliL2dkYi9jb21tYW5kL3VwdG8ucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi5mYWY1NGVkCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL2xpYi9n ZGIvY29tbWFuZC91cHRvLnB5CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC91cHRvLnB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9n ZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC91cHRvLnB5CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAw MDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDEyOSBAQAogKyMgdXB0byBjb21tYW5kLgogKwpAQCAt NzA3NSwxOCArNzA2NiwxNiBAQCBpbmRleCAwMDAwMDAwLi5mYWY1NGVkCiArVXB0b1NvdXJjZUNv bW1hbmQgKCkKICtVcHRvT2JqZWN0Q29tbWFuZCAoKQogK1VwdG9XaGVyZUNvbW1hbmQgKCkKLWRp ZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vX19pbml0X18ucHkgYi9nZGIv cHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vX19pbml0X18ucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9u L2xpYi9nZGIvZnVuY3Rpb24vX19pbml0X18ucHkKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi9weXRob24vbGliL2dkYi9mdW5jdGlvbi9fX2luaXRfXy5weQorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03 LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5CTIw MTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxIEBACiArCi1kaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBiL2dkYi9w eXRob24vbGliL2dkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwLi4yYjljNWM3Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9u L2xpYi9nZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5Cis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2Ri LTcuMi45MC4yMDExMDQyOS9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5 CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDU4IEBACiAr IyBDYWxsZXItaXMgZnVuY3Rpb25zLgogKwpAQCAtNzE0NiwxMSArNzEzNSwxMCBAQCBpbmRleCAw MDAwMDAwLi4yYjljNWM3CiArCiArQ2FsbGVySXMoKQogK0NhbGxlck1hdGNoZXMoKQotZGlmZiAt LWdpdCBhL2dkYi9weXRob24vbGliL2dkYi9mdW5jdGlvbi9pbl9zY29wZS5weSBiL2dkYi9weXRo b24vbGliL2dkYi9mdW5jdGlvbi9pbl9zY29wZS5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IDAwMDAwMDAuLmRlYmIzYmIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vbGli L2dkYi9mdW5jdGlvbi9pbl9zY29wZS5weQorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2Ri L3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2luX3Njb3BlLnB5Cis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vaW5fc2NvcGUucHkJMjAxMS0w NC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsNDcgQEAKICsjIEluLXNj b3BlIGZ1bmN0aW9uLgogKwpAQCAtNzE5OSwxMCArNzE4NywxMCBAQCBpbmRleCAwMDAwMDAwLi5k ZWJiM2JiCiArCXJldHVybiB3YW50ZWQgPT0gZm91bmQKICsKICtJblNjb3BlICgpCi1kaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9weS10eXBlLmMgYi9nZGIvcHl0aG9uL3B5LXR5cGUuYwotaW5kZXgg YzAxMDQyMC4uM2Y0YTI2MSAxMDA2NDQKLS0tLSBhL2dkYi9weXRob24vcHktdHlwZS5jCi0rKysg Yi9nZGIvcHl0aG9uL3B5LXR5cGUuYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5 dGhvbi9weS10eXBlLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcv Z2RiL3B5dGhvbi9weS10eXBlLmMJMjAxMS0wMS0yNiAyMTo1Mzo0NS4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9weXRob24vcHktdHlwZS5jCTIwMTEtMDQtMjkg MDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMjksNiArMjksOCBAQAogICNpbmNsdWRlICJs YW5ndWFnZS5oIgogICNpbmNsdWRlICJ2ZWMuaCIKQEAgLTcyMzMsNyArNzIyMSw3IEBAIGluZGV4 IGMwMTA0MjAuLjNmNGEyNjEgMTAwNjQ0CiAgc3RhdGljIFB5VHlwZU9iamVjdCB0eXBlX29iamVj dF90eXBlOwogIAogIC8qIEEgRmllbGQgb2JqZWN0LiAgKi8KLUBAIC05MTksOCArOTI5LDYzIEBA IHR5cHlfcmljaGNvbXBhcmUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIsIGludCBv cCkKK0BAIC05MTksOCArOTI5LDYzIEBAIHR5cHlfcmljaGNvbXBhcmUgKFB5T2JqZWN0ICpzZWxm LCBQeU9iamUKICAKICAMCiAgCkBAIC03Mjk3LDcgKzcyODUsNyBAQCBpbmRleCBjMDEwNDIwLi4z ZjRhMjYxIDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgc2F2ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0dW0pCiAgewotQEAgLTkzOCwxMiArMTAwMywxMyBA QCBzYXZlX29iamZpbGVfdHlwZXMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lkICpkYXR1 bSkKK0BAIC05MzgsMTIgKzEwMDMsMTMgQEAgc2F2ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZgogICAgICB7CiAgICAgICAgdHlwZV9vYmplY3QgKm5leHQgPSBvYmotPm5leHQ7 CiAgCkBAIC03MzE1LDcgKzczMDMsNyBAQCBpbmRleCBjMDEwNDIwLi4zZjRhMjYxIDEwMDY0NAog IAogICAgICAgIG9iaiA9IG5leHQ7CiAgICAgIH0KLUBAIC05NTQsNDMgKzEwMjAsMjggQEAgc2F2 ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0dW0pCitA QCAtOTU0LDQzICsxMDIwLDI4IEBAIHNhdmVfb2JqZmlsZV90eXBlcyAoc3RydWN0IG9iamZpbGUg Km9iamYKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTczMjcsOCArNzMxNSw3IEBAIGluZGV4IGMw MTA0MjAuLjNmNGEyNjEgMTAwNjQ0CiAtICBpZiAodHlwZSAmJiBUWVBFX09CSkZJTEUgKHR5cGUp KQogLSAgICB7CiAtICAgICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBUWVBFX09CSkZJTEUg KHR5cGUpOwotKyAgdHlwZV9vYmplY3QgKnR5cGVfb2JqID0gKHR5cGVfb2JqZWN0ICopIG9iajsK LSAKKy0KIC0gICAgICBvYmotPm5leHQgPSBvYmpmaWxlX2RhdGEgKG9iamZpbGUsIHR5cHlfb2Jq ZmlsZV9kYXRhX2tleSk7CiAtICAgICAgaWYgKG9iai0+bmV4dCkKIC0Jb2JqLT5uZXh0LT5wcmV2 ID0gb2JqOwpAQCAtNzMzNiw2ICs3MzIzLDggQEAgaW5kZXggYzAxMDQyMC4uM2Y0YTI2MSAxMDA2 NDQKIC0gICAgfQogLSAgZWxzZQogLSAgICBvYmotPm5leHQgPSBOVUxMOworKyAgdHlwZV9vYmpl Y3QgKnR5cGVfb2JqID0gKHR5cGVfb2JqZWN0ICopIG9iajsKKysKICsgIHR5cHlfdW5saW5rICh0 eXBlX29iaik7CiArCiArICB0eXBlX29iai0+b2JfdHlwZS0+dHBfZnJlZSAob2JqKTsKQEAgLTcz OTYsMTAgKzczODUsMTAgQEAgaW5kZXggYzAxMDQyMC4uM2Y0YTI2MSAxMDA2NDQKICB9CiAgCiAg DAotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktdmFsdWUuYyBiL2dkYi9weXRob24vcHktdmFs dWUuYwotaW5kZXggNDM4MWQ1Mi4uNWRmZjNlMiAxMDA2NDQKLS0tLSBhL2dkYi9weXRob24vcHkt dmFsdWUuYwotKysrIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCitJbmRleDogZ2RiLTcuMi45MC4y MDExMDQyOS9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkw LjIwMTEwNDI5Lm9yaWcvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCTIwMTEtMDMtMTggMTc6MDk6NTcu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvcHl0aG9uL3B5LXZh bHVlLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0yOCw2ICsyOCw3 IEBACiAgI2luY2x1ZGUgImluZmNhbGwuaCIKICAjaW5jbHVkZSAiZXhwcmVzc2lvbi5oIgpAQCAt NzQzOSwxMCArNzQyOCwxMCBAQCBpbmRleCA0MzgxZDUyLi41ZGZmM2UyIDEwMDY0NAogIH0KICAK ICAMCi1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9u LmMKLWluZGV4IDkwZDVkYzguLmVjNDgyM2UgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5dGhv bi5jCi0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvcHl0aG9uL3B5dGhvbi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQy OS5vcmlnL2dkYi9weXRob24vcHl0aG9uLmMJMjAxMS0wMy0xOCAwOTo0NDo0Ny4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9weXRob24vcHl0aG9uLmMJMjAxMS0w NC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC00OSw4ICs0OSwxMSBAQCBzdGF0aWMg aW50IGdkYnB5X3Nob3VsZF9wcmludF9zdGFjayA9IDE7CiAgI2luY2x1ZGUgImxpbmVzcGVjLmgi CiAgI2luY2x1ZGUgInNvdXJjZS5oIgpAQCAtNzUxOCwxMSArNzUwNywxMSBAQCBpbmRleCA5MGQ1 ZGM4Li5lYzQ4MjNlIDEwMDY0NAogICAgeyAicGFyYW1ldGVyIiwgZ2RicHlfcGFyYW1ldGVyLCBN RVRIX1ZBUkFSR1MsCiAgICAgICJSZXR1cm4gYSBnZGIgcGFyYW1ldGVyJ3MgdmFsdWUiIH0sCiAg Ci1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uaCBiL2dkYi9weXRob24vcHl0aG9uLmgK LWluZGV4IGNlMGViMzUuLjE0NTcyZjQgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5o Ci0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5oCi1AQCAtMzIsNiArMzIsOCBAQCB2b2lkIGV2YWxf cHl0aG9uX2Zyb21fY29udHJvbF9jb21tYW5kIChzdHJ1Y3QgY29tbWFuZF9saW5lICopOworSW5k ZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3B5dGhvbi9weXRob24uaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi5oCTIwMTEtMDMt MTQgMTc6MDk6NTQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIv cHl0aG9uL3B5dGhvbi5oCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCitAQCAt MzIsNiArMzIsOCBAQCB2b2lkIGV2YWxfcHl0aG9uX2Zyb21fY29udHJvbF9jb21tYW5kIChzCiAg CiAgdm9pZCBzb3VyY2VfcHl0aG9uX3NjcmlwdCAoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpm aWxlKTsKICAKQEAgLTc1MzEsMTEgKzc1MjAsMTEgQEAgaW5kZXggY2UwZWIzNS4uMTQ1NzJmNCAx MDA2NDQKICBpbnQgYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCiAgCQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCi1kaWZmIC0tZ2l0IGEvZ2RiL3NvbXJlYWQuYyBiL2dkYi9zb21yZWFkLmMKLWlu ZGV4IDcwODMxYTAuLmJhZjY4ZWEgMTAwNjQ0Ci0tLS0gYS9nZGIvc29tcmVhZC5jCi0rKysgYi9n ZGIvc29tcmVhZC5jCi1AQCAtNDM5LDYgKzQzOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lt X2ZucyBzb21fc3ltX2ZucyA9CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvc29tcmVh ZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9zb21yZWFk LmMJMjAxMS0wMy0wNyAxNzoxNzoyOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIw MTEwNDI5L2dkYi9zb21yZWFkLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAK K0BAIC00MzksNiArNDM5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzeW1fZm5zIHNvbV9zeW1f Zm5zIAogICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBHZXQgc2VnbWVudCBpbmZvcm1h dGlvbiBmcm9tIGEgZmlsZS4gICovCiAgICBOVUxMLAogICAgZGVmYXVsdF9zeW1maWxlX3JlbG9j YXRlLAkvKiBSZWxvY2F0ZSBhIGRlYnVnIHNlY3Rpb24uICAqLwpAQCAtNzU0MywxMSArNzUzMiwx MSBAQCBpbmRleCA3MDgzMWEwLi5iYWY2OGVhIDEwMDY0NAogICAgJnBzeW1fZnVuY3Rpb25zCiAg fTsKICAKLWRpZmYgLS1naXQgYS9nZGIvc3RhY2suYyBiL2dkYi9zdGFjay5jCi1pbmRleCAwODg4 YjY5Li5jM2VmZDViIDEwMDY0NAotLS0tIGEvZ2RiL3N0YWNrLmMKLSsrKyBiL2dkYi9zdGFjay5j Ci1AQCAtMzY2LDYgKzM2Niw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1 bmMsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi9zdGFjay5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dk Yi9zdGFjay5jCTIwMTEtMDMtMTggMTk6NDg6NTYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvc3RhY2suYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCAr MDIwMAorQEAgLTM2Niw2ICszNjYsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9s ICpmdW5jLCBzCiAgCSAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBs YW5ndWFnZV9kZWZuICpsYW5ndWFnZTsKICAJCSAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg b3B0czsKQEAgLTc1NTUsNyArNzU0NCw3IEBAIGluZGV4IDA4ODhiNjkuLmMzZWZkNWIgMTAwNjQ0 CiAgCiAgICAgICAgICAgICAgICAgICAgLyogVXNlIHRoZSBhcHByb3ByaWF0ZSBsYW5ndWFnZSB0 byBkaXNwbGF5IG91ciBzeW1ib2wsCiAgICAgICAgICAgICAgICAgICAgICAgdW5sZXNzIHRoZSB1 c2VyIGZvcmNlZCB0aGUgbGFuZ3VhZ2UgdG8gYSBzcGVjaWZpYwotQEAgLTM3OCw3ICszNzksMTMg QEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgc3RydWN0IGZyYW1lX2lu Zm8gKmZyYW1lLAorQEAgLTM3OCw3ICszNzksMTMgQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0 IHN5bWJvbCAqZnVuYywgcwogIAkJICBnZXRfcmF3X3ByaW50X29wdGlvbnMgKCZvcHRzKTsKICAJ CSAgb3B0cy5kZXJlZl9yZWYgPSAwOwogIAkJICBvcHRzLnN1bW1hcnkgPSBzdW1tYXJ5OwpAQCAt NzU2OSwxMSArNzU1OCwxMCBAQCBpbmRleCAwODg4YjY5Li5jM2VmZDViIDEwMDY0NAogIAkJICB1 aV9vdXRfZmllbGRfc3RyZWFtICh1aW91dCwgInZhbHVlIiwgc3RiKTsKICAJICAgICAgICB9CiAg CSAgICAgIGVsc2UKLWRpZmYgLS1naXQgYS9nZGIvc3RhcC1wcm9iZS5jIGIvZ2RiL3N0YXAtcHJv YmUuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjgzNmQ5MDQKLS0tLSAv ZGV2L251bGwKLSsrKyBiL2dkYi9zdGFwLXByb2JlLmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi9zdGFwLXByb2JlLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9z dGFwLXByb2JlLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAg KzEsMjA0MSBAQAogKy8qIFN5c3RlbVRhcCBwcm9iZSBzdXBwb3J0IGZvciBHREIuCiArCkBAIC05 NjE2LDExICs5NjA0LDEwIEBAIGluZGV4IDAwMDAwMDAuLjgzNmQ5MDQKICsgIGNyZWF0ZV9pbnRl cm5hbHZhcl90eXBlX2xhenkgKCJfcHJvYmVfYXJnOSIsICZwcm9iZV9mdW5jcywKICsJCQkJKHZv aWQgKikgKHVpbnRwdHJfdCkgOSk7CiArfQotZGlmZiAtLWdpdCBhL2dkYi9zdGFwLXByb2JlLmgg Yi9nZGIvc3RhcC1wcm9iZS5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u MzkxZDk2ZgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3N0YXAtcHJvYmUuaAorSW5kZXg6IGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL3N0YXAtcHJvYmUuaAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjIuOTAu MjAxMTA0MjkvZ2RiL3N0YXAtcHJvYmUuaAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCAr MDIwMAogQEAgLTAsMCArMSwxMDkgQEAKICsvKiBTeXN0ZW1UYXAgcHJvYmUgc3VwcG9ydCBmb3Ig R0RCLgogKwpAQCAtOTczMSwxMCArOTcxOCwxMCBAQCBpbmRleCAwMDAwMDAwLi4zOTFkOTZmCiAr CQkJCQkgICAgICAgaW50IG4pOwogKwogKyNlbmRpZiAvKiAhZGVmaW5lZCAoU1RBUF9QUk9CRV9I KSAqLwotZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCi1pbmRleCBh MDE1MWVhLi43NTJjNDZhIDEwMDY0NAotLS0tIGEvZ2RiL3N5bWZpbGUuaAotKysrIGIvZ2RiL3N5 bWZpbGUuaAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3N5bWZpbGUuaAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTEtMDQt MjUgMjM6MjU6MTguMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIv c3ltZmlsZS5oCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMzEsNiAr MzEsMTEgQEAgc3RydWN0IG9iamZpbGU7CiAgc3RydWN0IG9ial9zZWN0aW9uOwogIHN0cnVjdCBv YnN0YWNrOwpAQCAtOTc0Nyw3ICs5NzM0LDcgQEAgaW5kZXggYTAxNTFlYS4uNzUyYzQ2YSAxMDA2 NDQKICAKICAvKiBDb21wYXJpc29uIGZ1bmN0aW9uIGZvciBzeW1ib2wgbG9vayB1cHMuICAqLwog IAotQEAgLTI5Niw2ICszMDEsNTIgQEAgc3RydWN0IHF1aWNrX3N5bWJvbF9mdW5jdGlvbnMKK0BA IC0yOTAsNiArMjk1LDUyIEBAIHN0cnVjdCBxdWlja19zeW1ib2xfZnVuY3Rpb25zCiAgCQkJCXZv aWQgKmRhdGEpOwogIH07CiAgCkBAIC05ODAwLDcgKzk3ODcsNyBAQCBpbmRleCBhMDE1MWVhLi43 NTJjNDZhIDEwMDY0NAogIC8qIFN0cnVjdHVyZSB0byBrZWVwIHRyYWNrIG9mIHN5bWJvbCByZWFk aW5nIGZ1bmN0aW9ucyBmb3IgdmFyaW91cwogICAgIG9iamVjdCBmaWxlIHR5cGVzLiAgKi8KICAK LUBAIC0zNjYsNiArNDE3LDEwIEBAIHN0cnVjdCBzeW1fZm5zCitAQCAtMzYwLDYgKzQxMSwxMCBA QCBzdHJ1Y3Qgc3ltX2ZucwogIAogICAgYmZkX2J5dGUgKigqc3ltX3JlbG9jYXRlKSAoc3RydWN0 IG9iamZpbGUgKiwgYXNlY3Rpb24gKnNlY3RwLCBiZmRfYnl0ZSAqYnVmKTsKICAKQEAgLTk4MTEs MTAgKzk3OTgsMTAgQEAgaW5kZXggYTAxNTFlYS4uNzUyYzQ2YSAxMDA2NDQKICAgIC8qIFRoZSAi cXVpY2siIChha2EgcGFydGlhbCkgc3ltYm9sIGZ1bmN0aW9ucyBmb3IgdGhpcyBzeW1ib2wKICAg ICAgIHJlYWRlci4gICovCiAgICBjb25zdCBzdHJ1Y3QgcXVpY2tfc3ltYm9sX2Z1bmN0aW9ucyAq cWY7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3N5bXRhYi5jIGIvZ2RiL3N5bXRhYi5jCi1pbmRleCA4YWE2 OTJkLi4wYmNiYmY3IDEwMDY0NAotLS0tIGEvZ2RiL3N5bXRhYi5jCi0rKysgYi9nZGIvc3ltdGFi LmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9zeW10YWIuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvc3ltdGFiLmMJMjAxMS0wNC0yMCAyMjox MDoyOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9zeW10YWIu YwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTc3MCw2ICs3NzAsNyBA QCBpbml0X3NhbCAoc3RydWN0IHN5bXRhYl9hbmRfbGluZSAqc2FsKQogICAgc2FsLT5lbmQgPSAw OwogICAgc2FsLT5leHBsaWNpdF9wYyA9IDA7CkBAIC05ODIzLDExICs5ODEwLDExIEBAIGluZGV4 IDhhYTY5MmQuLjBiY2JiZjcgMTAwNjQ0CiAgfQogIAwKICAKLWRpZmYgLS1naXQgYS9nZGIvc3lt dGFiLmggYi9nZGIvc3ltdGFiLmgKLWluZGV4IGFiZTVlODYuLjYyMzlmN2YgMTAwNjQ0Ci0tLS0g YS9nZGIvc3ltdGFiLmgKLSsrKyBiL2dkYi9zeW10YWIuaAotQEAgLTExMDksNiArMTEwOSwxMCBA QCBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIv c3ltdGFiLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3N5 bXRhYi5oCTIwMTEtMDQtMjAgMjI6MTA6MjkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvc3ltdGFiLmgJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAy MDAKK0BAIC0xMTEyLDYgKzExMTIsMTAgQEAgc3RydWN0IHN5bXRhYl9hbmRfbGluZQogICAgQ09S RV9BRERSIGVuZDsKICAgIGludCBleHBsaWNpdF9wYzsKICAgIGludCBleHBsaWNpdF9saW5lOwpA QCAtOTgzOCwxMSArOTgyNSwxMCBAQCBpbmRleCBhYmU1ZTg2Li42MjM5ZjdmIDEwMDY0NAogIH07 CiAgCiAgZXh0ZXJuIHZvaWQgaW5pdF9zYWwgKHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgKnNhbCk7 Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXIt Zm9vLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci1mb28uUwot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjgzZmFhZjYKLS0tLSAvZGV2L251 bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS1wb2ludGVyLWZvby5T CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82 NC12bGEtcG9pbnRlci1mb28uUworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXItZm9vLlMJMjAxMS0wNC0yOSAwOTo0 MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsNDU3IEBACiArCS5maWxlCSJ4ODZfNjQt dmxhLXBvaW50ZXIuYyIKICsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKQEAg LTEwMzAxLDExICsxMDI4NywxMCBAQCBpbmRleCAwMDAwMDAwLi44M2ZhYWY2CiArCS5zdHJpbmcJ IkdOVSBDIDQuMy4yIDIwMDgxMTA1IChSZWQgSGF0IDQuMy4yLTcpIgogKwkuaWRlbnQJIkdDQzog KEdOVSkgNC4zLjIgMjAwODExMDUgKFJlZCBIYXQgNC4zLjItNykiCiArCS5zZWN0aW9uCS5ub3Rl LkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL3g4Nl82NC12bGEtcG9pbnRlci5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQt dmxhLXBvaW50ZXIuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmZlMmM4 ZjcKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZs YS1wb2ludGVyLmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gveDg2XzY0LXZsYS1wb2ludGVyLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS1wb2ludGVyLmMJMjAxMS0wNC0yOSAw OTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsNDMgQEAKICsvKiBUaGlzIHRlc3Rj YXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTAzNTAsMTEgKzEw MzM1LDEwIEBAIGluZGV4IDAwMDAwMDAuLmZlMmM4ZjcKICt9CiArCiArI2VuZGlmCi1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXIuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXIuZXhwCi1uZXcgZmlsZSBtb2Rl IDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZDI0M2NmMQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXIuZXhwCitJbmRleDogZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv eDg2XzY0LXZsYS1wb2ludGVyLmV4cAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIw MAogQEAgLTAsMCArMSw2NiBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC0xMDQyMiwxMSArMTA0MDYsMTAgQEAgaW5kZXggMDAwMDAwMC4u ZDI0M2NmMQogKwogK2dkYl90ZXN0ICJ3aGF0aXMgKmFycmF5IiAidHlwZSA9IGNoYXIgXFxcWzc4 XFxcXSIgInNlY29uZDogd2hhdGlzICphcnJheSIKICtnZGJfdGVzdCAicHR5cGUgKmFycmF5IiAi dHlwZSA9IGNoYXIgXFxcWzc4XFxcXSIgInNlY29uZDogcHR5cGUgKmFycmF5IgotZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi42NmY3YTM5Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUworSW5kZXg6IGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVk ZWYtZm9vLlMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAw MDAwICswMjAwCiBAQCAtMCwwICsxLDQ1NSBAQAogKwkuZmlsZQkieDg2XzY0LXZsYS10eXBlZGVm LmMiCiArCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCkBAIC0xMDg4MywxMSAr MTA4NjYsMTAgQEAgaW5kZXggMDAwMDAwMC4uNjZmN2EzOQogKwkuc3RyaW5nCSJHTlUgQyA0LjMu MiAyMDA4MTEwNSAoUmVkIEhhdCA0LjMuMi03KSIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDQuMy4y IDIwMDgxMTA1IChSZWQgSGF0IDQuMy4yLTcpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ss IiIsQHByb2diaXRzCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQt dmxhLXR5cGVkZWYuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVm LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iODA5YzRlCi0tLS0gL2Rl di9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5j CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82 NC12bGEtdHlwZWRlZi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAw MDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDQzIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTEwOTMyLDExICsxMDkxNCwxMCBAQCBp bmRleCAwMDAwMDAwLi5iODA5YzRlCiArfQogKwogKyNlbmRpZgotZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IDAwMDAwMDAuLmIwNTQxMWUKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisr KysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEt dHlwZWRlZi5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAg KzEsNjQgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKwpAQCAtMTEwMDIsMTAgKzEwOTgzLDEwIEBAIGluZGV4IDAwMDAwMDAuLmIwNTQxMWUKICtn ZGJfdGVzdCAid2hhdGlzIGFycmF5IiAidHlwZSA9IGFycmF5X3QiICJzZWNvbmQ6IHdoYXRpcyBh cnJheSIKICsKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxbNzhcXFxd IiAic2Vjb25kOiBwdHlwZSBhcnJheSIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKLWluZGV4 IDZjMTU4YmYuLjczOWNlMzQgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy cmF5aWR4LmMKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYworSW5kZXg6 IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXJyYXlpZHguYwkyMDExLTAxLTAxIDE2OjMzOjQwLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIw MTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMTcsNiArMTcsMTMgQEAKICAK ICBpbnQgYXJyYXlbXSA9IHsxLCAyLCAzLCA0fTsKQEAgLTExMDIwLDEwICsxMTAwMSwxMCBAQCBp bmRleCA2YzE1OGJmLi43MzljZTM0IDEwMDY0NAogIGludAogIG1haW4gKHZvaWQpCiAgewotZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKLWluZGV4IGQ4ZWU1YzAuLmRlNGJhNzUgMTAwNjQ0 Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhw CTIwMTEtMDEtMDEgMTY6MzM6NDAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDEx MDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDExLTA0LTI5IDA5OjQw OjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTU3LDQgKzU3LDEyIEBAIGdkYl90ZXN0ICJwcmludCBh cnJheSIgXAogICAgICAgICAgICJcXHtcXFxbMFxcXF0gPSAxLCBcXFxbMVxcXF0gPSAyLCBcXFxb MlxcXF0gPSAzLCBcXFxbM1xcXF0gPSA0XFx9IiBcCiAgICAgICAgICAgIlByaW50IGFycmF5IHdp dGggYXJyYXktaW5kZXhlcyBvbiIKQEAgLTExMDM4LDExICsxMTAxOSwxMSBAQCBpbmRleCBkOGVl NWMwLi5kZTRiYTc1IDEwMDY0NAogKwl1bnN1cHBvcnRlZCAiJHRlc3QgKG5vIEdDQykiCiArICAg IH0KICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cCBi L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZGVmYXVsdC5leHAKLWluZGV4IGQ1OGM1MTkuLmFiYjFi MDUgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwCi1AQCAtNjA3LDYgKzYwNywxNyBA QCBnZGJfdGVzdF9saXN0X2V4YWN0ICJzaG93IGNvbnZlbmllbmNlIiAic2hvdyBjb252ZW5pZW5j ZSIgXAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9k ZWZhdWx0LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwCTIwMTEtMDItMTUgMjI6MTc6NTIuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2RlZmF1bHQuZXhwCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCitAQCAtNjA3 LDYgKzYwNywxNyBAQCBnZGJfdGVzdF9saXN0X2V4YWN0ICJzaG93IGNvbnZlbmllbmNlIiAiCiAg CXskX3NkYXRhID0gdm9pZH0gXAogIAl7JF9zaWdpbmZvID0gdm9pZH0gXAogIAl7JF90aHJlYWQg PSAwfSBcCkBAIC0xMTA2MCwxMSArMTEwNDEsMTAgQEAgaW5kZXggZDU4YzUxOS4uYWJiMWIwNSAx MDA2NDQKICAgICAgfQogIAogICN0ZXN0IHNob3cgZGlyZWN0b3JpZXMKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5lZWI3Yjg1Ci0tLS0gL2Rldi9udWxsCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKK0lu ZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwt dmFyLWZpZWxkLWFkZHJlc3MuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCTIwMTEtMDQtMjkg MDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDIwIEBACiArLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTExMDg2LDExICsx MTA2NiwxMCBAQCBpbmRleCAwMDAwMDAwLi5lZWI3Yjg1CiArc3RydWN0IHsKICsgIGludCBmaWVs ZDsKICt9IHN0YXRpY3N0cnVjdCA9IHsgMSB9OwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCAwMDAwMDAwLi42ZDgyZTczCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAorSW5kZXg6IGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmll bGQtYWRkcmVzcy5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTEtMDQtMjkgMDk6 NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDI2IEBACiArIyBDb3B5cmlnaHQgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTExMTE4LDExICsxMTA5Nywx MCBAQCBpbmRleCAwMDAwMDAwLi42ZDgyZTczCiArCiArZ2RiX3Rlc3Qge3NldCAkdmFyc3RydWN0 ID0gc3RhdGljc3RydWN0fQogK2dkYl90ZXN0IHtwICR2YXJzdHJ1Y3QuZmllbGR9ICIgPSAxIgot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3RhcC1wcm9iZS5jIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9zdGFwLXByb2JlLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi40N2U0YjM5Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3N0YXAtcHJvYmUuYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9zdGFwLXByb2JlLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3RhcC1wcm9iZS5jCTIwMTEtMDQtMjkgMDk6NDA6NDYu MDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDY5IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTExMTkzLDExICsxMTE3MSwxMCBA QCBpbmRleCAwMDAwMDAwLi40N2U0YjM5CiArICBtMSgpOwogKyAgbTIoKTsKICt9Ci1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zdGFwLXByb2JlLmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvc3RhcC1wcm9iZS5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAw MDAwMDAwLi4zZmI3Mzc3Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3N0YXAtcHJvYmUuZXhwCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3N0YXAtcHJvYmUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N0YXAtcHJvYmUuZXhwCTIwMTEtMDQtMjkgMDk6NDA6 NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDcyIEBACiArIyBDb3B5cmlnaHQgKEMpIDIw MTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMTI3MSwxMSArMTEyNDgs MTAgQEAgaW5kZXggMDAwMDAwMC4uM2ZiNzM3NwogKyAgICByZXR1cm4gLTEKICt9CiArc3RhcF90 ZXN0ICItRFVTRV9QUk9CRVMiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtb3ZlcmZsb3cuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMKLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5jNWQ1ZWUwCi0tLS0gL2Rldi9udWxs Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCitJbmRleDogZ2Ri LTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1v dmVyZmxvdy5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsx LDMwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTExMzA3LDExICsxMTI4MywxMCBAQCBpbmRleCAwMDAwMDAwLi5jNWQ1ZWUwCiAr CiArICByZXR1cm4gMDsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtb3ZlcmZsb3cuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhw Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMjRhNjA4ZgotLS0tIC9kZXYv bnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitJbmRl eDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxv dy5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLW92ZXJmbG93LmV4cAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAog QEAgLTAsMCArMSwxMDkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKwpAQCAtMTE0MjIsMTEgKzExMzk3LDEwIEBAIGluZGV4IDAwMDAwMDAuLjI0 YTYwOGYKICtnZGJfdGVzdCAiYnQiICJpbiBcW14gXF0qYWJvcnQgXFwoLiogaW4gbWFpbiBcXCgu KiIgIkJhY2t0cmFjZSBhZnRlciBhYm9ydCgpIgogKwogK3ZlcmJvc2UgLWxvZyAia2JfZm91bmQg aW4gYnQgYWZ0ZXIgYWJvcnQoKSA9IFtleHByIFttZW1vcnlfdl9wYWdlc19nZXRdICogJHBhZ2Vz aXplIC8gMTAyNF0iCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuYyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi5lMWYzZWQxCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3ZsYS5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAt MCwwICsxLDU1IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KICsKQEAgLTExNDgzLDExICsxMTQ1NywxMCBAQCBpbmRleCAwMDAwMDAwLi5lMWYz ZWQxCiArICBmb28gKDc4KTsKICsgIHJldHVybiAwOwogK30KLWRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAK LW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi41ZGE3Mzc4Ci0tLS0gL2Rldi9u dWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKK0luZGV4OiBnZGItNy4y LjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCTIwMTEtMDQt MjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDYyIEBACiArIyBDb3B5cmln aHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTExNTUxLDExICsx MTUyNCwxMSBAQCBpbmRleCAwMDAwMDAwLi41ZGE3Mzc4CiArZ2RiX3Rlc3QgInAgdGVtcDEiICIg PSAnMScgPHJlcGVhdHMgNzggdGltZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMSIKICtnZGJfdGVz dCAicCB0ZW1wMiIgIiA9ICcyJyA8cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRl bXAyIgogK2dkYl90ZXN0ICJwIHRlbXAzIiAiID0gJzMnIDxyZXBlYXRzIDQ4IHRpbWVzPiIgInNl Y29uZDogcHJpbnQgdGVtcDMiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmV4 dG92ZXJ0aHJvdy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0b3ZlcnRocm93LmV4cAot aW5kZXggODljMDJkNi4uYTk3MGJiOSAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L25leHRvdmVydGhyb3cuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0b3ZlcnRo cm93LmV4cAotQEAgLTUzLDYgKzUzLDE3IEBAIGdkYl90ZXN0X211bHRpcGxlICJwcmludCBfVW53 aW5kX0RlYnVnSG9vayIgImNoZWNrIGZvciB1bndpbmRlciBob29rIiB7CitJbmRleDogZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uZXh0b3ZlcnRocm93LmV4cAorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5j cC9uZXh0b3ZlcnRocm93LmV4cAkyMDExLTAxLTAxIDE2OjMzOjQ0LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmV4dG92ZXJ0aHJv dy5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC01Myw2ICs1Mywx NyBAQCBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgX1Vud2luZF9EZWJ1Z0hvCiAgICAgIH0KICB9 CiAgaWYgeyEkb2t9IHsKQEAgLTExNTczLDExICsxMTU0NiwxMCBAQCBpbmRleCA4OWMwMmQ2Li5h OTcwYmI5IDEwMDY0NAogICAgICB1bnN1cHBvcnRlZCAibmV4dG92ZXJ0aHJvdy5leHAgY291bGQg bm90IGZpbmQgX1Vud2luZF9EZWJ1Z0hvb2siCiAgICAgIHJldHVybiAtMQogIH0KLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCi1uZXcgZmlsZSBtb2RlIDEw MDY0NAotaW5kZXggMDAwMDAwMC4uYWFjM2JhYQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKK0luZGV4OiBnZGItNy4yLjkw LjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LWJvdW5kLWxvY2xpc3QuUwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAg LTAsMCArMSwyNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05V IGRlYnVnZ2VyLgogKwpAQCAtMTE4MjUsMTEgKzExNzk3LDEwIEBAIGluZGV4IDAwMDAwMDAuLmFh YzNiYWEKICsJLnN0cmluZwkJImNoYXIiCiArLkx1aW50X3N0cjoKICsJLnN0cmluZwkJInVuc2ln bmVkIGludCIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5k LWxvY2xpc3QuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0 LmV4cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjgxNWVkOTMKLS0tLSAv ZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlz dC5leHAKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItYm91bmQtbG9jbGlzdC5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxMS0wNC0yOSAw OTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsNTQgQEAKICsjIENvcHlyaWdodCAy MDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTE4ODUsMTEgKzExODU2 LDEwIEBAIGluZGV4IDAwMDAwMDAuLjgxNWVkOTMKICsKICsjIFRoZSByZWdpc3RlciBjb250YWlu cyB1bnByZWRpY3RhYmxlIHZhbHVlIC0gdGhlIGFycmF5IHNpemUuCiArZ2RiX3Rlc3QgInB0eXBl IHJlZ19zdHJpbmciIHt0eXBlID0gY2hhciBcWy0/WzAtOV0rXF19Ci1kaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MC4uMWYwMmQ5MAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdHJpcHBlZC5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwkyMDExLTA0LTI5IDA5OjQw OjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKy8qIFRoaXMgdGVzdGNhc2Ug aXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xMTkzMywxMSArMTE5MDMs MTAgQEAgaW5kZXggMDAwMDAwMC4uMWYwMmQ5MAogKyAgZnVuYzEgKDEsIDIpOwogKyAgcmV0dXJu IDA7CiArfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBw ZWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAKLW5ldyBm aWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4xYzZlODRhCi0tLS0gL2Rldi9udWxsCi0r KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAorSW5kZXg6IGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3RyaXBwZWQuZXhwCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBA QCAtMCwwICsxLDc5IEBACiArIyBDb3B5cmlnaHQgMjAwNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICsKQEAgLTEyMDE4LDExICsxMTk4NywxMCBAQCBpbmRleCAwMDAwMDAwLi4xYzZl ODRhCiArZ2RiX3Rlc3QgInN0ZXAiIFwKICsgICAgICAgICAiZnVuYy4qIFxcKC4qXFwpIGF0IC4q IiBcCiArICAgICAgICAgInN0ZXAiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi41ZmNkZDg0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCitJ bmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0 cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlv bi5TCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDgzIEBA CiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsK QEAgLTEyMTA3LDExICsxMjA3NSwxMCBAQCBpbmRleCAwMDAwMDAwLi41ZmNkZDg0CiArCiArCS5i eXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9y ICovCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVt YmVyLWRhdGEtbG9jYXRpb24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1 Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMC4uYzQxMTUxYwotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCitJbmRleDogZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXIt ZGF0YS1sb2NhdGlvbi5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAkyMDEx LTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwzNyBAQAogKyMgQ29w eXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMjE1MCwx MSArMTIxMTcsMTAgQEAgaW5kZXggMDAwMDAwMC4uYzQxMTUxYwogK2NsZWFuX3Jlc3RhcnQgJGJp bmZpbGUKICsKICtnZGJfdGVzdCAicHR5cGUgc3RydWN0IHNvbWVfc3RydWN0IiAidHlwZSA9IHN0 cnVjdCBzb21lX3N0cnVjdCB7XFtcclxuIFx0XF0qdm9pZCBmaWVsZDtcW1xyXG4gXHRcXSp9Igot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cCBi L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAotbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmNkMzQ4NmIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjIu OTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3 YXJmLXN0cmlkZS5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0w LDAgKzEsNDIgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwpAQCAtMTIxOTgsMTEgKzEyMTY0LDEwIEBAIGluZGV4IDAwMDAwMDAuLmNkMzQ4NmIK ICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJlYWstaGVyZSIgIi4qYnJlYWstaGVyZS4q IgogK2dkYl90ZXN0ICJwIGM0MHB0KDEpIiAiID0gJzAtaGVsbG8uKiIKICtnZGJfdGVzdCAicCBj NDBwdCgyKSIgIiA9ICcxLWhlbGxvLioiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2Fy Zi1zdHJpZGUuZjkwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZTQ5MmIz YQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1z dHJpZGUuZjkwCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDExLTA0LTI5IDA5OjQw OjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSw0MCBAQAogKyEgQ29weXJpZ2h0IDIwMDkg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTIyNDQsMTEgKzEyMjA5LDEw IEBAIGluZGV4IDAwMDAwMDAuLmU0OTJiM2EKICsgIHByaW50ICosIGM0MHB0ICAhIGJyZWFrLWhl cmUKICsKICtlbmQgcHJvZ3JhbSByZXBybwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAuLjI2MWNlMTcKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAorSW5kZXg6IGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVy LWZyYW1lLXN0dWIuZjkwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAJMjAxMS0wNC0yOSAw OTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMjQgQEAKICshIENvcHlyaWdodCAy MDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTEyMjc0LDExICsxMjIz OCwxMCBAQCBpbmRleCAwMDAwMDAwLi4yNjFjZTE3CiArICByZWFsIDo6IGR1bW15CiArICBkdW1t eSA9IDEKICtlbmQgc3Vicm91dGluZSBiYXIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAuLjRmZGQ1ZWUKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHlu YW1pYy1vdGhlci1mcmFtZS5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAK IEBAIC0wLDAgKzEsMzcgQEAKICsjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKwpAQCAtMTIzMTcsMTEgKzEyMjgwLDEwIEBAIGluZGV4IDAwMDAwMDAuLjRm ZGQ1ZWUKICt9CiArCiArZ2RiX3Rlc3QgImJ0IiB7Zm9vIFwoc3RyaW5nPSdoZWxsbycuKn0KLWRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUu ZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmY5MAot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjJiYzYzN2QKLS0tLSAvZGV2L251 bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5m OTAKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHluYW1pYy1vdGhlci1mcmFtZS5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5mOTAJMjAxMS0wNC0y OSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMzYgQEAKICshIENvcHlyaWdo dCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTEyMzU5LDExICsx MjMyMSwxMCBAQCBpbmRleCAwMDAwMDAwLi4yYmM2MzdkCiArICBlbmQgaW50ZXJmYWNlCiArICBj YWxsIGZvbyAoJ2hlbGxvJykKICtlbmQKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4 cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjBjY2ViZTAKLS0tLSAvZGV2 L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKK0luZGV4 OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHluYW1pYy5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0w LDAgKzEsMTQ1IEBACiArIyBDb3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKQEAgLTEyNTEwLDExICsxMjQ3MSwxMCBAQCBpbmRleCAwMDAwMDAwLi4wY2NlYmUw CiArZ2RiX3Rlc3QgInAgdmFydCgzLDgpIiAiXFwkXFswLTlcXSogPSA5IgogKyMgbWFwcyB0byBm b286OnZhcnkoMSwzKQogK2dkYl90ZXN0ICJwIHZhcnQoMiw5KSIgIlxcJFxbMC05XF0qID0gMTAi Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MCBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwLi4wZjQzNTY0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTEtMDQt MjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDk4IEBACiArISBDb3B5cmln aHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xMjYxNCwxMSAr MTI1NzQsMTAgQEAgaW5kZXggMDAwMDAwMC4uMGY0MzU2NAogKyAgaWYgKHggKDEsIDEpIC5uZS4g OCAub3IuIHggKDIsIDIpIC5uZS4gOSAub3IuIHggKDEsIDIpIC5uZS4gNCkgY2FsbCBhYm9ydAog KyAgaWYgKHggKDMsIDEpIC5uZS4gMTApIGNhbGwgYWJvcnQKICtlbmQKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3N0cmluZy5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5i MTEyMGMzCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0 cmluZy5leHAKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3RyaW5nLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAw ICswMjAwCiBAQCAtMCwwICsxLDU5IEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEyNjc5LDExICsxMjYzOCwxMCBAQCBpbmRleCAwMDAw MDAwLi5iMTEyMGMzCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhci1maW5pc2giCiAr Z2RiX3Rlc3QgInAgZSIgIlxcJFxbMC05XF0qID0gJ2UgICAnIiAicCBlIHJlLXNldCIKICtnZGJf dGVzdCAicCBmIiAiXFwkXFswLTlcXSogPSBcXChcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywg J2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKCAnZjIgICcsICdmICAgJywgJ2Yg ICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwoICdmICAgJywgJ2YgICAn LCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBcXCkiICJwICpmIHJl LXNldCIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCAwMDAwMDAwLi4yMjZkYzVkCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjIu OTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCTIwMTEtMDQt MjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDM3IEBACiArISBDb3B5cmln aHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xMjcyMiwxMSAr MTI2ODAsMTAgQEAgaW5kZXggMDAwMDAwMC4uMjI2ZGM1ZAogKyAgaCA9ICdoJwogKyAgY2FsbCBm b28gKGcsIGgpCiArZW5kCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dWJyYW5nZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAotbmV3 IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmJlMzcyYzEKLS0tLSAvZGV2L251bGwK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCitJbmRleDogZ2Ri LTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dWJyYW5nZS5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAg KzEsNjAgQEAKICsjIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKwpAQCAtMTI3ODgsMTEgKzEyNzQ1LDEwIEBAIGluZGV4IDAwMDAwMDAuLmJlMzcyYzEKICtk ZWxldGVfYnJlYWtwb2ludHMKICtnZGJfdW5sb2FkCiArZ2RiX3Rlc3Qge3AgJGEgKDMsIDI6Mil9 IHsgPSBcKDIzXCl9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJy YW5nZS5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjQ3NDdlYTkKLS0tLSAvZGV2L251bGwKLSsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCitJbmRleDogZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJy YW5nZS5mOTAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEs MjggQEAKICshIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KyEKQEAgLTEyODIyLDEwICsxMjc3OCwxMCBAQCBpbmRleCAwMDAwMDAwLi40NzQ3ZWE5CiArICBw dHIgPT4gYQogKyAgd3JpdGUgKCosKikgYSAgICAgICAgICAgICAgICAgISBicmVhay1zdGF0aWMK ICtlbmQKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAotaW5kZXggMzBhNzFkZC4uNGJiOGU3 ZCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKLSsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKK0luZGV4OiBnZGItNy4yLjkwLjIw MTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0 LmV4cAkyMDExLTA0LTI5IDA5OjQwOjQzLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuOTAu MjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAkyMDExLTA0LTI5IDA5 OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTkyLDYgKzkyLDEwIEBAIHByb2MgZG9fc3RlcHNf YW5kX25leHRzIHt9IHsKICAJCXNldCBkZXNjcmlwdGlvbiAic3RlcCBvdmVyIHR0eWFyZyBpbml0 aWFsaXphdGlvbiIKICAJCXNldCBjb21tYW5kICJzdGVwIgpAQCAtMTI4MzcsMTEgKzEyNzkzLDEw IEBAIGluZGV4IDMwYTcxZGQuLjRiYjhlN2QgMTAwNjQ0CiAgCSAgICAtcmUgIi4qcHJlX3N0YXRf Y2hhaW4gPSBtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cC4qJGdkYl9wcm9tcHQgJCIgewogIAkJ c2V0IGRlc2NyaXB0aW9uICJuZXh0IG92ZXIgbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAgYW5k IGV2ZXJ5dGhpbmcgaXQgY2FsbHMiCiAgCQlzZXQgY29tbWFuZCAibmV4dCIKLWRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uZWJjZWQzYwotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYwky MDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwyNiBAQAogKy8q IENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTI4 NjksMTEgKzEyODI0LDEwIEBAIGluZGV4IDAwMDAwMDAuLmViY2VkM2MKICsKICsgIHJldHVybiAw OwogK30KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5 cGUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAotbmV3 IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjc0YTEwNGUKLS0tLSAvZGV2L251bGwK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAKK0luZGV4 OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUt dHlwZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAg KzAyMDAKIEBAIC0wLDAgKzEsNTcgQEAKICsjIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTEyOTMyLDExICsxMjg4NiwxMCBAQCBpbmRleCAwMDAw MDAwLi43NGExMDRlCiArbWlfY3JlYXRlX3Zhcm9iaiAidmxhIiAidmxhIiAiY3JlYXRlIGxvY2Fs IHZhcmlhYmxlIHZsYSIKICsKICttaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgIlxcXmRvbmUs Y2hhbmdlbGlzdD0uKiIgIi12YXItdXBkYXRlICoiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIubXVsdGkvd2F0Y2hwb2ludC1tdWx0aS5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubXVsdGkv d2F0Y2hwb2ludC1tdWx0aS5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u MTUzYzE4YgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubXVsdGkvd2F0 Y2hwb2ludC1tdWx0aS5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRl L2dkYi5tdWx0aS93YXRjaHBvaW50LW11bHRpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEw NDI5L2dkYi90ZXN0c3VpdGUvZ2RiLm11bHRpL3dhdGNocG9pbnQtbXVsdGkuYwkyMDExLTA0LTI5 IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSw1OSBAQAogKy8qIFRoaXMgdGVz dGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xMjk5NywxMSAr MTI5NTAsMTAgQEAgaW5kZXggMDAwMDAwMC4uMTUzYzE4YgogKyAgbWFya2VyX2V4aXQyICgpOwog KyAgcmV0dXJuIDA7CiArfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm11bHRpL3dh dGNocG9pbnQtbXVsdGkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubXVsdGkvd2F0Y2hwb2ludC1t dWx0aS5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi45N2ZhNmNkCi0t LS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5tdWx0aS93YXRjaHBvaW50LW11 bHRpLmV4cAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIubXVs dGkvd2F0Y2hwb2ludC1tdWx0aS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dk Yi90ZXN0c3VpdGUvZ2RiLm11bHRpL3dhdGNocG9pbnQtbXVsdGkuZXhwCTIwMTEtMDQtMjkgMDk6 NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDExMyBAQAogKyMgQ29weXJpZ2h0IDIw MTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMzExNiwxMSArMTMwNjgs MTAgQEAgaW5kZXggMDAwMDAwMC4uOTdmYTZjZAogKyAgICB9CiArfQogKwotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwotbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjcyOWY0NTcKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYworSW5kZXg6IGdk Yi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0 ZXItZnVuYy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAw MDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMjIgQEAKICsvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBH REIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xMzE0NCwxMSArMTMwOTUsMTAgQEAgaW5kZXgg MDAwMDAwMC4uNzI5ZjQ1NwogK3sKICsgIHJldHVybiBhcnJbMF07CiArfQotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMgYi9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggMDAwMDAwMC4uMzA5MGU3ZQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysr IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVn aXN0ZXIuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwy OCBAQAogKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsK QEAgLTEzMTc4LDExICsxMzEyOCwxMCBAQCBpbmRleCAwMDAwMDAwLi4zMDkwZTdlCiArCiArICBy ZXR1cm4gMDsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZy b20tcmVnaXN0ZXIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0 ZXIuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZjJkZTcxOAotLS0t IC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0 ZXIuZXhwCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv YXJyYXktZnJvbS1yZWdpc3Rlci5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAkyMDExLTA0LTI5IDA5 OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwzMyBAQAogKyMgQ29weXJpZ2h0IDIw MDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtMTMyMTcsMTEgKzEzMTY2 LDEwIEBAIGluZGV4IDAwMDAwMDAuLmYyZGU3MTgKICsjIFNlZW4gcmVncmVzc2lvbjoKICsjIEFk ZHJlc3MgcmVxdWVzdGVkIGZvciBpZGVudGlmaWVyICJhcnIiIHdoaWNoIGlzIGluIHJlZ2lzdGVy ICRyZGkKICtnZGJfdGVzdCAicCBhcnJcWzBcXSIgIlxcJFxbMC05XF0rID0gNDIiCi1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5wYXNjYWwvYXJyYXlzLmV4cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAw MDAuLmNjYzZlMWUKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2Nh bC9hcnJheXMuZXhwCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dk Yi5wYXNjYWwvYXJyYXlzLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rl c3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAw MDAgKzAyMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0xMzMyNywxMSArMTMyNzUsMTAgQEAg aW5kZXggMDAwMDAwMC4uY2NjNmUxZQogK30KICtnZGJfdGVzdCAicHJpbnQgRHluQXJyQ2hhciIg Ii4qID0gJ2FiY2RlZmdoaWprbG0nIiAiUHJpbnQgZHluYW1pYyBhcnJheSBvZiBjaGFyIgogKwot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi4yOTU2MDJkCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5wYXNjYWwvYXJyYXlzLnBhcworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTEtMDQtMjkgMDk6NDA6NDYu MDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDgyIEBACiArewogKyBDb3B5cmlnaHQgMjAwOCwg MjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTEzNDE1LDExICsxMzM2Miwx MSBAQCBpbmRleCAwMDAwMDAwLi4yOTU2MDJkCiArICBzIDo9ICd0ZXN0JyMwJ3N0cmluZyc7CiAr ICB3cml0ZWxuKHMpOyB7IHNldCBicmVha3BvaW50IDIgaGVyZSB9CiArZW5kLgotZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZnJhbWUuZXhwCi1pbmRleCAxY2I1NzNlLi4zNjA1ZWU1IDEwMDY0NAot LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAotQEAgLTc4LDggKzc4LDYgQEAgZ2RiX3Rl c3QgInB5dGhvbiBwcmludCBiZnJhbWUgPT0gZ2RiLm5ld2VzdF9mcmFtZSgpIiBUcnVlIFwKK0lu ZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAkyMDExLTAyLTI2IDE1OjA2OjI4LjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LWZyYW1lLmV4cAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTc4 LDggKzc4LDYgQEAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBiZnJhbWUgPT0gZ2RiLm5ldwogIAog IGdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAgPT0gZjEiICIgPSBGYWxzZSIg InRlc3QgZXF1YWxpdHkgY29tcGFyaXNvbiAoZmFsc2UpIgogIGdkYl90ZXN0ICJweXRob24gcHJp bnQgJ3Jlc3VsdCA9JywgZjAgPT0gZjAiICIgPSBUcnVlIiAidGVzdCBlcXVhbGl0eSBjb21wYXJp c29uICh0cnVlKSIKQEAgLTEzNDI4LDE2ICsxMzM3NSwxNiBAQCBpbmRleCAxY2I1NzNlLi4zNjA1 ZWU1IDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAuaXNfdmFs aWQgKCkiICIgPSBUcnVlIiAidGVzdCBGcmFtZS5pc192YWxpZCIKICBnZGJfdGVzdCAicHl0aG9u IHByaW50ICdyZXN1bHQgPScsIGYwLm5hbWUgKCkiICIgPSBmMiIgInRlc3QgRnJhbWUubmFtZSIK ICBnZGJfdGVzdCAicHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGYwLnR5cGUgKCkgPT0gZ2RiLk5P Uk1BTF9GUkFNRSIgIiA9IFRydWUiICJ0ZXN0IEZyYW1lLnR5cGUiCi1AQCAtOTQsMyArOTIsNSBA QCBnZGJfdGVzdCAicHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGYwLnJlYWRfdmFyICgndmFyaWFi bGVfd2hpY2hfc3VyZWx5X2RvZXNudF9leAorQEAgLTk0LDMgKzkyLDUgQEAgZ2RiX3Rlc3QgInB5 dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC5yZQogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jl c3VsdCA9JywgZjAucmVhZF92YXIgKCdhJykiICIgPSAxIiAidGVzdCBGcmFtZS5yZWFkX3ZhciAt IHN1Y2Nlc3MiCiAgCiAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBnZGIuc2Vs ZWN0ZWRfZnJhbWUgKCkgPT0gZjEiICIgPSBUcnVlIiAidGVzdCBnZGIuc2VsZWN0ZWRfZnJhbWUi CiArCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC5ibG9jayAoKSIgIjxn ZGIuQmxvY2sgb2JqZWN0IGF0IDB4XFtcWzp4ZGlnaXQ6XF1cXSs+IiAidGVzdCBGcmFtZS5ibG9j ayIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAotaW5kZXggZTAxMmQ1My4uMWJk OWU1MyAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKK0luZGV4OiBnZGIt Ny4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LXZhbHVlLmV4cAkyMDExLTAxLTAxIDE2OjMzOjQ5LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVl LmV4cAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTMxOCw2ICszMTgs MTUgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKICAgICAgInByaW50IHZhbHVl J3MgdHlwZSIKICB9CkBAIC0xMzQ2MiwxMSArMTM0MDksMTAgQEAgaW5kZXggZTAxMmQ1My4uMWJk OWU1MyAxMDA2NDQKICAKICAjIFRoZSBmb2xsb3dpbmcgdGVzdCByZWNvbXBpbGVzIHRoZSBiaW5h cnkgdG8gdGVzdCBlaXRoZXIgQyBvciBDKysKICAjIHZhbHVlcy4gCi1kaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmstY2hpbGQuYyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLWNoaWxkLmMKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5hMmFkMjlhCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL3dhdGNocG9pbnQtZm9yay1jaGlsZC5jCitJbmRleDogZ2Ri LTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3dhdGNocG9pbnQtZm9y ay1jaGlsZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dk Yi50aHJlYWRzL3dhdGNocG9pbnQtZm9yay1jaGlsZC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAw MDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDEyNyBAQAogKy8qIFRlc3QgY2FzZSBmb3IgZm9yZ290 dGVuIGh3LXdhdGNocG9pbnRzIGFmdGVyIGZvcmsoKS1vZmYgb2YgYSBwcm9jZXNzLgogKwpAQCAt MTM1OTUsMTEgKzEzNTQxLDEwIEBAIGluZGV4IDAwMDAwMDAuLmEyYWQyOWEKICsgIGkgPSBzaWdh Y3Rpb24gKFNJR1VTUjEsICZvbGRhY3QsIE5VTEwpOwogKyAgYXNzZXJ0IChpID09IDApOwogK30K LWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3dhdGNocG9pbnQtZm9yay1t dC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmstbXQuYwotbmV3 IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjA4YTVhZmYKLS0tLSAvZGV2L251bGwK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLW10LmMKK0lu ZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hw b2ludC1mb3JrLW10LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3Vp dGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLW10LmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4w MDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMTc0IEBACiArLyogVGVzdCBjYXNlIGZvciBmb3Jn b3R0ZW4gaHctd2F0Y2hwb2ludHMgYWZ0ZXIgZm9yaygpLW9mZiBvZiBhIHByb2Nlc3MuCiArCkBA IC0xMzc3NSwxMSArMTM3MjAsMTAgQEAgaW5kZXggMDAwMDAwMC4uMDhhNWFmZgogKyAgbWFya19l eGl0ICgpOwogKyAgcmV0dXJuIDA7CiArfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLXBhcmVudC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy93YXRjaHBvaW50LWZvcmstcGFyZW50LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi44MmQxMTgyCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi50aHJlYWRzL3dhdGNocG9pbnQtZm9yay1wYXJlbnQuYworSW5kZXg6IGdkYi03LjIuOTAuMjAx MTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmstcGFyZW50LmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv d2F0Y2hwb2ludC1mb3JrLXBhcmVudC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICsw MjAwCiBAQCAtMCwwICsxLDc0IEBACiArLyogVGVzdCBjYXNlIGZvciBmb3Jnb3R0ZW4gaHctd2F0 Y2hwb2ludHMgYWZ0ZXIgZm9yaygpLW9mZiBvZiBhIHByb2Nlc3MuCiArCkBAIC0xMzg1NSwxMSAr MTM3OTksMTAgQEAgaW5kZXggMDAwMDAwMC4uODJkMTE4MgogKyAgICAgIG1hcmtlciAoKTsKICsg ICAgfQogK30KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3dhdGNocG9p bnQtZm9yay1zdC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmst c3QuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmE3ZWVlZGQKLS0tLSAv ZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3Jr LXN0LmMKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvd2F0Y2hwb2ludC1mb3JrLXN0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dk Yi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLXN0LmMJMjAxMS0wNC0yOSAw OTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsNjEgQEAKICsvKiBUZXN0IGNhc2Ug Zm9yIGZvcmdvdHRlbiBody13YXRjaHBvaW50cyBhZnRlciBmb3JrKCktb2ZmIG9mIGEgcHJvY2Vz cy4KICsKQEAgLTEzOTIyLDExICsxMzg2NSwxMCBAQCBpbmRleCAwMDAwMDAwLi5hN2VlZWRkCiAr ICBtYXJrX2V4aXQgKCk7CiArICByZXR1cm4gMDsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmsuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu dGhyZWFkcy93YXRjaHBvaW50LWZvcmsuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMC4uMTE3NzAwYgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu dGhyZWFkcy93YXRjaHBvaW50LWZvcmsuZXhwCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9n ZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3dhdGNocG9pbnQtZm9yay5leHAKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBn ZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1m b3JrLmV4cAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwx NDkgQEAKICsjIENvcHlyaWdodCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKwpAQCAtMTQwNzcsMTEgKzE0MDE5LDEwIEBAIGluZGV4IDAwMDAwMDAuLjEx NzcwMGIKICt9IGVsc2UgewogKyAgICB1bnRlc3RlZCAiY2hpbGQiCiArfQotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLmggYi9nZGIvdGVzdHN1 aXRlL2dkYi50aHJlYWRzL3dhdGNocG9pbnQtZm9yay5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggMDAwMDAwMC4uMzFmNzY1NgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmsuaAorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmsuaAorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysr IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50 LWZvcmsuaAkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwz MiBAQAogKy8qIFRlc3QgY2FzZSBmb3IgZm9yZ290dGVuIGh3LXdhdGNocG9pbnRzIGFmdGVyIGZv cmsoKS1vZmYgb2YgYSBwcm9jZXNzLgogKwpAQCAtMTQxMTUsMTEgKzE0MDU2LDEwIEBAIGluZGV4 IDAwMDAwMDAuLjMxZjc2NTYKICsKICtleHRlcm4gdm9pZCBtYXJrZXIgKHZvaWQpOwogK2V4dGVy biB2b2lkIGZvcmtvZmYgKGludCBucik7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu dHJhY2Uvc3RhcC10cmFjZS5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5j Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMjdmMzE3ZQotLS0tIC9kZXYv bnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5jCitJbmRleDog Z2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi50cmFjZS9zdGFwLXRyYWNlLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnRyYWNlL3N0 YXAtdHJhY2UuYwkyMDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCAr MSw3MSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdn ZXIuCiArCkBAIC0xNDE5MiwxMSArMTQxMzIsMTAgQEAgaW5kZXggMDAwMDAwMC4uMjdmMzE3ZQog KwogKyAgcmV0dXJuIDA7CiArfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRyYWNl L3N0YXAtdHJhY2UuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5leHAK LW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4xODkzNTVmCi0tLS0gL2Rldi9u dWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi50cmFjZS9zdGFwLXRyYWNlLmV4cAorSW5kZXg6 IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLnRyYWNl L3N0YXAtdHJhY2UuZXhwCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAt MCwwICsxLDEyOSBAQAogKyMgQ29weXJpZ2h0IDIwMTEKICsjIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgpAQCAtMTQzMjcsMTAgKzE0MjY2LDEwIEBAIGluZGV4IDAwMDAwMDAuLjE4OTM1 NWYKICsKICsjIEZpbmlzaGVkIQogK2dkYl90ZXN0ICJ0ZmluZCBub25lIiAiLioiICIiCi1kaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAKLWluZGV4IGE1MTI1MjcuLjY1NGUzYzkgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRl L2xpYi9nZGIuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2Ri LTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAx MS0wMy0yNSAxNDowODoxMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAg KzAyMDAKIEBAIC0xNDEsNiArMTQxLDExIEBAIHByb2MgZ2RiX3VubG9hZCB7fSB7CiAgCSAgICBz ZW5kX2dkYiAieVxuIgogIAkgICAgZXhwX2NvbnRpbnVlCkBAIC0xNDM0MywxMCArMTQyODIsMTAg QEAgaW5kZXggYTUxMjUyNy4uNjU0ZTNjOSAxMDA2NDQKICAJLXJlICJEaXNjYXJkIHN5bWJvbCB0 YWJsZSBmcm9tIC4qeSBvciBuLiokIiB7CiAgCSAgICBzZW5kX2dkYiAieVxuIgogIAkgICAgZXhw X2NvbnRpbnVlCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cCBiL2dk Yi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKLWluZGV4IDg5MWRhMzcuLjIzNmM1Y2EgMTAwNjQ0 Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRl L2xpYi9wYXNjYWwuZXhwCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRl L2xpYi9wYXNjYWwuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmln L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxMS0wMS0wMSAxNjozMzo1Mi4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2Nh bC5leHAJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0zNyw2ICszNyw5 IEBAIHByb2MgcGFzY2FsX2luaXQge30gewogICAgICBnbG9iYWwgcGFzY2FsX2NvbXBpbGVyX2lz X2ZwYwogICAgICBnbG9iYWwgZ3BjX2NvbXBpbGVyCkBAIC0xNDM3OCwxMCArMTQzMTcsMTAgQEAg aW5kZXggODkxZGEzNy4uMjM2YzVjYSAxMDA2NDQKICAgICAgfQogICAgICBzZXQgcGFzY2FsX2lu aXRfZG9uZSAxCiAgfSAgIAotZGlmZiAtLWdpdCBhL2dkYi90aHJlYWQuYyBiL2dkYi90aHJlYWQu YwotaW5kZXggNmFkMTgwNy4uYWVmOWRjZSAxMDA2NDQKLS0tLSBhL2dkYi90aHJlYWQuYwotKysr IGIvZ2RiL3RocmVhZC5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGhyZWFkLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3RocmVhZC5jCTIw MTEtMDQtMTkgMTc6MjQ6NDkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvdGhyZWFkLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKIEBAIC0x NDM4LDcgKzE0MzgsOCBAQCB1cGRhdGVfdGhyZWFkX2xpc3QgKHZvaWQpCiAgICAgbm8gdGhyZWFk IGlzIHNlbGVjdGVkLCBvciBubyB0aHJlYWRzIGV4aXN0LiAgKi8KICAKQEAgLTE0MzkyLDcgKzE0 MzMxLDcgQEAgaW5kZXggNmFkMTgwNy4uYWVmOWRjZSAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgdGhy ZWFkX2luZm8gKnRwID0gZmluZF90aHJlYWRfcHRpZCAoaW5mZXJpb3JfcHRpZCk7CiAgCi1AQCAt MTQ0OSw2ICsxNDUwLDE1IEBAIHRocmVhZF9pZF9tYWtlX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwgc3RydWN0IGludGVybmFsdmFyICp2YXIpCitAQCAtMTQ0OSw2ICsxNDUwLDE1IEBA IHRocmVhZF9pZF9tYWtlX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAvKiBDb21tYW5kcyB3 aXRoIGEgcHJlZml4IG9mIGB0aHJlYWQnLiAgKi8KICBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAq dGhyZWFkX2NtZF9saXN0ID0gTlVMTDsKICAKQEAgLTE0NDA4LDE3ICsxNDM0NywxNyBAQCBpbmRl eCA2YWQxODA3Li5hZWY5ZGNlIDEwMDY0NAogIHZvaWQKICBfaW5pdGlhbGl6ZV90aHJlYWQgKHZv aWQpCiAgewotQEAgLTE0OTQsNSArMTUwNCw1IEBAIFNob3cgcHJpbnRpbmcgb2YgdGhyZWFkIGV2 ZW50cyAoc3VjaCBhcyB0aHJlYWQgc3RhcnQgYW5kIGV4aXQpLiIpLCBOVUxMLAorQEAgLTE0OTQs NSArMTUwNCw1IEBAIFNob3cgcHJpbnRpbmcgb2YgdGhyZWFkIGV2ZW50cyAoc3VjaCBhcyAKICAg ICAgICAgICBzaG93X3ByaW50X3RocmVhZF9ldmVudHMsCiAgICAgICAgICAgJnNldHByaW50bGlz dCwgJnNob3dwcmludGxpc3QpOwogIAogLSAgY3JlYXRlX2ludGVybmFsdmFyX3R5cGVfbGF6eSAo Il90aHJlYWQiLCB0aHJlYWRfaWRfbWFrZV92YWx1ZSk7CiArICBjcmVhdGVfaW50ZXJuYWx2YXJf dHlwZV9sYXp5ICgiX3RocmVhZCIsICZ0aHJlYWRfZnVuY3MsIE5VTEwpOwogIH0KLWRpZmYgLS1n aXQgYS9nZGIvdG9wLmMgYi9nZGIvdG9wLmMKLWluZGV4IGEyNTU1MGYuLjg3ZjBiNDEgMTAwNjQ0 Ci0tLS0gYS9nZGIvdG9wLmMKLSsrKyBiL2dkYi90b3AuYworSW5kZXg6IGdkYi03LjIuOTAuMjAx MTA0MjkvZ2RiL3RvcC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmln L2dkYi90b3AuYwkyMDExLTAzLTEyIDIzOjU5OjI0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03 LjIuOTAuMjAxMTA0MjkvZ2RiL3RvcC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICsw MjAwCiBAQCAtMzQzLDYgKzM0Myw5IEBAIHZvaWQKICBwcmVwYXJlX2V4ZWN1dGVfY29tbWFuZCAo dm9pZCkKICB7CkBAIC0xNDQyOSwxMCArMTQzNjgsMTAgQEAgaW5kZXggYTI1NTUwZi4uODdmMGI0 MSAxMDA2NDQKICAKICAgIC8qIFdpdGggbXVsdGlwbGUgdGhyZWFkcyBydW5uaW5nIHdoaWxlIHRo ZSBvbmUgd2UncmUgZXhhbWluaW5nIGlzCiAgICAgICBzdG9wcGVkLCB0aGUgZGNhY2hlIGNhbiBn ZXQgc3RhbGUgd2l0aG91dCB1cyBiZWluZyBhYmxlIHRvIGRldGVjdAotZGlmZiAtLWdpdCBhL2dk Yi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCi1pbmRleCAzYWUzNWQwLi4xY2IzOWVh IDEwMDY0NAotLS0tIGEvZ2RiL3RyYWNlcG9pbnQuYwotKysrIGIvZ2RiL3RyYWNlcG9pbnQuYwor SW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3RyYWNlcG9pbnQuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTEtMDMtMTgg MTk6NDc6NTYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdHJh Y2Vwb2ludC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCiBAQCAtMTYwMCw2 ICsxNjAwLDggQEAgc3RhcnRfdHJhY2luZyAodm9pZCkKICAKICAgIGZvciAoaXggPSAwOyBWRUNf aXRlcmF0ZSAoYnJlYWtwb2ludF9wLCB0cF92ZWMsIGl4LCB0KTsgaXgrKykKQEAgLTE0NDUyLDcg KzE0MzkxLDcgQEAgaW5kZXggM2FlMzVkMC4uMWNiMzllYSAxMDA2NDQKICAgICAgfQogICAgVkVD X2ZyZWUgKGJyZWFrcG9pbnRfcCwgdHBfdmVjKTsKICAKLUBAIC0xNjY5LDcgKzE2NzQsMjggQEAg dHJhY2Vfc3RvcF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMTY2OSw3 ICsxNjc0LDI4IEBAIHRyYWNlX3N0b3BfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb20KICB2 b2lkCiAgc3RvcF90cmFjaW5nICh2b2lkKQogIHsKQEAgLTE0NDgxLDcgKzE0NDIwLDcgQEAgaW5k ZXggM2FlMzVkMC4uMWNiMzllYSAxMDA2NDQKICAgIC8qIFNob3VsZCBjaGFuZ2UgaW4gcmVzcG9u c2UgdG8gcmVwbHk/ICAqLwogICAgY3VycmVudF90cmFjZV9zdGF0dXMgKCktPnJ1bm5pbmcgPSAw OwogIH0KLUBAIC00NDk3LDcgKzQ1MjMsOCBAQCBpbmZvX3N0YXRpY190cmFjZXBvaW50X21hcmtl cnNfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCitAQCAtNDQ5Nyw3ICs0NTIzLDgg QEAgaW5mb19zdGF0aWNfdHJhY2Vwb2ludF9tYXJrZXJzX2NvbW1hbmQgKAogICAgIGF2YWlsYWJs ZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0xNDQ5MSw3ICsxNDQzMCw3IEBA IGluZGV4IDNhZTM1ZDAuLjFjYjM5ZWEgMTAwNjQ0CiAgewogICAgTE9OR0VTVCBzaXplOwogICAg Z2RiX2J5dGUgKmJ1ZjsKLUBAIC00Njc2LDYgKzQ3MDMsMTUgQEAgdHJhY2VmcmFtZV9hdmFpbGFi bGVfbWVtb3J5IChWRUMobWVtX3JhbmdlX3MpICoqcmVzdWx0LAorQEAgLTQ2NzYsNiArNDcwMywx NSBAQCB0cmFjZWZyYW1lX2F2YWlsYWJsZV9tZW1vcnkgKFZFQyhtZW1fcmFuCiAgICByZXR1cm4g MDsKICB9CiAgCkBAIC0xNDUxNiwxMCArMTQ0NTUsMTAgQEAgaW5kZXggM2FlMzVkMC4uMWNiMzll YSAxMDA2NDQKICAKICAgIHRyYWNlZnJhbWVfbnVtYmVyID0gLTE7CiAgICB0cmFjZXBvaW50X251 bWJlciA9IC0xOwotZGlmZiAtLWdpdCBhL2dkYi90eXBlcHJpbnQuYyBiL2dkYi90eXBlcHJpbnQu YwotaW5kZXggMDNlNjMzMi4uY2U2ZDFlMCAxMDA2NDQKLS0tLSBhL2dkYi90eXBlcHJpbnQuYwot KysrIGIvZ2RiL3R5cGVwcmludC5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdHlw ZXByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3R5 cGVwcmludC5jCTIwMTEtMDEtMTEgMjI6NTM6MjUuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvdHlwZXByaW50LmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAw MDAgKzAyMDAKIEBAIC0zNiw2ICszNiw3IEBACiAgI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKICAj aW5jbHVkZSAiZXhjZXB0aW9ucy5oIgpAQCAtMTQ1NzMsMTEgKzE0NTEyLDExIEBAIGluZGV4IDAz ZTYzMzIuLmNlNmQxZTAgMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1kaWZmIC0tZ2l0IGEv Z2RiL3V0aWxzLmMgYi9nZGIvdXRpbHMuYwotaW5kZXggNTFkMzJiNy4uNWZlZTgwOSAxMDA2NDQK LS0tLSBhL2dkYi91dGlscy5jCi0rKysgYi9nZGIvdXRpbHMuYwotQEAgLTIyNDMsNiArMjI0Mywz NiBAQCBzZXRfYmF0Y2hfZmxhZ19hbmRfbWFrZV9jbGVhbnVwX3Jlc3RvcmVfcGFnZV9pbmZvICh2 b2lkKQorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3V0aWxzLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3V0aWxzLmMJMjAxMS0wMy0zMSAxNjoz Mjo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi91dGlscy5j CTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAwMDAwMDAwICswMjAwCitAQCAtMjI0Myw2ICsyMjQzLDM2 IEBAIHNldF9iYXRjaF9mbGFnX2FuZF9tYWtlX2NsZWFudXBfcmVzdG9yZV8KICAgIHJldHVybiBi YWNrX3RvOwogIH0KICAKQEAgLTE0NjE0LDExICsxNDU1MywxMSBAQCBpbmRleCA1MWQzMmI3Li41 ZmVlODA5IDEwMDY0NAogIC8qIFNldCB0aGUgc2NyZWVuIHNpemUgYmFzZWQgb24gTElORVNfUEVS X1BBR0UgYW5kIENIQVJTX1BFUl9MSU5FLiAgKi8KICAKICBzdGF0aWMgdm9pZAotZGlmZiAtLWdp dCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKLWluZGV4IDY4ZjY0OWYuLmFhYTQ0 ODcgMTAwNjQ0Ci0tLS0gYS9nZGIvdmFsYXJpdGguYwotKysrIGIvZ2RiL3ZhbGFyaXRoLmMKLUBA IC0xOTgsNyArMTk4LDEwIEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVl ICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxvd2VyYm91bmQpCitJbmRleDogZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvdmFsYXJpdGguYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAx MTA0Mjkub3JpZy9nZGIvdmFsYXJpdGguYwkyMDExLTAyLTE4IDIwOjEwOjQ2LjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3ZhbGFyaXRoLmMJMjAxMS0wNC0yOSAw OTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xOTgsNyArMTk4LDEwIEBAIHZhbHVlX3N1YnNj cmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBl ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICAgIHN0cnVjdCB0eXBlICpl bHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsK ICAgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHRfdHlwZSk7CkBAIC0x NDY0MSwxMCArMTQ1ODAsMTAgQEAgaW5kZXggNjhmNjQ5Zi4uYWFhNDQ4NyAxMDA2NDQKICAgIHJl dHVybiBiaW5vcF90eXBlc191c2VyX2RlZmluZWRfcCAob3AsIHZhbHVlX3R5cGUgKGFyZzEpLCB2 YWx1ZV90eXBlIChhcmcyKSk7CiAgfQogIAotZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBiL2dk Yi92YWxvcHMuYwotaW5kZXggOTkxMTViNy4uZGMyNzY0NCAxMDA2NDQKLS0tLSBhL2dkYi92YWxv cHMuYwotKysrIGIvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIv dmFsb3BzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3Zh bG9wcy5jCTIwMTEtMDMtMjkgMTk6MDQ6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvdmFsb3BzLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAy MDAKIEBAIC00Nyw2ICs0Nyw3IEBACiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAgI2luY2x1ZGUg InN5bXRhYi5oIgpAQCAtMTQ2NTMsNyArMTQ1OTIsNyBAQCBpbmRleCA5OTExNWI3Li5kYzI3NjQ0 IDEwMDY0NAogIAogIGV4dGVybiBpbnQgb3ZlcmxvYWRfZGVidWc7CiAgLyogTG9jYWwgZnVuY3Rp b25zLiAgKi8KLUBAIC05MTUsNiArOTE2LDY1IEBAIHZhbHVlX29uZSAoc3RydWN0IHR5cGUgKnR5 cGUsIGVudW0gbHZhbF90eXBlIGx2KQorQEAgLTkxNSw2ICs5MTYsNjUgQEAgdmFsdWVfb25lIChz dHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBsdmFsXwogICAgcmV0dXJuIHZhbDsKICB9CiAgCkBAIC0x NDc0NSw3ICsxNDY4NCw3IEBAIGluZGV4IDk5MTE1YjcuLmRjMjc2NDQgMTAwNjQ0CiAgICAgIH0K ICAgIGVsc2UgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9yZWdpc3RlcikKICAgICAgewot QEAgLTE1MjgsNyArMTU5NiwxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9s ICp2YXIsIHN0cnVjdCBibG9jayAqYikKK0BAIC0xNTI4LDcgKzE1OTYsMTggQEAgYWRkcmVzc19v Zl92YXJpYWJsZSAoc3RydWN0IHN5bWJvbCAqdmFyLAogICAgaWYgKChWQUxVRV9MVkFMICh2YWwp ID09IGx2YWxfbWVtb3J5ICYmIHZhbHVlX2xhenkgKHZhbCkpCiAgICAgICAgfHwgVFlQRV9DT0RF ICh0eXBlKSA9PSBUWVBFX0NPREVfRlVOQykKICAgICAgewpAQCAtMTQ3ODcsNyArMTQ3MjYsNyBA QCBpbmRleCA5OTExNWI3Li5kYzI3NjQ0IDEwMDY0NAogIH0KICAKICAvKiBHaXZlbiBhIHZhbHVl IHdoaWNoIGlzIGEgZnVuY3Rpb24sIHJldHVybiBhIHZhbHVlIHdoaWNoIGlzIGEgcG9pbnRlcgot QEAgLTM2OTUsNiArMzc3OSw4IEBAIHZhbHVlX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBp bnQgbG93Ym91bmQsIGludCBsZW5ndGgpCitAQCAtMzY5NSw2ICszNzc5LDggQEAgdmFsdWVfc2xp Y2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsbwogIAkJCQkJVFlQRV9UQVJHRVRfVFlQRSAo cmFuZ2VfdHlwZSksCiAgCQkJCQlsb3dib3VuZCwgCiAgCQkJCQlsb3dib3VuZCArIGxlbmd0aCAt IDEpOwpAQCAtMTQ3OTYsMTAgKzE0NzM1LDEwIEBAIGluZGV4IDk5MTE1YjcuLmRjMjc2NDQgMTAw NjQ0CiAgICBpZiAoVFlQRV9DT0RFIChhcnJheV90eXBlKSA9PSBUWVBFX0NPREVfQklUU1RSSU5H KQogICAgICB7CiAgICAgICAgaW50IGk7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbHByaW50LmMgYi9n ZGIvdmFscHJpbnQuYwotaW5kZXggMjg2ZWY5ZS4uMWZlNThiMSAxMDA2NDQKLS0tLSBhL2dkYi92 YWxwcmludC5jCi0rKysgYi9nZGIvdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL3ZhbHByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9y aWcvZ2RiL3ZhbHByaW50LmMJMjAxMS0wMi0xNCAxMjozNTo0NS4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi92YWxwcmludC5jCTIwMTEtMDQtMjkgMDk6NDA6NDYu MDAwMDAwMDAwICswMjAwCiBAQCAtMzYsNiArMzYsNyBAQAogICNpbmNsdWRlICJkZnAuaCIKICAj aW5jbHVkZSAicHl0aG9uL3B5dGhvbi5oIgpAQCAtMTQ4MTYsNyArMTQ3NTUsNyBAQCBpbmRleCAy ODZlZjllLi4xZmU1OGIxIDEwMDY0NAogICAgICBjYXNlIFRZUEVfQ09ERV9CSVRTVFJJTkc6CiAg ICAgICAgcmV0dXJuIDA7CiAgICAgIGRlZmF1bHQ6Ci1AQCAtMTE5Myw2ICsxMTkzLDcgQEAgdmFs X3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC0xMTkzLDYgKzEx OTMsNyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0CiAgewogICAg dW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIHVuc2lnbmVkIGxlbjsKQEAgLTE0 ODI0LDcgKzE0NzYzLDcgQEAgaW5kZXggMjg2ZWY5ZS4uMWZlNThiMSAxMDA2NDQKICAgIHN0cnVj dCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKICAgIHVuc2lnbmVkIGVsdGxlbjsKICAgIC8q IFBvc2l0aW9uIG9mIHRoZSBhcnJheSBlbGVtZW50IHdlIGFyZSBleGFtaW5pbmcgdG8gc2VlCi1A QCAtMTIwMSw5ICsxMjAyLDMzIEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5 cGUgKnR5cGUsCitAQCAtMTIwMSw5ICsxMjAyLDMzIEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50 cyAoc3RydWN0IHR5cGUgKnQKICAgIC8qIE51bWJlciBvZiByZXBldGl0aW9ucyB3ZSBoYXZlIGRl dGVjdGVkIHNvIGZhci4gICovCiAgICB1bnNpZ25lZCBpbnQgcmVwczsKICAgIExPTkdFU1QgbG93 X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAtMTQ4NjAsNyArMTQ3OTksNyBAQCBpbmRleCAyODZlZjll Li4xZmU1OGIxIDEwMDY0NAogICAgaW5kZXhfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7 CiAgCiAgICBpZiAoZ2V0X2FycmF5X2JvdW5kcyAodHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91 bmQpKQotQEAgLTEyODQsNiArMTMwOSw4IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3Ry dWN0IHR5cGUgKnR5cGUsCitAQCAtMTI4NCw2ICsxMzA5LDggQEAgdmFsX3ByaW50X2FycmF5X2Vs ZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdAogICAgICB7CiAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAo c3RyZWFtLCAiLi4uIik7CiAgICAgIH0KQEAgLTE0ODY5LDEwICsxNDgwOCwxMCBAQCBpbmRleCAy ODZlZjllLi4xZmU1OGIxIDEwMDY0NAogIH0KICAKICAvKiBSZWFkIExFTiBieXRlcyBvZiB0YXJn ZXQgbWVtb3J5IGF0IGFkZHJlc3MgTUVNQUREUiwgcGxhY2luZyB0aGUKLWRpZmYgLS1naXQgYS9n ZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5jCi1pbmRleCAyYWNiMWRmLi42NzQ0Yjc2IDEwMDY0NAot LS0tIGEvZ2RiL3ZhbHVlLmMKLSsrKyBiL2dkYi92YWx1ZS5jCitJbmRleDogZ2RiLTcuMi45MC4y MDExMDQyOS9nZGIvdmFsdWUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjku b3JpZy9nZGIvdmFsdWUuYwkyMDExLTAyLTI3IDIxOjU3OjE1LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3ZhbHVlLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAw MDAwMDAgKzAyMDAKIEBAIC00Myw2ICs0Myw3IEBACiAgI2luY2x1ZGUgInB5dGhvbi9weXRob24u aCIKICAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTE0ODk3LDcgKzE0ODM2LDcgQEAgaW5kZXggMmFj YjFkZi4uNjc0NGI3NiAxMDA2NDQKICAgIGlmICh3aG9sZS0+bHZhbCA9PSBsdmFsX2NvbXB1dGVk KQogICAgICB7CiAgICAgICAgc3RydWN0IGx2YWxfZnVuY3MgKmZ1bmNzID0gd2hvbGUtPmxvY2F0 aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTEzNTIsNiArMTM1NiwxMiBAQCBzZXRfdmFsdWVfY29t cG9uZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwKK0BAIC0xMzUyLDYgKzEz NTYsMTIgQEAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbAogICAgICAg IGlmIChmdW5jcy0+Y29weV9jbG9zdXJlKQogICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5j b21wdXRlZC5jbG9zdXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwogICAgICB9CkBA IC0xNDkxMCw3ICsxNDg0OSw3IEBAIGluZGV4IDJhY2IxZGYuLjY3NDRiNzYgMTAwNjQ0CiAgfQog IAogIAwKLUBAIC0xNDg1LDYgKzE0OTUsMzEgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAs IGludCBmcm9tX3R0eSkKK0BAIC0xNDg1LDYgKzE0OTUsMzEgQEAgc2hvd192YWx1ZXMgKGNoYXIg Km51bV9leHAsIGludCBmcm9tX3R0eQogICAgICAgIG51bV9leHBbMV0gPSAnXDAnOwogICAgICB9 CiAgfQpAQCAtMTUwMDEsNyArMTQ5NDAsNyBAQCBpbmRleCAyYWNiMWRmLi42NzQ0Yjc2IDEwMDY0 NAogIC8qIExvb2sgdXAgYW4gaW50ZXJuYWwgdmFyaWFibGUgd2l0aCBuYW1lIE5BTUUuICBOQU1F IHNob3VsZCBub3QKICAgICBub3JtYWxseSBpbmNsdWRlIGEgZG9sbGFyIHNpZ24uCiAgCi1AQCAt MTcxMyw3ICsxNzc2LDggQEAgdmFsdWVfb2ZfaW50ZXJuYWx2YXIgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhcikKK0BAIC0xNzEzLDcgKzE3NzYsOCBAQCB2 YWx1ZV9vZl9pbnRlcm5hbHZhciAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICAgICAgYnJlYWs7CiAg CiAgICAgIGNhc2UgSU5URVJOQUxWQVJfTUFLRV9WQUxVRToKQEAgLTE1MDExLDcgKzE0OTUwLDcg QEAgaW5kZXggMmFjYjFkZi4uNjc0NGI3NiAxMDA2NDQKICAgICAgICBicmVhazsKICAKICAgICAg ZGVmYXVsdDoKLUBAIC0xOTA5LDYgKzE5NzMsMTEgQEAgY2xlYXJfaW50ZXJuYWx2YXIgKHN0cnVj dCBpbnRlcm5hbHZhciAqdmFyKQorQEAgLTE5MDksNiArMTk3MywxMSBAQCBjbGVhcl9pbnRlcm5h bHZhciAoc3RydWN0IGludGVybmFsdmFyICp2CiAgICAgICAgeGZyZWUgKHZhci0+dS5zdHJpbmcp OwogICAgICAgIGJyZWFrOwogIApAQCAtMTUwMjMsNyArMTQ5NjIsNyBAQCBpbmRleCAyYWNiMWRm Li42NzQ0Yjc2IDEwMDY0NAogICAgICBkZWZhdWx0OgogICAgICAgIGJyZWFrOwogICAgICB9Ci1A QCAtMTk2Myw2ICsyMDMyLDM4IEBAIGNhbGxfaW50ZXJuYWxfZnVuY3Rpb24gKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLAorQEAgLTE5NjMsNiArMjAzMiwzOCBAQCBjYWxsX2ludGVybmFsX2Z1bmN0 aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICByZXR1cm4gKCppZm4tPmhhbmRsZXIpIChnZGJhcmNo LCBsYW5ndWFnZSwgaWZuLT5jb29raWUsIGFyZ2MsIGFyZ3YpOwogIH0KICAKQEAgLTE1MDYyLDcg KzE1MDAxLDcgQEAgaW5kZXggMmFjYjFkZi4uNjc0NGI3NiAxMDA2NDQKICAvKiBUaGUgJ2Z1bmN0 aW9uJyBjb21tYW5kLiAgVGhpcyBkb2VzIG5vdGhpbmcgLS0gaXQgaXMganVzdCBhCiAgICAgcGxh Y2Vob2xkZXIgdG8gbGV0ICJoZWxwIGZ1bmN0aW9uIE5BTUUiIHdvcmsuICBUaGlzIGlzIGFsc28g dXNlZCBhcwogICAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3ViLWNvbW1hbmQgdGhhdCBp cyBjcmVhdGVkIHdoZW4KLUBAIC0yMDEwLDExICsyMTExLDEwIEBAIHByZXNlcnZlX29uZV92YWx1 ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMjAx MCwxMSArMjExMSwxMCBAQCBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUs CiAgCQkgICAgaHRhYl90IGNvcGllZF90eXBlcykKICB7CiAgICBpZiAoVFlQRV9PQkpGSUxFICh2 YWx1ZS0+dHlwZSkgPT0gb2JqZmlsZSkKQEAgLTE1MDc2LDcgKzE1MDE1LDcgQEAgaW5kZXggMmFj YjFkZi4uNjc0NGI3NiAxMDA2NDQKICAJCQkJCQkgY29waWVkX3R5cGVzKTsKICB9CiAgCi1AQCAt MjAyOSw3ICsyMTI5LDcgQEAgcHJlc2VydmVfb25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJu YWx2YXIgKnZhciwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMjAyOSw3ICsyMTI5LDcg QEAgcHJlc2VydmVfb25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYQogICAgICBjYXNlIElO VEVSTkFMVkFSX0lOVEVHRVI6CiAgICAgICAgaWYgKHZhci0+dS5pbnRlZ2VyLnR5cGUgJiYgVFlQ RV9PQkpGSUxFICh2YXItPnUuaW50ZWdlci50eXBlKSA9PSBvYmpmaWxlKQogIAl2YXItPnUuaW50 ZWdlci50eXBlCkBAIC0xNTA4NSw3ICsxNTAyNCw3IEBAIGluZGV4IDJhY2IxZGYuLjY3NDRiNzYg MTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgCiAgICAgIGNhc2UgSU5URVJOQUxWQVJfVkFMVUU6Ci1A QCAtMjA4MCwxNCArMjE4MCwyMiBAQCBzaG93X2NvbnZlbmllbmNlIChjaGFyICppZ25vcmUsIGlu dCBmcm9tX3R0eSkKK0BAIC0yMDgwLDE0ICsyMTgwLDIyIEBAIHNob3dfY29udmVuaWVuY2UgKGNo YXIgKmlnbm9yZSwgaW50IGZyb20KICAgIGdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsK ICAgIGZvciAodmFyID0gaW50ZXJuYWx2YXJzOyB2YXI7IHZhciA9IHZhci0+bmV4dCkKICAgICAg ewpAQCAtMTUxMTEsNyArMTUwNTAsNyBAQCBpbmRleCAyYWNiMWRmLi42NzQ0Yjc2IDEwMDY0NAog ICAgICB9CiAgICBpZiAoIXZhcnNlZW4pCiAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBk ZWJ1Z2dlciBjb252ZW5pZW5jZSB2YXJpYWJsZXMgbm93IGRlZmluZWQuXG4iCi1AQCAtMzA0Nyw3 ICszMTU1LDI0IEBAIHZhbHVlX2Zyb21faGlzdG9yeV9yZWYgKGNoYXIgKmgsIGNoYXIgKiplbmRw KQorQEAgLTMwNDcsNyArMzE1NSwyNCBAQCB2YWx1ZV9mcm9tX2hpc3RvcnlfcmVmIChjaGFyICpo LCBjaGFyICoqCiAgc3RydWN0IHZhbHVlICoKICBjb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKmFy ZykKICB7CkBAIC0xNTE0OCwxMSArMTUwODcsMTEgQEAgaW5kZXggMmFjYjFkZi4uNjc0NGI3NiAx MDA2NDQKICsgIG9ic2VydmVyX2F0dGFjaF9tYXJrX3VzZWQgKHZhbHVlX3R5cGVzX21hcmtfdXNl ZCk7CiArI2VuZGlmCiAgfQotZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgK LWluZGV4IDA4ODljZWYuLjRiNTFhNGEgMTAwNjQ0Ci0tLS0gYS9nZGIvdmFsdWUuaAotKysrIGIv Z2RiL3ZhbHVlLmgKLUBAIC00NzMsNiArNDczLDEwIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZh bHVlX2Zyb21fZGVjZmxvYXQgKHN0cnVjdCB0eXBlICp0eXBlLAorSW5kZXg6IGdkYi03LjIuOTAu MjAxMTA0MjkvZ2RiL3ZhbHVlLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5 Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxMS0wMy0wNCAyMTowNzoyMi4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi92YWx1ZS5oCTIwMTEtMDQtMjkgMDk6NDA6NDYuMDAw MDAwMDAwICswMjAwCitAQCAtNDczLDYgKzQ3MywxMCBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV9mcm9tX2RlY2Zsb2F0CiAgCQkJCQkgIGNvbnN0IGdkYl9ieXRlICpkZWNieXRlcyk7CiAg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZnJvbV9oaXN0b3J5X3JlZiAoY2hhciAqLCBjaGFy ICoqKTsKICAKQEAgLTE1MTYzLDcgKzE1MTAyLDcgQEAgaW5kZXggMDg4OWNlZi4uNGI1MWE0YSAx MDA2NDQKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hdCAoc3RydWN0IHR5cGUgKnR5cGUs IENPUkVfQUREUiBhZGRyKTsKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hdF9sYXp5IChz dHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpOwogIAotQEAgLTY5NywxMCArNzAxLDUy IEBAIGV4dGVybiBzdHJ1Y3QgaW50ZXJuYWx2YXIgKmxvb2t1cF9vbmx5X2ludGVybmFsdmFyIChj b25zdCBjaGFyICpuYW1lKTsKK0BAIC02OTcsMTAgKzcwMSw1MiBAQCBleHRlcm4gc3RydWN0IGlu dGVybmFsdmFyICpsb29rdXBfb25seV9pCiAgCiAgZXh0ZXJuIHN0cnVjdCBpbnRlcm5hbHZhciAq Y3JlYXRlX2ludGVybmFsdmFyIChjb25zdCBjaGFyICpuYW1lKTsKICAKQEAgLTE1MjE5LDExICsx NTE1OCwxMSBAQCBpbmRleCAwODg5Y2VmLi40YjUxYTRhIDEwMDY0NAogIAogIGV4dGVybiBzdHJ1 Y3QgaW50ZXJuYWx2YXIgKmxvb2t1cF9pbnRlcm5hbHZhciAoY29uc3QgY2hhciAqbmFtZSk7CiAg Ci1kaWZmIC0tZ2l0IGEvZ2RiL3dpbmRvd3MtdGRlcC5jIGIvZ2RiL3dpbmRvd3MtdGRlcC5jCi1p bmRleCAzMWRkZDE0Li5iMzE5MjUwIDEwMDY0NAotLS0tIGEvZ2RiL3dpbmRvd3MtdGRlcC5jCi0r KysgYi9nZGIvd2luZG93cy10ZGVwLmMKLUBAIC0yNjgsNyArMjY4LDcgQEAgc3RhdGljIHN0cnVj dCBsdmFsX2Z1bmNzIHRsYl92YWx1ZV9mdW5jcyA9CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQy OS9nZGIvd2luZG93cy10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5 Lm9yaWcvZ2RiL3dpbmRvd3MtdGRlcC5jCTIwMTEtMDEtMTIgMDI6MjM6MjkuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvd2luZG93cy10ZGVwLmMJMjAxMS0wNC0y OSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yNjgsNyArMjY4LDcgQEAgc3RhdGljIHN0 cnVjdCBsdmFsX2Z1bmNzIHRsYl92YWx1ZV9mdW5jcwogICAgIGlmIHRoZXJlJ3Mgbm8gb2JqZWN0 IGF2YWlsYWJsZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0xNTI1NSwxMSAr MTUxOTQsMTEgQEAgaW5kZXggMzFkZGQxNC4uYjMxOTI1MCAxMDA2NDQKIC0gIGNyZWF0ZV9pbnRl cm5hbHZhcl90eXBlX2xhenkgKCJfdGxiIiwgdGxiX21ha2VfdmFsdWUpOwogKyAgY3JlYXRlX2lu dGVybmFsdmFyX3R5cGVfbGF6eSAoIl90bGIiLCAmdGxiX2Z1bmNzLCBOVUxMKTsKICB9Ci1kaWZm IC0tZ2l0IGEvZ2RiL3hjb2ZmcmVhZC5jIGIvZ2RiL3hjb2ZmcmVhZC5jCi1pbmRleCAwODEwODBj Li5mNzFkYmZlIDEwMDY0NAotLS0tIGEvZ2RiL3hjb2ZmcmVhZC5jCi0rKysgYi9nZGIveGNvZmZy ZWFkLmMKLUBAIC0zMDkwLDYgKzMwOTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMg eGNvZmZfc3ltX2ZucyA9CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIveGNvZmZyZWFk LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3hjb2ZmcmVh ZC5jCTIwMTEtMDMtMDcgMTc6MTc6MjkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi45MC4y MDExMDQyOS9nZGIveGNvZmZyZWFkLmMJMjAxMS0wNC0yOSAwOTo0MDo0Ni4wMDAwMDAwMDAgKzAy MDAKK0BAIC0zMDkwLDYgKzMwOTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgeGNv ZmZfc3ltX2ZuCiAgICBkZWZhdWx0X3N5bWZpbGVfc2VnbWVudHMsCS8qIEdldCBzZWdtZW50IGlu Zm9ybWF0aW9uIGZyb20gYSBmaWxlLiAgKi8KICAgIGFpeF9wcm9jZXNzX2xpbmVub3MsCiAgICBk ZWZhdWx0X3N5bWZpbGVfcmVsb2NhdGUsCS8qIFJlbG9jYXRlIGEgZGVidWcgc2VjdGlvbi4gICov CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUtMW9mNS5wYXRjaCBi L2dkYi1iejY0NTc3My1jYXNlLWluc2Vuc2l0aXZlLTFvZjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uN2JhYzZmZgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejY0 NTc3My1jYXNlLWluc2Vuc2l0aXZlLTFvZjUucGF0Y2gKQEAgLTAsMCArMSw4NCBAQAorW3BhdGNo XSBDb2RlIGNsZWFudXA6IE5ldyBTWU1CT0xfSEFTSF9ORVhUCitodHRwOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLXBhdGNoZXMvMjAxMS0wNC9tc2cwMDAyMi5odG1sCitodHRwOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLWN2cy8yMDExLTA0L21zZzAwMDQzLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hh bmdlTG9nCTIwMTEvMDQvMDYgMDM6MjQ6MjIJMS4xMjkwOAorIyMjIHNyYy9nZGIvQ2hhbmdlTG9n CTIwMTEvMDQvMDYgMTk6NTA6MDMJMS4xMjkwOQorIyMgLTEsMyArMSwxMiBAQAorKzIwMTEtMDQt MDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJQ29k ZSBjbGVhbnVwLgorKwkqIGRpY3Rpb25hcnkuYyAoZGljdF9oYXNoKTogVXNlIFNZTUJPTF9IQVNI X05FWFQuCisrCSogZHdhcmYycmVhZC5jIChtYXBwZWRfaW5kZXhfc3RyaW5nX2hhc2gpOiBSZWZl ciB0byBTWU1CT0xfSEFTSF9ORVhUCisrCWluIHRoZSBmdW5jdGlvbiBjb21tZW50LCBhIG5ldyBu b3RlIG9uIHZhbHVlcyBjb21wYXRpYmlsaXR5LgorKwkqIG1pbnN5bXMuYyAobXN5bWJvbF9oYXNo X2l3LCBtc3ltYm9sX2hhc2gpOiBVc2UgU1lNQk9MX0hBU0hfTkVYVC4KKysJKiBzeW10YWIuaCAo U1lNQk9MX0hBU0hfTkVYVCk6IE5ldy4KKysKKyAyMDExLTA0LTA2ICBUaGlhZ28gSnVuZyBCYXVl cm1hbm4gIDxiYXVlcm1hbkBici5pYm0uY29tPgorIAorIAkqIHBwYy1saW51eC1uYXQuYyAoY2hl Y2tfY29uZGl0aW9uKTogQWRkIGxlbiBvdXRwdXQgcGFyYW1ldGVyLgorLS0tIHNyYy9nZGIvZGlj dGlvbmFyeS5jCTIwMTEvMDEvMDcgMTk6MzY6MTUJMS4yMQorKysrIHNyYy9nZGIvZGljdGlvbmFy eS5jCTIwMTEvMDQvMDYgMTk6NTA6MDQJMS4yMgorQEAgLTgyNiw3ICs4MjYsNyBAQAorIAkgICAg fQorIAkgIC8qIEZBTEwgVEhST1VHSCAqLworIAlkZWZhdWx0OgorLQkgIGhhc2ggPSBoYXNoICog NjcgKyAqc3RyaW5nIC0gMTEzOworKwkgIGhhc2ggPSBTWU1CT0xfSEFTSF9ORVhUIChoYXNoLCAq c3RyaW5nKTsKKyAJICBzdHJpbmcgKz0gMTsKKyAJICBicmVhazsKKyAJfQorLS0tIHNyYy9nZGIv ZHdhcmYycmVhZC5jCTIwMTEvMDQvMDQgMTQ6MTA6MTIJMS41MjAKKysrKyBzcmMvZ2RiL2R3YXJm MnJlYWQuYwkyMDExLzA0LzA2IDE5OjUwOjA0CTEuNTIxCitAQCAtMTk2MiwxMSArMTk2MiwxMSBA QAorICAgZG9fY2xlYW51cHMgKGNsZWFudXApOworIH0KKyAKKy0vKiBUaGUgaGFzaCBmdW5jdGlv biBmb3Igc3RyaW5ncyBpbiB0aGUgbWFwcGVkIGluZGV4LiAgVGhpcyBpcyB0aGUKKy0gICBzYW1l IGFzIHRoZSBoYXNodGFiLmMgaGFzaCBmdW5jdGlvbiwgYnV0IHdlIGtlZXAgYSBzZXBhcmF0ZSBj b3B5IHRvCistICAgbWFpbnRhaW4gY29udHJvbCBvdmVyIHRoZSBpbXBsZW1lbnRhdGlvbi4gIFRo aXMgaXMgbmVjZXNzYXJ5CistICAgYmVjYXVzZSB0aGUgaGFzaCBmdW5jdGlvbiBpcyB0aWVkIHRv IHRoZSBmb3JtYXQgb2YgdGhlIG1hcHBlZCBpbmRleAorLSAgIGZpbGUuICAqLworKy8qIFRoZSBo YXNoIGZ1bmN0aW9uIGZvciBzdHJpbmdzIGluIHRoZSBtYXBwZWQgaW5kZXguICBUaGlzIGlzIHRo ZSBzYW1lIGFzCisrICAgU1lNQk9MX0hBU0hfTkVYVCwgYnV0IHdlIGtlZXAgYSBzZXBhcmF0ZSBj b3B5IHRvIG1haW50YWluIGNvbnRyb2wgb3ZlciB0aGUKKysgICBpbXBsZW1lbnRhdGlvbi4gIFRo aXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGhhc2ggZnVuY3Rpb24gaXMgdGllZCB0byB0aGUK KysgICBmb3JtYXQgb2YgdGhlIG1hcHBlZCBpbmRleCBmaWxlLiAgVGhlIGhhc2ggdmFsdWVzIGRv IG5vdCBoYXZlIHRvIG1hdGNoIHdpdGgKKysgICBTWU1CT0xfSEFTSF9ORVhULiAgKi8KKyAKKyBz dGF0aWMgaGFzaHZhbF90CisgbWFwcGVkX2luZGV4X3N0cmluZ19oYXNoIChjb25zdCB2b2lkICpw KQorLS0tIHNyYy9nZGIvbWluc3ltcy5jCTIwMTEvMDMvMjggMjA6Mjk6NTEJMS44MQorKysrIHNy Yy9nZGIvbWluc3ltcy5jCTIwMTEvMDQvMDYgMTk6NTA6MDUJMS44MgorQEAgLTkxLDcgKzkxLDcg QEAKKyAJKytzdHJpbmc7CisgICAgICAgaWYgKCpzdHJpbmcgJiYgKnN0cmluZyAhPSAnKCcpCisg CXsKKy0JICBoYXNoID0gaGFzaCAqIDY3ICsgKnN0cmluZyAtIDExMzsKKysJICBoYXNoID0gU1lN Qk9MX0hBU0hfTkVYVCAoaGFzaCwgKnN0cmluZyk7CisgCSAgKytzdHJpbmc7CisgCX0KKyAgICAg fQorQEAgLTEwNiw3ICsxMDYsNyBAQAorICAgdW5zaWduZWQgaW50IGhhc2ggPSAwOworIAorICAg Zm9yICg7ICpzdHJpbmc7ICsrc3RyaW5nKQorLSAgICBoYXNoID0gaGFzaCAqIDY3ICsgKnN0cmlu ZyAtIDExMzsKKysgICAgaGFzaCA9IFNZTUJPTF9IQVNIX05FWFQgKGhhc2gsICpzdHJpbmcpOwor ICAgcmV0dXJuIGhhc2g7CisgfQorIAorLS0tIHNyYy9nZGIvc3ltdGFiLmgJMjAxMS8wNC8wNCAx NToxOTo1OQkxLjE3NworKysrIHNyYy9nZGIvc3ltdGFiLmgJMjAxMS8wNC8wNiAxOTo1MDowNQkx LjE3OAorQEAgLTEwMDQsNiArMTAwNCwxMiBAQAorIAorIGV4dGVybiB1bnNpZ25lZCBpbnQgbXN5 bWJvbF9oYXNoIChjb25zdCBjaGFyICopOworIAorKy8qIENvbXB1dGUgdGhlIG5leHQgaGFzaCB2 YWx1ZSBmcm9tIHByZXZpb3VzIEhBU0ggYW5kIHRoZSBjaGFyYWN0ZXIgQy4gIFRoaXMKKysgICBp cyBvbmx5IGEgR0RCIGluLW1lbW9yeSBjb21wdXRlZCB2YWx1ZSB3aXRoIG5vIGV4dGVybmFsIGZp bGVzIGNvbXBhdGliaWxpdHkKKysgICByZXF1aXJlbWVudHMuICAqLworKworKyNkZWZpbmUgU1lN Qk9MX0hBU0hfTkVYVChoYXNoLCBjKSAoKGhhc2gpICogNjcgKyAoYykgLSAxMTMpCisrCisgZXh0 ZXJuIHN0cnVjdCBvYmpmaWxlICogbXN5bWJvbF9vYmpmaWxlIChzdHJ1Y3QgbWluaW1hbF9zeW1i b2wgKnN5bSk7CisgCisgZXh0ZXJuIHZvaWQKCmRpZmYgLS1naXQgYS9nZGItYno2NDU3NzMtY2Fz ZS1pbnNlbnNpdGl2ZS0yb2Y1LnBhdGNoIGIvZ2RiLWJ6NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUt Mm9mNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2YyZTMyCi0t LSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUtMm9mNS5wYXRj aApAQCAtMCwwICsxLDEzOSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVz LzIwMTEtMDQvbXNnMDAxMjQuaHRtbAorU3ViamVjdDogW3BhdGNoIDEvM10gY2FzZSBpbnNlbnNp dGl2ZTogUmVmb3JtYXQgY29kZQorCitIaSwKKworanVzdCBzb21lIHJlZm9ybWF0dGluZyB0byBt YWtlIHRoZSBsYXRlciBwYXRjaCBtb3JlIGNsZWFyLiAgVGhlcmUgc2hvdWxkIGJlIG5vCitmdW5j dGlvbmFsaXR5IGRpZmZlcmVuY2UgYnkgdGhpcyBwYXRjaC4gIGMxK2MyIGFyZSBhIGJpdCB1Z2x5 IGJ1dCBJIGZvdW5kIGFueQorb3RoZXIgc29sdXRpb24gYSBiaXQgdWdseS4KKworCitUaGFua3Ms CitKYW4KKworCitnZGIvCisyMDExLTA0LTA4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+CisKKwlGb3JtYXQgdGhlIGNvZGUgZm9yIHRoZSBuZXh0IHBhdGNoLgor CSogZHdhcmYycmVhZC5jIChzdHJ1Y3QgbWFwcGVkX2luZGV4KTogSW5jbHVkZSBkZWxpbWl0aW5n IG5ld2xpbmVzLgorCSogdXRpbHMuYyAoc3RyY21wX2l3X29yZGVyZWQpOiBSZWZvcm1hdCB0aGUg Y29kZSBmb3IgdGhlIG5leHQgcGF0Y2guCisJTmV3IHZhcmlhYmxlcyBjMSBhbmQgYzIuCisKKy0t LSBhL2dkYi9kd2FyZjJyZWFkLmMKKysrKyBiL2dkYi9kd2FyZjJyZWFkLmMKK0BAIC0xNTAsMTQg KzE1MCwxOSBAQCBzdHJ1Y3QgbWFwcGVkX2luZGV4CisgeworICAgLyogVGhlIHRvdGFsIGxlbmd0 aCBvZiB0aGUgYnVmZmVyLiAgKi8KKyAgIG9mZl90IHRvdGFsX3NpemU7CisrCisgICAvKiBBIHBv aW50ZXIgdG8gdGhlIGFkZHJlc3MgdGFibGUgZGF0YS4gICovCisgICBjb25zdCBnZGJfYnl0ZSAq YWRkcmVzc190YWJsZTsKKysKKyAgIC8qIFNpemUgb2YgdGhlIGFkZHJlc3MgdGFibGUgZGF0YSBp biBieXRlcy4gICovCisgICBvZmZzZXRfdHlwZSBhZGRyZXNzX3RhYmxlX3NpemU7CisrCisgICAv KiBUaGUgc3ltYm9sIHRhYmxlLCBpbXBsZW1lbnRlZCBhcyBhIGhhc2ggdGFibGUuICAqLworICAg Y29uc3Qgb2Zmc2V0X3R5cGUgKnN5bWJvbF90YWJsZTsKKysKKyAgIC8qIFNpemUgaW4gc2xvdHMs IGVhY2ggc2xvdCBpcyAyIG9mZnNldF90eXBlcy4gICovCisgICBvZmZzZXRfdHlwZSBzeW1ib2xf dGFibGVfc2xvdHM7CisrCisgICAvKiBBIHBvaW50ZXIgdG8gdGhlIGNvbnN0YW50IHBvb2wuICAq LworICAgY29uc3QgY2hhciAqY29uc3RhbnRfcG9vbDsKKyB9OworLS0tIGEvZ2RiL3V0aWxzLmMK KysrKyBiL2dkYi91dGlscy5jCitAQCAtMzAyMyw0OCArMzAyMyw1NSBAQCBzdHJjbXBfaXcgKGNv bnN0IGNoYXIgKnN0cmluZzEsIGNvbnN0IGNoYXIgKnN0cmluZzIpCisgaW50Cisgc3RyY21wX2l3 X29yZGVyZWQgKGNvbnN0IGNoYXIgKnN0cmluZzEsIGNvbnN0IGNoYXIgKnN0cmluZzIpCisgewor LSAgd2hpbGUgKCgqc3RyaW5nMSAhPSAnXDAnKSAmJiAoKnN0cmluZzIgIT0gJ1wwJykpCisrICAv KiBGb3JtYXR0aW5nIHN0dWIuICAqLworKyAgaWYgKDEpCisgICAgIHsKKy0gICAgICB3aGlsZSAo aXNzcGFjZSAoKnN0cmluZzEpKQorLQl7CistCSAgc3RyaW5nMSsrOworLQl9CistICAgICAgd2hp bGUgKGlzc3BhY2UgKCpzdHJpbmcyKSkKKy0JeworLQkgIHN0cmluZzIrKzsKKy0JfQorLSAgICAg IGlmICgqc3RyaW5nMSAhPSAqc3RyaW5nMikKKysgICAgICAvKiBDMSBhbmQgQzIgYXJlIHZhbGlk IG9ubHkgaWYgKnN0cmluZzEgIT0gJ1wwJyAmJiAqc3RyaW5nMiAhPSAnXDAnLgorKwkgUHJvdmlk ZSBzdHViIGNoYXJhY3RlcnMgaWYgd2UgYXJlIGFscmVhZHkgYXQgdGhlIGVuZCBvZiBvbmUgb2Yg dGhlCisrCSBzdHJpbmdzLiAgKi8KKysgICAgICBjaGFyIGMxID0gJ1gnLCBjMiA9ICdYJzsKKysK KysgICAgICB3aGlsZSAoKnN0cmluZzEgIT0gJ1wwJyAmJiAqc3RyaW5nMiAhPSAnXDAnKQorIAl7 CistCSAgYnJlYWs7CisrCSAgd2hpbGUgKGlzc3BhY2UgKCpzdHJpbmcxKSkKKysJICAgIHN0cmlu ZzErKzsKKysJICB3aGlsZSAoaXNzcGFjZSAoKnN0cmluZzIpKQorKwkgICAgc3RyaW5nMisrOwor KworKwkgICAgICBjMSA9ICpzdHJpbmcxOworKwkgICAgICBjMiA9ICpzdHJpbmcyOworKwkgIGlm IChjMSAhPSBjMikKKysJICAgIGJyZWFrOworKworKwkgIGlmICgqc3RyaW5nMSAhPSAnXDAnKQor KwkgICAgeworKwkgICAgICBzdHJpbmcxKys7CisrCSAgICAgIHN0cmluZzIrKzsKKysJICAgIH0K KyAJfQorLSAgICAgIGlmICgqc3RyaW5nMSAhPSAnXDAnKQorKworKyAgICAgIHN3aXRjaCAoKnN0 cmluZzEpCisgCXsKKy0JICBzdHJpbmcxKys7CistCSAgc3RyaW5nMisrOworKwkgIC8qIENoYXJh Y3RlcnMgYXJlIG5vbi1lcXVhbCB1bmxlc3MgdGhleSdyZSBib3RoICdcMCc7IHdlIHdhbnQgdG8K KysJICAgICBtYWtlIHN1cmUgd2UgZ2V0IHRoZSBjb21wYXJpc29uIHJpZ2h0IGFjY29yZGluZyB0 byBvdXIKKysJICAgICBjb21wYXJpc29uIGluIHRoZSBjYXNlcyB3aGVyZSBvbmUgb2YgdGhlbSBp cyAnXDAnIG9yICcoJy4gICovCisrCWNhc2UgJ1wwJzoKKysJICBpZiAoKnN0cmluZzIgPT0gJ1ww JykKKysJICAgIHJldHVybiAwOworKwkgIGVsc2UKKysJICAgIHJldHVybiAtMTsKKysJY2FzZSAn KCc6CisrCSAgaWYgKCpzdHJpbmcyID09ICdcMCcpCisrCSAgICByZXR1cm4gMTsKKysJICBlbHNl CisrCSAgICByZXR1cm4gLTE7CisrCWRlZmF1bHQ6CisrCSAgaWYgKCpzdHJpbmcyID09ICdcMCcg fHwgKnN0cmluZzIgPT0gJygnKQorKwkgICAgcmV0dXJuIDE7CisrCSAgZWxzZQorKwkgICAgcmV0 dXJuIGMxIC0gYzI7CisgCX0KKyAgICAgfQorLQorLSAgc3dpdGNoICgqc3RyaW5nMSkKKy0gICAg eworLSAgICAgIC8qIENoYXJhY3RlcnMgYXJlIG5vbi1lcXVhbCB1bmxlc3MgdGhleSdyZSBib3Ro ICdcMCc7IHdlIHdhbnQgdG8KKy0JIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGNvbXBhcmlzb24gcmln aHQgYWNjb3JkaW5nIHRvIG91cgorLQkgY29tcGFyaXNvbiBpbiB0aGUgY2FzZXMgd2hlcmUgb25l IG9mIHRoZW0gaXMgJ1wwJyBvciAnKCcuICAqLworLSAgICBjYXNlICdcMCc6CistICAgICAgaWYg KCpzdHJpbmcyID09ICdcMCcpCistCXJldHVybiAwOworLSAgICAgIGVsc2UKKy0JcmV0dXJuIC0x OworLSAgICBjYXNlICcoJzoKKy0gICAgICBpZiAoKnN0cmluZzIgPT0gJ1wwJykKKy0JcmV0dXJu IDE7CistICAgICAgZWxzZQorLQlyZXR1cm4gLTE7CistICAgIGRlZmF1bHQ6CistICAgICAgaWYg KCpzdHJpbmcyID09ICcoJykKKy0JcmV0dXJuIDE7CistICAgICAgZWxzZQorLQlyZXR1cm4gKnN0 cmluZzEgLSAqc3RyaW5nMjsKKy0gICAgfQorIH0KKyAKKyAvKiBBIHNpbXBsZSBjb21wYXJpc29u IGZ1bmN0aW9uIHdpdGggb3Bwb3NpdGUgc2VtYW50aWNzIHRvIHN0cmNtcC4gICovCisKCmRpZmYg LS1naXQgYS9nZGItYno2NDU3NzMtY2FzZS1pbnNlbnNpdGl2ZS0zb2Y1LnBhdGNoIGIvZ2RiLWJ6 NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUtM29mNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jY2Q0YmYyCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NjQ1NzczLWNh c2UtaW5zZW5zaXRpdmUtM29mNS5wYXRjaApAQCAtMCwwICsxLDE4OCBAQAoraHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTEtMDQvbXNnMDAxMjUuaHRtbAorU3ViamVjdDog W3BhdGNoIDIvM10gY2FzZSBpbnNlbnNpdGl2ZTogcmVfY29tcC0+cmVnY29tcAorCitIaSwKKwor cmVfY29tcCBjYW5ub3QgYmUgcGFzc2VkIFJFR19JQ0FTRS4gIFRoZXJlZm9yZSBjaGFuZ2UgdGhl IGNvZGUuICBUaGUgc2hvdWxkCitoYXZlIG5vIGZ1bmN0aW9uYWxpdHkgaW1wYWN0LgorCitUaGUg bmV3IGJvb2xlYW4gZmllbGQgYHByZWdfcCcgY291bGQgYmUgbWF5YmUgcmVwbGFjZWQgYnkgYSBj b25kaXRpb25hbAorYHByZWcuYnVmZmVyICE9IE5VTEwnIHdoaWNoIHdvdWxkIHdvcmsgd2l0aCBs aWJpYmVydHkgcmVnY29tcCBpbXBsZW1lbnRhdGlvbgorYnV0IEkgZG8gbm90IHNlZSBpdCBndWFy YW50ZWVkIGFueXdoZXJlLiAgR0RCIGlzIGFsd2F5cyB1c2luZyBzdGF0aWMgbGliaWJlcnR5Citp bXBsZW1lbnRhdGlvbiB3aGljaCBJIGRvIG5vdCBzZWUgd2h5IGluIHRoZSBjYXNlIGl0IGlzIHJ1 bm5pbmcgb24gZ2xpYmMuCitCdXQgaWYgaXQgZ2V0cyBmaXhlZCBvbmUgZGF5IGFuZCBpdCBzdGFy dHMgdG8gdXNlIGV4dGVybmFsbHkgbGlua2VkCityZWdjb21wL3JlZ2V4ZWMgSSB3b3VsZCBmaW5k IHRoZSBgcHJlZy5idWZmZXIgIT0gTlVMTCcgY29uZGl0aW9uYWwgZGFuZ2Vyb3VzLgorCisKK1Ro YW5rcywKK0phbgorCisKK2dkYi8KKzIwMTEtMDQtMDggIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCVJlcGxhY2UgcmVfY29tcC9yZV9leGVjIGJ5IHJlZ2Nv bXAvcmVnZXhlYy4KKwkqIHN5bXRhYi5jIChzdHJ1Y3Qgc2VhcmNoX3N5bWJvbHNfZGF0YSk6IE5l dyBmaWVsZHMgcHJlZywgcHJlZ19wLgorCShzZWFyY2hfc3ltYm9sc19uYW1lX21hdGNoZXMpOiBV c2UgdGhlbSwgdXNlIHJlZ2V4ZWMuCisJKHNlYXJjaF9zeW1ib2xzKTogTmV3IHZhcmlhYmxlIHJl dHZhbF9jaGFpbiwgYWRqdXN0IHRoZSB1c2Ugb2YKKwlvbGRfY2hhaW4gYWdhaW5zdCBpdC4gIFJl cGxhY2UgcmVfY29tcCBieSByZWdjb21wLiAgVXNlIHRoZSBuZXcgc3RydWN0CisJc2VhcmNoX3N5 bWJvbHNfZGF0YSBmaWVsZHMsIHVzZSByZWdleGVjIGluc3RlYWQgb2YgcmVfZXhlYy4KKworSW5k ZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3N5bXRhYi5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9zeW10YWIuYwkyMDExLTA0LTI5IDA5OjQzOjMzLjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3N5bXRhYi5jCTIwMTEt MDQtMjkgMDk6NDM6NTUuMDAwMDAwMDAwICswMjAwCitAQCAtMjk1OCw3ICsyOTU4LDEwIEBAIHN0 cnVjdCBzZWFyY2hfc3ltYm9sc19kYXRhCisgeworICAgaW50IG5maWxlczsKKyAgIGNoYXIgKipm aWxlczsKKy0gIGNoYXIgKnJlZ2V4cDsKKysKKysgIC8qIEl0IGlzIHRydWUgaWYgUFJFRyBjb250 YWlucyB2YWxpZCBkYXRhLCBmYWxzZSBvdGhlcndpc2UuICAqLworKyAgdW5zaWduZWQgcHJlZ19w IDogMTsKKysgIHJlZ2V4X3QgcHJlZzsKKyB9OworIAorIC8qIEEgY2FsbGJhY2sgZm9yIGV4cGFu ZF9zeW10YWJzX21hdGNoaW5nLiAgKi8KK0BAIC0yOTc2LDcgKzI5NzksNyBAQCBzZWFyY2hfc3lt Ym9sc19uYW1lX21hdGNoZXMgKGNvbnN0IGNoYXIgCisgeworICAgc3RydWN0IHNlYXJjaF9zeW1i b2xzX2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7CisgCistICByZXR1cm4gZGF0YS0+cmVnZXhwID09 IE5VTEwgfHwgcmVfZXhlYyAoc3ltbmFtZSk7CisrICByZXR1cm4gIWRhdGEtPnByZWdfcCB8fCBy ZWdleGVjICgmZGF0YS0+cHJlZywgc3ltbmFtZSwgMCwgTlVMTCwgMCkgPT0gMDsKKyB9CisgCisg LyogU2VhcmNoIHRoZSBzeW1ib2wgdGFibGUgZm9yIG1hdGNoZXMgdG8gdGhlIHJlZ3VsYXIgZXhw cmVzc2lvbiBSRUdFWFAsCitAQCAtMzAyMyw5ICszMDI2LDEzIEBAIHNlYXJjaF9zeW1ib2xzIChj aGFyICpyZWdleHAsIGRvbWFpbl9lbnUKKyAgIHN0cnVjdCBzeW1ib2xfc2VhcmNoICpzcjsKKyAg IHN0cnVjdCBzeW1ib2xfc2VhcmNoICpwc3I7CisgICBzdHJ1Y3Qgc3ltYm9sX3NlYXJjaCAqdGFp bDsKKy0gIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW4gPSBOVUxMOworICAgc3RydWN0IHNlYXJj aF9zeW1ib2xzX2RhdGEgZGF0dW07CisgCisrICAvKiBPTERfQ0hBSU4gLi4gUkVUVkFMX0NIQUlO IGlzIGFsd2F5cyBmcmVlZCwgUkVUVkFMX0NIQUlOIC4uIGN1cnJlbnQKKysgICAgIENMRUFOVVBf Q0hBSU4gaXMgZnJlZWQgb25seSBpbiB0aGUgY2FzZSBvZiBhbiBlcnJvci4gICovCisrICBzdHJ1 Y3QgY2xlYW51cCAqb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwIChudWxsX2NsZWFudXAsIE5VTEwp OworKyAgc3RydWN0IGNsZWFudXAgKnJldHZhbF9jaGFpbjsKKysKKyAgIGlmIChraW5kIDwgVkFS SUFCTEVTX0RPTUFJTiB8fCBraW5kID49IEFMTF9ET01BSU4pCisgICAgIGVycm9yIChfKCJtdXN0 IHNlYXJjaCBvbiBzcGVjaWZpYyBkb21haW4iKSk7CisgCitAQCAtMzAzNiw2ICszMDQzLDcgQEAg c2VhcmNoX3N5bWJvbHMgKGNoYXIgKnJlZ2V4cCwgZG9tYWluX2VudQorIAorICAgc3IgPSAqbWF0 Y2hlcyA9IE5VTEw7CisgICB0YWlsID0gTlVMTDsKKysgIGRhdHVtLnByZWdfcCA9IDA7CisgCisg ICBpZiAocmVnZXhwICE9IE5VTEwpCisgICAgIHsKK0BAIC0zMDQ1LDYgKzMwNTMsNyBAQCBzZWFy Y2hfc3ltYm9scyAoY2hhciAqcmVnZXhwLCBkb21haW5fZW51CisgICAgICAgICAgYW5kIDxUWVBF TkFNRT4gb3IgPE9QRVJBVE9SPi4gICovCisgICAgICAgY2hhciAqb3BlbmQ7CisgICAgICAgY2hh ciAqb3BuYW1lID0gb3BlcmF0b3JfY2hhcnMgKHJlZ2V4cCwgJm9wZW5kKTsKKysgICAgICBpbnQg ZXJyY29kZTsKKyAKKyAgICAgICBpZiAoKm9wbmFtZSkKKyAJeworQEAgLTMwNzMsOCArMzA4Miwx NiBAQCBzZWFyY2hfc3ltYm9scyAoY2hhciAqcmVnZXhwLCBkb21haW5fZW51CisgCSAgICB9Cisg CX0KKyAKKy0gICAgICBpZiAoMCAhPSAodmFsID0gcmVfY29tcCAocmVnZXhwKSkpCistCWVycm9y IChfKCJJbnZhbGlkIHJlZ2V4cCAoJXMpOiAlcyIpLCB2YWwsIHJlZ2V4cCk7CisrICAgICAgZXJy Y29kZSA9IHJlZ2NvbXAgKCZkYXR1bS5wcmVnLCByZWdleHAsIFJFR19OT1NVQik7CisrICAgICAg aWYgKGVycmNvZGUgIT0gMCkKKysJeworKwkgIGNoYXIgKmVyciA9IGdldF9yZWdjb21wX2Vycm9y IChlcnJjb2RlLCAmZGF0dW0ucHJlZyk7CisrCisrCSAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgZXJy KTsKKysJICBlcnJvciAoXygiSW52YWxpZCByZWdleHAgKCVzKTogJXMiKSwgZXJyLCByZWdleHAp OworKwl9CisrICAgICAgZGF0dW0ucHJlZ19wID0gMTsKKysgICAgICBtYWtlX3JlZ2ZyZWVfY2xl YW51cCAoJmRhdHVtLnByZWcpOworICAgICB9CisgCisgICAvKiBTZWFyY2ggdGhyb3VnaCB0aGUg cGFydGlhbCBzeW10YWJzICpmaXJzdCogZm9yIGFsbCBzeW1ib2xzCitAQCAtMzA4Myw3ICszMTAw LDYgQEAgc2VhcmNoX3N5bWJvbHMgKGNoYXIgKnJlZ2V4cCwgZG9tYWluX2VudQorIAorICAgZGF0 dW0ubmZpbGVzID0gbmZpbGVzOworICAgZGF0dW0uZmlsZXMgPSBmaWxlczsKKy0gIGRhdHVtLnJl Z2V4cCA9IHJlZ2V4cDsKKyAgIEFMTF9PQkpGSUxFUyAob2JqZmlsZSkKKyAgIHsKKyAgICAgaWYg KG9iamZpbGUtPnNmKQorQEAgLTMwOTQsNiArMzExMCw4IEBAIHNlYXJjaF9zeW1ib2xzIChjaGFy ICpyZWdleHAsIGRvbWFpbl9lbnUKKyAJCQkJCQkmZGF0dW0pOworICAgfQorIAorKyAgcmV0dmFs X2NoYWluID0gb2xkX2NoYWluOworKworICAgLyogSGVyZSwgd2Ugc2VhcmNoIHRocm91Z2ggdGhl IG1pbmltYWwgc3ltYm9sIHRhYmxlcyBmb3IgZnVuY3Rpb25zCisgICAgICBhbmQgdmFyaWFibGVz IHRoYXQgbWF0Y2gsIGFuZCBmb3JjZSB0aGVpciBzeW1ib2xzIHRvIGJlIHJlYWQuCisgICAgICBU aGlzIGlzIGluIHBhcnRpY3VsYXIgbmVjZXNzYXJ5IGZvciBkZW1hbmdsZWQgdmFyaWFibGUgbmFt ZXMsCitAQCAtMzExNyw4ICszMTM1LDkgQEAgc2VhcmNoX3N5bWJvbHMgKGNoYXIgKnJlZ2V4cCwg ZG9tYWluX2VudQorIAkgICAgTVNZTUJPTF9UWVBFIChtc3ltYm9sKSA9PSBvdXJ0eXBlMyB8fAor IAkgICAgTVNZTUJPTF9UWVBFIChtc3ltYm9sKSA9PSBvdXJ0eXBlNCkKKyAJICB7CistCSAgICBp ZiAocmVnZXhwID09IE5VTEwKKy0JCXx8IHJlX2V4ZWMgKFNZTUJPTF9OQVRVUkFMX05BTUUgKG1z eW1ib2wpKSAhPSAwKQorKwkgICAgaWYgKCFkYXR1bS5wcmVnX3AKKysJCXx8IHJlZ2V4ZWMgKCZk YXR1bS5wcmVnLCBTWU1CT0xfTkFUVVJBTF9OQU1FIChtc3ltYm9sKSwgMCwKKysJCQkgICAgTlVM TCwgMCkgPT0gMCkKKyAJICAgICAgeworIAkJaWYgKDAgPT0gZmluZF9wY19zeW10YWIgKFNZTUJP TF9WQUxVRV9BRERSRVNTIChtc3ltYm9sKSkpCisgCQkgIHsKK0BAIC0zMTU2LDggKzMxNzUsOSBA QCBzZWFyY2hfc3ltYm9scyAoY2hhciAqcmVnZXhwLCBkb21haW5fZW51CisgCSAgICAgIFFVSVQ7 CisgCisgCSAgICAgIGlmIChmaWxlX21hdGNoZXMgKHJlYWxfc3ltdGFiLT5maWxlbmFtZSwgZmls ZXMsIG5maWxlcykKKy0JCSAgJiYgKChyZWdleHAgPT0gTlVMTAorLQkJICAgICAgIHx8IHJlX2V4 ZWMgKFNZTUJPTF9OQVRVUkFMX05BTUUgKHN5bSkpICE9IDApCisrCQkgICYmICgoIWRhdHVtLnBy ZWdfcAorKwkJICAgICAgIHx8IHJlZ2V4ZWMgKCZkYXR1bS5wcmVnLCBTWU1CT0xfTkFUVVJBTF9O QU1FIChzeW0pLCAwLAorKwkJCQkgICBOVUxMLCAwKSA9PSAwKQorIAkJICAgICAgJiYgKChraW5k ID09IFZBUklBQkxFU19ET01BSU4KKyAJCQkgICAmJiBTWU1CT0xfQ0xBU1MgKHN5bSkgIT0gTE9D X1RZUEVERUYKKyAJCQkgICAmJiBTWU1CT0xfQ0xBU1MgKHN5bSkgIT0gTE9DX1VOUkVTT0xWRUQK K0BAIC0zMTk5LDcgKzMyMTksNyBAQCBzZWFyY2hfc3ltYm9scyAoY2hhciAqcmVnZXhwLCBkb21h aW5fZW51CisgCQkgIHRhaWwgPSBzb3J0X3NlYXJjaF9zeW1ib2xzICgmZHVtbXksIG5mb3VuZCk7 CisgCQkgIHNyID0gZHVtbXkubmV4dDsKKyAKKy0JCSAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVw X2ZyZWVfc2VhcmNoX3N5bWJvbHMgKHNyKTsKKysJCSAgbWFrZV9jbGVhbnVwX2ZyZWVfc2VhcmNo X3N5bWJvbHMgKHNyKTsKKyAJCX0KKyAJICAgICAgZWxzZQorIAkJdGFpbCA9IHNvcnRfc2VhcmNo X3N5bWJvbHMgKHByZXZ0YWlsLCBuZm91bmQpOworQEAgLTMyMjEsOCArMzI0MSw5IEBAIHNlYXJj aF9zeW1ib2xzIChjaGFyICpyZWdleHAsIGRvbWFpbl9lbnUKKyAJICAgIE1TWU1CT0xfVFlQRSAo bXN5bWJvbCkgPT0gb3VydHlwZTMgfHwKKyAJICAgIE1TWU1CT0xfVFlQRSAobXN5bWJvbCkgPT0g b3VydHlwZTQpCisgCSAgeworLQkgICAgaWYgKHJlZ2V4cCA9PSBOVUxMCistCQl8fCByZV9leGVj IChTWU1CT0xfTkFUVVJBTF9OQU1FIChtc3ltYm9sKSkgIT0gMCkKKysJICAgIGlmICghZGF0dW0u cHJlZ19wCisrCQl8fCByZWdleGVjICgmZGF0dW0ucHJlZywgU1lNQk9MX05BVFVSQUxfTkFNRSAo bXN5bWJvbCksIDAsCisrCQkJICAgIE5VTEwsIDApID09IDApCisgCSAgICAgIHsKKyAJCS8qIEZ1 bmN0aW9uczogIExvb2sgdXAgYnkgYWRkcmVzcy4gICovCisgCQlpZiAoa2luZCAhPSBGVU5DVElP TlNfRE9NQUlOIHx8CitAQCAtMzI0NCw3ICszMjY1LDcgQEAgc2VhcmNoX3N5bWJvbHMgKGNoYXIg KnJlZ2V4cCwgZG9tYWluX2VudQorIAkJCWlmICh0YWlsID09IE5VTEwpCisgCQkJICB7CisgCQkJ ICAgIHNyID0gcHNyOworLQkJCSAgICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJlZV9zZWFy Y2hfc3ltYm9scyAoc3IpOworKwkJCSAgICBtYWtlX2NsZWFudXBfZnJlZV9zZWFyY2hfc3ltYm9s cyAoc3IpOworIAkJCSAgfQorIAkJCWVsc2UKKyAJCQkgIHRhaWwtPm5leHQgPSBwc3I7CitAQCAt MzI1Niw5ICszMjc3LDkgQEAgc2VhcmNoX3N5bWJvbHMgKGNoYXIgKnJlZ2V4cCwgZG9tYWluX2Vu dQorICAgICAgIH0KKyAgICAgfQorIAorKyAgZGlzY2FyZF9jbGVhbnVwcyAocmV0dmFsX2NoYWlu KTsKKysgIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOworICAgKm1hdGNoZXMgPSBzcjsKKy0gIGlm IChzciAhPSBOVUxMKQorLSAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOworIH0KKyAK KyAvKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHN5bXRhYl9zeW1ib2xfaW5mbywgdGhpcyBmdW5jdGlv biB1c2VzCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUtNG9mNS5w YXRjaCBiL2dkYi1iejY0NTc3My1jYXNlLWluc2Vuc2l0aXZlLTRvZjUucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmVmMzY5ZAotLS0gL2Rldi9udWxsCisrKyBiL2dk Yi1iejY0NTc3My1jYXNlLWluc2Vuc2l0aXZlLTRvZjUucGF0Y2gKQEAgLTAsMCArMSw2NjYgQEAK K2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDExLTA0L21zZzAwNDE4Lmh0 bWwKK1N1YmplY3Q6IFJlOiBbcGF0Y2ggMy8zXSBjYXNlIGluc2Vuc2l0aXZlOiB0aGUgZml4IFty ZWRpZmZdCisKK09uIEZyaSwgMjIgQXByIDIwMTEgMjE6MDU6MDcgKzAyMDAsIEVsaSBaYXJldHNr aWkgd3JvdGU6Cis+IFRoaXMgQHRhYmxlIHdpbGwgbG9vayB3ZWlyZCBpbiB0aGUgbWFudWFsOiBp dCBwcm9kdWNlcyBsaW5lcyB0aGF0Cis+IGJlZ2luIHdpdGggYSBsb3dlci1jYXNlIGxldHRlci4g IFBlcmhhcHMgcmVvcmRlciB0aHVzbHk6CisKK09LLCB0aGFua3MgZm9yIHRoZSByZXZpZXcuCisK KworUmVnYXJkcywKK0phbgorCisKK2dkYi9kb2MvCisyMDExLTA0LTIyICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisJICAgIEVsaSBaYXJldHNraWkgIDxlbGl6 QGdudS5vcmc+CisKKwkqIGdkYi50ZXhpbmZvIChJbmRleCBTZWN0aW9uIEZvcm1hdCk6IENoYW5n ZSB0aGUgdmVyc2lvbiB0byA1LgorCURlc2NyaWJlIHRoZSBkaWZmZXJlbnQgZm9ybXVsYS4KKwor Z2RiLworMjAxMS0wNC0wOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPgorCisJKiBkd2FyZjJyZWFkLmM6IEluY2x1ZGUgY3R5cGUuaC4KKwkoc3RydWN0IG1hcHBl ZF9pbmRleCk6IE5ldyBmaWVsZCB2ZXJzaW9uLgorCShtYXBwZWRfaW5kZXhfc3RyaW5nX2hhc2gp OiBOZXcgcGFyYW1ldGVyIGluZGV4X3ZlcnNpb24uICBOZXcgY29tbWVudAorCWZvciBpdC4gIENh bGwgdG9sb3dlciBhcHByb3ByaWF0ZWx5LgorCShmaW5kX3Nsb3RfaW5fbWFwcGVkX2hhc2gpOiBO ZXcgdmFyaWFibGUgY21wLCBpbml0aWFsaXplIGl0LCB1c2UgaXQuCisJQ2hvb3NlIHRoZSByaWdo dCBpbmRleCB2ZXJzaW9uIGZvciBtYXBwZWRfaW5kZXhfc3RyaW5nX2hhc2guCisJKGR3YXJmMl9y ZWFkX2luZGV4KTogU3VwcG9ydCBhbHNvIHRoZSBpbmRleCB2ZXJzaW9uIDUuICBJbml0aWFsaXpl IHRoZQorCW5ldyBzdHJ1Y3QgbWFwcGVkX2luZGV4IGZpZWxkIHZlcnNpb24uCisJKGhhc2hfc3Ry dGFiX2VudHJ5KTogUGFzcyBJTlRfTUFYIGZvciB0aGUgbmV3IHBhcmFtZXRlciwgZXhwbGFpbiB3 aHkuCisJKGZpbmRfc2xvdCk6IEV4cGxhaW4gdGhlIHZlcnNpb24gbmVlZHMuICBQYXNzIElOVF9N QVggZm9yIHRoZSBuZXcKKwlwYXJhbWV0ZXIuCisJKHdyaXRlX3BzeW10YWJzX3RvX2luZGV4KTog UHJvZHVjZSB2ZXJzaW9uIDUuCisJKiBtaW5zeW1zLmMgKGxvb2t1cF9taW5pbWFsX3N5bWJvbCk6 IE5ldyB2YXJpYWJsZSBjbXAsIGluaXRpYWxpemUgaXQsCisJdXNlIGl0LiAgTmV3IGNvbW1lbnQg Zm9yIFNZTUJPTF9NQVRDSEVTX1NFQVJDSF9OQU1FLgorCSogcHN5bXRhYi5jIChsb29rdXBfcGFy dGlhbF9zeW1ib2wpOiBGaW5kIHRoZQorCVNZTUJPTF9NQVRDSEVTX1NFQVJDSF9OQU1FIHN0YXJ0 IG9mIHRoZSBmb3VuZCBibG9jayBvZiBtYXRjaGluZworCWVudHJpZXMuCisJKiBzeW10YWIuYyAo bG9va3VwX3N5bWJvbF9pbl9sYW5ndWFnZSk6IFJlbW92ZSB0aGUgY2FzZV9zZW5zaXRpdmVfb2Zm CisJTkFNRSBsb3dlcmNhc2luZy4KKwkoc2VhcmNoX3N5bWJvbHMpOiBQYXNzIFJFR19JQ0FTRSB0 byByZWdjb21wIGZvciBjYXNlX3NlbnNpdGl2ZV9vZmYuCisJKGNvbXBsZXRpb25fbGlzdF9hZGRf bmFtZSk6IE5ldyB2YXJpYWJsZSBuY21wLCBpbml0aWFsaXplIGl0LCB1c2UgaXQuCisJKiBzeW10 YWIuaCAoU1lNQk9MX0hBU0hfTkVYVCk6IEFsd2F5cyBjYWxsIHRvbG93ZXIuCisJKiB1dGlscy5j IChzdHJjbXBfaXcpOiBTdXBwb3J0IGNhc2Vfc2Vuc2l0aXZlX29mZi4KKwkoc3RyY21wX2l3X29y ZGVyZWQpOiBTb3J0IGluIGEgd2F5IGNvbXBhdGlibGUgd2l0aCBjYXNlX3NlbnNpdGl2ZV9vZmYu CisJTmV3IGZ1bmN0aW9uIGNvbW1lbnQgcGFydC4gIE5ldyB2YXJpYWJsZXMgc2F2ZWRfc3RyaW5n MSwKKwlzYXZlZF9zdHJpbmcyIGFuZCBjYXNlX3Bhc3MuICBBZGQgYSBwcm9wZXIgc2Vjb25kIHBh c3MuCisKK2dkYi90ZXN0c3VpdGUvCisyMDExLTA0LTA4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGdkYi5iYXNlL2ZvcnRyYW4tc3ltLWNhc2UuYzog TmV3IGZpbGUuCisJKiBnZGIuYmFzZS9mb3J0cmFuLXN5bS1jYXNlLmV4cDogTmV3IGZpbGUuCisJ KiBnZGIuZHdhcmYyL2R3Mi1jYXNlLWluc2Vuc2l0aXZlLWRlYnVnLlM6IE5ldyBmaWxlLgorCSog Z2RiLmR3YXJmMi9kdzItY2FzZS1pbnNlbnNpdGl2ZS5jOiBOZXcgZmlsZS4KKwkqIGdkYi5kd2Fy ZjIvZHcyLWNhc2UtaW5zZW5zaXRpdmUuZXhwOiBOZXcgZmlsZS4KKworSW5kZXg6IGdkYi03LjIu OTAuMjAxMTA0MjkvZ2RiL2R3YXJmMnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAu MjAxMTA0Mjkub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDQtMjkgMDk6NDM6MzQuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvZHdhcmYycmVhZC5jCTIwMTEt MDQtMjkgMDk6NDU6NTguMDAwMDAwMDAwICswMjAwCitAQCAtMTUyLDYgKzE1Miw5IEBAIERFRl9W RUNfSSAob2Zmc2V0X3R5cGUpOworICAgIGEgY29tbWVudCBieSB0aGUgY29kZSB0aGF0IHdyaXRl cyB0aGUgaW5kZXguICAqLworIHN0cnVjdCBtYXBwZWRfaW5kZXgKKyB7CisrICAvKiBJbmRleCBk YXRhIGZvcm1hdCB2ZXJzaW9uLiAgKi8KKysgIGludCB2ZXJzaW9uOworKworICAgLyogVGhlIHRv dGFsIGxlbmd0aCBvZiB0aGUgYnVmZmVyLiAgKi8KKyAgIG9mZl90IHRvdGFsX3NpemU7CisgCitA QCAtMTk5MCwxNyArMTk5MywyMyBAQCBjcmVhdGVfYWRkcm1hcF9mcm9tX2luZGV4IChzdHJ1Y3Qg b2JqZmlsCisgICAgU1lNQk9MX0hBU0hfTkVYVCwgYnV0IHdlIGtlZXAgYSBzZXBhcmF0ZSBjb3B5 IHRvIG1haW50YWluIGNvbnRyb2wgb3ZlciB0aGUKKyAgICBpbXBsZW1lbnRhdGlvbi4gIFRoaXMg aXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGhhc2ggZnVuY3Rpb24gaXMgdGllZCB0byB0aGUKKyAg ICBmb3JtYXQgb2YgdGhlIG1hcHBlZCBpbmRleCBmaWxlLiAgVGhlIGhhc2ggdmFsdWVzIGRvIG5v dCBoYXZlIHRvIG1hdGNoIHdpdGgKKy0gICBTWU1CT0xfSEFTSF9ORVhULiAgKi8KKysgICBTWU1C T0xfSEFTSF9ORVhULgorKyAgIAorKyAgIFVzZSBJTlRfTUFYIGZvciBJTkRFWF9WRVJTSU9OIGlm IHlvdSBnZW5lcmF0ZSB0aGUgY3VycmVudCBpbmRleCBmb3JtYXQuICAqLworIAorIHN0YXRpYyBo YXNodmFsX3QKKy1tYXBwZWRfaW5kZXhfc3RyaW5nX2hhc2ggKGNvbnN0IHZvaWQgKnApCisrbWFw cGVkX2luZGV4X3N0cmluZ19oYXNoIChpbnQgaW5kZXhfdmVyc2lvbiwgY29uc3Qgdm9pZCAqcCkK KyB7CisgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzdHIgPSAoY29uc3QgdW5zaWduZWQgY2hhciAq KSBwOworICAgaGFzaHZhbF90IHIgPSAwOworICAgdW5zaWduZWQgY2hhciBjOworIAorICAgd2hp bGUgKChjID0gKnN0cisrKSAhPSAwKQorLSAgICByID0gciAqIDY3ICsgYyAtIDExMzsKKysgICAg eworKyAgICAgIGlmIChpbmRleF92ZXJzaW9uID49IDUpCisrCWMgPSB0b2xvd2VyIChjKTsKKysg ICAgICByID0gciAqIDY3ICsgYyAtIDExMzsKKysgICAgfQorIAorICAgcmV0dXJuIHI7CisgfQor QEAgLTIwMTMsMTEgKzIwMjIsMTkgQEAgc3RhdGljIGludAorIGZpbmRfc2xvdF9pbl9tYXBwZWRf aGFzaCAoc3RydWN0IG1hcHBlZF9pbmRleCAqaW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUsCisgCQkJ ICBvZmZzZXRfdHlwZSAqKnZlY19vdXQpCisgeworLSAgb2Zmc2V0X3R5cGUgaGFzaCA9IG1hcHBl ZF9pbmRleF9zdHJpbmdfaGFzaCAobmFtZSk7CisrICAvKiBJbmRleCB2ZXJzaW9uIDQgZGlkIG5v dCBzdXBwb3J0IGNhc2UgaW5zZW5zaXRpdmUgc2VhcmNoZXMuICBCdXQgdGhlCisrICAgICBpbmRl eGVzIGZvciBjYXNlIGluc2Vuc2l0aXZlIGxhbmd1YWdlcyBhcmUgYnVpbHQgaW4gbG93ZXJjYXNl LCB0aGVyZWZvcmUKKysgICAgIHNpbXVsYXRlIG91ciBOQU1FIGJlaW5nIHNlYXJjaGVkIGlzIGFs c28gbG93ZXJjYXNlZC4gICovCisrICBvZmZzZXRfdHlwZSBoYXNoID0gbWFwcGVkX2luZGV4X3N0 cmluZ19oYXNoICgoaW5kZXgtPnZlcnNpb24gPT0gNAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICYmIGNhc2Vfc2Vuc2l0aXZpdHkgPT0gY2FzZV9zZW5zaXRpdmVfb2ZmCisr CQkJCSAgICA/IDUgOiBpbmRleC0+dmVyc2lvbiksCisrCQkJCSAgIG5hbWUpOworICAgb2Zmc2V0 X3R5cGUgc2xvdCwgc3RlcDsKKysgIGludCAoKmNtcCkgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh ciAqKTsKKyAKKyAgIHNsb3QgPSBoYXNoICYgKGluZGV4LT5zeW1ib2xfdGFibGVfc2xvdHMgLSAx KTsKKyAgIHN0ZXAgPSAoKGhhc2ggKiAxNykgJiAoaW5kZXgtPnN5bWJvbF90YWJsZV9zbG90cyAt IDEpKSB8IDE7CisrICBjbXAgPSAoY2FzZV9zZW5zaXRpdml0eSA9PSBjYXNlX3NlbnNpdGl2ZV9v biA/IHN0cmNtcCA6IHN0cmNhc2VjbXApOworIAorICAgZm9yICg7OykKKyAgICAgeworQEAgLTIw MjgsNyArMjA0NSw3IEBAIGZpbmRfc2xvdF9pbl9tYXBwZWRfaGFzaCAoc3RydWN0IG1hcHBlZF8K KyAJcmV0dXJuIDA7CisgCisgICAgICAgc3RyID0gaW5kZXgtPmNvbnN0YW50X3Bvb2wgKyBNQVlC RV9TV0FQIChpbmRleC0+c3ltYm9sX3RhYmxlW2ldKTsKKy0gICAgICBpZiAoIXN0cmNtcCAobmFt ZSwgc3RyKSkKKysgICAgICBpZiAoIWNtcCAobmFtZSwgc3RyKSkKKyAJeworIAkgICp2ZWNfb3V0 ID0gKG9mZnNldF90eXBlICopIChpbmRleC0+Y29uc3RhbnRfcG9vbAorIAkJCQkgICAgICArIE1B WUJFX1NXQVAgKGluZGV4LT5zeW1ib2xfdGFibGVbaSArIDFdKSk7CitAQCAtMjA3MSwxNSArMjA4 OCwxNyBAQCBkd2FyZjJfcmVhZF9pbmRleCAoc3RydWN0IG9iamZpbGUgKm9iamZpCisgICAvKiBW ZXJzaW9ucyBlYXJsaWVyIHRoYW4gMyBlbWl0dGVkIGV2ZXJ5IGNvcHkgb2YgYSBwc3ltYm9sLiAg VGhpcworICAgICAgY2F1c2VzIHRoZSBpbmRleCB0byBiZWhhdmUgdmVyeSBwb29ybHkgZm9yIGNl cnRhaW4gcmVxdWVzdHMuICBWZXJzaW9uIDMKKyAgICAgIGNvbnRhaW5lZCBpbmNvbXBsZXRlIGFk ZHJtYXAuICBTbywgaXQgc2VlbXMgYmV0dGVyIHRvIGp1c3QgaWdub3JlIHN1Y2gKKy0gICAgIGlu ZGljZXMuICAqLworKyAgICAgaW5kaWNlcy4gIEluZGV4IHZlcnNpb24gNCB1c2VzIGEgZGlmZmVy ZW50IGhhc2ggZnVuY3Rpb24gdGhhbiBpbmRleAorKyAgICAgdmVyc2lvbiA1IGFuZCBsYXRlci4g ICovCisgICBpZiAodmVyc2lvbiA8IDQpCisgICAgIHJldHVybiAwOworICAgLyogSW5kZXhlcyB3 aXRoIGhpZ2hlciB2ZXJzaW9uIHRoYW4gdGhlIG9uZSBzdXBwb3J0ZWQgYnkgR0RCIG1heSBiZSBu bworICAgICAgbG9uZ2VyIGJhY2t3YXJkIGNvbXBhdGlibGUuICAqLworLSAgaWYgKHZlcnNpb24g PiA0KQorKyAgaWYgKHZlcnNpb24gPiA1KQorICAgICByZXR1cm4gMDsKKyAKKyAgIG1hcCA9IE9C U1RBQ0tfWkFMTE9DICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzdHJ1Y3QgbWFwcGVkX2lu ZGV4KTsKKysgIG1hcC0+dmVyc2lvbiA9IHZlcnNpb247CisgICBtYXAtPnRvdGFsX3NpemUgPSBk d2FyZjJfcGVyX29iamZpbGUtPmdkYl9pbmRleC5zaXplOworIAorICAgbWV0YWRhdGEgPSAob2Zm c2V0X3R5cGUgKikgKGFkZHIgKyBzaXplb2YgKG9mZnNldF90eXBlKSk7CitAQCAtMTU2MDIsMTMg KzE1NjIxLDE2IEBAIHN0cnVjdCBzdHJ0YWJfZW50cnkKKyAgIGNvbnN0IGNoYXIgKnN0cjsKKyB9 OworIAorLS8qIEhhc2ggZnVuY3Rpb24gZm9yIGEgc3RydGFiX2VudHJ5LiAgKi8KKysvKiBIYXNo IGZ1bmN0aW9uIGZvciBhIHN0cnRhYl9lbnRyeS4KKysKKysgICBGdW5jdGlvbiBpcyB1c2VkIG9u bHkgZHVyaW5nIHdyaXRlX2hhc2hfdGFibGUgc28gbm8gaW5kZXggZm9ybWF0IGJhY2t3YXJkCisr ICAgY29tcGF0aWJpbGl0eSBpcyBuZWVkZWQuICAqLworIAorIHN0YXRpYyBoYXNodmFsX3QKKyBo YXNoX3N0cnRhYl9lbnRyeSAoY29uc3Qgdm9pZCAqZSkKKyB7CisgICBjb25zdCBzdHJ1Y3Qgc3Ry dGFiX2VudHJ5ICplbnRyeSA9IGU7CistICByZXR1cm4gbWFwcGVkX2luZGV4X3N0cmluZ19oYXNo IChlbnRyeS0+c3RyKTsKKysgIHJldHVybiBtYXBwZWRfaW5kZXhfc3RyaW5nX2hhc2ggKElOVF9N QVgsIGVudHJ5LT5zdHIpOworIH0KKyAKKyAvKiBFcXVhbGl0eSBmdW5jdGlvbiBmb3IgYSBzdHJ0 YWJfZW50cnkuICAqLworQEAgLTE1NzQ2LDEyICsxNTc2OCwxNSBAQCBjbGVhbnVwX21hcHBlZF9z eW10YWIgKHZvaWQgKnApCisgfQorIAorIC8qIEZpbmQgYSBzbG90IGluIFNZTVRBQiBmb3IgdGhl IHN5bWJvbCBOQU1FLiAgUmV0dXJucyBhIHBvaW50ZXIgdG8KKy0gICB0aGUgc2xvdC4gICovCisr ICAgdGhlIHNsb3QuCisrICAgCisrICAgRnVuY3Rpb24gaXMgdXNlZCBvbmx5IGR1cmluZyB3cml0 ZV9oYXNoX3RhYmxlIHNvIG5vIGluZGV4IGZvcm1hdCBiYWNrd2FyZAorKyAgIGNvbXBhdGliaWxp dHkgaXMgbmVlZGVkLiAgKi8KKyAKKyBzdGF0aWMgc3RydWN0IHN5bXRhYl9pbmRleF9lbnRyeSAq KgorIGZpbmRfc2xvdCAoc3RydWN0IG1hcHBlZF9zeW10YWIgKnN5bXRhYiwgY29uc3QgY2hhciAq bmFtZSkKKyB7CistICBvZmZzZXRfdHlwZSBpbmRleCwgc3RlcCwgaGFzaCA9IG1hcHBlZF9pbmRl eF9zdHJpbmdfaGFzaCAobmFtZSk7CisrICBvZmZzZXRfdHlwZSBpbmRleCwgc3RlcCwgaGFzaCA9 IG1hcHBlZF9pbmRleF9zdHJpbmdfaGFzaCAoSU5UX01BWCwgbmFtZSk7CisgCisgICBpbmRleCA9 IGhhc2ggJiAoc3ltdGFiLT5zaXplIC0gMSk7CisgICBzdGVwID0gKChoYXNoICogMTcpICYgKHN5 bXRhYi0+c2l6ZSAtIDEpKSB8IDE7CitAQCAtMTYyNzksNyArMTYzMDQsNyBAQCB3cml0ZV9wc3lt dGFic190b19pbmRleCAoc3RydWN0IG9iamZpbGUgCisgICB0b3RhbF9sZW4gPSBzaXplX29mX2Nv bnRlbnRzOworIAorICAgLyogVGhlIHZlcnNpb24gbnVtYmVyLiAgKi8KKy0gIHZhbCA9IE1BWUJF X1NXQVAgKDQpOworKyAgdmFsID0gTUFZQkVfU1dBUCAoNSk7CisgICBvYnN0YWNrX2dyb3cgKCZj b250ZW50cywgJnZhbCwgc2l6ZW9mICh2YWwpKTsKKyAKKyAgIC8qIFRoZSBvZmZzZXQgb2YgdGhl IENVIGxpc3QgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGZpbGUuICAqLworSW5kZXg6IGdkYi03LjIu OTAuMjAxMTA0MjkvZ2RiL21pbnN5bXMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAx MTA0Mjkub3JpZy9nZGIvbWluc3ltcy5jCTIwMTEtMDQtMjkgMDk6NDM6MzQuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvbWluc3ltcy5jCTIwMTEtMDQtMjkgMDk6 NDQ6MTUuMDAwMDAwMDAwICswMjAwCitAQCAtMjM5LDExICsyMzksMTYgQEAgbG9va3VwX21pbmlt YWxfc3ltYm9sIChjb25zdCBjaGFyICpuYW1lLAorIAorIAkJICBpZiAocGFzcyA9PSAxKQorIAkJ ICAgIHsKKy0JCSAgICAgIG1hdGNoID0gc3RyY21wIChTWU1CT0xfTElOS0FHRV9OQU1FIChtc3lt Ym9sKSwKKy0JCQkJICAgICAgbW9kaWZpZWRfbmFtZSkgPT0gMDsKKysJCSAgICAgIGludCAoKmNt cCkgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKKysKKysJCSAgICAgIGNtcCA9IChjYXNl X3NlbnNpdGl2aXR5ID09IGNhc2Vfc2Vuc2l0aXZlX29uCisrCQkgICAgICAgICAgICAgPyBzdHJj bXAgOiBzdHJjYXNlY21wKTsKKysJCSAgICAgIG1hdGNoID0gY21wIChTWU1CT0xfTElOS0FHRV9O QU1FIChtc3ltYm9sKSwKKysJCQkJICAgbW9kaWZpZWRfbmFtZSkgPT0gMDsKKyAJCSAgICB9Cisg CQkgIGVsc2UKKyAJCSAgICB7CisrCQkgICAgICAvKiBUaGUgZnVuY3Rpb24gcmVzcGVjdHMgQ0FT RV9TRU5TSVRJVklUWS4gICovCisgCQkgICAgICBtYXRjaCA9IFNZTUJPTF9NQVRDSEVTX1NFQVJD SF9OQU1FIChtc3ltYm9sLAorIAkJCQkJCQkgIG1vZGlmaWVkX25hbWUpOworIAkJICAgIH0KK0lu ZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9wc3ltdGFiLmMKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3BzeW10YWIuYwkyMDExLTA0LTIwIDIyOjEwOjI5 LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3BzeW10YWIuYwky MDExLTA0LTI5IDA5OjQ0OjE1LjAwMDAwMDAwMCArMDIwMAorQEAgLTY5MCw4ICs2OTAsMTUgQEAg bG9va3VwX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9zeQorIAlpbnRlcm5hbF9lcnJv ciAoX19GSUxFX18sIF9fTElORV9fLAorIAkJCV8oImZhaWxlZCBpbnRlcm5hbCBjb25zaXN0ZW5j eSBjaGVjayIpKTsKKyAKKy0gICAgICB3aGlsZSAodG9wIDw9IHJlYWxfdG9wCistCSAgICAgJiYg U1lNQk9MX01BVENIRVNfU0VBUkNIX05BTUUgKCp0b3AsIHNlYXJjaF9uYW1lKSkKKysgICAgICAv KiBGb3IgYGNhc2Vfc2Vuc2l0aXZpdHkgPT0gY2FzZV9zZW5zaXRpdmVfb2ZmJyBzdHJjbXBfaXdf b3JkZXJlZCB3aWxsCisrCSBzZWFyY2ggbW9yZSBleGFjdGx5IHRoYW4gd2hhdCBtYXRjaGVzIFNZ TUJPTF9NQVRDSEVTX1NFQVJDSF9OQU1FLiAgKi8KKysgICAgICB3aGlsZSAodG9wID49IHN0YXJ0 ICYmIFNZTUJPTF9NQVRDSEVTX1NFQVJDSF9OQU1FICgqdG9wLCBzZWFyY2hfbmFtZSkpCisrCXRv cC0tOworKworKyAgICAgIC8qIEZpeHVwIHRvIGhhdmUgYSBzeW1ib2wgd2hpY2ggbWF0Y2hlcyBT WU1CT0xfTUFUQ0hFU19TRUFSQ0hfTkFNRS4gICovCisrICAgICAgdG9wKys7CisrCisrICAgICAg d2hpbGUgKHRvcCA8PSByZWFsX3RvcCAmJiBTWU1CT0xfTUFUQ0hFU19TRUFSQ0hfTkFNRSAoKnRv cCwgc2VhcmNoX25hbWUpKQorIAl7CisgCSAgaWYgKHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoU1lN Qk9MX0xBTkdVQUdFICgqdG9wKSwKKyAJCQkJICAgICBTWU1CT0xfRE9NQUlOICgqdG9wKSwgZG9t YWluKSkKK0luZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9zeW10YWIuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvc3ltdGFiLmMJMjAxMS0wNC0yOSAw OTo0Mzo1NS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9zeW10 YWIuYwkyMDExLTA0LTI5IDA5OjQ0OjE1LjAwMDAwMDAwMCArMDIwMAorQEAgLTEwNjIsMTkgKzEw NjIsNiBAQCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdlIChjb25zdCBjaGFyICpuCisgCX0KKyAg ICAgfQorIAorLSAgaWYgKGNhc2Vfc2Vuc2l0aXZpdHkgPT0gY2FzZV9zZW5zaXRpdmVfb2ZmKQor LSAgICB7CistICAgICAgY2hhciAqY29weTsKKy0gICAgICBpbnQgbGVuLCBpOworLQorLSAgICAg IGxlbiA9IHN0cmxlbiAobmFtZSk7CistICAgICAgY29weSA9IChjaGFyICopIGFsbG9jYSAobGVu ICsgMSk7CistICAgICAgZm9yIChpPSAwOyBpIDwgbGVuOyBpKyspCistICAgICAgICBjb3B5W2ld ID0gdG9sb3dlciAobmFtZVtpXSk7CistICAgICAgY29weVtsZW5dID0gMDsKKy0gICAgICBtb2Rp ZmllZF9uYW1lID0gY29weTsKKy0gICAgfQorLQorICAgcmV0dXJudmFsID0gbG9va3VwX3N5bWJv bF9hdXggKG1vZGlmaWVkX25hbWUsIGJsb2NrLCBkb21haW4sIGxhbmcsCisgCQkJCSBpc19hX2Zp ZWxkX29mX3RoaXMpOworICAgZG9fY2xlYW51cHMgKGNsZWFudXApOworQEAgLTMwODIsNyArMzA2 OSw5IEBAIHNlYXJjaF9zeW1ib2xzIChjaGFyICpyZWdleHAsIGRvbWFpbl9lbnUKKyAJICAgIH0K KyAJfQorIAorLSAgICAgIGVycmNvZGUgPSByZWdjb21wICgmZGF0dW0ucHJlZywgcmVnZXhwLCBS RUdfTk9TVUIpOworKyAgICAgIGVycmNvZGUgPSByZWdjb21wICgmZGF0dW0ucHJlZywgcmVnZXhw LAorKwkJCSBSRUdfTk9TVUIgfCAoY2FzZV9zZW5zaXRpdml0eSA9PSBjYXNlX3NlbnNpdGl2ZV9v ZmYKKysJCQkJICAgICAgPyBSRUdfSUNBU0UgOiAwKSk7CisgICAgICAgaWYgKGVycmNvZGUgIT0g MCkKKyAJeworIAkgIGNoYXIgKmVyciA9IGdldF9yZWdjb21wX2Vycm9yIChlcnJjb2RlLCAmZGF0 dW0ucHJlZyk7CitAQCAtMzUyOSwxMCArMzUxOCwxMyBAQCBjb21wbGV0aW9uX2xpc3RfYWRkX25h bWUgKGNoYXIgKnN5bW5hbWUsCisgCQkJICBjaGFyICp0ZXh0LCBjaGFyICp3b3JkKQorIHsKKyAg IGludCBuZXdzaXplOworKyAgaW50ICgqbmNtcCkgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq LCBzaXplX3QpOworKworKyAgbmNtcCA9IChjYXNlX3NlbnNpdGl2aXR5ID09IGNhc2Vfc2Vuc2l0 aXZlX29uID8gc3RybmNtcCA6IHN0cm5jYXNlY21wKTsKKyAKKyAgIC8qIENsaXAgc3ltYm9scyB0 aGF0IGNhbm5vdCBtYXRjaC4gICovCisgCistICBpZiAoc3RybmNtcCAoc3ltbmFtZSwgc3ltX3Rl eHQsIHN5bV90ZXh0X2xlbikgIT0gMCkKKysgIGlmIChuY21wIChzeW1uYW1lLCBzeW1fdGV4dCwg c3ltX3RleHRfbGVuKSAhPSAwKQorICAgICB7CisgICAgICAgcmV0dXJuOworICAgICB9CitJbmRl eDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvc3ltdGFiLmgKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL3N5bXRhYi5oCTIwMTEtMDQtMjkgMDk6NDM6MzQuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvc3ltdGFiLmgJMjAxMS0w NC0yOSAwOTo0NDoxNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMDMwLDcgKzEwMzAsOCBAQCBleHRl cm4gdW5zaWduZWQgaW50IG1zeW1ib2xfaGFzaCAoY29uc3QgCisgICAgaXMgb25seSBhIEdEQiBp bi1tZW1vcnkgY29tcHV0ZWQgdmFsdWUgd2l0aCBubyBleHRlcm5hbCBmaWxlcyBjb21wYXRpYmls aXR5CisgICAgcmVxdWlyZW1lbnRzLiAgKi8KKyAKKy0jZGVmaW5lIFNZTUJPTF9IQVNIX05FWFQo aGFzaCwgYykgKChoYXNoKSAqIDY3ICsgKGMpIC0gMTEzKQorKyNkZWZpbmUgU1lNQk9MX0hBU0hf TkVYVChoYXNoLCBjKSBcCisrICAoKGhhc2gpICogNjcgKyB0b2xvd2VyICgodW5zaWduZWQgY2hh cikgKGMpKSAtIDExMykKKyAKKyBleHRlcm4gc3RydWN0IG9iamZpbGUgKiBtc3ltYm9sX29iamZp bGUgKHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqc3ltKTsKKyAKK0luZGV4OiBnZGItNy4yLjkwLjIw MTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9ydHJhbi1zeW0tY2FzZS5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisr KysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcnRyYW4tc3lt LWNhc2UuYwkyMDExLTA0LTI5IDA5OjQ0OjE1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwy MiBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIu CisrCisrICAgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworK2ludAorK21h aW4gKGludCBhcmdjLCBjaGFyICoqYVJHdikKKyt7CisrICByZXR1cm4gMDsKKyt9CitJbmRleDog Z2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcnRyYW4tc3ltLWNh c2UuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2ZvcnRyYW4tc3ltLWNhc2UuZXhwCTIwMTEtMDQtMjkgMDk6NDQ6MTUuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDI3IEBACisrIyBDb3B5cmlnaHQgKEMpIDIwMTEgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKwor K3NldCB0ZXN0ZmlsZSBmb3J0cmFuLXN5bS1jYXNlCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGlu ZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX1dIH0geworKyAgICByZXR1cm4gLTEKKyt9Cisr CisraWYgIVtydW50b19tYWluXSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytnZGJfdGVzdCAi c2V0IGxhbmd1YWdlIGZvcnRyYW4iIHtXYXJuaW5nOiB0aGUgY3VycmVudCBsYW5ndWFnZSBkb2Vz IG5vdCBtYXRjaCB0aGlzIGZyYW1lXC59CisrCisrZ2RiX3Rlc3QgImZyYW1lIiAiLCBhUkd2PS4q IgorSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1jYXNlLWluc2Vuc2l0aXZlLWRlYnVnLlMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItY2FzZS1pbnNlbnNpdGl2ZS1kZWJ1Zy5TCTIw MTEtMDQtMjkgMDk6NDQ6MTUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDEwMiBAQAorKy8q IFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAg Q29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKwor KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKwkuc2VjdGlvbiAuZGVidWdf aW5mbworKy5MY3UxX2JlZ2luOgorKwkvKiBDVSBoZWFkZXIgKi8KKysJLjRieXRlCS5MY3UxX2Vu ZCAtIC5MY3UxX3N0YXJ0CQkvKiBMZW5ndGggb2YgQ29tcGlsYXRpb24gVW5pdCAqLworKy5MY3Ux X3N0YXJ0OgorKwkuMmJ5dGUJMgkJCQkvKiBEV0FSRiBWZXJzaW9uICovCisrCS40Ynl0ZQkuTGFi YnJldjFfYmVnaW4JCQkvKiBPZmZzZXQgaW50byBhYmJyZXYgc2VjdGlvbiAqLworKwkuYnl0ZQk0 CQkJCS8qIFBvaW50ZXIgc2l6ZSAqLworKworKwkvKiBDVSBkaWUgKi8KKysJLnVsZWIxMjggMQkJ CQkvKiBBYmJyZXY6IERXX1RBR19jb21waWxlX3VuaXQgKi8KKysJLmFzY2lpCSJmaWxlMS50eHRc MCIJCQkvKiBEV19BVF9uYW1lICovCisrCS5hc2NpaQkiR05VIEMgMy4zLjNcMCIJCQkvKiBEV19B VF9wcm9kdWNlciAqLworKwkuYnl0ZQk4CQkJCS8qIERXX0FUX2xhbmd1YWdlIChEV19MQU5HX0Zv cnRyYW45MCkgKi8KKysJLjRieXRlCQlGVU5DX2xhbmcJCS8qIERXX0FUX2xvd19wYyAqLworKwku NGJ5dGUJCW1haW4JCQkvKiBEV19BVF9oaWdoX3BjICovCisrCisrCS51bGViMTI4CTMJCQkvKiBB YmJyZXY6IERXX1RBR19zdWJwcm9ncmFtICovCisrCS5ieXRlCQkxCQkJLyogRFdfQVRfZXh0ZXJu YWwgKi8KKysJLmFzY2lpCQkiRlVOQ19sYW5nXDAiCQkvKiBEV19BVF9uYW1lICovCisrCS40Ynl0 ZQkJRlVOQ19sYW5nCQkvKiBEV19BVF9sb3dfcGMgKi8KKysJLjRieXRlCQltYWluCQkJLyogRFdf QVRfaGlnaF9wYyAqLworKwkuYnl0ZQkJMQkJCS8qIERXX0FUX3Byb3RvdHlwZWQgKi8KKysJLjRi eXRlCQkuTHR5cGUgLSAuTGN1MV9iZWdpbgkvKiBEV19BVF90eXBlICovCisrCisrLkx0eXBlOgor KwkudWxlYjEyOCAJMHg1CQkJLyogQWJicmV2OiBEV19UQUdfYmFzZV90eXBlICovCisrCS5ieXRl CQkweDQJCQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKysJLmJ5dGUJCTB4NQkJCS8qIERXX0FUX2Vu Y29kaW5nICovCisrCS5hc2NpaSAJCSJmb29cMCIJCQkvKiBEV19BVF9uYW1lICovCisrCisrCS5i eXRlCQkwCQkJLyogRW5kIG9mIGNoaWxkcmVuIG9mIENVICovCisrLkxjdTFfZW5kOgorKworKy8q IEFiYnJldiB0YWJsZSAqLworKwkuc2VjdGlvbiAuZGVidWdfYWJicmV2CisrLkxhYmJyZXYxX2Jl Z2luOgorKwkudWxlYjEyOAkxCQkJLyogQWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjgJMHgxMQkJ CS8qIERXX1RBR19jb21waWxlX3VuaXQgKi8KKysJLmJ5dGUJCTEJCQkvKiBoYXNfY2hpbGRyZW4g Ki8KKysJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEyOAkweDgJCQkv KiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOAkweDI1CQkJLyogRFdfQVRfcHJvZHVjZXIg Ki8KKysJLnVsZWIxMjgJMHg4CQkJLyogRFdfRk9STV9zdHJpbmcgKi8KKysJLnVsZWIxMjgJMHgx MwkJCS8qIERXX0FUX2xhbmd1YWdlICovCisrCS51bGViMTI4CTB4YgkJCS8qIERXX0ZPUk1fZGF0 YTEgKi8KKysJLnVsZWIxMjgJMHgxMQkJCS8qIERXX0FUX2xvd19wYyAqLworKwkudWxlYjEyOAkw eDEJCQkvKiBEV19GT1JNX2FkZHIgKi8KKysJLnVsZWIxMjgJMHgxMgkJCS8qIERXX0FUX2hpZ2hf cGMgKi8KKysJLnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCisrCS5ieXRlCQkweDAJ CQkvKiBUZXJtaW5hdG9yICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCisr CS51bGViMTI4CTMJCQkvKiBBYmJyZXYgY29kZSAqLworKwkudWxlYjEyOAkweDJlCQkJLyogRFdf VEFHX3N1YnByb2dyYW0gKi8KKysJLmJ5dGUJCTAJCQkvKiBoYXNfY2hpbGRyZW4gKi8KKysJLnVs ZWIxMjgJMHgzZgkJCS8qIERXX0FUX2V4dGVybmFsICovCisrCS51bGViMTI4CTB4YwkJCS8qIERX X0ZPUk1fZmxhZyAqLworKwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICovCisrCS51bGVi MTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4CTB4MTEJCQkvKiBEV19B VF9sb3dfcGMgKi8KKysJLnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCisrCS51bGVi MTI4CTB4MTIJCQkvKiBEV19BVF9oaWdoX3BjICovCisrCS51bGViMTI4CTB4MQkJCS8qIERXX0ZP Uk1fYWRkciAqLworKwkudWxlYjEyOAkweDI3CQkJLyogRFdfQVRfcHJvdG90eXBlZCAqLworKwku dWxlYjEyOAkweGMJCQkvKiBEV19GT1JNX2ZsYWcgKi8KKysJLnVsZWIxMjgJMHg0OQkJCS8qIERX X0FUX3R5cGUgKi8KKysJLnVsZWIxMjgJMHgxMwkJCS8qIERXX0ZPUk1fcmVmNCAqLworKwkuYnl0 ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAq LworKworKwkudWxlYjEyOAkweDUJCQkvKiBBYmJyZXYgY29kZSAqLworKwkudWxlYjEyOAkweDI0 CQkJLyogRFdfVEFHX2Jhc2VfdHlwZSAqLworKwkuYnl0ZQkJMHgwCQkJLyogRFdfY2hpbGRyZW5f bm8gKi8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdfQVRfYnl0ZV9zaXplICovCisrCS51bGViMTI4 CTB4YgkJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLnVsZWIxMjgJMHgzZQkJCS8qIERXX0FUX2Vu Y29kaW5nICovCisrCS51bGViMTI4CTB4YgkJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLnVsZWIx MjgJMHgzCQkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0 cmluZyAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJ LyogVGVybWluYXRvciAqLworKworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwku Ynl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0Mjkv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1jYXNlLWluc2Vuc2l0aXZlLmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysr KyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItY2FzZS1p bnNlbnNpdGl2ZS5jCTIwMTEtMDQtMjkgMDk6NDQ6MTUuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDM4IEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrLyog VXNlIERXX0xBTkdfRm9ydHJhbjkwIGZvciBjYXNlIGluc2Vuc2l0aXZlIERXQVJGLiAgKi8KKysK Kyt2b2lkCisrRlVOQ19sYW5nICh2b2lkKQorK3sKKyt9CisrCisrLyogU3ltYm9sIGlzIHByZXNl bnQgb25seSBpbiBFTEYgLnN5bXRhYi4gICovCisrCisrdm9pZAorK0ZVTkNfc3ltdGFiICh2b2lk KQorK3sKKyt9CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBGVU5DX2xhbmcgKCk7Cisr ICBGVU5DX3N5bXRhYiAoKTsKKysgIHJldHVybiAwOworK30KK0luZGV4OiBnZGItNy4yLjkwLjIw MTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItY2FzZS1pbnNlbnNpdGl2ZS5leHAK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItY2FzZS1pbnNlbnNpdGl2ZS5leHAJMjAxMS0wNC0yOSAwOTo0NDoxNS4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsNDkgQEAKKysjIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKytsb2FkX2xp YiBkd2FyZi5leHAKKysKKysjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3 aGljaCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCisraWYgeyFbZHdhcmYyX3N1cHBvcnRd fSB7CisrICAgIHJldHVybiAwICAKKyt9CisrCisrc2V0IHRlc3RmaWxlICJkdzItY2FzZS1pbnNl bnNpdGl2ZSIKKysKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAk e3Rlc3RmaWxlfSBbbGlzdCAke3Rlc3RmaWxlfS5jICR7dGVzdGZpbGV9LWRlYnVnLlNdIHtub2Rl YnVnfV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytnZGJfdGVzdCAic2hvdyBjYXNlLXNl bnNpdGl2ZSIge0Nhc2Ugc2Vuc2l0aXZpdHkgaW4gbmFtZSBzZWFyY2ggaXMgImF1dG87IGN1cnJl bnRseSBvbiJcLn0KKysKKytnZGJfdGVzdCAiaW5mbyBmdW5jdGlvbnMgZlVuQ19sYW5nIiBcCisr CSAiQWxsIGZ1bmN0aW9ucyBtYXRjaGluZyByZWd1bGFyIGV4cHJlc3Npb24gXCJmVW5DX2xhbmdc IjoiIFwKKysJICJyZWdleHAgY2FzZS1zZW5zaXRpdmUgb24iCisrCisrZ2RiX3Rlc3QgInNldCBj YXNlLXNlbnNpdGl2ZSBvZmYiIHt3YXJuaW5nOiB0aGUgY3VycmVudCBjYXNlIHNlbnNpdGl2aXR5 IHNldHRpbmcgZG9lcyBub3QgbWF0Y2ggdGhlIGxhbmd1YWdlXC59CisrCisrZ2RiX3Rlc3QgImlu Zm8gZnVuY3Rpb25zIGZVbkNfbGFuZyIgXAorKwkgIkFsbCBmdW5jdGlvbnMgbWF0Y2hpbmcgcmVn dWxhciBleHByZXNzaW9uIFwiZlVuQ19sYW5nXCI6XFtcclxuXF0rRmlsZSBmaWxlMS50eHQ6XHJc bmZvbyBGVU5DX2xhbmdcXCh2b2lkXFwpOyIgXAorKwkgInJlZ2V4cCBjYXNlLXNlbnNpdGl2ZSBv ZmYiCisrCisrZ2RiX3Rlc3QgInAgZnVOQ19sYW5nIiB7ID0ge2ZvbyBcKHZvaWRcKX0gMHhbMC05 YS1mXSsgPEZVTkNfbGFuZz59CisrZ2RiX3Rlc3QgInAgZnVOQ19zeW10YWIiIHsgPSB7PHRleHQg dmFyaWFibGUsIG5vIGRlYnVnIGluZm8+fSAweFswLTlhLWZdKyA8RlVOQ19zeW10YWI+fQorKwor K2lmIHtbZ2RiX2JyZWFrcG9pbnQgImZ1TkNfbGFuZyJdID09IDF9IHsKKysgICAgcGFzcyAic2V0 dGluZyBicmVha3BvaW50IGF0IGZ1TkNfbGFuZyIKKyt9CisrCisraWYge1tnZGJfYnJlYWtwb2lu dCAiZnVOQ19zeW10YWIiXSA9PSAxfSB7CisrICAgIHBhc3MgInNldHRpbmcgYnJlYWtwb2ludCBh dCBmdU5DX3N5bXRhYiIKKyt9CitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdXRpbHMu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvdXRpbHMuYwky MDExLTA0LTI5IDA5OjQzOjM0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL3V0aWxzLmMJMjAxMS0wNC0yOSAwOTo0NDoxNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0z MDAzLDEwICszMDAzLDEyIEBAIHN0cmNtcF9pdyAoY29uc3QgY2hhciAqc3RyaW5nMSwgY29uc3Qg Y2gKKyAJeworIAkgIHN0cmluZzIrKzsKKyAJfQorLSAgICAgIGlmICgqc3RyaW5nMSAhPSAqc3Ry aW5nMikKKy0JeworLQkgIGJyZWFrOworLQl9CisrICAgICAgaWYgKGNhc2Vfc2Vuc2l0aXZpdHkg PT0gY2FzZV9zZW5zaXRpdmVfb24gJiYgKnN0cmluZzEgIT0gKnN0cmluZzIpCisrCWJyZWFrOwor KyAgICAgIGlmIChjYXNlX3NlbnNpdGl2aXR5ID09IGNhc2Vfc2Vuc2l0aXZlX29mZgorKwkgICYm ICh0b2xvd2VyICgodW5zaWduZWQgY2hhcikgKnN0cmluZzEpCisrCSAgICAgICE9IHRvbG93ZXIg KCh1bnNpZ25lZCBjaGFyKSAqc3RyaW5nMikpKQorKwlicmVhazsKKyAgICAgICBpZiAoKnN0cmlu ZzEgIT0gJ1wwJykKKyAJeworIAkgIHN0cmluZzErKzsKK0BAIC0zMDI3LDYgKzMwMjksMTAgQEAg c3RyY21wX2l3IChjb25zdCBjaGFyICpzdHJpbmcxLCBjb25zdCBjaAorICAgIHN0cmNtcF9pdyhM SVNUX0VMVCwgTkFNRSksIHRoZW4gdGhlIHBsYWNlIHRvIHN0YXJ0IGxvb2tpbmcgaXMgcmlnaHQK KyAgICB3aGVyZSB0aGlzIGZ1bmN0aW9uIHdvdWxkIHB1dCBOQU1FLgorIAorKyAgIFRoaXMgZnVu Y3Rpb24gbXVzdCBiZSBuZXV0cmFsIHRvIHRoZSBDQVNFX1NFTlNJVElWSVRZIHNldHRpbmcgYXMg dGhlIHVzZXIKKysgICBtYXkgY2hvb3NlIGl0IGR1cmluZyBsYXRlciBsb29rdXAuICBUaGVyZWZv cmUgdGhpcyBmdW5jdGlvbiBhbHdheXMgc29ydHMKKysgICBwcmltYXJpbHkgY2FzZS1pbnNlbnNp dGl2ZWx5IGFuZCBzZWNvbmRhcmlseSBjYXNlLXNlbnNpdGl2ZWx5LgorKworICAgIEhlcmUgYXJl IHNvbWUgZXhhbXBsZXMgb2Ygd2h5IHVzaW5nIHN0cmNtcCB0byBzb3J0IGlzIGEgYmFkIGlkZWE6 CisgCisgICAgV2hpdGVzcGFjZSBleGFtcGxlOgorQEAgLTMwNTIsOCArMzA1OCwxMCBAQCBzdHJj bXBfaXcgKGNvbnN0IGNoYXIgKnN0cmluZzEsIGNvbnN0IGNoCisgaW50Cisgc3RyY21wX2l3X29y ZGVyZWQgKGNvbnN0IGNoYXIgKnN0cmluZzEsIGNvbnN0IGNoYXIgKnN0cmluZzIpCisgeworLSAg LyogRm9ybWF0dGluZyBzdHViLiAgKi8KKy0gIGlmICgxKQorKyAgY29uc3QgY2hhciAqc2F2ZWRf c3RyaW5nMSA9IHN0cmluZzEsICpzYXZlZF9zdHJpbmcyID0gc3RyaW5nMjsKKysgIGVudW0gY2Fz ZV9zZW5zaXRpdml0eSBjYXNlX3Bhc3MgPSBjYXNlX3NlbnNpdGl2ZV9vZmY7CisrCisrICBmb3Ig KDs7KQorICAgICB7CisgICAgICAgLyogQzEgYW5kIEMyIGFyZSB2YWxpZCBvbmx5IGlmICpzdHJp bmcxICE9ICdcMCcgJiYgKnN0cmluZzIgIT0gJ1wwJy4KKyAJIFByb3ZpZGUgc3R1YiBjaGFyYWN0 ZXJzIGlmIHdlIGFyZSBhbHJlYWR5IGF0IHRoZSBlbmQgb2Ygb25lIG9mIHRoZQorQEAgLTMwNjcs OCArMzA3NSwxNyBAQCBzdHJjbXBfaXdfb3JkZXJlZCAoY29uc3QgY2hhciAqc3RyaW5nMSwgCisg CSAgd2hpbGUgKGlzc3BhY2UgKCpzdHJpbmcyKSkKKyAJICAgIHN0cmluZzIrKzsKKyAKKysJICBz d2l0Y2ggKGNhc2VfcGFzcykKKysJICB7CisrCSAgICBjYXNlIGNhc2Vfc2Vuc2l0aXZlX29mZjoK KysJICAgICAgYzEgPSB0b2xvd2VyICgodW5zaWduZWQgY2hhcikgKnN0cmluZzEpOworKwkgICAg ICBjMiA9IHRvbG93ZXIgKCh1bnNpZ25lZCBjaGFyKSAqc3RyaW5nMik7CisrCSAgICAgIGJyZWFr OworKwkgICAgY2FzZSBjYXNlX3NlbnNpdGl2ZV9vbjoKKyAJICAgICAgYzEgPSAqc3RyaW5nMTsK KyAJICAgICAgYzIgPSAqc3RyaW5nMjsKKysJICAgICAgYnJlYWs7CisrCSAgfQorIAkgIGlmIChj MSAhPSBjMikKKyAJICAgIGJyZWFrOworIAorQEAgLTMwODYsNyArMzEwMyw3IEBAIHN0cmNtcF9p d19vcmRlcmVkIChjb25zdCBjaGFyICpzdHJpbmcxLCAKKyAJICAgICBjb21wYXJpc29uIGluIHRo ZSBjYXNlcyB3aGVyZSBvbmUgb2YgdGhlbSBpcyAnXDAnIG9yICcoJy4gICovCisgCWNhc2UgJ1ww JzoKKyAJICBpZiAoKnN0cmluZzIgPT0gJ1wwJykKKy0JICAgIHJldHVybiAwOworKwkgICAgYnJl YWs7CisgCSAgZWxzZQorIAkgICAgcmV0dXJuIC0xOworIAljYXNlICcoJzoKK0BAIC0zMDk3LDkg KzMxMTQsMjIgQEAgc3RyY21wX2l3X29yZGVyZWQgKGNvbnN0IGNoYXIgKnN0cmluZzEsIAorIAlk ZWZhdWx0OgorIAkgIGlmICgqc3RyaW5nMiA9PSAnXDAnIHx8ICpzdHJpbmcyID09ICcoJykKKyAJ ICAgIHJldHVybiAxOworLQkgIGVsc2UKKy0JICAgIHJldHVybiBjMSAtIGMyOworKwkgIGVsc2Ug aWYgKGMxID4gYzIpCisrCSAgICByZXR1cm4gMTsKKysJICBlbHNlIGlmIChjMSA8IGMyKQorKwkg ICAgcmV0dXJuIC0xOworKwkgIC8qIFBBU1NUSFJVICovCisgCX0KKysKKysgICAgICBpZiAoY2Fz ZV9wYXNzID09IGNhc2Vfc2Vuc2l0aXZlX29uKQorKwlyZXR1cm4gMDsKKysgICAgICAKKysgICAg ICAvKiBPdGhlcndpc2UgdGhlIHN0cmluZ3Mgd2VyZSBlcXVhbCBpbiBjYXNlIGluc2Vuc2l0aXZl IHdheSwgbWFrZQorKwkgYSBtb3JlIGZpbmUgZ3JhaW5lZCBjb21wYXJpc29uIGluIGEgY2FzZSBz ZW5zaXRpdmUgd2F5LiAgKi8KKysKKysgICAgICBjYXNlX3Bhc3MgPSBjYXNlX3NlbnNpdGl2ZV9v bjsKKysgICAgICBzdHJpbmcxID0gc2F2ZWRfc3RyaW5nMTsKKysgICAgICBzdHJpbmcyID0gc2F2 ZWRfc3RyaW5nMjsKKyAgICAgfQorIH0KKyAKCmRpZmYgLS1naXQgYS9nZGItYno2NDU3NzMtY2Fz ZS1pbnNlbnNpdGl2ZS01b2Y1LnBhdGNoIGIvZ2RiLWJ6NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUt NW9mNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDc3MDM3Ci0t LSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUtNW9mNS5wYXRj aApAQCAtMCwwICsxLDYyIEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMv MjAxMS0wNC9tc2cwMDU0Ni5odG1sCitTdWJqZWN0OiBbb2J2XSBGaXggY29tcGxldGVyIHByZS1l eHBhbnNpb24gZm9yIGNhc2UgaW5zZW5zaXRpdmUgbG9va3VwcworCitIaSwKKworZHVlIHRvIHRo ZSBwZW5kaW5nIHBhdGNoZXMgdGhlcmUgaGFwcGVuZWQgYSBzZW1hbnRpYyBjb2xsaXNpb24uICBC b3RoIHBhdGhzZXRzCit3ZXJlIHJpZ2h0IG9uIHRoZWlyIG93biBidXQgdG9nZXRoZXIgaXQgZGlk IG5vdCB3b3JrIHdlbGwuICBUaGVyZSBjb3VsZCBiZQorYSB0ZXN0Y2FzZSBmb3IgaXQgYnV0IEkg ZG8gbm90IHByb3ZpZGUgaXQsIGl0IHNlZW1zIG9idmlvdXMgZW5vdWdodCB0byBtZS4KKworVGhl IHR3byBwYXRjaGVzIHdlcmU6CisJUmU6IFtwYXRjaCAzLzNdIGNhc2UgaW5zZW5zaXRpdmU6IHRo ZSBmaXggW3JlZGlmZl0KKwlodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAx MS0wNC9tc2cwMDQxOC5odG1sCisJIC0gc2VlIHRoZSBjaGFuZ2UgaW4gY29tcGxldGlvbl9saXN0 X2FkZF9uYW1lCithbmQKKwlbcGF0Y2hdWys3LjNdIEZpeCBwaHlzbmFtZSBjb21wbGV0aW9uIHJl Z3Jlc3Npb24KKwlodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMS0wNC9t c2cwMDE0MC5odG1sCisJIC0gc2VlIGV4cGFuZF9wYXJ0aWFsX3N5bWJvbF9uYW1lIHdoaWNoIGp1 c3QgY2FsbGVkCisJICAgY29tcGxldGlvbl9saXN0X2FkZF9uYW1lIGJlZm9yZSBidXQgbm93IGl0 IGhhcyBleHBsaWNpdCBzdHJuY21wLgorCitBbm90aGVyIHByb2JsZW0gaXMgdGhpcyBjb2RlIGlz IHN0aWxsIHdyb25nLiAgVGhhdCBpcyB0aGUgc3ViamVjdCBvZjoKKwlDVSBleHBhbnNpb24gcHJv YmxlbSBmb3IgcGFyYW1ldGVycworCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93 X2J1Zy5jZ2k/aWQ9MTI3MDgKKworQnV0IEkgZGlkIG5vdCB3YW50IHRvIG1peCB0d28gdW5yZWxh dGVkIGZpeGVzIGludG8gYSBzaW5nbGUgcGF0Y2gKKworTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82 NCx4ODZfNjQtbTMyLGk2ODZ9LWZlZG9yYTE1LWxpbnV4LWdudS4gIENoZWNrZWQgaXQgaW4KK2Fs cmVhZHkgdG8gbm90IGdldCBsb3N0IGluIHRoZSBpbnRlci1wYXRjaCBkZXBlbmRlbmNpZXMgYWdh aW4uCisKKworU29ycnksCitKYW4KKworCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2 cy8yMDExLTA0L21zZzAwMTg2Lmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTEvMDQv MjggMTU6NTI6NTMJMS4xMjk2NAorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTEvMDQvMjggMTc6 Mzc6MDIJMS4xMjk2NQorIyMgLTEsMyArMSw4IEBACisrMjAxMS0wNC0yOCAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorKworKwkqIHN5bXRhYi5jIChleHBhbmRf cGFydGlhbF9zeW1ib2xfbmFtZSk6IE5ldyB2YXJpYWJsZSBOQ01QLiAgU3VwcG9ydAorKwljYXNl IGluc2Vuc2l0aXZlIGNvbXBhcmlzb24uCisrCisgMjAxMS0wNC0yOCAgVWxyaWNoIFdlaWdhbmQg IDx1bHJpY2gud2VpZ2FuZEBsaW5hcm8ub3JnPgorIAorIAkqIGluZnJ1bi5jIChwcm9jZWVkKTog UmV2ZXJ0IHByZXZpb3VzIGNoYW5nZS4KKy0tLSBzcmMvZ2RiL3N5bXRhYi5jCTIwMTEvMDQvMjcg MjA6MDM6MDMJMS4yNjkKKysrKyBzcmMvZ2RiL3N5bXRhYi5jCTIwMTEvMDQvMjggMTc6Mzc6MDYJ MS4yNzAKK0BAIC0zNzA3LDggKzM3MDcsMTEgQEAKKyBleHBhbmRfcGFydGlhbF9zeW1ib2xfbmFt ZSAoY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqdXNlcl9kYXRhKQorIHsKKyAgIHN0cnVjdCBhZGRf bmFtZV9kYXRhICpkYXR1bSA9IChzdHJ1Y3QgYWRkX25hbWVfZGF0YSAqKSB1c2VyX2RhdGE7Cisr ICBpbnQgKCpuY21wKSAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CisgCist ICByZXR1cm4gc3RybmNtcCAobmFtZSwgZGF0dW0tPnN5bV90ZXh0LCBkYXR1bS0+c3ltX3RleHRf bGVuKSA9PSAwOworKyAgbmNtcCA9IChjYXNlX3NlbnNpdGl2aXR5ID09IGNhc2Vfc2Vuc2l0aXZl X29uID8gc3RybmNtcCA6IHN0cm5jYXNlY21wKTsKKysKKysgIHJldHVybiBuY21wIChuYW1lLCBk YXR1bS0+c3ltX3RleHQsIGRhdHVtLT5zeW1fdGV4dF9sZW4pID09IDA7CisgfQorIAorIGNoYXIg KioKKwoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLWNvbW1vbi5wYXRjaCBiL2dkYi1mb3J0cmFu LWNvbW1vbi5wYXRjaAppbmRleCBhY2MzNjIyLi5iZTViZjIyIDEwMDY0NAotLS0gYS9nZGItZm9y dHJhbi1jb21tb24ucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4tY29tbW9uLnBhdGNoCkBAIC0xLDgg KzEsOCBAQAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2R3YXJmMnJlYWQuYworSW5k ZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDEtMTcgMTU6 NTA6NDEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvZHdhcmYy cmVhZC5jCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAwICswMTAwCi1AQCAtNzQ2NSwxMiAr NzQ2NSwxNCBAQCByZWFkX3NldF90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RyCistLS0g Z2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxMS0wNC0yOSAwOTo0 MToxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9kd2FyZjJy ZWFkLmMJMjAxMS0wNC0yOSAwOTo0MToyMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC03NTY5LDEyICs3 NTY5LDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHIKICAgIHJl dHVybiBzZXRfZGllX3R5cGUgKGRpZSwgc2V0X3R5cGUsIGN1KTsKICB9CiAgCkBAIC0xOSw3ICsx OSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9kd2FyZjJyZWFkLmMKICAgIHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CiAgICBzdHJ1Y3Qgc3ltYm9sICpzeW07CiAgICBDT1JFX0FE RFIgYmFzZSA9IChDT1JFX0FERFIpIDA7Ci1AQCAtNzQ5NSwxMCArNzQ5Nyw0MCBAQCByZWFkX2Nv bW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNzU5OSwxMCArNzYwMSw0MCBA QCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICAgIH0KICAgIGlm IChkaWUtPmNoaWxkICE9IE5VTEwpCiAgICAgIHsKQEAgLTYwLDcgKzYwLDcgQEAgSW5kZXg6IGdk Yi03LjIuNTAuMjAxMTAxMTcvZ2RiL2R3YXJmMnJlYWQuYwogIAkgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoY2hpbGRfZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiwgY3UpOwogIAkgIGlmIChz eW0gIT0gTlVMTCAmJiBhdHRyICE9IE5VTEwpCiAgCSAgICB7Ci1AQCAtNzUxNiw4ICs3NTQ4LDI1 IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC03NjIwLDgg Kzc2NTIsMjUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogIAkg ICAgICBTWU1CT0xfVkFMVUVfQUREUkVTUyAoc3ltKSA9IGJhc2UgKyBieXRlX29mZnNldDsKICAJ ICAgICAgYWRkX3N5bWJvbF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgICB9 CkBAIC04Niw3ICs4Niw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9kd2FyZjJy ZWFkLmMKICAgICAgfQogIH0KICAKLUBAIC0xMTExMSw2ICsxMTE2MCwxMyBAQCBuZXdfc3ltYm9s X2Z1bGwgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzCitAQCAtMTEyODYsNiArMTEzMzUsMTMgQEAg bmV3X3N5bWJvbF9mdWxsIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcwogIAkgICAgewogIAkgICAg ICB2YXJfZGVjb2RlX2xvY2F0aW9uIChhdHRyLCBzeW0sIGN1KTsKICAJICAgICAgYXR0cjIgPSBk d2FyZjJfYXR0ciAoZGllLCBEV19BVF9leHRlcm5hbCwgY3UpOwpAQCAtMTAwLDcgKzEwMCw3IEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9kd2FyZjJyZWFkLmMKICAJICAgICAgaWYg KFNZTUJPTF9DTEFTUyAoc3ltKSA9PSBMT0NfU1RBVElDCiAgCQkgICYmIFNZTUJPTF9WQUxVRV9B RERSRVNTIChzeW0pID09IDAKICAJCSAgJiYgIWR3YXJmMl9wZXJfb2JqZmlsZS0+aGFzX3NlY3Rp b25fYXRfemVybykKLUBAIC0xMTI4Myw2ICsxMTMzOSwxMSBAQCBuZXdfc3ltYm9sX2Z1bGwgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzCitAQCAtMTE0NTgsNiArMTE1MTQsMTEgQEAgbmV3X3N5bWJv bF9mdWxsIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcwogIAkgIFNZTUJPTF9DTEFTUyAoc3ltKSA9 IExPQ19UWVBFREVGOwogIAkgIGxpc3RfdG9fYWRkID0gJmdsb2JhbF9zeW1ib2xzOwogIAkgIGJy ZWFrOwpAQCAtMTEyLDEwICsxMTIsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2Ri L2R3YXJmMnJlYWQuYwogIAlkZWZhdWx0OgogIAkgIC8qIE5vdCBhIHRhZyB3ZSByZWNvZ25pemUu ICBIb3BlZnVsbHkgd2UgYXJlbid0IHByb2Nlc3NpbmcKICAJICAgICB0cmFzaCBkYXRhLCBidXQg c2luY2Ugd2UgbXVzdCBzcGVjaWZpY2FsbHkgaWdub3JlIHRoaW5ncwotSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIv Zi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2Yt bGFuZy5jCTIwMTEtMDEtMTcgMTU6NTY6MDcuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41 MC4yMDExMDExNy9nZGIvZi1sYW5nLmMJMjAxMS0wMS0xNyAxNTo1Njo0OC4wMDAwMDAwMDAgKzAx MDAKKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTEtMDQtMjkg MDk6NDE6MTUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvZi1s YW5nLmMJMjAxMS0wNC0yOSAwOTo0MToyMC4wMDAwMDAwMDAgKzAyMDAKIEBAIC00NDYsMjcgKzQ0 NiwzIEBAIF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKHZvaWQpCiAgCiAgICBhZGRfbGFuZ3VhZ2Ug KCZmX2xhbmd1YWdlX2RlZm4pOwpAQCAtMTQ0LDEwICsxNDQsMTAgQEAgSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5jCiAtICAgIH0KIC0gIHJldHVybiAoTlVMTCk7CiAtfQot SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5oCitJbmRleDogZ2RiLTcuMi45 MC4yMDExMDQyOS9nZGIvZi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEw MTE3Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTEtMDEtMTcgMTU6NTQ6MTQuMDAwMDAwMDAwICswMTAw Ci0rKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvZi1sYW5nLmgJMjAxMS0wMS0xNyAxNTo1Njoy My4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjkwLjIwMTEwNDI5Lm9yaWcvZ2RiL2YtbGFu Zy5oCTIwMTEtMDQtMjkgMDk6NDE6MTUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi45MC4y MDExMDQyOS9nZGIvZi1sYW5nLmgJMjAxMS0wNC0yOSAwOTo0MToyMC4wMDAwMDAwMDAgKzAyMDAK IEBAIC01MiwzNiArNTIsOCBAQCBlbnVtIGY5MF9yYW5nZV90eXBlCiAgICAgIE5PTkVfQk9VTkRf REVGQVVMVAkJLyogIihsb3c6aGlnaCkiICAqLwogICAgfTsKQEAgLTE4NSwxMCArMTg1LDEwIEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLWxhbmcuaAogIAogIC8qIFdoZW4gcmVh c29uYWJsZSBhcnJheSBib3VuZHMgY2Fubm90IGJlIGZldGNoZWQsIHN1Y2ggYXMgd2hlbiAKICAg ICB5b3UgYXNrIHRvICdtdCBwcmludCBzeW1ib2xzJyBhbmQgdGhlcmUgaXMgbm8gc3RhY2sgZnJh bWUgYW5kIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtdmFscHJpbnQuYworSW5k ZXg6IGdkYi03LjIuOTAuMjAxMTA0MjkvZ2RiL2YtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTEtMDEtMTcgMTU6 NTQ6MzYuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvZi12YWxw cmludC5jCTIwMTEtMDEtMTcgMTU6NTk6MzguMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi45 MC4yMDExMDQyOS5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxMS0wNC0yOSAwOTo0MToxNS4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi9mLXZhbHByaW50LmMJMjAx MS0wNC0yOSAwOTo0MToyMC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0zNCw2ICszNCw4IEBACiAgI2lu Y2x1ZGUgImdkYmNvcmUuaCIKICAjaW5jbHVkZSAiY29tbWFuZC5oIgpAQCAtMTk4LDcgKzE5OCw3 IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLXZhbHByaW50LmMKICAKICBleHRl cm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkKTsKICBzdGF0aWMgdm9pZCBpbmZv X2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7Ci1AQCAtNDg5LDIyICs0OTEsNTQgQEAgZl92 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZAorQEAgLTUwMSwyMiArNTAzLDU0 IEBAIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKICAgIHJldHVybiAw OwogIH0KICAKQEAgLTI2Niw3ICsyNjYsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvZi12YWxwcmludC5jCiAgfQogIAogIC8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBwcmlu dCBvdXQgdGhlIHZhbHVlcyBpbiBhIGdpdmVuIENPTU1PTiAKLUBAIC01MTQsMTEgKzU0OCw5IEBA IGxpc3RfYWxsX3Zpc2libGVfY29tbW9ucyAoY2hhciAqZnVubmFtZSkKK0BAIC01MjYsMTEgKzU2 MCw5IEBAIGxpc3RfYWxsX3Zpc2libGVfY29tbW9ucyAoY2hhciAqZnVubmFtZSkKICBzdGF0aWMg dm9pZAogIGluZm9fY29tbW9uX2NvbW1hbmQgKGNoYXIgKmNvbW5hbWUsIGludCBmcm9tX3R0eSkK ICB7CkBAIC0yODAsNyArMjgwLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2Yt dmFscHJpbnQuYwogIAogICAgLyogV2UgaGF2ZSBiZWVuIHRvbGQgdG8gZGlzcGxheSB0aGUgY29u dGVudHMgb2YgRjc3IENPTU1PTiAKICAgICAgIGJsb2NrIHN1cHBvc2VkbHkgdmlzaWJsZSBpbiB0 aGlzIGZ1bmN0aW9uLiAgTGV0IHVzIAotQEAgLTUzMCw3NCArNTYyLDMxIEBAIGluZm9fY29tbW9u X2NvbW1hbmQgKGNoYXIgKmNvbW5hbWUsIGludCAKK0BAIC01NDIsNzQgKzU3NCwzMSBAQCBpbmZv X2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQgCiAgICAvKiBUaGUgZm9sbG93aW5n IGlzIGdlbmVyYWxseSByaXBwZWQgb2ZmIGZyb20gc3RhY2suYydzIHJvdXRpbmUgCiAgICAgICBw cmludF9mcmFtZV9pbmZvKCkuICAqLwogIApAQCAtMzcxLDExICszNzEsMTEgQEAgSW5kZXg6IGdk Yi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtdmFscHJpbnQuYwogIH0KICAKICB2b2lkCi1JbmRleDog Z2RiLTcuMi41MC4yMDExMDExNy9nZGIvc3RhY2suYworSW5kZXg6IGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL3N0YWNrLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcv Z2RiL3N0YWNrLmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ny4yLjUwLjIwMTEwMTE3L2dkYi9zdGFjay5jCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAw ICswMTAwCi1AQCAtMTQ5OCw2ICsxNDk4LDggQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2FscyAo c3RydWN0IGJsb2NrIAorLS0tIGdkYi03LjIuOTAuMjAxMTA0Mjkub3JpZy9nZGIvc3RhY2suYwky MDExLTA0LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0 MjkvZ2RiL3N0YWNrLmMJMjAxMS0wNC0yOSAwOTo0MToyMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0x NTI1LDYgKzE1MjUsOCBAQCBpdGVyYXRlX292ZXJfYmxvY2tfbG9jYWxzIChzdHJ1Y3QgYmxvY2sg CiAgCWNhc2UgTE9DX0NPTVBVVEVEOgogIAkgIGlmIChTWU1CT0xfSVNfQVJHVU1FTlQgKHN5bSkp CiAgCSAgICBicmVhazsKQEAgLTM4NCwyNiArMzg0LDI2IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTEwMTE3L2dkYi9zdGFjay5jCiAgCSAgKCpjYikgKFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBz eW0sIGNiX2RhdGEpOwogIAkgIGJyZWFrOwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcv Z2RiL3N5bXRhYi5oCitJbmRleDogZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvc3ltdGFiLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3N5bXRhYi5oCTIwMTEt MDEtMTcgMTU6NDc6MzcuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvc3ltdGFiLmgJMjAxMS0wMS0xNyAxNTo1NjoyMy4wMDAwMDAwMDAgKzAxMDAKLUBAIC00MDgs NyArNDA4LDEwIEBAIHR5cGVkZWYgZW51bSBkb21haW5fZW51bV90YWcKLSAgIEZVTkNUSU9OU19E T01BSU4sCistLS0gZ2RiLTcuMi45MC4yMDExMDQyOS5vcmlnL2dkYi9zeW10YWIuaAkyMDExLTA0 LTI5IDA5OjQwOjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuOTAuMjAxMTA0MjkvZ2Ri L3N5bXRhYi5oCTIwMTEtMDQtMjkgMDk6NDI6MTcuMDAwMDAwMDAwICswMjAwCitAQCAtNDExLDcg KzQxMSwxMCBAQCB0eXBlZGVmIGVudW0gZG9tYWluX2VudW1fdGFnCisgICBUWVBFU19ET01BSU4s CiAgCi0gICAvKiBBbGwgZGVmaW5lZCB0eXBlcyAqLwotLSAgVFlQRVNfRE9NQUlOCi0rICBUWVBF U19ET01BSU4sCisgICAvKiBBbnkgdHlwZS4gICovCistICBBTExfRE9NQUlOCisrICBBTExfRE9N QUlOLAogKwogKyAgLyogRm9ydHJhbiBjb21tb24gYmxvY2tzLiAgVGhlaXIgbmFtaW5nIG11c3Qg YmUgc2VwYXJhdGUgZnJvbSBWQVJfRE9NQUlOLiAgKi8KICsgIENPTU1PTl9CTE9DS19ET01BSU4K ICB9CiAgZG9tYWluX2VudW07CiAgCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5leHAKK0luZGV4OiBnZGItNy4yLjkwLjIw MTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24t YmxvY2suZXhwCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5leHAJ MjAxMS0wNC0yOSAwOTo0MToyMC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMTAxIEBACiAr IyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTUw NiwxMCArNTA2LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmV4cAogK2dkYl90ZXN0ICJwIGl4X3giICIgPSAxICoi ICJwIGl4X3ggaW4iCiArZ2RiX3Rlc3QgInAgaXlfeSIgIiA9IDIgKiIgInAgaXlfeSBpbiIKICtn ZGJfdGVzdCAicCBpel96MiIgIiA9IDMgKiIgInAgaXpfejIgaW4iCi1JbmRleDogZ2RiLTcuMi41 MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5mOTAKK0lu ZGV4OiBnZGItNy4yLjkwLjIwMTEwNDI5L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9u LWJsb2NrLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZjkwCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMi45MC4yMDExMDQyOS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2NvbW1vbi1ibG9jay5mOTAJMjAxMS0wNC0yOSAwOTo0MToyMC4wMDAwMDAwMDAgKzAyMDAKIEBA IC0wLDAgKzEsNjcgQEAKICshIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKyEKCmRpZmYgLS1naXQgYS9nZGItb3B0aW0tZy1wcm9sb2d1ZS1za2lwLnBhdGNo IGIvZ2RiLW9wdGltLWctcHJvbG9ndWUtc2tpcC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4xZGFhYjEzCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLW9wdGltLWctcHJv bG9ndWUtc2tpcC5wYXRjaApAQCAtMCwwICsxLDgzMCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3Jn L21sL2dkYi1wYXRjaGVzLzIwMTEtMDQvbXNnMDAyMjkuaHRtbAorU3ViamVjdDogW3JmYywgNy4z P10gLU8yIC1nIGJyZWFrcG9pbnRzIGludGVybmFsIGVycm9yICsgcHJvbG9ndWUgc2tpcHBpbmcK KworWyBCYWNrcG9ydGVkLiAgXQorCitIaSwKKworb2Jzb2xldGVzIG15OgorCVtwYXRjaF0gRml4 IGludGVybmFsIGVycm9yIG9uIHNvbWUgLU8yIC1nIGJyZWFrcG9pbnRzCisJaHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDcvbXNnMDA1MzMuaHRtbAorYW5kIElNTyBh bHNvIFBhdWwnczoKKwlbcGF0Y2hdIEZpeCBmb3IgUFIgZ2RiLzEyNTczCisJaHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTEtMDMvbXNnMDA4ODMuaHRtbAoraXQgaXMgYW4g aW1wcm92ZW1lbnQgb2Y6CisJW3BhdGNoXSBEbyBub3Qgc2tpcCBwcm9sb2d1ZSBmb3IgLU8yIC1n IHdpdGggR0NDIFZUQSBSZTogW3BhdGNoXSBGaXggZm9yIFBSIGdkYi8xMjU3MworCWh0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDExLTAzL21zZzAxMTI5Lmh0bWwKKworSnVz dCB0aGUgcmVtb3ZhbCBvZiBnZGJfYXNzZXJ0IG1heSBwbGFjZSB0aGUgYnJlYWtwb2ludHMgb24g LU8yIC1nIGNvZGUgdG9vCitsYXRlLiAgSU1PIG9uIGAoZ2RiKSBicmVhayBCYXI6OkJhcicgbm8g cmVhbCBpbmZlcmlvciBtb2RpZmljYXRpb24gc2hvdWxkCitoYXBwZW4gd2hpbGUgd2l0aCB0aGUg UGF1bCdzIHJlcHJvZHVjZXIgaW4gdGhlIFBSIHRoZSBgZnJlZShtYWxsb2MoMSkpOycgbGluZQor aXMgYWxyZWFkeSBleGVjdXRlZCB3aGVuIEdEQiBzdG9wcy4gIFRoaXMgb3Zlci1leGVjdXRpb24g aXMgdGVzdGVkIGluIHRoZQorYXR0YWNoZWQgYXJ0aWZpY2lhbCByZXByb2R1Y2VyIGJ5IHRoZSB0 ZXN0Y2FzZSAibm8gc3RhdGVtZW50IGdvdCBleGVjdXRlZCIuCisKK1RoZXJlIGFyZSBzZXZlcmFs IGlzc3VlcyBvZiB0aGlzIHBhdGNoOgorCisjMSBUaGUgdHdvLXBhc3MgY29tcGxpY2F0ZWQgZXhl Y3V0aW9uIGluIHNraXBfcHJvbG9ndWVfc2FsIGN1cnJlbnRseSBoYXMgbm8KK2VmZmVjdCBhcyB0 aGUgZnVuY3Rpb25hbGl0eSBkZXBlbmRpbmcgb24gaXQgZG9lcyBub3Qgd29yayBub3cuICBCdXQg dGhhdCBpcworYSBzZXBhcmF0ZSBuZXcgQnVnIGFuZCB0aGUgdHdvIHBhc3NlcyB3aWxsIGJlIG5l ZWRlZCBhZnRlciBpdHMgZml4OgorCXJlZ3Jlc3Npb24gYnkgcGh5c25hbWU6IFBFMzIgcHJvbG9n dWUgc2tpcCB2cy4gc3RhdGljIGluaXRpYWxpemVycworCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9i dWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTI2ODAKKworIzIgQSBjb25zZXJ2YXRpdmUgYXBwcm9h Y2ggaGFzIGJlZW4gdGFrZW4uICBUaGUgcHJvYmxlbWF0aWMgcHJvbG9ndWUgc2tpcHBpbmcKK2lz IGRpc2FibGVkIG9ubHkgaWYgLmRlYnVnX2xvYyByZWZlcmVuY2UgaXMgZm91bmQgd2hpY2ggcHJv dmVzIC1PMiAod2l0aCAtZykuCisgICAgIFRoaXMgdGVzdCBpcyBpbXBlcmZlY3QgYXMgdGhlcmUg bWF5IGV4aXN0IG9wdGltaXplZCBkZWJ1ZyBjb2RlIG5vdCB1c2luZyAKKyAgICAgYW55IGxvY2F0 aW9uIGxpc3QgYW5kIHN0aWxsIGZhY2luZyBpbmxpbmluZyBpc3N1ZXMgaWYgaGFuZGxlZCBhcwor ICAgICB1bm9wdGltaXplZCBjb2RlLiAgRm9yIGEgZnV0dXJlIGJldHRlciB0ZXN0IHNlZSBHQ0Mg UFIgb3RoZXIvMzI5OTguCisgICAgIEdDQyBQUiBvdGhlci8zMjk5OCA9IC1mcmVjb3JkLWdjYy1z d2l0Y2hlcyBpc3N1ZXMsIFN0YXR1czogTkVXCitUaGUgb3Bwb3NpdGUgb3B0aW9uIHdvdWxkIGJl IHRvIGtlZXAgdGhlIHByb2xvZ3VlIHNraXBwaW5nIGVuYWJsZWQgb25seSBpZgordGhlcmUgaXMg YW55IERXX0FUX2xvY2F0aW9uKERXX09QX2ZicmVnKHgpKS4gIEkgaGF2ZW4ndCB0ZXN0ZWQgdGhp cyB3YXksIGl0CitzZWVtcyB2ZXJ5IGludHJ1c2l2ZSB0byBtZS4gIEluIHByYWN0aWNlIEkgZG91 YnQgdGhlcmUgd2lsbCBiZSBhIHJlYWwgd29ybGQKK2Nhc2Ugb2YgLU8yIC1nIENVIG5vdCByZWZl cmVuY2luZyAuZGVidWdfbG9jIC0gc3VjaCBhcyBpZiBhbGwgaXRzIGNvZGUgYWNjZXNzZXMKK29u bHkgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgaGFzIG5vIGxvY2FsIHZhcmlhYmxlcy4gIEp1c3QgdGhl IHRlc3RjYXNlIG9yaWdpbmFsbHkKK3dhcyBzdWNoIGEgY291bnRlcmNhc2UgQ1UuIDotLyAgVGhl IEdEQiBpbnRlcm5hbCBlcnJvciBpcyBrZXB0IGluIHBsYWNlIGFzIGl0CitzdGlsbCBjYW4gaGFw cGVuIGluIHN1Y2ggY2FzZSwgdGhpcyBwcm9ibGVtIGlzIG5vdCB5ZXQgZnVsbHkgZml4ZWQuCisK KyMzIFdoZXRoZXIgYSAuZGVidWdfbG9jIHJlZmVyZW5jZSBtYXkgYmUgcHJlc2VudCB3aXRoIHN0 aWxsIGludmFsaWQKK0RXX0FUX2xvY2F0aW9uIGJlZm9yZSBwcm9sb2d1ZSBJIGRvIG5vdCBrbm93 LCBpdCBkb2VzIG5vdCBzZWVtIHRvIGhhcHBlbiBmb3IKK0dDQy4gIFRoZXJlIGlzIGN1cnJlbnRs eSBubyBEV19BVF9wcm9kdWNlciBjaGVjay4gIEV2ZW4gYmVmb3JlIFZUQSAoVmFyaWFibGUKK1Ry YWNraW5nIEFzc2lnbm1lbnRzLCBzaW5jZSBGU0YgR0NDIDQuNSwgLU8yIC1nIHZhcmlhYmxlcyBE V19BVF9sb2NhdGlvbgoraW1wcm92ZW1lbnQpIGl0IHNlZW1zIHRvIG1lIHRoZSB2YWxpZGl0eSBh dCBmdW5jdGlvbiBlbnRyeSBwb2ludCB3b3JrZWQgd2VsbAorZW5vdWdoLgorCisjNCBUaGlzIHdo b2xlIHByb2JsZW1zIGFwcGVhcnMgb25seSB3aXRoIGludm9sdmVtZW50IG9mIGlubGluZWQgY29k ZSwgZWl0aGVyCitleHBsaWNpdGx5IG9yIGltcGxpY2l0bHkuICBCdXQgR0RCIGRvZXMgbm90IHN1 cHBvcnQgaW5saW5lZCBjb2RlIGJyZWFrcG9pbnRzCit3ZWxsIChQUiBicmVha3BvaW50cy8xMDcz OCwgUkggQlojMTQ5MTI1KS4gIFdoZW4gb25lIHBsYXlzIHdpdGggdGVzdGluZyB0aGlzCitwYXRj aCB2YXJpb3VzIHN1aXRhYmxlIGJyZWFrcG9pbnRzIGFyZSBub3QgcGxhY2VkIGJ1dCBBRkFJSyBh bGwgb2YgdGhlbSBhcmUgaW4KK3RoZSBzY29wZSBvZiB0aGUgUFIgMTA3MzguCisKKyM1IElmIGZ1 bmN0aW9uIGRvZXMgbm90IHN0YXJ0IGlzIG5vdCBvbiBhIGxpbmUgYm91bmRhcnkgdGhlIG11bHRp LWxvY2F0aW9uCiticmVha3BvaW50cyBhcmUgYWxyZWFkeSBub3QgZm91bmQgcHJvcGVybHkgYW5k IGV2ZXJ5dGhpbmcgZmFpbHMuICBJIGRvIG5vdAordGhpbmsgaXQgY2FuIGV2ZXIgaGFwcGVuIGlu IHJlYWwgd29ybGQuICBFdmVuIGZvciBhIHNpbmdlLWxpbmUgY29kZQorICAgIHZvaWQgZiAodm9p ZCkge30gdm9pZCBnICh2b2lkKSB7fQorR0NDIHBsYWNlcyB0aGVyZSBtdWx0aXBsZSBsaW5lIG1h cmtlcnMgLSAtTzIgLWcsIGR1cGxpY2l0eSBpcyBmb3IgcHJvbG9ndWVzOgorRmlsZSBuYW1lICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpbmUgbnVtYmVyICAgIFN0YXJ0aW5nIGFkZHJlc3MK KzEuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAgICAg ICAgICAgICAgICAwCisxLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgICAgMAorMS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgIDB4MTAKKzEuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAweDEwCisKKwor V2hldGhlciB0aGlzIHNob3VsZCBnbyBmb3IgNy4zIEkgYW0gbm90IHN1cmUuICBUaGUgc2ltcGxl IHJlbW92YWwgb2YKK2dkYl9hc3NlcnQgbG9va3MgbmljZSwgR0RCIGRvZXMgbm90IGNyYXNoLiBC dXQgR0RCIGJlaGF2ZXMgd3JvbmcgYW5kIGBicmVhaworZnVuYycgbWF5IG5vdCBzdG9wIGJlZm9y ZSBhIGNyYXNoIHRoZXJlIGF0IGFsbCBldGMuCisKK05vIHJlZ3Jlc3Npb25zIG9uIHt4ODZfNjQs eDg2XzY0LW0zMixpNjg2fS1mZWRvcmExNS1saW51eC1nbnUuCisKK0kgd2lsbCB0byBjb21taXQg aXQgd2l0aG91dCBhbnkgcmV2aWV3L2Rpc2N1c3Npb24uCisKKworVGhhbmtzLAorSmFuCisKKwor Z2RiLworMjAxMS0wNC0xNSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPgorCisJKiBkd2FyZjJyZWFkLmMgKHN0cnVjdCBkd2FyZjJfY3UpOiBOZXcgZmllbGQgaGFz X2xvY2xpc3QuCisJKHByb2Nlc3NfZnVsbF9jb21wX3VuaXQpOiBTZXQgYWxzbyBzeW10YWItPmxv Y2F0aW9uc192YWxpZC4gIE1vdmUgdGhlCisJc3ltdGFiLT5sYW5ndWFnZSBjb2RlLgorCSh2YXJf ZGVjb2RlX2xvY2F0aW9uKTogU2V0IGN1LT5oYXNfbG9jbGlzdC4KKwkqIHN5bXRhYi5jIChza2lw X3Byb2xvZ3VlX3NhbCk6IE5ldyB2YXJpYWJsZXMgc2F2ZWRfcGMsIGZvcmNlX3NraXAgYW5kCisJ c2tpcC4gIEludGlhbGl6ZSBmb3JjZV9za2lwIGZyb20gbG9jYXRpb25zX3ZhbGlkLiAgTW92ZSB0 aGUgcHJvbG9ndWUKKwlza2lwcGluZyBjb2RlIGludG8gdHdvIHBhc3Nlcy4KKwkqIHN5bXRhYi5o IChzdHJ1Y3Qgc3ltdGFiKTogTWFrZSB0aGUgcHJpbWFyeSBmaWVsZCBhIGJpdGZpZWxkLiAgTmV3 CisJZmllbGQgbG9jYXRpb25zX3ZhbGlkLgorCitnZGIvdGVzdHN1aXRlLworMjAxMS0wNC0xNSAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuZHdh cmYyL2R3Mi1za2lwLXByb2xvZ3VlLlM6IE5ldyBmaWxlLgorCSogZ2RiLmR3YXJmMi9kdzItc2tp cC1wcm9sb2d1ZS5jOiBOZXcgZmlsZS4KKwkqIGdkYi5kd2FyZjIvZHcyLXNraXAtcHJvbG9ndWUu ZXhwOiBOZXcgZmlsZS4KKworLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYworKysrIGIvZ2RiL2R3YXJm MnJlYWQuYworQEAgLTM5Niw2ICszOTYsMTMgQEAgc3RydWN0IGR3YXJmMl9jdQorICAgICAgRElF cyBmb3IgbmFtZXNwYWNlcywgd2UgZG9uJ3QgbmVlZCB0byB0cnkgdG8gaW5mZXIgdGhlbQorICAg ICAgZnJvbSBtYW5nbGVkIG5hbWVzLiAgKi8KKyAgIHVuc2lnbmVkIGludCBoYXNfbmFtZXNwYWNl X2luZm8gOiAxOworKworKyAgLyogVGhpcyBDVSByZWZlcmVuY2VzIC5kZWJ1Z19sb2MuICBTZWUg dGhlIHN5bXRhYi0+bG9jYXRpb25zX3ZhbGlkIGZpZWxkLgorKyAgICAgVGhpcyB0ZXN0IGlzIGlt cGVyZmVjdCBhcyB0aGVyZSBtYXkgZXhpc3Qgb3B0aW1pemVkIGRlYnVnIGNvZGUgbm90IHVzaW5n CisrICAgICBhbnkgbG9jYXRpb24gbGlzdCBhbmQgc3RpbGwgZmFjaW5nIGlubGluaW5nIGlzc3Vl cyBpZiBoYW5kbGVkIGFzCisrICAgICB1bm9wdGltaXplZCBjb2RlLiAgRm9yIGEgZnV0dXJlIGJl dHRlciB0ZXN0IHNlZSBHQ0MgUFIgb3RoZXIvMzI5OTguICAqLworKworKyAgdW5zaWduZWQgaW50 IGhhc19sb2NsaXN0IDogMTsKKyB9OworIAorIC8qIFBlcnNpc3RlbnQgZGF0YSBoZWxkIGZvciBh IGNvbXBpbGF0aW9uIHVuaXQsIGV2ZW4gd2hlbiBub3QKK0BAIC00NjU0LDEzICs0NjYxLDE1IEBA IHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9j dSkKKyAKKyAgIHN5bXRhYiA9IGVuZF9zeW10YWIgKGhpZ2hwYyArIGJhc2VhZGRyLCBvYmpmaWxl LCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CisgCistICAvKiBTZXQgc3ltdGFiIGxhbmd1YWdl IHRvIGxhbmd1YWdlIGZyb20gRFdfQVRfbGFuZ3VhZ2UuCistICAgICBJZiB0aGUgY29tcGlsYXRp b24gaXMgZnJvbSBhIEMgZmlsZSBnZW5lcmF0ZWQgYnkgbGFuZ3VhZ2UgcHJlcHJvY2Vzc29ycywK Ky0gICAgIGRvIG5vdCBzZXQgdGhlIGxhbmd1YWdlIGlmIGl0IHdhcyBhbHJlYWR5IGRlZHVjZWQg Ynkgc3RhcnRfc3ViZmlsZS4gICovCistICBpZiAoc3ltdGFiICE9IE5VTEwKKy0gICAgICAmJiAh KGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jICYmIHN5bXRhYi0+bGFuZ3VhZ2UgIT0gbGFuZ3Vh Z2VfYykpCisrICBpZiAoc3ltdGFiICE9IE5VTEwpCisgICAgIHsKKy0gICAgICBzeW10YWItPmxh bmd1YWdlID0gY3UtPmxhbmd1YWdlOworKyAgICAgIC8qIFNldCBzeW10YWIgbGFuZ3VhZ2UgdG8g bGFuZ3VhZ2UgZnJvbSBEV19BVF9sYW5ndWFnZS4gIElmIHRoZQorKwkgY29tcGlsYXRpb24gaXMg ZnJvbSBhIEMgZmlsZSBnZW5lcmF0ZWQgYnkgbGFuZ3VhZ2UgcHJlcHJvY2Vzc29ycywgZG8KKysJ IG5vdCBzZXQgdGhlIGxhbmd1YWdlIGlmIGl0IHdhcyBhbHJlYWR5IGRlZHVjZWQgYnkgc3RhcnRf c3ViZmlsZS4gICovCisrICAgICAgaWYgKCEoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2MgJiYg c3ltdGFiLT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9jKSkKKysJc3ltdGFiLT5sYW5ndWFnZSA9IGN1 LT5sYW5ndWFnZTsKKysKKysgICAgICBzeW10YWItPmxvY2F0aW9uc192YWxpZCA9IGN1LT5oYXNf bG9jbGlzdDsKKyAgICAgfQorIAorICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+dXNpbmdfaW5k ZXgpCitAQCAtMTEyMjEsNiArMTEyMzAsOSBAQCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3Qg YXR0cmlidXRlICphCisgCisgICBTWU1CT0xfQ0xBU1MgKHN5bSkgPSBMT0NfQ09NUFVURUQ7Cisg ICBkd2FyZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKGF0dHIsIHN5bSwgY3UpOworKworKyAgaWYg KFNZTUJPTF9DT01QVVRFRF9PUFMgKHN5bSkgPT0gJmR3YXJmMl9sb2NsaXN0X2Z1bmNzKQorKyAg ICBjdS0+aGFzX2xvY2xpc3QgPSAxOworIH0KKyAKKyAvKiBHaXZlbiBhIHBvaW50ZXIgdG8gYSBE V0FSRiBpbmZvcm1hdGlvbiBlbnRyeSwgZmlndXJlIG91dCBpZiB3ZSBuZWVkCistLS0gYS9nZGIv c3ltdGFiLmMKKysrKyBiL2dkYi9zeW10YWIuYworQEAgLTI0NTQsMTIgKzI0NTQsMTMgQEAgc2tp cF9wcm9sb2d1ZV9zYWwgKHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgKnNhbCkKKyAgIHN0cnVjdCBz eW1ib2wgKnN5bTsKKyAgIHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgc3RhcnRfc2FsOworICAgc3Ry dWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKKy0gIENPUkVfQUREUiBwYzsKKysgIENPUkVfQUREUiBw Yywgc2F2ZWRfcGM7CisgICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3Rpb247CisgICBjb25zdCBj aGFyICpuYW1lOworICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7CisgICBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaDsKKyAgIHN0cnVjdCBibG9jayAqYiwgKmZ1bmN0aW9uX2Jsb2NrOworKyAgaW50 IGZvcmNlX3NraXAsIHNraXA7CisgCisgICAvKiBEbyBub3QgY2hhbmdlIHRoZSBTQUwgaXMgUEMg d2FzIHNwZWNpZmllZCBleHBsaWNpdGx5LiAgKi8KKyAgIGlmIChzYWwtPmV4cGxpY2l0X3BjKQor QEAgLTI0OTcsNDYgKzI0OTgsNjkgQEAgc2tpcF9wcm9sb2d1ZV9zYWwgKHN0cnVjdCBzeW10YWJf YW5kX2xpbmUgKnNhbCkKKyAKKyAgIGdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxl KTsKKyAKKy0gIC8qIElmIHRoZSBmdW5jdGlvbiBpcyBpbiBhbiB1bm1hcHBlZCBvdmVybGF5LCB1 c2UgaXRzIHVubWFwcGVkIExNQSBhZGRyZXNzLAorLSAgICAgc28gdGhhdCBnZGJhcmNoX3NraXBf cHJvbG9ndWUgaGFzIHNvbWV0aGluZyB1bmlxdWUgdG8gd29yayBvbi4gICovCistICBpZiAoc2Vj dGlvbl9pc19vdmVybGF5IChzZWN0aW9uKSAmJiAhc2VjdGlvbl9pc19tYXBwZWQgKHNlY3Rpb24p KQorLSAgICBwYyA9IG92ZXJsYXlfdW5tYXBwZWRfYWRkcmVzcyAocGMsIHNlY3Rpb24pOworKyAg LyogUHJvY2VzcyB0aGUgcHJvbG9ndWUgaW4gdHdvIHBhc3Nlcy4gIEluIHRoZSBmaXJzdCBwYXNz IHRyeSB0byBza2lwIHRoZQorKyAgICAgcHJvbG9ndWUgKFNLSVAgaXMgdHJ1ZSkgYW5kIHZlcmlm eSB0aGVyZSBpcyBhIHJlYWwgbmVlZCBmb3IgaXQgKGluZGljYXRlZAorKyAgICAgYnkgRk9SQ0Vf U0tJUCkuICBJZiBubyBzdWNoIHJlYXNvbiB3YXMgZm91bmQgcnVuIGEgc2Vjb25kIHBhc3Mgd2hl cmUgdGhlCisrICAgICBwcm9sb2d1ZSBpcyBub3Qgc2tpcHBlZCAoU0tJUCBpcyBmYWxzZSkuICAq LworIAorLSAgLyogU2tpcCAiZmlyc3QgbGluZSIgb2YgZnVuY3Rpb24gKHdoaWNoIGlzIGFjdHVh bGx5IGl0cyBwcm9sb2d1ZSkuICAqLworLSAgcGMgKz0gZ2RiYXJjaF9kZXByZWNhdGVkX2Z1bmN0 aW9uX3N0YXJ0X29mZnNldCAoZ2RiYXJjaCk7CistICBwYyA9IGdkYmFyY2hfc2tpcF9wcm9sb2d1 ZSAoZ2RiYXJjaCwgcGMpOworKyAgc2tpcCA9IDE7CisrICBmb3JjZV9za2lwID0gMTsKKyAKKy0g IC8qIEZvciBvdmVybGF5cywgbWFwIHBjIGJhY2sgaW50byBpdHMgbWFwcGVkIFZNQSByYW5nZS4g ICovCistICBwYyA9IG92ZXJsYXlfbWFwcGVkX2FkZHJlc3MgKHBjLCBzZWN0aW9uKTsKKysgIC8q IEJlIGNvbnNlcnZhdGl2ZSAtIGFsbG93IGRpcmVjdCBQQyAod2l0aG91dCBza2lwcGluZyBwcm9s b2d1ZSkgb25seSBpZiB3ZQorKyAgICAgaGF2ZSBwcm92ZW4gdGhlIENVIChDb21waWxhdGlvbiBV bml0KSBzdXBwb3J0cyBpdC4gIHNhbC0+U1lNVEFCIGRvZXMgbm90CisrICAgICBoYXZlIHRvIGJl IHNldCBieSB0aGUgY2FsbGVyIHNvIHdlIHVzZSBTWU0gaW5zdGVhZC4gICovCisrICBpZiAoc3lt ICYmIFNZTUJPTF9TWU1UQUIgKHN5bSktPmxvY2F0aW9uc192YWxpZCkKKysgICAgZm9yY2Vfc2tp cCA9IDA7CisgCistICAvKiBDYWxjdWxhdGUgbGluZSBudW1iZXIuICAqLworLSAgc3RhcnRfc2Fs ID0gZmluZF9wY19zZWN0X2xpbmUgKHBjLCBzZWN0aW9uLCAwKTsKKy0KKy0gIC8qIENoZWNrIGlm IGdkYmFyY2hfc2tpcF9wcm9sb2d1ZSBsZWZ0IHVzIGluIG1pZC1saW5lLCBhbmQgdGhlIG5leHQK Ky0gICAgIGxpbmUgaXMgc3RpbGwgcGFydCBvZiB0aGUgc2FtZSBmdW5jdGlvbi4gICovCistICBp ZiAoc3RhcnRfc2FsLnBjICE9IHBjCistICAgICAgJiYgKHN5bT8gKEJMT0NLX1NUQVJUIChTWU1C T0xfQkxPQ0tfVkFMVUUgKHN5bSkpIDw9IHN0YXJ0X3NhbC5lbmQKKy0JICAgICAgICAmJiBzdGFy dF9zYWwuZW5kIDwgQkxPQ0tfRU5EIChTWU1CT0xfQkxPQ0tfVkFMVUUgKHN5bSkpKQorLSAgICAg ICAgICA6IChsb29rdXBfbWluaW1hbF9zeW1ib2xfYnlfcGNfc2VjdGlvbiAoc3RhcnRfc2FsLmVu ZCwgc2VjdGlvbikKKy0gICAgICAgICAgICAgPT0gbG9va3VwX21pbmltYWxfc3ltYm9sX2J5X3Bj X3NlY3Rpb24gKHBjLCBzZWN0aW9uKSkpKQorKyAgc2F2ZWRfcGMgPSBwYzsKKysgIGRvCisgICAg IHsKKy0gICAgICAvKiBGaXJzdCBwYyBvZiBuZXh0IGxpbmUgKi8KKy0gICAgICBwYyA9IHN0YXJ0 X3NhbC5lbmQ7CistICAgICAgLyogUmVjYWxjdWxhdGUgdGhlIGxpbmUgbnVtYmVyIChtaWdodCBu b3QgYmUgTisxKS4gICovCistICAgICAgc3RhcnRfc2FsID0gZmluZF9wY19zZWN0X2xpbmUgKHBj LCBzZWN0aW9uLCAwKTsKKy0gICAgfQorKyAgICAgIHBjID0gc2F2ZWRfcGM7CisgCistICAvKiBP biB0YXJnZXRzIHdpdGggZXhlY3V0YWJsZSBmb3JtYXRzIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvbmNl cHQgb2YKKy0gICAgIGNvbnN0cnVjdG9ycyAoRUxGIHdpdGggLmluaXQgaGFzLCBQRSBkb2Vzbid0 KSwgZ2NjIGVtaXRzIGEgY2FsbAorLSAgICAgdG8gYF9fbWFpbicgaW4gYG1haW4nIGJldHdlZW4g dGhlIHByb2xvZ3VlIGFuZCBiZWZvcmUgdXNlcgorLSAgICAgY29kZS4gICovCistICBpZiAoZ2Ri YXJjaF9za2lwX21haW5fcHJvbG9ndWVfcCAoZ2RiYXJjaCkKKy0gICAgICAmJiBuYW1lICYmIHN0 cmNtcCAobmFtZSwgIm1haW4iKSA9PSAwKQorLSAgICB7CistICAgICAgcGMgPSBnZGJhcmNoX3Nr aXBfbWFpbl9wcm9sb2d1ZSAoZ2RiYXJjaCwgcGMpOworLSAgICAgIC8qIFJlY2FsY3VsYXRlIHRo ZSBsaW5lIG51bWJlciAobWlnaHQgbm90IGJlIE4rMSkuICAqLworKyAgICAgIC8qIElmIHRoZSBm dW5jdGlvbiBpcyBpbiBhbiB1bm1hcHBlZCBvdmVybGF5LCB1c2UgaXRzIHVubWFwcGVkIExNQSBh ZGRyZXNzLAorKwkgc28gdGhhdCBnZGJhcmNoX3NraXBfcHJvbG9ndWUgaGFzIHNvbWV0aGluZyB1 bmlxdWUgdG8gd29yayBvbi4gICovCisrICAgICAgaWYgKHNlY3Rpb25faXNfb3ZlcmxheSAoc2Vj dGlvbikgJiYgIXNlY3Rpb25faXNfbWFwcGVkIChzZWN0aW9uKSkKKysJcGMgPSBvdmVybGF5X3Vu bWFwcGVkX2FkZHJlc3MgKHBjLCBzZWN0aW9uKTsKKysKKysgICAgICAvKiBTa2lwICJmaXJzdCBs aW5lIiBvZiBmdW5jdGlvbiAod2hpY2ggaXMgYWN0dWFsbHkgaXRzIHByb2xvZ3VlKS4gICovCisr ICAgICAgcGMgKz0gZ2RiYXJjaF9kZXByZWNhdGVkX2Z1bmN0aW9uX3N0YXJ0X29mZnNldCAoZ2Ri YXJjaCk7CisrICAgICAgaWYgKHNraXApCisrCXBjID0gZ2RiYXJjaF9za2lwX3Byb2xvZ3VlIChn ZGJhcmNoLCBwYyk7CisrCisrICAgICAgLyogRm9yIG92ZXJsYXlzLCBtYXAgcGMgYmFjayBpbnRv IGl0cyBtYXBwZWQgVk1BIHJhbmdlLiAgKi8KKysgICAgICBwYyA9IG92ZXJsYXlfbWFwcGVkX2Fk ZHJlc3MgKHBjLCBzZWN0aW9uKTsKKysKKysgICAgICAvKiBDYWxjdWxhdGUgbGluZSBudW1iZXIu ICAqLworICAgICAgIHN0YXJ0X3NhbCA9IGZpbmRfcGNfc2VjdF9saW5lIChwYywgc2VjdGlvbiwg MCk7CisrCisrICAgICAgLyogQ2hlY2sgaWYgZ2RiYXJjaF9za2lwX3Byb2xvZ3VlIGxlZnQgdXMg aW4gbWlkLWxpbmUsIGFuZCB0aGUgbmV4dAorKwkgbGluZSBpcyBzdGlsbCBwYXJ0IG9mIHRoZSBz YW1lIGZ1bmN0aW9uLiAgKi8KKysgICAgICBpZiAoc2tpcCAmJiBzdGFydF9zYWwucGMgIT0gcGMK KysJICAmJiAoc3ltPyAoQkxPQ0tfU1RBUlQgKFNZTUJPTF9CTE9DS19WQUxVRSAoc3ltKSkgPD0g c3RhcnRfc2FsLmVuZAorKwkJICAgICYmIHN0YXJ0X3NhbC5lbmQgPCBCTE9DS19FTkQgKFNZTUJP TF9CTE9DS19WQUxVRSAoc3ltKSkpCisrCSAgICAgIDogKGxvb2t1cF9taW5pbWFsX3N5bWJvbF9i eV9wY19zZWN0aW9uIChzdGFydF9zYWwuZW5kLCBzZWN0aW9uKQorKwkJID09IGxvb2t1cF9taW5p bWFsX3N5bWJvbF9ieV9wY19zZWN0aW9uIChwYywgc2VjdGlvbikpKSkKKysJeworKwkgIC8qIEZp cnN0IHBjIG9mIG5leHQgbGluZSAqLworKwkgIHBjID0gc3RhcnRfc2FsLmVuZDsKKysJICAvKiBS ZWNhbGN1bGF0ZSB0aGUgbGluZSBudW1iZXIgKG1pZ2h0IG5vdCBiZSBOKzEpLiAgKi8KKysJICBz dGFydF9zYWwgPSBmaW5kX3BjX3NlY3RfbGluZSAocGMsIHNlY3Rpb24sIDApOworKwl9CisrCisr ICAgICAgLyogT24gdGFyZ2V0cyB3aXRoIGV4ZWN1dGFibGUgZm9ybWF0cyB0aGF0IGRvbid0IGhh dmUgYSBjb25jZXB0IG9mCisrCSBjb25zdHJ1Y3RvcnMgKEVMRiB3aXRoIC5pbml0IGhhcywgUEUg ZG9lc24ndCksIGdjYyBlbWl0cyBhIGNhbGwKKysJIHRvIGBfX21haW4nIGluIGBtYWluJyBiZXR3 ZWVuIHRoZSBwcm9sb2d1ZSBhbmQgYmVmb3JlIHVzZXIKKysJIGNvZGUuICAqLworKyAgICAgIGlm IChnZGJhcmNoX3NraXBfbWFpbl9wcm9sb2d1ZV9wIChnZGJhcmNoKQorKwkgICYmIG5hbWUgJiYg c3RyY21wIChuYW1lLCAibWFpbiIpID09IDApCisrCXsKKysJICBwYyA9IGdkYmFyY2hfc2tpcF9t YWluX3Byb2xvZ3VlIChnZGJhcmNoLCBwYyk7CisrCSAgLyogUmVjYWxjdWxhdGUgdGhlIGxpbmUg bnVtYmVyIChtaWdodCBub3QgYmUgTisxKS4gICovCisrCSAgc3RhcnRfc2FsID0gZmluZF9wY19z ZWN0X2xpbmUgKHBjLCBzZWN0aW9uLCAwKTsKKysJICBmb3JjZV9za2lwID0gMTsKKysJfQorICAg ICB9CisrICB3aGlsZSAoIWZvcmNlX3NraXAgJiYgc2tpcC0tKTsKKyAKKyAgIC8qIElmIHdlIHN0 aWxsIGRvbid0IGhhdmUgYSB2YWxpZCBzb3VyY2UgbGluZSwgdHJ5IHRvIGZpbmQgdGhlIGZpcnN0 CisgICAgICBQQyBpbiB0aGUgbGluZWluZm8gdGFibGUgdGhhdCBiZWxvbmdzIHRvIHRoZSBzYW1l IGZ1bmN0aW9uLiAgVGhpcworQEAgLTI1NDYsNyArMjU3MCw3IEBAIHNraXBfcHJvbG9ndWVfc2Fs IChzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lICpzYWwpCisgICAgICB0aGUgY2FzZSB3aXRoIHRoZSBE SkdQUCB0YXJnZXQgdXNpbmcgImdjYyAtZ2NvZmYiIHdoZW4gdGhlCisgICAgICBjb21waWxlciBp bnNlcnRlZCBjb2RlIGFmdGVyIHRoZSBwcm9sb2d1ZSB0byBtYWtlIHN1cmUgdGhlIHN0YWNrCisg ICAgICBpcyBhbGlnbmVkLiAgKi8KKy0gIGlmIChzeW0gJiYgc3RhcnRfc2FsLnN5bXRhYiA9PSBO VUxMKQorKyAgaWYgKCFmb3JjZV9za2lwICYmIHN5bSAmJiBzdGFydF9zYWwuc3ltdGFiID09IE5V TEwpCisgICAgIHsKKyAgICAgICBwYyA9IHNraXBfcHJvbG9ndWVfdXNpbmdfbGluZWluZm8gKHBj LCBTWU1CT0xfU1lNVEFCIChzeW0pKTsKKyAgICAgICAvKiBSZWNhbGN1bGF0ZSB0aGUgbGluZSBu dW1iZXIuICAqLworLS0tIGEvZ2RiL3N5bXRhYi5oCisrKysgYi9nZGIvc3ltdGFiLmgKK0BAIC03 NjcsNyArNzY3LDEzIEBAIHN0cnVjdCBzeW10YWIKKyAgICAgIHNob3VsZCBiZSBkZXNpZ25hdGVk IHRoZSBwcmltYXJ5LCBzbyB0aGF0IHRoZSBibG9ja3ZlY3RvcgorICAgICAgaXMgcmVsb2NhdGVk IGV4YWN0bHkgb25jZSBieSBvYmpmaWxlX3JlbG9jYXRlLiAgKi8KKyAKKy0gIGludCBwcmltYXJ5 OworKyAgdW5zaWduZWQgaW50IHByaW1hcnkgOiAxOworKworKyAgLyogU3ltdGFiIGhhcyBiZWVu IGNvbXBpbGVkIHdpdGggYm90aCBvcHRpbWl6YXRpb25zIGFuZCBkZWJ1ZyBpbmZvIHNvIHRoYXQK KysgICAgIEdEQiBtYXkgc3RvcCBza2lwcGluZyBwcm9sb2d1ZXMgYXMgdmFyaWFibGVzIGxvY2F0 aW9ucyBhcmUgdmFsaWQgYWxyZWFkeQorKyAgICAgYXQgZnVuY3Rpb24gZW50cnkgcG9pbnRzLiAg Ki8KKysKKysgIHVuc2lnbmVkIGludCBsb2NhdGlvbnNfdmFsaWQgOiAxOworIAorICAgLyogVGhl IG1hY3JvIHRhYmxlIGZvciB0aGlzIHN5bXRhYi4gIExpa2UgdGhlIGJsb2NrdmVjdG9yLCB0aGlz CisgICAgICBtYXkgYmUgc2hhcmVkIGJldHdlZW4gZGlmZmVyZW50IHN5bXRhYnMgLS0tIGFuZCBu b3JtYWxseSBpcyBmb3IKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc2tpcC1wcm9sb2d1ZS5TCitAQCAtMCwwICsxLDM5MSBAQAorKy8qIFRoaXMgdGVz dGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0 IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKwkuc2VjdGlvbiAuZGVidWdfaW5mbworKy5M Y3UxX2JlZ2luOgorKwkvKiBDVSBoZWFkZXIgKi8KKysJLjRieXRlCS5MY3UxX2VuZCAtIC5MY3Ux X3N0YXJ0CQkvKiBMZW5ndGggb2YgQ29tcGlsYXRpb24gVW5pdCAqLworKy5MY3UxX3N0YXJ0Ogor KwkuMmJ5dGUJMgkJCQkvKiBEV0FSRiBWZXJzaW9uICovCisrCS40Ynl0ZQkuTGFiYnJldjFfYmVn aW4JCQkvKiBPZmZzZXQgaW50byBhYmJyZXYgc2VjdGlvbiAqLworKwkuYnl0ZQk0CQkJCS8qIFBv aW50ZXIgc2l6ZSAqLworKworKwkvKiBDVSBkaWUgKi8KKysJLnVsZWIxMjggMQkJCQkvKiBBYmJy ZXY6IERXX1RBR19jb21waWxlX3VuaXQgKi8KKysJLjRieXRlCS5MbGluZTFfYmVnaW4JCQkvKiBE V19BVF9zdG10X2xpc3QgKi8KKysJLjRieXRlCWZ1bmNfc3RhcnQJCQkvKiBEV19BVF9sb3dfcGMg Ki8KKysJLjRieXRlCWZ1bmNfZW5kCQkJLyogRFdfQVRfaGlnaF9wYyAqLworKwkuYXNjaWkJIm1h aW4uY1wwIgkJCS8qIERXX0FUX25hbWUgKi8KKysJLmFzY2lpCSJHTlUgQyAzLjMuM1wwIgkJCS8q IERXX0FUX3Byb2R1Y2VyICovCisrCS5ieXRlCTIJCQkJLyogRFdfQVRfbGFuZ3VhZ2UgKERXX0xB TkdfQykgKi8KKysKKysJLnVsZWIxMjgJMgkJCS8qIEFiYnJldjogRFdfVEFHX3N1YnByb2dyYW0g Ki8KKysJLmJ5dGUJCTEJCQkvKiBEV19BVF9leHRlcm5hbCAqLworKwkuYXNjaWkJCSJmdW5jXDAi CQkvKiBEV19BVF9uYW1lICovCisrCS40Ynl0ZQkJLkx0eXBlX2ludC0uTGN1MV9iZWdpbgkvKiBE V19BVF90eXBlICovCisrCS40Ynl0ZQkJZnVuY19zdGFydAkJLyogRFdfQVRfbG93X3BjICovCisr CS40Ynl0ZQkJZnVuY19lbmQJCS8qIERXX0FUX2hpZ2hfcGMgKi8KKysKKysvKiBHREIgYGhhc19s b2NsaXN0JyBkZXRlY3Rpb24gb2YgLU8yIC1nIGNvZGUgbmVlZHMgdG8gc2VlIGEgRFdfQVRfbG9j YXRpb24KKysgICBsb2NhdGlvbiBsaXN0LiAgVGhlcmUgbWF5IGV4aXN0IC1PMiAtZyBDVXMgc3Rp bGwgbm90IG5lZWRpbmcvdXNpbmcgYW55IHN1Y2gKKysgICBsb2NhdGlvbiBsaXN0IC0gZXhhY3Rs eSBsaWtlIHRoaXMgQ1UuICBNYWtlIG9uZSB1cC4gICovCisrCisrCS51bGViMTI4CTB4NwkJCS8q IChESUUgKDB4NDIpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKSAqLworKwkuYXNjaWkJCSJwYXJh bVwwIgkJLyogRFdfQVRfbmFtZSAqLworKwkubG9uZwkJLkx0eXBlX2ludCAtIC5MY3UxX2JlZ2lu CS8qIERXX0FUX3R5cGUgKi8KKysJLmxvbmcJCWxvY2xpc3QJCQkvKiBEV19BVF9sb2NhdGlvbiAq LworKworKwkudWxlYjEyOAk0CQkJLyogQWJicmV2OiBEV19UQUdfaW5saW5lZF9zdWJyb3V0aW5l ICovCisrCS5hc2NpaQkJImlubGluZWRcMCIJCS8qIERXX0FUX25hbWUgKi8KKysJLjRieXRlCQlm dW5jMAkJCS8qIERXX0FUX2xvd19wYyAqLworKwkuNGJ5dGUJCWZ1bmMxCQkJLyogRFdfQVRfaGln aF9wYyAqLworKwkuYnl0ZQkJMwkJCS8qIERXX0FUX2lubGluZSAoRFdfSU5MX2RlY2xhcmVkX2lu bGluZWQpICovCisrCS5ieXRlCQkxCQkJLyogRFdfQVRfY2FsbF9maWxlICovCisrCS5ieXRlCQk4 CQkJLyogRFdfQVRfY2FsbF9saW5lICovCisrCisrCS51bGViMTI4CTQJCQkvKiBBYmJyZXY6IERX X1RBR19pbmxpbmVkX3N1YnJvdXRpbmUgKi8KKysJLmFzY2lpCQkiaW5saW5lZDJcMCIJCS8qIERX X0FUX25hbWUgKi8KKysJLjRieXRlCQlmdW5jMgkJCS8qIERXX0FUX2xvd19wYyAqLworKwkuNGJ5 dGUJCWZ1bmMzCQkJLyogRFdfQVRfaGlnaF9wYyAqLworKwkuYnl0ZQkJMwkJCS8qIERXX0FUX2lu bGluZSAoRFdfSU5MX2RlY2xhcmVkX2lubGluZWQpICovCisrCS5ieXRlCQkxCQkJLyogRFdfQVRf Y2FsbF9maWxlICovCisrCS5ieXRlCQkxMQkJCS8qIERXX0FUX2NhbGxfbGluZSAqLworKworKyNp ZmRlZiBJTkxJTkVECisrCS51bGViMTI4CTQJCQkvKiBBYmJyZXY6IERXX1RBR19pbmxpbmVkX3N1 YnJvdXRpbmUgKi8KKysJLmFzY2lpCQkib3RoZXJpbmxpbmVcMCIJCS8qIERXX0FUX25hbWUgKi8K KysJLjRieXRlCQlmdW5jMwkJCS8qIERXX0FUX2xvd19wYyAqLworKwkuNGJ5dGUJCWZ1bmNfZW5k CQkvKiBEV19BVF9oaWdoX3BjICovCisrCS5ieXRlCQkzCQkJLyogRFdfQVRfaW5saW5lIChEV19J TkxfZGVjbGFyZWRfaW5saW5lZCkgKi8KKysJLmJ5dGUJCTEJCQkvKiBEV19BVF9jYWxsX2ZpbGUg Ki8KKysJLmJ5dGUJCTkJCQkvKiBEV19BVF9jYWxsX2xpbmUgKi8KKysjZW5kaWYKKysKKysjaWZk ZWYgTEVYSUNBTAorKwkudWxlYjEyOAk1CQkJLyogQWJicmV2OiBEV19UQUdfbGV4aWNhbF9ibG9j ayAqLworKwkuNGJ5dGUJCWZ1bmMzCQkJLyogRFdfQVRfbG93X3BjICovCisrCS40Ynl0ZQkJZnVu Y19lbmQJCS8qIERXX0FUX2hpZ2hfcGMgKi8KKysKKysJLyogR0RCIHdvdWxkIG90aGVyd2lzZSBp Z25vcmUgdGhlIERXX1RBR19sZXhpY2FsX2Jsb2NrLiAgKi8KKysJLnVsZWIxMjgJNgkJCS8qIEFi YnJldjogRFdfVEFHX3ZhcmlhYmxlICovCisrCS5hc2NpaQkJImxleGljYWx2YXJcMCIJCS8qIERX X0FUX25hbWUgKi8KKysJLjRieXRlCQkuTHR5cGVfaW50LS5MY3UxX2JlZ2luCS8qIERXX0FUX3R5 cGUgKi8KKysKKysJLmJ5dGUJCTAJCQkvKiBFbmQgb2YgY2hpbGRyZW4gb2YgRFdfVEFHX2xleGlj YWxfYmxvY2sgKi8KKysjZW5kaWYKKysKKysJLmJ5dGUJCTAJCQkvKiBFbmQgb2YgY2hpbGRyZW4g b2YgRFdfVEFHX3N1YnByb2dyYW0gKi8KKysKKysvKiBTaW11bGF0ZSBgZnVuZCcgaXMgYWxzbyBu YW1lZCBgZnVuYycgc28gdGhhdCB0aGUgZnVuY3Rpb24gbmFtZSBtYXRjaGVzIGFuZAorKyAgIGZ1 bmQncyBTQUwgaXMgbm90IGRpc2NhcmRlZCBpbiBleHBhbmRfbGluZV9zYWxfbWF5YmUuICAqLwor KworKwkudWxlYjEyOAkyCQkJLyogQWJicmV2OiBEV19UQUdfc3VicHJvZ3JhbSAqLworKwkuYnl0 ZQkJMQkJCS8qIERXX0FUX2V4dGVybmFsICovCisrCS5hc2NpaQkJImZ1bmNcMCIJCS8qIERXX0FU X25hbWUgKi8KKysJLjRieXRlCQkuTHR5cGVfaW50LS5MY3UxX2JlZ2luCS8qIERXX0FUX3R5cGUg Ki8KKysJLjRieXRlCQlmdW5kX3N0YXJ0CQkvKiBEV19BVF9sb3dfcGMgKi8KKysJLjRieXRlCQlm dW5kX2VuZAkJLyogRFdfQVRfaGlnaF9wYyAqLworKworKwkuYnl0ZQkJMAkJCS8qIEVuZCBvZiBj aGlsZHJlbiBvZiBEV19UQUdfc3VicHJvZ3JhbSAqLworKworKy5MdHlwZV9pbnQ6CisrCS51bGVi MTI4CTMJCQkvKiBBYmJyZXY6IERXX1RBR19iYXNlX3R5cGUgKi8KKysJLmFzY2lpCQkiaW50XDAi CQkJLyogRFdfQVRfbmFtZSAqLworKwkuYnl0ZQkJNAkJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLwor KwkuYnl0ZQkJNQkJCS8qIERXX0FUX2VuY29kaW5nICovCisrCisrCS5ieXRlCQkwCQkJLyogRW5k IG9mIGNoaWxkcmVuIG9mIENVICovCisrCisrLkxjdTFfZW5kOgorKworKwkuc2VjdGlvbgkuZGVi dWdfbG9jCisrbG9jbGlzdDoKKysJLyogUmVzZXQgdGhlIGxvY2F0aW9uIGxpc3QgYmFzZSBhZGRy ZXNzIGZpcnN0LiAgKi8KKysJLmxvbmcJCS0xLCAwCisrCisrCS5sb25nCQlmdW5jX3N0YXJ0LCBm dW5jX2VuZAorKwkuMmJ5dGUJCTJmLTFmCisrMToJLmJ5dGUJCTB4NTAJLyogRFdfT1BfcmVnMCAq LworKzI6CisrCS8qIExvY2F0aW9uIGxpc3QgZW5kLiAgKi8KKysJLmxvbmcJMCwgMAorKworKy8q IEFiYnJldiB0YWJsZSAqLworKwkuc2VjdGlvbiAuZGVidWdfYWJicmV2CisrLkxhYmJyZXYxX2Jl Z2luOgorKwkudWxlYjEyOAkxCQkJLyogQWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjgJMHgxMQkJ CS8qIERXX1RBR19jb21waWxlX3VuaXQgKi8KKysJLmJ5dGUJCTEJCQkvKiBoYXNfY2hpbGRyZW4g Ki8KKysJLnVsZWIxMjgJMHgxMAkJCS8qIERXX0FUX3N0bXRfbGlzdCAqLworKwkudWxlYjEyOAkw eDYJCQkvKiBEV19GT1JNX2RhdGE0ICovCisrCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3df cGMgKi8KKysJLnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCisrCS51bGViMTI4CTB4 MTIJCQkvKiBEV19BVF9oaWdoX3BjICovCisrCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRk ciAqLworKwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICovCisrCS51bGViMTI4CTB4OAkJ CS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4CTB4MjUJCQkvKiBEV19BVF9wcm9kdWNl ciAqLworKwkudWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOAkw eDEzCQkJLyogRFdfQVRfbGFuZ3VhZ2UgKi8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9k YXRhMSAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJ LyogVGVybWluYXRvciAqLworKworKwkudWxlYjEyOAkyCQkJLyogQWJicmV2IGNvZGUgKi8KKysJ LnVsZWIxMjgJMHgyZQkJCS8qIERXX1RBR19zdWJwcm9ncmFtICovCisrCS5ieXRlCQkxCQkJLyog aGFzX2NoaWxkcmVuICovCisrCS51bGViMTI4CTB4M2YJCQkvKiBEV19BVF9leHRlcm5hbCAqLwor KwkudWxlYjEyOAkweGMJCQkvKiBEV19GT1JNX2ZsYWcgKi8KKysJLnVsZWIxMjgJMHgzCQkJLyog RFdfQVRfbmFtZSAqLworKwkudWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworKwku dWxlYjEyOAkweDQ5CQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOAkweDEzCQkJLyogRFdf Rk9STV9yZWY0ICovCisrCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3dfcGMgKi8KKysJLnVs ZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCisrCS51bGViMTI4CTB4MTIJCQkvKiBEV19B VF9oaWdoX3BjICovCisrCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLworKwkuYnl0 ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAq LworKworKwkudWxlYjEyOAkzCQkJLyogQWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjgJMHgyNAkJ CS8qIERXX1RBR19iYXNlX3R5cGUgKi8KKysJLmJ5dGUJCTAJCQkvKiBoYXNfY2hpbGRyZW4gKi8K KysJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEyOAkweDgJCQkvKiBE V19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOAkweGIJCQkvKiBEV19BVF9ieXRlX3NpemUgKi8K KysJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAqLworKwkudWxlYjEyOAkweDNlCQkJ LyogRFdfQVRfZW5jb2RpbmcgKi8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAq LworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVy bWluYXRvciAqLworKworKwkudWxlYjEyOAk0CQkJLyogQWJicmV2IGNvZGUgKi8KKysJLnVsZWIx MjgJMHgxZAkJCS8qIERXX1RBR19pbmxpbmVkX3N1YnJvdXRpbmUgKi8KKysJLmJ5dGUJCTAJCQkv KiBoYXNfY2hpbGRyZW4gKi8KKysJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFtZSAqLworKwku dWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOAkweDExCQkJLyog RFdfQVRfbG93X3BjICovCisrCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLworKwku dWxlYjEyOAkweDEyCQkJLyogRFdfQVRfaGlnaF9wYyAqLworKwkudWxlYjEyOAkweDEJCQkvKiBE V19GT1JNX2FkZHIgKi8KKysJLnVsZWIxMjgJMHgyMAkJCS8qIERXX0FUX2lubGluZSAqLworKwku dWxlYjEyOAkweGIJCQkvKiBEV19GT1JNX2RhdGExICovCisrCS51bGViMTI4CTB4NTgJCQkvKiBE V19BVF9jYWxsX2ZpbGUgKi8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAqLwor KwkudWxlYjEyOAkweDU5CQkJLyogRFdfQVRfY2FsbF9saW5lICovCisrCS51bGViMTI4CTB4YgkJ CS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysJ LmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysKKysJLnVsZWIxMjgJNQkJCS8qIEFiYnJl diBjb2RlICovCisrCS51bGViMTI4CTB4MGIJCQkvKiBEV19UQUdfbGV4aWNhbF9ibG9jayAqLwor KwkuYnl0ZQkJMQkJCS8qIGhhc19jaGlsZHJlbiAqLworKwkudWxlYjEyOAkweDExCQkJLyogRFdf QVRfbG93X3BjICovCisrCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLworKwkudWxl YjEyOAkweDEyCQkJLyogRFdfQVRfaGlnaF9wYyAqLworKwkudWxlYjEyOAkweDEJCQkvKiBEV19G T1JNX2FkZHIgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysJLmJ5dGUJCTB4 MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysKKysJLnVsZWIxMjgJNgkJCS8qIEFiYnJldiBjb2RlICov CisrCS51bGViMTI4CTB4MzQJCQkvKiBEV19UQUdfdmFyaWFibGUgKi8KKysJLmJ5dGUJCTAJCQkv KiBoYXNfY2hpbGRyZW4gKi8KKysJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFtZSAqLworKwku dWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOAkweDQ5CQkJLyog RFdfQVRfdHlwZSAqLworKwkudWxlYjEyOAkweDEzCQkJLyogRFdfRk9STV9yZWY0ICovCisrCS5i eXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9y ICovCisrCisrCS51bGViMTI4CTB4NwkJCS8qIChhYmJyZXYgY29kZSkgKi8KKysJLnVsZWIxMjgJ MHg1CQkJLyogKFRBRzogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpICovCisrCS5ieXRlCQkweDAJ CQkvKiBEV19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICov CisrCS51bGViMTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4CTB4NDkJ CQkvKiAoRFdfQVRfdHlwZSkgKi8KKysJLnVsZWIxMjgJMHgxMwkJCS8qIChEV19GT1JNX3JlZjQp ICovCisrCS51bGViMTI4CTB4MDIJCQkvKiAoRFdfQVRfbG9jYXRpb24pICovCisrCS51bGViMTI4 CTB4MDYJCQkvKiAoRFdfRk9STV9kYXRhNCkgKi8KKysJLmJ5dGUJCTB4MAorKwkuYnl0ZQkJMHgw CisrCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCS5ieXRlCQkweDAJCQkvKiBU ZXJtaW5hdG9yICovCisrCisrLyogTGluZSB0YWJsZSAqLworKwkuc2VjdGlvbiAuZGVidWdfbGlu ZQorKy5MbGluZTFfYmVnaW46CisrCS40Ynl0ZQkJLkxsaW5lMV9lbmQgLSAuTGxpbmUxX3N0YXJ0 CS8qIEluaXRpYWwgbGVuZ3RoICovCisrLkxsaW5lMV9zdGFydDoKKysJLjJieXRlCQkyCQkJLyog VmVyc2lvbiAqLworKwkuNGJ5dGUJCS5MbGluZTFfbGluZXMgLSAuTGxpbmUxX2hkcgkvKiBoZWFk ZXJfbGVuZ3RoICovCisrLkxsaW5lMV9oZHI6CisrCS5ieXRlCQkxCQkJLyogTWluaW11bSBpbnNu IGxlbmd0aCAqLworKwkuYnl0ZQkJMQkJCS8qIGRlZmF1bHRfaXNfc3RtdCAqLworKwkuYnl0ZQkJ MQkJCS8qIGxpbmVfYmFzZSAqLworKwkuYnl0ZQkJMQkJCS8qIGxpbmVfcmFuZ2UgKi8KKysJLmJ5 dGUJCTB4MTAJCQkvKiBvcGNvZGVfYmFzZSAqLworKworKwkvKiBTdGFuZGFyZCBsZW5ndGhzICov CisrCS5ieXRlCQkwCisrCS5ieXRlCQkxCisrCS5ieXRlCQkxCisrCS5ieXRlCQkxCisrCS5ieXRl CQkxCisrCS5ieXRlCQkwCisrCS5ieXRlCQkwCisrCS5ieXRlCQkwCisrCS5ieXRlCQkxCisrCS5i eXRlCQkwCisrCS5ieXRlCQkwCisrCS5ieXRlCQkxCisrCS5ieXRlCQkwCisrCS5ieXRlCQkwCisr CS5ieXRlCQkwCisrCisrCS8qIEluY2x1ZGUgZGlyZWN0b3JpZXMgKi8KKysJLmJ5dGUJCTAKKysK KysJLyogRmlsZSBuYW1lcyAqLworKwkuYXNjaWkJCSJtYWluLmNcMCIKKysJLnVsZWIxMjgJMAor KwkudWxlYjEyOAkwCisrCS51bGViMTI4CTAKKysKKysJLmFzY2lpCQkib3RoZXIuY1wwIgorKwku dWxlYjEyOAkwCisrCS51bGViMTI4CTAKKysJLnVsZWIxMjgJMAorKworKwkuYnl0ZQkJMAorKwor Ky5MbGluZTFfbGluZXM6CisrCS5ieXRlCQkwCS8qIERXX0xORV9zZXRfYWRkcmVzcyAqLworKwku dWxlYjEyOAk1CisrCS5ieXRlCQkyCisrCS40Ynl0ZQkJZnVuY19zdGFydAorKwkuYnl0ZQkJMwkv KiBEV19MTlNfYWR2YW5jZV9saW5lICovCisrCS5zbGViMTI4CTQJLyogLi4uIHRvIDUgKi8KKysJ LmJ5dGUJCTEJLyogRFdfTE5TX2NvcHkgKi8KKysKKysJLmJ5dGUJCTAJLyogRFdfTE5FX3NldF9h ZGRyZXNzICovCisrCS51bGViMTI4CTUKKysJLmJ5dGUJCTIKKysJLjRieXRlCQlmdW5jMAorKwku Ynl0ZQkJNAkvKiBEV19MTlNfc2V0X2ZpbGUgKi8KKysJLnVsZWIxMjgJMgorKwkuYnl0ZQkJMwkv KiBEV19MTlNfYWR2YW5jZV9saW5lICovCisrCS5zbGViMTI4CS00CS8qIC4uLiB0byAxICovCisr CS5ieXRlCQkxCS8qIERXX0xOU19jb3B5ICovCisrCisrCS5ieXRlCQkwCS8qIERXX0xORV9zZXRf YWRkcmVzcyAqLworKwkudWxlYjEyOAk1CisrCS5ieXRlCQkyCisrCS40Ynl0ZQkJZnVuYzEKKysJ LmJ5dGUJCTQJLyogRFdfTE5TX3NldF9maWxlICovCisrCS51bGViMTI4CTEKKysJLmJ5dGUJCTMJ LyogRFdfTE5TX2FkdmFuY2VfbGluZSAqLworKwkuc2xlYjEyOAk4CS8qIC4uLiB0byA5ICovCisr CS5ieXRlCQkxCS8qIERXX0xOU19jb3B5ICovCisrCisrCS5ieXRlCQkwCS8qIERXX0xORV9zZXRf YWRkcmVzcyAqLworKwkudWxlYjEyOAk1CisrCS5ieXRlCQkyCisrCS40Ynl0ZQkJZnVuYzIKKysJ LmJ5dGUJCTQJLyogRFdfTE5TX3NldF9maWxlICovCisrCS51bGViMTI4CTIKKysJLmJ5dGUJCTMJ LyogRFdfTE5TX2FkdmFuY2VfbGluZSAqLworKwkuc2xlYjEyOAktOAkvKiAuLi4gdG8gMSAqLwor KwkuYnl0ZQkJMQkvKiBEV19MTlNfY29weSAqLworKworKwkuYnl0ZQkJMAkvKiBEV19MTkVfc2V0 X2FkZHJlc3MgKi8KKysJLnVsZWIxMjgJNQorKwkuYnl0ZQkJMgorKwkuNGJ5dGUJCWZ1bmMzCisr CS5ieXRlCQk0CS8qIERXX0xOU19zZXRfZmlsZSAqLworKwkudWxlYjEyOAkxCisrCS5ieXRlCQkz CS8qIERXX0xOU19hZHZhbmNlX2xpbmUgKi8KKysJLnNsZWIxMjgJOAkvKiAuLi4gdG8gOSAqLwor KwkuYnl0ZQkJMQkvKiBEV19MTlNfY29weSAqLworKworKwkuYnl0ZQkJMAkvKiBEV19MTkVfc2V0 X2FkZHJlc3MgKi8KKysJLnVsZWIxMjgJNQorKwkuYnl0ZQkJMgorKwkuNGJ5dGUJCWZ1bmNfZW5k CisrCisrLyogRXF1aXZhbGVudCBjb3B5IGJ1dCByZW5hbWVkIHMvZnVuYy9mdW5kLy4gICovCisr CisrCS5ieXRlCQkwCS8qIERXX0xORV9zZXRfYWRkcmVzcyAqLworKwkudWxlYjEyOAk1CisrCS5i eXRlCQkyCisrCS40Ynl0ZQkJZnVuZF9zdGFydAorKwkuYnl0ZQkJMwkvKiBEV19MTlNfYWR2YW5j ZV9saW5lICovCisrCS5zbGViMTI4CS00CS8qIC4uLiB0byA1ICovCisrCS5ieXRlCQkxCS8qIERX X0xOU19jb3B5ICovCisrCisrCS5ieXRlCQkwCS8qIERXX0xORV9zZXRfYWRkcmVzcyAqLworKwku dWxlYjEyOAk1CisrCS5ieXRlCQkyCisrCS40Ynl0ZQkJZnVuZDAKKysJLmJ5dGUJCTQJLyogRFdf TE5TX3NldF9maWxlICovCisrCS51bGViMTI4CTIKKysJLmJ5dGUJCTMJLyogRFdfTE5TX2FkdmFu Y2VfbGluZSAqLworKwkuc2xlYjEyOAktNAkvKiAuLi4gdG8gMSAqLworKwkuYnl0ZQkJMQkvKiBE V19MTlNfY29weSAqLworKworKwkuYnl0ZQkJMAkvKiBEV19MTkVfc2V0X2FkZHJlc3MgKi8KKysJ LnVsZWIxMjgJNQorKwkuYnl0ZQkJMgorKwkuNGJ5dGUJCWZ1bmQxCisrCS5ieXRlCQk0CS8qIERX X0xOU19zZXRfZmlsZSAqLworKwkudWxlYjEyOAkxCisrCS5ieXRlCQkzCS8qIERXX0xOU19hZHZh bmNlX2xpbmUgKi8KKysJLnNsZWIxMjgJOAkvKiAuLi4gdG8gOSAqLworKwkuYnl0ZQkJMQkvKiBE V19MTlNfY29weSAqLworKworKwkuYnl0ZQkJMAkvKiBEV19MTkVfc2V0X2FkZHJlc3MgKi8KKysJ LnVsZWIxMjgJNQorKwkuYnl0ZQkJMgorKwkuNGJ5dGUJCWZ1bmQyCisrCS5ieXRlCQk0CS8qIERX X0xOU19zZXRfZmlsZSAqLworKwkudWxlYjEyOAkyCisrCS5ieXRlCQkzCS8qIERXX0xOU19hZHZh bmNlX2xpbmUgKi8KKysJLnNsZWIxMjgJLTgJLyogLi4uIHRvIDEgKi8KKysJLmJ5dGUJCTEJLyog RFdfTE5TX2NvcHkgKi8KKysKKysJLmJ5dGUJCTAJLyogRFdfTE5FX3NldF9hZGRyZXNzICovCisr CS51bGViMTI4CTUKKysJLmJ5dGUJCTIKKysJLjRieXRlCQlmdW5kMworKwkuYnl0ZQkJNAkvKiBE V19MTlNfc2V0X2ZpbGUgKi8KKysJLnVsZWIxMjgJMQorKwkuYnl0ZQkJMwkvKiBEV19MTlNfYWR2 YW5jZV9saW5lICovCisrCS5zbGViMTI4CTgJLyogLi4uIHRvIDkgKi8KKysJLmJ5dGUJCTEJLyog RFdfTE5TX2NvcHkgKi8KKysKKysJLmJ5dGUJCTAJLyogRFdfTE5FX3NldF9hZGRyZXNzICovCisr CS51bGViMTI4CTUKKysJLmJ5dGUJCTIKKysJLjRieXRlCQlmdW5kX2VuZAorKworKy8qIExpbmUg bnVtYmVyaW5nIGVuZC4gICovCisrCisrCS5ieXRlCQkwCS8qIERXX0xORV9lbmRfb2Zfc2VxdWVu Y2UgKi8KKysJLnVsZWIxMjgJMQorKwkuYnl0ZQkJMQorKworKy5MbGluZTFfZW5kOgorLS0tIC9k ZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1za2lwLXByb2xvZ3Vl LmMKK0BAIC0wLDAgKzEsNTggQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKysKKytzdGF0aWMgdm9sYXRpbGUgaW50IHY7CisrCisrYXNtICgiZnVuY19zdGFydDogLmds b2JsIGZ1bmNfc3RhcnRcbiIpOworK3N0YXRpYyBpbnQKKytmdW5jICh2b2lkKQorK3sKKysgIHYr KzsKKythc20gKCJmdW5jMDogLmdsb2JsIGZ1bmMwXG4iKTsKKysgIHYrKzsKKythc20gKCJmdW5j MTogLmdsb2JsIGZ1bmMxXG4iKTsKKysgIHYrKzsKKythc20gKCJmdW5jMjogLmdsb2JsIGZ1bmMy XG4iKTsKKysgIHYrKzsKKythc20gKCJmdW5jMzogLmdsb2JsIGZ1bmMzXG4iKTsKKysgIHJldHVy biB2OworK30KKythc20gKCJmdW5jX2VuZDogLmdsb2JsIGZ1bmNfZW5kXG4iKTsKKysKKysvKiBF cXVpdmFsZW50IGNvcHkgYnV0IHJlbmFtZWQgcy9mdW5jL2Z1bmQvLiAgKi8KKysKKythc20gKCJm dW5kX3N0YXJ0OiAuZ2xvYmwgZnVuZF9zdGFydFxuIik7Cisrc3RhdGljIGludAorK2Z1bmQgKHZv aWQpCisreworKyAgdisrOworK2FzbSAoImZ1bmQwOiAuZ2xvYmwgZnVuZDBcbiIpOworKyAgdisr OworK2FzbSAoImZ1bmQxOiAuZ2xvYmwgZnVuZDFcbiIpOworKyAgdisrOworK2FzbSAoImZ1bmQy OiAuZ2xvYmwgZnVuZDJcbiIpOworKyAgdisrOworK2FzbSAoImZ1bmQzOiAuZ2xvYmwgZnVuZDNc biIpOworKyAgcmV0dXJuIHY7CisrfQorK2FzbSAoImZ1bmRfZW5kOiAuZ2xvYmwgZnVuZF9lbmRc biIpOworKworK2ludAorK21haW4gKHZvaWQpCisreworKyAgcmV0dXJuIGZ1bmMgKCkgKyBmdW5k ICgpOworK30KKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc2tpcC1wcm9sb2d1ZS5leHAKK0BAIC0wLDAgKzEsNzQgQEAKKysjIENvcHlyaWdodCAyMDEx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKytsb2FkX2xpYiBkd2FyZi5leHAKKysKKysjIFRlc3QgbXVsdGlwbGUgbG9jYXRp b24gYnJlYWtwb2ludHMgdnMuIHByb2xvZ3VlIGFuYWx5c2lzIG9uIC1PMiAtZyBjb2RlLgorKyMg d2hlbiB0aGUgZmlyc3Qgc3RhdGVtZW50IG9mIGEgZnVuY3Rpb24gaXMgYW4gaW5saW5lZCBmdW5j dGlvbiBHREIgY291bGQKKysjIGNyYXNoLiAgTWFwIG9mIHRoaXMgdGVzdGNhc2U6CisrIyAKKysj IEZpbGUgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lIG51bWJlciAgICBTdGFy dGluZyBhZGRyZXNzCisrIyBtYWluLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDUgICAgZnVuY19zdGFydAorKyMgb3RoZXIuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxICAgIGZ1bmMwCisrIyAJYGlubGluZWQnIGNhbGxlZCBhdCBtYWlu LmMgbGluZSA4CisrIyBtYWluLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDkgICAgZnVuYzEKKysjIAlmdW5jMSA9IEJyZWFrcG9pbnQgbG9jYXRpb24gMQorKyMgb3Ro ZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICAgIGZ1bmMyCisr IyAJYGlubGluZWQyJyBjYWxsZWQgYXQgbWFpbi5jIGxpbmUgMTEKKysjIG1haW4uYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOSAgICBmdW5jMworKyMgCWZ1bmMzID0g QnJlYWtwb2ludCBsb2NhdGlvbiAyCisrIyAJYG90aGVyaW5saW5lJyBjYWxsZWQgYXQgbWFpbi5j IGxpbmUgOQorKyMgZW5kIG9mIG1haW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZ1bmNfZW5kCisrCisrIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRhcmdl dHMgd2hpY2ggc3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgorK2lmIHshW2R3YXJmMl9zdXBw b3J0XX0geworKyAgICByZXR1cm4gMCAgCisrfQorKworK3NldCB0ZXN0ZmlsZSAiZHcyLXNraXAt cHJvbG9ndWUiCisrc2V0IGV4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0KKytzZXQgYmluZmlsZSAke29i amRpcn0vJHtzdWJkaXJ9LyR7ZXhlY3V0YWJsZX0KKysKKytpZiB7W2J1aWxkX2V4ZWN1dGFibGUg JHt0ZXN0ZmlsZX0uZXhwICR7ZXhlY3V0YWJsZX0gIiR7dGVzdGZpbGV9LmMgJHt0ZXN0ZmlsZX0u UyIge2FkZGl0aW9uYWxfZmxhZ3M9LURJTkxJTkVEfV0gPT0gLTF9IHsKKysgICAgcmV0dXJuIC0x CisrfQorKworKyMgV2UgbmVlZCB0aG9zZSBzeW1ib2xzIGdsb2JhbCB0byBhY2Nlc3MgdGhlbSBm cm9tIHRoZSAuUyBmaWxlLgorK3NldCB0ZXN0ICJzdHJpcCBzdHViIHN5bWJvbHMiCisrc2V0IG9i amNvcHlfcHJvZ3JhbSBbdHJhbnNmb3JtIG9iamNvcHldCisrc2V0IHJlc3VsdCBbY2F0Y2ggImV4 ZWMgJG9iamNvcHlfcHJvZ3JhbQkJCQkJCQlcCisrCQkJLU4gZnVuYzAgLU4gZnVuYzEgLU4gZnVu YzIgLU4gZnVuYzMgICAgICAgICAtTiBmdW5jX3N0YXJ0IC1OIGZ1bmNfZW5kCVwKKysJCQktTiBm dW5kMCAtTiBmdW5kMSAtTiBmdW5kMiAtTiBmdW5kMyAtTiBmdW5kIC1OIGZ1bmRfc3RhcnQJCVwK KysJCQkke2JpbmZpbGV9IiBvdXRwdXRdCisrdmVyYm9zZSAicmVzdWx0IGlzICRyZXN1bHQiCisr dmVyYm9zZSAib3V0cHV0IGlzICRvdXRwdXQiCisraWYgeyRyZXN1bHQgIT0gMH0geworKyAgICBm YWlsICR0ZXN0CisrICAgIHJldHVybgorK30KKytwYXNzICR0ZXN0CisrCisrY2xlYW5fcmVzdGFy dCAkZXhlY3V0YWJsZQorKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICByZXR1cm4gLTEKKyt9 CisrCisrZ2RiX2JyZWFrcG9pbnQgImZ1bmMiCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImZ1bmMiCisrCisrIyBTYW5pdHkgY2hlY2sgR0RCIGhhcyByZWFsbHkgZm91bmQgMiBsb2NhdGlv bnMKKytnZGJfdGVzdCB7aW5mbyBicmVhayAkYnBudW19ICJcclxuMlxcLjFcWyBcdFxdXFteXG5c XSpcclxuMlxcLjJcWyBcdFxdXFteXG5cXSoiICIyIGxvY2F0aW9ucyBmb3VuZCIKKysKKytnZGJf dGVzdCAicCB2IiAiID0gMCIgIm5vIHN0YXRlbWVudCBnb3QgZXhlY3V0ZWQiCisKCmRpZmYgLS1n aXQgYS9nZGItcGh5c25hbWUtZXhwYW5kLWNvbXBsZXRlci5wYXRjaCBiL2dkYi1waHlzbmFtZS1l eHBhbmQtY29tcGxldGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjRkNTM4NzAKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcGh5c25hbWUtZXhwYW5kLWNvbXBsZXRl ci5wYXRjaApAQCAtMCwwICsxLDIyOCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1w YXRjaGVzLzIwMTEtMDQvbXNnMDA1NTEuaHRtbAorU3ViamVjdDogW3BhdGNoXSBwaHlzbmFtZS1y ZWxhdGVkIENVIGV4cGFuc2lvbiBpc3N1ZSBmb3IgQysrIChQUiAxMjcwOCkKKworSGksCisKK2h0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDgjYzEKKwor VGhlIGRlcGVuZGVuY3kgb24gQ1UgZXhwYW5zaW9uIGlzIGEgcGh5c25hbWUgcmVncmVzc2lvbi4K K0J1dCB0aGUgZmVhdHVyZSBvZiBvcmlnaW5hbGx5LXR5cGVkLXBhcmFtZXRlcnMgc3ltYm9scyB3 YXMgbm90IHByZXNlbnQgYmVmb3JlCitwaHlzbmFtZSBhdCBhbGwgc28gaXQgaXMgcmF0aGVyIGJ1 Z2d5LWZlYXR1cmUgdGhhbiBhIHJlZ3Jlc3Npb24uCisKK2ZvcgordHlwZWRlZiBpbnQgaW50X3R5 cGVkZWY7Cit2b2lkIGYgKGludF90eXBlZGVmIHgpIHt9CisKK2dkYiAtbnggLi8xYi5vIC1leCAn c2V0IGxhbmd1YWdlIGMrKycgLWV4ICJjb21wbGV0ZSBiICdmKCIgLWV4IHEKKworKyBwcmVwaHlz bmFtZSAoNDIyODRmZGY5ZDhjZGIyMGM4ZTgzM2JkYmRiMmI1Njk3N2ZlYTUyNV4pCitiICdmKGlu dCkKKysgcHJlcGh5c25hbWUgLXJlYWRub3cKK2IgJ2YoaW50KQorCisrIHBoeXNuYW1lICg0MjI4 NGZkZjlkOGNkYjIwYzhlODMzYmRiZGIyYjU2OTc3ZmVhNTI1KQorYiAnZihpbnQpCisrIHBoeXNu YW1lIC1yZWFkbm93CitiICdmKGludCkKK2IgJ2YoaW50X3R5cGVkZWYpCisKKysgSEVBRAorYiAn ZihpbnQpCisrIEhFQUQgLXJlYWRub3cKK2IgJ2YoaW50KQorYiAnZihpbnRfdHlwZWRlZikKKwor CitUaGlzIGlzIGFub3RoZXIgaXNzdWUgZnJvbSB0aGUgZmFjdCB0aGF0IHBhcnRpYWwgc3ltdGFi cyAoYW5kIGV2ZW4gZ2RiaW5kZXgpCitubyBsb25nZXIgY29udGFpbiBwYXJhbWV0ZXJzIGFzIGJl Zm9yZS4gICdmKCcgY2FuIG5ldmVyIGJlIGZvdW5kIGFueSBwYXJ0aWFsCitzeW10YWJzLCBvbmx5 IGBmJyB3aWxsIGJlIHByZXNlbnQgdGhlcmUuCisKK05vIHJlZ3Jlc3Npb25zIG9uIHt4ODZfNjQs eDg2XzY0LW0zMixpNjg2fS1mZWRvcmExNS1saW51eC1nbnUuCisKKworVGhhbmtzLAorSmFuCisK KworZ2RiLworMjAxMS0wNC0yOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgorCisgICAgCisJKiBzeW10YWIuYyAoY29tcGFyZV9zeW1ib2xfbmFtZSk6IE5ldyBm dW5jdGlvbi4KKwkoY29tcGxldGlvbl9saXN0X2FkZF9uYW1lLCBleHBhbmRfcGFydGlhbF9zeW1i b2xfbmFtZSk6IENhbGwgaXQsCisJcmVtb3ZlIHRoZSB2YXJpYWJsZSBuY21wLgorCShkZWZhdWx0 X21ha2Vfc3ltYm9sX2NvbXBsZXRpb25fbGlzdF9icmVha19vbik6IFJlZHVjZSBTWU1fVEVYVF9M RU4sCisJZ2RiX2Fzc2VydCBpdC4KKworR2RiL3Rlc3RzdWl0ZS8KKzIwMTEtMDQtMjggIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogZ2RiLmNwL3BzeW10 YWItcGFyYW1ldGVyLmNjOiBOZXcgZmlsZS4KKwkqIGdkYi5jcC9wc3ltdGFiLXBhcmFtZXRlci5l eHA6IE5ldyBmaWxlLgorCistLS0gYS9nZGIvc3ltdGFiLmMKKysrKyBiL2dkYi9zeW10YWIuYwor QEAgLTM0ODksNiArMzQ4OSw0MCBAQCByYnJlYWtfY29tbWFuZCAoY2hhciAqcmVnZXhwLCBpbnQg ZnJvbV90dHkpCisgfQorIAwKKyAKKysvKiBFdmFsdWF0ZSBpZiBOQU1FIG1hdGNoZXMgU1lNX1RF WFQgYW5kIFNZTV9URVhUX0xFTi4KKysKKysgICBFaXRoZXIgc3ltX3RleHRbc3ltX3RleHRfbGVu XSAhPSAnKCcgYW5kIHRoZW4gd2Ugc2VhcmNoIGZvciBhbnkKKysgICBzeW1ib2wgc3RhcnRpbmcg d2l0aCBTWU1fVEVYVCB0ZXh0LgorKworKyAgIE90aGVyd2lzZSBzeW1fdGV4dFtzeW1fdGV4dF9s ZW5dID09ICcoJyBhbmQgdGhlbiB3ZSByZXF1aXJlIHN5bWJvbCBuYW1lIHRvCisrICAgYmUgdGVy bWluYXRlZCBhdCB0aGF0IHBvaW50LiAgUGFydGlhbCBzeW1ib2wgdGFibGVzIGRvIG5vdCBoYXZl IHBhcmFtZXRlcnMKKysgICBpbmZvcm1hdGlvbi4gICovCisrCisrc3RhdGljIGludAorK2NvbXBh cmVfc3ltYm9sX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnN5bV90ZXh0LCBp bnQgc3ltX3RleHRfbGVuKQorK3sKKysgIGludCAoKm5jbXApIChjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKiwgc2l6ZV90KTsKKysKKysgIG5jbXAgPSAoY2FzZV9zZW5zaXRpdml0eSA9PSBjYXNl X3NlbnNpdGl2ZV9vbiA/IHN0cm5jbXAgOiBzdHJuY2FzZWNtcCk7CisrCisrICBpZiAobmNtcCAo bmFtZSwgc3ltX3RleHQsIHN5bV90ZXh0X2xlbikgIT0gMCkKKysgICAgcmV0dXJuIDA7CisrCisr ICBpZiAoc3ltX3RleHRbc3ltX3RleHRfbGVuXSA9PSAnKCcpCisrICAgIHsKKysgICAgICAvKiBV c2VyIHNlYXJjaGVzIGZvciBgbmFtZShzb21ldGguLi4nLiAgUmVxdWlyZSBOQU1FIHRvIGJlIHRl cm1pbmF0ZWQuCisrCSBOb3JtYWxseSBwc3ltdGFicyBhbmQgZ2RiaW5kZXggaGF2ZSBubyBwYXJh bWV0ZXIgdHlwZXMgc28gJ1wwJyB3aWxsIGJlCisrCSBwcmVzZW50IGJ1dCBhY2NlcHQgZXZlbiBw YXJhbWV0ZXJzIHByZXNlbmNlLiAgSW4gdGhpcyBjYXNlIHRoaXMKKysJIGZ1bmN0aW9uIGlzIGlu IGZhY3Qgc3RyY21wX2l3IGJ1dCB3aGl0ZXNwYWNlIHNraXBwaW5nIGlzIG5vdCBzdXBwb3J0ZWQK KysJIGZvciB0YWIgY29tcGxldGlvbi4gICovCisrCisrICAgICAgaWYgKG5hbWVbc3ltX3RleHRf bGVuXSAhPSAnXDAnICYmIG5hbWVbc3ltX3RleHRfbGVuXSAhPSAnKCcpCisrCXJldHVybiAwOwor KyAgICB9CisrCisrICByZXR1cm4gMTsKKyt9CisrCisgLyogSGVscGVyIHJvdXRpbmUgZm9yIG1h a2Vfc3ltYm9sX2NvbXBsZXRpb25fbGlzdC4gICovCisgCisgc3RhdGljIGludCByZXR1cm5fdmFs X3NpemU7CitAQCAtMzUwOCwxNiArMzU0MiwxMCBAQCBjb21wbGV0aW9uX2xpc3RfYWRkX25hbWUg KGNoYXIgKnN5bW5hbWUsIGNoYXIgKnN5bV90ZXh0LCBpbnQgc3ltX3RleHRfbGVuLAorIAkJCSAg Y2hhciAqdGV4dCwgY2hhciAqd29yZCkKKyB7CisgICBpbnQgbmV3c2l6ZTsKKy0gIGludCAoKm5j bXApIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKKy0KKy0gIG5jbXAgPSAo Y2FzZV9zZW5zaXRpdml0eSA9PSBjYXNlX3NlbnNpdGl2ZV9vbiA/IHN0cm5jbXAgOiBzdHJuY2Fz ZWNtcCk7CisgCisgICAvKiBDbGlwIHN5bWJvbHMgdGhhdCBjYW5ub3QgbWF0Y2guICAqLworLQor LSAgaWYgKG5jbXAgKHN5bW5hbWUsIHN5bV90ZXh0LCBzeW1fdGV4dF9sZW4pICE9IDApCistICAg IHsKKy0gICAgICByZXR1cm47CistICAgIH0KKysgIGlmICghY29tcGFyZV9zeW1ib2xfbmFtZSAo c3ltbmFtZSwgc3ltX3RleHQsIHN5bV90ZXh0X2xlbikpCisrICAgIHJldHVybjsKKyAKKyAgIC8q IFdlIGhhdmUgYSBtYXRjaCBmb3IgYSBjb21wbGV0aW9uLCBzbyBhZGQgU1lNTkFNRSB0byB0aGUg Y3VycmVudCBsaXN0CisgICAgICBvZiBtYXRjaGVzLiAgTm90ZSB0aGF0IHRoZSBuYW1lIGlzIG1v dmVkIHRvIGZyZXNobHkgbWFsbG9jJ2Qgc3BhY2UuICAqLworQEAgLTM3MDcsMTEgKzM3MzUsOCBA QCBzdGF0aWMgaW50CisgZXhwYW5kX3BhcnRpYWxfc3ltYm9sX25hbWUgKGNvbnN0IGNoYXIgKm5h bWUsIHZvaWQgKnVzZXJfZGF0YSkKKyB7CisgICBzdHJ1Y3QgYWRkX25hbWVfZGF0YSAqZGF0dW0g PSAoc3RydWN0IGFkZF9uYW1lX2RhdGEgKikgdXNlcl9kYXRhOworLSAgaW50ICgqbmNtcCkgKGNv bnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOworLQorLSAgbmNtcCA9IChjYXNlX3Nl bnNpdGl2aXR5ID09IGNhc2Vfc2Vuc2l0aXZlX29uID8gc3RybmNtcCA6IHN0cm5jYXNlY21wKTsK KyAKKy0gIHJldHVybiBuY21wIChuYW1lLCBkYXR1bS0+c3ltX3RleHQsIGRhdHVtLT5zeW1fdGV4 dF9sZW4pID09IDA7CisrICByZXR1cm4gY29tcGFyZV9zeW1ib2xfbmFtZSAobmFtZSwgZGF0dW0t PnN5bV90ZXh0LCBkYXR1bS0+c3ltX3RleHRfbGVuKTsKKyB9CisgCisgY2hhciAqKgorQEAgLTM3 OTAsNiArMzgxNSwyMiBAQCBkZWZhdWx0X21ha2Vfc3ltYm9sX2NvbXBsZXRpb25fbGlzdF9icmVh a19vbiAoY2hhciAqdGV4dCwgY2hhciAqd29yZCwKKyAKKyAgIHN5bV90ZXh0X2xlbiA9IHN0cmxl biAoc3ltX3RleHQpOworIAorKyAgLyogUHJlcGFyZSBTWU1fVEVYVF9MRU4gZm9yIGNvbXBhcmVf c3ltYm9sX25hbWUuICAqLworKworKyAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdl ID09IGxhbmd1YWdlX2NwbHVzCisrICAgICAgfHwgY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfamF2YQorKyAgICAgIHx8IGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1 YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4pCisrICAgIHsKKysgICAgICAvKiBUaGVzZSBsYW5ndWFn ZXMgbWF5IGhhdmUgcGFyYW1ldGVycyBlbnRlcmVkIGJ5IHVzZXIgYnV0IHRoZXkgYXJlIG5ldmVy CisrCSBwcmVzZW50IGluIHRoZSBwYXJ0aWFsIHN5bWJvbCB0YWJsZXMuICAqLworKworKyAgICAg IGNvbnN0IGNoYXIgKmNzID0gbWVtY2hyIChzeW1fdGV4dCwgJygnLCBzeW1fdGV4dF9sZW4pOwor KworKyAgICAgIGlmIChjcykKKysJc3ltX3RleHRfbGVuID0gY3MgLSBzeW1fdGV4dDsKKysgICAg fQorKyAgZ2RiX2Fzc2VydCAoc3ltX3RleHRbc3ltX3RleHRfbGVuXSA9PSAnXDAnIHx8IHN5bV90 ZXh0W3N5bV90ZXh0X2xlbl0gPT0gJygnKTsKKysKKyAgIHJldHVybl92YWxfc2l6ZSA9IDEwMDsK KyAgIHJldHVybl92YWxfaW5kZXggPSAwOworICAgcmV0dXJuX3ZhbCA9IChjaGFyICoqKSB4bWFs bG9jICgocmV0dXJuX3ZhbF9zaXplICsgMSkgKiBzaXplb2YgKGNoYXIgKikpOworLS0tIC9kZXYv bnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvcHN5bXRhYi1wYXJhbWV0ZXIuY2MKK0BA IC0wLDAgKzEsMjIgQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05V IGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAyMDA5LCAyMDEwLCAyMDExIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr CisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorKyAgICovCisrCisrdHlwZWRlZiBpbnQgdHlwZWRlZmVkOworK3ZvaWQgZnVuYyAodHlw ZWRlZmVkIHBhcmFtKQorK3sKKyt9CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5jcC9wc3ltdGFiLXBhcmFtZXRlci5leHAKK0BAIC0wLDAgKzEsMzkgQEAKKysjIENvcHly aWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKysKKytpZiB7IFtza2lwX2NwbHVzX3Rlc3RzXSB9IHsgY29udGlu dWUgfQorKworKworK3NldCB0ZXN0ZmlsZSBwc3ltdGFiLXBhcmFtZXRlcgorK3NldCBleGVjdXRh YmxlICR7dGVzdGZpbGV9LngKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jYworK3NldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmIHsgW2dkYl9jb21w aWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBvYmplY3Qg e2RlYnVnIGMrK31dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCAke3Rlc3RmaWxlfS5leHAKKysg ICAgcmV0dXJuIC0xCisrfQorKworK2NsZWFuX3Jlc3RhcnQgJGV4ZWN1dGFibGUKKysKKysjIEFz IGBtYWluJyBpcyBub3QgcHJlc2VudCBHREIgZmFpbHMgdG8gZmluZCB0aGUgcHJvcGVyIGluZmVy aW9yIGxhbmd1YWdlLgorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IGxhbmd1YWdlIGMrKyIKKysK KysjIFRoZSBnb2FsIGlzIHRvIGtlZXAgdGhlIENVIChDb21waWxhdGlvbiBVbml0KSB1bmV4cGFu ZGVkLiAgSXQgd291bGQgYmUgcmF0aGVyCisrIyBYRkFJTCB0aGFuIEZBSUwgaGVyZS4gIEZvciBl eGFtcGxlIC1yZWFkbm93IGJyZWFrcyBpdC4KKytnZGJfdGVzdF9ub19vdXRwdXQgIm1haW50ZW5h bmNlIGluZm8gc3ltdGFicyIKKysKKysjIEdEQiBoYXMgc2hvd24gb25seSB0aGUgYGZ1bmMoaW50 KScgZW50cnkgYmVmb3JlLgorK2dkYl90ZXN0ICJjb21wbGV0ZSBicmVhayAnZnVuYygiICJicmVh ayAnZnVuY1xcKGludFxcKVxyXG5icmVhayAnZnVuY1xcKHR5cGVkZWZlZFxcKSIKKwoKZGlmZiAt LWdpdCBhL2dkYi11cHN0cmVhbS5wYXRjaCBiL2dkYi11cHN0cmVhbS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDdhOTVmCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ri LXVwc3RyZWFtLnBhdGNoCkBAIC0wLDAgKzEsMTM5IEBACitGaXggUHl0aG9uIGFjY2VzcyB0byBp bmxpbmVkIGZyYW1lcyAoQlogNjk0ODI0KS4KK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt Y3ZzLzIwMTEtMDQvbXNnMDAxODkuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMS8w NC8yNyAwMzo1MjoyMAkxLjEyODg3LjIuMTQKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDExLzA0 LzI5IDA3OjMyOjM3CTEuMTI4ODcuMi4xNQorIyMgLTEsMyArMSw5IEBACisrMjAxMS0wNC0yOSAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorKworKwlGaXggUHl0 aG9uIGFjY2VzcyB0byBpbmxpbmVkIGZyYW1lcy4KKysJKiBweXRob24vcHktZnJhbWUuYyAoZnJh cHlfcmVhZF92YXIpOiBGaW5kIEJMT0NLIHVzaW5nIGdldF9mcmFtZV9ibG9jay4KKysJKiBweXRo b24vcHktc3ltYm9sLmMgKGdkYnB5X2xvb2t1cF9zeW1ib2wpOiBMaWtld2lzZS4KKysKKyAyMDEx LTA0LTI2ICBNaWNoYWVsIFdhbGxlICA8bWljaGFlbEB3YWxsZS5jYz4KKyAKKyAJKiByZW1vdGUu YyAocmVtb3RlX3N0YXJ0X3JlbW90ZSk6IEFjayBwYWNrZXQgYWZ0ZXIgc2VuZGluZyB0aGUKKy0t LSBzcmMvZ2RiL3B5dGhvbi9weS1mcmFtZS5jCTIwMTEvMDEvMjYgMjA6NTM6NDUJMS4xNQorKysr IHNyYy9nZGIvcHl0aG9uL3B5LWZyYW1lLmMJMjAxMS8wNC8yOSAwNzozMjo0MAkxLjE1LjIuMQor QEAgLTQzNiw3ICs0MzYsNyBAQAorIAkgIEZSQVBZX1JFUVVJUkVfVkFMSUQgKChmcmFtZV9vYmpl Y3QgKikgc2VsZiwgZnJhbWUpOworIAorIAkgIGlmICghYmxvY2spCistCSAgICBibG9jayA9IGJs b2NrX2Zvcl9wYyAoZ2V0X2ZyYW1lX2FkZHJlc3NfaW5fYmxvY2sgKGZyYW1lKSk7CisrCSAgICBi bG9jayA9IGdldF9mcmFtZV9ibG9jayAoZnJhbWUsIE5VTEwpOworIAkgIHZhciA9IGxvb2t1cF9z eW1ib2wgKHZhcl9uYW1lLCBibG9jaywgVkFSX0RPTUFJTiwgTlVMTCk7CisgCX0KKyAgICAgICBH REJfUFlfSEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKKy0tLSBzcmMvZ2RiL3B5dGhvbi9weS1z eW1ib2wuYwkyMDExLzAzLzE3IDA5OjM2OjE2CTEuNgorKysrIHNyYy9nZGIvcHl0aG9uL3B5LXN5 bWJvbC5jCTIwMTEvMDQvMjkgMDc6MzI6NDAJMS42LjIuMQorQEAgLTI3NSw4ICsyNzUsOCBAQAor IAorICAgICAgIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCisgCXsKKy0JICBz ZWxlY3RlZF9mcmFtZSAgPSBnZXRfc2VsZWN0ZWRfZnJhbWUgKF8oIk5vIGZyYW1lIHNlbGVjdGVk LiIpKTsKKy0JICBibG9jayA9IGJsb2NrX2Zvcl9wYyAoZ2V0X2ZyYW1lX2FkZHJlc3NfaW5fYmxv Y2sgKHNlbGVjdGVkX2ZyYW1lKSk7CisrCSAgc2VsZWN0ZWRfZnJhbWUgPSBnZXRfc2VsZWN0ZWRf ZnJhbWUgKF8oIk5vIGZyYW1lIHNlbGVjdGVkLiIpKTsKKysJICBibG9jayA9IGdldF9mcmFtZV9i bG9jayAoc2VsZWN0ZWRfZnJhbWUsIE5VTEwpOworIAl9CisgICAgICAgR0RCX1BZX0hBTkRMRV9F WENFUFRJT04gKGV4Y2VwdCk7CisgICAgIH0KKyMjIyBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cJMjAxMS8wNC8yNSAyMToyNToxOAkxLjI2NTUuMi40CisjIyMgc3JjL2dkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nCTIwMTEvMDQvMjkgMDc6MzI6NDAJMS4yNjU1LjIuNQorIyMgLTEsMyArMSw5IEBA CisrMjAxMS0wNC0yOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgorKworKwlGaXggUHl0aG9uIGFjY2VzcyB0byBpbmxpbmVkIGZyYW1lcy4KKysJKiBnZGIucHl0 aG9uL3B5LWZyYW1lLWlubGluZS5jOiBOZXcgZmlsZS4KKysJKiBnZGIucHl0aG9uL3B5LWZyYW1l LWlubGluZS5leHA6IE5ldyBmaWxlLgorKworIDIwMTEtMDQtMjUgIEphbiBLcmF0b2NodmlsICA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKyAKKyAJKiBnZGIuYmFzZS9nZGJpbmRleC1zdGFi cy1kd2FyZi5jOiBOZXcgZmlsZS4KKy0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWZyYW1lLWlubGluZS5jCisrKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZS1pbmxpbmUuYwkyMDExLTA0LTI5IDA3OjMzOjQ1LjkxMjU1MjAwMCArMDAwMAorQEAgLTAsMCAr MSw0MyBAQAorKy8qIFRoaXMgdGVzdCBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4K KysKKysgICBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysK KysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrdm9sYXRpbGUg aW50IHYgPSA0MjsKKysKKytfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHN0YXRp YyBpbnQKKytmICh2b2lkKQorK3sKKysgIC8qIFByb3ZpZGUgZmlyc3Qgc3R1YiBsaW5lIHNvIHRo YXQgR0RCIHVuZGVyc3RhbmQgdGhlIFBDIGlzIGFscmVhZHkgaW5zaWRlCisrICAgICB0aGUgaW5s aW5lZCBmdW5jdGlvbiBhbmQgZG9lcyBub3QgZXhwZWN0IGEgc3RlcCBpbnRvIGl0LiAgKi8KKysg IHYrKzsKKysgIHYrKzsJCS8qIGJyZWFrLWhlcmUgKi8KKysKKysgIHJldHVybiB2OworK30KKysK KytfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBzdGF0aWMgaW50CisrZyAodm9pZCkKKyt7 CisrICB2b2xhdGlsZSBpbnQgbCA9IHY7CisrCisrICByZXR1cm4gZiAoKTsKKyt9CisrCisraW50 CisrbWFpbiAodm9pZCkKKyt7CisrICByZXR1cm4gZyAoKTsKKyt9CistLS0gc3JjL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS1pbmxpbmUuZXhwCisrKysgc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1mcmFtZS1pbmxpbmUuZXhwCTIwMTEtMDQtMjkgMDc6MzM6NDYuNjQ5 ODE3MDAwICswMDAwCitAQCAtMCwwICsxLDM5IEBACisrIyBDb3B5cmlnaHQgKEMpIDIwMTEgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorKworK2xvYWRfbGliIGdkYi1weXRob24uZXhwCisrCisrc2V0IHRlc3RmaWxlICJweS1m cmFtZS1pbmxpbmUiCisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYworK2lmIHsgW3ByZXBhcmVf Zm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX1dIH0gewor KyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBTa2lwIGFsbCB0ZXN0cyBpZiBQeXRob24gc2NyaXB0 aW5nIGlzIG5vdCBlbmFibGVkLgorK2lmIHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsgY29udGlu dWUgfQorKworK2lmICFbcnVudG8gbWFpbl0gdGhlbiB7CisrICAgIGZhaWwgIkNhbid0IHJ1biB0 byBmdW5jdGlvbiBmIgorKyAgICByZXR1cm4gMAorK30KKysKKytnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAiYnJlYWstaGVyZSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgIkJsb2NrIGJyZWFrIGhlcmUuIgorKworK2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiaW5saW5l ZCBpbnRvIGZyYW1lIDFcclxuLioiCisrCisrZ2RiX3Rlc3QgInVwIiAiIzEgIGcgLioiCisrCisr Z2RiX3Rlc3QgInB5dGhvbiBwcmludCBnZGIuc2VsZWN0ZWRfZnJhbWUoKS5yZWFkX3ZhcignbCcp IiAiXHJcbjQyIgoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggZWJmNjk5 Yi4uZTAwNmQ3MiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTIzLDEx ICsyMywxMSBAQCBOYW1lOiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9u IHRvIGNvbnRlbnRzIG9mIGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJz aW9ucyBhcmUgbnVtYmVyZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2LjMKICMg YW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFguWS5aLmRhdGUgZm9yIGRhaWx5IHNuYXBzaG90cywg bGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkgc25hcHNob3QgZnJvbSBtYWlsaW5lKSwgb3Ig Ni4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJlbGVhc2UgYnJhbmNoKS4KLVZlcnNpb246IDcu Mi45MC4yMDExMDQxMQorVmVyc2lvbjogNy4yLjkwLjIwMTEwNDI5CiAKICMgVGhlIHJlbGVhc2Ug YWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEu CiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0g ZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMzQlez9f d2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KK1JlbGVhc2U6IDM1JXs/X3dpdGhfdXBz dHJlYW06LnVwc3RyZWFtfSV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdp dGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBH UEwrIGFuZCBMR1BMdjIrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4KIEdyb3VwOiBEZXZlbG9w bWVudC9EZWJ1Z2dlcnMKQEAgLTI2Miw3ICsyNjIsNyBAQCBQYXRjaDIzMTogZ2RiLTYuMy1iejIw MjY4OS1leGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKICMgQmFja3BvcnRlZCBmaXh1cHMg cG9zdCB0aGUgc291cmNlIHRhcmJhbGwuCiAjWGRyb3A6IEp1c3QgYmFja3BvcnRzLgotI1BhdGNo MjMyOiBnZGItdXBzdHJlYW0ucGF0Y2gKK1BhdGNoMjMyOiBnZGItdXBzdHJlYW0ucGF0Y2gKIAog IyBUZXN0Y2FzZSBmb3IgUFBDIFBvd2VyNi9ERlAgaW5zdHJ1Y3Rpb25zIGRpc2Fzc2VtYmx5IChC WiAyMzAwMDApLgogIz1mZWRvcmF0ZXN0K3BwYwpAQCAtNTU3LDYgKzU1NywxOSBAQCBQYXRjaDU3 NDogZ2RiLWNvcmUtdGhyZWFkLWludGVybmFsZXJyLTNvZjMucGF0Y2gKICMgcmVidWlsZCB0byBm aXggaXQsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byB1c2UgZ2RiIDopCiBQYXRjaDU3OTogZ2RiLTcu Mi41MC1zcGFyYy1hZGQtd29ya2Fyb3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2gKIAor IyBGaXggY2FzZSBpbnNlbnNpdGl2ZSBzeW1ib2xzIGZvciBGb3J0cmFuIGJ5IGlGb3J0IChCWiA2 NDU3NzMpLgorUGF0Y2g1ODA6IGdkYi1iejY0NTc3My1jYXNlLWluc2Vuc2l0aXZlLTFvZjUucGF0 Y2gKK1BhdGNoNTgxOiBnZGItYno2NDU3NzMtY2FzZS1pbnNlbnNpdGl2ZS0yb2Y1LnBhdGNoCitQ YXRjaDU4MjogZ2RiLWJ6NjQ1NzczLWNhc2UtaW5zZW5zaXRpdmUtM29mNS5wYXRjaAorUGF0Y2g1 ODM6IGdkYi1iejY0NTc3My1jYXNlLWluc2Vuc2l0aXZlLTRvZjUucGF0Y2gKK1BhdGNoNTg4OiBn ZGItYno2NDU3NzMtY2FzZS1pbnNlbnNpdGl2ZS01b2Y1LnBhdGNoCisKKyMgRml4IC1PMiAtZyBi cmVha3BvaW50cyBpbnRlcm5hbCBlcnJvciArIHByb2xvZ3VlIHNraXBwaW5nIChCWiA2MTIyNTMp LgorUGF0Y2g1ODk6IGdkYi1vcHRpbS1nLXByb2xvZ3VlLXNraXAucGF0Y2gKKworIyBGaXggcGh5 c25hbWUtcmVsYXRlZCBDVSBleHBhbnNpb24gaXNzdWUgZm9yIEMrKyAoUFIgMTI3MDgpLgorUGF0 Y2g1OTA6IGdkYi1waHlzbmFtZS1leHBhbmQtY29tcGxldGVyLnBhdGNoCisKIEJ1aWxkUmVxdWly ZXM6IG5jdXJzZXMtZGV2ZWwlez9faXNhfSB0ZXhpbmZvIGdldHRleHQgZmxleCBiaXNvbiBleHBh dC1kZXZlbCV7P19pc2F9CiBSZXF1aXJlczogcmVhZGxpbmUlez9faXNhfQogQnVpbGRSZXF1aXJl czogcmVhZGxpbmUtZGV2ZWwlez9faXNhfQpAQCAtNzEzLDcgKzcyNiw3IEBAIHJtIC1mIGdkYi9q di1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKIAogJWlmIDAl eyE/X3dpdGhfdXBzdHJlYW06MX0KIAotI3BhdGNoMjMyIC1wMQorJXBhdGNoMjMyIC1wMQogJXBh dGNoMzQ5IC1wMQogJXBhdGNoMSAtcDEKICVwYXRjaDMgLXAxCkBAIC04MjYsNiArODM5LDEzIEBA IHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhw LmMKICVwYXRjaDU3MyAtcDEKICVwYXRjaDU3NCAtcDEKICVwYXRjaDU3OSAtcDEKKyVwYXRjaDU4 MCAtcDEKKyVwYXRjaDU4MSAtcDEKKyVwYXRjaDU4MiAtcDEKKyVwYXRjaDU4MyAtcDEKKyVwYXRj aDU4OCAtcDEKKyVwYXRjaDU4OSAtcDEKKyVwYXRjaDU5MCAtcDEKIAogJXBhdGNoMzkwIC1wMQog JXBhdGNoMzkzIC1wMQpAQCAtMTI1NCw2ICsxMjc0LDEzIEBAIGZpCiAle19pbmZvZGlyfS9nZGIu aW5mbyoKIAogJWNoYW5nZWxvZworKiBGcmkgQXByIDI5IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4yLjkwLjIwMTEwNDI5LTM1LmZjMTUKKy0gUmVi YXNlIHRvIEZTRiBHREIgNy4yLjkwLjIwMTEwNDI5ICh3aGljaCBpcyBhIDcuMyBwcmUtcmVsZWFz ZSkuCistIEZpeCAtTzIgLWcgYnJlYWtwb2ludHMgaW50ZXJuYWwgZXJyb3IgKyBwcm9sb2d1ZSBz a2lwcGluZyAoQlogNjEyMjUzKS4KKy0gRml4IGNhc2UgaW5zZW5zaXRpdmUgc3ltYm9scyBmb3Ig Rm9ydHJhbiBieSBpRm9ydCAoQlogNjQ1NzczKS4KKy0gRml4IHBoeXNuYW1lLXJlbGF0ZWQgQ1Ug ZXhwYW5zaW9uIGlzc3VlIGZvciBDKysgKFBSIDEyNzA4KS4KKy0gRml4IFB5dGhvbiBhY2Nlc3Mg dG8gaW5saW5lZCBmcmFtZXMgKEJaIDY5NDgyNCkuCisKICogTW9uIEFwciAxMSAyMDExIEphbiBL cmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMi45MC4yMDExMDQxMS0z NC5mYzE1CiAtIFJlYmFzZSB0byBGU0YgR0RCIDcuMi45MC4yMDExMDQxMSAod2hpY2ggaXMgYSA3 LjMgcHJlLXJlbGVhc2UpLgogLSBJbmNsdWRlIHRoZSBwcm9wZXIgZml4IGZvciBhbm9ueW1vdXMg c3RydWN0IHR5cGVkZWZzIChUb20gVHJvbWV5LCBCWiA2NzIyMzApLgoKZGlmZiAtLWdpdCBhL3Nv dXJjZXMgYi9zb3VyY2VzCmluZGV4IGZmMjc1NTcuLjE0ZWNmZWEgMTAwNjQ0Ci0tLSBhL3NvdXJj ZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDA0ZTVjNGIxYjllNjMzNDIyY2M0ODk5 MGZlNjE5NThkICBsaWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotNzA5NWYzZjQx MmUyN2E3M2MzOWRmNGFhNzM3YTM4NmEgIGdkYi03LjIuOTAuMjAxMTA0MTEudGFyLmJ6MgorZTU4 NWU0ODQwMDFmNWNkNjllODdjYmNkMGM5OWMxZjcgIGdkYi03LjIuOTAuMjAxMTA0MjkudGFyLmJ6 Mgo=