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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 28150 invoked from network); 19 Jun 2022 00:05:52 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 19 Jun 2022 00:05:52 -0000 Content-Type: multipart/mixed; boundary="===============6227630512688005553==" 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: Sun, 19 Jun 2022 02:05:52 +0200 List-Id: Message-ID: <20220619000552.6QwQK7zE_pfLLmw0sk4lj0M1i22A4dAo1Dc0yNP3TlA@z> GitHub notification mails are now in MIME to allow UTF8. --===============6227630512688005553== 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= --===============6227630512688005553== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-poppler-36351.patch" RnJvbSBlMzMwNTUyYTZkMGZiZDkyM2QyNTNmNDIxMzc1MDljNGJiMmFmNTRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyODowOCAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMS85XSBwb3BwbGVyOiB1cGRhdGUgdG8gMjIuMDYuMAoKLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvcG9wcGxl ci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2ggfCAyMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNy Y3BrZ3MvcG9wcGxlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAxMyArKysrKysrKystLS0t CiAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2gK CmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAwOTQzMDk4 NmMyZGYuLjNlYjUyYjJhZGM5ZCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21t b24vc2hsaWJzCkBAIC0zNTAsNyArMzUwLDcgQEAgbGliTWFnaWNrQ29yZS02LlExNi5zby43IGxp Ym1hZ2ljazYtNi45LjExLjYxXzEKIGxpYk1hZ2lja1dhbmQtNi5RMTYuc28uNyBsaWJtYWdpY2s2 LTYuOS4xMS42MV8xCiBsaWJNYWdpY2srKy02LlExNi5zby45IGxpYm1hZ2ljazYtNi45LjEyLjFf MQogbGlibHRkbC5zby43IGxpYmx0ZGwtMi4yLjZfMQotbGlicG9wcGxlci5zby4xMTEgbGlicG9w cGxlci0yMS4wNy4wXzEKK2xpYnBvcHBsZXIuc28uMTIyIGxpYnBvcHBsZXItMjIuMDYuMF8xCiBs aWJwb3BwbGVyLWdsaWIuc28uOCBwb3BwbGVyLWdsaWItMC4xOC4yXzEKIGxpYnBvcHBsZXItY3Bw LnNvLjAgcG9wcGxlci1jcHAtMC4xOC4yXzEKIGxpYnBvcHBsZXItcXQ1LnNvLjEgcG9wcGxlci1x dDUtMC4zMS4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxh Z3MucGF0Y2ggYi9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9maXgtY2ZsYWdzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWE0MDhkMDNjY2UuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9maXgtY2ZsYWdzLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjEgKzAsMCBAQAotZGlmZiAtLWdpdCBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jv cy5jbWFrZSBiL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQotaW5kZXggZmUxMTgy ZC4uNjAxM2JkMiAxMDA2NDQKLS0tLSBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFr ZQotKysrIGIvY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFjcm9zLmNtYWtlCi1AQCAtMTA0LDE0ICsx MDQsMTQgQEAgaWYoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYKQotICAgc2V0KERFRkFVTFRfQ09N UElMRV9XQVJOSU5HU19FWFRSQSAiJHtfd2Fybn0gJHtfd2Fybnh9IikKLSAKLSAgIHNldChfc2F2 ZV9jeHhmbGFncyAiJHtDTUFLRV9DWFhfRkxBR1N9IikKLS0gIHNldChDTUFLRV9DWFhfRkxBR1Mg ICAgICAgICAgICAgICAgIi1mbm8tZXhjZXB0aW9ucyAtZm5vLWNoZWNrLW5ldyAtZm5vLWNvbW1v biAtZm5vLW9wZXJhdG9yLW5hbWVzIC1EX0RFRkFVTFRfU09VUkNFIikKLSsgIHNldChDTUFLRV9D WFhfRkxBR1MgICAgICAgICAgICAgICAgIi1mbm8tZXhjZXB0aW9ucyAtZm5vLWNoZWNrLW5ldyAt Zm5vLWNvbW1vbiAtZm5vLW9wZXJhdG9yLW5hbWVzIC1EX0RFRkFVTFRfU09VUkNFICR7X3NhdmVf Y3h4ZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklORk8gIi1PMiAt ZyAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgICAg ICAgICItTzIgLUROREVCVUcgJHtfc2F2ZV9jeHhmbGFnc30iKQotICAgc2V0KENNQUtFX0NYWF9G TEFHU19ERUJVRyAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZuby1zY2hl ZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0Vf Q1hYX0ZMQUdTX0RFQlVHRlVMTCAgICAgICItZzMgLWZuby1pbmxpbmUgJHtfc2F2ZV9jeHhmbGFn c30iKQotICAgc2V0KENNQUtFX0NYWF9GTEFHU19QUk9GSUxFICAgICAgICAiLWczIC1mbm8taW5s aW5lIC1mdGVzdC1jb3ZlcmFnZSAtZnByb2ZpbGUtYXJjcyAke19zYXZlX2N4eGZsYWdzfSIpCi0g ICBzZXQoX3NhdmVfY2ZsYWdzICIke0NNQUtFX0NfRkxBR1N9IikKLS0gIHNldChDTUFLRV9DX0ZM QUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09VUkNFIikKLSsgIHNl dChDTUFLRV9DX0ZMQUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09V UkNFICR7X3NhdmVfY2ZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ19GTEFHU19SRUxXSVRIREVCSU5G TyAgICItTzIgLWcgJHtfc2F2ZV9jZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTEVB U0UgICAgICAgICAgIi1PMiAtRE5ERUJVRyAke19zYXZlX2NmbGFnc30iKQotICAgc2V0KENNQUtF X0NfRkxBR1NfREVCVUcgICAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZu by1zY2hlZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2NmbGFnc30iKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlCmlu ZGV4IDBhYTRlZGYyMGI1Ny4uMGY4YzZmYzUxOTNiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBs ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlCkBAIC0zLDEzICszLDE1 IEBACiAjIFRISVMgUEtHIE1VU1QgQkUgU1lOQ0hST05JWkVEIFdJVEggInNyY3BrZ3MvcG9wcGxl ci1xdDUiLgogIwogcGtnbmFtZT1wb3BwbGVyCi12ZXJzaW9uPTIxLjA3LjAKK3ZlcnNpb249MjIu MDYuMAogcmV2aXNpb249MQorX3Rlc3RWZXJzaW9uPTkyMGM4OWY4ZjQzYmRmZTg5NjZjOGUzOTdl N2Y2N2Y1MzAyZTk0MzUKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNv bmZpZ3VyZV9hcmdzPSItREVOQUJMRV9VTlNUQUJMRV9BUElfQUJJX0hFQURFUlM9T04gLURFTkFC TEVfQ1BQPU9OCiAgLURFTkFCTEVfR0xJQj1PTiAtREVOQUJMRV9HT0JKRUNUX0lOVFJPU1BFQ1RJ T049JCh2b3B0X2lmIGdpciBPTiBPRkYpCi0gLURFTkFCTEVfUVQ1PU9GRiAtREVOQUJMRV9VVElM Uz1PTiAtREVOQUJMRV9CT09TVD0kKHZvcHRfaWYgYm9vc3QgT04gT0ZGKSIKKyAtREVOQUJMRV9R VDU9T0ZGIC1ERU5BQkxFX1VUSUxTPU9OIC1ERU5BQkxFX0JPT1NUPSQodm9wdF9pZiBib29zdCBP TiBPRkYpCisgLURDTUFLRV9CVUlMRF9UWVBFPVJFTEVBU0UgLURURVNUREFUQURJUj0nJHtYQlBT X0JVSUxERElSfS90ZXN0LSR7X3Rlc3RWZXJzaW9ufSciCiBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgbGliZ2xpYi1kZXZl bCBjYWlyby1kZXZlbCB0aWZmLWRldmVsIGxjbXMyLWRldmVsCiBsaWJjdXJsLWRldmVsIGxpYm9w ZW5qcGVnMi1kZXZlbCAkKHZvcHRfaWYgYm9vc3QgYm9vc3QtZGV2ZWwpIgpAQCAtMTcsOCArMTks MTEgQEAgc2hvcnRfZGVzYz0iUERGIHJlbmRlcmluZyBsaWJyYXJ5IgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9wb3BwbGVyLmZyZWVkZXNrdG9w Lm9yZyIKLWRpc3RmaWxlcz0iJHtob21lcGFnZX0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWUyNmFiMjlmNjgwNjVkZTRkNjU2MmYwYTNlMmI1NDM1YTgzY2E5MmJlNTcz Yjk5YTFjODE5OThmYTI4NmE0ZDQKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0 b3Aub3JnL3BvcHBsZXIvcG9wcGxlci8tL3Jhdy9tYXN0ZXIvTkVXUyIKK2Rpc3RmaWxlcz0iJHto b21lcGFnZX0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54egorIGh0dHBzOi8vZ2l0bGFiLmZy ZWVkZXNrdG9wLm9yZy9wb3BwbGVyL3Rlc3QvLS9hcmNoaXZlLyR7X3Rlc3RWZXJzaW9ufS90ZXN0 LSR7X3Rlc3RWZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0iYTBmOWFhYTM5MThiYWQ3ODEwMzlm YzMwN2E2MzU2NTJhMTRkMWIzOTFjZDU1OWI2NmVkZWM0YmVkYmEzYzVkNworIGNhMzVmMTY4YTE4 MDM4YTJkODE3ZWEzMGQ2YzdiNGFiODI5NGE0MGE1ZjU5NTBmM2MyYTE1MTgzYmEwOGM5MDAiCiAK IGJ1aWxkX29wdGlvbnM9ImdpciBib29zdCIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIGJv b3N0IgoKRnJvbSA0OWJlMzQ4YzZhNWI1MDQ3ZjJhYWU2NmI5MzNkYTlmYmEyYTZlYzk0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyOTowMiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMi85XSBwb3BwbGVyLXF0NTogdXBkYXRlIHRvIDIyLjA2LjAKCi0t LQogc3JjcGtncy9wb3BwbGVyLXF0NS9wYXRjaGVzICB8IDEgLQogc3JjcGtncy9wb3BwbGVyLXF0 NS90ZW1wbGF0ZSB8IDggKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcG9wcGxlci1xdDUv cGF0Y2hlcwoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvcGF0Y2hlcyBiL3NyY3Br Z3MvcG9wcGxlci1xdDUvcGF0Y2hlcwpkZWxldGVkIGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggNjM2 ZTRhYzJjYmQ5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wb3BwbGVyLXF0NS9wYXRjaGVz CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotLi4vcG9wcGxlci9wYXRjaGVzClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1w bGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKaW5kZXggMmExNWY1NjEyOGMxLi4x MjBkYjdhNzQ2YTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1wbGF0ZQpAQCAtNCwxMiArNCwxMyBAQAogIyBJVCBJ UyBTUExJVCBUTyBBVk9JRCBBIENZQ0xJQyBERVBFTkRFTkNZOiBxdDUgLT4gY3VwcyAtPiBwb3Bw bGVyIC0+IHF0NS4KICMKIHBrZ25hbWU9cG9wcGxlci1xdDUKLXZlcnNpb249MjEuMDcuMAordmVy c2lvbj0yMi4wNi4wCiByZXZpc2lvbj0xCiB3cmtzcmM9InBvcHBsZXItJHt2ZXJzaW9ufSIKIGJ1 aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU5TVEFCTEVfQVBJX0FC SV9IRUFERVJTPU9OIC1ERU5BQkxFX0dMSUI9T0ZGCi0gLURFTkFCTEVfUVQ1PU9OIC1ERU5BQkxF X1VUSUxTPU9GRiAtREVOQUJMRV9DUFA9T0ZGIC1ERU5BQkxFX0JPT1NUPU9GRiIKKyAtREVOQUJM RV9RVDU9T04gLURFTkFCTEVfVVRJTFM9T0ZGIC1ERU5BQkxFX0NQUD1PRkYgLURFTkFCTEVfQk9P U1Q9T0ZGCisgLURDTUFLRV9CVUlMRF9UWVBFPVJFTEVBU0UiCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgcXQ1LWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCB0aWZmLWRldmVs IGxjbXMyLWRldmVsIGxpYmN1cmwtZGV2ZWwKICBmb250Y29uZmlnLWRldmVsIGNhaXJvLWRldmVs IGxpYm9wZW5qcGVnMi1kZXZlbCBxdDUtZGV2ZWwiCkBAIC0xNyw4ICsxOCw5IEBAIHNob3J0X2Rl c2M9IlBERiByZW5kZXJpbmcgbGlicmFyeSAtIFF0NSBiaW5kaW5ncyIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9wcGxlci5mcmVlZGVza3Rv cC5vcmciCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wb3BwbGVy L3BvcHBsZXIvLS9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L3BvcHBs ZXItJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lMjZhYjI5ZjY4MDY1ZGU0ZDY1NjJmMGEz ZTJiNTQzNWE4M2NhOTJiZTU3M2I5OWExYzgxOTk4ZmEyODZhNGQ0CitjaGVja3N1bT1hMGY5YWFh MzkxOGJhZDc4MTAzOWZjMzA3YTYzNTY1MmExNGQxYjM5MWNkNTU5YjY2ZWRlYzRiZWRiYTNjNWQ3 CiAjIGZhaWxzIHRvIGZpbmQgYSBidW5jaCBvZiBmaWxlcwogbWFrZV9jaGVjaz1ubwogCgpGcm9t IDQ5ZTI3NDg0NzljNDYyMGI4ZThmOTRlYzAyMTFjZGE5MjEwNDNlYmYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNlcnMubm9yZXBseS5n aXRodWIuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4OjI5OjMyIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAzLzldIHBvcHBsZXItZGF0YTogdXBkYXRlIHRvIDAuNC4xMQoKLS0tCiBzcmNwa2dz L3BvcHBsZXItZGF0YS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvcHBsZXItZGF0 YS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1kYXRhL3RlbXBsYXRlCmluZGV4IDQ4ZGJhMjQ5 N2ZiNi4uNGI2ZTk1NmI3YjcyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9wcGxlci1kYXRhJwogcGtnbmFtZT1wb3BwbGVyLWRh dGEKLXZlcnNpb249MC40LjEwCit2ZXJzaW9uPTAuNC4xMQogcmV2aXNpb249MQogc2hvcnRfZGVz Yz0iRW5jb2RpbmcgZGF0YSBmb3IgdGhlIHBvcHBsZXIgUERGIHJlbmRlcmluZyBsaWJyYXJ5Igog bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1J VCwgR1BMLTIuMC1vci1sYXRlciwgQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9w cGxlci5mcmVlZGVza3RvcC5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL3BvcHBsZXIuZnJlZWRl c2t0b3Aub3JnLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT02ZTJmY2Vm NjZlYzhjNDQ2MjVmOTQyOTJjY2Y4YWY5ZjFkOTE4YjQxMGQ1YWE2OWMyNzRjZTY3Mzg3OTY3YjMw CitjaGVja3N1bT0yY2VjMDVjZDFiYjAzYWY5OGE4YjA2YTFlMjJmNmU2ZTFhNjViMWUyZjM4MTZj YjMwNjliYjA4NzQ4MjVmMDhjCiAKIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBwcmVmaXg9L3VzciBE RVNURElSPSR7REVTVERJUn0gaW5zdGFsbAoKRnJvbSA5OWQ3Zjk5YjgwODYyNmM2OWY4NWMzYjUw M2QwZmZjY2JlOGE3MTE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwz MTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBN YXIgMjAyMiAxODozMzozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNC85XSBjYWxsaWdyYTogcmVi dWlsZCBhZ2FpbnN0IGxpYnBvcHBsZXIgMjIuMDYuMAoKLS0tCiAuLi4vcGF0Y2hlcy8wMDAxLUZp eC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2ggfCA0NDAgKysrKysrKysrKysrKysrKysrCiAuLi4v MDAwMi1NYWtlLXNob3ctaGlkZGVuLXJvdy1zLXdvcmsucGF0Y2ggICAgfCAgMjkgKysKIHNyY3Br Z3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaCAgICAgICAgICB8ICAxNiArCiAuLi4vcGF0 Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoICAgICAgICAgfCAgNzAgKysrCiAuLi4vcGF0 Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoICAgICAgICAgfCAgOTEgKysrKwogc3JjcGtn cy9jYWxsaWdyYS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiA2IGZpbGVz IGNoYW5nZWQsIDY0NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDEtRml4LXNvbWUtbW9yZS13YXJuaW5n cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAy LU1ha2Utc2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgu cGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMS1GaXgtc29t ZS1tb3JlLXdhcm5pbmdzLnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDEtRml4 LXNvbWUtbW9yZS13YXJuaW5ncy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjZjYzEzMjkyNWIxNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2FsbGln cmEvcGF0Y2hlcy8wMDAxLUZpeC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2gKQEAgLTAsMCArMSw0 NDAgQEAKK0Zyb20gMDY4Y2Q5YWVjMTEwNTI3MzNlMzkzOTc2MTQyNTE2ZDIxOTBlNDU2NCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBpZXJyZSBEdWNyb3F1ZXQgPHBpbmFyYWZAcGlu YXJhZi5pbmZvPgorRGF0ZTogU3VuLCAyOCBGZWIgMjAyMSAyMzoyMzowMiArMDEwMAorU3ViamVj dDogW1BBVENIXSBGaXggc29tZSBtb3JlIHdhcm5pbmdzCisKKy0tLQorIGZpbHRlcnMvbGlibXNv b3htbC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcCAgICAgICAgfCAgMSArCisgZmlsdGVycy9z aGVldHMvY3N2L2NzdmltcG9ydC5jYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgZmls dGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNlbC5jcHAgICAgICAgICAgICB8ICAxICsK KyBmaWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcCAgICAgICAgIHwg IDIgKy0KKyBmaWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYyAgICAgICAg ICAgIHwgIDUgKystLS0KKyBmaWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MgICAgICAg ICAgICAgICAgICAgIHwgIDIgLS0KKyBmaWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhl eHBvcnQuY2MgICAgICAgICAgIHwgIDEgLQorIGZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90 YWJsZS5jYyAgICAgICAgICAgICAgICAgfCAgMSArCisgZmlsdGVycy9zaGVldHMveGxzeC9YbHN4 WG1sV29ya3NoZWV0UmVhZGVyLmNwcCAgICAgICB8ICAxIC0KKyBmaWx0ZXJzL3N0YWdlL3BwdHgv UHB0eFhtbERvY3VtZW50UmVhZGVyLmNwcCAgICAgICAgIHwgIDIgKy0KKyBmaWx0ZXJzL3dvcmRz L21zd29yZC1vZGYvdGV4dGhhbmRsZXIuY3BwICAgICAgICAgICAgIHwgIDIgKysKKyBmaWx0ZXJz L3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAgICAgICAgIHwgIDQgKysrLQor IGZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5jcHAgICAgICAgICAgfCAg NCArLS0tCisgZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmggICAgICAg ICAgICB8IDExICsrKysrKysrLS0tCisgZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcCAg ICAgICAgICAgICAgICAgICAgICB8ICAyICsrCisgbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdlU2F2 ZUhlbHBlci5jcHAgICAgICAgICAgICAgICB8ICAyICstCisgcGx1Z2lucy9zcGFjZW5hdmlnYXRv ci9TcGFjZU5hdmlnYXRvckRldmljZS5oICAgICAgICB8ICA2ICsrLS0tLQorIHBsdWdpbnMvc3Bh Y2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JFdmVudC5oICAgICAgICAgfCAgMiArLQorIHBsdWdp bnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmggfCAgMyArLS0K KyBwbHVnaW5zL3ZlY3RvcnNoYXBlL1ZlY3RvclNoYXBlLmNwcCAgICAgICAgICAgICAgICAgIHwg IDEgKworIHNoZWV0cy9mdW5jdGlvbnMvZGF0ZXRpbWUuY3BwICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMSArCisgc2hlZXRzL3BhcnQvRGlnZXN0LmNwcCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA4ICsrKystLS0tCisgc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3RvcnkuaCAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgc2hlZXRzL3Rlc3RzL1Rlc3RTb3J0LmNwcCAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KKyAyNCBmaWxlcyBjaGFuZ2VkLCAz OCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZpbHRlcnMv bGlibXNvb3htbC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcCBiL2ZpbHRlcnMvbGlibXNvb3ht bC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcAoraW5kZXggMTRiMDg1MzEyNjIuLjE0ZmM2YWI5 YTcxIDEwMDY0NAorLS0tIGEvZmlsdGVycy9saWJtc29veG1sL01zb29YbWxEaWFncmFtUmVhZGVy X3AuY3BwCisrKysgYi9maWx0ZXJzL2xpYm1zb294bWwvTXNvb1htbERpYWdyYW1SZWFkZXJfcC5j cHAKK0BAIC04NzIsNiArODcyLDcgQEAgdm9pZCBMYXlvdXROb2RlQXRvbTo6ZmluaXNoQnVpbGQo Q29udGV4dCogY29udGV4dCkgeworICAgICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpVbmtub3du QWxnOgorICAgICAgICAgICAgIHdhcm5Nc29vWG1sIDw8ICJMYXlvdXQgd2l0aCBuYW1lPSIgPDwg bV9uYW1lIDw8ICJkZWZpbmVzIGFuIHVua25vd24gYWxnb3JpdGhtLiI7CisgICAgICAgICAgICAg Ly8gZmFsbCB0aHJvdWdoIGFuZCB1c2UgdGhlIGNvbXBvc2l0ZS1hbGdvcml0aG0KKysgICAgICAg IC8vIGZhbGwgdGhyb3VnaAorICAgICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpDb21wb3NpdGVB bGc6IG1fYWxnb3JpdGhtSW1wbCA9IG5ldyBDb21wb3NpdGVBbGdvcml0aG07IGJyZWFrOworICAg ICAgICAgY2FzZSBBbGdvcml0aG1BdG9tOjpDb25uZWN0b3JBbGc6IG1fYWxnb3JpdGhtSW1wbCA9 IG5ldyBDb25uZWN0b3JBbGdvcml0aG07IGJyZWFrOworICAgICAgICAgY2FzZSBBbGdvcml0aG1B dG9tOjpDeWNsZUFsZzogbV9hbGdvcml0aG1JbXBsID0gbmV3IEN5Y2xlQWxnb3JpdGhtOyBicmVh azsKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjIGIvZmlsdGVy cy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYworaW5kZXggODlmYjcxNjJlMDAuLjEwMDhkMTg2ZjE4 IDEwMDY0NAorLS0tIGEvZmlsdGVycy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYworKysrIGIvZmls dGVycy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYworQEAgLTk3LDggKzk3LDggQEAgS29GaWx0ZXI6 OkNvbnZlcnNpb25TdGF0dXMgQ1NWRmlsdGVyOjpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZy b20sIGNvbnN0IFFCeXQKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6RmlsZU5vdEZvdW5kOwor ICAgICB9CisgCistICAgIFFTdHJpbmcgY3N2X2RlbGltaXRlcjsKKyAgICAgLy8gIyMjIyMjIEZJ WE1FOiBkaXNhYmxlZCBmb3Igbm93CisrICAgIC8vUVN0cmluZyBjc3ZfZGVsaW1pdGVyOworICAg ICAvL2lmICghY29uZmlnLmlzTnVsbCgpKQorICAgICAvLyAgICBjc3ZfZGVsaW1pdGVyID0gY29u ZmlnWzBdOworIAorZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIv ZXhjZWwuY3BwIGIvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNlbC5jcHAKK2lu ZGV4IGFiNTkyMjI1Y2E2Li43ZmE1NjMzZDQzMyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRz L2V4Y2VsL3NpZGV3aW5kZXIvZXhjZWwuY3BwCisrKysgYi9maWx0ZXJzL3NoZWV0cy9leGNlbC9z aWRld2luZGVyL2V4Y2VsLmNwcAorQEAgLTI0NDksNiArMjQ0OSw3IEBAIGJvb2wgRXhjZWxSZWFk ZXI6OmxvYWQoV29ya2Jvb2sqIHdvcmtib29rLCBjb25zdCBjaGFyKiBmaWxlbmFtZSkKKyAgICAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIGJ5dGVzX3JlYWQgPSBjb21iT2Jq U3RyZWFtLT5yZWFkKCBidWZmZXIsIG1hcmtlck9yTGVuZ3RoICk7CisgICAgICAgICAgICAgICAg IFFTdHJpbmcgYW5zaVN0cmluZyA9IHJlYWRCeXRlU3RyaW5nKGJ1ZmZlciwgbWFya2VyT3JMZW5n dGgpOworKyAgICAgICAgICAgICAgICBRX1VOVVNFRChhbnNpU3RyaW5nKTsKKyAgICAgICAgICAg ICAgICAgLy9UT0RPLi4uCisgICAgICAgICAgICAgICAgIC8vcHJpbnRmKCAibWFya2VyT3JMZW5n dGg9JWkgYW5zaVN0cmluZz0lc1xuIixtYXJrZXJPckxlbmd0aCxhbnNpU3RyaW5nLmFzY2lpKCkg KTsKKyAgICAgICAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9leGNlbC9z aWRld2luZGVyL2Zvcm11bGFzLmNwcCBiL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIv Zm9ybXVsYXMuY3BwCitpbmRleCA2Mjc0NzQ2OWE0OS4uMDEzMmQzOWUwMjQgMTAwNjQ0CistLS0g YS9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcAorKysrIGIvZmls dGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9mb3JtdWxhcy5jcHAKK0BAIC0xNTEzLDcgKzE1 MTMsNyBAQCBzdGF0aWMgdm9pZCBtZXJnZVRva2VucyhVU3RyaW5nU3RhY2sqIHN0YWNrLCB1bnNp Z25lZCBjb3VudCwgY29uc3QgUVN0cmluZyAmbWVyZworICAgICBpZiAoIXN0YWNrKSByZXR1cm47 CisgICAgIGlmIChzdGFjay0+c2l6ZSgpIDwgY291bnQpIHJldHVybjsKKyAKKy0gICAgUVN0cmlu ZyBzMSwgczI7CisrICAgIFFTdHJpbmcgczE7CisgCisgICAgIHdoaWxlIChjb3VudCkgeworICAg ICAgICAgY291bnQtLTsKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9nbnVt ZXJpY2V4cG9ydC5jYyBiL2ZpbHRlcnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmljZXhwb3J0LmNj CitpbmRleCAxMjU2YzY4YmM3NC4uMjQ2ODU0OGVkYjMgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3No ZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYworKysrIGIvZmlsdGVycy9zaGVldHMvZ251 bWVyaWMvZ251bWVyaWNleHBvcnQuY2MKK0BAIC0xMjkzLDE1ICsxMjkzLDEzIEBAIEtvRmlsdGVy OjpDb252ZXJzaW9uU3RhdHVzIEdOVU1FUklDRXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJy YXkmIGZyb20sIGNvbnN0CisgICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgIH0K KyAKKy0gICAgICAgICAgICBRU3RyaW5nIGxpbmU7CisgICAgICAgICAgICAgZm9yIChpbnQgY3Vy cmVudGNvbHVtbiA9IDE7IGN1cnJlbnRjb2x1bW4gPD0gaU1heENvbHVtbjsgY3VycmVudGNvbHVt bisrKSB7CisgICAgICAgICAgICAgICAgIFFEb21FbGVtZW50IGNlbGxfY29udGVudHM7CisgICAg ICAgICAgICAgICAgIENlbGwgY2VsbCh0YWJsZSwgY3VycmVudGNvbHVtbiwgY3VycmVudHJvdyk7 CisgCistICAgICAgICAgICAgICAgIFFTdHJpbmcgdGV4dCwgc3R5bGU7CisrICAgICAgICAgICAg ICAgIFFTdHJpbmcgdGV4dDsKKyAgICAgICAgICAgICAgICAgUURvbURvY3VtZW50IGRvbUxpbms7 CisgICAgICAgICAgICAgICAgIFFEb21FbGVtZW50IGRvbVJvb3Q7CistICAgICAgICAgICAgICAg IFFEb21Ob2RlIGRvbU5vZGU7CisgICAgICAgICAgICAgICAgIFFEb21Ob2RlTGlzdCBjaGlsZE5v ZGVzOworIAorICAgICAgICAgICAgICAgICBpZiAoIWNlbGwuaXNEZWZhdWx0KCkgJiYgIWNlbGwu aXNFbXB0eSgpKSB7CitAQCAtMTM0Miw2ICsxMzQwLDcgQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25T dGF0dXMgR05VTUVSSUNFeHBvcnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVBcnJheSYgZnJvbSwgY29u c3QKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gZG9tTm9kZS50b0VsZW1lbnQoKS50 ZXh0KCk7CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFkb21Ob2RlLmlzTnVs bCgpKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcgc3R5bGU7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID0gZG9tTm9kZS50b0VsZW1lbnQoKS50YWdO YW1lKCk7CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHlsZSA9PSAiYiIp CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjIGIvZmlsdGVy cy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjCitpbmRleCAyZDExNmUwNjA4Yy4uYmY0MWE2Zjc0 M2UgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MKKysrKyBi L2ZpbHRlcnMvc2hlZXRzL2h0bWwvaHRtbGV4cG9ydC5jYworQEAgLTI0Miw3ICsyNDIsNiBAQCB2 b2lkIEhUTUxFeHBvcnQ6OmNvbnZlcnRTaGVldChTaGVldCAqc2hlZXQsIFFTdHJpbmcgJnN0ciwg aW50IGlNYXhVc2VkUm93LCBpbnQgaQorICAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgfQor IAorLSAgICAgICAgUVN0cmluZyBzZXBhcmF0b3JzOworICAgICAgICAgUVN0cmluZyBsaW5lOwor ICAgICAgICAgdW5zaWduZWQgaW50IG5vbmVtcHR5X2NlbGxzID0gMDsKKyAKK0BAIC00MzUsNyAr NDM0LDYgQEAgdm9pZCBIVE1MRXhwb3J0OjpkZXRlY3RGaWxsZWRDZWxscyhTaGVldCAqc2hlZXQs IGludCAmcm93cywgaW50ICZjb2x1bW5zKQorICAgICAgICAgaW50IGlVc2VkQ29sdW1uID0gMDsK KyAgICAgICAgIGZvciAoaW50IGN1cnJlbnRjb2x1bW4gPSAxIDsgY3VycmVudGNvbHVtbiA8PSBp TWF4Q29sdW1uIDsgY3VycmVudGNvbHVtbisrKSB7CisgICAgICAgICAgICAgY2VsbCA9IENlbGwo c2hlZXQsIGN1cnJlbnRjb2x1bW4sIGN1cnJlbnRyb3cpOworLSAgICAgICAgICAgIFFTdHJpbmcg dGV4dDsKKyAgICAgICAgICAgICBpZiAoIWNlbGwuaXNEZWZhdWx0KCkgJiYgIWNlbGwuaXNFbXB0 eSgpKSB7CisgICAgICAgICAgICAgICAgIGlVc2VkQ29sdW1uID0gY3VycmVudGNvbHVtbjsKKyAg ICAgICAgICAgICB9CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xh dGV4ZXhwb3J0LmNjIGIvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xhdGV4ZXhwb3J0LmNj CitpbmRleCA4ZDA2OThhMzQyMC4uNGY4Y2FmMjM1ZDkgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3No ZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhleHBvcnQuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2xh dGV4L2V4cG9ydC9sYXRleGV4cG9ydC5jYworQEAgLTM4LDcgKzM4LDYgQEAgTEFURVhFeHBvcnQ6 OkxBVEVYRXhwb3J0KFFPYmplY3QqIHBhcmVudCwgY29uc3QgUVZhcmlhbnRMaXN0JikgOgorIAor IEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIExBVEVYRXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFC eXRlQXJyYXkmIGZyb20sIGNvbnN0IFFCeXRlQXJyYXkmIHRvKQorIHsKKy0gICAgUVN0cmluZyBj b25maWc7CisgCisgICAgIGlmICh0byAhPSAidGV4dC94LXRleCIgfHwgZnJvbSAhPSAiYXBwbGlj YXRpb24veC1rc3ByZWFkIikKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6Tm90SW1wbGVtZW50 ZWQ7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjIGIv ZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjCitpbmRleCA4ZDhiNjcwMWEzOS4u ZTU4ODI3ZGZiYzcgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFi bGUuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90YWJsZS5jYworQEAgLTEx OCw2ICsxMTgsNyBAQCB2b2lkIFRhYmxlOjphbmFseXplUGFwZXIoY29uc3QgUURvbU5vZGUgbm9k ZSkKKyAKKyAgICAgLyogYm9yZGVycyAqLworICAgICBRRG9tTm9kZSBib3JkZXIgPSBnZXRDaGls ZChub2RlLCAiYm9yZGVycyIpOworKyAgICBRX1VOVVNFRChib3JkZXIpOworICAgICBzZXRCb3Jk ZXJSaWdodChnZXRBdHRyKG5vZGUsICJyaWdodCIpLnRvTG9uZygpKTsKKyAgICAgc2V0Qm9yZGVy TGVmdChnZXRBdHRyKG5vZGUsICJsZWZ0IikudG9Mb25nKCkpOworICAgICBzZXRCb3JkZXJCb3R0 b20oZ2V0QXR0cihub2RlLCAiYm90dG9tIikudG9Mb25nKCkpOworZGlmZiAtLWdpdCBhL2ZpbHRl cnMvc2hlZXRzL3hsc3gvWGxzeFhtbFdvcmtzaGVldFJlYWRlci5jcHAgYi9maWx0ZXJzL3NoZWV0 cy94bHN4L1hsc3hYbWxXb3Jrc2hlZXRSZWFkZXIuY3BwCitpbmRleCA3ODJhNTkxNDcyOS4uZWRh OGZmYzZiNDcgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxXb3Jrc2hl ZXRSZWFkZXIuY3BwCisrKysgYi9maWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxXb3Jrc2hlZXRS ZWFkZXIuY3BwCitAQCAtODcyLDcgKzg3Miw2IEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVz IFhsc3hYbWxXb3Jrc2hlZXRSZWFkZXI6OnJlYWRfY29uZGl0aW9uYWxGb3JtYXR0aW5nKCkKKyAg ICAgd2hpbGUgKGluZGV4IDwgbV9jb25kaXRpb25hbEluZGljZXMuc2l6ZSgpKSB7CisgICAgICAg ICBRU3RyaW5nIGNvbmRpdGlvbmFsQXJlYTsKKyAgICAgICAgIENvbmRpdGlvbiBleGFtaW5lZENv bmRpdGlvbiA9IG1fY29uZGl0aW9uYWxJbmRpY2VzLmF0KGluZGV4KTsKKy0gICAgICAgIFFTdHJp bmcgc3FyZWZPcmlnaW5hbCA9IHNxcmVmOworICAgICAgICAgaW50IGFyZWFJbmRleCA9IDA7Cisg ICAgICAgICBDb25kaXRpb24gcHJldmlvdXNDb25kOworIAorZGlmZiAtLWdpdCBhL2ZpbHRlcnMv c3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFkZXIuY3BwIGIvZmlsdGVycy9zdGFnZS9wcHR4 L1BwdHhYbWxEb2N1bWVudFJlYWRlci5jcHAKK2luZGV4IDRjZjg2YWVhOGM4Li4xMWI1YWQyNjZi OSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFkZXIu Y3BwCisrKysgYi9maWx0ZXJzL3N0YWdlL3BwdHgvUHB0eFhtbERvY3VtZW50UmVhZGVyLmNwcAor QEAgLTMxNiw3ICszMTYsNyBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBQcHR4WG1sRG9j dW1lbnRSZWFkZXI6OnJlYWRfc2xkSWQoKQorIAorICAgICBRU3RyaW5nIHNsaWRlTWFzdGVyUGF0 aCwgc2xpZGVNYXN0ZXJGaWxlOworICAgICBNU09PWE1MOjpVdGlsczo6c3BsaXRQYXRoQW5kRmls ZShtX2NvbnRleHQtPnJlbGF0aW9uc2hpcHMtPnRhcmdldEZvclR5cGUoc2xpZGVQYXRoLCBzbGlk ZUZpbGUsIFFMYXRpbjFTdHJpbmcoTVNPT1hNTDo6U2NoZW1hczo6b2ZmaWNlRG9jdW1lbnQ6OnJl bGF0aW9uc2hpcHMpICsgIi9zbGlkZUxheW91dCIpLCAmc2xpZGVNYXN0ZXJQYXRoLCAmc2xpZGVN YXN0ZXJGaWxlKTsKKy0gICAgY29uc3QgUVN0cmluZyBzbGlkZU1hc3RlclBhdGhBbmRGaWxlID0g bV9jb250ZXh0LT5yZWxhdGlvbnNoaXBzLT50YXJnZXRGb3JUeXBlKHNsaWRlTWFzdGVyUGF0aCwg c2xpZGVNYXN0ZXJGaWxlLCBRTGF0aW4xU3RyaW5nKE1TT09YTUw6OlNjaGVtYXM6Om9mZmljZURv Y3VtZW50OjpyZWxhdGlvbnNoaXBzKSArICIvc2xpZGVNYXN0ZXIiKTsKKysgICAgLy8gY29uc3Qg UVN0cmluZyBzbGlkZU1hc3RlclBhdGhBbmRGaWxlID0gbV9jb250ZXh0LT5yZWxhdGlvbnNoaXBz LT50YXJnZXRGb3JUeXBlKHNsaWRlTWFzdGVyUGF0aCwgc2xpZGVNYXN0ZXJGaWxlLCBRTGF0aW4x U3RyaW5nKE1TT09YTUw6OlNjaGVtYXM6Om9mZmljZURvY3VtZW50OjpyZWxhdGlvbnNoaXBzKSAr ICIvc2xpZGVNYXN0ZXIiKTsKKyAKKyAgICAgLy8gRGVsYXkgdGhlIHJlYWRpbmcgb2YgYSB0YWJs ZVN0eWxlIHVudGlsIHdlIGZpbmQgYSB0YWJsZSBhcyB3ZSBuZWVkIHRoZQorICAgICAvLyBjbHJN YXAgZnJvbSB0aGUgbWFzdGVyIHNsaWRlCitkaWZmIC0tZ2l0IGEvZmlsdGVycy93b3Jkcy9tc3dv cmQtb2RmL3RleHRoYW5kbGVyLmNwcCBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi90ZXh0aGFu ZGxlci5jcHAKK2luZGV4IGUxNjdkODZlMDI4Li44OWVmNjc4OTYxYSAxMDA2NDQKKy0tLSBhL2Zp bHRlcnMvd29yZHMvbXN3b3JkLW9kZi90ZXh0aGFuZGxlci5jcHAKKysrKyBiL2ZpbHRlcnMvd29y ZHMvbXN3b3JkLW9kZi90ZXh0aGFuZGxlci5jcHAKK0BAIC00MDgsNiArNDA4LDcgQEAgdm9pZCBX b3Jkc1RleHRIYW5kbGVyOjpmb290bm90ZUZvdW5kKHd2V2FyZTo6Rm9vdG5vdGVEYXRhIGRhdGEs CisgICAgICAgICB9CisgICAgICAgICBjYXNlIG1zb25mY1VDTGV0dGVyOgorICAgICAgICAgICAg IGxldHRlciA9ICdBJzsKKysgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgIGNh c2UgbXNvbmZjTENMZXR0ZXI6CisgICAgICAgICB7CisgICAgICAgICAgICAgd2hpbGUgKG5vdGVO dW1iZXIgLyAyNSA+IDApIHsKK0BAIC0xMDY0LDYgKzEwNjUsNyBAQCB2b2lkIFdvcmRzVGV4dEhh bmRsZXI6OmZpZWxkU3RhcnQoY29uc3Qgd3ZXYXJlOjpGTEQqIGZsZCwgd3ZXYXJlOjpTaGFyZWRQ dHI8Y29ucworICAgICAgICAgYnJlYWs7CisgICAgIGNhc2UgVU5TVVBQT1JURUQ6CisgICAgICAg ICB3YXJuTXNEb2MgPDwgIldhcm5pbmc6IEZsZCBkYXRhIG1pc3NpbmcsIGlnbm9yaW5nISI7Cisr ICAgICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIHdhcm5Nc0Rv YyA8PCAiV2FybmluZzogdW5yZWNvZ25pemVkIGZpZWxkIHR5cGUsIGlnbm9yaW5nISI7CisgICAg ICAgICBtX2ZsZC0+bV90eXBlID0gVU5TVVBQT1JURUQ7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy93 b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvcGFyc2VyOXguY3BwIGIvZmlsdGVycy93b3Jkcy9tc3dv cmQtb2RmL3d2Mi9zcmMvcGFyc2VyOXguY3BwCitpbmRleCA5YTZkMTYwNmNlOS4uZTVkN2QxNDY5 MWMgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5 eC5jcHAKKysrKyBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3BhcnNlcjl4LmNw cAorQEAgLTU4MSw3ICs1ODEsOCBAQCB2b2lkIFBhcnNlcjl4Ojpwcm9jZXNzUGllY2UoIFN0cmlu Zyogc3RyaW5nLCBVMzIgZmMsIFUzMiBsaW1pdCwgY29uc3QgUG9zaXRpb24mCisgICAgICAgICAv LyBzYW1lIEFTQ0lJIGNvZGUgYXMgVFRQX01BUksgKDB4MDAwNyksIE5PVEU6IHRhYmxlIGRlcHRo ID09IDEKKyAgICAgICAgIGNhc2UgQ0VMTF9NQVJLOgorICAgICAgICAgICAgIG1fY2VsbE1hcmtG b3VuZCA9IHRydWU7CistICAgICAgICAgICAgLy8gRmFsbC10aHJvdWdoIGludGVuZGVkLiBBIHJv dy9jZWxsIGVuZCBpcyBhbHNvIGEgcGFyYWdyYXBoIGVuZC4KKysgICAgICAgICAgICAvLyBBIHJv dy9jZWxsIGVuZCBpcyBhbHNvIGEgcGFyYWdyYXBoIGVuZC4KKysgICAgICAgICAgICAvLyBmYWxs IHRocm91Z2gKKyAgICAgICAgIGNhc2UgUEFSQUdSQVBIX01BUks6CisgICAgICAgICB7CisgICAg ICAgICAgICAgLy8gTm8gImluZGV4IC0gc3RhcnQgKyAxIiBoZXJlLCBhcyB3ZSBkb24ndCB3YW50 IHRvIGNvcHkgdGhlCitAQCAtMTA2NCw2ICsxMDY1LDcgQEAgdm9pZCBQYXJzZXI5eDo6ZW1pdFNw ZWNpYWxDaGFyYWN0ZXIoIFVDaGFyIGNoYXJhY3RlciwgVTMyIGdsb2JhbENQLCBTaGFyZWRQdHI8 Y28KKyAgICAgICAgICAgICBpZiAobV9zdWJEb2N1bWVudCA9PSBNYWluKSB7CisgICAgICAgICAg ICAgICAgIGVtaXRBbm5vdGF0aW9uKCBVU3RyaW5nKGNoYXJhY3RlciksIGdsb2JhbENQLCBjaHAg KTsKKyAgICAgICAgICAgICB9CisrICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAg IGNhc2UgVGV4dEhhbmRsZXI6OkZpZWxkRXNjYXBlQ2hhcjoKKyAgICAgICAgIHd2bG9nIDw8ICJG b3VuZCBhbiBlc2NhcGUgY2hhcmFjdGVyICsrKysrKysrKysrKysrKysrKysrPyIgPDwgZW5kbDsK K2RpZmYgLS1naXQgYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3Bw IGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmNwcAoraW5kZXggZjQ3 YzNkZDhkNTEuLmQyYzk2ZTNkOTJiIDEwMDY0NAorLS0tIGEvZmlsdGVycy93b3Jkcy9tc3dvcmQt b2RmL3d2Mi9zcmMvc3R5bGVzLmNwcAorKysrIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2 Mi9zcmMvc3R5bGVzLmNwcAorQEAgLTQyLDcgKzQyLDYgQEAgU1REOjpTVEQoKQorIH0KKyAKKyBT VEQ6OlNURCggVTE2IGJhc2VTaXplLCBVMTYgdG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0 cmVhbSwgYm9vbCBwcmVzZXJ2ZVBvcyApCistdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbikK KyB7CisgICAgIGNsZWFySW50ZXJuYWwoKTsKKyAgICAgaWYgKCFyZWFkKCBiYXNlU2l6ZSwgdG90 YWxTaXplLCBzdHJlYW0sIHByZXNlcnZlUG9zICkpIHsKK0BAIC0xMTIsNyArMTExLDYgQEAgU1RE JiBTVEQ6Om9wZXJhdG9yPSggY29uc3QgU1REJiByaHMgKQorIH0KKyAKKyBib29sIFNURDo6cmVh ZCggY29uc3QgVTE2IGNiU3RkLCBjb25zdCBVMTYgc3RkZlNpemUsIE9MRVN0cmVhbVJlYWRlciog c3RyZWFtLCBib29sIHByZXNlcnZlUG9zICkKKy10aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9u KQorIHsKKyAgICAgVTE2IHNoaWZ0ZXJVMTY7CisgICAgIFMzMiBzdGFydE9mZnNldD1zdHJlYW0t PnRlbGwoKTsgIC8vIGFkZHJlc3Mgd2hlcmUgdGhlIFNURCBzdGFydHMKK0BAIC05MzgsNyArOTM2 LDcgQEAgdm9pZCBTdHlsZTo6bWVyZ2VVcGVjaHB4KCBjb25zdCBTdHlsZSogcGFyZW50U3R5bGUs IFdvcmRWZXJzaW9uIHZlcnNpb24gKQorIH0KKyAKKyAKKy1TdHlsZVNoZWV0OjpTdHlsZVNoZWV0 KCBPTEVTdHJlYW1SZWFkZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hm ICkgdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbikKKytTdHlsZVNoZWV0OjpTdHlsZVNoZWV0 KCBPTEVTdHJlYW1SZWFkZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hm ICkKKyAgICAgOiBtX3Vkc051bSgwKQorIHsKKyAgICAgV29yZFZlcnNpb24gdmVyc2lvbiA9IFdv cmQ4OworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxl cy5oIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmgKK2luZGV4IGJh MDJkZWY2ODQ1Li40MWM4Mjc4ZGQyMSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvd29yZHMvbXN3b3Jk LW9kZi93djIvc3JjL3N0eWxlcy5oCisrKysgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3Yy L3NyYy9zdHlsZXMuaAorQEAgLTU4LDggKzU4LDkgQEAgc3RydWN0IFNURAorICAgICBTVEQoKTsK KyAgICAgLyoqCisgICAgICAqIFNpbXBseSBjYWxscyByZWFkKC4uLikKKysgICAgICogQHRocm93 IEludmFsaWRGb3JtYXRFeGNlcHRpb24KKyAgICAgICovCistICAgIFNURCggVTE2IHN0ZGZTaXpl LCBVMTYgdG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVzZXJ2ZVBv cyA9IGZhbHNlICkgdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbik7CisrICAgIFNURCggVTE2 IHN0ZGZTaXplLCBVMTYgdG90YWxTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBw cmVzZXJ2ZVBvcyA9IGZhbHNlICk7CisgICAgIC8qKgorICAgICAgKiBBdHRlbnRpb246IFRoaXMg c3RydWN0IGFsbG9jYXRlcyBtZW1vcnkgb24gdGhlIGhlYXAKKyAgICAgICovCitAQCAtNzQsOCAr NzUsOSBAQCBzdHJ1Y3QgU1RECisgICAgICAqIGZhbHNlIHRoZSBzdGF0ZSBvZiBzdHJlYW0gd2ls bCBiZSBjaGFuZ2VkIQorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHRydWUgLSBzdWNjZXNzLCBm YWxzZSAtIGZhaWxlZAorKyAgICAgKiBAdGhyb3cgSW52YWxpZEZvcm1hdEV4Y2VwdGlvbgorICAg ICAgKi8KKy0gICAgYm9vbCByZWFkKCBjb25zdCBVMTYgY2JTdGQsIGNvbnN0IFUxNiBzdGRmU2l6 ZSwgT0xFU3RyZWFtUmVhZGVyKiBzdHJlYW0sIGJvb2wgcHJlc2VydmVQb3MgPSBmYWxzZSApIHRo cm93KEludmFsaWRGb3JtYXRFeGNlcHRpb24pOworKyAgICBib29sIHJlYWQoIGNvbnN0IFUxNiBj YlN0ZCwgY29uc3QgVTE2IHN0ZGZTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBw cmVzZXJ2ZVBvcyA9IGZhbHNlICk7CisgCisgICAgIC8qKgorICAgICAgKiBTYW1lIGFzIHJlYWRp bmcgOikKK0BAIC0zNjUsNyArMzY3LDEwIEBAIGNsYXNzIFdWMl9FWFBPUlQgU3R5bGUKKyBjbGFz cyBXVjJfRVhQT1JUIFN0eWxlU2hlZXQKKyB7CisgcHVibGljOgorLSAgICBTdHlsZVNoZWV0KCBP TEVTdHJlYW1SZWFkZXIqIHRhYmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hmICkg dGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbik7CisrICAgIC8qKgorKyAgICAgKiBAdGhyb3cg SW52YWxpZEZvcm1hdEV4Y2VwdGlvbgorKyAgICAgKi8KKysgICAgU3R5bGVTaGVldCggT0xFU3Ry ZWFtUmVhZGVyKiB0YWJsZVN0cmVhbSwgVTMyIGZjU3RzaGYsIFUzMiBsY2JTdHNoZiApOworICAg ICB+U3R5bGVTaGVldCgpOworIAorICAgICAvKioKK2RpZmYgLS1naXQgYS9nZW1pbmkvbGliL0dl bWluaU1haW5XaW5kb3cuY3BwIGIvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcAoraW5k ZXggM2QwNWY2NDYxZTAuLmViNWYxMjBjMGY3IDEwMDY0NAorLS0tIGEvZ2VtaW5pL2xpYi9HZW1p bmlNYWluV2luZG93LmNwcAorKysrIGIvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93LmNwcAor QEAgLTEzNiw4ICsxMzYsMTAgQEAgdm9pZCBHZW1pbmlNYWluV2luZG93OjpzZXRGdWxsU2NyZWVu KGJvb2wgbmV3U3RhdGUpCisgfQorIAorIAorKworIHZvaWQgR2VtaW5pTWFpbldpbmRvdzo6Y2hh bmdlU3RhdGUoR2VtaW5pTWFpbldpbmRvdzo6R2VtaW5pU3RhdGUgbmV3U3RhdGUsIGJvb2wgbG9j a05ld1N0YXRlKQorIHsKKysgICAgUV9VTlVTRUQobG9ja05ld1N0YXRlKTsKKyAgICAgZC0+c3lu Y09iamVjdCA9IG5ldyBHZW1pbmlNb2RlU3luY2hyb25pc2F0aW9uT2JqZWN0OworIAorICAgICBp ZihjZW50cmFsV2lkZ2V0KCkpIHsKK2RpZmYgLS1naXQgYS9saWJzL3BhZ2VhcHAvS29QQU9kZlBh Z2VTYXZlSGVscGVyLmNwcCBiL2xpYnMvcGFnZWFwcC9Lb1BBT2RmUGFnZVNhdmVIZWxwZXIuY3Bw CitpbmRleCA5MmM2ZGZkNGNiNC4uMDY4NTAxYzhhZjEgMTAwNjQ0CistLS0gYS9saWJzL3BhZ2Vh cHAvS29QQU9kZlBhZ2VTYXZlSGVscGVyLmNwcAorKysrIGIvbGlicy9wYWdlYXBwL0tvUEFPZGZQ YWdlU2F2ZUhlbHBlci5jcHAKK0BAIC00OSw3ICs0OSw3IEBAIEtvUEFPZGZQYWdlU2F2ZUhlbHBl cjo6S29QQU9kZlBhZ2VTYXZlSGVscGVyKCBLb1BBRG9jdW1lbnQgKiBkb2MsIFFMaXN0PEtvUEFQ YWdlCisgICAgICAgICAgICAgS29QQVBhZ2UgKiBwID0gc3RhdGljX2Nhc3Q8S29QQVBhZ2UgKj4o IHBhZ2UgKTsKKyAgICAgICAgICAgICBtYXN0ZXJQYWdlcy5pbnNlcnQoIHAtPm1hc3RlclBhZ2Uo KSApOworICAgICAgICAgfQorLSAgICAgICAgbV9tYXN0ZXJQYWdlcyA9IG1hc3RlclBhZ2VzLnRv TGlzdCgpOworKyAgICAgICAgbV9tYXN0ZXJQYWdlcyA9IG1hc3RlclBhZ2VzLnZhbHVlcygpOwor ICAgICB9CisgfQorIAorZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VO YXZpZ2F0b3JEZXZpY2UuaCBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JE ZXZpY2UuaAoraW5kZXggYjkwNTZhYzk4YzEuLmVjZDY5NmU0MTVmIDEwMDY0NAorLS0tIGEvcGx1 Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckRldmljZS5oCisrKysgYi9wbHVnaW5z L3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRGV2aWNlLmgKK0BAIC0zMSwxMCArMzEsOCBA QCBjbGFzcyBTcGFjZU5hdmlnYXRvckRldmljZSA6IHB1YmxpYyBLb0lucHV0RGV2aWNlSGFuZGxl cgorICAgICBleHBsaWNpdCBTcGFjZU5hdmlnYXRvckRldmljZShRT2JqZWN0ICpwYXJlbnQpOwor ICAgICB2aXJ0dWFsIH5TcGFjZU5hdmlnYXRvckRldmljZSgpOworIAorLSAgICAvLy8gcmVpbXBs ZW1lbnRlZCBmcm9tIEtvSW5wdXREZXZpY2VIYW5kbGVyCistICAgIHZpcnR1YWwgYm9vbCBzdGFy dCgpOworLSAgICAvLy8gcmVpbXBsZW1lbnRlZCBmcm9tIEtvSW5wdXREZXZpY2VIYW5kbGVyCist ICAgIHZpcnR1YWwgYm9vbCBzdG9wKCk7CisrICAgIHZpcnR1YWwgYm9vbCBzdGFydCgpIG92ZXJy aWRlOworKyAgICB2aXJ0dWFsIGJvb2wgc3RvcCgpIG92ZXJyaWRlOworIHByaXZhdGUgUV9TTE9U UzoKKyAgICAgdm9pZCBzbG90TW92ZUV2ZW50KCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgcngs IGludCByeSwgaW50IHJ6LCBRdDo6TW91c2VCdXR0b25zICk7CisgICAgIHZvaWQgc2xvdEJ1dHRv bkV2ZW50KCBpbnQgeCwgaW50IHksIGludCB6LCBpbnQgcngsIGludCByeSwgaW50IHJ6LCBRdDo6 TW91c2VCdXR0b25zLCBRdDo6TW91c2VCdXR0b24sIGludCB0eXBlICk7CitkaWZmIC0tZ2l0IGEv cGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckV2ZW50LmggYi9wbHVnaW5zL3Nw YWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRXZlbnQuaAoraW5kZXggNzM3NTFlYzg4ZmYuLjc2 ZWU4ZTJmODgwIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmln YXRvckV2ZW50LmgKKysrKyBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JF dmVudC5oCitAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTcGFjZU5hdmlnYXRvckV2ZW50IDogcHVi bGljIEtvSW5wdXREZXZpY2VIYW5kbGVyRXZlbnQKKyAgICAgdm9pZCBzZXRQb3NpdGlvbiggaW50 IHgsIGludCB5LCBpbnQgeiApOworICAgICB2b2lkIHNldFJvdGF0aW9uKCBpbnQgcngsIGludCBy eSwgaW50IHJ6ICk7CisgCistICAgIHZpcnR1YWwgS29Qb2ludGVyRXZlbnQgKiBwb2ludGVyRXZl bnQoKTsKKysgICAgdmlydHVhbCBLb1BvaW50ZXJFdmVudCAqIHBvaW50ZXJFdmVudCgpIG92ZXJy aWRlOworIAorIHByaXZhdGU6CisgICAgIGludCBtX3gsIG1feSwgbV96OworZGlmZiAtLWdpdCBh L3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmggYi9w bHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCitpbmRl eCA2MmM0ZGU4YWI3My4uNjdkNTkxNzcwMjEgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3NwYWNlbmF2 aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCisrKysgYi9wbHVnaW5zL3NwYWNl bmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oCitAQCAtMzksOCArMzksNyBA QCBjbGFzcyBTcGFjZU5hdmlnYXRvclBvbGxpbmdUaHJlYWQgOiBwdWJsaWMgUVRocmVhZAorIAor IHByb3RlY3RlZDoKKyAKKy0gICAgLy8vIHJlaW1wbGVtZW50ZWQgZnJvbSBRVGhyZWFkCistICAg IHZpcnR1YWwgdm9pZCBydW4oKTsKKysgICAgdmlydHVhbCB2b2lkIHJ1bigpIG92ZXJyaWRlOwor IAorIHByaXZhdGU6CisgICAgIGJvb2wgbV9zdG9wcGVkOworZGlmZiAtLWdpdCBhL3BsdWdpbnMv dmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwIGIvcGx1Z2lucy92ZWN0b3JzaGFwZS9WZWN0b3JT aGFwZS5jcHAKK2luZGV4IGEyNWFiM2ZjNTYxLi45YWNiZDI1MWM5NCAxMDA2NDQKKy0tLSBhL3Bs dWdpbnMvdmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwCisrKysgYi9wbHVnaW5zL3ZlY3RvcnNo YXBlL1ZlY3RvclNoYXBlLmNwcAorQEAgLTI5NCw2ICsyOTQsNyBAQCB2b2lkIFZlY3RvclNoYXBl OjpzYXZlT2RmKEtvU2hhcGVTYXZpbmdDb250ZXh0ICYgY29udGV4dCkgY29uc3QKKyAgICAgICAg IGJyZWFrOworICAgICBjYXNlIFZlY3RvclR5cGVTdmc6CisgICAgICAgICBtaW1lVHlwZSA9ICJp bWFnZS9zdmcreG1sIjsKKysgICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0OgorICAgICAgICAg Ly8gRklYTUU6IFdoYXQgaGVyZT8KKyAgICAgICAgIG1pbWVUeXBlID0gImFwcGxpY2F0aW9uL3gt d2hhdCI7CitkaWZmIC0tZ2l0IGEvc2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAgYi9zaGVl dHMvZnVuY3Rpb25zL2RhdGV0aW1lLmNwcAoraW5kZXggOWY1OWZlMmNmNzUuLjYxNTdiMDk5NmMx IDEwMDY0NAorLS0tIGEvc2hlZXRzL2Z1bmN0aW9ucy9kYXRldGltZS5jcHAKKysrKyBiL3NoZWV0 cy9mdW5jdGlvbnMvZGF0ZXRpbWUuY3BwCitAQCAtNTk3LDYgKzU5Nyw3IEBAIFZhbHVlIGZ1bmNf Y3VycmVudERhdGUodmFsVmVjdG9yLCBWYWx1ZUNhbGMgKiBjYWxjLCBGdW5jRXh0cmEgKikKKyAv LyBGdW5jdGlvbjogQ1VSUkVOVFRJTUUKKyBWYWx1ZSBmdW5jX2N1cnJlbnRUaW1lKHZhbFZlY3Rv ciwgVmFsdWVDYWxjICogY2FsYywgRnVuY0V4dHJhICopCisgeworKyAgICBRX1VOVVNFRChjYWxj KTsKKyAgICAgcmV0dXJuIFZhbHVlKFFUaW1lOjpjdXJyZW50VGltZSgpKTsKKyB9CisgCitkaWZm IC0tZ2l0IGEvc2hlZXRzL3BhcnQvRGlnZXN0LmNwcCBiL3NoZWV0cy9wYXJ0L0RpZ2VzdC5jcHAK K2luZGV4IDhjZDk3MmRiOTg5Li5lOTI0NmNlNmU3ZCAxMDA2NDQKKy0tLSBhL3NoZWV0cy9wYXJ0 L0RpZ2VzdC5jcHAKKysrKyBiL3NoZWV0cy9wYXJ0L0RpZ2VzdC5jcHAKK0BAIC01OTYsMTAgKzU5 NiwxMCBAQCBzdGF0aWMgdm9pZCBfX3J0bF9kaWdlc3RfZW5kU0hBKERpZ2VzdENvbnRleHRTSEEg KmN0eCkKKyAgICAgfQorIAorICAgICBzd2l0Y2ggKGN0eC0+bV9uRGF0TGVuICYgMHgwMykgewor LSAgICBjYXNlIDA6IFhbaV0gID0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAgMEw7CistICAg IGNhc2UgMTogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICA4TDsKKy0gICAgY2Fz ZSAyOiBYW2ldIHw9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgMTZMOworLSAgICBjYXNlIDM6 IFhbaV0gfD0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAyNEw7CisrICAgIGNhc2UgMDogWFtp XSAgPSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICAwTDsgLyogZmFsbCB0aHJvdWdoICovCisr ICAgIGNhc2UgMTogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICA4TDsgLyogZmFs bCB0aHJvdWdoICovCisrICAgIGNhc2UgMjogWFtpXSB8PSAoKHNhbF91SW50MzIpKCoocCsrKSkp IDw8IDE2TDsgLyogZmFsbCB0aHJvdWdoICovCisrICAgIGNhc2UgMzogWFtpXSB8PSAoKHNhbF91 SW50MzIpKCoocCsrKSkpIDw8IDI0TDsgLyogZmFsbCB0aHJvdWdoICovCisgICAgIH0KKyAKKyAg ICAgX19ydGxfZGlnZXN0X3N3YXBMb25nKFgsIGkgKyAxKTsKK2RpZmYgLS1naXQgYS9zaGVldHMv c2hhcGUvVGFibGVUb29sRmFjdG9yeS5oIGIvc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3Rvcnku aAoraW5kZXggNjc5YmZlMTRiOGUuLjk0MTJkOGZmZGM1IDEwMDY0NAorLS0tIGEvc2hlZXRzL3No YXBlL1RhYmxlVG9vbEZhY3RvcnkuaAorKysrIGIvc2hlZXRzL3NoYXBlL1RhYmxlVG9vbEZhY3Rv cnkuaAorQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgVGFibGVUb29sRmFjdG9yeSA6IHB1YmxpYyBL b1Rvb2xGYWN0b3J5QmFzZQorICAgICBUYWJsZVRvb2xGYWN0b3J5KCk7CisgICAgIH5UYWJsZVRv b2xGYWN0b3J5KCk7CisgCistICAgIEtvVG9vbEJhc2UqIGNyZWF0ZVRvb2woS29DYW52YXNCYXNl KiBjYW52YXMpOworKyAgICBLb1Rvb2xCYXNlKiBjcmVhdGVUb29sKEtvQ2FudmFzQmFzZSogY2Fu dmFzKSBvdmVycmlkZTsKKyB9OworIAorIH0gLy8gbmFtZXNwYWNlIFNoZWV0cworZGlmZiAtLWdp dCBhL3NoZWV0cy90ZXN0cy9UZXN0U29ydC5jcHAgYi9zaGVldHMvdGVzdHMvVGVzdFNvcnQuY3Bw CitpbmRleCBiM2YxZTM1MTY5ZC4uNjM1NGQ3OWFiYzUgMTAwNjQ0CistLS0gYS9zaGVldHMvdGVz dHMvVGVzdFNvcnQuY3BwCisrKysgYi9zaGVldHMvdGVzdHMvVGVzdFNvcnQuY3BwCitAQCAtNjgs NyArNjgsNyBAQCB2b2lkIFRlc3RTb3J0OjpBc2NlbmRpbmdPcmRlcigpCisgICAgIGNvbW1hbmQt PnNldFNoZWV0KHNoZWV0KTsKKyAKKyAgICAgLy8gUGFyYW1ldGVycy4KKy0gICAgY29tbWFuZC0+ c2V0U29ydFJvd3MoUXQ6OlZlcnRpY2FsKTsKKysgICAgY29tbWFuZC0+c2V0U29ydFJvd3ModHJ1 ZSk7CisgICAgIGNvbW1hbmQtPnNldFNraXBGaXJzdChmYWxzZSk7CisgICAgIGNvbW1hbmQtPnNl dENvcHlGb3JtYXQoZmFsc2UpOworIAorQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFRlc3RTb3J0 OjpEZXNjZW5kaW5nT3JkZXIoKQorICAgICBjb21tYW5kLT5zZXRTaGVldChzaGVldCk7CisgCisg ICAgIC8vIFBhcmFtZXRlcnMuCistICAgIGNvbW1hbmQtPnNldFNvcnRSb3dzKFF0OjpWZXJ0aWNh bCk7CisrICAgIGNvbW1hbmQtPnNldFNvcnRSb3dzKHRydWUpOworICAgICBjb21tYW5kLT5zZXRT a2lwRmlyc3QoZmFsc2UpOworICAgICBjb21tYW5kLT5zZXRDb3B5Rm9ybWF0KGZhbHNlKTsKKyAK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Utc2hvdy1oaWRk ZW4tcm93LXMtd29yay5wYXRjaCBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Ut c2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmQ0YjA4MmI5YTBmMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2Fs bGlncmEvcGF0Y2hlcy8wMDAyLU1ha2Utc2hvdy1oaWRkZW4tcm93LXMtd29yay5wYXRjaApAQCAt MCwwICsxLDI5IEBACitGcm9tIDIyZTAyOTk4ZGVjOGFmMTVhMjViN2U4ZTNkNTNjMTc0ODEwY2Mz YmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYWcgQW5kZXJzZW4gPGRhbmRlcnNA Z2V0Mm5ldC5kaz4KK0RhdGU6IFRodSwgMTEgSnVuIDIwMjAgMTA6NDM6MzggKzAyMDAKK1N1Ympl Y3Q6IFtQQVRDSF0gTWFrZSBzaG93IGhpZGRlbiByb3cocykgd29yaworCitDaGVjayBmb3IgaGlk ZGVuIHJvd3Mgd2FzIGludmVydGVkIHRvIGNoZWNrIGZvciBzaG93biByb3dzLAoraGVuY2UgaGlk ZGVuIHJvd3Mgd291bGQgbmV2ZXIgYmUgdW5oaWRkZW4uCisKK0JVRzozMzg4MTYKK0JVRzozNTQy MzYKK0ZJWEVELUlOOjMuMi4yCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyODkyMGM1MGU2 MzAwZDY0MzQ3N2YyNTZhYmE5MWM4YzUxODM2NjgyKQorLS0tCisgc2hlZXRzL2NvbW1hbmRzL1Jv d0NvbHVtbk1hbmlwdWxhdG9ycy5jcHAgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zaGVldHMvY29tbWFuZHMvUm93 Q29sdW1uTWFuaXB1bGF0b3JzLmNwcCBiL3NoZWV0cy9jb21tYW5kcy9Sb3dDb2x1bW5NYW5pcHVs YXRvcnMuY3BwCitpbmRleCA5NTI4MmQ2ZTMxYi4uMjVlOGM0NTRlMjcgMTAwNjQ0CistLS0gYS9z aGVldHMvY29tbWFuZHMvUm93Q29sdW1uTWFuaXB1bGF0b3JzLmNwcAorKysrIGIvc2hlZXRzL2Nv bW1hbmRzL1Jvd0NvbHVtbk1hbmlwdWxhdG9ycy5jcHAKK0BAIC0xOTIsNyArMTkyLDcgQEAgYm9v bCBIaWRlU2hvd01hbmlwdWxhdG9yOjpwcmVQcm9jZXNzaW5nKCkKKyAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBmb3IgKGludCByb3cg PSByYW5nZS50b3AoKTsgcm93IDw9IHJhbmdlLmJvdHRvbSgpOyArK3JvdykgeworLSAgICAgICAg ICAgICAgICAgICAgaWYgKCFtX3NoZWV0LT5yb3dGb3JtYXRzKCktPmlzSGlkZGVuKHJvdykpIHsK KysgICAgICAgICAgICAgICAgICAgIGlmIChtX3NoZWV0LT5yb3dGb3JtYXRzKCktPmlzSGlkZGVu KHJvdykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24uYWRkKFFSZWN0KDEsIHJv dywgS1NfY29sTWF4LCAxKSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaCBi L3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjFkYjgzODUxNjFhMwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaApAQCAtMCwwICsxLDE2IEBACitkaWZm IC1OYXVyIENNYWtlTGlzdHMudHh0Lm9yaWcgQ01ha2VMaXN0cy50eHQKKy0tLSBhL0NNYWtlTGlz dHMudHh0Lm9yaWcKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMTA2LDkgKzEwNiw5IEBACisg CisgIyB1c2UgQ1BQLTExCisgaWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9MRVNTICIzLjEiKQor LSAgICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9YysrMTEi KQorKyAgICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9IC1zdGQ9Yysr MTciKQorIGVsc2UgKCkKKy0gICAgc2V0IChDTUFLRV9DWFhfU1RBTkRBUkQgMTEpCisrICAgIHNl dCAoQ01BS0VfQ1hYX1NUQU5EQVJEIDE3KQorIGVuZGlmICgpCisgCisgIyMjIyMjIyMjIyMjCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4 LnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43ZGFiNTNiY2ZjN2YK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4w My4wLWZpeC5wYXRjaApAQCAtMCwwICsxLDcwIEBACitGcm9tIDIzNmJhY2JlMTM3Mzk0MTRlOTE5 ZGU4NjgyODNiMGNhZjJkZjVkOGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGJl cnQgQXN0YWxzIENpZCA8YWFjaWRAa2RlLm9yZz4KK0RhdGU6IFdlZCwgMTMgQXByIDIwMjIgMDE6 MjU6NDQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gUGRmSW1wb3J0OiBGaXggY29tcGlsZSB3aXRo IG5ld2VyIHBvcHBsZXIKKworQnJpbmdzIGEgZGVwZW5kZW5jeSBvbiBwb3BwbGVyLXF0NSB0byBi ZSBhYmxlIHRvIGluY2x1ZGUgdGhlIHZlcnNpb24KK2hlYWRlciwgaG9uZXN0bHkgaXQncyBub3Qg c3RyaWN0bHkgbmVlZGVkLCBvbmUgY291bGQgZG8gYQorY2hlY2tfY3h4X3NvdXJjZV9jb21waWxl cywgYnV0IEkgZG9uJ3QgY2FyZSBhYm91dCBDYWxsaWdyYSBlbm91Z2ggdG8KK3NwZW5kIG1vcmUg dGltZSBtYWtpbmcgaXQgY29tcGlsZSB3aGlsZSBpdCdzIHVzaW5nIHBvcHBsZXIgdGhlIHdyb25n Cit3YXkuCistLS0KKyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgfCAxICsKKyBm aWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQgfCAyICstCisgZmlsdGVycy9rYXJib24v cGRmL1BkZkltcG9ydC5jcHAgIHwgOSArKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0 IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDUxZjFkNjViOGU2Li4wNmJiYWQ1YzI0YyAxMDA2NDQK Ky0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTk1Miw2ICs5 NTIsNyBAQCBjYWxsaWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVSX1dQ R19UT19PREcKKyBjYWxsaWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVS X1BERl9UT19TVkcKKyAgICAgTk9UX1dJTiAibm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzIgorICAg ICBQb3BwbGVyWFBERkhlYWRlcnNfRk9VTkQgInBvcHBsZXIgeHBkZiBoZWFkZXJzIG5vdCBmb3Vu ZCIKKysgICAgUG9wcGxlcl9GT1VORCAicG9wcGxlciBxdDUgaGVhZGVycyBub3QgZm91bmQiCisg ICAgICkKKyAKKyBjYWxsaWdyYV9kcm9wX3Byb2R1Y3Rfb25fYmFkX2NvbmRpdGlvbiggRklMVEVS X0hUTUxfVE9fT0RTCitkaWZmIC0tZ2l0IGEvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMu dHh0IGIvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ZmRkZjFhZDc1 Ny4uYjcxYzkyY2JmMDQgMTAwNjQ0CistLS0gYS9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0 cy50eHQKKysrKyBiL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAorQEAgLTMsNyAr Myw3IEBAIHNldChwZGYyc3ZnX1BBUlRfU1JDUyBQZGZJbXBvcnREZWJ1Zy5jcHAgUGRmSW1wb3J0 LmNwcCBTdmdPdXRwdXREZXYuY3BwICkKKyBhZGRfbGlicmFyeShjYWxsaWdyYV9maWx0ZXJfcGRm MnN2ZyBNT0RVTEUgJHtwZGYyc3ZnX1BBUlRfU1JDU30pCisgY2FsbGlncmFfZmlsdGVyX2Rlc2t0 b3BfdG9fanNvbihjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBjYWxsaWdyYV9maWx0ZXJfcGRmMnN2 Zy5kZXNrdG9wKQorIAorLXRhcmdldF9saW5rX2xpYnJhcmllcyhjYWxsaWdyYV9maWx0ZXJfcGRm MnN2ZyBrb21haW4gUG9wcGxlcjo6Q29yZSkKKyt0YXJnZXRfbGlua19saWJyYXJpZXMoY2FsbGln cmFfZmlsdGVyX3BkZjJzdmcga29tYWluIFBvcHBsZXI6OkNvcmUgUG9wcGxlcjo6UXQ1KQorIAor IGluc3RhbGwoVEFSR0VUUyBjYWxsaWdyYV9maWx0ZXJfcGRmMnN2ZyBERVNUSU5BVElPTiAke1BM VUdJTl9JTlNUQUxMX0RJUn0vY2FsbGlncmEvZm9ybWF0ZmlsdGVycykKKyAKK2RpZmYgLS1naXQg YS9maWx0ZXJzL2thcmJvbi9wZGYvUGRmSW1wb3J0LmNwcCBiL2ZpbHRlcnMva2FyYm9uL3BkZi9Q ZGZJbXBvcnQuY3BwCitpbmRleCBhYmJlNjgxYjRlOC4uZTk3OTc0ZmMxMzMgMTAwNjQ0CistLS0g YS9maWx0ZXJzL2thcmJvbi9wZGYvUGRmSW1wb3J0LmNwcAorKysrIGIvZmlsdGVycy9rYXJib24v cGRmL1BkZkltcG9ydC5jcHAKK0BAIC0xNyw2ICsxNywxMCBAQAorIAorICNpbmNsdWRlIDxrcGx1 Z2luZmFjdG9yeS5oPgorIAorKyNpbmNsdWRlIDxwb3BwbGVyLXZlcnNpb24uaD4KKysKKysjZGVm aW5lIFBPUFBMRVJfVkVSU0lPTl9NQUNSTyAoKFBPUFBMRVJfVkVSU0lPTl9NQUpPUiA8PCAxNikg fCAoUE9QUExFUl9WRVJTSU9OX01JTk9SIDw8IDgpIHwgKFBPUFBMRVJfVkVSU0lPTl9NSUNSTykp CisrCisgLy8gRG9uJ3Qgc2hvdyB0aGlzIHdhcm5pbmc6IGl0J3MgYW4gaXNzdWUgaW4gcG9wcGxl cgorICNpZmRlZiBfX0dOVUNfXworICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1 bnVzZWQtcGFyYW1ldGVyIgorQEAgLTU0LDggKzU4LDEzIEBAIEtvRmlsdGVyOjpDb252ZXJzaW9u U3RhdHVzIFBkZkltcG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdCBR Qnl0CisgICAgIGlmICghIGdsb2JhbFBhcmFtcykKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6 Tm90SW1wbGVtZW50ZWQ7CisgCisrI2lmIFBPUFBMRVJfVkVSU0lPTl9NQUNSTyA8IFFUX1ZFUlNJ T05fQ0hFQ0soMjIsIDAzLCAwKQorICAgICBHb29TdHJpbmcgKiBmbmFtZSA9IG5ldyBHb29TdHJp bmcoUUZpbGU6OmVuY29kZU5hbWUobV9jaGFpbi0+aW5wdXRGaWxlKCkpLmRhdGEoKSk7CisgICAg IFBERkRvYyAqIHBkZkRvYyA9IG5ldyBQREZEb2MoZm5hbWUsIDAsIDAsIDApOworKyNlbHNlCisr ICAgIHN0ZDo6dW5pcXVlX3B0cjxHb29TdHJpbmc+IGZuYW1lID0gc3RkOjptYWtlX3VuaXF1ZTxH b29TdHJpbmc+KFFGaWxlOjplbmNvZGVOYW1lKG1fY2hhaW4tPmlucHV0RmlsZSgpKS5kYXRhKCkp OworKyAgICBQREZEb2MgKiBwZGZEb2MgPSBuZXcgUERGRG9jKHN0ZDo6bW92ZShmbmFtZSkpOwor KyNlbmRpZgorICAgICBpZiAoISBwZGZEb2MpIHsKKyAgICAgICAgIGdsb2JhbFBhcmFtcy5yZXNl dCgpOworICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpTdHVwaWRFcnJvcjsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoIGIvc3Jj cGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNDcxNjk5NTBiOGIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRj aApAQCAtMCwwICsxLDkxIEBACitGcm9tIDZiNzViZWM3ODRjOTgzNWM3ODk5MzM0OTg0NWQ4YzJl ZjIyZWMzZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYWcgQW5kZXJzZW4gPGRh Zy5hbmRlcnNlbkBrZGVtYWlsLm5ldD4KK0RhdGU6IFdlZCwgMTMgQXByIDIwMjIgMTQ6NDU6MzMg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gUGRmSW1wb3J0OiBGaXggY29tcGlsZSB3aXRoIG5ld2Vy IHBvcHBsZXIKKworQWxzbyBmaXhlcyBvZGcycGRmIGZpbHRlci4KKworU2FtZSBzb2x1dGlvbiBh cyBjb21taXQgMjM2YmFjYmUxMzczOTQxNGU5MTlkZTg2ODI4M2IwY2FmMmRmNWQ4YQorYnkgYWNj aWRAa2RlLm9yZy4KKy0tLQorIGZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dCAgICB8 IDIgKy0KKyBmaWx0ZXJzL2thcmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAgfCA5ICsrKysrKysr KworIGZpbHRlcnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3BwICB8IDkgKysrKysrKysrCisg MyBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYg LS1naXQgYS9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQgYi9maWx0ZXJzL2thcmJv bi9wZGYvQ01ha2VMaXN0cy50eHQKK2luZGV4IGI3MWM5MmNiZjA0Li40Y2UxMzhjY2RkNiAxMDA2 NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAorKysrIGIvZmlsdGVy cy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CitAQCAtMTMsNiArMTMsNiBAQCBzZXQocGRmMm9k Z19QQVJUX1NSQ1MgUGRmSW1wb3J0RGVidWcuY3BwIFBkZjJPZGdJbXBvcnQuY3BwIFN2Z091dHB1 dERldi5jcHApCisgYWRkX2xpYnJhcnkoY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcgTU9EVUxFICR7 cGRmMm9kZ19QQVJUX1NSQ1N9KQorIGNhbGxpZ3JhX2ZpbHRlcl9kZXNrdG9wX3RvX2pzb24oY2Fs bGlncmFfZmlsdGVyX3BkZjJvZGcgY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcuZGVza3RvcCkKKyAK Ky10YXJnZXRfbGlua19saWJyYXJpZXMoY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcga29wYWdlYXBw IGthcmJvbnVpIFBvcHBsZXI6OkNvcmUpCisrdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGNhbGxpZ3Jh X2ZpbHRlcl9wZGYyb2RnIGtvcGFnZWFwcCBrYXJib251aSBQb3BwbGVyOjpDb3JlIFBvcHBsZXI6 OlF0NSkKKyAKKyBpbnN0YWxsKFRBUkdFVFMgY2FsbGlncmFfZmlsdGVyX3BkZjJvZGcgREVTVElO QVRJT04gJHtQTFVHSU5fSU5TVEFMTF9ESVJ9L2NhbGxpZ3JhL2Zvcm1hdGZpbHRlcnMpCitkaWZm IC0tZ2l0IGEvZmlsdGVycy9rYXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwIGIvZmlsdGVycy9r YXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwCitpbmRleCA5MzRlMzFkZDVhYS4uYTIxZWFjOTdh NzcgMTAwNjQ0CistLS0gYS9maWx0ZXJzL2thcmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAKKysr KyBiL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGYyT2RnSW1wb3J0LmNwcAorQEAgLTI3LDYgKzI3LDgg QEAKKyAKKyAjaW5jbHVkZSA8a3BsdWdpbmZhY3RvcnkuaD4KKyAKKysjaW5jbHVkZSA8cG9wcGxl ci12ZXJzaW9uLmg+CisrCisgLy8gRG9uJ3Qgc2hvdyB0aGlzIHdhcm5pbmc6IGl0J3MgYW4gaXNz dWUgaW4gcG9wcGxlcgorICNpZmRlZiBfX0dOVUNfXworICNwcmFnbWEgR0NDIGRpYWdub3N0aWMg aWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQEAgLTM2LDYgKzM4LDggQEAKKyAjaW5jbHVk ZSA8UERGRG9jLmg+CisgI2luY2x1ZGUgPEdsb2JhbFBhcmFtcy5oPgorIAorKyNkZWZpbmUgUE9Q UExFUl9WRVJTSU9OX01BQ1JPICgoUE9QUExFUl9WRVJTSU9OX01BSk9SIDw8IDE2KSB8IChQT1BQ TEVSX1ZFUlNJT05fTUlOT1IgPDwgOCkgfCAoUE9QUExFUl9WRVJTSU9OX01JQ1JPKSkKKysKKyBL X1BMVUdJTl9GQUNUT1JZX1dJVEhfSlNPTihQZGYyT2RnSW1wb3J0RmFjdG9yeSwgImNhbGxpZ3Jh X2ZpbHRlcl9wZGYyb2RnLmpzb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lz dGVyUGx1Z2luPFBkZjJPZGdJbXBvcnQ+KCk7KQorIAorQEAgLTY5LDggKzczLDEzIEBAIEtvRmls dGVyOjpDb252ZXJzaW9uU3RhdHVzIFBkZjJPZGdJbXBvcnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVB cnJheSYgZnJvbSwgY29uc3QKKyAgICAgaWYgKCEgZ2xvYmFsUGFyYW1zKQorICAgICAgICAgcmV0 dXJuIEtvRmlsdGVyOjpOb3RJbXBsZW1lbnRlZDsKKyAKKysjaWYgUE9QUExFUl9WRVJTSU9OX01B Q1JPIDwgUVRfVkVSU0lPTl9DSEVDSygyMiwgMDMsIDApCisgICAgIEdvb1N0cmluZyAqIGZuYW1l ID0gbmV3IEdvb1N0cmluZyhRRmlsZTo6ZW5jb2RlTmFtZShtX2NoYWluLT5pbnB1dEZpbGUoKSku ZGF0YSgpKTsKKyAgICAgUERGRG9jICogcGRmRG9jID0gbmV3IFBERkRvYyhmbmFtZSwgMCwgMCwg MCk7CisrI2Vsc2UKKysgICAgc3RkOjp1bmlxdWVfcHRyPEdvb1N0cmluZz4gZm5hbWUgPSBzdGQ6 Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4oUUZpbGU6OmVuY29kZU5hbWUobV9jaGFpbi0+aW5wdXRG aWxlKCkpLmRhdGEoKSk7CisrICAgIFBERkRvYyAqIHBkZkRvYyA9IG5ldyBQREZEb2Moc3RkOjpt b3ZlKGZuYW1lKSk7CisrI2VuZGlmCisgICAgIGlmICghIHBkZkRvYykgeworICAgICAgICAgZ2xv YmFsUGFyYW1zLnJlc2V0KCk7CisgICAgICAgICByZXR1cm4gS29GaWx0ZXI6OlN0dXBpZEVycm9y OworZGlmZiAtLWdpdCBhL2ZpbHRlcnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3BwIGIvZmls dGVycy9rYXJib24vcGRmL1N2Z091dHB1dERldi5jcHAKK2luZGV4IDBlNmU1YTkzNGNhLi43Y2Fl YzE1MTc1YSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3Bw CisrKysgYi9maWx0ZXJzL2thcmJvbi9wZGYvU3ZnT3V0cHV0RGV2LmNwcAorQEAgLTIyLDYgKzIy LDEwIEBACisgI2luY2x1ZGUgPFFQZW4+CisgI2luY2x1ZGUgPFFJbWFnZT4KKyAKKysjaW5jbHVk ZSA8cG9wcGxlci12ZXJzaW9uLmg+CisrCisrI2RlZmluZSBQT1BQTEVSX1ZFUlNJT05fTUFDUk8g KChQT1BQTEVSX1ZFUlNJT05fTUFKT1IgPDwgMTYpIHwgKFBPUFBMRVJfVkVSU0lPTl9NSU5PUiA8 PCA4KSB8IChQT1BQTEVSX1ZFUlNJT05fTUlDUk8pKQorKworIGNsYXNzIFN2Z091dHB1dERldjo6 UHJpdmF0ZQorIHsKKyBwdWJsaWM6CitAQCAtMzg2LDcgKzM5MCwxMiBAQCB2b2lkIFN2Z091dHB1 dERldjo6ZHJhd1N0cmluZyhHZnhTdGF0ZSAqIHN0YXRlLCBjb25zdCBHb29TdHJpbmcgKiBzKQor ICAgICBpZiAocy0+Z2V0TGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgIHJldHVybjsKKyAKKysjaWYg UE9QUExFUl9WRVJTSU9OX01BQ1JPIDwgUVRfVkVSU0lPTl9DSEVDSygyMiwgMDMsIDApCisgICAg IEdmeEZvbnQgKiBmb250ID0gc3RhdGUtPmdldEZvbnQoKTsKKysjZWxzZQorKyAgICBzdGQ6OnNo YXJlZF9wdHI8R2Z4Rm9udD4gZm9udCA9IHN0YXRlLT5nZXRGb250KCk7CisrI2VuZGlmCisrCisg CisgICAgIFFTdHJpbmcgc3RyOworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jYWxsaWdyYS90ZW1w bGF0ZSBiL3NyY3BrZ3MvY2FsbGlncmEvdGVtcGxhdGUKaW5kZXggN2MxNDExYmYzZGE2Li42Zjky NGQ2MmY4ZmYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2FsbGlncmEvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9jYWxsaWdyYS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2NhbGxpZ3JhJwogcGtnbmFtZT1jYWxsaWdyYQogdmVyc2lvbj0zLjIuMQotcmV2aXNpb249 NworcmV2aXNpb249OAogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItV25vLWRl diAtRENBTExJR1JBX1NIT1VMRF9CVUlMRF9VTk1BSU5UQUlORUQ9T04KICAtREJVSUxEX1RFU1RJ Tkc9T0ZGIgoKRnJvbSBjNGI3NGJjYTE1M2Y0NWYwNTRjNDhhNWZiNGU4NTAzYTNiNDYyMGU5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVz ZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODozNDowNyAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggNS85XSBpbmtzY2FwZTogcmVidWlsZCBhZ2FpbnN0IGxpYnBv cHBsZXIgMjIuMDYuMAoKLS0tCiAuLi5pYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0 ZXIucGF0Y2ggfCAgNTAgKysrKysrCiAuLi4vRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4xMS4w LnBhdGNoICAgICAgfCAgMjkgKysrKwogLi4uL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIuMDQu cGF0Y2ggICAgICAgIHwgMTQzICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9pbmtzY2FwZS90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDIy MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9pbmtzY2FwZS9wYXRjaGVzL0Vuc3VyZS1jb21wYXRpYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4w My1hbmQtbGF0ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lua3NjYXBlL3Bh dGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4xMS4wLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIu MDQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRW5zdXJlLWNv bXBhdGliaWxpdHktd2l0aC1Qb3BwbGVyLTIyLjAzLWFuZC1sYXRlci5wYXRjaCBiL3NyY3BrZ3Mv aW5rc2NhcGUvcGF0Y2hlcy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMt YW5kLWxhdGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u Mjk3ZWY2Nzc2NjVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVz L0Vuc3VyZS1jb21wYXRpYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0ZXIucGF0Y2gK QEAgLTAsMCArMSw1MCBAQAorRnJvbSBhMThjNTdmZmZmMzEzZmQwOGJjOGE0NGY2YjZiZjBiMDFk N2U5Yjc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbmdlbG9zIEZvdXRyYXMg PGV2YW5nZWxvc0Bmb3V0cmVsaXMuY29tPgorRGF0ZTogU3VuLCAyMCBNYXIgMjAyMiAyMjo0MTo1 MSAtMDMwMAorU3ViamVjdDogW1BBVENIXSBFbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIFBvcHBs ZXIgMjIuMDMgYW5kIGxhdGVyCisKK1RoaXMgY2hhbmdlIGVuc3VyZXMgdGhhdCBJbmtzY2FwZSB3 aWxsIGJ1aWxkIGFnYWluc3QgUG9wcGxlciAyMi4wMyBhZnRlcgordGhlIGNoYW5nZXMgdGhhdCB3 ZXJlIG1hZGUgdG8gdGhlIGNvbnN0cnVjdG9yIG9mIGBQREZEb2NgLgorCitTZWU6IGh0dHBzOi8v Z2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wb3BwbGVyL3BvcHBsZXIvLS9jb21taXQvNGYyYWJkM2Vm CisKK0NvLWF1dGhvcmVkLWJ5OiBSYWZhZWwgU2llamFrb3dza2kgPHJzQHJzLW1hdGgubmV0Pgor LS0tCisgc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtaW5wdXQuY3BwICAgICAg ICAgICAgfCAzICstLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10 cmFuc2l0aW9uLWFwaS5oIHwgNiArKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNpb24vaW50ZXJu YWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5w dXQvcGRmLWlucHV0LmNwcAoraW5kZXggM2RhYmM5NGJhMi4uMDc5YjBkYzcxMyAxMDA2NDQKKy0t LSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcAorKysrIGIv c3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtaW5wdXQuY3BwCitAQCAtNjg4LDgg KzY4OCw3IEBAIFBkZklucHV0OjpvcGVuKDo6SW5rc2NhcGU6OkV4dGVuc2lvbjo6SW5wdXQgKiAv Km1vZCovLCBjb25zdCBnY2hhciAqIHVyaSkgeworIAorICAgICAvLyBwb3BwbGVyIGRvZXMgbm90 IHVzZSBnbGliIGdfb3Blbi4gU28gb24gd2luMzIgd2UgbXVzdCB1c2UgdW5pY29kZSBjYWxsLiBj b2RlIHdhcyBjb3BpZWQgZnJvbQorICAgICAvLyBnbGliIGdzdGRpby5jCistICAgIEdvb1N0cmlu ZyAqZmlsZW5hbWVfZ29vID0gbmV3IEdvb1N0cmluZyh1cmkpOworLSAgICBwZGZfZG9jID0gc3Rk OjptYWtlX3NoYXJlZDxQREZEb2M+KGZpbGVuYW1lX2dvbywgbnVsbHB0ciwgbnVsbHB0ciwgbnVs bHB0cik7ICAgLy8gVE9ETzogQ291bGQgYXNrIGZvciBwYXNzd29yZAorKyAgICBwZGZfZG9jID0g X1BPUFBMRVJfTUFLRV9TSEFSRURfUERGRE9DKHVyaSk7IC8vIFRPRE86IENvdWxkIGFzayBmb3Ig cGFzc3dvcmQKKyAKKyAgICAgaWYgKCFwZGZfZG9jLT5pc09rKCkpIHsKKyAgICAgICAgIGludCBl cnJvciA9IHBkZl9kb2MtPmdldEVycm9yQ29kZSgpOworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oIGIvc3JjL2V4dGVu c2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK2luZGV4IDg3 YTE5ZDRjNDIuLjUwYjYxN2MyNWMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaAorKysrIGIvc3JjL2V4dGVuc2lvbi9p bnRlcm5hbC9wZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK0BAIC0xNCw2ICsxNCwx MiBAQAorIAorICNpbmNsdWRlIDxnbGliL3BvcHBsZXItZmVhdHVyZXMuaD4KKyAKKysjaWYgUE9Q UExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorKyNkZWZpbmUgX1BPUFBMRVJfTUFLRV9TSEFS RURfUERGRE9DKHVyaSkgc3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KHN0ZDo6bWFrZV91bmlxdWU8 R29vU3RyaW5nPih1cmkpKQorKyNlbHNlCisrI2RlZmluZSBfUE9QUExFUl9NQUtFX1NIQVJFRF9Q REZET0ModXJpKSBzdGQ6Om1ha2Vfc2hhcmVkPFBERkRvYz4obmV3IEdvb1N0cmluZyh1cmkpLCBu dWxscHRyLCBudWxscHRyLCBudWxscHRyKQorKyNlbmRpZgorKworICNpZiBQT1BQTEVSX0NIRUNL X1ZFUlNJT04oMCwgODMsIDApCisgI2RlZmluZSBfUE9QUExFUl9DT05TVF84MyBjb25zdAorICNl bHNlCistLSAKK0dpdExhYgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMv Rml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4xMS4wLnBhdGNoIGIvc3JjcGtncy9pbmtzY2FwZS9w YXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVkN2Y0ODAxMjczZAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIxLjEx LjAucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSA1NzI0YzIxYjljYjdiNjE3NmE3YjM2Y2Ey NDA2OGIxNDhjODE3ZTgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbmdlbG9z IEZvdXRyYXMgPGV2YW5nZWxvc0Bmb3V0cmVsaXMuY29tPgorRGF0ZTogTW9uLCAxIE5vdiAyMDIx IDIxOjQ1OjM4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIHBvcHBsZXIg MjEuMTEuMAorCitHZnhGb250Ojp0YWcgaXMgbm93IG9mIHR5cGUgc3RkOjpzdHJpbmcgaW5zdGVh ZCBvZiBHb29TdHJpbmcgKi4KKy0tLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv cGRmLXBhcnNlci5jcHAgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCsp CisKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJz ZXIuY3BwIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcAor aW5kZXggZTNkMDRkNTQ0Yi4uZmVlY2VmYTA0MyAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24v aW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50 ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKK0BAIC0yMTY5LDcgKzIxNjksMTEgQEAgdm9p ZCBQZGZQYXJzZXI6Om9wU2V0Rm9udChPYmplY3QgYXJnc1tdLCBpbnQgLypudW1BcmdzKi8pCisg ICB9CisgICBpZiAocHJpbnRDb21tYW5kcykgeworICAgICBwcmludGYoIiAgZm9udDogdGFnPSVz IG5hbWU9JyVzJyAlZ1xuIiwKKysjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIxLDExLDApCisr CSAgIGZvbnQtPmdldFRhZygpLmNfc3RyKCksCisrI2Vsc2UKKyAJICAgZm9udC0+Z2V0VGFnKCkt PmdldENTdHJpbmcoKSwKKysjZW5kaWYKKyAJICAgZm9udC0+Z2V0TmFtZSgpID8gZm9udC0+Z2V0 TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiPz8/IiwKKyAJICAgYXJnc1sxXS5nZXROdW0oKSk7Cisg ICAgIGZmbHVzaChzdGRvdXQpOworLS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9p bmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIuMDQucGF0Y2ggYi9zcmNw a2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMi4wNC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYxMjA1NDI2OGEzYwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1w b3BwbGVyLTIyLjA0LnBhdGNoCkBAIC0wLDAgKzEsMTQzIEBACitGcm9tIGQ5ODljZGYxMDU5Yzc4 YmMzYmI2NDE0MzMwMjQyMDczNzY4ZDY0MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBSYWZhZWwgU2llamFrb3dza2kgPHJzQHJzLW1hdGgubmV0PgorRGF0ZTogTW9uLCA0IEFwciAy MDIyIDIyOjA5OjM5IC0wMzAwCitTdWJqZWN0OiBbUEFUQ0hdIENvbXBhdGliaWxpdHkgd2l0aCBQ b3BwbGVyIDIyLjA0CisKK1JlcGxhY2UgdmFuaWxsYSBwb2ludGVycyB3aXRoIHN0ZDo6c2hhcmVk X3B0ciBmb3IgcG9pbnRlcnMgdG8gZm9udHM7CitlbGltaW5hdGUgbWFudWFsIHJlZi1jb3VudGlu Zy4KKworRml4ZXMgaHR0cHM6Ly9naXRsYWIuY29tL2lua3NjYXBlL2lua3NjYXBlLy0vaXNzdWVz LzMzODcKKy0tLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5j cHAgICAgIHwgMTQgKysrKysrKystLS0tLS0KKyAuLi4vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxl ci10cmFuc2l0aW9uLWFwaS5oICAgICB8ICA2ICsrKysrKworIHNyYy9leHRlbnNpb24vaW50ZXJu YWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuY3BwICAgIHwgIDcgKy0tLS0tLQorIHNyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuaCAgICAgIHwgIDEgLQorIDQgZmlsZXMg Y2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwIGIvc3JjL2V4 dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcAoraW5kZXggZmVlY2VmYTA0 My4uZDZlMmVkZTRmMyAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5w dXQvcGRmLXBhcnNlci5jcHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv cGRmLXBhcnNlci5jcHAKK0BAIC0zMCw2ICszMCw3IEBACisgI2luY2x1ZGUgIkdmeC5oIgorICNp bmNsdWRlICJwZGYtcGFyc2VyLmgiCisgI2luY2x1ZGUgInV0aWwvdW5pdHMuaCIKKysjaW5jbHVk ZSAicG9wcGxlci10cmFuc2l0aW9uLWFwaS5oIgorIAorICNpbmNsdWRlICJnbGliL3BvcHBsZXIt ZmVhdHVyZXMuaCIKKyAjaW5jbHVkZSAiZ29vL2dtZW0uaCIKK0BAIC0yMTU4LDcgKzIxNTksNyBA QCB2b2lkIFBkZlBhcnNlcjo6b3BTZXRDaGFyU3BhY2luZyhPYmplY3QgYXJnc1tdLCBpbnQgLypu dW1BcmdzKi8pCisgLy8gVE9ETyBub3QgZ29vZCB0aGF0IG51bUFyZ3MgaXMgaWdub3JlZCBidXQg YXJnc1tdIGlzIHVzZWQ6Cisgdm9pZCBQZGZQYXJzZXI6Om9wU2V0Rm9udChPYmplY3QgYXJnc1td LCBpbnQgLypudW1BcmdzKi8pCisgeworLSAgR2Z4Rm9udCAqZm9udCA9IHJlcy0+bG9va3VwRm9u dChhcmdzWzBdLmdldE5hbWUoKSk7CisrICBhdXRvIGZvbnQgPSByZXMtPmxvb2t1cEZvbnQoYXJn c1swXS5nZXROYW1lKCkpOworIAorICAgaWYgKCFmb250KSB7CisgICAgIC8vIHVuc2V0dGluZyB0 aGUgZm9udCAoZHJhd2luZyBubyB0ZXh0KSBpcyBiZXR0ZXIgdGhhbiB1c2luZyB0aGUKK0BAIC0y MTc5LDcgKzIxODAsOSBAQCB2b2lkIFBkZlBhcnNlcjo6b3BTZXRGb250KE9iamVjdCBhcmdzW10s IGludCAvKm51bUFyZ3MqLykKKyAgICAgZmZsdXNoKHN0ZG91dCk7CisgICB9CisgCisrI2lmICFQ T1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDQsIDApCisgICBmb250LT5pbmNSZWZDbnQoKTsKKysj ZW5kaWYKKyAgIHN0YXRlLT5zZXRGb250KGZvbnQsIGFyZ3NbMV0uZ2V0TnVtKCkpOworICAgZm9u dENoYW5nZWQgPSBnVHJ1ZTsKKyB9CitAQCAtMjM3Myw3ICsyMzc2LDYgQEAgdm9pZCBQZGZQYXJz ZXI6OmRvU2hvd1RleHQoY29uc3QgR29vU3RyaW5nICpzKSB7CisgI2Vsc2UKKyB2b2lkIFBkZlBh cnNlcjo6ZG9TaG93VGV4dChHb29TdHJpbmcgKnMpIHsKKyAjZW5kaWYKKy0gIEdmeEZvbnQgKmZv bnQ7CisgICBpbnQgd01vZGU7CisgICBkb3VibGUgcmlzZVgsIHJpc2VZOworICAgQ2hhckNvZGUg Y29kZTsKK0BAIC0yMzkyLDcgKzIzOTQsNyBAQCB2b2lkIFBkZlBhcnNlcjo6ZG9TaG93VGV4dChH b29TdHJpbmcgKnMpIHsKKyAjZW5kaWYKKyAgIGludCBsZW4sIG4sIHVMZW47CisgCistICBmb250 ID0gc3RhdGUtPmdldEZvbnQoKTsKKysgIGF1dG8gZm9udCA9IHN0YXRlLT5nZXRGb250KCk7Cisg ICB3TW9kZSA9IGZvbnQtPmdldFdNb2RlKCk7CisgCisgICBidWlsZGVyLT5iZWdpblN0cmluZyhz dGF0ZSk7CitAQCAtMjQ0NSwxMCArMjQ0NywxMCBAQCB2b2lkIFBkZlBhcnNlcjo6ZG9TaG93VGV4 dChHb29TdHJpbmcgKnMpIHsKKyAgICAgICAvL291dC0+dXBkYXRlQ1RNKHN0YXRlLCAxLCAwLCAw LCAxLCAwLCAwKTsKKyAgICAgICBpZiAoZmFsc2UpeyAvKiFvdXQtPmJlZ2luVHlwZTNDaGFyKHN0 YXRlLCBjdXJYICsgcmlzZVgsIGN1clkgKyByaXNlWSwgdGR4LCB0ZHksCisgCQkJICAgICAgIGNv ZGUsIHUsIHVMZW4pKSB7Ki8KKy0gICAgICAgIF9QT1BQTEVSX0NBTExfQVJHUyhjaGFyUHJvYywg KChHZng4Qml0Rm9udCAqKWZvbnQpLT5nZXRDaGFyUHJvYywgY29kZSk7CistCWlmICgocmVzRGlj dCA9ICgoR2Z4OEJpdEZvbnQgKilmb250KS0+Z2V0UmVzb3VyY2VzKCkpKSB7CisrICAgICAgICBf UE9QUExFUl9DQUxMX0FSR1MoY2hhclByb2MsIF9QT1BQTEVSX0ZPTlRQVFJfVE9fR0ZYOChmb250 KS0+Z2V0Q2hhclByb2MsIGNvZGUpOworKyAgICBpZiAocmVzRGljdCA9IF9QT1BQTEVSX0ZPTlRQ VFJfVE9fR0ZYOChmb250KS0+Z2V0UmVzb3VyY2VzKCkpIHsKKyAJICBwdXNoUmVzb3VyY2VzKHJl c0RpY3QpOworLQl9CisrICAgIH0KKyAJaWYgKGNoYXJQcm9jLmlzU3RyZWFtKCkpIHsKKyAJICAv L3BhcnNlKCZjaGFyUHJvYywgZ0ZhbHNlKTsgLy8gVE9ETzogcGFyc2UgaW50byBTVkcgZm9udAor IAl9IGVsc2UgeworZGlmZiAtLWdpdCBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv cG9wcGxlci10cmFuc2l0aW9uLWFwaS5oIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1 dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKK2luZGV4IDUwYjYxN2MyNWMuLmRjOWU0N2U0NWIg MTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXItdHJh bnNpdGlvbi1hcGkuaAorKysrIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wb3Bw bGVyLXRyYW5zaXRpb24tYXBpLmgKK0BAIC0xNCw2ICsxNCwxMiBAQAorIAorICNpbmNsdWRlIDxn bGliL3BvcHBsZXItZmVhdHVyZXMuaD4KKyAKKysjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIy LCA0LCAwKQorKyNkZWZpbmUgX1BPUFBMRVJfRk9OVFBUUl9UT19HRlg4KGZvbnRfcHRyKSAoKEdm eDhCaXRGb250ICopZm9udF9wdHIuZ2V0KCkpCisrI2Vsc2UKKysjZGVmaW5lIF9QT1BQTEVSX0ZP TlRQVFJfVE9fR0ZYOChmb250X3B0cikgKChHZng4Qml0Rm9udCAqKWZvbnRfcHRyKQorKyNlbmRp ZgorKworICNpZiBQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDMsIDApCisgI2RlZmluZSBfUE9Q UExFUl9NQUtFX1NIQVJFRF9QREZET0ModXJpKSBzdGQ6Om1ha2Vfc2hhcmVkPFBERkRvYz4oc3Rk OjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KHVyaSkpCisgI2Vsc2UKK2RpZmYgLS1naXQgYS9zcmMv ZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmNwcCBiL3NyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuY3BwCitpbmRleCBlZWRlNjY4ODkzLi45 MDFjYzhjZGRiIDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9z dmctYnVpbGRlci5jcHAKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvc3Zn LWJ1aWxkZXIuY3BwCitAQCAtMTA4LDcgKzEwOCw2IEBAIFN2Z0J1aWxkZXI6On5TdmdCdWlsZGVy KCkgPSBkZWZhdWx0OworIAorIHZvaWQgU3ZnQnVpbGRlcjo6X2luaXQoKSB7CisgICAgIF9mb250 X3N0eWxlID0gbnVsbHB0cjsKKy0gICAgX2N1cnJlbnRfZm9udCA9IG51bGxwdHI7CisgICAgIF9m b250X3NwZWNpZmljYXRpb24gPSBudWxscHRyOworICAgICBfZm9udF9zY2FsaW5nID0gMTsKKyAg ICAgX25lZWRfZm9udF91cGRhdGUgPSB0cnVlOworQEAgLTEwNjQsMTEgKzEwNjMsOCBAQCB2b2lk IFN2Z0J1aWxkZXI6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKSB7CisgICAgIF9uZWVkX2Zv bnRfdXBkYXRlID0gZmFsc2U7CisgICAgIHVwZGF0ZVRleHRNYXRyaXgoc3RhdGUpOyAgICAvLyBF bnN1cmUgdGhhdCB3ZSBoYXZlIGEgdGV4dCBtYXRyaXggYnVpbHQKKyAKKy0gICAgaWYgKF9mb250 X3N0eWxlKSB7CistICAgICAgICAvL3NwX3JlcHJfY3NzX2F0dHJfdW5yZWYoX2ZvbnRfc3R5bGUp OworLSAgICB9CisgICAgIF9mb250X3N0eWxlID0gc3BfcmVwcl9jc3NfYXR0cl9uZXcoKTsKKy0g ICAgR2Z4Rm9udCAqZm9udCA9IHN0YXRlLT5nZXRGb250KCk7CisrICAgIGF1dG8gZm9udCA9IHN0 YXRlLT5nZXRGb250KCk7CisgICAgIC8vIFN0b3JlIG9yaWdpbmFsIG5hbWUKKyAgICAgaWYgKGZv bnQtPmdldE5hbWUoKSkgeworICAgICAgICAgX2ZvbnRfc3BlY2lmaWNhdGlvbiA9IGZvbnQtPmdl dE5hbWUoKS0+Z2V0Q1N0cmluZygpOworQEAgLTEyMTMsNyArMTIwOSw2IEBAIHZvaWQgU3ZnQnVp bGRlcjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpIHsKKyAgICAgICAgIHNwX3JlcHJfY3Nz X3NldF9wcm9wZXJ0eShfZm9udF9zdHlsZSwgIndyaXRpbmctbW9kZSIsICJ0YiIpOworICAgICB9 CisgCistICAgIF9jdXJyZW50X2ZvbnQgPSBmb250OworICAgICBfaW52YWxpZGF0ZWRfc3R5bGUg PSB0cnVlOworIH0KKyAKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlu cHV0L3N2Zy1idWlsZGVyLmggYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1i dWlsZGVyLmgKK2luZGV4IGZiNGU2NGZhMTkuLmU5MWZlYmQ3MTcgMTAwNjQ0CistLS0gYS9zcmMv ZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmgKKysrKyBiL3NyYy9leHRl bnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIuaAorQEAgLTIwNCw3ICsyMDQsNiBA QCBwcml2YXRlOgorICAgICBzdGQ6OnZlY3RvcjxTdmdHcmFwaGljc1N0YXRlPiBfc3RhdGVfc3Rh Y2s7CisgCisgICAgIFNQQ1NTQXR0ciAqX2ZvbnRfc3R5bGU7ICAgICAgICAgIC8vIEN1cnJlbnQg Zm9udCBzdHlsZQorLSAgICBHZnhGb250ICpfY3VycmVudF9mb250OworICAgICBjb25zdCBjaGFy ICpfZm9udF9zcGVjaWZpY2F0aW9uOworICAgICBkb3VibGUgX2ZvbnRfc2NhbGluZzsKKyAgICAg Ym9vbCBfbmVlZF9mb250X3VwZGF0ZTsKKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvaW5rc2NhcGUvdGVtcGxhdGUgYi9zcmNwa2dzL2lua3NjYXBlL3RlbXBsYXRlCmluZGV4IDQ1 ZjQ4Y2NkYTBkYy4uNGQ5MDJlNjYzZjczIDEwMDY0NAotLS0gYS9zcmNwa2dzL2lua3NjYXBlL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvaW5rc2NhcGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdpbmtzY2FwZScKIHBrZ25hbWU9aW5rc2NhcGUKIHZlcnNpb249 MS4xLjEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIHdya3NyYz0iaW5rc2NhcGUtJHt2ZXJzaW9u fV8yMDIxLTA5LTIwXzNiZjVhZTBkMjUiCiBidWlsZF9zdHlsZT1jbWFrZQogIyBidWlsZHMgZXhl Y3V0YWJsZXMgdGhlbiBydW5zIGNoZWNrcwoKRnJvbSBmZmY5MzljOWM0YjUzOGJkOGNiNDc1MWJm Y2RkMmNhZmRlOTRiY2Y2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwz MTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBN YXIgMjAyMiAxODozNDo0MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNi85XSBpcGU6IHJlYnVpbGQg YWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA2LjAKCi0tLQogc3JjcGtncy9pcGUvcGF0Y2hlcy9wb3Bw bGVyLTIyLjAzLjAtZml4LnBhdGNoIHwgMzMgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9p cGUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hh bmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaCBiL3NyY3Br Z3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRmMjg5NDgwOWMxYwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApAQCAtMCwwICsx LDMzIEBACitkaWZmIC1OYXVyIHBkZnRvaXBlLmNwcC5vcmlnIHBkZnRvaXBlLmNwcAorLS0tIGEv aXBlLXRvb2xzL3BkZnRvaXBlL3BkZnRvaXBlLmNwcC5vcmlnCisrKysgYi9pcGUtdG9vbHMvcGRm dG9pcGUvcGRmdG9pcGUuY3BwCitAQCAtODQsMjIgKzg0LDIwIEBACisgICBpZiAocXVpZXQpCisg ICAgIGdsb2JhbFBhcmFtcy0+c2V0RXJyUXVpZXQocXVpZXQpOworIAorLSAgR29vU3RyaW5nICpv d25lclBXLCAqdXNlclBXOworKyAgc3RkOjpvcHRpb25hbDxHb29TdHJpbmc+IG93bmVyUFcsIHVz ZXJQVzsKKyAgIGlmIChvd25lclBhc3N3b3JkWzBdKSB7CistICAgIG93bmVyUFcgPSBuZXcgR29v U3RyaW5nKG93bmVyUGFzc3dvcmQpOworKyAgICBvd25lclBXID0gR29vU3RyaW5nKG93bmVyUGFz c3dvcmQpOworICAgfSBlbHNlIHsKKy0gICAgb3duZXJQVyA9IDA7CisrICAgIG93bmVyUFcgPSBz dGQ6Om51bGxvcHQ7CisgICB9CisgICBpZiAodXNlclBhc3N3b3JkWzBdKSB7CistICAgIHVzZXJQ VyA9IG5ldyBHb29TdHJpbmcodXNlclBhc3N3b3JkKTsKKysgICAgdXNlclBXID0gR29vU3RyaW5n KHVzZXJQYXNzd29yZCk7CisgICB9IGVsc2UgeworLSAgICB1c2VyUFcgPSAwOworKyAgICB1c2Vy UFcgPSBzdGQ6Om51bGxvcHQ7CisgICB9CisgCisgICAvLyBvcGVuIFBERiBmaWxlCistICBQREZE b2MgKmRvYyA9IG5ldyBQREZEb2MoZmlsZU5hbWUsIG93bmVyUFcsIHVzZXJQVyk7CistICBkZWxl dGUgdXNlclBXOworLSAgZGVsZXRlIG93bmVyUFc7CisrICBQREZEb2MgKmRvYyA9IG5ldyBQREZE b2Moc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZpbGVOYW1lKSwgb3duZXJQVywgdXNlclBX KTsKKyAKKyAgIGlmICghZG9jLT5pc09rKCkpCisgICAgIHJldHVybiAxOworCmRpZmYgLS1naXQg YS9zcmNwa2dzL2lwZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXBlL3RlbXBsYXRlCmluZGV4IGE4NGQ1 YzAzNmIyZi4uNzIzOThlN2ZmOTI0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2lwZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2lwZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2lwZScKIHBrZ25hbWU9aXBlCiB2ZXJzaW9uPTcuMi4yNAotcmV2aXNpb249NgorcmV2 aXNpb249NwogX3Rvb2xzX2NvbW1pdD12Ny4yLjIwLjEKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyBkb3h5Z2VuIHF0NS1xbWFrZSBxdDUtdG9vbHMgcXQ1LWhvc3QtdG9vbHMiCiBtYWtlZGVw ZW5kcz0iY2Fpcm8tZGV2ZWwgZ3NsLWRldmVsIGxpYmN1cmwtZGV2ZWwgbGlianBlZy10dXJiby1k ZXZlbAoKRnJvbSAxOTJkOGIwNTU3ZTVjYmRlMzIwNDI3NzE2OWUxOGVmYWJhYTFkOGU4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODozNTozMCAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggNy85XSBraXRpbmVyYXJ5OiByZWJ1aWxkIGFnYWluc3QgbGlicG9w cGxlciAyMi4wNi4wCgotLS0KIHNyY3BrZ3Mva2l0aW5lcmFyeS90ZW1wbGF0ZSB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mva2l0aW5lcmFyeS90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2l0aW5lcmFyeS90ZW1wbGF0 ZQppbmRleCAzNDNlZjY0OTExZDYuLmEyY2ZjYWExNzhiNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9r aXRpbmVyYXJ5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva2l0aW5lcmFyeS90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tpdGluZXJhcnknCiBwa2duYW1lPWtp dGluZXJhcnkKIHZlcnNpb249MjIuMDQuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf c3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iZXh0cmEtY21ha2UtbW9kdWxlcyBnZXR0ZXh0 IGtjb3JlYWRkb25zIHBrZy1jb25maWcgcXQ1LWhvc3QtdG9vbHMgcXQ1LXFtYWtlIHF0NS10b29s cy1kZXZlbCIKIG1ha2VkZXBlbmRzPSJrY2FsZW5kYXJjb3JlLWRldmVsIGtjb250YWN0cy1kZXZl bCBrZGVjbGFyYXRpdmUtZGV2ZWwga21pbWUtZGV2ZWwKCkZyb20gNThmMzBmMzliM2M5MGFkMzkw YTg5MzBjYTUzMDhjZDA4MmFhMDI1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3Jl bzYzOSA8MzE5MTYzNzkrT3JlbzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IEZy aSwgMjUgTWFyIDIwMjIgMTg6MzY6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIIDgvOV0gc2NyaWJ1 czogcmVidWlsZCBhZ2FpbnN0IGxpYnBvcHBsZXIgMjIuMDYuMAoKLS0tCiAuLi4vcGF0Y2hlcy8w MDAxLXBvcHBsZXItMjIuMDIuMC1maXgucGF0Y2ggICAgfCAxMjkgKysrKysrKysKIC4uLi9wYXRj aGVzLzAwMDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaCAgICB8ICA1MiArKysrCiAuLi4vcGF0 Y2hlcy8wMDAzLXBvcHBsZXItMjIuMDQuMC1maXgucGF0Y2ggICAgfCAyODggKysrKysrKysrKysr KysrKysrCiBzcmNwa2dzL3NjcmlidXMvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNDcwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAxLXBvcHBsZXIt MjIuMDIuMC1maXgucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NjcmlidXMvcGF0 Y2hlcy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAzLXBvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAxLXBvcHBsZXItMjIuMDIuMC1m aXgucGF0Y2ggYi9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAxLXBvcHBsZXItMjIuMDIuMC1m aXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40ZTBmNjA3 YzZhMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAxLXBv cHBsZXItMjIuMDIuMC1maXgucGF0Y2gKQEAgLTAsMCArMSwxMjkgQEAKK0Zyb20gODVjMGRmZjM0 MjJmYTNjMjZmYmMyZThkODU2MWY1OTdlYzI0YmQ5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IEplYW4gR2hhbGkgPGpnaGFsaUBsaWJlcnR5c3VyZi5mcj4KK0RhdGU6IFdlZCwgMiBG ZWIgMjAyMiAyMzoxMjo1MiArMDAwMAorU3ViamVjdDogW1BBVENIXSAjMTY3MzQ6IEJ1aWxkIGJy ZWFrIHdpdGggcG9wcGxlciAyMi4yLjAKKworZ2l0LXN2bi1pZDogc3ZuOi8vc2NyaWJ1cy5uZXQv dHJ1bmsvU2NyaWJ1c0AyNDg4NCAxMWQyMDcwMS04NDMxLTA0MTAtYTcxMS1lM2M5NTllM2I4NzAK Ky0tLQorIHNjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAgfCA0NyArKysr KysrKysrKysrKysrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwg MTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3Bk Zi9zbGFvdXRwdXQuY3BwIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNw cAoraW5kZXggNTg5NGJmMmFkNi4uMzY1MGM5NmY1MiAxMDA2NDQKKy0tLSBhL3NjcmlidXMvcGx1 Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKKysrKyBiL3NjcmlidXMvcGx1Z2lucy9pbXBv cnQvcGRmL3NsYW91dHB1dC5jcHAKK0BAIC03LDYgKzcsMTEgQEAgZm9yIHdoaWNoIGEgbmV3IGxp Y2Vuc2UgKEdQTCtleGNlcHRpb24pIGlzIGluIHBsYWNlLgorIA0KKyAjaW5jbHVkZSAic2xhb3V0 cHV0LmgiDQorIA0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJT SU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrI2luY2x1ZGUgPG1lbW9yeT4NCisrI2luY2x1ZGUgPG9w dGlvbmFsPg0KKysjZW5kaWYNCisrDQorICNpbmNsdWRlIDxwb3BwbGVyL0dsb2JhbFBhcmFtcy5o Pg0KKyAjaW5jbHVkZSA8cG9wcGxlci9wb3BwbGVyLWNvbmZpZy5oPg0KKyAjaW5jbHVkZSA8cG9w cGxlci9GaWxlU3BlYy5oPg0KK0BAIC0zMDI3LDE4ICszMDMyLDI0IEBAIHZvaWQgU2xhT3V0cHV0 RGV2OjptYXJrUG9pbnQoUE9QUExFUl9DT05TVCBjaGFyICpuYW1lLCBEaWN0ICpwcm9wZXJ0aWVz KQorIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkNCisgew0K KyAJR2Z4Rm9udCAqZ2Z4Rm9udDsNCistCUdmeEZvbnRMb2MgKmZvbnRMb2M7DQorKyNpZiBQT1BQ TEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0K KysJc3RkOjpvcHRpb25hbDxHZnhGb250TG9jPiBmb250TG9jOw0KKysJY29uc3QgR29vU3RyaW5n ICogZmlsZU5hbWUgPSBudWxscHRyOw0KKysJc3RkOjp1bmlxdWVfcHRyPEZvRmlUcnVlVHlwZT4g ZmY7DQorKyNlbHNlDQorKwlHZnhGb250TG9jICogZm9udExvYyA9IG51bGxwdHI7DQorKwlHb29T dHJpbmcgKiBmaWxlTmFtZSA9IG51bGxwdHI7DQorKwlGb0ZpVHJ1ZVR5cGUgKiBmZiA9IG51bGxw dHI7DQorKyNlbmRpZg0KKyAJR2Z4Rm9udFR5cGUgZm9udFR5cGU7DQorIAlTbGFPdXRGb250Rmls ZUlEICppZDsNCisgCVNwbGFzaEZvbnRGaWxlICpmb250RmlsZTsNCisgCVNwbGFzaEZvbnRTcmMg KmZvbnRzcmMgPSBudWxscHRyOw0KKy0JRm9GaVRydWVUeXBlICpmZjsNCisgCU9iamVjdCByZWZP YmosIHN0ck9iajsNCistCUdvb1N0cmluZyAqZmlsZU5hbWU7DQorLQljaGFyICp0bXBCdWY7DQor KwljaGFyICp0bXBCdWYgPSBudWxscHRyOw0KKyAJaW50IHRtcEJ1ZkxlbiA9IDA7DQorLQlpbnQg KmNvZGVUb0dJRDsNCistCWNvbnN0IGRvdWJsZSAqdGV4dE1hdDsNCisrCWludCAqY29kZVRvR0lE ID0gbnVsbHB0cjsNCisrCWNvbnN0IGRvdWJsZSAqdGV4dE1hdCA9IG51bGxwdHI7DQorIAlkb3Vi bGUgbTExLCBtMTIsIG0yMSwgbTIyLCBmb250U2l6ZTsNCisgCVNwbGFzaENvb3JkIG1hdFs0XTsN CisgCWludCBuID0gMDsNCitAQCAtMzA0Niw5ICszMDU3LDYgQEAgdm9pZCBTbGFPdXRwdXREZXY6 OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAlTcGxhc2hDb29yZCBtYXRyaXhbNl07DQor IA0KKyAJbV9mb250ID0gbnVsbHB0cjsNCistCWZpbGVOYW1lID0gbnVsbHB0cjsNCistCXRtcEJ1 ZiA9IG51bGxwdHI7DQorLQlmb250TG9jID0gbnVsbHB0cjsNCisgDQorIAlnZnhGb250ID0gc3Rh dGUtPmdldEZvbnQoKTsNCisgCWlmICghZ2Z4Rm9udCkNCitAQCAtMzA4Myw3ICszMDkxLDExIEBA IHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCX0NCisg CQllbHNlDQorIAkJeyAvLyBnZnhGb250TG9jRXh0ZXJuYWwNCisrI2lmIFBPUFBMRVJfRU5DT0RF RF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKwkJCWZpbGVO YW1lID0gZm9udExvYy0+cGF0aEFzR29vU3RyaW5nKCk7DQorKyNlbHNlDQorIAkJCWZpbGVOYW1l ID0gZm9udExvYy0+cGF0aDsNCisrI2VuZGlmDQorIAkJCWZvbnRUeXBlID0gZm9udExvYy0+Zm9u dFR5cGU7DQorIAkJfQ0KKyANCitAQCAtMzEzNiw5ICszMTQ4LDE0IEBAIHZvaWQgU2xhT3V0cHV0 RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6 Om1ha2UodG1wQnVmLCB0bXBCdWZMZW4pOw0KKyAJCQlpZiAoZmYpDQorIAkJCXsNCisrI2lmIFBP UFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDAp DQorKwkJCQljb2RlVG9HSUQgPSAoKEdmeDhCaXRGb250KikgZ2Z4Rm9udCktPmdldENvZGVUb0dJ RE1hcChmZi5nZXQoKSk7DQorKwkJCQlmZi5yZXNldCgpOw0KKysjZWxzZQ0KKyAJCQkJY29kZVRv R0lEID0gKChHZng4Qml0Rm9udCAqKWdmeEZvbnQpLT5nZXRDb2RlVG9HSURNYXAoZmYpOw0KKy0J CQkJbiA9IDI1NjsNCisgCQkJCWRlbGV0ZSBmZjsNCisrI2VuZGlmDQorKwkJCQluID0gMjU2Ow0K KyAJCQl9DQorIAkJCWVsc2UNCisgCQkJew0KK0BAIC0zMjA5LDggKzMyMjYsMTMgQEAgdm9pZCBT bGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCQkJZmYgPSBGb0Zp VHJ1ZVR5cGU6Om1ha2UodG1wQnVmLCB0bXBCdWZMZW4pOw0KKyAJCQkJaWYgKCEgZmYpDQorIAkJ CQkJZ290byBlcnIyOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9W RVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrCQkJCWNvZGVUb0dJRCA9ICgoR2Z4Q0lERm9udCop IGdmeEZvbnQpLT5nZXRDb2RlVG9HSURNYXAoZmYuZ2V0KCksICZuKTsNCisrCQkJCWZmLnJlc2V0 KCk7DQorKyNlbHNlDQorIAkJCQljb2RlVG9HSUQgPSAoKEdmeENJREZvbnQgKilnZnhGb250KS0+ Z2V0Q29kZVRvR0lETWFwKGZmLCAmbik7DQorIAkJCQlkZWxldGUgZmY7DQorKyNlbmRpZg0KKyAJ CQl9DQorIAkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250 KA0KKyAJCQkJCQkJaWQsDQorQEAgLTMyNDcsMTQgKzMyNjksMTkgQEAgdm9pZCBTbGFPdXRwdXRE ZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAltYXRbM10gPSAtbTIyOw0KKyAJbV9m b250ID0gbV9mb250RW5naW5lLT5nZXRGb250KGZvbnRGaWxlLCBtYXQsIG1hdHJpeCk7DQorIA0K KysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPCBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIy LCAyLCAwKQ0KKyAJZGVsZXRlIGZvbnRMb2M7DQorKyNlbmRpZg0KKyAJaWYgKGZvbnRzcmMgJiYg IWZvbnRzcmMtPmlzRmlsZSkNCisgCQlmb250c3JjLT51bnJlZigpOw0KKyAJcmV0dXJuOw0KKyAN CisgZXJyMjoNCisgCWRlbGV0ZSBpZDsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OIDwg UE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisgCWRlbGV0ZSBmb250TG9jOw0KKysj ZW5kaWYNCisrDQorIGVycjE6DQorIAlpZiAoZm9udHNyYyAmJiAhZm9udHNyYy0+aXNGaWxlKQ0K KyAJCWZvbnRzcmMtPnVucmVmKCk7DQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zY3JpYnVzL3BhdGNo ZXMvMDAwMi1wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoIGIvc3JjcGtncy9zY3JpYnVzL3BhdGNo ZXMvMDAwMi1wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZjdhMGMwM2ZkZDk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9zY3JpYnVzL3BhdGNoZXMvMDAwMi1wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCkBAIC0wLDAg KzEsNTIgQEAKK0Zyb20gZjE5NDEwYWMzYjI3ZTMzZGQ2MjEwNTc0Njc4NGU2MWU4NWI5MGExZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEplYW4gR2hhbGkgPGpnaGFsaUBsaWJlcnR5 c3VyZi5mcj4KK0RhdGU6IFdlZCwgMiBNYXIgMjAyMiAyMjoyMjo1MyArMDAwMAorU3ViamVjdDog W1BBVENIXSAjMTY3NjQ6IEJ1aWxkIGJyZWFrIHdpdGggcG9wcGxlciAyMi4wMy4wCisKK2dpdC1z dm4taWQ6IHN2bjovL3NjcmlidXMubmV0L3RydW5rL1NjcmlidXNAMjQ5ODIgMTFkMjA3MDEtODQz MS0wNDEwLWE3MTEtZTNjOTU5ZTNiODcwCistLS0KKyBzY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3Bk Zi9pbXBvcnRwZGYuY3BwIHwgMTMgKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMyBp bnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9p bXBvcnRwZGYuY3BwIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvaW1wb3J0cGRmLmNwcAor aW5kZXggMTU0ZTU4YTNmMC4uMzkyZGNkOWU2NCAxMDA2NDQKKy0tLSBhL3NjcmlidXMvcGx1Z2lu cy9pbXBvcnQvcGRmL2ltcG9ydHBkZi5jcHAKKysrKyBiL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQv cGRmL2ltcG9ydHBkZi5jcHAKK0BAIC04OSw3ICs4OSwxMSBAQCBRSW1hZ2UgUGRmUGx1Zzo6cmVh ZFRodW1ibmFpbChjb25zdCBRU3RyaW5nJiBmTmFtZSkKKyAjZW5kaWYNCisgCWdsb2JhbFBhcmFt cy0+c2V0RXJyUXVpZXQoZ1RydWUpOw0KKyANCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9O ID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDMsIDApDQorKwlQREZEb2MgcGRmRG9jeyBz dGQ6Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4oZm5hbWUpIH07DQorKyNlbHNlDQorIAlQREZEb2Mg cGRmRG9je2ZuYW1lLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyfTsNCisrI2VuZGlmDQorIAlp ZiAoIXBkZkRvYy5pc09rKCkgfHwgcGRmRG9jLmdldEVycm9yQ29kZSgpID09IGVyckVuY3J5cHRl ZCkNCisgCQlyZXR1cm4gUUltYWdlKCk7DQorIA0KK0BAIC0zNDIsNyArMzQ2LDExIEBAIGJvb2wg UGRmUGx1Zzo6Y29udmVydChjb25zdCBRU3RyaW5nJiBmbikKKyAJZ2xvYmFsUGFyYW1zLT5zZXRF cnJRdWlldChnVHJ1ZSk7DQorIC8vCWdsb2JhbFBhcmFtcy0+c2V0UHJpbnRDb21tYW5kcyhnVHJ1 ZSk7DQorIAlRTGlzdDxPcHRpb25hbENvbnRlbnRHcm91cCo+IG9jZ0dyb3VwczsNCisrI2lmIFBP UFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDMsIDAp DQorKwlhdXRvIHBkZkRvYyA9IHN0ZDo6bWFrZV91bmlxdWU8UERGRG9jPihzdGQ6Om1ha2VfdW5p cXVlPEdvb1N0cmluZz4oZm5hbWUpKTsNCisrI2Vsc2UNCisgCWF1dG8gcGRmRG9jID0gc3RkOjp1 bmlxdWVfcHRyPFBERkRvYz4obmV3IFBERkRvYyhmbmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs bHB0cikpOw0KKysjZW5kaWYNCisgCWlmIChwZGZEb2MpDQorIAl7DQorIAkJaWYgKHBkZkRvYy0+ Z2V0RXJyb3JDb2RlKCkgPT0gZXJyRW5jcnlwdGVkKQ0KK0BAIC0zNjEsOCArMzY5LDEzIEBAIGJv b2wgUGRmUGx1Zzo6Y29udmVydChjb25zdCBRU3RyaW5nJiBmbikKKyAjZWxzZQ0KKyAJCQkJYXV0 byBmbmFtZSA9IG5ldyBHb29TdHJpbmcoUUZpbGU6OmVuY29kZU5hbWUoZm4pLmRhdGEoKSk7DQor ICNlbmRpZg0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9O X0VOQ09ERSgyMiwgMywgMCkNCisrCQkJCXN0ZDo6b3B0aW9uYWw8R29vU3RyaW5nPiB1c2VyUFco c3RkOjppbl9wbGFjZSwgdGV4dC50b0xvY2FsOEJpdCgpLmRhdGEoKSk7DQorKwkJCQlwZGZEb2Mu cmVzZXQobmV3IFBERkRvYyhzdGQ6Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4oZm5hbWUpLCB1c2Vy UFcsIHVzZXJQVywgbnVsbHB0cikpOw0KKysjZWxzZQ0KKyAJCQkJYXV0byB1c2VyUFcgPSBuZXcg R29vU3RyaW5nKHRleHQudG9Mb2NhbDhCaXQoKS5kYXRhKCkpOw0KKyAJCQkJcGRmRG9jLnJlc2V0 KG5ldyBQREZEb2MoZm5hbWUsIHVzZXJQVywgdXNlclBXLCBudWxscHRyKSk7DQorKyNlbmRpZg0K KyAJCQkJcUFwcC0+Y2hhbmdlT3ZlcnJpZGVDdXJzb3IoUUN1cnNvcihRdDo6V2FpdEN1cnNvcikp Ow0KKyAJCQl9DQorIAkJCWlmICgoIXBkZkRvYykgfHwgKHBkZkRvYy0+Z2V0RXJyb3JDb2RlKCkg IT0gZXJyTm9uZSkpDQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMy1w b3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoIGIvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMy1w b3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uZTE1ZWM3ZDgxMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zY3JpYnVz L3BhdGNoZXMvMDAwMy1wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoCkBAIC0wLDAgKzEsMjg4IEBA CitGcm9tIGYyMjM3YjhmMGI1Y2Y3NjkwZTg2NGEyMmVmN2E2M2E2ZDc2OWZhMzYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBKZWFuIEdoYWxpIDxqZ2hhbGlAbGliZXJ0eXN1cmYuZnI+ CitEYXRlOiBGcmksIDEgQXByIDIwMjIgMjM6NTI6MzIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0g Rml4IGJ1aWxkIHdpdGggcG9wcGxlciAyMi4wNC4wCisKK2dpdC1zdm4taWQ6IHN2bjovL3Njcmli dXMubmV0L3RydW5rL1NjcmlidXNAMjUwNzQgMTFkMjA3MDEtODQzMS0wNDEwLWE3MTEtZTNjOTU5 ZTNiODcwCistLS0KKyBzY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwIHwg MTIzICsrKysrKysrKysrKysrLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDc4IGluc2VydGlv bnMoKyksIDQ1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2NyaWJ1cy9wbHVnaW5zL2lt cG9ydC9wZGYvc2xhb3V0cHV0LmNwcCBiL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91 dHB1dC5jcHAKK2luZGV4IGUyMGE4MWY5OWUuLjU2MjZmZTM0NzcgMTAwNjQ0CistLS0gYS9zY3Jp YnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCisrKysgYi9zY3JpYnVzL3BsdWdp bnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCitAQCAtMTc0LDggKzE3NCwxMyBAQCB2b2lkIEFu b091dHB1dERldjo6ZHJhd1N0cmluZyhHZnhTdGF0ZSAqc3RhdGUsIFBPUFBMRVJfQ09OU1QgR29v U3RyaW5nICpzKQorIAlpbnQgc2hhZGUgPSAxMDA7DQorIAljdXJyQ29sb3JUZXh0ID0gZ2V0Q29s b3Ioc3RhdGUtPmdldEZpbGxDb2xvclNwYWNlKCksIHN0YXRlLT5nZXRGaWxsQ29sb3IoKSwgJnNo YWRlKTsNCisgCWZvbnRTaXplID0gc3RhdGUtPmdldEZvbnRTaXplKCk7DQorKyNpZiBQT1BQTEVS X0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJ aWYgKHN0YXRlLT5nZXRGb250KCkgJiYgc3RhdGUtPmdldEZvbnQoKS0+Z2V0TmFtZSgpKQ0KKysJ CWZvbnROYW1lID0gbmV3IEdvb1N0cmluZyhzdGF0ZS0+Z2V0Rm9udCgpLT5nZXROYW1lKCkudmFs dWUoKSk7DQorKyNlbHNlDQorIAlpZiAoc3RhdGUtPmdldEZvbnQoKSkNCisgCQlmb250TmFtZSA9 IHN0YXRlLT5nZXRGb250KCktPmdldE5hbWUoKS0+Y29weSgpOw0KKysjZW5kaWYNCisgCWl0ZW1U ZXh0ID0gcy0+Y29weSgpOw0KKyB9DQorIA0KK0BAIC0zNTcsNyArMzYyLDEyIEBAIHN0ZDo6dW5p cXVlX3B0cjxMaW5rQWN0aW9uPiBTbGFPdXRwdXREZXY6OlNDX2dldEFkZGl0aW9uYWxBY3Rpb24o Y29uc3QgY2hhciAqa2V5CisgR0Jvb2wgU2xhT3V0cHV0RGV2Ojphbm5vdGF0aW9uc19jYWxsYmFj ayhBbm5vdCAqYW5ub3RhLCB2b2lkICp1c2VyX2RhdGEpDQorIHsNCisgCVNsYU91dHB1dERldiAq ZGV2ID0gKFNsYU91dHB1dERldiopdXNlcl9kYXRhOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZF UlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCWNvbnN0IFBERlJl Y3RhbmdsZSYgYW5ub3RSZWN0ID0gYW5ub3RhLT5nZXRSZWN0KCk7Ow0KKysJY29uc3QgUERGUmVj dGFuZ2xlKiBib3ggPSAmYW5ub3RSZWN0Ow0KKysjZWxzZQ0KKyAJUERGUmVjdGFuZ2xlICpib3gg PSBhbm5vdGEtPmdldFJlY3QoKTsNCisrI2VuZGlmDQorIAlkb3VibGUgeENvb3IgPSBkZXYtPm1f ZG9jLT5jdXJyZW50UGFnZSgpLT54T2Zmc2V0KCkgKyBib3gtPngxIC0gZGV2LT5jcm9wT2Zmc2V0 WDsNCisgCWRvdWJsZSB5Q29vciA9IGRldi0+bV9kb2MtPmN1cnJlbnRQYWdlKCktPnlPZmZzZXQo KSArIGRldi0+bV9kb2MtPmN1cnJlbnRQYWdlKCktPmhlaWdodCgpIC0gYm94LT55MiArIGRldi0+ Y3JvcE9mZnNldFk7DQorIAlkb3VibGUgd2lkdGggPSBib3gtPngyIC0gYm94LT54MTsNCitAQCAt Njg0LDcgKzY5NCwxMiBAQCBib29sIFNsYU91dHB1dERldjo6aGFuZGxlV2lkZ2V0QW5ub3QoQW5u b3QqIGFubm90YSwgZG91YmxlIHhDb29yLCBkb3VibGUgeUNvb3IsCisgCQkJaWYgKGFwYSB8fCAh YWNoYXIpDQorIAkJCXsNCisgCQkJCUFub091dHB1dERldiAqYW5ub3RPdXREZXYgPSBuZXcgQW5v T3V0cHV0RGV2KG1fZG9jLCBtX2ltcG9ydGVkQ29sb3JzKTsNCisrI2lmIFBPUFBMRVJfRU5DT0RF RF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwkJCQljb25z dCBQREZSZWN0YW5nbGUmIGFubm90YVJlY3QgPSBhbm5vdGEtPmdldFJlY3QoKTsNCisrCQkJCUdm eCogZ2Z4ID0gbmV3IEdmeChwZGZEb2MsIGFubm90T3V0RGV2LCBwZGZEb2MtPmdldFBhZ2UobV9h Y3RQYWdlKS0+Z2V0UmVzb3VyY2VEaWN0KCksICZhbm5vdGFSZWN0LCBudWxscHRyKTsNCisrI2Vs c2UNCisgCQkJCUdmeCAqZ2Z4ID0gbmV3IEdmeChwZGZEb2MsIGFubm90T3V0RGV2LCBwZGZEb2Mt PmdldFBhZ2UobV9hY3RQYWdlKS0+Z2V0UmVzb3VyY2VEaWN0KCksIGFubm90YS0+Z2V0UmVjdCgp LCBudWxscHRyKTsNCisrI2VuZGlmDQorIAkJCQlhbm8tPmRyYXcoZ2Z4LCBmYWxzZSk7DQorIAkJ CQlpZiAoIWJnRm91bmQpDQorIAkJCQkJbV9jdXJyQ29sb3JGaWxsID0gYW5ub3RPdXREZXYtPmN1 cnJDb2xvckZpbGw7DQorQEAgLTI5MTYsMjIgKzI5MzEsMjcgQEAgdm9pZCBTbGFPdXRwdXREZXY6 Om1hcmtQb2ludChQT1BQTEVSX0NPTlNUIGNoYXIgKm5hbWUsIERpY3QgKnByb3BlcnRpZXMpCisg DQorIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkNCisgew0K Ky0JR2Z4Rm9udCAqZ2Z4Rm9udDsNCistI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBP UFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVS U0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJc3RkOjpvcHRpb25h bDxHZnhGb250TG9jPiBmb250TG9jOw0KKysJc3RkOjpzdHJpbmcgZmlsZU5hbWU7DQorKwlzdGQ6 OnVuaXF1ZV9wdHI8Rm9GaVRydWVUeXBlPiBmZjsNCisrCXN0ZDo6b3B0aW9uYWw8c3RkOjp2ZWN0 b3I8dW5zaWduZWQgY2hhcj4+IHRtcEJ1ZjsNCisrI2VsaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJ T04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisgCXN0ZDo6b3B0aW9uYWw8 R2Z4Rm9udExvYz4gZm9udExvYzsNCisgCWNvbnN0IEdvb1N0cmluZyAqIGZpbGVOYW1lID0gbnVs bHB0cjsNCisgCXN0ZDo6dW5pcXVlX3B0cjxGb0ZpVHJ1ZVR5cGU+IGZmOw0KKysJY2hhciogdG1w QnVmID0gbnVsbHB0cjsNCisgI2Vsc2UNCisgCUdmeEZvbnRMb2MgKiBmb250TG9jID0gbnVsbHB0 cjsNCisgCUdvb1N0cmluZyAqIGZpbGVOYW1lID0gbnVsbHB0cjsNCisgCUZvRmlUcnVlVHlwZSAq IGZmID0gbnVsbHB0cjsNCisrCWNoYXIqIHRtcEJ1ZiA9IG51bGxwdHI7DQorICNlbmRpZg0KKyAJ R2Z4Rm9udFR5cGUgZm9udFR5cGU7DQorIAlTbGFPdXRGb250RmlsZUlEICppZDsNCisgCVNwbGFz aEZvbnRGaWxlICpmb250RmlsZTsNCisgCVNwbGFzaEZvbnRTcmMgKmZvbnRzcmMgPSBudWxscHRy Ow0KKyAJT2JqZWN0IHJlZk9iaiwgc3RyT2JqOw0KKy0JY2hhciAqdG1wQnVmID0gbnVsbHB0cjsN CisgCWludCB0bXBCdWZMZW4gPSAwOw0KKyAJaW50ICpjb2RlVG9HSUQgPSBudWxscHRyOw0KKyAJ Y29uc3QgZG91YmxlICp0ZXh0TWF0ID0gbnVsbHB0cjsNCitAQCAtMjk0Myw3ICsyOTYzLDExIEBA IHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyANCisgCW1f Zm9udCA9IG51bGxwdHI7DQorIA0KKy0JZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250KCk7DQorKyNp ZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0 LCAwKQ0KKysJR2Z4Rm9udCogZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250KCkuZ2V0KCk7DQorKyNl bHNlDQorKwlHZnhGb250KiBnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKTsNCisrI2VuZGlmDQor IAlpZiAoIWdmeEZvbnQpDQorIAkJZ290byBlcnIxOw0KKyANCitAQCAtMjk2OCwxNSArMjk5Miwy MyBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQlp ZiAoZm9udExvYy0+bG9jVHlwZSA9PSBnZnhGb250TG9jRW1iZWRkZWQpDQorIAkJew0KKyAJCQkv LyBpZiB0aGVyZSBpcyBhbiBlbWJlZGRlZCBmb250LCByZWFkIGl0IHRvIG1lbW9yeQ0KKy0JCQl0 bXBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoeHJlZiwgJnRtcEJ1Zkxlbik7DQorKyNp ZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0 LCAwKQ0KKysJCQl0bXBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoKHhyZWYpID8geHJl ZiA6IHBkZkRvYy0+Z2V0WFJlZigpKTsNCisgCQkJaWYgKCEgdG1wQnVmKQ0KKyAJCQkJZ290byBl cnIyOw0KKysjZWxzZQ0KKysJCQl0bXBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoeHJl ZiwgJnRtcEJ1Zkxlbik7DQorKwkJCWlmICghdG1wQnVmKQ0KKysJCQkJZ290byBlcnIyOw0KKysj ZW5kaWYNCisgDQorIAkJCS8vIGV4dGVybmFsIGZvbnQNCisgCQl9DQorIAkJZWxzZQ0KKyAJCXsg Ly8gZ2Z4Rm9udExvY0V4dGVybmFsDQorLSNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQ T1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZF UlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQkJZmlsZU5hbWUg PSBmb250TG9jLT5wYXRoOw0KKysjZWxpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQ TEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKyAJCQlmaWxlTmFtZSA9IGZvbnRMb2MtPnBh dGhBc0dvb1N0cmluZygpOw0KKyAjZWxzZQ0KKyAJCQlmaWxlTmFtZSA9IGZvbnRMb2MtPnBhdGg7 DQorQEAgLTI5ODUsNTIgKzMwMTcsNTQgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQo R2Z4U3RhdGUgKnN0YXRlKQorIAkJfQ0KKyANCisgCQlmb250c3JjID0gbmV3IFNwbGFzaEZvbnRT cmM7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5D T0RFKDIyLCA0LCAwKQ0KKysJCWlmICghZmlsZU5hbWUuZW1wdHkoKSkNCisrCQkJZm9udHNyYy0+ c2V0RmlsZShmaWxlTmFtZSk7DQorKwkJZWxzZQ0KKysJCQlmb250c3JjLT5zZXRCdWYoc3RkOjpt b3ZlKHRtcEJ1Zi52YWx1ZSgpKSk7DQorKyNlbHNlDQorIAkJaWYgKGZpbGVOYW1lKQ0KKyAJCQlm b250c3JjLT5zZXRGaWxlKGZpbGVOYW1lLCBnRmFsc2UpOw0KKyAJCWVsc2UNCisgCQkJZm9udHNy Yy0+c2V0QnVmKHRtcEJ1ZiwgdG1wQnVmTGVuLCBnVHJ1ZSk7DQorKyNlbmRpZg0KKyANCisgCQkv LyBsb2FkIHRoZSBmb250IGZpbGUNCisgCQlzd2l0Y2ggKGZvbnRUeXBlKSB7DQorIAkJY2FzZSBm b250VHlwZTE6DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHlwZTFG b250KA0KKy0JCQkJaWQsDQorLQkJCQlmb250c3JjLA0KKy0JCQkJKGNvbnN0IGNoYXIgKiopKChH Zng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2RpbmcoKSkpKQ0KKysJCQlpZiAoIShmb250 RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFR5cGUxRm9udChpZCwgZm9udHNyYywgKGNvbnN0IGNo YXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2RpbmcoKSkpKQ0KKyAJCQl7 DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250 IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5h bWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJZXJyb3IoZXJyU3ludGF4 RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsIGdmeEZvbnQt PmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVk KSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFrOw0KKyAJCWNhc2UgZm9u dFR5cGUxQzoNCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUeXBlMUNG b250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJCQlmb250c3JjLA0KKy0JCQkJCQkJKGNvbnN0IGNo YXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2RpbmcoKSkpKQ0KKysJCQlp ZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFR5cGUxQ0ZvbnQoaWQsIGZvbnRzcmMs IChjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29kaW5nKCkp KSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3Jl YXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5nZXROYW1lKCkgPyBnZnhG b250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisrCQkJCWVycm9y KGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSci LCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6 ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0KKyAJCQlicmVhazsNCisg CQljYXNlIGZvbnRUeXBlMUNPVDoNCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUt PmxvYWRPcGVuVHlwZVQxQ0ZvbnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRzcmMsDQor LQkJCQkJCQkoY29uc3QgY2hhciAqKikoKEdmeDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNv ZGluZygpKSkpDQorKwkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkT3BlblR5 cGVUMUNGb250KGlkLCBmb250c3JjLCAoY29uc3QgY2hhciAqKikoKEdmeDhCaXRGb250ICopIGdm eEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorIAkJCXsNCistCQkJCWVycm9yKGVyclN5bnRheEVy cm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4 Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVu bmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVh dGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0 TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQor IAkJCX0NCisgCQkJYnJlYWs7DQorIAkJY2FzZSBmb250VHJ1ZVR5cGU6DQorIAkJY2FzZSBmb250 VHJ1ZVR5cGVPVDoNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVS U0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwkJCWlmICghZmlsZU5hbWUuZW1wdHkoKSkNCisrCQkJ CWZmID0gRm9GaVRydWVUeXBlOjpsb2FkKGZpbGVOYW1lLmNfc3RyKCkpOw0KKysJCQllbHNlDQor KwkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bWFrZShmb250c3JjLT5idWYuZGF0YSgpLCBmb250c3Jj LT5idWYuc2l6ZSgpKTsNCisrI2Vsc2UNCisgCQkJaWYgKGZpbGVOYW1lKQ0KKyAJCQkJZmYgPSBG b0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5hbWUtPmdldENTdHJpbmcoKSk7DQorIAkJCWVsc2UNCisg CQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtlKHRtcEJ1ZiwgdG1wQnVmTGVuKTsNCisrI2VuZGlm DQorIAkJCWlmIChmZikNCisgCQkJew0KKyAjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0g UE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCitAQCAtMzA0NywyNCArMzA4MSwxNyBA QCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCWNv ZGVUb0dJRCA9IG51bGxwdHI7DQorIAkJCQluID0gMDsNCisgCQkJfQ0KKy0JCQlpZiAoIShmb250 RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFRydWVUeXBlRm9udCgNCistCQkJCQkJCWlkLA0KKy0J CQkJCQkJZm9udHNyYywNCistCQkJCQkJCWNvZGVUb0dJRCwgbikpKQ0KKysJCQlpZiAoIShmb250 RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFRydWVUeXBlRm9udChpZCwgZm9udHNyYywgY29kZVRv R0lELCBuKSkpDQorIAkJCXsNCistCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxk bid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgp ID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorKwkJ CQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAn ezA6c30nIiwgZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3Ry aW5nKCkgOiAiKHVubmFtZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0NCisgCQkJYnJl YWs7DQorIAkJY2FzZSBmb250Q0lEVHlwZTA6DQorIAkJY2FzZSBmb250Q0lEVHlwZTBDOg0KKy0J CQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZENJREZvbnQoDQorLQkJCQkJCQlp ZCwNCistCQkJCQkJCWZvbnRzcmMpKSkNCisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdp bmUtPmxvYWRDSURGb250KGlkLCBmb250c3JjKSkpDQorIAkJCXsNCistCQkJCWVycm9yKGVyclN5 bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKy0J CQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkg OiAiKHVubmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4n dCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9u dC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorIAkJCQlnb3RvIGVy cjI7DQorIAkJCX0NCisgCQkJYnJlYWs7DQorQEAgLTMwODAsMTAgKzMxMDcsNyBAQCB2b2lkIFNs YU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCWNvZGVUb0dJRCA9 IG51bGxwdHI7DQorIAkJCQluID0gMDsNCisgCQkJfQ0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1f Zm9udEVuZ2luZS0+bG9hZE9wZW5UeXBlQ0ZGRm9udCgNCistCQkJCQkJCWlkLA0KKy0JCQkJCQkJ Zm9udHNyYywNCistCQkJCQkJCWNvZGVUb0dJRCwgbikpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9 IG1fZm9udEVuZ2luZS0+bG9hZE9wZW5UeXBlQ0ZGRm9udChpZCwgZm9udHNyYywgY29kZVRvR0lE LCBuKSkpDQorIAkJCXsNCisgCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0 IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKyAJCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8g Z2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorQEAgLTMx MDUsMTAgKzMxMjksMTcgQEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUg KnN0YXRlKQorIAkJCX0NCisgCQkJZWxzZQ0KKyAJCQl7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURf VkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJCQkJaWYgKCFm aWxlTmFtZS5lbXB0eSgpKQ0KKysJCQkJCWZmID0gRm9GaVRydWVUeXBlOjpsb2FkKGZpbGVOYW1l LmNfc3RyKCkpOw0KKysJCQkJZWxzZQ0KKysJCQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtlKGZv bnRzcmMtPmJ1Zi5kYXRhKCksIGZvbnRzcmMtPmJ1Zi5zaXplKCkpOw0KKysjZWxzZQ0KKyAJCQkJ aWYgKGZpbGVOYW1lKQ0KKyAJCQkJCWZmID0gRm9GaVRydWVUeXBlOjpsb2FkKGZpbGVOYW1lLT5n ZXRDU3RyaW5nKCkpOw0KKyAJCQkJZWxzZQ0KKyAJCQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtl KHRtcEJ1ZiwgdG1wQnVmTGVuKTsNCisrI2VuZGlmDQorIAkJCQlpZiAoISBmZikNCisgCQkJCQln b3RvIGVycjI7DQorICNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJ T05fRU5DT0RFKDIyLCAyLCAwKQ0KK0BAIC0zMTE5LDEzICszMTUwLDkgQEAgdm9pZCBTbGFPdXRw dXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCQlkZWxldGUgZmY7DQorICNl bmRpZg0KKyAJCQl9DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHJ1 ZVR5cGVGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJCQlmb250c3JjLA0KKy0JCQkJCQkJY29k ZVRvR0lELCBuLCBmYWNlSW5kZXgpKSkNCisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdp bmUtPmxvYWRUcnVlVHlwZUZvbnQoaWQsIGZvbnRzcmMsIGNvZGVUb0dJRCwgbiwgZmFjZUluZGV4 KSkpDQorIAkJCXsNCistCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNy ZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4 Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorKwkJCQllcnJv cihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30n IiwgZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkg OiAiKHVubmFtZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0NCisgCQkJYnJlYWs7DQor QEAgLTMyNjksOSArMzI5NiwxNSBAQCB2b2lkIFNsYU91dHB1dERldjo6ZHJhd0NoYXIoR2Z4U3Rh dGUqIHN0YXRlLCBkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSBkeCwgZG91YgorIEdCb29sIFNs YU91dHB1dERldjo6YmVnaW5UeXBlM0NoYXIoR2Z4U3RhdGUgKnN0YXRlLCBkb3VibGUgeCwgZG91 YmxlIHksIGRvdWJsZSBkeCwgZG91YmxlIGR5LCBDaGFyQ29kZSBjb2RlLCBQT1BQTEVSX0NPTlNU XzA4MiBVbmljb2RlICp1LCBpbnQgdUxlbikNCisgew0KKyAvLwlxRGVidWcoKSA8PCAiYmVnaW5U eXBlM0NoYXIiOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJT SU9OX0VOQ09ERSgyMiwgNCwgMCkNCisgCUdmeEZvbnQgKmdmeEZvbnQ7DQorKwlpZiAoIShnZnhG b250ID0gc3RhdGUtPmdldEZvbnQoKS5nZXQoKSkpDQorKwkJcmV0dXJuIGdUcnVlOw0KKysjZWxz ZQ0KKysJR2Z4Rm9udCogZ2Z4Rm9udDsNCisgCWlmICghKGdmeEZvbnQgPSBzdGF0ZS0+Z2V0Rm9u dCgpKSkNCisgCQlyZXR1cm4gZ1RydWU7DQorKyNlbmRpZg0KKyAJaWYgKGdmeEZvbnQtPmdldFR5 cGUoKSAhPSBmb250VHlwZTMpDQorIAkJcmV0dXJuIGdUcnVlOw0KKyAJRjNFbnRyeSBmM2U7DQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlIGIvc3JjcGtncy9zY3JpYnVzL3Rl bXBsYXRlCmluZGV4IDc5MWNkZWE3MTJjNS4uMTI1YTdkNTRlNGNmIDEwMDY0NAotLS0gYS9zcmNw a2dzL3NjcmlidXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlCkBAIC00 LDcgKzQsNyBAQCB2ZXJzaW9uPTEuNS44CiByZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQog Y29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfU0tJUF9SUEFUSD1UUlVFIC1EUVRfUFJFRklYPSR7WEJQ U19DUk9TU19CQVNFfS91c3IKLSAtRFdBTlRfR1JBUEhJQ1NNQUdJQ0s9MSIKKyAtRFdBTlRfR1JB UEhJQ1NNQUdJQ0s9MSAtRFdBTlRfQ1BQMTc9T04iCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25m aWcgcXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIHB5dGhvbjMiCiBtYWtlZGVwZW5kcz0icXQ1LWRl dmVsIHF0NS10b29scy1kZXZlbCB6bGliLWRldmVsIGNhaXJvLWRldmVsIGxjbXMyLWRldmVsCiAg Y3Vwcy1kZXZlbCBsaWJ4bWwyLWRldmVsIGh5cGhlbi1kZXZlbCBnaG9zdHNjcmlwdC1kZXZlbCBi b29zdC1kZXZlbAoKRnJvbSA5N2I0N2IxYmY5MDdlN2U3ZjdkNmUxZjU1NDJhMGFlNmRhZWJhM2Fj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5 QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogVGh1LCAxNiBKdW4gMjAyMiAxNzowNToz NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggOS85XSBsaWJyZW9mZmljZTogcmVidWlsZCBhZ2FpbnN0 IGxpYnBvcHBsZXIgMjIuMDYuMAoKLS0tCiAuLi4vbGlicmVvZmZpY2UvcGF0Y2hlcy9wb3BwbGVy LTIyLjAzLjAucGF0Y2ggfCAyOCArKysrKysrKwogLi4uL2xpYnJlb2ZmaWNlL3BhdGNoZXMvcG9w cGxlci0yMi4wNC4wLnBhdGNoIHwgNzEgKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFu Z2VkLCA5OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJyZW9m ZmljZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGlicmVvZmZpY2UvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xpYnJlb2ZmaWNlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLnBhdGNoIGIv c3JjcGtncy9saWJyZW9mZmljZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM2NTQ0YjI1NzVmOQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGlicmVvZmZpY2UvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAucGF0 Y2gKQEAgLTAsMCArMSwyOCBAQAorZGlmZiAtLWdpdCBhL3NkZXh0L3NvdXJjZS9wZGZpbXBvcnQv eHBkZndyYXBwZXIvd3JhcHBlcl9ncGwuY3h4IGIvc2RleHQvc291cmNlL3BkZmltcG9ydC94cGRm d3JhcHBlci93cmFwcGVyX2dwbC5jeHgKK2luZGV4IGFkNjMyMDEzOS4uZTVmNmQ5YzY4IDEwMDY0 NAorLS0tIGEvc2RleHQvc291cmNlL3BkZmltcG9ydC94cGRmd3JhcHBlci93cmFwcGVyX2dwbC5j eHgKKysrKyBiL3NkZXh0L3NvdXJjZS9wZGZpbXBvcnQveHBkZndyYXBwZXIvd3JhcHBlcl9ncGwu Y3h4CitAQCAtMTM4LDYgKzEzOCwxNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CisgICAgIF9zZXRtb2RlKCBfZmlsZW5vKCBnX2JpbmFyeV9vdXQgKSwgX09fQklOQVJZICk7Cisg I2VuZGlmCisgCisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKysgICAgUERG RG9jIGFEb2MoIHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihwRmlsZU5hbWUpLAorKyAgICAg ICAgICAgICAgICAgR29vU3RyaW5nKHBPd25lclBhc3N3b3JkU3RyKSwKKysgICAgICAgICAgICAg ICAgIEdvb1N0cmluZyhwVXNlclBhc3N3b3JkU3RyKSApOworKworKyAgICBQREZEb2MgYUVyckRv Yyggc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KHBFcnJGaWxlTmFtZSksCisrICAgICAgICAg ICAgICAgICBHb29TdHJpbmcocE93bmVyUGFzc3dvcmRTdHIpLAorKyAgICAgICAgICAgICAgICAg R29vU3RyaW5nKHBVc2VyUGFzc3dvcmRTdHIpICk7CisrI2Vsc2UKKyAgICAgUERGRG9jIGFEb2Mo IHBGaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgIHBPd25lclBhc3N3b3JkU3RyLAorICAgICAg ICAgICAgICAgICAgcFVzZXJQYXNzd29yZFN0ciApOworQEAgLTE0NSw2ICsxNTQsNyBAQCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgICAgIFBERkRvYyBhRXJyRG9jKCBwRXJyRmls ZU5hbWUsCisgICAgICAgICAgICAgICAgICBwT3duZXJQYXNzd29yZFN0ciwKKyAgICAgICAgICAg ICAgICAgIHBVc2VyUGFzc3dvcmRTdHIgKTsKKysjZW5kaWYKKyAKKyAgICAgLy8gQ2hlY2sgdmFy aW91cyBwZXJtaXNzaW9ucyBmb3IgYURvYy4KKyAgICAgUERGRG9jICZyRG9jID0gYURvYy5pc09r KCk/IGFEb2M6IGFFcnJEb2M7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnJlb2ZmaWNlL3BhdGNo ZXMvcG9wcGxlci0yMi4wNC4wLnBhdGNoIGIvc3JjcGtncy9saWJyZW9mZmljZS9wYXRjaGVzL3Bv cHBsZXItMjIuMDQuMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjQ3ZjU5NjczZDY5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlicmVvZmZpY2Uv cGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAucGF0Y2gKQEAgLTAsMCArMSw3MSBAQAorIyBQYXRjaCBm cm9tIEZyZWVCU0QgKGh0dHBzOi8vY2dpdC5mcmVlYnNkLm9yZy9wb3J0cy9jb21taXQvP2lkPWQ5 YjVlZjgwMGRiZCkKKworLS0tIGEvc2RleHQvc291cmNlL3BkZmltcG9ydC94cGRmd3JhcHBlci9w ZGZpb3V0ZGV2X2dwbC5jeHgKKysrKyBiL3NkZXh0L3NvdXJjZS9wZGZpbXBvcnQveHBkZndyYXBw ZXIvcGRmaW91dGRldl9ncGwuY3h4CitAQCAtNDc0LDExICs0NzQsMTcgQEAgaW50IFBERk91dERl djo6cGFyc2VGb250KCBsb25nIGxvbmcgbk5ld0lkLCBHZnhGb250KiBnCisgICAgIHsKKyAgICAg ICAgIC8vIFRPRE8oUDMpOiBVbmZvcnR1bmF0ZWx5LCBuZWVkIHRvIHJlYWQgc3RyZWFtIHR3aWNl LCBzaW5jZQorICAgICAgICAgLy8gd2UgbXVzdCB3cml0ZSBieXRlIGNvdW50IHRvIHN0ZG91dCBi ZWZvcmUKKysjaWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKyAgICAgICAgIGNo YXIqIHBCdWYgPSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoIG1fcERvYy0+Z2V0WFJlZigpLCAm blNpemUgKTsKKysjZWxzZQorKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZlY3Rvcjx1bnNp Z25lZCBjaGFyPj4gcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSggbV9wRG9jLT5nZXRY UmVmKCkgKTsKKysjZW5kaWYKKyAgICAgICAgIGlmKCBwQnVmICkKKyAgICAgICAgIHsKKyAgICAg ICAgICAgICBhTmV3Rm9udC5pc0VtYmVkZGVkID0gdHJ1ZTsKKysjaWYgIVBPUFBMRVJfQ0hFQ0tf VkVSU0lPTigyMiwgMywgMCkKKyAgICAgICAgICAgICBnZnJlZShwQnVmKTsKKysjZW5kaWYKKyAg ICAgICAgIH0KKyAgICAgfQorIAorQEAgLTQ5MiwyMSArNDk4LDMyIEBAIHZvaWQgUERGT3V0RGV2 Ojp3cml0ZUZvbnRGaWxlKCBHZnhGb250KiBnZnhGb250ICkgY29ucworICAgICAgICAgcmV0dXJu OworIAorICAgICBpbnQgblNpemUgPSAwOworLSAgICBjaGFyKiBwQnVmID0gZ2Z4Rm9udC0+cmVh ZEVtYkZvbnRGaWxlKCBtX3BEb2MtPmdldFhSZWYoKSwgJm5TaXplICk7CisrI2lmICFQT1BQTEVS X0NIRUNLX1ZFUlNJT04oMjIsIDMsIDApCisrICAgICAgICBjaGFyKiBwQnVmID0gZ2Z4Rm9udC0+ cmVhZEVtYkZvbnRGaWxlKCBtX3BEb2MtPmdldFhSZWYoKSwgJm5TaXplICk7CisrI2Vsc2UKKysg ICAgICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2ZWN0b3I8dW5zaWduZWQgY2hhcj4+IHBCdWYgPSBn ZnhGb250LT5yZWFkRW1iRm9udEZpbGUoIG1fcERvYy0+Z2V0WFJlZigpICk7CisrI2VuZGlmCisg ICAgIGlmKCAhcEJ1ZiApCisgICAgICAgICByZXR1cm47CisgCisgICAgIC8vIC0tLXN5bmMgcG9p bnQtLS0gc2VlIFNZTkMgU1RSRUFNUyBhYm92ZQorICAgICBmZmx1c2goc3Rkb3V0KTsKKy0KKysj aWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKyAgICAgaWYoIGZ3cml0ZShwQnVm LCBzaXplb2YoY2hhciksIG5TaXplLCBnX2JpbmFyeV9vdXQpICE9IHN0YXRpY19jYXN0PHNpemVf dD4oblNpemUpICkKKysjZWxzZQorKyAgICBpZiggZndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh cio+KHBCdWYudmFsdWUoKS5kYXRhKCkpLCBzaXplb2YoY2hhciksIG5TaXplLCBnX2JpbmFyeV9v dXQpICE9IHN0YXRpY19jYXN0PHNpemVfdD4oblNpemUpICkKKysjZW5kaWYKKyAgICAgeworLSAg ICAgICAgZ2ZyZWUocEJ1Zik7CisrI2lmICFQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDMsIDAp CisrICAgICAgICAgICAgZ2ZyZWUocEJ1Zik7CisrI2VuZGlmCisgICAgICAgICBleGl0KDEpOyAv LyBlcnJvcgorICAgICB9CisgICAgIC8vIC0tLXN5bmMgcG9pbnQtLS0gc2VlIFNZTkMgU1RSRUFN UyBhYm92ZQorICAgICBmZmx1c2goZ19iaW5hcnlfb3V0KTsKKy0gICAgZ2ZyZWUocEJ1Zik7Cisr I2lmICFQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDMsIDApCisrICAgICAgICAgICAgZ2ZyZWUo cEJ1Zik7CisrI2VuZGlmCisgfQorIAorICNpZiBQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMCwgODMs IDApCitAQCAtNzU5LDcgKzc3NiwxMSBAQCB2b2lkIFBERk91dERldjo6dXBkYXRlRm9udChHZnhT dGF0ZSAqc3RhdGUpCisgeworICAgICBhc3NlcnQoc3RhdGUpOworIAorKyNpZiAhUE9QUExFUl9D SEVDS19WRVJTSU9OKDIyLCAzLCAwKQorICAgICBHZnhGb250ICpnZnhGb250ID0gc3RhdGUtPmdl dEZvbnQoKTsKKysjZWxzZQorKyAgICBHZnhGb250ICpnZnhGb250ID0gc3RhdGUtPmdldEZvbnQo KS5nZXQoKTsKKysjZW5kaWYKKyAgICAgaWYoICFnZnhGb250ICkKKyAgICAgICAgIHJldHVybjsK KyAK --===============6227630512688005553==--