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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 26096 invoked from network); 5 Jul 2022 23:26:59 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Jul 2022 23:26:59 -0000 Content-Type: multipart/mixed; boundary="===============9218098590220135902==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_poppler=3A_update_to_22=2E06=2E0?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 06 Jul 2022 01:26:58 +0200 List-Id: Message-ID: <20220705232658.jBqF3IYYyxQ1nxxF_ieYNNNkLIXA4kNVsCu8on4AyCE@z> GitHub notification mails are now in MIME to allow UTF8. --===============9218098590220135902== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIHBvcHBsZXIKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzM2MzUxCgpwb3BwbGVyOiB1cGRhdGUgdG8gMjIuMDYuMAo8IS0t IFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJl IG5vdCBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0 ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcg cGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1 aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxv Yi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioN Ci0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRo YW4gMiBob3VycywgcGxlYXNlIFtza2lwIENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWlu dGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1 cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBp ZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0tPg0KPCEtLSANCiMjIyMgTG9jYWwgYnVp bGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hp dGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNl IGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFy Y2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZp bGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwv MzYzNTEucGF0Y2ggaXMgYXR0YWNoZWQ= --===============9218098590220135902== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-poppler-36351.patch" RnJvbSBkMTcxMWJjYThiMWRiNDE0YjM5NmIxYjFlNmY0ZGI4NGRlNmE4MTAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyODowOCAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDEvMTBdIHBvcHBsZXI6IHVwZGF0ZSB0byAyMi4wNy4wCgotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9wb3Bw bGVyL3BhdGNoZXMvZml4LWNmbGFncy5wYXRjaCB8IDIxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQog c3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlICAgICAgICAgICAgICAgICB8IDEzICsrKysrKysrKy0t LS0KIDMgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9wb3BwbGVyL3BhdGNoZXMvZml4LWNmbGFncy5wYXRj aAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGE1ZjM4 NWY3MTliOS4uODA2NGY2MmM3YTAyIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2Nv bW1vbi9zaGxpYnMKQEAgLTM1MCw3ICszNTAsNyBAQCBsaWJNYWdpY2tDb3JlLTYuUTE2LnNvLjcg bGlibWFnaWNrNi02LjkuMTEuNjFfMQogbGliTWFnaWNrV2FuZC02LlExNi5zby43IGxpYm1hZ2lj azYtNi45LjExLjYxXzEKIGxpYk1hZ2ljaysrLTYuUTE2LnNvLjkgbGlibWFnaWNrNi02LjkuMTIu MV8xCiBsaWJsdGRsLnNvLjcgbGlibHRkbC0yLjIuNl8xCi1saWJwb3BwbGVyLnNvLjExMSBsaWJw b3BwbGVyLTIxLjA3LjBfMQorbGlicG9wcGxlci5zby4xMjIgbGlicG9wcGxlci0yMi4wNi4wXzEK IGxpYnBvcHBsZXItZ2xpYi5zby44IHBvcHBsZXItZ2xpYi0wLjE4LjJfMQogbGlicG9wcGxlci1j cHAuc28uMCBwb3BwbGVyLWNwcC0wLjE4LjJfMQogbGlicG9wcGxlci1xdDUuc28uMSBwb3BwbGVy LXF0NS0wLjMxLjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb3BwbGVyL3BhdGNoZXMvZml4LWNm bGFncy5wYXRjaCBiL3NyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxYTQwOGQwM2NjZS4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwyMSArMCwwIEBACi1kaWZmIC0tZ2l0IGEvY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFj cm9zLmNtYWtlIGIvY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFjcm9zLmNtYWtlCi1pbmRleCBmZTEx ODJkLi42MDEzYmQyIDEwMDY0NAotLS0tIGEvY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFjcm9zLmNt YWtlCi0rKysgYi9jbWFrZS9tb2R1bGVzL1BvcHBsZXJNYWNyb3MuY21ha2UKLUBAIC0xMDQsMTQg KzEwNCwxNCBAQCBpZihDTUFLRV9DT01QSUxFUl9JU19HTlVDWFgpCi0gICBzZXQoREVGQVVMVF9D T01QSUxFX1dBUk5JTkdTX0VYVFJBICIke193YXJufSAke193YXJueH0iKQotIAotICAgc2V0KF9z YXZlX2N4eGZsYWdzICIke0NNQUtFX0NYWF9GTEFHU30iKQotLSAgc2V0KENNQUtFX0NYWF9GTEFH UyAgICAgICAgICAgICAgICAiLWZuby1leGNlcHRpb25zIC1mbm8tY2hlY2stbmV3IC1mbm8tY29t bW9uIC1mbm8tb3BlcmF0b3ItbmFtZXMgLURfREVGQVVMVF9TT1VSQ0UiKQotKyAgc2V0KENNQUtF X0NYWF9GTEFHUyAgICAgICAgICAgICAgICAiLWZuby1leGNlcHRpb25zIC1mbm8tY2hlY2stbmV3 IC1mbm8tY29tbW9uIC1mbm8tb3BlcmF0b3ItbmFtZXMgLURfREVGQVVMVF9TT1VSQ0UgJHtfc2F2 ZV9jeHhmbGFnc30iKQotICAgc2V0KENNQUtFX0NYWF9GTEFHU19SRUxXSVRIREVCSU5GTyAiLU8y IC1nICR7X3NhdmVfY3h4ZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAg ICAgICAgIi1PMiAtRE5ERUJVRyAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ1hY X0ZMQUdTX0RFQlVHICAgICAgICAgICItZyAtTzIgLWZuby1yZW9yZGVyLWJsb2NrcyAtZm5vLXNj aGVkdWxlLWluc25zIC1mbm8taW5saW5lICR7X3NhdmVfY3h4ZmxhZ3N9IikKLSAgIHNldChDTUFL RV9DWFhfRkxBR1NfREVCVUdGVUxMICAgICAgIi1nMyAtZm5vLWlubGluZSAke19zYXZlX2N4eGZs YWdzfSIpCi0gICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1BST0ZJTEUgICAgICAgICItZzMgLWZuby1p bmxpbmUgLWZ0ZXN0LWNvdmVyYWdlIC1mcHJvZmlsZS1hcmNzICR7X3NhdmVfY3h4ZmxhZ3N9IikK LSAgIHNldChfc2F2ZV9jZmxhZ3MgIiR7Q01BS0VfQ19GTEFHU30iKQotLSAgc2V0KENNQUtFX0Nf RkxBR1MgICAgICAgICAgICAgICAgICAiLXN0ZD1jOTkgLURfREVGQVVMVF9TT1VSQ0UiKQotKyAg c2V0KENNQUtFX0NfRkxBR1MgICAgICAgICAgICAgICAgICAiLXN0ZD1jOTkgLURfREVGQVVMVF9T T1VSQ0UgJHtfc2F2ZV9jZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTFdJVEhERUJJ TkZPICAgIi1PMiAtZyAke19zYXZlX2NmbGFnc30iKQotICAgc2V0KENNQUtFX0NfRkxBR1NfUkVM RUFTRSAgICAgICAgICAiLU8yIC1ETkRFQlVHICR7X3NhdmVfY2ZsYWdzfSIpCi0gICBzZXQoQ01B S0VfQ19GTEFHU19ERUJVRyAgICAgICAgICAgICItZyAtTzIgLWZuby1yZW9yZGVyLWJsb2NrcyAt Zm5vLXNjaGVkdWxlLWluc25zIC1mbm8taW5saW5lICR7X3NhdmVfY2ZsYWdzfSIpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3BvcHBsZXIvdGVtcGxhdGUgYi9zcmNwa2dzL3BvcHBsZXIvdGVtcGxhdGUK aW5kZXggMGFhNGVkZjIwYjU3Li42ZjhlN2UwMWYwYmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcG9w cGxlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BvcHBsZXIvdGVtcGxhdGUKQEAgLTMsMTMgKzMs MTUgQEAKICMgVEhJUyBQS0cgTVVTVCBCRSBTWU5DSFJPTklaRUQgV0lUSCAic3JjcGtncy9wb3Bw bGVyLXF0NSIuCiAjCiBwa2duYW1lPXBvcHBsZXIKLXZlcnNpb249MjEuMDcuMAordmVyc2lvbj0y Mi4wNy4wCiByZXZpc2lvbj0xCitfdGVzdFZlcnNpb249OTIwYzg5ZjhmNDNiZGZlODk2NmM4ZTM5 N2U3ZjY3ZjUzMDJlOTQzNQogYnVpbGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog Y29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX1VOU1RBQkxFX0FQSV9BQklfSEVBREVSUz1PTiAtREVO QUJMRV9DUFA9T04KICAtREVOQUJMRV9HTElCPU9OIC1ERU5BQkxFX0dPQkpFQ1RfSU5UUk9TUEVD VElPTj0kKHZvcHRfaWYgZ2lyIE9OIE9GRikKLSAtREVOQUJMRV9RVDU9T0ZGIC1ERU5BQkxFX1VU SUxTPU9OIC1ERU5BQkxFX0JPT1NUPSQodm9wdF9pZiBib29zdCBPTiBPRkYpIgorIC1ERU5BQkxF X1FUNT1PRkYgLURFTkFCTEVfVVRJTFM9T04gLURFTkFCTEVfQk9PU1Q9JCh2b3B0X2lmIGJvb3N0 IE9OIE9GRikKKyAtRENNQUtFX0JVSUxEX1RZUEU9UkVMRUFTRSAtRFRFU1REQVRBRElSPScke1hC UFNfQlVJTERESVJ9L3Rlc3QtJHtfdGVzdFZlcnNpb259JyIKIGhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCBsaWJnbGliLWRl dmVsIGNhaXJvLWRldmVsIHRpZmYtZGV2ZWwgbGNtczItZGV2ZWwKIGxpYmN1cmwtZGV2ZWwgbGli b3BlbmpwZWcyLWRldmVsICQodm9wdF9pZiBib29zdCBib29zdC1kZXZlbCkiCkBAIC0xNyw4ICsx OSwxMSBAQCBzaG9ydF9kZXNjPSJQREYgcmVuZGVyaW5nIGxpYnJhcnkiCiBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciwgR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3BvcHBsZXIuZnJlZWRlc2t0 b3Aub3JnIgotZGlzdGZpbGVzPSIke2hvbWVwYWdlfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ZTI2YWIyOWY2ODA2NWRlNGQ2NTYyZjBhM2UyYjU0MzVhODNjYTkyYmU1 NzNiOTlhMWM4MTk5OGZhMjg2YTRkNAorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5mcmVlZGVz a3RvcC5vcmcvcG9wcGxlci9wb3BwbGVyLy0vcmF3L21hc3Rlci9ORVdTIgorZGlzdGZpbGVzPSIk e2hvbWVwYWdlfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6CisgaHR0cHM6Ly9naXRsYWIu ZnJlZWRlc2t0b3Aub3JnL3BvcHBsZXIvdGVzdC8tL2FyY2hpdmUvJHtfdGVzdFZlcnNpb259L3Rl c3QtJHtfdGVzdFZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPSI0MjAyMzBjNWM0Mzc4MmUyMTUx MjU5YjNlNTIzZTYzMmY0ODYxMzQyYWFkNzBlN2UyMGI4NzczZDllYWYzNDI4CisgY2EzNWYxNjhh MTgwMzhhMmQ4MTdlYTMwZDZjN2I0YWI4Mjk0YTQwYTVmNTk1MGYzYzJhMTUxODNiYTA4YzkwMCIK IAogYnVpbGRfb3B0aW9ucz0iZ2lyIGJvb3N0IgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIg Ym9vc3QiCgpGcm9tIGU2ZDRjYmMwNzI1MmUwNmJlZTAzMTk3Y2I4OTQyZjU0YzllNTI4ZjIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNl cnMubm9yZXBseS5naXRodWIuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4OjI5OjAyIC0w NzAwClN1YmplY3Q6IFtQQVRDSCAwMi8xMF0gcG9wcGxlci1xdDU6IHVwZGF0ZSB0byAyMi4wNy4w CgotLS0KIHNyY3BrZ3MvcG9wcGxlci1xdDUvcGF0Y2hlcyAgfCAxIC0KIHNyY3BrZ3MvcG9wcGxl ci1xdDUvdGVtcGxhdGUgfCA4ICsrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3BvcHBsZXIt cXQ1L3BhdGNoZXMKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvcHBsZXItcXQ1L3BhdGNoZXMgYi9z cmNwa2dzL3BvcHBsZXItcXQ1L3BhdGNoZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTIwMDAwCmluZGV4 IDYzNmU0YWMyY2JkOS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvcGF0 Y2hlcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLS4uL3BvcHBsZXIvcGF0Y2hlcwpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci1xdDUv dGVtcGxhdGUgYi9zcmNwa2dzL3BvcHBsZXItcXQ1L3RlbXBsYXRlCmluZGV4IDJhMTVmNTYxMjhj MS4uYzBjMGQ4YTY3YTAwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBsZXItcXQ1L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKQEAgLTQsMTIgKzQsMTMgQEAKICMg SVQgSVMgU1BMSVQgVE8gQVZPSUQgQSBDWUNMSUMgREVQRU5ERU5DWTogcXQ1IC0+IGN1cHMgLT4g cG9wcGxlciAtPiBxdDUuCiAjCiBwa2duYW1lPXBvcHBsZXItcXQ1Ci12ZXJzaW9uPTIxLjA3LjAK K3ZlcnNpb249MjIuMDcuMAogcmV2aXNpb249MQogd3Jrc3JjPSJwb3BwbGVyLSR7dmVyc2lvbn0i CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX1VOU1RBQkxFX0FQ SV9BQklfSEVBREVSUz1PTiAtREVOQUJMRV9HTElCPU9GRgotIC1ERU5BQkxFX1FUNT1PTiAtREVO QUJMRV9VVElMUz1PRkYgLURFTkFCTEVfQ1BQPU9GRiAtREVOQUJMRV9CT09TVD1PRkYiCisgLURF TkFCTEVfUVQ1PU9OIC1ERU5BQkxFX1VUSUxTPU9GRiAtREVOQUJMRV9DUFA9T0ZGIC1ERU5BQkxF X0JPT1NUPU9GRgorIC1EQ01BS0VfQlVJTERfVFlQRT1SRUxFQVNFIgogaG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIHF0NS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgdGlmZi1k ZXZlbCBsY21zMi1kZXZlbCBsaWJjdXJsLWRldmVsCiAgZm9udGNvbmZpZy1kZXZlbCBjYWlyby1k ZXZlbCBsaWJvcGVuanBlZzItZGV2ZWwgcXQ1LWRldmVsIgpAQCAtMTcsOCArMTgsOSBAQCBzaG9y dF9kZXNjPSJQREYgcmVuZGVyaW5nIGxpYnJhcnkgLSBRdDUgYmluZGluZ3MiCiBtYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3BvcHBsZXIuZnJlZWRl c2t0b3Aub3JnIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcG9w cGxlci9wb3BwbGVyLy0vcmF3L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke2hvbWVwYWdlfS9w b3BwbGVyLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTI2YWIyOWY2ODA2NWRlNGQ2NTYy ZjBhM2UyYjU0MzVhODNjYTkyYmU1NzNiOTlhMWM4MTk5OGZhMjg2YTRkNAorY2hlY2tzdW09NDIw MjMwYzVjNDM3ODJlMjE1MTI1OWIzZTUyM2U2MzJmNDg2MTM0MmFhZDcwZTdlMjBiODc3M2Q5ZWFm MzQyOAogIyBmYWlscyB0byBmaW5kIGEgYnVuY2ggb2YgZmlsZXMKIG1ha2VfY2hlY2s9bm8KIAoK RnJvbSBhYTU5ZTFlMzUzMGE2YmQzN2M0OTc1OWQ4Y2Q5YmM0MWQ1NGE1NTZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyOTozMiAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDMvMTBdIHBvcHBsZXItZGF0YTogdXBkYXRlIHRvIDAuNC4xMQoKLS0tCiBz cmNwa2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvcHBs ZXItZGF0YS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1kYXRhL3RlbXBsYXRlCmluZGV4IDQ4 ZGJhMjQ5N2ZiNi4uNGI2ZTk1NmI3YjcyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBsZXItZGF0 YS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZQpAQCAtMSwxMyAr MSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9wcGxlci1kYXRhJwogcGtnbmFtZT1wb3Bw bGVyLWRhdGEKLXZlcnNpb249MC40LjEwCit2ZXJzaW9uPTAuNC4xMQogcmV2aXNpb249MQogc2hv cnRfZGVzYz0iRW5jb2RpbmcgZGF0YSBmb3IgdGhlIHBvcHBsZXIgUERGIHJlbmRlcmluZyBsaWJy YXJ5IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9Ik1JVCwgR1BMLTIuMC1vci1sYXRlciwgQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBz Oi8vcG9wcGxlci5mcmVlZGVza3RvcC5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL3BvcHBsZXIu ZnJlZWRlc2t0b3Aub3JnLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT02 ZTJmY2VmNjZlYzhjNDQ2MjVmOTQyOTJjY2Y4YWY5ZjFkOTE4YjQxMGQ1YWE2OWMyNzRjZTY3Mzg3 OTY3YjMwCitjaGVja3N1bT0yY2VjMDVjZDFiYjAzYWY5OGE4YjA2YTFlMjJmNmU2ZTFhNjViMWUy ZjM4MTZjYjMwNjliYjA4NzQ4MjVmMDhjCiAKIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBwcmVmaXg9 L3VzciBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAoKRnJvbSA0Yjc5ODE1MmUzOTZjYjYxZjI2 ODI5YzJmMzliMzMzN2NkZTU4YmEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVv NjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJp LCAyNSBNYXIgMjAyMiAxODozMzozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTBdIGNhbGxp Z3JhOiByZWJ1aWxkIGFnYWluc3QgbGlicG9wcGxlciAyMi4wNi4wCgotLS0KIC4uLi9wYXRjaGVz LzAwMDEtRml4LXNvbWUtbW9yZS13YXJuaW5ncy5wYXRjaCB8IDQ0MCArKysrKysrKysrKysrKysr KysKIC4uLi8wMDAyLU1ha2Utc2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaCAgICB8ICAyOSAr Kwogc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL2MrKzE3LnBhdGNoICAgICAgICAgIHwgIDE2ICsK IC4uLi9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggICAgICAgICB8ICA3MCArKysK IC4uLi9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgucGF0Y2ggICAgICAgICB8ICA5MSArKysr CiBzcmNwa2dzL2NhbGxpZ3JhL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IDYgZmlsZXMgY2hhbmdlZCwgNjQ3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMS1GaXgtc29tZS1tb3Jl LXdhcm5pbmdzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRj aGVzLzAwMDItTWFrZS1zaG93LWhpZGRlbi1yb3ctcy13b3JrLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL2MrKzE3LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4w NC4wLWZpeC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAx LUZpeC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2ggYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMv MDAwMS1GaXgtc29tZS1tb3JlLXdhcm5pbmdzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNmNjMTMyOTI1YjE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9jYWxsaWdyYS9wYXRjaGVzLzAwMDEtRml4LXNvbWUtbW9yZS13YXJuaW5ncy5wYXRjaApAQCAt MCwwICsxLDQ0MCBAQAorRnJvbSAwNjhjZDlhZWMxMTA1MjczM2UzOTM5NzYxNDI1MTZkMjE5MGU0 NTY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGllcnJlIER1Y3JvcXVldCA8cGlu YXJhZkBwaW5hcmFmLmluZm8+CitEYXRlOiBTdW4sIDI4IEZlYiAyMDIxIDIzOjIzOjAyICswMTAw CitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBzb21lIG1vcmUgd2FybmluZ3MKKworLS0tCisgZmlsdGVy cy9saWJtc29veG1sL01zb29YbWxEaWFncmFtUmVhZGVyX3AuY3BwICAgICAgICB8ICAxICsKKyBm aWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KKyBmaWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2V4Y2VsLmNwcCAgICAgICAgICAg IHwgIDEgKworIGZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZm9ybXVsYXMuY3BwICAg ICAgICAgfCAgMiArLQorIGZpbHRlcnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmljZXhwb3J0LmNj ICAgICAgICAgICAgfCAgNSArKy0tLQorIGZpbHRlcnMvc2hlZXRzL2h0bWwvaHRtbGV4cG9ydC5j YyAgICAgICAgICAgICAgICAgICAgfCAgMiAtLQorIGZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9y dC9sYXRleGV4cG9ydC5jYyAgICAgICAgICAgfCAgMSAtCisgZmlsdGVycy9zaGVldHMvbGF0ZXgv ZXhwb3J0L3RhYmxlLmNjICAgICAgICAgICAgICAgICB8ICAxICsKKyBmaWx0ZXJzL3NoZWV0cy94 bHN4L1hsc3hYbWxXb3Jrc2hlZXRSZWFkZXIuY3BwICAgICAgIHwgIDEgLQorIGZpbHRlcnMvc3Rh Z2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFkZXIuY3BwICAgICAgICAgfCAgMiArLQorIGZpbHRl cnMvd29yZHMvbXN3b3JkLW9kZi90ZXh0aGFuZGxlci5jcHAgICAgICAgICAgICAgfCAgMiArKwor IGZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3BhcnNlcjl4LmNwcCAgICAgICAgfCAg NCArKystCisgZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmNwcCAgICAg ICAgICB8ICA0ICstLS0KKyBmaWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMu aCAgICAgICAgICAgIHwgMTEgKysrKysrKystLS0KKyBnZW1pbmkvbGliL0dlbWluaU1haW5XaW5k b3cuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKKyBsaWJzL3BhZ2VhcHAvS29QQU9k ZlBhZ2VTYXZlSGVscGVyLmNwcCAgICAgICAgICAgICAgIHwgIDIgKy0KKyBwbHVnaW5zL3NwYWNl bmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRGV2aWNlLmggICAgICAgIHwgIDYgKystLS0tCisgcGx1 Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckV2ZW50LmggICAgICAgICB8ICAyICst CisgcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvclBvbGxpbmdUaHJlYWQuaCB8 ICAzICstLQorIHBsdWdpbnMvdmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwICAgICAgICAgICAg ICAgICAgfCAgMSArCisgc2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAxICsKKyBzaGVldHMvcGFydC9EaWdlc3QuY3BwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KKyBzaGVldHMvc2hhcGUvVGFibGVUb29sRmFj dG9yeS5oICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KKyBzaGVldHMvdGVzdHMvVGVzdFNv cnQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQorIDI0IGZpbGVzIGNo YW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv ZmlsdGVycy9saWJtc29veG1sL01zb29YbWxEaWFncmFtUmVhZGVyX3AuY3BwIGIvZmlsdGVycy9s aWJtc29veG1sL01zb29YbWxEaWFncmFtUmVhZGVyX3AuY3BwCitpbmRleCAxNGIwODUzMTI2Mi4u MTRmYzZhYjlhNzEgMTAwNjQ0CistLS0gYS9maWx0ZXJzL2xpYm1zb294bWwvTXNvb1htbERpYWdy YW1SZWFkZXJfcC5jcHAKKysrKyBiL2ZpbHRlcnMvbGlibXNvb3htbC9Nc29vWG1sRGlhZ3JhbVJl YWRlcl9wLmNwcAorQEAgLTg3Miw2ICs4NzIsNyBAQCB2b2lkIExheW91dE5vZGVBdG9tOjpmaW5p c2hCdWlsZChDb250ZXh0KiBjb250ZXh0KSB7CisgICAgICAgICBjYXNlIEFsZ29yaXRobUF0b206 OlVua25vd25BbGc6CisgICAgICAgICAgICAgd2Fybk1zb29YbWwgPDwgIkxheW91dCB3aXRoIG5h bWU9IiA8PCBtX25hbWUgPDwgImRlZmluZXMgYW4gdW5rbm93biBhbGdvcml0aG0uIjsKKyAgICAg ICAgICAgICAvLyBmYWxsIHRocm91Z2ggYW5kIHVzZSB0aGUgY29tcG9zaXRlLWFsZ29yaXRobQor KyAgICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgICBjYXNlIEFsZ29yaXRobUF0b206OkNv bXBvc2l0ZUFsZzogbV9hbGdvcml0aG1JbXBsID0gbmV3IENvbXBvc2l0ZUFsZ29yaXRobTsgYnJl YWs7CisgICAgICAgICBjYXNlIEFsZ29yaXRobUF0b206OkNvbm5lY3RvckFsZzogbV9hbGdvcml0 aG1JbXBsID0gbmV3IENvbm5lY3RvckFsZ29yaXRobTsgYnJlYWs7CisgICAgICAgICBjYXNlIEFs Z29yaXRobUF0b206OkN5Y2xlQWxnOiBtX2FsZ29yaXRobUltcGwgPSBuZXcgQ3ljbGVBbGdvcml0 aG07IGJyZWFrOworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2Nzdi9jc3ZpbXBvcnQuY2Mg Yi9maWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjCitpbmRleCA4OWZiNzE2MmUwMC4uMTAw OGQxODZmMTggMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjCisr KysgYi9maWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjCitAQCAtOTcsOCArOTcsOCBAQCBL b0ZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBDU1ZGaWx0ZXI6OmNvbnZlcnQoY29uc3QgUUJ5dGVB cnJheSYgZnJvbSwgY29uc3QgUUJ5dAorICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpGaWxlTm90 Rm91bmQ7CisgICAgIH0KKyAKKy0gICAgUVN0cmluZyBjc3ZfZGVsaW1pdGVyOworICAgICAvLyAj IyMjIyMgRklYTUU6IGRpc2FibGVkIGZvciBub3cKKysgICAgLy9RU3RyaW5nIGNzdl9kZWxpbWl0 ZXI7CisgICAgIC8vaWYgKCFjb25maWcuaXNOdWxsKCkpCisgICAgIC8vICAgIGNzdl9kZWxpbWl0 ZXIgPSBjb25maWdbMF07CisgCitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lk ZXdpbmRlci9leGNlbC5jcHAgYi9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2V4Y2Vs LmNwcAoraW5kZXggYWI1OTIyMjVjYTYuLjdmYTU2MzNkNDMzIDEwMDY0NAorLS0tIGEvZmlsdGVy cy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNlbC5jcHAKKysrKyBiL2ZpbHRlcnMvc2hlZXRz L2V4Y2VsL3NpZGV3aW5kZXIvZXhjZWwuY3BwCitAQCAtMjQ0OSw2ICsyNDQ5LDcgQEAgYm9vbCBF eGNlbFJlYWRlcjo6bG9hZChXb3JrYm9vayogd29ya2Jvb2ssIGNvbnN0IGNoYXIqIGZpbGVuYW1l KQorICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgYnl0ZXNfcmVhZCA9 IGNvbWJPYmpTdHJlYW0tPnJlYWQoIGJ1ZmZlciwgbWFya2VyT3JMZW5ndGggKTsKKyAgICAgICAg ICAgICAgICAgUVN0cmluZyBhbnNpU3RyaW5nID0gcmVhZEJ5dGVTdHJpbmcoYnVmZmVyLCBtYXJr ZXJPckxlbmd0aCk7CisrICAgICAgICAgICAgICAgIFFfVU5VU0VEKGFuc2lTdHJpbmcpOworICAg ICAgICAgICAgICAgICAvL1RPRE8uLi4KKyAgICAgICAgICAgICAgICAgLy9wcmludGYoICJtYXJr ZXJPckxlbmd0aD0laSBhbnNpU3RyaW5nPSVzXG4iLG1hcmtlck9yTGVuZ3RoLGFuc2lTdHJpbmcu YXNjaWkoKSApOworICAgICAgICAgICAgICAgfQorZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRz L2V4Y2VsL3NpZGV3aW5kZXIvZm9ybXVsYXMuY3BwIGIvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lk ZXdpbmRlci9mb3JtdWxhcy5jcHAKK2luZGV4IDYyNzQ3NDY5YTQ5Li4wMTMyZDM5ZTAyNCAxMDA2 NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZm9ybXVsYXMuY3BwCisr KysgYi9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcAorQEAgLTE1 MTMsNyArMTUxMyw3IEBAIHN0YXRpYyB2b2lkIG1lcmdlVG9rZW5zKFVTdHJpbmdTdGFjayogc3Rh Y2ssIHVuc2lnbmVkIGNvdW50LCBjb25zdCBRU3RyaW5nICZtZXJnCisgICAgIGlmICghc3RhY2sp IHJldHVybjsKKyAgICAgaWYgKHN0YWNrLT5zaXplKCkgPCBjb3VudCkgcmV0dXJuOworIAorLSAg ICBRU3RyaW5nIHMxLCBzMjsKKysgICAgUVN0cmluZyBzMTsKKyAKKyAgICAgd2hpbGUgKGNvdW50 KSB7CisgICAgICAgICBjb3VudC0tOworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2dudW1l cmljL2dudW1lcmljZXhwb3J0LmNjIGIvZmlsdGVycy9zaGVldHMvZ251bWVyaWMvZ251bWVyaWNl eHBvcnQuY2MKK2luZGV4IDEyNTZjNjhiYzc0Li4yNDY4NTQ4ZWRiMyAxMDA2NDQKKy0tLSBhL2Zp bHRlcnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmljZXhwb3J0LmNjCisrKysgYi9maWx0ZXJzL3No ZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYworQEAgLTEyOTMsMTUgKzEyOTMsMTMgQEAg S29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgR05VTUVSSUNFeHBvcnQ6OmNvbnZlcnQoY29uc3Qg UUJ5dGVBcnJheSYgZnJvbSwgY29uc3QKKyAgICAgICAgICAgICAgICAgaSA9IDA7CisgICAgICAg ICAgICAgfQorIAorLSAgICAgICAgICAgIFFTdHJpbmcgbGluZTsKKyAgICAgICAgICAgICBmb3Ig KGludCBjdXJyZW50Y29sdW1uID0gMTsgY3VycmVudGNvbHVtbiA8PSBpTWF4Q29sdW1uOyBjdXJy ZW50Y29sdW1uKyspIHsKKyAgICAgICAgICAgICAgICAgUURvbUVsZW1lbnQgY2VsbF9jb250ZW50 czsKKyAgICAgICAgICAgICAgICAgQ2VsbCBjZWxsKHRhYmxlLCBjdXJyZW50Y29sdW1uLCBjdXJy ZW50cm93KTsKKyAKKy0gICAgICAgICAgICAgICAgUVN0cmluZyB0ZXh0LCBzdHlsZTsKKysgICAg ICAgICAgICAgICAgUVN0cmluZyB0ZXh0OworICAgICAgICAgICAgICAgICBRRG9tRG9jdW1lbnQg ZG9tTGluazsKKyAgICAgICAgICAgICAgICAgUURvbUVsZW1lbnQgZG9tUm9vdDsKKy0gICAgICAg ICAgICAgICAgUURvbU5vZGUgZG9tTm9kZTsKKyAgICAgICAgICAgICAgICAgUURvbU5vZGVMaXN0 IGNoaWxkTm9kZXM7CisgCisgICAgICAgICAgICAgICAgIGlmICghY2VsbC5pc0RlZmF1bHQoKSAm JiAhY2VsbC5pc0VtcHR5KCkpIHsKK0BAIC0xMzQyLDYgKzEzNDAsNyBAQCBLb0ZpbHRlcjo6Q29u dmVyc2lvblN0YXR1cyBHTlVNRVJJQ0V4cG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBm cm9tLCBjb25zdAorICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBkb21Ob2RlLnRvRWxl bWVudCgpLnRleHQoKTsKKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWRvbU5v ZGUuaXNOdWxsKCkpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVN0cmluZyBzdHls ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSBkb21Ob2RlLnRvRWxlbWVu dCgpLnRhZ05hbWUoKTsKKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxl ID09ICJiIikKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2Mg Yi9maWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MKK2luZGV4IDJkMTE2ZTA2MDhjLi5i ZjQxYTZmNzQzZSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL2h0bWwvaHRtbGV4cG9ydC5j YworKysrIGIvZmlsdGVycy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjCitAQCAtMjQyLDcgKzI0 Miw2IEBAIHZvaWQgSFRNTEV4cG9ydDo6Y29udmVydFNoZWV0KFNoZWV0ICpzaGVldCwgUVN0cmlu ZyAmc3RyLCBpbnQgaU1heFVzZWRSb3csIGludCBpCisgICAgICAgICAgICAgaSA9IDA7CisgICAg ICAgICB9CisgCistICAgICAgICBRU3RyaW5nIHNlcGFyYXRvcnM7CisgICAgICAgICBRU3RyaW5n IGxpbmU7CisgICAgICAgICB1bnNpZ25lZCBpbnQgbm9uZW1wdHlfY2VsbHMgPSAwOworIAorQEAg LTQzNSw3ICs0MzQsNiBAQCB2b2lkIEhUTUxFeHBvcnQ6OmRldGVjdEZpbGxlZENlbGxzKFNoZWV0 ICpzaGVldCwgaW50ICZyb3dzLCBpbnQgJmNvbHVtbnMpCisgICAgICAgICBpbnQgaVVzZWRDb2x1 bW4gPSAwOworICAgICAgICAgZm9yIChpbnQgY3VycmVudGNvbHVtbiA9IDEgOyBjdXJyZW50Y29s dW1uIDw9IGlNYXhDb2x1bW4gOyBjdXJyZW50Y29sdW1uKyspIHsKKyAgICAgICAgICAgICBjZWxs ID0gQ2VsbChzaGVldCwgY3VycmVudGNvbHVtbiwgY3VycmVudHJvdyk7CistICAgICAgICAgICAg UVN0cmluZyB0ZXh0OworICAgICAgICAgICAgIGlmICghY2VsbC5pc0RlZmF1bHQoKSAmJiAhY2Vs bC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgaVVzZWRDb2x1bW4gPSBjdXJyZW50Y29s dW1uOworICAgICAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9l eHBvcnQvbGF0ZXhleHBvcnQuY2MgYi9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhl eHBvcnQuY2MKK2luZGV4IDhkMDY5OGEzNDIwLi40ZjhjYWYyMzVkOSAxMDA2NDQKKy0tLSBhL2Zp bHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC9sYXRleGV4cG9ydC5jYworKysrIGIvZmlsdGVycy9z aGVldHMvbGF0ZXgvZXhwb3J0L2xhdGV4ZXhwb3J0LmNjCitAQCAtMzgsNyArMzgsNiBAQCBMQVRF WEV4cG9ydDo6TEFURVhFeHBvcnQoUU9iamVjdCogcGFyZW50LCBjb25zdCBRVmFyaWFudExpc3Qm KSA6CisgCisgS29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgTEFURVhFeHBvcnQ6OmNvbnZlcnQo Y29uc3QgUUJ5dGVBcnJheSYgZnJvbSwgY29uc3QgUUJ5dGVBcnJheSYgdG8pCisgeworLSAgICBR U3RyaW5nIGNvbmZpZzsKKyAKKyAgICAgaWYgKHRvICE9ICJ0ZXh0L3gtdGV4IiB8fCBmcm9tICE9 ICJhcHBsaWNhdGlvbi94LWtzcHJlYWQiKQorICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpOb3RJ bXBsZW1lbnRlZDsKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFi bGUuY2MgYi9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFibGUuY2MKK2luZGV4IDhkOGI2 NzAxYTM5Li5lNTg4MjdkZmJjNyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4 cG9ydC90YWJsZS5jYworKysrIGIvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNj CitAQCAtMTE4LDYgKzExOCw3IEBAIHZvaWQgVGFibGU6OmFuYWx5emVQYXBlcihjb25zdCBRRG9t Tm9kZSBub2RlKQorIAorICAgICAvKiBib3JkZXJzICovCisgICAgIFFEb21Ob2RlIGJvcmRlciA9 IGdldENoaWxkKG5vZGUsICJib3JkZXJzIik7CisrICAgIFFfVU5VU0VEKGJvcmRlcik7CisgICAg IHNldEJvcmRlclJpZ2h0KGdldEF0dHIobm9kZSwgInJpZ2h0IikudG9Mb25nKCkpOworICAgICBz ZXRCb3JkZXJMZWZ0KGdldEF0dHIobm9kZSwgImxlZnQiKS50b0xvbmcoKSk7CisgICAgIHNldEJv cmRlckJvdHRvbShnZXRBdHRyKG5vZGUsICJib3R0b20iKS50b0xvbmcoKSk7CitkaWZmIC0tZ2l0 IGEvZmlsdGVycy9zaGVldHMveGxzeC9YbHN4WG1sV29ya3NoZWV0UmVhZGVyLmNwcCBiL2ZpbHRl cnMvc2hlZXRzL3hsc3gvWGxzeFhtbFdvcmtzaGVldFJlYWRlci5jcHAKK2luZGV4IDc4MmE1OTE0 NzI5Li5lZGE4ZmZjNmI0NyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL3hsc3gvWGxzeFht bFdvcmtzaGVldFJlYWRlci5jcHAKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL3hsc3gvWGxzeFhtbFdv cmtzaGVldFJlYWRlci5jcHAKK0BAIC04NzIsNyArODcyLDYgQEAgS29GaWx0ZXI6OkNvbnZlcnNp b25TdGF0dXMgWGxzeFhtbFdvcmtzaGVldFJlYWRlcjo6cmVhZF9jb25kaXRpb25hbEZvcm1hdHRp bmcoKQorICAgICB3aGlsZSAoaW5kZXggPCBtX2NvbmRpdGlvbmFsSW5kaWNlcy5zaXplKCkpIHsK KyAgICAgICAgIFFTdHJpbmcgY29uZGl0aW9uYWxBcmVhOworICAgICAgICAgQ29uZGl0aW9uIGV4 YW1pbmVkQ29uZGl0aW9uID0gbV9jb25kaXRpb25hbEluZGljZXMuYXQoaW5kZXgpOworLSAgICAg ICAgUVN0cmluZyBzcXJlZk9yaWdpbmFsID0gc3FyZWY7CisgICAgICAgICBpbnQgYXJlYUluZGV4 ID0gMDsKKyAgICAgICAgIENvbmRpdGlvbiBwcmV2aW91c0NvbmQ7CisgCitkaWZmIC0tZ2l0IGEv ZmlsdGVycy9zdGFnZS9wcHR4L1BwdHhYbWxEb2N1bWVudFJlYWRlci5jcHAgYi9maWx0ZXJzL3N0 YWdlL3BwdHgvUHB0eFhtbERvY3VtZW50UmVhZGVyLmNwcAoraW5kZXggNGNmODZhZWE4YzguLjEx YjVhZDI2NmI5IDEwMDY0NAorLS0tIGEvZmlsdGVycy9zdGFnZS9wcHR4L1BwdHhYbWxEb2N1bWVu dFJlYWRlci5jcHAKKysrKyBiL2ZpbHRlcnMvc3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFk ZXIuY3BwCitAQCAtMzE2LDcgKzMxNiw3IEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIFBw dHhYbWxEb2N1bWVudFJlYWRlcjo6cmVhZF9zbGRJZCgpCisgCisgICAgIFFTdHJpbmcgc2xpZGVN YXN0ZXJQYXRoLCBzbGlkZU1hc3RlckZpbGU7CisgICAgIE1TT09YTUw6OlV0aWxzOjpzcGxpdFBh dGhBbmRGaWxlKG1fY29udGV4dC0+cmVsYXRpb25zaGlwcy0+dGFyZ2V0Rm9yVHlwZShzbGlkZVBh dGgsIHNsaWRlRmlsZSwgUUxhdGluMVN0cmluZyhNU09PWE1MOjpTY2hlbWFzOjpvZmZpY2VEb2N1 bWVudDo6cmVsYXRpb25zaGlwcykgKyAiL3NsaWRlTGF5b3V0IiksICZzbGlkZU1hc3RlclBhdGgs ICZzbGlkZU1hc3RlckZpbGUpOworLSAgICBjb25zdCBRU3RyaW5nIHNsaWRlTWFzdGVyUGF0aEFu ZEZpbGUgPSBtX2NvbnRleHQtPnJlbGF0aW9uc2hpcHMtPnRhcmdldEZvclR5cGUoc2xpZGVNYXN0 ZXJQYXRoLCBzbGlkZU1hc3RlckZpbGUsIFFMYXRpbjFTdHJpbmcoTVNPT1hNTDo6U2NoZW1hczo6 b2ZmaWNlRG9jdW1lbnQ6OnJlbGF0aW9uc2hpcHMpICsgIi9zbGlkZU1hc3RlciIpOworKyAgICAv LyBjb25zdCBRU3RyaW5nIHNsaWRlTWFzdGVyUGF0aEFuZEZpbGUgPSBtX2NvbnRleHQtPnJlbGF0 aW9uc2hpcHMtPnRhcmdldEZvclR5cGUoc2xpZGVNYXN0ZXJQYXRoLCBzbGlkZU1hc3RlckZpbGUs IFFMYXRpbjFTdHJpbmcoTVNPT1hNTDo6U2NoZW1hczo6b2ZmaWNlRG9jdW1lbnQ6OnJlbGF0aW9u c2hpcHMpICsgIi9zbGlkZU1hc3RlciIpOworIAorICAgICAvLyBEZWxheSB0aGUgcmVhZGluZyBv ZiBhIHRhYmxlU3R5bGUgdW50aWwgd2UgZmluZCBhIHRhYmxlIGFzIHdlIG5lZWQgdGhlCisgICAg IC8vIGNsck1hcCBmcm9tIHRoZSBtYXN0ZXIgc2xpZGUKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3dv cmRzL21zd29yZC1vZGYvdGV4dGhhbmRsZXIuY3BwIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2Rm L3RleHRoYW5kbGVyLmNwcAoraW5kZXggZTE2N2Q4NmUwMjguLjg5ZWY2Nzg5NjFhIDEwMDY0NAor LS0tIGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3RleHRoYW5kbGVyLmNwcAorKysrIGIvZmls dGVycy93b3Jkcy9tc3dvcmQtb2RmL3RleHRoYW5kbGVyLmNwcAorQEAgLTQwOCw2ICs0MDgsNyBA QCB2b2lkIFdvcmRzVGV4dEhhbmRsZXI6OmZvb3Rub3RlRm91bmQod3ZXYXJlOjpGb290bm90ZURh dGEgZGF0YSwKKyAgICAgICAgIH0KKyAgICAgICAgIGNhc2UgbXNvbmZjVUNMZXR0ZXI6CisgICAg ICAgICAgICAgbGV0dGVyID0gJ0EnOworKyAgICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAg ICAgICAgY2FzZSBtc29uZmNMQ0xldHRlcjoKKyAgICAgICAgIHsKKyAgICAgICAgICAgICB3aGls ZSAobm90ZU51bWJlciAvIDI1ID4gMCkgeworQEAgLTEwNjQsNiArMTA2NSw3IEBAIHZvaWQgV29y ZHNUZXh0SGFuZGxlcjo6ZmllbGRTdGFydChjb25zdCB3dldhcmU6OkZMRCogZmxkLCB3dldhcmU6 OlNoYXJlZFB0cjxjb25zCisgICAgICAgICBicmVhazsKKyAgICAgY2FzZSBVTlNVUFBPUlRFRDoK KyAgICAgICAgIHdhcm5Nc0RvYyA8PCAiV2FybmluZzogRmxkIGRhdGEgbWlzc2luZywgaWdub3Jp bmchIjsKKysgICAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICBkZWZhdWx0OgorICAgICAgICAg d2Fybk1zRG9jIDw8ICJXYXJuaW5nOiB1bnJlY29nbml6ZWQgZmllbGQgdHlwZSwgaWdub3Jpbmch IjsKKyAgICAgICAgIG1fZmxkLT5tX3R5cGUgPSBVTlNVUFBPUlRFRDsKK2RpZmYgLS1naXQgYS9m aWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAgYi9maWx0ZXJzL3dv cmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAKK2luZGV4IDlhNmQxNjA2Y2U5Li5l NWQ3ZDE0NjkxYyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3Jj L3BhcnNlcjl4LmNwcAorKysrIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvcGFy c2VyOXguY3BwCitAQCAtNTgxLDcgKzU4MSw4IEBAIHZvaWQgUGFyc2VyOXg6OnByb2Nlc3NQaWVj ZSggU3RyaW5nKiBzdHJpbmcsIFUzMiBmYywgVTMyIGxpbWl0LCBjb25zdCBQb3NpdGlvbiYKKyAg ICAgICAgIC8vIHNhbWUgQVNDSUkgY29kZSBhcyBUVFBfTUFSSyAoMHgwMDA3KSwgTk9URTogdGFi bGUgZGVwdGggPT0gMQorICAgICAgICAgY2FzZSBDRUxMX01BUks6CisgICAgICAgICAgICAgbV9j ZWxsTWFya0ZvdW5kID0gdHJ1ZTsKKy0gICAgICAgICAgICAvLyBGYWxsLXRocm91Z2ggaW50ZW5k ZWQuIEEgcm93L2NlbGwgZW5kIGlzIGFsc28gYSBwYXJhZ3JhcGggZW5kLgorKyAgICAgICAgICAg IC8vIEEgcm93L2NlbGwgZW5kIGlzIGFsc28gYSBwYXJhZ3JhcGggZW5kLgorKyAgICAgICAgICAg IC8vIGZhbGwgdGhyb3VnaAorICAgICAgICAgY2FzZSBQQVJBR1JBUEhfTUFSSzoKKyAgICAgICAg IHsKKyAgICAgICAgICAgICAvLyBObyAiaW5kZXggLSBzdGFydCArIDEiIGhlcmUsIGFzIHdlIGRv bid0IHdhbnQgdG8gY29weSB0aGUKK0BAIC0xMDY0LDYgKzEwNjUsNyBAQCB2b2lkIFBhcnNlcjl4 OjplbWl0U3BlY2lhbENoYXJhY3RlciggVUNoYXIgY2hhcmFjdGVyLCBVMzIgZ2xvYmFsQ1AsIFNo YXJlZFB0cjxjbworICAgICAgICAgICAgIGlmIChtX3N1YkRvY3VtZW50ID09IE1haW4pIHsKKyAg ICAgICAgICAgICAgICAgZW1pdEFubm90YXRpb24oIFVTdHJpbmcoY2hhcmFjdGVyKSwgZ2xvYmFs Q1AsIGNocCApOworICAgICAgICAgICAgIH0KKysgICAgICAgICAgICBicmVhazsKKyAgICAgICAg IH0KKyAgICAgY2FzZSBUZXh0SGFuZGxlcjo6RmllbGRFc2NhcGVDaGFyOgorICAgICAgICAgd3Zs b2cgPDwgIkZvdW5kIGFuIGVzY2FwZSBjaGFyYWN0ZXIgKysrKysrKysrKysrKysrKysrKys/IiA8 PCBlbmRsOworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0 eWxlcy5jcHAgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3BwCitp bmRleCBmNDdjM2RkOGQ1MS4uZDJjOTZlM2Q5MmIgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3dvcmRz L21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3BwCisrKysgYi9maWx0ZXJzL3dvcmRzL21zd29y ZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3BwCitAQCAtNDIsNyArNDIsNiBAQCBTVEQ6OlNURCgpCisg fQorIAorIFNURDo6U1REKCBVMTYgYmFzZVNpemUsIFUxNiB0b3RhbFNpemUsIE9MRVN0cmVhbVJl YWRlciogc3RyZWFtLCBib29sIHByZXNlcnZlUG9zICkKKy10aHJvdyhJbnZhbGlkRm9ybWF0RXhj ZXB0aW9uKQorIHsKKyAgICAgY2xlYXJJbnRlcm5hbCgpOworICAgICBpZiAoIXJlYWQoIGJhc2VT aXplLCB0b3RhbFNpemUsIHN0cmVhbSwgcHJlc2VydmVQb3MgKSkgeworQEAgLTExMiw3ICsxMTEs NiBAQCBTVEQmIFNURDo6b3BlcmF0b3I9KCBjb25zdCBTVEQmIHJocyApCisgfQorIAorIGJvb2wg U1REOjpyZWFkKCBjb25zdCBVMTYgY2JTdGQsIGNvbnN0IFUxNiBzdGRmU2l6ZSwgT0xFU3RyZWFt UmVhZGVyKiBzdHJlYW0sIGJvb2wgcHJlc2VydmVQb3MgKQorLXRocm93KEludmFsaWRGb3JtYXRF eGNlcHRpb24pCisgeworICAgICBVMTYgc2hpZnRlclUxNjsKKyAgICAgUzMyIHN0YXJ0T2Zmc2V0 PXN0cmVhbS0+dGVsbCgpOyAgLy8gYWRkcmVzcyB3aGVyZSB0aGUgU1REIHN0YXJ0cworQEAgLTkz OCw3ICs5MzYsNyBAQCB2b2lkIFN0eWxlOjptZXJnZVVwZWNocHgoIGNvbnN0IFN0eWxlKiBwYXJl bnRTdHlsZSwgV29yZFZlcnNpb24gdmVyc2lvbiApCisgfQorIAorIAorLVN0eWxlU2hlZXQ6OlN0 eWxlU2hlZXQoIE9MRVN0cmVhbVJlYWRlciogdGFibGVTdHJlYW0sIFUzMiBmY1N0c2hmLCBVMzIg bGNiU3RzaGYgKSB0aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKQorK1N0eWxlU2hlZXQ6OlN0 eWxlU2hlZXQoIE9MRVN0cmVhbVJlYWRlciogdGFibGVTdHJlYW0sIFUzMiBmY1N0c2hmLCBVMzIg bGNiU3RzaGYgKQorICAgICA6IG1fdWRzTnVtKDApCisgeworICAgICBXb3JkVmVyc2lvbiB2ZXJz aW9uID0gV29yZDg7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9z cmMvc3R5bGVzLmggYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuaAor aW5kZXggYmEwMmRlZjY4NDUuLjQxYzgyNzhkZDIxIDEwMDY0NAorLS0tIGEvZmlsdGVycy93b3Jk cy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmgKKysrKyBiL2ZpbHRlcnMvd29yZHMvbXN3b3Jk LW9kZi93djIvc3JjL3N0eWxlcy5oCitAQCAtNTgsOCArNTgsOSBAQCBzdHJ1Y3QgU1RECisgICAg IFNURCgpOworICAgICAvKioKKyAgICAgICogU2ltcGx5IGNhbGxzIHJlYWQoLi4uKQorKyAgICAg KiBAdGhyb3cgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbgorICAgICAgKi8KKy0gICAgU1REKCBVMTYg c3RkZlNpemUsIFUxNiB0b3RhbFNpemUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFtLCBib29sIHBy ZXNlcnZlUG9zID0gZmFsc2UgKSB0aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKTsKKysgICAg U1REKCBVMTYgc3RkZlNpemUsIFUxNiB0b3RhbFNpemUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFt LCBib29sIHByZXNlcnZlUG9zID0gZmFsc2UgKTsKKyAgICAgLyoqCisgICAgICAqIEF0dGVudGlv bjogVGhpcyBzdHJ1Y3QgYWxsb2NhdGVzIG1lbW9yeSBvbiB0aGUgaGVhcAorICAgICAgKi8KK0BA IC03NCw4ICs3NSw5IEBAIHN0cnVjdCBTVEQKKyAgICAgICogZmFsc2UgdGhlIHN0YXRlIG9mIHN0 cmVhbSB3aWxsIGJlIGNoYW5nZWQhCisgICAgICAqCisgICAgICAqIEByZXR1cm4gdHJ1ZSAtIHN1 Y2Nlc3MsIGZhbHNlIC0gZmFpbGVkCisrICAgICAqIEB0aHJvdyBJbnZhbGlkRm9ybWF0RXhjZXB0 aW9uCisgICAgICAqLworLSAgICBib29sIHJlYWQoIGNvbnN0IFUxNiBjYlN0ZCwgY29uc3QgVTE2 IHN0ZGZTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVzZXJ2ZVBvcyA9IGZh bHNlICkgdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbik7CisrICAgIGJvb2wgcmVhZCggY29u c3QgVTE2IGNiU3RkLCBjb25zdCBVMTYgc3RkZlNpemUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFt LCBib29sIHByZXNlcnZlUG9zID0gZmFsc2UgKTsKKyAKKyAgICAgLyoqCisgICAgICAqIFNhbWUg YXMgcmVhZGluZyA6KQorQEAgLTM2NSw3ICszNjcsMTAgQEAgY2xhc3MgV1YyX0VYUE9SVCBTdHls ZQorIGNsYXNzIFdWMl9FWFBPUlQgU3R5bGVTaGVldAorIHsKKyBwdWJsaWM6CistICAgIFN0eWxl U2hlZXQoIE9MRVN0cmVhbVJlYWRlciogdGFibGVTdHJlYW0sIFUzMiBmY1N0c2hmLCBVMzIgbGNi U3RzaGYgKSB0aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKTsKKysgICAgLyoqCisrICAgICAq IEB0aHJvdyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uCisrICAgICAqLworKyAgICBTdHlsZVNoZWV0 KCBPTEVTdHJlYW1SZWFkZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hm ICk7CisgICAgIH5TdHlsZVNoZWV0KCk7CisgCisgICAgIC8qKgorZGlmZiAtLWdpdCBhL2dlbWlu aS9saWIvR2VtaW5pTWFpbldpbmRvdy5jcHAgYi9nZW1pbmkvbGliL0dlbWluaU1haW5XaW5kb3cu Y3BwCitpbmRleCAzZDA1ZjY0NjFlMC4uZWI1ZjEyMGMwZjcgMTAwNjQ0CistLS0gYS9nZW1pbmkv bGliL0dlbWluaU1haW5XaW5kb3cuY3BwCisrKysgYi9nZW1pbmkvbGliL0dlbWluaU1haW5XaW5k b3cuY3BwCitAQCAtMTM2LDggKzEzNiwxMCBAQCB2b2lkIEdlbWluaU1haW5XaW5kb3c6OnNldEZ1 bGxTY3JlZW4oYm9vbCBuZXdTdGF0ZSkKKyB9CisgCisgCisrCisgdm9pZCBHZW1pbmlNYWluV2lu ZG93OjpjaGFuZ2VTdGF0ZShHZW1pbmlNYWluV2luZG93OjpHZW1pbmlTdGF0ZSBuZXdTdGF0ZSwg Ym9vbCBsb2NrTmV3U3RhdGUpCisgeworKyAgICBRX1VOVVNFRChsb2NrTmV3U3RhdGUpOworICAg ICBkLT5zeW5jT2JqZWN0ID0gbmV3IEdlbWluaU1vZGVTeW5jaHJvbmlzYXRpb25PYmplY3Q7Cisg CisgICAgIGlmKGNlbnRyYWxXaWRnZXQoKSkgeworZGlmZiAtLWdpdCBhL2xpYnMvcGFnZWFwcC9L b1BBT2RmUGFnZVNhdmVIZWxwZXIuY3BwIGIvbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdlU2F2ZUhl bHBlci5jcHAKK2luZGV4IDkyYzZkZmQ0Y2I0Li4wNjg1MDFjOGFmMSAxMDA2NDQKKy0tLSBhL2xp YnMvcGFnZWFwcC9Lb1BBT2RmUGFnZVNhdmVIZWxwZXIuY3BwCisrKysgYi9saWJzL3BhZ2VhcHAv S29QQU9kZlBhZ2VTYXZlSGVscGVyLmNwcAorQEAgLTQ5LDcgKzQ5LDcgQEAgS29QQU9kZlBhZ2VT YXZlSGVscGVyOjpLb1BBT2RmUGFnZVNhdmVIZWxwZXIoIEtvUEFEb2N1bWVudCAqIGRvYywgUUxp c3Q8S29QQVBhZ2UKKyAgICAgICAgICAgICBLb1BBUGFnZSAqIHAgPSBzdGF0aWNfY2FzdDxLb1BB UGFnZSAqPiggcGFnZSApOworICAgICAgICAgICAgIG1hc3RlclBhZ2VzLmluc2VydCggcC0+bWFz dGVyUGFnZSgpICk7CisgICAgICAgICB9CistICAgICAgICBtX21hc3RlclBhZ2VzID0gbWFzdGVy UGFnZXMudG9MaXN0KCk7CisrICAgICAgICBtX21hc3RlclBhZ2VzID0gbWFzdGVyUGFnZXMudmFs dWVzKCk7CisgICAgIH0KKyB9CisgCitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zcGFjZW5hdmlnYXRv ci9TcGFjZU5hdmlnYXRvckRldmljZS5oIGIvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5h dmlnYXRvckRldmljZS5oCitpbmRleCBiOTA1NmFjOThjMS4uZWNkNjk2ZTQxNWYgMTAwNjQ0Cist LS0gYS9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRGV2aWNlLmgKKysrKyBi L3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JEZXZpY2UuaAorQEAgLTMxLDEw ICszMSw4IEBAIGNsYXNzIFNwYWNlTmF2aWdhdG9yRGV2aWNlIDogcHVibGljIEtvSW5wdXREZXZp Y2VIYW5kbGVyCisgICAgIGV4cGxpY2l0IFNwYWNlTmF2aWdhdG9yRGV2aWNlKFFPYmplY3QgKnBh cmVudCk7CisgICAgIHZpcnR1YWwgflNwYWNlTmF2aWdhdG9yRGV2aWNlKCk7CisgCistICAgIC8v LyByZWltcGxlbWVudGVkIGZyb20gS29JbnB1dERldmljZUhhbmRsZXIKKy0gICAgdmlydHVhbCBi b29sIHN0YXJ0KCk7CistICAgIC8vLyByZWltcGxlbWVudGVkIGZyb20gS29JbnB1dERldmljZUhh bmRsZXIKKy0gICAgdmlydHVhbCBib29sIHN0b3AoKTsKKysgICAgdmlydHVhbCBib29sIHN0YXJ0 KCkgb3ZlcnJpZGU7CisrICAgIHZpcnR1YWwgYm9vbCBzdG9wKCkgb3ZlcnJpZGU7CisgcHJpdmF0 ZSBRX1NMT1RTOgorICAgICB2b2lkIHNsb3RNb3ZlRXZlbnQoIGludCB4LCBpbnQgeSwgaW50IHos IGludCByeCwgaW50IHJ5LCBpbnQgcnosIFF0OjpNb3VzZUJ1dHRvbnMgKTsKKyAgICAgdm9pZCBz bG90QnV0dG9uRXZlbnQoIGludCB4LCBpbnQgeSwgaW50IHosIGludCByeCwgaW50IHJ5LCBpbnQg cnosIFF0OjpNb3VzZUJ1dHRvbnMsIFF0OjpNb3VzZUJ1dHRvbiwgaW50IHR5cGUgKTsKK2RpZmYg LS1naXQgYS9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRXZlbnQuaCBiL3Bs dWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JFdmVudC5oCitpbmRleCA3Mzc1MWVj ODhmZi4uNzZlZThlMmY4ODAgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1Nw YWNlTmF2aWdhdG9yRXZlbnQuaAorKysrIGIvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5h dmlnYXRvckV2ZW50LmgKK0BAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFNwYWNlTmF2aWdhdG9yRXZl bnQgOiBwdWJsaWMgS29JbnB1dERldmljZUhhbmRsZXJFdmVudAorICAgICB2b2lkIHNldFBvc2l0 aW9uKCBpbnQgeCwgaW50IHksIGludCB6ICk7CisgICAgIHZvaWQgc2V0Um90YXRpb24oIGludCBy eCwgaW50IHJ5LCBpbnQgcnogKTsKKyAKKy0gICAgdmlydHVhbCBLb1BvaW50ZXJFdmVudCAqIHBv aW50ZXJFdmVudCgpOworKyAgICB2aXJ0dWFsIEtvUG9pbnRlckV2ZW50ICogcG9pbnRlckV2ZW50 KCkgb3ZlcnJpZGU7CisgCisgcHJpdmF0ZToKKyAgICAgaW50IG1feCwgbV95LCBtX3o7CitkaWZm IC0tZ2l0IGEvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvclBvbGxpbmdUaHJl YWQuaCBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFk LmgKK2luZGV4IDYyYzRkZThhYjczLi42N2Q1OTE3NzAyMSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMv c3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmgKKysrKyBiL3BsdWdp bnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmgKK0BAIC0zOSw4 ICszOSw3IEBAIGNsYXNzIFNwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZCA6IHB1YmxpYyBRVGhy ZWFkCisgCisgcHJvdGVjdGVkOgorIAorLSAgICAvLy8gcmVpbXBsZW1lbnRlZCBmcm9tIFFUaHJl YWQKKy0gICAgdmlydHVhbCB2b2lkIHJ1bigpOworKyAgICB2aXJ0dWFsIHZvaWQgcnVuKCkgb3Zl cnJpZGU7CisgCisgcHJpdmF0ZToKKyAgICAgYm9vbCBtX3N0b3BwZWQ7CitkaWZmIC0tZ2l0IGEv cGx1Z2lucy92ZWN0b3JzaGFwZS9WZWN0b3JTaGFwZS5jcHAgYi9wbHVnaW5zL3ZlY3RvcnNoYXBl L1ZlY3RvclNoYXBlLmNwcAoraW5kZXggYTI1YWIzZmM1NjEuLjlhY2JkMjUxYzk0IDEwMDY0NAor LS0tIGEvcGx1Z2lucy92ZWN0b3JzaGFwZS9WZWN0b3JTaGFwZS5jcHAKKysrKyBiL3BsdWdpbnMv dmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwCitAQCAtMjk0LDYgKzI5NCw3IEBAIHZvaWQgVmVj dG9yU2hhcGU6OnNhdmVPZGYoS29TaGFwZVNhdmluZ0NvbnRleHQgJiBjb250ZXh0KSBjb25zdAor ICAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgVmVjdG9yVHlwZVN2ZzoKKyAgICAgICAgIG1pbWVU eXBlID0gImltYWdlL3N2Zyt4bWwiOworKyAgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6Cisg ICAgICAgICAvLyBGSVhNRTogV2hhdCBoZXJlPworICAgICAgICAgbWltZVR5cGUgPSAiYXBwbGlj YXRpb24veC13aGF0IjsKK2RpZmYgLS1naXQgYS9zaGVldHMvZnVuY3Rpb25zL2RhdGV0aW1lLmNw cCBiL3NoZWV0cy9mdW5jdGlvbnMvZGF0ZXRpbWUuY3BwCitpbmRleCA5ZjU5ZmUyY2Y3NS4uNjE1 N2IwOTk2YzEgMTAwNjQ0CistLS0gYS9zaGVldHMvZnVuY3Rpb25zL2RhdGV0aW1lLmNwcAorKysr IGIvc2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAKK0BAIC01OTcsNiArNTk3LDcgQEAgVmFs dWUgZnVuY19jdXJyZW50RGF0ZSh2YWxWZWN0b3IsIFZhbHVlQ2FsYyAqIGNhbGMsIEZ1bmNFeHRy YSAqKQorIC8vIEZ1bmN0aW9uOiBDVVJSRU5UVElNRQorIFZhbHVlIGZ1bmNfY3VycmVudFRpbWUo dmFsVmVjdG9yLCBWYWx1ZUNhbGMgKiBjYWxjLCBGdW5jRXh0cmEgKikKKyB7CisrICAgIFFfVU5V U0VEKGNhbGMpOworICAgICByZXR1cm4gVmFsdWUoUVRpbWU6OmN1cnJlbnRUaW1lKCkpOworIH0K KyAKK2RpZmYgLS1naXQgYS9zaGVldHMvcGFydC9EaWdlc3QuY3BwIGIvc2hlZXRzL3BhcnQvRGln ZXN0LmNwcAoraW5kZXggOGNkOTcyZGI5ODkuLmU5MjQ2Y2U2ZTdkIDEwMDY0NAorLS0tIGEvc2hl ZXRzL3BhcnQvRGlnZXN0LmNwcAorKysrIGIvc2hlZXRzL3BhcnQvRGlnZXN0LmNwcAorQEAgLTU5 NiwxMCArNTk2LDEwIEBAIHN0YXRpYyB2b2lkIF9fcnRsX2RpZ2VzdF9lbmRTSEEoRGlnZXN0Q29u dGV4dFNIQSAqY3R4KQorICAgICB9CisgCisgICAgIHN3aXRjaCAoY3R4LT5tX25EYXRMZW4gJiAw eDAzKSB7CistICAgIGNhc2UgMDogWFtpXSAgPSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICAw TDsKKy0gICAgY2FzZSAxOiBYW2ldIHw9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgIDhMOwor LSAgICBjYXNlIDI6IFhbaV0gfD0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAxNkw7CistICAg IGNhc2UgMzogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8IDI0TDsKKysgICAgY2Fz ZSAwOiBYW2ldICA9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgIDBMOyAvKiBmYWxsIHRocm91 Z2ggKi8KKysgICAgY2FzZSAxOiBYW2ldIHw9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgIDhM OyAvKiBmYWxsIHRocm91Z2ggKi8KKysgICAgY2FzZSAyOiBYW2ldIHw9ICgoc2FsX3VJbnQzMiko KihwKyspKSkgPDwgMTZMOyAvKiBmYWxsIHRocm91Z2ggKi8KKysgICAgY2FzZSAzOiBYW2ldIHw9 ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgMjRMOyAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAg fQorIAorICAgICBfX3J0bF9kaWdlc3Rfc3dhcExvbmcoWCwgaSArIDEpOworZGlmZiAtLWdpdCBh L3NoZWV0cy9zaGFwZS9UYWJsZVRvb2xGYWN0b3J5LmggYi9zaGVldHMvc2hhcGUvVGFibGVUb29s RmFjdG9yeS5oCitpbmRleCA2NzliZmUxNGI4ZS4uOTQxMmQ4ZmZkYzUgMTAwNjQ0CistLS0gYS9z aGVldHMvc2hhcGUvVGFibGVUb29sRmFjdG9yeS5oCisrKysgYi9zaGVldHMvc2hhcGUvVGFibGVU b29sRmFjdG9yeS5oCitAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBUYWJsZVRvb2xGYWN0b3J5IDog cHVibGljIEtvVG9vbEZhY3RvcnlCYXNlCisgICAgIFRhYmxlVG9vbEZhY3RvcnkoKTsKKyAgICAg flRhYmxlVG9vbEZhY3RvcnkoKTsKKyAKKy0gICAgS29Ub29sQmFzZSogY3JlYXRlVG9vbChLb0Nh bnZhc0Jhc2UqIGNhbnZhcyk7CisrICAgIEtvVG9vbEJhc2UqIGNyZWF0ZVRvb2woS29DYW52YXNC YXNlKiBjYW52YXMpIG92ZXJyaWRlOworIH07CisgCisgfSAvLyBuYW1lc3BhY2UgU2hlZXRzCitk aWZmIC0tZ2l0IGEvc2hlZXRzL3Rlc3RzL1Rlc3RTb3J0LmNwcCBiL3NoZWV0cy90ZXN0cy9UZXN0 U29ydC5jcHAKK2luZGV4IGIzZjFlMzUxNjlkLi42MzU0ZDc5YWJjNSAxMDA2NDQKKy0tLSBhL3No ZWV0cy90ZXN0cy9UZXN0U29ydC5jcHAKKysrKyBiL3NoZWV0cy90ZXN0cy9UZXN0U29ydC5jcHAK K0BAIC02OCw3ICs2OCw3IEBAIHZvaWQgVGVzdFNvcnQ6OkFzY2VuZGluZ09yZGVyKCkKKyAgICAg Y29tbWFuZC0+c2V0U2hlZXQoc2hlZXQpOworIAorICAgICAvLyBQYXJhbWV0ZXJzLgorLSAgICBj b21tYW5kLT5zZXRTb3J0Um93cyhRdDo6VmVydGljYWwpOworKyAgICBjb21tYW5kLT5zZXRTb3J0 Um93cyh0cnVlKTsKKyAgICAgY29tbWFuZC0+c2V0U2tpcEZpcnN0KGZhbHNlKTsKKyAgICAgY29t bWFuZC0+c2V0Q29weUZvcm1hdChmYWxzZSk7CisgCitAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQg VGVzdFNvcnQ6OkRlc2NlbmRpbmdPcmRlcigpCisgICAgIGNvbW1hbmQtPnNldFNoZWV0KHNoZWV0 KTsKKyAKKyAgICAgLy8gUGFyYW1ldGVycy4KKy0gICAgY29tbWFuZC0+c2V0U29ydFJvd3MoUXQ6 OlZlcnRpY2FsKTsKKysgICAgY29tbWFuZC0+c2V0U29ydFJvd3ModHJ1ZSk7CisgICAgIGNvbW1h bmQtPnNldFNraXBGaXJzdChmYWxzZSk7CisgICAgIGNvbW1hbmQtPnNldENvcHlGb3JtYXQoZmFs c2UpOworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDItTWFrZS1z aG93LWhpZGRlbi1yb3ctcy13b3JrLnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAw MDItTWFrZS1zaG93LWhpZGRlbi1yb3ctcy13b3JrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZDRiMDgyYjlhMGYxCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDItTWFrZS1zaG93LWhpZGRlbi1yb3ctcy13b3JrLnBh dGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gMjJlMDI5OThkZWM4YWYxNWEyNWI3ZThlM2Q1M2Mx NzQ4MTBjYzNiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhZyBBbmRlcnNlbiA8 ZGFuZGVyc0BnZXQybmV0LmRrPgorRGF0ZTogVGh1LCAxMSBKdW4gMjAyMCAxMDo0MzozOCArMDIw MAorU3ViamVjdDogW1BBVENIXSBNYWtlIHNob3cgaGlkZGVuIHJvdyhzKSB3b3JrCisKK0NoZWNr IGZvciBoaWRkZW4gcm93cyB3YXMgaW52ZXJ0ZWQgdG8gY2hlY2sgZm9yIHNob3duIHJvd3MsCito ZW5jZSBoaWRkZW4gcm93cyB3b3VsZCBuZXZlciBiZSB1bmhpZGRlbi4KKworQlVHOjMzODgxNgor QlVHOjM1NDIzNgorRklYRUQtSU46My4yLjIKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDI4 OTIwYzUwZTYzMDBkNjQzNDc3ZjI1NmFiYTkxYzhjNTE4MzY2ODIpCistLS0KKyBzaGVldHMvY29t bWFuZHMvUm93Q29sdW1uTWFuaXB1bGF0b3JzLmNwcCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NoZWV0cy9jb21t YW5kcy9Sb3dDb2x1bW5NYW5pcHVsYXRvcnMuY3BwIGIvc2hlZXRzL2NvbW1hbmRzL1Jvd0NvbHVt bk1hbmlwdWxhdG9ycy5jcHAKK2luZGV4IDk1MjgyZDZlMzFiLi4yNWU4YzQ1NGUyNyAxMDA2NDQK Ky0tLSBhL3NoZWV0cy9jb21tYW5kcy9Sb3dDb2x1bW5NYW5pcHVsYXRvcnMuY3BwCisrKysgYi9z aGVldHMvY29tbWFuZHMvUm93Q29sdW1uTWFuaXB1bGF0b3JzLmNwcAorQEAgLTE5Miw3ICsxOTIs NyBAQCBib29sIEhpZGVTaG93TWFuaXB1bGF0b3I6OnByZVByb2Nlc3NpbmcoKQorICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGZvciAo aW50IHJvdyA9IHJhbmdlLnRvcCgpOyByb3cgPD0gcmFuZ2UuYm90dG9tKCk7ICsrcm93KSB7Cist ICAgICAgICAgICAgICAgICAgICBpZiAoIW1fc2hlZXQtPnJvd0Zvcm1hdHMoKS0+aXNIaWRkZW4o cm93KSkgeworKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc2hlZXQtPnJvd0Zvcm1hdHMoKS0+ aXNIaWRkZW4ocm93KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5hZGQoUVJl Y3QoMSwgcm93LCBLU19jb2xNYXgsIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL2MrKzE3 LnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL2MrKzE3LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWRiODM4NTE2MWEzCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL2MrKzE3LnBhdGNoCkBAIC0wLDAgKzEsMTYg QEAKK2RpZmYgLU5hdXIgQ01ha2VMaXN0cy50eHQub3JpZyBDTWFrZUxpc3RzLnR4dAorLS0tIGEv Q01ha2VMaXN0cy50eHQub3JpZworKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xMDYsOSArMTA2 LDkgQEAKKyAKKyAjIHVzZSBDUFAtMTEKKyBpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xFU1Mg IjMuMSIpCistICAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLXN0 ZD1jKysxMSIpCisrICAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30g LXN0ZD1jKysxNyIpCisgZWxzZSAoKQorLSAgICBzZXQgKENNQUtFX0NYWF9TVEFOREFSRCAxMSkK KysgICAgc2V0IChDTUFLRV9DWFhfU1RBTkRBUkQgMTcpCisgZW5kaWYgKCkKKyAKKyAjIyMjIyMj IyMjIyMKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIu MDMuMC1maXgucGF0Y2ggYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4w LWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjdkYWI1 M2JjZmM3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3Bw bGVyLTIyLjAzLjAtZml4LnBhdGNoCkBAIC0wLDAgKzEsNzAgQEAKK0Zyb20gMjM2YmFjYmUxMzcz OTQxNGU5MTlkZTg2ODI4M2IwY2FmMmRmNWQ4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEFsYmVydCBBc3RhbHMgQ2lkIDxhYWNpZEBrZGUub3JnPgorRGF0ZTogV2VkLCAxMyBBcHIg MjAyMiAwMToyNTo0NCArMDIwMAorU3ViamVjdDogW1BBVENIXSBQZGZJbXBvcnQ6IEZpeCBjb21w aWxlIHdpdGggbmV3ZXIgcG9wcGxlcgorCitCcmluZ3MgYSBkZXBlbmRlbmN5IG9uIHBvcHBsZXIt cXQ1IHRvIGJlIGFibGUgdG8gaW5jbHVkZSB0aGUgdmVyc2lvbgoraGVhZGVyLCBob25lc3RseSBp dCdzIG5vdCBzdHJpY3RseSBuZWVkZWQsIG9uZSBjb3VsZCBkbyBhCitjaGVja19jeHhfc291cmNl X2NvbXBpbGVzLCBidXQgSSBkb24ndCBjYXJlIGFib3V0IENhbGxpZ3JhIGVub3VnaCB0bworc3Bl bmQgbW9yZSB0aW1lIG1ha2luZyBpdCBjb21waWxlIHdoaWxlIGl0J3MgdXNpbmcgcG9wcGxlciB0 aGUgd3JvbmcKK3dheS4KKy0tLQorIENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICB8 IDEgKworIGZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dCB8IDIgKy0KKyBmaWx0ZXJz L2thcmJvbi9wZGYvUGRmSW1wb3J0LmNwcCAgfCA5ICsrKysrKysrKworIDMgZmlsZXMgY2hhbmdl ZCwgMTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VM aXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggNTFmMWQ2NWI4ZTYuLjA2YmJhZDVjMjRj IDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAt OTUyLDYgKzk1Miw3IEBAIGNhbGxpZ3JhX2Ryb3BfcHJvZHVjdF9vbl9iYWRfY29uZGl0aW9uKCBG SUxURVJfV1BHX1RPX09ERworIGNhbGxpZ3JhX2Ryb3BfcHJvZHVjdF9vbl9iYWRfY29uZGl0aW9u KCBGSUxURVJfUERGX1RPX1NWRworICAgICBOT1RfV0lOICJub3Qgc3VwcG9ydGVkIG9uIFdpbmRv d3MiCisgICAgIFBvcHBsZXJYUERGSGVhZGVyc19GT1VORCAicG9wcGxlciB4cGRmIGhlYWRlcnMg bm90IGZvdW5kIgorKyAgICBQb3BwbGVyX0ZPVU5EICJwb3BwbGVyIHF0NSBoZWFkZXJzIG5vdCBm b3VuZCIKKyAgICAgKQorIAorIGNhbGxpZ3JhX2Ryb3BfcHJvZHVjdF9vbl9iYWRfY29uZGl0aW9u KCBGSUxURVJfSFRNTF9UT19PRFMKK2RpZmYgLS1naXQgYS9maWx0ZXJzL2thcmJvbi9wZGYvQ01h a2VMaXN0cy50eHQgYi9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQKK2luZGV4IDhm ZGRmMWFkNzU3Li5iNzFjOTJjYmYwNCAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9D TWFrZUxpc3RzLnR4dAorKysrIGIvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CitA QCAtMyw3ICszLDcgQEAgc2V0KHBkZjJzdmdfUEFSVF9TUkNTIFBkZkltcG9ydERlYnVnLmNwcCBQ ZGZJbXBvcnQuY3BwIFN2Z091dHB1dERldi5jcHAgKQorIGFkZF9saWJyYXJ5KGNhbGxpZ3JhX2Zp bHRlcl9wZGYyc3ZnIE1PRFVMRSAke3BkZjJzdmdfUEFSVF9TUkNTfSkKKyBjYWxsaWdyYV9maWx0 ZXJfZGVza3RvcF90b19qc29uKGNhbGxpZ3JhX2ZpbHRlcl9wZGYyc3ZnIGNhbGxpZ3JhX2ZpbHRl cl9wZGYyc3ZnLmRlc2t0b3ApCisgCistdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGNhbGxpZ3JhX2Zp bHRlcl9wZGYyc3ZnIGtvbWFpbiBQb3BwbGVyOjpDb3JlKQorK3RhcmdldF9saW5rX2xpYnJhcmll cyhjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBrb21haW4gUG9wcGxlcjo6Q29yZSBQb3BwbGVyOjpR dDUpCisgCisgaW5zdGFsbChUQVJHRVRTIGNhbGxpZ3JhX2ZpbHRlcl9wZGYyc3ZnIERFU1RJTkFU SU9OICR7UExVR0lOX0lOU1RBTExfRElSfS9jYWxsaWdyYS9mb3JtYXRmaWx0ZXJzKQorIAorZGlm ZiAtLWdpdCBhL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGZJbXBvcnQuY3BwIGIvZmlsdGVycy9rYXJi b24vcGRmL1BkZkltcG9ydC5jcHAKK2luZGV4IGFiYmU2ODFiNGU4Li5lOTc5NzRmYzEzMyAxMDA2 NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGZJbXBvcnQuY3BwCisrKysgYi9maWx0ZXJz L2thcmJvbi9wZGYvUGRmSW1wb3J0LmNwcAorQEAgLTE3LDYgKzE3LDEwIEBACisgCisgI2luY2x1 ZGUgPGtwbHVnaW5mYWN0b3J5Lmg+CisgCisrI2luY2x1ZGUgPHBvcHBsZXItdmVyc2lvbi5oPgor KworKyNkZWZpbmUgUE9QUExFUl9WRVJTSU9OX01BQ1JPICgoUE9QUExFUl9WRVJTSU9OX01BSk9S IDw8IDE2KSB8IChQT1BQTEVSX1ZFUlNJT05fTUlOT1IgPDwgOCkgfCAoUE9QUExFUl9WRVJTSU9O X01JQ1JPKSkKKysKKyAvLyBEb24ndCBzaG93IHRoaXMgd2FybmluZzogaXQncyBhbiBpc3N1ZSBp biBwb3BwbGVyCisgI2lmZGVmIF9fR05VQ19fCisgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v cmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitAQCAtNTQsOCArNTgsMTMgQEAgS29GaWx0ZXI6OkNv bnZlcnNpb25TdGF0dXMgUGRmSW1wb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20s IGNvbnN0IFFCeXQKKyAgICAgaWYgKCEgZ2xvYmFsUGFyYW1zKQorICAgICAgICAgcmV0dXJuIEtv RmlsdGVyOjpOb3RJbXBsZW1lbnRlZDsKKyAKKysjaWYgUE9QUExFUl9WRVJTSU9OX01BQ1JPIDwg UVRfVkVSU0lPTl9DSEVDSygyMiwgMDMsIDApCisgICAgIEdvb1N0cmluZyAqIGZuYW1lID0gbmV3 IEdvb1N0cmluZyhRRmlsZTo6ZW5jb2RlTmFtZShtX2NoYWluLT5pbnB1dEZpbGUoKSkuZGF0YSgp KTsKKyAgICAgUERGRG9jICogcGRmRG9jID0gbmV3IFBERkRvYyhmbmFtZSwgMCwgMCwgMCk7Cisr I2Vsc2UKKysgICAgc3RkOjp1bmlxdWVfcHRyPEdvb1N0cmluZz4gZm5hbWUgPSBzdGQ6Om1ha2Vf dW5pcXVlPEdvb1N0cmluZz4oUUZpbGU6OmVuY29kZU5hbWUobV9jaGFpbi0+aW5wdXRGaWxlKCkp LmRhdGEoKSk7CisrICAgIFBERkRvYyAqIHBkZkRvYyA9IG5ldyBQREZEb2Moc3RkOjptb3ZlKGZu YW1lKSk7CisrI2VuZGlmCisgICAgIGlmICghIHBkZkRvYykgeworICAgICAgICAgZ2xvYmFsUGFy YW1zLnJlc2V0KCk7CisgICAgICAgICByZXR1cm4gS29GaWx0ZXI6OlN0dXBpZEVycm9yOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgucGF0 Y2ggYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU0NzE2OTk1MGI4YgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAt Zml4LnBhdGNoCkBAIC0wLDAgKzEsOTEgQEAKK0Zyb20gNmI3NWJlYzc4NGM5ODM1Yzc4OTkzMzQ5 ODQ1ZDhjMmVmMjJlYzNkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhZyBBbmRl cnNlbiA8ZGFnLmFuZGVyc2VuQGtkZW1haWwubmV0PgorRGF0ZTogV2VkLCAxMyBBcHIgMjAyMiAx NDo0NTozMyArMDIwMAorU3ViamVjdDogW1BBVENIXSBQZGZJbXBvcnQ6IEZpeCBjb21waWxlIHdp dGggbmV3ZXIgcG9wcGxlcgorCitBbHNvIGZpeGVzIG9kZzJwZGYgZmlsdGVyLgorCitTYW1lIHNv bHV0aW9uIGFzIGNvbW1pdCAyMzZiYWNiZTEzNzM5NDE0ZTkxOWRlODY4MjgzYjBjYWYyZGY1ZDhh CitieSBhY2NpZEBrZGUub3JnLgorLS0tCisgZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMu dHh0ICAgIHwgMiArLQorIGZpbHRlcnMva2FyYm9uL3BkZi9QZGYyT2RnSW1wb3J0LmNwcCB8IDkg KysrKysrKysrCisgZmlsdGVycy9rYXJib24vcGRmL1N2Z091dHB1dERldi5jcHAgIHwgOSArKysr KysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK KworZGlmZiAtLWdpdCBhL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dCBiL2ZpbHRl cnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYjcxYzkyY2JmMDQuLjRjZTEzOGNj ZGQ2IDEwMDY0NAorLS0tIGEvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CisrKysg Yi9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQKK0BAIC0xMyw2ICsxMyw2IEBAIHNl dChwZGYyb2RnX1BBUlRfU1JDUyBQZGZJbXBvcnREZWJ1Zy5jcHAgUGRmMk9kZ0ltcG9ydC5jcHAg U3ZnT3V0cHV0RGV2LmNwcCkKKyBhZGRfbGlicmFyeShjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZyBN T0RVTEUgJHtwZGYyb2RnX1BBUlRfU1JDU30pCisgY2FsbGlncmFfZmlsdGVyX2Rlc2t0b3BfdG9f anNvbihjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZyBjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZy5kZXNr dG9wKQorIAorLXRhcmdldF9saW5rX2xpYnJhcmllcyhjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZyBr b3BhZ2VhcHAga2FyYm9udWkgUG9wcGxlcjo6Q29yZSkKKyt0YXJnZXRfbGlua19saWJyYXJpZXMo Y2FsbGlncmFfZmlsdGVyX3BkZjJvZGcga29wYWdlYXBwIGthcmJvbnVpIFBvcHBsZXI6OkNvcmUg UG9wcGxlcjo6UXQ1KQorIAorIGluc3RhbGwoVEFSR0VUUyBjYWxsaWdyYV9maWx0ZXJfcGRmMm9k ZyBERVNUSU5BVElPTiAke1BMVUdJTl9JTlNUQUxMX0RJUn0vY2FsbGlncmEvZm9ybWF0ZmlsdGVy cykKK2RpZmYgLS1naXQgYS9maWx0ZXJzL2thcmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAgYi9m aWx0ZXJzL2thcmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAKK2luZGV4IDkzNGUzMWRkNWFhLi5h MjFlYWM5N2E3NyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGYyT2RnSW1wb3J0 LmNwcAorKysrIGIvZmlsdGVycy9rYXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwCitAQCAtMjcs NiArMjcsOCBAQAorIAorICNpbmNsdWRlIDxrcGx1Z2luZmFjdG9yeS5oPgorIAorKyNpbmNsdWRl IDxwb3BwbGVyLXZlcnNpb24uaD4KKysKKyAvLyBEb24ndCBzaG93IHRoaXMgd2FybmluZzogaXQn cyBhbiBpc3N1ZSBpbiBwb3BwbGVyCisgI2lmZGVmIF9fR05VQ19fCisgI3ByYWdtYSBHQ0MgZGlh Z25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitAQCAtMzYsNiArMzgsOCBAQAor ICNpbmNsdWRlIDxQREZEb2MuaD4KKyAjaW5jbHVkZSA8R2xvYmFsUGFyYW1zLmg+CisgCisrI2Rl ZmluZSBQT1BQTEVSX1ZFUlNJT05fTUFDUk8gKChQT1BQTEVSX1ZFUlNJT05fTUFKT1IgPDwgMTYp IHwgKFBPUFBMRVJfVkVSU0lPTl9NSU5PUiA8PCA4KSB8IChQT1BQTEVSX1ZFUlNJT05fTUlDUk8p KQorKworIEtfUExVR0lOX0ZBQ1RPUllfV0lUSF9KU09OKFBkZjJPZGdJbXBvcnRGYWN0b3J5LCAi Y2FsbGlncmFfZmlsdGVyX3BkZjJvZGcuanNvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVnaXN0ZXJQbHVnaW48UGRmMk9kZ0ltcG9ydD4oKTspCisgCitAQCAtNjksOCArNzMsMTMg QEAgS29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgUGRmMk9kZ0ltcG9ydDo6Y29udmVydChjb25z dCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdAorICAgICBpZiAoISBnbG9iYWxQYXJhbXMpCisgICAg ICAgICByZXR1cm4gS29GaWx0ZXI6Ok5vdEltcGxlbWVudGVkOworIAorKyNpZiBQT1BQTEVSX1ZF UlNJT05fTUFDUk8gPCBRVF9WRVJTSU9OX0NIRUNLKDIyLCAwMywgMCkKKyAgICAgR29vU3RyaW5n ICogZm5hbWUgPSBuZXcgR29vU3RyaW5nKFFGaWxlOjplbmNvZGVOYW1lKG1fY2hhaW4tPmlucHV0 RmlsZSgpKS5kYXRhKCkpOworICAgICBQREZEb2MgKiBwZGZEb2MgPSBuZXcgUERGRG9jKGZuYW1l LCAwLCAwLCAwKTsKKysjZWxzZQorKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R29vU3RyaW5nPiBmbmFt ZSA9IHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihRRmlsZTo6ZW5jb2RlTmFtZShtX2NoYWlu LT5pbnB1dEZpbGUoKSkuZGF0YSgpKTsKKysgICAgUERGRG9jICogcGRmRG9jID0gbmV3IFBERkRv YyhzdGQ6Om1vdmUoZm5hbWUpKTsKKysjZW5kaWYKKyAgICAgaWYgKCEgcGRmRG9jKSB7CisgICAg ICAgICBnbG9iYWxQYXJhbXMucmVzZXQoKTsKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6U3R1 cGlkRXJyb3I7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9rYXJib24vcGRmL1N2Z091dHB1dERldi5j cHAgYi9maWx0ZXJzL2thcmJvbi9wZGYvU3ZnT3V0cHV0RGV2LmNwcAoraW5kZXggMGU2ZTVhOTM0 Y2EuLjdjYWVjMTUxNzVhIDEwMDY0NAorLS0tIGEvZmlsdGVycy9rYXJib24vcGRmL1N2Z091dHB1 dERldi5jcHAKKysrKyBiL2ZpbHRlcnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3BwCitAQCAt MjIsNiArMjIsMTAgQEAKKyAjaW5jbHVkZSA8UVBlbj4KKyAjaW5jbHVkZSA8UUltYWdlPgorIAor KyNpbmNsdWRlIDxwb3BwbGVyLXZlcnNpb24uaD4KKysKKysjZGVmaW5lIFBPUFBMRVJfVkVSU0lP Tl9NQUNSTyAoKFBPUFBMRVJfVkVSU0lPTl9NQUpPUiA8PCAxNikgfCAoUE9QUExFUl9WRVJTSU9O X01JTk9SIDw8IDgpIHwgKFBPUFBMRVJfVkVSU0lPTl9NSUNSTykpCisrCisgY2xhc3MgU3ZnT3V0 cHV0RGV2OjpQcml2YXRlCisgeworIHB1YmxpYzoKK0BAIC0zODYsNyArMzkwLDEyIEBAIHZvaWQg U3ZnT3V0cHV0RGV2OjpkcmF3U3RyaW5nKEdmeFN0YXRlICogc3RhdGUsIGNvbnN0IEdvb1N0cmlu ZyAqIHMpCisgICAgIGlmIChzLT5nZXRMZW5ndGgoKSA9PSAwKQorICAgICAgICAgcmV0dXJuOwor IAorKyNpZiBQT1BQTEVSX1ZFUlNJT05fTUFDUk8gPCBRVF9WRVJTSU9OX0NIRUNLKDIyLCAwMywg MCkKKyAgICAgR2Z4Rm9udCAqIGZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworKyNlbHNlCisrICAg IHN0ZDo6c2hhcmVkX3B0cjxHZnhGb250PiBmb250ID0gc3RhdGUtPmdldEZvbnQoKTsKKysjZW5k aWYKKysKKyAKKyAgICAgUVN0cmluZyBzdHI7CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NhbGxp Z3JhL3RlbXBsYXRlIGIvc3JjcGtncy9jYWxsaWdyYS90ZW1wbGF0ZQppbmRleCA3YzE0MTFiZjNk YTYuLjZmOTI0ZDYyZjhmZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jYWxsaWdyYS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2NhbGxpZ3JhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnY2FsbGlncmEnCiBwa2duYW1lPWNhbGxpZ3JhCiB2ZXJzaW9uPTMuMi4xCi1y ZXZpc2lvbj03CityZXZpc2lvbj04CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9 Ii1Xbm8tZGV2IC1EQ0FMTElHUkFfU0hPVUxEX0JVSUxEX1VOTUFJTlRBSU5FRD1PTgogIC1EQlVJ TERfVEVTVElORz1PRkYiCgpGcm9tIDhmZDU2YzAzNDgxNTY1NmRkNzhiZmQ4YTVmYWE4YTExODY2 YTg4OTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09y ZW82MzlAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4 OjM0OjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMF0gaW5rc2NhcGU6IHJlYnVpbGQgYWdh aW5zdCBsaWJwb3BwbGVyIDIyLjA2LjAKCi0tLQogLi4uaWJpbGl0eS13aXRoLVBvcHBsZXItMjIu MDMtYW5kLWxhdGVyLnBhdGNoIHwgIDUwICsrKysrKwogLi4uL0ZpeC1idWlsZC13aXRoLXBvcHBs ZXItMjEuMTEuMC5wYXRjaCAgICAgIHwgIDI5ICsrKysKIC4uLi9GaXgtYnVpbGQtd2l0aC1wb3Bw bGVyLTIyLjA0LnBhdGNoICAgICAgICB8IDE0MyArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv aW5rc2NhcGUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogNCBmaWxlcyBj aGFuZ2VkLCAyMjMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBv cHBsZXItMjIuMDMtYW5kLWxhdGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9p bmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1w b3BwbGVyLTIyLjA0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVz L0Vuc3VyZS1jb21wYXRpYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0ZXIucGF0Y2gg Yi9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRW5zdXJlLWNvbXBhdGliaWxpdHktd2l0aC1Qb3Bw bGVyLTIyLjAzLWFuZC1sYXRlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjI5N2VmNjc3NjY1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW5rc2Nh cGUvcGF0Y2hlcy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMtYW5kLWxh dGVyLnBhdGNoCkBAIC0wLDAgKzEsNTAgQEAKK0Zyb20gYTE4YzU3ZmZmZjMxM2ZkMDhiYzhhNDRm NmI2YmYwYjAxZDdlOWI3NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEV2YW5nZWxv cyBGb3V0cmFzIDxldmFuZ2Vsb3NAZm91dHJlbGlzLmNvbT4KK0RhdGU6IFN1biwgMjAgTWFyIDIw MjIgMjI6NDE6NTEgLTAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gRW5zdXJlIGNvbXBhdGliaWxpdHkg d2l0aCBQb3BwbGVyIDIyLjAzIGFuZCBsYXRlcgorCitUaGlzIGNoYW5nZSBlbnN1cmVzIHRoYXQg SW5rc2NhcGUgd2lsbCBidWlsZCBhZ2FpbnN0IFBvcHBsZXIgMjIuMDMgYWZ0ZXIKK3RoZSBjaGFu Z2VzIHRoYXQgd2VyZSBtYWRlIHRvIHRoZSBjb25zdHJ1Y3RvciBvZiBgUERGRG9jYC4KKworU2Vl OiBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcG9wcGxlci9wb3BwbGVyLy0vY29tbWl0 LzRmMmFiZDNlZgorCitDby1hdXRob3JlZC1ieTogUmFmYWVsIFNpZWpha293c2tpIDxyc0Bycy1t YXRoLm5ldD4KKy0tLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0 LmNwcCAgICAgICAgICAgIHwgMyArLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0 L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCB8IDYgKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5z aW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1pbnB1dC5jcHAgYi9zcmMvZXh0ZW5zaW9uL2ludGVy bmFsL3BkZmlucHV0L3BkZi1pbnB1dC5jcHAKK2luZGV4IDNkYWJjOTRiYTIuLjA3OWIwZGM3MTMg MTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1pbnB1dC5j cHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcAor QEAgLTY4OCw4ICs2ODgsNyBAQCBQZGZJbnB1dDo6b3Blbig6Oklua3NjYXBlOjpFeHRlbnNpb246 OklucHV0ICogLyptb2QqLywgY29uc3QgZ2NoYXIgKiB1cmkpIHsKKyAKKyAgICAgLy8gcG9wcGxl ciBkb2VzIG5vdCB1c2UgZ2xpYiBnX29wZW4uIFNvIG9uIHdpbjMyIHdlIG11c3QgdXNlIHVuaWNv ZGUgY2FsbC4gY29kZSB3YXMgY29waWVkIGZyb20KKyAgICAgLy8gZ2xpYiBnc3RkaW8uYworLSAg ICBHb29TdHJpbmcgKmZpbGVuYW1lX2dvbyA9IG5ldyBHb29TdHJpbmcodXJpKTsKKy0gICAgcGRm X2RvYyA9IHN0ZDo6bWFrZV9zaGFyZWQ8UERGRG9jPihmaWxlbmFtZV9nb28sIG51bGxwdHIsIG51 bGxwdHIsIG51bGxwdHIpOyAgIC8vIFRPRE86IENvdWxkIGFzayBmb3IgcGFzc3dvcmQKKysgICAg cGRmX2RvYyA9IF9QT1BQTEVSX01BS0VfU0hBUkVEX1BERkRPQyh1cmkpOyAvLyBUT0RPOiBDb3Vs ZCBhc2sgZm9yIHBhc3N3b3JkCisgCisgICAgIGlmICghcGRmX2RvYy0+aXNPaygpKSB7CisgICAg ICAgICBpbnQgZXJyb3IgPSBwZGZfZG9jLT5nZXRFcnJvckNvZGUoKTsKK2RpZmYgLS1naXQgYS9z cmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCBi L3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5o CitpbmRleCA4N2ExOWQ0YzQyLi41MGI2MTdjMjVjIDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lv bi9pbnRlcm5hbC9wZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKKysrKyBiL3NyYy9l eHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitAQCAt MTQsNiArMTQsMTIgQEAKKyAKKyAjaW5jbHVkZSA8Z2xpYi9wb3BwbGVyLWZlYXR1cmVzLmg+Cisg CisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKysjZGVmaW5lIF9QT1BQTEVS X01BS0VfU0hBUkVEX1BERkRPQyh1cmkpIHN0ZDo6bWFrZV9zaGFyZWQ8UERGRG9jPihzdGQ6Om1h a2VfdW5pcXVlPEdvb1N0cmluZz4odXJpKSkKKysjZWxzZQorKyNkZWZpbmUgX1BPUFBMRVJfTUFL RV9TSEFSRURfUERGRE9DKHVyaSkgc3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KG5ldyBHb29TdHJp bmcodXJpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikKKysjZW5kaWYKKysKKyAjaWYgUE9Q UExFUl9DSEVDS19WRVJTSU9OKDAsIDgzLCAwKQorICNkZWZpbmUgX1BPUFBMRVJfQ09OU1RfODMg Y29uc3QKKyAjZWxzZQorLS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmtzY2Fw ZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaCBiL3NyY3BrZ3Mv aW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIxLjExLjAucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZDdmNDgwMTI3M2QKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9w cGxlci0yMS4xMS4wLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gNTcyNGMyMWI5Y2I3YjYx NzZhN2IzNmNhMjQwNjhiMTQ4YzgxN2U4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IEV2YW5nZWxvcyBGb3V0cmFzIDxldmFuZ2Vsb3NAZm91dHJlbGlzLmNvbT4KK0RhdGU6IE1vbiwg MSBOb3YgMjAyMSAyMTo0NTozOCArMDIwMAorU3ViamVjdDogW1BBVENIXSBGaXggYnVpbGQgd2l0 aCBwb3BwbGVyIDIxLjExLjAKKworR2Z4Rm9udDo6dGFnIGlzIG5vdyBvZiB0eXBlIHN0ZDo6c3Ry aW5nIGluc3RlYWQgb2YgR29vU3RyaW5nICouCistLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1 dC9wZGYtcGFyc2VyLmNwcCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBh cnNlci5jcHAKK2luZGV4IGUzZDA0ZDU0NGIuLmZlZWNlZmEwNDMgMTAwNjQ0CistLS0gYS9zcmMv ZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwCisrKysgYi9zcmMvZXh0 ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwCitAQCAtMjE2OSw3ICsyMTY5 LDExIEBAIHZvaWQgUGRmUGFyc2VyOjpvcFNldEZvbnQoT2JqZWN0IGFyZ3NbXSwgaW50IC8qbnVt QXJncyovKQorICAgfQorICAgaWYgKHByaW50Q29tbWFuZHMpIHsKKyAgICAgcHJpbnRmKCIgIGZv bnQ6IHRhZz0lcyBuYW1lPSclcycgJWdcbiIsCisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigy MSwxMSwwKQorKwkgICBmb250LT5nZXRUYWcoKS5jX3N0cigpLAorKyNlbHNlCisgCSAgIGZvbnQt PmdldFRhZygpLT5nZXRDU3RyaW5nKCksCisrI2VuZGlmCisgCSAgIGZvbnQtPmdldE5hbWUoKSA/ IGZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIj8/PyIsCisgCSAgIGFyZ3NbMV0uZ2V0 TnVtKCkpOworICAgICBmZmx1c2goc3Rkb3V0KTsKKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIyLjA0LnBh dGNoIGIvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIu MDQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMTIwNTQy NjhhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1 aWxkLXdpdGgtcG9wcGxlci0yMi4wNC5wYXRjaApAQCAtMCwwICsxLDE0MyBAQAorRnJvbSBkOTg5 Y2RmMTA1OWM3OGJjM2JiNjQxNDMzMDI0MjA3Mzc2OGQ2NDBiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogUmFmYWVsIFNpZWpha293c2tpIDxyc0Bycy1tYXRoLm5ldD4KK0RhdGU6IE1v biwgNCBBcHIgMjAyMiAyMjowOTozOSAtMDMwMAorU3ViamVjdDogW1BBVENIXSBDb21wYXRpYmls aXR5IHdpdGggUG9wcGxlciAyMi4wNAorCitSZXBsYWNlIHZhbmlsbGEgcG9pbnRlcnMgd2l0aCBz dGQ6OnNoYXJlZF9wdHIgZm9yIHBvaW50ZXJzIHRvIGZvbnRzOworZWxpbWluYXRlIG1hbnVhbCBy ZWYtY291bnRpbmcuCisKK0ZpeGVzIGh0dHBzOi8vZ2l0bGFiLmNvbS9pbmtzY2FwZS9pbmtzY2Fw ZS8tL2lzc3Vlcy8zMzg3CistLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3Bk Zi1wYXJzZXIuY3BwICAgICB8IDE0ICsrKysrKysrLS0tLS0tCisgLi4uL2ludGVybmFsL3BkZmlu cHV0L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCAgICAgfCAgNiArKysrKysKKyBzcmMvZXh0ZW5z aW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmNwcCAgICB8ICA3ICstLS0tLS0KKyBz cmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmggICAgICB8ICAxIC0K KyA0IGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNw cCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKK2luZGV4 IGZlZWNlZmEwNDMuLmQ2ZTJlZGU0ZjMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVy bmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlICJH ZnguaCIKKyAjaW5jbHVkZSAicGRmLXBhcnNlci5oIgorICNpbmNsdWRlICJ1dGlsL3VuaXRzLmgi CisrI2luY2x1ZGUgInBvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCIKKyAKKyAjaW5jbHVkZSAiZ2xp Yi9wb3BwbGVyLWZlYXR1cmVzLmgiCisgI2luY2x1ZGUgImdvby9nbWVtLmgiCitAQCAtMjE1OCw3 ICsyMTU5LDcgQEAgdm9pZCBQZGZQYXJzZXI6Om9wU2V0Q2hhclNwYWNpbmcoT2JqZWN0IGFyZ3Nb XSwgaW50IC8qbnVtQXJncyovKQorIC8vIFRPRE8gbm90IGdvb2QgdGhhdCBudW1BcmdzIGlzIGln bm9yZWQgYnV0IGFyZ3NbXSBpcyB1c2VkOgorIHZvaWQgUGRmUGFyc2VyOjpvcFNldEZvbnQoT2Jq ZWN0IGFyZ3NbXSwgaW50IC8qbnVtQXJncyovKQorIHsKKy0gIEdmeEZvbnQgKmZvbnQgPSByZXMt Pmxvb2t1cEZvbnQoYXJnc1swXS5nZXROYW1lKCkpOworKyAgYXV0byBmb250ID0gcmVzLT5sb29r dXBGb250KGFyZ3NbMF0uZ2V0TmFtZSgpKTsKKyAKKyAgIGlmICghZm9udCkgeworICAgICAvLyB1 bnNldHRpbmcgdGhlIGZvbnQgKGRyYXdpbmcgbm8gdGV4dCkgaXMgYmV0dGVyIHRoYW4gdXNpbmcg dGhlCitAQCAtMjE3OSw3ICsyMTgwLDkgQEAgdm9pZCBQZGZQYXJzZXI6Om9wU2V0Rm9udChPYmpl Y3QgYXJnc1tdLCBpbnQgLypudW1BcmdzKi8pCisgICAgIGZmbHVzaChzdGRvdXQpOworICAgfQor IAorKyNpZiAhUE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCA0LCAwKQorICAgZm9udC0+aW5jUmVm Q250KCk7CisrI2VuZGlmCisgICBzdGF0ZS0+c2V0Rm9udChmb250LCBhcmdzWzFdLmdldE51bSgp KTsKKyAgIGZvbnRDaGFuZ2VkID0gZ1RydWU7CisgfQorQEAgLTIzNzMsNyArMjM3Niw2IEBAIHZv aWQgUGRmUGFyc2VyOjpkb1Nob3dUZXh0KGNvbnN0IEdvb1N0cmluZyAqcykgeworICNlbHNlCisg dm9pZCBQZGZQYXJzZXI6OmRvU2hvd1RleHQoR29vU3RyaW5nICpzKSB7CisgI2VuZGlmCistICBH ZnhGb250ICpmb250OworICAgaW50IHdNb2RlOworICAgZG91YmxlIHJpc2VYLCByaXNlWTsKKyAg IENoYXJDb2RlIGNvZGU7CitAQCAtMjM5Miw3ICsyMzk0LDcgQEAgdm9pZCBQZGZQYXJzZXI6OmRv U2hvd1RleHQoR29vU3RyaW5nICpzKSB7CisgI2VuZGlmCisgICBpbnQgbGVuLCBuLCB1TGVuOwor IAorLSAgZm9udCA9IHN0YXRlLT5nZXRGb250KCk7CisrICBhdXRvIGZvbnQgPSBzdGF0ZS0+Z2V0 Rm9udCgpOworICAgd01vZGUgPSBmb250LT5nZXRXTW9kZSgpOworIAorICAgYnVpbGRlci0+YmVn aW5TdHJpbmcoc3RhdGUpOworQEAgLTI0NDUsMTAgKzI0NDcsMTAgQEAgdm9pZCBQZGZQYXJzZXI6 OmRvU2hvd1RleHQoR29vU3RyaW5nICpzKSB7CisgICAgICAgLy9vdXQtPnVwZGF0ZUNUTShzdGF0 ZSwgMSwgMCwgMCwgMSwgMCwgMCk7CisgICAgICAgaWYgKGZhbHNlKXsgLyohb3V0LT5iZWdpblR5 cGUzQ2hhcihzdGF0ZSwgY3VyWCArIHJpc2VYLCBjdXJZICsgcmlzZVksIHRkeCwgdGR5LAorIAkJ CSAgICAgICBjb2RlLCB1LCB1TGVuKSkgeyovCistICAgICAgICBfUE9QUExFUl9DQUxMX0FSR1Mo Y2hhclByb2MsICgoR2Z4OEJpdEZvbnQgKilmb250KS0+Z2V0Q2hhclByb2MsIGNvZGUpOworLQlp ZiAoKHJlc0RpY3QgPSAoKEdmeDhCaXRGb250ICopZm9udCktPmdldFJlc291cmNlcygpKSkgewor KyAgICAgICAgX1BPUFBMRVJfQ0FMTF9BUkdTKGNoYXJQcm9jLCBfUE9QUExFUl9GT05UUFRSX1RP X0dGWDgoZm9udCktPmdldENoYXJQcm9jLCBjb2RlKTsKKysgICAgaWYgKHJlc0RpY3QgPSBfUE9Q UExFUl9GT05UUFRSX1RPX0dGWDgoZm9udCktPmdldFJlc291cmNlcygpKSB7CisgCSAgcHVzaFJl c291cmNlcyhyZXNEaWN0KTsKKy0JfQorKyAgICB9CisgCWlmIChjaGFyUHJvYy5pc1N0cmVhbSgp KSB7CisgCSAgLy9wYXJzZSgmY2hhclByb2MsIGdGYWxzZSk7IC8vIFRPRE86IHBhcnNlIGludG8g U1ZHIGZvbnQKKyAJfSBlbHNlIHsKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCBiL3NyYy9leHRlbnNpb24vaW50ZXJu YWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitpbmRleCA1MGI2MTdjMjVjLi5k YzllNDdlNDViIDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9w b3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRm aW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitAQCAtMTQsNiArMTQsMTIgQEAKKyAKKyAj aW5jbHVkZSA8Z2xpYi9wb3BwbGVyLWZlYXR1cmVzLmg+CisgCisrI2lmIFBPUFBMRVJfQ0hFQ0tf VkVSU0lPTigyMiwgNCwgMCkKKysjZGVmaW5lIF9QT1BQTEVSX0ZPTlRQVFJfVE9fR0ZYOChmb250 X3B0cikgKChHZng4Qml0Rm9udCAqKWZvbnRfcHRyLmdldCgpKQorKyNlbHNlCisrI2RlZmluZSBf UE9QUExFUl9GT05UUFRSX1RPX0dGWDgoZm9udF9wdHIpICgoR2Z4OEJpdEZvbnQgKilmb250X3B0 cikKKysjZW5kaWYKKysKKyAjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorICNk ZWZpbmUgX1BPUFBMRVJfTUFLRV9TSEFSRURfUERGRE9DKHVyaSkgc3RkOjptYWtlX3NoYXJlZDxQ REZEb2M+KHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPih1cmkpKQorICNlbHNlCitkaWZmIC0t Z2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5jcHAgYi9z cmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmNwcAoraW5kZXggZWVk ZTY2ODg5My4uOTAxY2M4Y2RkYiAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwv cGRmaW5wdXQvc3ZnLWJ1aWxkZXIuY3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3Bk ZmlucHV0L3N2Zy1idWlsZGVyLmNwcAorQEAgLTEwOCw3ICsxMDgsNiBAQCBTdmdCdWlsZGVyOjp+ U3ZnQnVpbGRlcigpID0gZGVmYXVsdDsKKyAKKyB2b2lkIFN2Z0J1aWxkZXI6Ol9pbml0KCkgewor ICAgICBfZm9udF9zdHlsZSA9IG51bGxwdHI7CistICAgIF9jdXJyZW50X2ZvbnQgPSBudWxscHRy OworICAgICBfZm9udF9zcGVjaWZpY2F0aW9uID0gbnVsbHB0cjsKKyAgICAgX2ZvbnRfc2NhbGlu ZyA9IDE7CisgICAgIF9uZWVkX2ZvbnRfdXBkYXRlID0gdHJ1ZTsKK0BAIC0xMDY0LDExICsxMDYz LDggQEAgdm9pZCBTdmdCdWlsZGVyOjp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkgeworICAg ICBfbmVlZF9mb250X3VwZGF0ZSA9IGZhbHNlOworICAgICB1cGRhdGVUZXh0TWF0cml4KHN0YXRl KTsgICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSBhIHRleHQgbWF0cml4IGJ1aWx0CisgCistICAg IGlmIChfZm9udF9zdHlsZSkgeworLSAgICAgICAgLy9zcF9yZXByX2Nzc19hdHRyX3VucmVmKF9m b250X3N0eWxlKTsKKy0gICAgfQorICAgICBfZm9udF9zdHlsZSA9IHNwX3JlcHJfY3NzX2F0dHJf bmV3KCk7CistICAgIEdmeEZvbnQgKmZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworKyAgICBhdXRv IGZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworICAgICAvLyBTdG9yZSBvcmlnaW5hbCBuYW1lCisg ICAgIGlmIChmb250LT5nZXROYW1lKCkpIHsKKyAgICAgICAgIF9mb250X3NwZWNpZmljYXRpb24g PSBmb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKTsKK0BAIC0xMjEzLDcgKzEyMDksNiBAQCB2 b2lkIFN2Z0J1aWxkZXI6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKSB7CisgICAgICAgICBz cF9yZXByX2Nzc19zZXRfcHJvcGVydHkoX2ZvbnRfc3R5bGUsICJ3cml0aW5nLW1vZGUiLCAidGIi KTsKKyAgICAgfQorIAorLSAgICBfY3VycmVudF9mb250ID0gZm9udDsKKyAgICAgX2ludmFsaWRh dGVkX3N0eWxlID0gdHJ1ZTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRl cm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5oIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZp bnB1dC9zdmctYnVpbGRlci5oCitpbmRleCBmYjRlNjRmYTE5Li5lOTFmZWJkNzE3IDEwMDY0NAor LS0tIGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5oCisrKysg Yi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmgKK0BAIC0yMDQs NyArMjA0LDYgQEAgcHJpdmF0ZToKKyAgICAgc3RkOjp2ZWN0b3I8U3ZnR3JhcGhpY3NTdGF0ZT4g X3N0YXRlX3N0YWNrOworIAorICAgICBTUENTU0F0dHIgKl9mb250X3N0eWxlOyAgICAgICAgICAv LyBDdXJyZW50IGZvbnQgc3R5bGUKKy0gICAgR2Z4Rm9udCAqX2N1cnJlbnRfZm9udDsKKyAgICAg Y29uc3QgY2hhciAqX2ZvbnRfc3BlY2lmaWNhdGlvbjsKKyAgICAgZG91YmxlIF9mb250X3NjYWxp bmc7CisgICAgIGJvb2wgX25lZWRfZm9udF91cGRhdGU7CistLSAKK0dpdExhYgorCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2lua3NjYXBlL3RlbXBsYXRlIGIvc3JjcGtncy9pbmtzY2FwZS90ZW1wbGF0 ZQppbmRleCA0NWY0OGNjZGEwZGMuLjRkOTAyZTY2M2Y3MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9p bmtzY2FwZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lua3NjYXBlL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnaW5rc2NhcGUnCiBwa2duYW1lPWlua3NjYXBl CiB2ZXJzaW9uPTEuMS4xCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiB3cmtzcmM9Imlua3NjYXBl LSR7dmVyc2lvbn1fMjAyMS0wOS0yMF8zYmY1YWUwZDI1IgogYnVpbGRfc3R5bGU9Y21ha2UKICMg YnVpbGRzIGV4ZWN1dGFibGVzIHRoZW4gcnVucyBjaGVja3MKCkZyb20gMjI3OTI3ODc5ODI2ZWRj NWJiZDI2ZWMyZjY5MmNiN2I3ZmQ0Y2IwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog b3JlbzYzOSA8MzE5MTYzNzkrT3JlbzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6 IEZyaSwgMjUgTWFyIDIwMjIgMTg6MzQ6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDA2LzEwXSBp cGU6IHJlYnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA2LjAKCi0tLQogc3JjcGtncy9pcGUv cGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoIHwgMzMgKysrKysrKysrKysrKysrKysr Kwogc3JjcGtncy9pcGUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IDIgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5w YXRjaCBiL3NyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRmMjg5NDgwOWMxYwotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRj aApAQCAtMCwwICsxLDMzIEBACitkaWZmIC1OYXVyIHBkZnRvaXBlLmNwcC5vcmlnIHBkZnRvaXBl LmNwcAorLS0tIGEvaXBlLXRvb2xzL3BkZnRvaXBlL3BkZnRvaXBlLmNwcC5vcmlnCisrKysgYi9p cGUtdG9vbHMvcGRmdG9pcGUvcGRmdG9pcGUuY3BwCitAQCAtODQsMjIgKzg0LDIwIEBACisgICBp ZiAocXVpZXQpCisgICAgIGdsb2JhbFBhcmFtcy0+c2V0RXJyUXVpZXQocXVpZXQpOworIAorLSAg R29vU3RyaW5nICpvd25lclBXLCAqdXNlclBXOworKyAgc3RkOjpvcHRpb25hbDxHb29TdHJpbmc+ IG93bmVyUFcsIHVzZXJQVzsKKyAgIGlmIChvd25lclBhc3N3b3JkWzBdKSB7CistICAgIG93bmVy UFcgPSBuZXcgR29vU3RyaW5nKG93bmVyUGFzc3dvcmQpOworKyAgICBvd25lclBXID0gR29vU3Ry aW5nKG93bmVyUGFzc3dvcmQpOworICAgfSBlbHNlIHsKKy0gICAgb3duZXJQVyA9IDA7CisrICAg IG93bmVyUFcgPSBzdGQ6Om51bGxvcHQ7CisgICB9CisgICBpZiAodXNlclBhc3N3b3JkWzBdKSB7 CistICAgIHVzZXJQVyA9IG5ldyBHb29TdHJpbmcodXNlclBhc3N3b3JkKTsKKysgICAgdXNlclBX ID0gR29vU3RyaW5nKHVzZXJQYXNzd29yZCk7CisgICB9IGVsc2UgeworLSAgICB1c2VyUFcgPSAw OworKyAgICB1c2VyUFcgPSBzdGQ6Om51bGxvcHQ7CisgICB9CisgCisgICAvLyBvcGVuIFBERiBm aWxlCistICBQREZEb2MgKmRvYyA9IG5ldyBQREZEb2MoZmlsZU5hbWUsIG93bmVyUFcsIHVzZXJQ Vyk7CistICBkZWxldGUgdXNlclBXOworLSAgZGVsZXRlIG93bmVyUFc7CisrICBQREZEb2MgKmRv YyA9IG5ldyBQREZEb2Moc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZpbGVOYW1lKSwgb3du ZXJQVywgdXNlclBXKTsKKyAKKyAgIGlmICghZG9jLT5pc09rKCkpCisgICAgIHJldHVybiAxOwor CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lwZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXBlL3RlbXBsYXRl CmluZGV4IGE4NGQ1YzAzNmIyZi4uNzIzOThlN2ZmOTI0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2lw ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lwZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2lwZScKIHBrZ25hbWU9aXBlCiB2ZXJzaW9uPTcuMi4yNAotcmV2 aXNpb249NgorcmV2aXNpb249NwogX3Rvb2xzX2NvbW1pdD12Ny4yLjIwLjEKIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBkb3h5Z2VuIHF0NS1xbWFrZSBxdDUtdG9vbHMgcXQ1LWhvc3QtdG9v bHMiCiBtYWtlZGVwZW5kcz0iY2Fpcm8tZGV2ZWwgZ3NsLWRldmVsIGxpYmN1cmwtZGV2ZWwgbGli anBlZy10dXJiby1kZXZlbAoKRnJvbSBlYTVkNzk5NGY1YTVhNmJkMjllNmZhYzM5MTY0YzBjNzk5 OTI1NGI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStP cmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAx ODozNTozMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTBdIGtpdGluZXJhcnk6IHJlYnVpbGQg YWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA2LjAKCi0tLQogc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBs YXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlIGIvc3JjcGtncy9raXRp bmVyYXJ5L3RlbXBsYXRlCmluZGV4IDM0M2VmNjQ5MTFkNi4uYTJjZmNhYTE3OGI2IDEwMDY0NAot LS0gYS9zcmNwa2dzL2tpdGluZXJhcnkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9raXRpbmVyYXJ5 L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2l0aW5lcmFy eScKIHBrZ25hbWU9a2l0aW5lcmFyeQogdmVyc2lvbj0yMi4wNC4xCi1yZXZpc2lvbj0xCityZXZp c2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1t b2R1bGVzIGdldHRleHQga2NvcmVhZGRvbnMgcGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUt cW1ha2UgcXQ1LXRvb2xzLWRldmVsIgogbWFrZWRlcGVuZHM9ImtjYWxlbmRhcmNvcmUtZGV2ZWwg a2NvbnRhY3RzLWRldmVsIGtkZWNsYXJhdGl2ZS1kZXZlbCBrbWltZS1kZXZlbAoKRnJvbSBiMzQ2 YzMxZmYyZDI2NmZlMTNiYjE2YzNjMmFjOGM5YTA2OGQyMWQxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHVi LmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODozNjoyNCAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMDgvMTBdIHNjcmlidXM6IHJlYnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA2LjAKCi0t LQogLi4uL3BhdGNoZXMvMDAwMS1wb3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoICAgIHwgMTI5ICsr KysrKysrCiAuLi4vcGF0Y2hlcy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggICAgfCAg NTIgKysrKwogLi4uL3BhdGNoZXMvMDAwMy1wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoICAgIHwg Mjg4ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDQ3MCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zY3JpYnVzL3BhdGNo ZXMvMDAwMS1wb3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMi1wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMy1wb3BwbGVyLTIyLjA0 LjAtZml4LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMS1w b3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoIGIvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMS1w b3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uNGUwZjYwN2M2YTA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zY3JpYnVz L3BhdGNoZXMvMDAwMS1wb3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoCkBAIC0wLDAgKzEsMTI5IEBA CitGcm9tIDg1YzBkZmYzNDIyZmEzYzI2ZmJjMmU4ZDg1NjFmNTk3ZWMyNGJkOTIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBKZWFuIEdoYWxpIDxqZ2hhbGlAbGliZXJ0eXN1cmYuZnI+ CitEYXRlOiBXZWQsIDIgRmViIDIwMjIgMjM6MTI6NTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0g IzE2NzM0OiBCdWlsZCBicmVhayB3aXRoIHBvcHBsZXIgMjIuMi4wCisKK2dpdC1zdm4taWQ6IHN2 bjovL3NjcmlidXMubmV0L3RydW5rL1NjcmlidXNAMjQ4ODQgMTFkMjA3MDEtODQzMS0wNDEwLWE3 MTEtZTNjOTU5ZTNiODcwCistLS0KKyBzY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRw dXQuY3BwIHwgNDcgKysrKysrKysrKysrKysrKysrKy0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDM3 IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2NyaWJ1cy9w bHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcCBiL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQv cGRmL3NsYW91dHB1dC5jcHAKK2luZGV4IDU4OTRiZjJhZDYuLjM2NTBjOTZmNTIgMTAwNjQ0Cist LS0gYS9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCisrKysgYi9zY3Jp YnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCitAQCAtNyw2ICs3LDExIEBAIGZv ciB3aGljaCBhIG5ldyBsaWNlbnNlIChHUEwrZXhjZXB0aW9uKSBpcyBpbiBwbGFjZS4KKyANCisg I2luY2x1ZGUgInNsYW91dHB1dC5oIg0KKyANCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9O ID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKyNpbmNsdWRlIDxtZW1vcnk+ DQorKyNpbmNsdWRlIDxvcHRpb25hbD4NCisrI2VuZGlmDQorKw0KKyAjaW5jbHVkZSA8cG9wcGxl ci9HbG9iYWxQYXJhbXMuaD4NCisgI2luY2x1ZGUgPHBvcHBsZXIvcG9wcGxlci1jb25maWcuaD4N CisgI2luY2x1ZGUgPHBvcHBsZXIvRmlsZVNwZWMuaD4NCitAQCAtMzAyNywxOCArMzAzMiwyNCBA QCB2b2lkIFNsYU91dHB1dERldjo6bWFya1BvaW50KFBPUFBMRVJfQ09OU1QgY2hhciAqbmFtZSwg RGljdCAqcHJvcGVydGllcykKKyB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0 ZSAqc3RhdGUpDQorIHsNCisgCUdmeEZvbnQgKmdmeEZvbnQ7DQorLQlHZnhGb250TG9jICpmb250 TG9jOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VO Q09ERSgyMiwgMiwgMCkNCisrCXN0ZDo6b3B0aW9uYWw8R2Z4Rm9udExvYz4gZm9udExvYzsNCisr CWNvbnN0IEdvb1N0cmluZyAqIGZpbGVOYW1lID0gbnVsbHB0cjsNCisrCXN0ZDo6dW5pcXVlX3B0 cjxGb0ZpVHJ1ZVR5cGU+IGZmOw0KKysjZWxzZQ0KKysJR2Z4Rm9udExvYyAqIGZvbnRMb2MgPSBu dWxscHRyOw0KKysJR29vU3RyaW5nICogZmlsZU5hbWUgPSBudWxscHRyOw0KKysJRm9GaVRydWVU eXBlICogZmYgPSBudWxscHRyOw0KKysjZW5kaWYNCisgCUdmeEZvbnRUeXBlIGZvbnRUeXBlOw0K KyAJU2xhT3V0Rm9udEZpbGVJRCAqaWQ7DQorIAlTcGxhc2hGb250RmlsZSAqZm9udEZpbGU7DQor IAlTcGxhc2hGb250U3JjICpmb250c3JjID0gbnVsbHB0cjsNCistCUZvRmlUcnVlVHlwZSAqZmY7 DQorIAlPYmplY3QgcmVmT2JqLCBzdHJPYmo7DQorLQlHb29TdHJpbmcgKmZpbGVOYW1lOw0KKy0J Y2hhciAqdG1wQnVmOw0KKysJY2hhciAqdG1wQnVmID0gbnVsbHB0cjsNCisgCWludCB0bXBCdWZM ZW4gPSAwOw0KKy0JaW50ICpjb2RlVG9HSUQ7DQorLQljb25zdCBkb3VibGUgKnRleHRNYXQ7DQor KwlpbnQgKmNvZGVUb0dJRCA9IG51bGxwdHI7DQorKwljb25zdCBkb3VibGUgKnRleHRNYXQgPSBu dWxscHRyOw0KKyAJZG91YmxlIG0xMSwgbTEyLCBtMjEsIG0yMiwgZm9udFNpemU7DQorIAlTcGxh c2hDb29yZCBtYXRbNF07DQorIAlpbnQgbiA9IDA7DQorQEAgLTMwNDYsOSArMzA1Nyw2IEBAIHZv aWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJU3BsYXNoQ29v cmQgbWF0cml4WzZdOw0KKyANCisgCW1fZm9udCA9IG51bGxwdHI7DQorLQlmaWxlTmFtZSA9IG51 bGxwdHI7DQorLQl0bXBCdWYgPSBudWxscHRyOw0KKy0JZm9udExvYyA9IG51bGxwdHI7DQorIA0K KyAJZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250KCk7DQorIAlpZiAoIWdmeEZvbnQpDQorQEAgLTMw ODMsNyArMzA5MSwxMSBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAq c3RhdGUpCisgCQl9DQorIAkJZWxzZQ0KKyAJCXsgLy8gZ2Z4Rm9udExvY0V4dGVybmFsDQorKyNp ZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAy LCAwKQ0KKysJCQlmaWxlTmFtZSA9IGZvbnRMb2MtPnBhdGhBc0dvb1N0cmluZygpOw0KKysjZWxz ZQ0KKyAJCQlmaWxlTmFtZSA9IGZvbnRMb2MtPnBhdGg7DQorKyNlbmRpZg0KKyAJCQlmb250VHlw ZSA9IGZvbnRMb2MtPmZvbnRUeXBlOw0KKyAJCX0NCisgDQorQEAgLTMxMzYsOSArMzE0OCwxNCBA QCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCWZm ID0gRm9GaVRydWVUeXBlOjptYWtlKHRtcEJ1ZiwgdG1wQnVmTGVuKTsNCisgCQkJaWYgKGZmKQ0K KyAJCQl7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05f RU5DT0RFKDIyLCAyLCAwKQ0KKysJCQkJY29kZVRvR0lEID0gKChHZng4Qml0Rm9udCopIGdmeEZv bnQpLT5nZXRDb2RlVG9HSURNYXAoZmYuZ2V0KCkpOw0KKysJCQkJZmYucmVzZXQoKTsNCisrI2Vs c2UNCisgCQkJCWNvZGVUb0dJRCA9ICgoR2Z4OEJpdEZvbnQgKilnZnhGb250KS0+Z2V0Q29kZVRv R0lETWFwKGZmKTsNCistCQkJCW4gPSAyNTY7DQorIAkJCQlkZWxldGUgZmY7DQorKyNlbmRpZg0K KysJCQkJbiA9IDI1NjsNCisgCQkJfQ0KKyAJCQllbHNlDQorIAkJCXsNCitAQCAtMzIwOSw4ICsz MjI2LDEzIEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkK KyAJCQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtlKHRtcEJ1ZiwgdG1wQnVmTGVuKTsNCisgCQkJ CWlmICghIGZmKQ0KKyAJCQkJCWdvdG8gZXJyMjsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJT SU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKwkJCQljb2RlVG9HSUQg PSAoKEdmeENJREZvbnQqKSBnZnhGb250KS0+Z2V0Q29kZVRvR0lETWFwKGZmLmdldCgpLCAmbik7 DQorKwkJCQlmZi5yZXNldCgpOw0KKysjZWxzZQ0KKyAJCQkJY29kZVRvR0lEID0gKChHZnhDSURG b250ICopZ2Z4Rm9udCktPmdldENvZGVUb0dJRE1hcChmZiwgJm4pOw0KKyAJCQkJZGVsZXRlIGZm Ow0KKysjZW5kaWYNCisgCQkJfQ0KKyAJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+ bG9hZFRydWVUeXBlRm9udCgNCisgCQkJCQkJCWlkLA0KK0BAIC0zMjQ3LDE0ICszMjY5LDE5IEBA IHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJbWF0WzNd ID0gLW0yMjsNCisgCW1fZm9udCA9IG1fZm9udEVuZ2luZS0+Z2V0Rm9udChmb250RmlsZSwgbWF0 LCBtYXRyaXgpOw0KKyANCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OIDwgUE9QUExFUl9W RVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisgCWRlbGV0ZSBmb250TG9jOw0KKysjZW5kaWYNCisg CWlmIChmb250c3JjICYmICFmb250c3JjLT5pc0ZpbGUpDQorIAkJZm9udHNyYy0+dW5yZWYoKTsN CisgCXJldHVybjsNCisgDQorIGVycjI6DQorIAlkZWxldGUgaWQ7DQorKyNpZiBQT1BQTEVSX0VO Q09ERURfVkVSU0lPTiA8IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorIAlkZWxl dGUgZm9udExvYzsNCisrI2VuZGlmDQorKw0KKyBlcnIxOg0KKyAJaWYgKGZvbnRzcmMgJiYgIWZv bnRzcmMtPmlzRmlsZSkNCisgCQlmb250c3JjLT51bnJlZigpOw0KZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaCBiL3NyY3Br Z3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY3YTBjMDNmZGQ5NgotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDItcG9wcGxlci0yMi4wMy4wLWZp eC5wYXRjaApAQCAtMCwwICsxLDUyIEBACitGcm9tIGYxOTQxMGFjM2IyN2UzM2RkNjIxMDU3NDY3 ODRlNjFlODViOTBhMWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKZWFuIEdoYWxp IDxqZ2hhbGlAbGliZXJ0eXN1cmYuZnI+CitEYXRlOiBXZWQsIDIgTWFyIDIwMjIgMjI6MjI6NTMg KzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gIzE2NzY0OiBCdWlsZCBicmVhayB3aXRoIHBvcHBsZXIg MjIuMDMuMAorCitnaXQtc3ZuLWlkOiBzdm46Ly9zY3JpYnVzLm5ldC90cnVuay9TY3JpYnVzQDI0 OTgyIDExZDIwNzAxLTg0MzEtMDQxMC1hNzExLWUzYzk1OWUzYjg3MAorLS0tCisgc2NyaWJ1cy9w bHVnaW5zL2ltcG9ydC9wZGYvaW1wb3J0cGRmLmNwcCB8IDEzICsrKysrKysrKysrKysKKyAxIGZp bGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc2NyaWJ1cy9wbHVn aW5zL2ltcG9ydC9wZGYvaW1wb3J0cGRmLmNwcCBiL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRm L2ltcG9ydHBkZi5jcHAKK2luZGV4IDE1NGU1OGEzZjAuLjM5MmRjZDllNjQgMTAwNjQ0CistLS0g YS9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9pbXBvcnRwZGYuY3BwCisrKysgYi9zY3JpYnVz L3BsdWdpbnMvaW1wb3J0L3BkZi9pbXBvcnRwZGYuY3BwCitAQCAtODksNyArODksMTEgQEAgUUlt YWdlIFBkZlBsdWc6OnJlYWRUaHVtYm5haWwoY29uc3QgUVN0cmluZyYgZk5hbWUpCisgI2VuZGlm DQorIAlnbG9iYWxQYXJhbXMtPnNldEVyclF1aWV0KGdUcnVlKTsNCisgDQorKyNpZiBQT1BQTEVS X0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAzLCAwKQ0KKysJ UERGRG9jIHBkZkRvY3sgc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZuYW1lKSB9Ow0KKysj ZWxzZQ0KKyAJUERGRG9jIHBkZkRvY3tmbmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cn07 DQorKyNlbmRpZg0KKyAJaWYgKCFwZGZEb2MuaXNPaygpIHx8IHBkZkRvYy5nZXRFcnJvckNvZGUo KSA9PSBlcnJFbmNyeXB0ZWQpDQorIAkJcmV0dXJuIFFJbWFnZSgpOw0KKyANCitAQCAtMzQyLDcg KzM0NiwxMSBAQCBib29sIFBkZlBsdWc6OmNvbnZlcnQoY29uc3QgUVN0cmluZyYgZm4pCisgCWds b2JhbFBhcmFtcy0+c2V0RXJyUXVpZXQoZ1RydWUpOw0KKyAvLwlnbG9iYWxQYXJhbXMtPnNldFBy aW50Q29tbWFuZHMoZ1RydWUpOw0KKyAJUUxpc3Q8T3B0aW9uYWxDb250ZW50R3JvdXAqPiBvY2dH cm91cHM7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05f RU5DT0RFKDIyLCAzLCAwKQ0KKysJYXV0byBwZGZEb2MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBERkRv Yz4oc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZuYW1lKSk7DQorKyNlbHNlDQorIAlhdXRv IHBkZkRvYyA9IHN0ZDo6dW5pcXVlX3B0cjxQREZEb2M+KG5ldyBQREZEb2MoZm5hbWUsIG51bGxw dHIsIG51bGxwdHIsIG51bGxwdHIpKTsNCisrI2VuZGlmDQorIAlpZiAocGRmRG9jKQ0KKyAJew0K KyAJCWlmIChwZGZEb2MtPmdldEVycm9yQ29kZSgpID09IGVyckVuY3J5cHRlZCkNCitAQCAtMzYx LDggKzM2OSwxMyBAQCBib29sIFBkZlBsdWc6OmNvbnZlcnQoY29uc3QgUVN0cmluZyYgZm4pCisg I2Vsc2UNCisgCQkJCWF1dG8gZm5hbWUgPSBuZXcgR29vU3RyaW5nKFFGaWxlOjplbmNvZGVOYW1l KGZuKS5kYXRhKCkpOw0KKyAjZW5kaWYNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49 IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDMsIDApDQorKwkJCQlzdGQ6Om9wdGlvbmFsPEdv b1N0cmluZz4gdXNlclBXKHN0ZDo6aW5fcGxhY2UsIHRleHQudG9Mb2NhbDhCaXQoKS5kYXRhKCkp Ow0KKysJCQkJcGRmRG9jLnJlc2V0KG5ldyBQREZEb2Moc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJp bmc+KGZuYW1lKSwgdXNlclBXLCB1c2VyUFcsIG51bGxwdHIpKTsNCisrI2Vsc2UNCisgCQkJCWF1 dG8gdXNlclBXID0gbmV3IEdvb1N0cmluZyh0ZXh0LnRvTG9jYWw4Qml0KCkuZGF0YSgpKTsNCisg CQkJCXBkZkRvYy5yZXNldChuZXcgUERGRG9jKGZuYW1lLCB1c2VyUFcsIHVzZXJQVywgbnVsbHB0 cikpOw0KKysjZW5kaWYNCisgCQkJCXFBcHAtPmNoYW5nZU92ZXJyaWRlQ3Vyc29yKFFDdXJzb3Io UXQ6OldhaXRDdXJzb3IpKTsNCisgCQkJfQ0KKyAJCQlpZiAoKCFwZGZEb2MpIHx8IChwZGZEb2Mt PmdldEVycm9yQ29kZSgpICE9IGVyck5vbmUpKQ0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2NyaWJ1 cy9wYXRjaGVzLzAwMDMtcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaCBiL3NyY3BrZ3Mvc2NyaWJ1 cy9wYXRjaGVzLzAwMDMtcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmUxNWVjN2Q4MTI2NgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDMtcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaApA QCAtMCwwICsxLDI4OCBAQAorRnJvbSBmMjIzN2I4ZjBiNWNmNzY5MGU4NjRhMjJlZjdhNjNhNmQ3 NjlmYTM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmVhbiBHaGFsaSA8amdoYWxp QGxpYmVydHlzdXJmLmZyPgorRGF0ZTogRnJpLCAxIEFwciAyMDIyIDIzOjUyOjMyICswMDAwCitT dWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIHBvcHBsZXIgMjIuMDQuMAorCitnaXQtc3Zu LWlkOiBzdm46Ly9zY3JpYnVzLm5ldC90cnVuay9TY3JpYnVzQDI1MDc0IDExZDIwNzAxLTg0MzEt MDQxMC1hNzExLWUzYzk1OWUzYjg3MAorLS0tCisgc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYv c2xhb3V0cHV0LmNwcCB8IDEyMyArKysrKysrKysrKysrKy0tLS0tLS0tLQorIDEgZmlsZSBjaGFu Z2VkLCA3OCBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Nj cmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAgYi9zY3JpYnVzL3BsdWdpbnMv aW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCitpbmRleCBlMjBhODFmOTllLi41NjI2ZmUzNDc3IDEw MDY0NAorLS0tIGEvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcAorKysr IGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcAorQEAgLTE3NCw4ICsx NzQsMTMgQEAgdm9pZCBBbm9PdXRwdXREZXY6OmRyYXdTdHJpbmcoR2Z4U3RhdGUgKnN0YXRlLCBQ T1BQTEVSX0NPTlNUIEdvb1N0cmluZyAqcykKKyAJaW50IHNoYWRlID0gMTAwOw0KKyAJY3VyckNv bG9yVGV4dCA9IGdldENvbG9yKHN0YXRlLT5nZXRGaWxsQ29sb3JTcGFjZSgpLCBzdGF0ZS0+Z2V0 RmlsbENvbG9yKCksICZzaGFkZSk7DQorIAlmb250U2l6ZSA9IHN0YXRlLT5nZXRGb250U2l6ZSgp Ow0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09E RSgyMiwgNCwgMCkNCisrCWlmIChzdGF0ZS0+Z2V0Rm9udCgpICYmIHN0YXRlLT5nZXRGb250KCkt PmdldE5hbWUoKSkNCisrCQlmb250TmFtZSA9IG5ldyBHb29TdHJpbmcoc3RhdGUtPmdldEZvbnQo KS0+Z2V0TmFtZSgpLnZhbHVlKCkpOw0KKysjZWxzZQ0KKyAJaWYgKHN0YXRlLT5nZXRGb250KCkp DQorIAkJZm9udE5hbWUgPSBzdGF0ZS0+Z2V0Rm9udCgpLT5nZXROYW1lKCktPmNvcHkoKTsNCisr I2VuZGlmDQorIAlpdGVtVGV4dCA9IHMtPmNvcHkoKTsNCisgfQ0KKyANCitAQCAtMzU3LDcgKzM2 MiwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGlua0FjdGlvbj4gU2xhT3V0cHV0RGV2OjpTQ19nZXRB ZGRpdGlvbmFsQWN0aW9uKGNvbnN0IGNoYXIgKmtleQorIEdCb29sIFNsYU91dHB1dERldjo6YW5u b3RhdGlvbnNfY2FsbGJhY2soQW5ub3QgKmFubm90YSwgdm9pZCAqdXNlcl9kYXRhKQ0KKyB7DQor IAlTbGFPdXRwdXREZXYgKmRldiA9IChTbGFPdXRwdXREZXYqKXVzZXJfZGF0YTsNCisrI2lmIFBP UFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDAp DQorKwljb25zdCBQREZSZWN0YW5nbGUmIGFubm90UmVjdCA9IGFubm90YS0+Z2V0UmVjdCgpOzsN CisrCWNvbnN0IFBERlJlY3RhbmdsZSogYm94ID0gJmFubm90UmVjdDsNCisrI2Vsc2UNCisgCVBE RlJlY3RhbmdsZSAqYm94ID0gYW5ub3RhLT5nZXRSZWN0KCk7DQorKyNlbmRpZg0KKyAJZG91Ymxl IHhDb29yID0gZGV2LT5tX2RvYy0+Y3VycmVudFBhZ2UoKS0+eE9mZnNldCgpICsgYm94LT54MSAt IGRldi0+Y3JvcE9mZnNldFg7DQorIAlkb3VibGUgeUNvb3IgPSBkZXYtPm1fZG9jLT5jdXJyZW50 UGFnZSgpLT55T2Zmc2V0KCkgKyBkZXYtPm1fZG9jLT5jdXJyZW50UGFnZSgpLT5oZWlnaHQoKSAt IGJveC0+eTIgKyBkZXYtPmNyb3BPZmZzZXRZOw0KKyAJZG91YmxlIHdpZHRoID0gYm94LT54MiAt IGJveC0+eDE7DQorQEAgLTY4NCw3ICs2OTQsMTIgQEAgYm9vbCBTbGFPdXRwdXREZXY6OmhhbmRs ZVdpZGdldEFubm90KEFubm90KiBhbm5vdGEsIGRvdWJsZSB4Q29vciwgZG91YmxlIHlDb29yLAor IAkJCWlmIChhcGEgfHwgIWFjaGFyKQ0KKyAJCQl7DQorIAkJCQlBbm9PdXRwdXREZXYgKmFubm90 T3V0RGV2ID0gbmV3IEFub091dHB1dERldihtX2RvYywgbV9pbXBvcnRlZENvbG9ycyk7DQorKyNp ZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0 LCAwKQ0KKysJCQkJY29uc3QgUERGUmVjdGFuZ2xlJiBhbm5vdGFSZWN0ID0gYW5ub3RhLT5nZXRS ZWN0KCk7DQorKwkJCQlHZngqIGdmeCA9IG5ldyBHZngocGRmRG9jLCBhbm5vdE91dERldiwgcGRm RG9jLT5nZXRQYWdlKG1fYWN0UGFnZSktPmdldFJlc291cmNlRGljdCgpLCAmYW5ub3RhUmVjdCwg bnVsbHB0cik7DQorKyNlbHNlDQorIAkJCQlHZnggKmdmeCA9IG5ldyBHZngocGRmRG9jLCBhbm5v dE91dERldiwgcGRmRG9jLT5nZXRQYWdlKG1fYWN0UGFnZSktPmdldFJlc291cmNlRGljdCgpLCBh bm5vdGEtPmdldFJlY3QoKSwgbnVsbHB0cik7DQorKyNlbmRpZg0KKyAJCQkJYW5vLT5kcmF3KGdm eCwgZmFsc2UpOw0KKyAJCQkJaWYgKCFiZ0ZvdW5kKQ0KKyAJCQkJCW1fY3VyckNvbG9yRmlsbCA9 IGFubm90T3V0RGV2LT5jdXJyQ29sb3JGaWxsOw0KK0BAIC0yOTE2LDIyICsyOTMxLDI3IEBAIHZv aWQgU2xhT3V0cHV0RGV2OjptYXJrUG9pbnQoUE9QUExFUl9DT05TVCBjaGFyICpuYW1lLCBEaWN0 ICpwcm9wZXJ0aWVzKQorIA0KKyB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0 ZSAqc3RhdGUpDQorIHsNCistCUdmeEZvbnQgKmdmeEZvbnQ7DQorLSNpZiBQT1BQTEVSX0VOQ09E RURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysjaWYgUE9Q UExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkN CisrCXN0ZDo6b3B0aW9uYWw8R2Z4Rm9udExvYz4gZm9udExvYzsNCisrCXN0ZDo6c3RyaW5nIGZp bGVOYW1lOw0KKysJc3RkOjp1bmlxdWVfcHRyPEZvRmlUcnVlVHlwZT4gZmY7DQorKwlzdGQ6Om9w dGlvbmFsPHN0ZDo6dmVjdG9yPHVuc2lnbmVkIGNoYXI+PiB0bXBCdWY7DQorKyNlbGlmIFBPUFBM RVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQor IAlzdGQ6Om9wdGlvbmFsPEdmeEZvbnRMb2M+IGZvbnRMb2M7DQorIAljb25zdCBHb29TdHJpbmcg KiBmaWxlTmFtZSA9IG51bGxwdHI7DQorIAlzdGQ6OnVuaXF1ZV9wdHI8Rm9GaVRydWVUeXBlPiBm ZjsNCisrCWNoYXIqIHRtcEJ1ZiA9IG51bGxwdHI7DQorICNlbHNlDQorIAlHZnhGb250TG9jICog Zm9udExvYyA9IG51bGxwdHI7DQorIAlHb29TdHJpbmcgKiBmaWxlTmFtZSA9IG51bGxwdHI7DQor IAlGb0ZpVHJ1ZVR5cGUgKiBmZiA9IG51bGxwdHI7DQorKwljaGFyKiB0bXBCdWYgPSBudWxscHRy Ow0KKyAjZW5kaWYNCisgCUdmeEZvbnRUeXBlIGZvbnRUeXBlOw0KKyAJU2xhT3V0Rm9udEZpbGVJ RCAqaWQ7DQorIAlTcGxhc2hGb250RmlsZSAqZm9udEZpbGU7DQorIAlTcGxhc2hGb250U3JjICpm b250c3JjID0gbnVsbHB0cjsNCisgCU9iamVjdCByZWZPYmosIHN0ck9iajsNCistCWNoYXIgKnRt cEJ1ZiA9IG51bGxwdHI7DQorIAlpbnQgdG1wQnVmTGVuID0gMDsNCisgCWludCAqY29kZVRvR0lE ID0gbnVsbHB0cjsNCisgCWNvbnN0IGRvdWJsZSAqdGV4dE1hdCA9IG51bGxwdHI7DQorQEAgLTI5 NDMsNyArMjk2MywxMSBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAq c3RhdGUpCisgDQorIAltX2ZvbnQgPSBudWxscHRyOw0KKyANCistCWdmeEZvbnQgPSBzdGF0ZS0+ Z2V0Rm9udCgpOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJT SU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCUdmeEZvbnQqIGdmeEZvbnQgPSBzdGF0ZS0+Z2V0Rm9u dCgpLmdldCgpOw0KKysjZWxzZQ0KKysJR2Z4Rm9udCogZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250 KCk7DQorKyNlbmRpZg0KKyAJaWYgKCFnZnhGb250KQ0KKyAJCWdvdG8gZXJyMTsNCisgDQorQEAg LTI5NjgsMTUgKzI5OTIsMjMgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3Rh dGUgKnN0YXRlKQorIAkJaWYgKGZvbnRMb2MtPmxvY1R5cGUgPT0gZ2Z4Rm9udExvY0VtYmVkZGVk KQ0KKyAJCXsNCisgCQkJLy8gaWYgdGhlcmUgaXMgYW4gZW1iZWRkZWQgZm9udCwgcmVhZCBpdCB0 byBtZW1vcnkNCistCQkJdG1wQnVmID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRGaWxlKHhyZWYsICZ0 bXBCdWZMZW4pOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJT SU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQkJdG1wQnVmID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRG aWxlKCh4cmVmKSA/IHhyZWYgOiBwZGZEb2MtPmdldFhSZWYoKSk7DQorIAkJCWlmICghIHRtcEJ1 ZikNCisgCQkJCWdvdG8gZXJyMjsNCisrI2Vsc2UNCisrCQkJdG1wQnVmID0gZ2Z4Rm9udC0+cmVh ZEVtYkZvbnRGaWxlKHhyZWYsICZ0bXBCdWZMZW4pOw0KKysJCQlpZiAoIXRtcEJ1ZikNCisrCQkJ CWdvdG8gZXJyMjsNCisrI2VuZGlmDQorIA0KKyAJCQkvLyBleHRlcm5hbCBmb250DQorIAkJfQ0K KyAJCWVsc2UNCisgCQl7IC8vIGdmeEZvbnRMb2NFeHRlcm5hbA0KKy0jaWYgUE9QUExFUl9FTkNP REVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrI2lmIFBP UFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDAp DQorKwkJCWZpbGVOYW1lID0gZm9udExvYy0+cGF0aDsNCisrI2VsaWYgUE9QUExFUl9FTkNPREVE X1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisgCQkJZmlsZU5h bWUgPSBmb250TG9jLT5wYXRoQXNHb29TdHJpbmcoKTsNCisgI2Vsc2UNCisgCQkJZmlsZU5hbWUg PSBmb250TG9jLT5wYXRoOw0KK0BAIC0yOTg1LDUyICszMDE3LDU0IEBAIHZvaWQgU2xhT3V0cHV0 RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCX0NCisgDQorIAkJZm9udHNyYyA9 IG5ldyBTcGxhc2hGb250U3JjOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9Q UExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQlpZiAoIWZpbGVOYW1lLmVtcHR5KCkp DQorKwkJCWZvbnRzcmMtPnNldEZpbGUoZmlsZU5hbWUpOw0KKysJCWVsc2UNCisrCQkJZm9udHNy Yy0+c2V0QnVmKHN0ZDo6bW92ZSh0bXBCdWYudmFsdWUoKSkpOw0KKysjZWxzZQ0KKyAJCWlmIChm aWxlTmFtZSkNCisgCQkJZm9udHNyYy0+c2V0RmlsZShmaWxlTmFtZSwgZ0ZhbHNlKTsNCisgCQll bHNlDQorIAkJCWZvbnRzcmMtPnNldEJ1Zih0bXBCdWYsIHRtcEJ1ZkxlbiwgZ1RydWUpOw0KKysj ZW5kaWYNCisgDQorIAkJLy8gbG9hZCB0aGUgZm9udCBmaWxlDQorIAkJc3dpdGNoIChmb250VHlw ZSkgew0KKyAJCWNhc2UgZm9udFR5cGUxOg0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVu Z2luZS0+bG9hZFR5cGUxRm9udCgNCistCQkJCWlkLA0KKy0JCQkJZm9udHNyYywNCistCQkJCShj b25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29kaW5nKCkpKSkN CisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUeXBlMUZvbnQoaWQsIGZv bnRzcmMsIChjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29k aW5nKCkpKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRu J3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5nZXROYW1lKCkg PyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisrCQkJ CWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7 MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJp bmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0KKyAJCQlicmVh azsNCisgCQljYXNlIGZvbnRUeXBlMUM6DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5n aW5lLT5sb2FkVHlwZTFDRm9udCgNCistCQkJCQkJCWlkLA0KKy0JCQkJCQkJZm9udHNyYywNCist CQkJCQkJCShjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29k aW5nKCkpKSkNCisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUeXBlMUNG b250KGlkLCBmb250c3JjLCAoY29uc3QgY2hhciAqKikoKEdmeDhCaXRGb250ICopIGdmeEZvbnQp LT5nZXRFbmNvZGluZygpKSkpDQorIAkJCXsNCistCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAt MSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+ Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQp Iik7DQorKwkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBm b250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgp LT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0N CisgCQkJYnJlYWs7DQorIAkJY2FzZSBmb250VHlwZTFDT1Q6DQorLQkJCWlmICghKGZvbnRGaWxl ID0gbV9mb250RW5naW5lLT5sb2FkT3BlblR5cGVUMUNGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJ CQkJCQlmb250c3JjLA0KKy0JCQkJCQkJKGNvbnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBn ZnhGb250KS0+Z2V0RW5jb2RpbmcoKSkpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVu Z2luZS0+bG9hZE9wZW5UeXBlVDFDRm9udChpZCwgZm9udHNyYywgKGNvbnN0IGNoYXIgKiopKChH Zng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2RpbmcoKSkpKQ0KKyAJCQl7DQorLQkJCQll cnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6 c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0 Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0x LCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsIGdmeEZvbnQtPmdldE5hbWUo KSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKyAJ CQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFrOw0KKyAJCWNhc2UgZm9udFRydWVUeXBl Og0KKyAJCWNhc2UgZm9udFRydWVUeXBlT1Q6DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lP TiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJCQlpZiAoIWZpbGVOYW1l LmVtcHR5KCkpDQorKwkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bG9hZChmaWxlTmFtZS5jX3N0cigp KTsNCisrCQkJZWxzZQ0KKysJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2UoZm9udHNyYy0+YnVm LmRhdGEoKSwgZm9udHNyYy0+YnVmLnNpemUoKSk7DQorKyNlbHNlDQorIAkJCWlmIChmaWxlTmFt ZSkNCisgCQkJCWZmID0gRm9GaVRydWVUeXBlOjpsb2FkKGZpbGVOYW1lLT5nZXRDU3RyaW5nKCkp Ow0KKyAJCQllbHNlDQorIAkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bWFrZSh0bXBCdWYsIHRtcEJ1 Zkxlbik7DQorKyNlbmRpZg0KKyAJCQlpZiAoZmYpDQorIAkJCXsNCisgI2lmIFBPUFBMRVJfRU5D T0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorQEAgLTMw NDcsMjQgKzMwODEsMTcgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUg KnN0YXRlKQorIAkJCQljb2RlVG9HSUQgPSBudWxscHRyOw0KKyAJCQkJbiA9IDA7DQorIAkJCX0N CistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVlVHlwZUZvbnQoDQor LQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRzcmMsDQorLQkJCQkJCQljb2RlVG9HSUQsIG4pKSkN CisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVlVHlwZUZvbnQoaWQs IGZvbnRzcmMsIGNvZGVUb0dJRCwgbikpKQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhF cnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdm eEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1 bm5hbWVkKSIpOw0KKysJCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3Jl YXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsIGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdl dE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0K KyAJCQl9DQorIAkJCWJyZWFrOw0KKyAJCWNhc2UgZm9udENJRFR5cGUwOg0KKyAJCWNhc2UgZm9u dENJRFR5cGUwQzoNCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRDSURG b250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJCQlmb250c3JjKSkpDQorKwkJCWlmICghKGZvbnRG aWxlID0gbV9mb250RW5naW5lLT5sb2FkQ0lERm9udChpZCwgZm9udHNyYykpKQ0KKyAJCQl7DQor LQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZv ciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUo KS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJZXJyb3IoZXJyU3ludGF4RXJy b3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsIGdmeEZvbnQtPmdl dE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIp Ow0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFrOw0KK0BAIC0zMDgwLDEwICsz MTA3LDcgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQor IAkJCQljb2RlVG9HSUQgPSBudWxscHRyOw0KKyAJCQkJbiA9IDA7DQorIAkJCX0NCistCQkJaWYg KCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRPcGVuVHlwZUNGRkZvbnQoDQorLQkJCQkJ CQlpZCwNCistCQkJCQkJCWZvbnRzcmMsDQorLQkJCQkJCQljb2RlVG9HSUQsIG4pKSkNCisrCQkJ aWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRPcGVuVHlwZUNGRkZvbnQoaWQsIGZv bnRzcmMsIGNvZGVUb0dJRCwgbikpKQ0KKyAJCQl7DQorIAkJCQllcnJvcihlcnJTeW50YXhFcnJv ciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCisgCQkJCWdmeEZv bnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5h bWVkKSIpOw0KK0BAIC0zMTA1LDEwICszMTI5LDE3IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRh dGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQl9DQorIAkJCWVsc2UNCisgCQkJew0KKysjaWYg UE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwg MCkNCisrCQkJCWlmICghZmlsZU5hbWUuZW1wdHkoKSkNCisrCQkJCQlmZiA9IEZvRmlUcnVlVHlw ZTo6bG9hZChmaWxlTmFtZS5jX3N0cigpKTsNCisrCQkJCWVsc2UNCisrCQkJCQlmZiA9IEZvRmlU cnVlVHlwZTo6bWFrZShmb250c3JjLT5idWYuZGF0YSgpLCBmb250c3JjLT5idWYuc2l6ZSgpKTsN CisrI2Vsc2UNCisgCQkJCWlmIChmaWxlTmFtZSkNCisgCQkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6 bG9hZChmaWxlTmFtZS0+Z2V0Q1N0cmluZygpKTsNCisgCQkJCWVsc2UNCisgCQkJCQlmZiA9IEZv RmlUcnVlVHlwZTo6bWFrZSh0bXBCdWYsIHRtcEJ1Zkxlbik7DQorKyNlbmRpZg0KKyAJCQkJaWYg KCEgZmYpDQorIAkJCQkJZ290byBlcnIyOw0KKyAjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04g Pj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCitAQCAtMzExOSwxMyArMzE1MCw5 IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJ ZGVsZXRlIGZmOw0KKyAjZW5kaWYNCisgCQkJfQ0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9u dEVuZ2luZS0+bG9hZFRydWVUeXBlRm9udCgNCistCQkJCQkJCWlkLA0KKy0JCQkJCQkJZm9udHNy YywNCistCQkJCQkJCWNvZGVUb0dJRCwgbiwgZmFjZUluZGV4KSkpDQorKwkJCWlmICghKGZvbnRG aWxlID0gbV9mb250RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250KGlkLCBmb250c3JjLCBjb2RlVG9H SUQsIG4sIGZhY2VJbmRleCkpKQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwg LTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQt PmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVk KSIpOw0KKysJCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEg Zm9udCBmb3IgJ3swOnN9JyIsIGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUo KS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9 DQorIAkJCWJyZWFrOw0KK0BAIC0zMjY5LDkgKzMyOTYsMTUgQEAgdm9pZCBTbGFPdXRwdXREZXY6 OmRyYXdDaGFyKEdmeFN0YXRlKiBzdGF0ZSwgZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgZHgs IGRvdWIKKyBHQm9vbCBTbGFPdXRwdXREZXY6OmJlZ2luVHlwZTNDaGFyKEdmeFN0YXRlICpzdGF0 ZSwgZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgZHgsIGRvdWJsZSBkeSwgQ2hhckNvZGUgY29k ZSwgUE9QUExFUl9DT05TVF8wODIgVW5pY29kZSAqdSwgaW50IHVMZW4pDQorIHsNCisgLy8JcURl YnVnKCkgPDwgImJlZ2luVHlwZTNDaGFyIjsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9O ID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorIAlHZnhGb250ICpnZnhGb250 Ow0KKysJaWYgKCEoZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250KCkuZ2V0KCkpKQ0KKysJCXJldHVy biBnVHJ1ZTsNCisrI2Vsc2UNCisrCUdmeEZvbnQqIGdmeEZvbnQ7DQorIAlpZiAoIShnZnhGb250 ID0gc3RhdGUtPmdldEZvbnQoKSkpDQorIAkJcmV0dXJuIGdUcnVlOw0KKysjZW5kaWYNCisgCWlm IChnZnhGb250LT5nZXRUeXBlKCkgIT0gZm9udFR5cGUzKQ0KKyAJCXJldHVybiBnVHJ1ZTsNCisg CUYzRW50cnkgZjNlOw0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2NyaWJ1cy90ZW1wbGF0ZSBiL3Ny Y3BrZ3Mvc2NyaWJ1cy90ZW1wbGF0ZQppbmRleCA3OTFjZGVhNzEyYzUuLjEyNWE3ZDU0ZTRjZiAx MDA2NDQKLS0tIGEvc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2NyaWJ1 cy90ZW1wbGF0ZQpAQCAtNCw3ICs0LDcgQEAgdmVyc2lvbj0xLjUuOAogcmV2aXNpb249MgogYnVp bGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRENNQUtFX1NLSVBfUlBBVEg9VFJVRSAt RFFUX1BSRUZJWD0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNyCi0gLURXQU5UX0dSQVBISUNTTUFHSUNL PTEiCisgLURXQU5UX0dSQVBISUNTTUFHSUNLPTEgLURXQU5UX0NQUDE3PU9OIgogaG9zdG1ha2Vk ZXBlbmRzPSJwa2ctY29uZmlnIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyBweXRob24zIgogbWFr ZWRlcGVuZHM9InF0NS1kZXZlbCBxdDUtdG9vbHMtZGV2ZWwgemxpYi1kZXZlbCBjYWlyby1kZXZl bCBsY21zMi1kZXZlbAogIGN1cHMtZGV2ZWwgbGlieG1sMi1kZXZlbCBoeXBoZW4tZGV2ZWwgZ2hv c3RzY3JpcHQtZGV2ZWwgYm9vc3QtZGV2ZWwKCkZyb20gMDkwNjYyMzcwYzhjMDMzZjc1ODQwZDRl NjE4NWIzYzVkZTI2ZGI4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8 MzE5MTYzNzkrT3JlbzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IFRodSwgMTYg SnVuIDIwMjIgMTc6MDU6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzEwXSBsaWJyZW9mZmlj ZTogcmVidWlsZCBhZ2FpbnN0IGxpYnBvcHBsZXIgMjIuMDYuMAoKLS0tCiAuLi4vbGlicmVvZmZp Y2UvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAucGF0Y2ggfCAyOCArKysrKysrKwogLi4uL2xpYnJl b2ZmaWNlL3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLnBhdGNoIHwgNzEgKysrKysrKysrKysrKysr KysrKwogMiBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9saWJyZW9mZmljZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlicmVvZmZpY2UvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0 LjAucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnJlb2ZmaWNlL3BhdGNoZXMvcG9wcGxl ci0yMi4wMy4wLnBhdGNoIGIvc3JjcGtncy9saWJyZW9mZmljZS9wYXRjaGVzL3BvcHBsZXItMjIu MDMuMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM2NTQ0 YjI1NzVmOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlicmVvZmZpY2UvcGF0Y2hlcy9w b3BwbGVyLTIyLjAzLjAucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorZGlmZiAtLWdpdCBhL3NkZXh0 L3NvdXJjZS9wZGZpbXBvcnQveHBkZndyYXBwZXIvd3JhcHBlcl9ncGwuY3h4IGIvc2RleHQvc291 cmNlL3BkZmltcG9ydC94cGRmd3JhcHBlci93cmFwcGVyX2dwbC5jeHgKK2luZGV4IGFkNjMyMDEz OS4uZTVmNmQ5YzY4IDEwMDY0NAorLS0tIGEvc2RleHQvc291cmNlL3BkZmltcG9ydC94cGRmd3Jh cHBlci93cmFwcGVyX2dwbC5jeHgKKysrKyBiL3NkZXh0L3NvdXJjZS9wZGZpbXBvcnQveHBkZndy YXBwZXIvd3JhcHBlcl9ncGwuY3h4CitAQCAtMTM4LDYgKzEzOCwxNSBAQCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCisgICAgIF9zZXRtb2RlKCBfZmlsZW5vKCBnX2JpbmFyeV9vdXQg KSwgX09fQklOQVJZICk7CisgI2VuZGlmCisgCisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigy MiwgMywgMCkKKysgICAgUERGRG9jIGFEb2MoIHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihw RmlsZU5hbWUpLAorKyAgICAgICAgICAgICAgICAgR29vU3RyaW5nKHBPd25lclBhc3N3b3JkU3Ry KSwKKysgICAgICAgICAgICAgICAgIEdvb1N0cmluZyhwVXNlclBhc3N3b3JkU3RyKSApOworKwor KyAgICBQREZEb2MgYUVyckRvYyggc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KHBFcnJGaWxl TmFtZSksCisrICAgICAgICAgICAgICAgICBHb29TdHJpbmcocE93bmVyUGFzc3dvcmRTdHIpLAor KyAgICAgICAgICAgICAgICAgR29vU3RyaW5nKHBVc2VyUGFzc3dvcmRTdHIpICk7CisrI2Vsc2UK KyAgICAgUERGRG9jIGFEb2MoIHBGaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgIHBPd25lclBh c3N3b3JkU3RyLAorICAgICAgICAgICAgICAgICAgcFVzZXJQYXNzd29yZFN0ciApOworQEAgLTE0 NSw2ICsxNTQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgICAgIFBERkRv YyBhRXJyRG9jKCBwRXJyRmlsZU5hbWUsCisgICAgICAgICAgICAgICAgICBwT3duZXJQYXNzd29y ZFN0ciwKKyAgICAgICAgICAgICAgICAgIHBVc2VyUGFzc3dvcmRTdHIgKTsKKysjZW5kaWYKKyAK KyAgICAgLy8gQ2hlY2sgdmFyaW91cyBwZXJtaXNzaW9ucyBmb3IgYURvYy4KKyAgICAgUERGRG9j ICZyRG9jID0gYURvYy5pc09rKCk/IGFEb2M6IGFFcnJEb2M7CmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpYnJlb2ZmaWNlL3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLnBhdGNoIGIvc3JjcGtncy9saWJy ZW9mZmljZS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ3ZjU5NjczZDY5ZQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGlicmVvZmZpY2UvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAucGF0Y2gKQEAgLTAsMCAr MSw3MSBAQAorIyBQYXRjaCBmcm9tIEZyZWVCU0QgKGh0dHBzOi8vY2dpdC5mcmVlYnNkLm9yZy9w b3J0cy9jb21taXQvP2lkPWQ5YjVlZjgwMGRiZCkKKworLS0tIGEvc2RleHQvc291cmNlL3BkZmlt cG9ydC94cGRmd3JhcHBlci9wZGZpb3V0ZGV2X2dwbC5jeHgKKysrKyBiL3NkZXh0L3NvdXJjZS9w ZGZpbXBvcnQveHBkZndyYXBwZXIvcGRmaW91dGRldl9ncGwuY3h4CitAQCAtNDc0LDExICs0NzQs MTcgQEAgaW50IFBERk91dERldjo6cGFyc2VGb250KCBsb25nIGxvbmcgbk5ld0lkLCBHZnhGb250 KiBnCisgICAgIHsKKyAgICAgICAgIC8vIFRPRE8oUDMpOiBVbmZvcnR1bmF0ZWx5LCBuZWVkIHRv IHJlYWQgc3RyZWFtIHR3aWNlLCBzaW5jZQorICAgICAgICAgLy8gd2UgbXVzdCB3cml0ZSBieXRl IGNvdW50IHRvIHN0ZG91dCBiZWZvcmUKKysjaWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwg MywgMCkKKyAgICAgICAgIGNoYXIqIHBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoIG1f cERvYy0+Z2V0WFJlZigpLCAmblNpemUgKTsKKysjZWxzZQorKyAgICAgICAgc3RkOjpvcHRpb25h bDxzdGQ6OnZlY3Rvcjx1bnNpZ25lZCBjaGFyPj4gcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250 RmlsZSggbV9wRG9jLT5nZXRYUmVmKCkgKTsKKysjZW5kaWYKKyAgICAgICAgIGlmKCBwQnVmICkK KyAgICAgICAgIHsKKyAgICAgICAgICAgICBhTmV3Rm9udC5pc0VtYmVkZGVkID0gdHJ1ZTsKKysj aWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKyAgICAgICAgICAgICBnZnJlZShw QnVmKTsKKysjZW5kaWYKKyAgICAgICAgIH0KKyAgICAgfQorIAorQEAgLTQ5MiwyMSArNDk4LDMy IEBAIHZvaWQgUERGT3V0RGV2Ojp3cml0ZUZvbnRGaWxlKCBHZnhGb250KiBnZnhGb250ICkgY29u cworICAgICAgICAgcmV0dXJuOworIAorICAgICBpbnQgblNpemUgPSAwOworLSAgICBjaGFyKiBw QnVmID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRGaWxlKCBtX3BEb2MtPmdldFhSZWYoKSwgJm5TaXpl ICk7CisrI2lmICFQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDMsIDApCisrICAgICAgICBjaGFy KiBwQnVmID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRGaWxlKCBtX3BEb2MtPmdldFhSZWYoKSwgJm5T aXplICk7CisrI2Vsc2UKKysgICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2ZWN0b3I8dW5zaWdu ZWQgY2hhcj4+IHBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoIG1fcERvYy0+Z2V0WFJl ZigpICk7CisrI2VuZGlmCisgICAgIGlmKCAhcEJ1ZiApCisgICAgICAgICByZXR1cm47CisgCisg ICAgIC8vIC0tLXN5bmMgcG9pbnQtLS0gc2VlIFNZTkMgU1RSRUFNUyBhYm92ZQorICAgICBmZmx1 c2goc3Rkb3V0KTsKKy0KKysjaWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKyAg ICAgaWYoIGZ3cml0ZShwQnVmLCBzaXplb2YoY2hhciksIG5TaXplLCBnX2JpbmFyeV9vdXQpICE9 IHN0YXRpY19jYXN0PHNpemVfdD4oblNpemUpICkKKysjZWxzZQorKyAgICBpZiggZndyaXRlKHJl aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHBCdWYudmFsdWUoKS5kYXRhKCkpLCBzaXplb2YoY2hhciks IG5TaXplLCBnX2JpbmFyeV9vdXQpICE9IHN0YXRpY19jYXN0PHNpemVfdD4oblNpemUpICkKKysj ZW5kaWYKKyAgICAgeworLSAgICAgICAgZ2ZyZWUocEJ1Zik7CisrI2lmICFQT1BQTEVSX0NIRUNL X1ZFUlNJT04oMjIsIDMsIDApCisrICAgICAgICAgICAgZ2ZyZWUocEJ1Zik7CisrI2VuZGlmCisg ICAgICAgICBleGl0KDEpOyAvLyBlcnJvcgorICAgICB9CisgICAgIC8vIC0tLXN5bmMgcG9pbnQt LS0gc2VlIFNZTkMgU1RSRUFNUyBhYm92ZQorICAgICBmZmx1c2goZ19iaW5hcnlfb3V0KTsKKy0g ICAgZ2ZyZWUocEJ1Zik7CisrI2lmICFQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDMsIDApCisr ICAgICAgICAgICAgZ2ZyZWUocEJ1Zik7CisrI2VuZGlmCisgfQorIAorICNpZiBQT1BQTEVSX0NI RUNLX1ZFUlNJT04oMCwgODMsIDApCitAQCAtNzU5LDcgKzc3NiwxMSBAQCB2b2lkIFBERk91dERl djo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgeworICAgICBhc3NlcnQoc3RhdGUpOwor IAorKyNpZiAhUE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorICAgICBHZnhGb250ICpn ZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKTsKKysjZWxzZQorKyAgICBHZnhGb250ICpnZnhGb250 ID0gc3RhdGUtPmdldEZvbnQoKS5nZXQoKTsKKysjZW5kaWYKKyAgICAgaWYoICFnZnhGb250ICkK KyAgICAgICAgIHJldHVybjsKKyAKCkZyb20gMDQ0OWFiYjE4NmZjMDIxMTk4ZmZkYTQyYzBkY2Zi ZmZmZGVlOTljYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8MzE5MTYz NzkrT3JlbzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IFR1ZSwgNSBKdWwgMjAy MiAxNjoxMDoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTBdIHRleGxpdmU6IFJlbW92ZSBw b3BwbGVyIGZyb20gbWFrZWRlcGVuZHMKClRleGxpdmUgcHJldmlvdXNseSBkcm9wcGVkIHN1cHBv cnQgZm9yIGxpYnBvcHBsZXIgb24gMjAyMC0wNS0xNAotLS0KIHNyY3BrZ3MvdGV4bGl2ZS90ZW1w bGF0ZSB8IDQgKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGV4 bGl2ZS90ZW1wbGF0ZQppbmRleCA3YTkyMmJjMDdmMmIuLmYzZjhhYTk5OTVhMiAxMDA2NDQKLS0t IGEvc3JjcGtncy90ZXhsaXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0 ZQpAQCAtNjAsNyArNjAsNiBAQCBjb25maWd1cmVfYXJncz0iCiAgLS13aXRoLXN5c3RlbS1saWJw YXBlcgogIC0td2l0aC1zeXN0ZW0tbGlicG5nCiAgLS13aXRoLXN5c3RlbS1tcGZyCi0gLS13aXRo LXN5c3RlbS1wb3BwbGVyCiAgLS13aXRoLXN5c3RlbS1waXhtYW4KICAtLXdpdGgtc3lzdGVtLXRl Y2tpdAogIC0td2l0aC1zeXN0ZW0temxpYgpAQCAtNjksOCArNjgsNyBAQCBjb25maWd1cmVfYXJn cz0iCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcGVybCBsdWE1Mi1CaXRPcCB0ZXhpbmZv IgogbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIGZyZWV0eXBlLWRldmVsIGdkLWRldmVsIGdyYXBo aXRlLWRldmVsIGdtcC1kZXZlbAogIGhhcmZidXp6LWRldmVsIGljdS1kZXZlbCBsaWJwYXBlci1k ZXZlbCBsaWJwbmctZGV2ZWwgbXBmci1kZXZlbAotIHBvcHBsZXItZGV2ZWwgcGl4bWFuLWRldmVs IGxpYnRlY2tpdC1kZXZlbCB6bGliLWRldmVsIHp6aXBsaWItZGV2ZWwKLSBsaWJYYXctZGV2ZWwi CisgcGl4bWFuLWRldmVsIGxpYnRlY2tpdC1kZXZlbCB6bGliLWRldmVsIHp6aXBsaWItZGV2ZWwg bGliWGF3LWRldmVsIgogZGVwZW5kcz0iZGlhbG9nIGdob3N0c2NyaXB0IHBlcmwtVGsgdGV4bGl2 ZS1jb3JlIHRleGxpdmUtbGF0ZXhtayB4YnBzLXRyaWdnZXJzIgogc2hvcnRfZGVzYz0iVGVYIExp dmUiCiBtYWludGFpbmVyPSJmb3NzbGludXggPGZvc3NsaW51eEBhdXNzaWVzLnNwYWNlPiIK --===============9218098590220135902==--