From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 18886 invoked from network); 19 Mar 2021 07:02:35 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 19 Mar 2021 07:02:35 -0000 Content-Type: multipart/mixed; boundary="===============6811844774842509062==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_=5BWIP=5D_freecad=3A_update_to_0=2E19=2E1?= To: ml@inbox.vuxu.org From: yopito Reply-to: ml@inbox.vuxu.org Message-ID: Date: Fri, 19 Mar 2021 08:02:34 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============6811844774842509062== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHlvcGl0byBhZ2FpbnN0IG1hc3RlciBvbiB0 aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20veW9waXRvL3Zv aWQtcGFja2FnZXMgZnJlZWNhZC4wLjE5Cmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8yOTU4MAoKW1dJUF0gZnJlZWNhZDogdXBkYXRlIHRvIDAuMTkuMQpb IF0gd2FpdCBmb3Igb2ZmaWNpYWwgYW5ub3VuY2VtZW50DQpbIF0gRW1iZWRkZWQgaGVscCBkb2Vz IG5vdCBsYXVuY2gNCg0KU3VwZXJzZWVkcyAjMjk0NjYgCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjk1ODAucGF0Y2gg aXMgYXR0YWNoZWQ= --===============6811844774842509062== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-freecad.0.19-29580.patch" RnJvbSBkMTIwZWRjNmE5ZDFlNTQ1NzJkYzhiMTkyZDdjZGEyOTVmMWE3MWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+CkRhdGU6 IFdlZCwgMTcgTWFyIDIwMjEgMTk6NTA6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIXSBmcmVlY2Fk OiB1cGRhdGUgdG8gMC4xOS4xCgotLS0KIHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMS1weXRo b24zLnBhdGNoICAgICB8ICAxMSAtCiBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMDItZXhlY2lu Zm8ucGF0Y2ggICAgfCAgMTAgKy0KIC4uLi9wYXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5m by5wYXRjaCAgICB8ICAzMCArKwogLi4uL3BhdGNoZXMvMDIwLW5hbWVzcGFjZS1taXNzaW5nLXN0 ZC5wYXRjaCAgIHwgMTI3IC0tLS0tLS0KIHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzA5MC1weTM4 LnBhdGNoICAgICAgICB8ICAyMiAtLQogc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDkxLXB5Mzku cGF0Y2ggICAgICAgIHwgMTc0IC0tLS0tLS0tLS0KIC4uLjAwLWRldGVjdC1zaGlib2tlbjItYW5k LXB5c2lkZTItNS4xNC5wYXRjaCB8ICAzMyAtLQogLi4uLzEwMS1weXNpZGUyLXRvb2wtNS4xNC1z dXBwb3J0LnBhdGNoICAgICAgIHwgIDY3IC0tLS0KIHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzEw Mi1xdDUtNS4xNS4wLnBhdGNoICB8ICAxNCAtCiAuLi4vcGF0Y2hlcy8xMDMtZmluZC1jb2luM3Y0 LWRvYy5wYXRjaCAgICAgICAgfCAgNTAgLS0tCiBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAt dnRrOS5wYXRjaCAgICAgICAgfCAzMjYgKysrKysrKysrKy0tLS0tLS0tCiAuLi4vZnJlZWNhZC9w YXRjaGVzLzE1MS1weXRob24td2FybmluZy5wYXRjaCAgfCAgMzkgLS0tCiBzcmNwa2dzL2ZyZWVj YWQvcGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaCAgfCAgNTMgKysrCiBzcmNwa2dzL2ZyZWVj YWQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgMjggKy0KIDE0IGZpbGVzIGNoYW5n ZWQsIDI4NCBpbnNlcnRpb25zKCspLCA3MDAgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAxLXB5dGhvbjMucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMTAtc2Fsb21lc21lc2gtZXhlY2luZm8u cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMjAtbmFt ZXNwYWNlLW1pc3Npbmctc3RkLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVl Y2FkL3BhdGNoZXMvMDkwLXB5MzgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Zy ZWVjYWQvcGF0Y2hlcy8wOTEtcHkzOS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZnJlZWNhZC9wYXRjaGVzLzEwMC1kZXRlY3Qtc2hpYm9rZW4yLWFuZC1weXNpZGUyLTUuMTQucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDEtcHlzaWRl Mi10b29sLTUuMTQtc3VwcG9ydC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZnJl ZWNhZC9wYXRjaGVzLzEwMi1xdDUtNS4xNS4wLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9mcmVlY2FkL3BhdGNoZXMvMTAzLWZpbmQtY29pbjN2NC1kb2MucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTEtcHl0aG9uLXdhcm5pbmcucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTItY21ha2Ut dnRrOS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMS1weXRo b24zLnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAxLXB5dGhvbjMucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0OTk3OGFkY2YzNy4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMS1weXRob24zLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIENNYWtlTGlzdHMudHh0Ci0rKysgQ01ha2VMaXN0cy50 eHQKLUBAIC00NDUsNyArNDQ1LDcgQEAKLSAKLSAjIGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvY2dp LWJpbi9idWdyZXBvcnQuY2dpP2J1Zz02Nzc1OTgKLSAjIEFjY2VwdGFibGUgdmVyc2lvbnMgb2Yg UHl0aG9uCi0tc2V0KFB5dGhvbl9BRERJVElPTkFMX1ZFUlNJT05TICIyLjciKQotK3NldChQeXRo b25fQURESVRJT05BTF9WRVJTSU9OUyAiMi43IDMuNiIpCi0gCi0gIyBGb3IgYnVpbGRpbmcgb24g T1MgWAotIGlmKCR7Q01BS0VfU1lTVEVNX05BTUV9IE1BVENIRVMgIkRhcndpbiIpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMDItZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dz L2ZyZWVjYWQvcGF0Y2hlcy8wMDItZXhlY2luZm8ucGF0Y2gKaW5kZXggOWY5ZDc5N2QwMGYyLi40 NzFlMDZlNjQ1M2EgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMi1leGVj aW5mby5wYXRjaAorKysgYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMDItZXhlY2luZm8ucGF0 Y2gKQEAgLTEsNiArMSw2IEBACi0tLS0gc3JjL0FwcC9BcHBsaWNhdGlvbi5jcHAub3JpZwkyMDE5 LTAzLTA4IDE4OjU2OjE2LjAwMDAwMDAwMCArMDEwMAotKysrIHNyYy9BcHAvQXBwbGljYXRpb24u Y3BwCTIwMTktMDMtMTMgMjE6MzY6MzguODczNTg3NTM0ICswMTAwCi1AQCAtMTE2Myw3ICsxMTYz LDkgQEAKKy0tLSBzcmMvQXBwL0FwcGxpY2F0aW9uLmNwcC5PUklHCTIwMjAtMDEtMjIgMjM6Mjc6 NDIuNzA5MjczMDg3ICswMTAwCisrKysgc3JjL0FwcC9BcHBsaWNhdGlvbi5jcHAJMjAyMC0wMS0y MiAyMzo1MDo1My45MTUwNzU5NTUgKzAxMDAKK0BAIC0xNDg1LDcgKzE0ODUsOSBAQAogICNlbmRp Zg0KICANCiAgI2lmIGRlZmluZWQoRkNfT1NfTElOVVgpDQpAQCAtMTAsNyArMTAsNyBAQAogICNp bmNsdWRlIDxkbGZjbi5oPg0KICAjaW5jbHVkZSA8Y3h4YWJpLmg+DQogIA0KLUBAIC0xMTc1LDYg KzExNzcsNyBAQAorQEAgLTE0OTcsNiArMTQ5OSw3IEBACiAgLy8gVGhpcyBmdW5jdGlvbiBwcm9k dWNlcyBhIHN0YWNrIGJhY2t0cmFjZSB3aXRoIGRlbWFuZ2xlZCBmdW5jdGlvbiAmIG1ldGhvZCBu YW1lcy4NCiAgdm9pZCBwcmludEJhY2t0cmFjZShzaXplX3Qgc2tpcD0wKQ0KICB7DQpAQCAtMTgs NyArMTgsNyBAQAogICAgICB2b2lkICpjYWxsc3RhY2tbMTI4XTsNCiAgICAgIHNpemVfdCBuTWF4 RnJhbWVzID0gc2l6ZW9mKGNhbGxzdGFjaykgLyBzaXplb2YoY2FsbHN0YWNrWzBdKTsNCiAgICAg IHNpemVfdCBuRnJhbWVzID0gYmFja3RyYWNlKGNhbGxzdGFjaywgbk1heEZyYW1lcyk7DQotQEAg LTEyMDUsNiArMTIwOCw5IEBACitAQCAtMTUyNyw2ICsxNTMwLDkgQEAKICAgICAgfQ0KICANCiAg ICAgIGZyZWUoc3ltYm9scyk7DQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMv MDEwLXNhbG9tZXNtZXNoLWV4ZWNpbmZvLnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMv MDEwLXNhbG9tZXNtZXNoLWV4ZWNpbmZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uMmI0NjYxNmFkN2EyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9m cmVlY2FkL3BhdGNoZXMvMDEwLXNhbG9tZXNtZXNoLWV4ZWNpbmZvLnBhdGNoCkBAIC0wLDAgKzEs MzAgQEAKKy0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL0RyaXZlclNUTC9CYXNpY3Nf VXRpbHMuY3BwCisrKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9Ecml2ZXJTVEwvQmFz aWNzX1V0aWxzLmNwcAorQEAgLTI5LDcgKzI5LDkgQEAKKyAjaWZuZGVmIFdJTjMyCisgI2luY2x1 ZGUgPHVuaXN0ZC5oPgorICNpbmNsdWRlIDxzeXMvc3RhdC5oPgorKyNpZmRlZiBfX0dMSUJDX18K KyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKysjZW5kaWYKKyAjZW5kaWYKKyAKKyAKK0BAIC0xMDks NiArMTExLDcgQEAKKyAjaWZuZGVmIFdJTjMyCisgICB2b2lkIHByaW50X3RyYWNlYmFjaygpCisg ICB7CisrI2lmZGVmIF9fR0xJQkNfXworICAgICB2b2lkICphcnJheVs1MF07CisgICAgIHNpemVf dCBzaXplOworICAgICBjaGFyICoqc3RyaW5nczsKK0BAIC0xMjMsNiArMTI2LDkgQEAKKyAgICAg ICB9CisgCisgICAgIGZyZWUgKHN0cmluZ3MpOworKyNlbHNlICAgICAKKysgICBzdGQ6OmNlcnIg PDwgInNvcnJ5LCBubyBiYWNrdHJhY2Ugb24gbXVzbCBsaWJjIjsKKysjZW5kaWYKKyAgIH0KKyAj ZWxzZQorICAgI2lmIChfTVNDX1ZFUiA+PSAxNDAwKSAvLyBWaXN1YWwgU3R1ZGlvIDIwMDUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAyMC1uYW1lc3BhY2UtbWlzc2luZy1z dGQucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMjAtbmFtZXNwYWNlLW1pc3Npbmct c3RkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjAzM2NkNWFmYjQuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMjAtbmFtZXNwYWNlLW1p c3Npbmctc3RkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLSMgcmVhc29u OiBmaXggYnVpbGQgd2l0aCBnY2M5Ci0jIHVwc3RyZWFtOiB5ZXMKLQotZGlmZiAtLWdpdCBzcmMv M3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1JuLmggc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2lu Yy9Sbi5oCi1pbmRleCA2ZWM4NzFkOTMuLmU5MmQyMjc1YSAxMDA2NDQKLS0tLSBzcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvaW5jL1JuLmgKLSsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5j L1JuLmgKLUBAIC0xODAsMTIgKzE4MCwxMiBAQCBjbGFzcyBSNDogcHVibGljIFIzCi0gewotICAg ZnJpZW5kIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3IgPDwoc3RkOjpvc3RyZWFtJiBmLCBjb25zdCBS NCAmIFAgKQotICAgeyBmIDw8IFAueCA8PCAnICcgPDwgUC55IDw8ICcgJyA8PCBQLnogPDwgJyAn IDw8IFAub21lZ2E7IHJldHVybiBmOyB9Ci0tICBmcmllbmQgaXN0cmVhbSYgb3BlcmF0b3IgPj4o aXN0cmVhbSYgZiwgIFI0ICYgUCkKLSsgIGZyaWVuZCBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yID4+ KHN0ZDo6aXN0cmVhbSYgZiwgIFI0ICYgUCkKLSAgIHsgZiA+PiBQLnggPj4gIFAueSA+PiAgUC56 ID4+IFAub21lZ2EgOyByZXR1cm4gZjsgfQotIAotICAgZnJpZW5kIHN0ZDo6b3N0cmVhbSYgb3Bl cmF0b3IgPDwoc3RkOjpvc3RyZWFtJiBmLCBjb25zdCBSNCAqIFAgKQotICAgeyBmIDw8IFAtPngg PDwgJyAnIDw8IFAtPnkgPDwgJyAnIDw8IFAtPnogPDwgJyAnIDw8IFAtPm9tZWdhOyByZXR1cm4g ZjsgfQotLSAgZnJpZW5kIGlzdHJlYW0mIG9wZXJhdG9yID4+KGlzdHJlYW0mIGYsICBSNCAqIFAp Ci0rICBmcmllbmQgc3RkOjppc3RyZWFtJiBvcGVyYXRvciA+PihzdGQ6OmlzdHJlYW0mIGYsICBS NCAqIFApCi0gICB7IGYgPj4gUC0+eCA+PiAgUC0+eSA+PiAgUC0+eiA+PiBQLT5vbWVnYSA7IHJl dHVybiBmOyB9Ci0gCi0gcHVibGljOiAgCi0KLQotZGlmZiAtLWdpdCBzcmMvTW9kL0RyYXdpbmcv QXBwL0RyYXdpbmdFeHBvcnQuY3BwIHNyYy9Nb2QvRHJhd2luZy9BcHAvRHJhd2luZ0V4cG9ydC5j cHAKLWluZGV4IDBjM2MyMzIzMS4uNTUwYjEyYzI1IDEwMDY0NAotLS0tIHNyYy9Nb2QvRHJhd2lu Zy9BcHAvRHJhd2luZ0V4cG9ydC5jcHAKLSsrKyBzcmMvTW9kL0RyYXdpbmcvQXBwL0RyYXdpbmdF eHBvcnQuY3BwCi1AQCAtODEsNiArODEsNyBAQAotICNpbmNsdWRlIDxCYXNlL1ZlY3RvcjNELmg+ DQotIA0KLSB1c2luZyBuYW1lc3BhY2UgRHJhd2luZzsNCi0rdXNpbmcgbmFtZXNwYWNlIHN0ZDsN Ci0gDQotIFRvcG9EU19FZGdlIERyYXdpbmdPdXRwdXQ6OmFzQ2lyY2xlKGNvbnN0IEJSZXBBZGFw dG9yX0N1cnZlJiBjKSBjb25zdA0KLSB7DQotZGlmZiAtLWdpdCBzcmMvTW9kL1BhcnQvQXBwL0dl b21ldHJ5MmQuY3BwIHNyYy9Nb2QvUGFydC9BcHAvR2VvbWV0cnkyZC5jcHAKLWluZGV4IGZiMWRl OTA5Yy4uOTc5NDY1NTMzIDEwMDY0NAotLS0tIHNyYy9Nb2QvUGFydC9BcHAvR2VvbWV0cnkyZC5j cHAKLSsrKyBzcmMvTW9kL1BhcnQvQXBwL0dlb21ldHJ5MmQuY3BwCi1AQCAtODMsNiArODMsNyBA QAotICNpbmNsdWRlIDxNb2QvUGFydC9BcHAvR2VvbTJkL09mZnNldEN1cnZlMmRQeS5oPgotIAot IHVzaW5nIG5hbWVzcGFjZSBQYXJ0OwotK3VzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0gCi0gZXh0ZXJu IGNvbnN0IGNoYXIqIGdjZV9FcnJvclN0YXR1c1RleHQoZ2NlX0Vycm9yVHlwZSBldCk7Ci0gCi1k aWZmIC0tZ2l0IHNyYy9Nb2QvUmF5dHJhY2luZy9BcHAvQXBwUmF5dHJhY2luZ1B5LmNwcCBzcmMv TW9kL1JheXRyYWNpbmcvQXBwL0FwcFJheXRyYWNpbmdQeS5jcHAKLWluZGV4IGQ0OGM1MWM5Ny4u MWJiMmIxYjAxIDEwMDY0NAotLS0tIHNyYy9Nb2QvUmF5dHJhY2luZy9BcHAvQXBwUmF5dHJhY2lu Z1B5LmNwcAotKysrIHNyYy9Nb2QvUmF5dHJhY2luZy9BcHAvQXBwUmF5dHJhY2luZ1B5LmNwcAot QEAgLTQwLDYgKzQwLDggQEAKLSAjaW5jbHVkZSA8TW9kL1BhcnQvQXBwL1RvcG9TaGFwZVB5Lmg+ DQotICNpbmNsdWRlIDxBcHAvQXBwbGljYXRpb24uaD4NCi0gDQotK3VzaW5nIG5hbWVzcGFjZSBz dGQ7DQotKw0KLSANCi0gbmFtZXNwYWNlIFJheXRyYWNpbmcgew0KLSBjbGFzcyBNb2R1bGUgOiBw dWJsaWMgUHk6OkV4dGVuc2lvbk1vZHVsZTxNb2R1bGU+DQotZGlmZiAtLWdpdCBzcmMvTW9kL1Jh eXRyYWNpbmcvQXBwL0x1eEZlYXR1cmUuY3BwIHNyYy9Nb2QvUmF5dHJhY2luZy9BcHAvTHV4RmVh dHVyZS5jcHAKLWluZGV4IDkzMGZlMTJiNy4uZDFlMGEwMDg5IDEwMDY0NAotLS0tIHNyYy9Nb2Qv UmF5dHJhY2luZy9BcHAvTHV4RmVhdHVyZS5jcHAKLSsrKyBzcmMvTW9kL1JheXRyYWNpbmcvQXBw L0x1eEZlYXR1cmUuY3BwCi1AQCAtMzgsNiArMzgsNyBAQAotIA0KLSANCi0gdXNpbmcgbmFtZXNw YWNlIFJheXRyYWNpbmc7DQotK3VzaW5nIG5hbWVzcGFjZSBzdGQ7DQotIA0KLSBQUk9QRVJUWV9T T1VSQ0UoUmF5dHJhY2luZzo6THV4RmVhdHVyZSwgUmF5dHJhY2luZzo6UmF5U2VnbWVudCkNCi0g DQotZGlmZiAtLWdpdCBzcmMvTW9kL1JheXRyYWNpbmcvQXBwL1JheUZlYXR1cmUuY3BwIHNyYy9N b2QvUmF5dHJhY2luZy9BcHAvUmF5RmVhdHVyZS5jcHAKLWluZGV4IGNkZDJjYjZkYy4uMjM1YTk4 Njg1IDEwMDY0NAotLS0tIHNyYy9Nb2QvUmF5dHJhY2luZy9BcHAvUmF5RmVhdHVyZS5jcHAKLSsr KyBzcmMvTW9kL1JheXRyYWNpbmcvQXBwL1JheUZlYXR1cmUuY3BwCi1AQCAtMzYsNiArMzYsNyBA QAotIA0KLSANCi0gdXNpbmcgbmFtZXNwYWNlIFJheXRyYWNpbmc7DQotK3VzaW5nIG5hbWVzcGFj ZSBzdGQ7DQotIA0KLSBQUk9QRVJUWV9TT1VSQ0UoUmF5dHJhY2luZzo6UmF5RmVhdHVyZSwgUmF5 dHJhY2luZzo6UmF5U2VnbWVudCkNCi0gDQotZGlmZiAtLWdpdCBzcmMvTW9kL1RlY2hEcmF3L0Fw cC9HZW9tZXRyeS5jcHAgc3JjL01vZC9UZWNoRHJhdy9BcHAvR2VvbWV0cnkuY3BwCi1pbmRleCBj MTBiNjMxNzcuLmQzNGVlYjliYiAxMDA2NDQKLS0tLSBzcmMvTW9kL1RlY2hEcmF3L0FwcC9HZW9t ZXRyeS5jcHAKLSsrKyBzcmMvTW9kL1RlY2hEcmF3L0FwcC9HZW9tZXRyeS5jcHAKLUBAIC04MCw2 ICs4MCw3IEBACi0gI2luY2x1ZGUgIkdlb21ldHJ5LmgiCi0gCi0gdXNpbmcgbmFtZXNwYWNlIFRl Y2hEcmF3OwotK3VzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0gCi0gLy8gQ29sbGVjdGlvbiBvZiBHZW9t ZXRyaWMgRmVhdHVyZXMKLSBXaXJlOjpXaXJlKCkKLQotCi0tLS0gc3JjL01vZC9QYXJ0L0FwcC9Q cm9wZXJ0eVRvcG9TaGFwZS5jcHAKLSsrKyBzcmMvTW9kL1BhcnQvQXBwL1Byb3BlcnR5VG9wb1No YXBlLmNwcAotQEAgLTI4MSwxMSArMjgxLDExIEBACi0gc3RhdGljIFN0YW5kYXJkX0Jvb2xlYW4g IEJSZXBUb29sc19Xcml0ZShjb25zdCBUb3BvRFNfU2hhcGUmIFNoLCANCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdGFuZGFyZF9DU3RyaW5nIEZpbGUpDQotIHsN Ci0tICBvZnN0cmVhbSBvczsNCi0rICBzdGQ6Om9mc3RyZWFtIG9zOw0KLSAjaWYgT0NDX1ZFUlNJ T05fSEVYID49IDB4MDYwODAwDQotLSAgT1NEX09wZW5TdHJlYW0ob3MsIEZpbGUsIGlvczo6b3V0 KTsNCi0rICBPU0RfT3BlblN0cmVhbShvcywgRmlsZSwgc3RkOjppb3M6Om91dCk7DQotICNlbHNl DQotLSAgb3Mub3BlbihGaWxlLCBpb3M6Om91dCk7DQotKyAgb3Mub3BlbihGaWxlLCBzdGQ6Omlv czo6b3V0KTsNCi0gI2VuZGlmDQotICAgaWYgKCFvcy5yZGJ1ZigpLT5pc19vcGVuKCkpIHJldHVy biBTdGFuZGFyZF9GYWxzZTsNCi0gDQotCi0tLS0gc3JjL01vZC9QYXJ0L0FwcC9HZW9tZXRyeS5j cHAKLSsrKyBzcmMvTW9kL1BhcnQvQXBwL0dlb21ldHJ5LmNwcAotQEAgLTE0MSw2ICsxNDEsNyBA QAotICNpbmNsdWRlICJHZW9tZXRyeS5oIg0KLSANCi0gdXNpbmcgbmFtZXNwYWNlIFBhcnQ7DQot K3VzaW5nIG5hbWVzcGFjZSBzdGQ7DQotIA0KLSANCi0gY29uc3QgY2hhciogZ2NlX0Vycm9yU3Rh dHVzVGV4dChnY2VfRXJyb3JUeXBlIGV0KQ0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9w YXRjaGVzLzA5MC1weTM4LnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDkwLXB5Mzgu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyNTY2ZGY5ZGYzZC4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzA5MC1weTM4LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotRnJvbSAxNzQwMTE3NDlkODM2ZjNiNmM2YWUyNjMw ZjUzYjJmNGMxZjlkM2ZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaGFyZCA8 aG9iYmVzMTA2OUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDE3IE9jdCAyMDE5IDExOjIwOjEwIC0w NTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVwZGF0ZSBzd2lncHlydW4uaW4gZm9yIFB5dGhvbiAzLjgK LQotSW4gUHl0aG9uIDMuOCBzb21lIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHRocmVhZCBzdGF0ZSB3 ZXJlIGludGVudGlvbmFsbHkgbWFkZSBwcml2YXRlLgotCi1UaGlzIGZpeCAoc3BlY2lmaWMgdG8g RnJlZUNBRCkgd2FzIHN1Z2dlc3RlZCBoZXJlOgotCi1odHRwczovL2J1Z3MucHl0aG9uLm9yZy9p c3N1ZTM1ODg2Ci0KLS0tLSBzcmMvQmFzZS9zd2lncHlydW4uaW5sCi0rKysgc3JjL0Jhc2Uvc3dp Z3B5cnVuLmlubAotQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBjbGVhbnVwU1dJR19UKGNvbnN0IGNo YXIqIFR5cGVOYW1lKQotIA0KLSAgICAgUHlPYmplY3QgKm1vZHVsZSwgKmRpY3Q7DQotICAgICBQ eUludGVycHJldGVyU3RhdGUgKmludGVycCA9IFB5VGhyZWFkU3RhdGVfR0VUKCktPmludGVycDsN Ci0tICAgIFB5T2JqZWN0ICptb2R1bGVzID0gaW50ZXJwLT5tb2R1bGVzOw0KLSsgICAgUHlPYmpl Y3QgKm1vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7DQotICAgICBtb2R1bGUgPSBQ eURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCAiX19idWlsdGluX18iKTsNCi0gICAgIGlmICht b2R1bGUgIT0gTlVMTCAmJiBQeU1vZHVsZV9DaGVjayhtb2R1bGUpKSB7DQotICAgICAgICAgZGlj dCA9IFB5TW9kdWxlX0dldERpY3QobW9kdWxlKTsNCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVj YWQvcGF0Y2hlcy8wOTEtcHkzOS5wYXRjaCBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzA5MS1w eTM5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDNiYjAzYWRiMjEuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wOTEtcHkzOS5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDE3NCArMCwwIEBACi1GaXggZm9yIFB5dGhvbiAzLjkKLQotaHR0 cHM6Ly9naXRodWIuY29tL0ZyZWVDQUQvRnJlZUNBRC9jb21taXQvYWU2NDFkYzUyNzhlZmFmYTIy YjE2OGZjMTk2ODc1NTU4YjkyZTQzNgotCi1kaWZmIC0tZ2l0IHNyYy9CYXNlL3N3aWdweXJ1bl8x LjMuMjUuaCBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjI1LmgKLWluZGV4IDkxNzE3MjEwYi4uOWVi YWRiYzgzIDEwMDY0NAotLS0tIHNyYy9CYXNlL3N3aWdweXJ1bl8xLjMuMjUuaAotKysrIHNyYy9C YXNlL3N3aWdweXJ1bl8xLjMuMjUuaAotQEAgLTY5OSw3ICs2OTksMTEgQEAgUHlTd2lnT2JqZWN0 X3R5cGUodm9pZCkgewotICAgICAwLAkJCQkJLyp0cF9pdGVtc2l6ZSovCi0gICAgIC8qIG1ldGhv ZHMgKi8KLSAgICAgKGRlc3RydWN0b3IpUHlTd2lnT2JqZWN0X2RlYWxsb2MsCS8qdHBfZGVhbGxv YyovCi0rI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMzA4MDAwMAotICAgICAocHJpbnRmdW5jKVB5 U3dpZ09iamVjdF9wcmludCwJLyp0cF9wcmludCovCi0rI2Vsc2UKLSsgICAgMCwgICAgICAgICAg Lyp0cF92ZWN0b3JjYWxsX29mZnNldCovCi0rI2VuZGlmCi0gICAgIChnZXRhdHRyZnVuYykwLAkJ CS8qdHBfZ2V0YXR0ciovCi0gICAgIChzZXRhdHRyZnVuYykwLAkJCS8qdHBfc2V0YXR0ciovCi0g ICAgIChjbXBmdW5jKVB5U3dpZ09iamVjdF9jb21wYXJlLAkvKnRwX2NvbXBhcmUqLwotQEAgLTg1 OSw3ICs4NjMsMTEgQEAgUHlTd2lnUGFja2VkX3R5cGUodm9pZCkgewotICAgICAwLAkJCQkJLyp0 cF9pdGVtc2l6ZSovCi0gICAgIC8qIG1ldGhvZHMgKi8KLSAgICAgKGRlc3RydWN0b3IpUHlTd2ln UGFja2VkX2RlYWxsb2MsCS8qdHBfZGVhbGxvYyovCi0rI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgw MzA4MDAwMAotICAgICAocHJpbnRmdW5jKVB5U3dpZ1BhY2tlZF9wcmludCwJLyp0cF9wcmludCov Ci0rI2Vsc2UKLSsgICAgMCwgICAgICAgICAgLyp0cF92ZWN0b3JjYWxsX29mZnNldCovCi0rI2Vu ZGlmCi0gICAgIChnZXRhdHRyZnVuYykwLAkJCS8qdHBfZ2V0YXR0ciovCi0gICAgIChzZXRhdHRy ZnVuYykwLAkJCS8qdHBfc2V0YXR0ciovCi0gICAgIChjbXBmdW5jKVB5U3dpZ1BhY2tlZF9jb21w YXJlLAkvKnRwX2NvbXBhcmUqLwotZGlmZiAtLWdpdCBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjMz Lmggc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4zMy5oCi1pbmRleCBmODNhYzFlODkuLmFmZDVhOGM1 MCAxMDA2NDQKLS0tLSBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjMzLmgKLSsrKyBzcmMvQmFzZS9z d2lncHlydW5fMS4zLjMzLmgKLUBAIC0xNjIwLDcgKzE2MjAsMTEgQEAgX1B5U3dpZ09iamVjdF90 eXBlKHZvaWQpIHsKLSAJc2l6ZW9mKFB5U3dpZ09iamVjdCksCQkgICAgLyogdHBfYmFzaWNzaXpl ICovCi0gCTAsCQkJICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KLSAJKGRlc3RydWN0b3Ip UHlTd2lnT2JqZWN0X2RlYWxsb2MsICAgLyogdHBfZGVhbGxvYyAqLwotKyNpZiBQWV9WRVJTSU9O X0hFWCA8IDB4MDMwODAwMDAKLSAJKHByaW50ZnVuYylQeVN3aWdPYmplY3RfcHJpbnQsCSAgICAv KiB0cF9wcmludCAqLwotKyNlbHNlCi0rCTAsIC8qdHBfdmVjdG9yY2FsbF9vZmZzZXQqLwotKyNl bmRpZgotICNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDIwMjAwMDAKLSAJKGdldGF0dHJmdW5jKVB5 U3dpZ09iamVjdF9nZXRhdHRyLCAgLyogdHBfZ2V0YXR0ciAqLyAKLSAjZWxzZQotQEAgLTE3OTAs NyArMTc5NCwxMSBAQCBfUHlTd2lnUGFja2VkX3R5cGUodm9pZCkgewotIAlzaXplb2YoUHlTd2ln UGFja2VkKSwJCSAgICAvKiB0cF9iYXNpY3NpemUgKi8JCi0gCTAsCQkJCSAgICAvKiB0cF9pdGVt c2l6ZSAqLwkKLSAJKGRlc3RydWN0b3IpUHlTd2lnUGFja2VkX2RlYWxsb2MsICAgLyogdHBfZGVh bGxvYyAqLwkKLSsjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDgwMDAwCi0gCShwcmludGZ1bmMp UHlTd2lnUGFja2VkX3ByaW50LAkgICAgLyogdHBfcHJpbnQgKi8gICAJCi0rI2Vsc2UKLSsJMCwg Lyp0cF92ZWN0b3JjYWxsX29mZnNldCovCi0rI2VuZGlmCi0gCShnZXRhdHRyZnVuYykwLAkJCSAg ICAvKiB0cF9nZXRhdHRyICovIAkKLSAJKHNldGF0dHJmdW5jKTAsCQkJICAgIC8qIHRwX3NldGF0 dHIgKi8gCQotIAkoY21wZnVuYylQeVN3aWdQYWNrZWRfY29tcGFyZSwJICAgIC8qIHRwX2NvbXBh cmUgKi8gCQotZGlmZiAtLWdpdCBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjM2Lmggc3JjL0Jhc2Uv c3dpZ3B5cnVuXzEuMy4zNi5oCi1pbmRleCAwMmM1OGFkOGEuLjEyYWQ0MWUxMiAxMDA2NDQKLS0t LSBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjM2LmgKLSsrKyBzcmMvQmFzZS9zd2lncHlydW5fMS4z LjM2LmgKLUBAIC0xNjI4LDcgKzE2MjgsMTIgQEAgX1B5U3dpZ09iamVjdF90eXBlKHZvaWQpIHsK LSAJc2l6ZW9mKFB5U3dpZ09iamVjdCksCQkgICAgLyogdHBfYmFzaWNzaXplICovCi0gCTAsCQkJ ICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KLSAJKGRlc3RydWN0b3IpUHlTd2lnT2JqZWN0 X2RlYWxsb2MsICAgLyogdHBfZGVhbGxvYyAqLwotKyNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDMw ODAwMDAKLSAJKHByaW50ZnVuYylQeVN3aWdPYmplY3RfcHJpbnQsCSAgICAvKiB0cF9wcmludCAq LwotKyNlbHNlCi0rCTAsIC8qdHBfdmVjdG9yY2FsbF9vZmZzZXQqLwotKyNlbmRpZgotKwotICNp ZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDIwMjAwMDAKLSAJKGdldGF0dHJmdW5jKVB5U3dpZ09iamVj dF9nZXRhdHRyLCAgLyogdHBfZ2V0YXR0ciAqLyAKLSAjZWxzZQotQEAgLTE3OTgsNyArMTgwMywx MSBAQCBfUHlTd2lnUGFja2VkX3R5cGUodm9pZCkgewotIAlzaXplb2YoUHlTd2lnUGFja2VkKSwJ CSAgICAvKiB0cF9iYXNpY3NpemUgKi8JCi0gCTAsCQkJCSAgICAvKiB0cF9pdGVtc2l6ZSAqLwkK LSAJKGRlc3RydWN0b3IpUHlTd2lnUGFja2VkX2RlYWxsb2MsICAgLyogdHBfZGVhbGxvYyAqLwkK LSsjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDgwMDAwCi0gCShwcmludGZ1bmMpUHlTd2lnUGFj a2VkX3ByaW50LAkgICAgLyogdHBfcHJpbnQgKi8gICAJCi0rI2Vsc2UKLSsJMCwgLyp0cF92ZWN0 b3JjYWxsX29mZnNldCovCi0rI2VuZGlmCi0gCShnZXRhdHRyZnVuYykwLAkJCSAgICAvKiB0cF9n ZXRhdHRyICovIAkKLSAJKHNldGF0dHJmdW5jKTAsCQkJICAgIC8qIHRwX3NldGF0dHIgKi8gCQot IAkoY21wZnVuYylQeVN3aWdQYWNrZWRfY29tcGFyZSwJICAgIC8qIHRwX2NvbXBhcmUgKi8gCQot ZGlmZiAtLWdpdCBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjM4Lmggc3JjL0Jhc2Uvc3dpZ3B5cnVu XzEuMy4zOC5oCi1pbmRleCBkYWUwNThjMjAuLjdjYWNjMTU3OSAxMDA2NDQKLS0tLSBzcmMvQmFz ZS9zd2lncHlydW5fMS4zLjM4LmgKLSsrKyBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjM4LmgKLUBA IC0xNzQxLDcgKzE3NDEsMTEgQEAgX1B5U3dpZ09iamVjdF90eXBlKHZvaWQpIHsKLSAJc2l6ZW9m KFN3aWdQeU9iamVjdCksCQkgICAgLyogdHBfYmFzaWNzaXplICovDQotIAkwLAkJCSAgICAgICAg ICAgIC8qIHRwX2l0ZW1zaXplICovDQotIAkoZGVzdHJ1Y3RvcilTd2lnUHlPYmplY3RfZGVhbGxv YywgICAvKiB0cF9kZWFsbG9jICovDQotKyNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDMwODAwMDAN Ci0gCShwcmludGZ1bmMpU3dpZ1B5T2JqZWN0X3ByaW50LAkgICAgLyogdHBfcHJpbnQgKi8NCi0r I2Vsc2UNCi0rCTAsIC8qdHBfdmVjdG9yY2FsbF9vZmZzZXQqLw0KLSsjZW5kaWYNCi0gI2lmIFBZ X1ZFUlNJT05fSEVYIDwgMHgwMjAyMDAwMA0KLSAJKGdldGF0dHJmdW5jKVN3aWdQeU9iamVjdF9n ZXRhdHRyLCAgLyogdHBfZ2V0YXR0ciAqLyANCi0gI2Vsc2UNCi1AQCAtMTkxOSw3ICsxOTIzLDEx IEBAIF9QeVN3aWdQYWNrZWRfdHlwZSh2b2lkKSB7Ci0gCXNpemVvZihTd2lnUHlQYWNrZWQpLAkJ ICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLwkNCi0gCTAsCQkJCSAgICAvKiB0cF9pdGVtc2l6ZSAqLwkN Ci0gCShkZXN0cnVjdG9yKVN3aWdQeVBhY2tlZF9kZWFsbG9jLCAgIC8qIHRwX2RlYWxsb2MgKi8J DQotKyNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDMwODAwMDANCi0gCShwcmludGZ1bmMpU3dpZ1B5 UGFja2VkX3ByaW50LAkgICAgLyogdHBfcHJpbnQgKi8gICAJDQotKyNlbHNlDQotKwkwLCAvKnRw X3ZlY3RvcmNhbGxfb2Zmc2V0Ki8NCi0rI2VuZGlmDQotIAkoZ2V0YXR0cmZ1bmMpMCwJCQkgICAg LyogdHBfZ2V0YXR0ciAqLyAJDQotIAkoc2V0YXR0cmZ1bmMpMCwJCQkgICAgLyogdHBfc2V0YXR0 ciAqLyAJDQotIAkoY21wZnVuYylTd2lnUHlQYWNrZWRfY29tcGFyZSwJICAgIC8qIHRwX2NvbXBh cmUgKi8gCQ0KLWRpZmYgLS1naXQgc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy40MC5oIHNyYy9CYXNl L3N3aWdweXJ1bl8xLjMuNDAuaAotaW5kZXggMTM2YmE4MDlmLi40MDBkYjhiNDcgMTAwNjQ0Ci0t LS0gc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy40MC5oCi0rKysgc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEu My40MC5oCi1AQCAtMTc2Niw3ICsxNzY2LDExIEBAIF9QeVN3aWdPYmplY3RfdHlwZSh2b2lkKSB7 Ci0gCXNpemVvZihTd2lnUHlPYmplY3QpLAkJICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLw0KLSAJMCwJ CQkgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLw0KLSAJKGRlc3RydWN0b3IpU3dpZ1B5T2Jq ZWN0X2RlYWxsb2MsICAgLyogdHBfZGVhbGxvYyAqLw0KLSsjaWYgUFlfVkVSU0lPTl9IRVggPCAw eDAzMDgwMDAwDQotIAkocHJpbnRmdW5jKVN3aWdQeU9iamVjdF9wcmludCwJICAgIC8qIHRwX3By aW50ICovDQotKyNlbHNlDQotKwkwLCAvKnRwX3ZlY3RvcmNhbGxfb2Zmc2V0Ki8NCi0rI2VuZGlm DQotICNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDIwMjAwMDANCi0gCShnZXRhdHRyZnVuYylTd2ln UHlPYmplY3RfZ2V0YXR0ciwgIC8qIHRwX2dldGF0dHIgKi8gDQotICNlbHNlDQotQEAgLTE5NDcs OCArMTk1MSwxMiBAQCBfUHlTd2lnUGFja2VkX3R5cGUodm9pZCkgewotIAkoY2hhciAqKSJTd2ln UHlQYWNrZWQiLAkJICAgIC8qIHRwX25hbWUgKi8JDQotIAlzaXplb2YoU3dpZ1B5UGFja2VkKSwJ CSAgICAvKiB0cF9iYXNpY3NpemUgKi8JDQotIAkwLAkJCQkgICAgLyogdHBfaXRlbXNpemUgKi8J DQotLQkoZGVzdHJ1Y3RvcilTd2lnUHlQYWNrZWRfZGVhbGxvYywgICAvKiB0cF9kZWFsbG9jICov CQ0KLS0JKHByaW50ZnVuYylTd2lnUHlQYWNrZWRfcHJpbnQsCSAgICAvKiB0cF9wcmludCAqLyAg IAkNCi0rCShkZXN0cnVjdG9yKVN3aWdQeVBhY2tlZF9kZWFsbG9jLCAgIC8qIHRwX2RlYWxsb2Mg Ki8NCi0rI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMzA4MDAwMA0KLSsJKHByaW50ZnVuYylTd2ln UHlQYWNrZWRfcHJpbnQsCSAgICAvKiB0cF9wcmludCAqLw0KLSsjZWxzZQ0KLSsJMCwgLyp0cF92 ZWN0b3JjYWxsX29mZnNldCovDQotKyNlbmRpZg0KLSAJKGdldGF0dHJmdW5jKTAsCQkJICAgIC8q IHRwX2dldGF0dHIgKi8gCQ0KLSAJKHNldGF0dHJmdW5jKTAsCQkJICAgIC8qIHRwX3NldGF0dHIg Ki8gCQ0KLSAjaWYgUFlfVkVSU0lPTl9IRVg+PTB4MDMwMDAwMDANCi1kaWZmIC0tZ2l0IHNyYy9D WFgvUHl0aG9uMy9jeHhfZXh0ZW5zaW9ucy5jeHggc3JjL0NYWC9QeXRob24zL2N4eF9leHRlbnNp b25zLmN4eAotaW5kZXggZmIzZGE0NTVmLi45ZmY5NDYxMmYgMTAwNjQ0Ci0tLS0gc3JjL0NYWC9Q eXRob24zL2N4eF9leHRlbnNpb25zLmN4eAotKysrIHNyYy9DWFgvUHl0aG9uMy9jeHhfZXh0ZW5z aW9ucy5jeHgKLUBAIC0zODEsNyArMzgxLDExIEBAIFB5dGhvblR5cGU6OlB5dGhvblR5cGUoIHNp emVfdCBiYXNpY19zaXplLCBpbnQgaXRlbXNpemUsIGNvbnN0IGNoYXIgKmRlZmF1bHRfbmFtCi0g Ci0gICAgIC8vIE1ldGhvZHMgdG8gaW1wbGVtZW50IHN0YW5kYXJkIG9wZXJhdGlvbnMKLSAgICAg dGFibGUtPnRwX2RlYWxsb2MgPSAoZGVzdHJ1Y3RvcilzdGFuZGFyZF9kZWFsbG9jOwotKyNpZiBQ WV9WRVJTSU9OX0hFWCA8IDB4MDMwODAwMDAKLSAgICAgdGFibGUtPnRwX3ByaW50ID0gMDsKLSsj ZWxzZQotKyAgICB0YWJsZS0+dHBfdmVjdG9yY2FsbF9vZmZzZXQgPSAwOwotKyNlbmRpZgotICAg ICB0YWJsZS0+dHBfZ2V0YXR0ciA9IDA7Ci0gICAgIHRhYmxlLT50cF9zZXRhdHRyID0gMDsKLSAg ICAgdGFibGUtPnRwX3JlcHIgPSAwOwotQEAgLTUyNCw3ICs1MjgsOSBAQCBQeXRob25UeXBlICZQ eXRob25UeXBlOjpzdXBwb3J0Q2xhc3MoKQotICNpZmRlZiBQWUNYWF9QWVRIT05fMlRPMwotIFB5 dGhvblR5cGUgJlB5dGhvblR5cGU6OnN1cHBvcnRQcmludCgpCi0gewotKyNpZiBQWV9WRVJTSU9O X0hFWCA8IDB4MDMwODAwMDAKLSAgICAgdGFibGUtPnRwX3ByaW50ID0gcHJpbnRfaGFuZGxlcjsK LSsjZW5kaWYKLSAgICAgcmV0dXJuICp0aGlzOwotIH0KLSAjZW5kaWYKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzEwMC1kZXRlY3Qtc2hpYm9rZW4yLWFuZC1weXNpZGUyLTUu MTQucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDAtZGV0ZWN0LXNoaWJva2VuMi1h bmQtcHlzaWRlMi01LjE0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGNl OWQ1ZmNmOTAuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDAt ZGV0ZWN0LXNoaWJva2VuMi1hbmQtcHlzaWRlMi01LjE0LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzMgKzAsMCBAQAotc291cmNlOiBodHRwczovL3N2bndlYi5mcmVlYnNkLm9yZy9wb3J0cy9o ZWFkL2NhZC9mcmVlY2FkL2ZpbGVzL3BhdGNoLUNNYWtlTGlzdHMudHh0P3JldmlzaW9uPTUwNDM2 MSZ2aWV3PWNvCi0KLS0tLSBDTWFrZUxpc3RzLnR4dC5vcmlnCi0rKysgQ01ha2VMaXN0cy50eHQK LUBAIC05ODksNiArOTg5LDEzIEBAIGVuZGlmKCkKLSAgICAgICAgICAgICBlbmRpZigpCi0gICAg ICAgICBlbmRpZigpCi0gCi0rICAgICAgICAjIHB5c2lkZTIgY2hhbmdlZCBpdCdzIGNtYWtlIGZp bGVzLCB0aGlzIGlzIHRoZSBkYW5jZSB3ZSBoYXZlCi0rICAgICAgICAjIHRvIGRhbmNlIHRvIGJl IGNvbXBhdGlibGUgd2l0aCB0aGUgb2xkIGFuZCB0aGUgbmV3IHZlcnNpb25zCi0rICAgICAgICBp ZihTSElCT0tFTl9QWVRIT05fSU5DTFVERV9ESVJTIEFORCBOT1QgU0hJQk9LRU5fSU5DTFVERV9E SVIpCi0rICAgICAgICAgIGdldF9wcm9wZXJ0eShTSElCT0tFTl9JTkNMVURFX0RJUiBUQVJHRVQg U2hpYm9rZW4yOjpsaWJzaGlib2tlbiBQUk9QRVJUWSBJTlRFUkZBQ0VfSU5DTFVERV9ESVJFQ1RP UklFUykKLSsgICAgICAgICAgICBnZXRfcHJvcGVydHkoU0hJQk9LRU5fTElCUkFSWSBUQVJHRVQg U2hpYm9rZW4yOjpsaWJzaGlib2tlbiBQUk9QRVJUWSBJTVBPUlRFRF9MT0NBVElPTl9SRUxFQVNF KQotKyAgICAgICAgZW5kaWYoU0hJQk9LRU5fUFlUSE9OX0lOQ0xVREVfRElSUyBBTkQgTk9UIFNI SUJPS0VOX0lOQ0xVREVfRElSKQotKwotICAgICAgICAgaWYoTk9UIFNISUJPS0VOX0lOQ0xVREVf RElSKQotICAgICAgICAgICAgIE1FU1NBR0UoIj09PT09PT09PT09PT09PT09PT09XG4iCi0gICAg ICAgICAgICAgICAgICAgICAic2hpYm9rZW4yIG5vdCBmb3VuZC5cbiIKLUBAIC05OTYsNiArMTAw MywxNCBAQCBlbmRpZigpCi0gICAgICAgICBlbmRpZihOT1QgU0hJQk9LRU5fSU5DTFVERV9ESVIp Ci0gCi0gICAgICAgICBmaW5kX3BhY2thZ2UoUHlTaWRlMiBRVUlFVCkjIFJFUVVJUkVECi0rCi0r ICAgICAgICAjIHB5c2lkZTIgY2hhbmdlZCBpdCdzIGNtYWtlIGZpbGVzLCB0aGlzIGlzIHRoZSBk YW5jZSB3ZSBoYXZlCi0rICAgICAgICAjIHRvIGRhbmNlIHRvIGJlIGNvbXBhdGlibGUgd2l0aCB0 aGUgb2xkIGFuZCB0aGUgbmV3IHZlcnNpb25zCi0rICAgICAgICBpZihOT1QgUFlTSURFX0lOQ0xV REVfRElSKQotKyAgICAgICAgICBnZXRfcHJvcGVydHkoUFlTSURFX0lOQ0xVREVfRElSIFRBUkdF VCBQeVNpZGUyOjpweXNpZGUyIFBST1BFUlRZIElOVEVSRkFDRV9JTkNMVURFX0RJUkVDVE9SSUVT KQotKyAgICAgICAgICBnZXRfcHJvcGVydHkoUFlTSURFX0xJQlJBUlkgVEFSR0VUIFB5U2lkZTI6 OnB5c2lkZTIgUFJPUEVSVFkgSU1QT1JURURfTE9DQVRJT05fUkVMRUFTRSkKLSsgICAgICAgIGVu ZGlmKE5PVCBQWVNJREVfSU5DTFVERV9ESVIpCi0rCi0gICAgICAgICBpZihOT1QgUFlTSURFX0lO Q0xVREVfRElSKQotICAgICAgICAgICAgIE1FU1NBR0UoIj09PT09PT09PT09PT09PT09PVxuIgot ICAgICAgICAgICAgICAgICAgICAgIlB5U2lkZTIgbm90IGZvdW5kLlxuIgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAxLXB5c2lkZTItdG9vbC01LjE0LXN1cHBvcnQucGF0 Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDEtcHlzaWRlMi10b29sLTUuMTQtc3VwcG9y dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjMyMzg0ZDJkZjRhLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAxLXB5c2lkZTItdG9vbC01 LjE0LXN1cHBvcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi1iYWNrcG9y dCBmcm9tIEZyZWVDQUQgZ2l0IG1hc3RlciAocmV2IEAxYmNhNTM5KQotCi0tLS0gY01ha2UvRmlu ZFB5U2lkZTJUb29scy5jbWFrZS5PUklHCi0rKysgY01ha2UvRmluZFB5U2lkZTJUb29scy5jbWFr ZQotQEAgLTIwLDggKzIwLDI0IEBACi0gICAgIHNldChQWVNJREVfQklOX0RJUiAke1BZVEhPTl9C SU5fRElSfSkKLSBlbmRpZihXSU4zMiBPUiAke0NNQUtFX1NZU1RFTV9OQU1FfSBNQVRDSEVTICJE YXJ3aW4iKQotIAotLUZJTkRfUFJPR1JBTShQWVNJREUyVUlDQklOQVJZIE5BTUVTIHB5dGhvbjIt cHlzaWRlMi11aWMgcHlzaWRlMi11aWMgcHlzaWRlMi11aWMtJHtQWVRIT05fVkVSU0lPTl9NQUpP Un0uJHtQWVRIT05fVkVSU0lPTl9NSU5PUn0gSElOVFMgJHtQWVNJREVfQklOX0RJUn0pCi0tRklO RF9QUk9HUkFNKFBZU0lERTJSQ0NCSU5BUlkgTkFNRVMgcHlzaWRlMi1yY2MgcHlzaWRlMi1yY2Mt JHtQWVRIT05fVkVSU0lPTl9NQUpPUn0uJHtQWVRIT05fVkVSU0lPTl9NSU5PUn0gSElOVFMgJHtQ WVNJREVfQklOX0RJUn0pCi0rIyBTaW5jZSBRdCB2NS4xNCwgcHlzaWRlMi11aWMgYW5kIHB5c2lk ZTItcmNjIGFyZSBkaXJlY3RseSBwcm92aWRlZCBieSBRdDVDb3JlIHVpYyBhbmQgcmNjLCB3aXRo ICctZyBweXRob24nIG9wdGlvbgotKyMgV2UgdGVzdCBRdDVDb3JlIHZlcnNpb24gdG8gYWN0IGFj Y29yZGluZ2x5Ci0rCi0rRklORF9QQUNLQUdFKFF0NUNvcmUpCi0rCi0rSUYoUXQ1Q29yZV9WRVJT SU9OIFZFUlNJT05fTEVTUyA1LjE0KQotKyAgIyBMZWdhY3kgKDwgNS4xNCkKLSsgIEZJTkRfUFJP R1JBTShQWVNJREUyVUlDQklOQVJZIE5BTUVTIHB5dGhvbjItcHlzaWRlMi11aWMgcHlzaWRlMi11 aWMgcHlzaWRlMi11aWMtJHtQWVRIT05fVkVSU0lPTl9NQUpPUn0uJHtQWVRIT05fVkVSU0lPTl9N SU5PUn0gSElOVFMgJHtQWVNJREVfQklOX0RJUn0pCi0rICBGSU5EX1BST0dSQU0oUFlTSURFMlJD Q0JJTkFSWSBOQU1FUyBweXNpZGUyLXJjYyBweXNpZGUyLXJjYy0ke1BZVEhPTl9WRVJTSU9OX01B Sk9SfS4ke1BZVEhPTl9WRVJTSU9OX01JTk9SfSBISU5UUyAke1BZU0lERV9CSU5fRElSfSkKLSsg IHNldChVSUNPUFRJT05TICIiKQotKyAgc2V0KFJDQ09QVElPTlMgIiIpCi0rRUxTRShRdDVDb3Jl X1ZFUlNJT04gVkVSU0lPTl9MRVNTIDUuMTQpCi0rICAjIE5ldyAoPj0gNS4xNCkKLSsgIEZJTkRf UFJPR1JBTShQWVNJREUyVUlDQklOQVJZIE5BTUVTIHVpYy1xdDUgdWljKQotKyAgc2V0KFVJQ09Q VElPTlMgIi0tZ2VuZXJhdG9yPXB5dGhvbiIpCi0rICBGSU5EX1BST0dSQU0oUFlTSURFMlJDQ0JJ TkFSWSBOQU1FUyByY2MtcXQ1IHJjYykKLSsgIHNldChSQ0NPUFRJT05TICItLWdlbmVyYXRvcj1w eXRob24iICItLWNvbXByZXNzLWFsZ289emxpYiIgIi0tY29tcHJlc3M9MSIpCi0rRU5ESUYoUXQ1 Q29yZV9WRVJTSU9OIFZFUlNJT05fTEVTUyA1LjE0KQotIAotIE1BQ1JPKFBZU0lERV9XUkFQX1VJ IG91dGZpbGVzKQotICAgRk9SRUFDSChpdCAke0FSR059KQotQEAgLTMzLDcgKzQ5LDcgQEAKLSAg ICAgIykKLSAgICAgaWYoV0lOMzIgT1IgQVBQTEUpCi0gICAgICAgICBBRERfQ1VTVE9NX0NPTU1B TkQoT1VUUFVUICR7b3V0ZmlsZX0KLS0gICAgICAgICAgQ09NTUFORCAke1BZU0lERTJVSUNCSU5B Ull9ICR7aW5maWxlfSAtbyAke291dGZpbGV9Ci0rICAgICAgICAgIENPTU1BTkQgJHtQWVNJREUy VUlDQklOQVJZfSAke1VJQ09QVElPTlN9ICR7aW5maWxlfSAtbyAke291dGZpbGV9Ci0gICAgICAg ICAgIE1BSU5fREVQRU5ERU5DWSAke2luZmlsZX0KLSAgICAgICAgICkKLSAgICAgZWxzZSgpCi1A QCAtNDEsNyArNTcsNyBAQAotICAgICAgICAgIyBweXNpZGUyLXVpYyBnZW5lcmF0ZXMgaW4gY29t bWVudHMgYXQgYmVnaW5uaW5nLiwgd2hpY2ggaXMgd2h5Ci0gICAgICAgICAjIHdlIGZvbGxvdyB0 aGUgdG9vbCBjb21tYW5kIHdpdGggaW4tcGxhY2Ugc2VkLgotICAgICAgICAgQUREX0NVU1RPTV9D T01NQU5EKE9VVFBVVCAke291dGZpbGV9Ci0tICAgICAgICAgIENPTU1BTkQgIiR7UFlTSURFMlVJ Q0JJTkFSWX0iICIke2luZmlsZX0iIC1vICIke291dGZpbGV9IgotKyAgICAgICAgICBDT01NQU5E ICIke1BZU0lERTJVSUNCSU5BUll9IiAke1VJQ09QVElPTlN9ICIke2luZmlsZX0iIC1vICIke291 dGZpbGV9IgotICAgICAgICAgICBDT01NQU5EIHNlZCAtaSAiL14jIC9kIiAiJHtvdXRmaWxlfSIK LSAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICIke2luZmlsZX0iCi0gICAgICAgICApCi1AQCAt NjAsNyArNzYsNyBAQAotICAgICAjKQotICAgICBpZihXSU4zMiBPUiBBUFBMRSkKLSAgICAgICAg IEFERF9DVVNUT01fQ09NTUFORChPVVRQVVQgJHtvdXRmaWxlfQotLSAgICAgICAgICBDT01NQU5E ICR7UFlTSURFMlJDQ0JJTkFSWX0gJHtpbmZpbGV9IC1vICR7b3V0ZmlsZX0KLSsgICAgICAgICAg Q09NTUFORCAke1BZU0lERTJSQ0NCSU5BUll9ICR7UkNDT1BUSU9OU30gJHtpbmZpbGV9IC1vICR7 b3V0ZmlsZX0KLSAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7aW5maWxlfQotICAgICAgICAg KQotICAgICBlbHNlKCkKLUBAIC02OCw3ICs4NCw3IEBACi0gICAgICAgICAjIHB5c2lkZS1yY2Mg Z2VuZXJhdGVzIGluIGNvbW1lbnRzIGF0IGJlZ2lubmluZywgd2hpY2ggaXMgd2h5Ci0gICAgICAg ICAjIHdlIGZvbGxvdyB0aGUgdG9vbCBjb21tYW5kIHdpdGggaW4tcGxhY2Ugc2VkLgotICAgICAg ICAgQUREX0NVU1RPTV9DT01NQU5EKE9VVFBVVCAiJHtvdXRmaWxlfSIKLS0gICAgICAgICAgQ09N TUFORCAiJHtQWVNJREUyUkNDQklOQVJZfSIgIiR7aW5maWxlfSIgJHtQWV9BVFRSSUJVVEV9IC1v ICIke291dGZpbGV9IgotKyAgICAgICAgICBDT01NQU5EICIke1BZU0lERTJSQ0NCSU5BUll9IiAk e1JDQ09QVElPTlN9ICIke2luZmlsZX0iICR7UFlfQVRUUklCVVRFfSAtbyAiJHtvdXRmaWxlfSIK LSAgICAgICAgICAgQ09NTUFORCBzZWQgLWkgIi9eIyAvZCIgIiR7b3V0ZmlsZX0iCi0gICAgICAg ICAgIE1BSU5fREVQRU5ERU5DWSAiJHtpbmZpbGV9IgotICAgICAgICAgKQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAyLXF0NS01LjE1LjAucGF0Y2ggYi9zcmNwa2dzL2Zy ZWVjYWQvcGF0Y2hlcy8xMDItcXQ1LTUuMTUuMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggOWM0NjMyZDgwYTgwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mcmVlY2Fk L3BhdGNoZXMvMTAyLXF0NS01LjE1LjAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCww IEBACi1Tb3VyY2U6IEBwdWxsbW9sbAotVXBzdHJlYW06IG5vCi1SZWFzb246IHF0NS01LjE1LjAg cmVxdWlyZXMgZXhwbGljaXQgaW5jbHVkZSBmb3IgUVBhaW50ZXJQYXRoCi0KLS0tLSBzcmMvTW9k L0ltYWdlL0d1aS9PcGVuR0xJbWFnZUJveC5jcHAKLSsrKyBzcmMvTW9kL0ltYWdlL0d1aS9PcGVu R0xJbWFnZUJveC5jcHAJMjAyMC0wNy0xNCAxMjoyNTo0Mi42MDcwNzU4NTYgKzAyMDAKLUBAIC0y Niw2ICsyNiw3IEBACi0gIyBpbmNsdWRlIDxRU3VyZmFjZUZvcm1hdD4KLSAjIGluY2x1ZGUgPFFN ZXNzYWdlQm94PgotICMgaW5jbHVkZSA8UVBhaW50ZXI+Ci0rIyBpbmNsdWRlIDxRUGFpbnRlclBh dGg+Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19NSU5HVzMyX18pCmRpZmYgLS1naXQgYS9z cmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDMtZmluZC1jb2luM3Y0LWRvYy5wYXRjaCBiL3NyY3Br Z3MvZnJlZWNhZC9wYXRjaGVzLzEwMy1maW5kLWNvaW4zdjQtZG9jLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA1YjdkZTUxNGRlNGIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDMtZmluZC1jb2luM3Y0LWRvYy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDUwICswLDAgQEAKLUZyb20gMDQ4MzNhNWYxY2JjMDdmOGY2YWU5NDQ1M2M0NTM1 ZTEzNzg5YWEwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IHlvcGl0byA8cGllcnJl LmJvdXJnaW5AZnJlZS5mcj4KLURhdGU6IE1vbiwgNiBKdWwgMjAyMCAwNjo1NDowNyArMDIwMAot U3ViamVjdDogW1BBVENIXSBidWlsZDogZml4IENvaW4gM2QgZG9jdW1lbnRhdGlvbiBkaXNjb3Zl cmluZwotCi0qIGNvaW4zZCA0LjAuMCBkZWZhdWx0IGxvY2F0aW9uIGlzIC91c3Ivc2hhcmUvZG9j L0NvaW4vaHRtbC8KLSogbWlzdXNlcyBvZiBmaW5kX2ZpbGVzKCkgaWYgc2V2ZXJhbCBjYW5kaWRh dGVzIGZvciBmaWxlbmFtZQotKiBleHBvcnQgdmFyaWFibGUgQ09JTjNEX0RPQ19GT1VORCB0aGF0 IGlzIHVzZWQgYnkgY01ha2UvRnJlZUNBRF9IZWxwZXJzL1ByaW50RmluYWxSZXBvcnQuY21ha2UK LS0tLQotIGNNYWtlL0ZpbmRDb2luM0REb2MuY21ha2UgfCAxMiArKysrKysrLS0tLS0KLSAxIGZp bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGNNYWtlL0ZpbmRDb2luM0REb2MuY21ha2UgY01ha2UvRmluZENvaW4zRERvYy5jbWFrZQotaW5k ZXggODgzMzY4NDQ1Li5jNmM5MmYyNjAgMTAwNjQ0Ci0tLS0gY01ha2UvRmluZENvaW4zRERvYy5j bWFrZQotKysrIGNNYWtlL0ZpbmRDb2luM0REb2MuY21ha2UKLUBAIC0yMywxOCArMjMsMTkgQEAg SUYgKENPSU4zRF9GT1VORCkKLSAgICAgICBmaW5kX3BhdGgoQ09JTjNEX0RPQ19QQVRIIGluZGV4 Lmh0bWwgDQotICAgICAgICAgICAgICAgICAvdXNyL3NoYXJlL2RvYy9saWJjb2luODAtZG9jL2h0 bWwNCi0gICAgICAgICAgICAgICAgIC91c3Ivc2hhcmUvZG9jL2NvaW4vaHRtbA0KLSsgICAgICAg ICAgICAgICAgL3Vzci9zaGFyZS9kb2MvQ29pbi9odG1sDQotICAgICAgICkNCi0gICAgICAgSUYo IEVYSVNUUyAke0NPSU4zRF9ET0NfUEFUSH0pDQotICAgICAgICAgbWVzc2FnZShTVEFUVVMgIkNv aW4zRCBkb2MgaXMgaW5zdGFsbGVkIikNCi0tICAgICAgICBmaW5kX2ZpbGUoQ09JTjNEX0RPQ19U QUdGSUxFIGNvaW4udGFnIENvaW4udGFnIA0KLS0gICAgICAgICAgICAke0NPSU4zRF9ET0NfUEFU SH0NCi0rICAgICAgICBmaW5kX2ZpbGUoQ09JTjNEX0RPQ19UQUdGSUxFIE5BTUVTIGNvaW4udGFn IENvaW4udGFnIA0KLSsgICAgICAgICAgICBQQVRIUyAke0NPSU4zRF9ET0NfUEFUSH0NCi0gICAg ICAgICApDQotICAgICAgICAgSUYoIEVYSVNUUyAke0NPSU4zRF9ET0NfVEFHRklMRX0pDQotICAg ICAgICAgICBTRVQoIENPSU4zRF9ET0NfRk9VTkQgIllFUyINCi0gICAgICAgICAgICkNCi0gICAg ICAgICBFTFNFKCBFWElTVFMgJHtDT0lOM0RfRE9DX1RBR0ZJTEV9KQ0KLS0gICAgICAgICAgZmlu ZF9maWxlKENPSU4zRF9ET0NfVEFHRklMRV9HWiBjb2luLnRhZy5neiBDb2luLnRhZy5neiANCi0t ICAgICAgICAgICAgICAke0NPSU4zRF9ET0NfUEFUSH0NCi0rICAgICAgICAgIGZpbmRfZmlsZShD T0lOM0RfRE9DX1RBR0ZJTEVfR1ogTkFNRVMgY29pbi50YWcuZ3ogQ29pbi50YWcuZ3ogDQotKyAg ICAgICAgICAgICAgUEFUSFMgJHtDT0lOM0RfRE9DX1BBVEh9DQotICAgICAgICAgICApDQotICAg ICAgICAgICBJRiggRVhJU1RTICR7Q09JTjNEX0RPQ19UQUdGSUxFX0dafSkNCi0gICAgICAgICAg ICAgbWVzc2FnZShTVEFUVVMgIiAgRm91bmQgJHtDT0lOM0RfRE9DX1RBR0ZJTEVfR1p9IikNCi1A QCAtODUsNCArODYsNSBAQCBpZihDT0lOM0RfRE9DX0ZPVU5EKQotICAgbWVzc2FnZShTVEFUVVMg IiAgTG9jYXRpb246ICR7Q09JTjNEX0RPQ19QQVRIfSIpDQotIGVuZGlmKENPSU4zRF9ET0NfRk9V TkQpDQotIA0KLS0NCi0rIyBleHBvcnQgZm9yIG90aGVycw0KLStTRVQoIENPSU4zRF9ET0NfRk9V TkQgIiR7Q09JTjNEX0RPQ19GT1VORH0iIENBQ0hFIEJPT0wgIkNvaW4zZCBkb2N1bWVudGF0aW9u IGF2YWlsYWJsZSIpDQotLS0gCi0yLjI3LjAKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2Fk L3BhdGNoZXMvMTUwLXZ0azkucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAtdnRr OS5wYXRjaAppbmRleCBlOGZiNWVjMTRiN2EuLjNjMDBmZjc4NGU0YyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9mcmVlY2FkL3BhdGNoZXMvMTUwLXZ0azkucGF0Y2gKKysrIGIvc3JjcGtncy9mcmVlY2Fk L3BhdGNoZXMvMTUwLXZ0azkucGF0Y2gKQEAgLTEsMTAgKzEsMTEgQEAKLVRha2VuIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL3d3bWF5ZXIvRnJlZUNBRC9jb21taXQvNTI1OTlmNzcxZmE5MzRjZWVi MTFhOTcwYzM2MzliZmE4ZjkwNDExZQorVGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd3dt YXllci9GcmVlQ0FEL2NvbW1pdC9iYjliY2JkNTFkZjdjM2NiNzZjNTgyMzAzOGU0ZWEwZjdlMjVh OWZmCitidXQgcmVtb3ZlZCBwYXRjaCBvbiBmaWxlIHNyYy9Nb2QvRmVtL0d1aS9WaWV3UHJvdmlk ZXJGZW1Qb3N0T2JqZWN0LmNwcCA6IGFscmVhZHkgYXBwbGllZCAoMjAyMS0wMS0yMCkKIAogZGlm ZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfTWVzaEVsZW1lbnQuaHh4 IGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVtZW50Lmh4eAotaW5k ZXggMTRhNmQ5YTc2Li43YjlkODhkYjEgMTAwNjQ0CitpbmRleCAxNGE2ZDlhNzYzZi4uMGU5Yjll NmM5MDUgMTAwNjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX01lc2hF bGVtZW50Lmh4eAogKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19NZXNoRWxl bWVudC5oeHgKLUBAIC00MCwxMCArNDAsMTYgQEAKK0BAIC00MCwxMSArNDAsMTYgQEAKICAKICAj aW5jbHVkZSA8dnRrVHlwZS5oPgogICNpbmNsdWRlIDx2dGtDZWxsVHlwZS5oPgpAQCAtMTMsMTUg KzE0LDE2IEBAIGluZGV4IDE0YTZkOWE3Ni4uN2I5ZDg4ZGIxIDEwMDY0NAogIC8vdHlwZWRlZiB1 bnNpZ25lZCBzaG9ydCBVU2hvcnRUeXBlOwogIHR5cGVkZWYgc2hvcnQgU2hvcnRUeXBlOwogIHR5 cGVkZWYgaW50ICAgTG9uZ1R5cGU7CistCiArI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCiArdHlw ZWRlZiBjb25zdCB2dGtJZFR5cGUqIHZ0a0lkVHlwZVB0cjsKICsjZWxzZQogK3R5cGVkZWYgdnRr SWRUeXBlKiB2dGtJZFR5cGVQdHI7CiArI2VuZGlmCi0gCiAgY2xhc3MgU01EU19NZXNoTm9kZTsK ICBjbGFzcyBTTURTX01lc2hFZGdlOwotQEAgLTE5Miw3ICsxOTgsNyBAQCBwcm90ZWN0ZWQ6Cisg Y2xhc3MgU01EU19NZXNoRmFjZTsKK0BAIC0xOTIsNyArMTk3LDcgQEAgcHJvdGVjdGVkOgogICAg Ly8hIEVsZW1lbnQgaW5kZXggaW4gdmVjdG9yIFNNRFNfTWVzaDo6bXlOb2RlcyBvciBTTURTX01l c2g6Om15Q2VsbHMKICAgIGludCBteUlEOwogICAgLy8hIGluZGV4IGluIHZ0a1Vuc3RydWN0dXJl ZEdyaWQKQEAgLTMxLDcgKzMzLDcgQEAgaW5kZXggMTRhNmQ5YTc2Li43YjlkODhkYjEgMTAwNjQ0 CiAgICBTaG9ydFR5cGUgbXlNZXNoSWQ7CiAgICAvLyEgU3ViU2hhcGUgYW5kIFN1Yk1lc2ggaWRl bnRpZmljYXRpb24gaW4gU01FU0hEUwogZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5oeHggYi9zcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5oeHgKLWluZGV4IDllNGEyM2VkZC4uNzc0NjU4 MTQ1IDEwMDY0NAoraW5kZXggOWU0YTIzZWRkZmIuLjc3NDY1ODE0NTQxIDEwMDY0NAogLS0tIHNy Yy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmh4eAogKysr IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmh4eAog QEAgLTk1LDcgKzk1LDExIEBAIHB1YmxpYzoKQEAgLTQ3LDI1ICs0OSwyNyBAQCBpbmRleCA5ZTRh MjNlZGQuLjc3NDY1ODE0NSAxMDA2NDQKICAgIFNNRFNfRG93bndhcmQqIGdldERvd25BcnJheSh1 bnNpZ25lZCBjaGFyIHZ0a1R5cGUpCiAgICB7CiBkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9zcmMvU01EUy9TTURTX0JhbGxFbGVtZW50LmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9zcmMvU01EUy9TTURTX0JhbGxFbGVtZW50LmNwcAotaW5kZXggMjk5MDkzYzk0Li45 OTBlMmI2NDEgMTAwNjQ0CitpbmRleCAyOTkwOTNjOTRmNi4uMjY4MGMyMTczMDUgMTAwNjQ0CiAt LS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfQmFsbEVsZW1lbnQuY3Bw CiArKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfQmFsbEVsZW1lbnQu Y3BwCi1AQCAtNjgsOSArNjgsMTMgQEAgYm9vbCBTTURTX0JhbGxFbGVtZW50OjpDaGFuZ2VOb2Rl IChjb25zdCBTTURTX01lc2hOb2RlICogbm9kZSkKK0BAIC02NywxMCArNjcsMTYgQEAgdm9pZCBT TURTX0JhbGxFbGVtZW50OjpTZXREaWFtZXRlcihkb3VibGUgZGlhbWV0ZXIpCisgYm9vbCBTTURT X0JhbGxFbGVtZW50OjpDaGFuZ2VOb2RlIChjb25zdCBTTURTX01lc2hOb2RlICogbm9kZSkKICB7 CiAgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlN ZXNoSWRdLT5nZXRHcmlkKCk7Ci0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUq IHB0cyA9IDA7Ci0rICB2dGtJZFR5cGVQdHIgcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2lu dHMobXlWdGtJRCwgbnB0cywgcHRzKTsKICsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsvL0ZJ WE1FOiB2dGs5CisrICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOworKyAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7CisrICBjZWxsUG9p bnRzLT5TZXRJZCgwLCBub2RlLT5nZXRWdGtJZCgpKTsKICsjZWxzZQorICAgdnRrSWRUeXBlIG5w dHMgPSAwOworICAgdnRrSWRUeXBlKiBwdHMgPSAwOworICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyht eVZ0a0lELCBucHRzLCBwdHMpOwogICAgcHRzWzBdID0gbm9kZS0+Z2V0VnRrSWQoKTsKICsjZW5k aWYKICAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgpOwog ICAgcmV0dXJuIHRydWU7CiAgfQotQEAgLTgzLDcgKzg3LDggQEAgdm9pZCBTTURTX0JhbGxFbGVt ZW50OjpQcmludCAoc3RkOjpvc3RyZWFtICYgT1MpIGNvbnN0CitAQCAtODMsNyArODksOCBAQCB2 b2lkIFNNRFNfQmFsbEVsZW1lbnQ6OlByaW50IChzdGQ6Om9zdHJlYW0gJiBPUykgY29uc3QKICBj b25zdCBTTURTX01lc2hOb2RlKiBTTURTX0JhbGxFbGVtZW50OjpHZXROb2RlIChjb25zdCBpbnQg aW5kKSBjb25zdAogIHsKICAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6 Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKQEAgLTc2LDcgKzgwLDcgQEAgaW5kZXgg Mjk5MDkzYzk0Li45OTBlMmI2NDEgMTAwNjQ0CiAgICByZXR1cm4gU01EU19NZXNoOjpfbWVzaExp c3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0ayggcHRzWyAwIF0pOwogIH0KIGRpZmYgLS1naXQgc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfRG93bndhcmQuY3BwIGIvc3JjLzNy ZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfRG93bndhcmQuY3BwCi1pbmRleCBkNjA0 OWMwYmQuLjc3NTU1ZDViYyAxMDA2NDQKK2luZGV4IGQ2MDQ5YzBiZDE5Li5hNDFmNWMxOGU3OCAx MDA2NDQKIC0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19Eb3dud2Fy ZC5jcHAKICsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19Eb3dud2Fy ZC5jcHAKIEBAIC0zMDMsNyArMzAzLDcgQEAgaW50IFNNRFNfRG93bjFEOjpnZXROb2RlU2V0KGlu dCBjZWxsSWQsIGludCogbm9kZVNldCkKQEAgLTg4LDYgKzkyLDE1IEBAIGluZGV4IGQ2MDQ5YzBi ZC4uNzc1NTVkNWJjIDEwMDY0NAogICAgX2dyaWQtPkdldENlbGxQb2ludHModnRrSWQsIG5wdHMs IHB0cyk7CiAgICAvLyBNRVNTQUdFKHZ0a0lkIDw8ICIgIiA8PCBucHRzIDw8ICIgICIgPDwgX25i RG93bkNlbGxzKTsKICAgIC8vQVNTRVJUKG5wdHMgPT0gX25iRG93bkNlbGxzKTsKK0BAIC0zNTcs NyArMzU3LDcgQEAgaW50IFNNRFNfRG93bjFEOjpjb21wdXRlVnRrQ2VsbHMoaW50ICpwdHMsIHN0 ZDo6dmVjdG9yPGludD4mIHZ0a0lkcykKKyAgICAgeworICAgICAgIHZ0a0lkVHlwZSBwb2ludCA9 IHB0c1tpXTsKKyAgICAgICBpbnQgbnVtQ2VsbHMgPSBfZ3JpZC0+R2V0TGlua3MoKS0+R2V0TmNl bGxzKHBvaW50KTsKKy0gICAgICB2dGtJZFR5cGUgKmNlbGxzID0gX2dyaWQtPkdldExpbmtzKCkt PkdldENlbGxzKHBvaW50KTsKKysgICAgICB2dGtJZFR5cGVQdHIgY2VsbHMgPSBfZ3JpZC0+R2V0 TGlua3MoKS0+R2V0Q2VsbHMocG9pbnQpOworICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVt Q2VsbHM7IGorKykKKyAgICAgICAgIHsKKyAgICAgICAgICAgaW50IHZ0a0NlbGxJZCA9IGNlbGxz W2pdOwogQEAgLTUzMiw3ICs1MzIsNyBAQCBpbnQgU01EU19Eb3duMkQ6OmNvbXB1dGVWb2x1bWVJ ZHMoaW50IGNlbGxJZCwgaW50KiBpZHMpCiAgICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRo ZSBmYWNlCiAgCkBAIC05Nyw2ICsxMTAsMTUgQEAgaW5kZXggZDYwNDljMGJkLi43NzU1NWQ1YmMg MTAwNjQ0CiAgICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIHB0cyk7CiAgICB2 ZWN0b3I8aW50PiBub2RlczsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnB0czsgaSsrKQorQEAg LTU3Nyw3ICs1NzcsNyBAQCBpbnQgU01EU19Eb3duMkQ6OmNvbXB1dGVWb2x1bWVJZHNGcm9tTm9k ZXNGYWNlKGludCogcHRzLCBpbnQgbnB0cywgaW50KiBpZHMpCisgICAgICAgdnRrSWRUeXBlIHBv aW50ID0gcHRzW2ldOworICAgICAgIGludCBudW1DZWxscyA9IF9ncmlkLT5HZXRMaW5rcygpLT5H ZXROY2VsbHMocG9pbnQpOworICAgICAgIC8vTUVTU0FHRSgiY2VsbHMgcG91ciAiIDw8IGkgPDwg IiAiIDw8IG51bUNlbGxzKTsKKy0gICAgICB2dGtJZFR5cGUgKmNlbGxzID0gX2dyaWQtPkdldExp bmtzKCktPkdldENlbGxzKHBvaW50KTsKKysgICAgICB2dGtJZFR5cGVQdHIgY2VsbHMgPSBfZ3Jp ZC0+R2V0TGlua3MoKS0+R2V0Q2VsbHMocG9pbnQpOworICAgICAgIGZvciAoaW50IGogPSAwOyBq IDwgbnVtQ2VsbHM7IGorKykKKyAgICAgICAgIHsKKyAgICAgICAgICAgaW50IHZ0a0NlbGxJZCA9 IGNlbGxzW2pdOwogQEAgLTYyNyw3ICs2MjcsNyBAQCBpbnQgU01EU19Eb3duMkQ6OmNvbXB1dGVW b2x1bWVJZHNGcm9tTm9kZXNGYWNlKGludCogcHRzLCBpbnQgbnB0cywgaW50KiBpZHMpCiAgdm9p ZCBTTURTX0Rvd24yRDo6c2V0VGVtcE5vZGVzKGludCBjZWxsSWQsIGludCB2dGtJZCkKICB7CkBA IC0yNjAsMTAgKzI4MiwxMCBAQCBpbmRleCBkNjA0OWMwYmQuLjc3NTU1ZDViYyAxMDA2NDQKICAK ICAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBl YWNoIGZhY2UKIGRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NN RFNfTWVzaC5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNo LmNwcAotaW5kZXggNGFjNmZkNzY4Li41MWIyODE2OTkgMTAwNjQ0CitpbmRleCA2MWM4ZTc1MWQ5 NC4uMWVhYzI5MDdkM2QgMTAwNjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfTWVzaC5jcHAKICsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMv U01EU19NZXNoLmNwcAotQEAgLTQ3NjMsNyArNDc2MywxMSBAQCB2b2lkIFNNRFNfTWVzaDo6ZHVt cEdyaWQoc3RyaW5nIGZpY2R1bXApCitAQCAtNDc2OCw3ICs0NzY4LDExIEBAIHZvaWQgU01EU19N ZXNoOjpkdW1wR3JpZChzdHJpbmcgZmljZHVtcCkKICAgICAgICAgIGZpY2NvbiA8PCBlbmRsOwog ICAgfQogICAgZmljY29uIDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjb25u ZWN0aXZpdHkgIiA8PCAgbmJQb2ludHMgPDwgZW5kbDsKQEAgLTI3NywzNSArMjk5LDQwIEBAIGlu ZGV4IDRhYzZmZDc2OC4uNTFiMjgxNjk5IDEwMDY0NAogICAgewogICAgICAgICAgaW50IG5jZWxs cyA9IGxpbmtzLT5HZXROY2VsbHMoaSk7CiBkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVz bWVzaC9zcmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9t ZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaDBERWxlbWVudC5jcHAKLWluZGV4IDk1NDM4ZWFiMC4u YTdmODA1OWUwIDEwMDY0NAoraW5kZXggOTU0MzhlYWIwNjQuLjBkZjMyZTNiOTdjIDEwMDY0NAog LS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQu Y3BwCiArKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaDBERWxl bWVudC5jcHAKLUBAIC0xNDcsNyArMTQ3LDcgQEAgYm9vbCBTTURTX01lc2gwREVsZW1lbnQ6OkNo YW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk4KK0BA IC0xNDYsNiArMTQ2LDE3IEBAIGJvb2wgU01EU19NZXNoMERFbGVtZW50OjpDaGFuZ2VOb2Rlcyhj b25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOCisgICBpZiAoIG5iTm9k ZXMgPT0gMSApCiAgICB7CiAgICAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01l c2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKysjaWZkZWYgVlRLX0NFTExfQVJS QVlfVjIKKysgICAgdnRrTmV3PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKKysgICAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7CisrICAgIGlmIChu Yk5vZGVzICE9IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkpCisrICAgIHsKKysgICAgICBN RVNTQUdFKCJDaGFuZ2VOb2RlcyBwcm9ibGVtOiBub3QgdGhlIHNhbWUgbnVtYmVyIG9mIG5vZGVz ICIgPDwgY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKSA8PCAiIC0+ICIgPDwgbmJOb2Rlcyk7 CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrICAgIG15Tm9kZSA9IG5vZGVzWzBdOwor KyAgICBjZWxsUG9pbnRzLT5TZXRJZCgwLCBteU5vZGUtPmdldFZ0a0lkKCkpOworKyNlbHNlCiAg ICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gICAgdnRrSWRUeXBlKiBwdHMgPSAwOwotKyAgICB2 dGtJZFR5cGVQdHIgcHRzID0gMDsKKyAgICAgdnRrSWRUeXBlKiBwdHMgPSAwOwogICAgICBncmlk LT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci0gICAgIGlmIChuYk5vZGVzICE9 IG5wdHMpCi0gICAgIHsKLUBAIC0xNTUsNyArMTU1LDExIEBAIGJvb2wgU01EU19NZXNoMERFbGVt ZW50OjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQg bmJOCi0gICAgICAgcmV0dXJuIGZhbHNlOworQEAgLTE1Niw2ICsxNjcsNyBAQCBib29sIFNNRFNf TWVzaDBERWxlbWVudDo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwg Y29uc3QgaW50IG5iTgogICAgICB9CiAgICAgIG15Tm9kZSA9IG5vZGVzWzBdOwotKyNpZmRlZiBW VEtfQ0VMTF9BUlJBWV9WMgotKy8vRklYTUU6IHZ0azkKLSsjZWxzZQogICAgICBwdHNbMF0gPSBt eU5vZGUtPmdldFZ0a0lkKCk7CiArI2VuZGlmCiAgCiAgICAgIFNNRFNfTWVzaDo6X21lc2hMaXN0 W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgpOwogICAgICByZXR1cm4gdHJ1ZTsKIGRpZmYgLS1n aXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaE5vZGUuY3BwIGIv c3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaE5vZGUuY3BwCi1pbmRl eCBmNjQ3YTVmMWIuLjViOTAzYzhmYiAxMDA2NDQKK2luZGV4IGY2NDdhNWYxYjhmLi41YjkwM2M4 ZmI1NSAxMDA2NDQKIC0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19N ZXNoTm9kZS5jcHAKICsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19N ZXNoTm9kZS5jcHAKLUBAIC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgorQEAgLTE5MSw3ICsxOTEs NyBAQCBjbGFzcyBTTURTX01lc2hOb2RlX015SW52SXRlcmF0b3I6IHB1YmxpYyBTTURTX0VsZW1J dGVyYXRvcgogIFNNRFNfRWxlbUl0ZXJhdG9yUHRyIFNNRFNfTWVzaE5vZGU6OgogIEdldEludmVy c2VFbGVtZW50SXRlcmF0b3IoU01EU0Fic19FbGVtZW50VHlwZSB0eXBlKSBjb25zdAogIHsKQEAg LTM1MSw3ICszNzgsNyBAQCBpbmRleCBmNjQ3YTVmMWIuLjViOTAzYzhmYiAxMDA2NDQKICAgIGlm ICggdHlwZSA9PSBTTURTQWJzX0FsbCApCiAgICAgIHJldHVybiBsLm5jZWxsczsKIGRpZmYgLS1n aXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVkR3Jp ZC5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19VbnN0cnVjdHVy ZWRHcmlkLmNwcAotaW5kZXggZmJkOTAzYjFlLi4xOWNjZWJjYWIgMTAwNjQ0CitpbmRleCBmYmQ5 MDNiMWU3NC4uZmYyYjgxZTk2OTQgMTAwNjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNo L3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5jcHAKICsrKyBzcmMvM3JkUGFydHkvc2Fs b21lc21lc2gvc3JjL1NNRFMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmNwcAogQEAgLTEzOSw4ICsx MzksOCBAQCBpbnQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpJbnNlcnROZXh0TGlua2VkQ2VsbChp bnQgdHlwZSwgaW50IG5wdHMsIHZ0a0lkVHlwZSAqcApAQCAtMzcwLDcgKzM5Nyw3IEBAIGluZGV4 IGZiZDkwM2IxZS4uMTljY2ViY2FiIDEwMDY0NAogICAgICAgIG5ld1R5cGVzLT5TZXRWYWx1ZShh bHJlYWR5Q29waWVkLCB0aGlzLT5UeXBlcy0+R2V0VmFsdWUoaikpOwogICAgICAgIGlkQ2VsbHNP bGRUb05ld1tqXSA9IGFscmVhZHlDb3BpZWQ7IC8vIG9sZCB2dGtJZCAtLT4gbmV3IHZ0a0lkCiAr I2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rICAgICAgdnRrSWRUeXBlIG9sZExvYzsgLy9GSVhN RTogdnRrOQorKyAgICAgIHZ0a0lkVHlwZSBvbGRMb2MgPSB0aGlzLT5HZXRDZWxsTG9jYXRpb25z QXJyYXkoKS0+R2V0VmFsdWUoaik7CiArI2Vsc2UKICAgICAgICB2dGtJZFR5cGUgb2xkTG9jID0g dGhpcy0+TG9jYXRpb25zLT5HZXRWYWx1ZShqKTsKICsjZW5kaWYKQEAgLTM4MCwzNyArNDA3LDQ3 IEBAIGluZGV4IGZiZDkwM2IxZS4uMTljY2ViY2FiIDEwMDY0NAogICAgICAgIHRoaXMtPkNvbm5l Y3Rpdml0eS0+R2V0Q2VsbChvbGRMb2MsIG5icHRzLCBvbGRQdHNDZWxsKTsKICAgICAgICBhc3Nl cnQobmJwdHMgPCBOQk1BWE5PREVTSU5DRUxMKTsKICAgICAgICAvL01FU1NBR0UoaiA8PCAiICIg PDwgYWxyZWFkeUNvcGllZCA8PCAiICIgPDwgKGludCl0aGlzLT5UeXBlcy0+R2V0VmFsdWUoaikg PDwgIiAiIDw8IG9sZExvYyA8PCAiICIgPDwgbmJwdHMgKTsKLUBAIC05NTMsMTQgKzk1NywxOCBA QCB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6R2V0Tm9kZUlkcyhzdGQ6OnNldDxpbnQ+JiBu b2RlU2V0LCBpbnQgZG93bklkLCB1bnNpZworQEAgLTk1Miw2ICs5NTYsMjEgQEAgdm9pZCBTTURT X1Vuc3RydWN0dXJlZEdyaWQ6OkdldE5vZGVJZHMoc3RkOjpzZXQ8aW50PiYgbm9kZVNldCwgaW50 IGRvd25JZCwgdW5zaWcKKyAgKi8KICB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6TW9kaWZ5 Q2VsbE5vZGVzKGludCB2dGtWb2xJZCwgc3RkOjptYXA8aW50LCBpbnQ+IGxvY2FsQ2xvbmVkTm9k ZUlkcykKICB7Ci0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKnB0czsgLy8g d2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQotKyAgdnRrSWRUeXBlUHRy IHB0czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQotICAgdGhp cy0+R2V0Q2VsbFBvaW50cyh2dGtWb2xJZCwgbnB0cywgcHRzKTsKLSAgIGZvciAoaW50IGkgPSAw OyBpIDwgbnB0czsgaSsrKQotICAgICB7Ci0gICAgICAgaWYgKGxvY2FsQ2xvbmVkTm9kZUlkcy5j b3VudChwdHNbaV0pKQotICAgICAgICAgewotICAgICAgICAgICB2dGtJZFR5cGUgb2xkcHQgPSBw dHNbaV07CiArI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rLy9GSVhNRTogdnRrOQorKyAgdnRr TmV3PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKKysgIHRoaXMtPkdldENlbGxQb2ludHModnRrVm9s SWQsIGNlbGxQb2ludHMuR2V0UG9pbnRlcigpKTsKKysgIGZvciAodnRrSWRUeXBlIGkgPSAwOyBp IDwgY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKTsgaSsrKQorKyAgICB7CisrICAgICAgaWYg KGxvY2FsQ2xvbmVkTm9kZUlkcy5jb3VudChjZWxsUG9pbnRzLT5HZXRJZChpKSkpCisrICAgICAg ICB7CisrICAgICAgICAgIHZ0a0lkVHlwZSBvbGRwdCA9IGNlbGxQb2ludHMtPkdldElkKGkpOwor KyAgICAgICAgICBjZWxsUG9pbnRzLT5TZXRJZChpLCBsb2NhbENsb25lZE5vZGVJZHNbb2xkcHRd KTsKKysgICAgICAgICAgLy9NRVNTQUdFKG9sZHB0IDw8ICIgLS0+ICIgPDwgcHRzW2ldKTsKKysg ICAgICAgICAgLy90aGlzLT5SZW1vdmVSZWZlcmVuY2VUb0NlbGwob2xkcHQsIHZ0a1ZvbElkKTsK KysgICAgICAgICAgLy90aGlzLT5BZGRSZWZlcmVuY2VUb0NlbGwocHRzW2ldLCB2dGtWb2xJZCk7 CisrICAgICAgICB9CisrICAgIH0KICsjZWxzZQotICAgICAgICAgICBwdHNbaV0gPSBsb2NhbENs b25lZE5vZGVJZHNbb2xkcHRdOwotKyNlbmRpZgotICAgICAgICAgICAvL01FU1NBR0Uob2xkcHQg PDwgIiAtLT4gIiA8PCBwdHNbaV0pOwotICAgICAgICAgICAvL3RoaXMtPlJlbW92ZVJlZmVyZW5j ZVRvQ2VsbChvbGRwdCwgdnRrVm9sSWQpOworICAgdnRrSWRUeXBlIG5wdHMgPSAwOworICAgdnRr SWRUeXBlICpwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UK KyAgIHRoaXMtPkdldENlbGxQb2ludHModnRrVm9sSWQsIG5wdHMsIHB0cyk7CitAQCAtOTY2LDYg Kzk4NSw3IEBAIHZvaWQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpNb2RpZnlDZWxsTm9kZXMoaW50 IHZ0a1ZvbElkLCBzdGQ6Om1hcDxpbnQsIGludD4gbG9jCiAgICAgICAgICAgIC8vdGhpcy0+QWRk UmVmZXJlbmNlVG9DZWxsKHB0c1tpXSwgdnRrVm9sSWQpOwotQEAgLTk5NSwxMSArMTAwMywyMCBA QCB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6QnVpbGRMaW5rcygpCisgICAgICAgICB9Cisg ICAgIH0KKysjZW5kaWYKKyB9CisgCisgLyohIHJlb3JkZXIgdGhlIG5vZGVzIG9mIGEgZmFjZQor QEAgLTk5NSwxMSArMTAxNSwyMCBAQCB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6QnVpbGRM aW5rcygpCiAgICAgIHRoaXMtPkxpbmtzLT5VblJlZ2lzdGVyKHRoaXMpOwogICAgICB9CiAgCiAr I2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rLy9GSVhNRTogdnRrOQogKyAgdGhpcy0+TGlua3Mg PSBTTURTX0NlbGxMaW5rczo6TmV3KCk7Ci0rICAvL3RoaXMtPkxpbmtzLT5BbGxvY2F0ZSh0aGlz LT5HZXROdW1iZXJPZlBvaW50cygpKTsKLSsgIHRoaXMtPkxpbmtzLT5SZWdpc3Rlcih0aGlzKTsK LSsgIC8vdGhpcy0+TGlua3MtPkJ1aWxkTGlua3ModGhpcywgdGhpcy0+Q29ubmVjdGl2aXR5KTsK LSsgIHRoaXMtPkxpbmtzLT5EZWxldGUoKTsKKysgIEdldExpbmtzKCktPkFsbG9jYXRlKHRoaXMt PkdldE51bWJlck9mUG9pbnRzKCkpOworKyAgR2V0TGlua3MoKS0+UmVnaXN0ZXIodGhpcyk7Cisr Ly9GSVhNRTogdnRrOQorKyAgR2V0TGlua3MoKS0+QnVpbGRMaW5rcyh0aGlzKTsKKysgIEdldExp bmtzKCktPkRlbGV0ZSgpOwogKyNlbHNlCiAgICB0aGlzLT5MaW5rcyA9IFNNRFNfQ2VsbExpbmtz OjpOZXcoKTsKICAgIHRoaXMtPkxpbmtzLT5BbGxvY2F0ZSh0aGlzLT5HZXROdW1iZXJPZlBvaW50 cygpKTsKQEAgLTQyMiw3ICs0NTksNyBAQCBpbmRleCBmYmQ5MDNiMWUuLjE5Y2NlYmNhYiAxMDA2 NDQKICAKICAvKiEgQ3JlYXRlIGEgdm9sdW1lIChwcmlzbSBvciBoZXhhaGVkcm9uKSBieSBkdXBs aWNhdGlvbiBvZiBhIGZhY2UuCiBkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9z cmMvU01EUy9TTURTX1Z0a0NlbGxJdGVyYXRvci5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3IuY3BwCi1pbmRleCBkZWIwNTk4NWYuLjYz YjZlYWJiNyAxMDA2NDQKK2luZGV4IGRlYjA1OTg1ZjAwLi42M2I2ZWFiYjcwNCAxMDA2NDQKIC0t LSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3Iu Y3BwCiArKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0 ZXJhdG9yLmNwcAogQEAgLTMzLDcgKzMzLDggQEAgU01EU19WdGtDZWxsSXRlcmF0b3I6OlNNRFNf VnRrQ2VsbEl0ZXJhdG9yKFNNRFNfTWVzaCogbWVzaCwgaW50IHZ0a0NlbGxJZCwgU01EU0EKQEAg LTQ1NCwzMSArNDkxLDM4IEBAIGluZGV4IGRlYjA1OTg1Zi4uNjNiNmVhYmI3IDEwMDY0NAogICAg ICBpbnQgaWQgPSAwOwogICAgICBfbmJOb2Rlc0luRmFjZXMgPSAwOwogZGlmZiAtLWdpdCBzcmMv M3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtFZGdlLmNwcCBiL3NyYy8zcmRQ YXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0VkZ2UuY3BwCi1pbmRleCA5Nzg2YWJm OWEuLjU4ZDJkZjNjZiAxMDA2NDQKK2luZGV4IDk3ODZhYmY5YWFlLi42ZDc3MmEzY2Q0YSAxMDA2 NDQKIC0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtFZGdlLmNw cAogKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0VkZ2UuY3Bw Ci1AQCAtNjgsNyArNjgsNyBAQCBib29sIFNNRFNfVnRrRWRnZTo6Q2hhbmdlTm9kZXMoY29uc3Qg U01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9kZXMpCitAQCAtNjcsNiArNjcs MTkgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUg KiBub2RlMSwgY29uc3QgU01EU19NZXNoTm9kZQorIGJvb2wgU01EU19WdGtFZGdlOjpDaGFuZ2VO b2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykKICB7 CiAgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlN ZXNoSWRdLT5nZXRHcmlkKCk7CisrI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCisrICB2dGtOZXc8 dnRrSWRMaXN0PiBjZWxsUG9pbnRzOworKyAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBj ZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7CisrICBpZiAobmJOb2RlcyAhPSBjZWxsUG9pbnRzLT5H ZXROdW1iZXJPZklkcygpKQorKyAgICB7CisrICAgICAgTUVTU0FHRSgiQ2hhbmdlTm9kZXMgcHJv YmxlbTogbm90IHRoZSBzYW1lIG51bWJlciBvZiBub2RlcyAiIDw8IGNlbGxQb2ludHMtPkdldE51 bWJlck9mSWRzKCkgPDwgIiAtPiAiIDw8IG5iTm9kZXMpOworKyAgICAgIHJldHVybiBmYWxzZTsK KysgICAgfQorKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVzOyBpKyspCisrICAgIHsKKysg ICAgICBjZWxsUG9pbnRzLT5TZXRJZChpLCBub2Rlc1tpXS0+Z2V0VnRrSWQoKSk7CisrICAgIH0K KysjZWxzZQogICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlKiBwdHMgPSAwOwot KyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICB2dGtJZFR5cGUqIHB0cyA9IDA7CiAgICBncmlk LT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci0gICBpZiAobmJOb2RlcyAhPSBu cHRzKQorQEAgLTc5LDYgKzkyLDcgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVzKGNv bnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQogICAgICB7Ci1A QCAtNzcsNyArNzcsMTEgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVzKGNvbnN0IFNN RFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQotICAgICB9Ci0gICBmb3Ig KGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKLSAgICAgewotKyNpZmRlZiBWVEtfQ0VMTF9B UlJBWV9WMgotKy8vRklYTUU6IHZ0azkKLSsjZWxzZQogICAgICAgIHB0c1tpXSA9IG5vZGVzW2ld LT5nZXRWdGtJZCgpOwotKyNlbmRpZgogICAgICB9CisrI2VuZGlmCiAgICBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKICAgIHJldHVybiB0cnVlOwotQEAg LTg3LDcgKzkxLDcgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OklzTWVkaXVtTm9kZShjb25zdCBTTURT X01lc2hOb2RlKiBub2RlKSBjb25zdAorIH0KK0BAIC04Nyw3ICsxMDEsNyBAQCBib29sIFNNRFNf VnRrRWRnZTo6SXNNZWRpdW1Ob2RlKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUpIGNvbnN0CiAg ewogICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215 TWVzaElkXS0+Z2V0R3JpZCgpOwogICAgdnRrSWRUeXBlIG5wdHMgPSAwOwpAQCAtNDg3LDcgKzUz MSw3IEBAIGluZGV4IDk3ODZhYmY5YS4uNThkMmRmM2NmIDEwMDY0NAogICAgZ3JpZC0+R2V0Q2Vs bFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwogICAgLy9NRVNTQUdFKCJJc01lZGl1bU5vZGUg IiA8PCBucHRzICA8PCAiICIgPDwgKG5vZGUtPmdldFZ0a0lkKCkgPT0gcHRzW25wdHMtMV0pKTsK ICAgIHJldHVybiAoKG5wdHMgPT0gMykgJiYgKG5vZGUtPmdldFZ0a0lkKCkgPT0gcHRzWzJdKSk7 Ci1AQCAtMTM3LDcgKzE0MSw4IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqCitAQCAtMTM3LDcgKzE1 MSw4IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqCiAgU01EU19WdGtFZGdlOjpHZXROb2RlKGNvbnN0 IGludCBpbmQpIGNvbnN0CiAgewogICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNf TWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOwpAQCAtNDk4LDMxICs1NDIsMzgg QEAgaW5kZXggOTc4NmFiZjlhLi41OGQyZGYzY2YgMTAwNjQ0CiAgICByZXR1cm4gU01EU19NZXNo OjpfbWVzaExpc3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0ayggcHRzWyBpbmQgXSk7CiAgfQogZGlm ZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtGYWNlLmNw cCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0ZhY2UuY3BwCi1p bmRleCAxMzg5ZTBkMzUuLmE5MjYwMWYxZSAxMDA2NDQKK2luZGV4IDEzODllMGQzNTg1Li5jYjk4 MWJmYjE4ZSAxMDA2NDQKIC0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01E U19WdGtGYWNlLmNwcAogKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURT X1Z0a0ZhY2UuY3BwCi1AQCAtMTAyLDcgKzEwMiw3IEBAIGJvb2wgU01EU19WdGtGYWNlOjpDaGFu Z2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykK K0BAIC0xMDEsNiArMTAxLDE5IEBAIHZvaWQgU01EU19WdGtGYWNlOjppbml0UXVhZFBvbHkoY29u c3Qgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPiYgbm9kZUlkcywgU01EU19NZXNoCisgYm9vbCBTTURT X1Z0a0ZhY2U6OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0 IGludCBuYk5vZGVzKQogIHsKICAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01l c2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKysjaWZkZWYgVlRLX0NFTExfQVJS QVlfVjIKKysgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7CisrICBncmlkLT5HZXRDZWxs UG9pbnRzKG15VnRrSUQsIGNlbGxQb2ludHMuR2V0UG9pbnRlcigpKTsKKysgIGlmIChuYk5vZGVz ICE9IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkpCisrICAgIHsKKysgICAgICBNRVNTQUdF KCJDaGFuZ2VOb2RlcyBwcm9ibGVtOiBub3QgdGhlIHNhbWUgbnVtYmVyIG9mIG5vZGVzICIgPDwg Y2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKSA8PCAiIC0+ICIgPDwgbmJOb2Rlcyk7CisrICAg ICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrICBmb3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7 IGkrKykKKysgICAgeworKyAgICAgIGNlbGxQb2ludHMtPlNldElkKGksIG5vZGVzW2ldLT5nZXRW dGtJZCgpKTsKKysgICAgfQorKyNlbHNlCiAgICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJ ZFR5cGUqIHB0cyA9IDA7Ci0rICB2dGtJZFR5cGVQdHIgcHRzID0gMDsKKyAgIHZ0a0lkVHlwZSog cHRzID0gMDsKICAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKLSAg IGlmIChuYk5vZGVzICE9IG5wdHMpCitAQCAtMTEzLDYgKzEyNiw3IEBAIGJvb2wgU01EU19WdGtG YWNlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQg bmJOb2RlcykKICAgICAgewotQEAgLTExMSw3ICsxMTEsMTEgQEAgYm9vbCBTTURTX1Z0a0ZhY2U6 OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5v ZGVzKQotICAgICB9Ci0gICBmb3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKLSAgICAg ewotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKy8vRklYTUU6IHZ0azkKLSsjZWxzZQogICAg ICAgIHB0c1tpXSA9IG5vZGVzW2ldLT5nZXRWdGtJZCgpOwotKyNlbmRpZgogICAgICB9CisrI2Vu ZGlmCiAgICBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsK ICAgIHJldHVybiB0cnVlOwotQEAgLTE3Myw3ICsxNzcsOCBAQCBjb25zdCBTTURTX01lc2hOb2Rl KgorIH0KK0BAIC0xNzMsNyArMTg3LDggQEAgY29uc3QgU01EU19NZXNoTm9kZSoKICBTTURTX1Z0 a0ZhY2U6OkdldE5vZGUoY29uc3QgaW50IGluZCkgY29uc3QKICB7CiAgICB2dGtVbnN0cnVjdHVy ZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7 CkBAIC01MzIsNyArNTgzLDcgQEAgaW5kZXggMTM4OWUwZDM1Li5hOTI2MDFmMWUgMTAwNjQ0CiAg ICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lELCBucHRzLCBwdHMgKTsKICAgIHJl dHVybiBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPkZpbmROb2RlVnRrKCBwdHNbIGlu ZCBdKTsKICB9Ci1AQCAtMTg2LDcgKzE5MSw4IEBAIFNNRFNfVnRrRmFjZTo6R2V0Tm9kZShjb25z dCBpbnQgaW5kKSBjb25zdAorQEAgLTE4Niw3ICsyMDEsOCBAQCBTTURTX1Z0a0ZhY2U6OkdldE5v ZGUoY29uc3QgaW50IGluZCkgY29uc3QKICBpbnQgU01EU19WdGtGYWNlOjpHZXROb2RlSW5kZXgo IGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUgKSBjb25zdAogIHsKICAgIHZ0a1Vuc3RydWN0dXJl ZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsK QEAgLTU0Miw3ICs1OTMsNyBAQCBpbmRleCAxMzg5ZTBkMzUuLmE5MjYwMWYxZSAxMDA2NDQKICAg IGdyaWQtPkdldENlbGxQb2ludHMoIHRoaXMtPm15VnRrSUQsIG5wdHMsIHB0cyApOwogICAgZm9y ICggdnRrSWRUeXBlIGkgPSAwOyBpIDwgbnB0czsgKytpICkKICAgICAgaWYgKCBwdHNbaV0gPT0g bm9kZS0+Z2V0VnRrSWQoKSApCi1AQCAtMjUxLDcgKzI1Nyw3IEBAIGJvb2wgU01EU19WdGtGYWNl OjpJc01lZGl1bU5vZGUoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKK0BAIC0yNTEs NyArMjY3LDcgQEAgYm9vbCBTTURTX1Z0a0ZhY2U6OklzTWVkaXVtTm9kZShjb25zdCBTTURTX01l c2hOb2RlKiBub2RlKSBjb25zdAogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICB2dGtJZFR5 cGUgbnB0cyA9IDA7CkBAIC01NTEsNDggKzYwMiw1OCBAQCBpbmRleCAxMzg5ZTBkMzUuLmE5MjYw MWYxZSAxMDA2NDQKICAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsK ICAgIHZ0a0lkVHlwZSBub2RlSWQgPSBub2RlLT5nZXRWdGtJZCgpOwogICAgZm9yIChpbnQgcmFu ayA9IDA7IHJhbmsgPCBucHRzOyByYW5rKyspCi1AQCAtMzU3LDEwICszNjMsMTQgQEAgdm9pZCBT TURTX1Z0a0ZhY2U6OkNoYW5nZUFwZXgoU01EU19NZXNoTm9kZSogbm9kZSkKK0BAIC0zNTYsMTEg KzM3MiwxOCBAQCBTTURTX05vZGVJdGVyYXRvclB0ciBTTURTX1Z0a0ZhY2U6OmludGVybGFjZWRO b2Rlc0l0ZXJhdG9yKCkgY29uc3QKKyB2b2lkIFNNRFNfVnRrRmFjZTo6Q2hhbmdlQXBleChTTURT X01lc2hOb2RlKiBub2RlKQogIHsKICAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURT X01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKKysjaWZkZWYgVlRLX0NFTExf QVJSQVlfVjIKKysgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7CisrICBncmlkLT5HZXRD ZWxsUG9pbnRzKG15VnRrSUQsIGNlbGxQb2ludHMuR2V0UG9pbnRlcigpKTsKKysgIGdyaWQtPlJl bW92ZVJlZmVyZW5jZVRvQ2VsbChjZWxsUG9pbnRzLT5HZXRJZCgwKSwgbXlWdGtJRCk7CisrICBj ZWxsUG9pbnRzLT5TZXRJZCgwLCBub2RlLT5nZXRWdGtJZCgpKTsKKysjZWxzZQogICAgdnRrSWRU eXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlKiBwdHMgPSAwOwotKyAgdnRrSWRUeXBlUHRyIHB0 cyA9IDA7CisgICB2dGtJZFR5cGUqIHB0cyA9IDA7CiAgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15 VnRrSUQsIG5wdHMsIHB0cyk7CiAgICBncmlkLT5SZW1vdmVSZWZlcmVuY2VUb0NlbGwocHRzWzBd LCBteVZ0a0lEKTsKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsvL0ZJWE1FOiB2dGs5Ci0r I2Vsc2UKICAgIHB0c1swXSA9IG5vZGUtPmdldFZ0a0lkKCk7CiArI2VuZGlmCiAgICBub2RlLT5B ZGRJbnZlcnNlRWxlbWVudCh0aGlzKSwKICAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElk XS0+c2V0TXlNb2RpZmllZCgpOwogIH0KIGRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNt ZXNoL3NyYy9TTURTL1NNRFNfVnRrVm9sdW1lLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVz aC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVtZS5jcHAKLWluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZi IDEwMDY0NAoraW5kZXggMDE1ZWRmNzVmZDIuLjE5ZWJkMDc0NmM4IDEwMDY0NAogLS0tIHNyYy8z cmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVtZS5jcHAKICsrKyBzcmMv M3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtWb2x1bWUuY3BwCi1AQCAtMTM0 LDcgKzEzNCw3IEBAIGJvb2wgU01EU19WdGtWb2x1bWU6OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNf TWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzCitAQCAtMTMzLDYgKzEzMywxOSBA QCB2b2lkIFNNRFNfVnRrVm9sdW1lOjppbml0UG9seShjb25zdCBzdGQ6OnZlY3Rvcjx2dGtJZFR5 cGU+JiBub2RlSWRzLAorIGJvb2wgU01EU19WdGtWb2x1bWU6OkNoYW5nZU5vZGVzKGNvbnN0IFNN RFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQogIHsKICAgIHZ0a1Vuc3Ry dWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdy aWQoKTsKKysjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKKysgIHZ0a05ldzx2dGtJZExpc3Q+IGNl bGxQb2ludHM7CisrICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIGNlbGxQb2ludHMuR2V0 UG9pbnRlcigpKTsKKysgIGlmIChuYk5vZGVzICE9IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRz KCkpCisrICAgIHsKKysgICAgICBNRVNTQUdFKCJDaGFuZ2VOb2RlcyBwcm9ibGVtOiBub3QgdGhl IHNhbWUgbnVtYmVyIG9mIG5vZGVzICIgPDwgY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKSA8 PCAiIC0+ICIgPDwgbmJOb2Rlcyk7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrICBm b3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKKysgICAgeworKyAgICAgIGNlbGxQb2lu dHMtPlNldElkKGksIG5vZGVzW2ldLT5nZXRWdGtJZCgpKTsKKysgICAgfQorKyNlbHNlCiAgICB2 dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUqIHB0cyA9IDA7Ci0rICB2dGtJZFR5cGVQ dHIgcHRzID0gMDsKKyAgIHZ0a0lkVHlwZSogcHRzID0gMDsKICAgIGdyaWQtPkdldENlbGxQb2lu dHMobXlWdGtJRCwgbnB0cywgcHRzKTsKLSAgIGlmIChuYk5vZGVzICE9IG5wdHMpCi0gICAgIHsK LUBAIC0xNDMsNyArMTQzLDExIEBAIGJvb2wgU01EU19WdGtWb2x1bWU6OkNoYW5nZU5vZGVzKGNv bnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzCi0gICAgIH0KLSAg IGZvciAoaW50IGkgPSAwOyBpIDwgbmJOb2RlczsgaSsrKQorQEAgLTE0NSw2ICsxNTgsNyBAQCBi b29sIFNNRFNfVnRrVm9sdW1lOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rl c1tdLCBjb25zdCBpbnQgbmJOb2RlcwogICAgICB7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1Yy Ci0rLy9GSVhNRTogdnRrOQotKyNlbHNlCiAgICAgICAgcHRzW2ldID0gbm9kZXNbaV0tPmdldFZ0 a0lkKCk7Ci0rI2VuZGlmCiAgICAgIH0KKysjZW5kaWYKICAgIFNNRFNfTWVzaDo6X21lc2hMaXN0 W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgpOwogICAgcmV0dXJuIHRydWU7Ci1AQCAtMjA3LDcg KzIxMSw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJGYWNlcygpIGNvbnN0CisgfQorQEAgLTIw Nyw3ICsyMjEsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6Ok5iRmFjZXMoKSBjb25zdAogICAgICBj YXNlIFZUS19QT0xZSEVEUk9OOgogICAgICAgIHsKICAgICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMg PSAwOwpAQCAtNjAxLDcgKzY2Miw3IEBAIGluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEwMDY0 NAogICAgICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0 SWRzKTsKICAgICAgICAgIG5iRmFjZXMgPSBuRmFjZXM7CiAgICAgICAgICBicmVhazsKLUBAIC0y MzYsNyArMjQwLDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYk5vZGVzKCkgY29uc3QKK0BAIC0y MzYsNyArMjUwLDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYk5vZGVzKCkgY29uc3QKICAgIGVs c2UKICAgICAgewogICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwpAQCAtNjEwLDcgKzY3MSw3 IEBAIGluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEwMDY0NAogICAgICAgIGdyaWQtPkdldEZh Y2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7CiAgICAgICAgaW50IGlkID0g MDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5GYWNlczsgaSsrKQotQEAgLTI3Niw3ICsy ODAsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6Ok5iRWRnZXMoKSBjb25zdAorQEAgLTI3Niw3ICsy OTAsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6Ok5iRWRnZXMoKSBjb25zdAogICAgICBjYXNlIFZU S19QT0xZSEVEUk9OOgogICAgICAgIHsKICAgICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwpA QCAtNjE5LDcgKzY4MCw3IEBAIGluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEwMDY0NAogICAg ICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsK ICAgICAgICAgIG5iRWRnZXMgPSAwOwogICAgICAgICAgaW50IGlkID0gMDsKLUBAIC0zMTIsNyAr MzE2LDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYkZhY2VOb2Rlcyhjb25zdCBpbnQgZmFjZV9p bmQpIGNvbnN0CitAQCAtMzEyLDcgKzMyNiw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJGYWNl Tm9kZXMoY29uc3QgaW50IGZhY2VfaW5kKSBjb25zdAogICAgaWYgKGFWdGtUeXBlID09IFZUS19Q T0xZSEVEUk9OKQogICAgICB7CiAgICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CkBAIC02Mjgs NyArNjg5LDcgQEAgaW5kZXggMDE1ZWRmNzVmLi5kYTJmNzNmZmIgMTAwNjQ0CiAgICAgICAgZ3Jp ZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKICAgICAgICBp bnQgaWQgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1AQCAt MzQyLDcgKzM0Niw3IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNfVnRrVm9sdW1lOjpHZXRG YWNlTm9kZShjb25zdCBpbnQgZmFjZV9pbmQsIGNvbnN0IGludCBuCitAQCAtMzQyLDcgKzM1Niw3 IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNfVnRrVm9sdW1lOjpHZXRGYWNlTm9kZShjb25z dCBpbnQgZmFjZV9pbmQsIGNvbnN0IGludCBuCiAgICBpZiAoYVZ0a1R5cGUgPT0gVlRLX1BPTFlI RURST04pCiAgICAgIHsKICAgICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsKQEAgLTYzNyw3ICs2 OTgsNyBAQCBpbmRleCAwMTVlZGY3NWYuLmRhMmY3M2ZmYiAxMDA2NDQKICAgICAgICBncmlkLT5H ZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOwogICAgICAgIGludCBp ZCA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC0zNzIs NyArMzc2LDcgQEAgc3RkOjp2ZWN0b3I8aW50PiBTTURTX1Z0a1ZvbHVtZTo6R2V0UXVhbnRpdGll cygpIGNvbnN0CitAQCAtMzcyLDcgKzM4Niw3IEBAIHN0ZDo6dmVjdG9yPGludD4gU01EU19WdGtW b2x1bWU6OkdldFF1YW50aXRpZXMoKSBjb25zdAogICAgaWYgKGFWdGtUeXBlID09IFZUS19QT0xZ SEVEUk9OKQogICAgICB7CiAgICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CkBAIC02NDYsNyAr NzA3LDcgQEAgaW5kZXggMDE1ZWRmNzVmLi5kYTJmNzNmZmIgMTAwNjQ0CiAgICAgICAgZ3JpZC0+ R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKICAgICAgICBpbnQg aWQgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1AQCAtNDMw LDcgKzQzNCw3IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNfVnRrVm9sdW1lOjpHZXROb2Rl KGNvbnN0IGludCBpbmQpIGNvbnN0CitAQCAtNDMwLDcgKzQ0NCw3IEBAIGNvbnN0IFNNRFNfTWVz aE5vZGUqIFNNRFNfVnRrVm9sdW1lOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0CiAgICBp ZiAoIGFWdGtUeXBlID09IFZUS19QT0xZSEVEUk9OKQogICAgewogICAgICB2dGtJZFR5cGUgbkZh Y2VzID0gMDsKQEAgLTY1NSw3ICs3MTYsNyBAQCBpbmRleCAwMTVlZGY3NWYuLmRhMmY3M2ZmYiAx MDA2NDQKICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0 SWRzKTsKICAgICAgaW50IGlkID0gMCwgbmJQb2ludHMgPSAwOwogICAgICBmb3IgKGludCBpID0g MDsgaSA8IG5GYWNlczsgaSsrKQotQEAgLTQ0Myw3ICs0NDcsOCBAQCBjb25zdCBTTURTX01lc2hO b2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZShjb25zdCBpbnQgaW5kKSBjb25zdAorQEAgLTQ0 Myw3ICs0NTcsOCBAQCBjb25zdCBTTURTX01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9k ZShjb25zdCBpbnQgaW5kKSBjb25zdAogICAgICB9CiAgICAgIHJldHVybiAwOwogICAgfQpAQCAt NjY1LDcgKzcyNiw3IEBAIGluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEwMDY0NAogICAgZ3Jp ZC0+R2V0Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7CiAgICBjb25zdCBz dGQ6OnZlY3RvcjxpbnQ+JiBpbnRlcmxhY2UgPSBTTURTX01lc2hDZWxsOjpmcm9tVnRrT3JkZXIo IFZUS0NlbGxUeXBlKCBhVnRrVHlwZSApKTsKICAgIHJldHVybiBTTURTX01lc2g6Ol9tZXNoTGlz dFtteU1lc2hJZF0tPkZpbmROb2RlVnRrKCBwdHNbIGludGVybGFjZS5lbXB0eSgpID8gaW5kIDog aW50ZXJsYWNlW2luZF1dICk7Ci1AQCAtNDYwLDcgKzQ2NSw3IEBAIGludCBTTURTX1Z0a1ZvbHVt ZTo6R2V0Tm9kZUluZGV4KCBjb25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QKK0BAIC00 NjAsNyArNDc1LDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpHZXROb2RlSW5kZXgoIGNvbnN0IFNN RFNfTWVzaE5vZGUqIG5vZGUgKSBjb25zdAogICAgaWYgKCBhVnRrVHlwZSA9PSBWVEtfUE9MWUhF RFJPTikKICAgIHsKICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CkBAIC02NzQsNyArNzM1LDcg QEAgaW5kZXggMDE1ZWRmNzVmLi5kYTJmNzNmZmIgMTAwNjQ0CiAgICAgIGdyaWQtPkdldEZhY2VT dHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7CiAgICAgIGludCBpZCA9IDA7CiAg ICAgIGZvciAoaW50IGlGID0gMDsgaUYgPCBuRmFjZXM7IGlGKyspCi1AQCAtNDczLDcgKzQ3OCw4 IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZUluZGV4KCBjb25zdCBTTURTX01lc2hOb2Rl KiBub2RlICkgY29uc3QKK0BAIC00NzMsNyArNDg4LDggQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpH ZXROb2RlSW5kZXgoIGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUgKSBjb25zdAogICAgICB9CiAg ICAgIHJldHVybiAtMTsKICAgIH0KQEAgLTY4NCw3ICs3NDUsNyBAQCBpbmRleCAwMTVlZGY3NWYu LmRhMmY3M2ZmYiAxMDA2NDQKICAgIGdyaWQtPkdldENlbGxQb2ludHMoIHRoaXMtPm15VnRrSUQs IG5wdHMsIHB0cyApOwogICAgZm9yICggdnRrSWRUeXBlIGkgPSAwOyBpIDwgbnB0czsgKytpICkK ICAgICAgaWYgKCBwdHNbaV0gPT0gbm9kZS0+Z2V0VnRrSWQoKSApCi1AQCAtNTM0LDcgKzU0MCw3 IEBAIGJvb2wgU01EU19WdGtWb2x1bWU6OklzTWVkaXVtTm9kZShjb25zdCBTTURTX01lc2hOb2Rl KiBub2RlKSBjb25zdAorQEAgLTUzNCw3ICs1NTAsNyBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpJ c01lZGl1bU5vZGUoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKICAgICAgICByZXR1 cm4gZmFsc2U7CiAgICB9CiAgICB2dGtJZFR5cGUgbnB0cyA9IDA7CkBAIC02OTQsMTAgKzc1NSwx MCBAQCBpbmRleCAwMTVlZGY3NWYuLmRhMmY3M2ZmYiAxMDA2NDQKICAgIHZ0a0lkVHlwZSBub2Rl SWQgPSBub2RlLT5nZXRWdGtJZCgpOwogICAgZm9yIChpbnQgcmFuayA9IDA7IHJhbmsgPCBucHRz OyByYW5rKyspCiBkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01FU0gv U01FU0hfTWVzaEVkaXRvci5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRVNI L1NNRVNIX01lc2hFZGl0b3IuY3BwCi1pbmRleCBhNzQyNzAyZmYuLjFmZjRkNWVlZiAxMDA2NDQK K2luZGV4IGZjZDA0NGIwMGYyLi5mNTRjMjRmODYxOCAxMDA2NDQKIC0tLSBzcmMvM3JkUGFydHkv c2Fsb21lc21lc2gvc3JjL1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3BwCiArKysgc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcAotQEAgLTExMzQz LDcgKzExMzQzLDcgQEAgYm9vbCBTTUVTSF9NZXNoRWRpdG9yOjpEb3VibGVOb2Rlc09uR3JvdXBC b3VuZGFyaWVzKCBjb25zdCBzdGQ6OnZlY3RvcjxUSURTb3J0ZWQKK0BAIC0xMTM0OCw3ICsxMTM0 OCw3IEBAIGJvb2wgU01FU0hfTWVzaEVkaXRvcjo6RG91YmxlTm9kZXNPbkdyb3VwQm91bmRhcmll cyggY29uc3Qgc3RkOjp2ZWN0b3I8VElEU29ydGVkCiAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgaW50IG9sZElkID0gKml0bjsKICAgICAgICAgICAgICAgIC8vTUVTU0FHRSgiICAgICBu b2RlICIgPDwgb2xkSWQpOwpAQCAtNzA2LDcgKzc2Nyw3IEBAIGluZGV4IGE3NDI3MDJmZi4uMWZm NGQ1ZWVmIDEwMDY0NAogICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGwubmNlbGxzOyBp KyspCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpbnQgdnRrSWQgPSBs LmNlbGxzW2ldOwotQEAgLTExNTIyLDcgKzExNTIyLDcgQEAgYm9vbCBTTUVTSF9NZXNoRWRpdG9y OjpEb3VibGVOb2Rlc09uR3JvdXBCb3VuZGFyaWVzKCBjb25zdCBzdGQ6OnZlY3RvcjxUSURTb3J0 ZWQKK0BAIC0xMTUyNyw3ICsxMTUyNyw3IEBAIGJvb2wgU01FU0hfTWVzaEVkaXRvcjo6RG91Ymxl Tm9kZXNPbkdyb3VwQm91bmRhcmllcyggY29uc3Qgc3RkOjp2ZWN0b3I8VElEU29ydGVkCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9NRVNTQUdFKCIgIGRvbWFp biAiIDw8IGlkb20gPDwgIiB2b2x1bWUgIiA8PCBlbGVtLT5HZXRJRCgpKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWVzWzNdOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ0a0lkVHlwZSBucHRzID0gMDsK QEAgLTcxNSw3ICs3NzYsNyBAQCBpbmRleCBhNzQyNzAyZmYuLjFmZjRkNWVlZiAxMDA2NDQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLT5HZXRDZWxsUG9p bnRzKHZ0a1ZvbElkc1tpdm9sXSwgbnB0cywgcHRzKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTTURTX1Z0a1ZvbHVtZTo6Z3Jhdml0eUNlbnRlcihncmlkLCBw dHMsIG5wdHMsIHZhbHVlcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGlkID09MCkKLUBAIC0xMTcwMyw3ICsxMTcwMyw3IEBAIGJvb2wgU01FU0hfTWVz aEVkaXRvcjo6RG91YmxlTm9kZXNPbkdyb3VwQm91bmRhcmllcyggY29uc3Qgc3RkOjp2ZWN0b3I8 VElEU29ydGVkCitAQCAtMTE3MDgsNyArMTE3MDgsNyBAQCBib29sIFNNRVNIX01lc2hFZGl0b3I6 OkRvdWJsZU5vZGVzT25Hcm91cEJvdW5kYXJpZXMoIGNvbnN0IHN0ZDo6dmVjdG9yPFRJRFNvcnRl ZAogICAgICAgICAgewogICAgICAgICAgICBpbnQgb2xkSWQgPSBpdG5vZC0+Zmlyc3Q7CiAgICAg ICAgICAgIC8vTUVTU0FHRSgiICAgICBub2RlICIgPDwgb2xkSWQpOwpAQCAtNzI0LDcgKzc4NSw3 IEBAIGluZGV4IGE3NDI3MDJmZi4uMWZmNGQ1ZWVmIDEwMDY0NAogICAgICAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IGwubmNlbGxzOyBpKyspCiAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgaW50IHZ0a0lkID0gbC5jZWxsc1tpXTsKLUBAIC0xMjE2MCw3ICsxMjE2MCw3IEBAIHZvaWQg U01FU0hfTWVzaEVkaXRvcjo6Q3JlYXRlSG9sZVNraW4oZG91YmxlIHJhZGl1cywKK0BAIC0xMjE2 NSw3ICsxMjE2NSw3IEBAIHZvaWQgU01FU0hfTWVzaEVkaXRvcjo6Q3JlYXRlSG9sZVNraW4oZG91 YmxlIHJhZGl1cywKICAgICAgICAgICAgTUVTU0FHRSgidm9sdW1lIHRvIGNoZWNrLCAgdnRrSWQg IiA8PCB2dGtJZCA8PCAiIHNtZHNJZCAiIDw8IG1lc2hEUy0+ZnJvbVZ0a1RvU21kcyh2dGtJZCkp OwogICAgICAgICAgICBib29sIHZvbEluc2lkZSA9IGZhbHNlOwogICAgICAgICAgICB2dGtJZFR5 cGUgbnB0cyA9IDA7CkBAIC03MzMsMjggKzc5NCwzIEBAIGluZGV4IGE3NDI3MDJmZi4uMWZmNGQ1 ZWVmIDEwMDY0NAogICAgICAgICAgICBncmlkLT5HZXRDZWxsUG9pbnRzKHZ0a0lkLCBucHRzLCBw dHMpOwogICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bnB0czsgaSsrKQogICAgICAgICAgICAg IHsKLWRpZmYgLS1naXQgc3JjL01vZC9GZW0vR3VpL1ZpZXdQcm92aWRlckZlbVBvc3RPYmplY3Qu Y3BwIGIvc3JjL01vZC9GZW0vR3VpL1ZpZXdQcm92aWRlckZlbVBvc3RPYmplY3QuY3BwCi1pbmRl eCBkZGUyYmQ4MjQuLjNhY2ZlYWQ2NSAxMDA2NDQKLS0tLSBzcmMvTW9kL0ZlbS9HdWkvVmlld1By b3ZpZGVyRmVtUG9zdE9iamVjdC5jcHAKLSsrKyBzcmMvTW9kL0ZlbS9HdWkvVmlld1Byb3ZpZGVy RmVtUG9zdE9iamVjdC5jcHAKLUBAIC01Niw2ICs1NiwxMSBAQAotIA0KLSB1c2luZyBuYW1lc3Bh Y2UgRmVtR3VpOw0KLSANCi0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyDQotK3R5cGVkZWYgY29u c3QgdnRrSWRUeXBlKiB2dGtJZFR5cGVQdHI7DQotKyNlbHNlDQotK3R5cGVkZWYgdnRrSWRUeXBl KiB2dGtJZFR5cGVQdHI7DQotKyNlbmRpZg0KLSANCi0gUFJPUEVSVFlfU09VUkNFKEZlbUd1aTo6 Vmlld1Byb3ZpZGVyRmVtUG9zdE9iamVjdCwgR3VpOjpWaWV3UHJvdmlkZXJEb2N1bWVudE9iamVj dCkNCi0gDQotQEAgLTMxNiw3ICszMjEsNyBAQCB2b2lkIFZpZXdQcm92aWRlckZlbVBvc3RPYmpl Y3Q6OnVwZGF0ZTNEKCkgewotICAgICB2dGtEYXRhQXJyYXkgKnRjb29yZHMgPSBOVUxMOw0KLSAg ICAgdnRrQ2VsbEFycmF5ICpjZWxsczsNCi0gICAgIHZ0a0lkVHlwZSBucHRzID0gMDsNCi0tICAg IHZ0a0lkVHlwZSAqaW5keCA9IDA7DQotKyAgICB2dGtJZFR5cGVQdHIgaW5keCA9IDA7DQotIA0K LSAgICAgcG9pbnRzID0gcGQtPkdldFBvaW50cygpOw0KLSAgICAgcG50RGF0YSA9IHBkLT5HZXRQ b2ludERhdGEoKTsNCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTEtcHl0 aG9uLXdhcm5pbmcucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTEtcHl0aG9uLXdh cm5pbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3NmM4YjFjNjU0Yi4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1MS1weXRob24td2Fy bmluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLWRpZmYgLS1naXQgc3Jj L01vZC9GZW0vZmVtaW5vdXQvaW1wb3J0RmVuaWNzTWVzaC5weSBzcmMvTW9kL0ZlbS9mZW1pbm91 dC9pbXBvcnRGZW5pY3NNZXNoLnB5Ci1pbmRleCAxYmI0MGRlLi5hMGI1NDg0IDEwMDY0NAotLS0t IHNyYy9Nb2QvRmVtL2ZlbWlub3V0L2ltcG9ydEZlbmljc01lc2gucHkKLSsrKyBzcmMvTW9kL0Zl bS9mZW1pbm91dC9pbXBvcnRGZW5pY3NNZXNoLnB5Ci1AQCAtMTU0LDcgKzE1NCw3IEBAIGRlZiBl eHBvcnQob2JqZWN0c2xpc3QsIGZpbGVTdHJpbmcpOgotICAgICAgICAgICAgIEZyZWVDQUQuQ29u c29sZS5QcmludFdhcm5pbmcoIlRyaTYgLT4gVHJpMywgVGV0MTAgLT4gVGV0NCwgZXRjLlxuIikK LSAgICAgICAgICAgICB3cml0ZUZlbmljc1hNTC53cml0ZV9mZW5pY3NfbWVzaF94bWwob2JqLCBm aWxlU3RyaW5nKQotICAgICAgICAgZWxpZiBmaWxlRXh0ZW5zaW9uLmxvd2VyKCkgPT0gJy54ZG1m JzoKLS0gICAgICAgICAgICBpZiBpbXBvcnRUb29sc0ZlbS5nZXRfRmVtTWVzaE9iamVjdE1lc2hH cm91cHMob2JqKSBpcyBub3QgKCk6Ci0rICAgICAgICAgICAgaWYgaW1wb3J0VG9vbHNGZW0uZ2V0 X0ZlbU1lc2hPYmplY3RNZXNoR3JvdXBzKG9iaik6Ci0gICAgICAgICAgICAgICAgICMgaWYgdGhl cmUgYXJlIGdyb3VwcyBmb3VuZCwgbWFrZSB0YXNrIHBhbmVsIGF2YWlsYWJsZQotICAgICAgICAg ICAgICAgICBwYW5lbCA9IFdyaXRlWERNRlRhc2tQYW5lbChvYmosIGZpbGVTdHJpbmcpCi0gICAg ICAgICAgICAgICAgIEZyZWVDQURHdWkuQ29udHJvbC5zaG93RGlhbG9nKHBhbmVsKQotZGlmZiAt LWdpdCBzcmMvTW9kL0ZlbS9mZW1pbm91dC93cml0ZUZlbmljc1hETUYucHkgc3JjL01vZC9GZW0v ZmVtaW5vdXQvd3JpdGVGZW5pY3NYRE1GLnB5Ci1pbmRleCA5ZTdmMDFiLi41YTkzODIzIDEwMDY0 NAotLS0tIHNyYy9Nb2QvRmVtL2ZlbWlub3V0L3dyaXRlRmVuaWNzWERNRi5weQotKysrIHNyYy9N b2QvRmVtL2ZlbWlub3V0L3dyaXRlRmVuaWNzWERNRi5weQotQEAgLTI1OCw3ICsyNTgsNyBAQCBk ZWYgd3JpdGVfZmVuaWNzX21lc2hfeGRtZihmZW1fbWVzaF9vYmosIG91dHB1dGZpbGUsIGdyb3Vw X3ZhbHVlc19kaWN0PXt9LCBlbmNvZAotICAgICBmZW1fbWVzaCA9IGZlbV9tZXNoX29iai5GZW1N ZXNoCi0gICAgIGdtc2hncm91cHMgPSBnZXRfRmVtTWVzaE9iamVjdE1lc2hHcm91cHMoZmVtX21l c2hfb2JqKQotIAotLSAgICBpZiBnbXNoZ3JvdXBzIGlzIG5vdCAoKToKLSsgICAgaWYgZ21zaGdy b3VwczoKLSAgICAgICAgIHByaW50KCdmb3VuZCBtZXNoIGdyb3VwcycpCi0gCi0gICAgIGZvciBn IGluIGdtc2hncm91cHM6Ci1kaWZmIC0tZ2l0IHNyYy9Nb2QvUGFydERlc2lnbi9XaXphcmRTaGFm dC9TaGFmdC5weSBzcmMvTW9kL1BhcnREZXNpZ24vV2l6YXJkU2hhZnQvU2hhZnQucHkKLWluZGV4 IGM1MTliOTcuLjhjMjBlYjQgMTAwNjQ0Ci0tLS0gc3JjL01vZC9QYXJ0RGVzaWduL1dpemFyZFNo YWZ0L1NoYWZ0LnB5Ci0rKysgc3JjL01vZC9QYXJ0RGVzaWduL1dpemFyZFNoYWZ0L1NoYWZ0LnB5 Ci1AQCAtODgsNyArODgsNyBAQCBjbGFzcyBTaGFmdDoKLSAgICAgICAgICMgV2UgZG9uJ3QgY2Fs bCBlcXVpbGlicml1bSgpIGhlcmUgYmVjYXVzZSB0aGUgbmV3IHNlZ21lbnQgaGFzIG5vIGNvbnN0 cmFpbnRzIGRlZmluZWQgeWV0Ci0gICAgICAgICAjIEZpeCBmYWNlIHJlZmVyZW5jZSBvZiBmaXhl ZCBzZWdtZW50IGlmIGl0IGlzIHRoZSBsYXN0IG9uZQotICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo MSwgIGxlbihzZWxmLnNlZ21lbnRzKSk6Ci0tICAgICAgICAgICAgaWYgc2VsZi5zZWdtZW50c1tp XS5jb25zdHJhaW50VHlwZSBpcyBub3QgIkZpeGVkIjoKLSsgICAgICAgICAgICBpZiBzZWxmLnNl Z21lbnRzW2ldLmNvbnN0cmFpbnRUeXBlICE9ICJGaXhlZCI6Ci0gICAgICAgICAgICAgICAgIGNv bnRpbnVlCi0gICAgICAgICAgICAgaWYgaSA9PSBsZW4oc2VsZi5zZWdtZW50cykgLSAxOgotICAg ICAgICAgICAgICAgICBzZWxmLnNlZ21lbnRzW2luZGV4XS5jb25zdHJhaW50LlJlZmVyZW5jZXMg PSBbKCBzZWxmLmZlYXR1cmUuZmVhdHVyZSwgICJGYWNlJXUiICUgKDIgKiAoaW5kZXgrMSkgKyAx KSApXQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUyLWNtYWtlLXZ0azku cGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY1YzZkNDAwMDQ5NwotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1Mi1jbWFrZS12dGs5LnBhdGNo CkBAIC0wLDAgKzEsNTMgQEAKKy0tLSBjTWFrZS9GcmVlQ0FEX0hlbHBlcnMvU2V0dXBTYWxvbWVT TUVTSC5jbWFrZQkyMDIwLTExLTI2IDE1OjU5OjI3LjAwMDAwMDAwMCArMDEwMAorKysrIGNNYWtl L0ZyZWVDQURfSGVscGVycy9TZXR1cFNhbG9tZVNNRVNILmNtYWtlCTIwMjAtMTEtMjYgMjM6MDk6 MTIuNzc4MjYyNjM2ICswMTAwCitAQCAtMTEsNiArMTEsOCBAQAorICAgICAgICAgc2V0KFNNRVNI X1ZFUlNJT05fVFdFQUsgMCkKKyAKKyAgICAgICAgICNpZiB3ZSB1c2Ugc21lc2ggd2UgZGVmaW5p dGVseSBhbHNvIG5lZWQgdnRrLCBubyBtYXR0ZXIgb2YgZXh0ZXJuYWwgb3IgaW50ZXJuYWwgc21l c2gKKysgICAgICAgIGZpbmRfcGFja2FnZShWVEsgUkVRVUlSRUQgTk9fTU9EVUxFKQorKyAgICAg ICAgaWYoJHtWVEtfTUFKT1JfVkVSU0lPTn0gTEVTUyA5KQorICAgICAgICAgc2V0IChWVEtfQ09N UE9ORU5UUworICAgICAgICAgICAgIHZ0a0NvbW1vbkNvcmUKKyAgICAgICAgICAgICB2dGtDb21t b25EYXRhTW9kZWwKK0BAIC0yMywxOCArMjUsMzcgQEAKKyAgICAgICAgICAgICB2dGtGaWx0ZXJz U291cmNlcworICAgICAgICAgICAgIHZ0a0ZpbHRlcnNHZW9tZXRyeQorICAgICAgICAgKQorLQor LSAgICAgICAgIyBjaGVjayB3aGljaCBtb2R1bGVzIGFyZSBhdmFpbGFibGUKKy0gICAgICAgIGlm KFVOSVggT1IgV0lOMzIpCisgICAgICAgICAgICAgZmluZF9wYWNrYWdlKFZUSyBDT01QT05FTlRT IHZ0a0NvbW1vbkNvcmUgUkVRVUlSRUQgTk9fTU9EVUxFKQorICAgICAgICAgICAgIGxpc3QoQVBQ RU5EIFZUS19DT01QT05FTlRTIHZ0a0lPTVBJUGFyYWxsZWwgdnRrUGFyYWxsZWxNUEkgdnRraGRm NSB2dGtGaWx0ZXJzUGFyYWxsZWxESVkyIHZ0a1JlbmRlcmluZ0NvcmUgdnRrSW50ZXJhY3Rpb25T dHlsZSB2dGtSZW5kZXJpbmdGcmVlVHlwZSB2dGtSZW5kZXJpbmdPcGVuR0wyKQorKyAgICAgICAg ZWxzZSgpCisrICAgICAgICAgICAgIyBWVEsgOSBjaGFuZ2VkIGl0cyBjb21wb25lbnQgbmFtZXMK KysgICAgICAgICAgICBzZXQgKFZUS19DT01QT05FTlRTCisrICAgICAgICAgICAgICAgIENvbW1v bkNvcmUKKysgICAgICAgICAgICAgICAgQ29tbW9uRGF0YU1vZGVsCisrICAgICAgICAgICAgICAg IEZpbHRlcnNWZXJkaWN0CisrICAgICAgICAgICAgICAgIElPWE1MCisrICAgICAgICAgICAgICAg IEZpbHRlcnNDb3JlCisrICAgICAgICAgICAgICAgIEZpbHRlcnNHZW5lcmFsCisrICAgICAgICAg ICAgICAgIElPTGVnYWN5CisrICAgICAgICAgICAgICAgIEZpbHRlcnNFeHRyYWN0aW9uCisrICAg ICAgICAgICAgICAgIEZpbHRlcnNTb3VyY2VzCisrICAgICAgICAgICAgICAgIEZpbHRlcnNHZW9t ZXRyeQorKyAgICAgICAgICAgICkKKysgICAgICAgICAgICBmaW5kX3BhY2thZ2UoVlRLIENPTVBP TkVOVFMgQ29tbW9uQ29yZSBSRVFVSVJFRCBOT19NT0RVTEUpCisrICAgICAgICAgICAgbGlzdChB UFBFTkQgVlRLX0NPTVBPTkVOVFMgSU9NUElQYXJhbGxlbCBQYXJhbGxlbE1QSSBoZGY1IEZpbHRl cnNQYXJhbGxlbERJWTIgUmVuZGVyaW5nQ29yZSBJbnRlcmFjdGlvblN0eWxlIFJlbmRlcmluZ0Zy ZWVUeXBlIFJlbmRlcmluZ09wZW5HTDIpCisrICAgICAgICBlbmRpZigpCisrCisrICAgICAgICAj IGNoZWNrIHdoaWNoIG1vZHVsZXMgYXJlIGF2YWlsYWJsZQorICAgICAgICAgICAgIGZvcmVhY2go X21vZHVsZSAke1ZUS19DT01QT05FTlRTfSkKKysgICAgICAgICAgICBpZigke1ZUS19NQUpPUl9W RVJTSU9OfSBMRVNTIDkpCisgICAgICAgICAgICAgICAgIGxpc3QgKEZJTkQgVlRLX01PRFVMRVNf RU5BQkxFRCAke19tb2R1bGV9IF9pbmRleCkKKysgICAgICAgICAgICBlbHNlKCkKKysgICAgICAg ICAgICAgICAgbGlzdCAoRklORCBWVEtfQVZBSUxBQkxFX0NPTVBPTkVOVFMgJHtfbW9kdWxlfSBf aW5kZXgpCisrICAgICAgICAgICAgZW5kaWYoKQorICAgICAgICAgICAgICAgICBpZiAoJHtfaW5k ZXh9IEdSRUFURVIgLTEpCisgICAgICAgICAgICAgICAgICAgICBsaXN0KEFQUEVORCBBVkFJTEFC TEVfVlRLX0NPTVBPTkVOVFMgJHtfbW9kdWxlfSkKKyAgICAgICAgICAgICAgICAgZW5kaWYoKQor ICAgICAgICAgICAgIGVuZGZvcmVhY2goKQorLSAgICAgICAgZW5kaWYoKQorIAorICAgICAgICAg IyBkb24ndCBjaGVjayBWRVJTSU9OIDYgYXMgdGhpcyB3b3VsZCBleGNsdWRlIFZFUlNJT04gNwor ICAgICAgICAgaWYoQVZBSUxBQkxFX1ZUS19DT01QT05FTlRTKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9mcmVlY2FkL3RlbXBsYXRlIGIvc3JjcGtncy9mcmVlY2FkL3RlbXBsYXRlCmluZGV4IDZmZTc0 OWI1M2Q3MC4uNmUwNTU2Yzc1YzhiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9mcmVlY2FkL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDE5IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdmcmVlY2FkJworIyBYWFggcnVudGltZTogaGVscCAoRjEpIGRvZXMg bm90IHdvcmsKIHBrZ25hbWU9ZnJlZWNhZAotdmVyc2lvbj0wLjE4LjQKLXJldmlzaW9uPTEwCit2 ZXJzaW9uPTAuMTkuMQorcmV2aXNpb249MQogd3Jrc3JjPSJGcmVlQ0FELSR7dmVyc2lvbn0iCiBi dWlsZF9zdHlsZT1jbWFrZQogCi0jIENNQUtFX0lOU1RBTExfTElCRElSIGJ5IGRlZmF1bHQgZG9l c24ndCB1c2UgUFJFRklYLCBzbyB3ZSBzZXQgaXQgbWFudWFsbHkKIF9pbnN0X3ByZWZpeD0vdXNy L2xpYi8ke3BrZ25hbWV9CiBjb25maWd1cmVfYXJncz0iCisgLURQWVRIT05fRVhFQ1VUQUJMRT0v dXNyL2Jpbi9weXRob24zCiAgLURCVUlMRF9RVDU9T04KKyAtREJVSUxEX0ZFTV9ORVRHRU49T0ZG CiAgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke19pbnN0X3ByZWZpeH0KLSAtRENNQUtFX0lOU1RB TExfTElCRElSPSR7X2luc3RfcHJlZml4fS9saWIKICAtRENNQUtFX0lOU1RBTExfREFUQVJPT1RE SVI9L3Vzci9zaGFyZQorIC1EQ01BS0VfSU5TVEFMTF9EQVRBRElSPS91c3Ivc2hhcmUvJHtwa2du YW1lfQogIC1ETUVERklMRV9JTkNMVURFX0RJUlM9L3Vzci9pbmNsdWRlL21lZAogIC1EUFlTSURF MlJDQ0JJTkFSWT0vdXNyL2Jpbi9yY2MtcXQ1CiAgLURQWVNJREUyVUlDQklOQVJZPS91c3IvYmlu L3VpYy1xdDUiCkBAIC0yMSwyMCArMjMsMjAgQEAgbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwg Ym9vc3QtZGV2ZWwgbGlieGVyY2VzLWMtZGV2ZWwgemxpYi1kZXZlbCBvY2N0LWRldmVsCiAgY29p bjMtZGV2ZWwgbGlic2hpYm9rZW4yLWRldmVsIGxpYnNwbmF2LWRldmVsIHB5c2lkZTItdG9vbHMK ICBsaWJsejQtZGV2ZWwgbGlicHlzaWRlMi1weXRob24zLWRldmVsIHB5dGhvbjMtbWF0cGxvdGxp YiBuZXRjZGYtZGV2ZWwKICBqc29uY3BwLWRldmVsIHF0NS1kZXZlbCBxdDUtc3ZnLWRldmVsIHF0 NS10b29scy1kZXZlbCBxdDUtd2Via2l0LWRldmVsCi0gcXQ1LXgxMWV4dHJhcy1kZXZlbCBjb2lu My1kb2MgZ2xldy1kZXZlbCIKKyBxdDUteG1scGF0dGVybnMtZGV2ZWwgY29pbjMtZG9jIGdsZXct ZGV2ZWwiCiAKLSMgRnJlZUNBRCBoZWxwOiBxdDUvYXNzaXN0YW50IHdpdGggZGF0YXMgaW4gU1FM aXRlIGZvcm1hdAorIyBGcmVlQ0FEIGhlbHA6IHF0NS9hc3Npc3RhbnQgd2l0aCBTUUxpdGUgc3Rv cmFnZQogZGVwZW5kcz0icHl0aG9uMy1tYXRwbG90bGliIHB5dGhvbjMtcHlzaWRlMiBxdDUtcGx1 Z2luLXNxbGl0ZSBweXRob24zLXBpdnkiCiAKIHB5dGhvbl92ZXJzaW9uPTMKLXB5Y29tcGlsZV9k aXJzPSJ1c3IvbGliLyR7cGtnbmFtZX0vTW9kIHVzci9saWIvJHtwa2duYW1lfS9kYXRhL01vZCIK K3B5Y29tcGlsZV9kaXJzPSJ1c3IvbGliLyR7cGtnbmFtZX0vTW9kIgogCiBzaG9ydF9kZXNjPSJH ZW5lcmFsIHB1cnBvc2UgM0QgQ0FEIG1vZGVsZXIiCiBtYWludGFpbmVyPSJ5b3BpdG8gPHBpZXJy ZS5ib3VyZ2luQGZyZWUuZnI+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9mcmVlY2Fkd2ViLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9GcmVlQ0FEL0ZyZWVDQUQvYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTRl MGNjZTQ0N2IzMWI4OTg5YTAwY2Y2OGM0OWFlMDEyY2U4ZTU1NDZhNTZjNmUwODc0ZmJkOGY3ZGRl ZGZmZDIKK2NoZWNrc3VtPTVlYzAwMDNjMThkZjIwNGY3YjQ0OWQ0YWMwYTgyZjk0NWI0MTYxM2Ew MjY0MTI3ZGUzZWYxNmY2YjJlZmE2MGYKIAogaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gbXVz bCBdOyB0aGVuCiAJbWFrZWRlcGVuZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCkBAIC00MywxMyAr NDUsMTMgQEAgZmkKIAogcG9zdF9leHRyYWN0KCkgewogCSMgUmVwb3J0IGV4YWN0IG1pbm9yIHZl cnNpb24KLQlzZWQgLWkgLWUgInMsXlwoc2V0KFBBQ0tBR0VfVkVSU0lPTl9NSU5PUlwpIC4qLFwx IFwiJHt2ZXJzaW9uIyoufVwiKSwiIENNYWtlTGlzdHMudHh0CisJdnNlZCAtaSAtZSAicyxeXChz ZXQoUEFDS0FHRV9WRVJTSU9OX01JTk9SXCkgLiosXDEgXCIke3ZlcnNpb24jKi59XCIpLCIgQ01h a2VMaXN0cy50eHQKIAogCSMgU3ViV0NSZXYucHkgKFNDTSBjaGVjaykgcmVwb3J0cyAidW5rbm93 biIgZm9yIHRoZXNlIGZpZWxkcwotCXNlZCAtaSAtZSAicyxcJHtQQUNLQUdFX1dDUkVGfSwke3Jl dmlzaW9ufV92b2lkbGludXgsIiBcCi0JICAgICAgIC1lICJzLFwke1BBQ0tBR0VfV0NEQVRFfSwo ZnJvbSByZWxlYXNlKSwiIFwKLQkgICAgICAgLWUgInMsXCR7UEFDS0FHRV9XQ1VSTH0sVm9pZExp bnV4IHBhY2thZ2UgJHtwa2duYW1lfSwiIFwKLQkgICAgICAgc3JjL0J1aWxkL1ZlcnNpb24uaC5j bWFrZQorCXZzZWQgLWUgInMsXCR7UEFDS0FHRV9XQ1JFRn0sJHtyZXZpc2lvbn1fdm9pZGxpbnV4 LCIgXAorCSAgICAgLWUgInMsXCR7UEFDS0FHRV9XQ0RBVEV9LChmcm9tIHJlbGVhc2UpLCIgXAor CSAgICAgLWUgInMsXCR7UEFDS0FHRV9XQ1VSTH0sVm9pZExpbnV4IHBhY2thZ2UgJHtwa2duYW1l fSwiIFwKKwkgICAgIC1pIHNyYy9CdWlsZC9WZXJzaW9uLmguY21ha2UKIH0KIAogcG9zdF9pbnN0 YWxsKCkgewo= --===============6811844774842509062==--