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 27397 invoked from network); 9 Mar 2023 00:24:21 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 9 Mar 2023 00:24:21 -0000 Content-Type: multipart/mixed; boundary="===============4441772769424904107==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_virtuoso=3A_update_to_7=2E2=2E9?= To: ml@inbox.vuxu.org From: klarasm Reply-to: ml@inbox.vuxu.org Message-ID: Date: Thu, 09 Mar 2023 01:24:21 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============4441772769424904107== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGtsYXJhc20gYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2tsYXJhc20v dm9pZC1wYWNrYWdlcyB2aXJ0dW9zby11cGRhdGUKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQyNjY2Cgp2aXJ0dW9zbzogdXBkYXRlIHRvIDcuMi45CiMj IyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBS OiBzb21lIHRlc3RzIGFyZSBmYWlsaW5nDQoNClRoaXMgcGFja2FnZSBoYXMgc29tZSB3ZWlyZG5l c3MgaW4gdGhlIHRlc3Qgc3VpdGUuIEl0IGZhaWxzIHdoZW4gcnVuIGZyb20gYC4veGJwcy1zcmMg LUsgcGtnIHZpcnR1b3NvYCBidXQgc3VjY2VlZHMgaWYgSSBkbyBgLi94YnBzLXNyYyBjaHJvb3Rg IGFmdGVyd2FyZHMgYW5kOg0KYGBgDQptYWtlIGNsZWFuDQouL2F1dG9nZW4uc2gNCi4vY29uZmln dXJlDQptYWtlDQptYWtlIGNoZWNrDQpgYGANCg0KSSB0cmllZCByZXBsYWNpbmcgZG9fY29uZmln dXJlLCBkb19idWlsZCBhbmQgZG9fY2hlY2sgdG8gZG8gdGhlIHNhbWUgdGhpbmcgYnV0IGl0IHN0 aWxsIGZhaWxzLiBNYXliZSBJJ20gbWlzc2luZyBzb21lIGRlcGVuZGVuY2llcyBvciBzb21ldGhp bmcuDQoNCmB0Z3JhcGhxbGAgaXMgdGhlIG9ubHkgdGVzdCBmYWlsaW5nOiANClt0Z3JhcGhxbC5v dXRwdXQubG9nXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Zp bGVzLzEwOTI2NDM1L3RncmFwaHFsLm91dHB1dC5sb2cpDQoNCjwhLS0NCiMjIyMgTG9jYWwgYnVp bGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hp dGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNl IGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFy Y2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPgoKQSBwYXRjaCBmaWxl IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQy NjY2LnBhdGNoIGlzIGF0dGFjaGVk --===============4441772769424904107== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-virtuoso-update-42666.patch" RnJvbSBjYTBhMTZkZmE0Yzc1Mjc5M2IzZmZkY2FlZTMxZDM0MzI1Yzc1ZGEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLbGFyYSBNb2RpbiA8a2xhcmFzbW9kaW5AZ21haWwuY29tPgpE YXRlOiBXZWQsIDEgRmViIDIwMjMgMTY6NDI6NDcgKzAxMDAKU3ViamVjdDogW1BBVENIIDEvMl0g dmlydHVvc286IHVwZGF0ZSB0byA3LjIuOAoKdGVzdCBzdWl0ZSB3YXMgZmFpbGluZyBvbiByZXZi dW1wCgotIHJlbW92ZSBwYXRjaGVzIHRoYXQgbm8gbG9uZ2VyIGFwcGx5Ci0gYWRkIHBhdGNoIHRo YXQgcmVtb3ZlcyBnaXQgcmV2aXNpb24gZnJvbSBncmFwaHFsCi0gZGlzYWJsZSBzdGF0aWMgbGli cmFyaWVzIGFzIHdlJ3JlIHJlbW92aW5nIHRoZW0gYWZ0ZXIgaW5zdGFsbCBhbnl3YXkKLSBhZGQg d2hpY2ggdG8gaG9zdG1ha2VkZXBlbmRzCi0gYWRkIG1pc3NpbmcgY2hlY2tkZXBlbmRzCi0tLQog Li4uL3ZpcnR1b3NvL3BhdGNoZXMvYWx3YXlzLWllZWUtZmxvYXRzLnBhdGNoIHwgICA0NiAtCiBz cmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvZml4LWdyYXBocWwucGF0Y2ggICAgfCAgIDExICsKIC4u Li92aXJ0dW9zby9wYXRjaGVzL2ZpeC11dGY4LWJpdHRlc3QucGF0Y2ggICB8ICAgMTUgLQogc3Jj cGtncy92aXJ0dW9zby9wYXRjaGVzL211c2wtcGFnZV9zaXplLnBhdGNoIHwgICAzNCAtCiAuLi4v cmVtb3ZlLW9wZW5zc2wtdmVyc2lvbi1jaGVjay5wYXRjaCAgICAgICAgfCAgIDQ4IC0KIC4uLi92 aXJ0dW9zby9wYXRjaGVzL3NzbC1jb25uZWN0LXN0YXRlLnBhdGNoICB8ICAgMTUgLQogc3JjcGtn cy92aXJ0dW9zby9wYXRjaGVzL3NzbDEuMS5wYXRjaCAgICAgICAgIHwgMTQwMCAtLS0tLS0tLS0t LS0tLS0tLQogc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL3NzbDEuMV9tb3JlLnBhdGNoICAgIHwg ICAyMCAtCiBzcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvdXNlLW1rc3RlbXAucGF0Y2ggICAgfCAg IDE4IC0KIHNyY3BrZ3MvdmlydHVvc28vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAg MTYgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE2MDUgZGVsZXRpb25z KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL2Fsd2F5cy1p ZWVlLWZsb2F0cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmlydHVvc28vcGF0 Y2hlcy9maXgtZ3JhcGhxbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmlydHVv c28vcGF0Y2hlcy9maXgtdXRmOC1iaXR0ZXN0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy92aXJ0dW9zby9wYXRjaGVzL211c2wtcGFnZV9zaXplLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL3JlbW92ZS1vcGVuc3NsLXZlcnNpb24tY2hl Y2sucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvc3Ns LWNvbm5lY3Qtc3RhdGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3ZpcnR1b3Nv L3BhdGNoZXMvc3NsMS4xLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy92aXJ0dW9z by9wYXRjaGVzL3NzbDEuMV9tb3JlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy92 aXJ0dW9zby9wYXRjaGVzL3VzZS1ta3N0ZW1wLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92 aXJ0dW9zby9wYXRjaGVzL2Fsd2F5cy1pZWVlLWZsb2F0cy5wYXRjaCBiL3NyY3BrZ3MvdmlydHVv c28vcGF0Y2hlcy9hbHdheXMtaWVlZS1mbG9hdHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDY5YjUwMzQyMTRmNy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvdmlydHVv c28vcGF0Y2hlcy9hbHdheXMtaWVlZS1mbG9hdHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0 NiArMCwwIEBACi1Gcm9tIGJjOGU5ODkwZGU4Yzk4NjZlNmUxZjQ5YzgzNTVlYmVlOTE1NTc5ZTQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgotRGF0ZTogV2VkLCAyOSBKYW4gMjAyMCAxMjo1MDo0NiArMDEwMAotU3ViamVjdDogW1BBVENI IDEvMl0gYWx3YXlzIHVzZSBJRUVFIGZsb2F0cwotCi1XZSBkb24ndCBidWlsZCBvbiBhbnkgcGxh dGZvcm1zIHdoZXJlIHRoaXMgaXMgbm90IHRoZSBjYXNlLgotCi1GaXhlcyBwbGF0Zm9ybXMgZm9y IHdoaWNoIHRoaXMgaXMgbm90IGNoZWNrZWQuCi0tLS0KLSBsaWJzcmMvRGsvRGttYXJzaGFsLmMg fCAyMCArLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMTkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgbGlic3JjL0RrL0RrbWFyc2hhbC5jIGxp YnNyYy9Eay9Ea21hcnNoYWwuYwotaW5kZXggZGExNWEyMS4uYjJiNmM3MSAxMDA2NDQKLS0tLSBh L2xpYnNyYy9Eay9Ea21hcnNoYWwuYwotKysrIGIvbGlic3JjL0RrL0RrbWFyc2hhbC5jCi1AQCAt MzEsMjUgKzMxLDcgQEAKLSAjIGluY2x1ZGUgPG5ldGluZXQvaW4uaD4JCQkgLyogZm9yIG50b2hs LCBodG9ubCAqLwotICNlbmRpZgotIAotLSNpZiBkZWZpbmVkIChpMzg2KSB8fCBcCi0tICAgIGRl ZmluZWQgKF9XSU42NCkgfHwgXAotLSAgICBkZWZpbmVkIChfTV9JWDg2KSB8fCBcCi0tICAgIGRl ZmluZWQgKF9NX0FMUEhBKSB8fCBcCi0tICAgIGRlZmluZWQgKG1jNjgwMDApIHx8IFwKLS0gICAg ZGVmaW5lZCAoc3BhcmMpIHx8IFwKLS0gICAgZGVmaW5lZCAoX194ODZfNjQpIHx8IFwKLS0gICAg ZGVmaW5lZCAoX19hbHBoYSkgfHwgXAotLSAgICBkZWZpbmVkIChfX3Bvd2VycGMpIHx8IFwKLS0g ICAgZGVmaW5lZCAobWlwcykgfHwgXAotLSAgICBkZWZpbmVkIChfX09TMl9fKSB8fCBcCi0tICAg IGRlZmluZWQgKF9JQk1SMikKLS0jIGRlZmluZSBfSUVFRV9GTE9BVFMKLS0jZWxpZiBkZWZpbmVk IChPUExfU09VUkNFKQotLSMgaW5jbHVkZSA8bGlicnBjLmg+Ci0tI2Vsc2UKLS0jIGluY2x1ZGUg PHJwYy90eXBlcy5oPgotLSMgaW5jbHVkZSA8cnBjL3hkci5oPgotLSNlbmRpZgotKyNkZWZpbmUg X0lFRUVfRkxPQVRTCi0gCi0gbWFjcm9fY2hhcl9mdW5jIHJlYWR0YWJsZVsyNTZdOwotIHNlc193 cml0ZV9mdW5jIHdyaXRldGFibGVbMjU2XTsKLS0tIAotMi4yNC4wCi0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvdmlydHVvc28vcGF0Y2hlcy9maXgtZ3JhcGhxbC5wYXRjaCBiL3NyY3BrZ3MvdmlydHVv c28vcGF0Y2hlcy9maXgtZ3JhcGhxbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmYwNGIzZTQ1YzQ3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvdmly dHVvc28vcGF0Y2hlcy9maXgtZ3JhcGhxbC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9i aW5zcmMvZ3JhcGhxbC9ncmFwaHFsX3BsdWdpbi5jCTIwMjMtMDItMDEgMjE6MTQ6MTguMTQ4NDc4 NTAwICswMTAwCisrKysgYi9iaW5zcmMvZ3JhcGhxbC9ncmFwaHFsX3BsdWdpbi5jCTIwMjItMTAt MTkgMTQ6NDQ6MTQuMDAwMDAwMDAwICswMjAwCitAQCAtMTczLDcgKzE3Myw3IEBACisgCisgc3Rh dGljIHVuaXRfdmVyc2lvbl90IHBsdWdpbl9ncmFwaHFsX3ZlcnNpb24gPSB7CisgICAiR3JhcGhR TC9TUEFSUUwgQnJpZGdlIiwJLyohPCBUaXRsZSBvZiB1bml0LCBmaWxsZWQgYnkgdW5pdCAqLwor LSAgR1FMX0JSSURHRV9WRVIgIiAoIiBHSVRfSEVBRF9TVFIgIikiLAkvKiE8IFZlcnNpb24gbnVt YmVyLCBmaWxsZWQgYnkgdW5pdCAqLworKyAgR1FMX0JSSURHRV9WRVIsCQkvKiE8IFZlcnNpb24g bnVtYmVyLCBmaWxsZWQgYnkgdW5pdCAqLworICAgIk9wZW5MaW5rIFNvZnR3YXJlIiwJCS8qITwg UGx1Z2luJ3MgZGV2ZWxvcGVyLCBmaWxsZWQgYnkgdW5pdCAqLworICAgIlN1cHBvcnQgZnVuY3Rp b25zIGZvciBHcmFwaFFML1NQQVJRTCBCcmlkZ2UiLAkvKiE8IEFueSBhZGRpdGlvbmFsIGluZm8s IGZpbGxlZCBieSB1bml0ICovCisgICAwLAkJCQkvKiE8IEVycm9yIG1lc3NhZ2UsIGZpbGxlZCBi eSB1bml0IGxvYWRlciAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL2Zp eC11dGY4LWJpdHRlc3QucGF0Y2ggYi9zcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvZml4LXV0Zjgt Yml0dGVzdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVlODRhNjdlZjNj Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL2ZpeC11dGY4LWJp dHRlc3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1Tb3VyY2U6IEBwdWxs bW9sbAotVXBzdHJlYW06IG5vCi1SZWFzb246IGV4cHJlc3Npb24gcmVxdWlyZXMgYmluYXJ5IEFO RCwgbm90IGxvZ2ljYWwKLQotLS0tIGEvbGlic3JjL3V0aWwvcGNyZWxpYi9wY3JlX3N0dWR5LmMJ MjAxOC0wOC0xNiAwMTowNjoyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL2xpYnNyYy91dGlsL3Bj cmVsaWIvcGNyZV9zdHVkeS5jCTIwMjAtMDEtMjcgMTU6NDQ6NTcuNzE1ODIxMzU1ICswMTAwCi1A QCAtNDMyLDcgKzQzMiw3IEBACi0gICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAxNjsgYysrKSBz dGFydF9iaXRzW2NdIHw9IHRjb2RlW2NdOwotICAgICAgICAgICBmb3IgKGMgPSAxMjg7IGMgPCAy NTY7IGMrKykKLSAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgaWYgKCh0Y29kZVtjLzhdICYm ICgxIDw8IChjJjcpKSkgIT0gMCkKLSsgICAgICAgICAgICBpZiAoKHRjb2RlW2MvOF0gJiAoMSA8 PCAoYyY3KSkpICE9IDApCi0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICBpbnQgZCA9 IChjID4+IDYpIHwgMHhjMDsgICAgICAgICAgICAvKiBTZXQgYml0IGZvciB0aGlzIHN0YXJ0ZXIg Ki8KLSAgICAgICAgICAgICAgIHN0YXJ0X2JpdHNbZC84XSB8PSAoMSA8PCAoZCY3KSk7ICAgIC8q IGFuZCB0aGVuIHNraXAgb24gdG8gdGhlICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZpcnR1b3Nv L3BhdGNoZXMvbXVzbC1wYWdlX3NpemUucGF0Y2ggYi9zcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMv bXVzbC1wYWdlX3NpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczYTlh YmRkMGYzOS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvdmlydHVvc28vcGF0Y2hlcy9tdXNs LXBhZ2Vfc2l6ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gMTI1 NjY5ODIxZDk1ZmY5ODliZjk0MTYxYjhlMjQ5N2JmY2E5ZDBhYiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiBXZWQsIDI5IEph biAyMDIwIDEyOjU0OjE0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBVc2UgbW9yZSBwb3J0 YWJsZSBwYWdlIHNpemUgY2hlY2sKLQotVGhpcyBmaXhlcyBtdXNsIGJ1aWxkcy4KLS0tLQotIGxp YnNyYy9Eay90bHNmLmggfCAzICsrLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBsaWJzcmMvRGsvdGxzZi5oIGxpYnNyYy9Eay90 bHNmLmgKLWluZGV4IGRkY2U0NzguLmE5Njg3ZjQgMTAwNjQ0Ci0tLS0gYS9saWJzcmMvRGsvdGxz Zi5oCi0rKysgYi9saWJzcmMvRGsvdGxzZi5oCi1AQCAtMjAsNiArMjAsNyBAQAotICNkZWZpbmUg X1RMU0ZfSF8KLSAKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0rI2luY2x1ZGUgPHVuaXN0ZC5o PgotIAotIGV4dGVybiBzaXplX3QgaW5pdF9tZW1vcnlfcG9vbChzaXplX3QsIHZvaWQgKik7Ci0g ZXh0ZXJuIHNpemVfdCBnZXRfdXNlZF9zaXplKHZvaWQgKik7Ci1AQCAtMTU5LDcgKzE2MCw3IEBA IGV4dGVybiB2b2lkIHRsc2ZfYmFzZV9mcmVlICh2b2lkICogYywgc2l6ZV90IHN6KTsKLSAKLSAj ZGVmaW5lIERFRkFVTFRfQVJFQV9TSVpFICgxMDI0KjEwKQotIAotLSNkZWZpbmUgUEFHRV9TSVpF IChnZXRwYWdlc2l6ZSgpKQotKyNkZWZpbmUgUEFHRV9TSVpFICgoaW50KXN5c2NvbmYoX1NDX1BB R0VTSVpFKSkKLSAKLSAjaWZuZGVmIFdJTjMyCi0gI2lmZGVmIFVTRV9QUklOVEYKLS0tIAotMi4y NC4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmlydHVvc28vcGF0Y2hlcy9yZW1vdmUtb3BlbnNz bC12ZXJzaW9uLWNoZWNrLnBhdGNoIGIvc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL3JlbW92ZS1v cGVuc3NsLXZlcnNpb24tY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDMwOTRmYmI2YWI2NC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvdmlydHVvc28vcGF0Y2hl cy9yZW1vdmUtb3BlbnNzbC12ZXJzaW9uLWNoZWNrLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NDggKzAsMCBAQAotU291cmNlOiBAcHVsbG1vbGwKLVVwc3RyZWFtOiBubwotUmVhc29uOiBFbmFi bGUgc3ViZGlyLW9iamVjdHMgYW5kIHN0cmlwIG9wZW5zc2wgdmVyc2lvbiBjaGVjayB3aGljaCBm YWlscyBmb3IgbGlicmVzc2wKLQotLS0tIGEvY29uZmlndXJlLmFjCTIwMTgtMDgtMTYgMDE6MDY6 MjEuMDAwMDAwMDAwICswMjAwCi0rKysgYi9jb25maWd1cmUuYWMJMjAyMC0wMS0yNyAxNTowMjoz Ni45NDY5MjI2NjMgKzAxMDAKLUBAIC01OCw3ICs1OCw3IEBACi0gZG5sCUFNX0lOSVRfQVVUT01B S0UoWzEuOF0pCi0gZG5sCUFNX0lOSVRfQVVUT01BS0UoWzEuOSB0YXItdXN0YXJdKQotIGRubAot LUFNX0lOSVRfQVVUT01BS0UoWzEuOSB0YXItdXN0YXJdKQotK0FNX0lOSVRfQVVUT01BS0UoWzEu OSB0YXItdXN0YXIgc3ViZGlyLW9iamVjdHNdKQotIAotIEFNX01BSU5UQUlORVJfTU9ERQotIAot QEAgLTg2NywzMiArODY3LDYgQEAKLSAJOzsKLSBlc2FjCi0gCi0tQUNfTVNHX0NIRUNLSU5HKFtP cGVuU1NMIHZlcnNpb25dKQotLUFDX1RSWV9DT01QSUxFKFsKLS0jaW5jbHVkZSA8b3BlbnNzbC9v cGVuc3Nsdi5oPgotLV0sIFsKLS0jaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MDA5MDgw MWZMCi0tI2Vycm9yIE9wZW5TU0wgdmVyc2lvbiB0b28gb2xkIAotLSNlbmRpZgotLSAgICBdLFsK LS0gICAgICBBQ19NU0dfUkVTVUxUKFs+PSAwLjkuOGVdKQotLSAgICBdLFsKLS0gICAgICBBQ19N U0dfRVJST1IoW09wZW5TU0wgdmVyc2lvbiAwLjkuOGUgb3IgZ3JlYXRlciBpcyByZXF1aXJlZC5d KQotLSAgICBdKQotLQotLUFDX01TR19DSEVDS0lORyhbT3BlblNTTCB2ZXJzaW9uXSkKLS1BQ19U UllfQ09NUElMRShbCi0tI2luY2x1ZGUgPG9wZW5zc2wvb3BlbnNzbHYuaD4KLS1dLFsKLS0jaWYg T1BFTlNTTF9WRVJTSU9OX05VTUJFUiA+PSAweDEwMTAwMDBmTAotLSNlcnJvciBPcGVuU1NMIHZl cnNpb24gdG9vIG5ldwotLSNlbmRpZgotLSAgICBdLFsKLS0gICAgICBBQ19NU0dfUkVTVUxUKFs8 IDEuMS4wXSkKLS0gICAgXSxbCi0tICAgICAgQUNfTVNHX0VSUk9SKFtPcGVuU1NMIHZlcnNpb24g MS4xLjAgb3IgZ3JlYXRlciBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC5dKQotLSAgICBdKQot LQotIEFDX01TR19DSEVDS0lORyhbdXNhYmlsaXR5IG9mIHRoZSBPcGVuU1NMIGhlYWRlciBmaWxl cyBhbmQgbGlicmFyeSBpbiAke29wZW5zc2xfZGlyfV0pCi0gQUNfVFJZX1JVTihbCi0gI2luY2x1 ZGUgPG9wZW5zc2wvcnNhLmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMv c3NsLWNvbm5lY3Qtc3RhdGUucGF0Y2ggYi9zcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvc3NsLWNv bm5lY3Qtc3RhdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5NTY2ZTNi NmRmZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvdmlydHVvc28vcGF0Y2hlcy9zc2wtY29u bmVjdC1zdGF0ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVNvdXJjZTog QHB1bGxtb2xsCi1VcHN0cmVhbTogbm8KLVJlYXNvbjogVXNlIHRoZSBwcm9wZXIgaW50ZXJmYWNl IG9mIGxpYnJlc3NsIHdoaWNoIGRvZXMgbm90IGV4cG9zZSB0aGUgaW50ZXJuYWwgc3RydWN0dXJl IG9mIFNTTAotCi0tLS0gYS9saWJzcmMvV2kvaHR0cC5jCTIwMTgtMDgtMTYgMDE6MDY6MjEuMDAw MDAwMDAwICswMjAwCi0rKysgYi9saWJzcmMvV2kvaHR0cC5jCTIwMjAtMDEtMjcgMTU6MDk6NTMu Mjg0OTA1MjY1ICswMTAwCi1AQCAtOTk0OSw3ICs5OTQ5LDcgQEAKLSAJICBjbGlfc3NsX2dldF9l cnJvcl9zdHJpbmcgKGVycl9idWYsIHNpemVvZiAoZXJyX2J1ZikpOwotIAkgIHNxbHJfbmV3X2Vy cm9yICgiNDIwMDAiLCAiLi4wMDIiLCAiU1NMX2RvX2hhbmRzaGFrZSBmYWlsZWQgJXMiLCBlcnJf YnVmKTsKLSAJfQotLSAgICAgIHNzbC0+c3RhdGUgPSBTU0xfU1RfQUNDRVBUOwotKyAgICAgIFNT TF9zZXRfYWNjZXB0X3N0YXRlIChzc2wpOwotICAgICAgIHdoaWxlIChTU0xfcmVuZWdvdGlhdGVf cGVuZGluZyAoc3NsKSAmJiBjdHIgPCAxMDAwKQotIAl7Ci0gCSAgdGltZW91dF90IHRvID0geyAw LCAxMDAwIH07CmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvc3NsMS4xLnBh dGNoIGIvc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL3NzbDEuMS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggOTg4NzQ5OTQ2NDgwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy92aXJ0dW9zby9wYXRjaGVzL3NzbDEuMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0MDAg KzAsMCBAQAotRGVzY3JpcHRpb246IEZpeCBGVEJGUyB3aXRoIG9wZW5zc2wgMS4xCi1BdXRob3I6 IFNlYmFzdGlhbiBBbmRyemVqIFNpZXdpb3IgPHNlYmFzdGlhbkBicmVha3BvaW50LmNjPgotQnVn LURlYmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvODI4NTk0Ci1Gb3J3YXJkZWQ6IGh0dHBz Oi8vZ2l0aHViLmNvbS9vcGVubGluay92aXJ0dW9zby1vcGVuc291cmNlL3B1bGwvNTgzCi1MYXN0 LVVwZGF0ZTogTW8gMTEuIEZlYiAxMzo1MDoxNyBDRVQgMjAxOSAoYnkgQW5kcmVhcyBUaWxsZSA8 dGlsbGVAZGViaWFuLm9yZz4pCi0KLS0tLQotCi1Gcm9tIDgyMzA5MmNjY2JkOGUyYWI5YmZhZDZj M2QzZGY3OTFhN2ZmYTc2ZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZWJhc3Rp YW4gQW5kcnplaiBTaWV3aW9yIDxzZWJhc3RpYW5AYnJlYWtwb2ludC5jYz4KLURhdGU6IE1vbiwg NSBTZXAgMjAxNiAxMDo0OTo1NCArMDAwMAotU3ViamVjdDogW1BBVENIXSB2aXJ0dW9zby1vcGVu c291cmNlOiBidWlsZCBhZ2FpbnN0IG9wZW5zc2wgMS4xLjAKLQotU2lnbmVkLW9mZi1ieTogU2Vi YXN0aWFuIEFuZHJ6ZWogU2lld2lvciA8c2ViYXN0aWFuQGJyZWFrcG9pbnQuY2M+Ci0tLS0KLSBs aWJzcmMvRGsvRGtlcm5lbC5jICAgICAgfCAgIDYgKy0KLSBsaWJzcmMvV2kvYmlmX2NyeXB0by5j ICAgfCAxMjAgKysrKysrKysrKy0tLS0tLS0tCi0gbGlic3JjL1dpL2h0dHAuYyAgICAgICAgIHwg ICAyICstCi0gbGlic3JjL1dpL3htbGVuYy5jICAgICAgIHwgMzE5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gbGlic3JjL1dpL3htbGVuYy5oICAgICAg IHwgMTkzICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0KLSBsaWJzcmMvV2kveG1sZW5jX2Fs Z29zLmMgfCAxMzIgKysrKysrKysrKystLS0tLS0tLS0KLSBsaWJzcmMvdXRpbC9zc2xlbmdpbmUu YyAgfCAgIDYgKy0KLSA3IGZpbGVzIGNoYW5nZWQsIDUyNCBpbnNlcnRpb25zKCspLCAyNTQgZGVs ZXRpb25zKC0pCi0KLS0tLSBhL2xpYnNyYy9XaS9iaWZfY3J5cHRvLmMKLSsrKyBiL2xpYnNyYy9X aS9iaWZfY3J5cHRvLmMKLUBAIC0xODEsMjEgKzE4MSwyNiBAQCBib3hfaG1hYyAoY2FkZHJfdCBi b3gsIGNhZGRyX3Qga2V5LCBpbnQKLSAgIHVuc2lnbmVkIGNoYXIgdGVtcFtFVlBfTUFYX01EX1NJ WkVdOwotICAgdW5zaWduZWQgaW50IHNpemUgPSAwOwotICAgY2FkZHJfdCByZXMgPSBOVUxMOwot LSAgSE1BQ19DVFggY3R4OwotKyAgSE1BQ19DVFggKmN0eDsKLSAgIGNvbnN0IEVWUF9NRCAqbWQg PSBFVlBfc2hhMSAoKTsKLSAKLSAgIGlmIChhbGcgPT0gMSkKLSAgICAgbWQgPSBFVlBfcmlwZW1k MTYwICgpOwotIAotLSAgSE1BQ19Jbml0ICgmY3R4LCBrZXksIGJveF9sZW5ndGggKGtleSkgLSBE Vl9TVFJJTkdQIChrZXkpID8gMSA6IDAsIG1kKTsKLS0gIGJveF9obWFjXzEgKGJveCwgJmN0eCk7 Ci0tICBITUFDX0ZpbmFsICgmY3R4LCB0ZW1wLCAmc2l6ZSk7Ci0rICBjdHggPSBITUFDX0NUWF9u ZXcoKTsKLSsgIGlmICghY3R4KQotKwkgIHJldHVybiByZXM7Ci0rCi0rICBITUFDX0luaXRfZXgg KGN0eCwga2V5LCBib3hfbGVuZ3RoIChrZXkpIC0gRFZfU1RSSU5HUCAoa2V5KSA/IDEgOiAwLCBt ZCwgTlVMTCk7Ci0rICBib3hfaG1hY18xIChib3gsIGN0eCk7Ci0rICBITUFDX0ZpbmFsIChjdHgs IHRlbXAsICZzaXplKTsKLSAgIGlmIChzaXplKQotICAgICB7Ci0gICAgICAgcmVzID0gZGtfYWxs b2NfYm94IChzaXplICsgMSwgRFZfU0hPUlRfU1RSSU5HKTsKLSAgICAgICBtZW1jcHkgKHJlcywg dGVtcCwgc2l6ZSk7Ci0gICAgICAgcmVzW3NpemVdID0gMDsKLSAgICAgfQotKyAgSE1BQ19DVFhf ZnJlZShjdHgpOwotICAgcmV0dXJuIHJlczsKLSB9Ci0gCi1AQCAtMzQ3LDE0ICszNTIsMTIgQEAg YXNuMV9wYXJzZV90b194bWwgKEJJTyAqIGJwLCB1bnNpZ25lZCBjaAotIAkgICAgewotIAkgICAg ICBpbnQgaWk7Ci0gCi0tCSAgICAgIG9wcCA9IG9wOwotLQkgICAgICBpaSA9IGQyaV9BU04xX0JP T0xFQU4gKE5VTEwsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSZvcHAsIGxlbiArIGhsKTsKLS0J ICAgICAgaWYgKGlpIDwgMCkKLSsJICAgICAgaWYgKGxlbiArIGhsIDwgMSkKLSAJCXsKLSAJCSAg aWYgKEJJT193cml0ZSAoYnAsICJCYWQgYm9vbGVhblxuIiwgMTIpKQotIAkJICAgIGdvdG8gZW5k OwotIAkJfQotLQkgICAgICBCSU9fcHJpbnRmIChicCwgIiVkIiwgaWkpOwotKwkgICAgICBCSU9f cHJpbnRmIChicCwgIiVkIiwgcFswXSk7Ci0gCSAgICB9Ci0gCSAgZWxzZSBpZiAodGFnID09IFZf QVNOMV9CTVBTVFJJTkcpCi0gCSAgICB7Ci1AQCAtNDE1LDcgKzQxOCw3IEBAIGFzbjFfcGFyc2Vf dG9feG1sIChCSU8gKiBicCwgdW5zaWduZWQgY2gKLSAJCX0KLSAJICAgICAgaWYgKG9zICE9IE5V TEwpCi0gCQl7Ci0tCQkgIE1fQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZSAob3MpOwotKwkJICBBU04x X1NUUklOR19mcmVlIChvcyk7Ci0gCQkgIG9zID0gTlVMTDsKLSAJCX0KLSAJICAgIH0KLUBAIC00 NDgsNyArNDUxLDcgQEAgYXNuMV9wYXJzZV90b194bWwgKEJJTyAqIGJwLCB1bnNpZ25lZCBjaAot IAkJICBpZiAoQklPX3dyaXRlIChicCwgIkJBRCBJTlRFR0VSIiwgMTEpIDw9IDApCi0gCQkgICAg Z290byBlbmQ7Ci0gCQl9Ci0tCSAgICAgIE1fQVNOMV9JTlRFR0VSX2ZyZWUgKGJzKTsKLSsJICAg ICAgQVNOMV9TVFJJTkdfZnJlZSAoYnMpOwotIAkgICAgfQotIAkgIGVsc2UgaWYgKHRhZyA9PSBW X0FTTjFfRU5VTUVSQVRFRCkKLSAJICAgIHsKLUBAIC00NzksNyArNDgyLDcgQEAgYXNuMV9wYXJz ZV90b194bWwgKEJJTyAqIGJwLCB1bnNpZ25lZCBjaAotIAkJICBpZiAoQklPX3dyaXRlIChicCwg IkJBRCBFTlVNRVJBVEVEIiwgMTEpIDw9IDApCi0gCQkgICAgZ290byBlbmQ7Ci0gCQl9Ci0tCSAg ICAgIE1fQVNOMV9FTlVNRVJBVEVEX2ZyZWUgKGJzKTsKLSsJICAgICAgQVNOMV9TVFJJTkdfZnJl ZSAoYnMpOwotIAkgICAgfQotIAkgIGVsc2UgaWYgKGxlbiA+IDAgJiYgZHVtcCkKLSAJICAgIHsK LUBAIC01MTUsNyArNTE4LDcgQEAgZW5kOgotICAgaWYgKG8gIT0gTlVMTCkKLSAgICAgQVNOMV9P QkpFQ1RfZnJlZSAobyk7Ci0gICBpZiAob3MgIT0gTlVMTCkKLS0gICAgTV9BU04xX09DVEVUX1NU UklOR19mcmVlIChvcyk7Ci0rICAgIEFTTjFfU1RSSU5HX2ZyZWUgKG9zKTsKLSAgICpwcCA9IHA7 Ci0gICByZXR1cm4gKHJldCk7Ci0gfQotQEAgLTcyMyw3ICs3MjYsNyBAQCBiaW9fdG9fc3Ryc2Vz IChCSU8gKiBvdXRfYmlvKQotICAgaW50IGxlbiA9IEJJT19nZXRfbWVtX2RhdGEgKG91dF9iaW8s ICZwdHIpOwotICAgaW50IHRvX3JlYWQgPSBsZW4sIHJlYWRlZCA9IDA7Ci0gCi0tICB0b19mcmVl ID0gKChCVUZfTUVNICopIG91dF9iaW8tPnB0ciktPmRhdGE7Ci0rICB0b19mcmVlID0gKChCVUZf TUVNICopIEJJT19nZXRfZGF0YShvdXRfYmlvKSktPmRhdGE7Ci0gICBCSU9fc2V0X2ZsYWdzIChv dXRfYmlvLCBCSU9fRkxBR1NfTUVNX1JET05MWSk7Ci0gICBDQVRDSF9XUklURV9GQUlMIChzZXMp Ci0gICAgIHsKLUBAIC03MzUsNyArNzM4LDcgQEAgYmlvX3RvX3N0cnNlcyAoQklPICogb3V0X2Jp bykKLSAgICAgICB9IHdoaWxlICh0b19yZWFkID4gMCk7Ci0gICAgIH0KLSAgIEVORF9XUklURV9G QUlMIChzZXMpOwotLSAgKChCVUZfTUVNICopIG91dF9iaW8tPnB0ciktPmRhdGEgPSB0b19mcmVl OwotKyAgKChCVUZfTUVNICopIEJJT19nZXRfZGF0YShvdXRfYmlvKSktPmRhdGEgPSB0b19mcmVl OwotICAgQklPX2NsZWFyX2ZsYWdzIChvdXRfYmlvLCBCSU9fRkxBR1NfTUVNX1JET05MWSk7Ci0g ICByZXR1cm4gc2VzOwotIH0KLUBAIC03NzAsNyArNzczLDcgQEAgYmlmX3NtaW1lX3ZlcmlmeSAo Y2FkZHJfdCAqIHFzdCwgY2FkZHJfdAotICAgaWYgKERWX1RZUEVfT0YgKG1zZykgPT0gRFZfU1RS SU5HX1NFU1NJT04pCi0gICAgIHsKLSAgICAgICBpbl9iaW8gPSBzdHJzZXNfdG9fYmlvICgoZGtf c2Vzc2lvbl90ICopIG1zZyk7Ci0tICAgICAgdG9fZnJlZSA9ICgoQlVGX01FTSAqKSBpbl9iaW8t PnB0ciktPmRhdGE7Ci0rICAgICAgdG9fZnJlZSA9ICgoQlVGX01FTSAqKSBCSU9fZ2V0X2RhdGEo aW5fYmlvKSktPmRhdGE7Ci0gICAgICAgQklPX3NldF9mbGFncyAoaW5fYmlvLCBCSU9fRkxBR1Nf TUVNX1JET05MWSk7Ci0gICAgIH0KLSAgIGVsc2UKLUBAIC03ODAsNyArNzgzLDcgQEAgYmlmX3Nt aW1lX3ZlcmlmeSAoY2FkZHJfdCAqIHFzdCwgY2FkZHJfdAotICAgICAgIHA3ID0gU01JTUVfcmVh ZF9QS0NTNyAoaW5fYmlvLCAmZGF0YV9iaW8pOwotICAgICAgIGlmICh0b19mcmVlKQotIAl7Ci0t CSAgKChCVUZfTUVNICopIGluX2Jpby0+cHRyKS0+ZGF0YSA9IHRvX2ZyZWU7Ci0rCSAgKChCVUZf TUVNICopIEJJT19nZXRfZGF0YShpbl9iaW8pKS0+ZGF0YSA9IHRvX2ZyZWU7Ci0gCSAgQklPX2Ns ZWFyX2ZsYWdzIChpbl9iaW8sIEJJT19GTEFHU19NRU1fUkRPTkxZKTsKLSAJfQotICAgICAgIEJJ T19mcmVlIChpbl9iaW8pOwotQEAgLTkyNCwxNiArOTI3LDIwIEBAIGJpZl9zbWltZV9zaWduIChj YWRkcl90ICogcXN0LCBjYWRkcl90ICoKLSAgICAgfQotIAotICAgY2VydHMgPSBza19YNTA5X25l d19udWxsICgpOwotLSAgaWYgKHN0b3JlICYmIHN0b3JlLT5vYmpzKQotKwotKyAgaWYgKHN0b3Jl ICYmIFg1MDlfU1RPUkVfZ2V0MF9vYmplY3RzKHN0b3JlKSkKLSAgICAgewotLSAgICAgIGZvciAo aW54ID0gMDsgaW54IDwgc2tfWDUwOV9PQkpFQ1RfbnVtIChzdG9yZS0+b2Jqcyk7IGlueCsrKQot KyAgICAgIFNUQUNLX09GKFg1MDlfT0JKRUNUKSAqc3RvcmVfb2JqcyA9IFg1MDlfU1RPUkVfZ2V0 MF9vYmplY3RzKHN0b3JlKTsKLSsKLSsgICAgICBmb3IgKGlueCA9IDA7IGlueCA8IHNrX1g1MDlf T0JKRUNUX251bSAoc3RvcmVfb2Jqcyk7IGlueCsrKQotIAl7Ci0tCSAgWDUwOV9PQkpFQ1QgKm9i aiA9IHNrX1g1MDlfT0JKRUNUX3ZhbHVlIChzdG9yZS0+b2JqcywgaW54KTsKLS0JICBpZiAob2Jq LT50eXBlID09IFg1MDlfTFVfWDUwOSkKLS0JICAgIHNrX1g1MDlfcHVzaCAoY2VydHMsIFg1MDlf ZHVwIChvYmotPmRhdGEueDUwOSkpOwotKwkgIFg1MDlfT0JKRUNUICpvYmogPSBza19YNTA5X09C SkVDVF92YWx1ZSAoc3RvcmVfb2JqcywgaW54KTsKLSsJICBpZiAoWDUwOV9PQkpFQ1RfZ2V0X3R5 cGUob2JqKSA9PSBYNTA5X0xVX1g1MDkpCi0rCSAgICBza19YNTA5X3B1c2ggKGNlcnRzLCBYNTA5 X2R1cCAoWDUwOV9PQkpFQ1RfZ2V0MF9YNTA5KG9iaikpKTsKLSAJfQotIAotICAgICB9Ci0rCi0g ICBpZiAoc3RvcmUpCi0gICAgIFg1MDlfU1RPUkVfZnJlZSAoc3RvcmUpOwotICAgaW5fYmlvID0g QklPX25ld19tZW1fYnVmIChtc2csIGJveF9sZW5ndGggKG1zZykgLSAxKTsKLUBAIC0xMDA1LDE1 ICsxMDEyLDE5IEBAIGJpZl9zbWltZV9lbmNyeXB0IChjYWRkcl90ICogcXN0LCBjYWRkcl8KLSAg ICAgc3Fscl9uZXdfZXJyb3IgKCI0MjAwMCIsICJDUjAwNiIsICJObyByZWNpcGllbnQgY2VydGlm aWNhdGVzIik7Ci0gCi0gICBjZXJ0cyA9IHNrX1g1MDlfbmV3X251bGwgKCk7Ci0tICBpZiAoc3Rv cmUgJiYgc3RvcmUtPm9ianMpCi0rCi0rICBpZiAoc3RvcmUgJiYgWDUwOV9TVE9SRV9nZXQwX29i amVjdHMoc3RvcmUpKQotICAgICB7Ci0tICAgICAgZm9yIChpbnggPSAwOyBpbnggPCBza19YNTA5 X09CSkVDVF9udW0gKHN0b3JlLT5vYmpzKTsgaW54KyspCi0rICAgICAgU1RBQ0tfT0YoWDUwOV9P QkpFQ1QpICpzdG9yZV9vYmpzID0gWDUwOV9TVE9SRV9nZXQwX29iamVjdHMoc3RvcmUpOwotKwot KyAgICAgIGZvciAoaW54ID0gMDsgaW54IDwgc2tfWDUwOV9PQkpFQ1RfbnVtIChzdG9yZV9vYmpz KTsgaW54KyspCi0gCXsKLS0JICBYNTA5X09CSkVDVCAqb2JqID0gc2tfWDUwOV9PQkpFQ1RfdmFs dWUgKHN0b3JlLT5vYmpzLCBpbngpOwotLQkgIGlmIChvYmotPnR5cGUgPT0gWDUwOV9MVV9YNTA5 KQotLQkgICAgc2tfWDUwOV9wdXNoIChjZXJ0cywgWDUwOV9kdXAgKG9iai0+ZGF0YS54NTA5KSk7 Ci0rCSAgWDUwOV9PQkpFQ1QgKm9iaiA9IHNrX1g1MDlfT0JKRUNUX3ZhbHVlIChzdG9yZV9vYmpz LCBpbngpOwotKwkgIGlmIChYNTA5X09CSkVDVF9nZXRfdHlwZShvYmopID09IFg1MDlfTFVfWDUw OSkKLSsJICAgIHNrX1g1MDlfcHVzaCAoY2VydHMsIFg1MDlfZHVwIChYNTA5X09CSkVDVF9nZXQw X1g1MDkob2JqKSkpOwotIAl9Ci0gICAgIH0KLSsKLSAgIGlmIChzdG9yZSkKLSAgICAgWDUwOV9T VE9SRV9mcmVlIChzdG9yZSk7Ci0gICBpbl9iaW8gPSBCSU9fbmV3X21lbV9idWYgKG1zZywgYm94 X2xlbmd0aCAobXNnKSAtIDEpOwotQEAgLTExODEsNyArMTE5Miw3IEBAIHg1MDlfY2VydGlmaWNh dGVfdmVyaWZ5X2NiIChpbnQgb2ssIFg1MDkKLSAgIGNoYXIgKm9wdHMgPSAoY2hhciAqKSBYNTA5 X1NUT1JFX0NUWF9nZXRfYXBwX2RhdGEgKGN0eCk7Ci0gICBpZiAoIW9rICYmIG9wdHMpCi0gICAg IHsKLS0gICAgICBzd2l0Y2ggKGN0eC0+ZXJyb3IpCi0rICAgICAgc3dpdGNoIChYNTA5X1NUT1JF X0NUWF9nZXRfZXJyb3IoY3R4KSkKLSAJewotIAljYXNlIFg1MDlfVl9FUlJfQ0VSVF9IQVNfRVhQ SVJFRDoKLSAJICBpZiAoc3Ryc3RyIChvcHRzLCAiZXhwaXJlZCIpKQotQEAgLTEyODcsNyArMTI5 OCw3IEBAIGJpZl94NTA5X2NlcnRpZmljYXRlX3ZlcmlmeSAoY2FkZHJfdCAqIHEKLSAgIGlmICgh aSkKLSAgICAgewotICAgICAgIGNvbnN0IGNoYXIgKmVycl9zdHI7Ci0tICAgICAgZXJyX3N0ciA9 IFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nIChjc2MtPmVycm9yKTsKLSsgICAgICBlcnJf c3RyID0gWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcgKFg1MDlfU1RPUkVfQ1RYX2dldF9l cnJvcihjc2MpKTsKLSAgICAgICAqZXJyX3JldCA9IHNydl9tYWtlX25ld19lcnJvciAoIjIyMDIz IiwgIkNSMDE1IiwgIlg1MDkgZXJyb3I6ICVzIiwgZXJyX3N0cik7Ci0gICAgIH0KLSAKLUBAIC0x MzA4LDIwICsxMzE5LDE2IEBAIGVycl9yZXQ6Ci0gI2RlZmluZSBWSVJUX0NFUlRfRVhUICIyLjE2 Ljg0MC4xLjExMTMuMSIKLSAKLSBzdGF0aWMgY2FkZHJfdAotLUJOX2JveCAoQklHTlVNICogeCkK LStCTl9ib3ggKGNvbnN0IEJJR05VTSAqeCkKLSB7Ci0gICBzaXplX3QgYnVmX2xlbiwgbjsKLSAg IGNhZGRyX3QgYnVmOwotICAgYnVmX2xlbiA9IChzaXplX3QpIEJOX251bV9ieXRlcyAoeCk7Ci0t ICBpZiAoYnVmX2xlbiA8PSBCTl9CWVRFUykKLS0gICAgYnVmID0gYm94X251bSAoKHVuc2lnbmVk IGxvbmcpIHgtPmRbMF0pOwotLSAgZWxzZQotLSAgICB7Ci0tICAgICAgYnVmID0gZGtfYWxsb2Nf Ym94IChidWZfbGVuLCBEVl9CSU4pOwotLSAgICAgIG4gPSBCTl9ibjJiaW4gKHgsICh1bnNpZ25l ZCBjaGFyICopIGJ1Zik7Ci0tICAgICAgaWYgKG4gIT0gYnVmX2xlbikKLS0JR1BGX1Q7Ci0tICAg IH0KLSsgIC8qIGRpZCBub3QgZmlndXJlIG91dCB3aGVyZSBidWYgaXMgZnJlZSgpZWQgKi8KLSsg IGJ1ZiA9IGRrX2FsbG9jX2JveCAoYnVmX2xlbiwgRFZfQklOKTsKLSsgIG4gPSBCTl9ibjJiaW4g KHgsICh1bnNpZ25lZCBjaGFyICopIGJ1Zik7Ci0rICBpZiAobiAhPSBidWZfbGVuKQotKwkgIEdQ Rl9UOwotICAgcmV0dXJuIGJ1ZjsKLSB9Ci0gCi1AQCAtMTQ5OCw3ICsxNTA1LDcgQEAgYmlmX2dl dF9jZXJ0aWZpY2F0ZV9pbmZvIChjYWRkcl90ICogcXN0LAotIAlpbnQgaTsKLSAJY2hhciB0bXBb MTAyNF07Ci0gCWNoYXIgKmV4dF9vaWQgPSAoY2hhciAqKSAoQk9YX0VMRU1FTlRTIChhcmdzKSA+ IDQgPyBiaWZfc3RyaW5nX2FyZyAocXN0LCBhcmdzLCA0LCAiZ2V0X2NlcnRpZmljYXRlX2luZm8i KSA6IFZJUlRfQ0VSVF9FWFQpOwotLQlTVEFDS19PRiAoWDUwOV9FWFRFTlNJT04pICogZXh0cyA9 IGNlcnQtPmNlcnRfaW5mby0+ZXh0ZW5zaW9uczsKLSsJY29uc3QgU1RBQ0tfT0YgKFg1MDlfRVhU RU5TSU9OKSAqIGV4dHMgPSBYNTA5X2dldDBfZXh0ZW5zaW9ucyhjZXJ0KTsKLSAJZm9yIChpID0g MDsgaSA8IHNrX1g1MDlfRVhURU5TSU9OX251bSAoZXh0cyk7IGkrKykKLSAJICB7Ci0gCSAgICBY NTA5X0VYVEVOU0lPTiAqZXggPSBza19YNTA5X0VYVEVOU0lPTl92YWx1ZSAoZXh0cywgaSk7Ci1A QCAtMTUxMCw3ICsxNTE3LDcgQEAgYmlmX2dldF9jZXJ0aWZpY2F0ZV9pbmZvIChjYWRkcl90ICog cXN0LAotIAkJY2hhciAqZGF0YV9wdHI7Ci0gCQlCSU8gKm1lbSA9IEJJT19uZXcgKEJJT19zX21l bSAoKSk7Ci0gCQlpZiAoIVg1MDlWM19FWFRfcHJpbnQgKG1lbSwgZXgsIDAsIDApKQotLQkJICBN X0FTTjFfT0NURVRfU1RSSU5HX3ByaW50IChtZW0sIGV4LT52YWx1ZSk7Ci0rCQkgIEFTTjFfU1RS SU5HX3ByaW50IChtZW0sIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4KSk7Ci0gCQlsZW4gPSBC SU9fZ2V0X21lbV9kYXRhIChtZW0sICZkYXRhX3B0cik7Ci0gCQlpZiAobGVuID4gMCAmJiBkYXRh X3B0cikKLSAJCSAgewotQEAgLTE1MzcsMTggKzE1NDQsMjMgQEAgYmlmX2dldF9jZXJ0aWZpY2F0 ZV9pbmZvIChjYWRkcl90ICogcXN0LAotIAlpZiAoaykKLSAJICB7Ci0gI2lmZGVmIEVWUF9QS0VZ X1JTQQotLQkgICAgaWYgKGstPnR5cGUgPT0gRVZQX1BLRVlfUlNBKQotKwkgICAgaWYgKEVWUF9Q S0VZX2lkKGspID09IEVWUF9QS0VZX1JTQSkKLSAJICAgICAgewotLQkJUlNBICp4ID0gay0+cGtl eS5yc2E7Ci0tCQlyZXQgPSBsaXN0ICgzLCBib3hfZHZfc2hvcnRfc3RyaW5nICgiUlNBUHVibGlj S2V5IiksIEJOX2JveCAoeC0+ZSksIEJOX2JveCAoeC0+bikpOwotKwkJY29uc3QgQklHTlVNICpu LCAqZTsKLSsKLSsJCVJTQV9nZXQwX2tleShFVlBfUEtFWV9nZXQwX1JTQShrKSwgJm4sICZlLCBO VUxMKTsKLSsKLSsJCXJldCA9IGxpc3QgKDMsIGJveF9kdl9zaG9ydF9zdHJpbmcgKCJSU0FQdWJs aWNLZXkiKSwgQk5fYm94IChlKSwgQk5fYm94IChuKSk7Ci0gCSAgICAgIH0KLSAJICAgIGVsc2UK LSAjZW5kaWYKLSAjaWZkZWYgRVZQX1BLRVlfRFNBCi0tCSAgICBpZiAoay0+dHlwZSA9PSBFVlBf UEtFWV9EU0EpCi0rCSAgICBpZiAoRVZQX1BLRVlfaWQoaykgPT0gRVZQX1BLRVlfRFNBKQotIAkg ICAgICB7Ci0tCQlEU0EgKnggPSBrLT5wa2V5LmRzYTsKLS0JCXJldCA9IGxpc3QgKDIsIGJveF9k dl9zaG9ydF9zdHJpbmcgKCJEU0FQdWJsaWNLZXkiKSwgQk5fYm94ICh4LT5wdWJfa2V5KSk7Ci0r CQljb25zdCBCSUdOVU0gKnB1Yl9rZXk7Ci0rCi0rCQlEU0FfZ2V0MF9rZXkoRVZQX1BLRVlfZ2V0 MF9EU0EoayksICZwdWJfa2V5LCBOVUxMKTsKLSsJCXJldCA9IGxpc3QgKDIsIGJveF9kdl9zaG9y dF9zdHJpbmcgKCJEU0FQdWJsaWNLZXkiKSwgQk5fYm94IChwdWJfa2V5KSk7Ci0gCSAgICAgIH0K LSAJICAgIGVsc2UKLSAjZW5kaWYKLUBAIC0xNTY3LDEzICsxNTc5LDEzIEBAIGJpZl9nZXRfY2Vy dGlmaWNhdGVfaW5mbyAoY2FkZHJfdCAqIHFzdCwKLSAJaW50IG4sIGksIGxlbjsKLSAJY2hhciAq cywgKmRhdGFfcHRyOwotIAlCSU8gKm1lbSA9IEJJT19uZXcgKEJJT19zX21lbSAoKSk7Ci0tCWZv ciAoaSA9IDA7IE5VTEwgIT0gc3ViaiAmJiBpIDwgc2tfWDUwOV9OQU1FX0VOVFJZX251bShzdWJq LT5lbnRyaWVzKTsgaSsrKQotKwlmb3IgKGkgPSAwOyBOVUxMICE9IHN1YmogJiYgaSA8IFg1MDlf TkFNRV9lbnRyeV9jb3VudChzdWJqKTsgaSsrKQotIAkgIHsKLS0JICAgIG5lID0gc2tfWDUwOV9O QU1FX0VOVFJZX3ZhbHVlKHN1YmotPmVudHJpZXMsaSk7Ci0tCSAgICBuID0gT0JKX29iajJuaWQg KG5lLT5vYmplY3QpOwotKwkgICAgbmUgPSBYNTA5X05BTUVfZ2V0X2VudHJ5KHN1YmosIGkpOwot KwkgICAgbiA9IE9CSl9vYmoybmlkIChYNTA5X05BTUVfRU5UUllfZ2V0X29iamVjdChuZSkpOwot IAkgICAgaWYgKChuID09IE5JRF91bmRlZikgfHwgKChzID0gKGNoYXIgKikgT0JKX25pZDJzbiAo bikpID09IE5VTEwpKQotIAkgICAgICB7Ci0tCQlpMnRfQVNOMV9PQkpFQ1QgKGJ1ZmZlciwgc2l6 ZW9mIChidWZmZXIpLCBuZS0+b2JqZWN0KTsKLSsJCWkydF9BU04xX09CSkVDVCAoYnVmZmVyLCBz aXplb2YgKGJ1ZmZlciksIFg1MDlfTkFNRV9FTlRSWV9nZXRfb2JqZWN0KG5lKSk7Ci0gCQlzID0g YnVmZmVyOwotIAkgICAgICB9Ci0gCSAgICBpZiAoIXN0cmNtcCAocywgYXR0cikpCi1AQCAtMTU4 Miw5ICsxNTk0LDEwIEBAIGJpZl9nZXRfY2VydGlmaWNhdGVfaW5mbyAoY2FkZHJfdCAqIHFzdCwK LSAJCWJyZWFrOwotIAkgICAgICB9Ci0gCSAgfQotKwotIAlpZiAobmVfcmV0KQotIAkgIHsKLS0J ICAgIEFTTjFfU1RSSU5HX3ByaW50IChtZW0sIG5lX3JldC0+dmFsdWUpOwotKwkgICAgQVNOMV9T VFJJTkdfcHJpbnQgKG1lbSwgWDUwOV9OQU1FX0VOVFJZX2dldF9kYXRhKG5lX3JldCkpOwotIAkg ICAgbGVuID0gQklPX2dldF9tZW1fZGF0YSAobWVtLCAmZGF0YV9wdHIpOwotIAkgICAgaWYgKGxl biA+IDAgJiYgZGF0YV9wdHIpCi0gCSAgICAgIHsKLUBAIC0xNjA1LDE3ICsxNjE4LDE3IEBAIGJp Zl9nZXRfY2VydGlmaWNhdGVfaW5mbyAoY2FkZHJfdCAqIHFzdCwKLSAJZGtfc2V0X3Qgc2V0ID0g TlVMTDsKLSAJY2FkZHJfdCB2YWw7Ci0gCUJJTyAqbWVtID0gQklPX25ldyAoQklPX3NfbWVtICgp KTsKLS0JZm9yIChpID0gMDsgTlVMTCAhPSBzdWJqICYmIGkgPCBza19YNTA5X05BTUVfRU5UUllf bnVtKHN1YmotPmVudHJpZXMpOyBpKyspCi0rCWZvciAoaSA9IDA7IE5VTEwgIT0gc3ViaiAmJiBp IDwgWDUwOV9OQU1FX2VudHJ5X2NvdW50KHN1YmopOyBpKyspCi0gCSAgewotIAkgICAgdmFsID0g TlVMTDsKLS0JICAgIG5lID0gc2tfWDUwOV9OQU1FX0VOVFJZX3ZhbHVlKHN1YmotPmVudHJpZXMs aSk7Ci0tCSAgICBuID0gT0JKX29iajJuaWQgKG5lLT5vYmplY3QpOwotKwkgICAgbmUgPSBYNTA5 X05BTUVfZ2V0X2VudHJ5KHN1YmosIGkpOwotKwkgICAgbiA9IE9CSl9vYmoybmlkIChYNTA5X05B TUVfRU5UUllfZ2V0X29iamVjdChuZSkpOwotIAkgICAgaWYgKChuID09IE5JRF91bmRlZikgfHwg KChzID0gKGNoYXIgKikgT0JKX25pZDJzbiAobikpID09IE5VTEwpKQotIAkgICAgICB7Ci0tCQlp MnRfQVNOMV9PQkpFQ1QgKGJ1ZmZlciwgc2l6ZW9mIChidWZmZXIpLCBuZS0+b2JqZWN0KTsKLSsJ CWkydF9BU04xX09CSkVDVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlciksIFg1MDlfTkFNRV9FTlRS WV9nZXRfb2JqZWN0KG5lKSk7Ci0gCQlzID0gYnVmZmVyOwotIAkgICAgICB9Ci0tCSAgICBBU04x X1NUUklOR19wcmludCAobWVtLCBuZS0+dmFsdWUpOwotKwkgICAgQVNOMV9TVFJJTkdfcHJpbnQg KG1lbSwgWDUwOV9OQU1FX0VOVFJZX2dldF9kYXRhKG5lKSk7Ci0gCSAgICBsZW4gPSBCSU9fZ2V0 X21lbV9kYXRhIChtZW0sICZkYXRhX3B0cik7Ci0gCSAgICBpZiAobGVuID4gMCAmJiBkYXRhX3B0 cikKLSAJICAgICAgewotQEAgLTE2MjksMTggKzE2NDIsMjIgQEAgYmlmX2dldF9jZXJ0aWZpY2F0 ZV9pbmZvIChjYWRkcl90ICogcXN0LAotIAkgIH0KLSAJQklPX2ZyZWUgKG1lbSk7Ci0gCXJldCA9 IGxpc3RfdG9fYXJyYXkgKGRrX3NldF9ucmV2ZXJzZSAoc2V0KSk7Ci0rCi0gCWJyZWFrOwotICAg ICAgIH0KLSAgICAgY2FzZSAxMjoKLSAgICAgICB7Ci0gCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnM7 Ci0gCWludCBpLCBuOwotLQljb25zdCBBU04xX1NUUklORyAqc2lnID0gY2VydC0+c2lnbmF0dXJl OwotLQlYNTA5X0FMR09SICpzaWdhbGcgPSBjZXJ0LT5zaWdfYWxnOwotKwljb25zdCBBU04xX1NU UklORyAqc2lnOwotKwljb25zdCBYNTA5X0FMR09SICpzaWdhbGc7Ci0rCWNvbnN0IEFTTjFfT0JK RUNUICpzaWdfYWxnX2FsZ29yaXRobTsKLSAJY2hhciBidWZbODBdOwotIAljYWRkcl90IHZhbDsK LSAKLS0gICAgICAgIGkydF9BU04xX09CSkVDVChidWYsc2l6ZW9mIChidWYpLCBzaWdhbGctPmFs Z29yaXRobSk7Ci0rCVg1MDlfZ2V0MF9zaWduYXR1cmUoJnNpZywgJnNpZ2FsZywgY2VydCk7Ci0r CVg1MDlfQUxHT1JfZ2V0MCgmc2lnX2FsZ19hbGdvcml0aG0sIE5VTEwsIE5VTEwsIHNpZ2FsZyk7 Ci0rCWkydF9BU04xX09CSkVDVChidWYsc2l6ZW9mIChidWYpLCBzaWdfYWxnX2FsZ29yaXRobSk7 Ci0gCi0gCW4gPSBzaWctPmxlbmd0aDsKLSAJcyA9IHNpZy0+ZGF0YTsKLUBAIC0xNjYwLDExICsx Njc3LDExIEBAIGJpZl9nZXRfY2VydGlmaWNhdGVfaW5mbyAoY2FkZHJfdCAqIHFzdCwKLSAJaWYg KGspCi0gCSAgewotICNpZmRlZiBFVlBfUEtFWV9SU0EKLS0JICAgIGlmIChrLT50eXBlID09IEVW UF9QS0VZX1JTQSkKLSsJICAgIGlmIChFVlBfUEtFWV9pZChrKSA9PSBFVlBfUEtFWV9SU0EpCi0g CSAgICAgIHsKLSAJCWNoYXIgKmRhdGFfcHRyOwotIAkJaW50IGxlbjsKLS0JCVJTQSAqeCA9IGst PnBrZXkucnNhOwotKwkJUlNBICp4ID0gRVZQX1BLRVlfZ2V0MF9SU0Eoayk7Ci0gCQliID0gQklP X25ldyAoQklPX3NfbWVtKCkpOwotIAkJaTJkX1JTQV9QVUJLRVlfYmlvIChiLCB4KTsKLSAJCWxl biA9IEJJT19nZXRfbWVtX2RhdGEgKGIsICZkYXRhX3B0cik7Ci0tLS0gYS9saWJzcmMvV2kveG1s ZW5jLmMKLSsrKyBiL2xpYnNyYy9XaS94bWxlbmMuYwotQEAgLTEyMTUsMzYgKzEyMTUsNDUgQEAg dm9pZCB4ZW5jX2tleV9yZW1vdmUgKHhlbmNfa2V5X3QgKiBrZXksCi0gfQotIAotIAotLXN0YXRp YyB2b2lkCi0tZ2VucnNhX2NiKGludCBwLCBpbnQgbiwgdm9pZCAqYXJnKQotLXsKLS0jaWZkZWYg TElOVAotLSAgcD1uOwotLSNlbmRpZgotLX0KLS0KLSBpbnQKLSBfX3hlbmNfa2V5X3JzYV9pbml0 IChjaGFyICpuYW1lKQotIHsKLSAgIFJTQSAqcnNhID0gTlVMTDsKLS0gIGludCBudW09MTAyNDsK LS0gIHVuc2lnbmVkIGxvbmcgZjQ9UlNBX0Y0OwotKyAgQklHTlVNICpibiA9IE5VTEw7Ci0gICBp bnQgcjsKLSsKLSAgIHhlbmNfa2V5X3QgKiBwa2V5ID0geGVuY19nZXRfa2V5X2J5X25hbWUgKG5h bWUsIDEpOwotICAgaWYgKE5VTEwgPT0gcGtleSkKLSAgICAgU1FMUl9ORVdfS0VZX0VSUk9SIChu YW1lKTsKLSAKLS0gIHJzYT1SU0FfZ2VuZXJhdGVfa2V5KG51bSxmNCxnZW5yc2FfY2IsTlVMTCk7 Ci0rICByc2EgPSBSU0FfbmV3KCk7Ci0rICBpZiAoIXJzYSkKLSsJICBnb3RvIG91dDsKLSsgIGJu ID0gQk5fbmV3KCk7Ci0rICBpZiAoIWJuKQotKwkgIGdvdG8gb3V0OwotKyAgaWYgKCFCTl9zZXRf d29yZChibiwgUlNBX0Y0KSkKLSsJICBnb3RvIG91dDsKLSsKLSsgIGlmICghUlNBX2dlbmVyYXRl X2tleV9leChyc2EsIDEwMjQsIGJuLCBOVUxMKSkKLSsJICBnb3RvIG91dDsKLSsKLSAgIHIgPSBS U0FfY2hlY2tfa2V5KHJzYSk7Ci0rICBpZiAociAhPSAxKQotKwkgIGdvdG8gb3V0OwotICAgcGtl eS0+a2kucnNhLnBhZCA9IFJTQV9QS0NTMV9QQURESU5HOwotLSAgaWYgKHJzYSA9PSBOVUxMKQot LSAgICB7Ci0tICAgICAgc3Fscl9uZXdfZXJyb3IgKCI0MjAwMCIsICJYRU5DMDYiLAotLQkJICAg ICJSU0EgcGFyYW1ldGVycyBnZW5lcmF0aW9uIGVycm9yIik7Ci0tICAgIH0KLSAgIHBrZXktPnhl a19yc2EgPSByc2E7Ci0gICBwa2V5LT54ZWtfcHJpdmF0ZV9yc2EgPSByc2E7Ci0rICBCTl9mcmVl KGJuKTsKLSAgIHJldHVybiAwOwotK291dDoKLSsgIGlmIChibikKLSsJICBCTl9mcmVlKGJuKTsK LSsgIGlmIChyc2EpCi0rCSAgUlNBX2ZyZWUocnNhKTsKLSsgIHNxbHJfbmV3X2Vycm9yICgiNDIw MDAiLCAiWEVOQzA2IiwKLSsJCSAgIlJTQSBwYXJhbWV0ZXJzIGdlbmVyYXRpb24gZXJyb3IiKTsK LSsgIHJldHVybiAtMTsKLSB9Ci0gCi0gCi1AQCAtMTQ1NSwxOSArMTQ2NCwxOSBAQCB4ZW5jX2tl eV90ICogeGVuY19rZXlfY3JlYXRlX2Zyb21feDUwOV9jCi0gCi0gICBpZiAocGtleSkKLSAgICAg ewotLSAgICAgIHN3aXRjaCAoRVZQX1BLRVlfdHlwZSAocGtleS0+dHlwZSkpCi0rICAgICAgc3dp dGNoIChFVlBfUEtFWV90eXBlIChFVlBfUEtFWV9pZChwa2V5KSkpCi0gCXsKLSAJY2FzZSBFVlBf UEtFWV9EU0E6Ci0gCSAgc2lnbl9hbGdvbmFtZSA9IERTSUdfRFNBX1NIQTFfQUxHTzsKLSAJICBl bmNfYWxnb25hbWUgPSBYRU5DX0RTQV9BTEdPOwotLQkgIGRzYSA9IHBrZXktPnBrZXkuZHNhOwot LQkgIHByaXZhdGVfZHNhID0gcHJpdmF0ZV9rZXkgPyBwcml2YXRlX2tleS0+cGtleS5kc2EgOiAw OwotKwkgIGRzYSA9IEVWUF9QS0VZX2dldDBfRFNBKHBrZXkpOwotKwkgIHByaXZhdGVfZHNhID0g cHJpdmF0ZV9rZXkgPyBFVlBfUEtFWV9nZXQwX0RTQShwcml2YXRlX2tleSkgOiAwOwotIAkgIGJy ZWFrOwotIAljYXNlIEVWUF9QS0VZX1JTQToKLSAJICBzaWduX2FsZ29uYW1lID0gRFNJR19SU0Ff U0hBMV9BTEdPOwotIAkgIGVuY19hbGdvbmFtZSA9IFhFTkNfUlNBX0FMR087Ci0tCSAgcnNhID0g cGtleS0+cGtleS5yc2E7Ci0tCSAgcHJpdmF0ZV9yc2EgPSBwcml2YXRlX2tleSA/IHByaXZhdGVf a2V5LT5wa2V5LnJzYSA6IDA7Ci0rCSAgcnNhID0gRVZQX1BLRVlfZ2V0MF9SU0EocGtleSk7Ci0r CSAgcHJpdmF0ZV9yc2EgPSBwcml2YXRlX2tleSA/IEVWUF9QS0VZX2dldDBfUlNBKHByaXZhdGVf a2V5KSA6IDA7Ci0gCSAgYnJlYWs7Ci0gCWRlZmF1bHQ6Ci0gCSAgZ290byBmaW5pc2g7Ci1AQCAt MTUxNiwxMyArMTUyNSw2IEBAIHhlbmNfa2V5X3QgKiB4ZW5jX2tleV9jcmVhdGVfZnJvbV94NTA5 X2MKLSAgIHJldHVybiBrOwotIH0KLSAKLS1zdGF0aWMgdm9pZCBkaF9jYihpbnQgcCwgaW50IG4s IHZvaWQgKmFyZykKLS17Ci0tI2lmZGVmIExJTlQKLS0gIHA9bjsKLS0jZW5kaWYKLS19Ci0tCi0g c3RhdGljIC8qeGVuY19rZXlfRFNBX2NyZWF0ZSAqLwotIGNhZGRyX3QgYmlmX3hlbmNfa2V5X2Rz YV9jcmVhdGUgKGNhZGRyX3QgKiBxc3QsIGNhZGRyX3QgKiBlcnJfciwgc3RhdGVfc2xvdF90ICoq IGFyZ3MpCi0gewotQEAgLTE1ODgsMTUgKzE1OTAsMjEgQEAgY2FkZHJfdCBiaWZfeGVuY19rZXlf REhfY3JlYXRlIChjYWRkcl90Ci0gICAgICAgZGggPSBESF9uZXcgKCk7Ci0gICAgICAgYm5fcCA9 IEJOX2JpbjJibiAoKHVuc2lnbmVkIGNoYXIgKiltb2QsIHBfbGVuLCBOVUxMKTsKLSAgICAgICBi bl9nID0gQk5fYmluMmJuIChnX2JpbiwgMSwgTlVMTCk7Ci0tICAgICAgZGgtPnAgPSBibl9wOwot LSAgICAgIGRoLT5nID0gYm5fZzsKLSsgICAgICBpZiAoZGgpCi0rCSAgICAgIERIX3NldDBfcHFn KGRoLCBibl9wLCBOVUxMLCBibl9nKTsKLSAKLSAgICAgICBka19mcmVlX2JveCAobW9kX2I2NCk7 Ci0gICAgICAgZGtfZnJlZV9ib3ggKG1vZCk7Ci0gICAgIH0KLSAgIGVsc2UKLSAgICAgewotLSAg ICAgIGRoID0gREhfZ2VuZXJhdGVfcGFyYW1ldGVycyAobnVtLCBnLCBkaF9jYiwgTlVMTCk7Ci0r ICAgICAgZGggPSBESF9uZXcoKTsKLSsgICAgICBpZiAoZGgpIHsKLSsJICAgICAgaWYgKCFESF9n ZW5lcmF0ZV9wYXJhbWV0ZXJzX2V4KGRoLCBudW0sIGcsIE5VTEwpKSB7Ci0rCQkgICAgICBESF9m cmVlKGRoKTsKLSsJCSAgICAgIGRoID0gTlVMTDsKLSsJICAgICAgfQotKyAgICAgIH0KLSAgICAg fQotICAgaWYgKCFkaCkKLSAgICAgewotQEAgLTE2MjYsNyArMTYzNCw3IEBAIGNhZGRyX3QgYmlm X3hlbmNfREhfZ2V0X3BhcmFtcyAoY2FkZHJfdAotICAgaW50IG4sIGxlbjsKLSAgIGNhZGRyX3Qg YnVmID0gTlVMTCwgcmV0LCBiNjQ7Ci0gICBESCAqZGg7Ci0tICBCSUdOVU0gKm51bTsKLSsgIGNv bnN0IEJJR05VTSAqbnVtOwotIAotICAgbXV0ZXhfZW50ZXIgKHhlbmNfa2V5c19tdHgpOwotICAg a2V5ID0geGVuY19nZXRfa2V5X2J5X25hbWUgKG5hbWUsIDApOwotQEAgLTE2NDEsMTkgKzE2NDks MTkgQEAgY2FkZHJfdCBiaWZfeGVuY19ESF9nZXRfcGFyYW1zIChjYWRkcl90Ci0gICBzd2l0Y2gg KHBhcmFtKQotICAgICB7Ci0gICAJY2FzZSAxOgotLQkgbnVtID0gZGgtPnA7Ci0rCSBESF9nZXQw X3BxZyhkaCwgJm51bSwgTlVMTCwgTlVMTCk7Ci0gCSBicmVhazsKLSAJY2FzZSAyOgotLQkgbnVt ID0gZGgtPmc7Ci0rCSBESF9nZXQwX3BxZyhkaCwgTlVMTCwgTlVMTCwgJm51bSk7Ci0gCSBicmVh azsKLSAJY2FzZSAzOgotLQkgbnVtID0gZGgtPnB1Yl9rZXk7Ci0rCSBESF9nZXQwX2tleShkaCwg Jm51bSwgTlVMTCk7Ci0gCSBicmVhazsKLSAJY2FzZSA0OgotLQkgbnVtID0gZGgtPnByaXZfa2V5 OwotKwkgREhfZ2V0MF9rZXkoZGgsIE5VTEwsICZudW0pOwotIAkgYnJlYWs7Ci0gCWRlZmF1bHQ6 Ci0tCSBudW0gPSBkaC0+cHViX2tleTsKLSsJIERIX2dldDBfa2V5KGRoLCAmbnVtLCBOVUxMKTsK LSAgICAgfQotIAotICAgYnVmX2xlbiA9IChzaXplX3QpQk5fbnVtX2J5dGVzKG51bSk7Ci1AQCAt MTgxMSw3ICsxODE5LDE1IEBAIGNhZGRyX3QgYmlmX3hlbmNfa2V5X3JzYV9jcmVhdGUgKGNhZGRy X3QKLSAgIHhlbmNfa2V5X3QgKiBrOwotICAgY2FkZHJfdCBuYW1lID0gYmlmX3N0cmluZ19hcmcg KHFzdCwgYXJncywgMCwgInhlbmNfa2V5X1JTQV9jcmVhdGUiKTsKLSAgIGludCBudW0gPSAoaW50 KSBiaWZfbG9uZ19hcmcgKHFzdCwgYXJncywgMSwgInhlbmNfa2V5X1JTQV9jcmVhdGUiKTsKLS0g IFJTQSAqcnNhID0gTlVMTDsKLSsgIFJTQSAqcnNhOwotKyAgQklHTlVNICpibjsKLSsKLSsgIHJz YSA9IFJTQV9uZXcoKTsKLSsgIGJuID0gQk5fbmV3KCk7Ci0rICBpZiAoIXJzYSB8fCAhYm4pCi0r CWdvdG8gb3V0OwotKyAgaWYgKCFCTl9zZXRfd29yZChibiwgUlNBX0Y0KSkKLSsJZ290byBvdXQ7 Ci0gCi0gICBtdXRleF9lbnRlciAoeGVuY19rZXlzX210eCk7Ci0gICBpZiAoTlVMTCA9PSAoayA9 IHhlbmNfa2V5X2NyZWF0ZSAobmFtZSwgWEVOQ19SU0FfQUxHTyAsIERTSUdfUlNBX1NIQTFfQUxH TywgMCkpKQotQEAgLTE4MjAsMTIgKzE4MzYsMTEgQEAgY2FkZHJfdCBiaWZfeGVuY19rZXlfcnNh X2NyZWF0ZSAoY2FkZHJfdAotICAgICAgIFNRTFJfTkVXX0tFWV9FWElTVF9FUlJPUiAobmFtZSk7 Ci0gICAgIH0KLSAKLS0gIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKG51bSwgUlNBX0Y0LCBOVUxM LCBOVUxMKTsKLS0KLS0gIGlmIChyc2EgPT0gTlVMTCkKLS0gICAgewotLSAgICAgIHNxbHJfbmV3 X2Vycm9yICgiNDIwMDAiLCAiWEVOQzA2IiwgIlJTQSBnZW5lcmF0aW9uIGVycm9yIik7Ci0tICAg IH0KLSsgIGlmICghUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCBudW0sIGJuLCBOVUxMKSkgewot KwkgIG11dGV4X2xlYXZlICh4ZW5jX2tleXNfbXR4KTsKLSsJICBnb3RvIG91dDsKLSsgIH0KLSsg IEJOX2ZyZWUoYm4pOwotIAotICAgay0+eGVrX3JzYSA9IFJTQVB1YmxpY0tleV9kdXAgKHJzYSk7 Ci0gICBrLT54ZWtfcHJpdmF0ZV9yc2EgPSByc2E7Ci1AQCAtMTgzOSw2ICsxODU0LDEzIEBAIGNh ZGRyX3QgYmlmX3hlbmNfa2V5X3JzYV9jcmVhdGUgKGNhZGRyX3QKLSAKLSAgIG11dGV4X2xlYXZl ICh4ZW5jX2tleXNfbXR4KTsKLSAgIHJldHVybiBOVUxMOwotK291dDoKLSsgIGlmIChibikKLSsJ ICBCTl9mcmVlKGJuKTsKLSsgIGlmIChyc2EpCi0rCSAgUlNBX2ZyZWUocnNhKTsKLSsgIHNxbHJf bmV3X2Vycm9yICgiNDIwMDAiLCAiWEVOQzA2IiwgIlJTQSBnZW5lcmF0aW9uIGVycm9yIik7Ci0r ICByZXR1cm4gTlVMTDsKLSB9Ci0gCi0geGVuY19rZXlfdCAqCi1AQCAtMjAzNCw3ICsyMDU2LDEz IEBAIGludCBfX3hlbmNfa2V5X2RzYV9pbml0IChjaGFyICpuYW1lLCBpbnQKLSAgICAgU1FMUl9O RVdfS0VZX0VSUk9SIChuYW1lKTsKLSAKLSAgIFJBTkRfcG9sbCAoKTsKLS0gIGRzYSA9IERTQV9n ZW5lcmF0ZV9wYXJhbWV0ZXJzKG51bSwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgZGhfY2IsIE5VTEwp OwotKyAgZHNhID0gRFNBX25ldygpOwotKyAgaWYgKGRzYSkgewotKwkgIGlmICghRFNBX2dlbmVy YXRlX3BhcmFtZXRlcnNfZXgoZHNhLCBudW0sIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwpKSB7 Ci0rCQkgIERTQV9mcmVlKGRzYSk7Ci0rCQkgIGRzYSA9IE5VTEw7Ci0rCSAgfQotKyAgfQotICAg aWYgKGRzYSA9PSBOVUxMKQotICAgICB7Ci0gICAgICAgc3Fscl9uZXdfZXJyb3IgKCI0MjAwMCIs ICJYRU5DMTEiLAotQEAgLTIwNTgsNyArMjA4NiwxMyBAQCBpbnQgX194ZW5jX2tleV9kaF9pbml0 IChjaGFyICpuYW1lLCBpbnQKLSAgIGlmIChOVUxMID09IHBrZXkpCi0gICAgIFNRTFJfTkVXX0tF WV9FUlJPUiAobmFtZSk7Ci0gCi0tICBkaCA9IERIX2dlbmVyYXRlX3BhcmFtZXRlcnMgKG51bSwg ZywgZGhfY2IsIE5VTEwpOwotKyAgZGggPSBESF9uZXcoKTsKLSsgIGlmIChkaCkgewotKwkgIGlm ICghREhfZ2VuZXJhdGVfcGFyYW1ldGVyc19leChkaCwgbnVtLCBnLCBOVUxMKSkgewotKwkJICBE SF9mcmVlKGRoKTsKLSsJCSAgZGggPSBOVUxMOwotKwkgIH0KLSsgIH0KLSAgIGlmICghZGgpCi0g ICAgIHsKLSAgICAgICBzcWxyX25ld19lcnJvciAoIjQyMDAwIiwgIlhFTkMxMSIsCi1AQCAtMjI4 MCwxMiArMjMxNCwxMiBAQCBiaWZfeGVuY19rZXlfcnNhX3JlYWQgKGNhZGRyX3QgKiBxc3QsIGNh Ci0gICAgIHsKLSAgICAgICBpbiA9IEJJT19uZXdfbWVtX2J1ZiAoa2V5X2Jhc2U2NCwgbGVuKTsK LSAgICAgICBwa2V5ID0gZDJpX1BVQktFWV9iaW8gKGluLCBOVUxMKTsKLS0gICAgICBpZiAocGtl eSAmJiBwa2V5LT50eXBlID09IEVWUF9QS0VZX1JTQSkKLS0JcCA9IHBrZXktPnBrZXkucnNhOwot KyAgICAgIGlmIChwa2V5ICYmIEVWUF9QS0VZX2lkKHBrZXkpID09IEVWUF9QS0VZX1JTQSkKLSsJ cCA9IEVWUF9QS0VZX2dldDBfUlNBKHBrZXkpOwotICAgICAgIEJJT19yZXNldCAoaW4pOwotICAg ICAgIHBra2V5ID0gZDJpX1ByaXZhdGVLZXlfYmlvIChpbiwgTlVMTCk7Ci0tICAgICAgaWYgKHBr a2V5ICYmIHBra2V5LT50eXBlID09IEVWUF9QS0VZX1JTQSkKLS0JciA9IHBra2V5LT5wa2V5LnJz YTsKLSsgICAgICBpZiAocGtrZXkgJiYgRVZQX1BLRVlfaWQocGtrZXkpID09IEVWUF9QS0VZX1JT QSkKLSsJciA9IEVWUF9QS0VZX2dldDBfUlNBKHBra2V5KTsKLSAgICAgICBCSU9fZnJlZSAoaW4p OwotICAgICB9Ci0gICBlbHNlCi1AQCAtMjMwNCw5ICsyMzM4LDExIEBAIGJpZl94ZW5jX2tleV9y c2FfcmVhZCAoY2FkZHJfdCAqIHFzdCwgY2EKLSAKLSAgIGlmICghcCkKLSAgICAgewotKyAgICAg IGNvbnN0IEJJR05VTSAqbiwgKmU7Ci0rCi0rICAgICAgUlNBX2dldDBfa2V5KHIsICZuLCAmZSwg TlVMTCk7Ci0gICAgICAgcCA9IFJTQV9uZXcgKCk7Ci0tICAgICAgcC0+biA9IEJOX2R1cCAoci0+ bik7Ci0tICAgICAgcC0+ZSA9IEJOX2R1cCAoci0+ZSk7Ci0rICAgICAgUlNBX3NldDBfa2V5KHAs IEJOX2R1cChuKSwgQk5fZHVwKGUpLCBOVUxMKTsKLSAgICAgfQotIAotICAgbXV0ZXhfZW50ZXIg KHhlbmNfa2V5c19tdHgpOwotQEAgLTIzNTUsMTQgKzIzOTEsMTMgQEAgYmlmX3hlbmNfa2V5X3Jz YV9jb25zdHJ1Y3QgKGNhZGRyX3QgKiBxcwotICAgcCA9IFJTQV9uZXcgKCk7Ci0gICBuID0gQk5f YmluMmJuICgodW5zaWduZWQgY2hhciAqKSBtb2QsIGJveF9sZW5ndGggKG1vZCkgLSAxLCBOVUxM KTsKLSAgIGUgPSBCTl9iaW4yYm4gKCh1bnNpZ25lZCBjaGFyICopIGV4cCwgYm94X2xlbmd0aCAo ZXhwKSAtIDEsIE5VTEwpOwotLSAgcC0+biA9IG47Ci0tICBwLT5lID0gZTsKLSsgIFJTQV9zZXQw X2tleShwLCBuLCBlLCBOVUxMKTsKLSAgIGlmIChwZXhwKQotICAgICB7Ci0gICAgICAgcGsgPSBS U0FfbmV3ICgpOwotLSAgICAgIHBrLT5kID0gQk5fYmluMmJuICgodW5zaWduZWQgY2hhciAqKSBw ZXhwLCBib3hfbGVuZ3RoIChwZXhwKSAtIDEsIE5VTEwpOwotLSAgICAgIHBrLT5uID0gQk5fZHVw IChuKTsKLS0gICAgICBway0+ZSA9IEJOX2R1cCAoZSk7Ci0rICAgICAgUlNBX3NldDBfa2V5KHAs IEJOX2R1cChuKSwKLSsJCSAgICAgIEJOX2R1cChlKSwKLSsJCSAgICAgIEJOX2JpbjJibiAoKHVu c2lnbmVkIGNoYXIgKikgcGV4cCwgYm94X2xlbmd0aCAocGV4cCkgLSAxLCBOVUxMKSk7Ci0gICAg IH0KLSAgIG11dGV4X2VudGVyICh4ZW5jX2tleXNfbXR4KTsKLSAgIGsgPSB4ZW5jX2tleV9jcmVh dGUgKG5hbWUsIFhFTkNfUlNBX0FMR08sIERTSUdfUlNBX1NIQTFfQUxHTywgMCk7Ci1AQCAtNDA4 Niw3ICs0MTIxLDcgQEAgdm9pZCB4ZW5jX3RhZ19mcmVlICh4ZW5jX3RhZ190ICogdCkKLSAjZW5k aWYKLSB9Ci0gCi0teGVuY190YWdfdCAqIHhlbmNfdGFnX2FkZF9jaGlsZF9CTiAoeGVuY190YWdf dCAqIHRhZywgQklHTlVNICogYm4pCi0rc3RhdGljIHhlbmNfdGFnX3QgKiB4ZW5jX3RhZ19hZGRf Y2hpbGRfQk4gKHhlbmNfdGFnX3QgKiB0YWcsIGNvbnN0IEJJR05VTSAqIGJuKQotIHsKLSAgY2hh ciAqIGJ1ZmZlciA9IGRrX2FsbG9jX2JveCAoQk5fbnVtX2J5dGVzIChibiksIERWX0JJTik7Ci0g IGNoYXIgKiBidWZmZXJfYmFzZTY0ID0gZGtfYWxsb2NfYm94IChib3hfbGVuZ3RoIChidWZmZXIp ICogMiwgRFZfU1RSSU5HKTsKLUBAIC00MTExLDEyICs0MTQ2LDE1IEBAIGNhZGRyX3QgKiogeGVu Y19nZW5lcmF0ZV9leHRfaW5mbyAoeGVuY18KLSAgIGNhZGRyX3QgKiogYXJyYXk7Ci0gICBpZiAo a2V5LT54ZWtfdHlwZSA9PSBEU0lHX0tFWV9SU0EpCi0gICAgIHsKLSsgICAgICBjb25zdCBCSUdO VU0gKnJzYV9uLCAqcnNhX2U7Ci0rCi0rICAgICAgUlNBX2dldDBfa2V5KGtleS0+a2kucnNhLnJz YV9zdCwgJnJzYV9uLCAmcnNhX2UsIE5VTEwpOwotICAgICAgIHhlbmNfdGFnX3QgKiByc2FrZXl2 YWwgPSB4ZW5jX3RhZ19jcmVhdGUgKERTSUdfVVJJLCAiOlJTQUtleVZhbHVlIik7Ci0gICAgICAg eGVuY190YWdfdCAqIHJzYW1vZHVsdXMgPSB4ZW5jX3RhZ19jcmVhdGUgKERTSUdfVVJJLCAiOk1v ZHVsdXMiKTsKLSAgICAgICB4ZW5jX3RhZ190ICogcnNhZXhwb25lbnQgPSB4ZW5jX3RhZ19jcmVh dGUgKERTSUdfVVJJLCAiOkV4cG9uZW50Iik7Ci0gCi0tICAgICAgeGVuY190YWdfYWRkX2NoaWxk X0JOIChyc2Ftb2R1bHVzLCBrZXktPmtpLnJzYS5yc2Ffc3QtPm4pOwotLSAgICAgIHhlbmNfdGFn X2FkZF9jaGlsZF9CTiAocnNhZXhwb25lbnQsIGtleS0+a2kucnNhLnJzYV9zdC0+ZSk7Ci0rICAg ICAgeGVuY190YWdfYWRkX2NoaWxkX0JOIChyc2Ftb2R1bHVzLCByc2Ffbik7Ci0rICAgICAgeGVu Y190YWdfYWRkX2NoaWxkX0JOIChyc2FleHBvbmVudCwgcnNhX2UpOwotIAotICAgICAgIHhlbmNf dGFnX2FkZF9jaGlsZCAocnNha2V5dmFsLCB4ZW5jX3RhZ19maW5hbGl6ZSAocnNhbW9kdWx1cykp OwotICAgICAgIHhlbmNfdGFnX2FkZF9jaGlsZCAocnNha2V5dmFsLCB4ZW5jX3RhZ19maW5hbGl6 ZSAocnNhZXhwb25lbnQpKTsKLUBAIC00MTM1LDEyICs0MTczLDE1IEBAIGNhZGRyX3QgKiogeGVu Y19nZW5lcmF0ZV9leHRfaW5mbyAoeGVuY18KLSAgICAgICB4ZW5jX3RhZ190ICogZyA9IHhlbmNf dGFnX2NyZWF0ZSAoRFNJR19VUkksICI6RyIpOwotICAgICAgIHhlbmNfdGFnX3QgKiB5ID0geGVu Y190YWdfY3JlYXRlIChEU0lHX1VSSSwgIjpZIik7Ci0gICAgICAgRFNBICogZHNhID0ga2V5LT5r aS5kc2EuZHNhX3N0OwotKyAgICAgIGNvbnN0IEJJR05VTSAqZHNhX3AsICpkc2FfcSwgKmRzYV9n LCAqZHNhX3B1Yl9rZXk7Ci0gCi0rICAgICAgRFNBX2dldDBfcHFnKGRzYSwgJmRzYV9wLCAmZHNh X3EsICZkc2FfZyk7Ci0rICAgICAgRFNBX2dldDBfa2V5KGRzYSwgJmRzYV9wdWJfa2V5LCBOVUxM KTsKLSAKLS0gICAgICB4ZW5jX3RhZ19hZGRfY2hpbGRfQk4gKHAsIGRzYS0+cCk7Ci0tICAgICAg eGVuY190YWdfYWRkX2NoaWxkX0JOIChwLCBkc2EtPnEpOwotLSAgICAgIHhlbmNfdGFnX2FkZF9j aGlsZF9CTiAocCwgZHNhLT5nKTsKLS0gICAgICB4ZW5jX3RhZ19hZGRfY2hpbGRfQk4gKHAsIGRz YS0+cHViX2tleSk7Ci0rICAgICAgeGVuY190YWdfYWRkX2NoaWxkX0JOIChwLCBkc2FfcCk7Ci0r ICAgICAgeGVuY190YWdfYWRkX2NoaWxkX0JOIChwLCBkc2FfcSk7Ci0rICAgICAgeGVuY190YWdf YWRkX2NoaWxkX0JOIChwLCBkc2FfZyk7Ci0rICAgICAgeGVuY190YWdfYWRkX2NoaWxkX0JOIChw LCBkc2FfcHViX2tleSk7Ci0gCi0gICAgICAgeGVuY190YWdfYWRkX2NoaWxkIChkc2FrZXl2YWws IHhlbmNfdGFnX2ZpbmFsaXplIChwKSk7Ci0gICAgICAgeGVuY190YWdfYWRkX2NoaWxkIChkc2Fr ZXl2YWwsIHhlbmNfdGFnX2ZpbmFsaXplIChxKSk7Ci1AQCAtNjE4Nyw3ICs2MjI4LDcgQEAgY2Fk ZHJfdCB4ZW5jX3g1MDlfZ2V0X2tleV9pZGVudGlmaWVyIChYNQotIAotICAgcmV0ID0gZGtfYWxs b2NfYm94IChpa2V5aWQtPmxlbmd0aCwgRFZfQklOKTsKLSAgIG1lbWNweSAocmV0LCBpa2V5aWQt PmRhdGEsIGlrZXlpZC0+bGVuZ3RoKTsKLS0gIE1fQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShpa2V5 aWQpOwotKyAgQVNOMV9TVFJJTkdfZnJlZShpa2V5aWQpOwotICAgcmV0dXJuIHJldDsKLSB9Ci0g Ci1AQCAtNjI0Nyw3ICs2Mjg4LDcgQEAgYmlmX3g1MDlfZ2V0X3N1YmplY3QgKGNhZGRyX3QgKiBx c3QsIGNhZAotIAotICAgcmV0ID0gZGtfYWxsb2NfYm94IChpa2V5aWQtPmxlbmd0aCwgRFZfQklO KTsKLSAgIG1lbWNweSAocmV0LCBpa2V5aWQtPmRhdGEsIGlrZXlpZC0+bGVuZ3RoKTsKLS0gIE1f QVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShpa2V5aWQpOwotKyAgQVNOMV9TVFJJTkdfZnJlZShpa2V5 aWQpOwotICAgcmV0dXJuIHJldDsKLSB9Ci0gCi1AQCAtNjgwNiw3ICs2ODQ3LDcgQEAgYmlmX3hl bmNfeDUwOV9jc3JfZ2VuZXJhdGUgKGNhZGRyX3QgKiBxcwotIAlza19YNTA5X0VYVEVOU0lPTl9w dXNoKHN0X2V4dHMsIGV4KTsKLSAgICAgfQotICAgWDUwOV9SRVFfYWRkX2V4dGVuc2lvbnMoeCwg c3RfZXh0cyk7Ci0tICBpZiAoIVg1MDlfUkVRX3NpZ24gKHgsIHBrLCAocGstPnR5cGUgPT0gRVZQ X1BLRVlfUlNBID8gRVZQX21kNSgpIDogRVZQX2RzczEoKSkpKQotKyAgaWYgKCFYNTA5X1JFUV9z aWduICh4LCBwaywgKEVWUF9QS0VZX2lkKHBrKSA9PSBFVlBfUEtFWV9SU0EgPyBFVlBfbWQ1KCkg OiBFVlBfc2hhMSgpKSkpCi0gICAgIHsKLSAgICAgICBwayA9IE5VTEw7IC8qIGtlZXAgb25lIGlu IHRoZSB4ZW5jX2tleSAqLwotICAgICAgICplcnJfcmV0ID0gc3J2X21ha2VfbmV3X2Vycm9yICgi NDIwMDAiLCAiWEVDWFgiLCAiQ2FuIG5vdCBzaWduIGNlcnRpZmljYXRlIDogJXMiLCBnZXRfc3Ns X2Vycm9yX3RleHQgKGJ1Ziwgc2l6ZW9mIChidWYpKSk7Ci1AQCAtNjk0NSwxNyArNjk4NiwxNyBA QCBiaWZfeGVuY194NTA5X2Zyb21fY3NyIChjYWRkcl90ICogcXN0LCBjCi0gICAgICAgKmVycl9y ZXQgPSBzcnZfbWFrZV9uZXdfZXJyb3IgKCI0MjAwMCIsICJYRUNYWCIsICJDYW4gbm90IHNpZ24g Y2VydGlmaWNhdGUiKTsKLSAgICAgICBnb3RvIGVycjsKLSAgICAgfQotLSAgc3dpdGNoIChFVlBf UEtFWV90eXBlIChjbGlfcGstPnR5cGUpKQotKyAgc3dpdGNoIChFVlBfUEtFWV90eXBlIChFVlBf UEtFWV9pZChjbGlfcGspKSkKLSAgICAgewotICAgICAgIGNhc2UgRVZQX1BLRVlfRFNBOgotIAkg IHNpZ25fYWxnb25hbWUgPSBEU0lHX0RTQV9TSEExX0FMR087Ci0gCSAgZW5jX2FsZ29uYW1lID0g WEVOQ19EU0FfQUxHTzsKLS0JICBkc2EgPSBjbGlfcGstPnBrZXkuZHNhOwotKwkgIGRzYSA9IEVW UF9QS0VZX2dldDBfRFNBKGNsaV9wayk7Ci0gCSAgYnJlYWs7Ci0gICAgICAgY2FzZSBFVlBfUEtF WV9SU0E6Ci0gCSAgc2lnbl9hbGdvbmFtZSA9IERTSUdfUlNBX1NIQTFfQUxHTzsKLSAJICBlbmNf YWxnb25hbWUgPSBYRU5DX1JTQV9BTEdPOwotLQkgIHJzYSA9IGNsaV9way0+cGtleS5yc2E7Ci0r CSAgcnNhID0gRVZQX1BLRVlfZ2V0MF9SU0EoY2xpX3BrKTsKLSAJICBicmVhazsKLSAgICAgICBk ZWZhdWx0OgotIAkgICplcnJfcmV0ID0gc3J2X21ha2VfbmV3X2Vycm9yICgiNDIwMDAiLCAiWEVD WFgiLCAiVGhlIHR5cGUgb2YgcHVibGljIGtleSBpcyBub3Qgc3VwcG9ydGVkIG11cyB0YmUgUlNB IG9yIERTQSIpOwotQEAgLTcwMzIsMTkgKzcwNzMsMTkgQEAgYmlmX3hlbmNfcGtjczEyX2V4cG9y dCAoY2FkZHJfdCAqIHFzdCwgYwotICAgaWYgKGV4cG9ydF9jaGFpbikKLSAgICAgewotICAgICAg IGludCBpOwotLSAgICAgIFg1MDlfU1RPUkVfQ1RYIHN0b3JlX2N0eDsKLS0gICAgICBYNTA5X1NU T1JFX0NUWF9pbml0ICgmc3RvcmVfY3R4LCBDQV9jZXJ0cywgeCwgTlVMTCk7Ci0tICAgICAgaWYg KFg1MDlfdmVyaWZ5X2NlcnQgKCZzdG9yZV9jdHgpID4gMCkKLS0JY2hhaW4gPSBYNTA5X1NUT1JF X0NUWF9nZXQxX2NoYWluICgmc3RvcmVfY3R4KTsKLSsgICAgICBYNTA5X1NUT1JFX0NUWCAqY3R4 OwotKyAgICAgIFg1MDlfU1RPUkVfQ1RYX2luaXQgKGN0eCwgQ0FfY2VydHMsIHgsIE5VTEwpOwot KyAgICAgIGlmIChYNTA5X3ZlcmlmeV9jZXJ0IChjdHgpID4gMCkKLSsJY2hhaW4gPSBYNTA5X1NU T1JFX0NUWF9nZXQxX2NoYWluIChjdHgpOwotICAgICAgIGVsc2UKLSAJewotIAkgIGNvbnN0IGNo YXIgKmVycl9zdHI7Ci0tCSAgZXJyX3N0ciA9IFg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5n IChzdG9yZV9jdHguZXJyb3IpOwotKwkgIGVycl9zdHIgPSBYNTA5X3ZlcmlmeV9jZXJ0X2Vycm9y X3N0cmluZyAoWDUwOV9TVE9SRV9DVFhfZ2V0X2Vycm9yKGN0eCkpOwotIAkgICplcnJfcmV0ID0g c3J2X21ha2VfbmV3X2Vycm9yICgiMjIwMjMiLCAiWEVOQ1giLCAiWDUwOSBlcnJvcjogJXMiLCBl cnJfc3RyKTsKLS0JICBYNTA5X1NUT1JFX0NUWF9jbGVhbnVwICgmc3RvcmVfY3R4KTsKLSsJICBY NTA5X1NUT1JFX0NUWF9jbGVhbnVwIChjdHgpOwotIAkgIGdvdG8gZXJyOwotIAl9Ci0tICAgICAg WDUwOV9TVE9SRV9DVFhfY2xlYW51cCAoJnN0b3JlX2N0eCk7Ci0rICAgICAgWDUwOV9TVE9SRV9D VFhfY2xlYW51cCAoY3R4KTsKLSAgICAgICBpZiAoY2hhaW4pCi0gCXsKLSAJICBjZXJ0cyA9IHNr X1g1MDlfbmV3X251bGwgKCk7Ci1AQCAtNzE1MiwxNiArNzE5MywxNiBAQCBiaWZfeGVuY19wdWJr ZXlfcGVtX2V4cG9ydCAoY2FkZHJfdCAqIHFzCi0gICAgIHsKLSAgICAgICBrID0gWDUwOV9nZXRf cHVia2V5IChrZXktPnhla194NTA5KTsKLSAjaWZkZWYgRVZQX1BLRVlfUlNBCi0tICAgICAgaWYg KGstPnR5cGUgPT0gRVZQX1BLRVlfUlNBKQotKyAgICAgIGlmIChFVlBfUEtFWV9pZChrKSA9PSBF VlBfUEtFWV9SU0EpCi0gCXsKLS0JICBSU0EgKiB4ID0gay0+cGtleS5yc2E7Ci0rCSAgUlNBICp4 ID0gRVZQX1BLRVlfZ2V0MF9SU0Eoayk7Ci0gCSAgUEVNX3dyaXRlX2Jpb19SU0FfUFVCS0VZIChi LCB4KTsKLSAJfQotICNlbmRpZgotICNpZmRlZiBFVlBfUEtFWV9EU0EKLS0gICAgICBpZiAoay0+ dHlwZSA9PSBFVlBfUEtFWV9EU0EpCi0rICAgICAgaWYgKEVWUF9QS0VZX2lkKGspID09IEVWUF9Q S0VZX0RTQSkKLSAJewotLQkgIERTQSAqIHggPSBrLT5wa2V5LmRzYTsKLSsJICBEU0EgKiB4ID0g RVZQX1BLRVlfZ2V0MF9EU0Eoayk7Ci0gCSAgUEVNX3dyaXRlX2Jpb19EU0FfUFVCS0VZIChiLCB4 KTsKLSAJfQotICNlbmRpZgotQEAgLTcyMDgsMTYgKzcyNDksMTYgQEAgYmlmX3hlbmNfcHVia2V5 X2Rlcl9leHBvcnQgKGNhZGRyX3QgKiBxcwotICAgICB7Ci0gICAgICAgayA9IFg1MDlfZ2V0X3B1 YmtleSAoa2V5LT54ZWtfeDUwOSk7Ci0gI2lmZGVmIEVWUF9QS0VZX1JTQQotLSAgICAgIGlmIChr LT50eXBlID09IEVWUF9QS0VZX1JTQSkKLSsgICAgICBpZiAoRVZQX1BLRVlfaWQoaykgPT0gRVZQ X1BLRVlfUlNBKQotIAl7Ci0tCSAgUlNBICogeCA9IGstPnBrZXkucnNhOwotKwkgIFJTQSAqIHgg PSBFVlBfUEtFWV9nZXQwX1JTQShrKTsKLSAJICBpMmRfUlNBX1BVQktFWV9iaW8gKGIsIHgpOwot IAl9Ci0gI2VuZGlmCi0gI2lmZGVmIEVWUF9QS0VZX0RTQQotLSAgICAgIGlmIChrLT50eXBlID09 IEVWUF9QS0VZX0RTQSkKLSsgICAgICBpZiAoRVZQX1BLRVlfaWQoaykgPT0gRVZQX1BLRVlfRFNB KQotIAl7Ci0tCSAgRFNBICogeCA9IGstPnBrZXkuZHNhOwotKwkgIERTQSAqIHggPSBFVlBfUEtF WV9nZXQwX0RTQShrKTsKLSAJICBpMmRfRFNBX1BVQktFWV9iaW8gKGIsIHgpOwotIAl9Ci0gI2Vu ZGlmCi1AQCAtNzI0NSw3ICs3Mjg2LDcgQEAgZXJyOgotIH0KLSAKLSBzdGF0aWMgY2FkZHJfdAot LUJOMmJpbmJveCAoQklHTlVNICogeCkKLStCTjJiaW5ib3ggKGNvbnN0IEJJR05VTSAqIHgpCi0g ewotICAgc2l6ZV90IGJ1Zl9sZW4sIG47Ci0gICBjYWRkcl90IGJ1ZjsKLUBAIC03MjgwLDggKzcz MjEsMTQgQEAgc3RhdGljIGNhZGRyX3QKLSB4ZW5jX3JzYV9wdWJfbWFnaWMgKFJTQSAqIHgpCi0g ewotICAgY2FkZHJfdCByZXQ7Ci0tICBjYWRkcl90IG4gPSBCTjJiaW5ib3ggKHgtPm4pOyAvKiBt b2R1bHVzICovCi0tICBjYWRkcl90IGUgPSBCTjJiaW5ib3ggKHgtPmUpOyAvKiBwdWJsaWMgZXhw b25lbnQgKi8KLSsgIGNhZGRyX3QgbjsKLSsgIGNhZGRyX3QgZTsKLSsgIGNvbnN0IEJJR05VTSAq cnNhX24sICpyc2FfZTsKLSsKLSsgIFJTQV9nZXQwX2tleSh4LCAmcnNhX24sICZyc2FfZSwgTlVM TCk7Ci0rICBuID0gQk4yYmluYm94IChyc2Ffbik7IC8qIG1vZHVsdXMgKi8KLSsgIGUgPSBCTjJi aW5ib3ggKHJzYV9lKTsgLyogcHVibGljIGV4cG9uZW50ICovCi0rCi0gICBuID0geGVuY19lbmNv ZGVfYmFzZTY0X2JpbmJveCAobiwgMSk7Ci0gICBlID0geGVuY19lbmNvZGVfYmFzZTY0X2JpbmJv eCAoZSwgMSk7Ci0gICByZXQgPSBka19hbGxvY19ib3ggKGJveF9sZW5ndGggKG4pICsgYm94X2xl bmd0aCAoZSkgKyA0IC8qIHR3byBkb3RzIC0gb25lIHRyYWlsaW5nIHplcm8gKyBSU0EgcHJlZml4 ICovLCBEVl9TVFJJTkcpOwotQEAgLTczMDYsOSArNzM1Myw5IEBAIGJpZl94ZW5jX3B1YmtleV9t YWdpY19leHBvcnQgKGNhZGRyX3QgKgotICAgICB7Ci0gICAgICAgayA9IFg1MDlfZ2V0X3B1Ymtl eSAoa2V5LT54ZWtfeDUwOSk7Ci0gI2lmZGVmIEVWUF9QS0VZX1JTQQotLSAgICAgIGlmIChrLT50 eXBlID09IEVWUF9QS0VZX1JTQSkKLSsgICAgICBpZiAoRVZQX1BLRVlfaWQoaykgPT0gRVZQX1BL RVlfUlNBKQotIAl7Ci0tCSAgUlNBICogeCA9IGstPnBrZXkucnNhOwotKwkgIFJTQSAqIHggPSBF VlBfUEtFWV9nZXQwX1JTQShrKTsKLSAJICByZXQgPSB4ZW5jX3JzYV9wdWJfbWFnaWMgKHgpOwot IAl9Ci0gI2VuZGlmCi1AQCAtNzM0OSwxMCArNzM5NiwxNiBAQCBzdGF0aWMgY2FkZHJfdAotIHhl bmNfcnNhX3B1Yl9zc2hfZXhwb3J0IChSU0EgKiB4KQotIHsKLSAgIHN0YXRpYyBjaGFyICogc3No X2hlYWRlciA9ICJceDAwXHgwMFx4MDBceDA3c3NoLXJzYSI7Ci0rICBjb25zdCBCSUdOVU0gKnJz YV9uLCAqcnNhX2U7Ci0gICBjYWRkcl90IHJldDsKLSAgIGludCBsZW4sIHBvczsKLS0gIGNhZGRy X3QgbiA9IEJOMmJpbmJveCAoeC0+bik7IC8qIG1vZHVsdXMgKi8KLS0gIGNhZGRyX3QgZSA9IEJO MmJpbmJveCAoeC0+ZSk7IC8qIHB1YmxpYyBleHBvbmVudCAqLwotKyAgY2FkZHJfdCBuOwotKyAg Y2FkZHJfdCBlOwotKwotKyAgUlNBX2dldDBfa2V5KHgsICZyc2FfbiwgJnJzYV9lLCBOVUxMKTsK LSsgIG4gPSBCTjJiaW5ib3ggKHJzYV9uKTsgLyogbW9kdWx1cyAqLwotKyAgZSA9IEJOMmJpbmJv eCAocnNhX2UpOyAvKiBwdWJsaWMgZXhwb25lbnQgKi8KLSsKLSAgIGxlbiA9IDExICsgOCArIGJv eF9sZW5ndGggKG4pICsgYm94X2xlbmd0aCAoZSk7Ci0gICBpZiAoblswXSAmIDB4ODApCi0gICAg IGxlbiArKzsKLUBAIC03MzgzLDkgKzc0MzYsOSBAQCBiaWZfeGVuY19wdWJrZXlfc3NoX2V4cG9y dCAoY2FkZHJfdCAqIHFzCi0gICAgIHsKLSAgICAgICBrID0gWDUwOV9nZXRfcHVia2V5IChrZXkt Pnhla194NTA5KTsKLSAjaWZkZWYgRVZQX1BLRVlfUlNBCi0tICAgICAgaWYgKGstPnR5cGUgPT0g RVZQX1BLRVlfUlNBKQotKyAgICAgIGlmIChFVlBfUEtFWV9pZChrKSA9PSBFVlBfUEtFWV9SU0Ep Ci0gCXsKLS0JICBSU0EgKiB4ID0gay0+cGtleS5yc2E7Ci0rCSAgUlNBICogeCA9IEVWUF9QS0VZ X2dldDBfUlNBKGspOwotIAkgIHJldCA9IHhlbmNfcnNhX3B1Yl9zc2hfZXhwb3J0ICh4KTsKLSAJ fQotICNlbmRpZgotQEAgLTc0MTgsNyArNzQ3MSw3IEBAIGJpZl94ZW5jX1NQS0lfcmVhZCAoY2Fk ZHJfdCAqIHFzdCwgY2FkZHIKLSAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotICAgcGsgPSBO RVRTQ0FQRV9TUEtJX2dldF9wdWJrZXkgKHNwa2kpOwotLSAgaWYgKCFwayB8fCBway0+dHlwZSAh PSBFVlBfUEtFWV9SU0EpCi0rICBpZiAoIXBrIHx8IEVWUF9QS0VZX2lkKHBrKSAhPSBFVlBfUEtF WV9SU0EpCi0gICAgIHsKLSAgICAgICBORVRTQ0FQRV9TUEtJX2ZyZWUgKHNwa2kpOwotICAgICAg ICplcnJfcmV0ID0gc3J2X21ha2VfbmV3X2Vycm9yICgiNDIwMDAiLCAiWEVDWFgiLCAiQ2FuIG5v dCByZXRyaWV2ZSBSU0Ega2V5Iik7Ci1AQCAtNzU5NSwxNCArNzY0OCwxNCBAQCBiaWZfeGVuY194 NTA5X2NhX2NlcnRzX2xpc3QgKGNhZGRyX3QgKiBxCi0gICBzZWNfY2hlY2tfZGJhICgoUUkqKXFz dCwgbWUpOwotICAgaW4gPSBCSU9fbmV3IChCSU9fc19tZW0gKCkpOwotICAgbXV0ZXhfZW50ZXIg KHhlbmNfa2V5c19tdHgpOwotLSAgY2VydHMgPSBDQV9jZXJ0cy0+b2JqczsKLSsgIGNlcnRzID0g WDUwOV9TVE9SRV9nZXQwX29iamVjdHMoQ0FfY2VydHMpOwotICAgbGVuID0gc2tfWDUwOV9PQkpF Q1RfbnVtIChjZXJ0cyk7Ci0gICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCi0gICAgIHsKLSAg ICAgICBYNTA5X09CSkVDVCAqIG9iaiA9IHNrX1g1MDlfT0JKRUNUX3ZhbHVlIChjZXJ0cywgaSk7 Ci0tICAgICAgaWYgKG9iai0+dHlwZSA9PSBYNTA5X0xVX1g1MDkpCi0rICAgICAgaWYgKFg1MDlf T0JKRUNUX2dldF90eXBlKG9iaikgPT0gWDUwOV9MVV9YNTA5KQotIAl7Ci0tCSAgWDUwOSAqeCA9 IG9iai0+ZGF0YS54NTA5OwotKwkgIFg1MDkgKnggPSBYNTA5X09CSkVDVF9nZXQwX1g1MDkob2Jq KTsKLSAJICBjYWRkcl90IGl0bTsKLSAJICBpbnQgYmxlbjsKLSAJICBCSU9fcmVzZXQgKGluKTsK LS0tLSBhL2xpYnNyYy9XaS94bWxlbmMuaAotKysrIGIvbGlic3JjL1dpL3htbGVuYy5oCi1AQCAt MzgsNiArMzgsNyBAQAotICNpbmNsdWRlIDxvcGVuc3NsL2RzYS5oPgotICNpbmNsdWRlIDxvcGVu c3NsL3JzYS5oPgotICNpbmNsdWRlIDxvcGVuc3NsL2Rlcy5oPgotKyNpbmNsdWRlIDxvcGVuc3Ns L2htYWMuaD4KLSAKLSAjaWZkZWYgQUVTX0VOQ19FTkFCTEUKLSAjaW5jbHVkZSA8b3BlbnNzbC9h ZXMuaD4KLUBAIC02MzEsNSArNjMyLDE4MyBAQCBjYWRkcl90ICogeG1sX2ZpbmRfYW55X2NoaWxk IChjYWRkcl90ICoKLSAKLSBleHRlcm4gZGtfbXV0ZXhfdCAqIHhlbmNfa2V5c19tdHg7Ci0gCi0r I2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDAwCi0rCi0rc3RhdGljIGlubGlu ZSBITUFDX0NUWCAqSE1BQ19DVFhfbmV3KHZvaWQpCi0rewotKwlITUFDX0NUWCAqcDsKLSsKLSsJ cCA9IGNhbGxvYygxLCBzaXplb2YoSE1BQ19DVFgpKTsKLSsJaWYgKCFwKQotKwkJcmV0dXJuIHA7 Ci0rCUhNQUNfQ1RYX2luaXQocCk7Ci0rCXJldHVybiBwOwotK30KLSsKLStzdGF0aWMgaW5saW5l IHZvaWQgSE1BQ19DVFhfZnJlZShITUFDX0NUWCAqY3R4KQotK3sKLSsJSE1BQ19DVFhfY2xlYW51 cChjdHgpOwotKwlmcmVlKGN0eCk7Ci0rfQotKwotK3N0YXRpYyBpbmxpbmUgdm9pZCBSU0FfZ2V0 MF9rZXkoY29uc3QgUlNBICpyLCBjb25zdCBCSUdOVU0gKipuLAotKwkJCQljb25zdCBCSUdOVU0g KiplLCBjb25zdCBCSUdOVU0gKipkKQotK3sKLSsJaWYgKG4gIT0gTlVMTCkKLSsJCSpuID0gci0+ bjsKLSsJaWYgKGUgIT0gTlVMTCkKLSsJCSplID0gci0+ZTsKLSsJaWYgKGQgIT0gTlVMTCkKLSsJ CSpkID0gci0+ZDsKLSt9Ci0rCi0rc3RhdGljIGlubGluZSB2b2lkIFJTQV9nZXQwX2ZhY3RvcnMo Y29uc3QgUlNBICpyLCBjb25zdCBCSUdOVU0gKipwLAotKwkJCQkgICAgY29uc3QgQklHTlVNICoq cSkKLSt7Ci0rCWlmIChwICE9IE5VTEwpCi0rCQkqcCA9IHItPnA7Ci0rCWlmIChxICE9IE5VTEwp Ci0rCQkqcSA9IHItPnE7Ci0rfQotKwotK3N0YXRpYyBpbmxpbmUgUlNBICpFVlBfUEtFWV9nZXQw X1JTQShFVlBfUEtFWSAqcGtleSkKLSt7Ci0rCWlmIChwa2V5LT50eXBlICE9IEVWUF9QS0VZX1JT QSkKLSsJCXJldHVybiBOVUxMOwotKwlyZXR1cm4gcGtleS0+cGtleS5yc2E7Ci0rfQotKwotK3N0 YXRpYyBpbmxpbmUgdm9pZCBESF9nZXQwX2tleShjb25zdCBESCAqZGgsIGNvbnN0IEJJR05VTSAq KnB1Yl9rZXksCi0rCQkJICAgICAgIGNvbnN0IEJJR05VTSAqKnByaXZfa2V5KQotK3sKLSsJaWYg KHB1Yl9rZXkgIT0gTlVMTCkKLSsJCSpwdWJfa2V5ID0gZGgtPnB1Yl9rZXk7Ci0rCWlmIChwcml2 X2tleSAhPSBOVUxMKQotKwkJKnByaXZfa2V5ID0gZGgtPnByaXZfa2V5OwotK30KLSsKLSsKLStz dGF0aWMgaW5saW5lIHZvaWQgREhfZ2V0MF9wcWcoY29uc3QgREggKmRoLCBjb25zdCBCSUdOVU0g KipwLCBjb25zdCBCSUdOVU0gKipxLAotKwkJCSAgICAgICBjb25zdCBCSUdOVU0gKipnKQotK3sK LSsJaWYgKHAgIT0gTlVMTCkKLSsJCSpwID0gZGgtPnA7Ci0rCWlmIChxICE9IE5VTEwpCi0rCQkq cSA9IGRoLT5xOwotKwlpZiAoZyAhPSBOVUxMKQotKwkJKmcgPSBkaC0+ZzsKLSt9Ci0rCi0rc3Rh dGljIGlubGluZSBEU0EgKkVWUF9QS0VZX2dldDBfRFNBKEVWUF9QS0VZICpwa2V5KQotK3sKLSsJ aWYgKHBrZXktPnR5cGUgIT0gRVZQX1BLRVlfRFNBKQotKwkJcmV0dXJuIE5VTEw7Ci0rCXJldHVy biBwa2V5LT5wa2V5LmRzYTsKLSt9Ci0rCi0rc3RhdGljIGlubGluZSBpbnQgREhfc2V0MF9wcWco REggKmRoLCBCSUdOVU0gKnAsIEJJR05VTSAqcSwgQklHTlVNICpnKQotK3sKLSsJLyogSWYgdGhl IGZpZWxkcyBwIGFuZCBnIGluIGQgYXJlIE5VTEwsIHRoZSBjb3JyZXNwb25kaW5nIGlucHV0Ci0r CSAqIHBhcmFtZXRlcnMgTVVTVCBiZSBub24tTlVMTC4gIHEgbWF5IHJlbWFpbiBOVUxMLgotKwkg Ki8KLSsJaWYgKChkaC0+cCA9PSBOVUxMICYmIHAgPT0gTlVMTCkKLSsJICAgIHx8IChkaC0+ZyA9 PSBOVUxMICYmIGcgPT0gTlVMTCkpCi0rCQlyZXR1cm4gMDsKLSsKLSsJaWYgKHAgIT0gTlVMTCkg ewotKwkJQk5fZnJlZShkaC0+cCk7Ci0rCQlkaC0+cCA9IHA7Ci0rCX0KLSsJaWYgKHEgIT0gTlVM TCkgewotKwkJQk5fZnJlZShkaC0+cSk7Ci0rCQlkaC0+cSA9IHE7Ci0rCX0KLSsJaWYgKGcgIT0g TlVMTCkgewotKwkJQk5fZnJlZShkaC0+Zyk7Ci0rCQlkaC0+ZyA9IGc7Ci0rCX0KLSsKLSsJaWYg KHEgIT0gTlVMTCkgewotKwkJZGgtPmxlbmd0aCA9IEJOX251bV9iaXRzKHEpOwotKwl9Ci0rCi0r CXJldHVybiAxOwotK30KLSsKLStzdGF0aWMgaW5saW5lIGludCBSU0Ffc2V0MF9rZXkoUlNBICpy LCBCSUdOVU0gKm4sIEJJR05VTSAqZSwgQklHTlVNICpkKQotK3sKLSsJLyogSWYgdGhlIGZpZWxk cyBuIGFuZCBlIGluIHIgYXJlIE5VTEwsIHRoZSBjb3JyZXNwb25kaW5nIGlucHV0Ci0rCSAqIHBh cmFtZXRlcnMgTVVTVCBiZSBub24tTlVMTCBmb3IgbiBhbmQgZS4gIGQgbWF5IGJlCi0rCSAqIGxl ZnQgTlVMTCAoaW4gY2FzZSBvbmx5IHRoZSBwdWJsaWMga2V5IGlzIHVzZWQpLgotKwkgKi8KLSsJ aWYgKChyLT5uID09IE5VTEwgJiYgbiA9PSBOVUxMKQotKwkgICAgfHwgKHItPmUgPT0gTlVMTCAm JiBlID09IE5VTEwpKQotKwkJcmV0dXJuIDA7Ci0rCi0rCWlmIChuICE9IE5VTEwpIHsKLSsJCUJO X2ZyZWUoci0+bik7Ci0rCQlyLT5uID0gbjsKLSsJfQotKwlpZiAoZSAhPSBOVUxMKSB7Ci0rCQlC Tl9mcmVlKHItPmUpOwotKwkJci0+ZSA9IGU7Ci0rCX0KLSsJaWYgKGQgIT0gTlVMTCkgewotKwkJ Qk5fZnJlZShyLT5kKTsKLSsJCXItPmQgPSBkOwotKwl9Ci0rCi0rCXJldHVybiAxOwotK30KLSsK LStzdGF0aWMgaW5saW5lIHZvaWQgRFNBX2dldDBfcHFnKGNvbnN0IERTQSAqZCwgY29uc3QgQklH TlVNICoqcCwKLSsJCQkJY29uc3QgQklHTlVNICoqcSwgY29uc3QgQklHTlVNICoqZykKLSt7Ci0r CWlmIChwICE9IE5VTEwpCi0rCQkqcCA9IGQtPnA7Ci0rCWlmIChxICE9IE5VTEwpCi0rCQkqcSA9 IGQtPnE7Ci0rCWlmIChnICE9IE5VTEwpCi0rCQkqZyA9IGQtPmc7Ci0rfQotKwotK3N0YXRpYyBp bmxpbmUgdm9pZCBEU0FfZ2V0MF9rZXkoY29uc3QgRFNBICpkLCBjb25zdCBCSUdOVU0gKipwdWJf a2V5LAotKwkJCQljb25zdCBCSUdOVU0gKipwcml2X2tleSkKLSt7Ci0rCWlmIChwdWJfa2V5ICE9 IE5VTEwpCi0rCQkqcHViX2tleSA9IGQtPnB1Yl9rZXk7Ci0rCWlmIChwcml2X2tleSAhPSBOVUxM KQotKwkJKnByaXZfa2V5ID0gZC0+cHJpdl9rZXk7Ci0rfQotKwotK3N0YXRpYyBpbmxpbmUgY29u c3QgU1RBQ0tfT0YoWDUwOV9FWFRFTlNJT04pICpYNTA5X2dldDBfZXh0ZW5zaW9ucyhjb25zdCBY NTA5ICp4KQotK3sKLSsJcmV0dXJuIHgtPmNlcnRfaW5mby0+ZXh0ZW5zaW9uczsKLSt9Ci0rCi0r c3RhdGljIGlubGluZSBpbnQgWDUwOV91cF9yZWYoWDUwOSAqeCkKLSt7Ci0rCXJldHVybiBDUllQ VE9fYWRkKCZ4LT5yZWZlcmVuY2VzLCAxLCBDUllQVE9fTE9DS19YNTA5KTsKLSt9Ci0rCi0rc3Rh dGljIGlubGluZSBTVEFDS19PRihYNTA5X09CSkVDVCkgKlg1MDlfU1RPUkVfZ2V0MF9vYmplY3Rz KFg1MDlfU1RPUkUgKnYpCi0rewotKwlyZXR1cm4gdi0+b2JqczsKLSt9Ci0rCi0rc3RhdGljIGlu bGluZSBpbnQgWDUwOV9PQkpFQ1RfZ2V0X3R5cGUoY29uc3QgWDUwOV9PQkpFQ1QgKmEpCi0rewot KwlyZXR1cm4gYS0+dHlwZTsKLSt9Ci0rCi0rc3RhdGljIGlubGluZSBYNTA5ICpYNTA5X09CSkVD VF9nZXQwX1g1MDkoY29uc3QgWDUwOV9PQkpFQ1QgKmEpCi0rewotKwlpZiAoYSA9PSBOVUxMIHx8 IGEtPnR5cGUgIT0gWDUwOV9MVV9YNTA5KQotKwkJcmV0dXJuIE5VTEw7Ci0rCXJldHVybiBhLT5k YXRhLng1MDk7Ci0rfQotKwotKyNlbmRpZgotKwotICNlbmRpZgotIAotLS0tIGEvbGlic3JjL1dp L3htbGVuY19hbGdvcy5jCi0rKysgYi9saWJzcmMvV2kveG1sZW5jX2FsZ29zLmMKLUBAIC0xMTQ5 LDcgKzExNDksNyBAQCBpbnQKLSBkc2lnX2htYWNfc2hhMjU2X2RpZ2VzdCAoZGtfc2Vzc2lvbl90 ICogc2VzX2luLCBsb25nIGxlbiwgeGVuY19rZXlfdCAqIGtleSwgY2FkZHJfdCAqIHNpZ25fb3V0 KQotIHsKLSAgIHVuc2lnbmVkIGNoYXIgKiBkYXRhOwotLSAgSE1BQ19DVFggY3R4OwotKyAgSE1B Q19DVFggKmN0eDsKLSAgIHVuc2lnbmVkIGNoYXIga2V5X2RhdGFbMzIgKiA4XTsKLSAgIHVuc2ln bmVkIGNoYXIgbWQgW1NIQTI1Nl9ESUdFU1RfTEVOR1RIICsgMV07Ci0gICB1bnNpZ25lZCBjaGFy IG1kNjQgW1NIQTI1Nl9ESUdFU1RfTEVOR1RIICogMiArIDFdOwotQEAgLTExODIsNyArMTE4Miw5 IEBAIGRzaWdfaG1hY19zaGEyNTZfZGlnZXN0IChka19zZXNzaW9uX3QgKgotICAgICAgIGRlZmF1 bHQ6Ci0gCSAgcmV0dXJuIDA7Ci0gICAgIH0KLS0KLSsgIGN0eCA9IEhNQUNfQ1RYX25ldygpOwot KyAgaWYgKCFjdHgpCi0rCSAgcmV0dXJuIDA7Ci0gCi0gICBkYXRhID0gKHVuc2lnbmVkIGNoYXIg KikgZGtfYWxsb2NfYm94IChsZW4sIERWX0NfU1RSSU5HKTsKLSAgIENBVENIX1JFQURfRkFJTCAo c2VzX2luKQotQEAgLTExOTIsMTQgKzExOTQsMTUgQEAgZHNpZ19obWFjX3NoYTI1Nl9kaWdlc3Qg KGRrX3Nlc3Npb25fdCAqCi0gICBGQUlMRUQKLSAgICAgewotICAgICAgIGRrX2ZyZWVfYm94ICgo Ym94X3QpIGRhdGEpOwotKyAgICAgIEhNQUNfQ1RYX2ZyZWUoY3R4KTsKLSAgICAgICByZXR1cm4g MDsKLSAgICAgfQotICAgRU5EX1JFQURfRkFJTCAoc2VzX2luKTsKLSAKLS0gIEhNQUNfSW5pdCgm Y3R4LCAodm9pZCopIGtleV9kYXRhICwga2V5X2xlbiwgRVZQX3NoYTI1NiAoKSk7Ci0tICBITUFD X1VwZGF0ZSgmY3R4LCBkYXRhLCBsZW4pOwotLSAgSE1BQ19GaW5hbCgmY3R4LCBtZCwgJmhtYWNf bGVuKTsKLS0gIEhNQUNfY2xlYW51cCgmY3R4KTsKLSsgIEhNQUNfSW5pdF9leChjdHgsICh2b2lk Kikga2V5X2RhdGEgLCBrZXlfbGVuLCBFVlBfc2hhMjU2ICgpLCBOVUxMKTsKLSsgIEhNQUNfVXBk YXRlKGN0eCwgZGF0YSwgbGVuKTsKLSsgIEhNQUNfRmluYWwoY3R4LCBtZCwgJmhtYWNfbGVuKTsK LSsgIEhNQUNfQ1RYX2ZyZWUoY3R4KTsKLSAKLSAgIGlmIChobWFjX2xlbiAhPSBTSEEyNTZfRElH RVNUX0xFTkdUSCkKLSAgICAgR1BGX1Q7Ci1AQCAtMTIyMCw3ICsxMjIzLDcgQEAgZHNpZ19obWFj X3NoYTI1Nl9kaWdlc3QgKGRrX3Nlc3Npb25fdCAqCi0gaW50Ci0gZHNpZ19obWFjX3NoYTI1Nl92 ZXJpZnkgKGRrX3Nlc3Npb25fdCAqIHNlc19pbiwgbG9uZyBsZW4sIHhlbmNfa2V5X3QgKiBrZXks IGNhZGRyX3QgZGlnZXN0KQotIHsKLS0gIEhNQUNfQ1RYIGN0eDsKLSsgIEhNQUNfQ1RYICpjdHg7 Ci0gICB1bnNpZ25lZCBjaGFyICogZGF0YTsKLSAgIHVuc2lnbmVkIGNoYXIga2V5X2RhdGFbMyAq IDhdOwotICAgdW5zaWduZWQgY2hhciBtZCBbU0hBMjU2X0RJR0VTVF9MRU5HVEggKyAxXTsKLUBA IC0xMjQ5LDYgKzEyNTIsOSBAQCBkc2lnX2htYWNfc2hhMjU2X3ZlcmlmeSAoZGtfc2Vzc2lvbl90 ICoKLSAJICByZXR1cm4gMDsKLSAgICAgfQotIAotKyAgY3R4ID0gSE1BQ19DVFhfbmV3KCk7Ci0r ICBpZiAoIWN0eCkKLSsJICByZXR1cm4gMDsKLSAKLSAgIGRhdGEgPSAodW5zaWduZWQgY2hhciAq KSBka19hbGxvY19ib3ggKGxlbiwgRFZfQ19TVFJJTkcpOwotICAgQ0FUQ0hfUkVBRF9GQUlMIChz ZXNfaW4pCi1AQCAtMTI1OCwxNCArMTI2NCwxNSBAQCBkc2lnX2htYWNfc2hhMjU2X3ZlcmlmeSAo ZGtfc2Vzc2lvbl90ICoKLSAgIEZBSUxFRAotICAgICB7Ci0gICAgICAgZGtfZnJlZV9ib3ggKChi b3hfdCkgZGF0YSk7Ci0rICAgICAgSE1BQ19DVFhfZnJlZShjdHgpOwotICAgICAgIHJldHVybiAw OwotICAgICB9Ci0gICBFTkRfUkVBRF9GQUlMIChzZXNfaW4pOwotIAotLSAgSE1BQ19Jbml0KCZj dHgsICh2b2lkKikga2V5X2RhdGEgLCBrZXlfbGVuLCBFVlBfc2hhMjU2ICgpKTsKLS0gIEhNQUNf VXBkYXRlKCZjdHgsIGRhdGEsIGxlbik7Ci0tICBITUFDX0ZpbmFsKCZjdHgsIG1kLCAmaG1hY19s ZW4pOwotLSAgSE1BQ19jbGVhbnVwKCZjdHgpOwotKyAgSE1BQ19Jbml0X2V4KGN0eCwgKHZvaWQq KSBrZXlfZGF0YSAsIGtleV9sZW4sIEVWUF9zaGEyNTYgKCksIE5VTEwpOwotKyAgSE1BQ19VcGRh dGUoY3R4LCBkYXRhLCBsZW4pOwotKyAgSE1BQ19GaW5hbChjdHgsIG1kLCAmaG1hY19sZW4pOwot KyAgSE1BQ19DVFhfZnJlZShjdHgpOwotICAgZGtfZnJlZV9ib3ggKChib3hfdCkgZGF0YSk7Ci0g Ci0gICBsZW4xID0geGVuY19lbmNvZGVfYmFzZTY0ICgoY2hhciAqKW1kLCBtZDY0LCBobWFjX2xl bik7Ci1AQCAtMTU4Niw3ICsxNTkzLDcgQEAgaW50Ci0gZHNpZ19obWFjX3NoYTFfZGlnZXN0IChk a19zZXNzaW9uX3QgKiBzZXNfaW4sIGxvbmcgbGVuLCB4ZW5jX2tleV90ICoga2V5LCBjYWRkcl90 ICogc2lnbl9vdXQpCi0gewotICAgdW5zaWduZWQgY2hhciAqIGRhdGE7Ci0tICBITUFDX0NUWCBj dHg7Ci0rICBITUFDX0NUWCAqY3R4OwotICAgdW5zaWduZWQgY2hhciBrZXlfZGF0YVszMiAqIDhd OwotICAgdW5zaWduZWQgY2hhciBtZCBbU0hBX0RJR0VTVF9MRU5HVEggKyAxXTsKLSAgIHVuc2ln bmVkIGNoYXIgbWQ2NCBbU0hBX0RJR0VTVF9MRU5HVEggKiAyICsgMV07Ci1AQCAtMTYyMCw2ICsx NjI3LDkgQEAgZHNpZ19obWFjX3NoYTFfZGlnZXN0IChka19zZXNzaW9uX3QgKiBzZQotIAkgIHJl dHVybiAwOwotICAgICB9Ci0gCi0rICBjdHggPSBITUFDX0NUWF9uZXcoKTsKLSsgIGlmICghY3R4 KQotKwkgIHJldHVybiAwOwotIAotICAgZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIGRrX2FsbG9j X2JveCAobGVuLCBEVl9DX1NUUklORyk7Ci0gICBDQVRDSF9SRUFEX0ZBSUwgKHNlc19pbikKLUBA IC0xNjI5LDE0ICsxNjM5LDE1IEBAIGRzaWdfaG1hY19zaGExX2RpZ2VzdCAoZGtfc2Vzc2lvbl90 ICogc2UKLSAgIEZBSUxFRAotICAgICB7Ci0gICAgICAgZGtfZnJlZV9ib3ggKChib3hfdCkgZGF0 YSk7Ci0rICAgICAgSE1BQ19DVFhfZnJlZShjdHgpOwotICAgICAgIHJldHVybiAwOwotICAgICB9 Ci0gICBFTkRfUkVBRF9GQUlMIChzZXNfaW4pOwotIAotLSAgSE1BQ19Jbml0KCZjdHgsICh2b2lk Kikga2V5X2RhdGEgLCBrZXlfbGVuLCBFVlBfc2hhMSAoKSk7Ci0tICBITUFDX1VwZGF0ZSgmY3R4 LCBkYXRhLCBsZW4pOwotLSAgSE1BQ19GaW5hbCgmY3R4LCBtZCwgJmhtYWNfbGVuKTsKLS0gIEhN QUNfY2xlYW51cCgmY3R4KTsKLSsgIEhNQUNfSW5pdF9leChjdHgsICh2b2lkKikga2V5X2RhdGEg LCBrZXlfbGVuLCBFVlBfc2hhMSAoKSwgTlVMTCk7Ci0rICBITUFDX1VwZGF0ZShjdHgsIGRhdGEs IGxlbik7Ci0rICBITUFDX0ZpbmFsKGN0eCwgbWQsICZobWFjX2xlbik7Ci0rICBITUFDX0NUWF9m cmVlKGN0eCk7Ci0gCi0gICBpZiAoaG1hY19sZW4gIT0gU0hBX0RJR0VTVF9MRU5HVEgpCi0gICAg IEdQRl9UOwotQEAgLTE2NTcsNyArMTY2OCw3IEBAIGRzaWdfaG1hY19zaGExX2RpZ2VzdCAoZGtf c2Vzc2lvbl90ICogc2UKLSBpbnQKLSBkc2lnX2htYWNfc2hhMV92ZXJpZnkgKGRrX3Nlc3Npb25f dCAqIHNlc19pbiwgbG9uZyBsZW4sIHhlbmNfa2V5X3QgKiBrZXksIGNhZGRyX3QgZGlnZXN0KQot IHsKLS0gIEhNQUNfQ1RYIGN0eDsKLSsgIEhNQUNfQ1RYICpjdHg7Ci0gICB1bnNpZ25lZCBjaGFy ICogZGF0YTsKLSAgIHVuc2lnbmVkIGNoYXIga2V5X2RhdGFbMyAqIDhdOwotICAgdW5zaWduZWQg Y2hhciBtZCBbU0hBX0RJR0VTVF9MRU5HVEggKyAxXTsKLUBAIC0xNjg2LDYgKzE2OTcsOSBAQCBk c2lnX2htYWNfc2hhMV92ZXJpZnkgKGRrX3Nlc3Npb25fdCAqIHNlCi0gCSAgcmV0dXJuIDA7Ci0g ICAgIH0KLSAKLSsgIGN0eCA9IEhNQUNfQ1RYX25ldygpOwotKyAgaWYgKCFjdHgpCi0rCSAgcmV0 dXJuIDA7Ci0gCi0gICBkYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgZGtfYWxsb2NfYm94IChsZW4s IERWX0NfU1RSSU5HKTsKLSAgIENBVENIX1JFQURfRkFJTCAoc2VzX2luKQotQEAgLTE2OTUsMTQg KzE3MDksMTUgQEAgZHNpZ19obWFjX3NoYTFfdmVyaWZ5IChka19zZXNzaW9uX3QgKiBzZQotICAg RkFJTEVECi0gICAgIHsKLSAgICAgICBka19mcmVlX2JveCAoKGJveF90KSBkYXRhKTsKLSsgICAg ICBITUFDX0NUWF9mcmVlKGN0eCk7Ci0gICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAgIEVORF9S RUFEX0ZBSUwgKHNlc19pbik7Ci0gCi0tICBITUFDX0luaXQoJmN0eCwgKHZvaWQqKSBrZXlfZGF0 YSAsIGtleV9sZW4sIEVWUF9zaGExICgpKTsKLS0gIEhNQUNfVXBkYXRlKCZjdHgsIGRhdGEsIGxl bik7Ci0tICBITUFDX0ZpbmFsKCZjdHgsIG1kLCAmaG1hY19sZW4pOwotLSAgSE1BQ19jbGVhbnVw KCZjdHgpOwotKyAgSE1BQ19Jbml0X2V4KGN0eCwgKHZvaWQqKSBrZXlfZGF0YSAsIGtleV9sZW4s IEVWUF9zaGExICgpLCBOVUxMKTsKLSsgIEhNQUNfVXBkYXRlKGN0eCwgZGF0YSwgbGVuKTsKLSsg IEhNQUNfRmluYWwoY3R4LCBtZCwgJmhtYWNfbGVuKTsKLSsgIEhNQUNfQ1RYX2ZyZWUoY3R4KTsK LSAgIGRrX2ZyZWVfYm94ICgoYm94X3QpIGRhdGEpOwotIAotICAgbGVuMSA9IHhlbmNfZW5jb2Rl X2Jhc2U2NCAoKGNoYXIgKiltZCwgbWQ2NCwgaG1hY19sZW4pOwotQEAgLTE3NjMsNyArMTc3OCw3 IEBAIGludCB4ZW5jX2Flc19lbmNyeXB0b3IgKGRrX3Nlc3Npb25fdCAqIHMKLSAgIGNhZGRyX3Qg b3V0YnVmX2JlZzsKLSAgIGludCBsZW47Ci0gICBjYWRkcl90IGVuY29kZWRfb3V0OwotLSAgRVZQ X0NJUEhFUl9DVFggY3R4OwotKyAgRVZQX0NJUEhFUl9DVFggKmN0eDsKLSAgIHVuc2lnbmVkIGNo YXIgKiBpdmVjID0gJmtleS0+a2kuYWVzLml2WzBdOwotIAotICAgQ0FUQ0hfUkVBRF9GQUlMIChz ZXNfaW4pCi1AQCAtMTc3OCw3ICsxNzkzLDcgQEAgaW50IHhlbmNfYWVzX2VuY3J5cHRvciAoZGtf c2Vzc2lvbl90ICogcwotICAgRU5EX1JFQURfRkFJTCAoc2VzX2luKTsKLSAKLSAjaWYgMQotLSAg RVZQX0NJUEhFUl9DVFhfaW5pdCgmY3R4KTsKLSsgIGN0eCA9IEVWUF9DSVBIRVJfQ1RYX25ldygp OwotICAgb3V0YnVmX2JlZyA9IGRrX2FsbG9jX2JveCAoYm94X2xlbmd0aCAodGV4dCkgKyAxNiwg RFZfQklOKTsKLSAgIG1lbWNweSAob3V0YnVmX2JlZywgaXZlYywgMTYpOwotICAgb3V0YnVmID0g b3V0YnVmX2JlZyArIDE2OwotQEAgLTE3ODYsMjAgKzE4MDEsMTkgQEAgaW50IHhlbmNfYWVzX2Vu Y3J5cHRvciAoZGtfc2Vzc2lvbl90ICogcwotICAgc3dpdGNoIChrZXktPmtpLmFlcy5iaXRzKQot ICAgICB7Ci0gICAgIGNhc2UgMTI4OgotLSAgICAgIEVWUF9FbmNyeXB0SW5pdF9leCgmY3R4LCBF VlBfYWVzXzEyOF9jYmMoKSwgTlVMTCwga2V5LT5raS5hZXMuaywgaXZlYyk7Ci0rICAgICAgRVZQ X0VuY3J5cHRJbml0X2V4KGN0eCwgRVZQX2Flc18xMjhfY2JjKCksIE5VTEwsIGtleS0+a2kuYWVz LmssIGl2ZWMpOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIDE5MjoKLS0gICAgICBFVlBfRW5j cnlwdEluaXRfZXgoJmN0eCwgRVZQX2Flc18xOTJfY2JjKCksIE5VTEwsIGtleS0+a2kuYWVzLmss IGl2ZWMpOwotKyAgICAgIEVWUF9FbmNyeXB0SW5pdF9leChjdHgsIEVWUF9hZXNfMTkyX2NiYygp LCBOVUxMLCBrZXktPmtpLmFlcy5rLCBpdmVjKTsKLSAgICAgICBicmVhazsKLSAgICAgY2FzZSAy NTY6Ci0tICAgICAgRVZQX0VuY3J5cHRJbml0X2V4KCZjdHgsIEVWUF9hZXNfMjU2X2NiYygpLCBO VUxMLCBrZXktPmtpLmFlcy5rLCBpdmVjKTsKLSsgICAgICBFVlBfRW5jcnlwdEluaXRfZXgoY3R4 LCBFVlBfYWVzXzI1Nl9jYmMoKSwgTlVMTCwga2V5LT5raS5hZXMuaywgaXZlYyk7Ci0gICAgICAg YnJlYWs7Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgR1BGX1QxICgiVW5zdXBwb3J0ZWQga2V5IHNp emUiKTsKLSAgICAgfQotLSAgaWYoIUVWUF9FbmNyeXB0VXBkYXRlKCZjdHgsICh1bnNpZ25lZCBj aGFyICopb3V0YnVmLCAmb3V0bGVuLCAodW5zaWduZWQgY2hhciAqKXRleHQsIGJveF9sZW5ndGgg KHRleHQpKSkKLSsgIGlmKCFFVlBfRW5jcnlwdFVwZGF0ZShjdHgsICh1bnNpZ25lZCBjaGFyICop b3V0YnVmLCAmb3V0bGVuLCAodW5zaWduZWQgY2hhciAqKXRleHQsIGJveF9sZW5ndGggKHRleHQp KSkKLSAgICAgewotLSAgICAgIEVWUF9DSVBIRVJfQ1RYX2NsZWFudXAoJmN0eCk7Ci0gICAgICAg ZGtfZnJlZV9ib3ggKHRleHQpOwotICAgICAgIGRrX2ZyZWVfYm94IChvdXRidWZfYmVnKTsKLSAg ICAgICB4ZW5jX3JlcG9ydF9lcnJvciAodCwgNTAwLCBYRU5DX0VOQ19FUlIsICJBRVMgZW5jcnlw dGlvbiBpbnRlcm5hbCBlcnJvciAjMiIpOwotQEAgLTE4MTIsNyArMTgyNiw3IEBAIGludCB4ZW5j X2Flc19lbmNyeXB0b3IgKGRrX3Nlc3Npb25fdCAqIHMKLSAgICAgICB4ZW5jX3JlcG9ydF9lcnJv ciAodCwgNTAwLCBYRU5DX0VOQ19FUlIsICJBRVMgZW5jcnlwdGlvbiBpbnRlcm5hbCBlcnJvciAj MyIpOwotICAgICAgIH0gKi8KLSAgIC8qIG91dGxlbiArPSB0bXBsZW47ICovCi0tICBFVlBfQ0lQ SEVSX0NUWF9jbGVhbnVwKCZjdHgpOwotKyAgRVZQX0NJUEhFUl9DVFhfZnJlZShjdHgpOwotIAot ICNlbHNlCi0gICBvdXRidWZfYmVnID0gZGtfYWxsb2NfYm94IChib3hfbGVuZ3RoICh0ZXh0KSAr IDE2IC8qIGl2ICovLCBEVl9CSU4pOwotQEAgLTIwNTAsNiArMjA2NCw3IEBAIHhlbmNfcnNhX2Rl Y3J5cHRvciAoZGtfc2Vzc2lvbl90ICogc2VzX2kKLSAgIGludCBsZW4gPSAwOwotICAgaW50IGtl eXNpemU7Ci0gICBSU0EgKiByc2EgPSBrZXktPnhla19wcml2YXRlX3JzYTsKLSsgIGNvbnN0IEJJ R05VTSAqcCwgKnE7Ci0gCi0gICBpZiAoIXNlc2xlbikKLSAgICAgewotQEAgLTIwNjIsOSArMjA3 Nyw5IEBAIHhlbmNfcnNhX2RlY3J5cHRvciAoZGtfc2Vzc2lvbl90ICogc2VzX2kKLSAgICAgICB4 ZW5jX3JlcG9ydF9lcnJvciAodCwgNTAwICsgc3RybGVuIChrZXktPnhla19uYW1lKSwgWEVOQ19F TkNfRVJSLCAiY291bGQgbm90IG1ha2UgUlNBIGRlY3J5cHRpb24gW2tleSAlcyBpcyBub3QgUlNB XSIsIGtleS0+eGVrX25hbWUpOwotICAgICAgIHJldHVybiAwOwotICAgICB9Ci0rICBSU0FfZ2V0 MF9mYWN0b3JzKHJzYSwgJnAsICZxKTsKLSAgIGlmICghcnNhIHx8Ci0tICAgICAgIXJzYS0+cCB8 fAotLSAgICAgICFyc2EtPnEpCi0rICAgICAgIXAgfHwgIXEpCi0gICAgIHsKLSAgICAgICBpZiAo a2V5LT54ZWtfeDUwOV9LSSkKLSAJa2V5ID0geGVuY19nZXRfa2V5X2J5X2tleWlkZW50aWZpZXIg KGtleS0+eGVrX3g1MDlfS0ksIDEpOwotLS0tIGEvbGlic3JjL3V0aWwvc3NsZW5naW5lLmMKLSsr KyBiL2xpYnNyYy91dGlsL3NzbGVuZ2luZS5jCi1AQCAtMjksNyArMjksMTEgQEAKLSBpbnQKLSBz c2xfZW5naW5lX3N0YXJ0dXAgKHZvaWQpCi0gewotLSAgQ1JZUFRPX21hbGxvY19pbml0ICgpOwot KyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMCB8fCBkZWZpbmVkIExJQlJF U1NMX1ZFUlNJT05fTlVNQkVSCi0rCUNSWVBUT19tYWxsb2NfaW5pdCAoKTsKLSsjZWxzZQotKwlP UEVOU1NMX21hbGxvY19pbml0KCk7Ci0rI2VuZGlmCi0gICBFUlJfbG9hZF9jcnlwdG9fc3RyaW5n cygpOwotICAgT3BlblNTTF9hZGRfYWxsX2FsZ29yaXRobXMoKTsKLSAKLS0tLSBhL2xpYnNyYy9X aS9odHRwLmMKLSsrKyBiL2xpYnNyYy9XaS9odHRwLmMKLUBAIC04ODg2LDcgKzg4ODYsNyBAQCBz c2xfc2VydmVyX3NldF9jZXJ0aWZpY2F0ZSAoU1NMX0NUWCogc3NsCi0gCQkgIGxvZ19lcnJvciAo IlNTTDogVGhlIHN0b3JlZCBjZXJ0aWZpY2F0ZSAnJXMnIGNhbiBub3QgYmUgdXNlZCBhcyBleHRy YSBjaGFpbiBjZXJ0aWZpY2F0ZSIsIHRvayk7Ci0gCQkgIGJyZWFrOwotIAkJfQotLQkgICAgICBD UllQVE9fYWRkKCZrLT54ZWtfeDUwOS0+cmVmZXJlbmNlcywgMSwgQ1JZUFRPX0xPQ0tfWDUwOSk7 Ci0rCSAgICAgIFg1MDlfdXBfcmVmKGstPnhla194NTA5KTsKLSAgICAgICAgICAgICAgIHRvayA9 IHN0cnRva19yIChOVUxMLCAiLCIsICZ0b2tfcyk7Ci0gCSAgICB9Ci0gCSAgZGtfZnJlZV9ib3gg KHN0cik7Ci0tLS0gYS9saWJzcmMvRGsvRGtlcm5lbC5jCi0rKysgYi9saWJzcmMvRGsvRGtlcm5l bC5jCi1AQCAtNTI4MCw3ICs1MjgwLDExIEBAIHNzbF9zZXJ2ZXJfaW5pdCAoKQotICAgfQotICNl bmRpZgotIAotLSAgU1NMZWF5X2FkZF9hbGxfYWxnb3JpdGhtcyAoKTsKLSsjaWYgT1BFTlNTTF9W RVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDAKLSsgIFNTTGVheV9hZGRfYWxsX2FsZ29yaXRobXMo KTsKLSsjZWxzZQotKyAgT3BlblNTTF9hZGRfYWxsX2FsZ29yaXRobXMoKTsKLSsjZW5kaWYKLSAg IFBLQ1MxMl9QQkVfYWRkICgpOwkJLyogc3R1YiAqLwotIAotICNpZmRlZiBOT19USFJFQUQKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvdmlydHVvc28vcGF0Y2hlcy9zc2wxLjFfbW9yZS5wYXRjaCBiL3Ny Y3BrZ3MvdmlydHVvc28vcGF0Y2hlcy9zc2wxLjFfbW9yZS5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggNjZlNTBlYzEyN2JhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy92 aXJ0dW9zby9wYXRjaGVzL3NzbDEuMV9tb3JlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAg KzAsMCBAQAotRGVzY3JpcHRpb246IENvbW1lbnQgdW5rbm93biBkZWZpbml0aW9uIGluIHNzbDEu MSAtIHBsZWFzZSByZXZpZXchCi1BdXRob3I6IEFuZHJlYXMgVGlsbGUgPHRpbGxlQGRlYmlhbi5v cmc+Ci1CdWctRGViaWFuOiBodHRwczovL2J1Z3MuZGViaWFuLm9yZy84Mjg1OTQKLUxhc3QtVXBk YXRlOiBNbyAxMS4gRmViIDEzOjUwOjE3IENFVCAyMDE5Ci0KLS0tLSBhL2xpYnNyYy9Eay9Ea2Vy bmVsLmMKLSsrKyBiL2xpYnNyYy9Eay9Ea2VybmVsLmMKLUBAIC01MTYxLDEwICs1MTYxLDEyIEBA IHNzbF9jdHhfc2V0X3Byb3RvY29sX29wdGlvbnMoU1NMX0NUWCAqY3QKLSAgICAgICBlbHNlIGlm ICghc3RyY2FzZWNtcCAobmFtZSwgIlRMU3YxXzIiKSB8fCAhc3RyY2FzZWNtcCAobmFtZSwgIlRM U3YxLjIiKSkKLSAJb3B0ID0gU1NMX1BST1RPQ09MX1RMU1YxXzI7Ci0gI2VuZGlmCi0rLyoKLSAj aWYgZGVmaW5lZCAoU1NMX09QX05PX1RMU3YxXzMpCi0gICAgICAgZWxzZSBpZiAoIXN0cmNhc2Vj bXAgKG5hbWUsICJUTFN2MV8zIikgfHwgIXN0cmNhc2VjbXAgKG5hbWUsICJUTFN2MS4zIikpCi0g CW9wdCA9IFNTTF9QUk9UT0NPTF9UTFNWMV8zOwotICNlbmRpZgotKyovCi0gICAgICAgZWxzZSBp ZiAoIXN0cmNhc2VjbXAgKG5hbWUsICJBTEwiKSkKLSAJb3B0ID0gU1NMX1BST1RPQ09MX0FMTDsK LSAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvdXNlLW1r c3RlbXAucGF0Y2ggYi9zcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvdXNlLW1rc3RlbXAucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3MWI3ZTQxN2JkOS4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvdmlydHVvc28vcGF0Y2hlcy91c2UtbWtzdGVtcC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVNvdXJjZTogQHB1bGxtb2xsCi1VcHN0cmVhbTogbm8K LVJlYXNvbjogQXZvaWQgbWt0ZW1wKDMpIGJlY2F1c2UgIk5ldmVyIHVzZSB0aGlzIGZ1bmN0aW9u OyBzZWUgQlVHUy4iCi0KLS0tLSBhL2xpYnNyYy9Eay9Ea3Nlc3N0ci5jCTIwMTgtMDgtMTYgMDE6 MDY6MjEuMDAwMDAwMDAwICswMjAwCi0rKysgYi9saWJzcmMvRGsvRGtzZXNzdHIuYwkyMDIwLTAx LTI3IDE1OjIyOjAwLjk1Mzg3NjI1MSArMDEwMAotQEAgLTI5OCw4ICsyOTgsMTAgQEAKLSAgICAg ICBpZiAoIXNlczItPnNlc19maWxlLT5zZXNfbWF4X2Jsb2Nrc19pbl9tZW0pCi0gCXsKLSAJICBj aGFyIGZuYW1lW1BBVEhfTUFYICsgMV07Ci0rICAgICAgICAgIGludCBmZDsKLSAJICBzbnByaW50 ZiAoZm5hbWUsIHNpemVvZiAoZm5hbWUpLCAiJXMvc2VzWFhYWFhYIiwgc2VzX3RtcF9kaXIpOwot LQkgIG1rdGVtcCAoZm5hbWUpOwotKwkgIGZkID0gbWtzdGVtcCAoZm5hbWUpOwotKyAgICAgICAg ICBjbG9zZSAoZmQpOwotIAotICNpZiBkZWZpbmVkIChXSU4zMikKLSAjIGRlZmluZSBPUEVOX0ZM QUdTICAJICBPX0NSRUFUIHwgT19SRFdSIHwgT19CSU5BUlkgfCBPX0VYQ0wgfCBPX1RFTVBPUkFS WQpkaWZmIC0tZ2l0IGEvc3JjcGtncy92aXJ0dW9zby90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmlydHVv c28vdGVtcGxhdGUKaW5kZXggNzNlNTkwMjNkMzVlLi43ODM5MDlmMGRlMTQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvdmlydHVvc28vdGVtcGxhdGUKKysrIGIvc3JjcGtncy92aXJ0dW9zby90ZW1wbGF0 ZQpAQCAtMSwxOCArMSwxOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndmlydHVvc28nCiBwa2du YW1lPXZpcnR1b3NvCi12ZXJzaW9uPTcuMi41LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249Ny4yLjgK K3JldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0bGUqIgogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXN0YXRpYyIKLWhvc3Rt YWtlZGVwZW5kcz0iYXV0b21ha2UgbGlidG9vbCBmbGV4IGdwZXJmIG5ldC10b29scyIKK2hvc3Rt YWtlZGVwZW5kcz0iYXV0b21ha2UgbGlidG9vbCBmbGV4IGdwZXJmIG5ldC10b29scyB3aGljaCIK IG1ha2VkZXBlbmRzPSJvcGVuc3NsLWRldmVsIGxpYmxkYXAtZGV2ZWwgcmVhZGxpbmUtZGV2ZWwg bGlieG1sMi1kZXZlbCBtaXQta3JiNS1kZXZlbCIKK2NoZWNrZGVwZW5kcz0icHJvY3BzLW5nIHVu emlwIGN1cmwiCiBzaG9ydF9kZXNjPSJTY2FsYWJsZSBjcm9zcy1wbGF0Zm9ybSBzZXJ2ZXIgb2Yg dmlydHVvc28iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+Igot bGljZW5zZT0iR1BMLTIiCitsaWNlbnNlPSJHUEwtMi4wLW9ubHkiCiBob21lcGFnZT0iaHR0cDov L3ZpcnR1b3NvLm9wZW5saW5rc3cuY29tL3dpa2kvbWFpbi9NYWluLyIKIGRpc3RmaWxlcz0iaHR0 cHM6Ly9naXRodWIuY29tL29wZW5saW5rL3ZpcnR1b3NvLW9wZW5zb3VyY2UvYXJjaGl2ZS92JHt2 ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0zZTQ4MDdlOTQwOThiODI2NWY4Y2YwMDg2N2QxMjE1 YmIxZTlkMGQyNzQ4NzhlNTlhNDIwNzQyZDJkZTQ3MWMyCitjaGVja3N1bT1iN2E4Yjc5OTQzYWVm N2RlMWQ3ZjdhOTg0MDI3NzQ3Nzc2YWIwYjQ0Y2Y2ZTE2MGNiZDY2MDg1ZTViZDkxZWQ1CiAjIGNh bm5vdCBleGVjdXRlIGJpbmFyeSBmaWxlOiBFeGVjIGZvcm1hdCBlcnJvcgogbm9jcm9zcz0iaHR0 cHM6Ly9idWlsZC52b2lkbGludXgub3JnL2J1aWxkZXJzL2FybXY2bF9idWlsZGVyL2J1aWxkcy8y OTE4Ny9zdGVwcy9zaGVsbF8zL2xvZ3Mvc3RkaW8iCiAKQEAgLTQ1LDggKzQ1LDYgQEAgcG9zdF9p bnN0YWxsKCkgewogCXJtICR7REVTVERJUn0vdXNyL2xpYi92aXJ0b2RiY19yLnthLHNvfQogCXJt ICR7REVTVERJUn0vdXNyL2xpYi92aXJ0b2RiY3Uue2Esc299CiAJcm0gJHtERVNURElSfS91c3Iv bGliL3ZpcnRvZGJjdV9yLnthLHNvfQotCSMgcmVtb3ZlIHN0YXRpYyBsaWJzLgotCXJtICR7REVT VERJUn0vdXNyL2xpYi92aXJ0dW9zby1vcGVuc291cmNlLSR7dmVyc2lvbiUlLip9L2hvc3Rpbmcv Ki5hCiB9CiAKIHZpcnR1b3NvLWJhc2VfcGFja2FnZSgpIHsKQEAgLTYyLDYgKzYwLDYgQEAgdmly dHVvc28tYmFzZV9wYWNrYWdlKCkgewogCQkJCSR7UEtHREVTVERJUn0vdXNyL2Jpbi8ke2Jpbn0t dnQKIAkJZG9uZQogCQkjIFJlbW92ZSBzdGF0aWMgbGlicyBhbmQgbGlidG9vbCBhcmNoaXZlcy4K LQkJcm0gLWYgJHtQS0dERVNURElSfS91c3IvbGliLyoue2EsbGF9CisJCXJtIC1mICR7UEtHREVT VERJUn0vdXNyL2xpYi8qLmxhCiAJfQogfQoKRnJvbSAyOGQyMWRhNGQ5MTlhN2E4NGIwNmFmNDFk YmFlYzRlZDUzNTMyOTA3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLbGFyYSBNb2Rp biA8a2xhcmFzbW9kaW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDcgTWFyIDIwMjMgMDI6MDg6Mzcg KzAxMDAKU3ViamVjdDogW1BBVENIIDIvMl0gdmlydHVvc286IHVwZGF0ZSB0byA3LjIuOQoKLS0t CiBzcmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvZml4LWdyYXBocWwucGF0Y2ggfCAxMSAtLS0tLS0t LS0tLQogc3JjcGtncy92aXJ0dW9zby90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwgIDYgKysr LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL2ZpeC1ncmFwaHFsLnBh dGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL2ZpeC1ncmFwaHFsLnBh dGNoIGIvc3JjcGtncy92aXJ0dW9zby9wYXRjaGVzL2ZpeC1ncmFwaHFsLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDRiM2U0NWM0N2EuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL3ZpcnR1b3NvL3BhdGNoZXMvZml4LWdyYXBocWwucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxMSArMCwwIEBACi0tLS0gYS9iaW5zcmMvZ3JhcGhxbC9ncmFwaHFsX3BsdWdpbi5jCTIw MjMtMDItMDEgMjE6MTQ6MTguMTQ4NDc4NTAwICswMTAwCi0rKysgYi9iaW5zcmMvZ3JhcGhxbC9n cmFwaHFsX3BsdWdpbi5jCTIwMjItMTAtMTkgMTQ6NDQ6MTQuMDAwMDAwMDAwICswMjAwCi1AQCAt MTczLDcgKzE3Myw3IEBACi0gCi0gc3RhdGljIHVuaXRfdmVyc2lvbl90IHBsdWdpbl9ncmFwaHFs X3ZlcnNpb24gPSB7Ci0gICAiR3JhcGhRTC9TUEFSUUwgQnJpZGdlIiwJLyohPCBUaXRsZSBvZiB1 bml0LCBmaWxsZWQgYnkgdW5pdCAqLwotLSAgR1FMX0JSSURHRV9WRVIgIiAoIiBHSVRfSEVBRF9T VFIgIikiLAkvKiE8IFZlcnNpb24gbnVtYmVyLCBmaWxsZWQgYnkgdW5pdCAqLwotKyAgR1FMX0JS SURHRV9WRVIsCQkvKiE8IFZlcnNpb24gbnVtYmVyLCBmaWxsZWQgYnkgdW5pdCAqLwotICAgIk9w ZW5MaW5rIFNvZnR3YXJlIiwJCS8qITwgUGx1Z2luJ3MgZGV2ZWxvcGVyLCBmaWxsZWQgYnkgdW5p dCAqLwotICAgIlN1cHBvcnQgZnVuY3Rpb25zIGZvciBHcmFwaFFML1NQQVJRTCBCcmlkZ2UiLAkv KiE8IEFueSBhZGRpdGlvbmFsIGluZm8sIGZpbGxlZCBieSB1bml0ICovCi0gICAwLAkJCQkvKiE8 IEVycm9yIG1lc3NhZ2UsIGZpbGxlZCBieSB1bml0IGxvYWRlciAqLwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy92aXJ0dW9zby90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmlydHVvc28vdGVtcGxhdGUKaW5kZXgg NzgzOTA5ZjBkZTE0Li5kZmU3NDMwMTZlNWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmlydHVvc28v dGVtcGxhdGUKKysrIGIvc3JjcGtncy92aXJ0dW9zby90ZW1wbGF0ZQpAQCAtMSwxOCArMSwxOCBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndmlydHVvc28nCiBwa2duYW1lPXZpcnR1b3NvCi12ZXJz aW9uPTcuMi44Cit2ZXJzaW9uPTcuMi45CiByZXZpc2lvbj0xCiBhcmNocz0ieDg2XzY0KiBhYXJj aDY0KiBwcGM2NGxlKiIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5k cz0iYXV0b21ha2UgbGlidG9vbCBmbGV4IGdwZXJmIG5ldC10b29scyB3aGljaCIKIG1ha2VkZXBl bmRzPSJvcGVuc3NsLWRldmVsIGxpYmxkYXAtZGV2ZWwgcmVhZGxpbmUtZGV2ZWwgbGlieG1sMi1k ZXZlbCBtaXQta3JiNS1kZXZlbCIKLWNoZWNrZGVwZW5kcz0icHJvY3BzLW5nIHVuemlwIGN1cmwi CitjaGVja2RlcGVuZHM9InByb2Nwcy1uZyB1bnppcCBjdXJsIHdnZXQiCiBzaG9ydF9kZXNjPSJT Y2FsYWJsZSBjcm9zcy1wbGF0Zm9ybSBzZXJ2ZXIgb2YgdmlydHVvc28iCiBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vbmx5Igog aG9tZXBhZ2U9Imh0dHA6Ly92aXJ0dW9zby5vcGVubGlua3N3LmNvbS93aWtpL21haW4vTWFpbi8i CiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVubGluay92aXJ0dW9zby1vcGVuc291 cmNlL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09YjdhOGI3OTk0M2FlZjdk ZTFkN2Y3YTk4NDAyNzc0Nzc3NmFiMGI0NGNmNmUxNjBjYmQ2NjA4NWU1YmQ5MWVkNQorY2hlY2tz dW09NjM5YmJhZDg2MGViN2EyYmRhMDVhNjUxMTA5OTljYmU4ZjFkM2Y1MTc1ZWRiYzMzMjdiZWZj MmNhYjRjY2I5ZgogIyBjYW5ub3QgZXhlY3V0ZSBiaW5hcnkgZmlsZTogRXhlYyBmb3JtYXQgZXJy b3IKIG5vY3Jvc3M9Imh0dHBzOi8vYnVpbGQudm9pZGxpbnV4Lm9yZy9idWlsZGVycy9hcm12Nmxf YnVpbGRlci9idWlsZHMvMjkxODcvc3RlcHMvc2hlbGxfMy9sb2dzL3N0ZGlvIgogCg== --===============4441772769424904107==--